JP2004505548A - 暗号化秘密鍵を記憶/回復する方法および装置 - Google Patents

暗号化秘密鍵を記憶/回復する方法および装置 Download PDF

Info

Publication number
JP2004505548A
JP2004505548A JP2002515768A JP2002515768A JP2004505548A JP 2004505548 A JP2004505548 A JP 2004505548A JP 2002515768 A JP2002515768 A JP 2002515768A JP 2002515768 A JP2002515768 A JP 2002515768A JP 2004505548 A JP2004505548 A JP 2004505548A
Authority
JP
Japan
Prior art keywords
secret key
mod
calculator
calculate
recovery device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
JP2002515768A
Other languages
English (en)
Inventor
マイケル・ジョン・サビン
Original Assignee
アトメル・コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アトメル・コーポレーション filed Critical アトメル・コーポレーション
Publication of JP2004505548A publication Critical patent/JP2004505548A/ja
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Abstract

本願に開示されるのは、全てのCRTパラメータの組{p,q,d,d,v}よりも少ない記憶空間を用い、かつ、最小限のパラメータの組{p,q}よりも優れた計算効率を提供する秘密鍵のパラメータ化を提供することにより、暗号化システムにおいて秘密鍵を記憶/回復するためのシステムおよび方法である。さらに開示されるのは、全ての非CRTパラメータの組{n,d}よりも少ない記憶空間を用い、かつ、最小限のパラメータの組{p,q}よりも優れた計算効率を提供する秘密鍵のパラメータ化を提供することにより、暗号化システムにおいて秘密鍵を記憶/回復するためのシステムおよび方法である。本願にさらに開示されるのは、計算順序が素因数p,qの値とは無関係であることにより、このような依存関係を悪用した攻撃に対する脆弱性が低減するような方法で、パラメータd,d,dを計算するための手段を提供することである。

Description

