(57)【要約】【課題】パイプライン処理により暗号化及び復号処理を行なうディジタル論理回路が実装されたデータ変換装置において、鍵の変更の柔軟性を有するデータ変換装置の提供を目的とする。【解決手段】データ変換装置１００は、入力鍵ＫＬから変換対象データのデータ変換に使用する生成鍵ＫＡをパイプライン処理により生成する鍵生成部１１０と、生成鍵ＫＡを入力し、鍵生成部１１０が生成した次の生成鍵ＫＡを入力するまで入力した生成鍵ＫＡを保持するとともに保持している生成鍵ＫＡを所定のタイミングで出力する生成鍵保持部１４０と、生成鍵保持部１４０が出力した生成鍵ＫＡを入力し、生成鍵ＫＡに基づいてパイプライン処理により鍵スケジュールを実行する鍵スケジュール部１２０と、鍵スケジュール部１２０の鍵スケジュールに従って変換対象データをパイプライン処理により変換する演算部１３０とを備えた。【選択図】図９
2007324733.tif 000002
【特許請求の範囲】
【請求項１】
データ変換の対象である変換対象データと変換対象データのデータ変換に使用する鍵である入力鍵とを入力し、入力鍵を使用して変換対象データのデータ変換を行うデータ変換装置において、
入力鍵から変換対象データのデータ変換に使用する鍵である生成鍵をパイプライン処理により生成する鍵生成部と、
前記鍵生成部が生成した生成鍵を入力し、前記鍵生成部が生成した次の生成鍵を入力するまで入力した生成鍵を保持するとともに入力し保持している生成鍵を所定のタイミングで出力する生成鍵保持部と、
前記生成鍵保持部が出力した生成鍵を入力し、入力した生成鍵に基づいてパイプライン処理により鍵スケジュールを実行する鍵スケジュール部と、
前記鍵スケジュール部が実行する鍵スケジュールに従って変換対象データをパイプライン処理により変換する演算部と
を備えたことを特徴とするデータ変換装置。
【請求項２】
前記演算部は、
所定の排他的論理和の演算を第１ステージと第２ステージとの２つのステージにより実行する回路であって、前記第１ステージを実行する第１ステージ実行部と前記第２ステージを実行する第２ステージ実行部とを有する演算実行回路を備え、
前記第１ステージ実行部は、
４ビット入力可能である１ビット出力の論理演算回路であって３ビット入力１ビット出力として使用される８つの論理演算回路と、前記８つの論理演算回路のそれぞれの出力に設けられた８つのレジスタとから構成され、
前記第２ステージ実行部は、
４ビット入力可能である１ビット出力の論理演算回路であって２ビット入力１ビット出力として使用される４つの論理演算回路と、４ビット入力可能である１ビット出力の論理演算回路であって３ビット入力１ビット出力として使用される４つの論理演算回路と、これら８つの論理演算回路のそれぞれの出力に設けられた８つのレジスタとから構成され、
前記第２ステージ実行部における前記８つの論理演算回路のそれぞれは、
前記第１ステージ実行部の８つのレジスタのうち互いに異なるレジスタの出力を入力とすることを特徴とする請求項１記載のデータ変換装置。
【請求項３】
前記演算部の前記演算実行回路は、
前記所定の排他的論理和として、
【数１】
2007324733.tif 000007
を演算し、Ｚ’１（１）〜Ｚ’８（１）のそれぞれを前記第２ステージ実行部の前記８つのレジスタのそれぞれに出力することを特徴とする請求項２記載のデータ変換装置。
【請求項４】
前記第１ステージ実行部の前記８つの論理演算回路と前記第２ステージ実行部の前記８つの論理演算回路とは、
いずれも排他的論理和回路であることを特徴とする請求項２記載のデータ変換装置。
【請求項５】
前記第１ステージ実行部の３ビット入力１ビット出力として使用される前記８つの排他的論理和回路である第１排他的論理和回路から第８排他的論理和回路のそれぞれは、
１ビットのデータであるＺ１（１）、Ｚ２（１）、Ｚ３（１）、Ｚ４（１）、Ｚ５（１）、Ｚ６（１）、Ｚ７（１）、Ｚ８（１）のうち、
第１排他的論理和回路がＺ６（１）とＺ７（１）とＺ８（１）とを入力し演算して出力し、
第２排他的論理和回路がＺ５（１）とＺ７（１）とＺ８（１）とを入力し演算して出力し、
第３排他的論理和回路がＺ５（１）とＺ６（１）とＺ８（１）とを入力し演算して出力し、
第４排他的論理和回路がＺ５（１）とＺ６（１）とＺ７（１）とを入力し演算して出力し、
第５排他的論理和回路がＺ１（１）とＺ３（１）とＺ４（１）とを入力し演算して出力し、
第６排他的論理和回路がＺ１（１）とＺ２（１）とＺ４（１）とを入力し演算して出力し、
第７排他的論理和回路がＺ１（１）とＺ２（１）とＺ３（１）とを入力し演算して出力し、
第８排他的論理和回路がＺ２（１）とＺ３（１）とＺ４（１）とを入力し演算して出力し、
前記第２ステージ実行部の２ビット入力１ビット出力として使用される前記４つの排他的論理和回路である第９排他的論理和回路から第１２排他的論理和回路と前記第２ステージ実行部の３ビット入力１ビット出力として使用される前記４つの排他的論理和回路である第１３排他的論理和回路から第１６排他的論理和回路とのそれぞれは、
第９排他的論理和回路が第１排他的論理和回路と第５排他的論理和回路との出力を入力し、
第１０排他的論理和回路が第２排他的論理和回路と第６排他的論理和回路との出力を入力し、
第１１排他的論理和回路が第３排他的論理和回路と第７排他的論理和回路との出力を入力し、
第１２排他的論理和回路が第４排他的論理和回路と第８排他的論理和回路との出力を入力し、
第１３排他的論理和回路が第１排他的論理和回路と第５排他的論理和回路と第８排他的論理和回路との出力を入力し、
第１４排他的論理和回路が第２排他的論理和回路と第５排他的論理和回路と第６排他的論理和回路との出力を入力し、
第１５排他的論理和回路が第３排他的論理和回路と第６排他的論理和回路と第７排他的論理和回路との出力を入力し、
第１６排他的論理和回路が第４排他的論理和回路と第７排他的論理和回路と第８排他的論理和回路との出力を入力することを特徴とする請求項４記載のデータ変換装置。
【請求項６】
前記第１ステージ実行部の前記８つの論理演算回路と前記第２ステージ実行部の前記８つの論理演算回路とは、いずれも排他的論理和回路であり、
前記第２ステージ実行部の前記８つの排他的論理回路のそれぞれは、
前記第１ステージ実行部の前記８つの排他的論理回路の出力とは異なる１ビットのデータをさらに入力し、入力した前記１ビットデータをも用いて演算を行うことを特徴とする請求項２記載のデータ変換装置。
【請求項７】
前記第１ステージ実行部の３ビット入力１ビット出力として使用される前記８つの排他的論理和回路である第１排他的論理和回路から第８排他的論理和回路のそれぞれは、
１ビットのデータであるＺ１（１）、Ｚ２（１）、Ｚ３（１）、Ｚ４（１）、Ｚ５（１）、Ｚ６（１）、Ｚ７（１）、Ｚ８（１）のうち、
第１排他的論理和回路がＺ６（１）とＺ７（１）とＺ８（１）とを入力し演算して出力し、
第２排他的論理和回路がＺ５（１）とＺ７（１）とＺ８（１）とを入力し演算して出力し、
第３排他的論理和回路がＺ５（１）とＺ６（１）とＺ８（１）とを入力し演算して出力し、
第４排他的論理和回路がＺ５（１）とＺ６（１）とＺ７（１）とを入力し演算して出力し、
第５排他的論理和回路がＺ１（１）とＺ３（１）とＺ４（１）とを入力し演算して出力し、
第６排他的論理和回路がＺ１（１）とＺ２（１）とＺ４（１）とを入力し演算して出力し、
第７排他的論理和回路がＺ１（１）とＺ２（１）とＺ３（１）とを入力し演算して出力し、
第８排他的論理和回路がＺ２（１）とＺ３（１）とＺ４（１）とを入力し演算して出力し、
前記第２ステージ実行部の２ビット入力１ビット出力として使用される前記４つの排他的論理和回路である第９排他的論理和回路から第１２排他的論理和回路と前記第２ステージ実行部の３ビット入力１ビット出力として使用される前記４つの排他的論理和回路である第１３排他的論理和回路から第１６排他的論理和回路とのそれぞれは、
第９排他的論理和回路が第１排他的論理和回路と第５排他的論理和回路との出力と前記第１ステージ実行部の前記８つの排他的論理回路の出力とは異なる１ビットのデータであるＩ（１）とを入力し演算して出力し、
第１０排他的論理和回路が第２排他的論理和回路と第６排他的論理和回路との出力と前記第１ステージ実行部の前記８つの排他的論理回路の出力とは異なる１ビットのデータであるＪ（１）とを入力し演算して出力し、
第１１排他的論理和回路が第３排他的論理和回路と第７排他的論理和回路との出力と前記第１ステージ実行部の前記８つの排他的論理回路の出力とは異なる１ビットのデータであるＫ（１）とを入力し演算して出力し、
第１２排他的論理和回路が第４排他的論理和回路と第８排他的論理和回路との出力と前記第１ステージ実行部の前記８つの排他的論理回路の出力とは異なる１ビットのデータであるＬ（１）とを入力し演算して出力し、
第１３排他的論理和回路が第１排他的論理和回路と第５排他的論理和回路と第８排他的論理和回路との出力と前記第１ステージ実行部の前記８つの排他的論理回路の出力とは異なる１ビットのデータであるＭ（１）とを入力し演算して出力し、
第１４排他的論理和回路が第２排他的論理和回路と第５排他的論理和回路と第６排他的論理和回路との出力と前記第１ステージ実行部の前記８つの排他的論理回路の出力とは異なる１ビットのデータであるＮ（１）とを入力し演算して出力し、
第１５排他的論理和回路が第３排他的論理和回路と第６排他的論理和回路と第７排他的論理和回路との出力と前記第１ステージ実行部の前記８つの排他的論理回路の出力とは異なる１ビットのデータであるＯ（１）とを入力し演算して出力し、
第１６排他的論理和回路が第４排他的論理和回路と第７排他的論理和回路と第８排他的論理和回路との出力と前記第１ステージ実行部の前記８つの排他的論理回路の出力とは異なる１ビットのデータであるＰ（１）とを入力し演算して出力することを特徴とする請求項６記載のデータ変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化あるいは復号をパイプライン構成により行なうデータ変換装置に関し、ハードウェアによるパイプライン構成を実装するにあたり、効率よく実装し実測面積を抑える装置に関する。
【背景技術】
【０００２】
ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｅｄ  ＩＣ）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）に実装するディジタル論理回路において、回路の処理性能を上げる方法として、図１８に示すように、１ＣＬＫ（クロック）で動作する遅延の大きな組み合わせ回路部分にレジスタを挿入して、数ＣＬＫで実行させるパイプライン処理が有効である（例えば特許文献１）。
【特許文献１】特表２００２−５０８８５１号公報、ブロック符号化方法を実行するための装置
【発明の開示】
【発明が解決しようとする課題】
【０００３】
パイプライン処理を行なう場合、暗号化あるいは復号に使用する鍵を頻繁に変える必要が生じるとう課題がある。また、ＡＳＩＣやＦＰＧＡにディジタル論理回路を実装する場合に、実装面積が大きくなるという課題もある。
【０００４】
この発明は、パイプライン処理により暗号化及び復号処理を行なうディジタル論理回路が実装されたデータ変換装置において、鍵の変更の柔軟性を有するデータ変換装置の提供を目的とする。また、実装面積が抑制されたデータ変換装置の提供を目的とする。
【課題を解決するための手段】
【０００５】
この発明のデータ変換装置は、
データ変換の対象である変換対象データと変換対象データのデータ変換に使用する鍵である入力鍵とを入力し、入力鍵を使用して変換対象データのデータ変換を行うデータ変換装置において、
入力鍵から変換対象データのデータ変換に使用する鍵である生成鍵をパイプライン処理により生成する鍵生成部と、
前記鍵生成部が生成した生成鍵を入力し、前記鍵生成部が生成した次の生成鍵を入力するまで入力した生成鍵を保持するとともに入力し保持している生成鍵を所定のタイミングで出力する生成鍵保持部と、
前記生成鍵保持部が出力した生成鍵を入力し、入力した生成鍵に基づいてパイプライン処理により鍵スケジュールを実行する鍵スケジュール部と、
前記鍵スケジュール部が実行する鍵スケジュールに従って変換対象データをパイプライン処理により変換する演算部と
を備えたことを特徴とする。
【発明の効果】
【０００６】
この発明により、パイプライン処理により暗号化及び復号処理を行なうディジタル論理回路が実装されたデータ変換装置において、鍵の変更の柔軟性を有するデータ変換装置の提供をすることができる。
【発明を実施するための最良の形態】
【０００７】
実施の形態１．
図１〜図１１を用いて実施の形態１を説明する。以下では、パイプライン処理をデータ変換装置に適用した例を、暗号アルゴリズムＣａｍｅｌｌｉａ（登録商標）の鍵長１２８ｂｉｔ版を使用して説明する。なお、Ｃａｍｅｌｌｉａ（登録商標）の詳細は、「１２８ビットブロック暗号Ｃａｍｅｌｌｉａアルゴリズム仕様書（ｈｔｔｐ：／／ｉｎｆｏ．ｉｓｌ．ｎｔｔ．ｃｏ．ｊｐ／ｃｒｙｐｔ／ｃａｍｅｌｌｉａ／ｄｌ／０１ｊｓｐｅｃ．ｐｄｆ）」に詳しい。なお、以下の実施の形態では、「パイプライン」を「Ｐｉｐｅｌｉｎｅ」と表記する場合がある。
【０００８】
図１は、暗号アルゴリズムＣａｍｅｌｌｉａ（登録商標）を実行するための全体構成を示す。Ｃａｍｅｌｌｉａ（登録商標）は、データの暗号化及びデータの復号に必要な鍵の生成を行う鍵生成部、鍵生成部で生成した鍵を演算部で使用する形にする鍵スケジュール部、データの暗号化とデータの復号を実施する演算部の３つの部分で構成されている。
【０００９】
図２は、鍵生成部の構成を示す。鍵生成部は、図２に示すように、１２８ｂｉｔの入力鍵ＫＬを使用して、１２８ｂｉｔの鍵ＫＡ（生成鍵）を生成する。鍵スケジュール部では、入力鍵ＫＬと、鍵生成部で生成した生成鍵ＫＡの計２５６ｂｉｔの鍵に対して、演算部で使用する形にした副鍵を生成する。
【００１０】
図３は、演算部の構成を示す。演算部は１２８ｂｉｔの変換対象データデータ（図３では平文としている）を入力し、鍵スケジュール部で生成した副鍵を使用して図３で示す演算を実施し、１２８ｂｉｔの値（暗号文）を出力する。
【００１１】
図４は、演算部に入力される副鍵の様子を示す図である。また図５は、鍵スケジュール部の構成を示す。
【００１２】
以下に、Ｃａｍｅｌｌｉａ（登録商標）に対して、パイプライン処理を行う場合の例を２つ示す。
【００１３】
（例１）
例１として、図６を示す。Ｃａｍｅｌｌｉａ（登録商標）のような暗号アルゴリズムでは鍵の変更回数は少ないために、暗号化／復号を行う演算部の処理のみを速くする事が多い。図６は、演算部のみにパイプライン処理を行なう構成のデータ変換装置を示す。図６のように演算部のみにパイプライン処理を行い、鍵生成部及び鍵スケジュールは、演算部の遅延に合わせてレジスタを挿入するだけの回路を作成する構成とする場合、演算部の処理速度は速いが、演算部におけるパイプラインの最終ステージの処理が終わるまで鍵を変えることが出来ない。このため、演算部の最終ステージの処理が終わるまで新しい鍵の入力、及び新しい入力鍵で暗号化（あるいは復号）される変換対象データの入力を待つ必要があり、鍵を頻繁に変えることができない。
【００１４】
（例２）
例２として、図７を示す。図７は、鍵生成部、鍵スケジュール部、演算部のすべてにパイプライン処理を実装した構成である。鍵生成部等のすべてにパイプラインを実施することで、毎回鍵を変更した処理が可能であるが、レジスタからデータが出力されるとデータはレジスタからなくなるので、今度は、鍵が同じ場合にも毎回設定しなければならなくなる。すなわち、同じ入力鍵ＫＬを用いる場合でも、毎回、同じ入力鍵ＫＬを鍵生成部に入力しなければならなくなり、秘密を厳守しなければならない鍵を毎回送ることは安全面で好ましくない。
【００１５】
図８は、本実施の形態１におけるデータ変換装置１００の構成図である。図８のデータ変換装置１００が本実施の形態１の特徴である。図７に示した構成を図８に示すデータ変換装置１００の構成とすることで、パイプラインを実装した回路において、鍵を自由に変えるとともに、同一の鍵を使用する場合には鍵を入力する必要のないデータ変換装置を提供することができる。図７に対して図８のデータ変換装置１００における改変点は、以下の通りである。
【００１６】
データ変換装置１００は、鍵生成部１１０、鍵スケジュール部１２０及び演算部１３０の３つすべてをパイプライン実装とし、図７の構成に対して、さらに、鍵生成部１１０と鍵スケジュール部１２０との間に、鍵生成を終えた値か、以前の鍵生成後の値を選択する２−１セレクタ１４１と、この２−１セレクタ１４１の出力を保持するセレクタ出力保持レジスタ１４２とを有する「生成鍵保持部１４０」を備える構成とした。この「生成鍵保持部１４０」を備えることが特徴である。構成２−１セレクタ１４１の選択信号には、鍵の入力信号を鍵生成のパイプラインステージ分遅らせたものを使用し、選択信号の値が有意な場合に鍵生成を終えた値を選択する構成とする。詳細な構成は図９に示している。
【００１７】
図９は、図８に示したデータ変換装置１００の具体的なハードウェア実装例を示す。図９のデータ変換装置１００は、ハードウェアによってアルゴリズムＣａｍｅｌｌｉａ（登録商標）を実行する装置である。図９に示すように、
（１）鍵生成部１１０は、Ａ−ステージ（Ａ個のステージ）から構成されるパイプラインを持つ。
（２）鍵スケジュール部１２０は、「（Ｂ＋２）−ステージ」（Ｂ＋２個のステージ）から構成されるパイプラインを持つ。
（３）演算部１３０は、Ｂ−ステージ（Ｂ個のステージ）から構成されるパイプラインを持ち、データ（変換対象データ）の暗号化／復号をおこなう。ここで、鍵スケジュール部１２０は「Ｂ＋２」個のステージ数であり、演算部１３０が「Ｂ個のステージ」というようにステージ数が異なるのは、鍵スケジュール部１２０に、暗号化処理か復号処理かを判断するステージが２つあることによる。
（４）生成鍵保持部１４０は、２−１セレクタ１４１と、２−１セレクタ１４１の出力を保持するセレクタ出力保持レジスタ１４２とを備える。生成鍵保持部１４０は、鍵生成部１１０が生成した生成鍵を入力し、鍵生成部１１０が生成した次の生成鍵を入力するまで入力した生成鍵を保持するとともに入力し保持している生成鍵を所定のタイミングで出力する。
【００１８】
（鍵生成部１１０）
鍵生成部１１０は、入力された１２８ｂｉｔの入力鍵ＫＬを使い、Ａクロックかけて生成鍵ＫＡを生成する。
【００１９】
（生成鍵保持部１４０）
入力鍵ＫＬ、生成鍵ＫＡは、２−１セレクタ１４１に入力される選択信号であって、Ａ個のレジスタからなる選択信号用レジスタ群１５０を通った鍵入力イネーブル（選択信号）により選択される。セレクタ出力保持レジスタ１４２は生成鍵ＫＡ、入力鍵ＫＬを保持する。
【００２０】
（鍵スケジュール部１２０）
セレクタ出力保持レジスタ１４２に保持された入力鍵ＫＬ、生成鍵ＫＡは、鍵スケジュール部１２０において、「（Ｂ＋２）−ステージ」のパイプライン回路を通る。そのパイプライン処理された回路から出力された入力鍵ＫＬ、生成鍵ＫＡは、演算部１３０のタイミングに合わせて、必要な分だけ循環シフトされ、鍵スケジュール部１２０の備える２−１セレクタで、暗号化／復号選択信号（ＭＯＤＥ）により、暗号化もしくは復号で必要な鍵として選択される。その値が、副鍵として、演算部１３０に入力される。
【００２１】
（演算部１３０）
演算部１３０では、鍵スケジュール部１２０で生成された副鍵を使用し、「Ｂ−ステージ」のパイプラインにより暗号化／復号を行う。演算部１３０では、新しい入力鍵をもとに暗号化／復号が可能になるのは、鍵を入力してから、（Ａ＋２）クロック後である（２クロック分の相違は、前記の暗号化／復号の判定の２つのステージ文である。）その目安となる信号が鍵設定準備完了信号（ＫＧＥＮＤ）である。具体的な動作は後述するが、ＫＧＥＮＤが”Ｈ”になった時に初めて、鍵入力イネーブルが“Ｈ”の時に入力した鍵を使用しての暗号化／復号が可能となり、それ以前の処理は、その前に設定した鍵での演算が行われる。
【００２２】
図９のデータ変換装置１００の特徴は、前述のように鍵生成部１１０と鍵スケジュールとの間に生成鍵保持部１４０を設けた点にある。生成鍵保持部１４０の動作を説明する。
（１）まず、入力鍵ＫＬと鍵入力イネーブル（ＫＹＥＮ）が同じタイミングで入力される。すなわち、同じタイミングで、入力鍵ＫＬが鍵生成部１１０に入力され、鍵入力イネーブル（ＫＹＥＮ）が選択信号用レジスタ群１５０に入力される。
（２）鍵生成部１１０はＡ個のステージであり、また、選択信号用レジスタ群１５０は鍵入力イネーブル（ＫＹＥＮ）をＡ個のレジスタを通すので、鍵入力イネーブル（ＫＹＥＮ）と、生成鍵ＫＡ（入力鍵ＫＬも同時である）とは同じタイミングで２−１セレクタ１４１に入力される。
（３）２−１セレクタ１４１は、鍵入力イネーブル（ＫＹＥＮ）と、生成鍵ＫＡ（入力鍵ＫＬも同時である）とが同時に入力された場合、鍵入力イネーブル（ＫＹＥＮ）を入力したので、生成鍵ＫＡと入力鍵ＫＬとをセレクタ出力保持レジスタ１４２に出力する。
（４）セレクタ出力保持レジスタ１４２は、次のクロックで、保持している生成鍵ＫＡと入力鍵ＫＬとを出力する。このとき、セレクタ出力保持レジスタ１４２が出力した生成鍵ＫＡと入力鍵ＫＬとは鍵スケジュール部１２０に送られるとともに、２−１セレクタ１４１にも送られる。この場合、２−１セレクタ１４１は、鍵入力イネーブル（ＫＹＥＮ）が入力されない限り、この入力した生成鍵ＫＡと入力鍵ＫＬとを出力する。この構成により、次の鍵入力イネーブル（ＫＹＥＮ−１）が入力されるまで、生成鍵保持部１４０には、現在の生成鍵ＫＡと入力鍵ＫＬとが保持されることとなる。
（５）次の鍵入力イネーブル（ＫＹＥＮ−１）の選択信号用レジスタ群１５０への入力と、次の入力鍵ＫＬ−１の鍵生成部１１０への入力とは、同じタイミングで行なわれる。これにより、２−１セレクタ１４１への次の生成鍵ＫＡ−１（及び次の入力鍵ＫＬ−１）の入力と、次の鍵入力イネーブル（ＫＹＥＮ−１）との入力とは同じタイミングである。また、これらと同じタイミングで、セレクタ出力保持レジスタ１４２から生成鍵ＫＡと入力鍵ＫＬとが２−１セレクタ１４１へ入力される。この場合、２−１セレクタ１４１は、次の鍵入力イネーブル（ＫＹＥＮ−１）を入力するので、次の生成鍵ＫＡ−１（及び次の入力鍵ＫＬ−１）を選択して出力し、セレクタ出力保持レジスタ１４２から出力された生成鍵ＫＡと入力鍵ＫＬとは選択しない。
（６）以上の動作により、鍵を柔軟に変更するとともに、また、同じ鍵を用いる場合には、鍵を入力する必要がなくなる。
【００２３】
次に、入力鍵ＫＬを連続して入力する場合を例として、その動作をタイムチャートを用いて説明する。
【００２４】
図１０は、１ブロック（１２８ｂｉｔ）ごとに鍵を変える場合のタイムチャートを示す。
【００２５】
鍵入力イネーブル信号（ＫＹＥＮ）により１クロック目に入力された１２８ｂｉｔの入力鍵「（ＫＥＹ）（ａ）」は、図１０に示すように、「Ａ＋２クロック」後に暗号化／復号で使用出来る状態となり、「Ａ＋３クロック」目に入力された処理前データ「（ＩＤＡＴ）（１）」の鍵として使用される。
【００２６】
また、続いて、２クロック目に入力された１２８ｂｉｔの入力鍵「（ＫＥＹ）（ｂ）」は、入力鍵「（ＫＥＹ）（ａ）」の場合と同様に、「Ａ＋２クロック」後に暗号化／復号できる状態となり、「Ａ＋４クロック」目で入力された処理前データ「（ＩＤＡＴ）（２）」の鍵として使用される。
【００２７】
同じようにして、３クロック目に入力された１２８ｂｉｔの鍵「（ＫＥＹ）（ｃ）」は、「Ａ＋２クロック」後に暗号化／復号できる状態となり、「Ａ＋５クロック」目で入力された処理前データ「（ＩＤＡＴ）（２）」の鍵として使用される。図１０のタイミングチャートでは、入力鍵「（ＫＥＹ）（ａ）」と鍵入力イネーブル信号（ＫＹＥＮ）とは、図９の説明で述べたように、それぞれ鍵生成部１１０、選択信号用レジスタ群１５０に、同時に入力される。これにより生成鍵保持部１４０により、生成鍵ＫＡ及び入力鍵ＫＬを更新することができる。
【００２８】
入力された処理前データは、図１０に示すように、Ｂクロックかけて演算が行われ、入力した順番と同じ順序で、出力が行われる。
【００２９】
次に図１１を用いてブロックごとに鍵を変える場合を説明する。図１１は、ｎブロックごとに鍵を変える場合のタイムチャートである。即ち、図１０では入力鍵ＫＬを連続して投入したのに対して、図１１では、間隔をあけて入力鍵を投入する場合を説明する。
【００３０】
鍵入力イネーブル信号（ＫＹＥＮ）により１クロック目に入力された１２８ｂｉｔの入力鍵「（ＫＥＹ）（ａ）」は、図１１に示すように、「Ａ＋２クロック」後に暗号化／復号で使用出来る状態となり、「Ａ＋３クロック」目に入力された処理前データ「（ＩＤＡＴ）（ａ−１）」の鍵として使用される。
【００３１】
２クロック目、３クロック目は、新しい鍵は入力されない。よって、「Ａ＋４クロック」目と「Ａ＋５クロック」目に入力した処理前データ（変換対象データ）を使用した演算は、「Ａ＋３クロック」目の演算と同じ「鍵（ａ）」を使用して、処理が行われる。これは図９において、生成鍵保持部１４０が入力鍵「（ＫＥＹ）（ａ）」と、入力鍵「（ＫＥＹ）（ａ）」をもとに鍵生成部１１０により生成された生成鍵とを保持している状態である。
【００３２】
４クロック目では、鍵入力イネーブル信号により新しい１２８ｂｉｔの入力鍵「（ＫＥＹ）（ｂ）」が入力され、その入力鍵は、「Ａ＋５クロック」後に暗号化／復号で使用できる状態になり、「Ａ＋６クロック」目に入力された処理前データ「（ＩＤＡＴ）（ｂ−１）」の鍵として使用される。これは入力鍵「（ＫＥＹ）（ａ）」の場合と同様である。
【００３３】
５クロック目、６クロック目は、新しい鍵の入力はない。よって、「Ａ＋７クロック」目と「Ａ＋８クロック目」に入力した処理前データを使用した演算は、「Ａ＋６クロック」目の演算と同じ「鍵（ｂ）」を使用して処理が行われる。
【００３４】
入力された処理前データは、Ｂクロックかけて演算が行われ、入力した順番と同じ順序で、出力が行われる。
【００３５】
実施の形態１のデータ変換装置は、生成鍵保持部１４０を備えたので、鍵を柔軟に変更できるとともに、また、同じ鍵を用いる場合は、鍵を入力することなくデータ変換を行なうことができる。
【００３６】
実施の形態２．
次に図１２〜図１７を用いて実施の形態２を説明する。実施の形態２は、所定の排他的論理和の演算を行なう場合に実装面積を抑制するディジタル回路の実装に関するものである。
【００３７】
この実施の形態２では、例えばＦＰＧＡ上でパイプライン処理を実装する場合において、この実装の回路規模を抑えた高速な処理を提供可能なＣａｍｅｌｌｉａ（登録商標）の実装方式について述べる。
【００３８】
ＦＰＧＡ中には、図１２に示す回路が多数存在する。以下、図１２に示す回路を「単位回路Ｓ」と呼ぶこととする。図１２に示すように、単位回路Ｓは、例えば排他的論理和などの演算回路を設定可能な回路であるＬＵＴ（Ｌｏｏｐ−ｕｐ  Ｔａｂｌｅ）とＬＵＴの出力に接続されたレジスタとの組を２組備えた構成である。この単位回路Ｓに対して、ユーザーが設計した論理回路が実装される。単位回路Ｓは、出力にレジスタを含むため、この単位回路Ｓの出力を必ずレジスタに出力させるようなパイプライン回路を作成すれば、回路の配置配線を考えない場合の最速（一番遅延の小さい）回路の作成が可能である。
【００３９】
ユーザーが設計した論理回路は、単位回路Ｓ中のＬＵＴに実装される。単位回路ＳのＬＵＴでは、入力が４ｂｉｔ以下で１ｂｉｔ出力の演算であれば、排他的論理和の他あらゆる論理演算が行える回路になっている。よって、入力が４ｂｉｔ以下の演算を行うごとにレジスタを挿入するパイプライン回路を作成することで最速回路ができる。
【００４０】
図１２の単位回路Ｓを用いてＣａｍｅｌｌｉａ（登録商標）を実装したパイプライン処理を構成すると、構成方法によっては、単位回路Ｓのうち、レジスタの使用のみで使われる単位回路Ｓが出現する場合がある。それは、Ｃａｍｅｌｌｉａ（登録商標）のようなＦｅｉｓｔａｌ構造の暗号アルゴリズムでは、演算を行っているパスに対して演算を行っていないパスが多く存在するためである。しかし、単位回路Ｓの内部遅延は、内部でどんな複雑な演算を行っていても同じであるので、レジスタの使用のみで単位回路Ｓを消費する実装は効率が悪い。
【００４１】
（Ｃａｍｅｌｌｉａ（登録商標）のＰ関数のＰｉｐｅｌｉｎｅ実装）
以下では、Ｃａｍｅｌｌｉａ（登録商標）のＰ関数のＰｉｐｅｌｉｎｅ実装を対象として説明する。図１３は、図３におけるバイト単位線形変換Ｐ関数（以下、Ｐ関数という）の詳細である。例えば、「Ｐ関数」とは、図１３で示される演算処理である。具体的な式は後述する。なお、Ｐ関数は、図３及び図９に示すように、演算部で実行される。また、鍵生成部でもＰ関数は、存在する。図２のＦ関数中に実装されている。
【００４２】
図１３に示したＣａｍｅｌｌｉａ（登録商標）のＰ関数を具体的に式で表すと、次のＺ’１〜Ｚ’８の式となる。なおＺ’１〜Ｚ’８は、１バイトのデータを示し、Ｚ’１（１）〜Ｚ’８（１）とサフィクス「（１）」を付した場合は、Ｚ’１〜Ｚ’８の同一位置における１ビットデータを示すものとする。
【００４３】
【数２】
2007324733.tif 000003
【００４４】
以下では、Ｃａｍｅｌｌｉａ（登録商標）のＰ関数のＰｉｐｅｌｉｎｅ実装を対象として、「第１のケース」と「第２のケース」との２つの場合について説明する。この「第１のケース」と「第２のケース」とが本実施の形態２の特徴である。
【００４５】
「第１のケース」は、図１３（あるいは上記式）に示したＰ関数に対して図１２の単位回路Ｓを複数用いた実装であって、レジスタのみで使用される単位回路Ｓが存在しない実装の構成に関する。
【００４６】
また、「第２のケース」は、「第１のケース」の構成をもとに、Ｐ関数とその後に演算するＦｅｉｓｔａｌの排他的論理和とを共有化した構成である。
【００４７】
（第１のケース）
まず「第１のケース」について説明する。図１３に示すＰ関数に対してパイプライン処理を行い、図１２の単位回路Ｓを複数用いたＦＰＧＡへの実装を行うと、レジスタのみしか使用していない単位回路Ｓが多く出現する場合が起こりうる。このようなレジスタのみしか使用していない単位回路Ｓが出現する状況を解消するために、図１３のＣａｍｅｌｌｉａ（登録商標）のＰ関数をＰｉｐｅｌｉｎｅで切る際に、排他的論理和で同じ値を２回演算すると打ち消しあうという性質（図１４）を使うことにより、２ステージのパイプライン実装を行った際に、各排他的論理和の演算を並列にバランスよく処理させる。すなわち、第１ステージ目、第２ステージ目のいずれのステージにおいても単位回路Ｓが演算に使用されることなく直接レジスタにつながっているパスのない構成とする。これにより、回路規模を縮小する。これについては図１６の説明で後述する。
【００４８】
上記のＺ’１〜Ｚ’８の式からわかるように、Ｐ関数は、１バイトのデータのうち４バイトが６入力１出力、残りの４バイトが５入力１出力で構成されている。４入力１出力のＦＰＧＡのＬＵＴに対してこれらを実装し、なおかつ配線遅延を考えない時に最速となるパイプライン実装を実現するためには、最低でも、２ステージ必要になる。なお、ＬＵＴへの入力は当然ながら上記Ｚ１〜Ｚ８の同一ビットにおける１ビットごとの入力である。
【００４９】
図１５は、レジスタのみとして使用する単位回路Ｓを含む場合の演算実行回路の一例を示す図である。図１５に示すように、一つの排他的論理和とこの排他的論理回路の出力に接続されたレジスタとの組の２組が単位回路Ｓに相当する。図１５では、２つ分の単位回路Ｓがレジスタのみで使用されており、実装面積が拡大している。Ｚ１（１）〜Ｚ４（１）は、演算ステージを合わせるためにレジスタに蓄える必要があり、結果としてＬＵＴで演算をしないレジスタのみで単位回路Ｓを消費する部分が存在してしまい、回路規模が増大する。
【００５０】
図１５に対して、図１４に示した排他的論理和の性質を用いることで、レジスタのみで使用される単位回路Ｓをなくすことができる。
【００５１】
図１６は、実施の形態２の演算実行回路２００の構成を示す図である。この演算実行回路２００は、図１５に対してレジスタのみで使用される単位回路Ｓをなくした構成である。なお、図１６では単位回路ＳのＬＵＴを排他的論理和回路とした場合を示している。しかし、上記で示したＰ関数（Ｚ’１〜Ｚ’８の式）を実行するに際し、「レジスタのみで使用される単位回路Ｓをなくした構成」が成立するのであれば、単位回路ＳのＬＵＴを排他的論理和回路以外の他の論理演算回路としても構わない。
【００５２】
（データ変換装置１００の構成）
図９に示したデータ変換装置１００の演算部１３０は、図１６の演算実行回路２００を備える。演算実行回路２００は、所定の排他的論理和の演算を第１ステージと第２ステージとの２つのステージにより実行する回路であって、第１ステージを実行する第１ステージ実行部２１０と第２ステージを実行する第２ステージ実行部２２０とを有する。
【００５３】
第１ステージ実行部２１０は、４ビット入力可能である１ビット出力の排他的論理和回路であって３ビット入力１ビット出力として使用される８つの排他的論理和回路である第１排他的論理和回路〜第８排他的論理和回路と、前記８つの排他的論理和回路のそれぞれの出力に設けられた８つのレジスタであるレジスタＡ〜レジスタＨとから構成される。
【００５４】
第２ステージ実行部２２０は、４ビット入力可能である１ビット出力の排他的論理和回路であって２ビット入力１ビット出力として使用される４つの排他的論理和回路である第９排他的論理和回路〜第１２排他的論理和回路と、４ビット入力可能である１ビット出力の排他的論理和回路であって３ビット入力１ビット出力として使用される４つの排他的論理和回路である第１３排他的論理和回路〜１６排他的論理和回路と、これら８つの排他的論理和回路のそれぞれの出力に設けられた８つのレジスタであるレジスタＡ’〜レジスタＨ’とから構成される。第２ステージ実行部２２０における８つの排他的論理和回路のそれぞれは、第１ステージ実行部２１０の８つのレジスタのうち互いに異なるレジスタの出力を入力とする。なお、前記で「４ビット入力可能である１ビット出力の排他的論理和回路」とは、図１２のＬＵＴを排他的論理回路として設定したことを意味する。また、図１５と同様に、一つの排他的論理和とこの排他的論理回路の出力に接続されたレジスタとの組の２組が「単位回路Ｓ」に相当する。
【００５５】
図１６の演算実行回路２００の実行する演算（Ｐ関数）について説明する。演算実行回路２００では、図１５に対して、図１４の排他的論理和の性質を用いることにより第２ステージの排他的論理和の演算を工夫し、レジスタのみで使用される単位回路Ｓをなくした。第１ステージの演算は図１５と同様である。
【００５６】
第１ステージについて、第１ステージ実行部２１０は次のＡ〜Ｈの演算を行なう。
【００５７】
【数３】
2007324733.tif 000004
【００５８】
第２ステージについて、第２ステージ実行部２２０は次のＺ’１〜Ｚ’８の演算を行なう。
【００５９】
【数４】
2007324733.tif 000005
【００６０】
第２ステージの演算では、Ｚ’５、Ｚ’６、Ｚ’７、Ｚ’８のそれぞれにおいて、同じもの同しが消えることにより実装が簡潔となり、レジスタのみで使用される単位回路Ｓがなくなっている。例えばＺ’５では、Ｚ３、Ｚ４が消えている。Ｚ’６、Ｚ’７、Ｚ’８についても同様である。
【００６１】
このように図１６の演算実行回路２００では、
第１排他的論理和回路がＺ６（１）とＺ７（１）とＺ８（１）とを入力し演算して出力し、
第２排他的論理和回路がＺ５（１）とＺ７（１）とＺ８（１）とを入力し演算して出力し、
第３排他的論理和回路がＺ５（１）とＺ６（１）とＺ８（１）とを入力し演算して出力し、
第４排他的論理和回路がＺ５（１）とＺ６（１）とＺ７（１）とを入力し演算して出力し、
第５排他的論理和回路がＺ１（１）とＺ３（１）とＺ４（１）とを入力し演算して出力し、
第６排他的論理和回路がＺ１（１）とＺ２（１）とＺ４（１）とを入力し演算して出力し、
第７排他的論理和回路がＺ１（１）とＺ２（１）とＺ３（１）とを入力し演算して出力し、
第８排他的論理和回路がＺ２（１）とＺ３（１）とＺ４（１）とを入力し演算して出力する。
また、
第９排他的論理和回路が第１排他的論理和回路と第５排他的論理和回路との出力を入力し演算して出力し、
第１０排他的論理和回路が第２排他的論理和回路と第６排他的論理和回路との出力を入力し演算して出力し、
第１１排他的論理和回路が第３排他的論理和回路と第７排他的論理和回路との出力を入力し演算して出力し、
第１２排他的論理和回路が第４排他的論理和回路と第８排他的論理和回路との出力を入力し演算して出力し、
第１３排他的論理和回路が第１排他的論理和回路と第５排他的論理和回路と第８排他的論理和回路との出力を入力し演算して出力し、
第１４排他的論理和回路が第２排他的論理和回路と第５排他的論理和回路と第６排他的論理和回路との出力を入力し演算して出力し、
第１５排他的論理和回路が第３排他的論理和回路と第６排他的論理和回路と第７排他的論理和回路との出力を入力し演算して出力し、
第１６排他的論理和回路が第４排他的論理和回路と第７排他的論理和回路と第８排他的論理和回路との出力を入力し演算して出力する。
【００６２】
この構成により、レジスタのみで使用される単位回路Ｓをなくすことができ、実装面積を抑制することができる。
【００６３】
（第２のケース）
次に「第２のケース」について説明する。図１７は、「第２のケース」の場合の演算実行回路２００の回路図である。
【００６４】
図１６に示したパイプライン処理の第２ステージ目では、単位回路Ｓにおいて、４入力１出力のＬＵＴに対して、１入力、あるいは２入力使用していない入力が存在する。そこで、Ｐ関数の後に続く、Ｃａｍｅｌｌｉａ（登録商標）の他要素との共有化を考え、図１７では、Ｐ関数とその後に演算するＦｅｉｓｔａｌの排他的論理和とを共有化した構成とする。すなわち、図１６の２ステージ目では、２入力１出力の排他的論理和及び３入力１出力の排他的論理和を使用している。４入力１出力のＬＵＴに対して、１〜２入力余っている。Ｃａｍｅｌｌｉａ（登録商標）の構造（図３）より、Ｐ関数の出力は、Ｆｅｉｓｔａｌの排他的論理和を行うので、この排他的論理和演算を図１６の２ステージに加える構成とした。具体的に説明すれば、図３においてＦ関数１０を例にとると、Ｆ関数１０の出力は、図３に示すように、図１６のレジスタＡ〜レジスタＨが格納していたデータであり、これらのデータと６４ビットデータとが排他的論理和される。図１６に対して、この演算を実行する回路構成が図１７の第２ステージ実行部２２０である。
【００６５】
図１７の第２ステージ実行部２２０は、以下の演算を実行する。
【００６６】
【数５】
2007324733.tif 000006
【００６７】
すなわち、図１７の演算実行回路２００では、
１ビットのデータであるＺ１（１）、Ｚ２（１）、Ｚ３（１）、Ｚ４（１）、Ｚ５（１）、Ｚ６（１）、Ｚ７（１）、Ｚ８（１）のうち、
第１排他的論理和回路がＺ６（１）とＺ７（１）とＺ８（１）とを入力し演算して出力し、
第２排他的論理和回路がＺ５（１）とＺ７（１）とＺ８（１）とを入力し演算して出力し、
第３排他的論理和回路がＺ５（１）とＺ６（１）とＺ８（１）とを入力し演算して出力し、
第４排他的論理和回路がＺ５（１）とＺ６（１）とＺ７（１）とを入力し演算して出力し、
第５排他的論理和回路がＺ１（１）とＺ３（１）とＺ４（１）とを入力し演算して出力し、
第６排他的論理和回路がＺ１（１）とＺ２（１）とＺ４（１）とを入力し演算して出力し、
第７排他的論理和回路がＺ１（１）とＺ２（１）とＺ３（１）とを入力し演算して出力し、
第８排他的論理和回路がＺ２（１）とＺ３（１）とＺ４（１）とを入力し演算して出力する。
また、
第９排他的論理和回路が第１排他的論理和回路と第５排他的論理和回路との出力と第１ステージ実行部２１０の８つの排他的論理回路の出力とは異なる１ビットのデータであるＩ（１）とを入力し演算して出力し、
第１０排他的論理和回路が第２排他的論理和回路と第６排他的論理和回路との出力と第１ステージ実行部２１０の８つの排他的論理回路の出力とは異なる１ビットのデータであるＪ（１）とを入力し演算して出力し、
第１１排他的論理和回路が第３排他的論理和回路と第７排他的論理和回路との出力と第１ステージ実行部２１０の８つの排他的論理回路の出力とは異なる１ビットのデータであるＫ（１）とを入力し演算して出力し、
第１２排他的論理和回路が第４排他的論理和回路と第８排他的論理和回路との出力と第１ステージ実行部２１０の８つの排他的論理回路の出力とは異なる１ビットのデータであるＬ（１）とを入力し演算して出力し、
第１３排他的論理和回路が第１排他的論理和回路と第５排他的論理和回路と第８排他的論理和回路との出力と第１ステージ実行部２１０の８つの排他的論理回路の出力とは異なる１ビットのデータであるＭ（１）とを入力し演算して出力し、
第１４排他的論理和回路が第２排他的論理和回路と第５排他的論理和回路と第６排他的論理和回路との出力と第１ステージ実行部２１０の８つの排他的論理回路の出力とは異なる１ビットのデータであるＮ（１）とを入力し演算して出力し、
第１５排他的論理和回路が第３排他的論理和回路と第６排他的論理和回路と第７排他的論理和回路との出力と第１ステージ実行部２１０の８つの排他的論理回路の出力とは異なる１ビットのデータであるＯ（１）とを入力し演算して出力し、
第１６排他的論理和回路が第４排他的論理和回路と第７排他的論理和回路と第８排他的論理和回路との出力と第１ステージ実行部２１０の８つの排他的論理回路の出力とは異なる１ビットのデータであるＰ（１）とを入力し演算して出力する。
【００６８】
この「第２のケース」の構成により、実装面積をさらに減少することができる。
【００６９】
実施の形態２のデータ変換装置では、第２ステージ実行部２２０における８つの排他的論理和回路のそれぞれが、第１ステージ実行部２１０の８つのレジスタのうち互いに異なるレジスタの出力を入力とするので、回路規模を低減することができる。
【００７０】
実施の形態２のデータ変換装置では、第２ステージ実行部２２０における８つの排他的論理和回路のそれぞれが、第１ステージ実行部２１０の８つの排他的論理回路の出力とは異なる１ビットのデータをさらに入力し、入力した前記１ビットデータをも用いて演算を行うので、回路規模を低減することができる。
【００７１】
以上の実施の形態では、鍵とデータとを入力し、入力した鍵を使用して入力したデータの暗号化とデータの復号の少なくともいずれかを行うデータ変換装置であって、上記データ変換装置は、データの暗号化及びデータの復号に必要な鍵の生成を行う鍵生成部、鍵生成部で生成した鍵を演算部で使用する形にする鍵スケジュール部、データの暗号化とデータの復号を行う演算部を保有した回路であり、鍵生成部、鍵スケジュール部、演算部がパイプラインもしくはインナーパイプライン実装されている場合に、鍵生成部と鍵スケジュール部の間に、鍵生成を終えた値か、以前の鍵生成後の値を選択していずれかを保持する機能を持っていることを特徴とするデータ変換装置を説明した。
【００７２】
以上の実施の形態では、４ｂｉｔ入力１ｂｉｔ出力以内に抑えるパイプライン実装を８ｂｉｔの入力、８ｂｉｔの出力の排他的論理和演算に適用した時に、２つのステージで実現し、第１ステージ目は、３ｂｉｔ入力１ｂｉｔ出力の排他的論理和を８つ、第２ステージ目は、２ｂｉｔ入力１ｂｉｔ出力の排他的論理和４つと３ｂｉｔ入力１ｂｉｔ出力の排他的論理和４つで構成される各排他的論理和演算を実施し、第２ステージ目の演算は、第１ステージ目の出力のみを使用していて演算を行わず直接レジスタにつながっているパスがないことを特徴とするデータ変換装置を説明した。
【００７３】
以上の実施の形態では、第２ステージ目で第１ステージの演算結果と異なる値とを用いて排他的論理和を行う事を特徴とするデータ変換装置を説明した。
【図面の簡単な説明】
【００７４】
【図１】実施の形態１におけるアルゴリズムの全体構成を示す図。
【図２】実施の形態１における鍵生成部の構成を示す図。
【図３】実施の形態１における演算部の構成を示す図。
【図４】実施の形態１における演算部への副鍵の入力状況を示す図。
【図５】実施の形態１における鍵スケジュール部の構成を示す図。
【図６】実施の形態１における演算部のみパイプライン化した構成を示す図。
【図７】実施の形態１における鍵生成部、鍵スケジュール部、演算部をパイプライン化した図。
【図８】実施の形態１におけるデータ変換装置１００のブロック図。
【図９】実施の形態１におけるデータ変換装置１００の具体的な構成図。
【図１０】実施の形態１におけるデータ変換装置１００の動作を示すタイミングチャート。
【図１１】実施の形態１におけるデータ変換装置１００の動作を示す別のタイミングチャート。
【図１２】実施の形態２における単位回路Ｓを示す図。
【図１３】実施の形態２におけるＰ関数を示す図。
【図１４】実施の形態２における排他的論理和の等価性を示す図。
【図１５】実施の形態２における単位回路Ｓをレジスタのみに使用する場合を示す図。
【図１６】実施の形態２における演算実行回路２００の回路構成を示す図。
【図１７】実施の形態２における演算実行回路２００の別の回路構成を示す図。
【図１８】従来技術を示す図。
【符号の説明】
【００７５】
ＫＡ  生成鍵、ＫＬ  入力鍵、Ｓ  単位回路、１０  Ｆ関数、１００  データ変換装置、１１０  鍵生成部、１２０  鍵スケジュール部、１３０  演算部、１４０  生成鍵保持部、１４１  ２−１セレクタ、１４２  セレクタ出力保持レジスタ、１５０  選択信号用レジスタ群、２００  演算実行回路、２１０  第１ステージ実行部、２２０  第２ステージ実行部。
【図１】
2007324733.tif 000008
【図２】
2007324733.tif 000009
【図３】
2007324733.tif 000010
【図４】
2007324733.tif 000011
【図５】
2007324733.tif 000012
【図６】
2007324733.tif 000013
【図７】
2007324733.tif 000014
【図８】
2007324733.tif 000015
【図９】
2007324733.tif 000016
【図１０】
2007324733.tif 000017
【図１１】
2007324733.tif 000018
【図１２】
2007324733.tif 000019
【図１３】
2007324733.tif 000020
【図１４】
2007324733.tif 000021
【図１５】
2007324733.tif 000022
【図１６】
2007324733.tif 000023
【図１７】
2007324733.tif 000024
【図１８】
2007324733.tif 000025