説明

圧縮されたRSAモジュラスを生成する方法及び装置

少なくとも2つの係数を有するRSAモジュラスの係数を所定の部分Nにより生成する方法及び装置。第1素数pが生成され、モジュラスNの一部を構成するNの値が取得され、pqがNを共有するRSAモジュラスとなるように、第2素数qがp及びNに依存した区間において生成され、モジュラスNの計算を可能にする情報が出力される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に公開鍵暗号化アルゴリズムに関し、特にRSA(Rivest−Shamir−Adleman)モジュラスの圧縮表現に関する。
【背景技術】
【0002】
本セクションは、以下に説明及び/又は請求される本発明の各種態様に関連しうる様々な技術を読者に紹介するためのものである。この説明は、読者が本発明の各種態様のより良い理解を容易にするための背景情報を読者に提供するのに役立つと考えられる。従って、これらの説明はこの観点から参照されるべきであると理解され、従来技術の自認とみなされるべきでない。
【0003】
N=pqを2つの大きな素数の積とする。e,dをed≡1(mod λ(N))(ただし、gcd(e,λ(N))=1及びλはCarmichaelの関数である)を充足する公開指数と秘密指数とする。N=pqであるため、λ(N)=lcm(p−1,q−1)となる。x<Nが与えられると、公開演算(メッセージ暗号化や署名検証など)は、xのe乗をNで割った剰余、すなわち、y=x mod Nを計算することからなる。その後、yが与えられると、対応する秘密演算(暗号文の解読や署名生成など)は、y mod Nを計算することからなる。e,dの定義から、y≡x(mod N)となることは明らかである。秘密演算は、中国の剰余処理(CRTモード)により高速に実行可能である。モジュロp及びqの計算は独立に実行され、その後に合成される。この場合、秘密パラメータは、d=d mod (p−1),d=d mod (q−1),及びi=q―1 mod pによる{p,q,d,d,i}である。このとき、CRT(x,x)=x+q[i(x−x) mod p]としてy mod Nが得られる。ただし、x=ydp mod p及びx=ydq mod qである。すなわち、(2係数)RSAモジュラスN=pqは、gcd(λ(N),e)=1を充足する2つの大きな素数の積である。nがNのビットサイズを示す場合、ある1<n<nに対して、pは[2n−n0−1/2,2n−n0−1]の範囲内にあり、qは[2n0−1/2,2n0−1]の範囲内にあるはずであり、この結果、2n−1<N=pq<2となる。セキュリティの理由のため、いわゆるバランスされたモジュラスが一般に好まれ、これは、n=2nを意味する。
【0004】
典型的なRSAモジュラスは、1024〜4096ビットの範囲内である。現在、アプリケーションが少なくとも2048ビットのモジュラスを要求することが慣例となっている。しかしながら、RSA対応アプリケーションを実行するプログラム及び/又は装置は、1024ビットモジュラスしかサポートしないよう設計されているかもしれない。より短い帯域幅やバッファに適合しうるように、モジュラスを圧縮するというアイデアがある。すなわち、RSAモジュラス全体を格納/送信するのでなく、可逆圧縮された表現が用いられる。これはまた、異なるリリースのプログラム及び/又は装置の間の互換性の問題も解決する。独立した興味として、このような技術は、メモリ及び/又は帯域幅の節約による効率性の向上に利用可能である。
【0005】
Arjen K.Lenstra(“Generating RSA moduli with a predetermined portion”Advances in Cryptology−ASIACRYPT‘98,volume 1514 of Lecture Notes in Computer Science,pages 1−10.Springer,1998)が生成方法を提案しているが、Lenstraの方法は、第2素数qが増分的に構成され、かなり過大な実行回数をもたらすため、スマートカードなどの限定的な装置には適さない。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、圧縮されたRSAモジュラスが所定の区間における2つの素数を生成することにより実行されるという点で、従来技術の問題を解決する。この結果、Marc Joye,Pascal Paillier,and Serge Vaudenay(“Efficient generation of prime number”Cryptographic Hardware and Embedded Systems−CHES 2000,volume 1965 of Lecture Notes in Computer Science,pages 340−354.Springer,2000)により提案され、Marc Joye and Pascal Paillier(“Fast generation of prime numbers on portable devices:An update”
Cryptographic Hardware and Embedded Systems−CHES 2006,volume 4249 of Lecture Notes in Computer Science,pages 160−173.Springer,2006)により改良されたものなど、効率的な素数生成アルゴリズムの利益を享受することができる。特に、それらは、固定された公開指数e=216+1によるNを法とする2048ビットのRSA(すなわち、n=2048)を生成し、N又はNの表現を格納するため、2048ビット未満しか必要としないことを目的とする状況において極めて適している。
【課題を解決するための手段】
【0007】
第1の態様では、本発明は、RSAモジュラスの係数を所定の部分Nにより生成する方法に関する。RSAモジュラスは、少なくとも2つの係数を有する。まず、第1素数pが生成され、モジュラスNの一部を構成するNの値が取得され、第2素数qが生成され、モジュラスNの明確な復元を可能にするモジュラスNの可逆圧縮表現が少なくとも出力される。第2素数qは、pqがNを共有するRSAモジュラスとなるように、pとNに依存した区間において生成される。
【0008】
第1の好適な実施例では、所定の部分NはRSAモジュラスの先頭にある。RSAモジュラスはnビットのモジュラスであり、所定の部分Nはκビットを有し、第1素数pは、gcd(p−1,e)=1となるように区間
【数1】