【0001】
【発明の属する技術分野】
本発明は、概略的には、暗号化(cryptography)システムに関する。より詳細には、本発明は、公開鍵(public−key)/秘密鍵(private−key)暗号化システムにおいて、秘密鍵を記憶しかつ回復(recover)するための装置および方法に関する。
【0002】
【従来の技術】
RSA(リベスト(Rivest)、シャミア(Shamir)、アドルマン(Adleman))体系は、一般的に好まれる公開鍵暗号化形式である。RSA体系は、公開モジュラス(public modulus)nと公開指数(public exponent)eとからなる公開鍵と、モジュラスnと秘密指数(private exponent)dとからなる秘密鍵とを用いる。公開モジュラスnは、2つの別個の素因数(prime factor)p,qの積となる整数である(すなわち、n=pq)。これらの因数は秘密の情報であり、かつ、秘密鍵の保持者により開示されることはない。公開指数eは、値(p−1),(q−1)と互いに素である(relatively prime)整数である。秘密指数dは、ed mod (p−1)=ed mod (q−1)=1であるような整数である。
【0003】
RSA体系の1つの応用法は、メッセージを暗号化することである。任意の当事者(party)は、秘密鍵の保持者によってのみ解読できるメッセージを暗号化するために、公開鍵を用いることができる。mを、暗号化すべきメッセージとする(ここで、mは0<m<nの範囲の整数である)。暗号化されたメッセージcは、c=m mod nとして計算される。前記暗号化メッセージを解読するために、秘密鍵の保持者は、m=c mod nを計算する。例えば、暗号化メッセージを当事者Bへ送信することを希望する当事者Aは、当事者Bの公開鍵を得ることにより、メッセージを暗号化する。前記メッセージについては、当事者Bの公開鍵と関連づけられる正しい当事者Bの秘密鍵によってのみ解読できるので、当事者Bのみが前記メッセージを解読することができる。
【0004】
RSA体系の他の応用法は、メッセージを信号で伝えることである。秘密鍵の保持者は、公開鍵を用いて任意の当事者により検証(verify)できる署名(signature)を、メッセージに付け加えることができる。mを、署名すべきメッセージとする(ここで、mは0<m<nの範囲の整数である)。署名sは、s=m mod nとして計算される。前記署名を検証するために、任意の当事者は、公開鍵を用いて、m’=s mod nを計算する。m’の値がmの値と符合すれば、署名は有効(valid)である。
【0005】
RSA体系の安全性は、公開モジュラスの因数を決定することが難しいという仮定に基づいている。すなわち、nが与えられる場合に、n=pqとなるような因数p,qを決定することは非常に難しいと考えられる。因数分解の難しさの問題は、p,qが増加するにつれて増大する。実際の実施において、p,qは、各々が何百または何千もの2進数(ビット)からなる。その理由は、nがp,qの積であり、さらに、nが何百または何千ものビットからなるためである。
【0006】
RSA内で用いられる巾剰余(modular exponentiation)演算は、計算上高価な演算である。前記演算の複雑さは、指数内のビット数に対してほぼ一次に(linearly)増大し、かつ、モジュラス内のビット数に対してほぼ二次に(quadratically)増大する。幸いにも、計算支出を低減させる十分に公知の方法が幾つか存在する。
【0007】
公開鍵演算の支出を低減させるために、公開指数を小さな数として選ぶことが通常的である。このことは、RSA体系の安全性が公開指数のサイズとは十分に無関係であるので許容可能である。一般的に好まれる公開指数の選択は、e=216+1である(この値は、新たな応用法のための事実上の標準として現れるものと思われる)。他の通常的な選択は、e=3,e=17である。小さな公開指数によって、RSA公開鍵演算の計算支出は比較的少なくなる。すなわち、メッセージを暗号化したりまたは署名を検証したりすることは、比較的安価である。
【0008】
残念ながら、秘密指数dについては、小さな数として選ぶことはできない。その値については、自由に選択することはできない(ed mod (p−1)=ed mod (q−1)=1という条件を満たす必要がある)。RSA体系の安全性は、任意に選択される大きな値p,qに基づくものである。結果として、dは、公開モジュラスnに匹敵するサイズの整数である。このことは、秘密鍵演算の支出を比較的高める。すなわち、メッセージを解読したりまたは署名を作成したりすることは、比較的高価である。
【0009】
秘密鍵演算の支出については、中国剰余定理(Chinese Remainder Theorem:CRT)を用いることにより低減させることができる。CRTは、
=d mod (p−1);
=d mod (q−1);
pv mod q=1であるようなv;
のような幾つかの数量の計算を必要とする。
次に、秘密鍵演算y=g mod nは、
a=(g mod p)dp mod p;
b=(g mod q)dq mod q;
y=a+[(b−a)v mod q]p;
として計算される(ただし、前式における“(g mod p)dp”,“(g mod q)dq”は、“(g mod p)のd乗”,“(g mod q)のd乗”をそれぞれ表すものとする)。
【0010】
,d,vを計算する支出が無視されれば、CRTを用いた秘密鍵演算の計算支出は、CRTを用いない秘密鍵演算についての支出の約1/4である。このことは、計算支出における大きな低減であり、かつ、CRTを多くの応用法にとって望ましいものにする。
【0011】
残念ながら、d,d,vを計算することについての支出は必ずしも無視できない。したがって、多くの応用法が、単に、d,d,vの値を予め計算し、かつ、これらの値を因数p,qとともに秘密鍵の一部として記憶する。パラメータセット{p,q,d,d,v}を記憶する応用法は、考えられ得る最小の計算支出によって、CRTを用いて秘密鍵演算を行うことができる。5つのパラメータの各々は、bビットの記憶量を必要とする(ここで、bはモジュラスの素因数内のビット数である)。したがって、秘密鍵のための総記憶量は5bビットである。
【0012】
しかしながら、幾つかの応用法において、秘密鍵を{p,q,d,d,v}として記憶することは、必要とされる記憶空間量の理由から望ましくない。応用法が秘密鍵を{p,q}として代わりに記憶すれば、秘密鍵の記憶空間は5bビットから2bビットへ低減させる(2,5倍の低減)。しかしながら、この結果、前記応用法は、秘密鍵演算を行う毎にd,d,vを計算する必要がある。このことは、望ましくない計算支出となり得る。
【0013】
これらの問題が関心事である場合の応用法の例は、ディジタル署名を作成するために用いられる低コストのスマートカードである。前記カードはRSA秘密鍵の組を記憶し、各々の鍵は様々な目的のために署名を作成するために用いられる。例えば、或る鍵については特定のクレジットカードによって行われた購入に署名するために用いることができ、他の鍵については電子メールメッセージに署名するために用いることができ、他の鍵については銀行取引に署名するために用いることができる…などである。低コストという理由から、スマートカードは限られた量の記憶空間を有するのみである。限られた空間内にできるだけ多数の秘密鍵をカードが記憶することが望ましい。さらに、低コストという理由から、スマートカードは、限られた計算能力を備えた単純なプロセッサを有するのみである。署名の計算に過度の時間を要することは望ましくないので、RSA秘密鍵演算の計算支出を最小限にすることが重要である。
【0014】
,d,vの計算と関連した他の問題は安全性である。p,qからd,d,vを計算するための通常的な方法は、ユークリッド(Euclid)のアルゴリズム、または、その通常的な変形例を用いることである。ユークリッドのアルゴリズムは、“整数x,zが与えられる場合に、xy mod z=1であるようなyを求めよ”という問題を解決するために利用できる算術演算系列である。演算の順序は、オペランド(operand)の数値に依存する(すなわち、yまたはzの数値の変化は、乗算や減算などのような算術演算の順番の変化を生じさせ得る)。このような依存関係は、或る応用法において記憶された秘密鍵を、電流引き込み(electrical current draw)や電磁放射などのような外部的に可用な応答を測定しながら該応用法への入力を巧妙に選択する攻撃者による発見に対して脆弱なものにする。このような攻撃は、商業的および政治的の両方の場合における実際の安全装置に対して首尾よく実行されてきた。このような攻撃に対する脆弱性(vulnerability)を低減させるために、d,d,vを計算するために用いられる演算の順序がp,qの値によって変化しないことが望ましい。
【0015】
低コストのスマートカードの例について続けると、該カードは、RSA内で用いられる巾剰余演算を加速させる算術コプロセッサ(arithmetic coprocessor)を含む。秘密鍵演算の間に、巾剰余は、つい先程述べた類の攻撃に対して脆弱である。このような攻撃に対する脆弱性を低減させるために、コプロセッサは、演算の順序がオペランドの値に依存しないことを保証するように慎重に設計される。しかしながら、RSA秘密鍵演算の間に、スマートカードは、d,d,vを計算することをさらに必要とし、その結果、d,d,vの計算は、潜在的な脆弱性のさらなる原因となる。この追加された脆弱性を低減させるために、d,d,vの計算は、p,qの値に依存しない演算の順序を用いる必要がある。p,qは素数であるので、vについては、演算v=pq−2 mod qを経た巾剰余を用いて計算することができる。こうして、スマートカードは、vの計算と関連したあらゆる新たな脆弱性を排除しながらvを計算するために、コプロセッサを用いることができる。しかしながら、巾剰余を用いてd,dを計算することは不可能である。したがって、新たな脆弱性を導入しない方法でd,dを計算するためには、幾つかの体系が必要とされる。
【0016】
前述の論考はCRTを用いる応用法に焦点を当てているが、全ての応用法がCRTを用いるわけではない。幾つかの応用法は、秘密鍵演算が(より高価ではあるが)より単純な演算であれば、CRTを用いずに秘密鍵演算を行う。幾つかのこのような応用法において、記憶空間および安全性は、未だに重要な問題である。
【0017】
秘密鍵を非CRTの応用法において記憶するための最も直接的な方法は、パラメータ{n,d}を記憶することである(ここで、nは公開モジュラスであり、dは秘密指数である)。この方法で秘密鍵を記憶するためには、4bビットを必要とする。
【0018】
代替案として、非CRTの応用法において、秘密鍵を、単に{p,q}として記憶することができる(ここで、p,qはnの素因数である)。秘密鍵演算が行われる毎に、n,dが、p,qという記憶された値から計算される。この方法で記憶される場合に、秘密鍵は2bビットを必要とする。このことは、鍵を{n,d}として記憶することに対して2倍の節約になる。n=pqであるので、p,qからnを計算することは、1回の乗算による演算である。このことは、巾剰余と比較して安価な演算であり、かつ、1回の演算であるので、p,qを暴露するという新たな脆弱性が導入されない。しかしながら、CRTの場合におけるd,dのように、p,qからdを計算することは、著しい計算支出となることがあり、かつ、p,qの値によって変動する計算順序に起因した安全性の脆弱性を導入し得る。
【0019】
【発明が解決しようとする課題】
したがって、本発明の目的は、全てのパラメータの組{p,q,d,d,v}よりも少ない記憶空間を用い、かつ、最小限のパラメータの組{p,q}よりも優れた計算効率を提供する、CRTの応用法のためのRSA秘密鍵のパラメータ化を提供することである。
【0020】
さらに、本発明の目的は、全てのパラメータの組{n,d}よりも少ない記憶空間を用い、かつ、最小限のパラメータの組{p,q}よりも優れた計算効率を提供する、非CRTの応用法のためのRSA秘密鍵のパラメータ化を提供することである。
【0021】
さらに、本発明の目的は、計算順序が素因数p,qの値とは無関係であり、これにより、このような依存関係を悪用した攻撃に対する脆弱性が低減するような方法で、CRTパラメータd,dと、非CRTパラメータdとを計算するための手段を提供することである。
【0022】
【課題を解決するための手段】
従来技術についてのこれらのおよび他の欠点を克服するために、本明細書に開示されるのは、暗号化秘密鍵の記憶/回復体系を提供するための装置および方法であり、両方の体系が、空間の必要条件を減少させ、かつ、安全性を高めるものである。より詳細には、本発明のシステムは、以前に用いられていない記憶されたパラメータから秘密鍵を得るための手段を提供し、かつ、或るパラメータを計算する一方で同時に安全性の脆弱性を低減させるための手段を提供する。
【0023】
本発明の一特徴は、CRTパラメータd,dと、非CRTパラメータdとを、より小さなパラメータk,k,kにそれぞれ置き換えることである。k,k,kの値は、
(p−1) mod e=1;
(q−1) mod e=1;
k(p−1)(q−1) mod e=1;
という関係を満たす値である。
【0024】
,k,kの各々は、1以上(e−1)以下の範囲の値を有する。したがって、各々は、公開指数eを記憶するために必要なビット数と同じビットしか必要としない。一般的に好まれるe=216+1の場合に、k,k,kの各々については、16ビット値(k−1),(k−1),(k−1)としてそれぞれ記憶することができる。
【0025】
対照的に、d,dは各々がbビットの記憶量を必要とし、かつ、dは2bビットの記憶量を必要とする(ここで、bは素因数p,qにおけるビット数である)。典型的なbの値は、1024ビットを有する公開モジュラスに対応する512である。この典型的な場合において、d,dは各々がk,kよりも32倍多い記憶空間を必要とし、かつ、dはkよりも64倍多い記憶空間を必要とする。
【0026】
,kを記憶するCRTの応用法は、
=[1+(p−1)(e−k)]/e;
=[1+(q−1)(e−k)]/e;
という計算により、d,dを回復することができる。
kを記憶する非CRTの応用法は、
d=[1+(p−1)(q−1)(e−k)]/e;
という計算により、dを回復することができる。
これらの計算の各々において、“/”は、整数の除算(integer division)を表す(各々の場合に、被除数(dividend)は、除数(divisor)の倍数であるので、余りは存在しない)。これらの計算が正しい結果をもたらすことの証明は、この要約の最後において与えられる。
【0027】
,d,dについてのこれらの計算は、前記応用法が公開指数eを除数とする除算を行うことを必要とする。幾つかの応用法において、除算は不適当でありかつ望ましくない演算である。さらに、応用法が通常の長除法(long division)の演算系列を用いた除算を実施すれば、演算の順序はp,qの値に依存し、これにより、秘密鍵がこのような依存関係を悪用した攻撃に対して脆弱なものとなり得る。
【0028】
除算の必要性を回避するために、CRTの応用法は、
ue mod 2=1であるようなuを計算する;
=[1+(p−1)(e−k)]u mod 2
=[1+(q−1)(e−k)]u mod 2
という計算を用いて、d,dを回復することができる。
非CRTの応用法は、
te mod 22b=1であるようなtを計算する;
d=[1+(p−1)(q−1)(e−k)]t mod 22b
という計算を経て、除算を用いずにdを回復することができる。
これらの計算が正しい結果をもたらすことの証明は、この要約の最後において与えられる。
【0029】
u,tについての計算をしばらく無視すると、d,d,dを回復するためのこれらの計算が計算上安価でありかつ安全性の脆弱性を導入しないことが明らかである。各計算は、2つまたは3つの整数の乗算と、3つまたは4つの整数の加算/減算と、“mod 2”演算または“mod 22b”演算とからなる。乗算、加算、および、減算という演算は、巾剰余を実施するために用いられる演算と類似している。1回の巾剰余は、このような演算を何千個も用いるので、演算が数回多いために追加される負担は無視できるものである。“mod 2”演算は単にbビットへの切り捨てであり、かつ、“mod 22b”演算は2bビットへの切り捨てである(これらもまた、無視できるものである)。演算の順序はp,qの値に依存しないので、このような依存関係を悪用した攻撃に対する新たな脆弱性を導入せずに計算を実施することができる。
【0030】
ところで、u,tの計算に目を向けると、安全性の問題が存在しないことを理解することは容易である(前記計算は秘密鍵を必要としないので、該計算は、自身が実施される方法の如何を問わず、秘密鍵に対する攻撃の可能性を導入することはない)。以下のように、計算上安価であることもまた事実である。
【0031】
第一に、公開指数eが全ての秘密鍵に対して同じである場合について考慮する。この場合に、uまたはtは固定値であるので、全ての秘密鍵のために単に一度記憶され、かつ、必要に応じて検索され得る。当該の秘密鍵が様々な長さであっても(すなわち、bの値が秘密鍵に応じて変動する場合であっても)、uまたはtのための値を1つだけ記憶すればよく、この値は、bの最大値に対応する値となる。最大値以外のbの値について、記憶された値を、uについて“mod 2b&qoutを用い、または、tについて“mod 22b&qoutを用いて、単に切り捨てることができる。一般的に好まれるe=216+1の場合には、u,tを記憶することさえも不要である。どちらも、
u=[1+(232−216)+(264−248)+(296−280)+(2128−2112)+…] mod 2
t=[1+(232−216)+(264−248)+(296−280)+(2128−2112)+…] mod 22b
という安価な計算を用いて生成することができる。e=3、または、e=17のような他の通常的なeの選択についても、同様の計算を得ることができる。
【0032】
第二に、公開指数eが各々の秘密鍵に対して異なりかつ任意のものである汎用的な場合について考慮する。この場合に、応用法は、(2または22bのような)2の累乗であるモジュラスに関する数の逆数を計算する汎用アルゴリズムを用いて、uまたはtを計算する必要がある。このようなアルゴリズムは十分に公知であり、かつ、計算上安価である。多くの応用法において、このようなアルゴリズムは巾剰余演算の一部として既に実施されている(詳細には、巾剰余を実施するために一般的に好まれる手段であるモンゴメリ乗算(Montgomery multiplication)を用いる多くの応用法は、このようなアルゴリズムを有している)。巾剰余演算についての支出と比較して、このようなアルゴリズムを実行する場合の計算支出は、通常は少ないものである。
【0033】
本明細書内での論考は、公開モジュラスnが2つの素数p,qの積である場合に焦点を当ててきた。このことはRSA体系において通常の状態である。しかしながら、RSA体系については、j個の素数の積であるモジュラスへ一般化することができる(ここで、jは整数(j≧2)である)。このような一般化については、米国特許第5,848,159号明細書に説明されている。本発明は、一般化体系に適用されるものである。例えば、素因数p,p,…,pを備えたCRTの応用法について考慮する。d=d mod (p−1)(i=1,2,…,j)により定義される、秘密指数dのj個の例が存在する。本発明を適用するために、各々のdは、鍵が記憶される時にkに置き換えられる(ここで、kは、k(p−1) mod e=1であるような値である)。kからdを回復するためには、d=[1+(p−1)(e−k)]/e、または、d=[1+(p−1)(e−k)]u mod 2biを計算する。ここで、bはp<2biであるような整数であり、かつ、uはeu mod 2bi=1を満たす値である。(ただし、上記の記載における“2bi”は、いずれも“2のb乗”を表すものとする。)
【0034】
,d,dについての公式を証明する。第一に、ed mod (p−1)=1である旨を示すことにより、
=[1+(p−1)(e−k)]/e …(1)
という公式がdについての正しい値をもたらすことが証明される。
【0035】
a=1+(p−1)(e−k)であるとする。第一に、公式(1)内の除算演算が整数値をもたらすように、aがeの倍数であることを示す必要がある。定義により、k(p−1) mod e=1である。したがって、k(p−1)−1はeの倍数である。a=e(p−1)−[k(p−1)−1]であるので、その結果、aはeの倍数ということになる。
【0036】
ところで、dを、(1)のようなdとする。その結果、ed mod (p−1)=a mod (p−1)=1である。このことは、公式(1)を証明するものである。
【0037】
次に、ed mod (p−1)=1である旨を示すことにより、
=[1+(p−1)(e−k)]u mod 2 …(2)
という公式がdについての正しい値をもたらすことを証明する。
【0038】
再び、a=1+(p−1)(e−k)であるとする。aがeの倍数であるのでa=ce(ここで、cは整数)と書くことができる旨については、以前に示した。0≦(p−1)<2、かつ、0≦(e−k)≦eであるので、その結果、0<a<e2、したがって、0<c<2ということになる。ところで、dを、(2)のようなdとする。その結果、
ed mod (p−1)
=e[au mod 2] mod (p−1)
=e[cue mod 2] mod (p−1)
=e[c mod 2] mod (p−1)
=ec mod (p−1)
=a mod (p−1)
=1
となる。
このことは、公式(2)を証明するものである。
【0039】
=[1+(q−1)(e−k)]/e …(3)
=[1+(q−1)(e−k)]u mod 2 …(4)
という公式についての証明は、dをdに置き換え、kをkに置き換え、かつ、pをqに置き換えれば、公式(1),(2)についての証明と同一である。
【0040】
d=[1+(p−1)(q−1)(e−k)]/e …(5)
d=[1+(p−1)(q−1)(e−k)]t mod 22b …(6)
という公式についての証明は、公式(1),(2)についての証明と同様である。(5),(6)についての立論は、dをdに置き換え、kをkに置き換え、(p−1)を(p−1)(q−1)に置き換え、かつ、2を22bに置き換えれば、それぞれ、公式(1),(2)についての証明と同一である。各々の場合の立論の結論は、ed mod (p−1)(q−1)=1ということである。このことから、ed mod (p−1)=ed mod (q−1)=1ということになる。
【0041】
第一の観点から検討した場合に、プロセッサと、前記プロセッサに動作可能に連結された不揮発性メモリ空間と、全てのパラメータの組{p,q,d,d,v}よりも少ない記憶空間を利用して、かつ、最小限のパラメータの組{p,q}よりも優れた計算効率を提供して、前記不揮発性メモリ空間に記憶された秘密鍵パラメータの組とを組み合わせて具備し、前記秘密鍵を、前記記憶された秘密鍵パラメータの組から回復できる、暗号化システムの秘密鍵回復装置が開示される。
【0042】
他の観点から検討した場合に、秘密鍵を回復するための方法であって、秘密鍵パラメータをメモリ空間に記憶する段階と、前記秘密鍵パラメータのために、全てのパラメータの組{n,d}よりも少ない記憶空間を利用する段階と、最小限のパラメータの組{p,q}よりも優れた計算効率を提供する段階とを組み合わせて具備することを特徴とする方法が開示される。
【0043】
【発明の実施の形態】
当業者であれば、以下の本発明についての説明が説明的なものに過ぎず、決して制限的なものではないことを理解するだろう。本発明の他の実施形態についても、この開示内容の支援を受けた当業者により想到されるだろう。
【0044】
図1は、本発明を利用することが可能な暗号化システム10を説明している。暗号化システム10は、I/Oポート12を経て自身に提供されたメッセージに署名し、かつ、該メッセージを解読する。暗号化システム10は、署名および解読を行うために、RSA体系を用いる。暗号化システム10は、該暗号化システム10の全ての演算を制御するプロセッサ14を有する。暗号化システム10は、署名および解読の際にRSA体系内で用いられる計算を促進する算術コプロセッサ(ACP)16を有する。署名および解読を行うために用いられる秘密鍵は、暗号化システム10内の不揮発性記憶装置18に記憶される。
【0045】
暗号化システム10は、I/Oポート12を経て自身に与えられた指令にしたがって、不揮発性記憶装置18内の秘密鍵の集合を記憶することが可能であり、かつ、特定の署名および解読のために用いるべき秘密鍵を選択することが可能である。暗号化システム10は、不揮発性記憶装置18内に記憶されたあらゆる秘密鍵に対応する公開鍵を計算することが可能であり、かつ、公開鍵をI/Oポート12を経て外部装置20へ送信することが可能である。
【0046】
暗号化システム10は、秘密鍵を生成することが可能であり、かつ、これらを不揮発性記憶装置18に記憶することが可能である。秘密鍵を生成する時に、暗号化システム10は、秘密鍵の素因数p,qが任意に選ばれることを保証するために、乱数生成器(random number generator:RNG)22を用いる。RNG22は、p,qを生成するアルゴリズムに適用される乱数シード(random seed)を提供する。秘密鍵を記憶する時に、暗号化システム10は、p,qを記憶する代わりに前記シードを記憶することができ、秘密鍵が署名および解読のために用いられる毎に前記アルゴリズムをシードに適用することによりp,qの値を回復する。
【0047】
暗号化システム10は、さらに、外部装置20からI/Oポート12を経て自身に提供された秘密鍵を受け入れることが可能であり、かつ、該秘密鍵を不揮発性記憶装置18に記憶することが可能である。外部から提供された秘密鍵については、暗号化システム10の不揮発性記憶装置18内に既に存在する秘密鍵の1つに対応する公開鍵を用いて、外部装置により暗号化することができる。このような場合に、暗号化システム10は、暗号化された秘密鍵を、不揮発性記憶装置18内に既に存在する秘密鍵を用いて解読し、次に、解読された秘密鍵を不揮発性記憶装置18に記憶する。
【0048】
秘密鍵が暗号化システム10により生成されたのか、または、外部装置20により提供されたのかとは関係なく、暗号化システム10は、安全性の脆弱性を導入せずに秘密鍵を記憶しかつ該秘密鍵を迅速に回復するために必要な不揮発性記憶装置18の量を低減させるために、本発明を用いることが可能である。暗号化システム10は、記憶空間〜対〜回復速度の折り合いをつけるように本発明を適用できる方法について、多数の関連した変形例を有する。
【0049】
第1例において、今から図2を参照すると、最初に、秘密鍵パラメータを、{p,q,k,k,v}として記憶する。ここで、p,qは公開モジュラスの素因数であり、vはpv mod q=1を満たす値であり、kはk(p−1) mod e=1(eは公開指数)を満たす値であり、かつ、kはk(q−1) mod e=1を満たす値である。{p,q,d,d,v}(ここで、d=d mod (p−1)、d=d mod (q−1)、かつ、dは秘密指数である)という通常のCRT形式で秘密鍵を回復するために、d=[1+(p−1)(e−k)]u mod 2と、d=[1+(q−1)(e−k)]u mod 2とを計算する(ここで、bはp<2かつq<2であるような整数であり、かつ、uはue mod 2=1を満たす値である)。
【0050】
第2例において、今から図3を参照すると、最初に、秘密鍵パラメータを、{p,q,k,k}として記憶する(ここで、p,q,k,kは第1例の場合と同様である)。秘密鍵を回復するために、最初に、pv mod q=1を満たす値vを計算する。次に、{p,q,k,k}を用いて、第1例の場合と同様に進行する。
【0051】
第3例において、今から図4を参照すると、最初に、秘密鍵パラメータを、{seed,k,k,v}として記憶する(ここで、seedは公開モジュラスの素因数p,qを生成するアルゴリズムへの入力であり、k,k,vは第1例の場合と同様である)。秘密鍵を回復するために、最初に、アルゴリズムをseedに適用してp,qの値を回復する。次に、{p,q,k,k,v}を用いて、第1例の場合と同様に進行する。多数のシードアルゴリズムが従来技術において公知である。例えば、[FIPS186]米国商務省/国立標準技術研究所(U.S. Department of Commerce/National Institute of Standard and Technology)の”Digital Signature Standard(DSS)”(FIPS PUB 186−2, January 27, 2000)の”Appendix 2”における、乱数シードから素数を生成するアルゴリズムを参照されたい。
【0052】
第4例において、今から図5を参照すると、最初に、秘密鍵パラメータを、{seed,k,k}として記憶する(ここで、seed,k,kは第3例の場合と同様である)。秘密鍵を回復するために、最初に、アルゴリズムをseedに適用してp,qの値を回復する。次に、{p,q,k,k}を用いて、第2例の場合と同様に進行する。
【0053】
代替的実施形態において、最初に、秘密鍵パラメータを、4つの前例にて説明したフォーマットのいずれかを用いて記憶する。秘密鍵を回復する時に、4つの前例にて説明したd,dについての計算を用いる代わりに、d=[1+(p−1)(e−k)]/eと、d=[1+(q−1)(e−k)]/eとを計算する。さらに、前例についての他の代替案として、k,kを記憶する代わりに、k,kをp,q,eから計算することができる。各々については、ユークリッドのアルゴリズム、または、その通常的な変形例を用いて計算することができるが、このことは、演算の順序がp,qに依存するという理由から、安全性の脆弱性を導入し得る。代替案として、eが素数である場合に、一般的に好まれるe=216+1の値のように、各々については、巾剰余を用いて、k=(p−1)e−2 mod eと、k=(q−1)e−2 mod eとを用いて計算することができる(これについては、演算の順序をp,qとは無関係にさせることができるという理由から、安全性の脆弱性を導入せずに行うことができる)。eは小さな数であるので、k,kの計算支出は、RSA秘密鍵演算の計算支出と比較して、無視できる頻度が高い。
【0054】
第5例において、今から図6を参照すると、最初に、秘密鍵パラメータを、{p,q,k}として記憶する。ここで、p,qは公開モジュラスの素因数であり、kはk(p−1)(q−1) mod e=1(eは公開指数)を満たす値である。{n,d}(ここで、nは公開モジュラスであり、かつ、dは秘密指数である)という通常の非CRT形式で秘密鍵を回復するために、n=pqと、d=[1+(p−1)(q−1)]t mod 22bとを計算する(ここで、bはp<2かつq<2であるような整数であり、かつ、tはte mod 22b=1を満たす値である)。
【0055】
第6例において、今から図7を参照すると、最初に、秘密鍵パラメータを、第5例におけるフォーマットを用いて記憶する。秘密鍵を回復する時に、第5例にて説明したdについての計算を用いる代わりに、d=[1+(p−1)(q−1)]/eを計算する。
【0056】
第7例において、今から図8を参照すると、最初に、秘密鍵パラメータを、第5例におけるフォーマットを用いて記憶する。秘密鍵を回復する時に、最初に、2つの前例(第5例または第6例)のいずれかの計算を用いて秘密指数dを計算する。次に、{p,q,d,d,v}という通常のCRT形式で秘密鍵を回復するために、d=d mod (p−1)と、d=d mod (q−1)とを計算し、かつ、pv mod q=1を満たす値vを計算する。
【0057】
本発明の実施形態および応用法について示しかつ説明してきた一方で、本明細書内の発明的概念から逸脱することなく前述した内容よりもさらに多くの修正形態が可能であることが、当業者には明白であろう。したがって、本発明は、添付の請求項の真意以外のものによって制約されるべきではない。
【図面の簡単な説明】
【図1】本発明の暗号化システムの環境についての概略図である。
【図2】本発明の第1の例示的実施形態のフローチャートである。
【図3】本発明の第2の例示的実施形態のフローチャートである。
【図4】本発明の第3の例示的実施形態のフローチャートである。
【図5】本発明の第4の例示的実施形態のフローチャートである。
【図6】本発明の第5の例示的実施形態のフローチャートである。
【図7】本発明の第6の例示的実施形態のフローチャートである。
【図8】本発明の第7の例示的実施形態のフローチャートである。
【符号の説明】
10 暗号化システム
12 I/Oポート
14 プロセッサ
16 算術コプロセッサ(ACP)
18 不揮発性記憶装置
20 外部装置
22 乱数生成器(RNG)

