(57)【要約】【課題】既にオーソライズされている暗号化の手法を活用して安全且つ高速な暗号処理を行うことのできる暗号処理技術を提供する。【解決手段】耐タンパー性は高いが処理能力は低い耐タンパーデバイス（ＩＣカード）２００は、初期ベクトルＩＶの生成と初期ベクトルＩＶ及び第１の鍵Ｋ１を用いて初段暗号演算ブロックＥ＿１を生成する処理のみで行い、それ以降の処理は、処理能力の高いパーソナルコンピュータなどの端末装置１００で行う。ブロック暗号におけるアルゴリズムは既存のものを採用することができる。暗号処理は、公知の出力フィードバックモードのように、先に行われたブロック暗号処理の結果情報を利用して、後のブロック暗号処理を繰り返すようなものを利用する。【選択図】図３
2007158967.tif 000002
【特許請求の範囲】
【請求項１】
第１の鍵を有する耐タンパーデバイスと協働で、先に実行されたブロック暗号処理の結果情報を用いた後のブロック暗号処理の実行を繰り返すことにより、複数段連続するブロックから成る対象データを暗号化する情報処理装置であって、
前記耐タンパーデバイスとの間の情報受け渡しを可能にするインタフェース部と、
前記第１の鍵と異なる第２の鍵を格納する鍵格納部と、
前記耐タンパーデバイスが前記第１の鍵を用いて実行したブロック暗号処理の結果情報を初段のブロック暗号処理の結果情報として前記インタフェース部を介して受け取るとともに前記鍵格納部から前記第２の鍵を読み取り、前記受け取った結果情報と前記読み取った第２の鍵とを用いた次段以降のブロック暗号処理の実行を繰り返す暗号処理部と、
を備えて成る情報処理装置。
【請求項２】
前記耐タンパーデバイスは、初段のブロックに対応するベクトルデータを前記第１の鍵で暗号化することにより第１暗号演算ブロックを生成する機能を有するものであり、
前記暗号処理部は、所定のメモリに記憶されている前記対象データから前記初段のブロックを読み出し、前記アクセス部を介して、前記読み出した初段のブロック又は当該ブロックに対応する前記ベクトルデータを前記耐タンパーデバイスに向けて送出するとともに当該耐タンパーデバイスから前記第１暗号演算ブロックを受け取り、この第１暗号演算ブロックと前記第２の鍵とを用いて次段のブロック暗号処理を実行する、
請求項１記載の情報処理装置。
【請求項３】
第２の鍵を有する情報処理装置と協働で、先に実行されたブロック暗号処理の結果情報を用いた後のブロック暗号処理の実行を繰り返すことにより、複数段連続するブロックから成る対象データを暗号化する耐タンパーデバイスであって、
前記情報処理装置との間の情報受け渡しを可能にするインタフェース装置と接続可能に構成されており、さらに、
前記第２の鍵と異なる第１の鍵を格納する鍵格納部と、
前記インタフェース装置を介して前記情報処理装置より前記対象データの一部を受け取り、受け取った前記一部の対象データに対する初段のブロック暗号処理を行うとともに、この結果情報を前記インタフェース装置を介して前記情報処理装置に送出する暗号処理部とを備えており、
前記情報処理装置に前記結果情報を用いた前記対象データの残部に対する次段以降のブロック暗号処理を実行させる、
耐タンパーデバイス。
【請求項４】
第１の鍵を有する耐タンパーデバイスと第２の鍵を有する情報処理装置とが協働して、先に実行されたブロック暗号処理の結果情報を用いた後のブロック暗号処理の実行を繰り返すことにより、複数段連続するブロックから成る対象データを暗号化する暗号処理方法であって、
前記情報処理装置が、所定のメモリに記憶されている前記対象データの一部を読み出し、この一部の対象データを前記耐タンパーデバイスに向けて送出する第１ステップと、
前記耐タンパーデバイスが、前記情報処理装置より受け取った前記一部の対象データに対する初段のブロック暗号処理を行うとともに、この結果情報を前記情報処理装置に送出する第２ステップと、
前記結果情報を受け取った前記情報処理装置が、当該結果情報と前記第２の鍵とを用いた次段以降のブロック暗号処理の実行を繰り返す第３ステップとを有する、
暗号処理方法。
【請求項５】
メモリを有するコンピュータを、第１の鍵を有する耐タンパーデバイスと協働で、先に実行されたブロック暗号処理の結果情報を用いた後のブロック暗号処理の実行を繰り返すことにより、複数段連続するブロックから成る対象データを暗号化する情報処理装置として動作させるためのコンピュータプログラムであって、
前記コンピュータを、
前記耐タンパーデバイスとの間の情報受け渡しを可能にするインタフェース部、
前記第１の鍵と異なる第２の鍵を前記メモリに格納する鍵格納部、及び、
前記耐タンパーデバイスが前記第１の鍵を用いて実行したブロック暗号処理の結果情報を初段のブロック暗号処理の結果情報として前記インタフェース部を介して受け取るとともに前記鍵格納部から前記第２の鍵を読み取り、前記受け取った結果情報と前記読み取った第２の鍵とを用いた次段以降のブロック暗号処理の実行を繰り返す暗号処理部、として機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のブロックに分けられるデータに対してブロック暗号処理を行う暗号処理技術に関する。より詳しくは、データに対する暗号処理を複数の装置、例えば情報処理装置と耐タンパーデバイスとの協働により行う暗号処理方法、及びそれを実現するための装置、デバイス、コンピュータプログラムに関する。
【背景技術】
【０００２】
近年、不正アクセスの問題や情報漏洩問題が増加しており、耐タンパー性についての関心が高まっている。耐タンパー性を高めるための手法の一つは、外部からデータを読み取りにくいように機密性を高める方法である。その代表的なものとしては、ファイル・データの暗号化がある。このような暗号化の方式には種々あるが、処理時間との兼ね合いから、共通鍵暗号を用いて暗号化するのが現実的且つ一般的である。
【０００３】
一方、共通鍵暗号方式の場合、暗号化に使用した鍵が漏洩してしまうと、当該鍵を用いて暗号化されたファイルの復号が可能になってしまうという問題がある。そのため、暗号化に使用した鍵が漏洩した場合であっても、その鍵を用いて暗号化されたファイルを保護することが求められている。
【０００４】
この種の問題に対する解決手法として、例えばＩＣカードなどで構成される耐タンパーデバイス内で暗号化処理を行わせることが考えられる。しかし、耐タンパーデバイスの情報処理能力は一般のパーソナルコンピュータなどの端末装置と比べて極めて低い。そのため、耐タンパーデバイス内でサイズの大きいファイルを暗号化させるのは非現実的である。
【０００５】
このような一般的なＩＣカードの低処理能力による問題点に着目し、新たな暗号化アルゴリズムをＩＣカードに実装したものもある（特許文献１参照）。
【０００６】
【特許文献１】特開２０００−２０７２８４
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１において提案された暗号化方式は、特定のサイズまでのデータであれば比較的安全であるが、特定のサイズ以上のデータの暗号化においては問題の生じるおそれがある。
【０００８】
本発明は、既にオーソライズされている暗号化の手法を有効活用して、安全且つ高速な暗号処理を可能にする暗号処理技術を提供することを主たる目的とする。
【課題を解決するための手段】
【０００９】
本発明は、特徴的な暗号処理を行う情報処理装置、耐タンパーデバイス、暗号処理方法及びコンピュータプログラムにより上記課題の解決を図る。
本発明が提供する情報処理装置は、第１の鍵を有する耐タンパーデバイスと協働で、先に実行されたブロック暗号処理の結果情報を用いた後のブロック暗号処理の実行を繰り返すことにより、複数段連続するブロックから成る対象データを暗号化する情報処理装置であって、前記耐タンパーデバイスとの間の情報受け渡しを可能にするインタフェース部と、前記第１の鍵と異なる第２の鍵を格納する鍵格納部と、前記耐タンパーデバイスが前記第１の鍵を用いて実行したブロック暗号処理の結果情報を初段のブロック暗号処理の結果情報として前記インタフェース部を介して受け取るとともに前記鍵格納部から前記第２の鍵を読み取り、前記受け取った結果情報と前記読み取った第２の鍵とを用いた次段以降のブロック暗号処理の実行を繰り返す暗号処理部と、を備えて成る。
【００１０】
前記耐タンパーデバイスは、例えば初段のブロックに対応するベクトルデータを前記第１の鍵で暗号化することにより第１暗号演算ブロックを生成する機能を有するものであり、前記暗号処理部は、例えば所定のメモリに記憶されている前記対象データから前記初段のブロックを読み出し、前記アクセス部を介して、前記読み出した初段のブロック又は当該ブロックに対応する前記ベクトルデータを前記耐タンパーデバイスに向けて送出するとともに当該耐タンパーデバイスから前記第１暗号演算ブロックを受け取り、この第１暗号演算ブロックと前記第２の鍵とを用いて次段のブロック暗号処理を実行するものである。
本発明が提供する耐タンパーデバイスは、第２の鍵を有する情報処理装置と協働で、先に実行されたブロック暗号処理の結果情報を用いた後のブロック暗号処理の実行を繰り返すことにより、複数段連続するブロックから成る対象データを暗号化する耐タンパーデバイスであって、前記情報処理装置との間の情報受け渡しを可能にするインタフェース装置と接続可能に構成されており、さらに、前記第２の鍵と異なる第１の鍵を格納する鍵格納部と、前記インタフェース装置を介して前記情報処理装置より前記対象データの一部を受け取り、受け取った前記一部の対象データに対する初段のブロック暗号処理を行うとともに、この結果情報を前記インタフェース装置を介して前記情報処理装置に送出する暗号処理部とを備えており、前記情報処理装置に前記結果情報を用いた前記対象データの残部に対する次段以降のブロック暗号処理を実行させるものである。
【００１１】
本発明が提供する暗号処理方法は、第１の鍵を有する耐タンパーデバイスと第２の鍵を有する情報処理装置とが協働して、先に実行されたブロック暗号処理の結果情報を用いた後のブロック暗号処理の実行を繰り返すことにより、複数段連続するブロックから成る対象データを暗号化する暗号処理方法であって、前記情報処理装置が、所定のメモリに記憶されている前記対象データの一部を読み出し、この一部の対象データを前記耐タンパーデバイスに向けて送出する第１ステップと、前記耐タンパーデバイスが、前記情報処理装置より受け取った前記一部の対象データに対する初段のブロック暗号処理を行うとともに、この結果情報を前記情報処理装置に送出する第２ステップと、前記結果情報を受け取った前記情報処理装置が、当該結果情報と前記第２の鍵とを用いた次段以降のブロック暗号処理の実行を繰り返す第３ステップとを有する方法である。
【００１２】
本発明が提供するコンピュータプログラムは、メモリを有するコンピュータを、第１の鍵を有する耐タンパーデバイスと協働で、先に実行されたブロック暗号処理の結果情報を用いた後のブロック暗号処理の実行を繰り返すことにより、複数段連続するブロックから成る対象データを暗号化する情報処理装置として動作させるためのコンピュータプログラムであって、前記コンピュータを、前記耐タンパーデバイスとの間の情報受け渡しを可能にするインタフェース部、前記第１の鍵と異なる第２の鍵を前記メモリに格納する鍵格納部、及び、前記耐タンパーデバイスが前記第１の鍵を用いて実行したブロック暗号処理の結果情報を初段のブロック暗号処理の結果情報として前記インタフェース部を介して受け取るとともに前記鍵格納部から前記第２の鍵を読み取り、前記受け取った結果情報と前記読み取った第２の鍵とを用いた次段以降のブロック暗号処理の実行を繰り返す暗号処理部、として機能させるコンピュータプログラムである。
【発明の効果】
【００１３】
本発明によれば、ブロック暗号処理の一部のみが耐タンパーデバイスで行われ、残部は処理能力の高い情報処理装置で行われれるので、対象データの全体に対する暗号処理が高速になるという効果がある。特に、ブロック暗号は、安全性についてオーソライズされている既存の暗号利用モードを用いることができるので、データサイズなどによって信頼性が問題になることはなく、また、第２の鍵を紛失・漏洩した場合であっても、安全性が確保される。即ち、悪意の第三者が第２の鍵を入手したとしても、第１の鍵を入手できなければ正しい復号結果を得ることができないが、第１の鍵は耐タンパーデバイスに保持されているので高いセキュリティレベルを確保することができる。従って、第２の鍵が漏洩した場合であっても、通常は第１の鍵まで漏洩することはなく、暗号処理に関する安全性が担保される。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態例による暗号化／復号システムについて説明する。
（第１の実施形態）
図１は、本発明の第１の実施形態による暗号化／復号システムの全体構成図である。この暗号化／復号システムは、情報処理装置の一例となる端末装置１００、耐タンパーデバイスの一例となるＩＣカード２００及びＩＣカード２００のインタフェース装置の一例となるＩＣカードリーダ／ライタ３００を備えている。端末装置１００としては、パーソナルコンピュータなどを使用することができる。ＩＣカードリーダ／ライタ３００は、端末装置１００に接続して使用される。
【００１５】
端末装置１００は、ＣＰＵ（プロセッサ・ユニット）１１０、ＲＯＭ１２０、ＲＡＭ１３０、補助記憶部としてのＨＤＤ（ハードディスク・ドライブ）１４０及びインタフェース部としてのＩ／Ｏ制御部１５０を備えている。ＨＤＤ１４０には、ＣＰＵ１１０に対して、本実施の形態により実行される暗号化／復号方法のうち、端末装置１００側で行うべき処理を実行させるためのコンピュータプログラムと、暗号化／復号処理に用いられる第２の鍵（Ｋ２）とが格納されている。コンピュータプログラムは、ＲＡＭ１３０上に展開される。ＣＰＵ１１０は、この主記憶ＲＡＭ１３０上に展開されたソフトウェア命令に従って動作し、それによりＩＣカード２００と協働で特徴的な暗号化／復号方法を具現化する。第２の鍵は、常時はＵＳＢメモリなど端末装置１００以外の手段に格納されていても良いが、暗号化／復号処理を行う際には、ＲＡＭ１３０上に展開されるようにする。
ＲＡＭ１３０上には、ＣＰＵ１１０が当該ソフトウェア命令に従って動作している間に生成したデータ及びＣＰＵ１１０により利用されるデータが一時的に記憶される。
【００１６】
ＩＣカード２００は、ＣＰＵ２１０、ＲＯＭ２２０、ＲＡＭ２３０、補助記憶としてのＥＥＰＲＯＭ２４０を備えている。ＥＥＰＲＯＭ１４０には、ＣＰＵ２１０に対して、本実施の形態による暗号化／復号処理のうちＩＣカード２００側で行うべき処理を実行させるためのコンピュータプログラムと、暗号化／復号処理に用いられる第１の鍵（Ｋ１）が格納されている。コンピュータプログラムは、ＲＡＭ２３０上に展開される。ＣＰＵ２１０は、この主記憶ＲＡＭ２３０上に展開されたソフトウェア命令に従って動作し、それにより端末装置１００と協働で上記の暗号化／復号方法を具現化する。
ＲＡＭ２３０上には、ＣＰＵ２１０が当該ソフトウェア命令に従って動作している間に生成したデータ及びＣＰＵ２１０により利用されるデータが一時的に記憶される。
【００１７】
ＩＣカードリーダ／ライタ３００は、Ｉ／Ｏ制御部１５０を介してＣＰＵ１１０の制御により、ＩＣカード２００との間の情報受け渡しを可能にするためのアクセス部として動作する。
なお、本実施の形態では、耐タンパーデバイスとしてＩＣカード２００を例に掲げたためにＩＣカードリーダ／ライタ３００を必要としているが、本発明はこれに限定されるものではない。即ち、本発明はＩＣカード２００以外の耐タンパーデバイスについても適用可能である。例えばＩ／Ｏ制御部１５０に直接接続する構成のものや、端末装置１００に設けられた通信ポート（図示せず）などに接続する構成のものであっても良い。この場合は、ＩＣカードリーダ／ライタを設ける必要はない。
【００１８】
この暗号化／復号システムによる暗号化／復号処理は、上述したようにして端末装置１００のＲＡＭ１３０上に展開されたソフトウェア命令をＣＰＵ１１０が実行する一方で、ＩＣカード２００のＲＡＭ２３０上に展開されたソフトウェア命令をＣＰＵ２１０が実行することにより実現される。より具体的には、端末装置１００とＩＣカード２００との協働により出力フィードバック(Output FeedBack：ＯＦＢとも呼ばれる)モードによる暗号化を行う。また、端末装置１００とＩＣカード２００との協働により出力フィードバックモードによる復号を行う。「出力フィードバックモード」とは、良く知られているように、あるブロックの内容が他のブロックの内容と同じであっても、その出力結果が同じにならないためのモードの一つである。図２及び図３は暗号化の手順説明図、図４及び図５は復号の処理手順図である。
【００１９】
本実施の形態では、上記の出力フィードバックモードによる暗号化に先立ち、暗号化の対象となるデータを、そのランダム性を高めるために、予め圧縮する。通常、暗号前のデータは「平文」、暗号後のデータは「暗号文」と呼ばれるが、本実施の形態では、「平文」に関しては、圧縮前後のデータの区別をつけるべく、圧縮前のデータを「原データ」と呼び、圧縮後のデータを出力フィードバックモードによる暗号化の対象という意味で「対象データ」と呼ぶこととする。
【００２０】
なお、圧縮以外の手段によってもランダム性を高めることができる。この場合、当該手段を適用する前のデータが原データであり、当該手段を適用した後のデータが「対象データ」となる。ランダム性を考慮する必要がなく、原データ（平文）をそのまま暗号化する場合には、原データが対象データとなる。
【００２１】
上記の暗号化の手順をより詳しく説明する。図２を参照すると、端末装置１００は、まず、原データを圧縮して対象データを生成し（ステップＳ１０１）、その対象データのうちの第１ブロック、例えば先頭ブロックＡ＿１をＩＣカード２００に送信する（ステップＳ１０２）。
【００２２】
ＩＣカード２００側では、端末装置１００から先頭ブロックＡ＿１を受信すると（ステップＳ２０１）、その先頭ブロックＡ＿１から第１ベクトル、本例では初期ベクトルＩＶを求める（ステップＳ２０２）。
次いで、ＩＣカード２００が有する第１の鍵Ｋ１を用いて初期ベクトルＩＶを暗号化して初段暗号演算ブロックＥ＿１を生成し（ステップＳ２０３）、その初段暗号演算ブロックＥ＿１を端末装置１００に送信する（ステップＳ２０４）。図３において“Ｅ”で示されるものは、Ｅｎｃｒｙｐｔｅｒ（暗号器：暗号アルゴリズム）である。これは、端末装置１００内のＥｎｃｒｙｐｔｅｒと同じものである。
【００２３】
端末装置１００は、ＩＣカード２００から初段暗号演算ブロックＥ＿１を受け取ると（ステップＳ１０３）、この初段暗号演算ブロックＥ＿１と第２の鍵Ｋ２とを用いて対象データを構成するすべてのブロックＡ＿１、Ａ＿２、Ａ＿３・・・を出力フィードバックモードに従って暗号化し、暗号文を作成する（ステップＳ１０４）。
【００２４】
詳しくは、端末装置１００は、図３からわかるように、初段暗号演算ブロックＥ＿１と先頭ブロック（第１ブロック）Ａ＿１との排他的論理和をとり、先頭ブロックＡ＿１に対応する第１暗号文ブロックＡ＿１’を生成する。
また、初段暗号演算ブロックＥ＿１を第２の鍵Ｋ２で暗号化して次段暗号演算ブロックＥ＿２を生成し、次段暗号演算ブロックＥ＿２と第２ブロックＡ＿２との排他的論理和をとることで、第２ブロックＡ＿２を暗号化した第２暗号文ブロックＡ＿２’を生成する。
更に、次段暗号演算ブロックＥ＿２を第２の鍵Ｋ２で暗号化して暗号演算ブロックＥ＿３を生成し、暗号演算ブロックＥ＿３と第３ブロックＡ＿３との排他的論理和をとることで、第３ブロックＡ＿３を暗号化した第３暗号文ブロックＡ＿３’を生成するといったようにして、以下、ブロック暗号処理を繰り返し行い、暗号文を得る。
【００２５】
このようにして得られた暗号文の復号は、図４の手順で行われる。即ち、端末装置１００は、暗号文の第１暗号文ブロック、本例では先頭ブロックＡ＿１’をＩＣカード２００に送信する（ステップＳ３０１）。
【００２６】
ＩＣカード２００側では、端末装置１００から暗号文の先頭ブロックＡ＿１’を受信すると（ステップＳ４０１）、その先頭ブロックＡ＿１’に対応する第１ベクトル、本例では初期ベクトルＩＶを求める（ステップＳ４０２）。
次いで、ＩＣカード２００は、初期ベクトルＩＶを第１の鍵Ｋ１で復号して、復号演算ブロックＤ＿１を生成し（ステップＳ４０３）、その復号演算ブロックＤ＿１を端末装置１００に送信する（ステップＳ４０４）。ここで、図５において“Ｄ”で示されるものは、Ｄｅｃｒｙｐｔｅｒ（復号器：復号アルゴリズム）であり、端末装置１００内におけるＤｅｃｒｙｐｔｅｒと同じものである。
【００２７】
端末装置１００は、ＩＣカード２００から復号演算ブロックＤ＿１を受信すると（ステップＳ３０２）、復号演算ブロックＤ＿１と第２の鍵Ｋ２とを用いて暗号文を構成するすべての暗号文ブロック（第１暗号文ブロックＡ＿１’、第２暗号文ブロックＡ＿２’、第３暗号文ブロックＡ＿３’・・・）を出力フィードバックモードに従って復号して、対象データを作成する（ステップＳ３０３）。
【００２８】
詳しくは、端末装置１００は、図５からわかるように、復号演算ブロックＤ＿１と第１暗号文ブロックＡ＿１’との排他的論理和をとり、先頭ブロック（第１ブロック）Ａ＿１を復号する。
また、復号演算ブロックＤ＿１を第２の鍵Ｋ２で復号して次段の復号演算ブロックＤ＿２を生成し、復号演算ブロックＤ＿２と第２暗号文ブロックＡ＿２’の排他的論理和をとることで、第２ブロックＡ＿２を生成する。
更に、復号演算ブロックＤ＿２を第２の鍵Ｋ２で暗号化して復号演算ブロックＤ＿３を生成し、暗号演算ブロックＥ＿３と第３暗号文ブロックＡ＿３’の排他的論理和をとることで、第３ブロックＡ＿３を生成する。以下、ブロック復号処理を繰り返し行い、対象データを得る。
その後、端末装置１００は、対象データを解凍（伸長）することにより、原データを作成する（ステップＳ３０４）。
【００２９】
このような暗号化／復号方法では、端末装置１００にて処理に用いる第２の鍵Ｋ２が漏洩した場合であっても、第１の鍵Ｋ１が耐タンパーデバイスであるＩＣカード２００に保存されているため、第２の鍵Ｋ２のみを取得した者が暗号文を適切に復号することはできず、高い安全性を確保することができる。
【００３０】
この暗号化／復号方法では、また、安全性を検証されオーソライズされている既存のブロック暗号手法（暗号利用モード、出力フィードバックモード）を用いることができるので、この方法を具現化するためのコンピュータプログラムなどの開発が容易でありながら、高い信頼性を得ることができる。
【００３１】
また、ＩＣカード２００側で行う暗号化に関する処理は、初期ベクトルＩＶの生成と初段の暗号演算ブロックＥ＿１の生成のみであり、その後の処理は、端末装置１００側で行えるので、サイズの大きいファイルであっても高速に暗号化することができる。
【００３２】
本発明は、上述した実施の形態に限定されるわけではなく、耐タンパーデバイスの処理能力の向上や暗号化に要求される処理時間の緩和などによっては、ＩＣカード２００のような耐タンパーデバイス側で例えば第１暗号文ブロックＡ＿１’の生成や、次段の暗号演算ブロックＥ＿２の生成までを行い、以降の処理を端末装置１００側で行うこととしても良い。
【００３３】
（第２の実施形態）
本発明の第２の実施の形態により実行される暗号化／復号方法を説明する。この方法は、第１の実施の形態による暗号化／復号方法の変形例である。この方法を具現化するための装置構成等については第１の実施の形態と同じなので、それらについての説明は割愛し、処理のみについて説明する。
差異を簡単に説明すると、第１の実施の形態による暗号化／復号方法では、初期ベクトルＩＶをＩＣカード２００側で生成したが、第２の実施の形態による暗号化／復号方法では、初期ベクトルＩＶを端末装置１００側で生成する。この方法の手順を図６〜図９を参照して説明する。
【００３４】
図６及び図７を参照すると、端末装置１００は、まず、原データを圧縮して対象データを生成する（ステップＳ５０１）。また、その対象データの先頭ブロック（第１ブロック）Ａ＿１から初期ベクトルＩＶを生成して（ステップＳ５０２）、生成した初期ベクトルＩＶをＩＣカード２００に送信する（ステップＳ５０３）。
【００３５】
ＩＣカード２００側では、端末装置１００から初期ベクトルＩＶを受信すると（ステップＳ６０１）、第１の鍵Ｋ１を用いて初期ベクトルＩＶを暗号化して初段暗号演算ブロックＥ＿１を生成し（ステップＳ６０２）、その初段暗号演算ブロックＥ＿１を端末装置１００に送信する（ステップＳ６０３）。
【００３６】
端末装置１００は、ＩＣカード２００から初段暗号演算ブロックＥ＿１を受けとると（ステップＳ５０４）、初段暗号演算ブロックＥ＿１と第２の鍵Ｋ２とを用いて対象データを構成するすべてのブロックＡ＿１、Ａ＿２、Ａ＿３・・・を出力フィードバックモードに従って暗号化し、暗号文を作成する（ステップＳ５０５）。このステップＳ５０５における処理の詳細は、第１の実施の形態の場合と同じである。
【００３７】
このようにして得られた暗号文は、図８及び図９に示される手順で復号される。
復号に際して、端末装置１００は、まず暗号文の先頭ブロックＡ＿１’に対応する初期ベクトルＩＶを求め（ステップＳ７０１）、その初期ベクトルＩＶをＩＣカード２００に送信する（ステップＳ７０２）。
【００３８】
ＩＣカード２００側では、端末装置１００から初期ベクトルＩＶを受信すると（ステップＳ８０１）、その初期ベクトルＩＶを第１の鍵Ｋ１で復号して、復号演算ブロックＤ＿１を生成し（ステップＳ８０２）、その復号演算ブロックＤ＿１を端末装置１００に送信する（ステップＳ８０３）。
【００３９】
端末装置１００は、ＩＣカード２００から復号演算ブロックＤ＿１を受信すると（ステップＳ７０３）、復号演算ブロックＤ＿１と第２の鍵Ｋ２とを用いて暗号文を構成するすべての暗号文ブロック（第１暗号文ブロックＡ＿１’、第２暗号文ブロックＡ＿２’、第３暗号文ブロックＡ＿３’・・・）を出力フィードバックモードに従って復号して、対象データを作成する（ステップＳ７０４）。このステップＳ７０４における処理の詳細は、第１の実施の形態の場合と同様である。
その後、端末装置１００は、対象データを解凍（伸張）して、原データを作成する（ステップＳ７０５）。
【００４０】
本実施の形態によれば、第１の実施の形態により得られる効果に加え、初期ベクトルＩＶ生成の演算処理も端末装置１００側で行うこととしたため、更なる高速化が図れる。
【００４１】
なお、第１及び第２の実施の形態では、一段前のブロックの処理結果がなければ、該当ブロックの暗号化／復号処理を実施できないこと、また、先頭ブロックの処理結果がなければ、複数段から成るブロックの一部すら正しく復号できない、ということが条件になっている。例えば、ブロック暗号利用モードであるＥＣＢ、ＣＢＣ、ＣＦＢでは、通常端末に登録されている鍵が漏洩した場合、その鍵を用いて先頭ブロック以外のブロックの復号が可能である。よって、暗号利用モードは、上述した出力フィードバックモードの場合だけでなく、先に行われたブロック暗号の処理内容を利用して後のブロック暗号を行う処理を順次繰り返すような暗号利用モードであって、かつ、先頭ブロックの処理結果がなければ、複数段からなるブロックの一部すら正しく復号できない暗号モードであれば、他の暗号利用モードであっても良い。
【図面の簡単な説明】
【００４２】
【図１】本発明の第１の実施の形態による暗号化／復号システムの構成を概略的に示すブロック図である。
【図２】本発明の第１の実施の形態による暗号化方法を示す図である。
【図３】図２に示される暗号化方法におけるブロック暗号の関係を示す図である。
【図４】本発明の第１の実施の形態による復号方法を示す図である。
【図５】図４に示される復号方法におけるブロック暗号の関係を示す図である。
【図６】本発明の第２の実施の形態による暗号化方法を示す図である。
【図７】図６に示される暗号化方法におけるブロック暗号の関係を示す図である。
【図８】本発明の第２の実施の形態による復号方法を示す図である。
【図９】図８に示される復号方法におけるブロック暗号の関係を示す図である。
【符号の説明】
【００４３】
１００        端末装置
１１０        ＣＰＵ
１２０        ＲＯＭ
１３０        ＲＡＭ
１４０        ＨＤＤ
１５０        Ｉ／Ｏ制御部
２００        ＩＣカード
２１０        ＣＰＵ
２２０        ＲＯＭ
２３０        ＲＡＭ
２４０        ＥＥＰＲＯＭ
３００        ＩＣカードリーダ／ライタ
【図１】
2007158967.tif 000003
【図２】
2007158967.tif 000004
【図３】
2007158967.tif 000005
【図４】
2007158967.tif 000006
【図５】
2007158967.tif 000007
【図６】
2007158967.tif 000008
【図７】
2007158967.tif 000009
【図８】
2007158967.tif 000010
【図９】
2007158967.tif 000011