(57)【要約】計算、特に暗号化演算を実行する少なくとも１つの集積回路(102)を具えたデータ処理装置(100)、特にスマートカードのような埋込みシステム、並びにこうしたデータ処理装置(100)を動作させる方法を、コストを最小化し、設計の複雑性に対する要求を低減し、電力消費を低減し、そして暗号化演算の性能を強化して提供するために、上記計算の電力消費特性を隠蔽し、かつ、異なる電力消費特性を交互させることによって、上記集積回路(102)を暗号解読に対して、特に差分電力解析に対して保護することを提案し、このことは特に、１つ以上の逆信号(51; 61; 71, 81)を導入することによって、例えば、平均振幅に対して少なくともおよそ逆の振幅を有する１つ以上の逆信号を導入することによって行い、１つ以上の元の信号または真の信号(50; 60; 70, 80)のそれぞれの振幅の総計は、上記１つ以上の逆信号(51; 61; 71, 81)のそれぞれの振幅の総計と少なくともおよそ平衡させることができ、かつ／あるいは、上記元の信号または真の信号(50; 60; 70, 80)の数は上記逆信号(51; 61; 71, 81)の数と必ずしも等しくなく、例えば、元の信号または真の信号(50; 60; 70, 80)毎に２つの逆信号(51; 61; 71, 81)の平均をとる。
2008524901.tif 000002
【特許請求の範囲】
【請求項１】
計算、特に暗号化演算を実行する少なくとも１つの集積回路(102)を具えたデータ処理装置(100)、特にスマートカードのような埋込みシステムにおいて、
前記計算の電力消費特性を隠蔽し、かつ、
異なる電力消費特性を交互させることによって、前記集積回路(102)を暗号解読に対して、特に差分電力解析に対して保護し、
特に、１つ以上の逆信号(51; 61; 71, 81)、例えば、平均振幅に対して少なくともおよそ逆の振幅を有する１つ以上の逆信号を導入することによって、前記集積回路(102)を暗号解読に対して保護し、
１つ以上の元の信号または真の信号(50; 60; 70, 80)のそれぞれの振幅の総計は、前記１つ以上の逆信号のそれぞれの振幅の総計と、少なくともおよそ平衡させることができ、かつ／あるいは、前記元の信号または真の信号(50; 60; 70, 80)の数は、前記逆信号(51; 61; 71, 81)の数と必ずしも等しくなく、例えば、前記元の信号または真の信号(50; 60; 70, 80)毎に、２つの前記逆信号(51; 61; 71, 81)の平均をとる
ことを特徴とするデータ処理装置。
【請求項２】
前記元の信号または真の信号(50; 60; 70, 80)及び前記導入する逆信号(51; 61; 71, 81)の順序を制御するための、少なくとも１つの有限状態マシン(104)または少なくとも１つの周期的ユニットを具えていることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記有限状態マシン(104)または前記周期的ユニットの適切な状態についての、特に最終状態または現在状態についての情報を記憶するための、少なくとも１つの不揮発性メモリ(106)を具え、
前記不揮発性メモリ(106)中の、前記有限状態マシン(104)または前記周期的ユニットの前記適切な状態を、前記データ処理装置(100)の電源遮断時に保持して、前記データ処理装置(100)の電源投入後の前記有限状態マシンまたは前記周期的ユニットの状態を常に同一ではなくすることができ、
前記有限状態マシン(104)または前記周期的ユニットの電源投入時に、前記不揮発性メモリに記憶された情報をシード情報として用いることができる
ことを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記有限状態マシン(104)または前記周期的ユニット用の少なくとも１つのシード値を供給する物理特性のセンサを少なくとも１つ具えていることを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
計算、特に暗号化演算を実行する少なくとも１つの集積回路(102)を具えたデータ処理装置(100)、特にスマートカードのような埋込みシステムを動作させる方法において、
前記計算の電力消費特性を隠蔽し、かつ、
異なる電力消費特性を交互させることによって、前記集積回路(102)を暗号解読に対して、特に差分電力解析に対して保護し、
特に、１つ以上の逆信号(51; 61; 71, 81)、例えば、平均振幅に対して少なくともおよそ逆の振幅を有する１つ以上の逆信号を導入することによって、前記集積回路(102)を暗号解読に対して保護し、
１つ以上の元の信号または真の信号(50; 60; 70, 80)のそれぞれの振幅の総計は、前記１つ以上の逆信号のそれぞれの振幅の総計と、少なくともおよそ平衡させることができ、かつ／あるいは、前記元の信号または真の信号(50; 60; 70, 80)の数は、前記逆信号(51; 61; 71, 81)の数と必ずしも等しくなく、例えば、前記元の信号または真の信号(50; 60; 70, 80)毎に、２つの前記逆信号(51; 61; 71, 81)の平均をとる
ことを特徴とするデータ処理装置の動作方法。
【請求項６】
前記逆信号(51; 61; 71, 81)を、異なる暗号化計算中に生成し、かつ、前記元の信号または真の信号(50; 60; 70, 80)の瞬時に即時には生成しないことを特徴とする請求項５に記載の方法。
【請求項７】
すべての電力トレースにわたる平均値をとる際に、前記元の信号または真の信号(50; 60; 70, 80)を消去することを特徴とする請求項５または６に記載の方法。
【請求項８】
ＤＥＳアルゴリズム；
ＡＥＳアルゴリズム；
ＲＳＡアルゴリズム；
ＥＣＣアルゴリズム；
ＳＨＡアルゴリズム
のいずれかに基づくことを特徴とする請求項５〜７のいずれかに記載の方法。
【請求項９】
少なくとも１つの周期的信号によって駆動されることを特徴とする請求項５〜８のいずれかに記載の方法。
【請求項１０】
請求項１〜４の少なくとも１つに記載の少なくとも１つのデータ処理装置、及び／または請求項５〜９の少なくとも１つに記載の方法を、前記少なくとも１つの集積回路(102)のディジタル部分を、例えば暗号解読、特に差分電力解析による無認可のアクセスに対して保護するために、特に前記少なくとも１つの集積回路(102)の前記無認可のアクセスに対する安全性を向上させるために使用する使用法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には暗号解読、特に電力差分解析を妨げる技術分野に関するものである。
具体的には、本発明は、データ処理装置、特に、計算、特に暗号化演算を実行する少なくとも１つの集積回路を具えたスマートカードのような埋込みシステム、並びにこうしたデータ処理装置を動作させる方法に関するものである。
【背景技術】
【０００２】
例えばスマートカードのような埋込みシステムは、セキュリティの問題が関心事である領域においてしばしば用いられる。暗号化演算は、埋込みシステムとホストとの間の認証を確立するために使用され、一般に、暗号化プロトコルにおいて秘密鍵（シークレットキー）を使用して一方の身元を他方の側に対して証明することを含む。
【０００３】
【特許文献１】米国特許US 6,419,159 B1
【特許文献２】米国特許 US 6,625,737 B1
【特許文献３】米国特許 US 6,654,884 B2
【特許文献４】国際公開 WO 99/63,696 A1
【特許文献５】国際公開 WO 99/67,766 A2
【特許文献６】国際公開 WO 99/67,919 A2
【特許文献７】国際公開 WO 00/19,366 A1
【特許文献８】国際公開 WO 00/19,367 A1
【特許文献９】国際公開 WO 00/19,385 A1
【特許文献１０】国際公開 WO 00/19,386 A1
【特許文献１１】国際公開 WO 00/19,608 A2
【特許文献１２】国際公開 WO 00/26,746 A2
【特許文献１３】国際公開 WO 00/26,868 A1
【特許文献１４】国際公開 WO 00/70,761 A1
【特許文献１５】国際公開 WO 01/93,192 A1
【０００４】
背景技術状況では（例えば先行技術文献である米国特許US 6,419,159 B1、米国特許 US 6,625,737 B1、米国特許 US 6,654,884 B2、国際公開 WO 99/63,696 A1、国際公開 WO 99/67,766 A2、国際公開 WO 99/67,919 A2、国際公開 WO 00/19,366 A1、国際公開 WO 00/19,367 A1、国際公開 WO 00/19,385 A1、国際公開 WO 00/19,386 A1、国際公開 WO 00/19,608 A2、国際公開 WO 00/26,746 A2、国際公開 WO 00/26,746 A2、国際公開 WO 00/26,868 A1、国際公開 WO 00/70,761 A1、国際公開 WO 01/93,192 A1及びその参考文献を参照）、暗号化演算の物理的な具体例は潜在的に、差分電力解析（ＤＰＡ：Differential Power Analysis）のような攻撃を受けやすいことが知られ、差分電力解析は、秘密鍵を処理する際の電力消費における微小差を利用してこの秘密鍵またはその一部を取り出し、これにより最終的に、埋込み装置（デバイス）上に記憶された特権データ及び情報への無認証のアクセスを得るものである。こうした攻撃は通常、信号対雑音比（ＳＮＲ：Signal-to-Noise Ratio）を改善するための反復的な電力消費測定を必要とし、これらの攻撃に対する装置の弾力性の尺度は、測定の回数、即ち秘密鍵を回復するために必要な「電力トレース（追跡）」の回数である。
【０００５】
背景技術では、対抗策は次のことに基づいて実現できることが知られている：
共有秘密鍵（いわゆるデータの「目隠し」）；
ＳＮＲを低減するためのランダムさの源としての「予測不能情報」の使用；並びに、
目隠し要素（ランダムな数字）に基づく秘密鍵の更新手順。
（従来技術文献WO 99/67,919 A2参照）。
【０００６】
従来技術文献WO 99/63,696 A1には、さらに他の取り組みが提案され、ここでは装置内で発生した追加的なランダム雑音（ノイズ）を用いてＳＮＲを劣化させる。
【０００７】
あるいはまた、ランダムなクロックの飛越し（スキッピング）を用いて、時間軸に沿った電力消費トレースの関係部分を隠蔽することによって解読を妨げることができる。
【０００８】
また、ＤＰＡを分かりにくくするための手段として、暗号化イベントのランダム順序化が議論されてきた。
【０００９】
【特許文献１６】米国特許 US 4,563,546
【００１０】
また、「回路整合」の方法と共に、データ及びアルゴリズムのバイナリ表現を適切に変換することによって（例えば、１つの論理ビットが２つの物理ビットに対応するデュアル（二重）レール論理を用いることによって）、「定ハミング重み付け表現」を達成することができ、これもこうした攻撃をより受けにくい（従来技術文献WO 99/67,766 A2、US 6,654,884 B2、及びUS 4,563,546参照）。
【００１１】
これらの方法のすべてが一般に、ＤＰＡを不可能にすることを目標とするものではなく、こうした攻撃に伴うコスト及び時間を非常に大きくする意味で、ＤＰＡを非実用的なものにするものである。
【００１２】
換言すれば、差分電力解析の問題に応える既知の方法は次の欠点を有する：
（例えば、デュアルレール論理の実現のための）電力消費が大幅に増加する、及び／または、
（例えば、デュアルレール論理の実現のための、あるいは、共有秘密鍵の方法のための）設計の複雑性に対する要求が増加し、このことは、設計の物理的サイズ、従ってコストに現われる。
一部の方法は、暗号化演算を低速にすることによって、暗号化演算の性能を低下させる。
【００１３】
また、既知の方法の本質的な要素は、ランダム性を発生するための手段としての乱数発生器の採用にあり、このことは設計及び検証が困難であることはよく知られている。
【００１４】
既知の方法のこれらの欠点のすべてが、コスト最小化が不可欠なスマートカードのような埋込みシステムにとくに関係する。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
上述した欠点及び短所から始まり、そして説明した従来技術を考慮に入れれば、本発明の目的は、請求項１の前文に詳記したデータ処理装置、並びに請求項５の前文に詳記した方法を、コストを最小化し、設計の複雑性に対する要求を低減し、電力消費を低減し、そして暗号化演算の性能を強化する方法でさらに進展させることにある。
【課題を解決するための手段】
【００１６】
本発明の目的は、請求項１に記載の特徴を具えたデータ処理装置によって、並びに請求項５に記載の特徴を具えた動作方法によって達成される。本発明の有利な好適例、及び合目的的な改善はそれぞれの従属請求項に開示されている。
【００１７】
本発明は、一般にはデータ処理装置、特に、スマートカードのような埋込みシステム、並びにこうしたデータ処理装置を、差分電力解析を妨げる方法で動作させる動作方法に関するものである。
【００１８】
本発明の装置は少なくとも１つの集積回路を具え、この集積回路は、アンチサウンド（対抗音）の原理に従って有用な計算、特に暗号化演算を実行して、この演算の電力消費特性を隠蔽する。この目的のために、本発明は、異なる電力消費特性を交互させる方法を提供し、この方法は周期的信号によって駆動される。
【００１９】
本発明では、アンチサウンドの原理を、差分電力解析を妨げる不明瞭化信号を発生するための手段として使用することを提案する。従来技術において知られているように、差分電力解析は、その強度を、暗号化計算を実行中である際の電力消費における微小差から引き出す。
【００２０】
その下にある仮定は、同じ暗号化計算は常に同じ微小差を発生し、このため、多くの同様の暗号化演算にわたる平均値は、雑音レベルを上回る純粋な信号の明瞭さを生じさせる、ということである。
【００２１】
しかし、従来技術において認識されていなかったことは、（平均振幅に対して）およそ逆の振幅の信号を意図的に導入するように電力消費特性をハードウェアレベルで能動的に変更することができることであり、これらの信号は、すべての電力トレースにわたって平均値をとると、元の（あるいは真の）信号を仮想的に消去する。この関係では、大きさを合わせた逆信号を意図的に導入することによって信号を能動的に変更することは、単にランダム雑音を加えることよりもずっと有効な方法である。
【００２２】
従来技術で述べたハミングの重みを（例えばデュアルレール論理の形に）平衡させる方法は、時間同時の様式で、即ち、各時点における漏洩を同時に、そして電力トレース毎に別個に最小化しようとすることによって、このことを行っている。
【００２３】
しかし、この漏れ低減の度合いは必要ではない、というのは、差分電力解析における本質的なステップは多くの電力トレースにわたる平均化である。従って、１つ１つの電力トレース自体は漏洩し得るものであるが、漏洩し得る信号毎に、最初の（元の）信号の効果に対抗するおよそ逆振幅の信号が存在するものとすれば、多くの電力トレースにわたる平均値は必ずしも漏洩し得るものにはならない。
【００２４】
本発明の合目的的な好適例によれば、最初の信号と同じ暗号化計算中には前記逆信号を発生する必要はなく（してもよいが）、従って、異なる電力トレース全体中には発生し得る。このことが奏功するためには、信号が反転された時点、及び反転されない時点を潜在的な敵対者が知らないことが有用である。
【００２５】
原則的に、この目的のために少なくとも１つの乱数発生器を用いることができるが、本発明の好適例によれば、少なくとも１つの有限状態マシンを実現することで全く十分であり、この関係では、比較的小型の有限状態マシンの使用が乱数発生器の使用より有利である。こうした有限状態マシンを固定のサイクル長で、好適には素数のサイクル長、あるいは他の適切な周期的ユニットのサイクル長で使用することによって、信号及び逆信号の順序を合目的的な方法で制御することができる。
【００２６】
こうした周期的論理ユニットを、好適には素数であるサイクル長で有利に使用することによって、攻撃者が想定する試行サイクル長との相関は考えられない、というのは、こうした試行サイクルは、この場合の実際のサイクル長の整数の分数に偶然なることがあり得ないからである。
【００２７】
本発明の必須ではないが合目的的な好適例によれば、少なくとも１つの不揮発性メモリを設けて、前記有限状態マシンまたは周期的ユニットの少なくとも１つの適切な状態、例えば最終状態または現在状態についての情報を記憶することができる。結果として、前記不揮発性メモリに記憶された情報をシード（種）情報として用いることによって、前記有限状態マシンは、前記装置の（できれば強制的な）リセット後に、必ずしも常に有限状態のサイクルの先頭から始動せず、この選択肢は差分電力解析の有効性をさらに低下させる。
【００２８】
換言すれば、本発明の特に進歩性のある改良によれば、要求されることではないが、前記装置は電源遮断（パワーダウン）時に、前記有限状態マシンまたは周期的ユニットにおける適切な状態を前記不揮発性メモリに保持し、これにより、前記装置の電源投入（パワーアップ）後の状態が常に同じにならないようにすることが有益である、というのは、同じであれば恐らくは差分電力解析を促進させるからである。
【００２９】
あるいはまた、前記有限状態マシンまたは周期的ユニットは電源投入をシード状態とすることができる。本発明によれば、異なる暗号化計算中に、そして必ずしも、元の漏洩し得る信号の瞬時に即時にではなしに、逆信号を生成することができる、ということにより、電力消費並びにチップ面積は従来技術に比べてずっと低減される。
【００３０】
本発明の他の好適例によれば、物理特性のセンサを少なくとも１つ使用して、前記有限状態マシン用の少なくとも１つのシード値を提供することができる。この目的のために、少なくとも１つの温度センサの出力を、少なくとも１つのアナログ−ディジタル（Ａ／Ｄ：Analog-to-Digital）変換器を用いて、少なくとも１つのバイナリ（２進）シード数に変換することができる。
【００３１】
電子装置を動作させる際には、温度ゆらぎはごく普通である（そして実際に、差分電力解析を行おうとする攻撃者が克服すべき問題の１つを構成する）ので、最も厳密に制御される動作環境以外のすべての動作環境について、前記有限状態マシン用のシード値の適度な分布を期待することができる。
【００３２】
本発明の好適例によれば、信号の平衡化は、元の、あるいは真の信号を補償するために２つ以上の逆信号を必要とする方法で行うことができる。この場合には、信号の振幅の総計のみを、逆信号の振幅の総計とおよそ平行にしさえすればよい。
【００３３】
最後に、本発明は、少なくとも１つの上述したデータ処理装置の使用法、及び／または少なくとも１つの集積回路のディジタル部分を保護する方法、特に、少なくとも１つの集積回路の、例えば暗号解読、特に差分電力解析による無認可アクセスに対する安全性（セキュリティ）を増加させる方法に関するものである。
【００３４】
本発明において説明した技術は、スマートカードに限らずすべての埋込み装置に適用され、実際に、装置内に格納された秘密を抽出するための手段として、物理量を測定して差分暗号「電力」解析を実行することのできるすべての暗号化装置に適用され、この物理量解析は電力消費以外の何か、例えば電磁放射とすることさえもできる。
【００３５】
特に、本発明において説明した技術は、ＤＥＳ（Data Encryption Standard：米国の標準暗号方式の１つ）アルゴリズム及びＡＥＳ（Advanced Encryption Standard：米国の標準暗号方式の１つ）アルゴリズムの実現、並びにＲＳＡ（Rivest Shamir and Adleman：公開暗号鍵方式の一種）及びＥＣＣ（Elliptic Curve Cryptosystem：楕円暗号方式）の実現に適用される。
【００３６】
既に以上で説明したように、本発明の教示を有利な方法で具体化並びに改善するためのいくつかの選択肢が存在する。この目的のために、請求項１及び５のそれぞれに従属する請求項を参照し、そして本発明のさらなる改善、特徴、及び利点は、好適な実施例及び図面を参照しながら、以下により詳細に説明する。
【発明を実施するための最良の形態】
【００３７】
図１〜３中の対応する部分には同じ参照番号を用いる。
【００３８】
以下に開示する好適な実施例はＤＥＳアルゴリズムを参照するが、説明する技術は他の暗号化アルゴリズム、例えば、これらに限定されないがＡＥＳアルゴリズム、ＲＳＡアルゴリズム、ＥＣＣアルゴリズム、及びＳＨＡ−１（Secure Hash Algorism-1：ハッシュ関数の１つ）アルゴリズムにも適用されることは当業者にとって明らかである。
【００３９】
ＤＥＳアルゴリズムは、１６ラウンド（周回）を有するフェイステル（Feistel）アルゴリズムのグループに属する。これらのラウンドの１つを概略的に図１に例示する。（さらなる詳細は、Bruce Schneiderによる”Applied Cryptography”の第１２章に見出すことができる。）
【００４０】
より詳細には、図１にこうしたＤＥＳアルゴリズムのラウンドの機能の内部構造を示し、ＤＥＳに供給される６４ビット・キー（鍵）をまず、８ビットずつ無視することによって５６ビットに低減する。５６ビットを抽出した後に、ラウンドキー発生器３０において、ＤＥＳにおける１６ラウンド毎に４８ビットのサブキーを生成する。この４８ビット・サブキーの生成は、まず５６ビット・キーを半分に分割し、そして各半分を、ラウンドに応じて１または２ビットだけ循環的にシフトすることによって行う。
【００４１】
シフトした後に、５６ビットのうちの４８ビットを選択する。このことを圧縮順列と称する、というのは、この選択は元の５６ビットのスクランブルされた部分集合を提供するからである。このシフトにより、所定ラウンドにおいて使用する各サブキーでは、元のキーのビットの異なる部分集合が用いられる。
【００４２】
これに加えて、ラウンドキー発生器３０内に特別な論理回路を設けて、選択関数の特定範囲についてのＳＮＲを低減するのに適した反転キーを提供することができる。
【００４３】
拡張順列２１では、データＲi-1の右半分を３２ビットから４８ビットに拡張する。これらの４８ビットは、特定ビットを反復し、また一部のビットは再配置することによって拡張する、というのは順列だからである。拡張順列２１の主目的は、データＲi-1の右半分を同じサイズ、即ち、ラウンドキー発生器３０によって提供されるキーとしての４８ビットにすることにある、というのは、両方のデータ要素の排他的論理和（イクスクルーシブ・オア、ＸＯＲ）がとられるからである。
【００４４】
この関係では、第１ＸＯＲ倫理構成要素を次のステップにおける参照番号４０で表現する。拡張順列２１は次の２つの理由で重要である：
第１に、拡張順列２１は特定ビットを反復するので、拡張順列２１は、反復した各ビットが２つ以上の代替に影響を与えることを可能にし、従って、出力ビットの入力ビットへの依存性はより速く広がる。
第２の重要な効果は、拡張順列２１は３２ビットのストリングを取り入れて４８ビットのストリングを出力するが、すべての３２ビットのストリングがちょうど１つの４８ビットのストリングを生成し、即ち、２つの異なる３２ビットのストリングによって生成することのできる４８ビットのストリングは存在しない。このことは重要である、というのはさもなければ、データを暗号解読しようとする際に、４８ビットのストリングがどの３２ビットのストリングから来たのかを確かに知ることができない。
【００４５】
そして、第１ＸＯＲ論理構成要素４０によって、拡張順列２１の出力と圧縮順列の出力とのＸＯＲをとる。そしてこのＸＯＲ演算の４８ビットの結果を、Ｓ−ボックス代替機能２２に渡す。Ｓ−ボックス代替２２は、この４８ビットの結果からの６ビットを入力として取得し、そして４ビットを出力する。Ｓ−ボックスは８つ存在し、従って入力の全４８ビットを使う。各Ｓ−ボックスは次のような４行１６列のテーブル（表）である：
【００４６】
テーブル中の各（行、列）の対は、出力される４ビットの数である。入力の６ビットは、４ビットの出力用に見るべき行及び列の値を指定する。入力の第１ビットと第６ビットとを組み合わせて２ビットの数を形成し、その１０進値は０〜３の間である。これを用いて、Ｓ−ボックスの索表に使用すべき行を指定する。第２ビット、第３ビット、第４ビット、及び第５ビットを組み合わせて４ビットの数を形成し、その１０進値は０〜１５の間である。
【００４７】
Ｓ−ボックスの代替２２がその３２ビットを出力した後に、Ｐ−ボックス順列２３が来て、Ｐ−ボックス順列２３はビットの直接的な順列である。Ｐ−ボックス順列２３の結果は、第２ＸＯＲ論理要素４１によって、最初の６４ビット・ブロック（参照番号１０）の左半分Ｌi-1とＸＯＲをとられる。左半分と右半分とが位置を交代し、そして他のラウンドが始まる。
【００４８】
１６ラウンドのすべてが終わった後に、出力は最終順列を通り、最終順列は最初の順列の逆である。こうした最終順列を持つ理由は、メッセージを暗号化するのと暗号解読するのとに同じアルゴリズムを用いることができるからである。
【００４９】
差分電力解析において使用されるいわゆる選択関数の可能な１つは、ＤＥＳアルゴリズムの第１ラウンドまたは最終ラウンドにおいて、Ｒレジスタ２０を更新して、このＲレジスタ２０中の入力データの関数としての新たな値、及びラウンドキー発生器３０において発生されたラウンドキーを得ることに関係する。
【００５０】
このことの背後にある思想は、Ｃ−ＭＯＳ（Complementary-Metal Oxide Semiconductor：相補性金属酸化物半導体）技術では、レジスタのビットの０から１または１から０の遷移が、他の２つの場合、即ち、こうした遷移は生じないが、０から０及び１から１の遷移とは異なる量の電力を消費するということである。例えばインターネットのサイトhttp://www.cryptography.comに記載されているように、攻撃者は一般に、電力トレースの２つのクラスＣ1及びＣ2を次のように作成する：
第１クラスＣ1、ここでは選択関数が、秘密ラウンドキーの小部分についての仮説に基づき、Ｒレジスタ２０における検査中のターゲット（目標）ビットがその状態を変化させたことを示す；及び、
第２クラスＣ2、ここではターゲットビットがその状態を変化させていない。
【００５１】
Ｒレジスタ２０のターゲットビットが遷移を行う第１クラスＣ1に関しては、このＲレジスタ２０は、データＲi-1のレジスタ（参照番号２０）から始まり、ブロックＬi-1（参照番号１０）の参照、拡張順列２１、第１ポイント（＝第１ＸＯＲ論理要素４０）、Ｓ−ボックスの代替２２、Ｐ−ボックスの順列２３、及び第２ポイント４１（ブロックＬi（参照番号１０）からの参照）を経由して、データＲiのレジスタ（参照番号２４）に至るまでに更新される。
【００５２】
一旦、すべての電力トレースをこの選択関数に従って分類すると、これら２つのクラスＣ1、Ｃ2の平均値＜Ｃ1＞、＜Ｃ2＞の差Ｄ＝＜Ｃ1＞−＜Ｃ2＞をとって分析する（詳しくは図２ａ参照）。この相関関数Ｄ＝＜Ｃ1＞−＜Ｃ2＞（＝第１クラスＣ1の平均値＜Ｃ1＞の信号ピーク５０と第２クラスＣ2の平均値＜Ｃ2＞の信号ピーク５１との差）は、選択関数の下にある仮説が正しいことを示し、従って、秘密ラウンドキーの対応部分が正しく推測されたことを示す。
【００５３】
ここで、図１の第１ポイント４０においてアルゴリズムに供給されるラウンドキーがビット単位で反転された場合には、上述したのと全く同じ仮説及び選択関数の下で、電力トレースの２つのクラスＣ1とＣ2とがその役割を交換する。（下にある仮説に従って）問題のターゲットビットの遷移が生じて見えたすべての電力トレースを含むクラスであったものは、今度は、こうした遷移が生じないクラスであり、その逆もまた同様である。
【００５４】
従って、上記で説明した差分相関関数Ｄ＝＜Ｃ1＞−＜Ｃ2＞（＝第１クラスＣ1の平均値＜Ｃ1＞の信号ピーク６０と第２クラスＣ2の平均値＜Ｃ2＞の信号ピーク６１との差）は、図２ａと比べれば逆の振幅のピーク６２を示す（詳しくは図２ａ参照）。
【００５５】
従って、下にあるハードウエアの設計が、例えばすべての場合の５０％において、ラウンドキーのビット単位の反転を正しいラウンドキーの代わりに用いるものである際には、電力トレースの２つのクラスＣ1、Ｃ2を平均して混合することが好ましく、そして、無用な相関信号７２及び８２（＝第１クラスＣ1の平均値＜Ｃ1＞の信号ピーク７０、８０と第２クラスＣ2の平均値＜Ｃ2＞の信号ピーク７１、８１との差）は全く見られない（詳しくは図２ｃ参照）。
【００５６】
この関係では、全計算の５０％において暗号化結果が誤りであることを考慮に入れなければならない、というのは、誤った秘密ラウンドキーを使用しているからである。しかし、このことは、暗号エンジンが各計算を２回実行する（図２ｃ参照）ことを要求することによって簡単に訂正することができ、即ち、１回は正しいラウンドキーで実行し、他の回はビット単位で反転されたラウンドキーで実行するが、後者の結果は無視する。
【００５７】
１回のＤＥＳ計算から次回のＤＥＳ計算までに、これら２回の計算の順序が適切に変更されていれば、アンチサウンド的な平均化（アベレージング）効果がまだ働いている。順序を交換すべき時点及び回数の決定は、少なくとも１つの論理ユニットによって、多くの電力トレースにわたって平均化する際に、順序が可能な限り完全に平衡するように行う必要がある。
【００５８】
このように平衡した順序付けのために乱数発生器を使用する必要はない、というのは、有限状態マシンまたは他の周期的ユニットは、上記５０％ルールを固守する限り十分適切であるからである。５０％ルールからの偏りは、対抗策の有効性を低下させる。
【００５９】
他方では、すぐ前に説明したもの以外のターゲットビット及び選択関数が存在し、その各々が通常、電力トレースについての一単位の異なる分割を規定し、従って、あり得る他の攻撃の範囲を分析すること、並びにこうした攻撃毎に、結果的な電力トレースの２つのクラスＣ1、Ｃ2を交換する方法を見出すことが必要になる。これらすべての場合において完全な平衡化を同時に達成することは一般に不可能であり、その結果、すべての攻撃を同等に防ぐ妥協点を見出さなければならない。
【００６０】
この関係では、２つの個別の信号が互いに完全に平衡する必要はないことは認め得る。２つ以上の信号にわたる総計が、２つ以上の逆信号にわたる総計と平衡しきった際のみに、本発明は同等に奏功する。
【００６１】
同様に、上記５０％ルールは、真の信号対逆信号の他の比率、例えば真の信号毎の２つの逆信号の平均値を認めることによって修正することができる。
【００６２】
本発明の好適な実施例は、上述したアンチサウンド原理の使用に基づくものである。まず第一に、図１に加えて、少なくとも１つの制御部を設けて５０％ルールへの準拠を監視する。さらに、少なくとも１つの特別な論理要素をラウンドキー発生器３０内に設けて、選択関数の特定範囲についてのＳＮＲを低減するのに適した反転キーを提供することができる。
【００６３】
図３の本発明の好適な実施例によれば、スマートカード（＝埋込みシステム）の形態のデータ処理装置１００が、暗号化計算並びに暗号化演算を実行する集積回路１０２を具えている。
【００６４】
この集積回路１０２は、
前記計算の電力消費特性を隠蔽することによって；並びに、
異なる電力消費特性を交互させることによって、
暗号解読、特に差分電力解析に対して保護されている。
【００６５】
この隠蔽並びに交互は、平均振幅に対して逆の振幅を有する信号の形の逆信号５１（図２ａ参照）、６１（図２ｂ参照）、７１，８１（図２ｃ参照）。
【００６６】
図３には、有限状態マシン１０４（または他の周期的ユニット）を集積回路１０２に割り当てて、元の信号または真の信号５０（図２ａ参照）、６０（図２ｂ参照）、７０，８０（図２ｃ参照）の順序、及び導入した逆信号５１（図２ａ参照）、６１（図２ｂ参照）、７１，８１（図２ｃ参照）の順序を制御する。
【００６７】
これに加えて、有限状態マシン１０４の適切な状態、例えば最終状態または現在状態についての情報を記憶するための不揮発性メモリ１０６を有限状態マシン１０４に割り当て、従って集積回路１０２に割り当て、有限状態マシン１０４の適切な状態用のこの不揮発性メモリ１０６は：
電源遮断状態に保って、データ処理装置１００の電源投入後の状態が常に同じにならないようにすることができるか、あるいは、
有限状態マシン１０４が電源投入をシード状態とすることができる。
【００６８】
図３からさらにわかるように、有限状態マシン１０４にシード値を供給するための、周囲のような物理特性のセンサユニット１０８を有限状態マシン１０４に割り当て、従って集積回路１０２に割り当てることができる。
【００６９】
シード値を生成するために使用することのできる他のセンサは、内部電源電圧または外部電源電圧用のセンサ、クロックセンサ、あるいはＩ／Ｏ（入出力）チャンネル上の動作を監視するセンサである。
【００７０】
上述したデータ処理装置１００、並びにこのデータ処理装置１００を動作させる方法は、特にＤＥＳに準拠する暗号化計算並びに暗号化演算に適用される。このこととは別に、この方法は、ＡＥＳ、ＲＳＡ、ＥＣＣ、等に適切な様式で適応することができ、ここでは上述した単純なキー反転は必ずしも機能しない。
【００７１】
（参照番号のリスト）
１００  データ処理装置、特にスマートカードのような埋込みシステム
１０２  集積回路
１０４  有限状態マシンまたは周期的ユニット
１０６  不揮発性メモリユニット
１０８  センサユニット
１０  初期の６４ビット・ブロックの左半分Ｌi-1
１１  初期の６４ビット・ブロックの左半分Ｌi
２０  Ｒi-1レジスタ
２１  拡張順列
２２  Ｓ−ボックス順列、特にＳ−ボックス代替機能
２３  Ｐ−ボックス順列
２４  Ｒiレジスタ
３０  少なくとも１つの論理構成要素を有するラウンドキー発生器
４０  第１ポイント、特に第１ＸＯＲ論理構成要素
４１  第２ポイント、特に第２ＸＯＲ論理構成要素
５０  信号、特に第１クラスＣ1の平均値＜Ｃ1＞のピーク
５１  信号、特に第１クラスＣ2の平均値＜Ｃ2＞のピーク
５２  信号、特に相関関数Ｄのピーク
６０  反転信号、特に第１クラスＣ1の平均値＜Ｃ1＞の反転ピーク
６１  反転信号、特に第１クラスＣ2の平均値＜Ｃ2＞の反転ピーク
６２  反転信号、特に相関関数Ｄの反転ピーク
７０  第１信号、特に第１クラスＣ1の平均値＜Ｃ1＞の第１ピーク
７１  第１信号、特に第２クラスＣ2の平均値＜Ｃ2＞の第１ピーク
７２  相関関数Ｄの第１信号
８０  第２信号、特に第１クラスＣ1の平均値＜Ｃ1＞の第２ピーク
８１  第２信号、特に第２クラスＣ2の平均値＜Ｃ２＞の第２ピーク
８２  相関関数Ｄの第２信号
Ｃ1  第１クラス
＜Ｃ1＞  第１クラスＣ1の平均値
Ｃ2  第２クラス
＜Ｃ2＞  第２クラスＣ2の平均値
Ｄ  相関関数（＝平均値＜Ｃ1＞と平均値＜Ｃ２＞との差）
ｔ  時刻
【図面の簡単な説明】
【００７２】
【図１】本発明において使用するＤＥＳアルゴリズムのサイクルの具体例を示す概略図である。
【図２ａ】第１クラスＣ1の平均値＜Ｃ1＞の信号、第２クラスＣ2の平均値＜Ｃ2＞の信号、及び相関関数Ｄ＝＜Ｃ1＞−＜Ｃ2＞の信号のそれぞれを時間に対してプロットした概略図である。
【図２ｂ】第１クラスＣ1の平均値＜Ｃ1＞の反転信号、第２クラスＣ2の平均値＜Ｃ2＞の反転信号、及び相関関数Ｄ＝＜Ｃ1＞−＜Ｃ2＞の反転信号のそれぞれを時間に対してプロットした概略図である。
【図２ｃ】第１クラスＣ1の平均値＜Ｃ1＞の混合信号、第２クラスＣ2の平均値＜Ｃ2＞の混合信号、及び相関関数Ｄ＝＜Ｃ1＞−＜Ｃ2＞の混合信号のそれぞれを時間に対してプロットした概略図である。
【図３】本発明によるデータ処理装置の実施例を概略的に示す図であり、このデータ処理装置は本発明の動作方法に従って動作する。
【図１】
2008524901.tif 000003
【図２ａ】
2008524901.tif 000004
【図２ｂ】
2008524901.tif 000005
【図２ｃ】
2008524901.tif 000006
【図３】
2008524901.tif 000007
【国際調査報告】
2008524901.tif 000008
2008524901.tif 000009
2008524901.tif 000010