Claims (68)

  1. プロセッサと、
    前記プロセッサに動作可能に連結された不揮発性メモリ空間と、
    全てのパラメータの組{p,q,d,d,v}よりも少ない記憶空間を利用して、かつ、最小限のパラメータの組{p,q}よりも優れた計算効率を提供して、前記不揮発性メモリ空間に記憶された秘密鍵パラメータの組と
    を組み合わせて具備し、
    前記秘密鍵を、前記記憶された秘密鍵パラメータの組から回復できることを特徴とする暗号化システムの秘密鍵回復装置。
  2. 前記秘密鍵パラメータの組は、パラメータ{p,q,k,k,v}により定義され、
    p,qは公開モジュラスの所定の素因数であり、k,kはk(p−1) mod e=1と、k(q−1) mod e=1とから得られ、eは所定の公開指数であり、かつ、vはpv mod q=1から得られることを特徴とする請求項1に記載の暗号化システムの秘密鍵回復装置。
  3. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と
    をさらに具備し、
    bはp<2かつq<2であるような整数であり、かつ、ue mod 2=1であることを特徴とする請求項2に記載の暗号化システムの秘密鍵回復装置。
  4. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項3に記載の暗号化システムの秘密鍵回復装置。
  5. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]/eからdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]/eからdを計算するように構成設定されたd計算器と
    をさらに具備することを特徴とする請求項2に記載の暗号化システムの秘密鍵回復装置。
  6. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項5に記載の暗号化システムの秘密鍵回復装置。
  7. 前記秘密鍵パラメータの組は、パラメータ{p,q,k,k}により定義され、
    p,qは公開モジュラスの所定の素因数であり、k,kはk(p−1) mod e=1と、k(q−1) mod e=1とから得られ、かつ、eは所定の公開指数であることを特徴とする請求項1に記載の暗号化システムの秘密鍵回復装置。
  8. 前記プロセッサと能動的に協働し、かつ、pv mod q=1からvを計算するように構成設定されたv計算器をさらに具備することを特徴とする請求項7に記載の暗号化システムの秘密鍵回復装置。
  9. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と
    をさらに具備し、
    bはp<2かつq<2であるような整数であり、かつ、ue mod 2=1であることを特徴とする請求項8に記載の暗号化システムの秘密鍵回復装置。
  10. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項9に記載の暗号化システムの秘密鍵回復装置。
  11. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]/eからdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]/eからdを計算するように構成設定されたd計算器と
    をさらに具備することを特徴とする請求項8に記載の暗号化システムの秘密鍵回復装置。
  12. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項10に記載の暗号化システムの秘密鍵回復装置。
  13. 前記秘密鍵パラメータの組は、パラメータ{seed,k,k,v}により定義され、
    ,kはk(p−1) mod e=1と、k(q−1) mod e=1とから得られ、eは所定の公開指数であり、vはpv mod q=1から得られ、かつ、seedは乱数生成器から得られる値であることを特徴とする請求項1に記載の暗号化システムの秘密鍵回復装置。
  14. 前記プロセッサと能動的に協働し、かつ、前記seedからpを計算するように構成設定されたp計算器と
    前記プロセッサと能動的に協働し、かつ、前記seedからqを計算するように構成設定されたq計算器と
    をさらに具備することを特徴とする請求項13に記載の暗号化システムの秘密鍵回復装置。
  15. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と
    をさらに具備し、
    bはp<2かつq<2であるような整数であり、かつ、ue mod 2=1であることを特徴とする請求項14に記載の暗号化システムの秘密鍵回復装置。
  16. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項15に記載の暗号化システムの秘密鍵回復装置。
  17. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]/eからdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]/eからdを計算するように構成設定されたd計算器と
    をさらに具備することを特徴とする請求項14に記載の暗号化システムの秘密鍵回復装置。
  18. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項17に記載の暗号化システムの秘密鍵回復装置。
  19. 前記秘密鍵パラメータの組は、パラメータ{seed,k,k}により定義され、
    ,kはk(p−1) mod e=1と、k(q−1) mod e=1とから得られ、eは所定の公開指数であり、かつ、seedは乱数生成器から得られる値であることを特徴とする請求項1に記載の暗号化システムの秘密鍵回復装置。
  20. 前記プロセッサと能動的に協働し、かつ、前記seedからpを計算することが可能なp計算器と
    前記プロセッサと能動的に協働し、かつ、前記seedからqを計算することが可能なq計算器と
    をさらに具備することを特徴とする請求項19に記載の暗号化システムの秘密鍵回復装置。
  21. 前記プロセッサと能動的に協働し、かつ、pv mod q=1からvを計算するように構成設定されたv計算器をさらに具備することを特徴とする請求項20に記載の暗号化システムの秘密鍵回復装置。
  22. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と
    をさらに具備し、
    bはp<2かつq<2であるような整数であり、かつ、ue mod 2=1であることを特徴とする請求項21に記載の暗号化システムの秘密鍵回復装置。
  23. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項22に記載の暗号化システムの秘密鍵回復装置。
  24. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]/eからdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]/eからdを計算するように構成設定されたd計算器と
    をさらに具備することを特徴とする請求項21に記載の暗号化システムの秘密鍵回復装置。
  25. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項24に記載の暗号化システムの秘密鍵回復装置。
  26. 前記秘密鍵パラメータの組は、パラメータ{p,q,v}により定義され、
    p,qは公開モジュラスの所定の素因数であり、かつ、vはpv mod q=1から得られることを特徴とする請求項1に記載の暗号化システムの秘密鍵回復装置。
  27. 前記プロセッサと能動的に協働し、かつ、k(p−1) mod e=1からkを計算するように構成設定されたk計算器と、
    前記プロセッサと能動的に協働し、かつ、k(q−1) mod e=1からkを計算するように構成設定されたk計算器と
    をさらに具備し、
    eは所定の公開指数であることを特徴とする請求項26に記載の暗号化システムの秘密鍵回復装置。
  28. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と
    をさらに具備し、
    bはp<2かつq<2であるような整数であり、かつ、ue mod 2=1であることを特徴とする請求項27に記載の暗号化システムの秘密鍵回復装置。
  29. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項28に記載の暗号化システムの秘密鍵回復装置。
  30. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]/eからdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]/eからdを計算するように構成設定されたd計算器と
    をさらに具備することを特徴とする請求項27に記載の暗号化システムの秘密鍵回復装置。
  31. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項30に記載の暗号化システムの秘密鍵回復装置。
  32. 前記秘密鍵パラメータの組は、パラメータ{p,q}により定義され、
    p,qは公開モジュラスの所定の素因数であることを特徴とする請求項1に記載の暗号化システムの秘密鍵回復装置。
  33. 前記プロセッサと能動的に協働し、かつ、k(p−1) mod e=1からkを計算するように構成設定されたk計算器と、
    前記プロセッサと能動的に協働し、かつ、k(q−1) mod e=1からkを計算するように構成設定されたk計算器と
    をさらに具備し、
    eは所定の公開指数であることを特徴とする請求項32に記載の暗号化システムの秘密鍵回復装置。
  34. 前記プロセッサと能動的に協働し、かつ、pv mod q=1からvを計算するように構成設定されたv計算器をさらに具備することを特徴とする請求項33に記載の暗号化システムの秘密鍵回復装置。
  35. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と
    をさらに具備し、
    bはp<2かつq<2であるような整数であり、かつ、ue mod 2=1であることを特徴とする請求項34に記載の暗号化システムの秘密鍵回復装置。
  36. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項35に記載の暗号化システムの秘密鍵回復装置。
  37. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]/eからdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]/eからdを計算するように構成設定されたd計算器と
    をさらに具備することを特徴とする請求項34に記載の暗号化システムの秘密鍵回復装置。
  38. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項37に記載の暗号化システムの秘密鍵回復装置。
  39. 前記秘密鍵パラメータの組は、パラメータ{seed,v}により定義され、
    vはpv mod q=1から得られ、かつ、seedは乱数生成器から得られる値であることを特徴とする請求項1に記載の暗号化システムの秘密鍵回復装置。
  40. 前記プロセッサと能動的に協働し、かつ、前記seedからpを計算するように構成設定されたp計算器と
    前記プロセッサと能動的に協働し、かつ、前記seedからqを計算するように構成設定されたq計算器と
    をさらに具備することを特徴とする請求項39に記載の暗号化システムの秘密鍵回復装置。
  41. 前記プロセッサと能動的に協働し、かつ、k(p−1) mod e=1からkを計算するように構成設定されたk計算器と、
    前記プロセッサと能動的に協働し、かつ、k(q−1) mod e=1からkを計算するように構成設定されたk計算器と
    をさらに具備し、
    eは所定の公開指数であることを特徴とする請求項40に記載の暗号化システムの秘密鍵回復装置。
  42. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と
    をさらに具備し、
    bはp<2かつq<2であるような整数であり、かつ、ue mod 2=1であることを特徴とする請求項41に記載の暗号化システムの秘密鍵回復装置。
  43. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項42に記載の暗号化システムの秘密鍵回復装置。
  44. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]/eからdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]/eからdを計算するように構成設定されたd計算器と
    をさらに具備することを特徴とする請求項41に記載の暗号化システムの秘密鍵回復装置。
  45. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項44に記載の暗号化システムの秘密鍵回復装置。
  46. 前記秘密鍵パラメータの組は、パラメータ{seed}により定義され、
    seedは乱数生成器から得られる値であることを特徴とする請求項1に記載の暗号化システムの秘密鍵回復装置。
  47. 前記プロセッサと能動的に協働し、かつ、前記seedからpを計算することが可能なp計算器と
    前記プロセッサと能動的に協働し、かつ、前記seedからqを計算することが可能なq計算器と
    をさらに具備することを特徴とする請求項46に記載の暗号化システムの秘密鍵回復装置。
  48. 前記プロセッサと能動的に協働し、かつ、k(p−1) mod e=1からkを計算するように構成設定されたk計算器と、
    前記プロセッサと能動的に協働し、かつ、k(q−1) mod e=1からkを計算するように構成設定されたk計算器と
    をさらに具備し、
    eは所定の公開指数であることを特徴とする請求項47に記載の暗号化システムの秘密鍵回復装置。
  49. 前記プロセッサと能動的に協働し、かつ、pv mod q=1からvを計算するように構成設定されたv計算器をさらに具備することを特徴とする請求項48に記載の暗号化システムの秘密鍵回復装置。
  50. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]u mod 2からdを計算するように構成設定されたd計算器と
    をさらに具備し、
    bはp<2かつq<2であるような整数であり、かつ、ue mod 2=1であることを特徴とする請求項49に記載の暗号化システムの秘密鍵回復装置。
  51. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項50に記載の暗号化システムの秘密鍵回復装置。
  52. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(e−k)]/eからdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=[1+(q−1)(e−k)]/eからdを計算するように構成設定されたd計算器と
    をさらに具備することを特徴とする請求項49に記載の暗号化システムの秘密鍵回復装置。
  53. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項52に記載の暗号化システムの秘密鍵回復装置。
  54. プロセッサと、
    前記プロセッサに動作可能に連結された不揮発性メモリ空間と、
    全てのパラメータの組{n,d}よりも少ない記憶空間を利用して、かつ、最小限のパラメータの組{p,q}よりも優れた計算効率を提供して、前記不揮発性メモリ空間に記憶された秘密鍵パラメータの組と
    を組み合わせて具備し、
    前記秘密鍵を、前記記憶された秘密鍵パラメータの組から回復できることを特徴とする暗号化システムの秘密鍵回復装置。
  55. 前記秘密鍵パラメータの組は、パラメータ{p,q,k}により定義され、
    p,qは公開モジュラスの所定の素因数であり、kはk(p−1)(q−1) mod e=1から得られ、eは所定の公開指数であることを特徴とする請求項54に記載の暗号化システムの秘密鍵回復装置。
  56. 前記プロセッサと能動的に協働し、かつ、n=pqからnを計算するように構成設定されたn計算器をさらに具備することを特徴とする請求項55に記載の暗号化システムの秘密鍵回復装置。
  57. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(q−1)]t mod 22bからdを計算するように構成設定されたd計算器
    をさらに具備し、
    te mod 22b=1であり、かつ、bはp<2かつq<2であるような整数であることを特徴とする請求項56に記載の暗号化システムの秘密鍵回復装置。
  58. 前記記憶されかつ計算された値から、秘密鍵パラメータ{n,d}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項57に記載の暗号化システムの秘密鍵回復装置。
  59. 前記プロセッサと能動的に協働し、かつ、d=[1+(p−1)(q−1)]/eからdを計算するように構成設定されたd計算器
    をさらに具備することを特徴とする請求項56に記載の暗号化システムの秘密鍵回復装置。
  60. 前記記憶されかつ計算された値から、秘密鍵パラメータ{n,d}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項59に記載の暗号化システムの秘密鍵回復装置。
  61. 前記プロセッサと能動的に協働し、かつ、d=d mod (p−1)からdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=d mod (q−1)からdを計算するように構成設定されたd計算器と
    をさらに具備することを特徴とする請求項57に記載の暗号化システムの秘密鍵回復装置。
  62. 前記プロセッサと能動的に協働し、かつ、pv mod q=1からvを計算するように構成設定されたv計算器をさらに具備することを特徴とする請求項61に記載の暗号化システムの秘密鍵回復装置。
  63. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項62に記載の暗号化システムの秘密鍵回復装置。
  64. 前記プロセッサと能動的に協働し、かつ、d=d mod (p−1)からdを計算するように構成設定されたd計算器と、
    前記プロセッサと能動的に協働し、かつ、d=d mod (q−1)からdを計算するように構成設定されたd計算器と
    をさらに具備することを特徴とする請求項59に記載の暗号化システムの秘密鍵回復装置。
  65. 前記プロセッサと能動的に協働し、かつ、pv mod q=1からvを計算するように構成設定されたv計算器をさらに具備することを特徴とする請求項64に記載の暗号化システムの秘密鍵回復装置。
  66. 前記記憶されかつ計算された値から、秘密鍵パラメータ{p,q,d,d,v}をアセンブルするための秘密鍵パラメータアセンブラをさらに具備することを特徴とする請求項65に記載の暗号化システムの秘密鍵回復装置。
  67. 秘密鍵を回復するための方法であって、
    秘密鍵パラメータをメモリ空間に記憶する段階と、
    前記秘密鍵パラメータのために、全てのパラメータの組{p,q,d,d,v}よりも少ない記憶空間を利用する段階と、
    最小限のパラメータの組{p,q}よりも優れた計算効率を提供する段階と
    を組み合わせて具備することを特徴とする方法。
  68. 秘密鍵を回復するための方法であって、
    秘密鍵パラメータをメモリ空間に記憶する段階と、
    前記秘密鍵パラメータのために、全てのパラメータの組{n,d}よりも少ない記憶空間を利用する段階と、
    最小限のパラメータの組{p,q}よりも優れた計算効率を提供する段階と
    を組み合わせて具備することを特徴とする方法。