において生成され、第2素数qは、gcd(q−1,e)=1となるように区間
【数2】

において生成され、
【数3】

である(ただし、N=(pq) mod 2n−κである)。
【0009】
第2の好適な実施例では、所定の部分NはRSAモジュラスの後尾にある。第1素数は、gcd(p−1,e)=1となるように区間
【数4】

において生成され、第2素数qは、q=C+q’2κ(ただし、
【数5】

である)を計算することによって生成され、q’は、gcd(q−1,e)=1となるよう区間
【数6】

において生成され、
【数7】

が定義され、
【数8】

が出力される。
【0010】
第3の好適な実施例では、Nは第1素数pの少なくとも一部を暗号化することにより得られる。
【0011】
第2の態様では、本発明は、RSAモジュラスの係数を所定の部分Nにより生成する装置に関する。RSAモジュラスは、少なくとも2つの係数を有する。本装置は、第1素数pを生成し、モジュラスNの一部を構成するNの値を取得し、pqがNを共有するRSAモジュラスとなるように、pとNに依存した区間において第2素数qを生成するプロセッサを有する。本装置はさらに、モジュラスNの明確な復元を可能にするモジュラスNの可逆圧縮表現を少なくとも出力するインタフェースを有する。
【0012】
第1の好適な実施例では、本装置はスマートカードである。
【0013】
“共有”とは、共有される部分について同一の値を有することとして解釈される。例えば、16進数1234567890abcdefと123456789abcdef0は、これらの数字の先頭部分において123456789を共有している。
【図面の簡単な説明】
【0014】
【図1】図1は、本発明の好適な実施例によるRSAモジュラス生成のための装置を示す。
【発明を実施するための形態】
【0015】
[全体的なアイデア]
本発明の全体的なアイデアは、Nを構成する各素数がある区間から任意の抽出可能となるように(かつ、従来提案に示唆された増分的な試行でなく)、RSAモジュラスNの大部分を固定することから構成される。このRSAモジュラスの大部分は、(公開)擬似乱数生成手段を用いたランダムな短いシードから評価されるか、又は各ユーザ間に共有される。
【0016】
これは、RSAモジュラスのための高速(かつ実現容易)な圧縮技術をもたらす。さらに、このように生成されたRSAモジュラスは、通常のRSAモジュラスと区別することはできない(すなわち、出力分布に相違がない)。最後に、それらは、最新の素数生成技術に互換的である(この場合、追加的なコストがない)。
[好適な実施例]
1<κ≦nとする。2つの大きな素数p,qの積であるnビットのRSAモジュラスNは、以下のように生成することができる。
1.擬似乱数生成手段を用いて、ランダムシードsからκビットの整数Nを生成する。
【0017】
【数9】

