(57)【要約】【課題】  情報システムにおいて、さまざまなセキュリティ機能を実現するために必要な暗号プリミティブを、最小限の資源とコストとで実現し、実装する。【解決手段】  データ変換手段に入力されるメッセージと鍵データと定数データとの入力タイミング、および、データ変換手段における変換後のデータの出力タイミングを制御することにより、複数セキュリティメカニズムを実現するデータ変換装置を提供する。【選択図】  図１
2005309148.tif 000002
【特許請求の範囲】
【請求項１】
入力されるデータに予め定められた処理を施して出力するデータ変換装置であって、
前記データに変換処理を施すデータ変換手段と、
前記データ変換手段への入力および前記データ変換手段からの出力を制御する制御手段と、
を備えることを特徴とするデータ変換装置。
【請求項２】
請求項１記載のデータ変換装置であって、
予め定められた定数を保持する定数保持手段をさらに備え、
前記制御手段は、前記入力の制御として前記データおよび前記定数の前記データ変換手段への入力を制御すること、
を特徴とするデータ変換装置。
【請求項３】
請求項２記載のデータ変換装置であって、
前記制御手段は、前記入力および前記出力の制御を、予め定められたスケジュール表に従って行うこと
を特徴とするデータ変換装置。
【請求項４】
入力されるメッセージに予め定められた処理を施して出力するデータ変換装置であって、
入力される所定長（以後、１ブロックと呼ぶ）のデータに、変換処理を施し、１ブロックのデータを出力するデータ変換手段と、
当該データ変換装置に入力されるメッセージを保持し、１ブロック毎に前記データ変換手段に入力する入力データ保持手段と、
前記データ変換手段から１ブロック単位で出力されるデータを所望のデータ長になるまで受け入れた後当該データ変換装置から出力する出力データ保持手段と、
予め与えられた１ブロックのデータを保持するデータ保持手段と、
前記入力データ保持手段と前記データ保持手段とから前記データ変換手段への入力を選択する第１の選択手段と、
前記データ変換手段の出力を前記出力データ保持手段に出力するか否かを選択する第２の選択手段と、
前記第１の選択手段と前記第２の選択手段との選択状態を保持する処理スケジュール表と、
前記処理スケジュール表に従って、前記第１の選択手段と前記第２の選択手段とを制御する制御手段と、を備えること
を特徴とするデータ変換装置。
【請求項５】
請求項４記載のデータ変換装置であって、
前記入力データ保持手段が保持するデータと前記データ変換手段からの出力との排他的論理和を演算し、１ブロック単位で出力する排他的論理和演算手段と、
前記入力データ保持手段が保持するデータを前記排他的論理和演算手段に入力する否かを選択する第３の選択手段と、をさらに備え、
前記処理スケジュール表は、前記第３の選択手段の選択状態も、さらに保持し、
前記制御手段は、前記処理スケジュール表に従って、前記第３のセレクタも制御すること
を特徴とするデータ変換装置。
【請求項６】
請求項４または５記載のデータ変換装置であって、
予め与えられた１ブロックのデータを保持する第２のデータ保持手段をさらに備え、
前記第１の選択手段は、前記入力データ保持手段と前記データ保持手段と前記第２のデータ保持手段と前記出力データ保持手段とから前記データ変換手段への入力を選択すること、
を特徴とするデータ変換装置。
【請求項７】
請求項４、５または６記載のデータ変換装置であって、
前記データ変換手段は、
第１の記憶手段と第１の変換手段と第２の記憶手段と第２の変換手段とを備え、
前記第１の変換手段は、前記入力データ保持手段から前記データ変換手段に入力されるデータと前記第２の記憶手段に保持されているデータとを用いて前記第１の記憶手段のデータを更新し、
前記第２の変換手段は、前記第１の記憶手段に保持されているデータを用いて前記第２の記憶手段のデータを更新し、前記１ブロックのデータを出力すること
を特徴とするデータ変換装置。
【請求項８】
請求項４、５、６または７記載のデータ変換装置であって、
前記処理スケジュール表は、所望のデータ変換処理に応じて、時系列に選択状態が定められていること
を特徴とするデータ変換装置。
【請求項９】
メッセージに予め定められた処理を施して出力するデータ変換装置における前記メッセージの変換方法であって、
所定長（以後、１ブロックと呼ぶ）の定数データの入力タイミングと前記メッセージの入力タイミングとを定めた処理スケジュールに従って、前記定数データまたは前記メッセージのいずれかの入力を受け付ける入力受付ステップと、
前記入力受付ステップにおいて入力として受け付けたデータを攪拌するデータ変換ステップと、
前記データ変換ステップにおいて攪拌後のデータを、予め定められた処理スケジュールに従って、出力する出力ステップと
を備えることを特徴とするデータ変換方法。
【請求項１０】
請求項９記載のデータ変換方法であって、
前記入力受付ステップは、前記１ブロック単位で、前記定数データおよび前記メッセージのいずれかを受け付け、
前記出力ステップは、前記１ブロック毎に前記変換ステップにおいて攪拌されるデータを、所望のデータ長になるまで受け入れた後、前記所望のデータ長のデータを出力すること
を特徴とするデータ変換方法。
【請求項１１】
入力されるメッセージに予め定められた処理を施して出力するデータ変換装置のコンピュータを、
入力される所定長（以後、１ブロックと呼ぶ）のデータに、変換処理を施し、１ブロックのデータを出力するデータ変換手段と、
当該データ変換装置に入力されるメッセージを保持し、１ブロック毎に前記データ変換手段に入力する入力データ保持手段と、
前記データ変換手段から１ブロック単位で出力されるデータを所望のデータ長になるまで受け入れた後当該データ変換装置から出力する出力データ保持手段と、
予め与えられた１ブロックのデータを保持するデータ保持手段と、
前記入力データ保持手段と前記データ保持手段とから前記データ変換手段への入力を選択する第１の選択手段と、
前記データ変換手段の出力を前記出力データ保持手段に出力するか否かを選択する第２の選択手段と、
前記第１の選択手段と前記第２の選択手段との選択状態を保持する処理スケジュール表に従って、前記第１の選択手段と前記第２の選択手段とを制御する制御手段と、して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パスワードによる個人認証やメッセージ認証子利用など、情報システムのセキュリティ機能を実現するメッセージ変換技術とその応用技術とに関する。
【背景技術】
【０００２】
情報システムのセキュリティ機能は、様々なセキュリティメカニズムを組み合わせて実現されている。例えば、セキュリティ機能の１つであるコンピュータへのアクセス管理を行うユーザ認証システムの代表的な実現手段は、パスワードの入力によるものである。アクセス管理の対象のコンピュータがネットワークに接続されたサーバなどである場合、パスワード認証システムは、送信するパスワードの暗号化処理、メッセージ認証、乱数生成など、さまざまなセキュリティメカニズムを組み合わせて構成される。
【０００３】
従来は、それそれのセキュリティメカニズムは、それを実現するのに最適な暗号学的プリミティブを用いて実現されていた。ここで、暗号学的プリミティブとは、暗号化アルゴリズムのことであり、ストリーム暗号生成アルゴリズム、ブロック暗号生成アルゴリズム、ハッシュ関数などが代表的なものである。また、インターネットで標準的に用いられるＴＬＳ１．０では暗号と認証とにはそれぞれ３ＤＥＳ，ＳＨＡ−１を暗号学的プリミティブとして用いている（例えば、特許文献１〜４および非特許文献１〜４参照）。以後、本明細書では、暗号学的プリミティブを単にプリミティブと呼ぶ。
【０００４】
それぞれのセキュリティメカニズムを実現するための最適なプリミティブを用いるとは、例えば、あるセキュリティ機能を実現する手順の中で、暗号化、メッセージ認証、乱数生成といったセキュリティメカニズム（処理）が必要な場合、暗号化にはストリーム暗号生成アルゴリズム、メッセージ認証にはブロック暗号生成アルゴリズム、乱数生成にはハッシュ関数といった暗号化アルゴリズム（プリミティブ）を用いるということである。
【０００５】
一部のプリミティブは、他のプリミティブに変換可能であることは知られている。所定のプリミティブによって実現されるセキュリティメカニズムを、他のプリミティブを用いて実現することにより、１つのプリミティブを用いて、一連の手順の中に含まれる複数のセキュリティメカニズムを実現することが可能な場合もある。例えば、ブロック暗号生成アルゴリズムをハッシュ関数の生成に用いる手法などは良く知られている。
【０００６】
しかしながら、プリミティブの変換処理が含まれるため、非効率的であり、また、その安全性はブロック暗号のそれに比較して非常に低くなることも良く知られている。また。
【０００７】
【特許文献１】特許第３０３５３５８号公報
【特許文献２】特許第３３５１３０５号公報
【特許文献３】特開２００１−２８２１０２号公報
【特許文献４】特開２００３−３７４８２号公報
【非特許文献１】ＳＨＡ−１、ＦＩＰＳ１８０−１，  Ｓｅｃｕｒｅ  ｈａｓｈ  ｓｔａｎｄａｒｄ，  Ｆｅｄｅｒａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｔａｎｄａｒｄ，  ＮＩＳＴ，  ＵＳ  Ｄｅｐａｒｔｍｅｎｔ  ｏｆ  Ｃｏｍｍｅｒｃｅ，  Ｗａｓｈｉｎｇｔｏｎ  Ｄ．Ｃ．，  Ａｐｒｉｌ  １９９５．
【非特許文献２】ＭＤ５、Ｒ．Ｌ．Ｒｉｖｅｓｔ，“Ｔｈｅ  ＭＤ５  ｍｅｓｓａｇｅ−ｄｉｇｅｓｔ  ａｌｇｏｒｉｔｈｍ，”  Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ  （ＲＦＣ）  １３２０，  Ｉｎｔｅｒｎｅｔ  Ａｃｔｉｖｉｔｅｓ  Ｂｏａｒｄ，  Ｉｎｔｅｒｎｅｔ  Ｐｒｉｖａｃｙ  Ｔａｓｋ  Ｆｏｒｃｅ，  Ａｐｒｉｌ，  １９９２．
【非特許文献３】ＰＡＮＡＭＡ，Ｊ．Ｄａｅｍｅｎ  ａｎｄ  Ｃ．Ｃｌａｐｐ，“Ｆａｓｔ  Ｈａｓｈｉｎｇ  ａｎｄ  Ｓｔｒｅａｍ  Ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  Ｐａｎａｍａ，”  Ｆａｓｔ  Ｓｏｆｔｗａｒｅ  Ｅｎｃｒｙｔｉｏｎ，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｅｒ  Ｓｃｉｅｎｃｅ  Ｖｏｌ．１３７２，  Ｓ．Ｖａｕｄｅｎａｙ，  Ｅｄ．，  Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，  １９９８，  ｐｐ．６０−７４．
【非特許文献４】Ｄｉｅｒｋｓ， Ｔ． ａｎｄ Ｃ． Ａｌｌｅｎ， ”Ｔｈｅ ＴＬＳ Ｐｒｏｔｏｃｏｌ Ｖｅｒｓｉｏｎ １．０”， ＲＦＣ ２２４６， Ｊａｎｕａｒｙ １９９９．
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したように、所定のセキュリティ機能を実現するためには、複数のセキュリティメカニズムを組み合わせる必要があり、そのシステムには、それぞれのセキュリティメカニズムを実現するプリミティブを実装する必要がある。しかしながら、複数のプリミティブを実装することは、開発コストや製品製造コストが増大するだけでなく、バグの存在の懸念も増えることにつながり、製品として高品質なものを提供することが難しい。
【０００９】
本発明は、このような事情に鑑みてなされたもので、変換効率を落とすことなく、複数のセキュリティメカニズムを実現するプリミティブを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明は、データ変換手段に入力される複数のデータの入力タイミングおよび変換後のデータの出力タイミングを制御することにより、複数セキュリティメカニズムを実現するデータ変換装置を提供する。
【００１１】
具体的には、入力されるメッセージに予め定められた処理を施して出力するデータ変換装置であって、入力される所定長（以後、１ブロックと呼ぶ）のデータに、変換処理を施し、１ブロックのデータを出力するデータ変換手段と、当該データ変換装置に入力されるメッセージを保持し、１ブロック毎に前記データ変換手段に入力する入力データ保持手段と、前記データ変換手段から１ブロック単位で出力されるデータを所望のデータ長になるまで受け入れた後当該データ変換装置から出力する出力データ保持手段と、予め与えられた１ブロックのデータを保持するデータ保持手段と、前記入力データ保持手段と前記データ保持手段とから前記データ変換手段への入力を選択する第１の選択手段と、前記データ変換手段の出力を前記出力データ保持手段に出力するか否かを選択する第２の選択手段と、前記第１の選択手段と前記第２の選択手段との選択状態を保持する処理スケジュール表と、前記処理スケジュール表に従って、前記第１の選択手段と前記第２の選択手段とを制御する制御手段と、を備えることを特徴とするデータ変換装置を提供する。
【発明の効果】
【００１２】
効率的に複数のセキュリティメカニズムを実現するプリミティブを提供することができる。
【発明を実施するための最良の形態】
【００１３】
本発明の実施形態を、図を用いて説明する。各図の説明に用いている記号「ＸＯＲ」は、ビットごとの排他的論理和（exclusive or）を示す。
【００１４】
本実施形態のランダム変換システムは、所定のプリミティブを実行する変換装置への入力および出力を切り替えるスイッチと、そのスイッチを切り替えるスケジュール表を備える。スケジュール表に従って、入出力を切り替えることにより、各種の従来のプリミティブを実現する。
【００１５】
図１は、本実施形態のランダム変換システム５００のシステム構成図である。
【００１６】
本図に示すように、本実施形態のランダム変換システム５００は、鍵保持部５０１と、定数保持部５０２と、ランダム変換装置５０３と、処理スケジュール制御部５０４と、処理スケジュール表５０７と、入力セレクタ５０８と、ＸＯＲ入力セレクタ５０９と、ＸＯＲ出力セレクタ５１０と、排他的論理和回路５１１と、入力データバッファ５０５と、出力データバッファ５０６とを備える。
【００１７】
入力セレクタ５０８と、ＸＯＲ入力セレクタ５０９と、ＸＯＲ出力セレクタ５１０とは、処理スケジュール制御部５０４の指示に従って、それぞれ作動する。
【００１８】
入力セレクタ５０８は、ランダム変換装置５０３への入力を、入力データバッファ５０５、鍵保持部５０１、定数保持部５０２、出力データバッファ５０６の４つから、いずれか１つを選択し、通過させる。ＸＯＲ入力セレクタ５０９は、入力データバッファ５０５に保持されているデータを、排他的論理和回路５１１に通過させるか否かを選択する。ＸＯＲ出力セレクタ５１０は、排他的論理和回路５１１からの出力を、出力データバッファ５０６へ通過させるか否かを選択する。
【００１９】
ランダム変換装置５０３は、入力されたデータを所定の規則に従って変換し、出力する。ランダム変換装置５０３の詳細は後述する。
【００２０】
排他的論理和回路５１１は、ランダム変換装置５０３からの出力とセレクタを介しての入力データバッファ５０５からの出力との排他的論理和をとり、その演算結果を出力データバッファ５０６へ出力する。なお、ＸＯＲ入力セレクタ５０９が入力データバッファ５０５に保持されているデータを通過させない状態（切断）の場合、ランダム変換装置５０３からの出力と０との排他的論理和演算を行う。すなわち、ランダム変換装置５０３からの出力をそのまま通過させる。
【００２１】
処理スケジュール制御部５０４は、処理スケジュール表５０７に格納された定義に従って、各セレクタ５０８〜５１０を制御するとともに、ランダム変換装置５０３の処理を制御する。詳細は後述する。
【００２２】
処理スケジュール表５０７は、実現したいプリミティブに応じた処理のスケジュールが格納されているテーブルである。具体的には、時刻ごとの、入力セレクタ５０８と、ＸＯＲ入力セレクタ５０９、ＸＯＲ出力セレクタ５１０の状態が定義されている。図６に処理スケジュール表５０７の一例を示す。
【００２３】
本図に示すように、処理スケジュール表５０７は、時刻格納欄５０７ａと、入力セレクタ状態格納欄５０７ｂと、ＸＯＲ入力セレクタ状態格納欄５０７ｃと、ＸＯＲ出力セレクタ状態格納欄５０７ｄとを備え、処理開始からの時刻（クロック）ごとに、入力セレクタ５０８、ＸＯＲ入力セレクタ５０９、ＸＯＲ出力セレクタ５１０の状態を、それぞれ保持する。これらの状態は、予め設定される。
【００２４】
入力データバッファ５０５は、ランダム変換システム５００において変換するために入力されるメッセージなどのデータを一時的に保持する。入力データバッファ５０５は、６４ビットの記憶領域を備える。これは、ランダム変換システム５００に入力される、任意のビット長の入力データを、一定長のデータごとに区切る役割を果たす。任意の入力データ長のメッセージは、入力データバッファ５０５を介することで、ランダム変換装置５０３へ、６４ビットを１ブロックとするブロック単位で入力される。なお、ブロックの長さは６４ビットに限られない。
【００２５】
出力データバッファ５０６は、出力データを一時的に保持し、所定のデータ長で出力するとともに、セレクタ５０８の入力となる。セレクタ５０８は、変換処理において直前に生成した値が必要な場合、出力データバッファ５０６の値を通過させる。ランダム変換装置５０３は、必要なデータ長が出力データバッファ５０６に保持されるまで更新処理を繰り返す。
【００２６】
本実施形態のランダム変換システム５００は、入力データバッファ５０５と出力データバッファ５０６とにより、入力データ長および出力データ長ともに任意にとることができる。
【００２７】
鍵保持部５０１は、ランダム変換装置５０３への入力となる鍵データが保持され、定数保持部５０２は、ランダム変換装置５０３への入力となる定数データが保持される。なお、鍵データおよび定数データは、利用者により設定される。また、鍵データおよび定数データはいずれもそのデータ長は６４ビット（１ブロック）である。
【００２８】
次に、ランダム変換装置５０３について説明する。図２は、ランダム変換装置５０３の構成を例示するものである。
【００２９】
ランダム変換装置５０３は、第１記憶装置１０２と、第２記憶装置１０４と、第２の記憶装置の更新関数である線形変換部１０３と、第１の記憶装置の更新関数である非線形変換部１０５と、を備える。ランダム変換装置５０３は、処理の開始の指示を受け取ると、第１記憶装置１０２と第２記憶装置１０４とに保持されているデータを、上記の更新関数を用いてお互い作用させ更新させる。そして、その更新結果を出力することにより、目的の処理を実現する。
【００３０】
ランダム変換装置５０３への入力は、上述の入力データバッファ５０５、鍵保持部５０１、定数保持部５０２の３つから、目的の処理に応じて選択される。本図においては、これらのいずれかからの入力を、ランダム変換装置５０３への入力１０１とする。また、ランダム変換装置５０３からの出力１０６は、上述のＸＯＲ出力セレクタ５１０の状態に応じて、出力データバッファ５０６に出力される。
【００３１】
本実施形態のランダム変換装置５０３は、安全性と処理効率とを両立するため、上記各構成部が、下記の構造を有する。
【００３２】
本実施形態では、第１記憶装置１０２は、１６ブロック（１０２４ビット）の記憶領域を備え、第２記憶装置１０４は、３ブロック（１９２ビット）の記憶領域を備える。
【００３３】
第１の記憶装置１０２は、後述するように、１ブロック（６４ビット）の記憶領域を有する１６のバッファ１〜１６を備える。また、第２の記憶装置１０４は、１ブロック（６４ビット）の記憶領域を有するの３のレジスタ１〜３を備える。なお、初期状態では、これらのバッファ１〜１６、レジスタ１〜３には、全て０が格納される。
【００３４】
線形変換部１０３は、第１記憶装置の更新関数である。第１記憶装置１０２、入力１０１、第２記憶装置１０４に保持されているデータを入力とし、第１記憶装置１０２に変換結果を出力する。第１記憶装置が１０２４ビットであるため、これに伴い、線形変換部１０３も同様のサイズ（数千ビット程度）のデータ長のデータを扱い、簡単な関数で、第１記憶装置に保持されているデータを更新する。
【００３５】
図３は、線形変換部１０３を用いて、第１記憶装置１０２に保持されているデータを変換する際の処理を説明するための図である。
【００３６】
本実施形態のランダム変換装置５０３では、第１の記憶装置１０２に保持されているデータを線形変換部１０３で変換する場合、線形変換部１０３で変換を施す前のデータを保持する第１の記憶装置１０２（現第１記憶装置１０２）と、変換処理後のデータを保持する第１記憶装置１０２（新第１記憶装置１０２）との２領域を用意し、下記記載の変換処理終了後、新第１記憶装置１０２が保持するデータで、現第１記憶装置１０２を上書きする。
【００３７】
本図では、現第１記憶装置１０２を左側に、新第１記憶装置１０２を右側に記載する。
【００３８】
本図に示すように、線形変換部１０３は、３つの排他的論理和回路を備える。線形変換部１０３は、これらの排他的論理和回路を用い、下記１）〜６）の処理を行うことで、現第１記憶装置１０２に保持されているデータを変換する。
【００３９】
１）現第１の記憶装置１０２の１番目のバッファであるバッファ１（２０１）に格納されているブロックを、新第１の記憶装置１０２の２番目のバッファであるバッファ２（２０９）に出力する。
【００４０】
２）現第１の記憶装置１０２の４番目のバッファであるバッファ４（２０２）に格納されているブロックと８番目のバッファであるバッファ８（２０３）に格納されているブロックとを排他的論理和した演算結果を新第１記憶装置１０２の５番目のバッファであるバッファ５（２１０）に出力する。
【００４１】
３）現第１の記憶装置１０２の１０番目のバッファであるバッファ１０（２０４）に格納されているブロックと１４番目のバッファであるバッファ１４（２０５）に格納されているブロックとを排他的論理和した演算結果を新第１記憶装置１０２の１１番目のバッファであるバッファ１１（２１１）に出力する。
【００４２】
４）現第１の記憶装置１０２の１６番目のバッファであるバッファ１６（２０６）に格納されているブロックと、入力１０１または第２の記憶装置１０４からの出力のいずれかである別入力２０７からの入力とを排他的論理和した演算結果を新第１の記憶装置の第１番目のバッファであるバッファ１（２０８）に出力する。なお、入力１０１または第２の記憶装置１０４のいずれの出力が別入力２０７として入力されるかは、後述する処理モードにより定義される。
【００４３】
次に、非線形変換部１０５について説明する。非線形変換部１０５は、第２の記憶装置の更新関数である。第１記憶装置１０２、入力データバッファ５０５、第２記憶装置１０４に保持されているデータを入力とし、第１記憶装置１０２と出力データバッファ５０６とに変換結果を出力する。第２の記憶装置は１９２ビットであるため、これに伴い、非線形変換部１０５も同様のサイズ（数百ビット程度）のデータ長のデータを扱い、非線形で攪拌効果の高い関数を利用して効率的に更新を行う。
【００４４】
図４は、非線形変換部１０５を用いて、第２の記憶装置１０４に保持されているデータを変換する際の処理を説明するための図である。
【００４５】
本実施形態のランダム変換装置５０３では、第２の記憶装置１０４に保持されているデータを非線形変換部１０５で変換する場合、非線形変換部で変換を施す前のデータを保持する第２記憶装置１０４（現第２記憶装置１０４）と、変換処理後のデータを保持する第２記憶装置１０４（新第２記憶装置１０４）との２領域を用意し、下記記載の変換処理終了後、新第２記憶装置１０２が保持するデータで、現第２記憶装置１０４を上書きする。
【００４６】
本図では、現第２記憶装置１０４を上方に、新第２記憶装置１０４を下方に記載する。
【００４７】
本図に示すように、非線形変換部１０５は５つの排他的論理和回路と、２つの攪拌関数３０５と定数１（３１０）と、定数２（３０６）とを備える。攪拌関数３０５の詳細は後述する。また、定数１（３１０）、定数２（３０６）は１６進数表記で、それぞれ、ＢＢ６７ＡＥ８５８４ＣＡＡ７３Ｂ、３Ｃ６ＥＦ３７２ＦＥ９４Ｆ８２Ｂとなる６４ビットの値である。また、変換処理には、別入力１（３０４）と別入力２（３０８）とを用いる。これらは、それぞれ、第１記憶装置１０２のバッファ４（２０２）、バッファ１０（２０４）である。
【００４８】
以下、非線形変換部１０５により行われる変換処理を説明する。
【００４９】
１）現第２記憶装置１０４の２番目のレジスタであるレジスタ２（３０２）に格納されているブロックと別入力１（３０４）との排他的論理和の演算結果を攪拌関数３０５の入力とする。そして、攪拌関数３０５の出力と現第２記憶装置１０４の１番目のレジスタであるレジスタ１（３０１）に格納されているブロックとの排他的論理和の演算結果と、定数２（３０６）との排他的論理和の演算結果を、新第２記憶装置１０４の３番目のレジスタであるレジスタ３（３０７）に出力する。
【００５０】
２）現第２記憶装置１０４の２番目のレジスタであるレジスタ２（３０２）に格納されているブロックと別入力２（３０８）との排他的論理和の演算結果を攪拌関数３０５の入力とする。そして、攪拌関数３０５の出力と現第２記憶装置１０４の３番目のレジスタであるレジスタ３（３０３）に格納されているブロックとの排他的論理和の演算結果と、定数１（３１０）との排他的論理和の演算結果を、新第２記憶装置１０４の２番目のレジスタであるレジスタ２（３１１）に出力する。
【００５１】
３）現第２記憶装置１０４の２番目のレジスタであるレジスタ２（３０２）に格納されているブロックを、新第２記憶装置１０４の１番目のレジスタであるレジスタ１（３１２）に出力する。なお、新第２記憶装置１０４の１番目のレジスタであるレジスタ１（３１２）に格納されているブロックは、上述のＸＯＲ出力セレクタ５１０が通過状態の場合、出力１０６となり、出力データバッファ５０６に出力される。
【００５２】
次に、非線形変換部１０５内の攪拌関数３０５の処理について説明する。
【００５３】
図５は、攪拌関数３０５の構成の一例である。本図に示すように、攪拌関数３０５は、それぞれ３２ビットのワード１（４０１）とワード２（４０２）とを入力とし、それぞれ８ビット（１バイト）毎に区切って非線形変換を施し、６４ビットの出力ダブルワード４１４として出力する。
【００５４】
まず、ワード１（４０１）を８ビット単位に分割し、それぞれのバイトを、後述する置換表Ｓ４０３、４０４、４０５、４０６を用いて変換を行う。さらに、置換表Ｓ４０３〜４０６による出力結果に、後述するＭＤＳ変換を行い、その出力を中間ワード４１３として保持する。
【００５５】
また、ワード２（４０２）も同様に８ビット単位に分割し、それぞれのバイトを、置換表Ｓ４０８、４０９、４１０、４１１により変換を行い、その出力結果にＭＤＳ変換を施し、その出力を中間ワード４１４として保持する。
【００５６】
そして、中間ワード４１３の上位１６ビットと中間ワード４１４の上位１６ビットとを交換し、出力ダブルワード４１５を生成する。
【００５７】
ここで、上述の置換表Ｓ４０３〜４１１およびＭＤＳ変換を説明する。
【００５８】
本実施形態では、置換表Ｓ４０３〜４１４は全て同一のものであり、２５６個の要素からなる変換表である。置換表Ｓによる変換は、高い非線形性と攪拌性とを伴った変換で表参照で行えるうえ、簡単な構成による実現が可能であることから、暗号の実装に多く用いられる。例えば、文献Ａ）J. Daemen, V. Rijmen, "AES Proposal: Rijndael," The first AES Candidate Conference, available at http://www.esat.kuleuven.ac.be/~rijmen/rijndael/rijndaeldocV2.zip.のRijndaelで定義されている以下の変換表を使うことが可能である。
【００５９】
ｓ[２５６]={
９９、１２４、１１９、１２３、２４２、１０７、１１１、１９７、
４８、    １、１０３、  ４３、２５４、２１５、１７１、１１８、
２０２、１３０、２０１、１２５、２５０、  ８９、  ７１、２４０、
１７３、２１２、１６２、１７５、１５６、１６４、１１４、１９２、
１８３、２５３、１４７、  ３８、  ５４、  ６３、２４７、２０４、
５２、１６５、２２９、２４１、１１３、２１６、  ４９、  ２１、
４、１９９、  ３５、１９５、  ２４、１５０、    ５、１５４、
７、  １８、１２８、２２６、２３５、  ３９、１７８、１１７、
９、１３１、  ４４、  ２６、  ２７、１１０、  ９０、１６０、
８２、  ５９、２１４、１７９、  ４１、２２７、  ４７、１３２、
８３、２０９、    ０、２３７、  ３２、２５２、１７７、  ９１、
１０６、２０３、１９０、  ５７、  ７４、  ７６、  ８８、２０７、
２０８、２３９、１７０、２５１、  ６７、  ７７、  ５１、１３３、
６９、２４９、    ２、１２７、  ８０、  ６０、１５９、１６８、
８１、１６３、  ６４、１４３、１４６、１５７、  ５６、２４５、
１８８、１８２、２１８、  ３３、  １６、２５５、２４３、２１０、
２０５、  １２、  １９、２３６、  ９５、１５１、  ６８、  ２３、
１９６、１６７、１２６、  ６１、１００、  ９３、  ２５、１１５、
９６、１２９、  ７９、２２０、  ３４、  ４２、１４４、１３６、
７０、２３８、１８４、  ２０、２２２、  ９４、  １１、２１９、
２２４、  ５０、  ５８、  １０、  ７３、    ６、  ３６、  ９２、
１９４、２１１、１７２、  ９８、１４５、１４９、２２８、１２１、
２３１、２００、  ５５、１０９、１４１、２１３、  ７８、１６９、
１０８、  ８６、２４４、２３４、１０１、１２２、１７４、    ８、
１８６、１２０、  ３７、  ４６、  ２８、１６６、１８０、１９８、
２３２、２２１、１１６、  ３１、  ７５、１８９、１３９、１３８、
１１２、  ６２、１８１、１０２、  ７２、    ３、２４６、  １４、
９７、  ５３、  ８７、１８５、１３４、１９３、  ２９、１５８、
２２５、２４８、１５２、  １７、１０５、２１７、１４２、１４８、
１５５、  ３０、１３５、２３３、２０６、  ８５、  ４０、２２３、
１４０、１６１、１３７、  １３、１９１、２３０、  ６６、１０４、
６５、１５３、  ４５、  １５、１７６、  ８４、１８７、  ２２｝；
また、上述のＭＤＳ変換は、入力３２ビットをバイト毎にそれぞれ８ビット情報として扱い、それを有限体Ｆ２５６の要素に割り当てて、Ｆ２５６上の線形変換で定義されるものである。例えば、上記の文献Ａ）で定義されている以下のＦ２５６上の行列への積をＭＤＳ変換とすることが可能である。
【００６０】
ＭＤＳ＝｛
（２、３、１、１）、
（１、２、３、１）、
（１、１、２、３）、
（３、１、１、２）｝；
ここで、例えば、３２ビットの値Ｘを上記のＭＤＳ変換した場合、Ｘの上位バイトからＸ１、Ｘ２，Ｘ３，Ｘ４とし、変換後の出力Ｙも同じく上位バイトからＹ１、Ｙ２、Ｙ３、Ｙ４とすると、出力Ｙの最上位バイトＹ１は、
Ｙ１＝２×Ｘ１＋３×Ｘ２＋１×Ｘ３＋１×Ｘ４
となる。
【００６１】
なお、線形変換部１０３、非線形変換部１０５として説明したこれらの更新関数は、上述のものに限られない。入力をどのように制御しても出力列が入力とは無相関であり、かつ出力列に擬似乱数性を持つよう設計され、入力と出力との間に顕著な差分特性や線形特性がないよう設計されたものであればよい。なお、更新関数がこのような特性を満たすか否かは、従来のブロック暗号生成アルゴリズム、ストリーム暗号生成アルゴリズム、ハッシュ関数の安全性評価の手法により評価可能である。
【００６２】
以上のように本実施形態のランダム変換装置５０３は、入力１０１に応じて、上記の処理を行い、出力１０６を得る。入力１０１は、前述のように、セレクタ５０８により、鍵保持部５０１、定数保持部５０２、入力データバッファ５０５、出力データバッファ５０６から選択される。セレクタ５０８の制御は、処理スケジュール制御部５０４が、処理スケジュール表５０７に従って行う。
【００６３】
本実施形態のランダム変換システム５００は、ランダム変換装置５０３への入力１０１を適宜選択することにより、暗号処理、復号処理、ハッシュ処理、メッセージ認証符号生成処理、乱数生成処理、そして、公開鍵暗号プリミティブの前計算の各機能を、１つの装置にて実現する。すなわち、本実施形態のランダム変換システム５００は、処理スケジュールに従って各機能を発揮する
以下、それぞれの機能を実現するための処理スケジュール表５０７と、その処理スケジュール表５０７により実現する処理手順について説明する。以下の説明において、Ｍは、入力されるメッセージのブロック数で、ｈは、ハッシュ値のブロック数で、Ｌは、必要な乱数のブロック数である。また、各機能を実現する際、鍵保持部５０１および定数保持部５０２に保持されているデータを用いない場合は、当該保持部に、予め０を入力しておく。また、時刻は、ランダム変換システムの内部処理クロックの単位であり、時刻０は、処理の開始時である。１ブロックは１クロックで処理される。
【００６４】
＜暗号化処理＞
暗号化処理では、時刻０で鍵データをランダム変換装置５０３に取り込み、続いて４８回、定数を入力しながら鍵データを攪拌した後、ランダム変換装置５０３の出力である攪拌後の鍵データと、入力データバッファ５０５のメッセージとを排他的論理和し、その結果を出力データバッファ５０６に保存する。これを、メッセージのバッファブロック数（Ｍ）分繰り返し、暗号文を生成する。また、生成された暗号文を復号化する際は、暗号文と鍵データとをランダム変換装置５０３への入力データとし、同様の処理を行う。
【００６５】
入力されたメッセージデータを暗号化する処理を、図６の処理スケジュール表５０７を用いて説明する。
【００６６】
本実施形態のランダム変換システム５００で暗号化処理を行う場合、鍵保持部５０１には、暗号化に用いる鍵データが格納され、入力データバッファ５０５には暗号化の対象となるメッセージデータが入力され、定数保持部５０２には予め定められた値（定数）が保持される。
【００６７】
また、処理スケジュール表５０７は、図６に示すように定義される。具体的には、時刻格納欄５０７aに０が設定された行には、入力セレクタ状態格納欄５０７ｂに「鍵」、ＸＯＲセレクタ状態格納欄５０７ｃおよびＸＯＲ出力セレクタ状態格納欄５０７ｄに「切断」が設定され、時刻格納欄５０７ａに１〜４８が設定された行には、入力セレクタ状態格納欄５０７ｂに「定数」、ＸＯＲ入力セレクタ状態格納欄５０７ｃに「切断」、ＸＯＲ出力セレクタ状態格納欄５０７ｄに「切断」が設定され、時刻格納欄５０７ａに４９〜（４８+Ｍ）が設定された行には、入力セレクタ状態格納欄５０７ｂに「定数」、ＸＯＲ入力セレクタ状態格納欄５０７ｃおよびＸＯＲ出力セレクタ状態格納欄５０７ｄに「透過」が設定される。
【００６８】
処理スケジュール制御部５０４は、この処理スケジュール表５０７に従い、時刻０では、鍵保持部５０１の秘密鍵データがランダム変換装置５０３への入力となるよう入力セレクタ５０８を制御し、データを通過させないようＸＯＲ入力セレクタ５０９およびＸＯＲ出力セレクタ５１０を制御する。
【００６９】
また、時刻１〜４８の間は、定数保持部５０２に格納されている定数がランダム変換装置５０３の入力となるようランダム関数入力セレクタ５０８を制御し、データを通過させないようＸＯＲ入力セレクタ５０９およびＸＯＲ出力セレクタ５１０を制御する。
【００７０】
さらに、時刻４９〜（４８+Ｍ）の間は、定数保持部５０２に格納されている定数がランダム変換装置５０３の入力となるよう入力セレクタ５０８を制御し、データを通過させるようＸＯＲ入力セレクタ５０９およびＸＯＲ出力セレクタ５１０を制御する。
【００７１】
以上の暗号化処理のための処理スケジュール表５０７に従って、処理スケジュール制御部５０４が各セレクタを制御すると、本実施形態のランダム変換システム５００は、時刻０で、ランダム変換装置５０３に秘密鍵データを取り込み、続いて、４８回、「定数」を入力として攪拌処理を行う。その後、メッセージデータのブロック数であるＭ回、ランダム変換装置５０３の出力と入力データバッファ５０５に保持されているメッセージとの排他的論理和の結果を、出力データバッファ５０６に保持することを繰り返す。
【００７２】
以上の処理により、ランダム変換システム５００において、入力されたメッセージデータの暗号化処理が実現される。なお、本暗号化処理は、ストリーム暗号であるため、入力データバッファ５０５からの入力を本処理後の暗号文とすれば、同様の手順で復号を行うことができる。
【００７３】
なお、本実施形態のランダム変換システム５００が、暗号化処理を実現するための処理スケジュール表５０７に従って制御される場合、暗号化処理モードと呼ぶ。
【００７４】
＜ハッシュ値計算＞
次にメッセージデータのハッシュ値を計算する例を説明する。この場合は、メッセージデータをブロック単位で逐次ランダム変換装置５０３に入力し、その出力結果をハッシュ値とする。なお、ハッシュ値のデータ長は、所望の安全性レベルに応じて適宜決定される。
【００７５】
本実施形態のランダム変換システム５００でハッシュ値を算出する場合、入力データバッファ５０５にはハッシュ値生成の対象となるメッセージデータが入力され、定数保持部５０２には、予め定められた値（定数）が保持され、鍵保持部５０１には０が保持される。
【００７６】
図７は、ハッシュ値を計算する場合の処理スケジュール表５０７の一例である。
【００７７】
本図に示すように、時刻格納欄５０７ａに０が設定された行には、入力セレクタ状態格納欄５０７ｂに「データバッファ」、ＸＯＲ入力セレクタ状態格納欄５０７ｃに「切断」、ＸＯＲ出力セレクタ状態格納欄５０７ｄに「切断」が設定され、時刻格納欄５０７ａにＭ〜（Ｍ＋３２）が設定された行には、入力セレクタ状態格納欄５０７ｂに「定数」、ＸＯＲ入力セレクタ状態格納欄５０７ｃに「切断」、ＸＯＲ出力セレクタ状態格納欄５０７ｄに「切断」が設定され、時刻格納欄５０７ａに（Ｍ＋３３）〜（Ｍ＋ｈ＋３２）が設定された行には、入力セレクタ状態格納欄５０７ｂに「定数」、ＸＯＲ入力セレクタ状態格納欄５０７ｃに「切断」、ＸＯＲ出力セレクタ状態格納欄５０７ｄに「透過」が設定される。
【００７８】
処理スケジュール制御部５０４は、この処理スケジュール表５０７に従い、時刻０では、入力データバッファ５０５に保持されているデータがランダム変換装置５０３への入力となるよう入力セレクタ５０８を制御し、データを通過させないようＸＯＲ入力セレクタ５０９およびＸＯＲ出力セレクタ５１０を制御する。
【００７９】
また、時刻Ｍ〜（Ｍ＋３２）の間は、定数保持部５０２に保持されているデータがランダム変換装置５０３の入力となるよう入力セレクタ５０８を制御し、データを通過させないようＸＯＲ入力セレクタ５０９およびＸＯＲ出力セレクタ５１０を制御する。
【００８０】
そして、時刻（Ｍ＋３３）〜（Ｍ＋ｈ＋３２）の間は、定数保持部５０２に保持されているデータがランダム変換装置５０３の入力となるようランダム関数入力セレクタ５０８を制御し、データを通過させないようＸＯＲ入力セレクタ５０９を制御し、データを通過させるようＸＯＲ出力セレクタ５１０を制御する。
【００８１】
以上のハッシュ値計算のための処理スケジュール表５０７に従って、処理スケジュール制御部５０４が各セレクタを制御すると、本実施形態のランダム変換システム５００は、時刻０から（Ｍ−１）の間、入力データバッファ５０５の値をランダム変換装置５０３に取り込む。すなわち、メッセージデータのブロック数はＭであるため、全てのメッセージデータをランダム変換装置に取り込むこととなる。続いて、時刻Ｍから（Ｍ＋３２）まで、すなわち、３２回、入力を定数として攪拌処理を行う。最後に、時刻（Ｍ＋３３）から（Ｍ＋ｈ＋３２）まで、すなわち、ｈ回、ランダム変換装置５０３からの出力を、出力データバッファ５０６に出力する。出力データバッファ５０６は、最終的にｈブロックのデータを保持することとなる。以上の処理により、本実施形態のランダム変換システム５００によって、ｈブロックのハッシュ値を得る。
【００８２】
なお、本実施形態のランダム変換システム５００が、ハッシュ値を計算するための処理スケジュール表５０７に従って制御される場合、ハッシュ値計算モードと呼ぶ。
【００８３】
＜メッセージ認証符号計算＞
次に、メッセージデータのメッセージ認証符号を計算する例を説明する。メッセージ認証符号は、鍵データとメッセージデータとをランダム変換装置５０３に入力し、出力結果をメッセージ認証符号とする。なお、メッセージ認証符号のデータ長は、所望の安全性のレベルに応じて決定する。以下においては、１ブロックのデータ長のメッセージ認証符号を計算する場合を例に挙げて説明する。
【００８４】
本実施形態のランダム変換システム５００でメッセージ認証符号を算出する場合、入力データバッファ５０５には、メッセージ認証符号の生成対象であるメッセージデータが入力され、定数保持部５０２には、予め定められた値（定数）が保持され、鍵保持部５０１には予め定められた鍵データが保持される。
【００８５】
ランダム変換システム５００は、まず、鍵保持部５０１から秘密鍵データを取り込み、取り込んだ鍵を用いて、上記ハッシュ値計算処理の時刻０から（Ｍ＋３２）間の処理と同様の処理を行い、処理結果を１ブロック分出力する。この出力がメッセージ認証符号である。
【００８６】
図８は、メッセージ認証符号を計算する場合の処理スケジュール表５０７の一例である。
【００８７】
本図に示すように、時刻格納欄５０７ａに０が設定された行には、入力セレクタ状態格納欄５０７ｂに「鍵」、ＸＯＲ入力セレクタ状態格納欄５０７ｃに「切断」、ＸＯＲ出力セレクタ状態格納欄５０７ｄに「切断」が設定され、時刻格納欄５０７ａに１からＭが設定された行には、入力セレクタ状態格納欄５０７ｂに「データバッファ」、ＸＯＲ入力セレクタ状態格納欄５０７ｃに「切断」、ＸＯＲ出力セレクタ状態格納欄５０７ｄに「切断」が設定され、時刻格納欄５０７ａに（Ｍ＋１）〜（Ｍ＋３３）が設定された行には、入力セレクタ状態格納欄５０７ｂに「定数」、ＸＯＲ入力セレクタ状態格納欄５０７ｃに「切断」、ＸＯＲ出力セレクタ状態格納欄５０７ｄに「切断」が設定され、時刻格納欄５０７ａに（Ｍ＋３４）が設定された行には、入力セレクタ状態格納欄５０７ｂに「定数」、ＸＯＲ入力セレクタ状態格納欄５０７ｃに「切断」、ＸＯＲ出力セレクタ状態格納欄５０７ｄに「透過」が設定される。
【００８８】
処理スケジュール制御部５０４は、この処理スケジュール表５０７に従い、時刻０では、鍵保持部５０１に保持されているデータがランダム変換装置５０３への入力となるよう入力セレクタ５０８を制御し、データを通過させないようＸＯＲ入力セレクタ５０９およびＸＯＲ出力セレクタ５１０を制御する。
【００８９】
時刻１〜Ｍの間は、入力データバッファ５０５に保持されているデータがランダム変換装置５０３への入力となるよう入力セレクタ５０８を制御し、データを通過させないようセレクタ５０９およびセレクタ５１０を制御する。
【００９０】
また、時刻（Ｍ＋１）〜（Ｍ＋３３）の間は、定数保持部５０２に格納されているデータがランダム変換装置５０３の入力となるよう入力セレクタ５０８を制御し、データを通過させないようＸＯＲ入力セレクタ５０９およびＸＯＲ出力セレクタ５１０を制御する。
【００９１】
そして、時刻Ｍ＋３４の時は、定数保持部５０２に保持されているデータがランダム変換装置５０３の入力となるよう入力セレクタ５０８を制御し、データを通過させないようセレクタ５０９を制御し、データを通過させるようセレクタ５１０を制御する。
【００９２】
以上のメッセージ認証符号計算のための処理スケジュール表５０７に従って、処理スケジュール制御部５０４が各セレクタを制御すると、本実施形態のランダム変換システム５００は、時刻０において、ランダム変換装置５０３に鍵データを取り込み、続いて、Ｍ回、入力データバッファ５０５の値を取り込む。さらに続いて、時刻（Ｍ＋１）から（Ｍ＋３３）まで３２回、入力を定数として攪拌処理を行う。最後に、時刻（Ｍ＋３４）において、１回、ランダム変換装置５０３から出力させ、それをメッセージ認証符号として出力データバッファ５０６に保持する。
【００９３】
以上の処理により、本実施形態のランダム変換システム５００において、入力されたメッセージデータから１ブロックのメッセージ認証符号を得ることを実現する。１ブロック以上のデータ長を有するメッセー時認証符号を得たい場合は、所望のデータ長が得られる回数、ランダム変換装置５０３からの出力する。
【００９４】
なお、本実施形態のランダム変換システム５００が、メッセージ認証符号を計算するための処理スケジュール表５０７に従って制御される場合、メッセージ認証符号計算モードと呼ぶ。
【００９５】
＜乱数生成処理＞
次に、乱数を生成する例を説明する。乱数は、乱数シードから生成される。この乱数シードは、鍵保持部５０１に保持される。なお、入力データバッファ５０５には、定数０が入力される。
【００９６】
図９は、乱数を生成する場合の処理スケジュール表５０７の一例である。
【００９７】
本図に示すように、時刻格納欄５０７ａに０が設定された行には、入力セレクタ状態格納欄５０７ｂに「鍵」、ＸＯＲ入力セレクタ状態格納欄５０７ｃに「切断」、ＸＯＲ出力セレクタ状態格納欄５０７ｄに「切断」が設定され、時刻格納欄５０７ａに１〜４８が設定された行には、入力セレクタ状態格納欄５０７ｂに「定数」、ＸＯＲ入力セレクタ状態格納欄５０７ｃに「切断」、ＸＯＲ出力セレクタ状態格納欄５０７ｄに「切断」が設定され、時刻格納欄５０７ａに４９以降と設定された行には、入力セレクタ状態格納欄５０７ｂに「定数」、ＸＯＲ入力セレクタ状態格納欄５０７ｃに「切断」、ＸＯＲ出力セレクタ状態格納欄５０７ｄに「透過」が設定される。
【００９８】
処理スケジュール制御部５０４は、この処理スケジュール表５０７に従い、時刻０の時は、鍵保持部５０１に保持されているデータがランダム変換装置５０３への入力となるよう入力セレクタ５０８を制御し、データを通過させないようＸＯＲ入力セレクタ５０９およびＸＯＲ出力セレクタ５１０を制御する。
【００９９】
また、時刻１〜４８の間は、定数保持部５０２に格納されているデータがランダム変換装置５０３の入力となるようランダム関数入力セレクタ５０８を制御し、データを通過させないようＸＯＲ入力セレクタ５０９およびＸＯＲ出力セレクタ５１０を制御する。
【０１００】
そして、それ以降は、定数保持部５０２に保持されているデータがランダム変換装置５０３の入力となるよう入力セレクタ５０８を制御し、データを通過させないようＸＯＲ入力セレクタ５０９は制御し、データを通過させるようＸＯＲ出力セレクタ５１０を制御する。
【０１０１】
以上の乱数生成処理のための処理スケジュール表５０７に従って、処理スケジュール制御部５０４が各セレクタを制御すると、本実施形態のランダム変換システム５００は、時刻０において、乱数シードをランダム変換装置５０３に取り込み、続いて、４８回、定数を入力として攪拌処理を行う。ここでは、定数保持部５０２には０が保持されているため、入力なしで攪拌処理が行われる。その後、同様に攪拌処理を続けながら、乱数として必要な長さの分、ランダム変換装置５０３からの出力を繰り返し、それを出力データバッファ５０６に保持する。以上の処理により、本実施形態のランダム変換システム５００によって、乱数を生成する。
【０１０２】
なお、本実施形態のランダム変換システム５００が、乱数を生成するための処理スケジュール表５０７に従って制御される場合、乱数生成モードと呼ぶ。
【０１０３】
＜認証付き暗号生成処理＞
次に、認証付き暗号を生成する例を説明する。認証付き暗号生成処理では、時刻０で鍵データをランダム変換装置５０３に取り込み、続いて４８回、定数を入力しながら、鍵データを攪拌した後、暗号文を生成し、チェックサムをはき出す。
【０１０４】
また、生成された暗号文を復号化する際は、暗号文と鍵データとをランダム変換装置５０３への入力データとし、同様の処理を行う。このときの出力結果を中間データとし、この中間データが、事前に共有した冗長情報と同一であるか否かを判別し、同一ならば、この中間データからメッセージを抽出し、同一でなければ、メッセージを破棄する。
【０１０５】
図１６は、認証付き暗号を生成する場合の処理スケジュール表５０７の一例である。
【０１０６】
本図に示すように、時刻格納欄５０７ａに０が設定された行には、入力セレクタ状態格納欄５０７ｂに「鍵」、ＸＯＲ入力セレクタ状態格納欄５０７ｃに「切断」、ＸＯＲ出力セレクタ状態格納欄５０７ｄに「切断」が設定され、時刻格納欄５０７ａに１から４８が設定された行には、入力セレクタ状態格納欄５０７ｂに「定数」、ＸＯＲ入力セレクタ状態格納欄５０７ｃに「切断」、ＸＯＲ出力セレクタ状態格納欄５０７ｄに「切断」が設定され、時刻格納欄５０７ａに４９〜（４８+Ｍ）が設定された行には、入力セレクタ状態格納欄５０７ｂに「出力バッファ」、ＸＯＲ入力セレクタ状態格納欄５０７ｃに「透過」、ＸＯＲ出力セレクタ状態格納欄５０７ｄに「透過」が設定され、時刻格納欄５０７ａの時刻に（４８+Ｍ）〜（５２+Ｍ）が設定された行には、入力セレクタ状態格納欄５０７ｂに「出力バッファ」、ＸＯＲ入力セレクタ状態格納欄５０７ｃに「切断」、ＸＯＲ出力セレクタ状態格納欄５０７ｄに「透過」が設定される。
【０１０７】
処理スケジュール制御部５０４は、この処理スケジュール表５０７に従い、時刻０では、鍵保持部５０１に保持されているデータがランダム変換装置５０３への入力となるよう入力セレクタ５０８を制御し、データを通過させないようＸＯＲ入力セレクタ５０９およびＸＯＲ出力セレクタ５１０を制御する。
【０１０８】
また、時刻１〜４８の間は、定数保持部５０２に保持されているデータがランダム変換装置５０３への入力となるよう入力セレクタ５０８を制御し、データを通過させないようセレクタ５０９およびセレクタ５１０を制御する。
【０１０９】
時刻４９〜（４８+Ｍ）の間は、出力データバッファ５０６に保持されているデータがランダム変換装置５０３の入力となるよう入力セレクタ５０８を制御し、データを通過させるようＸＯＲ入力セレクタ５０９およびＸＯＲ出力セレクタ５１０を制御する。出力データは、暗号文の一部として、逐次的に生成される。
【０１１０】
そして、時刻（４８+Ｍ）〜（５２+Ｍ）の間は、出力データバッファ５０６に保持されているデータがランダム変換装置５０３の入力となるよう入力セレクタ５０８を制御し、データを通過させないようＸＯＲ入力セレクタ５０９を制御し、データを通過させるようＸＯＲ出力セレクタ５１０を制御する。出力データは、暗号文の一部として、逐次的に生成される。
【０１１１】
以上の認証付き暗号生成時の処理スケジュール表５０７に従って、処理スケジュール制御部５０４が各セレクタを制御すると、本実施形態のランダム変換システム５００は、時刻０で、ランダム変換装置５０３に鍵データを取り込み、続いて４８回、「定数」を入力として攪拌処理を行う。
【０１１２】
その後、メッセージデータのブロック数であるＭ回、ランダム変換装置５０３の出力と、入力データバッファに保持されているメッセージとの排他的論理和の結果を、出力データバッファ５０６に保持することを繰り返しながら、暗号文ブロックを逐次的に生成する。
【０１１３】
そして、（４９+Ｍ）〜（５２+Ｍ）まで、すなわち４回、ランダム変換装置５０３からの出力を、出力データバッファ５０６に出力する。出力データバッファ５０６は、さらに追加で４ブロックのデータを保持することとなる。以上の処理により、本実施形態のランダム変換システム５００によって、（Ｍ＋４）ブロックの認証付き暗号を生成する。
【０１１４】
なお、復号時は、同様に生成した出力と暗号文とから中間データを回復し、中間データが事前に共有した冗長情報と同一であるか否かを判別し、同一であれば、中間データからメッセージを出力する。
【０１１５】
なお、本実施形態のランダム変換システム５００が、認証付き暗号を生成するための処理スケジュール表５０７によって制御される場合、認証付き暗号生成モードと呼ぶ。
【０１１６】
＜公開鍵暗号プリミティブの前計算および復号時の処理＞
次に、本実施形態のランダム変換システム５００を用いて公開鍵暗号プリミティブのための前計算を行う手順（アルゴリズム）を説明する。本計算を行う場合、ランダム変換システム５００は、ハッシュ値計算モードで制御される。
【０１１７】
落とし戸付き一方向性関数を使った公開鍵暗号処理を行う場合には、まず、メッセージデータに定数パディングを添付したものを２つに分割し、それぞれ第１メッセージ、第２メッセージとする。そして、第１メッセージをランダム変換システム５００に入力し、その出力結果を第１出力とする。また、第２メッセージと第１出力とから第１中間値を生成し、この第１中間値をランダム変換システム５００に入力し、その出力結果を第２出力とする。次に、第２出力と第１メッセージとから第２中間値を生成する。第１中間値および第２中間値の両方を落とし戸付き一方向性関数の入力とする。
【０１１８】
復号時は、暗号文と落とし戸情報とから落とし戸付き一方向性関数の逆算をし、得られた結果を分割して、第１中間値、第２中間値として暗号化の逆算を行う。その他の入力に相当する部分が事前に共有されたデータと同一であれば、メッセージに相当する部分を出力する。
【０１１９】
図１０は、公開鍵暗号プリミティブの前計算を、本実施形態のランダム変換システム５００を用いて行う場合の処理手順を説明するための図である。公開鍵暗号プリミティブの前計算とは、公開鍵で暗号化する前にメッセージに施す前処理であり、選択暗号攻撃に対する耐性を向上させるために行うものである。
【０１２０】
まず、前処理前の平文であるメッセージ１００１に、冗長符号０からなる定数パディング１００２を付加し、全体で１０２４ビットのデータ１００１ｐを生成する（ステップＳ００１）。そして、データ１００１ｐを上位の５１２ビットと下位の５１２ビットとに分割し、それぞれ、変形メッセージ１（１００３）、変形メッセージ２（１００４）として保持する（ステップＳ００２）。
【０１２１】
変形メッセージ１（１００３）を、入力データバッファ５０５に入力されるメッセージデータとして、ランダム変換システム５００に入力する（ステップＳ００３）。ここで、ランダム変換システム５００は、ハッシュ値計算モードで動作する。そして、ランダム変換システム５００からの出力と変形メッセージ２（１００４）とを排他的論理和した演算結果を中間データ１００６として保持する（ステップＳ００４）。
【０１２２】
その後、中間データ１００６を入力データバッファ５０５に入力されるメッセージデータとして再度ハッシュ値計算モードでランダム変換システム５００を動作させ（ステップＳ００５）、その出力結果と変形メッセージ１（１００３）とを排他的論理和した演算結果を得（ステップＳ００６）、その演算結果と中間データ１００６とを前処理平分１００８として出力する（ステップＳ００７）。
【０１２３】
次に、上記の前処理を施された後公開鍵で暗号化されて送られてきた暗号文を秘密鍵で復号することにより得られた仮復号データに対し、後処理を行う手順（アルゴリズム）を説明する。
【０１２４】
図１１は、公開鍵暗号プリミティブの復号時の後処理を、本実施形態のランダム変換システム５００を用いて行う場合の処理手順を説明するための図である。
【０１２５】
秘密鍵で復号後の１０２４ビットの仮復号データ１３０１を、上位の５１２ビットと下位５１２ビットとに分割し、それぞれ、変形データ１（１３０２）、変形データ２（１３０３）として保持する（ステップＳ０１１）。
【０１２６】
変形データ２（１３０３）を、入力データバッファ５０５に入力されるメッセージデータとして、ランダム変換システム５００に入力する（ステップＳ０１２）。ここで、ランダム変換システム５００は、ハッシュ値計算モードで動作する。そして、ランダム変換システム５００からの出力と変形データ１（１３０２）とを排他的論理和した演算結果を中間データ１３０４としてメモリに保持する（ステップＳ０１３）。
【０１２７】
次に、中間データ１３０４を入力データバッファ５０５に入力されるメッセージデータとして、ハッシュ値生成モードでランダム変換システム５００を動作させ（ステップＳ０１４）、その出力結果と変形データ２（１３０３）とを排他的論理和した演算結果と、中間データ１３０４とを結合し、データ１３０５ｐとして出力する（ステップＳ０１５）。そして、そのデータ１３０５ｐから、事前に定められたビット数に従いメッセージ１３０５を抽出し、残りを付加した定数パディング１３０６と決定する（ステップＳ０１６）。
【０１２８】
なお、ここで、定数パディング１３０６が０でなかった場合、改ざんがなされたものと考えられる。このため、本手順を実現するために、本実施形態のランダム変換システム５００を実装した実際のシステム（データ変換装置）では、定数パディングが０であった場合のみメッセージ１３０５を出力し、そうでなければ、メッセージデータ１３０５を消去し、無効を意味する信号φを出力するよう構成してもよい。
【０１２９】
このデータ変換装置は、ＣＰＵ、メモリを備え、メモリに格納されたプログラムをＣＰＵが実行することにより、上記処理手順を行う演算処理部を実現する。
【０１３０】
なお、演算処理部を実現するプログラムは、メモリではなく、ＣＰＵが読み取り可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ）に格納されていても良い。また、ＬＡＮ等の伝送媒体等を経てＣＰＵが取得してもよい。さらに、演算処理部の機能をハードウェア構成（ＬＳＩ（Large Scale Integration）等の半導体集積回路等）で実現しても良い。
【０１３１】
なお、本実施形態のランダム変換システム５００は、上記の公開鍵暗号プリミティブの前計算および復号データの後処理を行う装置（データ変換装置）に、ハードウェア（ＬＳＩ）およびソフトウェアのいずれによる実装も可能である。
【０１３２】
以上のように、本実施形態のランダム変換システム５００は、入力長、出力長ともに任意にとることもでき、処理スケジュール表５０７を変更するだけで、各種のセキュリティメカニズムを単一の暗号化プリミティブにより、実現することができる。従って、複数のセキュリティメカニズムを必要とするシステムにおいても、従来のように複数の暗号プリミティブの実装が不要となる。
【０１３３】
また、ＬＳＩやソフトウェアとして実装が可能であり、単一のプリミティブで複数のセキュリティメカニズムを実現できることより、処理速度、ゲート数、ＲＡＭ使用量などの実装コストの観点から効率的である。
【０１３４】
本実施形態では、１つの処理スケジュール表５０７を備える場合を例にあげ、それぞれ実現可能な処理を説明したが、本実施形態のランダム変換システム５００はこれに限られない。例えば、暗号化を行った後にハッシュ値計算を行うなど、複数の処理を連続して実行させることも可能である。この場合は、それぞれのモードの実行順に、それぞれのモードを実現する処理スケジュール表５０７を結合させたものを処理スケジュール表５０７として保持すればよい。
【０１３５】
あるいは、各モードを実行可能な処理スケジュール表５０７をそれぞれ別個に保持し、処理スケジュール制御部５０４が、必要に応じて適宜処理スケジュール表５０７を選択してランダム変換システム５００の動作を制御するよう構成してもよい。
【０１３６】
＜応用例１＞
次に、本実施形態のランダム変換システム５００を用いたサーバとクライアントとの間のパスワード認証システムを説明する。例えば、クライアントがサーバにＩＤとパスワードとを送信し、認証を受けた後、サーバからのサービスを受けるといった場合に用いられる。
【０１３７】
このパスワード認証システムでは、サーバとクライアントとに、本実施形態のランダム変換システム５００を備える。また、サーバとクライアントとの間で、予め鍵データ（共有鍵）を秘密裏に共有しておく。これらの情報の共有には、例えば、公開鍵暗号技術を用いた鍵配送方法を用いることができる。
【０１３８】
クライアントは、予めクライアントのランダム変換システム５００、あるいは、サーバのランダム変換システム５００を用いて、自身のＩＤとパスワードとのハッシュ値を生成し、ＩＤと関連づけてサーバに登録しておく。認証時は、クライアントから暗号化されて送信されたＩＤとパスワードとをサーバで復号し、そのハッシュ値を生成し、該当するＩＤと対応付けて登録されているハッシュ値との合致を判断する。
【０１３９】
図１２は、パスワード認証システムに用いるサーバ１１０１の構成の一例である。
【０１４０】
本図に示すように、パスワード認証システムに用いられるサーバ１１０１は、セキュアモジュール１１０２、ＣＰＵ１１０８、磁気ディスク１１０９、サーバ１１０１をネットワーク１１１１に接続するためのネットワークインタフェース１１１０とを備える。
【０１４１】
セキュアモジュール１１０２は、上記のパスワード認証を行うモジュールであり、個人パスワードプロファイル１１０３と、ランダム変換システム５００と、鍵データ（共有鍵）１１１２とを備える。そして、個人パスワードプロファイル１１０３は、ＩＤ１１０４と、ハッシュ値１１０５と、塩１１０６とを備える。
【０１４２】
図１３は、パスワード認証システムにおいて、サーバ１１０１と組み合わせて用いられるクライアントＰＣ１２０１の構成の一例である。
【０１４３】
本図に示すように、クライアントＰＣ１２０１は、ＣＰＵ１２０９と、メモリ１２１０と、磁気記憶装置１２１１と、キーボード１２０５やマウス１２０６などの入力装置を接続するマザーボード１２０２と、モニタ１２０７などの出力装置を接続するグラフィックインタフェースカード１２０３と、ネットワーク１１１１に接続するためのネットワークインタフェース１２０４とを備える。
【０１４４】
クライアントＰＣ１２０１では、磁気記憶装置１２１１に、ＣＰＵ１２０９が実行することにより本実施形態のランダム変換システム５００の暗号化処理モードを実現するランダム変換プログラム１２１２と、鍵データ（共有鍵）１１１２とが保持される。
【０１４５】
このサーバ１１０１とクライアントＰＣ１２０１とを用いてパスワードの認証を行う処理を以下に説明する。
【０１４６】
クライアントＰＣ１２０１において、ＩＤおよびパスワードの入力を受け付けると、ＣＰＵ１２０９は、共有鍵１１１２を、鍵保持部５０１の鍵データとし、受け付けたＩＤおよびパスワードを、入力データバッファ５０５を介して入力されるメッセージデータとして、ランダム変換プログラム１２１２を実行し、受け付けたＩＤおよびパスワードを暗号化する。そして、ＣＰＵ１２０９は、出力結果をネットワークインタフェース１２０４を介してネットワーク１１１１へ送出する。なお、ＩＤおよびパスワードは、キーボード１２０５およびマウス１２０６を介して、モニタ１２０７に表示された画面上の所定位置への入力を検知するなどの方法で、受け付ける。
【０１４７】
サーバ１１０１では、ネットワークインタフェース１１１０を介して暗号化されたＩＤとパスワードとの組を受け取ると、セキュアモジュール１１０２にて処理する。
【０１４８】
すなわち、ＣＰＵ１１０８は、ＩＤとパスワードとの組を入力データバッファ５０５を介して入力するメッセージデータとし、共有鍵１１１２を鍵保持部５０１の鍵データとし、ランダム変換システム５００を復号化モードで動作させ、復号化する。ここで、復号化したＩＤとパスワードとの組からＩＤを抽出する。
【０１４９】
さらに、ＣＰＵ１１０８は、個人パスワードプロファイル１１０３から塩１１０６を取得し、復号化したＩＤと塩１１０６とパスワードとの三つのデータを、この順に直結し、ひとつにまとめたストリングデータとする。このストリングデータを入力データバッファ５０５を介して入力されるメッセージデータとし、ランダム変換システム５００をハッシュ値計算モードで動作させ、ＩＤとパスワードとの組のハッシュ値を計算する。
【０１５０】
そして、ＣＰＵ１１０８は、計算したハッシュ値と、抽出したＩＤに関連づけて個人パスワードプロファイル１１０３に予め保持されているハッシュ値１１０５とを比較し、合致するか否か判断する。合致した場合、ＣＰＵ１１０８は、磁気ディスク１１０９に格納されているサービスの提供を開始する。
【０１５１】
なお、ハッシュ値が合致しなければ、ＣＰＵ１１０８は、認証失敗を意味する信号を生成し、ネットワークインタフェース１１１０から、ネットワーク１１１１を介して、ＩＤとパスワードとの組の送信元のクライアントＰＣ１２０１に送出する。
【０１５２】
＜応用例２＞
次に、本実施形態のランダム変換システム５００を用いたネットワークテレビシステムを説明する。ネットワークテレビシステムは、ネットワークを介してコンテンツを契約者にのみ配信するシステムである。このようなシステムにおいては、配信時に受信者が契約者であることを認証するとともに、認証後、暗号化して配信するデータを、契約者以外が復号して再生できないよう保護する必要がある。それらのセキュリティ処理に本実施形態のランダム変換システム５００を用いる。
【０１５３】
本応用例は、同じ処理スケジュール表５０７によって、暗号化とその暗号化されたデータの復号化ができるという本実施形態のランダム変換システム５００の特性を利用したものである。
【０１５４】
本実施形態のランダム変換システム５００を用いたネットワークテレビシステムでは、ユーザの認証に成功すると、その後配信するコンテンツを復号するための処理スケジュール表５０７をそのユーザに暗号化して送信し、ユーザは、その処理スケジュール表５０７を用いて配信されるコンテンツを復号して再生する。以下にこのネットワークテレビシステムの、認証成功後の配信時の処理について説明する。
【０１５５】
なお、配信前のユーザの認証は、上記の応用例１に示すパスワード認証システムを用いることができる。
【０１５６】
ネットワークテレビシステムは、コンテンツを提供するコンテンツサーバ１５０１と、提供されたコンテンツを受信して再生するネットワークテレビ１４０１と備える。
【０１５７】
図１４は、契約者が保有するコンテンツ受信側のネットワークテレビ１４０１の構成の一例を示す図である。
【０１５８】
本図に示すように、ネットワークテレビ１４０１は、ＲＡＭ１４０２と、ＣＰＵ１４０６と、ディスプレイエンジン１４０７と、ＲＯＭ１４０８と、ネットワークテレビ１４０１をネットワーク１４１０に接続するネットワークインタフェース１４０９とを備える。
【０１５９】
また、ＲＡＭ１４０２には、処理テーブル保存用領域１４０３と、乱数シード１４０４と、コンテンツサーバ１５０１から予め提供されている公開鍵１４０５とが格納される。そして、ＲＯＭ１４０８には、ＣＰＵ１４０６が実行することによりランダム変換システム５００を各種モードで実現するランダム変換プログラム１４１１が格納されている。
【０１６０】
図１５は、コンテンツ送信側のコンテンツサーバ１５０１の構成の一例を示す図である。
【０１６１】
コンテンツサーバ１５０１は、ハードディスク１５０２と、ＣＰＵ１５０７と、コンテンツサーバ１５０１をネットワーク１４１０と接続するためのネットワークインタフェース１５０８とを備える。
【０１６２】
ハードディスク１５０２は、メディアセキュリティプロファイル１５０３と、メディアデータ１５０４と、ランダム変換システム５００を実現するランダム変換プログラム１５０５と、秘密鍵１５０６とを備える。
【０１６３】
コンテンツサーバ１５０１からコンテンツを受信してネットワークテレビ１４０１で再生する場合の処理は以下のように行われる。
【０１６４】
ネットワークテレビ１４０１側で、ＣＰＵ１４０６は、ランダム変換プログラム１４１１により実現されるランダム変換システム５００を、乱数シード１４０４を鍵持部５０１に保持される鍵として、乱数生成モードで動作させ、乱数を生成して出力する。出力された乱数を公開鍵１４０５を用いて暗号化し、ネットワークインタフェース１４０９を介してネットワーク１４１０に送出する。生成した乱数は、ネットワークテレビ１４０１側でも、セッション鍵として保持しておく。
【０１６５】
なお、上記のパスワード認証システムにより認証を行う場合、ＩＤとパスワードとを送信する際に、同時に暗号化した乱数を送信し、受け取ったコンテンツサーバ１５０１側で、認証に成功した際に以降の処理を行う。あるいは、前もって認証成功後、生成した乱数を送信するように構成してもよい。
【０１６６】
暗号化された乱数を受信すると、コンテンツサーバ１５０１のＣＰＵ１５０７は、予め保有している秘密鍵１５０６でこれを復号化し、得られた乱数をセッション鍵とする。
【０１６７】
コンテンツサーバ１５０１のＣＰＵ１５０７は、対象となるコンテンツに関するセキュリティ関連のパラメータを与えるメディアセキュリティプロファイル１５０３を参照して暗号化方式を決定し、その暗号化方式を定める処理スケジュール表５０７を生成する。そして、生成した処理スケジュール表５０７を復号化方式を定義する情報としてネットワークインタフェース１５０８からネットワーク１４１０を介して、セッション鍵の送信元のネットワークテレビ１４０１に送信する。
【０１６８】
復号化方式を定義する情報として処理スケジュール表５０７を受信したネットワークテレビ１４０１のＣＰＵ１４０６は、処理テーブル保存用領域１４０３にそれを格納する。
【０１６９】
また、コンテンツサーバ１５０１のＣＰＵ１５０７は、処理スケジュール表５０７を送信すると、続いて、処理スケジュール表５０７に定められたスケジュールに従って、ランダム変換システム５００を実現するランダム変換プログラム１５０５を動作させ、コンテンツを暗号化し、逐次的にネットワークインタフェースを介してネットワーク１４１０に送出する。このとき、受信したセッション鍵を鍵保持部５０１に保持される鍵データとして用いる。
【０１７０】
暗号化されたコンテンツを受信したネットワークテレビ１４０１では、ＣＰＵ１４０６が、処理テーブル保存用領域１４０３に保持している処理スケジュール表５０７に従って、ランダム変換システム５００を実現するランダム変換プログラム１４１１を実行することにより、受信した暗号化されたコンテンツを復号し、ディスプレイエンジン１４０７を介してディスプレイに再生する。このとき、予め生成したセッション鍵を鍵保持部５０１に保持する鍵データとして用いる。
【０１７１】
以上説明したように、本実施形態のランダム変換システム５００を適用したネットワークテレビシステムでは、１つのランダム変換システム５００を備えるだけで、暗号化されて配信されたコンテンツを認証された契約者が復号し、再生することができる。暗号化にセッション鍵を用いるだけのシステムに比べ、簡易なシステムで、配信されるコンテンツをより強固に保護することができる。
【０１７２】
上記のいずれの応用例においても、情報セキュリティ機能を実現するために、乱数生成や暗号処理、メッセージ認証、ハッシュ関数など複数のセキュリティメカニズムが必要とされる。本実施形態のランダム変換システム５００を用いることにより、これらをひとつの暗号プリミティブにより実現することができ、製品の製造コスト、開発コストを削減することができる。
【０１７３】
具体的には、現在ＳＨＡ−１やＡＥＳを実用的な処理速度が得られるようにＬＳＩ実装すると、各々２０ＫＧａｔｅ程度必要であり、４０ＫＧａｔｅ程度の回路の必要性がある。本実施形態のランダム変換システム５００を用いる場合、多くとも２５ＫＧａｔｅ程度で実装できる上に、１つのプリミティブを実装するだけであるため、従来のように２つのプリミティブを設計するのに比較して、開発コストは半分程度となる。
【０１７４】
以上説明したように、本発明の上記実施形態によれば、効率を落とすことなく複数のセキュリティメカニズムを実現するプリミティブを提供することができる。これにより、セキュリティシステムの開発コスト、製造コストを低減することができる。
【図面の簡単な説明】
【０１７５】
【図１】図１は、本実施形態のランダム変換システムのシステム構成図である。
【図２】図２は、本実施形態ランダム変換装置の構成を例示するものである。
【図３】図３は、本実施形態の線形変換部によるデータ変換処理を説明するための図である。
【図４】図４は、本実施形態の非線形変換部によるデータ変換処理を説明するための図である。
【図５】図５は、本実施形態の攪拌関数の構成の一例である。
【図６】図６は、本実施形態の暗号化処理時の処理スケジュール表の一例である。
【図７】図７は、本実施形態のハッシュ値計算時の処理スケジュール表の一例である。
【図８】図８は、本実施形態のメッセージ認証符号計算時の処理スケジュール表の一例である。
【図９】図９は、本実施形態の乱数生成時の処理スケジュール表の一例である。
【図１０】図１０は、本実施形態の公開鍵暗号プリミティブの前計算の処理手順を説明するための図である。
【図１１】図１１は、本実施形態の公開鍵暗号プリミティブの復号時の後処理の処理手順を説明するための図である。
【図１２】図１２は、パスワード認証システムに用いるサーバの構成の一例である。
【図１３】図１３は、パスワード認証システムにおいて用いられるクライアントＰＣの構成の一例である。
【図１４】図１４は、コンテンツ受信側のネットワークテレビの構成の一例を示す図である。
【図１５】図１５は、コンテンツ送信側のコンテンツサーバの構成の一例を示す図である。
【図１６】図１６は、本実施形態の認証付き暗号生成時の処理スケジュール表の一例である。
【符号の説明】
【０１７６】
５００：ランダム変換システム、５０１：鍵保持部、５０２：定数保持部、５０３：ランダム変換装置、５０４：処理スケジュール制御部、５０５：入力データバッファ、５０６：出力データバッファ、５０７：処理スケジュール表、５０８：入力セレクタ、５０９：ＸＯＲ入力セレクタ、５１０：ＸＯＲ出力セレクタ、５１１：排他的論理和回路、１０１：入力、１０２：第１記憶装置、１０３：線形変換部、１０４：第２記憶装置、１０５：非線形変換部、１０６：出力
【図１】
2005309148.tif 000003
【図２】
2005309148.tif 000004
【図３】
2005309148.tif 000005
【図４】
2005309148.tif 000006
【図５】
2005309148.tif 000007
【図６】
2005309148.tif 000008
【図７】
2005309148.tif 000009
【図８】
2005309148.tif 000010
【図９】
2005309148.tif 000011
【図１０】
2005309148.tif 000012
【図１１】
2005309148.tif 000013
【図１２】
2005309148.tif 000014
【図１３】
2005309148.tif 000015
【図１４】
2005309148.tif 000016
【図１５】
2005309148.tif 000017
【図１６】
2005309148.tif 000018