(57)【要約】【課題】【解決手段】本発明は、プロセッサと、第２の永続的メモリの情報漏洩レベルより高い情報漏洩レベルを持つ第１の永続的メモリ、内の第１の暗号化された情報とを含むデータ処理システムを対象とする。当該第２の永続的メモリには、第１の暗号化情報を解読し、また、それによって、操作を実行するために、プロセッサによって使用可能な第１の非暗号化情報をそこから生成する、ための第１の暗号化キーが格納されている。第１の非暗号化情報を暗号化し、それによって、第１の暗号化情報を生成するため同じ暗号化キーが使用されることもある。本発明はまた、オペレーティング・システムで、こうしたデータ処理システムを処理する方法であって、第１の非暗号化情報を第１の永続的メモリに書き込むための書込みステップと、第１の暗号化キーを使用して第１の非暗号化情報を暗号化し、そこから第１の永続的メモリ内に第１の暗号化情報を生成する、ための暗号化ステップと、第１の永続的メモリへの書込みがオペレーティング・システムによって制御される状態に、データ処理システムを設定する、ためのアクセス制限ステップと、を含む方法をも対象とする。本発明はまた、こうしたデータ処理システム上で操作を実行する方法であって、第１の暗号化キーを使用することによって第１の暗号化情報を解読し、それによって、そこから第１の非暗号化情報を生成する、ための解読ステップと、第１の非暗号化情報を使用してプロセッサによる操作を実行するための実行ステップと、を含方法にも関連する。
2005510095.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ（５０）と
第１の情報漏洩レベルを有する第１の永続的メモリ（２０）と、
前記第１の情報漏洩レベルより低い第２の情報漏洩レベル、を有する第２の永続的メモリ（４０）と、
前記第１の永続的メモリ（２０）に格納された第１の暗号化情報（２１、２２）と、
前記第２の永続的メモリ（４０）に格納されており、前記第１の暗号化情報（２１、２２）を解読し、また、それによって、操作を実行するために前記プロセッサ（５０）によって使用可能な第１の非暗号化情報（３１、３２）をそこから生成する、ために使用可能な、第１の暗号化キー（４５）と
を含む、データ処理システム（１０）。
【請求項２】
プロセッサ（５０）と
第１の情報漏洩レベルを有する第１の永続的メモリ（２０）と、
前記第１の情報漏洩レベルより低い第２の情報漏洩レベル、を有する第２の永続的メモリ（４０）と、
前記第２の永続的メモリ（４０）に格納されており、第１の非暗号化情報（３１、３２）を暗号化して、そこから、前記第１の永続メモリ（２０）内で格納することができ、また操作を実行するために前記プロセッサ（５０）によって使用可能である、第１の暗号化情報（２１、２２）、を生成するために使用可能である第１の暗号化キー（４５）と
を含む、データ処理システム（１０）。
【請求項３】
前記第１の非暗号化情報（３１、３２）が、前記操作のため、第２の暗号化情報（３３）を解読するために使用可能な第２の暗号化キーを含む、請求項１または２に記載のデータ処理システム（１０）。
【請求項４】
前記第１の暗号化キー（４５）を使用して前記第１の非暗号化情報（３１、３２）を暗号化し、そこから、前記第１の永続的メモリ（２０）内に前記第１の暗号化情報（２１、２２）を生成する、ための暗号化ステップと、
前記第１の永続的メモリ（２０）への書込みがオペレーティング・システム（４１）によって制御される状態に、前記データ処理システム（１０）を設定する、ためのアクセス制限ステップと
を含む個人化ステップ、を実行するための格納されたコードをさらに含む、請求項１ないし３の一項に記載のデータ処理システム（１０）。
【請求項５】
前記第１の暗号化キー（４５）を使用して、前記第１の暗号化情報（２１、２２）を解読し、また、それによって、そこから第１の非暗号化情報（３１、３２）を生成する、ための解読ステップと、
前記第１の非暗号化情報（３１、３２）を使用して、前記プロセッサ（５０）によって操作を実行するための実行ステップと
を含む操作実行ステップ、を実行するための格納されたコードをさらに含む、請求項１ないし４の一項に記載のデータ処理システム（１０）。
【請求項６】
プロセッサ（５０）と、第１の情報漏洩レベルを有する第１の永続的メモリ（２０）と、前記第１の情報漏洩レベルより低い第２の情報漏洩レベル、を有する第２の永続的メモリ（４０）と、オペレーティング・システム（４１）と、前記第２の永続的メモリ（４０）に格納された第１の暗号化キー（４５）と、を含むデータ処理システム（１０）を処理する方法であって、
前記第１の永続的メモリ（２０）に第１の非暗号化情報（３１、３２）を書き込むための書込みステップと、
前記第１の暗号化キー（４５）を使用して前記第１の非暗号化情報（３１、３２）を暗号化し、そこから、前記第１の永続的メモリ（２０）内に前記第１の暗号化情報（２１、２２）を生成する、ための暗号化ステップと、
前記第１の永続的メモリ（２０）への書込みがオペレーティング・システム（４１）によって制御される状態に、前記データ処理システム（１０）を設定する、ためのアクセス制限ステップと
を含む方法。
【請求項７】
プロセッサ（５０）と、第１の情報漏洩レベルを有する第１の永続的メモリ（２０）と、前記第１の情報漏洩レベルより低い第２の情報漏洩レベル、を有する第２の永続的メモリ（４０）と、前記第１の永続的メモリ（２０）に格納された第１の暗号化情報（２１、２２）と、前記第２の永続的メモリ（４０）に格納された第１の暗号化キー（４５）と、を含むデータ処理システム（１０）上で処理を実行する方法であって、
前記第１の暗号化キー（４５）を使用して前記第１の暗号化情報（２１、２２）を解読し、それによって、そこから第１の非暗号化情報（３１、３２）を生成する、ための解読ステップと、
前記第１の非暗号化情報（３１、３２）を使用して前記プロセッサ（５０）によって操作を実行する、ための実行ステップと
を含む方法。
【請求項８】
前記第１の非暗号化情報（３１、３２）が、前記操作のため、第２の暗号化情報（３３）を解読するために使用可能な第２の暗号化キーを含むように選択される、請求項６または７に記載の方法。
【請求項９】
請求項６ないし８の一項に記載の方法を実施するためのプログラム・コード手段を含む、コンピュータ・プログラム。
【請求項１０】
データ処理システムに格納された前記プログラム・コード手段を含む、請求項９に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システム、それを処理するための方法、およびデータ処理システム上で操作を実行するための方法に関する。より詳細には、本発明は、スマートカードと暗号化キーを使用してスマートカードを処理する方法、および暗号化キーを使用してスマートカード上で操作を実行するための方法に関する。
【背景技術】
【０００２】
暗号操作は、データ暗号化および認証など、様々な処理のために使用されている。典型的な対称暗号化処理では、秘密キーは、安全な通信のためにそれを使用する、複数の関係者に知られている。非対称暗号化または公開キー暗号化では、一方の当事者は一般に、秘密キー、たとえばいわゆるプライベート・キーを使用した操作を実施し、他方の当事者は、非秘密のパラメータ、たとえばいわゆる公開キーだけを使用した補完的な操作を実施する。キーを損なわせる攻撃者は、通信を解読し、署名を偽造し、未許可の取引を行い、ユーザを擬装し、または他の問題をもたらし得るので、対称と非対称の両方の暗号システムにおいて、秘密のパラメータは、機密のまま保たれなければならない。
【０００３】
物理的に安全な遮蔽ルームを用いて、暗号化キーを安全に管理する方法は、周知であり、広く使用されている。しかし、暗号化装置内でキーを保護するための既知の方法はしばしば、高度の改ざん防止性を必要とするものなど、多くの応用例にとって十分でない。
【０００４】
顕微鏡を使用したＲＯＭのリバース・エンジニアリングや、たとえばＰ．コハー（P.Kocher）著、「Diffie-Hellman、ＲＳＡ、ＤＳＳ、および他のシステムの実装に対するタイミング・アタック（Timing Attacks onImplementations of Diffie-Hellman, RSA, DSS, and Other Systems）」、暗号学の進歩−クリプト’９６（Advancesin Cryptology--CRYPTO '96）、スプリンガ・フェアラーク（Springer-Verlag）、１０４〜１１３頁、によって記載されているタイミング・アタック暗号解析、ならびに、たとえばＥ．ビハム（E.Biham）およびＡ．シャミア（A. Shamir）著、「秘密キー暗号システムの差分障害解析（Differential Fault Analysis ofSecret Key Cryptosystems）」、暗号学の進歩−クリプト’９７（Advances in Cryptology--CRYPTO '97）、スプリンガ・フェアラーク（Springer-Verlag）、１９９７年、５１３〜５２５頁、によって記載されているエラー解析、などの攻撃が暗号システムの解析について知られている。
【０００５】
暗号学的に、安全であると考えられている暗号およびアルゴリズムが知られている。たとえば、３重ＤＥＳ、即ち異なるキーを用いてデータ暗号標準を３重に適用することによって作成される暗号は、攻撃者が、プロトコルへの標準的な入力とそこからの出力とに対してアクセスできるだけであることを条件として、暗号解析的な攻撃に耐えることができる。しかし、３重ＤＥＳなどの極めて強力な暗号を使用する製品でさえ、キーが安全に管理されなければ、安全ではないことがある。スマートカードは一般に、データ暗号標準（ＤＥＳ：Data Encryption Standard）などの暗号技術を使用して、その内部データを符号化する。ＤＥＳについての詳細な説明は、ブルース・シュナイア（BruceSchneier）著、応用暗号（Applied Cryptography）、第２版、ISBN 0 11709-91、１９９６年、ジョン・ウィレー・アンド・サンズ（JohnWiley & Sons）、２６５頁、によって提示されている。ＤＥＳについての連邦情報処理規格（ＦＩＰＳ: Federal InformationProcessing Standard）説明は、インターネットhttp://csrc.nist.gov/fips/で入手可能なＦＩＰＳ文献４６−３に含まれている。
【０００６】
ＤＥＳは、６４ビット・キー（実際は、そのうちの５６ビットだけが使用される）を使用するブロック暗号システムであり、非常に高速であり、広く採用されてきた。ＤＥＳは、総当り攻撃、即ち単にすべての可能なキーを試すことによって解読することができるが、３重ＤＥＳは、依然として非常に安全であると見なされている。以下に記載する例の目的のためには、ＤＥＳアルゴリズムがＳ−ＢＯＸと称される８つの別個の変換テーブルへの参照の実施を１６回行う、ということを知っていれば十分である。３重ＤＥＳ、ＩＤＥＡ、ＳＥＡＬおよびＲＣ４や、ＲＳＡおよびＥＬ  Ｇａｍａｌを用いた公開キー（非対称）暗号化／解読や、ＤＳＡ、ＥＬ  ＧａｍａｌおよびＲＳＡを用いたデジタル署名や、ならびにDiffie-Hellmanキー一致プロトコル、を含む他の類似の暗号技術もまた、当技術分野で知られている。こうした暗号化システムの理論上の強さおよび複雑さに拘わらず、こうしたキーを遙かに迅速に解読することを可能にする電力解析技術が、開発されてきた。
【０００７】
ＤＥＳおよび他の暗号化アルゴリズムに関する情報は、メネゼス（Menezes）他著、「応用暗号ハンドブック（Handbookof Applied Cryptography）」、ＣＲＣプレス社（CRC Press, Inc.）、１９９７、年でも見ることができる。データ暗号標準（ＤＥＳ）は、データ暗号化、疑似ランダム番号生成、ＭＡＣ、および他の暗号操作、のための暗号基本形として広く使用されている。基本のＤＥＳ暗号化アルゴリズムでは、５６ビット・キーを使用して、６４ビットの平文ブロックを６４ビットの暗号文ブロックに変換する。対応する解読操作では、同じキーを使用して、暗号文ブロックを、対応する平文に変換する。
【０００８】
暗号システムとも称される暗号化システムから秘密キーを取得するために、攻撃者は、こうしたシステムが情報を漏洩することを利用する。攻撃者は、一連の操作を観測することによって、データを収集し、観測に対して統計解析を実施し、その結果を用いてキーを決定する。一般的な状況では、攻撃者は、たとえば、セキュア・トークンが暗号操作を実施するときの、その電力消費など物理的な特性を監視する。キーを必要とする暗号操作をトークンが実施するのが観測されるごとに、攻撃者は、キーに関する少量のデータを収集する。トークンがキーを必要とする操作を実施するときに、攻撃者は、トークンを何回も観測することからデータを収集し、それを統計的に相互に関連付けまたは組み合わせることによって、キーに関して既知の情報量を増やす。情報を漏洩している暗号システムの場合、こうした観測値は、信号情報、即ちキーに有用に相関された情報を含み得る。しかし、こうした観測値は、ノイズ、即ちキーの決定を妨げたりまたはそれとは無関係であったりする情報およびエラー、をも含む。こうした観測から得られる情報の質は、ノイズ量に対する信号の大きさを測定する「信号対雑音」即ちＳ／Ｎ比によって特徴付けられる。キーを回復するために攻撃者が解析しなければならない操作の数は、測定および解析技術に依存するが、一般にＳ／Ｎ比の２乗に反比例する。比例定数もまた攻撃者が求める信用の度合いに依存する。たとえば、比較的低い信用度は、キーのビット値に関する統計情報を使用して、最適化された総当り探索を行いたいと望む攻撃者にとっては、許容できるものである。信号を１５分の１に減少させ、測定ノイズの量を２０倍に増加すると、信号対雑音比は、３００分の１に減少する。これは一般に、キーに関して、同じ情報量を抽出するために攻撃者がおよそ９０，０００倍の観測を必要とすることを意味する。Ｓ／Ｎ比の減少前は、キーを回復するために１，０００回の観測を必要としていた攻撃に、今度は、回復されたキーに対して同じ信用度を得るために、９千万回程度の観測が必要になる。
【０００９】
ＤＥＳキーを抽出するために使用されているＤＰＡの例は、http://www.cryptography.com/dpa/technicalより入手可能な、Ｐ．コハー（PaulKocher）、ジョシュア・ジャフ（Joshua Jaffe）およびベンジャミン・ジュン（Benjamin Jun）著、１９９８年、「差分電力解析および関連攻撃概論（Introductionto differential power analysis and related attacks）」、または、Thomas S. Messerges、エッジ・Ａ．ダビッシュ（EzzyA. Dabbish）およびロバートＨ．サローン（Robert H. Sloan）著、１９９９年、「スマートカードに対する電力解析攻撃の調査（Investigationsof power analysis attacks on smart cards）」、ユーズニックス’９９（Usenix '99）、http://www.eecs.edu/-tmesserg/usenix99/html/paper.htmlによって、ならびに、ルイ・グーバン（Louis Goubin）およびジャック・パタラン（JacquesPatarin）著、１９９９年、「ＤＥＳおよび差分電力解析：「複製」方法（DES and differential power analysis: the"duplication" method）」、チェス会報’９９（Proceedings of CHES '99）、スプリンガ・コンピュータ・サイエンス講義ノート（SpringerLecture Notes in Computer Science）、第１７１７巻、１９９９年８月、http://www.cryptosoft.com/htmi/secpub.htm#goubin、によっても提示されている。
【００１０】
主な目的は、たとえば、キーに近づくため攻撃者が要する観測の数を増やすことによって、攻撃に成功するのが困難な暗号システムを構築することである。使用可能な信号サイズを小さくし、および／またはエラーと、ノイズと攻撃者の測定における不確実性との量を増加させることによって、システム設計者は、仕事関数、即ちシステムを破るために必要な労力を増大させることができる。理想的には、かなりの量の有用なキー情報を得るのに必要なサンプルの数は、キーを使用して実施することができる最大トランザクション数を越えているべきであるか、たとえばキーが失効する前に、装置によって実施することができるトランザクション数を越えているべきであるか、あるいは、監視する攻撃が、総当りまたは他の周知の攻撃と同じ程度かまたはそれ以上難しくなるほど多いものであるべきである。たとえば、ほとんどのスマートカードの稼動寿命を遥かに超える百万回の操作の後で自己破壊するように事前にプログラムされたシステムにおいて、攻撃者が、トランザクション全体にわたって、１０００分の１よりも遥かに小さい信号対雑音比での測定に制限される場合は、攻撃者は、装置に近づくのに十分な測定値を収集することができない。物理的に大規模なシステムでは、効果的な物理的遮蔽と隔離と入出力の慎重なフィルタリングとによって、電力消費、電磁放射、装置内の電気的活動、その他を解析することを含む外部監視攻撃から暗号化装置を保護し、さらに物理的な攻撃から保護することができる。しかし、制約されたエンジニアリング環境でこうした技術を適用するのは難しい。たとえば、サイズ、重量、コスト要件、といった物理的な制約と節電の必要性とが、周知の遮蔽技術を使用する妨げになり得る。
【００１１】
電子情報を、敵意のある相手から隠しておくことは、個人であれ、企業であれ、政府であれ、または軍であれ、多くの環境において望ましいことである。特別な種類の電子ハードウェア装置である「遮蔽プラットフォーム」は、この必要性を満たすために開発されてきた。用語「プラットフォーム」は一般に、ソフトウェア・プログラムの実行を含めて、計算をサポートすることができるハードウェア／ソフトウェア環境を指す。「遮蔽」プラットフォームは、リバース・エンジニアリングを無効にする目的で構築されたプラットフォームを指す。
【００１２】
磁気ストライプ上に、少量の情報を格納する従来のクレジット・カードおよびデビット・カードとは異なり、スマートカードなどの遮蔽プラットフォームは、マイクロプロセッサ、ランダム・アクセス・メモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）を使用して、大幅に増大した量のデータを格納し、処理することができる。遮蔽プラットフォームでは一般に、オープンな環境で、秘密のパラメータを、その値を漏らさずに維持し操作するための暗号技術を使用して、その安全が確保される。たとえば、デジタル署名を計算するために使用される秘密キーの漏洩によって、攻撃者は所有者のデジタル署名を偽造し、不正取引を実行することができる。
【００１３】
遮蔽プラットフォームは、チャレンジ応答プロトコルの一部として、デジタル署名を実施するなど、情報をおよびアルゴリズムを保護しながら、コマンドまたは要求を認証しながら、また、任意データを暗号化しまたは解読しながら、その機能を実施することを意図するものである。ストアード・バリュー・システムにおいて使用されるスマートカードは、たとえば、デジタル署名したり、あるいはスマートカードのシリアル番号、残高、有効期限、取引カウンタ、通貨、および決済の一部としての取引額、といった諸パラメータを計算したりすることができる。
【００１４】
電力解析は、プラットフォームの「電力符号（power signature）」によって、プラットフォーム上で実装されるデータとアルゴリズムとに関する情報を収集するプロセスである。プラットフォームの「電力符号」は、プラットフォーム上に格納されるソフトウェアを実行する間に時間をかけて測定された、電力消費のプロファイルである。マイクロプロセッサ、マイクロコントローラ、または類似の電子装置によって消費される電力は、装置内の電子部品の状態によって変化する。こうした装置は一般に、０および１の２進表現でデータを表し、このデータは、電子装置内で、対応する高いまたは低い電圧レベルによって表される。たとえば、１の値は、＋５ボルトによって、また０の値は、０ボルトによって表すことができる。
【００１５】
したがって、ある所与の時点において、遮蔽プラットフォームが消費する総電力は、あるデータ・ワード内の２進数の１の個数と相関し得る。したがって、遮蔽プラットフォームから消費される電流、およびそこから生じる電磁放射の量は、その中で操作されている秘密と相関し得ることになる。こうした信号は秘密キーを回復するため、攻撃者によって測定され解析され得る。状態遷移もまた、演算を実施する装置の電力消費に大きな影響を及ぼす。ビット値が変化するとき、そのビットに関連するトランジスタが状態を変化させる。したがって、システムが遷移中であるときは消費される電力が増加する。攻撃者は、暗号操作を実施しているときの、装置の電力消費、電磁放射、またはプロセッサのサイクル・タイミングを外部から測定し、解析することによって、侵入によらず秘密キーを抽出することができる。スマートカードに供給される電力および電圧を、それが実行されている間、監視することができる。
【００１６】
単純電力解析（ＳＰＡ）では、所与のアルゴリズムの実行についての電力符号を使用して、アルゴリズムとそのデータとに関する情報を判断する。一般に、電力データは多数の実行から収集され、プロファイル内でそれぞれの時点で平均化される。
【００１７】
たとえば、ＤＥＳキー空間を攻撃するためにＳＰＡが使用され、また攻撃者が、特定のＤＥＳキーではなく特定のコードに、アクセスすることができる場合は、ある特定の、電力符号の一連のポイントによって、ＤＥＳキーの８ビットの各バイト中の１および０の数が示され得る。これによって、キーの各バイトごとにパリティ・ビットが格納される場合、すべての可能なキーを網羅する攻撃について、その可能なキーの空間が２５６個の可能なキーから２３８個の可能なキーへと減少することになり、可能なキーの間での探索時間が、約２１８倍短くなる。
【００１８】
差分電力解析（ＤＰＡ）は、複数の電力符号を収集してその差を解析することによって情報が抽出される電力解析の一つの形である。反復動作を示すある種のデータおよびアルゴリズムにとって、それは、遮蔽プラットフォーム上に格納されている秘密を見抜くのに極めて有効な手法である。それによって、演算の結果として得られるデータと、メモリからのフェッチと、メモリへの格納と、実行時のデータのフェッチ元でありまたデータの書込み先である、遮蔽プラットフォームのメモリ内のデータ・アドレスと、遮蔽プラットフォーム上でアルゴリズムが実行されるときの命令のフェッチ元であるコード・アドレスとに関する情報が明らかにされる。こうした能力によって、ＤＰＡ攻撃に対する遮蔽プラットフォームの保護が、セキュリティにとって非常に重要なものとなり、また、安価な遮蔽プラットフォーム上での実現が非常に難しいものとなっている。ＳＰＡ攻撃では、関連の電力変化を識別するために主に目視検査を用いるが、ＤＰＡ攻撃では、統計解析およびエラー訂正技術を使用して、秘密キーに相関する情報を抽出する。したがって、ＤＰＡはＳＰＡよりも遥かに強力な攻撃であり、防止が遥かに難しい。ＤＰＡの１つの用途は、遮蔽プラットフォーム上で実施される暗号化とおよび暗号解読とのための暗号化キーの抽出である。データ暗号標準（ＤＥＳ）については、ＤＰＡが極めて効果的であることが分かっており、ＤＥＳを実施する低コストのスマートカードが、最近の経験では、ＤＰＡに対して非常に脆弱であることが分かっている。低コストのスマートカードまたは類似の遮蔽プラットフォーム上で実現される場合に、ＤＥＳに類似するあらゆる形の暗号化または暗号解読が類似の脆弱性を有しているとは必ずしも限らない。
【００１９】
ＤＥＳキーを見つけるためのＤＰＡ攻撃の実装には、２つの段階、即ちデータ収集とその後のデータ解析とを伴う。ＤＰＡのためのデータ収集は、クロック・サイクルの時間または回数の関数として、暗号操作時の装置の電力消費をサンプリングすることによって実施することができる。ＤＰＡでは、ターゲット・キーを用いた多数の暗号操作が観測される。こうした攻撃をスマートカードに対して実施するために、電力プロファイルと、攻撃者によってランダムに選択される入力と、スマートカードによって、それぞれ秘密のキーで暗号化または暗号解読された値として、計算された出力とを記録して、別個の平文（または暗号文）上で、多数（千またはそれ以上）のＤＥＳ暗号化（または暗号解読）が処理される。
【００２０】
それぞれの電力プロファイルは、サンプルと称される。ＤＥＳの各ラウンドでは、所与のＳ−ＢＯＸの出力は、暗号化（または暗号解読）されるデータとキーの両方に依存する。攻撃者は入力テキストを知っているので、特定の電力符号サンプルを生成するために使用されたキーの値が何であるかを推測し、したがって、サンプル内で使用される特定のデータについて、所与のＳ−ＢＯＸの特定の出力ビットが１であるか、それとも０であるかを判断することができる。標準のＳ−ＢＯＸはそれぞれ、６ビットの入力および４ビットの出力を有する。一般に、この解析は、第１ラウンドまたは１６ラウンドで開始する。攻撃者に、個々のＳ−ＢＯＸについての正確な入力（第１ラウンド）、または出力（第１６ラウンド）が分かっているラウンドだからである。攻撃者はキーを知らないが、ＤＥＳアルゴリズムでは１度に１つのＳ−ＢＯＸ参照しか実施しないので、観測中のＳ−ＢＯＸに関係がありまたその時の電力消費に対応する、秘密キーの６ビットを推測することだけが必要である。６ビットだけが関係するので、５６ビット秘密キーの所与の６ビット部分について、２６＝６４個の可能な一連の値を試すことだけが必要になる。こうした６ビットの値のそれぞれの推測についは、これらサンプルが２つのグループに分けられる。即ち、攻撃者による６個のキー・ビットの推測が正確である場合に、ターゲット出力ビット、即ち、攻撃の第１ラウンドでターゲットとして選択されるターゲットＳ−ＢＯＸ、からの４個の出力ビットのうちの１つ、が１であるサンプル（１グループ）と、および攻撃者による６個のキー・ビットの推測が正確である場合、ターゲット出力ビットが０であるサンプル（０グループ）とにである。次いで、各グループの電力サンプルが、平均化される。平均化すると、ＤＥＳにおけるモジュロの小さい非対称性では、上記の特定の出力ビット以外のビットだけによる影響を受ける、平均化された電力プロファイルのいくつかの部分は類似しているはずであるが、それはなぜなら、平均化すると、両方のグループにおいて、各グループのサンプルの約半分については、これらは１となるはずであり、各グループのサンプルの約半分については０となるはずであるからである。しかし、前記の出力ビットの影響を受ける、平均化された電力プロファイルのいくつかの部分では、０のグループと１のグループとの間で明らかな差異を示すはずである。こうした１つまたは複数の差異が存在することによって、６個のキー・ビットの推測された値が正確であることが示される。こうした２つまたは複数の差異が存在しないことによって、６個のキー・ビットの推測された値が不正確であったことが示される。秘密キーの値を推測し、電力符号サンプルを、１の出力をもたらすものと０の出力をもたらすもの（それぞれ１のグループおよび０のグループ）に分割し、プロファイルを平均化し、前記の明白な差異を探すこの処理が、推測が正確であると証明されるまで繰り返される。これで、キーの６ビットが得られる。他の７個のＳ−ＢＯＸについて、上記の推測の手順が繰り返される。このようにして、すべてのＳ−ＢＯＸが処理されたときには、５６のキー・ビットのうちの４８ビットが取得され、８ビットだけが決定されないままである。これは、正確な秘密キーの残りを見つけるためには、２８＝２５６個の可能なキーについての残りのキー空間だけを探索する必要があることを意味する。このような攻撃を用いるのに攻撃者がいかに少ない情報しか必要としないかが明らかになる。攻撃者は、ＤＥＳを実装するための特別なコードや、Ｓ−ＢＯＸを格納するために使用されるメモリ・レイアウトであって、そこでは、正確な推測のために電力プロファイル内に、明白な差異か、あるいはもしあれば、ある差異が、現れると予想されるものや、電力プロファイル内に、正確な推測のため、こうした差がいくつ現れると予想されるかや、または、選択されたＳ−ＢＯＸの出力ビットが通常のものであるか、それとも補数演算されたものであるか、を知る必要はない。これは、１および０が反転すると、同じ類の明らかな差がもたらされるからである。ＤＰＡは、こうした差が存在するかどうかだけに依存し、いかなる特定の差異の符号、即ち＋または−、にも依存しない。
【００２１】
首尾よく攻撃を行うために、攻撃者が知らなければならないことは、攻撃対象はＤＥＳであり、またＤＥＳの実装では、何らかの時点で、Ｓ−ＢＯＸの特定の出力に対応するビットが使用されると、電力プロファイルのサンプルに影響が及ぼされるということだけである。遮蔽プラットフォーム上の秘密のＤＥＳを完全に解読してしまう成功裏のＤＰＡ攻撃を行うために、わずかな知識しか必要でないということは、ＤＰＡが、遮蔽プラットフォームに侵入する非常に有効な手段であることを明示している。本明細書では、ＤＰＡ攻撃の１つの特定の形についてだけ説明しているが、同じく可能であるＤＰＡ攻撃の多数の関連する形が存在する。
【００２２】
単一のトランジスタのスイッチングによる効果は通常、装置の電力消費を直接的に観測することからの識別は不可能であるが、ＤＰＡで使用される統計操作では、電力消費の極めて小さい差異を確実に識別することができる。
【００２３】
遮蔽プラットフォームを攻撃から守るための物理的手段は、物理的に耐久性のある筐体内にシステムを収めること、メモリ・セルおよびデータ・ラインを物理的に遮蔽すること、物理的に隔離すること、および、取り除かれた際にチップを破壊する特別な被膜で集積回路をコーティングすること、を含むことが知られている。こうした技術は、物理的な損害およびリバース・エンジニアリングに対して、ある程度の保護を提供し得るが、これらの技術は、非侵略的な電力解析方法に対して保護するものではない。米国政府のテンペスト仕様に合わせて遮蔽されたものなど、一部の装置は、電力変動を最小限に抑えるための大容量コンデンサおよび他の電源調整システムを使用しており、電磁放射線を防ぐように装置を遮蔽ケースに収め、外部監視を防ぐために入出力をバッファリングしている。これらの技術はしばしば高価であり、または物理的に扱いにくく、したがって、多数の応用に、スマートカード、セキュア・マイクロプロセッサ、および他の小型の低コストな装置についての多数の応用には適していない。物理的な保護は、外部電源への依存性や、遮蔽の物理的な非実用性や、コストや、ならびに、サイズおよび重さといった遮蔽プラットフォームの物理的な制約によって課される他の特性、のために、一般には適用不可能であるかまたは不十分である。
【００２４】
物理的な保護とは異なり、スマートカードは、「ハミング中立」形式でデータを表現することによって、ソフトウェア・レベルである程度は電力解析攻撃から守られる場合もある。データ・ワードやデータ・バイトなどのビット列のハミング重みは、１の値を含むビット列内のビットの数である。たとえば、１０１００は、２のハミング重みをもち、１１１１は、４のハミング重みをもつ。一組の「ハミング中立」ビット列とは、すべてが同じ数の１を含むビット列の組のことであり、たとえば、セット｛０１１，１０１，１１０｝は、ハミング中立セットである。ソフトウェア・アプリケーションによって操作されるすべてのデータ・バイトが同じ数の１を含む場合は、装置がこのデータを処理するとき、装置によって消費される電力、およびそれが発するノイズは変化しない。たとえば、それぞれの「１」を「１０」で、またそれぞれの「０」を「０１」で置き換えることによって、ビット列を符号化することができる。その場合、すべてのビット列は同数の０と１を含み、ビット列のどの対においても、検出可能な電力またはノイズの変化は存在しない。
【００２５】
この技術は、電気信号およびハードウェア設計の技術分野では周知であり、この分野では、電力バランス信号または差分信号と称される。こうした回路の利点は、他の回路内へのノイズ放出またはクロストーク誘導が低減されることと、グランド・バウンスが低減されることと、電力要件が一定であるので、回路がロー（低電圧）からハイ（高電圧）へスイッチした際に、グランド・バスの電圧が局所的に増加しないことと、環境ノイズに依存しないことと、差動ペア内の両方の電気回線が基本的には同じレベルの環境ノイズの影響を受けるので、受信側では理論的には正味の差異が検出されないこととを含む。こうした技術は一般に、軍、スーパーコンピュータおよび産業用制御アプリケーションで使用される。
【００２６】
第ＷＯ  ０１／６１９１５号では、観測可能な操作にランダム性を取り入れることで、いずれかの意味のある内部処理に伴って出力電力が放出される場合に、相関関係が成立しないようにすることによって、システムの脆弱性が低減される。
【００２７】
米国第６２７８７８３号には、処理中に漏洩される有益な情報の量および信号対雑音比を低減させることによって、外部の監視攻撃に対するＤＥＳおよび他の暗号プロトコルを改良するための方法および装置が記載されている。この発明による改良型ＤＥＳ実装では、２つの５６ビット・キー（Ｋ１およびＫ２）、ならびに２つの６４ビット平文メッセージ（Ｍ１およびＭ２）を代わりに使用し、Ｋ１Ｐ｛Ｋ１｝ＸＯＲ  Ｋ２Ｐ｛Ｋ２｝が、「標準の」ＤＥＳキーＫに等しく、またＭ１Ｐ｛Ｍ１｝ＸＯＲ  Ｍ２Ｐ｛Ｍ２｝が、「標準の」メッセージに等しくなるように、それぞれが置換（即ちＫ１Ｐ、Ｋ２Ｐ、およびＭ１Ｐ、Ｍ２Ｐ）に関連付けられる。装置の操作中に、好ましくは情報が漏洩するよりも速く、新しいエントロピーをテーブルに取り入れることによってテーブルが定期的に更新され、したがって、攻撃者は、測定値の解析によってテーブルの内容を得ることができない。この技術は、暗号化スマートカード、改ざん防止チップ、およびすべての種類のセキュア処理システムで実装することができる。
【００２８】
第ＷＯ  ０１／０８０１２号は、暗号化アルゴリズムによって用いられる第１の関数を、第２の関数に変換することによって、暗号化アルゴリズムを実施する超小型電子アセンブリに対する情報漏洩攻撃を防ぐための装置および方法を記載している。この方法は、入力マスクでマスクされたｎ個のビットを含む（だたし、Ｎは第１の所定の整数）マスクされた入力データ、を受信するステップと、所定のマスクキング方式に基づき、第２の関数を用いてマスクされた入力データを処理するステップと、出力マスクでマスクされたｍ個のビットを含む（だたし、Ｎは第２の所定の整数）マスクされた出力データを生成するステップとを含む。
【００２９】
第ＷＯ  ００／０２３４２号では、索引キー更新技術を用いて、暗号化システムの耐漏洩性を増加させるための方法および装置が開示されている。ある実施形態では、暗号化クライアント装置は、その状態の一部として秘密キーの値を維持する。クライアントは、攻撃者に以前に漏洩した可能性がある秘密に関する部分的な情報が、新しい更新された秘密の値をもはや有効に表さないようにする更新プロセスを用いることによって、いつでも、例えば各トランザクション前に、その秘密の値を更新することができる。更新プロセスを繰り返し適用することによって、暗号化操作中の攻撃者によって収集される情報漏洩が、直ぐに廃れたものになる。したがって、こうしたシステムは、装置の電力消費、電磁特性、またはトランザクション中に漏洩される他の情報、の測定値の解析を伴う攻撃に対して、安全なままでいることができる。この発明は、こうしたプロトコルを使用するクライアントおよびサーバと併せて使用することができる。クライアントとトランザクションを実施するために、サーバはクライアントの現在のトランザクション・カウンタを取得する。次いで、サーバは、一連の操作を実施して、クライアントの最初の秘密キーから正確なセッション・キーを再び導出するために必要な変換シーケンスを判断する。こうした変換が実施され、その結果がトランザクション・セッション・キーとして使用される。
【００３０】
第ＷＯ  ９９／６７９０９号は、処理中に漏洩される有用な情報の量を削減することを用いてのスマートカードおよび他の暗号システムのための漏洩最小化を提案している。これは、「分岐なし」即ち固定の実行パス・ルーチンを用いて、重要な操作を実施することによって達成され、それによって、実行パスが、後続の操作中に秘密キーに関する新しい情報が明らかにされ得るようには変化しない。より具体的には、この発明の様々な実施形態は、キー依存の条件付き分岐を行わない、モジュラ指数の実装、メモリ・アクセス・パターンが固定されたモジュラ指数の実装、漏洩しやすい１掛けの乗算操作を行わないモジュラ操作の実装、ならびに楕円曲線の暗号システムのための、漏洩を最小限に抑える乗算および他の操作の実装を含む。
【００３１】
第ＷＯ  ９９／６７７６６号は、データ表現と、各演算ステップでのシステム状態遷移の回数と、すべてのオペランドのハミング重みとが、演算の入力、中間値、または結果、に依存する演算を実施するための方法および装置を開示している。電子部品、論理ゲートなどの従来の漏洩しやすいハードウェア要素、ならびに、従来の漏洩しやすいマイクロプロセッサ上で実行されるソフトウェア、を使用して実装される模範的な実施形態について記載されている。この発明のスマートカードおよび他の改ざん防止装置によって、外部監視を伴う暗号攻撃への耐性の向上がもたらされる。
【００３２】
第ＷＯ  ９９／６３６９６号は、処理中に漏洩される有用な情報の量および信号対雑音比を低減させることによって、外部の監視攻撃に対して暗号システムを守るための方法および装置が記載されている。これは一般に、予測不可能な情報を暗号化処理に組み入れることによって達成される。この発明の様々な実施形態は、信号対雑音比の低減、ランダムなノイズ生成、クロック・スキップ、および、処理操作の順序へのまたは実行パスへのエントロピの組入れ、といった技術を使用する。この技術は、ハードウェアでもソフトウェアでも実装することができ、デジタルとアナログ技術の組合せを用いることができ、様々な暗号化装置内で展開することができる。
【特許文献１】第ＷＯ  ０１／６１９１５号
【特許文献２】米国第６２７８７８３号
【特許文献３】第ＷＯ  ０１／０８０１２号
【特許文献４】第ＷＯ  ００／０２３４２号
【特許文献５】第ＷＯ  ９９／６７９０９号
【特許文献６】第ＷＯ  ９９／６７７６６号
【特許文献７】第ＷＯ  ９９／６３６９６号
【非特許文献１】Ｐ．コハー（P. Kocher）著、「Diffie-Hellman、ＲＳＡ、ＤＳＳ、および他のシステムの実装に対するタイミング・アタック（TimingAttacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems）」、暗号の進歩−クリプト’９６（Advancesin Cryptology--CRYPTO '96）、スプリンガ・フェアラーク（Springer-Verlag）、１０４〜１１３頁
【非特許文献２】Ｅ．ビハム（E. Biham）、Ａ．シャミア（A. Shamir）著、「秘密キー暗号システムの差分障害解析（DifferentialFault Analysis of Secret Key Cryptosystems）」、暗号学の進歩−クリプト’９７（Advances inCryptology--CRYPTO '97）、スプリンガ・フェアラーク（Springer-Verlag）、１９９７年、５１３〜５２５頁
【非特許文献３】ブルース・シュナイア（Bruce Schneier）著、応用暗号（AppliedCryptography）、第２版、ISBN 0 11709-91、１９９６年、ジョン・ウィレー・アンド・サンズ（John Wiley & Sons）、２６５頁
【非特許文献４】ＦＩＰＳ文献４６−３、http://csrc.nist.gov/fips/
【非特許文献５】メネゼス（Menezes）他著、「応用暗号ハンドブック（Handbookof Applied Cryptography）」、ＣＲＣプレス社（CRC Press, Inc.）、１９９７年
【非特許文献６】Ｐ．コハー（Paul Kocher）、ジョシュア・ジャフ（JoshuaJaffe）およびベンジャミン・ジュン（Benjamin Jun）著、１９９８年、「差分電力解析および関連攻撃概論（Introduction todifferential power analysis and related attacks）」、http://www.cryptography.com/dpa/technical
【非特許文献７】Thomas S. Messerges、エッジ・Ａ．ダビッシュ（EzzyA. Dabbish）、ロバートＨ．サローン（Robert H. Sloan）著、１９９９年、「スマートカードに対する電力解析攻撃の調査（Investigationsof power analysis attacks on smart cards）」、ユーズニックス’９９（Usenix '99）、http://www.eecs.edu/-tmesserg/usenix99/html/paper.html
【非特許文献８】ルイ・グーバン（Louis Goubin）、ジャック・パタラン（JacquesPatarin）著、１９９９年、「ＤＥＳおよび差分電力解析：「複製」方法（DES and differential power analysis: the"duplication" method）」、チェス会報’９９（Proceedings of CHES '99）、スプリンガ・コンピュータ・サイエンス講義ノート（SpringerLecture Notes in Computer Science）、第１７１７巻、１９９９年８月、http://www.cryptosoft.com/htmi/secpub.htm#goubin
【発明の開示】
【発明が解決しようとする課題】
【００３３】
通常の遮蔽されていないプラットフォームは、電力解析（ＰＡ）よりも潜在的に強力な攻撃を受けやすいので、秘密情報を発見する際のＰＡの使用は、スマートカードなどの遮蔽プラットフォームを主に対象とする。しかし、シミュレートされた実行中の電力プロファイルは、任意のプロセッサのシミュレータ上で生成することができ、したがって、ＰＡを用いて、通常の遮蔽されていないプラットフォーム上での実行についてアルゴリズム解析することが可能である。したがって、耐ＰＡの最も緊急の必要性は、スマートカードなどの遮蔽プラットフォーム上で使用するためのものであるが、耐ＰＡは、より幅広い種類のプラットフォームに適用可能である。したがって、こうした装置が、従来の小売取引に加えて、パーキング・メータ、携帯電話および有料電話、有料テレビ、バンキング、インターネットベースの電子商取引、医療記録の格納、識別、およびセキュリティ・アクセス、を含めた幅広いアプリケーションで安全に使用されるために、セキュリティの向上が有用である。したがって、過度の労力をかけずに、攻撃者に漏洩する有益な情報の量を減らすための方法、装置およびシステムが求められている。漏洩の低減は一般に、秘密の情報を割り出そう試みる攻撃者にとって、潜在的に有益ないずれかの情報の漏洩を減らすことを指す。
【課題を解決するための手段】
【００３４】
請求項１および２に記載する本発明の第１の態様によれば、別のメモリに比べて情報漏洩のレベルが低いメモリに格納された暗号化キーを含むデータ処理システムが提供される。このキーを使用するとそれによって、有利なことに、このキーを用いて暗号化される情報が、外部攻撃、特に差分電力解析、から保護される。このキー自体は、情報漏洩を低減することによって耐攻撃性のレベルが高くなるので、こうした攻撃を受けにくくなる。典型的な処理システムは、マシン読取り可能媒体、より具体的には、チップ・カードまたはスマートカードとも称されるが、チップ・カードのような遮蔽プラットフォーム、即ちそれ自体にプロセッサおよびメモリを含むマシン読取り可能装置である。具体的には、データ処理システムとして、暗号化装置または暗号化システムを使用することができる。
【００３５】
第１の暗号化されていない情報が、操作に関する第２の暗号化された情報を解読するために使用可能な第２の暗号化キーを含む場合、第２の暗号化キーを用いたローカルなセキュリティを第１の暗号化キーを用いたグローバルなセキュリティと有利に組み合わせる、２段階の暗号化処理が使用される。第２の暗号化キーは一般に、個人的なキーであり、データ処理システムまたはそのユーザに固有のものである。第１の暗号化キーは一般に、データ処理システムまたはそのユーザに固有のものではないが、外部のエンティティ（団体、事業体）には知られていない。第１の暗号化キーを知っている者は、第２の暗号化キーによって保護されている秘密情報にＤＰＡを使用せずにアクセスすることはできず、また、第２の暗号化キーを知っている者は、にもかかわらず、他のマシン読取り可能媒体上の秘密情報にアクセスするための情報を使用するために第１の暗号化キーを見つけ出すことはできない。
【００３６】
データ処理システムが、個人化のステップを実行するために格納されたコードを含む場合は、個人化する側のエンティティは、第１の暗号化キーの使用を含めて、個人化された状態を得るために、データ処理システムを介してそのステップを実行することを必要とするのみである。したがって、キーの使用は、個人化する側のエンティティにとって透過的、即ち認識できないもの、であることが可能である。
【００３７】
データ処理システムが、操作実行ステップを実行するための格納されたコードを含む場合は、そのステップは、以前に暗号化された情報を第１の秘密キーによって明らかにさせる、解読ステップを含み得る。したがって、解読ステップもまた、個人化する側のエンティティとデータ処理システムのユーザとを含めて、外部に対して透過的に実行される。
【００３８】
データ処理システムの典型的な例は、スマートカードである。
【００３９】
請求項６に記載する本発明の第２の態様によれば、こうしたデータ処理システムを処理する方法が提供される。この処理は、そのデータ処理システムに固有の特定情報によってその機能を向上させることによって、そのデータ処理システムをカスタム化されていない製品からカスタム化された製品に変える、個人化のステップであると解釈することができる。
【００４０】
個人化のステップは、暗号化されていない情報を、そのターゲット・メモリの場所、たとえばＥＥＰＲＯＭ、に書き込み、その後で、こうしたいずれかの情報を求めてＥＥＰＲＯＭをスキャンし、それの上で暗号化することによって実施することができる。ＥＥＰＲＯＭ内の機密情報は暗号化され、したがって保護される。その機密情報の典型的な例は暗号化キーである。それらは、個人的なキーまたは他のキーを含み得る。オブジェクト・ベースのまたはタイプ・ベースのプログラミング言語では、ＡＰＩへの、またはこうしたキーを使用するアプリケーションへの変更は必要ない。
【００４１】
確立され完了した手順は変更する必要がないので、製造およびテスト手順は変更する必要がない。これらのキーは、テストおよび製造の終わりにだけ、カード上またはカード外の別のいずれかのソフトウェアまたはハードウェアに対して、やはり透過的に暗号化される。第１の暗号化キーは、個人化する側に知られている必要はない。
【００４２】
請求項７に記載する本発明の第３の態様によれば、こうしたデータ処理システム上で操作を実行する方法が提示される。この方法は、実際に操作を実行する前の暗号解読ステップを含む。暗号化ステップは、第1の永続的メモリからより漏洩しにくいメモリにロードされた暗号化情報上で実施される。したがって、暗号解読ステップは、より漏洩しにくく、したがって、電力解析攻撃をより受けにくい環境で実行される。暗号解読ステップ自体は、外部ユーザによって知られないまま続き、単に、その操作のための実行時間が、大幅にではないが、長くなるだけである。
【００４３】
請求項８に記載する本発明の第３の態様によれば、前記の方法を実施するためのプログラム・コード手段を含むコンピュータ・プログラムが提示される。このコンピュータ・プログラムは、その最も単純な形態では、プログラム・コードがロードされた記憶媒体でることが可能である。記憶媒体は、有利なことに、データ処理システム内に統合されることも可能である。
【００４４】
ＥＥＰＲＯＭを含めて、スマートカード・メモリは、格納された情報を読み出すためにそのコンテンツがアクセスされるときに、そのコンテンツに関する情報を漏洩する。攻撃側エンティティがその漏洩を利用する１つのやり方は、読出し操作がチップ電力消費を用いて監視されて実際のＥＥＰＲＯＭのコンテンツが引き出される場合の、差分電力解析（ＤＰＡ）によるものである。こうしたＥＥＰＲＯＭコンテンツが、たとえば電子取引を保護する秘密キーである場合は、電子取引システム全体のセキュリティが危険にさらされる。
【００４５】
本発明は、プロセッサと第１の永続的メモリ内の第１の暗号化された情報とを含むデータ処理システムを対象としており、この第１の永続的メモリの情報漏洩レベルは、第２の永続的メモリのそれよりも高い。第２の永続的メモリには、第１の暗号化情報を解読するための第1の暗号化キーが格納されており、したがって、そこから、操作を実行するためにプロセッサによって使用可能な、第1の暗号化されていない情報が生成される。
【００４６】
本発明は、プロセッサと第１の永続的メモリ内の第１の暗号化された情報とを含むデータ処理システムをも対象としており、この第１の永続的メモリの情報漏洩のレベルは、第２の永続的メモリのそれよりも高い。第２の永続的メモリには、第１の暗号化キーが格納されている。この第１の暗号化キーは、第１の暗号化情報を解読し、それによって第１の非暗号化情報を生成するために用いることができる。
【００４７】
２つのケースの組合せも可能であり、即ち同じ第１の暗号化キーを使用して、第１の情報の暗号化および暗号解読をすることができる。
【００４８】
本発明は、オペレーティング・システムを持った、こうしたデータ処理システムを処理する方法をも対象とする。この方法は、第１の非暗号化情報を、第１の永続的メモリに書き込むための書込みステップと、第１の暗号化キーを使用して第１の非暗号化情報を暗号化し、そこから第１の永続的メモリ内で第１の暗号化情報を生成するための暗号化ステップと、第１の永続的メモリへの書込みがオペレーティング・システムによって制御される状態、にデータ処理システムを設定するためのアクセス制限ステップとを含む。
【００４９】
本発明は、こうしたデータ処理システム上で操作を実行する方法をも対象とする。この方法は、第１の暗号化キーを使用することによって第１の暗号化情報を解読し、それにより、そこから第１の非暗号化情報を生成するための解読ステップと、第１の非暗号化情報を使用して、プロセッサよって操作を実行するための実行ステップとを含む。本発明は、こうした１つまたは複数の方法を実施するためのプログラム・コード手段、を含んだコンピュータ・プログラムをも対象とする。
【００５０】
本発明は、外部探査に弱いデータ記憶媒体内に機密情報を格納する任意の稼働中データ処理システム、上で動作する、任意のオブジェクト・ベースまたはタイプ・ベースのプログラミング言語に適用することができる。一例は、Java（Ｒ）Cardランタイム環境であることもある。
【００５１】
第１の永続的メモリ内の機密情報を追跡すること、および、機密情報が永続的メモリに格納されている場合に、機密情報を暗号化するために使用される第１の暗号化キーによってそれを保護することによって、機密情報がＤＰＡを用いて解析されることから守られる。実際の使用のために、機密情報が永続的メモリから読み出されるときに、第１の暗号化キーが再び使用され、機密情報を解読する。機密情報の一例は、第２の暗号化キーである。したがって、スマートカード内のＥＥＰＲＯＭといったように、オブジェクト・ベースまたはタイプ・ベースのプログラミング言語で動作する、探査攻撃を受けやすい記憶技術による永続的メモリ、に格納されている機密情報が、たとえば差動電力攻撃による不正探査からよりよく保護されるようになる。
【発明を実施するための最良の形態】
【００５２】
本発明の様々な模範的実施形態ついて、以下で説明する。
【００５３】
スマートカードでは一般に、プラスチックのカードに電子チップが埋め込まれている。電子チップは、たとえば、マイクロプロセッサまたは類似の装置、読出し専用メモリ（ＲＯＭ）、および／またはランダム・アクセス・メモリ（ＲＡＭ）、を含む。電子チップはまた、デジタル・シグナル・プロセッサ（ＤＳＰ）、フィールド・プログラマブル・ゲート・アレー（ＦＰＧＡ）、電気的消去可能プログラマブル読出し専用メモリ（ＥＥＰＲＯＭ）、および種々のサポート論理、といった他の電子部品をも含み得る。一般に、電子チップはプラスチック・カードの凹部内に貼り付けられており、外部のスマートカード・リーダに電気的インターフェイスを提供するプリント回路によって覆われている。プリント回路の入出力パッドの標準構成は、一般に、電源（ＶＣＣ）、グラウンド（ＧＮＤ）、クロック入力（ＣＬＫ）およびシリアル入出力パッド（Ｉ／Ｏ）を含む。いくつかの追加の非接続パッド（Ｎ／Ｃ）もまた標準構成に含まれる。プラスチック・カードはいくらか柔かなので、電子チップは、壊れるのを防ぐのに十分なほど小さくなければならない。これによって、電子チップの物理的なサイズが直径数ミリに制限され、サポートされ得る電子部品の数も制限される。無線周波数または他の無線通信媒体を使用して外部のスマートカード・リーダと通信する非接触型スマートカードも使用されている。こうしたスマートカードには一般に、プリント回路の入出力パッドではなく内部アンテナが装備されている。
【００５４】
図１には、ここではスマートカードであるデータ処理システム１０が示されており、第１の永続的メモリとも称されるＥＥＰＲＯＭ２０、ＲＯＭとも称される第２の永続的メモリ４０、およびＲＡＭとも称される揮発性メモリ３０を含んでいる。これらの３つのメモリは２０、３０、４０はプロセッサ５０に接続されており、このプロセッサもまたＤＥＳコプロセッサ５５に接続される。スマートカード１０はさらに、外部装置との接続のためのコネクタ・フィールド６０を含む。ＲＯＭ４０内には、オペレーティング・システム４１、および暗号化マスタ・キー４５とも称される第１の暗号化キーが置かれている。ＥＥＰＲＯＭ２０には第２の暗号化キー２１および第３の暗号化キー２２が格納されている。ＲＡＭ３０には第２の暗号化情報３３が格納されている。コプロセッサ５５は、任意のタイプの暗号操作を実施することができ、例示目的のため、ここではＤＥＳが選択されている。
【００５５】
よりよく理解できるように、まず、暗号化マスタ・キー４５を使用しないプロセスについて説明する。第２の暗号化キー２１および第３の暗号化キー２２は、この場合、暗号化されていない形でＥＥＰＲＯＭ２０内に存在し、また、プロセッサ５０を助けてＤＥＳコプロセッサ５５によって実施される暗号化処理と暗号解読処理の各々で使用されるために存在する。アプリケーションの実行中に、暗号化キー２１、２２のうちの１つまたは複数を使用する必要がある操作を実施するようにプロセッサ５０が命令されると、ＤＥＳコプロセッサ５５がアクティブ化（起動）される。この例では、第２の暗号化キー２１がここでは暗号解読を実施する必要があると想定する。プロセッサ５０はＥＥＰＲＯＭ２０にアクセスし、そこから第２の暗号化キー２１を取り出す。第２の暗号化キー２１はプロセッサ５０を介してＥＥＰＲＯＭ２０からＲＡＭ３０にロードされる。ＤＥＳコプロセッサ５５は、プロセッサ５０を介してＲＡＭ３０から第２の暗号化キー２１を取り出し、また、プロセッサ５０を介してメモリ２０、３０、４０のうちの１つから、暗号化キー２１を使用して解読されるデータをも取り出す。ここで、そのデータは第２の暗号化情報３３を含む。次いで、ＤＥＳコプロセッサ５５は暗号解読を実施し、解読されたデータをプロセッサ５０に渡す。
【００５６】
悪意のあるユーザは、特に、適切な漏洩検出探査をそれに対応するソフトウェアと組み合わせて用いて、ＥＥＰＲＯＭ２０とプロセッサ５０の間の信号漏洩を探りながら、その操作に対してＤＰＡ攻撃を実施することもできる。
【００５７】
このようなＤＰＡ攻撃をより困難にするために、本発明による暗号化マスタ・キー４５が使用される。暗号化キー２１、２２は、暗号化された形で、即ち暗号化マスタ・キー４５を使用して、予め暗号化されて、ＥＥＰＲＯＭ２０に常駐する。したがって、それらは第１の暗号化情報として存在する。対応する暗号化処理については以下で詳述するが、まず解読についてここで述べる。第２の暗号化キー２１を必要とする操作を想定する。その操作は、操作実行ステップでプロセッサ５０によって実行される。第２の暗号化キー２１が、暗号化された形でＥＥＰＲＯＭ２０に常駐するので、操作実行ステップは、暗号解読された形の第２の暗号化キー２１にアクセスできるようにして、それを使用できるようにするための解読ステップを含む。したがって、プロセッサ５０は、ＥＥＰＲＯＭ２０から暗号化された第２の暗号化キー２１を取り出すだけでなく、暗号化された第２の暗号化キー２１の解読ステップの実行を開始する。
【００５８】
暗号化された第２の暗号化キー２１は、プロセッサ５０を介してＥＥＰＲＯＭ２０からＲＡＭ３０にロードされる。暗号化マスタ・キー４５は、プロセッサ５０を介してＲＯＭ４０からＲＡＭ３０にロードされる。ＤＥＳコプロセッサ５５は、プロセッサ５０を介してＲＡＭ３０から暗号化マスタ・キー４５を取り出し、また、暗号化マスタ・キー４５を使用して解読されるべきである暗号化された第２の暗号化キー２１も、プロセッサ５０を介してＲＡＭ３０から同様に取り出す。コプロセッサ５５は、暗号化された第２の暗号化キー２１上で解読ステップを実施し、結果として得られる解読された第２の暗号化キー２１をＲＡＭ３０に渡す。
【００５９】
次に、操作実行ステップを実行するステップが続く。コプロセッサ５５は、プロセッサ５０を介してＲＡＭ３０から解読された第２の暗号化キー２１を取り出し、また、解読された第２の暗号化キーを使用して解読されるべきであるデータ３３も、プロセッサ５０を介してＲＡＭ３０から同様に取り出す。次いで、コプロセッサ５５は解読を実施し、解読されたデータをプロセッサ５０に、渡す。したがって、これが一連の解読ステップである。この利点は、ＥＥＰＲＯＭ２０から転送されＥＥＰＲＯＭ２０の情報漏洩の損害を被る情報、即ち第２の暗号化キーが、暗号化された形で転送されるので、ＥＥＰＲＯＭ２０から第２の暗号化キー２１を取り出すステップがＤＰＡ攻撃を受けにくくなることである。ＲＯＭ４０およびＲＡＭ３０の漏洩はＥＥＰＲＯＭ２０の漏洩よりも少ないので、ＤＰＡ攻撃に対するシステム全体の脆弱性が低減することになる。
【００６０】
以下に、スマートカード１０を個人化するプロセスについて説明する。チップが埋め込まれたプラスチックのキャリアを含むスマートカード１０がスマートカード・メーカによって製造される。チップは既に、ＲＯＭ４０内に事前に格納された暗号化マスタ・キー４５を含む。次いで、一般にはスマートカードを発行するエンティティである受信側エンティティは、個人化のステップでそのカードを処理し、即ち特定の人によって将来使用されるようにこのスマートカード１０を前処理する。したがって、スマートカード発行元は、個人情報、即ちまずＥＥＰＲＯＭに書き込まれる暗号化キー２１、２２、をここではスマートカード１０に組み入れる。この書込みステップは、安全な環境、即ち機密の個人情報へのアクセスが許されない環境、で実施される。スマートカード発行元自身は、暗号化キー２１、２２さらには暗号化マスタ・キー４５を使用してシステムに対する攻撃を実施しないと見なすことができるので、信頼された関係者である。
【００６１】
オペレーティング・システム４１が事前に格納されたスマートカード１０がスマートカード発行元に届く。そのオペレーティング・システム４１には、個人化のステップが、プログラムされた形で含まれており、この個人化のステップは、個人情報２１、２２をＥＥＰＲＯＭ２０に書き込んだ後、スマートカード発行元によって開始される。個人化のステップは、２つのサブステップ、即ち暗号化ステップおよびアクセス制限ステップを含む。
【００６２】
個人化のステップは、第１の非暗号化情報、即ち暗号化キー２１、２２、を暗号化する暗号化ステップの実施から開始する。したがって、暗号化マスタ・キー４５を使用して暗号化されるすべての情報を求めて、ＥＥＰＲＯＭ２０がスキャンされる。この情報はここでは暗号化キー２１、２２を含む。暗号化キー２１、２２は、スキャン・ステップでスキャン・アルゴリズムによって認識することができ、それらは、探し出されると暗号化され、暗号化された暗号化キー２１、２２としてＥＥＰＲＯＭ２０内に書き込まれ戻される。スマートカード発行元自身は、暗号化ステップのために、暗号化マスタ・キー４５について知る必要はなく、実際に暗号化マスタ・キー４５の存在についてさえ全く知る必要はない。暗号化ステップは、スマートカード発行元がそれについて知ることなく、実施されることが可能である。
【００６３】
スキャン・ステップが暗号化キーを認識するためには、これらは都合よく、タグ付け、即ちそれとして識別、されなければならない。Ｊａｖａ（Ｒ）は、「Ｋｅｙ」という名のＪａｖａ（Ｒ）クラスによってすべての機密情報がタグ付けされるオブジェクト・ベースのシステムであるので、これは、Java（Ｒ）Cardであるスマートカードに確かに当てはまることである。
【００６４】
暗号化ステップの後、アクセス制限ステップでは、ＥＥＰＲＯＭ２０への書込みが制限される、即ちオペレーティング・システム４１を介したアクセス制御によって制限される状態に、スマートカード１０を設定することが実施される。その制限によって、スマートカード１０の特定の領域ではもはや書込みを行うことができなくなり、こうした領域の中には暗号化された暗号化キー２１、２２が置かれている領域がある。したがって、不正の試みを含めて、その禁じられた領域でのその後の修正が排除される。個人化のステップが完了すると、スマートカードはいわゆる個人化された状態にある。この状態で、スマートカード１０は最終顧客またはユーザに発行される。
【００６５】
上記で既に詳述したように、スマートカードの操作において、ＥＥＰＲＯＭ２０から暗号化キー２１、２２をロードするＤＥＳコプロセッサ５５を介して解読が実行される。ローディング・ステップはＤＰＡを受けやすいが、暗号化キー２１、２２は暗号化された形でしか存在せず、したがって、その形でまた送信されるので、その攻撃の成功率は低くなる。暗号化マスタ・キー４５はＲＯＭ４０からＤＥＳコプロセッサ５５にロードされ、ＲＯＭ４０の電力消費量はＥＥＰＲＯＭ２０またはＲＡＭ３０のそれよりも小さいので、ＤＰＡによる首尾よい攻撃がさらに困難になり、したがって探査しにくくなる。
【００６６】
基本的には、スマートカードの周囲の環境が暗号化マスタ・キー４５の使用について知ることなしに、操作実行ステップは実行することができる。実行された操作の結果から見て、差異は存在しない。説明した方法およびシステムは、システムのセキュリティを向上させるが外部の環境に全く存在を意識させない、ということが利点である。
【００６７】
したがって、機密データ、即ちＥＥＰＲＯＭ２０に格納された暗号化キー２１、２２が、上述の攻撃を受けやすい平文データではなく暗号化された形で格納されることを提案する。暗号化ステップは、別の秘密キーである暗号化マスタ・キー４５を使用して実施される。この暗号化マスタ・キーは、チップに固有、またはＥＥＰＲＯＭ２０にアクセスするプログラム論理を含むマスクと称されるソフトウェアに固有である。これは、暗号化キー２１、２２を使用する可能性があるアプリケーションにとって透過的に実現される。暗号化する側の暗号化キー４５は、ＲＯＭ４０などの、漏洩しない、または漏洩しにくい記憶装置内に常駐する。
【００６８】
換言すれば、暗号化マスタ・キー４５の導入によって、電力損失とも称される情報漏洩や攻撃脆弱性を低減させることによって、スマートカード１０への攻撃可能性を小さくすることが実現される。暗号化マスタ・キー４５を、たとえば平文のキーを含む第１の非暗号化情報３１、３２の暗号化に適用して、そこから第１の暗号化情報２１、２２を形成する。したがって、書込みプロセスが修正され、また、平文のキーは、内部のチップ用またはマスク用の特別なキーである暗号化マスタ・キー４５を使用して暗号化されてから、ＥＥＰＲＯＭ２０に格納される。
【００６９】
暗号解読では、キー読出しまたはキー使用方法が遮られ、まず暗号化キー２１、２２がＲＡＭ３０など漏洩しないまたは漏洩しにくいメモリ内で解読されて、実際にそれを使用する前に第１の非暗号化情報３１、３２が取得される。
【００７０】
拡張された形体では、個人化のための処理方法によって、ＥＥＰＲＯＭ２０全体を、そこに格納された暗号化キー２１、２２を求めてスキャンし、上記で概略を述べたのと同じ手順に従ってそのすべてを暗号化することが提供される。これは、平文の形の、非機密および機密の情報からなるＥＥＰＲＯＭ２０全体が、平文の形の非機密情報、および暗号化された形の機密情報からなるＥＥＰＲＯＭイメージに変換され得ることを意味する。これに使用することができる技術は、所与のシナリオで、オブジェクトのタイプ、即ち暗号化キー、を見つけ出す、メモリ走査技術である。Java（Ｒ）Cardのケースでは、周知のガーベッジ・コレクション機能をこれのために使用することが可能だが、それは、この機能がＥＥＰＲＯＭ２０全体を横断するためである。これの利点は、平文の形のすべてのデータ、即ち機密および非機密のデータで、スマートカード１０を前処理しテストし、テストおよび製造が終了したときにのみ、暗号化キー２１、２２が使用のために暗号化されるセキュア・モードに切換えできることである。
【００７１】
上述の実施形態は、部分的または全体的に、組み合わせることができる。
【００７２】
本発明は、ハードウェア、ソフトウェア、またはその組合せで実現できることが当業者には明らかである。また、それは、単一のコンピュータ・システム上での集中方式でも、相互接続された複数のコンピュータまたはコンピュータ・システム全体に様々な要素が広がる分散方式でも実施することができ、したがって、任意の種類のコンピュータ・システム、または本明細書で述べた方法を実施するように適応された他の装置がこれに適する。ハードウェアとソフトウェアの典型的な組合せは、コンピュータ・プログラムを含む汎用コンピュータ・システムとなることもでき、このコンピュータ・プログラムは、それが、ロードされ実行された時にコンピュータ・システムが本明細書で述べた方法を実施するように、そのコンピュータ・システムを制御する。本発明は、本明細書で述べた方法の実施を可能にする全ての特徴を含み、コンピュータ・システムにロードされたときにこうした方法を実施することができるコンピュータ・プログラム、に埋め込むこともできる。
【００７３】
この文脈におけるコンピュータ・プログラム手段またはコンピュータ・プログラムとは、直接的にか、あるいはまた、以下のいずれかまたは両方、即ちａ）別の言語、コードまたは表記への変換と、ｂ）異なる材料の形での複製とを行った後に、情報処理機能を有するシステムに、特定の機能を実施させるための１組の命令についての、任意の言語、コードまたは表記での任意の表現を意味する。
【００７４】
開示したどの実施形態も、図示および／または説明を行った１つまたは複数の他の実施形態と組み合わせることができる。これは、諸実施形態の１つまたは複数の特徴についても可能である。
【００７５】
当業者が、以下の特許請求の範囲に包含される本発明の要点から逸脱せずに、示された構成を様々なやり方で修正できることが明らかである。
【図面の簡単な説明】
【００７６】
【図１】構成要素を含む、スマートカードのブロック図である。
【符号の説明】
【００７７】
１０  データ処理システム
２０  第１の永続的メモリ
２１  第１の暗号化情報
２２  第１の暗号化情報
３０  揮発性メモリ
３１  第１の非暗号化情報
３２  第１の非暗号化情報
３３  第２の暗号化情報
４０  第２の永続的メモリ
４１  オペレーティング・システム
４５  第１の暗号化キー
５０  プロセッサ
５５  ＤＥＳコプロセッサ
６０  コネクタ・フィールド
【図１】
2005510095.tif 000003
【国際調査報告】
2005510095.tif 000004
2005510095.tif 000005
2005510095.tif 000006