(57)【要約】暗号法用途のためにｎを法とする値ａの逆法値ｂを、スパイ行為に対抗して保護される態様で、計算するための方法において、補助値β及び補助法δが、値ａ，法ｎ及び少なくとも１つの掩蔽パラメータｒに少なくとも依存して決定され、補助逆法値β'が補助法δを法とする補助値βの逆法値として決定され、逆法値ｂが、補助逆法値β'，少なくとも１つの掩蔽パラメータｒ並びに補助値β及び／または補助法δに少なくとも依存して決定される。コンピュータプログラム製品及び携帯型データ記憶媒体は対応する特徴を有する。発明は、例えば携帯型データ記憶媒体上での暗号計算のような、セキュリティが肝要な用途に適する、スパイ行為に対抗して保全された、逆法計算のための方法を提供する。
2005532715.tif 000002
【特許請求の範囲】
【請求項１】
暗号法用途のためにｎを法とする値ａの逆法値ｂを、スパイ行為に対抗して保護される態様で、決定する方法において、
（ａ）  互いに素である補助値β及び補助法δを、前記補助値βが前記値ａと異なるような態様及び／または前記補助法δが前記法ｎと異なるような態様で、前記値ａ、前記法ｎ及び少なくとも１つの掩蔽パラメータｒに少なくとも依存して決定する工程（１０）、
（ｂ）  前記補助法δを法とする前記補助値βの逆法値として補助逆法値β'を決定する工程（２０）、及び
（ｃ）  以下の値、
−  前記補助逆法値β'，
−  前記少なくとも１つの掩蔽パラメータｒ，及び
−前記補助値β及び／または前記補助法δ
に少なくとも依存して前記逆法値ｂを決定する工程（２４）、
を有してなることを特徴とする方法。
【請求項２】
前記少なくとも１つの掩蔽パラメータｒがランダムに選ばれ、及び／または前記少なくとも１つの掩蔽パラメータｒの桁数が前記法ｎの桁数と同じであることを特徴とする請求項１に記載の方法。
【請求項３】
前記値ａまたは前記法ｎに前記掩蔽パラメータｒが乗じられ、よって、前記補助値β及び／または前記補助法δの計算にある程度の影響を及ぼす積が得られることを特徴とする請求項１または２に記載の方法。
【請求項４】
前記工程（ａ）における前記補助値β及び前記補助法δの決定がさらに、前記工程（ｃ）における前記逆法値ｂの決定に間接的に影響を及ぼすに過ぎない、少なくとも１つの補助パラメータｓに依存して行われることを特徴とする請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記少なくとも１つの補助パラメータｓがランダムに選ばれ、及び／または前記少なくとも１つの補助パラメータｓの桁数が前記値ａの桁数と同じであることを特徴とする請求項４に記載の方法。
【請求項６】
前記工程（ａ）において前記補助値β及び前記補助法δが、あらかじめ定められた値α及びγあるいは前記工程（ａ）で計算された値α及びγについて、式：ｒａ＝αｎ＋β及びｓｎ＝γａ＋δが満たされるような態様で、決定されることを特徴とする請求項４または５に記載の方法。
【請求項７】
前記逆法値ｂが、δ'＝（ββ'−１）/δとする式：ｂ＝β'ｒ＋δ'γ （ｍｏｄ ｎ）を評価することにより決定されることを特徴とする請求項８に記載の方法。
【請求項８】
前記工程（ａ）において前記補助値β及び前記補助法δが、あらかじめ定められた値α及びγあるいは前記工程（ａ）で計算された値α及びγについて、式：ｒａ＝αｎ＋δ及びｓｎ＝γａ＋βが満たされるような態様で、決定されることを特徴とする請求項４または５に記載の方法。
【請求項９】
前記逆法値ｂが、δ'＝（ββ'−１）/δとする式：ｂ＝−（δ'ｒ＋β'γ） （ｍｏｄ ｎ）を評価することにより決定されることを特徴とする請求項８に記載の方法。
【請求項１０】
前記補助値β及び／または前記補助法δが、それぞれの場合において、不等式：０≦β＜ｎ及び０≦δ＜ａの内の少なくとも１つが満たされるように、剰余による１回の除法計算により決定されることを特徴とする請求項６から９のいずれか１項に記載の方法。
【請求項１１】
前記暗号法用途がＲＳＡエンコード法またはＲＳＡ署名法におけるキー対の決定であることを特徴とする請求項１から１０のいずれか１項に記載の方法。
【請求項１２】
請求項１から１１のいずれか１項に記載の特徴をもつ方法をプロセッサに実行させるためのプログラム命令を有することを特徴とするコンピュータプログラム製品。
【請求項１３】
携帯型データ記憶媒体において、請求項１から１１のいずれかに記載の特徴をもつ方法を実行するための用意がなされている、特にスマートカードまたはＩＣモジュールであることを特徴とする携帯型データ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は全般的には暗号法の技術分野に関し、さらに詳しくは、暗号目的のために提供される逆法計算のための技法に関する。本発明は、特に、例えば、様々な構成形態のスマートカードとして、あるいはＩＣモジュールとして、構成することができる、携帯型データ記憶媒体における使用のために提供される。
【背景技術】
【０００２】
暗号法の分野においては、例えば、特許文献１に説明されるＲＳＡエンコードまたは署名方法に対する一対のキーの生成に、逆法計算のための方法が用いられる。ＲＳＡ法は、公開キー（ｅ，ｍ）及び秘密キーｄを用い、ｍは２つの大きな素数ｐ及びｑの積である。キー対を計算するため、値ｐ，ｑ及びｅが初めに確定される。次いで、（ｐ−１）（ｑ−１）を法とするｅの逆法値として秘密キーｄが計算される。これは、数ｄが式：１＝ｅｄ （ｍｏｄ （ｐ−１）（ｑ−１））を満たすことを意味する。計算において、秘密キーｄ及び法（ｐ−１）（ｑ−１）は秘密のままでなければならない。
【０００３】
一般に、与えられた２つの整数ａ及びｎに対し、ｎを法とするａの逆法値は、０≦ｂ＜ｎ及び１＝ａｂ （ｍｏｄ ｎ）を満たす数ｂとして定義される。この種の数ｂはａ及びｎが互いに素である場合に存在する。与えられたｎを法とする与えられた値ａの逆法値を計算するためのアルゴリズム自体は既知である。例えば、非特許文献１の３２５〜３２７ページに、拡張ユークリッドアルゴリズムが説明されている。２進数に関して特に有利である、拡張ユークリッドアルゴリズムの変形が、非特許文献１で、３３９ページの練習問題３５及び６０６ページの解答に関して３２１〜３２４ページに説明されている、スタイン（Stein）の方法である。
【０００４】
しかし、上述した２つの方法には、プログラムとしてのアルゴリズムの直接実施において、処理されるプログラムコード、したがって実行時間または電力消費のような物理パラメータも、入力データに大きく依存するという問題がある。したがって、電力消費曲線、プログラム実行時間またはその他の測定値の解析により、入力値ａ及びｎに関する結論を引き出すことができる。携帯型データ記憶媒体にかかわる攻撃に関する上記及びその他の機会の例が、非特許文献２に説明されている。例として上述した方法とは別の逆法計算のための方法においても、攻撃に関する同様の機会がおそらくあり得るであろう。
【０００５】
入力値ａまたはｎの内の少なくとも１つが秘密に保たれなければならない場合に、上述したような攻撃に関する機会はセキュリティリスクを生じさせる。例えば、ＲＳＡ法のためのキー対を生成する既述の例において、（ｐ−１）（ｑ−１）を法とするｅの逆法計算中に、攻撃者が、秘密に保たれるべき法（ｐ−１）（ｑ−１）を、または計算結果、すなわち秘密キーｄを直接に、探り出すであろう。
【０００６】
上記のセキュリティ問題は、逆法計算が携帯型データ記憶媒体、例えばスマートカード、またはＩＣモジュールのプロセッサにより実行される場合に、特に重大である。その第１の理由は、この種の携帯型データ記憶媒体はセキュリティが肝要である用途に対して、例えば、金銭取引、アクセス管理または法的拘束力のある文書の署名に関係して、用いられることが多いことである。第２に、携帯型データ記憶媒体は、方法が実行されている間一般に攻撃者の所有下にあり、よって、攻撃者は秘密の保たれるべき値を探り出すためのアクセス及び解析の全ての機会を有する。
【特許文献１】米国特許第４４０５８２９号明細書
【非特許文献１】Donald E. Knuth著，「コンピュータプログラミング技術（The Art of Computer Programming）」，第２版，第２巻，１９８１年，アディソン−ウエズレイ（Addison-Wesley）
【非特許文献２】Ｗ. Rankl及びW. Effing著，「ＩＣカードハンドブック（Handbuch der Chipkarten）」，第３版，１９９９年，ハンザー（Hanser），第８.２.４.１節（ｐ.４８２−４９９）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、本発明の課題は、スパイ行為に対抗して保全され、例えば携帯型データ記憶媒体上での暗号計算のような、セキュリティが肝要である用途に適する、逆法計算のための方法を提供することである。特に、本方法は、実行時間解析または電力消費解析による攻撃を可能な限り受け難くなっているべきである。
【課題を解決するための手段】
【０００８】
本発明にしたがえば、上記課題は、請求項１の特徴をもつ方法、請求項１２にしたがうコンピュータプログラム製品及び請求項１３にしたがう携帯型データ記憶媒体により、完全にまたはある程度は、解決される。従属請求項は本発明の好ましい構成を定める。
【０００９】
本発明は、入力データ（すなわち値ａ及び法ｎ）を逆法計算のための方法に直接与えるのではなく、初めに入力データを適切な方法で補助値β及び補助法δに変換するという、基本アイデアに基づく。ここで、変換に影響を与える少なくとも１つの掩蔽パラメータｒが、補助値β及び／または補助法δを知っていたとしても、秘密に保たれるべき入力データまたは秘密に保たれるべき入力データの一部に関する十分な情報が導出され得ないような方法で、例えば、ランダムまたは準ランダムに、あるいは別のいずれかの適する態様で、選ばれる。
【００１０】
次いで、補助値β及び補助法δから、それ自体は既知の逆法計算のための方法により、補助逆法値β'が決定される。この逆法計算法が初めに述べた攻撃に関する機会の内の１つでアクセス可能であるとしても、補助値β及び／または補助法δ及び／または補助逆法値β'を探り出すことは、これらが少なくともある程度は掩蔽された形態、すなわち、少なくとも１つの掩蔽パラメータｒに依存する形態で初期データを含むから、攻撃者にとって何の利益もない。
【００１１】
最後に、初期の変換が、補助逆法値β'に依存する逆法値ｂを計算することにより、実効的に逆転される。少なくとも１つの掩蔽パラメータｒ、並びに値β及びδの内の少なくとも１つ、及び、適切であれば、別の値も、この逆変換にある程度影響する。
【００１２】
本発明にしたがって提供される変換及び逆変換を用いることにより、秘密に保たれるべき値は、重要な計算セクションの前に、偽装または掩蔽される。この偽装または掩蔽は、所望の結果を得るため、スパイ行為によるリスクを冒して逆法計算後に再び逆変換される。この場合に考慮されるべき攻撃に関する機会に対抗して、掩蔽及び掩蔽解除のために役立つ計算が保全される。このようにして、方法全体はスパイ行為に対抗して保全され、重要な用途にも適する。掩蔽及び掩蔽解除のために役立つ計算にはある程度の負荷がさらに必要であるが、全体として見れば、これはいかなる特別な意義ももたない。
【００１３】
好ましい構成においては、補助値β及び補助法δのいずれもが、それぞれ、基礎の値ａ及び法ｎと異なるという意味で、掩蔽される。他方で、本発明の別の実施形態において、これらの値の内の１つに関してのみ掩蔽を実施する形態が提供される。したがって、補助値βが値ａと同じであるか、あるいは補助法δが法ｎと同じである。これらの構成は、特に、値ａ及びｎの内の１つは秘密に保たれる必要がない場合に用いることができる。
【００１４】
好ましい構成において、掩蔽パラメータｒは本方法の個々の実行のそれぞれに対して毎度ランダムに選ばれ、この場合、例えば適する乱数アルゴリズムが呼び出される。他方で、代替実施形態において、掩蔽パラメータｒは、いくつかの計算に対して一定のままにしておくか、あるいは、ランダム分布に関する厳密な要件を満たさない簡単なアルゴリズムにより段階的に変えることができる。これでもスパイ行為に対抗する十分なセキュリティを生じさせるのに十分であり得る。掩蔽パラメータｒの桁数は法ｎとほぼ同じであることが好ましい。このことは、例えば値ｒ及びｎが２進数または１０進数としての長さにおいて最大で２０％または最大で１/２だけ異なることを意味し得る。
【００１５】
掩蔽パラメータｒを乗じることによる値ａ及び／または法ｎの変形が提供されることが好ましく、この場合、補助値β及び／または補助法δは積に依存して計算される。
【００１６】
好ましい構成においては、掩蔽パラメータｒだけでなく、同様に掩蔽値β及び／またはδの計算に用いられるが、後の逆法値の決定にはもはや直接に利用されない、少なくとも１つの別の補助パラメータｓが提供される。しかし、補助パラメータｓは、通常、値β、β'及びδの内の少なくとも１つに影響するから、上記の計算に間接的な影響を有する。掩蔽パラメータｒの上述した好ましい特徴は、好ましい構成における補助パラメータｓにも同様に当てはまる。
【００１７】
補助値β及び補助法δは、それぞれの場合において、値ａの倍数と法ｎの倍数の間の差として得られる。特に、式：ｒａ＝αｎ＋β及びｓｎ＝γａ＋δにしたがうか、あるいは式：ｒａ＝αｎ＋δ及びｓｎ＝γａ＋βにしたがう、補助値β及び補助法δの決定を提供することができる。さらに、不等式：０≦β＜ｎまたは０≦δ＜ｎ、あるいは不等式：０≦δ＜ａまたは０≦β＜ａがそれぞれ満たされれば、これは、それぞれの場合において、剰余による１回の除法計算に対応する。
【００１８】
本発明にしたがうコンピュータプログラム製品は本発明にしたがう方法を実施するためのプログラム命令を有する。この種のコンピュータプログラム製品は、例えば、本発明にしたがう計算プログラムが格納されている、半導体メモリまたはディスケットまたはＣＤ−ＲＯＭとすることができる。この種のコンピュータプログラム製品は、特にスマートカードの作成に用いるために、提供することができる。
【００１９】
好ましい構成において、コンピュータプログラム製品及び／または携帯型データ記憶媒体は、さらに、上述した特徴及び／または方法に関する従属請求項に述べられる特徴に対応する特徴をもつ発展形として与えられる。
【００２０】
本発明のさらなる特徴、利点及び目的は、以下の、実施形態例及びいくつかの代替実施形態の詳細な説明から明らかである。一枚の簡略な図面が参照される。
【発明を実施するための最良の形態】
【００２１】
図１に簡略に示される方法は、携帯型データ記憶媒体の、特にスマートカードまたはＩＣモジュールのプロセッサにより実行されるべく、提供される。この目的のため、本方法は、データ記憶媒体のＲＯＭまたはＥＥＰＲＯＭに格納された、上記プロセッサのためのプログラム命令の形態で実施される。本実施形態例において、本方法はＲＳＡエンコード法またはＲＳＡ署名法のためのキー対決定に用いられる。他方で、本発明の変形実施形態において、本方法は別の暗号目的に対して用いられる。
【００２２】
本方法はあらかじめ設定された値ａ及び法ｎから出発し、これらから逆法値ｂ，言い換えれば、１＝ａｂ （ｍｏｄ ｎ）が成立し、０≦ｂ＜ｎである値ｂを計算する。第１の工程１０において、この計算のために、補助値β及び補助法δを決定するため、値ａ及び法ｎが変換される。本実施形態例において、工程１０は、代替実施形態においては異なる順序であるいは完全にまたは部分的にインターリーブされて実行することもできる、４つの部分工程１２，１４，１６，１８を有する。
【００２３】
第１の部分工程１２において、値ｎと桁数がほぼ同じである、ランダムな掩蔽パラメータｒが決定される。それ自体は既知であり、ソフトウエアで実施される乱数発生器がこのために用いられる。部分工程１４において、掩蔽パラメータｒと値ａの積が法ｎで除されて、整数の商と剰余になる。整数の商αは以降は必要とされず、一方、剰余βは以降の方法に対する補助値としてはたらく。
【００２４】
部分工程１６及び１８は上述したばかりの部分工程１２及び１４に対応する。部分工程１６においてランダムな補助パラメータｓが決定され、部分工程１８において法ｎとの補助パラメータｓの積が値ａで除される。整数の商γ及び剰余δのいずれもが以降の工程で必要とされ、ここで剰余δは補助法δとしても選定される。
【００２５】
工程２０において、それ自体は既知の逆法計算にための方法にしたがい、例えば拡張ユークリッドアルゴリズムまたはスタインの方法にしたがい、補助法δを法とする補助値βの補助逆法値β'が計算される。言い換えれば、値β'は特性：１＝ββ' （ｍｏｄ δ）を有する。
【００２６】
値β及びδが互いに素ではなく、したがってβの逆法値β'が存在しないため、補助逆法値β'の計算に失敗することがおこり得る。工程２０でこれがおこった場合には、工程１０の初めへの復帰２２が起発される。次いで新しいランダム値ｒ及びｓが選ばれる。ａ及びｎが互いに素であれば、この種の復帰がおこる確率はほぼ４０％である。したがって、過大な数の復帰２２が実行されなければならなくなるということはおこりそうもない。例えば、４つより多くの乱数ｒ及びｓの新しい対が計算されなければならない確率はほぼ１％にすぎない。
【００２７】
ａ及びｎが互いに素でなければ復帰２２が必ず実行され、よって図１に示される方法は終了しないであろう。したがって、ａ及びｎが互いに素であるか否かが開始時から確実ではない状況で本方法が用いられることになる場合には、復帰カウンタの使用が提供される。復帰カウンタは本方法の実行中におこる復帰２２の数を監視する。復帰２２の数があらかじめ設定された最大復帰数を上回ると、図１の方法は終止される。本方法の正しい実行のための別の条件は、（実際上気にする必要のない）ａ＝１及びｎ＝１という些細な場合の、このような場合には本方法は必ず失敗するから、排除である。
【００２８】
工程２０における補助逆法値β'の決定後、工程２４において逆法値ｂが計算される。この計算においては、初めに中間値δ'＝（ββ'−１）/δの計算が実施され、次いで最終の計算ｂ＝β'ｒ＋δ'γ （ｍｏｄ ｎ）が実施される。値ｂは、暗号法用途に利用できるようになっている、求められていた逆法値である。
【００２９】
工程１０及び２４は、攻撃に関する機会を少ししか提供しないで実行される計算のためのアルゴリズムが利用できるから、初めに述べた実行時間解析及び電力消費解析による攻撃に対抗して容易に保全できる。工程２０における逆法計算はスパイ行為によるリスクを冒しているが、この工程の解析により、攻撃者は補助値β及び／または補助法δに関する知識を得ることができるに過ぎない。これらの値は、ランダムな掩蔽パラメータｒ及びランダムな補助パラメータｓがβ及びδの計算にある程度の影響を及ぼしているから、秘密に保たれるべき入力値ａ及びｎに関しては工程１０で掩蔽されている。したがって、得られ得る値β及びδの知識では、攻撃者が入力値ａ及びｎに関してセキュリティを損なういかなる結論も引き出すことはできない。
【００３０】
図１の方法の代替構成では、部分工程１４及び１８において値βと値δの役割が入れ替えられる。この場合、工程２４において式：ｂ＝β'ｒ＋δ'γ （ｍｏｄ ｎ）の代わりに、式：ｂ＝−（δ'ｒ＋β'γ） （ｍｏｄ ｎ）が用いられる。
【００３１】
別の代替実施形態では、部分工程１４及び／または部分工程１６において、剰余による除法計算の実施の代わりに、値α及び／またはγが、ランダムに、または他のいずれかの適する方法により、選ばれる。この場合、それぞれ、部分工程１４において補助値βがβ＝ｒａ−αｎから得られ、部分工程１８において補助法値δがδ＝ｓｎ−γａから得られる。
【００３２】
最後に、部分工程１２において掩蔽パラメータｒがｒ＝１に設定され、部分工程１４において値αがα＝０に設定される（したがってβ=ａが成立する）か、あるいは、部分工程１６において補助パラメータｓがｓ＝１に設定され、部分工程１８において値γがγ＝０に設定される（したがってδ＝ｎが成立する）、本発明の構成も提供される。特に、先に述べた可能性を組み合わせることにより、別の代替実施形態を得ることができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施形態例における方法の実行のフローチャートを示す
【図１】
2005532715.tif 000003
【国際調査報告】
2005532715.tif 000004
2005532715.tif 000005
2005532715.tif 000006
2005532715.tif 000007
2005532715.tif 000008
2005532715.tif 000009