JP2002515768A 2000-07-28 2001-07-26 暗号化秘密鍵を記憶/回復する方法および装置 Abandoned JP2004505548A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/627,927 US6959091B1 (en) 2000-07-28 2000-07-28 Cryptography private key storage and recovery method and apparatus
PCT/US2001/023676 WO2002011360A2 (en) 2000-07-28 2001-07-26 Cryptography private key storage and recovery method and apparatus

Publications (1)

Publication Number Publication Date
JP2004505548A true JP2004505548A (ja) 2004-02-19

Family

ID=24516709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002515768A Abandoned JP2004505548A (ja) 2000-07-28 2001-07-26 暗号化秘密鍵を記憶/回復する方法および装置

Country Status (17)

Country Link
US (1) US6959091B1 (ja)
EP (1) EP1305907B1 (ja)
JP (1) JP2004505548A (ja)
KR (1) KR100737667B1 (ja)
CN (1) CN1314223C (ja)
AT (1) ATE320124T1 (ja)
AU (1) AU2001284673A1 (ja)
CA (1) CA2417520A1 (ja)
CY (1) CY1105328T1 (ja)
DE (1) DE60117813T2 (ja)
DK (1) DK1305907T3 (ja)
ES (1) ES2255568T3 (ja)
HK (1) HK1062510A1 (ja)
NO (1) NO20030415L (ja)
PT (1) PT1305907E (ja)
RU (1) RU2279766C2 (ja)
WO (1) WO2002011360A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299335A (ja) * 2007-05-31 2008-12-11 Thomson Licensing 圧縮rsa係数の計算方法
JP4765108B2 (ja) * 2002-06-19 2011-09-07 ジェムアルト エスアー 公開鍵暗号化方法のための電子鍵を生成するための方法およびこの方法を使用するセキュア・ポータブル・オブジェクト
JPWO2011040023A1 (ja) * 2009-09-29 2013-02-21 パナソニック株式会社 暗号化装置、復号化装置、暗号化方法、復号化方法、および暗号化復号化システム

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6959091B1 (en) * 2000-07-28 2005-10-25 Atmel Corporation Cryptography private key storage and recovery method and apparatus
CN1682484B (zh) * 2002-09-11 2012-03-21 德国捷德有限公司 受保护的密码计算
US7634659B2 (en) * 2002-09-20 2009-12-15 Cable Television Laboratories, Inc. Roaming hardware paired encryption key generation
US8023645B2 (en) 2005-08-19 2011-09-20 Nxp B.V. Circuit arrangement for and method of performing an inversion operation in a cryptographic calculation
CN101421973B (zh) * 2006-04-12 2014-01-29 艾利森电话股份有限公司 具有共享事务处理的多个远程通信功能的方法和装置
KR101491681B1 (ko) * 2007-02-27 2015-02-09 톰슨 라이센싱 압축된 rsa 계수들을 발생시키기 위한 방법 및 디바이스
TWI350454B (en) * 2007-12-10 2011-10-11 Phison Electronics Corp Anti-attacking method for private key, controller and storage device executing the same
US9444622B2 (en) * 2008-09-15 2016-09-13 Hewlett Packard Enterprise Development Lp Computing platform with system key
CN104506506B (zh) * 2014-12-15 2017-12-29 齐宇庆 一种电子信息安全存储系统及存储方法
FR3088452B1 (fr) * 2018-11-08 2023-01-06 Idemia France Procede de verification d'integrite d'une paire de cles cryptographiques et dispositif cryptographique

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848159A (en) 1996-12-09 1998-12-08 Tandem Computers, Incorporated Public key cryptographic apparatus and method
US6154541A (en) * 1997-01-14 2000-11-28 Zhang; Jinglong F Method and apparatus for a robust high-speed cryptosystem
FR2759806B1 (fr) * 1997-02-19 1999-04-23 Gemplus Card Int Systeme cryptographique comprenant un systeme de chiffrement et dechiffrement et un systeme de sequestre de cles, et les appareils et dispositifs associes
JPH1127253A (ja) * 1997-07-07 1999-01-29 Hitachi Ltd 鍵回復システム、鍵回復装置、鍵回復プログラムを記憶した記憶媒体、および鍵回復方法
US6708273B1 (en) * 1997-09-16 2004-03-16 Safenet, Inc. Apparatus and method for implementing IPSEC transforms within an integrated circuit
US6081598A (en) * 1997-10-20 2000-06-27 Microsoft Corporation Cryptographic system and method with fast decryption
US6959091B1 (en) * 2000-07-28 2005-10-25 Atmel Corporation Cryptography private key storage and recovery method and apparatus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4765108B2 (ja) * 2002-06-19 2011-09-07 ジェムアルト エスアー 公開鍵暗号化方法のための電子鍵を生成するための方法およびこの方法を使用するセキュア・ポータブル・オブジェクト
JP2008299335A (ja) * 2007-05-31 2008-12-11 Thomson Licensing 圧縮rsa係数の計算方法
JPWO2011040023A1 (ja) * 2009-09-29 2013-02-21 パナソニック株式会社 暗号化装置、復号化装置、暗号化方法、復号化方法、および暗号化復号化システム

