(57)【特許請求の範囲】
【請求項１】
入力メッセージ（Ｍ）から暗号化されたメッセージ（Ｃ）を計算する為に秘密鍵（Ｋ）式暗号化アルゴリズムを利用する電子構成部品内部での対抗措置方法であり、そのアルゴリズムの利用には十六サイクル（Ｔ１，．．．，Ｔ１６）が含まれ、各サイクルごとに入力データから出力データを算出する為の第一手段（ＴＣ0）を使用し、その出力データ及び／又は派生データは、最初の三サイクル（Ｔ１，Ｔ２，Ｔ３）と最後の三サイクル（Ｔ１４，Ｔ１５，Ｔ１６）とでのクリティカル命令によって処理される、対抗措置方法であって、少なくとも最初の三サイクルを含むグループ（Ｇ１）と少なくとも最後の三サイクルを含むグループ（Ｇ４）とを形成することと、これらのグループ（Ｇ１及びＧ４）のそれぞれに、各サイクルごとに第一手段（ＴＣ0）を用いる第一シーケンス（ＳＥＱＡ）と、少なくとも数サイクルごとに他の手段（ＴＣ1，ＴＣ2，ＴＣ3）を用いる第二シーケンス（ＳＥＱＢ）とを組み合わせることと、前記第一及び第二シーケンスは、同一の入力メッセージ（Ｍ）が与えられると各グループの最後のサイクルで同一の出力結果を算出するようなシーケンスであることと、当該グループで実行するシーケンスは二分の一の確率の統計法則によって選択され、前記クリティカル命令によって処理されるデータの一切が予測不可能になることを特徴とする、対抗措置方法。
【請求項２】
他の手段は、第一手段の入力データ（Ｅ）及び／又は出力データ（Ｓ）の一方または両方の補数を取るような手段であることを特徴とする、請求項１に記載の対抗措置方法。
【請求項３】
第二シーケンス（ＳＥＱＢ）は、一サイクルまたは数サイクルごとに、使用される手段の入力または出力において追加の補数演算（ＣＰ）を含んでおり、第二シーケンスにおける各追加の補数演算は、第一シーケンス（ＳＥＱＡ）の追加の恒等的複写演算（ＩＤ）に対応していることを特徴とする、請求項２に記載の対抗措置方法。
【請求項４】
それぞれ連続する四サイクル（Ｔ１，．．Ｔ４）からなる四つのグループ（Ｇ１，．．Ｇ４）を形成することと、各グループに第一シーケンス（ＳＥＱＡ）を組み合わせることと、少なくとも最初のグループ（Ｇ１）と最後のグループ（Ｇ４）に第二シーケンス（ＳＥＱＢ）を組み合わせることを特徴とする、請求項１から４のいずれか一つのに記載の対抗措置方法。
【請求項５】
第二シーケンス（ＳＥＱＢ）が各グループ（Ｇ１，．．，Ｇ４）に組み合わせられることを特徴とする、請求項４に記載の対抗措置方法。
【請求項６】
最初のグループ（Ｇ１）は最初の三サイクル（Ｔ１，Ｔ２，Ｔ３）で形成されており、最後のグループは最後の三サイクル（Ｔ１４，Ｔ１５，Ｔ１６）で形成されていることを特徴とする、請求項１から３のいずれか一つに記載の対抗措置方法。
【請求項７】
実行するシーケンスの選択は、アルゴリズムの実行の初めに、乱数（ＲＮＤ１）の抽出によって行われ、選択されたシーケンスは当該グループのそれぞれで使用されるシーケンスであることを特徴とする、請求項１から６のいずれか一つに記載の対抗措置方法。
【請求項８】
様々な手段は定数表であることを特徴とする、請求項１から７のいずれか一つに記載の対抗措置方法。
【請求項９】
入力データから出力データを算出する為の様々な手段（ＴＣ0，ＴＣ1，ＴＣ2）は、前記構成部品のプログラム・メモリに不揮発的に書き込まれており、前記様々な手段の使用を制御する為に、０または１の乱数（ＲＮＤ１）の生成手段（４）を含んでいることを特徴とする、請求項１から８のいずれか一つに記載の対抗措置方法を利用する安全電子構成部品。
【請求項１０】
請求項９に記載の安全電子構成部品を含むチップカード。
【発明の詳細な説明】
【０００１】
本発明は、秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法に関するものである。サービスやデータへのアクセスが厳正に管理されるアプリケーションで用いられる。そのアーキテクチャは、マイクロプロセッサやメモリの周辺で形成されるものであり、該メモリの一つのプログラム・メモリは秘密鍵を保存している。
【０００２】
このようなあるアプリケーションについて、これらの構成部品は、チップカード内で特に用いられる。例えば、あるデータ・バンクにアクセスするアプリケーション、銀行業務アプリケーション、遠隔式通行料金徴収アプリケーション、また例えば、テレビ用、ガソリン供給や自動車道路の通行料金徴収所を通過する為のものなどである。
【０００３】
従って、これらの構成部品やこれらのカードは、秘密鍵式暗号化アルゴリズムを利用するものであり、その中でも最もよく知られているのがＤＥＳアルゴリズム（英語文献のＤａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄの略語）である。秘密鍵式アルゴリズムには他にもＲＣ５アルゴリズムやＣＯＭＰ１２８アルゴリズムがある。言うまでもなく、ここに挙げたもので全てが網羅されているわけではない。
【０００４】
一般的かつ簡潔に述べると、これらのアルゴリズムが果たす機能は、ホスト・システム（サーバー、銀行の現金自動支払い機…）とカード内に収納された秘密鍵とで（カードに）入力されたメッセージから、暗号化されたメッセージを計算することと、この暗号化されたメッセージをホスト・システムに返すことであり、例えばホスト・システムは、構成部品またはカードを認証したり、データを交換したりすることができるようになる。
【０００５】
ところで、これらの構成部品やこれらのカードは、消費電力の差分を解析することから成る攻撃に対しては弱く、悪意ある第三者が、秘密鍵を発見できることになる。これらの攻撃をＤＰＡ攻撃と言い、Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ（電力差分解析）という英語の略語である。
【０００６】
これらのＤＰＡ攻撃の原理は、マイクロプロセッサが命令を実行する際の消費電力は、処理されるデータにより変化するという事実に基づいている。
【０００７】
特に１ビットデータを処理するマイクロプロセッサの一つの命令は、このビットの値が「１」か「０」かによって、波形の異なる二種類の電流を発生させる。典型的には、その命令が「０」を処理するなら、消費される電流の第一の振幅がこの実行時点に現れ、その命令が「１」を処理するなら、第一とは異なる第二の振幅が現れることになる。
【０００８】
実行される計算や、用いられるパラメータなど、暗号化アルゴリズムの特徴は既に知られたものである。唯一知られていないのは、プログラム・メモリに保存された秘密鍵である。これは、入力されたメッセージと、返された暗号化されたメッセージを知っているだけでは、演繹不可能である。
【０００９】
しかしながら、暗号化アルゴリズムでは、計算される幾つかのデータは、カードに平文で入力されたメッセージと、カードに保存されている秘密鍵とだけに依存している。そのアルゴリズムで計算される他のデータもまた、暗号化されたメッセージ（一般的にはカードからホスト・システムに向かって平文で出力される）と、カードに保存されている秘密鍵とだけから再計算することが可能である。さらに詳しく言うと、これらの特定データの各ビットは、入力又は出力メッセージと、鍵の限定された数の特定ビットとに基づいて、決定することができる。
【００１０】
従って、特定データの各ビットは、その鍵の、ある特定ビットが集まって形成された部分鍵に対応している。
【００１１】
予想可能なこれらの特定データのビットを、以後、標的ビットと呼ぶことにする。
【００１２】
従って、ＤＰＡ攻撃の基本的な考え方は、まず、命令が「１」を処理するのか「０」を処理するのかにより消費電力の波形が異なるというその差分と、既知の入力又は出力メッセージ及び対応する部分鍵の推定からそのアルゴリズムの命令によって標的ビットを計算することができるというその可能性とを、利用することなのである。
【００１３】
従って、ＤＰＡ攻撃の原理は、与えられた部分鍵の推定を検証することであり、電流の多数の測定曲線に、つまりそれぞれが攻撃者の知っている入力メッセージに関する曲線に、選択のブール関数を、つまり部分鍵の推定の関数であって一つの標的ビットの予測値により各曲線毎に規定される関数を、当てはめることである。
【００１４】
当該部分鍵を推定することにより、与えられた入力又は出力メッセージについて、この標的ビットが取る値は「０」なのか「１」なのかを予測することが実際に可能になる。
【００１５】
その際に、標的ビットによる予測値「０」又は「１」を、選択のブール関数として、対象となる部分鍵を推定する為に当てはめ、これらの曲線を二つのパケットに選別する。その第一パケットは、部分鍵の推定に従って、「０」で標的ビットを処理した曲線を再グループ化したものであり、第二パケットは、「１」で標的ビットを処理した曲線を再グループ化したものである。各パケットごとに消費電力の平均を取ることで、第一パケットの平均消費曲線Ｍ０（ｔ）と、第二パケットの平均消費曲線Ｍ１（ｔ）とが得られる。
【００１６】
部分鍵の推定が当たっていれば、第一パケットは、「０」で標的ビットを処理したＮ本の曲線のなかから全ての曲線が実際に再グループ化されていることになり、第二パケットは、「１」で標的ビットを処理したＮ本の曲線のなかから全ての曲線が実際に再グループ化されていることになる。その場合、第一パケットの平均消費曲線Ｍ０（ｔ）は、クリティカル命令を実行する瞬間は除いて、「０」で標的ビットを処理する際に特徴のある消費電力の波形（波形０）を伴う平均消費を、どの場所でも示すことになる。換言すれば、常に「０」という値をもった標的ビットは別として、全曲線について、処理される全ビットが「１」という値をもつ可能性も「０」という値をもつ可能性も同じ確率で与えられている。これは以下の式で表現することができる。
Ｍ０（ｔ）＝〔（波形0＋波形1）／２〕t≠tci＋〔波形0〕tci即ち
Ｍ０（ｔ）＝〔Ｖｍt〕t≠tci＋〔波形0〕tci
但し、ここでｔｃｉは、クリティカル命令が実行されたクリティカル時点を示す。
【００１７】
同様に、第二パケットの平均消費曲線Ｍ１（ｔ）は、クリティカル命令を実行する瞬間は除いて、「１」で標的ビットを処理する際に特徴のある消費電力の波形（波形１）を伴う平均消費を、どの場所でも示すことになる。これは以下の式で表現することができる。
Ｍ１（ｔ）＝〔（波形0＋波形1）／２〕t≠tci＋〔波形1〕tci即ち
Ｍ１（ｔ）＝〔Ｖｍt〕t≠tci＋〔波形1〕tci
【００１８】
これで、２つの波形、波形0と波形1は等しくないことが分かる。その際に、曲線Ｍ０（ｔ）と曲線Ｍ１（ｔ）との差分から、このビットを処理するクリティカル命令の実行時点ｔｃｉ、即ち図１に示された例で言うとｔｃ０からｔｃ６のところで、波形0─波形1に等しい振幅を有する信号ＤＰＡ（ｔ）が得られ、クリティカル時点外では、ほぼゼロに等しい振幅を有する信号が得られるということである。
【００１９】
部分鍵の推定が外れた場合は、その抽出は現実に即していないことになる。その場合、統計的には、各パケットの中には、実際には「０」で標的ビットを処理した曲線と、「１」で標的ビットを処理した曲線とが同数存在することになる。その場合、結果として得られる平均曲線Ｍ０（ｔ）の位置は、式（波形0＋波形1）／２＝Ｖｍで得られる平均値の周辺であり、というのも、各曲線について、標的ビットを含めた処理された全ビットに、「０」の値を取るのと、「１」の値を取るのと同じ確率が与えられているからである。
【００２０】
第二パケットについても同じ推論が成り立ち、それによれば、平均電力消費曲線Ｍ１（ｔ）の振幅は、式（波形0＋波形1）／２＝Ｖｍで得られる平均値の周辺にあることになる。
【００２１】
この場合、Ｍ０（ｔ）−  Ｍ１（ｔ）での差から算出される信号ＤＰＡ（ｔ）は、ほぼゼロに等しい。部分鍵の推定が外れた場合の信号ＤＰＡ（ｔ）は、図２に示されている。
【００２２】
従って、ＤＰＡ攻撃は、処理されるビットの値に応じた命令実行中の消費電力の波形の差分を用いて、与えられた部分鍵を推定する為の選択のブール関数に従った消費電力曲線の抽出を行うことである。得られた曲線の二つのパケット間での平均消費電力の差分を解析することにより、情報信号ＤＰＡ（ｔ）が得られる。
【００２３】
その場合、ＤＰＡ攻撃は一般に以下のように進行する。
ａ−Ｎ個（例えばＮは１０００に等しい）の乱数メッセージを抽出する。
ｂ−（構成部品の給電端子で測定して）消費電力の曲線を毎回拾い、Ｎ個の乱数メッセージのそれぞれにつき、カードによるアルゴリズムの実行を行わせる。
ｃ−部分鍵の推定を行う。
ｄ−乱数メッセージのそれぞれにつき、標的ビット内の一つの値を予測し、該値は、メッセージ（入力又は出力）の数ビットと、推定された部分鍵とのみに依存するものであって、それによりブール選択関数を得る。
ｅ−このブール選択関数により（つまり、部分鍵の推定の下、各曲線についての、この標的ビットの予測値が「０」であるか「１」であるかにより）曲線を選別する。
ｆ─結果として得られた平均消費電力曲線を、各パケットにおいて計算する。
ｇ−これらの平均曲線の差を出し、信号ＤＰＡ（ｔ）を得る。
【００２４】
部分鍵の推定が当たっていれば、ブール選択関数も当たっており、第一パケットの曲線は、入力又は出力で適用されるメッセージが、カード内で「０」の標的ビットを与えた曲線に実際に対応しており、第二パケットの曲線は、入力又は出力で適用されるメッセージが、カード内で「１」の標的ビットを与えた曲線に実際に対応している。
【００２５】
従って、図１の場合において、信号ＤＰＡ（ｔ）は、クリティカル命令の実行（標的ビットを処理する）に対応するｔｃ０からｔｃ６までの時点においてゼロではない。捕捉期間中に少なくとも一つのクリティカル時点があれば十分である。
【００２６】
攻撃者はクリティカル時点を精確に知る必要はないということに注意されたい。
【００２７】
部分鍵の推定が当たっていなければ、抽出は現実に即しておらず、その場合、各パケットの中には、実際には、「０」の標的ビットに対応する曲線と、「１」の標的ビットに対応する曲線とが、同数あることになる。（図２に示されているように）いずれの場合も信号ＤＰＡ（ｔ）はほぼゼロである。ステップｃ−に戻って部分鍵の推定をやり直さなければならない。
【００２８】
推定が正しいことが判明すれば、鍵全体を再構成するまで、他の部分鍵の評価に移ることができる。例えば、ＤＥＳアルゴリズムでは、６４ビットの鍵を使うが、そのうちの５６ビットだけが有効である。ＤＰＡ攻撃を行うと、有効な５６ビットのうちの少なくとも４８ビットを再構成することができる。
【００２９】
本発明の目的は、たとえ部分鍵の推定が当たっている場合でも、信号ＤＰＡ（ｔ）をゼロにするような対抗措置方法を電子構成部品において利用することである。
【００３０】
このようにすれば、部分鍵の推定が当たっている場合を、部分鍵の推定が外れている場合から見分けることが完全にできなくなる。この対抗措置方法により、電子構成部品はＤＰＡ攻撃から守られる。
【００３１】
本発明によれば、対抗措置方法は、標的ビット、即ちクリティカル命令によって処理されるデータを、予測不可能にすることができる。
【００３２】
事実、この対抗措置方法のため、入力時に用いられるメッセージのそれぞれについて、クリティカル命令で処理される標的ビットは、同じ確率で０又は１の値をとる。攻撃者が、自分で計算したブール選択関数を使って所与の部分鍵の推定に基づき作成する各パケットの曲線においては、実際に標的ビット「０」を処理した曲線も、実際に「１」の標的ビットを処理した曲線も、同じことになる。信号ＤＰＡ（ｔ）は、部分鍵の推定が当たっていようといなかろうと、常にゼロになるであろう。
【００３３】
本発明において特に重点が置かれているのはＤＥＳ暗号化アルゴリズムである。
【００３４】
そのようなアルゴリズムは、十六サイクルの同じ計算を行うことが含まれている。
【００３５】
そのようなアルゴリズムにおいて、攻撃者に予測可能なデータは、最初のサイクルと最後のサイクルに存在しており、ＤＰＡ攻撃に対して致命的な命令は、最初の三サイクルと最後の三サイクルに存在していることを明らかにすることができた。
【００３６】
本発明において更に詳細に追求した方法は、最初の三サイクルと最後の三サイクルでのこれらのクリティカル命令により処理されるデータが、予測不可能になるような方法であって、しかも、暗号化された有効なメッセージが出力時点で得られるような方法なのである。
【００３７】
従って、本発明の目的は、クリティカル命令によって処理されるデータを予測不可能にし、しかも、有効な最終結果（暗号化されたメッセージＣ）を得ることである。
【００３８】
これらの様々な技術的問題は、少なくとも最初の三サイクルを含むグループ（Ｇ１）と、少なくとも最後の三サイクルを含む他のグループ（Ｇ４）を形成して、これらのグループにおいて、これらの数サイクルに含まれるクリティカル命令で処理されるデータを予測不可能にする方法を用いることにより解決される。
【００３９】
本発明によれば、各グループから出力される結果は正当である。
【００４０】
従って、特徴として挙げられるように、本発明は、入力メッセージから暗号化されたメッセージを算出するに秘密鍵式暗号化アルゴリズムを利用する電子構成部品内での対抗措置方法に関するものであり、十六サイクルの計算を含むアルゴリズムを利用し、各サイクルごとに、入力データから出力データを算出する為の第一手段を使用し、その出力データおよび／または派生データは最初の三サイクルと最後の三サイクルとでのクリティカル命令によって処理される。本発明では、少なくとも最初の三サイクルを含むグループと、少なくとも最後の三サイクルを含む他のグループとを形成し、これらのグループのそれぞれに、各サイクルごとに第一手段を用いる第一シーケンスと、少なくとも数サイクルごとに他の手段を用いる第二シーケンスとを組み合わせることと、前記第一及び第二シーケンスは、同一の入力メッセージが与えられると各グループの最後のサイクルで同一の出力結果を算出するようなシーケンスであることと、当該グループで実行するシーケンスは、二分の一の確率の統計法則によって選択され、前記クリティカル命令によって処理されるデータの一切が予測不可能になるようにする。
【００４１】
一つの実施態様では、それぞれ連続する四サイクルから成る四つのグループを形成する。
【００４２】
他の実施態様では、それぞれ最初の三サイクルと最後の三サイクルを含む二つのグループを形成する。
【００４３】
本発明の他の特徴と利点は、添付図面を参照しつつ、以下の説明により詳細に述べられるが、説明はあくまで参考に供するものであって、説明した事項のみに限定する趣旨のものではない。
・図１及び２は、既に説明したが、ＤＰＡ（ｔ）信号を示すものであり、該信号は、ＤＰＡ攻撃に従って秘密鍵Ｋの部分鍵を推定するのにつれて、得ることが出来る。
・図３及び４は、ＤＥＳアルゴリズムの最初の数サイクルと最後の数サイクルを示すフローチャートである。
・図５は、ＤＥＳアルゴリズムで用いられる演算ＳＢＯＸのブロック図である。
・図６は、演算ＳＢＯＸで用いられる入力と出力の基本定数表の一例を示す。
・図７は、本発明の対抗措置方法を用いてＤＥＳを実行するフローチャートの第一の例を示している。
・図８は、図７に示された第一の例の対抗措置方法の第二シーケンスによるＤＥＳの最初の数サイクルのフローチャートである。
・図９及び１０は、それぞれ本発明で用いられる第二と第三の基本定数表を示している。
・図１１は、本発明の対抗措置方法を用いてＤＥＳを実行するフローチャートの第二の例を示している。
・図１２及び１３は、図１１に示された第二の例の対抗措置方法の、それぞれ第二シーケンスと第一シーケンスによるＤＥＳの最初の数サイクルのフローチャートである。
・図１４及び１５は、本発明の対抗措置方法の第三の応用態様に関するフローチャートである。
・図１６は、本発明によるこの第四の応用態様で使用される、第三の基本定数表を示している。
・図１７は、本発明による対抗措置方法の第三の応用態様の変形によるＤＥＳ実行のフローチャートである。
・図１８は、本発明による対抗措置方法を利用する電子構成部品を備えたチップカードの簡略化したブロック図を示す。
【００４４】
秘密鍵式暗号化アルゴリズムＤＥＳ（以後、ＤＥＳあるいはＤＥＳアルゴリズムと略称する）は、図３及び４に示されたように、Ｔ１からＴ１６の記号を付された十六サイクルの計算を含んでいる。
【００４５】
ＤＥＳは、まず入力メッセージＭ（図３）についての最初の置換ＩＰから始まる。入力メッセージＭは６４ビットのワードｆである。置換後、６４ビットのワードｅが得られ、それを二つに分割して最初のサイクル（Ｔ１）の入力パラメータＬ０とＲ０を形成する。Ｌ０は、ワードｅのより重みのある方の３２ビットを含む３２ビットのワードｄである。Ｒ０は、ワードｅのより軽めの方の３２ビットを含む３２ビットのワードｈである。
【００４６】
秘密鍵Ｋは６４ビットのワードｑであり、それ自体が置換及び圧縮（ｋｅｙ  ｐｅｒｍ）されて、５６ビットのワードｒを算出する。
【００４７】
最初のサイクルは、パラメータＲ０について、拡張及び置換から成る演算ＥＸＰ  ＰＥＲＭが含まれ、４８ビットのワードｌの出力が得られる。
【００４８】
このワードｌは、ＸＯＲと記された排他的論理和型の演算において、パラメータＫ１と組み合わされて、４８ビットのワードｂを算出する。パラメータＫ１は４８ビットのワードｍであり、ワードｒを、まずシフト（図３及び４のＳＨＩＦＴと記された演算）し、その後、置換及び圧縮（ＣＯＭＰ  ＰＥＲＭと記された演算）を行って得られる。
【００４９】
ワードｂは、ＳＢＯＸと記された演算を適用されて、出力では３２ビットのワードａが得られる。この演算は特に図５及び６との関連で詳細に説明することとする。
【００５０】
ワードａは、置換Ｐ  ＰＥＲＭを受け、３２ビットのワードｃを出力する。
【００５１】
このワードｃは、ＸＯＲと記された排他的論理和型の演算において、最初のサイクルＴ１の入力パラメータＬ０と組み合わされ、３２ビットのワードｇを出力する。
【００５２】
最初のサイクルのワードｈ（＝Ｒ０）は、次のサイクル（Ｔ２）の入力パラメータＬ１を与え、最初のサイクルのワードｇは、次のサイクルの入力パラメータＲ１を与える。最初のサイクルのワードｐは、次のサイクルの入力ｒを与える。
【００５３】
他のサイクルＴ２からＴ１６も同様に進行するが、但し、シフト演算ＳＨＩＦＴは別であり、該シフト演算は、対象となるサイクルによって一または二の位置で行われる。
【００５４】
従って、各サイクルＴｉごとに、Ｌｉ−１、Ｒｉ−１及びｒというパラメータの入力を受けると、次のサイクルＴｉ＋１の為に、Ｌｉ、Ｒｉ及びｒというパラメータを出力する。
【００５５】
ＤＥＳアルゴリズムの終わり（図４）において、暗号化されたメッセージは、最後のサイクルＴ１６で与えられたＬ１６及びＲ１６のパラメータから計算される。
【００５６】
この暗号化されたメッセージＣの計算には実際は以下の演算が含まれている。
・ワードＬ１６とＲ１６の位置を逆にし、次にそれらを連結して、６４ビットのワードｅ’を形成する。
・ＤＥＳの最初のものとは逆の置換ＩＰ-1を適用して、暗号化されたメッセージＣを形成する６４ビットのワードｆ’を得る。
【００５７】
演算ＳＢＯＸについては図５と６で詳しく示されている。それには、入力データｂに応じて出力データａを算出する為の定数表ＴＣ0が含まれている。
【００５８】
実際には、この定数表ＴＣ0は、八つの基本定数表ＴＣ0１からＴＣ0８という形で示され、それぞれワードｂの６ビットだけの入力を受け取り、ワードａの４ビットだけの出力を算出する。
【００５９】
従って図６に示された基本定数表ＴＣ0１は、入力データとしてワードｂのｂ１からｂ６までのビットを受け取り、出力データとしてワードａのａ１からａ４までのビットを算出する。
【００６０】
実際には、これらの八つの基本定数表ＴＣ0１からＴＣ0８は、電子構成部品のプログラム・メモリに記憶される。
【００６１】
最初のサイクルＴ１の演算ＳＢＯＸにおいて、定数表ＴＣ0の出力データａのある特定の１ビットは、入力されたデータｂの６ビットのみに依存し、つまり、秘密鍵Ｋの６ビットと、入力メッセージ（Ｍ）とのみに依存する。
【００６２】
最後のサイクルＴ１６の演算ＳＢＯＸにおいて、定数表ＴＣ0の出力データａのある特定の１ビットは、秘密鍵Ｋの６ビットと、暗号化されたメッセージ（Ｃ）とのみに基づいて再計算することが可能である。
【００６３】
ところで、ＤＰＡ攻撃の原理をもう一度振り返ってみると、出力データａの１ビットを標的ビットとして選ぶとき、鍵Ｋの６ビットの推定を行うだけで、入力メッセージ（Ｍ）又は所与の出力メッセージ（Ｃ）の為の標的ビットの値を予測することができる。換言すれば、ＤＥＳに関しては、６ビットの部分鍵の推定を行うだけでよい。
【００６４】
従って、与えられた標的ビットの為のそのようなアルゴリズムにＤＰＡ攻撃を行う際には、６４個の可能性なかから、一つの正当な部分鍵の推定を判別しなければならない。
【００６５】
従って、標的ビットとしてワードａの八つのビット（八つの基本定数表ＴＣ0１からＴＣ0８による出力の１ビット）だけを取り上げ、これらの標的ビットのそれぞれにＤＰＡ攻撃を行うことで、秘密鍵の６×８＝４８ビットまでを見破ることが可能である。
【００６６】
従って、ＤＥＳにおいて、クリティカル命令は、アルゴリズムの最初と最後で、ＤＰＡ攻撃で分かる。
【００６７】
ＤＥＳアルゴリズムの初めにおいて、入力メッセージＭと部分鍵の推定とから予測可能なデータは、最初のサイクル（Ｔ１）で計算されるデータａ及びｇである。
【００６８】
最初のサイクルＴ１のデータａ（図３）は、対象となるサイクルの演算ＳＢＯＸの出力データである。入力パラメータＬ０を使って、置換（Ｐ  ＰＥＲＭ）と排他的論理和演算を行うことにより、データａからデータｇが計算される。
【００６９】
事実、最初のサイクルのデータｃは、最初のサイクルのデータａの派生データである。派生データｃは、データａのビットの単純な置換に対応している。
【００７０】
第二のサイクルのデータｌは、最初のサイクルのデータｇの派生データであり、というのも、それはワードｇのビット置換に対応しており、ワードｇのビットの幾つかは更に複写されているからである。
【００７１】
ａとｇが分かれば、これらの派生データも知ることができる。
【００７２】
アルゴリズムの開始のクリティカル命令は、最初のサイクルのデータａのような予測可能なデータ又は派生データを処理する、クリティカル命令である。
【００７３】
従って、最初のサイクルＴ１のデータａや派生データｃを処理するクリティカル命令は、演算ＳＢＯＸ、演算Ｐ  ＰＥＲＭの終了の命令、そして、最初のサイクルＴ１の演算ＸＯＲの開始の命令である。
【００７４】
データｇ又は派生データを処理するクリティカル命令は、最初のサイクルＴ１の終わりで演算ＸＯＲの終了の命令から、第二のサイクルＴ２の演算ＳＢＯＸの開始まで、そして第三のサイクルＴ３（Ｌ２＝ｈ（Ｔ２）＝ｇ（Ｔ１））の終わりでの演算ＸＯＲの開始までの、全ての命令である。
【００７５】
ＤＥＳアルゴリズムの終わりに、暗号化されたメッセージＣと部分鍵の推定とから予測可能なデータは、第十六のサイクルＴ１６のデータａと、第十四のサイクルＴ１４のワードｈに等しいデータＬ１５である。
【００７６】
第十六のサイクルのデータａ又は派生データを処理するクリティカル命令は、第十六のサイクルの、演算ＳＢＯＸ、置換演算Ｐ  ＰＥＲＭの終了の命令、そして演算ＸＯＲの開始の命令である。
【００７７】
このデータ又は派生データを処理するクリティカル命令は、データＬ１５については、第十四のサイクルＴ１４の演算ＸＯＲの終了の命令から、第十五のサイクルＴ１５の演算ＳＢＯＸの開始まで、そして第十六のサイクルＴ１６の演算ＸＯＲの開始までの、全ての命令である。
【００７８】
このＤＥＳアルゴリズムに適用する本発明の対抗措置方法は、各クリティカル命令について、クリティカル命令が、ある一つのデータとその補数とを同じ確率で処理することから成る。従って、ＤＰＡ攻撃上での標的ビットが何であろうと、このビットを処理するクリティカル命令は「１」または「０」のどちらかを同じ確率で処理することになる。
【００７９】
実際には、これは標的となる可能性のある各ビットについて必ず当てはまるはずである。換言すれば、攻撃者は、幾つもの可能性ある攻撃の間で、つまり部分鍵を推定するための曲線を抽出する為に可能な幾つものブール選択関数の間で、選択肢を有す。本発明の対抗措置方法を利用するには、各クリティカル命令によって処理されるデータは、二回に一回、ある値又はその補数を無作為に抽出するということに注意をしなければならない。従って、本発明の対抗措置方法を、ＤＥＳアルゴリズムに適用するについては、完全な保護の為に、ＤＥＳの開始のクリティカル命令と、ＤＥＳの終了のクリティカル命令とに対抗措置方法を適用しなければならない。
【００８０】
ＤＥＳにおいて、クリティカル命令によって処理される全データは、出力データか、もしくは演算ＳＢＯＸの出力データの派生データである。
【００８１】
実際に、ＤＥＳの初めで、予測可能なデータは最初のサイクルＴ１のデータａ及びｇである。データａは最初のサイクルの演算ＳＢＯＸの出力データである。ｇ＝Ｐ  ＰＥＲＭ（ａ）ＸＯＲ  Ｌ０であるから、データｇはデータａから計算される。従ってｇは最初のサイクルの演算ＳＢＯＸの出力データａの派生データである。従って、ＤＥＳの開始のクリティカル命令で処理される全データは、最初のサイクルの演算ＳＢＯＸの出力データａから直接または間接的に導き出される。
【００８２】
ＤＥＳの終わりについては、予測可能なデータは、第十六のサイクルＴ１６のデータａと、第十四のサイクルＴ１４のデータｇであり、ｇはＬ１５に等しい。
【００８３】
データａは、第十六のサイクルＴ１６の演算ＳＢＯＸの出力データである。
【００８４】
データＬ１５は、ＤＥＳアルゴリズムの通常の実行において、第十四のサイクルＴ１４の演算ＳＢＯＸの出力データａから計算される。但し、Ｌ１５＝Ｐ  ＰＥＲＭ（ａ）  ＸＯＲ  Ｌ１４。
【００８５】
特にこれらの演算ＳＢＯＸの出力データａを予測不可能にすると、全派生データも予測不可能にすることになる。従って、ＤＥＳアルゴリズムのクリティカル命令によって処理される全データが、予測不可能になる。これらの演算ＳＢＯＸが、入力データＥ＝ｂから出力データＳ＝ａを算出する為の第一手段となることを考えると、ＤＥＳアルゴリズムに適用される対抗措置方法は、出力データを予測不可能する他の手段を用いることから成り、従ってこの出力データ及び／又はクリティカル命令で処理される全派生データが予測不可能になる。
【００８６】
本発明によれば、少なくとも最初の三サイクルで形成された一つのグループと、少なくとも最後の三サイクルで形成されたもう一つのグループとを形成する。従って、これらのグループには、クリティカル命令を含む全サイクルが含まれている。
【００８７】
全サイクルに第一手段を用いる第一シーケンスと、少なくとも数サイクルごとに他の手段を用いる第二シーケンスとを、これらの二つのグループに組み合わせる。
【００８８】
このグループにない他のサイクルについては、第一手段を使用し続けることができる。
【００８９】
これらの他の手段を用いる際には、出力結果、即ち暗号化されたメッセージが正当であるようにする。
【００９０】
これらの他の手段には、幾つもの異なった手段が含まれていてもよい。それらは、第一手段の入力及び出力データの両方または一方に、補数データが対応するようにする手段である。
【００９１】
従って、膨大な数の実行が行われることを考えると、それらのグループは、アルゴリズムの通常のシーケンスである第一シーケンスを、平均して二回に一回用い、別のシーケンスも二回に一回用いる。従って、これらのグループでのクリティカル命令によって処理されるデータは、幾つかの中間結果に対応しており、平均して二回に一回、補数が取られることになる。従って、多数の曲線について、１あるいは０を付与された標的ビットと同じ確率を、統計的に有することになる。
【００９２】
図７は本発明の第一の実施態様を示している。
【００９３】
この実施態様においては、十六サイクルのＤＥＳアルゴリズムを、連続する四サイクルの４つのグループＧ１からＧ４に分割する。従ってグループＧ１に含まれているのはサイクルＴ１からＴ４、グループＧ２はサイクルＴ５からＴ８、グループＧ３はサイクルＴ９からＴ１２、そしてグループＧ４はサイクルＴ１３からＴ１６である。
【００９４】
各グループで二つのシーケンスが組み合わされる。第一シーケンスＳＥＱＡは、各サイクルごとに第一手段ＴＣ0を用いることから成る。第二シーケンスＳＥＱＢは、少なくとも数サイクルごとに他の手段を用いることから成る。
【００９５】
図示された例においては、これらの他の手段には、第二手段ＴＣ2と第三手段ＴＣ1とが含まれている。
【００９６】
第二手段ＴＣ2は、各グループの第二のサイクルと、最後から二番目のサイクルとで用いられる。つまり、Ｇ１のＴ２，Ｔ３、Ｇ２のＴ６，Ｔ７、Ｇ３のＴ１０，Ｔ１１、Ｇ４のＴ１４，Ｔ１５で用いられている。
【００９７】
第三手段ＴＣ1は、各グループの最初のサイクルと最後のサイクルとで用いられる。つまり、Ｇ１のＴ１，Ｔ４、Ｇ２のＴ５，Ｔ８、Ｇ３のＴ９，Ｔ１２、Ｇ４のＴ１３，Ｔ１６で用いられている。
【００９８】
実際には、これらの様々な手段は定数表を基にする。第一手段は、第一定数表ＴＣ0に対応し、ＤＥＳの通常の実行に対応する。他の手段ＴＣ1とＴＣ2は、この第一定数表ＴＣ0との関係で、補数をとることにより規定される。
【００９９】
第二手段ＴＣ2は、入力データＥの補数／Ｅの為に、第一手段ＴＣ0の出力データＳの補数を算出するものである。図９に示されているのは、第一基本定数表ＴＣ0１に対応する第二基本表ＴＣ2１の一例である。本文で用いられている補数／Ｅという表記は、図示された補数データの上の棒線つき表記に対応しているということに注意されたい。
【０１００】
第三手段は、入力データＥについて、第一手段ＴＣ0の出力データＳの補数／Ｓを算出するものである。図１０に示されているのは、第一基本定数表ＴＣ0１に対応する第三基本表ＴＣ1１の一例である。
【０１０１】
その場合、計算プログラムは、アルゴリズム実行の初めで、０または１に等しい乱数ＲＮＤ１を抽出し、次にこの値ＲＮＤ１を検証することである。例において、もしＲＮＤ１の値が１なら、Ｇ１からＧ４の各グループについて第二シーケンスＳＥＱＢを使って計算を実行する。
【０１０２】
もしＲＮＤ１の値が０なら、各グループについて第一シーケンスＳＥＱＡを使って計算を実行する。
【０１０３】
第一シーケンスを用いようが第二シーケンスを用いようが、出力パラメータについての正しい結果が、各グループの出力で得られる。従って、どのシーケンスを使っても、第一グループＧ１の出力パラメータＬ４とＲ４、第二グループＧ２のＬ８とＲ８、第三グループＧ３のＬ１２とＲ１２、第四グループＧ４のＬ１６とＲ１６は正しい。
【０１０４】
計算の全サイクルを実行したときは、正当なパラメータＬ１６とＲ１６が得られ、それによって、正当な暗号化されたメッセージＣが計算できることになる。
【０１０５】
逆に、グループ内では、幾つかの中間データは、使われたシーケンスによって同じ値を取らずに、図３及び図８を参照すると分かるように、補数値を取る。
【０１０６】
既に述べた図３は、事実、第一シーケンスＳＥＱＡにおける、第一グループＧ１の四サイクルＴ１、Ｔ２、Ｔ３及びＴ４の計算のフローチャートに対応している。
【０１０７】
図８に示されているのは、第二シーケンスＳＥＱＢにおける、第一グループＧ１の四サイクルＴ１、Ｔ２、Ｔ３及びＴ４の詳細なフローチャートである。
【０１０８】
この第二シーケンスにおいて、サイクルＴ１では第三手段ＴＣ1が用いられる。従って、演算ＳＢＯＸの出力においては、第一シーケンスＳＥＱＡを使ってのデータ／ａ（図３）の代わりに、データ／ａ（図８）が得られる。
【０１０９】
従って、単純な置換であるサイクルＴ１の演算Ｐ  ＰＥＲＭでも、シーケンスＳＥＱＡに対して、補数データ／ｃが出力される。
【０１１０】
補数データ／ｃと非補数データＬ０との間の排他的論理和により得られたデータｇも、補数データ／ｇを出力することになる。
【０１１１】
従って、サイクルＴ１の第三手段を使えば、シーケンスＳＥＱＡで得られるであろうデータに対して、以下のような全ての補数データが得られる。
・サイクルＴ１においては、／ａ，／ｃ，／ｇ；
・サイクルＴ２においては、／Ｒ１，／ｈ，／ｌ，／ｂ；
・サイクルＴ３においては、／Ｌ２。
【０１１２】
そこで、サイクルＴ２で用いられる第二手段ＴＣ2に行き着く。それらの定義によれば、補数データ／ｂを適用して、補数データ／ａの出力が得られる。この推論をサイクルＴ４の最後まで押し進めて、二つの補数データ間の排他的論理和は一つの非補数結果を出すこと（例えばサイクルＴ４において／Ｌ３  ＸＯＲ  ／ｃ＝ｇ）に注目すると、サイクルＴ４の出力として非補数データＬ４、Ｒ４が得られる。
【０１１３】
更に、ＤＥＳの開始の全てのクリティカル命令について、クリティカル命令は、実行されたシーケンスが第一シーケンスＳＥＱＡか第二シーケンスＳＥＱＢかにより、データ及びそれらの補数を、データＲＮＤ１に応じて無作為に処理することになることが確認される。
【０１１４】
従って、この第一の実施態様における対抗措置方法は、非常に有益である。乱数を抽出し、この値の検証をするＤＥＳの計算プログラムにおいて、追加演算は二つだけしか必要ではない。プログラム・メモリそれ自体は、三つの異なる手段を、即ち三つの定数表ＴＣ0、ＴＣ1、ＴＣ2を保存している。
【０１１５】
図７に戻ると、ＤＰＡ攻撃に対しての致命的な命令が含まれていないので、中間グループＧ２とＧ３においては対抗措置は必要ないことに注意されたい。従って、二つのシーケンスＳＥＱＡとＳＥＱＢを用いる対抗措置方法は、最初と最後のグループＧ１とＧ４に対してのみ適用することができる。グループＧ２とＧ３に対して第一シーケンスＳＥＱＡを系統的に適用すれば十分である。
【０１１６】
しかし、全てのグループに対抗措置方法を適用するということは、全体に一貫性を与えることになる。
【０１１７】
従って、Ｇ１からＧ４の各グループに対しては二つのシーケンスＳＥＱＡとＳＥＱＢを組み合わせることが望ましい。
【０１１８】
本発明による対抗措置方法の第二の実施態様が図１１に示されている。この第二の実施態様は実際には第一のものの変形である。この変形の利点はシーケンスＳＥＱＢにおける他の手段として、第二手段ＴＣ2しか使わないことである。実際に見たところでは、様々な手段ＴＣ0、ＴＣ1、ＴＣ2は実際にそれぞれ八つの基本定数表を含む定数表に対応しており、これがプログラム・メモリの無視できないスペースを占めている。
【０１１９】
従って、この変形は、シーケンスＳＥＱＢにおいて第二手段ＴＣ2のみから成る。その為、各グループの最初と最後のサイクルの計算プログラムにおいて追加演算ＣＰが準備されており、第二手段に適用される入力データの補数を取る。この追加演算ＣＰは、実際には論理値１との入力データの排他的論理和である。図１２は、第一グループＧ１のＴ１からＴ４までの四サイクルの第二シーケンスＳＥＱＢの詳細なフローチャートを示しているが、それは、サイクルＴ１とＴ４の演算ＳＢＯＸに入力する前に、データｂの補数を取ることに関する。第二手段ＴＣ2は入力の補数を取るので、補数演算ＣＰと第二手段ＴＣ2とを加えたものは、本発明の第一実施態様で用いられている第三手段ＴＣ1、つまり非補数入力データに等しくなる。
【０１２０】
しかし、この第二実施態様の対抗措置手段を実効性あらしめる為には、用いられる計算シーケンスが何であろうと、命令の数が厳密に同じでなければならない。実際、もし二つのシーケンスＳＥＱＡとＳＥＱＢとの間に何らかの違いがあり得るなら、その場合には、ＤＰＡ攻撃が実を結ぶ可能性がある。
【０１２１】
この理由から、そして、図１３に示されているように、第一シーケンスＳＥＱＡのサイクルＴ１とＴ４においては、恒等的複写演算ＩＤが準備されており、それは演算ＳＢＯＸの入力に論理値０で排他的論理和演算を行うことであって、追加演算ＣＰと同一の命令を適用しつつ、入力データを変更しないようにしている。
【０１２２】
このようにして、二つのシーケンスにおける命令の数が同じになっている。
【０１２３】
図１４は本発明による対抗措置方法の第三の実施態様を示している。
【０１２４】
この実施態様においては、最初の三サイクルＴ１、Ｔ２、Ｔ３のグループＧ１と、最後の三サイクルＴ１４、Ｔ１５、Ｔ１６を含む別のグループＧ４を形成する。各サイクルごとに第一手段ＴＣ0を用いる第一シーケンスＳＥＱＡと、少なくとも数サイクルごとに他の手段を用いる第二シーケンスを、各グループに組み合わせる。
【０１２５】
シーケンスＳＥＱＡとシーケンスＳＥＱＢのどちらを使っても、各グループＧ１、Ｇ４の出力で正しい出力結果Ｌ３、Ｒ３及びＬ１６、Ｒ１６が得られるのは変わらない。
【０１２６】
例に示されているところでは、他の手段は第三手段ＴＣ1であり、これは第一の実施態様と第四手段ＴＣ3との関連で既に見たものである。
【０１２７】
これらの第四手段ＴＣ3は、第一手段ＴＣ0との関係で、入力データＳを、入力データＥの補数／Ｅに対応させるものとして規定されている。対応する基本定数表ＴＣ3１は図１６に示されている。
【０１２８】
グループに含まれない他のサイクル、即ちサイクルＴ４からＴ１３については、第一手段ＴＣ0を適用する。
【０１２９】
従って、乱数ＲＮＤ１を抽出した後、この値を検証することにより、第一グループに適用するシーケンスの決定を行い、第一手段ＴＣ0でそれに続くサイクルを実行することで、計算されたパラメータＬ３、Ｒ３で出力を継続する。サイクルＴ１３の終わりに、乱数ＲＮＤ１により決定されたシーケンスをグループＧ４に適用する。得られたパラメータＬ１６、Ｒ１６は、暗号化されたメッセージＣを計算するのに役立つことになる。
【０１３０】
図１５は第二シーケンスＳＥＱＢの為の対応するフローチャートを詳しく示したものである。
【０１３１】
これらのサイクルの全てのクリティカル命令につき、補数データ（補数はデータの上のバーで記される）が得られることが、このフローチャート上にはっきりと示されている。そして第三のサイクルの出力データＬ３とＲ３は、補数を取ったものではない。アルゴリズムの通常の実行により第一手段ＴＣ0が適用されるサイクルＴ４に移って、アルゴリズムの実行を継続することができる。
【０１３２】
この図において見て取れるのは、第三のサイクルＴ３の演算ＳＢＯＸにおいて、演算ＳＢＯＸの出力に追加の補数演算ＣＰを準備して、第三手段ＴＣ1の代わりに第一手段ＴＣ0を使えるということである。このように解決しても同じ効果が得られる。
【０１３３】
その場合は、シーケンスＳＥＱＢにおけるこの追加の補数演算に、シーケンスＳＥＱＡにおけるの追加の恒等的複写演算ＩＤを対応させなければならない。
【０１３４】
図１７はこの変形を用いる実行フローチャートを示している。二つのグループＧ１とＧ４の第三のサイクルについて、第一シーケンスＳＥＱＡで用いられるのは第一手段ＴＣ0であり、その後に追加の複写演算ＩＤの出力が続いているが、これはＴ３（ＴＣ0，ＩＤ）と記載されている。第三サイクルについて、第二シーケンスＳＥＱＢで用いられるのは第一手段ＴＣ0であり、その後に追加の補数演算ＣＰの出力が続いているが、これはＴ３（ＴＣ0，ＣＰ）と記載されている。
【０１３５】
従って、第二実施態様と、第三実施態様のこの変形で示されているように、様々な手段の入力または出力で追加演算が用いられている。
【０１３６】
その場合、第二シーケンスにおける追加の補数演算ＣＰのそれぞれに、第一シーケンスＳＥＱＡにおける追加の恒等的複写演算ＩＤが対応する。
【０１３７】
本発明は、秘密鍵式暗号化アルゴリズムＤＥＳに応用される、それについては幾つもの応用例が記述されているが、それらの例に限定されるものではない。更に一般的には、十六サイクルでの秘密鍵式暗号化アルゴリズムに応用されるが、そのクリティカル命令は、最初の三サイクルか最後の三サイクルの中で存在している。
【０１３８】
秘密鍵式暗号化アルゴリズムＤＥＳにおいて本発明の対抗措置方法を利用する電子構成部品１は、典型的には、図１８に示されているように、マイクロプロセッサμＰ、プログラム・メモリ２と作業メモリ３を含んでいる。実際にはプログラム・メモリに記憶されている定数表である本発明の様々な手段ＴＣ0、ＴＣ1、ＴＣ2の使用を、制御できるようにする為に、０と１の間の乱数を生成する手段４が準備されており、図７及び１１のフローチャートに示されているように、ＤＥＳを実行する毎に、ＲＮＤ１の値を算出することになる。このような構成部品は、チップカード５に特に用いられ、カードの不可侵性を高めることができる。
【図面の簡単な説明】
【図１】  図１は、ＤＰＡ（ｔ）信号を示すものであり、該信号は、ＤＰＡ攻撃に従って秘密鍵Ｋの部分鍵を推定するのにつれて、得ることが出来る。
【図２】  図２は、ＤＰＡ（ｔ）信号を示すものであり、該信号は、ＤＰＡ攻撃に従って秘密鍵Ｋの部分鍵を推定するのにつれて、得ることが出来る。
【図３】  図３は、ＤＥＳアルゴリズムの最初の数サイクルと最後の数サイクルを示すフローチャートである。
【図４】  図４は、ＤＥＳアルゴリズムの最初の数サイクルと最後の数サイクルを示すフローチャートである。
【図５】  図５は、ＤＥＳアルゴリズムで用いられる演算ＳＢＯＸのブロック図である。
【図６】  図６は、演算ＳＢＯＸで用いられる入力と出力の基本定数表の一例を示す。
【図７】  図７は、本発明の対抗措置方法を用いてＤＥＳを実行するフローチャートの第一の例を示している。
【図８】  図８は、図７に示された第一の例の対抗措置方法の第二シーケンスによるＤＥＳの最初の数サイクルのフローチャートである。
【図９】  図９は、それぞれ本発明で用いられる第二と第三の基本定数表を示している。
【図１０】  図１０は、それぞれ本発明で用いられる第二と第三の基本定数表を示している。
【図１１】  図１１は、本発明の対抗措置方法を用いてＤＥＳを実行するフローチャートの第二の例を示している。
【図１２】・  図１２は、図１１に示された第二の例の対抗措置方法の、それぞれ第二シーケンスと第一シーケンスによるＤＥＳの最初の数サイクルのフローチャートである。
【図１３】  図１３は、図１１に示された第二の例の対抗措置方法の、それぞれ第二シーケンスと第一シーケンスによるＤＥＳの最初の数サイクルのフローチャートである。
【図１４】  図１４は、本発明の対抗措置方法の第三の応用態様に関するフローチャートである。
【図１５】  図１５は、本発明の対抗措置方法の第三の応用態様に関するフローチャートである。
【図１６】  図１６は、本発明によるこの第四の応用態様で使用される、第三の基本定数表を示している。
【図１７】  図１７は、本発明の対抗措置方法の第三の応用態様の変形によるＤＥＳ実行のフローチャートである。
【図１８】  図１８は、本発明による対抗措置方法を利用する電子構成部品を備えたチップカードの簡略化したブロック図を示す。
【図１】
0003650333.tif 000002
【図２】
0003650333.tif 000003
【図３】
0003650333.tif 000004
【図４】
0003650333.tif 000005
【図５】
0003650333.tif 000006
【図６】
0003650333.tif 000007
【図９】
0003650333.tif 000008
【図１０】
0003650333.tif 000009
【図１６】
0003650333.tif 000010
【図１８】
0003650333.tif 000011
【図７】
0003650333.tif 000012
【図８】
0003650333.tif 000013
【図１１】
0003650333.tif 000014
【図１２】
0003650333.tif 000015
【図１３】
0003650333.tif 000016
【図１４】
0003650333.tif 000017
【図１５】
0003650333.tif 000018
【図１７】
0003650333.tif 000019