ここで、2κ−1によるOR演算は、Nの最上位ビットが1であることを保証することに留意されたい。
2.gcd(p−1,e)=1となるように、ランダムな素数
【数10】

を生成する。
3.gcd(q−1,e)=1となるように、ランダムな素数
【数11】

を生成する。このような素数が見つからない場合、処理が繰り返される。
4.N=(pq) mod 2n−κを定義し、
【数12】

を出力する。
【0018】
【数13】

が与えられると、対応するnビットのRSAモジュラスN、すなわち、
【数14】

を公開復元することは容易となる。ただし、Nは、
【数15】

として得られるκビットの整数である。
【0019】
n−κ≦pである場合、qが選ばれる範囲は空になるかもしれないことが留意されるべきである。これは、κが高々nとなるべき理由を説明する。このため、上記方法は、最も良い場合にはnビットまでnビットRSAモジュラスを圧縮する。ワーストケースはバランスされたRSAモジュラスについてであり(すなわち、n=2n)、1÷2の(最も良い場合に)圧縮比をもたらす。
[第1の代替的実施例]
他の実施例では、モジュラスNのトレイリングビットが固定される。
1.シードsから、
【数16】

を生成する。Nもまた当然選ばれてもよい。
2.第1素数
【数17】

と、gcd(p−1,e)=1を生成する。
3.存在する場合には、
【数18】

により第2素数
【数19】

と、gcd(q−1,e)=1を生成する。
4.
【数20】

を定義し、
【数21】

を出力する。
【0020】
1であることが確信されるNの最上位ビットを
【数22】

に含めることは必要でないことが理解されるであろう。
【0021】
より一般に、Nのリーディングビットとトレイリングビットを固定することもまた可能である。
[第2の代替的実施例]
提案された方法は、3素数RSAモジュラスやN=pqの形式のRSAモジュラスなど、2より多い係数のRSAモジュラスを受け入れるよう適応可能である。これのさらなる説明について、Tsuyoshi Talagiの論文(“Fast RSA−type cryposystem modulo pq”Advances in Cryptology−CRYPTO‘98,volume 1462 of Lecture Notes in Computer Science,pages318−326.Springer,1998)が効果的に参照できる。
[第3の代替的実施例]
提案された方法はまた、RSAモジュラスの共通部分、すなわち、Nがユーザ間に共有されるか、又は所与のアプリケーションについてすべてのユーザに共通であるときにも適用される。このようなケースでは、ランダムシードs(κ及びnの値と共に)を送信する必要はない。
[装置]
図1は、本発明の好適な実施例によるRSAモジュラス生成装置を示す。生成装置100は、少なくとも1つのプロセッサ110と、少なくとも1つのメモリ120と、個別の入力部と出力部とを有する通信手段130と、おそらくユーザインタフェース140とを有する。処理手段は、上述した方法の何れかを実行するよう適合される。
[鍵供託]
本発明は、鍵供託用に効果的に用いることが可能であることが理解されるであろう。RSAモジュラスN=pqの場合、p(又はq)のビットの約1/2が分かっていれば、格子低減技術などを用いて秘密鍵を復元するのに十分である。このため、pのビットの約1/2(又はそれ以上)が、秘密鍵Kを用いて暗号化され、公開RSAモジュラスNの表現に埋め込まれる場合、Kを知っている“当局”は、Nからpを再構成し、対応する秘密RSA鍵を計算することができるであろう。pの暗号化されたビットは、RSAモジュラスの所定部分に構成されるかもしれない。
【0022】
さらに、本発明による方法は、相対的に少ないリソースしか私用しないスマートカードや他のリソース制限のある装置に使用するのに特に効果的であることが理解されるであろう。
【0023】
明細書、請求項及び図面(必要に応じて)に開示された各特徴は、独立して又は何れか適切な組み合わせにより提供されるかもしれない。各特徴は、必要に応じて、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現されてもよい。
【0024】
“一実施例”又は“ある実施例”という表現は、当該実施例に関して説明される特定の特徴又は構成が本発明の少なくとも1つの実現形態に含めることができることを意味する。明細書の各箇所における“一実施例では”という表現は、その全てが必ずしも同一の実施例を参照するとは限らず、相互に排他的な他の又は異なる実施例を参照してるとも限らない。
【0025】
請求項に記載される参照番号は、例示的なものであり、請求項の範囲に対する効果を制限するものでない。


