(57)【特許請求の範囲】
【請求項１】
平文を暗号化する暗号化装置が備えるプリブロック生成部が、平文の暗号化に利用するブロック暗号の共通鍵から、ブロック暗号のブロック長の整数倍となるプリブロックを生成するステップ、前記暗号化装置が備える暗号化部が，所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロック生成部が生成した前記プリブロックを先頭に付加した平文を共通鍵で暗号化した後、暗号化した結果から前記プリブロックに対応する暗号ブロックを除去することで平文の暗号文を生成するステップ、を実行することを特徴とする暗号化方法。
【請求項２】
暗号文を復号する復号装置が備えるプリブロック生成部が、暗号文の復号に利用するブロック暗号の共通鍵から、ブロック暗号のブロック長の整数倍となるプリブロックを生成するステップ、前記復号装置が備える復号部が，所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロック生成部が生成した前記プリブロックを共通鍵で暗号化するステップ、前記復号部が，所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロックの暗号ブロックを先頭に付加した暗号文を共通鍵で復号した後、復号した結果から前記プリブロックを除去することで暗号文の平文を生成するステップ、を実行することを特徴とする復号方法。
【請求項３】
平文の暗号化に利用するブロック暗号の共通鍵から、ブロック暗号のブロック長の整数倍となるプリブロックを生成するプリブロック生成部と、所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロックを先頭に付加した平文を共通鍵で暗号化した後、暗号化した結果から前記プリブロックに対応する暗号ブロックを除去することで平文の暗号文を生成する暗号化部と、を備えたことを特徴とする暗号化装置。
【請求項４】
前記プリブロック生成部は、所定の手順に従い共通鍵のビットを操作することで、前記プリブロックを生成することを特徴とする、請求項３に記載の暗号化装置。
【請求項５】
前記プリブロック生成部は、共通鍵又は所定の手順に従いビットを操作した共通鍵により共通鍵を暗号化することで、前記プリブロックを生成することを特徴とする、請求項３に記載の暗号化装置。
【請求項６】
前記プリブロック生成部は、派生鍵を共通鍵から派生させ、該派生鍵により共通鍵を暗号化、又は、共通鍵により該派生鍵を暗号化することで前記プリブロックを生成することを特徴とする、請求項３に記載の暗号化装置。
【請求項７】
前記プリブロック生成部は、派生鍵を共通鍵から派生させ、該派生鍵により該派生鍵を暗号化することで前記プリブロックを生成することを特徴とする、請求項３に記載の暗号化装置。
【請求項８】
前記プリブロック生成部は、データ長がブロック暗号のブロック長の整数倍の派生ブロックを共通鍵から派生させ、共通鍵により、該派生ブロックを暗号化することでプリブロックを生成することを特徴とする、請求項３に記載の暗号化装置。
【請求項９】
前記プリブロック生成部は、データ長がブロック暗号のブロック長の整数倍の派生ブロックと派生鍵を共通鍵から派生させ、該派生鍵により、該派生ブロックを暗号化することでプリブロックを生成することを特徴とする、請求項３に記載の暗号化装置。
【請求項１０】
暗号文の復号に利用するブロック暗号の共通鍵から、ブロック暗号のブロック長の整数倍となるプリブロックを生成するプリブロック生成部と、所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロックを共通鍵で暗号化した後、所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロックの暗号ブロックを暗号文の先頭に付加した暗号文を前記共通鍵で復号し、復号した結果から前記プリブロックを除去することで暗号文の平文を生成する復号部を備えたことを特徴とする復号装置。
【請求項１１】
前記プリブロック生成部は、所定の手順に従い共通鍵のビットを操作することで、前記プリブロックを生成することを特徴とする、請求項１０に記載の復号装置。
【請求項１２】
前記プリブロック生成部は、共通鍵又は所定の手順に従いビットを操作した共通鍵により共通鍵を暗号化することで、前記プリブロックを生成することを特徴とする、請求項１０に記載の復号装置。
【請求項１３】
前記プリブロック生成部は、派生鍵を共通鍵から派生させ、該派生鍵により共通鍵を暗号化、又は、共通鍵により該派生鍵を暗号化することで前記プリブロックを生成することを特徴とする、請求項１０に記載の復号装置。
【請求項１４】
前記プリブロック生成部は、派生鍵を共通鍵から派生させ、該派生鍵により該派生鍵を暗号化することで前記プリブロックを生成することを特徴とする、請求項１０に記載の復号装置。
【請求項１５】
前記プリブロック生成部は、データ長がブロック暗号のブロック長の整数倍の派生ブロックを共通鍵から派生させ、共通鍵により、該派生ブロックを暗号化することでプリブロックを生成することを特徴とする、請求項１０に記載の復号装置。
【請求項１６】
前記プリブロック生成部は、データ長がブロック暗号のブロック長の整数倍の派生ブロックと派生鍵を共通鍵から派生させ、該派生鍵により、該派生ブロックを暗号化することでプリブロックを生成することを特徴とする、請求項１０に記載の復号装置。
【請求項１７】
他の装置とＶＰＮ（Virtual Private Network）を構築し、他の装置から受信したブロック暗号の共通鍵から、ブロック暗号のブロック長の整数倍となるプリブロックを生成し、生成した前記プリブロックを前記他の装置へ送信するプリブロック生成装置と、平文を暗号化する際、前記プリブロック生成装置とＶＰＮを構築し、平文の暗号化に利用する共通鍵を前記プリブロック生成装置へ送信し、所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロック生成装置から受信した前記プリブロックを先頭に付加した平文を共通鍵で暗号化した後、暗号化した結果から前記プリブロックに対応する暗号ブロックを除去することで平文の暗号文を生成する暗号化装置と、
前記プリブロック生成装置とＶＰＮを構築し、前記暗号化装置が生成した暗号文の復号に利用する共通鍵を前記プリブロック生成装置へ送信し、所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロック生成装置から受信した前記プリブロックを共通鍵で暗号化した後、所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロック生成装置から受信した前記プリブロックの暗号ブロックを先頭に付加した暗号文を共通鍵で復号し、復号した結果から前記プリブロックを除去することで暗号文の平文を生成する復号装置と、
から少なくとも構成されることを特徴とする暗号化／復号システム。
【請求項１８】
前記プリブロック生成装置は、所定の手順に従い共通鍵をビットローテーションすることで、前記プリブロックを生成することを特徴とする、請求項１７に記載の暗号化／復号システム。
【請求項１９】
前記プリブロック生成装置は、共通鍵を共通鍵自身で暗号化することで、前記プリブロックを生成することを特徴とする、請求項１７に記載の暗号化／復号システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＥＳ（Data Encryption Standard）やＡＥＳ（Advanced Encryption Standard）など、暗号化を行う側と復号を行う側で同一の共通鍵を用い、定められたブロック長のブロック単位で暗号化／復号を行うブロック暗号に係わる発明である。
【背景技術】
【０００２】
ＤＥＳ（Data Encryption Standard）やＡＥＳ（Advanced Encryption Standard）など、暗号化を行う側と復号を行う側で同一の共通鍵を用い、定められたブロック長のブロック単位で暗号化／復号を行うブロック暗号の動作モードには、暗号ブロック連鎖しないＥＣＢモード（Electric Code Book）もあるが、ＥＣＢモードは暗号解読に脆弱であるため、暗号ブロック連鎖する暗号文ブロック連鎖モード（Cipher Block Chaining）が利用されることが多い。
【０００３】
数式１は暗号文ブロック連鎖モードの関数を説明する式である。数式１に示したように、暗号文ブロック連鎖モードの暗号化関数は、ｉ番目の平文ブロック（Ｍｉ）を暗号化した暗号文ブロック（Ｃｉ）を算出する際に、一つ前の平文ブロック（Ｍｉ−１）を暗号化して得られた暗号文ブロック（Ｃｉ−１）と平文ブロック（Ｍｉ）の排他的論理和を算出し、その結果を暗号化した結果を暗号文ブロック（Ｃｉ）とする関数となり、暗号文ブロック連鎖モードにおける復号関数は、暗号文ブロック連鎖モードにおける暗号化関数の逆関数になる。
【数１】
0005672037.tif 000002
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許２５４１１１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このように、暗号文ブロック連鎖モードにおいては暗号ブロックが連鎖するため、ＥＣＢモードと比較して暗号解読に強いが、最初の平文ブロック（Ｍ１）には一つ前の平文ブロックが存在しないため、最初の平文ブロック（Ｍ１）には、暗号文ブロックの代わりにＩＶ（Initial Vector）が排他的論理和され、最初の平文ブロック（Ｍ１）の暗号文ブロック（Ｃ１）が、暗号解読の足掛かりになってしまう恐れがある。
【０００６】
このような問題を解決する一つ手法として、特許文献１において、乱数により生成された所定の長さの冗長ビットを平文の先頭に付加する発明が開示されているが、特許文献１で開示されている手法を用いると、冗長ビットを平文の先頭に付加することにより、暗号文のデータ長が平文のデータ長よりも長くなってしまい、このことが暗号解読の足掛かりになってしまう可能性がある。
【０００７】
そこで、本発明は、所定のブロック暗号に従い暗号ブロック連鎖モードにて平文を暗号化する際、最初の暗号文ブロックが暗号解読の足掛かりになることを防止できると共に、暗号文の長さが平文の長さと同じになる技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決する第１の発明は、平文を暗号化する暗号化装置が備えるプリブロック生成部が、平文の暗号化に利用するブロック暗号の共通鍵から、ブロック暗号のブロック長の整数倍となるプリブロックを生成するステップ、前記暗号化装置が備える暗号化部が，所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロック生成部が生成した前記プリブロックを先頭に付加した平文を共通鍵で暗号化した後、暗号化した結果から前記プリブロックに対応する暗号ブロックを除去することで平文の暗号文を生成するステップ、を実行することを特徴とする暗号化方法である。
【０００９】
更に、第２の発明は、暗号文を復号する復号装置が備えるプリブロック生成部が、暗号文の復号に利用するブロック暗号の共通鍵から、ブロック暗号のブロック長の整数倍となるプリブロックを生成するステップ、前記復号装置が備える復号部が，所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロック生成部が生成した前記プリブロックを共通鍵で暗号化するステップ、前記復号部が，所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロックの暗号ブロックを先頭に付加した暗号文を共通鍵で復号した後、復号した結果から前記プリブロックを除去することで暗号文の平文を生成するステップ、を実行することを特徴とする復号方法である。
【００１０】
更に、第３の発明は、平文の暗号化に利用するブロック暗号の共通鍵から、ブロック暗号のブロック長の整数倍となるプリブロックを生成するプリブロック生成部と、所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロックを先頭に付加した平文を共通鍵で暗号化した後、暗号化した結果から前記プリブロックに対応する暗号ブロックを除去することで平文の暗号文を生成する暗号化部と、を備えたことを特徴とする暗号化装置である。
【００１１】
前記プリブロック生成部が前記プリブロックを生成する手法としては、所定の手順に従い共通鍵のビットを操作する手法や、共通鍵又は所定の手順に従いビットを操作した共通鍵により共通鍵を暗号化する手法が考えられる。加えて、共通鍵から派生鍵を派生させ、前記プリブロックを生成する手法も考えられる。例えば、この派生鍵により共通鍵を暗号化、又は、共通鍵によりこの派生鍵を暗号化することで前記プリブロックを生成するようにすることもできるし、この派生鍵によりこの派生鍵自身を暗号化することで前記プリブロックを生成することもできる。更に、データ長がブロック暗号のブロック長の整数倍の派生ブロックを共通鍵から派生させ、共通鍵又は共通鍵から派生させた派生鍵により、該派生ブロックを暗号化することでプリブロックを生成する手法も考えられる。
【００１２】
更に、第４の発明は、暗号文の復号に利用するブロック暗号の共通鍵から、ブロック暗号のブロック長の整数倍となるプリブロックを生成するプリブロック生成部と、所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロックを共通鍵で暗号化した後、所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロックの暗号ブロックを暗号文の先頭に付加した暗号文を前記共通鍵で復号し、復号した結果から前記プリブロックを除去することで暗号文の平文を生成する復号部を備えたことを特徴とする復号装置である。
【００１３】
第３の発明と同様に、前記プリブロック生成部が前記プリブロックを生成する手法としては、所定の手順に従い共通鍵のビットを操作する手法や、共通鍵又は所定の手順に従いビットを操作した共通鍵により共通鍵を暗号化する手法が考えられる。加えて、共通鍵から派生鍵を派生させ、前記プリブロックを生成する手法も考えられる。例えば、この派生鍵により共通鍵を暗号化、又は、共通鍵によりこの派生鍵を暗号化することで前記プリブロックを生成するようにすることもできるし、この派生鍵によりこの派生鍵自身を暗号化することで前記プリブロックを生成することもできる。更に、データ長がブロック暗号のブロック長の整数倍の派生ブロックを共通鍵から派生させ、共通鍵又は共通鍵から派生させた派生鍵により、該派生ブロックを暗号化することでプリブロックを生成する手法も考えられる。
【００１４】
更に、第５の発明は、他の装置とＶＰＮ（Virtual Private Network）を構築し、他の装置から受信したブロック暗号の共通鍵から、ブロック暗号のブロック長の整数倍となるプリブロックを生成し、生成した前記プリブロックを前記他の装置へ送信するプリブロック生成装置と、平文を暗号化する際、前記プリブロック生成装置とＶＰＮを構築し、平文の暗号化に利用する共通鍵を前記プリブロック生成装置へ送信し、所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロック生成装置から受信した前記プリブロックを先頭に付加した平文を共通鍵で暗号化した後、暗号化した結果から前記プリブロックに対応する暗号ブロックを除去することで平文の暗号文を生成する暗号化装置と、前記プリブロック生成装置とＶＰＮを構築し、前記暗号化装置が生成した暗号文の復号に利用する共通鍵を前記プリブロック生成装置へ送信し、所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロック生成装置から受信した前記プリブロックを共通鍵で暗号化した後、所定のブロック暗号に基づき、暗号ブロック連鎖モードにて、前記プリブロック生成装置から受信した前記プリブロックの暗号ブロックを先頭に付加した暗号文を共通鍵で復号し、復号した結果から前記プリブロックを除去することで暗号文の平文を生成する復号装置と、から少なくとも構成されることを特徴とする暗号化／復号システムである。なお、第３の発明及び第４の発明と同様に、前記プリブロック生成装置が前記プリブロックを生成する手法としては、所定の手順に従い共通鍵をビットローテーションする手法や、共通鍵を共通鍵自身で暗号化する手法が考えられる。
【発明の効果】
【００１５】
上述した発明によれば、プリブロックの暗号文ブロックが最初の平文ブロックに暗号ブロック連鎖するため、最初の平文ブロックの暗号文ブロックが暗号解読の足掛かりになることを防止できる。また、暗号化した結果から、プリブロックに係わるブロックを除去することで、暗号文の長さを平文の長さと同じにでき、暗号化する際に特別な処理が実施されていることがわからなくなる。
【図面の簡単な説明】
【００１６】
【図１】実施形態１に係る暗号化／復号システムを説明する図。
【図２】実施形態１に係る暗号化装置が平文を暗号化する手順を示したフロー図。
【図３】実施形態１に係る復号装置が暗号文を復号する手順を示したフロー図。
【図４】実施例１に係る暗号化／復号システムを説明する図。
【図５】実施形態２に係る暗号化装置及び復号装置を説明する図。
【図６】実施形態２に係る暗号化装置が平文を暗号化する手順を示したフロー図。
【図７】実施形態２に係る復号装置が暗号文を復号する手順を示したフロー図。
【図８】実施例２に係るＩＣカードを説明する図。
【発明を実施するための形態】
【００１７】
ここから，本発明の実施形態について，本発明の技術分野に係わる当業者が，発明の内容を理解し，発明を実施できる程度に説明する。なお、これから説明する実施形態は本発明の一実施形態にしか過ぎず、本発明は，これから説明する実施形態に限定されることなく、種々の変形や変更が可能である。
【００１８】
（実施形態１）
まず、本発明のシステムに係る実施形態１について説明する。図１は、本実施形態１に係る暗号化／復号システム１を説明する図である。
【００１９】
本実施形態１に係る暗号化／復号システム１には、ＤＥＳ（Data Encryption Standard）やＡＥＳ（Advanced Encryption Standard）など、暗号化を行う側と復号を行う側で同一の共通鍵（Ｋ）を利用し、定められたブロック長のブロック単位で処理を行うブロック暗号により暗号化／復号を実行するシステムで、共通鍵（Ｋ）を用い、所定のブロック暗号のアルゴリズムに従い暗号文ブロック連鎖モードで平文（Ｍ１・・・Mｎ）を暗号化する暗号化装置１０と、共通鍵（Ｋ）を用い、所定のブロック暗号のアルゴリズムに従い暗号文ブロック連鎖モードで暗号文（C１・・・Cｎ）を復号する復号装置１１と、平文（Ｍ１・・・Mｎ）の先頭に付加するプリブロックを生成するプリブロック生成装置１２が含まれ、暗号化装置１０、復号装置１１及びプリブロック生成装置１２はインターネット１３を介して接続している。
【００２０】
数式１で図示したように、ＣＢＣモードで平文を暗号化する場合、暗号化の対象となる平文（Ｍ１・・・Mｎ）を定められたブロック長（例えば、ＤＥＳなら６４ビット、ＡＥＳなら１２８ビット）の複数の平文ブロック（Ｍｉ、ｉ＝１からｎ）に分割した後、一つ前の平文ブロック（Ｍｉ−１）の暗号文ブロック（Ｃｉ−１）と平文ブロック（Ｍｉ）を排他的論理和して暗号化した結果を平文ブロック（Ｍｉ）の暗号文ブロック（Ｃｉ）とすることで、暗号文ブロックを連鎖させて平文（Ｍ１・・・Mｎ）の暗号文を生成するが、最初の平文ブロック（Ｍ１）の暗号文ブロック（Ｃ１）は、暗号文ブロック連鎖しないため、暗号文ブロック（Ｃ１）が暗号解読の足掛かりになってしまう恐れがある。
【００２１】
これに対し、実施形態１の暗号化装置１０は、暗号文ブロック連鎖モードで平文（Ｍ１・・・Mｎ）を暗号化する際、プロブロック生成装置１２が生成したプリブロック（Ｐ）を先頭に付加した平文（Ｐ，Ｍ１・・・Mｎ）を暗号化し、該平文（Ｐ，Ｍ１・・・Mｎ）の暗号化結果（Ｃｐ、Ｃ１・・・Ｃｎ）からプリブロック（Ｐ）に対応する暗号文ブロック（Ｃｐ）を除去した結果を平文（Ｍ１・・・Mｎ）の暗号文（Ｃ１・・・Ｃｎ）とすることで、プリブロック（Ｐ）の暗号文ブロック（Ｃｐ）が最初の平文ブロック（Ｍ１）に連鎖するようにし、最初の平文ブロック（Ｍ１）の暗号文ブロック（Ｃ１）が暗号解読の足掛かりになることを防止すると共に、暗号文（Ｃ１・・・Ｃｎ）の長さを平文（Ｍ１・・・Mｎ）の長さと同じにすることで、暗号化する際に特別な処理が実施されていることをわからなくしている。
【００２２】
なお、ＤＥＳやＡＳＥなどのブロック暗号において、暗号文の生成側と復号側とで共通鍵（Ｋ）は共有されるので、暗号化／復号でプリブロック（Ｐ）の生成に利用する手法を共通にしておけば、暗号文（Ｃ１・・・Ｃｎ）を生成するときに生成したプリブロック（Ｐ）及びプリブロック（Ｐ）の暗号文ブロック（Ｃｐ）を復号側でも生成することが可能になり、復号装置１１が、暗号化の逆の手順を実行することで、暗号文（Ｃ１・・・Ｃｎ）を平文（Ｍ１・・・Mｎ）に復号することができる。
【００２３】
ここから、暗号化システムに含まれるプリブロック生成装置１２、暗号化装置１０及び復号装置１１についてより詳細に説明する。
【００２４】
まず、プリブロック生成装置１２について説明する。プリブロック生成装置１２は、受け渡された共通鍵（K）から、平文（Ｍ１・・・Mｎ）の先頭に付加するプリブロック（Ｐ）を生成する装置で、プリブロック生成装置１２には、プリブロックを生成するためのコンピュータプログラムで実現される。
【００２５】
プリブロック生成装置１２がプリブロック（P）を生成する手法は、データ長がブロック暗号のブロック長の整数倍となれば任意でよく、このような手法としては、共通鍵（Ｋ）を該共通鍵（Ｋ）で暗号化する手法や、共通鍵（Ｋ）を所定の手順従いビットローテーションする手法などが考えられ、極端な例を挙げれば恒等関数であってもよい。
【００２６】
加えて、共通鍵（Ｋ）から派生鍵を派生させ、プリブロック（P）を生成する手法も考えられる。例えば、この派生鍵により共通鍵（Ｋ）を暗号化、又は、共通鍵（Ｋ）によりこの派生鍵を暗号化することでプリブロック（P）を生成するようにすることもできるし、この派生鍵によりこの派生鍵自身を暗号化することでプリブロック（P）を生成することもできる。なお、派生鍵は、共通鍵（Ｋ）の所定のバイトをシフト又はローテートすることで派生させればよい。
【００２７】
更に、暗号鍵の拡張アルゴリズムなどを利用して、データ長がブロック暗号のブロック長の整数倍の派生ブロックを共通鍵（Ｋ）から派生させ、プリブロック（P）を生成する手法も考えられる。例えば、共通鍵（Ｋ）により、この派生ブロックを暗号化することでプリブロック（P）を生成するようにすることができる。なお、派生ブロックの暗号に用いる暗号鍵は、上述した派生鍵でも構わない。
【００２８】
プリブロック（Ｐ）のデータ長は、プリブロック（Ｐ）を生成する手法によって決定し、例えば、プリブロック（Ｐ）を生成する関数として、共通鍵（Ｋ）を該共通鍵（Ｋ）で暗号化する手法を用いる場合、シングルＤＥＳをブロック暗号とすれば、シングルＤＥＳの鍵長はパリティを含めて６４ビットであるため、プリブロック（Ｐ）のデータ長はＤＥＳのブロック長（６４ビット）の１倍になる。また、ＡＥＳをブロック暗号とする際、ＡＥＳの鍵長が２５６ビットであれば、プリブロック（Ｐ）のデータ長はＡＥＳのブロック長の２倍（２５６ビット）になる。
【００２９】
次に、暗号化装置１０について説明する。暗号化装置１０は、プリブロック生成装置１２に共通鍵（K）を受け渡し、プリブロック生成装置１２が生成したプリブロック（Ｐ）を用い、暗号化の対象となる平文（Ｍ１・・・Mｎ）を暗号化した暗号文（Ｃ１・・・Ｃｎ）を生成する装置で、暗号化部は、暗号化装置１０として利用するコンピュータを暗号化部として動作させるためのコンピュータプログラムで実現される。
【００３０】
図２は、暗号化装置１０が平文（Ｍ１・・・Mｎ）を暗号化する手順を示したフロー図である。
【００３１】
暗号化装置１０が平文（Ｍ１・・・Mｎ）を暗号化する際、まず、暗号化の対象となる平文（Ｍ１・・・Mｎ）と暗号化に利用する共通鍵（Ｋ）が暗号化装置１０に指定される（Ｓ１）。平文（Ｍ１・・・Mｎ）及び共通鍵（Ｋ）が暗号化装置１０に記憶されていない場合、平文（Ｍ１・・・Mｎ）及び共通鍵（Ｋ）は、操作者や外部装置によって暗号化装置１０に入力されることになり、また、平文（Ｍ１・・・Mｎ）及び共通鍵（Ｋ）が暗号化装置１０に記憶されている場合、暗号化装置１０に記憶されている平文（Ｍ１・・・Mｎ）及び共通鍵（Ｋ）が、操作者や外部装置によって指定されることになる。
【００３２】
なお、ブロック暗号ではブロック長のブロック単位で処理するため、指定された平文のデータ長がブロック暗号のブロック長の整数倍でない場合、データ長がブロック暗号のブロック長の整数倍になるように、ＰＫＣＳ＃５などの規格に従い所定のデータがパディングされ、該平文は、ｎ個の平文ブロック（Ｍｉ、ｉ＝１からｎ）に分割される。
【００３３】
次に、暗号化装置１０は、ＳＳＬ（Secure Socket Layer）などの技術を利用して、プリブロック生成装置１２とＶＰＮ（Virtual Private Network）を構築した後（Ｓ２）、指定された共通鍵（Ｋ）をプリブロック生成装置１２に受け渡し、プリブロック生成装置１２が生成したプリブロック（Ｐ）をプリブロック生成装置１２から受け取る（Ｓ３）。
【００３４】
プリブロック生成装置１２からプリブロック（Ｐ）が受け渡されると、暗号化装置１０は、プリブロック（Ｐ）を先頭に付加した平文（Ｐ，Ｍ１・・・Mｎ）を生成した後（Ｓ４）、該平文（Ｐ，Ｍ１・・・Mｎ）を、共通鍵（Ｋ）を用い、所定のブロック暗号のアルゴリズムに従い暗号文ブロック連鎖モードにて暗号化する（Ｓ５）。
【００３５】
なお、暗号文ブロック連鎖モードでは、最初の平文ブロックから順に暗号化されるため、平文（Ｐ，Ｍ１・・・Mｎ）の暗号結果は、プリブロック（Ｐ）に対応する暗号ブロック（Ｃｐ）と平文ブロック（Ｍｉ、ｉ＝１からｎ）に対応する暗号ブロック（Ｃｉ、ｉ＝１からｎ）を結合した暗号文（Ｃｐ，Ｃ１・・・Ｃｎ）になる。
【００３６】
そして、暗号化装置１０の暗号化部は、平文（Ｐ，Ｍ１・・・Mｎ）を暗号化するこで得られた暗号文（Ｃｐ，Ｃ１・・・Ｃｎ）の先頭から、プリブロック（Ｐ）のデータ長のデータを除去することで、プリブロック（Ｐ）に対応する暗号ブロック（Ｃｐ）を除去する処理を行い、平文（Ｍ１・・・Mｎ）に対応する暗号文（Ｃ１・・・Ｃｎ）を生成して（Ｓ６）、図２で図示した手順は終了する。
【００３７】
例えば、プリブロック（Ｐ）が１ブロックならば、暗号化装置１０の暗号化部は、暗号文（Ｃｐ，Ｃ１・・・Ｃｎ）の先頭からブロック長のデータを除去することになり、また、プリブロック（Ｐ）が２ブロックならば、暗号化装置１０の暗号化部は、暗号文（Ｃｐ，Ｃ１・・・Ｃｎ）の先頭からブロック長の２倍のデータを除去することになる。
【００３８】
次に、復号装置１１について説明する。復号装置１１は、プリブロック生成装置１２に共通鍵（K）を受け渡し、プリブロック生成装置１２が生成したプリブロック（Ｐ）を用い、復号の対象となる暗号文（Ｃ１・・・Ｃｎ）を復号した平文（Ｍ１・・・Ｍｎ）を生成する装置で、復号装置１１には、暗号文（Ｃ１・・・Ｃｎ）を復号するためのコンピュータプログラムが実装される。
【００３９】
図３は、復号装置１１が暗号文（Ｃ１・・・Ｃｎ）を復号する手順を示したフロー図である。
【００４０】
復号装置１１の復号部が暗号文（Ｃ１・・・Ｃｎ）を復号する際、復号の対象となる暗号文（Ｃ１・・・Ｃｎ）と共通鍵（Ｋ）が指定される（Ｓ１０）。平文（Ｍ１・・・Mｎ）のデータ長はブロック暗号のブロック長の整数倍にパディングされた後に暗号化されるため、暗号文（Ｃ１・・・Ｃｎ）のデータ長は必ずブロック暗号のブロック長の整数倍になっており、図３において、暗号文（Ｃ１・・・Ｃｎ）は、ｎ個の暗号文ブロック（Ｃｉ、ｉ＝１からｎ）に分割されている。
【００４１】
復号の対象となる暗号文（Ｃ１・・・Ｃｎ）が指定されると、ＳＳＬ（Secure Socket Layer）などの技術を利用して、プリブロック生成装置１２とＶＰＮ（Virtual Private Network）を構築した後（Ｓ１１）、指定された共通鍵（Ｋ）をプリブロック生成装置１２に受け渡し、プリブロック生成装置１２が生成したプリブロック（Ｐ）をプリブロック生成装置１２から受け取る（Ｓ１２）。
【００４２】
上述しているように、ブロック暗号において、暗号文（Ｃ１・・・Ｃｎ）の生成側と復号側とで共通鍵は共有されるので、暗号化装置１０と同じ手法で同じ共通鍵（Ｋ）を用いることで、暗号文（Ｃ１・・・Ｃｎ）を生成するときに用いたプリブロック（Ｐ）を生成することが復号装置１１側でも可能である。
【００４３】
次に、復号装置１１は、指定された共通鍵（Ｋ）を用い、所定のブロック暗号のアルゴリズムに従い、暗号文ブロック連鎖モードでプリブロック（Ｐ）を暗号化することで、プリブロック（Ｐ）の暗号ブロック（Ｃｐ）を生成する（Ｓ１３）。
【００４４】
プリブロック（Ｐ）の暗号ブロック（Ｃｐ）を生成すると、復号装置１１は、プリブロック（Ｐ）の暗号ブロック（Ｃｐ）を除去する処理と逆の手順、すなわち、プリブロック（Ｐ）の暗号ブロック（Ｃｐ）を先頭に付加した暗号文（Ｃｐ、Ｃ１・・・Ｃｎ）を生成した後（Ｓ１４）、暗号化と逆の手順、すなわち、共通鍵（Ｋ）を用い、所定のブロック暗号のアルゴリズムに従い、暗号文ブロック連鎖モードで、該暗号文（Ｃｐ，Ｃ１・・・Ｃｎ）を復号する（Ｓ１５）。
【００４５】
暗号文ブロック連鎖モードでは、最初のブロックから順に復号されるため、暗号文（Ｃｐ，Ｃ１・・・Ｃｎ）の復号結果は、暗号ブロック（Ｃｐ）を復号したブロック、すなわち、プリブロック（Ｐ）と、暗号文（Ｃｉ、ｉ＝１からｎ）に対応する平文ブロック（Ｍｉ、ｉ＝１からｎ）を結合した平文（Ｐ、Ｍ１・・・Ｍｎ）になる。
【００４６】
次に、復号装置１１は、暗号文（Ｃｐ，Ｃ１・・・Ｃｎ）の復号結果（Ｐ、Ｍ１・・・Ｍｎ）の先頭から、プリブロック（Ｐ）のデータ長のデータを除去することで、プリブロック（Ｐ）を除去する処理を行い、暗号文（Ｃ１・・・Ｃｎ）に対応する平文（Ｍ１・・・Ｍｎ）を生成して（Ｓ１６）、図３で図示した手順は終了する。
【００４７】
なお、ＰＫＣＳ＃５などの規格に従い所定のデータがパディングされて暗号化されている場合、ＰＫＣＳ＃５などの規格に従いパディングされた所定のデータが、平文（Ｍ１・・・Ｍｎ）から除去される。
【実施例１】
【００４８】
ここから、本発明に係る暗号化システムの実施例について説明する。図４は、実施例１に係る暗号化／復号システム２を説明する図である。図４で図示した暗号化／復号システム２には、暗号化装置１０として機能するパーソナルコンピュータ２０と、復号装置１１として機能するパーソナルコンピュータ２１と、プリブロック生成装置１２として機能するサーバ２２が含まれ、パーソナルコンピュータ２０，２１とサーバ２２はインターネット２３を介して接続している。
【００４９】
プリブロック生成装置１２として機能するサーバ２２では、必要な機能に対応するアプリケーションソフトウェアを複数のユーザにシェアするＳａａｓ（Software as a Service）や、業務用のアプリケーションソフトウェアを特定のユーザにレンタルするＡＳＰ（Application Service Provider）などが運営され、実施例１において、サーバ２２が提供するアプリケーションソフトウェアは、これまで説明したプリブロック生成装置１２として機能するソフトウェアになる。
【００５０】
暗号化装置１０として機能するパーソナルコンピュータ２０には、これまで説明した暗号化装置１０として機能するコンピュータプログラムが実装され、また、復号装置１１として機能するパーソナルコンピュータ２１には、これまで説明した復号装置１１として機能するコンピュータプログラムが実装されている。
【００５１】
暗号化装置１０及び復号装置１１として機能するコンピュータプログラムは、パーソナルコンピュータ間で送信されるデータを暗号化することが必要なアプリケーションのアドインなどで具体的には実現され、該アプリケーションの一例としてはメールクライアントソフトが挙げられる。
【００５２】
パーソナルコンピュータ２０は、パーソナルコンピュータ２１へ送信するデータを暗号化する際、図２で図示した手順を実行して、該データの暗号文を生成し、生成した暗号文をパーソナルコンピュータ２１へ送信する。なお、実施例１では、プリブロック（Ｐ）を生成する装置はサーバ２２になるため、パーソナルコンピュータ２０は、サーバ２２で運営されているアプリケーションソフトウェアを利用して、プリブロック（Ｐ）を生成することになる。
【００５３】
また、パーソナルコンピュータ２１は、パーソナルコンピュータ２０から受信した暗号文を復号する際、図３で図示した手順を実行して、該暗号文を復号する。なお、実施例１では、プリブロック（Ｐ）を生成する装置はサーバ２２になるため、パーソナルコンピュータ２１は、サーバ２２で運営されているアプリケーションソフトウェアを利用して、プリブロック（Ｐ）を生成することになる。
【００５４】
（実施形態２）
次に、本発明の暗号化装置及び復号装置に係る実施形態２を説明する。図５は、実施形態２に係る暗号化装置３及び復号装置４を説明する図である。
【００５５】
実施形態２に係る暗号化装置３は、ＤＥＳやＡＥＳなど、暗号化を行う側と復号を行う側で同一の共通鍵（Ｋ）を利用し、定められたブロック長のブロック単位で暗号化する装置で、図５（ａ）に図示したように、暗号化装置３は、受け渡された共通鍵（K）からプリブロック（Ｐ）を生成するプリブロック生成部３１と、プリブロック生成部３１に共通鍵（K）を受け渡し、プリブロック生成部３１が生成したプリブロック（Ｐ）を用い、暗号化の対象となる平文（Ｍ１・・・Mｎ）を暗号化した暗号文（Ｃ１・・・Ｃｎ）を生成する暗号化部３０を備え、プリブロック生成部３１及び暗号化部３０は、暗号化装置３として利用するコンピュータをプリブロック生成部３１及び暗号化部３０として動作させるためのコンピュータプログラムで実現される。
【００５６】
また、実施形態２に係る復号装置４は、ＤＥＳやＡＥＳなど、暗号化を行う側と復号を行う側で同一の共通鍵（Ｋ）を利用し、定められたブロック長のブロック単位で復号する装置で、図５（ｂ）に図示したように、復号装置４は、受け渡された共通鍵（K）からプリブロック（Ｐ）を生成するプリブロック生成部４１と、プリブロック生成部４１に共通鍵（K）を受け渡し、プリブロック生成部４１が生成したプリブロック（Ｐ）を用い、復号の対象となる暗号文（Ｃ１・・・Ｃｎ）を復号した平文（Ｍ１・・・Ｍｎ）を生成する復号部４０を備え、プリブロック生成部及び復号部４０は、復号装置４として利用するコンピュータを復号部として動作させるためのコンピュータプログラムで実現される。
【００５７】
ここから、暗号化装置３が実行する手順について説明する。図６は、暗号化装置３が平文（Ｍ１・・・Mｎ）を暗号化する手順を示したフロー図である。
【００５８】
暗号化装置３の暗号化部が平文（Ｍ１・・・Mｎ）を暗号化する際、まず、暗号化の対象となる平文（Ｍ１・・・Mｎ）と暗号化に利用する共通鍵（Ｋ）が暗号化装置３に指定される（Ｓ２０）。平文（Ｍ１・・・Mｎ）及び共通鍵（Ｋ）が暗号化装置３に記憶されていない場合、平文（Ｍ１・・・Mｎ）及び共通鍵（Ｋ）は、操作者や外部装置によって暗号化装置３に入力されることになり、また、平文（Ｍ１・・・Mｎ）及び共通鍵（Ｋ）が暗号化装置３に記憶されている場合、暗号化装置３に記憶されている平文（Ｍ１・・・Mｎ）及び共通鍵（Ｋ）が、操作者や外部装置によって指定されることになる。
【００５９】
なお、ブロック暗号ではブロック長のブロック単位で処理するため、指定された平文のデータ長がブロック長の整数倍でない場合、データ長がブロック暗号のブロック長の整数倍になるように、ＰＫＣＳ＃５などの規格に従い所定のデータがパディングされ、該平文は、ｎ個の平文ブロック（Ｍｉ、ｉ＝１からｎ）に分割される。
【００６０】
次に、暗号化装置３は、指定された共通鍵（Ｋ）をプリブロック生成部３１に受け渡し、プリブロック生成部３１は、共通鍵（Ｋ）からプリブロック（Ｐ）を生成し、生成したプリブロック（Ｐ）を暗号化部３０へ受け渡す（Ｓ２１）。
【００６１】
プリブロック生成部３１がプリブロック（P）生成するときに利用する手法は、データ長がブロック暗号のブロック長の整数倍となれば任意でよく、このような手法としては、共通鍵（Ｋ）を該共通鍵（Ｋ）で暗号化する手法や、共通鍵（Ｋ）を所定の手順従いビットローテーションする手法、極端な例を挙げれば恒等関数を利用する手法が考えられる。
【００６２】
加えて、共通鍵（Ｋ）から派生鍵を派生させ、プリブロック（P）を生成する手法も考えられる。例えば、この派生鍵により共通鍵（Ｋ）を暗号化、又は、共通鍵（Ｋ）によりこの派生鍵を暗号化することでプリブロック（P）を生成するようにすることもできるし、この派生鍵によりこの派生鍵自身を暗号化することでプリブロック（P）を生成することもできる。なお、派生鍵は、共通鍵（Ｋ）の所定のバイトをシフト又はローテートすることで派生させればよい。
【００６３】
更に、暗号鍵の拡張アルゴリズムなどを利用して、データ長がブロック暗号のブロック長の整数倍の派生ブロックを共通鍵（Ｋ）から派生させ、プリブロック（P）を生成する手法も考えられる。例えば、共通鍵（Ｋ）により、この派生ブロックを暗号化することでプリブロック（P）を生成するようにすることができる。なお、派生ブロックの暗号に用いる暗号鍵は、上述した派生鍵でも構わない。
【００６４】
プリブロック生成部３１からプリブロック（Ｐ）が受け渡されると、暗号化装置３の暗号化部３０は、プリブロック（Ｐ）を先頭に付加した平文（Ｐ，Ｍ１・・・Mｎ）を生成した後（Ｓ２２）、該平文（Ｐ，Ｍ１・・・Mｎ）を、共通鍵（Ｋ）を用い、所定のブロック暗号のアルゴリズムに従い暗号文ブロック連鎖モードにて暗号化する（Ｓ２３）。
【００６５】
なお、暗号文ブロック連鎖モードでは、最初の平文ブロックから順に暗号化されるため、該平文（Ｐ，Ｍ１・・・Mｎ）の暗号結果は、プリブロック（Ｐ）に対応する暗号ブロック（Ｃｐ）と平文ブロック（Ｍｉ、ｉ＝１からｎ）に対応する暗号ブロック（Ｃｉ、ｉ＝１からｎ）を結合した暗号文（Ｃｐ，Ｃ１・・・Ｃｎ）になる。
【００６６】
そして、暗号化装置３の暗号化部は、平文（Ｐ，Ｍ１・・・Mｎ）を暗号化して得られた暗号文（Ｃｐ，Ｃ１・・・Ｃｎ）の先頭から、プリブロック（Ｐ）のデータ長のデータを除去することで、プリブロック（Ｐ）に対応する暗号ブロック（Ｃｐ）を除去する処理を行い、平文（Ｍ１・・・Mｎ）に対応する暗号文（Ｃ１・・・Ｃｎ）を生成して（Ｓ２４）、図６で図示した手順は終了する。
【００６７】
次に、復号装置４が実行する手順について説明する。図７は、復号装置４が暗号文（Ｃ１・・・Ｃｎ）を復号する手順を示したフロー図である。
【００６８】
復号装置４が暗号文（Ｃ１・・・Ｃｎ）を復号する際、復号の対象となる暗号文（Ｃ１・・・Ｃｎ）と共通鍵（Ｋ）が指定される（Ｓ３０）。平文（Ｍ１・・・Mｎ）のデータ長はブロック暗号のブロック長の整数倍にパディングされた後に暗号化されるため、暗号文（Ｃ１・・・Ｃｎ）のデータ長は必ずブロック暗号のブロック長の整数倍になっており、図３において、暗号文（Ｃ１・・・Ｃｎ）は、ｎ個の暗号文ブロック（Ｃｉ、ｉ＝１からｎ）に分割されている。
【００６９】
次に、復号装置４は、指定された共通鍵（Ｋ）をプリブロック生成部４１に受け渡し、プリブロック生成部４１は、所定の関数に共通鍵（Ｋ）を代入してプリブロック（Ｐ）を生成し、生成したプリブロック（Ｐ）を復号部４０へ受け渡す（Ｓ３１）。
【００７０】
プリブロック生成部４１がプリブロック（P）生成するときに利用する手法は、データ長がブロック暗号のブロック長の整数倍となれば任意でよく、このような手法としては、共通鍵（Ｋ）を該共通鍵（Ｋ）で暗号化する手法や、共通鍵（Ｋ）を所定の手順従いビットローテーションする手法、極端な例を挙げれば恒等関数を利用する手法が考えられる。
【００７１】
プリブロック生成部４１がプリブロック（Ｐ）を生成すると、復号装置４の復号部４０は、指定された共通鍵（Ｋ）を用い、所定のブロック暗号のアルゴリズムに従い暗号文ブロック連鎖モードでプリブロック（Ｐ）を暗号化することで、プリブロック（Ｐ）に対応する暗号ブロック（Ｃｐ）を生成する（Ｓ３２）。
【００７２】
プリブロックに対応する暗号ブロックを生成すると、復号装置４の復号部４０は、プリブロック（Ｐ）に対応する暗号ブロック（Ｃｐ）を除去する処理と逆の手順、すなわち、プリブロック（Ｐ）に対応する暗号ブロック（Ｃｐ）を先頭に付加した暗号文（Ｃｐ，Ｃ１・・・Ｃｎ）を生成した後（Ｓ３３）、暗号化と逆の手順、すなわち、共通鍵（Ｋ）を用い、所定のブロック暗号のアルゴリズムに従い暗号文ブロック連鎖モードで、該暗号文（Ｃｐ，Ｃ１・・・Ｃｎ）を復号する（Ｓ３４）。
【００７３】
暗号文ブロック連鎖モードでは、最初のブロックから順に復号されるため、該暗号文（Ｃｐ，Ｃ１・・・Ｃｎ）の復号結果は、暗号ブロック（Ｃｐ）を復号したブロック、すなわち、プリブロック（Ｐ）と、暗号文（Ｃｉ、ｉ＝１からｎ）に対応する平文ブロック（Ｍｉ、ｉ＝１からｎ）を結合した平文（Ｐ、Ｍ１・・・Ｍｎ）になる。
【００７４】
次に、復号装置４の復号部４０は、平文（Ｃｐ，Ｃ１・・・Ｃｎ）の復号結果（Ｐ、Ｍ１・・・Ｍｎ）の先頭から、プリブロック（Ｐ）のデータ長のデータを除去することで、平文（Ｐ、Ｍ１・・・Ｍｎ）からプリブロック（Ｐ）を除去する処理を行い、暗号文（Ｃ１・・・Ｃｎ）に対応する平文（Ｍ１・・・Ｍｎ）を生成して（Ｓ３５）、図７で図示した手順は終了する。
【実施例２】
【００７５】
次に、暗号化装置３と復号装置４の実施例として、本発明に係る暗号化装置３及び復号装置４の機能を兼ね備えたＩＣカード５について説明する。
【００７６】
図８は、実施例２に係るＩＣカード５を説明する図である。図８（ａ）では、ＩＣカード５に実装されたＩＣチップ６が有する回路・メモリを図示し、図８（ａ）に図示したように、ＩＣカード５に実装されるＩＣチップ６には、演算機能およびメモリを制御する機能を備えた中央演算装置６０（CPU：Central Processing Unit）、外部装置とのデータの入出力に利用されるＩ／Ｏ回路６１、揮発性メモリであるランダムアクセスメモリ６２（RAM：Random Access Memory）、読み出し専用の不揮発性メモリ６３（ROＭ：Read Only Memory、）、電気的に書換え可能な不揮発性メモリであるＥＥＰＲＯＭ６４（EEPROM：Electrically Erasable Programmable Read-Only Memory）、ＤＥＳの暗号演算に特化した回路であるコプロセッサ回路６５、乱数を生成する回路であるＲＮＧ回路６６（Random Number Generator）などが備えられ、ＣＰＵ６０とＣＰＵ６０以外のメモリ及び回路はデータバス６７及びアドレスバス６８を介して接続されている。
【００７７】
なお、図８（ａ）では、ＤＥＳの暗号演算に特化した回路であるコプロセッサ回路６５を図示しているが、ＤＥＳの暗号演算をコンピュータプログラムのみで実現することも可能であるため、ＤＥＳの暗号演算に特化した回路であるコプロセッサ回路６５が実装されないケースも考えられる。
【００７８】
図８（ｂ）では、ＩＣカードに実装されるコンピュータプログラムを図示し、図８（ｂ）に図示したように、ＩＣチップ６のＲＯＭ６３やＥＥＰＲＯＭ６４には、所定のブロック暗号で利用する共通鍵（Ｋ）が記憶され、更に、ＩＣカード１上で動作するコンピュータプログラムとして、共通鍵（Ｋ）を用い、所定のブロック暗号のアルゴリズムに従い暗号文ブロック連鎖モードで平文（Ｍ１・・・Mｎ）を暗号化する暗号化装置３の暗号化部３０として機能する暗号化モジュール５０と、共通鍵（Ｋ）を用い、所定のブロック暗号のアルゴリズムに従い暗号文ブロック連鎖モードで暗号文（Ｃ１・・・Ｃｎ）を復号する復号装置４の復号部４０として機能する復号モジュール５１と、暗号化装置３のプリブロック生成部３１又は復号装置４のプリブロック生成部４１として機能するプリブロック生成モジュール５２が備えられ、図８（ｂ）では、暗号化モジュール５０を利用するコマンドの一例として内部認証コマンド５３（Internal Authentication Command）を図示し、復号モジュール５１を利用するコマンドの一例として外部認証コマンド５４（External Authentication Command）を図示している。
【００７９】
暗号化モジュール５０を利用する内部認証コマンド５３は、ＪＩＣＳＡＰ等のＩＣカード規格に記載されているように、内部認証鍵（ここでは、共通鍵）を用いて、外部装置から送信されたチャレンジ（乱数）を暗号化することで内部認証コードを生成するコマンドで、内部認証鍵（ここでは、共通鍵）を用いて、外部装置から送信されたチャレンジ（乱数）を暗号化する際、図６で図示したように、暗号化モジュール５０はプリブロック生成モジュール５２を利用してプリブロック（Ｐ）を生成して、外部装置から送信されたチャレンジ（乱数）を暗号化する。
【００８０】
復号モジュール５１を利用する外部認証コマンド５４は、ＪＩＣＳＡＰ等のＩＣカード規格に記載されているように、外部認証鍵（ここでは、共通鍵）を用いて、外部装置から送信された外部認証コードを復号し、ＩＣカードが出力したチャレンジ（乱数）と復号結果を比較することで外部認証コードを認証するコマンドで、外部認証鍵（ここでは、共通鍵）を用いて、外部装置から送信された外部認証コードを復号する際、図７で図示したように、復号モジュール５１はプリブロック生成モジュール５２を利用してプリブロック（Ｐ）を生成して、外部装置から送信された外部認証コードを復号する。
【符号の説明】
【００８１】
１    実施形態１に係る暗号化／復号システム
１０  実施形態１に係る暗号化装置
１１  実施形態１に係る復号装置
１２  実施形態１に係るプリブロック生成装置
２    実施例１に係る暗号化／復号システム
２０  暗号化装置として機能するパーソナルコンピュータ
２１  復号装置として機能するパーソナルコンピュータ
２２  プリブロック生成装置として機能するサーバ
３    実施形態２に係る暗号化装置
３０  暗号化部
３１  プリブロック生成部
４    実施形態２に係る復号装置
４０  復号部
４１  プリブロック生成部
５    実施例２に係るＩＣカード
５０  暗号化モジュール
５１  復号モジュール
５２  プリブロック生成モジュール
５３  内部認証コマンド
５４  外部認証コマンド
【図１】
0005672037.tif 000003
【図２】
0005672037.tif 000004
【図３】
0005672037.tif 000005
【図４】
0005672037.tif 000006
【図５】
0005672037.tif 000007
【図６】
0005672037.tif 000008
【図７】
0005672037.tif 000009
【図８】
0005672037.tif 000010