(57)【要約】【課題】大量のデータを暗号化しない暗号化アルゴリズムを実装する場合に、好適に回路規模を縮小した暗号化装置を提供する。【解決手段】本暗号化装置は、暗号化するためのラウンド処理の回数を示す処理段数及びクロックサイクルの監視並びに処理段数及び該クロックサイクルの出力を行う管理部を含む。また、本暗号化装置は、ｎビットの入力データをｍビットごとの複数の分割データに分割し、かつ、クロックサイクルに応じて分割データを１つずつ順番に選択して出力する第１の選択部を含む。また、本暗号化装置は、入力単位がｍビットである変換回路を有し、かつ、第１の選択部から出力された分割データを変換する第１の変換処理部を含む。さらに、本暗号化装置は、ｍビットごとに区分けされたｎビットの領域を有し、第１の変換処理部から出力される分割データをクロックサイクルに応じてｍビットごとにｎビットとなるまで保持する第１の保持部を含む。【選択図】図３
2008107656.tif 000002
【特許請求の範囲】
【請求項１】
情報を変換させるラウンド処理を繰り返し行う暗号化装置であって、
前記ラウンド処理の回数を示す処理段数及びクロックサイクルの監視並びに該処理段数及び該クロックサイクルの出力を行う管理部と、
ｎビットの入力データをｍビットごとの複数の分割データに分割し、かつ、前記クロックサイクルに応じて該分割データを１つずつ順番に選択して出力する第１の選択部と、
入力単位がｍビットである変換回路を有し、かつ、前記第１の選択部から出力された分割データを変換する第１の変換処理部と、
ｍビットごとに区分けされたｎビットの領域を有し、前記第１の変換処理部から出力される分割データを前記クロックサイクルに応じてｍビットごとにｎビットとなるまで保持する第１の保持部と
を含むことを特徴とする暗号化装置。
【請求項２】
入力データを受信する受信部と、
前記受信部から入力された入力データと、前記第１の保持部から入力された入力データとの一方を前記処理段数に応じて選択して出力する第２の選択部と、
前記第２の選択部から出力された前記入力データを前記クロックサイクルに応じて保持する第２の保持部と、
各処理段数ごとに暗号化のための鍵を出力する鍵発生部と、
前記第２の保持部から出力された入力データ及び前記鍵の和のデータを変換して前記第１の選択部へ出力する第２の変換処理部と、
前記第１の保持部から出力されたデータを送信する送信部と
をさらに含むことを特徴とする請求項１に記載の暗号化装置。
【請求項３】
前記第２の選択部は、
前記処理段数が１の場合に外部からの入力データを出力するように切り替え、前記処理段数が２以上の場合に前記第１の保持部からの入力データを出力するように切り替える切り替え部を
含むことを特徴とする請求項２に記載の暗号化装置。
【請求項４】
入力データを受信する受信部と、
前記受信部から入力された入力データと、前記ラウンド処理後のデータを保持する第２の保持部から入力された入力データとの一方を前記処理段数に応じて選択し、選択した該入力データを上位ビットデータ及び下位ビットデータに２分割して出力する第２の選択部と、
各処理段数ごとに暗号化のための鍵を出力する鍵発生部と、
前記第２の選択部から出力された下位ビットデータ及び前記鍵の和のデータを変換して前記第１の選択部へ出力する第２の変換処理部と、
前記第１の保持部から出力されたデータ及び前記上位ビットデータの和データと前記下位ビットデータとを前記クロックサイクルに応じて保持する前記第２の保持部と、
前記第２の保持部から出力されたデータを送信する送信部と
をさらに含むことを特徴とする請求項１に記載の暗号化装置。
【請求項５】
前記第２の選択部は、
前記処理段数が１の場合に外部からの入力データを出力するように切り替え、前記処理段数が２以上の場合に前記第２の保持部からの入力データを選択するように切り替える切り替え部を
含むことを特徴とする請求項４に記載の暗号化装置。
【請求項６】
認証装置であって、
請求項１乃至５の何れか１項に記載の暗号化装置を
含むことを特徴とする認証装置。
【請求項７】
情報を変換させるラウンド処理を繰り返し行う暗号化装置を制御する方法であって、
前記ラウンド処理の回数を示す処理段数及びクロックサイクルの監視並びに該処理段数及び該クロックサイクルの出力を行うステップと、
ｎビットの入力データをｍビットごとの複数の分割データに分割し、かつ、前記クロックサイクルに応じて該分割データを１つずつ順番に選択して出力するステップと、
前記暗号化装置に含まれる変換回路によって前記分割データを変換するステップと、
前記変換回路によって変換された前記分割データを前記クロックサイクルに応じてｍビットごとにｎビットとなるまでｍビットごとに区分けされたｎビットの領域に保持するステップと
を含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化装置に関する。特に、本発明は、暗号を用いて認証を行う認証装置に備えられる暗号化装置及び暗号化装置を制御する方法に関する。
【背景技術】
【０００２】
インターネットの発展によるグローバルな情報交換や金銭情報の電子化に伴い、情報秘匿や内容保証などが要求されている。これに応える重要な要素技術の一つとして暗号技術が挙げられる。暗号化は、主に入力データの転置を行う線形処理部と、換字を行う非線形処理部と、秘密の鍵を足し合わせる鍵挿入部とにより行われている。線形処理、非線形処理及び鍵挿入処理をまとめてラウンド処理と称し、複数回のラウンド処理を繰り返すことで入力データの暗号化が行われる。非線形処理部には、変換作用を大きくするため、主に複数のＳｂｏｘと呼ばれる非線形関数を実行する回路を組み合わせたものがある。暗号化は、何度も同じ処理を繰り返すことから処理に時間がかかるというデメリットがある。
【０００３】
特許文献１は、非線形処理を高速化するために、ＳｂｏｘをＲＯＭにテーブル化して格納した暗号復号回路を示している。また、並列処理が行えるものに関して、同時に処理を行う手法も知られている。
【特許文献１】特開２００３−０９８９６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
暗号化には、情報秘匿、内容保証及び認証など複数の用途が存在する。情報秘匿や内容保証を行う場合、多量のデータを暗号化させる必要があることから、その高速化が重要である。しかし、認証を行う場合、以下に説明するように、それほど高速な処理は重要でない。共通鍵暗号を用いて認証を行うには、認証相手と認証元とが同じ鍵を持っている必要がある。公開鍵暗号では、認証元は、乱数を公開鍵で暗号化し、その暗号文を認証相手へと送る。認証相手は、送られてきた暗号文を自分が持っている秘密鍵を使用して復号化し、認証元へと送り返す。認証元は、送り返されたデータと暗号化させる前の乱数を比較することで相手が正しい秘密鍵を持っているかどうかを認証する。
【０００５】
このように、暗号が認証に使用される場合、情報秘匿に使用される場合と異なり、多量のデータを暗号化させる必要が無い。よって、処理速度がそれほど求められていないといえる。逆に暗号をいかにコンパクトに組み込むかが重要となってくる。暗号を実装する方法は、ソフトで実装する方法と、ハードで実装する方法との２通りが存在する。ソフトでの実装は、書き換えが自由なことから非常に柔軟性の高い実装方法といえる。しかし、マイコンのリソース内で収めなければならないので、安価なマイコンを使用する場合、搭載暗号が制限されてしまう。ハードでの実装の場合、１度回路を組んでしまうと変更ができないことから、専用の回路となり柔軟性が乏しい。しかし、高速な処理が可能であり、また、マイコンを使用せずとも製品に搭載可能であることから、安価な製品（例えばＩＣタグなど）にも暗号を組み込むことができる。
【０００６】
しかしながら、従来は、処理速度をそれほど要求されない認証装置にも、複数のＳｂｏｘを回路に組み込んでいたため、回路規模が大きくなるという問題があった。
【０００７】
本発明は、上述の問題に鑑みてなされたものであり、大量のデータを暗号化しない暗号化アルゴリズムを実装する場合に、好適に回路規模を縮小した暗号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、例えば、情報を変換させるラウンド処理を繰り返し行う暗号化装置として実現できる。本暗号化装置は、暗号化するためのラウンド処理の回数を示す処理段数及びクロックサイクルの監視並びに処理段数及び該クロックサイクルの出力を行う管理部を含む。また、本暗号化装置は、ｎビットの入力データをｍビットごとの複数の分割データに分割し、かつ、クロックサイクルに応じて分割データを１つずつ順番に選択して出力する第１の選択部を含む。また、本暗号化装置は、入力単位がｍビットである変換回路を有し、かつ、第１の選択部から出力された分割データを変換する第１の変換処理部を含む。さらに、本暗号化装置は、ｍビットごとに区分けされたｎビットの領域を有し、第１の変換処理部から出力される分割データをクロックサイクルに応じてｍビットごとにｎビットとなるまで保持する第１の保持部を含む。
【発明の効果】
【０００９】
本発明は、大量のデータを暗号化しない暗号化アルゴリズムを実装する場合に、好適に回路規模を縮小した暗号化装置を提供できる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明に係る実施形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に記載された発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１１】
［第１の実施形態］
以下では、図１から図４を参照して、第１の実施形態について説明する。図１は、第１の実施形態に対応する暗号化装置の暗号化回路を示す図である。本実施形態における暗号化装置は、一適用例として、共通鍵暗号を用いたブロック暗号における線形処理及び非線形処理を実装した暗号化回路によって実現される。しかしながら、本発明は、暗号化を行うための変換処理を線形処理及び非線形処理に限定するものでなく、特許請求の範囲の記載から逸脱しない範囲で様々な暗号技術に適用可能である。また、ここでは、大量のデータを暗号化する必要のない、例えば、認証に用いられる暗号を想定した暗号化装置について説明する。
【００１２】
なお、ブロック暗号には、一般的に、ＳＰＮ構造と、Ｆｅｉｓｔｅｌ構造とがある。Ｆｅｉｓｔｅｌ構造は、入力されるデータを２分割し、一方のデータに変換処理を施して、他方のデータに重ねる処理を繰り返す。ＳＰＮ構造は、入力されるデータを分割することなく線形処理及び非線形処理で構成されるラウンド処理を繰り返す。図１に示すように、本実施形態による暗号化回路１００は、ＳＰＮ構造によって実現される。
【００１３】
暗号化回路１００は、ステートマシン１０１、受信レジスタ１０５、セレクタ１０２、１０６、ラッチ１０４、１０７及び送信レジスタ１１０を含む。また、暗号化回路１００は、鍵発生部１０８、線形処理部１０９及び非線形処理部１０３を含む。ステートマシン１０１は、管理部として処理段数及びクロックサイクルを監視する。また、ステートマシン１０１は、状況に応じて、セレクタ１０２、１０６、ラッチ１０４、１０７及び鍵発生部１０８に、処理段数又はクロックサイクルを出力する。
【００１４】
ここで、処理段数とは、情報（入力データ）を変換させるラウンド処理の回数を示す。ラウンド処理とは、入力データに対して行われる拡大鍵を用いた線形処理及び非線形処理を含む。また、暗号化は、通常、これらのラウンド処理を繰り返し行い、入力データを変換させる。受信レジスタ１０５は、受信部として、暗号化の対象となるｎビットの入力データを受信する。また、送信レジスタ１１０は、送信部として、暗号化されたｎビットのデータを送信する。
【００１５】
セレクタ１０２、１０６は、それぞれ第１の選択部、第２の選択部として機能し、クロックサイクルに応じて入力された複数のデータの中から１つのデータを選択して出力する。セレクタ１０２は、線形処理部１０９から入力されるｎビットの入力データをｍビットごとの複数の分割データに分割し、クロックサイクルに応じて分割データを１つずつ順番に選択して出力する。ここで、ｎはｍの整数倍である。例えば、ｎビットが１２８ビットである場合、ｍビットは３２ビットとなる。セレクタ１０６は、受信レジスタ１０５から入力されるｎビットの入力データと、ラッチ１０４から入力されるｎビットの入力データとを処理段数に応じて一方の入力データを選択して出力する。
【００１６】
また、セレクタ１０６は、入力データの選択を行うために、出力を切り替える切り替え部１１１を含む。具体的に、切り替え部１１１は、処理段数が１である場合に、即ち入力データにラウンド処理が実行されていない状態の場合に、受信レジスタ１０５から入力された入力データを出力するように切り替える。一方、処理段数が２以上である場合、即ち入力データに１回でもラウンド処理が実行されている状態の場合、切り替え部１１１は、ラッチ１０４から入力された入力データを出力するように切り替える。
【００１７】
ラッチ１０４、１０７は、それぞれ、第１の保持部、第２の保持部として機能し、クロックサイクルに応じて入力されたデータを保持する。ラッチ１０４は、ｍビットごとに区分けされたｎビットの領域を有し、非線形処理部１０３から出力された分割データをクロックサイクルに応じてｍビットごとにｎビットとなるまで保持する。ラッチ１０７は、セレクタ１０６から出力されるｎビットの入力データを保持する。
【００１８】
鍵発生部１０８は、例えば、データを変換させるための拡大鍵を発生させる。また、鍵発生部１０８は、暗号を強化するため、処理段数ごとに異なる拡大鍵を発生させることが望ましい。線形処理部１０９は、第２の変換処理部として機能し、入力データに対して線形処理を実行する。ここで、線形処理部１０９に入力されるデータは、ラッチ１０７から出力されたｎビットのデータ及び鍵発生部１０８から出力された鍵の和のデータとなる。ここで、和のデータとは、例えば、排他的論理和又は算術加算されたデータを示す。
【００１９】
また、非線形処理部１０３は、第１の変換処理部として機能し、ｍビットの入力データに対して非線形処理を実行する。非線形処理部１０３には、入力データに対して変換処理、例えば、非線形処理を行う暗号化回路（Ｓｂｏｘ）が配置される。通常、暗号化装置には、大量のデータを高速に変換するため、複数の暗号化回路が並列に実装されている。しかしながら、認証に用いられる場合など、大量のデータを暗号化する必要がない暗号化については、高速変換を行う必要がない。そこで、本実施形態による暗号化装置は、非線形処理部１０３の暗号化回路の数を好適化することで回路規模の縮小を実現する。非線形処理部１０３についての詳細な説明は、図２及び図３を用いて後述する。
【００２０】
図２は、従来の暗号化装置における非線形処理部の一例を示す図である。ここでは、従来の暗号化装置における非線形処理部の一例について説明する。
【００２１】
非線形処理部２０１は、変換回路としてＳｂｏｘ２０２、２０３、２０４、２０５を含む。非線形処理部２０１は、ｎビットの入力データをｍビットごとに区分けして各Ｓｂｏｘへｍビットの入力データを入力する。Ｓｂｏｘ２０２、２０３、２０４、２０５は、それぞれｍビットの入力データに対して非線形処理を施して出力する。その後、非線形処理部２０１は、各Ｓｂｏｘから出力されたデータをまとめて、ｎビットのデータを出力する。このように、複数のＳｂｏｘを配置することで、非線形処理部２０１は、各Ｓｂｏｘの入力ビット長ｍの整数倍であるｎビットの入力データに対応している。すなわち、入力データのサイズが増加すると、実装されるＳｂｏｘの数も増加することとなる。
【００２２】
図３は、第１の実施形態に対応する暗号化装置における非線形処理部の一例を示す図である。ここでは、本実施形態による非線形処理部の構成について説明する。
【００２３】
非線形処理部１０３は、変換回路としてｍビットのデータを非線形変換するＳｂｏｘ３０３を含む。また、本実施形態によれば、ｎビットの入力データを暗号化するために、非線形処理部１０３には、セレクタ１０２及びラッチ１０４が接続されている。
【００２４】
セレクタ１０２は、入力されたｎビットの入力データをｍビットごとに分割する。例えば、セレクタ１０２は、ｎビットのデータをｍビットのデータである４つの分割データ３０１ａ、３０１ｂ、３０１ｃ、３０１ｄに分割する。さらに、セレクタ１０２は、ステートマシン１０１から出力されるクロックサイクルに従って、例えば、分割データ３０１ａから順に、分割データ３０１ｂ、分割データ３０１ｃ、分割データ３０１ｄと出力する。Ｓｂｏｘ３０３は、順に入力される分割データ３０１ａ、３０１ｂ、３０１ｃ、３０１ｄにそれぞれ非線形処理を施して出力する。
【００２５】
ラッチ１０４は、ｍビットごとに区分けされた領域３０２ａ、３０２ｂ、３０２ｃ、３０２ｄを含み、各領域を独立でラッチする。非線形処理部１０３によって非線形変換された分割データ３０１ａが出力されると、ラッチ１０４には、各領域にそれぞれ非線形変換された分割データ３０１ａを格納する。ここで、ラッチ１０４は、ステートマシン１０１が出力するクロックサイクルに従って、例えば、領域３０２ａに格納された分割データ３０１ａをラッチする。
【００２６】
続いて、非線形変換された分割データ３０１ｂが出力されると、ラッチ１０４には、ラッチされていない状態の領域３０２ｂ、３０２ｃ、３０２ｄに非線形変換された分割データ３０１ｂが格納される。ここで、ラッチ１０４は、クロックサイクルしたがって領域３０２ｂに格納された分割データ３０１ｂをラッチする。同様に、ラッチ１０４は、非線形変換された分割データ３０１ｃ、分割データ３０１ｄを、それぞれ領域３０２ｃ、領域３０２ｄにラッチする。最後に、ラッチ１０４は、ラッチされているｎビット分のデータを出力する。
【００２７】
したがって、本実施形態による非線形処理部１０３は、図２を用いて説明した非線形処理部２０１の処理能力（サイズ）と同等の処理能力を有しながら、Ｓｂｏｘを実装する数を低減することができる。これにより、暗号化回路１００は、回路規模を縮小しうる。
【００２８】
図４は、第１の実施形態に対応する暗号化装置の暗号化における処理フローを示すフローチャートである。ここでは、暗号化回路１００に入力されたｎビットのデータが暗号化されて送信されるまでの流れについて説明する。
【００２９】
暗号化処理が開始されると、ステップＳ４０１において、暗号化回路１００は、入力データに対して予め定められた回数のラウンド処理が既に実行されたか否かを判定する。具体的に、暗号化回路１００は、ステートマシン１０１が管理している処理段数に基づいて判定する。ここで、暗号化回路１００は、入力データに実行されたラウンド処理が予め定められた回数に到達している場合、当該入力データに対する暗号化の処理を終了する。一方、暗号化回路１００は、入力データに実行されたラウンド処理が予め定められた回数に到達していない場合、処理をＳ４０２に遷移させる。
【００３０】
ステップＳ４０２において、受信レジスタ１０５は、受信したｎビットの入力データをセレクタ１０６へ出力する。さらに、セレクタ１０６には、ラッチ１０４が保持しているｎビットのデータが入力される。ステップＳ４０３において、セレクタ１０６は、ステートマシン１０１から入力される処理段数を判定する。ここで、セレクタ１０６は、処理段数が１の場合にＳ４０５の処理を実施し、処理段数が２以上の場合にＳ４０４の処理を実施する。具体的に、ステップＳ４０４及びステップ４０５の処理は、セレクタ１０６に含まれる切り替え部１１１によって実行される。Ｓ４０４において、切り替え部１１１は、ラッチ１０４からの入力データが出力されるように出力を切り替える。
【００３１】
一方、ステップＳ４０５において、切り替え部１１１は、受信レジスタ１０５からの入力データが出力されるように出力を切り替える。したがって、セレクタ１０６は、処理段数に応じて、入力された２つの入力データの何れか一方を選択してラッチ１０７へ出力する。このように制御することで、暗号化回路１００は、入力データに対して繰り返しラウンド処理を実行することとなる。
【００３２】
続いて、ステップＳ４０６において、暗号化回路１００は、ラッチ１０７から出力されたｎビットのデータと、鍵発生部１０８から出力されたｎビットの拡大鍵との和のデータ、例えば、排他的論理和のデータを線形処理部１０９へ入力する。ステップＳ４０７において、線形処理部１０９は、入力されたｎビットのデータに線形処理を施し、セレクタ１０２へ出力する。
【００３３】
ステップＳ４０８において、セレクタ１０２は、入力されたｎビットのデータをｍビットの分割データに分割して、何れか一つの分割データを非線形処理部１０３へ出力する。ｍビットの分割データを受信すると、ステップＳ４０９において、非線形処理部１０３は、入力された分割データに非線形処理を施して、ラッチ１０４へ出力する。ここで、ラッチ１０４は、図３を用いて説明したように、クロックパルスに応じて領域ごとにデータをラッチする。
【００３４】
ステップＳ４１０において、暗号化回路１００は、ラッチ１０４の各領域全てでデータがラッチされているか否かを判定する。暗号化回路１００は、ｎビットのデータがラッチされていない場合に処理をステップＳ４０８に戻し、ｎビットのデータがラッチされている場合に処理をＳ４１１に遷移させる。すなわち、Ｓ４０８及びＳ４０９の処理は、ｎビット分のデータに対して実行されるまで繰り返されることとなる。ラッチ１０４にｎビットのデータがラッチされると、ステップ４１１において、暗号化回路１００は、送信レジスタ１１０へ、暗号化したデータを格納する。
【００３５】
図４に示すＳ４０２からＳ４１１までの処理がラウンド処理となる。したがって、暗号化回路１００は、１つの入力データに対して予め定められた回数に到達するまでラウンド処理を繰り返し実行する。ラウンド処理の繰り返し回数を増やすことにより、入力データは、変換される度合いが大きくなり、不正な復号を困難にさせうる。
【００３６】
以上説明したように、本暗号化装置は、ｎビットの入力データをｍビットごとの分割データに分割し、順に変換処理（例えば、非線形処理）を施すことにより、ｎビットの入力データを暗号化する。これにより、本暗号化装置は、実装する変換回路（例えば、Ｓｂｏｘ）を１つ或いは必要最小限に削減しうる。したがって、本暗号化装置は、実装する変換回路の数を削減させることにより、回路規模を縮小しうる。
【００３７】
なお、本発明は、上記実施形態に限らず様々な変形が可能となる。本暗号化装置は、入力データ若しくはラウンド処理後のフィードバックデータと、暗号化のための鍵との和のデータに対して、線形変換処理及び非線形変換処理を施すようにしてもよい。したがって、本暗号化装置は、ブロック暗号におけるＳＰＮ構造に実装される場合であっても、実装する変換回路の数を１つ又は必要最小限に低減しうる。これにより、本暗号化装置は、実装する変換回路の数を低減させることにより、回路規模を縮小しうる。
【００３８】
また、本暗号化装置は、処理段数に応じて、ラウンド処理を施す入力データを切り替えるようにしてもよい。具体的に、本暗号化装置は、処理段数が１の場合に暗号化回路の外部から入力された入力データを選択し、処理段数が２以上の場合にラウンド処理後のフィードバックされた入力データを選択してラウンド処理を実行する。したがって、本暗号化装置は、回路規模を縮小させるとともに、暗号化の精度を向上させうる。
【００３９】
［第２の実施形態］
以下では、図５及び図６を参照して、第２の実施形態について説明する。本実施形態による暗号化装置は、ブロック暗号におけるＦｅｉｓｔｅｌ構造によって実現される。図５は、第２の実施形態に対応する暗号化装置の暗号化回路を示す図である。なお、図１の説明と重複する技術についての記載は省略する。
【００４０】
暗号化回路５００は、暗号化回路１００と同様の構成要素を含む。ここでは、暗号化回路１００と異なる各構成要素の接続及び処理について説明する。なお、以下では、Ｆｅｉｓｔｅｌ構造を容易に説明するため、入力ビットを２ｎビットとする。したがって、セレクタ１０６には、暗号化回路５００の外部から入力される２ｎビットの入力データと、ラッチ１０７からフィードバックされるラウンド処理後の２ｎビットの入力データとの４ｎビットの入力データが入力される。
【００４１】
さらに、セレクタ１０６により選択されて出力されたデータは、ｎビットの上位ビットデータと、ｎビットの下位ビットデータとに分割されて処理される。これは、Ｆｅｉｓｔｅｌ構造の特徴であり、２分割した入力データの一方を変換させる。本実施形態では、分割されたデータのうち下位ビットデータと、鍵との和のデータが線形処理部１０９へ出力される。その後、線形処理及び非線形処理が施されたｎビットのデータ及び上位ビットデータの和のデータと、分割されたままの下位ビットデータとがラッチ１０７へ入力される。ラッチ１０７は、暗号化された２ｎビットのデータを送信レジスタ１１０と、フィードバックデータとしてセレクタ１０６へ出力する。
【００４２】
図６は、第２の実施形態に対応する暗号化装置の暗号化における処理フローを示すフローチャートである。ここでは、図４の説明と重複しない処理についてのみ説明を記載する。すなわち、以下では、Ｓ６０４、Ｓ６０６、Ｓ６０７及びＳ６１２についての説明を記載する。
【００４３】
ステップＳ６０４において、切り替え部１１１は、処理段数が２以上である場合に、ラッチ１０７からの入力データが出力されるように出力を切り替える。セレクタ１０６から入力データが出力されると、ステップＳ６０６において、暗号化回路５００は、出力された２ｎビットの入力データを、ｎビットごとの上位ビットデータと下位ビットデータとに分割して送信する。
【００４４】
続いて、ステップＳ６０７において、暗号化回路１００は、ｎビットの上位ビットデータと、鍵発生部１０８から出力されたｎビットの拡大鍵との和のデータ、例えば、排他的論理和のデータを線形処理部１０９へ入力する。その後、第１の実施形態と同様にＳ６０８乃至Ｓ６１１の処理で線形処理及び非線形処理が行われる。
【００４５】
ステップＳ６１２において、暗号化回路５００は、ラッチ１０４から出力されたデータ及びＳ６０６で分割された上位ビットデータの和のデータと、Ｓ６０６で分割された下位ビットデータとをラッチ１０７へ入力する。ステップＳ６１３において、ラッチ１０７は、入力された２ｎビットのデータをセレクタ１０６と、送信レジスタ１１０とへ出力する。
【００４６】
以上説明したように、本暗号化装置は、ｎビットの入力データをｍビットごとの分割データに分割し、順に変換処理（例えば、非線形処理）を施すことにより、ｎビットの入力データを暗号化する。これにより、本暗号化装置は、実装する変換回路（例えば、Ｓｂｏｘ）を１つ或いは必要最小限に低減しうる。したがって、本暗号化装置は、実装する変換回路の数を低減させることにより、回路規模を縮小しうる。
【００４７】
なお、本発明は、上記実施形態に限らず様々な変形が可能となる。本暗号化装置は、暗号化するための入力データを上位ビットデータと下位ビットデータとに分割するようにしてもよい。この場合、本暗号化装置は、例えば、分割された下位ビットデータと鍵との和のデータに対して変換処理を行うようにしてもよい。さらに、本暗号化装置は、変換後のデータ及び上位ビットデータの和のデータと、下位ビットデータとをラウンド処理後のデータとして出力するようにしてもよい。したがって、本暗号化装置は、ブロック暗号におけるＦｅｉｓｔｅｌ構造に実装される場合であっても、実装する変換回路の数を１つ又は必要最小限に低減しうる。これにより、本暗号化装置は、実装する変換回路の数を低減させることにより、回路規模を縮小しうる。
【００４８】
このように、本発明は、ブロック暗号におけるＳＰＮ構造及びＦｅｉｓｔｅｌ構造の両方で実現可能である。これにより、本発明は、変換回路の数を低減するとともに、汎用性の高い暗号化装置を提供できよう。また、本暗号化装置は、大量のデータを暗号化する必要のない認証装置などに実装されうる。すなわち、本暗号化装置は、高速化があまり求められない装置に対して適用することにより、回路規模の縮小を実現しうる。また、本暗号化装置は、各使用用途に従って、ラウンド処理の高速化と回路規模の縮小との要望を考慮し、実装する変換回路の数を最適化できよう。
【図面の簡単な説明】
【００４９】
【図１】第１の実施形態に対応する暗号化装置の暗号化回路を示す図である。
【図２】従来の暗号化装置における非線形処理部の一例を示す図である。
【図３】第１の実施形態に対応する暗号化装置における非線形処理部の一例を示す図である。
【図４】第１の実施形態に対応する暗号化装置の暗号化における処理フローを示すフローチャートである。
【図５】第２の実施形態に対応する暗号化装置の暗号化回路を示す図である。
【図６】第２の実施形態に対応する暗号化装置の暗号化における処理フローを示すフローチャートである。
【符号の説明】
【００５０】
１００：暗号化回路
１０１：ステートマシン
１０２：セレクタ
１０３：非線形処理部
１０４：ラッチ
３０１ａ、ｂ、ｃ、ｄ：分割データ
３０２ａ、ｂ、ｃ、ｄ：領域
３０３：Ｓｂｏｘ
【図１】
2008107656.tif 000003
【図２】
2008107656.tif 000004
【図３】
2008107656.tif 000005
【図４】
2008107656.tif 000006
【図５】
2008107656.tif 000007
【図６】
2008107656.tif 000008