(57)【特許請求の範囲】
【請求項１】
データを符号化するための方法であって、
ホスト（４２）が受信した平文データの１つのブロック内の全てのビットの指標を含むデータの指標を生成するステップと、
該ホスト（４２）からの該データの指標を暗号モジュール（２０）において受信するステップと、
該暗号モジュール（２０）に記憶されている１つの暗号キーを使用して該暗号モジュール（２０）内で該データの指標を暗号化するステップと、
暗号化された該データの指標を該ホスト（４２）に返送するステップとを含み、
該ホスト（４２）は、信託されていないのに対して、該暗号モジュール（２０）は、信託されており、
該データの指標は、データのブロックを表すハッシュ値であり、
暗号化された該データの指標は、１つのブロックキーを形成し、該方法は、
該暗号モジュール（２０）から受信した該ブロックキーを使用して該ホスト（４２）において該データのブロックを暗号化するステップをさらに含む方法。
【請求項２】
請求項１に記載の方法において、該データのブロックを暗号化するステップは、データの結果としての暗号化されたブロックがその暗号化されてない相手と同数のビットを持つように該データのブロックを暗号化するステップを含む方法。
【請求項３】
請求項１に記載の方法において、該ハッシュ値は、該暗号化されたデータのブロックから計算できることを特徴とする方法。
【請求項４】
請求項１に記載の方法において、該ハッシュ値は、複数のサブブロックに分割されるデータの１つのブロックであり、少なくとも１つのサブブロックが該分割された複数のサブブロックから選択され、各サブブロックは、データの複数のビットを含み、それによって該少なくとも１つの選択されたサブブロックは、該データのブロック内のあらゆるビットに関して独立である方法。
【請求項５】
請求項４に記載の方法において、該ブロックキーは、ａ）  該少なくとも１つの選択されたサブブロックの１つの暗号文を生成するための該値の第１の暗号化と、ｂ）  該ブロックキーを導出するための該暗号文の第２の暗号化とによって生成される方法。
【請求項６】
データを平文化するための方法であって、
ホスト（４２）において暗号化されたデータと該データの指標とを受信するステップと、
１つの暗号キーを備える暗号モジュール（２０）に該データの指標を送信するステップ；および
該暗号モジュール（２０）おいて該データの指標を平文化するステップと、
該平文化されたデータの指標を該ホスト（４２）に返送するステップとを含み、
該ホスト（４２）は、信託されていないのに対して、該暗号モジュール（２０）は、信託されており、
該暗号化されたデータは、暗号文の１つのブロックであり、
該データの指標は、該暗号文のブロックの１つのメッセージ・ダイジェストであり、
該平文化するステップは、該暗号文のブロックを生成するのに以前に使用された１つのブロックキーを回復するステップを含み、
該回復は、該暗号キーを使用して遂行され、該方法は、
該ブロックキーを使用して該ホスト（４２）において該暗号文のブロックを平文化するステップを含む方法。
【請求項７】
請求項６に記載の方法において、該暗号文のブロックのメッセージ・ダイジェストは、該ホスト（４２）によって受信された該暗号文のブロック内に含まれる方法。
【請求項８】
１つの暗号キーを記憶している１つの暗号モジュール（２０）を含む暗号化システムであって、該暗号モジュール（２０）は、
ホスト（４２）が受信した平文データの１つのブロック内の全てのビットの指標を含むデータの指標をホスト（４２）から受信するための手段（２１，２５，２６，２７，２８）と、
該暗号キーを使用して該データの指標を暗号化するための手段（２２，２０）と、
該暗号化されたデータの指標を該ホスト（４２）に返送するための手段（２１，２５，２６，２７，２８）とを含み、該ホスト（４２）は、
該暗号モジュール（２０）から該暗号化されたデータの指標を受信するための手段（４０，３５，３６，３７，３８，３９，４１）を含み、
該ホスト（４２）は、信託されていないのに対して、該暗号モジュール（２０）は、信託されており、
該データの指標は、データのブロックを表すハッシュ値であり、
暗号化された該データの指標は、１つのブロックキーを形成し、該システムは、
該受信したブロックキーを使用して該データのブロックを暗号化する手段（４２）を含むシステム。
【請求項９】
請求項８に記載のシステムにおいて、該値は、該暗号化されたデータのブロックから導出することが可能であるシステム。
【請求項１０】
請求項８に記載のシステムにおいて、該データのブロックを暗号化するための手段（４２）は、暗号化されたデータブロックがその暗号化されてない相手と同一のビット数を持つことを保証するための手段（４２）をさらに含むシステム。
【請求項１１】
暗号化されたデータと該データの指標とを受信するための手段（４２）を備える１つのホスト（４２）を含む暗号化システムであって、
記憶されている暗号キーを備える暗号モジュール（２０）に該データの指標を送信するための手段（４２）と、
該暗号キーを使用して該データの指標を平文化する手段（２２）を備える暗号モジュール（２０）と、
該データの平文化された指標を該ホスト（４２）に送信するための手段（２１，２５，２６，２７，２８）とを含み、
該ホスト（４２）は、信託されていないのに対して、該暗号モジュール（２０）は、信託されており、
該暗号化されたデータは、暗号文の１つのブロックであり、
該データの指標は、該暗号文のブロックの１つのメッセージ・ダイジェストであり、
該平文化する手段は、該暗号文のブロックを生成するのに以前に使用された１つのブロックキーを回復する手段(22)を含み、
該回復は、該暗号キーを使用して遂行され、該システムは、
該ブロックキーを使用して該ホスト（４２）において該暗号文のブロックを平文化する手段（４２）を含むシステム。
【請求項１２】
請求項１１に記載のシステムにおいて、該メッセージ・ダイジェストは、該ホストによって受信された暗号文のブロック内に含まれるシステム。
【請求項１３】
データを暗号化するホスト（４２）であって、該ホスト（４２）が受信した平文データの１つのブロック内の全てのビットの指標を含むデータの指標を第１の暗号キーを記憶する暗号モジュール（２０）に送信する手段（４１，３９，４０，３５，３６，３７，３８）を含み、
該データの指標は、データの１つのブロックを表すハッシュ値であり、
該暗号モジュール（２０）は、該第１の暗号キーの下で少なくとも１回変換されると共に該第１の暗号キーの指標をもたない情報を含む第２の暗号キーを該ホスト（４２）に送信し、
該ホストは、該第２の暗号キーの下で該データのブロック内の該データの少なくとも一部分を暗号化する手段を含むホスト。
【請求項１４】
データを暗号化するホスト（４２）であって、暗号化されたデータと該データの指標とを受信する手段（４２）と該データの指標を暗号モジュール（２０）に送信する手段（４１，３９，４０，３５，３６，３７，３８）とを含み、
該ホスト（４２）は、信託されていないのに対して、該暗号モジュール（２０）は、信託されており、
該暗号化されたデータは、第１の暗号キーの下で以前に変換されたデータの１つのブロックであり、該データのブロックは、第２の暗号キーのもとで変換された複数のセグメントを含み、該第２の暗号キーは、該第１の暗号キーと該セグメント内のデータの関数であり、
該データの指標は、該セグメントのうちの所定の１つの中に記憶されているデータと関連する１つのメッセージ・ダイジェストであり、それによって該暗号モジュール（２０）が該第２の暗号キーを識別し、
該第２の暗号キーを使用して該セグメントの少なくとも１つのサブセットを平文化する手段（４２）を含むホスト。
【請求項１５】
暗号モジュール（２０）であって、
１つの暗号キーを記憶する手段（２２）と、
ホスト（４２）が受信した平文データの１つのブロック内の全てのビットの指標を含むデータの指標をホスト（４２）から受信する手段（２１，２５，２６，２７，２８）と、
データの指標を暗号化する手段（２２）と、
ホスト（４２）にデータの該暗号化したデータの指標を送信する手段とを含み、
該ホスト（４２）は、信託されていないのに対して、該暗号モジュール（２０）は、信託されており、
該データの指標は、平文データの１つのブロックの部分としてのデータの１つのブロックのハッシュ値であり、
該暗号化する手段は、該暗号キーの下で少なくとも１つの変換動作を実行して１つの異なる暗号キーを導出する手段を含み、該１つの異なる暗号キーは、該ホスト（４２）に送信され、それによって該ホスト（４２）が該異なる暗号キーの下で該ブロック内のビットを暗号化する暗号モジュール。
【請求項１６】
暗号モジュール(20)であって、
第１の暗号キーを記憶する手段（２２）と、
ホスト（４２）から暗号化されたデータを受信する手段（２１，２５，２６，２７，２８）と、
データを平文化する手段（２２）と、
ホスト（４２）にデータを送信する手段（２１，２５，２６，２７，２８）とを含み、
該ホスト（４２）は、信託されていないのに対して、該暗号モジュール（２０）は、信託されており、
該暗号化されたデータは、a) 該第１の暗号キーと複数のサブブロック内の暗号文データの関数である第２の暗号キーのもとで以前に暗号化され、b) データの１つのブロックの部分として該ホスト（４２）によって受信された該複数のサブブロックのグループのうちの暗号文データの１つのサブブロックの少なくとも１つのメッセージ・ダイジェストを含み、
該平文化する手段は、該暗号化されたデータの該メッセージ・ダイジェストから該第２の暗号キーを導出する手段を含み、該第２の暗号キーは、該ホスト（４２）に送信され、それによって該ホスト（４２）が該第１の暗号キーを知ることなく暗号化された残りのサブブロックを平文化する暗号モジュール。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は暗号モジュールおよびそれらのホストプロセッサとの対話に関する。
【０００２】
【従来の技術】
暗号モジュール、例えば、スマートカードは、多くの現代的な保安アプリケーションにおける重要な構築ブロックである。より詳細には、スマートカードの持つ改竄耐性パッケージング、低コスト、生来的な携帯性、およびホストとのルーズな結合のために、スマートカードは、ホスト自身に機密キーを格納することを信託できないような場合に、機密キー格納トークンとして使用するのに特に魅力的である。残念なことに、これら魅力的な特性は、同時に、幾つかのアプリケーションに対しては、スマートカードの利用性を制限する。例えば、スマートカードのルーズな結合と低コスト特性は、典型的には、スマートカードがデータをそれと結合されるホストの速度と同程度の速さでは処理できないことを含蓄する。
【０００３】
帯域幅要件は、幾つかのアプリケーション（例えば、デジタル署名）においては、僅かであるために、スマートカードの低帯域幅は、これらアプリケーションにおいてはそれらの実現の障害とはならない。ただし、他のアプリケーション（例えば、暗号ファイル、暗号リアルタイムトラヒック、暗号マルチメディア、暗号ビデオなど）においては、これら自身の帯域幅インテンシブ特性のために、スマートカードの機密キーの下での多量のデータの暗号化および平文化が必要とされる。これらアプリケーションに対しては、現存のスマートカードの帯域幅は、システム全体の速度が、カードインタフェースの遅延と帯域幅、並びに、これらスマートカード内に埋め込まれたマイクロプロセッサの計算能力によって制限されるために、重大なボトルネックとなる。
【０００４】
【発明が解決しようとする課題】
これら問題を解決するために、スマートカード（およびそのホストあるいはカードリーダへのインタフェース）の処理性能を接続されるホストの処理能力と匹敵するように設計しようとする試みがある。ただし、この試みは、スマートカードの厳しい寸法要件を考えると、常に技術的に可能ではない。さらに重要なことに、接続されるホストの処理能力と匹敵するようにスマートカードの処理能力を増加させることは、システムの総コストを著しく増加させ、恐らくは、多くのアプリケーションに対しては、コスト的に現実的でなくなる。他の解決策として、スマートカードの動作をキー格納機能にのみ限定し、これによって、できるだけ多くの処理負荷を、低速な計算能力に制限をもつスマートカードから、より高速で強力な処理能力を持つホストにシフトしようとする考えがある。ただし、この考えは、スマートカードを保安用途に用いようとする目的自身を、これらの解決策の実現のためには任意の暗号タスクの遂行の前に暗号キーをホストに利用できるようにすることが要求されるために、覆すこととなる。つまり、この解決策の実現は、ホストプロセッサに機密キーが信託されることを含蓄し、これは、様々な機密突破に対する窓を開放することとなる。従って、従来の技術の一つの問題は、スマートカードの機密キーを使用して多量のデータを暗号化および平文化するための安全な暗号システム（cryptograhic system）が存在しないことである。
【０００５】
【課題を解決するための手段】
本発明は、信託されているが、ただし、低帯域幅の暗号モジュールが、信託されてないが、ただし、高速なホストプロセッサの処理能力を使用する、高帯域幅機密キー、暗号化／平文化エンジンとして機能することを可能にするためのシステムに関する。このシステムによって、ホストに機密キーを洩らすことなしに、多量の暗号化／平文化タスクの遂行が可能になる。この暗号モジュールは、例えば、スマートカードあるいは標準に準拠するPersonal Computer Memory Card International Association（PCMCIA）デバイスであり得る。
【０００６】
本発明の原理の一つの実現においては、ホストプロセッサがホストによって受信されたデータのブロックのコンパクトな表現を計算（生成）する。このコンパクトなデータ表現が、次に、暗号モジュールに送信され、暗号モジュールによってこのコンパクトなデータ表現がその中に格納された暗号キーの下で暗号化され、結果としてブロックキーが形成され、これがホストに送り返される。ホストが次にこのデータのブロックをブロックキーの下で暗号化する。このプロセスがホストによって受信された平文テキストデータの各ブロックに対して、あるブロックに対するキーと別のブロックに対するキーとの間に有効な相関が存在しないような方法にて反復される。本発明の一面によると、平文テキストデータのブロックのコンパクトな表現は平文テキストデータの暗号化されたブロック内に含まれる。さらに、結果としての暗号テキストのサイズは、暗号化プロセスをホスト上でランする他のアプリケーションに対して透明にするために、平文テキストデータのサイズと同一にされる。
【０００７】
暗号化されたデータの平文化は、上に説明の暗号化プロセスの逆を行なうことによって達成される。より詳細には、ホストが、暗号化されたデータの形式での暗号テキストのブロックと暗号化されたデータのそのブロックの一つのコンパクトな表現を受信すると、ホストは、暗号テキストのそのブロックのコンパクトな表現を暗号モジュールに送信する。暗号モジュールは、その暗号キーと、暗号テキストのそのブロックの受信されたコンパクトな表現を使用して、ブロックキーを回復する。暗号モジュールが、次に、このブロックキーをホストに送り返し、ホストが、このキーを使用して、暗号テキストのそのブロックを平文化する。
【０００８】
【実施例】
図１は本発明の暗号化／平文化構成のために使用されるように設計されたシステムのブロック図である。図１のブロック図は、携帯暗号化モジュールあるいはスマートカード２０、カードリーダ／ライタ３０およびホスト４２を示す。図１においては、カードリーダ／ライタ３０は、別個のスタンドアローン要素として示されるが、カードリーダ／ライタ３０は、ホスト４２内に含ませることもできるものと理解すべきである。
【０００９】
スマートカード２０の主要な要素には、マイクロプロセッサ２２、アナログインタフェースチップ２１、変圧器２９の誘導コイル２４、および容量性プレート２５−２８が含まれる。スマートカードの全ての要素は、好ましくは、スマートカードの表面下に薄層化され、外部コンタクトに侵入者がアクセスできないようにされる。マイクロプロセッサ２２は、中央処理ユニットおよび図１と２に示されるプログラムインストラクションの幾つかを格納する内部メモリユニットを持つ。マイクロプロセッサ２２の内部メモリユニットは、また、マイクロプロセッサ２２によって、カードリーダ／ライタ３０を介して、ホスト４２にデータを送信するためあるいはこれから受信するために実行されるプロトコルおよび関連するソフトウエアプログラムを含む。これらソフトウエアプログラムは、また、図２と３に示されるプログラムインストラクションとの関連でデータをこれもマイクロプロセッサ２２の内部メモリユニット内に格納される暗号キーの下で暗号化および平文化するために使用されるブロック暗号化アルゴリズム、例えば、周知のData Encryption Standard（ＤＥＳ）アルゴリズムを含む。
【００１０】
スマートカード２０の属性の中で特に重要な事項は、ａ）マイクロプロセッサ２２が制限された計算能力を持ち、このために、スマートカード２０が特定の時間期間内に暗号化平文化できる量が限定されること、およびｂ）スマートカード２０とホストとの間のリンクの帯域幅が限られることである。
【００１１】
スマートカード２０へのあるいはこれからの全ての入力は、アナログインタフェースチップ２１を経由される。チップ２１は、マイクロプロセッサ２２へのあるいはこれからの情報の転送を行い、また、カードリーダ／ライタ３０からの電力をスマートカード２０に分配する。より具体的には、アナログインタフェースチップ２１が変圧器２９の誘導コイル２４、３２とのメイティングを通じて電力を受けると、アナログインタフェースチップ２１は電力のコンディショニングの後に、これをマイクロプロセッサ２２に分配する。同様にして、スマートカード２０の容量性プレート２５、２６、２７、２８とカードリーダ／ライタ３０の容量性プレート３５、３６、３７、３８との間のメイティングを介してこれに転送されるデータに対して、クロック回復と信号のコンディショニングがアナログインタフェースチップによって遂行される。スマートカード２０の寸法の制約のために、容量性プレート２５、２６、２７、２８がカードリーダ／ライタ３０からスマートカード２０に運ぶことができる情報の量には限界がある。従って、スマートカード２０は、ＣＰＵの制限を持つのに加えて、帯域幅の制限も持つ。
【００１２】
スマートカード２０の電力とデータ転送特性との関連で上で説明したカードリーダ／ライタ３０の様々な要素に加えて、カードリーダ／ライタ３０は、さらに、電源３１、ユニバーサル非同期受信機送信機（Universal Asynchronous Receiver Transmitter、UART）４１、マイクロプロセッサ３９、およびアナログインタフェース回路４０を含む。スマートカード２０内に含まれる要素の幾つかは、カードリーダ／ライタ３０内でも使用される。例えば、物理的に同一のマイクロプロセッサを両方のマイクロプロセッサ２２、３９に対して使用することができる。同様にして、アナログインタフェースチップ２１と４２のデータ転送機能は、殆ど同一である。電源３１は、電力を、カードリーダ／ライタ３０とスマートカード２０に、後者が前者に結合されたときに供給する。電源３１は、また、カードリーダ／ライタ３０から変圧器２９を通じてスマートカード２０に送られるクロック信号の同期を取る。UART４１は、主として、特定の標準に従って非同期データを送受信するように構成された物理的インタフェースとして機能する。UART４１は、クロック同期信号を電源３１に送り、ホスト４２から受信されたデータをマイクロプロセッサ３９に転送し、マイクロプロセッサ３９から受信されたデータをホスト４２に送信する。
【００１３】
ホスト４２は、図１にデータ記憶領域として示されるデータ源５０から平文テキストデータおよび／あるいは暗号テキストを受信する汎用コンピュータである。別の構成として、データ源５０は、ホスト４２にあるいはこれから、データベース管理システムからマルチメディアアプリケーションに至までの多様なアプリケーションと対応するデータを送信あるいは受信するように構成された通信網であることも考えられる。ホスト４２は、そのメモリ内に、ソフトウエアプログラムおよび図２と３に示されるプログラムインストラクションの幾つかを格納する。ホスト４２によって実行されるソフトウエアプログラムの主要なものとして、暗号化／平文化アルゴリズム、例えば、ＤＥＳアルゴリズムがあるが、このアルゴリズムは、平文テキスト（あるいは暗号テキスト）データを一つあるいは複数の暗号キーの下で、暗号化（平文化）することを可能にする。このアルゴリズム内に含まれるインストラクションは、ホスト４２が、おのおのが、それぞれＢ1 ．．．Ｂn とＣ1 ．．．Ｃn として呼ばれる一連のｎ個の個別のｂビットブロックから構成される平文テキストデータＢと暗号テキストＣの大きなブロックに関して動作することを可能にする。
【００１４】
ホスト４２の内部メモリには、さらに、任意長ビットストリングの暗号ハッシュをリターンする公開関数に対するプログラムインストラクションが格納されている。この例においては、ホスト４２は、ソース５０から受信された平文テキストデータを処理することを信託される。ただし、ホスト４２は、スマートカード２０内に埋め込まれたマイクロプロセッサ２２の内部メモリ内に格納されている暗号キーを知ることは許されない。従って、ホスト４２は、単一の任意長ブロックを暗号化あるいは平文化するための充分な情報を得るために、スマートカード２０と、単一の低帯域幅対話を遂行するように構成される。ただし、スマートカード２０の援助と協力なしには、ホスト４２は、スマートカード２０から受信された情報を使用して他のブロックの暗号化あるいは平文化を行なうことはできない。
【００１５】
図２は、本発明の原理を実現するためにホスト４２とスマートカード２０によって実行されるプログラムインストラクションの流れ図を示す。ホスト４２がソース５０から平文テキストデータのブロックを受信すると、これは、このデータのブロックを、ステップ２０１において示されるように、Ｎ個のサブブロックＢ1からＢnに分割する。データの受信ブロックのサイズは、アプリケーションに依存するが、ただし、各サブブロックのサイズは、暗号関数によって決定される。平文テキストデータのブロックの分割は、ブロックのコンパクトな表現を得るために遂行される。この例においては、平文テキストデータのブロックのコンパクトな表現（すなわち、ブロックのメッセージ・ダイジェスト）は、そのブロック内の全てのビットを拡散（diffusing）することによって達成される。より詳細には、ステップ２０２において、コンパクト表現関数が開始される。つまり、ホスト４２は、サブブロックの一つ、例えば、サブブロックＢ１ を選択し、そのブロック内のビットのハッシュを計算し、結果としてのハッシュＨ（Ｂ１ ）を生成する。その後、ホスト４２は、ステップ２０３において、残りのザブブロックＢ２ からＢｎ に関してこのハッシュ値Ｈ（Ｂ１ ）との“排他的論理和”動作を遂行し、中間サブブロックＩ２ ．．．Ｉｎ ．．を生成する。次に、ホスト４２は、ステップ２０４において、中間サブブロックＩ２ ．．．Ｉｎ ．．のハッシュ値ｈを計算する。次に、ステップ２０５において、ホスト４２によって、中間サブブロックＩ１ が、サブブロックＢ１ のハッシュ値ｈとの“排他的論理和”動作を通じて計算される。ステップ２０６において、ホスト４２は、スマートカード２０に中間サブブロックＩ1を送信する。サブブロックＩ1は、上に説明のハッシュと“排他的論理和”動作の結果として、平文テキストデータのブロック内の全てのビットの指標を含むことに注意する。換言すれば、この平文テキストデータのブロック内の全てのビットがＩ1を生成するために拡散（diffused）されたことになる。
【００１６】
中間サブブロックＩ1 を受信すると、スマートカード２０が、ステップ２０７において、その暗号キーＫの下で、中間サブブロックＩ1 を暗号化し、暗号化されたサブブロックＣ1 を生成する。スマートカード２０は、ステップ２０８に進み、暗号キーＫの下でサブブロックＣ1 を暗号化し、ブロックキーＫs を生成する。その後、スマートカード２０は、ステップ２０９において、暗号化されたサブブロックＣ1 をホスト４２に送信し、ホスト４２は、中間ブロックＩ2 からＩn をブロックキーＫs の下で暗号化し、サブブロックＢ2 からＢn に対する暗号テキストＣ2 からＣn を生成する。オプションとして、この暗号化は、チェーニング暗号化、例えば、Federal Information Processing Standards Publication 81、Government Printing Office、Washington、D.C.、1980 において定義されている暗号ブロックチェーニングプロセスにて遂行することも可能である。
【００１７】
図３は、ホスト４２とスマートカード２０によって、本発明に従って暗号テキストデータのブロックを平文化するために実行されるプログラムインストラクションを流れ図にて示す。ステップ３０１に示されるように、ホスト４２が暗号テキストデータのブロックを受信すると、これはこのデータのブロックをｎ個のサブブロックＣ1 −Ｃn に分割する。ステップ３０２において、ホスト４２が第一の暗号ブロックＣ1 をスマートカード２０に送信し、スマートカード２０は、第一の暗号サブブロックＣ1 内のデータを暗号化し、ブロックキーＫs を得る。その後、スマートカード２０が、ステップ３０２において、第一の暗号テキストサブブロックＣ1 を平文化し、中間サブブロックＩ1 を得て、これがホスト４２にブロックキーＫs と一緒に送られる。ホスト４２が、ステップ３０３において、このブロックキーＫs を使用して、Ｃ2 −Ｃn を平文化し、中間サブブロックＩ2−Ｉnを回復する。ホスト４２は、次に、ステップ３０４に進み、中間サブブロックＩ2 −Ｉn に対するハッシュ値ｈを計算する。その後、ホスト４２は、スマートカード２０から受信された中間サブブロックＩ1 に関してハッシュ値ｈとの“排他的論理和”動作を遂行することによってＢ1 を回復する。ホスト４２が、ステップ３０５において、そのサブブロックＢ1 内のビットのハッシュを計算することによって、結果としてのハッシュＨ（Ｂ1 ）を生成する。ホスト４２が、次に、ステップ４０６において、サブブロックＢ2 −Ｂn を回復する。ホスト４２が、ステップ４０７において、サブブロックＢ2 −Ｂn を組み立てて平文テキストデータのブロックを再生する。テーブル１および２は、それぞれ、上の例に対する暗号化および平文化プロセスのための一例としてのプログラミングコードを示す。
【００１８】
【表１】
0003917679.tif 000002
【表２】
0003917679.tif 000003
【００１９】
注意すべき点として、上に説明の平文化プロセスは、暗黙のうちに、暗号化されたブロックのコンパクト表現がそのブロック内に含まれたデータ内に含まれることを想定するが、ただし、本発明の原理は、この要件なしに実現することも可能である。
【００２０】
オプションとして、暗号テキストの勝手な改竄を検出するために、認証プロセスを暗号化および平文化タスクに追加することもできる。この認証プロセスは、単純に、各ブロックの第一のビットを、ある与えられた固定値（例えば、全て０）にセットすることから成る。平文化の際にこれらビットを調べることによって、暗号テキストの改竄を簡単に検出することができる。
【００２１】
長所として、任意サイズのブロックを一回のカード対話にて暗号化あるいは平文化することができる。ここで、カードは、ある一つのデータのブロックの暗号化あるいは平文化のいずれかに対して、たった２度の暗号ブロック動作のみを遂行する。さらに、ホスト４２は、スマートカード２０へのオンラインアクセスなしでは、データを暗号化することも平文化することもできない。換言すれば、カードなしでは、そのカードと以前に対話したことのあるホストの場合であっても、暗号化および平文化は、暗号を見破るのと同程度に困難である。
【図面の簡単な説明】
【図１】本発明の暗号化／平文化構成のために使用されるように設計されたシステムのブロック図である。
【図２】図１の要素の幾つかによって本発明の原理に従ってデータを暗号化平文化するために実行されるプログラムインストラクションの流れ図である。
【図３】図１の要素の幾つかによって本発明の原理に従ってデータを暗号化平文化するために実行されるプログラムインストラクションの流れ図である。
【符号の説明】
２０  スマートカード
２１、４０  アナログインタフェースチップ
２２、３９  マイクロプロセッサ
２４、３２  誘導コイル
２５〜２８、３５〜３８  容量性プレート
２９  変圧器
３０  カードリーダ／ライタ
３１  電源
４１  ユニバーサル非同期受信機送信機
４２  ホスト
５０  データベース
【図１】
0003917679.tif 000004
【図２】
0003917679.tif 000005
【図３】
0003917679.tif 000006