(57)【特許請求の範囲】
【請求項１】
秘密鍵（Ｋ）式暗号化アルゴリズムを利用する電子構成部品内での消費電力差分解析による攻撃への対抗措置方法であり、そのアルゴリズムの利用には、入力データ（Ｅ）から出力データ（Ｓ）を算出する為のデジタル処理の第一手段（ＴＣ０）を使うことが含まれており、前記出力データ及び／またはこの出力データの派生データが、前記攻撃に対して致命的となる前記アルゴリズムの命令によって処理される、対抗措置方法であって、前記第一手段とデジタル処理の他の手段（ＴＣ１）を使用するように準備され、
該他の手段は、前記第一手段の入力データ及び／または前記第一手段の出力データの補数を取ることにより前記第一手段から得られ、出力データ及び前記派生データが予測不可能になり、
前記第一手段及び前記他の手段は定数表であり、
前記アルゴリズムが十六サイクルの計算（Ｔ１，．．，Ｔ１６）の利用を含んでいる対抗措置方法であって、少なくとも最初の三サイクル（Ｔ１，Ｔ２，Ｔ３）からそれぞれ形成された第一シーケンス（ＳＥＱＡ）と第二シーケンス（ＳＥＱＢ）の実行を含んでおり、
前記第一シーケンス及び前記第二シーケンスの実行の順序に関しては、前記第一シーケンスの実行が前記第二シーケンスの実行の後に続く確率が５０％であり、一方、前記第二シーケンスの実行が前記第一シーケンスの実行の後に続く確率が５０％であり、
これら二つのシーケンス内の各サイクルにおいては、前記手段（ＴＣ０，ＴＣ１）のうちから選択された、ただ一つの手段が用いられ、
第一シーケンス（ＳＥＱＡ）は各サイクル毎に第一手段（ＴＣ０）を用いており、第二シーケンス（ＳＥＱＢ）は少なくとも最初のサイクル（Ｔ１）で他の手段（ＴＣ１）を用いることを特徴とする、対抗措置方法。
【請求項２】
第一及び第二シーケンスは、それぞれ最初の三サイクル（Ｔ１，Ｔ２，Ｔ３）で形成されていることを特徴とする、請求項１に記載の対抗措置方法。
【請求項３】
他の手段は第二手段（ＴＣ１）から成り、同一の入力データ（Ｅ）については、第一手段（ＴＣ０）の出力データ（Ｓ）の補数（／Ｓ）を出力するものであることを特徴とする、請求項１または２に記載の対抗措置方法。
【請求項４】
秘密鍵（Ｋ）式暗号化アルゴリズムを利用する電子構成部品内での消費電力差分解析による攻撃への対抗措置方法であり、そのアルゴリズムの利用には、入力データ（Ｅ）から出力データ（Ｓ）を算出する為のデジタル処理の第一手段（ＴＣ０）を使うことが含まれており、前記出力データ及び／またはこの出力データの派生データが、前記攻撃に対して致命的となる前記アルゴリズムの命令によって処理される、対抗措置方法であって、前記第一手段とデジタル処理の他の手段（ＴＣ１，ＴＣ２）を使用するように準備され、
該他の手段は、前記第一手段の入力データ及び／または前記第一手段の出力データの補数を取ることにより前記第一手段から得られ、出力データ及び前記派生データが予測不可能になり、
前記第一手段及び前記他の手段は定数表であり、
前記アルゴリズムが、十六サイクルの計算（Ｔ１，．．，Ｔ１６）の利用を含んでいる対抗措置方法であって、少なくとも最後の三サイクル（Ｔ１４，Ｔ１５，Ｔ１６）からそれぞれ形成された第一シーケンス（ＳＥＱＡ’）と第二シーケンス（ＳＥＱＢ’）の実行を含んでおり、
前記第一シーケンス及び前記第二シーケンスの実行の順序に関しては、前記第一シーケンスの実行が前記第二シーケンスの実行の後に続く確率が５０％であり、一方、前記第二シーケンスの実行が前記第一シーケンスの実行の後に続く確率が５０％であり、
第一シーケンス（ＳＥＱＡ’）は各サイクルごとに第一手段（ＴＣ０）を用いており、第二シーケンス（ＳＥＱＢ’）は他の手段（ＴＣ１，ＴＣ２）を用いていることを特徴とする、対抗措置方法。
【請求項５】
第一及び第二シーケンスは、それぞれ最後の三サイクルで形成されており、第二シーケンスで用いられる他の手段は、第二手段（ＴＣ１）と第三手段（ＴＣ２）を含んでいることを特徴とする、請求項４に記載の対抗措置方法。
【請求項６】
第二手段（ＴＣ１）は、同一の入力データ（Ｅ）について、第一手段（ＴＣ０）の出力データ（Ｓ）の補数（／Ｓ）を出力するものであり、これらの第二手段は、第十四のサイクル（Ｔ１４）について第二シーケンス（ＳＥＱＢ’）で用いられることを特徴とする、請求項４または５に記載の対抗措置方法。
【請求項７】
第三手段（ＴＣ２）は、入力データ（Ｅ）の補数をとるようなものであり、第一手段（ＴＣ０）の出力データ（Ｓ）の補数（／Ｓ）を出力し、第十五及び第十六のサイクル（Ｔ１５，Ｔ１６）について第二シーケンスで用いられることを特徴とする、請求項６に記載の対抗措置方法。
【請求項８】
ＤＥＳタイプの秘密鍵（Ｋ）式暗号化アルゴリズムを使用する、マイクロプロセッサと、プログラム・メモリと、作業メモリとを含む電子構成部品であり、
入力データ（Ｅ）から出力データ（Ｓ）を算出するためのデジタル処理の第一手段（ＴＣ０）が設けられ、
前記出力データ及び／またはこの出力データからの派生データは、消費電力差分解析による攻撃に対して致命的な前記アルゴリズムの命令によって処理される電子構成部品であって、
該電子構成部品は、請求項１から請求項３のいずれか一つに記載の前記攻撃に対する対抗措置方法を実装する実装手段を備え、
該実装手段はデジタル処理の他の手段（ＴＣ１）を備え、
前記第一手段（ＴＣ０）及び前記他の手段（ＴＣ１）は、より具体的には、前記プログラム・メモリに保存されており、
該他の手段は、前記第一手段の入力データ及び／または前記第一手段の出力データの補数を取ることにより前記第一手段から得られ、出力データ及び前記派生データが予測不可能になり、
前記第一手段（ＴＣ０）及び前記他の手段（ＴＣ１）は定数表であり、
第一シーケンスの実行が第二シーケンスの実行の後に続く確率が５０％であり、一方、第二シーケンスの実行が第一シーケンスの実行の後に続く確率が５０％であり、
前記他の手段（ＴＣ１）は前記電子構成部品における前記プログラム・メモリの前記第一手段に据えつけられ、
前記第一手段（ＴＣ０）及び前記他の手段（ＴＣ１）の使用を制御するために、０または１の乱数（ＲＮＤ１）の生成手段を含んでいることを特徴とする、電子構成部品。
【請求項９】
ＤＥＳタイプの秘密鍵（Ｋ）式暗号化アルゴリズムを使用する、マイクロプロセッサと、プログラム・メモリと、作業メモリとを含む電子構成部品であり、
入力データ（Ｅ）から出力データ（Ｓ）を算出するためのデジタル処理の第一手段（ＴＣ０）が設けられ、
前記出力データ及び／またはこの出力データからの派生データは、消費電力差分解析による攻撃に対して致命的な前記アルゴリズムの命令によって処理される電子構成部品であって、
該電子構成部品は、請求項４から請求項７のいずれか一つに記載の前記攻撃に対する対抗措置方法を実装する実装手段を備え、
該実装手段はデジタル処理の他の手段（ＴＣ１，ＴＣ２）を備え、
前記第一手段（ＴＣ０）及び前記他の手段（ＴＣ１，ＴＣ２）は、より具体的には、前記プログラム・メモリに保存されており、
該他の手段は、前記第一手段の入力データ及び／または前記第一手段の出力データの補数を取ることにより前記第一手段から得られ、出力データ及び前記派生データが予測不可能になり、
前記第一手段（ＴＣ０）及び前記他の手段（ＴＣ１，ＴＣ２）は定数表であり、
第一シーケンスの実行が第二シーケンスの実行の後に続く確率が５０％であり、一方、第二シーケンスの実行が第一シーケンスの実行の後に続く確率が５０％であり、
前記他の手段（ＴＣ１，ＴＣ２）は前記電子構成部品における前記プログラム・メモリの前記第一手段に据えつけられ、
前記第一手段（ＴＣ０）及び前記他の手段（ＴＣ１，ＴＣ２）の使用を制御するために、０または１の乱数（ＲＮＤ１）の生成手段を含んでいることを特徴とする、電子構成部品。
【請求項１０】
ＤＥＳタイプの秘密鍵（Ｋ）式暗号化アルゴリズムを実装する為の、請求項８又は９に記載の電子構成部品を備えたチップカード。
【発明の詳細な説明】
【０００１】
本発明は、秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法に関するものである。サービスやデータへのアクセスが厳正に管理されるアプリケーションで用いられる。そのアーキテクチャは、マイクロプロセッサやメモリの周辺で形成されるものであり、該メモリの一つのプログラム・メモリは秘密鍵を保存している。
【０００２】
このようなあるアプリケーションについて、これらの構成部品は、チップカード内で特に用いられる。例えば、あるデータ・バンクにアクセスするアプリケーション、銀行業務アプリケーション、遠隔式通行料金徴収アプリケーション、また例えば、テレビ用、ガソリン供給や自動車道路の通行料金徴収所を通過する為のものなどである。
【０００３】
従って、これらの構成部品やこれらのカードは、秘密鍵式アルゴリズムを利用するものであり、その中でも最もよく知られているのがＤＥＳアルゴリズム（英語文献のＤａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄの略語）である。秘密鍵式暗号化アルゴリズムには他にもＲＣ５アルゴリズムやＣＯＭＰ１２８アルゴリズムがある。言うまでもなく、ここに挙げたもので全てが網羅されているわけではない。
【０００４】
一般的かつ簡潔に述べると、これらのアルゴリズムが果たす機能は、ホスト・システム（サーバー、銀行の現金自動支払い機…）とカード内に収納された秘密鍵とで（カードに）入力されたメッセージから、暗号化されたメッセージを計算することと、この暗号化されたメッセージをホスト・システムに返すことであり、例えばホスト・システムは、構成部品またはカードを認証したり、データを交換したりすることができるようになる。
【０００５】
ところで、これらの構成部品やこれらのカードは、消費電力の差分を解析することから成る攻撃に対しては弱く、悪意ある第三者が、秘密鍵を発見できることになる。これらの攻撃をＤＰＡ攻撃と言い、Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ（電力差分解析）という英語の略語である。
【０００６】
これらのＤＰＡ攻撃の原理は、マイクロプロセッサが命令を実行する際の消費電力は、処理されるデータにより変化するという事実に基づいている。
【０００７】
特に１ビットデータを処理するマイクロプロセッサの一つの命令は、このビットの値が「１」か「０」かによって、波形の異なる二種類の電流を発生させる。典型的には、その命令が「０」を処理するなら、消費される電流の第一の振幅がこの実行時点に現れ、その命令が「１」を処理するなら、第一とは異なる第二の振幅が現れることになる。
【０００８】
実行される計算や、用いられるパラメータなど、暗号化アルゴリズムの特徴は既に知られたものである。唯一知られていないのは、プログラム・メモリに保存された秘密鍵である。これは、入力されたメッセージと、返された暗号化されたメッセージを知っているだけでは、演繹不可能である。
【０００９】
しかしながら、暗号化アルゴリズムでは、計算される幾つかのデータは、カードに平文で入力されたメッセージと、カードに保存されている秘密鍵とだけに依存している。そのアルゴリズムで計算される他のデータもまた暗号化されたメッセージ（一般的にはカードからホスト・システムに向かって平文で出力される）と、カードに保存されている秘密鍵とだけから再計算することが可能である。さらに詳しく言うと、これらの特定データの各ビットは、入力又は出力メッセージと、鍵の限定された数の特定ビットとに基づいて、決定することができる。
【００１０】
従って、特定データの各ビットは、その鍵の、ある特定ビットが集まって形成された部分鍵に対応している。
【００１１】
予想可能なこれらの特定データのビットを、以後、標的ビットと呼ぶことにする。
【００１２】
従って、ＤＰＡ攻撃の基本的な考え方は、まず、命令が「１」を処理するのか「０」を処理するのかにより消費電力の波形が異なるというその差分と、既知の入力又は出力メッセージ及び対応する部分鍵の推定からそのアルゴリズムの命令によって標的ビットを計算することができるというその可能性とを、利用することなのである。
【００１３】
従って、ＤＰＡ攻撃の原理は、与えられた部分鍵の推定を検証することであり、電流の多数の測定曲線に、つまりそれぞれが攻撃者の知っている入力メッセージに関する曲線に、選択のブール関数を、つまり部分鍵の推定の関数であって一つの標的ビットの予測値により各曲線毎に規定される関数を、当てはめることである。
【００１４】
当該部分鍵を推定することにより、与えられた入力又は出力メッセージについて、この標的ビットが取る値は「０」なのか「１」なのかを予測することが実際に可能になる。
【００１５】
その際に、標的ビットによる予測値「０」又は「１」を、選択のブール関数として、対象となる部分鍵を推定する為に当てはめ、これらの曲線を二つのパケットに選別する。その第一パケットは、部分鍵の推定に従って、「０」で標的ビットを処理した曲線を再グループ化したものであり、第二パケットは、「１」で標的ビットを処理した曲線を再グループ化したものである。各パケットごとに消費電力の平均を取ることで、第一パケットの平均消費曲線Ｍ０（ｔ）と、第二パケットの平均消費曲線Ｍ１（ｔ）とが得られる。
【００１６】
部分鍵の推定が当たっていれば、第一パケットは、「０」で標的ビットを処理したＮ本の曲線のなかから全ての曲線が実際に再グループ化されていることになり、第二パケットは、「１」で標的ビットを処理したＮ本の曲線のなかから全ての曲線が実際に再グループ化されていることになる。その場合、第一パケットの平均消費曲線Ｍ０（ｔ）は、クリティカル命令を実行する瞬間は除いて、「０」で標的ビットを処理する際に特徴のある消費電力の波形（波形０）を伴う平均消費を、どの場所でも示すことになる。換言すれば、常に「０」という値をもった標的ビットは別として、全曲線について、処理される全ビットが「１」という値をもつ可能性も「０」という値をもつ可能性も同じ確率で与えられている。これは以下の式で表現することができる。
Ｍ０（ｔ）＝〔（波形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の入力データｄと出力データの一方または両方に、補数を取ったデータを対応させるような定数表である。
【００８３】
従って、図７及び８は、本発明の対抗措置方法のＤＥＳアルゴリズムへの応用態様を示している。
【００８４】
図７はアルゴリズムの初めを示している。本発明の対抗措置方法によって変更を受けない演算とデータには、既に述べた図３におけるのと同じ表記になっている。
【００８５】
ＤＥＳアルゴリズムの初めには、最初のサイクルＴ１の演算ＳＢＯＸに第二定数表ＴＣ1が準備されている。この第二定数表ＴＣ1の作用を受けた全データは、それら数字の上に、′や￣の記号が付けられている。ＤＥＳの開始のクリティカル命令によって、対抗措置方法の作用を受ける全データが、処理されるのが見て取れる。
【００８６】
第一定数表が実は八つの第一定数表から形成されており、第二定数表もまた八つの第二定数表から形成されていることに注目されたい。
【００８７】
図示された実施例において、第一定数表ＴＣ0と第二定数表ＴＣ1は、同一の入力データＥについて、第一のものから算出される出力データＳの補数／Ｓを、第二のものが出力するという定数表である。
【００８８】
図９はそのような第二基本表ＴＣ1１を示しており、図６に示された第一基本表ＴＣ0１に対して補数が取られた出力を与えるものである。
【００８９】
このような第二定数表ＴＣ1を用いることで、最初のサイクルＴ１の演算ＳＢＯＸの出力として、第一定数表ＴＣ0を用いて得られるデータａの補数／ａが得られる。同様に、最初のサイクルＴ１で得られるのは、補数データ／ｇであり、第二のサイクルＴ２で得られるのは、補数データ／ｈ，／Ｌ２，／ｌ及び／ｂである。
【００９０】
出力データを算出する為に、二分の一の確率の統計法則に従って第一表又は第二表を使うことにより、クリティカル命令により処理されるＤＥＳの初めで可能性のある全標的ビットは、「１」の値と「０」の値とを同じ確率で取る。
【００９１】
ＤＥＳアルゴリズムの終わりでは、本発明の対抗措置方法の実施態様には幾つもの第一定数表を使う必要があり、というのも、このＤＥＳの最後のクリティカル命令で処理される全データを予測不可能にする為には、第十四のサイクルＴ１４で計算された出力データａと、第十六のサイクルＴ１６で計算された出力データａとを同時に考慮に入れなければならないからである。
【００９２】
このＤＥＳアルゴニズムの最後に応用される対抗措置方法の実施例は、図８に示されている。
【００９３】
二つの定数表ＴＣ1とＴＣ2を使うように準備されている。
【００９４】
第十四のサイクルＴ１４の演算ＳＢＯＸにおいて、ＤＥＳの初めで既に使用された第二定数表ＴＣ1が用いられる。
【００９５】
そして、第三定数表ＴＣ2は、第十五及び第十六のサイクルの演算ＳＢＯＸにおいて用いられる。
【００９６】
この第三定数表ＴＣ2は、第一定数表ＴＣ0の入力データＥの補数／Ｅに、出力データＳの補数／Ｓを算出する表である。第一基本定数表ＴＣ0から導き出される、対応する第三基本定数表ＴＣ2１の一例は、図１０に示されている。
【００９７】
そのような定数表を用いることで、全てのクリティカル命令は補数データを処理することが、図８に示されている。
【００９８】
本発明は、これらの定数表ＴＣ1とＴＣ2などの例にのみ限定されるものではない。他の可能性も考えられる。例えば、ＤＥＳの最後に適用される対抗措置方法について、定数表ＴＣ1を、第一定数表ＴＣ0との関係で規定されたもう一つの定数表と組み合わせて使用することで、入力データの補数／Ｅに対して出力データＳを算出することも可能である。
【００９９】
一般的には、ＤＥＳの終わりには、対象となるサイクルに応じて、様々な定数表を使う必要があり、このＤＥＳの終了のクリティカル命令で処理される全データが予測不可能になるようにする為である。
【０１００】
しかしながら、図７及び８との関連で述べられた実施態様には不都合な点がある。ＤＥＳの入力に適用される対抗措置方法は、計算された中間結果Ｌ３’とＲ３’とを生成するが、該結果は正解ではないのである。従って、その後に続く全中間結果もまた正解ではない。
【０１０１】
同様に、ＤＥＳの終わりで、ＤＥＳの入力に適用される対抗措置方法は、計算された中間結果Ｌ１６’とＲ１６’とを生成するが、該結果は正解ではない。
【０１０２】
全ての場合において、暗号化されたメッセージは誤りである。
【０１０３】
従って、本発明のこの実施態様において、一旦クリティカル命令が出されると、毎回、正しい中間結果を有するアルゴリズム列を再開できるように、準備されなければならない。
【０１０４】
実際には、既にみたように、ＤＥＳの開始のクリティカル命令は最初の三サイクルにあるので、これらの最初の三サイクルを二倍することにする。換言すれば、少なくとも最初の三サイクルＴ１、Ｔ２、Ｔ３をそれぞれ含む二つのシーケンスを実行するように準備する。第一シーケンスＳＥＱＡは、各サイクル毎に、第一定数表ＴＣ0を用いている。もう一つのシーケンスＳＥＱＢは、少なくとも最初のサイクルＴ１において、第二定数表ＴＣ1を用いる。図示された例では、続く二サイクルＴ２及びＴ３において、第一定数表が使われている。
【０１０５】
既に見たように、本発明の対抗措置方法において、様々な手段の使用は、つまり例示されたところでの様々な定数表の使用は、二分の一の確率の統計法則によって制御されている。その場合、この二分の一の確率の統計法則は、これらの様々な手段の使用の順序に、つまり例示されたところでは、二つのシーケンスＳＥＱＡとＳＥＱＢの実行の順序に、特に適用される。
【０１０６】
同様に、ＤＥＳの終わりで正しいパラメータＬ１６及びＲ１６を得て、暗号化されたメッセージＣを作成する為には、ＤＥＳの終了のクリティカル命令を含む三サイクルＴ１４、Ｔ１５及びＴ１６も二倍する（図７）。従って、少なくとも最後の三サイクルＴ１４、Ｔ１５及びＴ１６を含む二つのシーケンスを実行することになる。第一シーケンスＳＥＱＡ’には、各サイクル毎に、第一定数表ＴＣ0が用いられる。もう一つのシーケンスＳＥＱＢ’には、他の定数表ＴＣ1及びＴＣ2が用いられる。前述したように、その場合、二分の一の確率の統計法則は、これら二つのシーケンスＳＥＱＡ’とＳＥＱＢ’の実行の順序に適用される。
【０１０７】
その場合、クリティカル命令は、各シーケンスに一度ずつ、二回実行される。しかしながら、それらのシーケンスのどちらのクリティカル命令を実行する時であろうとも、一つのデータを処理する可能性は、その補数を処理する可能性と等しくなる。
【０１０８】
従って、電子構成部品で利用されるＤＥＳの計算プログラムは、本発明による抗措置方法を包含するように変更されなければならない。図１１に示されているのは、本発明に適合した実行フローチャートの例であり、図７及び８との関連で述べられた実施態様によってＤＥＳの初めと終わりで対抗措置方法を利用するものである。この例において、シーケンスＳＥＱＡ及びＳＥＱＢには最初の三サイクルが含まれており、シーケンスＳＥＱＡ’及びＳＥＱＢ’には最後の三サイクルが含まれている。
【０１０９】
その場合、計算プログラムは、特に計算の初めに、ＤＡＴＡ ＩＮ  及び  ＫＥＹと記された入力パラメータをバックアップすることから成り、実際には、ＣＯＮＴＥＸＴ０と記された一時メモリ領域内でのパラメータＬ０、Ｒ０及びｒに対応している。
【０１１０】
次に、この計算プログラムに従って、第一ループ・カウンタＦＲを０にセットし、０または１に等しい値ＲＮＤ１を無作為抽出する。
【０１１１】
例において、もしＲＮＤ１が１に等しいならば、まず、Ｔ１、Ｔ２、Ｔ３のシーケンスＳＥＱＢを実行し、該シーケンスにおいて、サイクルＴ１には第二定数表ＴＣ1を、サイクルＴ２とＴ３には第一定数表ＴＣ0を用いる。ＣＯＮＴＥＸＴ２と記された一時メモリ領域内で、出力パラメータＬ３’、Ｒ３’ （誤った値を有する）をバックアップする。
【０１１２】
もしＦＲが１に等しくないならば、それを１にセットし、ＣＯＮＴＥＸＴ０の入力パラメータを復活（アンドゥ）させてＲＮＤ１の値の補数をとる。例において、ＲＮＤ１＝０が得られる。その場合には、三サイクルＴ１、Ｔ２及びＴ３で第一定数表が使われるＴ１、Ｔ２、Ｔ３のもう一つのシーケンスＳＥＱＡを実行することになる。ＣＯＮＴＥＸＴ１と記された一時メモリ領域内で、出力パラメータ（正しい値）をバックアップする。
【０１１３】
もしＦＲが１であるならば、二つのシーケンスが実行されたということである。その場合には、ＣＯＮＴＥＸＴ１復活をさせ、次のサイクル（Ｔ４）で、正しい値を有する中間結果Ｌ３、Ｒ３を算出する。
【０１１４】
もしＲＮＤ１の値がゼロであるならば、Ｔ１（ＴＣ0）、Ｔ２（ＴＣ0）、Ｔ３（ＴＣ0）から始めて、Ｔ１（ＴＣ1）、Ｔ２（ＴＣ0）、Ｔ３（ＴＣ0）で終わる。
【０１１５】
サイクルＴ１３の終わりにたどり着いて、このサイクルで算出されたパラメータＬ１３、Ｒ１３を一時メモリ領域ＣＯＮＴＥＸＴ０でバックアップし、最初のサイクルに類似した方法で、残りのサイクルＴ１４、Ｔ１５及びＴ１６について処理する。
【０１１６】
いずれの場合においても、計算の道筋がどうあろうと、命令の数は厳密に同一にしなければならない。特にこの理由から、前述の応用例においては、一時メモリ領域ＣＯＮＴＥＸＴ２において、誤った値（Ｌ３’，Ｒ３’またはＬ１６’，Ｒ１６’）もバックアップするように準備されている。
【０１１７】
実際、もし二つの可能な道筋との間で何らかの違いがあるなら、その場合には、ＤＰＡ攻撃が実を結ぶ可能性がでてくる。
【０１１８】
本発明による対抗措置方法は、ＤＥＳアルゴリズムに関して記述された実施例に特に限定されるものではない。全ての秘密鍵式暗号化アルゴリズムに応用される。一般的には、入力データから出力データを算出する為の第一手段の使用を含むアルゴリズムであって、出力データ及び／または派生データがクリティカル命令によって処理されるようなアルゴリズムを、完全に利用する為に、本発明の対抗措置方法に他の手段を用いることを含み、出力データ及び派生データが予測不可能になるようにする。
【０１１９】
様々な手段、つまり、第一手段と他の手段の使用は、二分の一の確率の統計法則によって制御されている。
【０１２０】
他の手段には幾つもの異なった手段が含まれていてもよい。それらは、第一手段の入力及び出力データのどちらか一方に、補数データを対応させるものである。
【０１２１】
更に詳細に記述されたＤＥＳへの対抗措置方法の応用態様例では、第一手段は、第一定数表ＴＣ0に存する。ＤＥＳの初めでは、他の手段は、第二定数表ＴＣ1に存する。例において、ＤＥＳの終わりでは、二つの異なった定数表ＴＣ1及びＴＣ2に存する。
【０１２２】
従って、本発明の対抗措置方法を所定の秘密鍵式暗号化アルゴリズムに適用する為には、まず、このアルゴリズムの予測可能な全データと、これらのデータあるいは派生データとを処理する、ＤＰＡ攻撃に対して致命的な命令の全てを確定しなければならない。次に、クリティカル命令によって処理される全データが予測不可能になるように、アルゴリズムにおいて、本発明の意味での第一手段と他の手段を識別しなければならない。ＤＥＳアルゴリズムについては、第一手段は定数表ＴＣ0である。例において、他の手段は他の定数表である。これらの手段は、他のアルゴリズムについての様々な演算であってもよい。同一のアルゴリズムについて、これらの手段は、識別されたクリティカル命令による様々な演算に存することができる。
【０１２３】
秘密鍵式暗号化アルゴリズムで本発明の対抗措置方法を利用する電子構成部品１は、典型的には、図１２に示されているように、マイクロプロセッサμＰ、プログラム・メモリ２と作業メモリ３を含んでいる。前述の例においては、プログラム・メモリに記憶されている様々な定数表である、本発明の様々な手段の使用を制御できるようにする為に、０と１との間の乱数を生成する手段４が準備されており、図１１に示されているように、ＤＥＳを実行する毎に、ＲＮＤ１の値を算出することになる。このような構成部品はチップカードＣＰに特に用いられ、カードの不可侵性を高めることができる。
【図面の簡単な説明】
【図１】  図１は、ＤＰＡ（ｔ）信号を示すものである。
【図２】  図２は、ＤＰＡ（ｔ）信号を示すものである。
【図３】  図３は、ＤＥＳアルゴリズムの初めの数サイクルと終わりの数サイクルの計算の実行フローチャートである。
【図４】  図４は、ＤＥＳアルゴリズムの初めの数サイクルと終わりの数サイクルの計算の実行フローチャートである。
【図５】  図５は、ＤＥＳアルゴリズムで用いられる演算ＳＢＯＸのブロック図である。
【図６】  図６は、演算ＳＢＯＸで用いられる入力と出力の基本定数表の一例を示す。
【図７】  図７は、本発明の対抗措置方法の第一の実施態様によるＤＥＳアルゴリズムの初めの数サイクルと終わりの数サイクルの計算の実行フローチャートの一例を示している。
【図８】  図８は、本発明の対抗措置方法の第一の実施態様によるＤＥＳアルゴリズムの初めの数サイクルと終わりの数サイクルの計算の実行フローチャートの一例を示している。
【図９】  図９は、それぞれ本発明で用いられる第二と第三の基本定数表を示している。
【図１０】  図１０は、それぞれ本発明で用いられる第二と第三の基本定数表を示している。
【図１１】  図１１は、本発明の対抗措置方法の実施態様によるＤＥＳ実行の一般的フローチャートを示している。
【図１２】  図１２は、本発明の対抗措置方法を利用する電子構成部品を備えたチップカードの簡略化したブロック図を示す。
【図１】
0004195199.tif 000002
【図２】
0004195199.tif 000003
【図３】
0004195199.tif 000004
【図４】
0004195199.tif 000005
【図５】
0004195199.tif 000006
【図６】
0004195199.tif 000007
【図７】
0004195199.tif 000008
【図８】
0004195199.tif 000009
【図９】
0004195199.tif 000010
【図１０】
0004195199.tif 000011
【図１１】
0004195199.tif 000012
【図１２】
0004195199.tif 000013