【特許請求の範囲】
【請求項1】
少なくとも2つの係数を有するRSAモジュラスNの係数を所定の部分Nにより生成する方法であって、
第1素数pを生成するステップと、
モジュラスNの一部を構成するNの値を取得するステップと、
第2素数qを生成するステップと、
前記モジュラスNの明確な復元を可能にするモジュラスNの可逆圧縮された表現を少なくとも出力するステップと、
を有し、
当該方法は、pqがNを共有するRSAモジュラスとなるように、前記第2素数qがp及びNに依存した所定の区間においてランダムに生成されることを特徴とする方法。
【請求項2】
前記所定の部分Nは、RSAモジュラスの先頭にある、請求項1記載の方法。
【請求項3】
前記RSAモジュラスは、nビットのモジュラスであり、
前記所定の部分Nは、κビットを有し、
前記第1素数pは、gcd(p−1,e)=1となるように、区間
【数23】

において生成され、
前記第2素数qは、gcd(q−1,e)=1となるように、区間
【数24】

において生成され、
【数25】

である(ただし、N=(pq) mod 2n−κである)、請求項2記載の方法。
【請求項4】
前記所定の部分Nは、前記RSAモジュラスの後尾にある、請求項1記載の方法。
【請求項5】
前記第1素数pは、gcd(p−1,e)=1となるように、区間
【数26】

において生成され、
前記第2素数qは、q=C+q’2κを計算することにより生成され(ただし、
【数27】

である)、
q’は、gcd(q−1,e)=1となるように、区間
【数28】

において生成され、
【数29】

が定義され、
【数30】

が出力される、請求項4記載の方法。
【請求項6】
は、前記第1素数pの少なくとも一部を暗号化することによって取得される、請求項1乃至5何れか一項記載の方法。
【請求項7】
少なくとも2つの係数を有するRSAモジュラスNの係数を所定の部分Nにより生成する装置であって、
第1素数pを生成し、モジュラスNの一部を構成するNの値を取得し、pqがNを共有するRSAモジュラスとなるように、p及びNに依存した所定の区間において第2素数qをランダムに生成するプロセッサと、
前記モジュラスNの明確な復元を可能にするモジュラスNの可逆圧縮された表現を少なくとも出力するインタフェースと、
を有する装置。
【請求項8】
当該装置は、スマートカードである、請求項7記載の装置。


【図1】
image rotate


【公表番号】特表2010−519598(P2010−519598A)
【公表日】平成22年6月3日(2010.6.3)
【国際特許分類】
【出願番号】特願2009−551172(P2009−551172)
【出願日】平成20年2月19日(2008.2.19)
【国際出願番号】PCT/EP2008/052017
【国際公開番号】WO2008/104482
【国際公開日】平成20年9月4日(2008.9.4)
【出願人】(501263810)トムソン ライセンシング (2,848)
【氏名又は名称原語表記】Thomson Licensing 
【住所又は居所原語表記】1−5, rue Jeanne d’Arc, 92130 ISSY LES MOULINEAUX, France
【Fターム(参考)】