JP2007500863A - Rsaタイプの暗号アルゴリズムを安全に実施するための方法、および対応する構成要素 - Google Patents
Rsaタイプの暗号アルゴリズムを安全に実施するための方法、および対応する構成要素 Download PDFInfo
- Publication number
- JP2007500863A JP2007500863A JP2006521566A JP2006521566A JP2007500863A JP 2007500863 A JP2007500863 A JP 2007500863A JP 2006521566 A JP2006521566 A JP 2006521566A JP 2006521566 A JP2006521566 A JP 2006521566A JP 2007500863 A JP2007500863 A JP 2007500863A
- Authority
- JP
- Japan
- Prior art keywords
- value
- modulo
- algorithm
- rsa
- values
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/723—Modular exponentiation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/004—Countermeasures against attacks on cryptographic mechanisms for fault attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/302—Public 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7233—Masking, e.g. (A**e)+r mod n
- G06F2207/7242—Exponent masking, i.e. key masking, e.g. A**(e+r) mod n; (k+r).P
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7257—Random modification not requiring correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7271—Fault verification, e.g. comparing two values which should be the same, unless a computational fault occurred
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
- Storage Device Security (AREA)
- Communication Control (AREA)
- Detection And Correction Of Errors (AREA)
- Mobile Radio Communication Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
Description
本発明は、また、対応する電子構成要素に関する。
1つまたは複数の秘密番号を含む電気消去可能プログラマブル読出し専用メモリ(EEPROM)タイプの不揮発性メモリなど、マイクロプロセッサおよびメモリの周囲には、「ソフトウェア」アーキテクチャ、すなわちプログラム可能なアーキテクチャが形成される。アーキテクチャは、任意のアルゴリズムを実行するのに適切な非専門家アルゴリズムである。
それ故、このような構成要素またはカードは、送信されたデータの暗号化および/または受信データの解読、またはメッセージの認証またはディジタル署名のために、暗号アルゴリズムを実施する。
故障は、暗号アルゴリズムを実施しているハードウェアによる計算エラーに由来することもある。しかし、いずれの場合も、故障攻撃が発生したと見なされる。
様々なタイプの攻撃は、例えば、この用途分野で最も広く使用されているアルゴリズムであり、本発明が特に適用可能であるRSAアルゴリズム(その著者であるリベスト、シャミールおよびアドレマンにちなんで命名された)などの公開鍵暗号アルゴリズムで、特に可能である。
最初の公開鍵暗号および署名の体系は、1977年にリベスト、シャミールおよびアドレマンによって開発され、彼らはRSA暗号システムを発明した。RSAの安全性は、2つの素数の積である大きい数字を因数分解することの困難さに基づく。そのシステムは、最も広く使用されている公開鍵暗号システムである。これは、暗号法または署名法として使用することができる。
RSA暗号システムの原理は、以下の通りである。これはまず、RSAキーの対を生成することで構成される。
1)2つの離散的素数pおよびqを生成する。
2)n=pqおよびΦ(n)=(p−1)(q−1)を計算する。ここで、Φはオイラーのトーシェント関数またはオイラーのファイ関数と呼ばれる。
3)pgcd(e,Φ(n))=1になるように、ランダムに、または使用者の選択で1<e<Φ(n)である整数eを選択する。それ故、使用者はe=216+1またはe=3またはe=17であるように、eを小さく選択することができる。
4)e.d=1 modulo Φ(n) (1)
であるように、一意の整数d(ただし、1<d<Φ(n))を計算する。
5)公開鍵は(n,e)であり、秘密鍵はdまたは(d,p,q)である。
整数eおよびdはそれぞれ、「公開指数」および「秘密指数」と呼ばれる。整数nは「RSA法」と呼ばれる。
y=xe modulo n (2)
の計算に存し、xの公開演算は、例えば、メッセージxの暗号であってもよい。
Yd modulo n (3)
y=xe modulo n (2)
Yd modulo n (3)
ここで、e.d=1 modulo Φ(n)であるので、x=yd modulo nである。
dp=d modulo (p−1)、dq=d modulo (q−1)
およびiq=q−1 modulo p
edp=1 modulo (p−1)および
edq=1 modulo (q−1) (4)
xp=ydp modulo pおよびxq=ydq modulo q
x=CRT(xp,xq)=xq+q[iq(xp−xq) modulo p] (5)
特に、標準モードのRSAに対するDPA(およびSPA)タイプの攻撃を回避するために可能な1つの対策は、計算にランダム値を挿入することによってRSAのランダムな秘密演算(署名または解読)を実行することに存する。
x=yd−r.yr modulo n
ここで、rはランダムな整数である。しかし、その対策方法の欠点は、計算時間が2倍になることである。
x=y(d+r.Φ(n)) modulo n
ここで、rはランダムな整数である。
それ故、Φ(n)の値を知ることばかりでなく、公開指数eを知ることにも基づいて、その方法の変形が提案されている。(1)によってe.d=1 modulo Φ(n)が与えられ、したがってe.d−1=k.Φ(n)になるような整数kが存在する。
x=y(d+r.(ed−1)) modulo n
ここで、rはランダムな整数である。
しかし、実施するためには、この変形の対策は公開指数eの値を知る必要がある。残念ながら、多くの暗号用途で、RSAアルゴリズムの秘密演算を実施する構成要素またはデバイスは、特に秘密演算のみを実行する場合、常に公開指数eを有するとは限らない。それ故、その状況で、公開指数eは通常分からないか、使用不可能である。
他の上述したタイプの攻撃、すなわち「故障」攻撃に関して、これを回避するために可能な最善の保護は、秘密演算を適用することによって取得した値xが実際に公開演算の関係式xe=y modulo nを満足させるかどうか、標準モードで試験することに存する。満足させない場合は、暗号目的に使用されるのを防止するように、値yが戻されない。
これらの関係式が満足している場合は、RSAアルゴリズムの秘密演算を実行中に、エラーが発生しなかったことを確証することが可能である。
D1で開示された方法によって、特に、公開指数eが知られていない場合でも、上述したような最善の可能な保護を提供する対策、特に故障攻撃に対する対策を提供することが可能である。
特に、本発明の目的は、eの上記値が先験的に分かっている場合に、計算速度および複雑さが法外に厳しくない方法で、1組の所定の推定値から公開指数eの値を決定することに存し、指数eは、標準モードまたはCRTモードのRSAタイプ暗号アルゴリズムの特定のステップで実装される。
a)Eに属する任意のeiについて、Φ/eiがΦ(n)より小さくなるように、値
b)値Φを所定の計算に適用するステップと、
c)各eiについて、上記所定の計算の結果が値Φ/eiに等しいかどうかを試験するステップであって、
−等しい場合は、値eiをeに帰して、上記暗号アルゴリズムの計算に使用するためにeを記憶し、
−それ以外の場合は、値eを使用した暗号アルゴリズムの計算が実行不可能であることを遵守するステップとを含むことを特徴とする。
それ故、利点はモジュラ乗算が1回だけであることが明白である。
上記第1変形に関して、ステップb)の所定の計算は、以下のような値Cの計算である。
C=Φ.d modulo Φ(n)
ここで、dは、e.d=1 modulo Φ(n)であるようなRSAアルゴリズムの対応する秘密鍵であり、Φはオイラーのトーシェント関数である。
C=Φ.d modulo Φ(n)
ここで、dは、e.d=1 modulo Φ(n)であるようなRSAアルゴリズムの対応する秘密鍵であり、Φはカーマイケル関数である。
上記第2変形に関して、ステップb)の所定の計算は、以下のような値Cの計算である。
C=Φ.dp modulo (p−1)
ここで、dpは、e.dp=1 modulo (p−1)であるようなRSAアルゴリズムの対応する秘密鍵である。
C=Φ.dq modulo (q−1)
ここで、dqは、e.dq=1 modulo (q−1)であるようなRSAアルゴリズムの対応する秘密鍵である。
C1=Φ.dp modulo (p−1)
ここで、dpは、e.dp=1 modulo (p−1)であるようなRSAアルゴリズムの対応する秘密鍵である。
ここで、dqは、e.dq=1 modulo (q−1)であるようなRSAアルゴリズムの対応する秘密鍵である。
−等しい場合は、値eiをeに帰して、上記暗号アルゴリズムの計算に使用するためにeを記憶し、
−それ以外の場合は、値eを使用した上記暗号アルゴリズムの計算が実行不可能であることを遵守する。
ランダムな整数rを選択し、
d*=d+r.(e.d−1)であるように値d*を計算し、
関係式x=yd* modulo nを適用することによって、値yから値xを得るアルゴリズムの秘密演算を実施する。
第2の変形では、値eiがeに帰されている場合、値eを使用する計算は、アルゴリズムの秘密演算の後、値yから値xを得ることと、最初にxe=y modulo pであるか、第二にxe=y modulo qであるかをチェックすることに存する。
集合Eは、少なくとも以下のeiの値、すなわち3、17、216+1を備えることが好ましい。
本発明は、定義されたような電子構成要素を含むスマート・カードも備える。
a)集合Eの値から値eiを選択するステップと、
b)Φ(p)=Φ(q)である場合、選択されたeiの値が関係式、
(1−ei.d) modulo n<ei.2(Φ(n)/2)+1
または単純化した上記関係式
(−ei.d) modulo n<ei.2(Φ(n)/2)+1
を満たすかどうかを試験し、
ここで、Φ(p)、Φ(q)およびΦ(n)は、それぞれ数p、数qおよび数nをコード化するビットの数を与える関数であり、
これ以外では、pおよびqが不均衡である場合は、選択したeiの値が関係式
(1−ei.d) modulo n<ei.2g+1
または単純化した上記関係式
(−ei.d) modulo n<ei.2g+1
を満たすかどうかを試験するステップとを含み、
Φ(p)およびΦ(q)が分かっている場合は、g=max(Φ(p),Φ(q))、またはそれ以外では、g=Φ(n)/2+tで、tが不均衡な係数またはその係数の限界を示し、さらに、
c)先行するステップに適用された試験関係式を満たし、したがってe=eiである場合は、上記暗号アルゴリズムの計算に使用するためにeを記憶するステップを含み、
それ以外では、eiの値をeに帰すことが可能になるまで、集合Eからeiの別の値を選択しながら、先行するステップを繰り返し、eに帰すことが可能なeiの値がない場合は、eの値を使用する上記暗号アルゴリズムの計算が実行不可能であることを遵守することを特徴とする。
ここで、Φ(p)=Φ(q)である場合は、選択したeiの値が以下の関係式、すなわち
(1−ei.d) modulo n<ei.2(Φ(n)/2)+17
または単純化した上記関係式
(−ei.d) modulo n<ei.2(Φ(n)/2)+17
を満たすかどうかを試験し、
Φ(p)、Φ(q)およびΦ(n)が、それぞれ数p、数qおよび数nをコード化するビットの数を与える関数であり、
これ以外では、pおよびqが不均衡である場合は、選択したeiの値が以下の関係式:
(1−ei.d) modulo n<ei.2g+17
または単純化した上記関係式:
(−ei.d) modulo n<ei.2g+17
を満たすかどうかを試験し、
Φ(p)およびΦ(q)が分かっている場合は、g=max(Φ(p),Φ(q))で、すなわちそれ以外では、g=Φ(n)/2+tであり、tが不均衡な係数またはその係数の限界を示す。
選択したeiの値が関係式を満たすかどうかを試験するステップを含み、それにより、
(1−ei.d) modulo nの最初の最上位ビットがゼロであるか、
単純化した上記関係式で、
(−ei.d) modulo nの最初の最上位ビットがゼロである。
本発明の好ましい実施形態では、暗号アルゴリズムは標準モードのRSAタイプのアルゴリズムに基づく。
1つの特徴によると、eiの値がeに帰されている場合、値eを使用する計算は、
ランダムな整数rを選択することと、
d*=d+r.(e.d−1)であるように値d*を計算することと、
関係式x=yd* modulo nを適用することによって値yから値xが得られるアルゴリズムの秘密演算を実施することとである。
好適には、集合Eは、少なくとも以下のeiの値、すなわち3、17、216+1を備えることが好ましい。
本発明は、定義されたような電子構成要素を含むスマート・カードも提供する。
本発明の他の特徴および利点は、非制限的な表示によって与えられる以下の説明から、さらに明白になる。
本発明は、以下の観察結果に基づく。すなわち、集合Eが少なくとも以下のeの値を備えるようにする。すなわちe0=216+1、e1=3、およびe2=17を備える。値のこの集合Eは、RSAタイプの暗号アルゴリズムの計算で一般的に使用する公開指数の値の約95%を含む。
5%という他のケースに対応する特定の用途では、eはe0にもe1にもe2にも等しくないことが可能である。それ故、eの値はe1によってさらに一般的に指定される。また、方法は最終的に、想起されるeiの値から値eiを選択することと、e=e1であるかをチェックすることに存する。
標準モードでは、秘密アルゴリズム(メッセージに署名するか、これを解読する演算を実施する)が、モジュラスnの値および秘密指数dの値を有する。
それ故、式(1)から、下式のような整数kが存在することになる。
e.d=1+kΦ(n)
すなわち、1−e.d=−kΦ(n)=−k.(n−p−q+1)
1−e.d=k(p+q−1)(modulo n)
eが比較的小さい場合に、k<eが常に得られることに留意すると、上式は下式のように書くこともできる。
(1−e.d) modulo n=k(p+q−1) (6)
k.(p+q−1)<e.2(Φ(n)/2)+1
ここで、Φ(n)、Φ(p)、Φ(q)は、それぞれ数n、数pおよび数qをコード化するビットの数を与える関数である。
k.(p+q−1)<e.21+g
それ故、集合Eの全ての可能なeiの値で、Φ(p)=Φ(q)である場合は、試験を実施して、選択したei値が以下の所定の関係式を満たすかどうかを判断する。
(1−ei.d) modulo n<ei.2(Φ(n)/2)+1 (7)
(1−ei.d) modulo n<ei.2g+1 (7’)
適用した所定の試験関係式を満たす場合は、e=eiであり、eが記憶される。
それ以外では、集合Eからeiのために別の値を選択し、先行するステップを繰り返す。
(1−ei.d) modulo n<ei.2(Φ(n)/2)+1または
(1−ei.d) modulo n<ei.2g+1
を以下の試験で置換することができる。
(1−ei.d) modulo n<B
ここで、Φ(p)=Φ(q)である場合は、B=[最大(ei)]22(Φ(n)/2)+1
他の場合は、B=[最大(ei)]2g+1
(1−ei.d) modulo n<B、ここで、B=2(Φ(n)/2)+17であり、Φ(p)=Φ(q)である場合、
それ以外では、(1−ei.d) modulo n<B、ここで、B=2g+17
であるかをチェックすることに存する以下の方法で単純化することができる。
(−e.d) modulo n=k(p+q−1)−1
それ故、この単純化から、試験関係式(7、7’)について、以下の単純化が得られる。
Φ(p)=Φ(q)の場合は、(−ei.d) modulo n<ei2(Φ(n)/2)+1
それ以外では、(−ei.d) modulo n<ei.2g+1
(−ei.d) modulo n<B、ここで、Φ(p)=Φ(q)の場合は、B=2(Φ(n)/2)+17、それ以外では、B=2g+17である。
また、試験の第2の変形では、(−ei.d) modulo nの第1最上位ビットがゼロであるかをチェックすることに存する以下の単純化した試験が得られる。
実施する変形に関係なく、これが単純化したタイプであっても、そうでなくても、eiの値について試験を満足しない場合は、一致点を見いだすまで集合Eからeiの別の値を選択する。
逆に、いずれかの変形によって所定の値Eの集合の値eiからeの値を見いだした場合は、秘密演算を適用することによって値yに基づいて得られた値xが、関係式xe=y modulo nを満足することを確保することによって、暗号アルゴリズム(メッセージの解読または署名の生成である)の各秘密演算(3)をチェックすることが可能である。これ以外では、任意の暗号解読を回避するように、解読したメッセージまたは署名を戻さない。
a)Eに属する任意のeiについて、Φ/eiがΦ(n)より小さくなるように、値
c)各eiについて、上記所定の計算結果が値Φ/eiに等しいかどうかを試験する。
−等しい場合は、eiをeに帰し、暗号アルゴリズムの計算に使用するためにeを記憶する。
−それ以外では、値eを使用する暗号アルゴリズムの計算を実行することができない。
C=Φ.d modulo Φ(n)であり、ここで、dは、e.d=1 modulo Φ(n)であるように、標準モードのRSAアルゴリズムの対応する秘密鍵である。
例えば、集合E={e0=3,e1=17,e2=216+1}にすると、Φ=e0.e1.e2=3.17.(216+1)である。
C=17.(216+1)=Φ/e0であれば、e=e0=3であり、
C=3.(216+1)=Φ/e1であれば、e=e1=17であり、
C=3.17=Φ/e2であれば、e=e2=(216+1)である。
それ故、Cの値の取得を可能にする単一のモジュラ計算によって、上記計算の結果の関数として、集合Eから指数eの値を求めることが可能である。
C=Φ.d modulo Φ(n)であり、ここで、dは、標準モードのRSAアルゴリズムの対応する秘密鍵であるが、オイラーのトーシェント関数をモジュロとする代わりに、カーマイケル関数をモジュロとする上記代替法で計算され、それ故e.d=1 modulo Φ(n)であり、Φはカーマイケル関数である。
eの値を求め、記憶すると、eの値を実装する標準モードの暗号アルゴリズムの計算は、故障攻撃を回避することと、対策、特にDPA(およびSPA)タイプの攻撃に対する対策を設けることに存し、これは第1技術に関して説明した計算と同一である。
C=Φ.dp modulo (p−1)であり、ここで、dpはe.dp=1 modulo (p−1)であるようなRSAアルゴリズムの対応する秘密鍵である。
あるいは実際には、
C=Φ.dq modulo (q−1)であり、ここで、dqはe.dq=1 modulo (q−1)であるようなRSAアルゴリズムの対応する秘密鍵である。
または実際にはその両方であり、さらに2つの試験のうち少なくとも一方によって与えられるeを得ることに存する。
eの値を実際に求め、記憶すると、eの値を実装するCRTモードの暗号アルゴリズムの計算は、故障攻撃を回避することに存する。
Claims (25)
- 公開鍵暗号アルゴリズムを安全に実施するための方法であって、前記公開鍵が、2つの大きい素数pおよびqの積である整数nと公開指数eとで構成され、前記方法が、前記公開指数eの値に対応可能である所定数の素数eiを備える集合Eを決定することからなり、前記方法が、
a)Eに属する任意のeiについてΦ/eiがΦ(n)より小さくなるように、値
b)値Φを所定の計算に適用するステップと、
c)各eiについて、前記所定の計算の結果が値Φ/eiと等しいかどうかを試験するステップであって、
−等しい場合は、値eiをeに帰し、前記暗号アルゴリズムの計算に使用するためにeを記憶し、
−それ以外では、値eを使用した暗号アルゴリズムの計算が実行不可能であることを遵守するステップとを含むことを特徴とする方法。 - 暗号アルゴリズムが、標準モードのRSAタイプのアルゴリズムに基づくことを特徴とする、請求項1に記載の方法。
- 前記ステップb)の前記所定の計算が、値C=Φ.d modulo Φ(n)の計算からなり、ここで、dは、e.d=1 modulo Φ(n)であるような前記RSAアルゴリズムの対応する秘密鍵であり、Φが前記オイラーのトーシェント関数であることを特徴とする、請求項2に記載の方法。
- 前記ステップb)の前記所定の計算が、値C=Φ.d modulo Φ(n)の計算からなり、ここで、dは、e.d=1 modulo Φ(n)であるような前記RSAアルゴリズムの対応する秘密鍵であり、Φがカーマイケル関数であることを特徴とする、請求項2に記載の方法。
- 前記暗号アルゴリズムが、CRTモードのRSAタイプのアルゴリズムに基づくことを特徴とする、請求項1に記載の方法。
- 前記ステップb)の所定の計算が、値C=Φ.dp modulo (p−1)の計算からなり、ここで、dpは、e.dp=1 modulo (p−1)であるようなRSAアルゴリズムの対応する秘密鍵であることを特徴とする、請求項5に記載の方法。
- 前記ステップb)の前記所定の計算が、値C=Φ.dq modulo (q−1)の計算からなり、ここで、dqは、e.dq=1 modulo (q−1)であるような前記RSAアルゴリズムの対応する秘密鍵であることを特徴とする、請求項5に記載の方法。
- 前記ステップb)の前記所定の計算が、以下の2つの値C1およびC2の計算からなり、
C1=Φ.dp modulo (p−1)、ここで、dpは、e.dp=1 modulo (p−1)であるような前記RSAアルゴリズムの対応する秘密鍵、
C2=Φ.dq modulo (q−1)、ここで、dqは、e.dq=1 modulo (q−1)であるような前記RSAアルゴリズムの対応する秘密鍵、
前記試験ステップc)が、各eiについて、C1および/またはC2が値Φ/eiと等しいかどうかを試験することからなり、
−等しい場合は、値eiをeに帰し、前記暗号アルゴリズムの計算に使用するためにeを記憶し、
−それ以外では、値eを使用した前記暗号アルゴリズムの計算が実行不可能であることを遵守することを特徴とする、請求項5に記載の方法。 - 値eiがeに帰され、前記方法が、値eを使用する計算が、
ランダムな整数rを選択することと、
d*=d+r.(e.d−1)であるように、値d*を計算することと、
関係式x=yd* modulo nを適用することによって、値yから値xを得るアルゴリズムの秘密演算を実施することからなることを特徴とする、請求項3または4に記載の方法。 - 値eiがeに帰され、前記方法が、アルゴリズムの秘密演算の後、値yから値xを得ることからなり、値eを使用する計算が、xe=y modulo nであるかをチェックすることからなることを特徴とする、請求項2乃至4の何れかに記載の方法。
- 値eiがeに帰され、前記方法が、アルゴリズムの秘密演算の後、値yから値xを得ることからなり、値eを使用する計算が、第一にxe=y modulo pであるか、第二にxe=y modulo qであるかをチェックすることからなることを特徴とする、請求項5乃至8の何れかに記載の方法。
- 前記集合Eが少なくとも以下のeiの値、すなわち3、17、216+1を含むことを特徴とする、請求項1乃至11のいずれかに記載の方法。
- 請求項1乃至12のいずれかに記載の方法を実施するための手段を備えることを特徴とする電子構成要素。
- 請求項13に記載の電子構成要素を含むスマート・カード。
- 公開鍵暗号アルゴリズムを安全に実施するための方法であって、前記公開鍵が、2つの大きい素数pおよびqの積である整数nと公開指数eとで構成され、前記方法が、公開指数eの値に対応可能である所定数の素数eiを含む集合Eを決定することからなり、
a)集合Eの値から値eiを選択するステップと、
b)Φ(p)=Φ(q)の場合、選択したeiの値が、関係式
(1−ei.d) modulo n<ei.2(Φ(n)/2)+1
または単純化した前記関係式
(−ei.d) modulo n<ei.2(Φ(n)/2)+1
を満足させるかどうかを試験し、
Φ(p)、Φ(q)およびΦ(n)が、それぞれ数p、数qおよび数nをコード化するビットの数を与える関数であり、
それ以外では、pとqが不均衡である場合に、選択したeiの値が以下の関係式
(1−ei.d) modulo n<ei.2g+1
または単純化した前記関係式
(−ei.d) modulo n<ei.2g+1
を満足させるかどうかを試験するステップであって、
Φ(p)およびΦ(q)が分かっている場合は、g=max(Φ(p),Φ(q))、またはそれ以外では、g=Φ(n)/2+tであり、ここで、tが不均衡係数またはその係数の限界を示すステップと、
c)前記ステップで適用された試験関係式を満し、したがってe=eiである場合は、前記暗号アルゴリズムの計算に使用するためにeを記憶するステップであって、
−それ以外では、eiの値をeに帰すことができるまで、集合Eからeiの別の値を選択しながら前記ステップを繰り返し、eに帰すことができるeiの値がない場合は、eの値を使用する前記暗号アルゴリズムの計算が実行不可能であることを遵守するステップとを含むことを特徴とする方法。 - iの全ての値でei≦216+1であり、前記ステップb)が、別の試験ステップ、すなわち
b)Φ(p)=Φ(q)の場合は、選択したeiの値が関係式
(1−ei.d) modulo n<ei.2(Φ(n)/2)+17
または単純化した前記関係式
(−ei.d) modulo n<ei.2(Φ(n)/2)+17
を満足させるかどうかを試験するステップで置換され、
ここで、Φ(p)、Φ(q)およびΦ(n)が、それぞれ数p、数qおよび数nをコード化するビットの数を与える関数であり、
それ以外では、pとqが不均衡である場合には、選択したeiの値が以下の関係式
(1−ei.d) modulo n<ei.2g+17
または単純化した前記関係式
(−ei.d) modulo n<ei.2g+17
を満足させるかどうかを試験するステップで置換され、
Φ(p)およびΦ(q)が分かっている場合は、g=max(Φ(p),Φ(q))、またはそれ以外では、g=Φ(n)/2+tであり、ここで、tが不均衡係数またはその係数の限界を示すことを特徴とする、請求項15に記載の方法。 - 前記ステップb)が、
選択したeiの値が前記関係式を満たすかどうかを試験し、それにより、
(1−ei.d) modulo nの最初の最上位ビットがゼロであるか、
または単純化した前記関係式
(−ei.d) modulo nの最初の最上位ビットがゼロであることからなる別の試験ステップで置換されることを特徴とする、請求項15に記載の方法。 - 前記試験が最初の128の最上位ビットで実行されることを特徴とする、請求項17に記載の方法。
- 前記暗号アルゴリズムが、標準モードのRSAタイプのアルゴリズムに基づくことを特徴とする、請求項15乃至18の何れかに記載の方法。
- eiの値がeに帰され、前記方法が、値eを使用する前記計算が、
ランダムな整数rを選択することと、
d*=d+r.(e.d−1)であるように、値d*を計算することと、
前記関係式x=yd* modulo nを適用することにより、値yから値xが得られるアルゴリズムの秘密演算を実施することからなることを特徴とする、請求項15乃至19の何れかに記載の方法。 - eiの値がeに帰され、前記方法が、前記アルゴリズムの秘密演算の後、値yから値xを得ることからなり、値eを使用する前記計算が、xe=y modulo nであるかをチェックすることからなることを特徴とする、請求項15乃至19の何れかに記載の方法。
- 集合Eが少なくとも以下のeiの値、すなわち3、17、216+1を含むことを特徴とする、請求項15乃至21の何れかに記載の方法。
- 集合Eの値から値eiの好ましい選択が、以下の順序、すなわち216+1、3、17の順序で行われることを特徴とする、請求項22に記載の方法。
- 請求項15乃至23の何れかに記載の方法を実施するための手段を備えることを特徴とする電子構成要素。
- 請求項24に記載の電子構成要素を含むスマート・カード。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0309457A FR2858496B1 (fr) | 2003-07-31 | 2003-07-31 | Procede pour la mise en oeuvre securisee d'un algorithme de cryptographie de type rsa et composant correspondant |
PCT/EP2004/051411 WO2005022820A1 (fr) | 2003-07-31 | 2004-07-08 | Procede pour la mise en oeuvre securisee d'un algorithme de cryptographie de type rsa et composant correspondant |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007500863A true JP2007500863A (ja) | 2007-01-18 |
JP4568886B2 JP4568886B2 (ja) | 2010-10-27 |
Family
ID=34043708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006521566A Expired - Fee Related JP4568886B2 (ja) | 2003-07-31 | 2004-07-08 | Rsaタイプの暗号アルゴリズムを安全に実施するための方法、および対応する構成要素 |
Country Status (9)
Country | Link |
---|---|
US (2) | US7359508B2 (ja) |
EP (1) | EP1652336B1 (ja) |
JP (1) | JP4568886B2 (ja) |
CN (1) | CN101133593B (ja) |
AT (1) | ATE363166T1 (ja) |
DE (1) | DE602004006628T2 (ja) |
ES (1) | ES2287745T3 (ja) |
FR (1) | FR2858496B1 (ja) |
WO (1) | WO2005022820A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009515449A (ja) * | 2005-11-04 | 2009-04-09 | ジェムプリュス | 組み込みシステム上での暗号アルゴリズム実行中にデータを安全に処理するための方法 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2830146B1 (fr) * | 2001-09-24 | 2003-10-31 | Gemplus Card Int | Procede de mise en oeuvre, dans un composant electronique, d'un algorithme de cryptographie et composant correspondant |
FR2888690A1 (fr) * | 2005-07-13 | 2007-01-19 | Gemplus Sa | Procede cryptographique pour la mise en oeuvre securisee d'une exponentiation et composant associe |
CN101243388A (zh) * | 2005-08-19 | 2008-08-13 | Nxp股份有限公司 | 用于在加密计算中执行求逆运算的电路结构和方法 |
DE102005042339B4 (de) * | 2005-09-06 | 2007-08-16 | Siemens Ag | Verfahren zum sicheren Ver- oder Entschlüsseln einer Nachricht |
CN101416154A (zh) * | 2006-04-06 | 2009-04-22 | Nxp股份有限公司 | 安全解密方法 |
US20080104402A1 (en) * | 2006-09-28 | 2008-05-01 | Shay Gueron | Countermeasure against fault-based attack on RSA signature verification |
US8774400B2 (en) * | 2008-01-03 | 2014-07-08 | Spansion Llc | Method for protecting data against differntial fault analysis involved in rivest, shamir, and adleman cryptography using the chinese remainder theorem |
EP2222013A1 (en) * | 2009-02-19 | 2010-08-25 | Thomson Licensing | Method and device for countering fault attacks |
US8615649B2 (en) * | 2010-09-21 | 2013-12-24 | International Business Machines Corporation | Use of a private key to encrypt and decrypt a message |
DE102010055238A1 (de) | 2010-12-20 | 2012-06-21 | Giesecke & Devrient Gmbh | Sichere RSA-Implementierung |
FR2985624B1 (fr) * | 2012-01-11 | 2014-11-21 | Inside Secure | Procede de chiffrement protege contre des attaques par canaux auxiliaires |
CN102769528A (zh) * | 2012-06-15 | 2012-11-07 | 刘诗章 | 基于密码学技术应用的大数快速分解方法 |
CN103560877B (zh) * | 2013-11-01 | 2016-11-23 | 中国电子科技集团公司第十五研究所 | 攻击密钥的方法及装置 |
CN104660400A (zh) * | 2013-11-25 | 2015-05-27 | 上海复旦微电子集团股份有限公司 | 一种rsa模幂运算方法和装置 |
DE102014016548A1 (de) * | 2014-11-10 | 2016-05-12 | Giesecke & Devrient Gmbh | Verfahren zum Testen und zum Härten von Softwareapplikationen |
US10367637B2 (en) | 2016-07-22 | 2019-07-30 | Qualcomm Incorporated | Modular exponentiation with transparent side channel attack countermeasures |
CN106712950A (zh) * | 2017-01-18 | 2017-05-24 | 中译语通科技(北京)有限公司 | 基于同余数的rsa公钥加密算法对语料数据的加密方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4736423A (en) * | 1985-04-30 | 1988-04-05 | International Business Machines Corporation | Technique for reducing RSA Crypto variable storage |
US5991415A (en) * | 1997-05-12 | 1999-11-23 | Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science | Method and apparatus for protecting public key schemes from timing and fault attacks |
US6965673B1 (en) * | 1997-09-19 | 2005-11-15 | Telcordia Technologies, Inc. | Method of using transient faults to verify the security of a cryptosystem |
ATE325478T1 (de) * | 1998-01-02 | 2006-06-15 | Cryptography Res Inc | Leckresistentes kryptographisches verfahren und vorrichtung |
FR2776410B1 (fr) * | 1998-03-20 | 2002-11-15 | Gemplus Card Int | Dispositifs pour masquer les operations effectuees dans une carte a microprocesseur |
US6144740A (en) * | 1998-05-20 | 2000-11-07 | Network Security Technology Co. | Method for designing public key cryptosystems against fault-based attacks with an implementation |
FR2784829B1 (fr) * | 1998-10-16 | 2000-12-29 | Gemplus Card Int | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete |
FR2804225B1 (fr) * | 2000-01-26 | 2002-05-03 | Gemplus Card Int | Algorithme d'exponentiation modulaire dans un composant electrique mettant en oeuvre un algorithme de chiffrement a cle publique |
DE10143728B4 (de) * | 2001-09-06 | 2004-09-02 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation |
FR2830146B1 (fr) * | 2001-09-24 | 2003-10-31 | Gemplus Card Int | Procede de mise en oeuvre, dans un composant electronique, d'un algorithme de cryptographie et composant correspondant |
US7907724B2 (en) * | 2007-10-25 | 2011-03-15 | Infineon Technologies Ag | Method and apparatus for protecting an RSA calculation on an output by means of the chinese remainder theorem |
-
2003
- 2003-07-31 FR FR0309457A patent/FR2858496B1/fr not_active Expired - Fee Related
-
2004
- 2004-07-08 DE DE602004006628T patent/DE602004006628T2/de active Active
- 2004-07-08 AT AT04741978T patent/ATE363166T1/de not_active IP Right Cessation
- 2004-07-08 ES ES04741978T patent/ES2287745T3/es active Active
- 2004-07-08 JP JP2006521566A patent/JP4568886B2/ja not_active Expired - Fee Related
- 2004-07-08 EP EP04741978A patent/EP1652336B1/fr not_active Not-in-force
- 2004-07-08 WO PCT/EP2004/051411 patent/WO2005022820A1/fr active IP Right Grant
- 2004-07-08 US US10/566,504 patent/US7359508B2/en not_active Expired - Fee Related
- 2004-07-08 CN CN2004800221776A patent/CN101133593B/zh not_active Expired - Fee Related
-
2008
- 2008-02-22 US US12/071,571 patent/US7860242B2/en not_active Expired - Fee Related
Non-Patent Citations (2)
Title |
---|
JPN6009047029, Benoit Chevallier−Mames, Marc Joye, and Pascal Pailler, ""Faster Double−Size Modular Multiplication from Euclidean Multipliers"", LNCS, 20031112, Vol.2779, p.214−227 * |
JPN7009004178, Marc Joye and Karine Villegas, ""A Protected Division Algorithm"", Proceedings of the 5th Smart Card Research and Advanced Application Conference, 20021121, US, USENIX association * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009515449A (ja) * | 2005-11-04 | 2009-04-09 | ジェムプリュス | 組み込みシステム上での暗号アルゴリズム実行中にデータを安全に処理するための方法 |
Also Published As
Publication number | Publication date |
---|---|
FR2858496B1 (fr) | 2005-09-30 |
US20080144814A1 (en) | 2008-06-19 |
DE602004006628T2 (de) | 2008-01-31 |
ATE363166T1 (de) | 2007-06-15 |
CN101133593B (zh) | 2012-03-21 |
WO2005022820A1 (fr) | 2005-03-10 |
US7359508B2 (en) | 2008-04-15 |
US7860242B2 (en) | 2010-12-28 |
CN101133593A (zh) | 2008-02-27 |
US20060210066A1 (en) | 2006-09-21 |
EP1652336A1 (fr) | 2006-05-03 |
JP4568886B2 (ja) | 2010-10-27 |
EP1652336B1 (fr) | 2007-05-23 |
ES2287745T3 (es) | 2007-12-16 |
DE602004006628D1 (de) | 2007-07-05 |
FR2858496A1 (fr) | 2005-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7860242B2 (en) | Method of securely implementing a cryptography algorithm of the RSA type, and a corresponding component | |
Nemec et al. | The return of coppersmith's attack: Practical factorization of widely used rsa moduli | |
JP4841785B2 (ja) | 鍵の細分化によってアクセスを防止する携帯可能なデータ記憶媒体 | |
US8402287B2 (en) | Protection against side channel attacks | |
EP3188001B1 (en) | Modular multiplication device and method | |
US20020186837A1 (en) | Multiple prime number generation using a parallel prime number search algorithm | |
JP4909403B2 (ja) | 安全にデータを求める方法 | |
EP2332040B1 (en) | Countermeasure securing exponentiation based cryptography | |
EP2158719B1 (en) | Method of generating a public key for an electronic device and electronic device | |
US20030133567A1 (en) | Encryption operating apparatus and method having side-channel attack resistance | |
EP2211265B1 (en) | Elliptic curve arithmetic processing unit and elliptic curve arithmetic processing program and method | |
WO2007113697A2 (en) | Secure decryption method | |
US8280042B2 (en) | Decryption processor and decryption processing method | |
Courtois et al. | Speed optimizations in Bitcoin key recovery attacks | |
KR20100113130A (ko) | 비대칭 암호화를 위한 대응조치 방법 및 디바이스 | |
WO2018019233A1 (zh) | 一种运算方法和安全芯片 | |
TWI512610B (zh) | 利用模數的特殊形式之模組約化 | |
US20090122980A1 (en) | Cryptographic Method for Securely Implementing an Exponentiation, and an Associated Component | |
EP1443699A1 (en) | Information processing means and IC card | |
US7123717B1 (en) | Countermeasure method in an electronic component which uses an RSA-type public key cryptographic algorithm | |
EP3503459B1 (en) | Device and method for protecting execution of a cryptographic operation | |
EP3785399B1 (en) | Method for generating on-board a cryptographic key using a physically unclonable function | |
KR101513012B1 (ko) | 오류 주입과 전력 분석을 조합한 공격에 강인한 멱승 방법 | |
JP3952304B2 (ja) | 電子コンポネントにおいて公開指数を求める暗号アルゴリズムを実行する方法 | |
US7174016B2 (en) | Modular exponentiation algorithm in an electronic component using a public key encryption algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090915 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20091214 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20091221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100115 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100615 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20100623 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100713 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100720 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100721 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130820 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |