(57)【要約】本発明は、１つの鍵Ｋを使った計算プロセスの自律実施が可能な、ハードウェアコンポーネントを組み込んだ電子装置を、保護するプロセスｆに関するものである。このプロセスは、少なくとも２つの新しい鍵Ｋ’ｉを、上記新しい鍵の少なくとも１つは鍵Ｋと同一であり、上記新しい鍵の１つは鍵Ｋと異なるように計算すること、および、上記ハードウェアコンポーネントを使用し、上記計算された鍵Ｋ’ｉのそれぞれを用いて上記計算プロセスｆを連続的に実行することを伴う。
2006520565.tif 000002
【特許請求の範囲】
【請求項１】
鍵Ｋを使った計算プロセスｆの自律実施が可能なハードウェアコンポーネントを組み込んだ電子装置を保護するプロセスであって、少なくとも２つの新しい鍵Ｋ’ｉを、前記新しい鍵の少なくとも１つは鍵Ｋと同一であり、前記新しい鍵の少なくとも１つは鍵Ｋと異なるように計算すること、および、前記ハードウェアコンポーネントを使用し、前記計算された鍵Ｋ’ｉのそれぞれを用いて前記計算プロセスｆを連続的に実行することを伴うことを特徴とする、電子装置を保護するプロセス。
【請求項２】
前記鍵Ｋ’ｉを用いて前記計算プロセスをランダムに実行することを伴うことを特徴とする、請求項１に記載のプロセス。
【請求項３】
鍵Ｋが副鍵Ｋ１、・・・、Ｋｎに細分化されること、および鍵Ｋ’ｉが少なくとも１つの副鍵Ｋ’ｉｊについてＫと異なるような、少なくとも１つのｉが存在することを特徴とする、請求項１または２に記載のプロセス。
【請求項４】
鍵Ｋが副鍵Ｋ１、・・・、Ｋｎに細分化されること、および手順が、所与のｊ（０＜ｊ＜ｎ＋１）について、副鍵Ｋ’ｉｊ（０＜ｉ＜ｌ＋１）が、Ｋの副鍵Ｋｊの値を含む全ての可能な値を取るように、Ｉ＝αｍ（ｍはＫ’ｉの副鍵Ｋ’ｉｊの１つの可能な値の数を表す）個の新しい鍵Ｋ’１、・・・、Ｋ’ｌを計算することを伴うことを特徴とする、請求項１から３のいずれか一項に記載のプロセス。
【請求項５】
副鍵Ｋ’ｉｊ（０＜ｉ＜ｌ＋１）は、全ての可能な値をα回取ることを特徴とする、請求項４に記載のプロセス。
【請求項６】
計算プロセスを格納する手段と、前記プロセスを実行する手段と、鍵Ｋを使った計算プロセスの自律実施が可能なハードウェアコンポーネントとを組み込んだ電子装置であって、少なくとも２つの新しい鍵Ｋ’ｉを、前記新しい鍵の少なくとも１つは鍵Ｋと同一であり、前記新しい鍵の１つは鍵Ｋと異なるように計算することが可能な、ハードウェアコンポーネントと関連付けられたソフトウェアモジュールを組み込んでいること、およびソフトウェアモジュールは、前記新しい鍵Ｋ’ｉのそれぞれを用いて前記計算プロセスを実施するために計算された新しい鍵を、前記ハードウェアコンポーネントに連続して送ることができるようにハードウェアコンポーネントと関連していることを特徴とする、電子装置。
【請求項７】
前記ソフトウェアモジュールは、計算された新しい鍵をランダムに連続して送ることを特徴とする、請求項６に記載の電子装置。
【請求項８】
電子装置で実行されたときに、請求項１から５のいずれか一項に記載のプロセスのステップを実行するプログラムコード命令を組み込んだ、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘密鍵などの秘密量を使った暗号化アルゴリズムの自律実施のために、暗号プロセッサなどのハードウェアコンポーネントを組み込んだ電子装置を、保護するプロセスに関する。より正確には、このプロセスは、計算実行時の電子装置の電力消費を調べることにより秘密鍵に関する情報を得ようとする、差分電力解析（第１級またはそれ以上の電子攻撃）と呼ばれるある種の物理的攻撃から、上記暗号プロセッサを保護するように設計される。
【背景技術】
【０００２】
ある種のコンポーネントは、ハードウェアＤＥＳアルゴリズムを組み込んでいる。ＤＥＳアルゴリズムは、極めて高速（ほぼ２０マイクロ秒程度）であるという利点を持ち、明らかにＳＰＡおよびＤＦＡ型の攻撃に耐え得る。残念ながら、ＤＥＳアルゴリズムは、第１級のＤＰＡ攻撃には耐え得ない。実際、１０，０００程度の妥当な数のサンプルを用いれば、鍵を抽出することが可能である。この脆弱性に直面すると、セキュアなソフトウェアＤＥＳを完全に再プログラムすることが必要になり得る。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の１つの目的は、特にＤＰＡ型の攻撃から、暗号プロセッサまたは同等の装置を組み込んだコンポーネントを保護する、プロセスおよびシステムを提供することである。
【０００４】
本明細書で考察する暗号化アルゴリズムは、秘密鍵を使用し、入力情報に従って出力情報を計算する。これは、暗号化、暗号化解除、署名または署名検証、認証または否認防止操作を伴い得る。これらのアルゴリズムは、入力および出力を知っている攻撃者が、実際には、秘密鍵自体に関するどんな情報も推論することができないように構築される。多数のアプリケーションが、そのセキュリティの基礎を、ＤＥＳや、今や世界的暗号化標準としての位置を占めている、より最近のＡＥＳアルゴリズム（Ｊｏｈｎ  Ｄａｅｍｅｎ、Ｖｉｎｃｅｎｔ  Ｒｉｊｍｅｎ、「ＡＥＳ  ｐｒｏｐｏｓａｌ；Ｒｉｊｎｄａｅｌ」、ｈｔｔｐ：／／ｃｓｒｃ．ｎｉｓｔ．ｇｏｖ／ｅｎｃｒｙｐｔｉｏｎ／ａｅｓ／ｒｉｊｎｄａｅｌ／Ｒｉｊｎｄａｅｌ．ｐｄｆを参照）といった秘密鍵暗号化アルゴリズムに置いている。
【０００５】
本発明者らは、以前から秘密鍵アルゴリズムまたは対称アルゴリズムという表現で呼ばれているものより、幅広いクラスに関心を持っている。特に、本特許出願で説明される全ては、いわゆる公開鍵または非対称アルゴリズムにも適用される。このアルゴリズムは、実際には、一方は公開であり、他方は秘密で開示されない２つの鍵を含み、後者が以下で説明する攻撃の標的である。
【０００６】
Ｐａｕｌ  ＫｏｃｈｅｒおよびＣｒｙｐｔｏｇｒａｐｈｙ  Ｒｅｓｅａｒｃｈ社によって記述されている電力解析型の攻撃（参照のために本出願で言及する、Ｐａｕｌ  Ｋｏｃｈｅｒ、Ｊｏｓｈｕａ  ＪａｆｆｅおよびＢｅｎｊａｍｉｎ  Ｊｕｎによる文献「差分電力解析および関連する攻撃の概論（Ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｒｅｌａｔｅｄ  Ａｔｔａｃｋｓ）」、Ｃｒｙｐｔｏｇｒａｐｈｙ  Ｒｅｓｅａｒｃｈ社（８７０  Ｍａｒｋｅｔ  Ｓｔ．，Ｓｕｉｔｅ  １００８，Ｓａｎ  Ｆｒａｎｃｉｓｃｏ，ＣＡ  ９４１０２）を参照されたい。同文献のＨＴＭＬ版は、ＵＲＬアドレス：ｈｔｔｐ：／／ｗｗｗ．ｃｒｙｐｔｏｇｒａｐｈｙ．ｃｏｍ／ｄｐａ／ｔｅｃｈｎｉｃａｌ／ｉｎｄｅｘ．ｈｔｍｌでアクセス可能である）は、実際には、攻撃者は、計算の実行時に、例えば、マイクロコントローラの電力消費や、回路によって放出される電磁放射といった、単なる入出力データ以外の情報を獲得し得るという観察に基づくものである。この情報は、鍵などの秘密量に依存し、カードから漏洩する。
【０００７】
ＤＰＡと略記される差分電力解析は、同じ鍵を用いた多数の計算での電力消費の記録を統計的に分析することによって、電子装置に含まれる秘密鍵に関する情報を得ることを可能にする攻撃である。
【０００８】
網羅的でない例として、ＤＥＳ（データ暗号化標準）アルゴリズムの事例を、以下の文献、すなわち、
「ＦＩＰＳ  ＰＵＢ  ４６−２，データ暗号化標準（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）」、１９９４年、
「ＦＩＰＳ  ＰＵＢ  ７４，ＮＢＳデータ暗号化標準を実施および使用するためのガイドライン（Ｇｕｉｄｅｌｉｎｅｓ  ｆｏｒ  Ｉｍｐｌｅｍｅｎｔｉｎｇ  ａｎｄ  Ｕｓｉｎｇ  ｔｈｅ  ＮＢＳ  Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）」、１９８１年、
「ＡＮＳＩ  Ｘ３．９２，アメリカ標準規格、データ暗号化アルゴリズム（Ａｍｅｒｉｃａｎ  Ｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄ，  Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ａｌｇｏｒｉｔｈｍ）」、１９８１年、
「ＩＳＯ／ＩＥＣ  ８７３１：１９８７，メッセージ認証のための銀行認可アルゴリズム  パート１：データ暗号化アルゴリズム（Ｂａｎｋｉｎｇ−Ａｐｐｒｏｖｅｄ  Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ−Ｐａｒｔ  １：  Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ａｌｇｏｒｉｔｈｍ（ＤＥＡ））」
のいずれか、あるいは、以下の著作、
Ｂｒｕｃｅ  Ｓｃｈｎｅｉｅｒ、「暗号化の応用  第２版（Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ，２ｎｄ  ｅｄｉｔｉｏｎ」、Ｊｏｈｎ  Ｗｉｌｅｙ  ＆  Ｓｏｎｓ、１９９６年、２７０ページ
に記載されている記述と考えることができる。前述の文献を、参照のために本出願に示す。
【０００９】
ＤＥＳアルゴリズムは、１６のラウンドと呼ばれるステップで実行される（図１ａ参照）。これら１６ラウンドのそれぞれにおいて、３２ビットで変換Ｆが実行される。この変換Ｆは、８つの６ビットから４ビットの非線形変換を使用し、各変換は、Ｓ１、Ｓ２、・・・、Ｓ８と記される、Ｓボックスと呼ばれる表（図１ｂ参照）で符号化される。
【００１０】
ＤＥＳアルゴリズムに対するＤＰＡ攻撃は、以下のように実施され得る。
【００１１】
第１のステップ：第１ラウンドで１０００回のＤＥＳ計算での消費が測定される。これら１０００回の計算での入力値は、Ｅ［１］、・・・、Ｅ［１０００］と記される。これらの計算で測定された電力消費に対応する１０００曲線は、Ｃ［１］、・・・、Ｃ［１，０００］と記される。これらの１，０００の消費曲線の平均曲線ＣＭも計算される。
【００１２】
第２のステップ：例えば、第１ラウンドでの第１のＳボックスからの第１の出力ビットを考える。このビットの値はｂと記される。ｂが秘密鍵の６ビットだけに依存することは容易に理解できる。攻撃者は、この関連する６ビットに関する仮説をたてる。攻撃者は、これらの６ビットおよびＥ［ｉ］からｂに期待される理論値を計算する。これは、１，０００の入力Ｅ［１］、・・・、Ｅ［１，０００］を２つのカテゴリ、すなわち、ｂ＝０をもたらすものと、ｂ＝１をもたらすものとに分けることを可能にする。
【００１３】
第３のステップ：次いで、第１のカテゴリの入力、すなわちｂ＝０の入力に対応する曲線の平均値ＣＭ’が計算される。ＣＭおよびＣＭ’が著しい違いを示す場合、その鍵の６ビットに用いられた値が正しかったとみなされる。ＣＭおよびＣＭ’が、統計的な意味で著しい違いを示さない、すなわち、実質上、測定される雑音での典型的な分散を上回る違いではない場合、第２のステップが、それらの６ビットの異なる選択によって繰り返される。
【００１４】
第４のステップ：ステップ２および３が、第２のＳボックスからのターゲットビットｂを用いて繰り返され、次いで、第３のＳボックスから、以下同様に第８のＳボックスまで繰り返される。このようにして、最終的に、その秘密鍵の４８ビットが獲得される。
【００１５】
第５のステップ：残りの８ビットは、全数探索によって検出され得る。
【００１６】
この攻撃は、各命令の個別の電力消費に関する知識も、これらの命令それぞれの時間的位置も必要としない。この攻撃は、攻撃者がアルゴリズムの出力および対応する消費曲線を知っていると仮定した場合、一様に適用される。それは、以下の基本的仮説にのみ基づくものである。
【００１７】
基本的仮定：少数の鍵ビット、実際上３２ビット未満の知識があれば、２つの入力、それぞれ２つの出力がこの変数に同じ値をもたらすか否か決定するのに十分であるような、アルゴリズムの計算の過程において出現する中間変数が存在する。
【００１８】
ＤＥＳアルゴリズムなど、Ｓボックス原理を使用する全てのアルゴリズムは、潜在的に、ＤＰＡ攻撃を受けやすい。というのは、従来の実装方法は、一般に、前述の仮説の枠内にあるからである。
【００１９】
いわゆる高次差分電力解析攻撃は、ＨＯ‐ＤＰＡと略記され、前述のＤＰＡ型攻撃の一般化に対応する。これらは、消費以外に多数の異なる情報源を使用することができ、電磁放射、温度などの測定を伴い、より少ない（先に定義したビットｂを一般化する）基本的中間変数を用いて、単なる平均という概念よりも高度な統計的処理を用いることができる。それにもかかわらず、これらは、ＤＰＡ攻撃と全く同じ基本的仮説に基づくものである。
【課題を解決するための手段】
【００２０】
本発明は、鍵Ｋを使った計算プロセスの自律実施が可能なハードウェアコンポーネントを組み込んだ電子装置を保護するプロセスであって、少なくとも１つの所与のｉ＝ｊについてＫ’ｊ＝Ｋであり、少なくとも１つのｉ＝ｔについてＫ’ｔ＜＞Ｋであるような、少なくとも２つの新しい鍵Ｋ’ｉを計算すること、および上記ハードウェアコンポーネントを使用し、上記計算された鍵Ｋ’ｉのそれぞれを連続的に用いて、上記計算プロセスを実行することを伴うことを特徴とするプロセスに関するものである。
【００２１】
１つの具体的な実装形態によれば、このプロセスは、所与のｊ（０＜ｊ＜ｎ＋１）について、副鍵Ｋ’ｉｊ（０＜ｉ＜ｌ＋１）が、副鍵Ｋｊの値を含む全ての可能な値を取るようにＩ＝αｍ個の新しい鍵Ｋ’１、・・・、Ｋ’ｌを計算すること、およびこれらＩ個の新しい鍵Ｋ’１、・・・、Ｋ’ｌを用いて、ランダムにハードウェア暗号化関数ｆを実行することを伴う。
【００２２】
また、本発明は、電子装置、および例えばスマートカードなど、ならびにこのプロセスの実施のためのプログラムにも関するものである。
【００２３】
本発明の他の目的、利点および特性は、添付の図面を参照して非網羅的例として示す、以下の本発明によるプロセスの実装の説明、およびこの実装のために適合された電子装置の実行方法の説明を読めば明らかになるであろう。
【発明を実施するための最良の形態】
【００２４】
本発明によるプロセスは、例えば、秘密鍵を使用する暗号計算プロセスを実施する、スマートカードなどのオンボードシステムといった電子装置を保護するように設計される。この電子装置は、プロセッサなど情報を処理する手段、およびメモリなど、情報を格納する手段を搭載している。
【００２５】
非網羅的例として、以下で説明する電子装置は、図１に示す電子モジュール１を組み込んだオンボードシステムに対応する。この種のモジュールは、普通、モノリシック集積電子マイクロ回路またはチップの形を取り、任意の知られている手段によって一旦物理的に保護された後に、例えば、様々な領域で使用され得るスマートカードやマイクロ回路カードなどのポータブルオブジェクト上に実装され得る。
【００２６】
マイクロプロセッサ電子モジュール１は、ＣＰＵマイクロプロセッサ３を備え、ＣＰＵマイクロプロセッサ３は、内部バス５を介して、実行可能プログラムを含むＲＯＭ、ＥＥＰＲＯＭ、フラッシュ、ＦｅＲＡＭなどの不揮発性メモリ７、ＲＡＭメモリ１１、外部との通信のための入出力装置１３、および、例えば、ＤＥＳアルゴリズムの計算など、自律的暗号計算が可能なコンポーネントである暗号プロセッサ計算ユニット１５（ＣＲＹＰＴＯ  Ｐ）に双方向に接続されている。図２に示すように、上記モジュール１の暗号プロセッサ１５は、例えば、ＥＥＰＲＯＭ型などのメモリの秘密ゾーンに格納された秘密鍵Ｋを使って、メッセージＭに対して計算プロセスｆを実行する。
【００２７】
まず、その一般的な形での解法を考察する。図３に示すように、目的は、鍵Ｋを使って、メッセージＭに対する暗号化関数Ｅの結果Ｅ（Ｍ，Ｋ）を計算することである。このために、関数ｆがあり、これは、そのブラックボックスの機能としてはＥと同じ計算を実行するが、特にＤＰＡ攻撃には耐え得ない。また、鍵Ｋが、このアルゴリズムに関して、Ｋ１、Ｋ２、・・・、Ｋｎと記され、特にＤＰＡ攻撃の影響を受けやすい、ｎ個の（ｍｂ＜１０ビット、または各副鍵ごとにｍ＝２ｍｂの可能な値を取る）小さい副鍵ｍｂの形で働くことも考察する。副鍵は、以下で説明する実装形態においては同じサイズのものである。本発明は、異なるサイズの副鍵でも適用される。
【００２８】
本発明は、上記暗号プロセッサ１５によって実施される暗号化関数を保護するために、外部ソフトウェアモジュール１７を暗号プロセッサと関連付けることを伴う。
【００２９】
図３に示すように、本発明は、所与のｊ（０＜ｊ＜ｎ＋１）について、各副鍵Ｋ’ｉｊ（０＜ｉ＜ｌ＋１）が、副鍵Ｋｊの値を含む全ての可能な値を、特別な実施形態に従ってα回取るように、Ｉ＝αｍ個の新しい鍵Ｋ’１、・・・、Ｋ’Ｉを計算すること、および、これらＩ個の新しい鍵Ｋ’１、・・・Ｋ’Ｉを用いてランダムにハードウェア暗号関数ｆを実行することを伴う。
【００３０】
言い換えると、その考え方は、
Ｋ’ｉ＝Ｋであるようなｉが存在する
ように、鍵Ｋ’ｉ（０≦ｉ＜ｌ）を用いて、Ｉ＝αｍ回の連続する計算を実行することである。
【００３１】
全てのｊについて、｛Ｋ’ｉｊ，０≦ｉ＜ｎ｝＝｛０，１，．．．，ｎ−１｝であり、各副鍵は、正確にα回出現する。
【００３２】
これは、実際には、各可能な副鍵が同じ回数出現するように、（真の鍵を含む）異なる鍵を用いて何度もの連続する計算を実行することを意味する。これらの計算は、ランダムにも実行される。その結果、攻撃者には、ＤＰＡ攻撃により正しい副鍵を識別する機会がなくなる。というのは、この副鍵は、他のいずれの副鍵より多くも少なくもない頻度で出現するからである。
【００３３】
次に、この対抗策（以下の各段落ではＣＭと記す）が、異なるアルゴリズムにどのように適用されるか考察する。
【００３４】
ＤＥＳアルゴリズムへの単純な適用
表記法
ＤＥＳアルゴリズムに以下の表記法を用いる。
【００３５】
ＰＣ１は、鍵を６４ビットから５６ビットに短縮する、鍵の最初の置換を表す。
【００３６】
ＩＰＣ１は、ＰＣ１の逆（５６ビットから６４ビット）を表し、欠けている８ビットが満たされる（しばしば、パリティビットが使用される）。
【００３７】
ＰＣ２は、圧縮置換（５６ビットから４８ビット）と、鍵の第１ラウンドへのシフトの組み合わせを表す。
【００３８】
ＩＰＣ２は、ＰＣ２の逆（４８ビットから５６ビット）を表し、未確定の８ビット（８＝５６−４８）が任意に（例えば、ランダムに）選択される。
【００３９】
４８ビットから６４ビットへの置換（ＩＰＣ２とＩＰＣ１の組み合わせ）は、ＰＰと記される。
【００４０】
ＰＰは、ＤＥＳアルゴリズムの第１ラウンドで使用される、４８ビットを有する鍵Ｋ４８から開始して、Ｋ６４をＤＥＳ計算の鍵として使用し、第１ラウンドにおいて第１の副鍵としてＫ４８を獲得するという特性を有する汎用鍵Ｋ６４＝ＰＰ（Ｋ４８）に到達することを可能にすることがわかる。
【００４１】
次に、本発明の対抗策を具体的な条件でどのように適用し得るか考察する。
【００４２】
１．１  ＣＭの最初の実施
ＤＥＳアルゴリズムの場合、副鍵は、ｍ＝６４の可能性を与える、それぞれｍｂ＝６ビットずつのｎ＝８個の副鍵の形で使用される。次いで、以下の派生鍵を用いて６４回の連続する計算（α＝１）を実行する。
【数１】
2006520565.tif 000003
【００４３】
したがって、第１ラウンドで使用される８個の副鍵のそれぞれについて、６４個の可能な値が等しく表され、真の鍵Ｋ００がリストに存在することが容易に理解できる。その場合、単に、６４個の派生鍵を用いて６４回のＤＥＳ計算をランダムに実行し、最後の結果を、正しい鍵が使用されている結果として選択するだけでよい。
【００４４】
これは、以下のように行われ得る。結果を格納するために１６メモリバイトが割り振られる。また、各Ｋｉごとにさらに１バイトずつが割り振られ（この場合は０または８で初期設定される）、これは、結果がそこからメモリに格納されるバイトを示す。したがって、このバイトは、値０を取るＫ００を除く全ての鍵で値８を取ることになる。これは、メモリコピーを実行する一の関数、ＰＰ（ｉ｜．．．｜ｉ）を計算する一の関数、および６４個の鍵をランダム化する一の関数があると考えると、次の擬似コードＣに類似した、比較的ジェネリックなコードを使用することを可能にする。
【数２】
2006520565.tif 000004
【００４５】
１．２  一般的なセキュリティの考慮事項
ＤＰＡの観点から見れば、どんな攻撃者も、ＤＥＳアルゴリズムの６４回の実行のそれぞれについて、真の鍵が関与しているか否か見分けることができず、従来のＤＰＡを用いてアルゴリズムを攻撃することができないことが、容易に理解できる。しかしながら、この方法のプログラミングは、非常に厳密な手法を必要とすることを忘れてはならない。というのは、たとえまれにであっても、正しい鍵を見分けることを可能とするどんな分析も、このＣＭを完全に無効にするからである。したがって、以下の重要点に注意が払われねばならない。
【００４６】
ランダム化：このステップは、真の鍵を、外部に知られてはならない場所０≦ｉ＜６４にシフトする。
【００４７】
結果コピー（ｊへのループ）：ここで再度、明らかになった場合、攻撃者が、どのＤＥＳアルゴリズムが真の鍵を使用するか知ることを可能にするはずの２つの値（０または８）が関与する。
【００４８】
３．４  ＣＭの拡張および様々な態様
関数ＰＰをもっとよく見ると、鍵をマスクするのに、先に行われたように、８つの副鍵に同じ値を使用する必要はないことが、容易に理解できる。副鍵ｉを取り、単に６４個の可能な値が出現するだけでよい。所与の副鍵での６４個の値の順序が、別の副鍵での順序と同じである必要はない。唯一の要件は、６４回の計算のうちの１回が正しい結果をもたらすように、（真の副鍵がそれに使用される）副鍵の値０が、８つの副鍵で同時に出現することである。したがって、以下の型の派生を想定することができる。
【数３】
2006520565.tif 000005
【００４９】
これは、単に、値［１，６３］のランダム置換を実行する関数を必要とするにすぎない。
【００５０】
マスク（００００００｜．．．｜００００００）が常に最初の位置に出現することは、その場合、派生鍵は使用される前にランダムに置換されるため、問題を提示しないことに留意すべきである。正しい位置にある値ｖａｌの６ビットを、それが副鍵ｉに対応するように置き換える関数ＰＰ２（ｉ，ｖａｌ）があると考えた場合、以下の擬似コードＣを得る。
【数４】
2006520565.tif 000006
【００５１】
６４個の派生鍵のランダム化は、指標ｉを有する０から６３までの鍵を走査すること、および指標ｉを有する鍵を０から６３の間でランダムに選択される指標を有する鍵と交換することを伴う、以下の従来の方法（Ｃｒｙｐｔｏ’２００２またはＤＥＳアルゴリズムに対するＨＯＤＰＡ攻撃に関するＡｋｋａｒ／Ｇｏｕｂｉｎの論文参照）を使って実行され得る。
【数５】
2006520565.tif 000007
【００５２】
３．５  他のＤＥＳラウンド
以上、ＤＰＡ攻撃から第１のＤＥＳラウンドをどのように保護するか考察した。ＤＥＳが、使用されるプロトコルの第１６ラウンドでより脆弱である場合には、当然ながら、類似の方法が想定され得る。関数ＰＰだけが変化し、第１６ラウンドでの鍵スケジューリングに対応する。その場合、最初と最後、両方のラウンドを保護する６４個の鍵マスクを使用することが可能である。以下の６４個の鍵マスクの鍵はこの特性を有する。
【数６】
2006520565.tif 000008
【００５３】
明らかに、この対抗策（または少なくともその重要な部分）は、コンパイラによって使用される方法を知らずに脆弱性を導入することを回避するために、アセンブラモードで実施されなければならない。
【００５４】
２．ＡＥＳアルゴリズムへの適用
明らかに、この方法は、類似のやり方で、ＡＥＳアルゴリズムに適用され得る。これは、説明するのがより簡単である。というのは、しばしば標的である、使用される第１の副鍵が、他の変換を伴わない鍵を含むからである。別の実質的な違いは、この鍵が８ビットずつ発生することから生じる。したがって、鍵および１２８ビットメッセージを用いるＡＥＳアルゴリズムの場合には、以下のような鍵派生および擬似コードＣを得る。
【数７】
2006520565.tif 000009
【００５５】
唯一の実際の違いは、ＡＥＳアルゴリズムの鍵スケジューリングが、第１の副鍵を除いて、ＤＥＳとは異なり、線形でないことである。したがって、この方法によって最後のラウンドを保護しようとする場合には、ＤＥＳと類似の方法は考えられない。その場合、鍵派生プランではなく、所与の鍵に特有の２５６個の鍵のセットを格納する必要がある。
【００５６】
３．結論
したがって、６４ＤＥＳ（または２５６ＡＥＳ）アルゴリズムおよびいくつかの付随的計算の実行により、高速だが保護されないブリックによるＤＰＡ攻撃から、暗号化アルゴリズム（例えば、ＤＥＳまたはＡＥＳなど）を保護することが可能であることがわかる。６４ＤＥＳまたは２５６ＡＥＳは長いように見えるが、それでおもなお、実際には、これらのハードウェア動作には実際上ごくわずかな時間しかかからない。
【図面の簡単な説明】
【００５７】
【図１】本発明による電子装置を概略的に示す図である。
【図２】図１による上記装置のハードウェアコンポーネントを概略的に示す図である。
【図３】本発明によるプロセスを概略的に示す図である。
【図１】
2006520565.tif 000010
【図２】
2006520565.tif 000011
【図３】
2006520565.tif 000012
【国際調査報告】
2006520565.tif 000013
2006520565.tif 000014
2006520565.tif 000015