(57)【要約】移動通信システムに用いられる移動携帯端末は、加入者に関するデータを格納するＳＩＭカードを含んでいる。セキュリティのために、ＳＩＭカードは、秘密の数値を用いて、秘密の暗号化計算を実行する。予め計算された、固定されたランダム化スケジュールを用いて計算をスケジューリングすることにより、装置の外部で観測可能なパラメータが、前記秘密情報の特定の部分、ビット、記号あるいは値に関連付けられることがないようにして、秘密の情報は、外部の観察から隠蔽される。
2004519132.tif 000002
【特許請求の範囲】
【請求項１】
秘密の数値を用いて秘密の暗号化計算を実行するための計算機装置において、外部の観測から秘密情報を隠蔽する方法であって、
予め計算された、固定されたランダム化スケジュールを用いて、装置の外部で観測可能なパラメータが、前記秘密情報の特定の部分、ビット、記号あるいは値に関連付けられることがないように、前記計算をスケジューリングするステップを含む、方法。
【請求項２】
請求項１記載の方法において、前記計算をスケジューリングするステップは、関連した秘密の数値を用いた計算の途中で前記秘密の数値の一つに関連したスケジュールに応じて、ダミーの計算を挿入するステップを含む、方法。
【請求項３】
請求項２記載の方法において、スケジュールは、秘密の数値の長さと同一の長さを有し、秘密の数値がバイナリ０を有する場所の選択番号にバイナリ１を有するバイナリワード形式のランダム化インジケータを用いる、方法。
【請求項４】
請求項２記載の方法において、前記ダミーの計算は、電源電流の変動と前記秘密情報との間の任意の相関を隠蔽するように、装置による電源消費電流の変動のパタンに影響を及ぼす、方法。
【請求項５】
請求項１記載の方法において、前記外部から観測可能なパラメータは、電源電流の変動を含む、方法。
【請求項６】
請求項１記載の方法において、前記外部から観測可能なパラメータは、前記計算の結果を出力するタイミングの変動を含む、方法。
【請求項７】
請求項１記載の方法において、前記秘密の暗号化計算は、長整数を大きな秘密の指数でべき乗するステップを含む、方法。
【請求項８】
請求項７記載の方法において、長整数を大きな秘密の指数でべき乗するステップは、前記長整数を逐次二乗を求め所定の係数を法として減じるステップを含む、方法。
【請求項９】
請求項８記載の方法において、逐次二乗は、固定長のグループで実行され、それらの結果は一時的に格納される、方法。
【請求項１０】
請求項９記載の方法は、さらに、選択された格納された結果が前記装置の外部から決定されることがないように、前記秘密の係数の一つの対応するビットがバイナリ１かバイナリ０であるかに応じて、前記格納された結果のあるものを乗法的に累算することを選択するステップを含む、方法。
【請求項１１】
請求項１記載の方法は、さらに、計算労力を削減するように、前記計算をスケジューリングするステップを含む、方法。
【請求項１２】
請求項１１記載の方法において、前記計算は、長整数を大きな秘密の指数でべき乗するステップを含む、方法。
【請求項１３】
請求項１２記載の方法において、前記大きな秘密の指数は、第一の装置を最初に動作させることに応じて生成され、内部で格納され、装置の外部へは流出されない、方法。
【請求項１４】
請求項１２記載の方法において、前記秘密の指数は、まばらな整数の積と残余の和に分解され、前記まばらな整数と前記残余のバイナリ表記における１の全数が最小となるようにした、方法。
【請求項１５】
請求項１３記載の方法は、さらに、前記秘密の指数に関連して生成するステップと、前記秘密の指数を用いて計算の途中に挿入されるダミーの計算についての予め計算された擬似ランダムなスケジュールに関連して格納するステップとを含む、方法。
【請求項１６】
請求項１５記載の方法において、ダミーの計算の前記スケジュールは、一つの特定のバイナリビット極性に等しい前記指数のビットの一部に関連したダミーの乗算を含む、方法。
【請求項１７】
入力／出力インターフェースと、
秘密情報を格納するメモリと、
操作可能なように入力／出力インターフェースとメモリに接続されたプロセッサであって、該プロセッサは、予め計算された、固定されたランダム化スケジュールを用いて、装置の外部で観測可能なパラメータが、前記秘密情報の特定の部分、ビット、記号あるいは値に関連付けられることがないように、前記計算をスケジューリングすることにより、秘密の数値を用いて秘密の暗号化計算を行い、外部の観測から秘密情報を隠蔽するようにプログラミングされた、改ざん防止計算装置。
【請求項１８】
請求項１７記載の装置において、前記プロセッサは、関連した秘密の数値を用いた計算の途中で前記秘密の数値の一つに関連した、予め計算された固定のランダム化されたスケジュールに応じて、ダミーの計算を挿入することにより、前記計算をスケジューリングする、装置。
【請求項１９】
請求項１８記載の装置において、プロセッサは、秘密の数値の長さと同一の長さを有し、秘密の数値がバイナリ０を有する場所の選択番号にバイナリ１を有するバイナリワード形式のランダム化インジケータを用いる、装置。
【請求項２０】
請求項１８記載の装置において、前記ダミーの計算は、電源電流の変動と前記秘密情報との間の任意の相関を隠蔽するように、装置による電源消費電流の変動のパタンに影響を及ぼす、装置。
【請求項２１】
請求項１７記載の装置において、前記外部から観測可能なパラメータは、電源電流の変動を含む、装置。
【請求項２２】
請求項１７記載の装置において、前記外部から観測可能なパラメータは、前記計算の結果を出力するタイミングの変動を含む、装置。
【請求項２３】
請求項１７記載の装置において、前記秘密の暗号化計算は、長整数を大きな秘密の指数でべき乗するステップを含む、装置。
【請求項２４】
請求項２３記載の装置において、長整数を大きな秘密の指数でべき乗するステップは、前記長整数を逐次二乗を求め所定の係数を法として減じるステップを含む、装置。
【請求項２５】
請求項２４記載の装置において、逐次二乗は、固定長のグループで実行され、それらの結果は一時的に格納される、装置。
【請求項２６】
請求項２５記載の装置において、前記プロセッサは、選択された格納された結果が前記装置の外部から決定されることがないように、前記秘密の係数の一つの対応するビットがバイナリ１かバイナリ０であるかに応じて、前記格納された結果の中のあるものを乗法的に累算することを選択する、装置。
【請求項２７】
請求項１７記載の装置は、さらに、計算労力を削減するように、前記計算をスケジューリングするステップを含む、装置。
【請求項２８】
請求項２７記載の装置において、前記計算は、長整数を大きな秘密の指数でべき乗するステップを含む、装置。
【請求項２９】
請求項２８記載の装置において、前記大きな秘密の指数は、第一の装置を最初に動作させることに応じて生成され、内部で格納され、装置の外部へは流出されない、装置。
【請求項３０】
請求項２８記載の装置において、前記秘密の指数は、まばらな整数の積と残余の和に分解され、前記まばらな整数と前記残余をバイナリ表記における１の全数が最小となるようにした、装置。
【請求項３１】
請求項２９記載の装置において、前記プロセッサは、前記秘密の指数に関連して生成し、前記秘密の指数を用いて計算の途中に挿入されるダミーの計算についての予め計算された擬似ランダムなスケジュールに関連して格納する、装置。
【請求項３２】
請求項３１記載の装置において、ダミーの計算の前記スケジュールは、一つの特定のバイナリビット極性に等しい前記指数のビットの一部に関連したダミーの乗算を含む、装置。
【請求項３３】
請求項１７記載の装置において、装置はスマートカードを含む、装置。
【請求項３４】
移動通信システムで用いられる携帯端末であって、
移動通信システム中で通信するための送信機および受信機と、
送信機と受信機の動作を制御するためのコントローラと、
脱着可能かつ機能的にプロセッサと接続可能であり、入力／出力インターフェースと、秘密情報を格納したメモリと、入力／出力インターフェースとメモリに機能的にプロセッサと接続されたプロセッサとを含む改ざん防止装置とを含む携帯端末であって、
該プロセッサは、予め計算された、固定されたランダム化スケジュールを用いて、装置の外部で観測可能なパラメータが、前記秘密情報の特定の部分、ビット、記号あるいは値に関連付けられることがないように、前記計算をスケジューリングすることにより、秘密の数値を用いて秘密の暗号化計算を行い、外部の観測から秘密情報を隠蔽するようにプログラミングされた、携帯端末。
【請求項３５】
請求項３４記載の携帯端末において、前記プロセッサは、関連した秘密の数値を用いた計算の途中で前記秘密の数値の一つに関連した、予め計算された固定のランダム化されたスケジュールに応じて、ダミーの計算を挿入することにより、前記計算をスケジューリングする、携帯端末。
【請求項３６】
請求項３５記載の携帯端末において、プロセッサは、秘密の数値の長さと同一の長さを有し、秘密の数値がバイナリ０を有する場所の選択番号にバイナリ１を有するバイナリワード形式のランダム化インジケータを用いる、携帯端末。
【請求項３７】
請求項３５記載の携帯端末において、前記ダミーの計算は、電源電流の変動と前記秘密情報との間の任意の相関を隠蔽するように、装置による電源消費電流の変動のパタンに影響を及ぼす、携帯端末。
【請求項３８】
請求項３４記載の携帯端末において、前記秘密の暗号化計算は、長整数を大きな秘密の指数でべき乗するステップを含む、携帯端末。
【請求項３９】
請求項３８記載の携帯端末において、長整数を大きな秘密の指数でべき乗するステップは、前記長整数を逐次二乗を求め所定の係数を法として減じるステップを含む、携帯端末。
【請求項４０】
請求項３９記載の携帯端末において、逐次二乗は、固定長のグループで実行され、それらの結果は一時的に格納される、携帯端末。
【請求項４１】
請求項４０記載の携帯端末において、前記プロセッサは、選択された格納された結果が前記装置の外部から決定されることがないように、前記秘密の係数の一つの対応するビットがバイナリ１かバイナリ０であるかに応じて、前記格納された結果の中のあるものを乗法的に累算することを選択する、携帯端末。
【請求項４２】
請求項３４記載の携帯端末は、さらに、計算労力を削減するように、前記計算をスケジューリングするステップを含む、携帯端末。
【請求項４３】
請求項４２記載の携帯端末において、前記計算は、長整数を大きな秘密の指数でべき乗するステップを含む、携帯端末。
【請求項４４】
請求項４３記載の携帯端末において、前記大きな秘密の指数は、第一の装置を最初に動作させることに応じて生成され、内部で格納され、装置の外部へは流出されない、携帯端末。
【請求項４５】
請求項４３記載の携帯端末において、前記秘密の指数は、まばらな整数の積と残余の和に分解され、前記まばらな整数と前記残余をバイナリ表記における１の全数が最小となるようにした、携帯端末。
【請求項４６】
請求項４４記載の携帯端末において、前記プロセッサは、前記秘密の指数に関連して生成し、前記秘密の指数を用いて計算の途中に挿入されるダミーの計算についての予め計算された擬似ランダムなスケジュールに関連して格納する、携帯端末。
【請求項４７】
請求項４６記載の携帯端末において、ダミーの計算の前記スケジュールは、一つの特定のバイナリビット極性に等しい前記指数のビットの一部に関連したダミーの乗算を含む、携帯端末。
【請求項４８】
請求項３４記載の携帯端末において、装置はスマートカードを含む、携帯端末。
【請求項４９】
請求項３４記載の携帯端末において、装置は加入者識別モジュールを含む、携帯端末。
【請求項５０】
請求項３４記載の携帯端末において、前記秘密の数値は個人暗号化鍵を含む、携帯端末。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、改ざん防止チップでの公開／個人鍵の暗号化の実装に関する。
【０００２】
デジタル移動電話の欧州統一規格（ＧＳＭ）などの無線携帯通信システムは、脱着可能な加入者識別モジュール（ＳＩＭ）、または“スマートカード”と称されるモジュールを用いている。ＳＩＭは、ＧＳＭシステムでの国際携帯加入者識別子となるＩＭＳＩ値などの、加入者に関する様々なデータを格納している。ＳＩＭは、通常は、ＩＭＳＩを含むようにあらかじめプログラムに組み込まれている。従って、携帯通信システムの利用者は、通常、供給されるＳＩＭを購入する。携帯端末自身は、加入者を識別する情報を含むものではない。一方、移動局は、ＳＩＭを挿入しない限り、単なる入れ物となるだけである。ＳＩＭは、一つの携帯端末から取り出して、別の新たな携帯端末に挿入することができる。これにより、新たな携帯端末を直ちに利用することができる。また、これにより、ＳＩＭは、そこに格納されたデータへの攻撃にさらされることになる。従って、公開／個人鍵を暗号化するなどのセキュリティー対策によって、格納されたデータを保護することができる。
【０００３】
公開／個人鍵の暗号化方式は、次の関係に基づいている。
2004519132.tif 000003
ここで、係数Ｎは、２つの秘密の素数Ｐ１とＰ２の積であり、Ｚは、Ｍ（Ｐ１−１）（Ｐ２−１）＋１に等しく、Ｍは任意の値である。
【０００４】
Ｚは、個人鍵Ｋｐｒｉｖと公開鍵Ｐｐｕｂの積に分解される。Ｍとして様々な値を選ぶことにより、これらの値の複数の組み合わせが求まる。Ｋｐｕｂは、公開され、他の第三者によってメッセージを送るために用いられるが、これは、Ｋｐｒｉｖを用いる受信者によってのみ解読される。
【０００５】
既知のＲＳＡアルゴリズムは、一度にビットブロックを暗号化し、これらは、二進数Ｘとした場合、所定の係数Ｎよりも小さい算術値をもつ必要がある。暗号化は、ＸをＫｐｕｂ乗し、Ｎを法として減じることにより行われる。暗号解読は、同様に、Ｋｐｒｉｖを用いてＸを再現する。この操作は、必ず、Ｎより小さい結果を生むことになる。
【０００６】
公開／個人鍵は、メッセージが特定の第三者によって送られたことを証明するために、メッセージに署名をつけるためにも用いられる。そして、この第三者は、Ｋｐｒｉｖを用いてメッセージを暗号化し、他の第三者はＫｐｕｂを用いてこのメッセージを解読し、送信者の秘密の個人鍵Ｋｐｉｖを用いてメッセージが暗号化されていた場合にのみ、メッセージを読み取ることができる。
【０００７】
暗号化と署名の両方が求められる場合には、送信者の個人鍵Ｋｐｒｉｖ１と係数Ｎ１とを用いてメッセージは署名され、そして、受信者の公開鍵１５Ｋｐｕｂ２と係数Ｎ２とを用いて暗号化される。受信者は、同様に、Ｋｐｒｉｖ２とＫｐｕｂ１と、係数Ｎ１とＮ２とを逆に用いて同様に応答する。
【０００８】
両者の場合ともに、送信すべきメッセージへの署名、あるいは、受信されたメッセージの解読の間、安全が保証された、改ざんを防止する回路の外に、Ｋｐｒｉｖを放出したり漏らすことなく、大きな二進数のＫｐｒｉｖベキ乗計算を行うための計算処理回路が必要となる。
【０００９】
従来技術をより理解するための参考文献としては、ブルース・シュナイアーの著書“応用暗号法”（ジョン・ワイリー・アンド・サンズ刊、１９９４年）（非特許文献１）がある。本著書については、その全体をここでは参考文献として引用する。
【００１０】
２０４８ビット程の大きな数のベキ乗を計算してビット長として膨大なものになるような計算を避け、それを他の大きな数を法として減じるための、二つの主要なアルゴリズムが知られている。
【００１１】
もし、べき乗数ＫｐｒｉｖがビットストリングＢｎ，Ｂｎ−１…Ｂ３，Ｂ２，１，Ｂ１であるならば、Ｘのべき乗は、
2004519132.tif 000004
などとなる。
【００１２】
このように、逐次二乗Ｘ、Ｘ２、（Ｘ２）２が得られるが、これらは、Ｚアキュムレータと掛け合わされ、あるいは、対応するビットが１か０かに依存しないものとなる。従って、Ｚを得るために掛け合わす必要のある数は、非現実的な２２０４８ではなく２０４８のオーダとなる。この逐次二乗アルゴリズムは、計算の扱いやすさの面で有効である。
【００１３】
元のワード長を２０４８から４０９６ビットに増加させるための、各々の掛け算やべき乗の後、Ｎを法として結果を減じることにより、ワード長は再び２０４８ビットに戻される。これには、結果がＮよりも小さくなるまで、Ｎを複数回引き算する必要がある。引き算すべきＮの複数の計算回数は、２の２０４８乗あるいは１０６００のオーダであり、これは、明確に、逐次の引き算の可能性を減じるものである。一方、係数（Ｎ）はしばらく固定しているため、その逆数の近似値は、バイナリポイント以降に続くゼロを無視すると、計算により２０４８上位ビットとなり、これが（近似値として）１／Ｎとして格納される。そして、各々、４０９６ビット長のＺの値は、Ｎを法として減じられ、引き算すべき回数Ｎの近似値は、格納された逆数の近似値とＺとの単純な積として、Ｔ＝Ｚ×（１／Ｎ）より求められる。さらに、ＴとＮの積をＺから引き、求めるべき結果のＮ倍あるいは２Ｎ倍に収まる値となる。この減算は、残余がＮ未満の負でない値になるまで、Ｚから一度あるいは二度Ｎを引くことにより行われる。このように、この係数減算アルゴリズムは、１０６００回の逐次減算に代えて、約２回の長い掛け算と二回の引き算を必要とするものであり、このような計算法を可能とする上で有効である。
【００１４】
他の計算量削減アルゴリズムは、二乗操作は、二つの異なる値の掛け算よりも高速に処理されるという事実をうまく利用するものであり、同一の部分積が二回必要となる場合に、一度で計算するものと同様である。
【００１５】
これらのアルゴリズムを適用する際の、共通の計算パターンは、以下のようなものになる。
１．ＺアキュームレータにＸをロードする（Ｋｐｒｉｖが奇数ならば、Ｂ１＝１とし、そうでなければＺ＝１とする）
２．Ｘを二乗し、Ｎを法として減じる
３．もしＢ２＝１ならば、Ｚアキュームレータに、新しいＸの値を掛け合わせ、Ｎを法としてＺを減じる。
４．ステップ３で、Ｂ３、Ｂ４、Ｂ５等を用い、終了するまでステップ２からを繰り返す。
【００１６】
上記で、処理ループの一回の反復の期間は、ステップ３での条件に従った掛け算が行われるかどうかに依存する。従って、回路の外で観測される電力消費の様子を計測することにより、その反復が短いものなのか長いものなのかを判定することにより、Ｂ２、Ｂ３、Ｂ４の各値が１あるいは０なのかが判定でき、これをもって、秘密の値Ｐｒｉｖを決定する。暗号化システムの従来例では、不注意による秘密情報の漏洩は、暗号化機器をテストする際の基準を政府機関が検証する際の略語にちなんで“ＴＥＭＰＥＳＴ”漏洩と呼ばれている。この問題は、暗号化システムの従来例では、回路の動作状況によらず同一の電力消費を維持するような、例えば、シャントレギュレータを用いた、特別な“ＲＥＤ”電源を導入することにより解決を図ってきた。しかし、従来例においては、装置の内部に物理的にアクセスするような脅威は想定していなかったため、ＲＥＤ電源は、分離したものとなっていて、暗号化チップとは統合されたものにはなっていなかった。しかし、もし暗号化回路が、携帯端末に挿入されるＳＩＭのような、取り外し可能なカード上にある場合には、いつかは、悪意をもった者が、ＳＩＭ回路にアクセスする恐れがある。
【００１７】
従って、ＴＥＭＰＥＳＴ漏洩によって、不注意にも出力を外部に漏らしてしまうことがないような、大きな数を大きな数でべき乗計算する回路および方法が求められている。
【００１８】
ＰＣＴ公開公報ＷＯ９９／６３６９６（特許文献１）では、乱数発生器あるいは雑音源を導入して、出力消費パタンが秘密情報と明らかな相関をもたないように、計算のタイミングをランダム化することが記載されている。本ＰＣＴ出願を、参考文献として引用する。しかし、複数の観測により、ゼロを加えたものや小さなランダムな遅延に対応した異なる出力消費パタンの間での最短の遅延を求めることができるため、本技術は、完全には効果的なものとはいえない。従って、内部の計算の特徴から秘密の情報が読み取られる心配のない、新しい方法が求められている。
【００１９】
（発明の要約）
予め計算された一定のランダム度をもつスケジュールを用いて、計算をスケジューリングすることにより、外部から観測可能な装置のパラメータが、秘密情報の特定の部分、ビット、記号あるいは値に対応づけられることがないようにし、秘密の情報を外部からの観測から隠蔽する方法を用いて、秘密の数値により秘密の暗号化計算を実行する計算機装置によって、上記の要求は満たされる。
【００２０】
（発明の詳細な説明）
図１に、携帯端末１０をブロック図形式で示す。本発明の図示した実施例によると、形態端末１０は、ＧＰＲＳ−１３６ＨＳ携帯端末から構成される。この種の携帯端末１０は、時分割多元接続（ＴＤＭＡ）移動通信システムネットワークで用いられるものである。携帯端末１０は、ＳＩＭカードあるいはスマートカードとしても知られている加入者識別モジュール（ＳＩＭ）１２を含んでいる。ＳＩＭカード１２は、通常、一意の加入者情報を含む、デジタル移動電話の欧州統一規格（ＧＳＭ）システムで用いられるＳＩＭカードと類似のものである。本発明では、ＳＩＭカード１２を含む携帯端末での、公開／個人鍵暗号化に用いられる秘密の被乗数を隠蔽するための方法が開示されている。本方法は、ＴＤＭＡシステムに用いられる携帯端末に関連して説明するものであるが、本発明の方法は、ＩＳ９５又はユニバーサル・モバイル・テレホン・システム（ＵＭＴＳ）などの符号分割多元接続（ＣＤＭＡ）を含む、他の種類の形態通信システムにも適用することができる。
【００２１】
携帯端末１０は、それ自身と移動通信システムネットワークとの間で空中を介してやりとりする無線信号を送信、受信するためのアンテナ１４を含んでいる。アンテナ１４は、このアンテナ１４を用いて送信、受信するための送信機／受信機１６に接続されている。特に、送信機／受信機１６は、無線信号を復調し、一つあるいはそれ以上の数のチャネルにデマルチプレックス、逆符号化する受信機を含んでいる。これらのチャネルには、音声あるいはデータの制御チャネルと輸送チャネルとを含んでいる。音声あるいはデータは、スピーカーなどの、入出力回路１８の出力装置に送られる。受信機は、制御チャネルからのメッセージをプロセッサ２０に送る。プロセッサ２０は、携帯端末１０が移動通信システムネットワーク内で動作できるように、メモリ２２とＳＩＭカード１２に格納されたプログラムとデータを用い、制御チャネルからのメッセージに応じて、携帯端末１０の機能を制御しその動作を統括する。また、プロセッサ２０は、入出力回路１８からの入力信号に応じて、移動局１０の動作を制御する。この入力へは、既知の、ユーザの入力装置としてのキーパッドやそれに類する装置と、ユーザ情報を表示するためのディスプレーを用いる。また、送信機／受信機１６は、アナログ電気信号をディジタルデータに変換し、そのデータを誤り検出訂正情報によって符号化し、このデータをプロセッサ２０からの制御メッセージによって多重化する送信機を含んでいる。この複合データは、従来の方法で、変調され、アンテナ１４を介して無線信号として送信される。本発明によれば、メモリ２２は、特定の移動通信システムネットワークの利用者に関する固有の情報に加え、携帯端末１０の能力に関するデータを格納している。
【００２２】
以下、携帯端末に関して、本発明を説明する。ここでは、“携帯端末”という用語は、複数行の表示を持つあるいは持たない、以下の移動通信無線電話を含むものとする。移動通信無線電話をデータ処理、ファクシミリ、データ通信機能と組み合わせたパーソナル通信システム（ＰＣＳ）、無線電話、ポケベル、インターネット／イントラネット接続、Ｗｅｂブラウザ、個人情報管理、カレンダーならびにグローバル・ポジショニング・システム（ＧＰＳ）受信機を含むＰＤＡ、および、従来のラップトップならびにパームトップ受信機あるいは、無線電話受信機を含む他の電子装置である。また、携帯端末は、“どこでも利用できる計算機”装置とも称される。
【００２３】
ＳＩＭカード１２は、加入者に関する情報を格納している。本発明によれば、ＳＩＭカード１２は、極めて大きな数を法とした離散的なべき乗を行うための改ざん防止装置として構成されている。図２では、ＳＩＭカード１２は、制御プロセッサ２４、暗号化計算を加速するための乗算器２６、およびメモリ２８を含むものとなっており、格納された秘密情報、特に、べき指数としてよく用いられる個人鍵を取り出す不法行為によりその内部接点が探られないように、（図示せず）上部のメタライゼーション層で覆われている。プロセッサ２４は、図１に示した携帯端末プロセッサ２０との動作接点として、入力／出力インターフェース端子３０に接続されている。コネクタ３０によって、加入者データをＳＩＭカード１２に格納し、そのデータをプロセッサ２４と２０との間で転送することができる。大きな数でべき乗するためのべき乗数として、個人鍵を用いる際には、この大きな数は、逐次、二乗され、個人鍵の対応するビットが１に等しい場合、あるいはそのビットが０でない場合に、そのべき乗のいずれかの結果は、アキュームレータの中身と掛け合わされる。従来例では、改ざん防止チップの外部で観測される電力供給電流パタンは、アキュームレータとの掛け算が行われているかいないかを外部に漏らすものとなり、これにより、個人／秘密鍵のビットを明かすことになってしまう。従って、可能な限り、計算の最中のチップの電流消費が概ね一定を保ち、計算値に依存しないようにするため、チップには、シャントレギュレータ３２を備えることが好ましい。そうしないと、電磁界の変化など、外部で観測される僅かな変化によって、内部の動作状態が外に漏れる恐れがある。
【００２４】
特に、ＳＩＭカード１２は、改ざん防止を施した計算装置を含んでいる。接点３０は、入力／出力インターフェースを含んでいる。メモリ２８は、例えば、加入者に関するデータの形式で、秘密情報を格納している。プロセッサ２４は、秘密の暗号化計算を行うためにプログラムされている。これらの計算は、個人鍵などの秘密の数値を用いて、あらかじめ計算された固定のランダム化されたスケジュールを用いて、暗号化処理のスケジュールを定めることにより、外部から観測可能となるパラメータが、秘密情報の特定の部分や、ビット、記号あるいは値と関連付けられることがないようにして、外部からの観測から格納された秘密情報を隠すようになっている。
【００２５】
一実施例では、本発明は、少数の見せかけの乗算処理を実行するプロセッサ２４と暗号化乗算器２６を含んでおり、アキュームレータを用いた乗算処理が正常終了しなかった場合には、その処理結果は、“廃棄バスケット”に送られるか、あるいは、少なくとも、アキュームレータ中の古い値を置き換えないものとなっている。例えば、鍵が、７５０個の１と７５０個の０からなる１５００ビット長の数値である場合には、０となっているところに２５個の見せかけの乗算をランダムに挿入すると、処理時間は３％長くなる。しかし、個人鍵を抽出しようとすると、７５０個の乗算の中のどの２５個が見せかけであるのかを決定することとなり、このためには、７５０Ｃ２５という膨大な数の組み合わせとなる事実上不可能な試みが必要となる。
【００２６】
他の実施例では、法による削減を伴う逐次二乗処理を、例えば、８回など、少ない回数行い、その処理結果を８箇所のメモリ位置に格納する。そして、個人鍵の第一ビットを用いて、バイトの対応するビット位置が１になっているかどうかを判定し、８つの計算結果のどれをアキュームレータの内容と掛け合わせるかを決定する。各値を掛け合わせた後、バイト中の対応するビットを０に設定し、次に、新しい逐次二乗処理を行い、８箇所のメモリに用いられた二乗結果を上書きする。もし、そのビットが０であり、二乗処理結果が用いられていない場合には、逐次二乗処理を行い、用いられていない二乗結果を上書きする。バイトの全てのビットが検定された時点で、個人鍵の次の最上位バイトを取り出し、上記の処理を続ける。このように、逐次二乗処理を組み合わせることにより、これらの二乗処理結果がアキュームレータと掛け合わされるのに用いられるかどうかによらず、予め計算された項目のどれが乗算に用いられたのかを決定することは難しい。
【００２７】
第三の実施例では、個人鍵Ｋｐｒｉｖが生成された際に、Ｋ１−Ｋ２＋Ｋ３＝Ｋｐｒｉｖとなるように、その値を３つの値Ｋ１、Ｋ２、Ｋ３に振り分け、各々がＫｐｒｉｖのワード長の半分になるようにし、さらに、Ｋ１、Ｋ２、Ｋ３を合わせた１の全ての数がＫｐｒｉｖの１の数よりも少なくなるように最適化する。Ｋｐｒｉｖでべき乗する際には、逐次二乗が以前のように形成され、Ｋ１とＫ３の各々のビットに応じて２つのアキュームレータに掛け合わされ、Ｚ１としてＫ１乗の値と、Ｚ３としてＫ３乗の値が得られる。さらに、Ｚ１の値は、Ｚ１を二乗することによりＫ２乗され、Ｋ２のビットが１あるいは０であるかにより（あるいは、よらず）逐次二乗を掛け合わせて、Ｚ２が得られる。最後に、Ｚ２とＺ３の積を求め、法で減じて所望の結果を得る。
【００２８】
上記の３つの方法を任意に組み合わせて、出力パタンと秘密情報の利用の間の相関をなくすことができる。
【００２９】
以上、公開鍵の暗号化計算の基本的なアルゴリズムとこれらの欠点について、説明した。暗号化回路の内部の動作を隠蔽するために、外部から観測可能な電流消費の変動を最小に保つための特別な“ＲＥＤ”電源を用いることが、従来例ではすでに知られている。この電源は、電源から一定電流を引き出す定電流源を含んでおり、その後段には、電流を接地にバイバスし、瞬時には電力消費がなされないように、シャント電圧レギュレータが接続されている。しかし、電流源は、定常的にピーク電流流出を供給する必要があるため、ＳＩＭカード上にあるような改ざん防止チップに有効なＲＥＤ電源を完全に統合することは困難であり、それができない場合には、実質的なキャパシタにより平滑化する必要がある。しかし、高速の論理回路により引き出されるピーク電流は、相当大きなものになる。このような電流源としてのアナログ装置や、シャントレギュレータおよび平滑化のためのキャパシタが論理回路と良好に統合できるようにするには制約があり、このため、本発明は、論理回路の内部の動作を隠蔽するための他の手段と方法を提供する。また、本発明は、装置からの出力信号の出力タイミングなど、外部から観測可能な回路の任意のパラメータを観測することにより、秘密の情報を推察することを防止しようとするものである。
【００３０】
秘密キーのビットを隠蔽するために、本発明の第一の実施例は、ＳＩＭカードプロセッサ２４に組み込まれた計算手順を修正し、以下のように、数パーセントの追加の乗算処理を挿入して秘密の被乗数を隠蔽する。
１．Ｂ１＝１または０に従って、Ｘ（または１）をＺアキュームレータと、ダミーアキュームレータＺ’にロードする。
２．Ｘを二乗し、Ｎを法として減じる。
３．（ａ）もし、Ｂ２＝１ならば、Ｘの新しい値を、Ｚアキュームレータの内容に掛け合わせ、Ｎを法としてＺを減じる、
（ｂ）もし、Ｂ２＝０でランダム化インジケータがセットされているならば、Ｘの新しい値を、Ｚ（またはＺ’）アキュームレータの内容に掛け合わせ、Ｎを法として減じるが、その結果は、ダミー位置Ｚ’に格納する。
４．ステップ２で、Ｂ３、Ｂ４，Ｂ５を逐次用い、ステップ２からの処理を終了するまで繰り返す。
【００３１】
ランダム化インジケータをセットした際に、短かったループ繰り返しは、Ｋｐｒｉｖのビットが０であることから、Ｋｐｒｉｖが１であるかのように同一の長さに伸びる。しかし、Ｋｐｒｉｖの対応するビットが１となるようなループ繰り返しは、常に長いものとなる。従って、ＰＣＴ特許ＷＯ９９／６３６９６のように、もし、ランダム化インジケータが、Ｋｐｒｉｖが使わている異なるタイミングで異なるものになる場合には、これらのループ繰り返しが、常に長いものであり、異なるタイミングで時々短くなるということを観測することにより、Ｋｐｒｉｖの値を引き出すことが可能となる。従って、本発明では、ランダム化インジケータのビットは常に同一となるようにし、好ましくは、一旦決定されると、Ｋｐｒｉｖが生成される時にはいつも同一となるようにする。従って、ランダム化インジケータは、Ｋｐｒｉｖと同じ長さのバイナリワードであり、概ねＫｐｒｉｖがゼロを有する場所の３０の中の一箇所に、バイナリ１を持つ。ランダム化ワードが、Ｋｐｒｉｖが１を持つが所でも１となるかどうかは分からないため、恐らく２０４８ビットのランダム化ワードは、概ね２０４８／３０を含み、あるいは概ね６４個のバイナリ１を含む必要がある。ランダム化ワードについては、Ｋｐｒｉｖが生成される際に、１に設定するランダム化ワードのビットアドレスを決定するために、０から２０４７の間の乱数を生成し、これを６４回繰り返して、ワード中の６４個の１に対して処理することにより、ランダム化ワードを生成することができる。ランダム化ワードは、Ｋｐｒｉｖとともに永久に格納され、Ｋｒａｎｄと呼ばれる。
【００３２】
以上の方法を用いる際には、どの繰り返しが長いものであるか、または短いものであるかを決定することが可能となるが、そのようにして検出したＫｐｒｉｖの値は、Ｋｐｒｉｖが０をもつ場所である約３２ビット位置に余分に１を持つＫｐｒｉｖ．ＯＲ．Ｋｒａｎｄに修正される。しかし、どの１が本物で、どの１が偽（ｆａｌｓｅ）なのかを判別することは不可能である。２３２通りの可能性を試すことについては問題はないが、７５０個のうちどの３２個が実際に０にすべきかを検定するには、Ｋｐｒｉｖ．ＯＲ．Ｋｒａｎｄの複合値の中には全部で７５０個の１があると想定される。さらに、偽の１の数がちょうど３２であるかどうかは、確実には分からないため、この不確実な値は、２０から６０の間にあると思われる。Ｋｒａｎｄの中で０になるほぼ全ての位置を観測することは可能であるが、Ｋｐｒｉｖの値には、きわめて多くの不確実性が残るものとなる。
【００３３】
電源電流の変動と内部の計算処理との関連性を断ち切ることによって、秘密の被乗数を隠蔽する第二の実施例について、以下説明する。Ｘの全ての逐次二乗を計算によって求めると、論理的には、それら全てを最初に計算しておき、その結果を４ギガビットメモリ中の２０４８の２０４８ビットメモリに格納することが可能となる。そして、１となるＫｒｉｖのビットを用いて、メモリの中から、掛け合わされるべき２０４８ビット値を選択する。アキュームレータの内容と掛け合わせる一つの値を選択し他の値と分別することは不可能であるという妥当な仮説によれば、選択される値の総数、すなわちＫｐｒｉｖ中に含まれる１の総数だけが分かるだけであり、それらのビット位置は未知のままである。Ｋｐｒｉｖ中で０として発生する電流パタンのタイミング中のわずかな違いを隠蔽するためには、Ｋｐｒｉｖの次のビットを検定するステップを、進行中の乗算手順の中に埋め込むことが有利となる。例えば、乗算処理を加速する独立したハードウェアを用いるならば、制御プロセッサは、Ｋｐｒｉｖの次の１の位置を特定し、直前の乗算処理を実行しながら、次の乗算のために４メガビットメモリ中の対応するアドレスを設定することが可能となる。
【００３４】
現状では、上記の方法について、４メガビットＲＡＭを要求することは高価なものになるが、以下のように、本方法を、Ｋｐｒｉｖのビットのサブグループに部分的に適用することが可能である。
１．Ｋｐｒｉｖは大抵の場合奇数であるため、常にＸとの乗算が必要となり、それを最初にＺアキュームレータにロードすることが可能である。
２．Ｘの８つの逐次二乗を計算し、８箇所の、０から７の番号を付与された、２０４８ビット位置に格納し、２０４８バイトのＲＡＭが占有される。
３．Ｋｐｒｉｖの第一バイト中で、次の最上位の１を特定し、８つのメモリ中の対応する一つの中の値が利用可能ならば、それをＺに掛け合わせる。そうでない場合には、ステップ４に進む。
４．新しいＸの逐次二乗を計算し、メモリ位置｜ｎ＋１｜ｇに格納する。
５．Ｋｐｒｉｖの続きのバイトからビットを用い、終了するまでステップ３からの処理を繰り返す。
【００３５】
Ｋｐｒｉｖがビットパタン、１１１００１０１００１０１０１１０１０１１１００１を有する場合についての、上記の計算手順の一例を示す。
【００３６】
Ｘの二乗を“ＳＱ”で表し、その計算結果を格納するメモリー位置をｊとすることを、ＳＱ―＞ｊと表し、さらに、格納位置ｉの値とＺアキュームレータの内容との乗算をＭＰＹ（ｉ）と表すと、以下の手順が得られる。
ＳＱ―＞０
ＳＱ―＞１
ＳＱ―＞２
ＳＱ―＞３
ＳＱ―＞４
ＳＱ―＞５
ＳＱ―＞６
ＳＱ―＞７
ＭＰＹ（２）  （Ｋｐｒｉｖの右から４ビット目の１に対応する）
ＳＱ―＞０    （この二乗は必要となるものではないが、上書きされるものとな
る）
ＭＰＹ（３）
ＳＱ―＞１
ＭＰＹ（４）
ＳＱ―＞２
ＭＰＹ（６）
ＳＱ―＞３
ＭＰＹ（０）  （Ｋｐｒｉｖの第二バイトのＬＳＢ位置の１である）
ＳＱ―＞４
ＭＰＹ（１）
ＳＱ―＞５
ＭＰＹ（３）
ＳＱ―＞６
ＭＰＹ（５）
ＳＱ―＞７
ＳＱ―＞０    （Ｋｐｒｉｖの次の１は、第三バイトのビット０であり、その二
乗はまだ計算されていない）
ＭＰＹ（０）
ＳＱ―＞１
ＳＱ―＞２    （Ｋｐｒｉｖの次の１は、ビット２であり、その二乗はまだ計算
されていない）
ＭＰＹ（２）
ＳＱ―＞３
ＳＱ―＞４
ＳＱ―＞５
ＭＰＹ（５）
ＳＱ―＞６
ＭＰＹ（６）
ＳＱ―＞７
ＭＰＹ（７）
【００３７】
二乗処理が、乗算処理とは異なるものとして、外部の回路で検出することが可能であると仮定すると、上記の手順からは、次の乗算の前の二重の二乗ステップにより８つの連続した乗算／二乗ステップが中断されることを観測することができる。これにより、メモリ番号０中の新しい値が必要となるが、これはまだ利用可能となっていないことが分かる。従って、Ｋｐｒｉｖの第三バイトのＬＳＢは１であることが検出可能となる。また、Ｋｐｒｉｖの最初の２バイトは、８つの１を含むが、それらの位置は未知のままである。不幸にも、次の二重の二乗処理によっても、Ｋｐｒｉｖの第三バイトのビット２は１であり、次の三重の二乗処理によっても、ビット５は１である。Ｋｐｒｉｖの最初の１６ビットについて、同一の隠蔽レベルを得るために、以下のように処理手順を変更する。
ＳＱ―＞０
ＳＱ―＞１
ＳＱ―＞２
ＳＱ―＞３
ＳＱ―＞４
ＳＱ―＞５
ＳＱ―＞６
ＳＱ―＞７
ＭＰＹ（２）  （Ｋｐｒｉｖの右から４ビット目の１に対応する）
ＳＱ―＞０    （この二乗は必要となるものではないが、上書きされるものとな
る）
ＭＰＹ（３）
ＳＱ―＞１
ＭＰＹ（４）
ＳＱ―＞２
ＭＰＹ（６）
ＳＱ―＞３
ＭＰＹ（０）  （Ｋｐｒｉｖの第二バイトのＬＳＢ位置の１である）
ＳＱ―＞４
ＭＰＹ（１）
ＳＱ―＞５
ＭＰＹ（３）
ＳＱ―＞６
ＭＰＹ（５）  この時点で、次の必要とされる二乗は計算されていない。これは
、８つのメモリ中のすべての値は処理され、上書きすることが可
能ということである。よって、８つの新しい逐次二乗が計算され
る。
ＳＱ―＞７
ＳＱ―＞０
ＳＱ―＞１
ＳＱ―＞２
ＳＱ―＞３
ＳＱ―＞４
ＳＱ―＞５
ＳＱ―＞６
ＭＰＹ（０）
ＳＱ―＞７
ＭＰＹ（２）
ＳＱ―＞０
ＭＰＹ（５）
ＳＱ―＞１
ＭＰＹ（６）
ＳＱ―＞２
ＭＰＹ（７）
ＳＱ―＞３  この時点で、次の必要とされる二乗は、しばらく先のものであり、
まだ計算されていない。従って、全ての記憶された二乗は処理され
、新しい８つのものを計算することができる。
ＳＱ―＞４
ＳＱ―＞５
ＳＱ―＞６
ＳＱ―＞７
ＳＱ―＞０
ＳＱ―＞１
ＳＱ―＞２
【００３８】
上記の処理手順によれば、ＭＰＹ（５）命令の後、ＭＰＹ（６）命令は、次に必要となる乗算ではなく、従って、Ｋｐｒｉｖの対応するビットは０であったものと推定される。しかし、次の５つのＭＰＹ命令、ＭＰＹ（０）、ＭＰＹ（２）、ＭＰＹ（５）、ＭＰＹ（６）、ＭＰＹ（７）に対応した、Ｋｐｒｉｖ中で推定される１の位置は、不明のままである。その理由は、そのシーケンスは、ＭＰＹ（１）、ＭＰＹ（２）、ＭＰＹ（３）、ＭＰＹ（５）、ＭＰＹ（７）あるいはＭＰＹ（０）、ＭＰＹ（１）、ＭＰＹ（４）、ＭＰＹ（５）、ＭＰＹ（６）あるいは任意のこのような組合せを含むからである。
【００３９】
従って、Ｋｐｒｉｖの２５６バイトを処理した後は、その値についての数値的な不確実性は、依然として残っており、それは大きなものである。
【００４０】
少数の偽の乗算を挿入することにより隠蔽する第一の方法は、上記の第二の方法と組み合わせることができることは明白である。偽の乗算を挿入するためには様々な変形も可能であり、連続する二乗操作の各組の一つを、“効率的な”二乗方法から、等しくない被乗算に適用可能な通常の長い乗算方法に置き換えることができる。これにより、二重の二乗操作ＳＱ  ＳＱは、ＭＰＹ  ＳＱあるいはＳＱ  ＭＰＹと区別できなくなる。第一あるいは第二のＳＱがそのように変換されたかどうかは、ランダムなものであるが、あらかじめ定められたものであり、連続した３つの操作の中心になるＳＱ操作は、常に、ＭＰＹに類似のものに変換される。
【００４１】
Ｋｐｒｉｖのビットは、長い間固定されたものであるため、上記のシーケンスは、予め定めておき、Ｋｐｒｉｖを最適に隠蔽するのに好適な命令シーケンスとして格納しておくことができる。Ｋｐｒｉｖは改ざん防止領域の外へは漏洩しないものとすることが望ましいため、３つのシーケンスを計算するプログラムは、同一のチップ上に格納するべきである。
【００４２】
第３の実施例では、Ｋｐｒｉｖによってべき乗する方法であって、その値を隠蔽することに役立つだけでなく、べき乗を行うために必要な労力を減じることが可能なものを提供するものである。
【００４３】
最初に、Ｋｐｒｉｖの因子を検索し、それらを除去することが有利となるが、それは、結果として、小さい素数によるべき乗を適用するにはほとんど労力を要しないからである。さらに、この問題は、迅速に発見することができる少なくとも小さい素数を除去した後で、Ｋｐｒｉｖの残りの値によってべき乗するものの一つに帰着する。２を含む発見された素数のすべてを除去した後に残る、Ｋｐｒｉｖの値は、もちろん、奇数である。
【００４４】
一例として、２０４８ビットの奇数のＫｐｒｉｖは、３つの１０２４ビットの値、Ｋ１、Ｋ２、Ｋ３に分解され、この３つの値は、Ｋ１・Ｋ２＋Ｋ３＝Ｋｐｒｉｖを満たすような無数の組合せをもち、これらのいくつかは、Ｋ１、Ｋ２、Ｋ３が他のものよりも少ない１を含む結果になる可能性もある。
【００４５】
１の全数が最小となるこの分割を選択することにより、Ｋｐｒｉｖによってべき乗するために必要な労力は、次式の関係で減らすことが可能となる。
Ｘｋｐｒｉｖ＝（ＸＫ１）Ｋ２・ＸＫ３
【００４６】
Ｋ１、Ｋ３およびＫ２によるべき乗の各々は、指数部に含まれる１の数に関した労力を必要とし、以って、もし、Ｋ１、Ｋ２およびＫ３の１の全数が、Ｋｐｒｉｖの１の数を下回るならば、全労力を削減することが可能となる。
【００４７】
他の分割、例えば、
Ｋ１・Ｋ２＋Ｋ３・Ｋ４＝Ｋｐｒｉｖ
に従うようなものも、用いることが可能である。
【００４８】
他の分割の選択肢には、Ｋｐｒｉｖを、まばらな整数の積Ｋ１・Ｋ２・Ｋ３…と残余Ｒとの和として表すステップと、ここで、Ｋｉは形式２ｉ＋１であり、次に、まず、最大の因子によってＸをべき乗し、同時にＲによってＺ１とＺ２を形成するステップと、さらに、より小さいＫ因子によってＺ１を逐次べき乗し、最終的なＺ１の値をＺ２と掛け合わせ、すなわち、
ＸＲ×（（（（（（ＸＫｎ）Ｋｎ−１）．．）．．）Ｋ２）Ｋ１
を計算するステップとを含んでいる。
後者に必要とされる労力は、Ｒでのバイナリ１の数と全てのＫ因子中のバイナリ１の数の総数との和に関連したものとなる。
【００４９】
Ｋｐｒｉｖが生成された時点では、上記の形式の様々な分割を検定し、Ｋｐｒｉｖによってべき乗するために最も効率的な分割を決定するためだけに、プログラムを一度実行するだけでよい。しかし、選択された最適な分割は、外部へは知られないため、上記で開示した他の保障措置と組合せて、実行されるべき乗に用いられる値を、外部の観測者からは隠蔽することが可能となる。本技術分野に精通した者であれば、上述した教示を用いて、内部の計算を隠蔽する、あるいは大きな数によるべき乗を加速する、もしくはこれらの両者のための、様々な変形を実装することができるが、添付したクレームに記載されたステップに従う限り、本発明の範囲と主旨を逸脱することはない。
【００５０】
本発明は、プログラム可能な装置のブロック図に基づいて説明してきた。ブロック図の各ブロックに対して記載した機能は、コンピュータプログラム命令によって実装することが可能であることは理解されよう。これらのプログラム命令は、機械命令を生成するプロセッサに与えられ、これらはプロセッサ上で実行され、ブロックに関連して記載された機能を実装するための手段を生み出すものとなる。コンピュータプログラム命令は、プロセッサにより実行され、一連の処理操作ステップがプロセッサにより実行されるようにして、コンピュータに組み込まれた方法を生み出し、プロセッサ上で実行する命令が、ブロック中で指定された機能を実装するためのステップを提供するようになる。従って、これらの命令とそれに付随した開示は、特定の機能を実行するための手段の組合せと、特定の機能を実行するためのステップの組合せをサポートするものとなっている。また、各ブロックとこれらのブロックの組合せは、特定の機能あるいはステップ、あるいは特定の目的のハードウェアおよびコンピュータ命令の組合せを実行する、特定の目的をもつハードウェアによって構成されたシステムにより実装することが可能であることは理解されよう。
【図面の簡単な説明】
【図１】
本発明の方法による暗号化計算を組み込んだＳＩＭを有する移動端末を示す一般的なブロック図である。
【図２】
図１のＳＩＭのブロック図である。
【図１】
2004519132.tif 000005
【図２】
2004519132.tif 000006
【国際公開パンフレット】
2004519132.tif 000007
2004519132.tif 000008
2004519132.tif 000009
2004519132.tif 000010
2004519132.tif 000011
2004519132.tif 000012
2004519132.tif 000013
2004519132.tif 000014
2004519132.tif 000015
2004519132.tif 000016
2004519132.tif 000017
2004519132.tif 000018
2004519132.tif 000019
2004519132.tif 000020
2004519132.tif 000021
2004519132.tif 000022
2004519132.tif 000023
2004519132.tif 000024
2004519132.tif 000025
2004519132.tif 000026
2004519132.tif 000027
2004519132.tif 000028
2004519132.tif 000029
2004519132.tif 000030
2004519132.tif 000031
2004519132.tif 000032
2004519132.tif 000033
2004519132.tif 000034
2004519132.tif 000035
2004519132.tif 000036
2004519132.tif 000037
2004519132.tif 000038
2004519132.tif 000039
2004519132.tif 000040
2004519132.tif 000041
2004519132.tif 000042
【国際公開パンフレット（コレクトバージョン）】
2004519132.tif 000043
2004519132.tif 000044
【国際調査報告】
2004519132.tif 000045
2004519132.tif 000046
2004519132.tif 000047