(57)【要約】奇数を法とした反転のみが可能である暗号化演算における反転操作を実行する回路配置及び方法をさらに開発するため、少なくとも１つの偶数を法として反転操作を行うことを提案する。
2009505148.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの暗号化演算において少なくとも１つの反転操作を行う回路配置、特には数値演算コプロセッサ等の集積回路であって、
前記反転操作は、少なくとも１つの偶数を法として行われることを特徴とする回路配置。
【請求項２】
（１）ｐｈｉ＝（ｐ−１）．（ｑ−１）を素数ｐ、ｑのオイラーのファイ関数として、少なくとも１つの第１補助変数ａ＝ｐｈｉ―１  ｍｏｄ（ｅ）を計算し、
（２）ｅを選択した暗号化係数として、少なくとも１つの第２補助変数ｙ＝（ａ．ｐｈｉ−１）／ｅを計算し、
（３）ｙ  ｍｏｄ（ｅ）を減じ、
（４）ｄを復号化係数として、ｄ＝ｐｈｉ−ｙに設定することを特徴とする、請求項１に記載の回路配置。
【請求項３】
マイクロコントローラ、特には内蔵安全コントローラであって、請求項１又は２に記載の少なくとも１つの回路配置、特には少なくとも１つの数値演算コプロセッサ等の少なくとも１つの集積回路を含むことを特徴とするコントローラ。
【請求項４】
データ処理装置、特には内蔵システム、例えばチップカード又はスマートカードであって、請求項１又は２に記載の少なくとも１つの回路配置、特には少なくとも１つの数値演算コプロセッサ等の少なくとも１つの集積回路を含み、前記回路配置が暗号化演算を実行することを特徴とするデータ処理装置。
【請求項５】
少なくとも１つの暗号化演算において少なくとも１つの反転操作を行う方法であって、
前記反転操作は、少なくとも１つの偶数を法として行われることを特徴とする方法。
【請求項６】
（１）ｐｈｉ＝（ｐ−１）．（ｑ−１）を素数ｐ、ｑのオイラーのファイ関数として、少なくとも１つの第１補助変数ａ＝ｐｈｉ―１  ｍｏｄ（ｅ）を計算するステップと、
（２）ｅを選択した暗号化係数として、少なくとも１つの第２補助変数ｙ＝（ａ．ｐｈｉ−１）／ｅを計算するステップと、
（３）ｙ  ｍｏｄ（ｅ）を減ずるステップと、
（４）ｄを復号化係数として、ｄ＝ｐｈｉ−ｙに設定するステップとにより特徴づけられる、請求項５に記載の方法。
【請求項７】
前記演算は、ＲＳＡアルゴリズム及び／又はＥＣＣアルゴリズム、特にはＥＣＤＳＡに基づくことを特徴とする、請求項５又は６に記載の方法。
【請求項８】
少なくとも１つのコンピュータのメモリに直接読み込み可能なコンピュータプログラム製品であって、前記コンピュータプログラム製品がコンピュータ上で実行される際に、請求項５〜７の少なくとも１項に記載の方法を実行するための少なくとも１つのソフトウエアコード部分を含むことを特徴とするコンピュータブログラム製品。
【請求項９】
請求項８に記載の少なくとも１つのコンピュータプログラム製品の電子的な配布。
【請求項１０】
銀行、オンラインショッピング、セキュリティ等の公開鍵暗号の分野における、請求項４に記載の少なくとも１つのデータ処理装置、特には少なくとも１つの内蔵システム、例えばチップカード又はスマートカード内での、請求項１又は２に記載の少なくとも１つの回路配置、特には少なくとも１つの数値演算コプロセッサ等の少なくとも１つの集積回路及び／又は請求項５〜７の少なくとも１項に記載の方法の使用。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、少なくとも１回の暗号化演算における少なくとも１回の反転操作を行うための回路配置、特には数値演算コプロセッサ等の集積回路に関する。
【０００２】
この発明はさらに、少なくとも１回の暗号化演算における少なくとも１回の反転操作を行う方法に関する。
【背景技術】
【０００３】
楕円曲線暗号（ＥＣＣ）は、ＧＦ（ｐ）又はＧＦ（２″）に対する楕円曲線関係上での計算の使用を伴う。これに関連して、アーキテクチャは、このアーキテクチャが素数次（ｐ）拡大体と二進（２″）拡大体の双方においてオペランドとともに働くことができる場合には、一体であると考えられている。
【０００４】
ｐが素数である場合には、ｐを法とする整数は、ＧＦ（ｐ）で表わされるｐ要素を有する体を形成する。有限体は、有限体次数、すなわち有限数の要素を有する体であり、ガロア体又はＧＦとも呼ばれる。有限体の次数は、常に素数又は素数の累乗である。素数の累乗のそれぞれに対して、厳密に１つの有限体ＧＦ（）が存在する（通常の警告として、「厳密に１つ」は「同型までの厳密に１つ」を意味する）。ＧＦ（ｐ）は次数ｐの素数体と呼ばれ、ｐを法とする剰余類の体である。
【０００５】
ｎ＞１の場合、ＧＦ（）は、係数がＧＦ（ｐ）に属する多項式の同値類の体として表すことができる。任意のｎ次既約多項式は同型までの同一体を与える。
【０００６】
楕円曲線暗号計算は、例えば暗号化プロセッサにおける公開鍵アルゴリズムの実行の間に、繰り返し行われる長整数の乗算を必要とする。
【０００７】
典型的には、暗号化操作又は復号化操作を完了するために数百回にわたり乗算操作を行わなければならず、したがってこれらの操作を行う暗号化装置が高速乗算器を用いて長乗算を迅速に実行することが重要である。
【０００８】
また、楕円曲線暗号計算は、逆数計算、すなわち積Ｚ．Ｚ−１  ＝  １  ｍｏｄ  ＮとなるＺ−１の計算も必要とする。加算計算の一つ一つ及び二倍計算の一つ一つがこのような計算を必要とする。このアルゴリズムは計算的に集中している。
【０００９】
ガロア体ＧＦ（ｐ）を用いる算術反転を用いた暗号化アルゴリズムがいくつかある。ｋのようなアルゴリズムの一例は、ＧＦ（ｐ）に対する楕円曲線デジタル署名アルゴリズム（ＥＣＤＳＡ）である。ＥＣＤＳＡはデジタル署名アルゴリズム基準の楕円曲線類似物である。
【００１０】
リベスト・シャミア・エーデルマン（ＲＳＡ）式体系と比較したＥＣＤＳＡの利点は、鍵長が短く、かつ、署名及び復号が迅速である点である。例えば、１６０（２１０）ビットＥＣＣ鍵は１０２４（２０４８）ビットＲＳＡ鍵と同じ安全性を与えるものと期待されており、安全性のレベルが上がるにつれて利点も増加する。
【００１１】
ＥＣＤＳＡ用途は、奇数を法とする反転を必要とするのみである。この特性は、カリスキー反転等のある種の特殊な反転アルゴリズムの使用を可能とする。これらの反転アルゴリズムは、高速であるが入力の全てを取り扱うことができないという欠点を有するという特性を有する。
【００１２】
これは、ある種のコプロセッサにおいて、反転のみを奇数を法として行うことができるという状況を導く。このようなコプロセッサの一例は、多くのチップカード又はスマートカードに広範に用いられており、ＲＳＡ及びＥＣＣ等の公開鍵アルゴリズムを非常に高速で計算するために特化した暗号化コプロセッサである、いわゆる「ＦａｍeＸＥ」である。このコプロセッサは、同一スマートカード集積回路（ＩＣ）上の主中央演算処理ユニット（ＣＰＵ）とは独立して動作する。高速実行で、このコプロセッサは、増加したＲＳＡ鍵長並びにＧＦ（ｐ）及びＧＦ（２″）に基づいたＥＣＣの傾向を支援する。
【００１３】
ある種のコプロセッサにおいて、反転ののみを奇数を法にして行うことができるという事実は、残念ながら、ハードウエアをＲＳＡ鍵生成に（直接）用いることができないことを意味する。この潜在的用途は、少なくとも楕円曲線と同じくらい重要である。
【００１４】
この発明の技術的背景に関して、公開鍵暗号法を行う方法を開示した先行技術文献である特許文献１を参照する。これに関連して、ＲＳＡアルゴリズムは公知の公開鍵法であり、デジタル演算手段を用いて大きな合成数を因数分解することの仮定された困難性に基づくブロック暗号である。
【００１５】
暗号鍵は、２つの大きな素数ｐ及びｑを用いて、数学的に導かれる。これらの素数ｐ及びｑは、ある種の特性に適合するに違いないが、時間を浪費するモジュール式の指数関数を必要とする。特許文献１によれば、暗号文の定義を、モンゴメリ乗算手段及び改良された平方乗算法を用いることができるように変更することにより、速度を向上させる。
【００１６】
先行技術文献である特許文献２は、メッセージを暗号化及び復号化するためにＲＳＡ法（＝リベスト・シャミア・エーデルマンの公開鍵コード法）を用いる暗号化プロセッサ及び暗号化法に言及する。
【００１７】
先行技術文献である特許文献３は、完全な証明書失効ツリー（ＣＲＴ）パラメータセットよりも小さい記憶スペースを用いた秘密鍵のパラメータ化を与え、かつ、最小パラメータセットよりもよい演算効率を与えることにより、暗号化システム内の秘密鍵を記憶し回復するシステム及び方法を示している。
【００１８】
また、特許文献３は、完全な非ＣＲＴパラメータセットよりも小さい記憶スペースを用いた秘密鍵のパラメータ化を与え、かつ、最小パラメータセットよりもよい演算効率を与えることにより、暗号化システム内の秘密鍵を記憶し回復するシステム及び方法を示している。
【００１９】
先行技術文献である非特許文献１は、今日では周知のＲＳＡ暗号化アルゴリズムの鍵生成ステップを実行する際に考慮に入れる必要のある問題及び事項を記載している。
【００２０】
この文献では、２つの単純ではあるが効率的な鍵生成アルゴリズムと、単純ではあるガあまり効率的でないアルゴリズムとが評価されている。この文献は、暗号コプロセッサを有するスマートカードを用いて、３つの提示したアルゴリズムに対してどのようにして高速実行を構築するかを説明している。
【００２１】
【特許文献１】欧州特許出願公開第０  ５７７  ０００  Ａ１号明細書
【特許文献２】米国特許第４  ８７０  ６８１号明細書
【特許文献３】国際公開第０２／１１３６０  Ａ２号パンフレット
【非特許文献１】Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｏｆ  Ｆａｓt  ＲＳＡ  Ｋｅｙ  Ｇｅｎｅｒａｔｉｏｎ  ｏｎ  Ｓｍａｒｔ  Ｃａｒｄｓ、Ｃｈｅｎｇｈｕａｉ  Ｌｕ、Ａｎｄｒｅ  Ｌ．Ｍ．  ｄｏｓ  Ｓａｎｔｏｓ及びＦｒａｎｃｉｓｃｏ  Ｒ．  Ｐｉｍｅｎｔｅｌ、Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ａｐｐｌｉｅｄ  Ｃｏｍｐｕｔｉｎｇ，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００２  ＡＣＭ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ａｐｐｌｉｅｄ  Ｃｏｍｐｕｔｉｎｇ，  Ｍａｄｒｉｄ，  Ｓｐａｉｎ，  ＩＳＢＮ  １−５８１１３−４４５−２，第２１４〜２２０頁、http://portal.acm.org/citation.cfm?id=508791.508837を参照。
【発明の開示】
【発明が解決しようとする課題】
【００２２】
要約すると、チップカード又はスマートカードが一層強力になるにつれて、暗号化に基づく公開鍵はますます重要となる。今のところ、ＲＳＡシステムはこのような暗号化の事実上の標準（デファクトスタンダード）である。
【００２３】
一つにはより高度の安全性の結果、また一つには便宜的な理由により、チップカード又はスマートカードは、それ自身の鍵を計算する必要がある。ＲＳＡ鍵の計算は、ソフトウエアの足跡の点及び演算時間の点の双方から、非常に資源を消費する。
【００２４】
したがって、資源の消費を低減する方法に対する非常に大きな関心がある。ハードウエア反転を用いることが可能な場合には、書き込む必要のあるソフトウエアの量を大幅に低減し、したがって時間を削減する。
【００２５】
上記した欠点及び短所から始まり、特にいくつかの反転が奇数を法とする反転を可能とするのみであるという事実から始まり、説明した従来技術を考慮に入れ、この発明の目的は、偶数を法とした反転を可能とするために、技術分野の項で説明したような回路配置と、従来技術の項で説明したような方法をさらに開発することにある。
【課題を解決するための手段】
【００２６】
この発明の目的は、請求項１の特徴を有する回路配置、及び、請求項５の特徴を有する方法により達成される。この発明の有利な実施形態及び好適な改良はそれぞれの従属形式請求項に開示されている。
【００２７】
この発明は、奇数のみの反転ハードウエアを偶数にも用いる、すなわち、奇数のみを許す少なくとも１つのモジュラー反転器を偶数にも用いるという着想に主として基づく。ＲＳＡ鍵生成を一次公開鍵アルゴリズムとして、この発明の教示は、偶数も法とする反転を可能とし、よって奇数を法とするＲＳＡ鍵生成に対する（従来技術の）反転を偶数を法とするＲＳＡ鍵生成に対する（新規な）反転に拡張する。
【００２８】
この発明は、反転器をどのようにして用いて偶数を法とする反転をも行い、これによりＲＳＡ暗号化アルゴリズムのための鍵の計算を高速化するかを説明する。好適な実施形態によれば、この発明は、奇数を法とする反転を伴う一連の算術ステップを行うことにより機能する。このアルゴリズムは、最終結果がより強力なハードウエアが製造されたに等しくなるよう構成されている。
【００２９】
さらに、この発明は、マイクロコントローラ、特には少なくとも１つの回路配置、特には少なくとも１つの数値演算コプロセッサ等の少なくとも１つの前記の種類の集積回路を含む内蔵安全コントローラに関する。したがって、上記の方法は、例えば全てのチップカード又はスマートカードの開発に組み入れられることが好ましい。
【００３０】
さらに、この発明は、データ処理装置、特には、例えばチップカード又はスマートカード用の内蔵システムであって、少なくとも１つの回路配置、特には少なくとも１つの数値演算コプロセッサ等の前記の種類の、暗号化演算を行う少なくとも１つの集積回路を含む内蔵システムに関する。
【００３１】
さらに、この発明は、少なくとも１つのコンピュータのメモリに直接読み込み可能なコンピュータプログラム製品であって、このコンピュータプログラム製品がコンピュータ上で実行される際に、上記の種類の方法を実行する少なくとも１つのソフトウエアコード部分を含むコンピュータブログラム製品に関する。
【００３２】
さらに、この発明は、上記の種類の少なくとも１つのコンピュータプログラム製品の電子的な配布に関する。
【００３３】
最後に、この発明は、銀行、オンラインショッピング、セキュリティ等の公開鍵暗号の分野における、前記の種類の少なくとも１つのデータ処理装置、特には、例えばチップカード又はスマートカード内の少なくとも１つの内蔵システム内での、前記の種類の少なくとも１つの回路配置、特には少なくとも１つの数値演算コプロセッサ等の少なくとも１つの集積回路及び／又は前記の種類の方法の使用に関する。
【００３４】
アルゴリズムが軽量であることから、チップカード又はスマートカード等の制限された環境に特に適する。
【００３５】
既に説明したように、この発明の教示を有利な方法で実施するとともに改良するいくつかの選択肢が存在する。このため、それぞれ請求項１及び５に従属する請求項を参照する。この発明のさらなる改良、特徴及び利点は、例示としての好適な実施形態及び添付の図面を参照して以下でより詳細に説明される。
【発明を実施するための最良の形態】
【００３６】
暗号化動作を行う集積回路（ＩＣ）を含むデータ処理装置１００、すなわちチップカード又はスマートカードの形式の内蔵システムの実施形態は、公開鍵基盤（ＰＫＩ）システムを参照し、この発明の方法に従って機能する。
【００３７】
ガロア体ＧＦ（ｐ）又はＧＦ（２″）のためのハードウエア反転器のいくつかは奇数を法とする反転を可能とするのみであるという事実から始まり、近年のチップカード又はスマートカードは、ハードウエアをＲＳＡ鍵生成に不適当とするこの特性を有してもいるということを考慮に入れて、この発明は、奇数を法とする反転を可能とするのみであるハードウエア反転器によりＲＳＡで生成した、偶数を法とする秘密鍵の復号化指数ｄを計算する算術ステップを行うことにより、このハードウエアをガロア体に拡張することを可能にする。これに関連して、ＲＳＡ鍵生成等のために表記法を用いることができる。
【００３８】
ｐｈｉを素数ｐ及びｑに関するオイラーのファイ関数とする。すなわちｐｈｉ＝（ｐ−１）．（ｑ−１）とする。これに関して、ｐｈｉは常に偶数であることに留意されたい。ｅを選択された暗号化指数とする。ＲＳＡアルゴリズムの構造から、この数ｅは常に奇数でなければならない。
【００３９】
数値ｄ、すなわち復号化指数の認定を、式ｄ＝ｅ−１  ｍｏｄ（ｐｈｉ）を解くことにより計算することができる。すなわち、ｄはｐｈｉを法とするｅの逆数である。したがって、逆数ｄを計算するには、偶数を法としなければならない。
【００４０】
この問題に対処するために、以下のステップを行う。
（１）ａ＝ｐｈｉ―１  ｍｏｄ（ｅ）を計算する。
（２）ｙ＝（ａ．ｐｈｉ−１）／ｅを計算する。
（３）ｙ  ｍｏｄ（ｅ）を減ずる。
（４）ｄ＝ｐｈｉ−ｙとする。
【００４１】
これは正確な結果を与えるであろうことを数学的に証明できる。さらに、負数を必要としないであろうことも証明できる。また、中間結果に対して上限を計算することができる。
【００４２】
最後に、図１は、この発明に従う方法を実行可能とする、この発明に従う回路配置を含むデータ処理装置、すなわちスマートカード１００のハードウエア実装のブロック図を示す。
【００４３】
スマートカード１００は、以下の部品を含む。
−例えばＩＳＯ−７８１６−３基準に従ってインターフェイス１２を介して外界と行う通信の全般的な制御のためのマイクロコントローラ１０。マイクロコントローラ１０はランダムアクセスメモリ（ＲＡＭ）／リードオンリメモリ（ＲＯＭ）内のデータにポインタを設定し、コプロセッサ２０を起動する。
−マイクロコントローラ１０のプログラムのためのＲＯＭ３０。
−データ及び／又はプログラムの不揮発性記憶のためのプログラマブルＲＯＭ（ＰＲＯＭ）（フラッシュメモリ又は電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ））４０。
−データの不揮発性記憶のため、例えば演算中の中間結果の記憶のためのＲＡＭ５０。及び
−ＥＣＣ演算、特にＥＣＤＳＡ演算又はＲＳＡ演算のための特別な高速タスクの実行専用コプロセッサ２０。
【００４４】
タスクの準備ができると、制御はマイクロコントローラ１０に戻される。
【００４５】
変形例において、この発明は、少なくとも１つのマイクロプロセッサ数値演算ユニット（ＡＬＵ）を用いてソフトウエアで実行され、制御ロジック及びシフトレジスタによる次数検出を与えるコントローラのプログラムを用いて、加算操作、減算操作、及び／又はシフト操作を与える。
【図面の簡単な説明】
【００４６】
【図１】この発明に従う方法を実行可能とする、この発明に従う回路配置を含むデータ処理装置の実施形態のブロック図を概略的に示す。
【符号の説明】
【００４７】
１００  データ処理装置、特には内蔵システム、例えばチップカード又はスマートカード
１０  マイクロコントローラユニット
１２  マイクロコントローラユニット１０のインターフェイスユニット
２０  コプロセッサユニット
３０  ＲＡＭユニット
４０  ＰＲＯＭ、特にはフラッシュメモリまたはＥＥＰＲＯＭ
５０  ＲＡＭ
【図１】
2009505148.tif 000003
【国際調査報告】
2009505148.tif 000004
2009505148.tif 000005