Also Published As

Publication number Publication date
KR100737667B1 (ko) 2007-07-09
DK1305907T3 (da) 2006-06-26
WO2002011360A3 (en) 2002-06-13
PT1305907E (pt) 2006-07-31
CN1314223C (zh) 2007-05-02
CY1105328T1 (el) 2010-03-03
HK1062510A1 (en) 2004-11-05
NO20030415D0 (no) 2003-01-27
ES2255568T3 (es) 2006-07-01
EP1305907B1 (en) 2006-03-08
RU2279766C2 (ru) 2006-07-10
DE60117813T2 (de) 2006-10-05
WO2002011360A2 (en) 2002-02-07
ATE320124T1 (de) 2006-03-15
CN1466830A (zh) 2004-01-07
DE60117813D1 (de) 2006-05-04
EP1305907A2 (en) 2003-05-02
CA2417520A1 (en) 2002-02-07
KR20030075146A (ko) 2003-09-22
AU2001284673A1 (en) 2002-02-13
US6959091B1 (en) 2005-10-25
NO20030415L (no) 2003-03-28

Similar Documents

Publication Publication Date Title
JP4137385B2 (ja) 公開鍵および秘密鍵による暗号化方法
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
KR20020025630A (ko) 비밀 정보의 처리 장치, 프로그램 또는 시스템
US7912216B2 (en) Elliptic curve cryptosystem optimization using two phase key generation
EP3316125A1 (en) Method of generating an elliptic curve cryptographic key pair
JP2004505548A (ja) 暗号化秘密鍵を記憶/回復する方法および装置
JP2003513491A (ja) 物理的分析によるハッキングに対する母数指数化に基づく電子暗号ユニットの安全保護方法
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
Canard et al. On the implementation of a pairing-based cryptographic protocol in a constrained device
JP2002540484A (ja) 楕円曲線型の公開鍵暗号化アルゴリズムを用いる電子構成部品における対抗措置方法
US11824986B2 (en) Device and method for protecting execution of a cryptographic operation
US7248692B2 (en) Method of and apparatus for determining a key pair and for generating RSA keys
US6609141B1 (en) Method of performing modular inversion
EP3352411B1 (en) Method of generating cryptographic key pairs
US20050147241A1 (en) Computation method for modular exponentiation operation in decryption or signature generation
Kayode et al. Efficient RSA cryptosystem decryption based on Chinese remainder theorem and strong prime
CN1985458A (zh) 增强的自然蒙哥马利指数掩蔽
WO2008013154A1 (en) Extension filed multiplication program and extension filed multiplication device
CA2129203C (en) Public key cryptography utilizing elliptic curves
JP2001507479A (ja) ランダム抽出を必要とする暗号システムのためのハッシュ関数に基づく疑似ランダム生成器
US20230048825A1 (en) Method and device for code-based generation of a key pair for asymmetric cryptography
CA2640641C (en) Public key cryptography utilizing elliptic curves
Desoky Cryptography: Algorithms and standards
KR100808953B1 (ko) 모듈러곱셈 방법 및 상기 곱셈방법을 수행할 수 있는스마트카드
Al-Tuwaijry et al. A high speed RSA processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071025

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090602

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090602

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090605

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20100427