JP2007500863A - Rsaタイプの暗号アルゴリズムを安全に実施するための方法、および対応する構成要素 - Google Patents

Rsaタイプの暗号アルゴリズムを安全に実施するための方法、および対応する構成要素 Download PDF

Info

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
Application number
JP2006521566A
Other languages
English (en)
Other versions
JP4568886B2 (ja
Inventor
ヴィレガス カリーヌ
ジョイエ マルク
セバリール−マメス べノイト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemplus SA
Original Assignee
Gemplus SA
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 Gemplus SA filed Critical Gemplus SA
Publication of JP2007500863A publication Critical patent/JP2007500863A/ja
Application granted granted Critical
Publication of JP4568886B2 publication Critical patent/JP4568886B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/723Modular exponentiation
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7242Exponent masking, i.e. key masking, e.g. A**(e+r) mod n; (k+r).P
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7257Random modification not requiring correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7271Fault verification, e.g. comparing two values which should be the same, unless a computational fault occurred
    • 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/26Testing 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

本発明は、電子構成要素にRSAタイプの暗号アルゴリズムを安全に適用するための方法に関する。方法によって、有望な値の所与の集合から公開指数eの値を、前記値を先験的に知ることなしに取得することができ、公開指数eの前記値を決定すると、エラー攻撃およびサイド・チャネル攻撃を遮断するために、eの値を使用する対策、特にDPAおよびSPAタイプを適用することができ、これは暗号アルゴリズムの秘密演算を適用して実行することができる。

Description

本発明は、電子構成要素で暗号アルゴリズムを安全に実施するための方法に関し、特にリベスト・シャミール・アドレマン(RSA)タイプの暗号アルゴリズムを安全に実施するための方法に関する。
本発明は、また、対応する電子構成要素に関する。
このような構成要素は、特に、サービスまたはデータへのアクセスが厳格に制御されている用途で使用される。
1つまたは複数の秘密番号を含む電気消去可能プログラマブル読出し専用メモリ(EEPROM)タイプの不揮発性メモリなど、マイクロプロセッサおよびメモリの周囲には、「ソフトウェア」アーキテクチャ、すなわちプログラム可能なアーキテクチャが形成される。アーキテクチャは、任意のアルゴリズムを実行するのに適切な非専門家アルゴリズムである。
このような構成要素は、コンピュータ・システムに実装されるか、他の方法で使用される。特にスマート・カードに、その特定の用途用に使用される。例えば、このような使用法とは、特定のデータバンクにアクセスする用途、バンキング用途、遠隔支払い用途、例えば、TVショッピング、ガソリンの購入、または高速道路料金の支払いである。
それ故、このような構成要素またはカードは、送信されたデータの暗号化および/または受信データの解読、またはメッセージの認証またはディジタル署名のために、暗号アルゴリズムを実施する。
ホスト・システム(サーバ、現金自動預入支払機など)によってカードへの入力として適用されるこのようなメッセージに基づき、さらにカードに含まれる秘密番号に基づき、カードは、暗号化、認証または署名した状態でメッセージをホスト・システムへと戻し、これによってホスト・システムは、構成要素またはカードを認証し、データなどを交換することができる。
暗号アルゴリズムの特徴は、実行した計算、使用したパラメータによって知ることができる。唯一の未知の量は1つまたは複数の秘密番号である。このような暗号アルゴリズムの全体的セキュリティは、カードに含まれ、カードの外側の世界には知られていないこのような1つまたは複数の秘密番号に依拠する。秘密番号は、入力として与えられたメッセージ、および返報に送付される暗号化メッセージを知るだけでは演繹することができない。
残念ながら、構成要素が暗号アルゴリズムを実行する間に、構成要素の外側から測定可能な物理的大きさに基づいた外部からの攻撃によって、悪意のある人がカードに含まれる秘密番号を発見することが可能である。このような攻撃は、「サイド・チャネル攻撃」として周知である。このようなサイド・チャネル攻撃の中には、1つまたは複数の測定値に基づく単一電力解析(SPA)攻撃、多くの測定値による統計学的解析に基づく差分電力解析(DPA)攻撃がある。このようなサイド・チャネル攻撃の原理は、例えば、命令を実行するマイクロプロセッサの電流消費量は、取り扱い中の命令またはデータの関数として変動するという事実に基づく。
「故障攻撃」として知られる攻撃のタイプも存在する。このタイプの攻撃では、故障の存在を利用して、秘密情報を抽出するという目的で、暗号アルゴリズムが計算されている間に、攻撃者が任意の故障を投入する。
故障は、暗号アルゴリズムを実施しているハードウェアによる計算エラーに由来することもある。しかし、いずれの場合も、故障攻撃が発生したと見なされる。
様々なタイプの攻撃は、例えば、この用途分野で最も広く使用されているアルゴリズムであり、本発明が特に適用可能であるRSAアルゴリズム(その著者であるリベスト、シャミールおよびアドレマンにちなんで命名された)などの公開鍵暗号アルゴリズムで、特に可能である。
RSA公開鍵暗号システムの主要な特徴について、以下で簡単に思い起こす。
最初の公開鍵暗号および署名の体系は、1977年にリベスト、シャミールおよびアドレマンによって開発され、彼らはRSA暗号システムを発明した。RSAの安全性は、2つの素数の積である大きい数字を因数分解することの困難さに基づく。そのシステムは、最も広く使用されている公開鍵暗号システムである。これは、暗号法または署名法として使用することができる。
RSA暗号システムの原理は、以下の通りである。これはまず、RSAキーの対を生成することで構成される。
それ故、各使用者は以下の5段階の方法を使用して、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法」と呼ばれる。
公開および秘密パラメータが画定されると、xが0<x<nである場合、
y=x modulo n (2)
の計算に存し、xの公開演算は、例えば、メッセージxの暗号であってもよい。
その場合、対応する秘密演算は、暗号化したメッセージyを解読する演算であり、下式の計算である。
modulo n (3)
xの公開演算は、署名xの検証でもよく、下式の計算である。
y=x modulo n (2)
次に、対応する秘密演算は、ハッシュ関数または「埋め込み」関数μを適用することによって以前にコード化したメッセージyに基づいて署名xを生成することであり、下式の計算である。
modulo n (3)
ここで、e.d=1 modulo Φ(n)であるので、x=y modulo nである。
中国人剰余定理(CRT)モードとして知られる別の演算モードについて、以下で提示する。これは、標準的なRSAアルゴリズムの演算モードより4倍速い。CRTモードでは、モジュロn計算を直接的に実行せず、モジュロpおよびモジュロqの計算を最初に実行する。
公開パラメータは(n,e)であるが、CRTのモードでは、秘密パラメータは(p,q,d)または(p,q,d,d,i)であり、ここで、
=d modulo (p−1)、d=d modulo (q−1)
およびi=q−1 modulo p
式(1)により、下式が得られる。
ed=1 modulo (p−1)および
ed=1 modulo (q−1) (4)
公開演算は、標準的演算モードと同じ方法で実行される。これに対して、秘密演算の場合は下式を最初に計算する。
=ydp modulo pおよびx=ydq modulo q
次に、中国人剰余定理を適用することによって、x=y modulo nが下式により得られる。
x=CRT(x,x)=x+q[i(x−x) modulo p] (5)
それ故、RSA暗号体系を使用する公開鍵暗号の分野の重要な態様は、上述した様々なあり得るタイプの攻撃、特にDPAおよびSPA攻撃のようなサイド・チャネル攻撃、さらに攻撃者が、特定の場合に秘密データの特定の項目を演繹することが可能になる破損値を得る目的で、任意の方法を使用することによりRSAアルゴリズムの秘密演算を計算中に故障を投入する「故障」攻撃に対して、RSAアルゴリズムの実施を安全なものにすることに存する。
最新技術では、様々なタイプの攻撃を回避するために、特定の対策方法が考案されている。
特に、標準モードのRSAに対するDPA(およびSPA)タイプの攻撃を回避するために可能な1つの対策は、計算にランダム値を挿入することによってRSAのランダムな秘密演算(署名または解読)を実行することに存する。
それ故、そのタイプの1つの対策方法は、以下の方法で標準モードの(3)x=y modulo nの秘密演算を計算することに存する。
x=yd−r.y modulo n
ここで、rはランダムな整数である。しかし、その対策方法の欠点は、計算時間が2倍になることである。
標準モードのRSAに対するDPA(およびSPA)タイプの攻撃を回避するそのタイプの別の対策方法は、以下の方法で秘密演算(3)x=y modulo nを計算することに存する。
x=y(d+r.Φ(n)) modulo n
ここで、rはランダムな整数である。
しかし、その対策方法の欠点は、Φ(n)の値を知る必要があることであり、これは秘密演算(署名または解読)を実施する暗号アルゴリズムには通常、知られていない。
それ故、Φ(n)の値を知ることばかりでなく、公開指数eを知ることにも基づいて、その方法の変形が提案されている。(1)によってe.d=1 modulo Φ(n)が与えられ、したがってe.d−1=k.Φ(n)になるような整数kが存在する。
それ故、式x=y(d+r.Φ(n)) modulo nは、以下の形式で計算することができる。
x=y(d+r.(ed−1)) modulo n
ここで、rはランダムな整数である。
それ故、この対策方法は、これが従う方法と計算上等しいが、Φ(n)の値を知る必要がないという利点を提供する。Φ(n)を維持しないという意味で、必要とするメモリが少なくなる。
しかし、実施するためには、この変形の対策は公開指数eの値を知る必要がある。残念ながら、多くの暗号用途で、RSAアルゴリズムの秘密演算を実施する構成要素またはデバイスは、特に秘密演算のみを実行する場合、常に公開指数eを有するとは限らない。それ故、その状況で、公開指数eは通常分からないか、使用不可能である。
上述した対策は主に、DPAタイプの攻撃を回避するためのものである。しかし、アルゴリズムの実行が決定論的ではない限り、SPAタイプの攻撃もさらに困難にする。
他の上述したタイプの攻撃、すなわち「故障」攻撃に関して、これを回避するために可能な最善の保護は、秘密演算を適用することによって取得した値xが実際に公開演算の関係式x=y modulo nを満足させるかどうか、標準モードで試験することに存する。満足させない場合は、暗号目的に使用されるのを防止するように、値yが戻されない。
CRTモードでは、保護は最初に関係式x=y modulo pおよびx=y modulo qを実際に満足しているかどうかをチェックすることに存する。
これらの関係式が満足している場合は、RSAアルゴリズムの秘密演算を実行中に、エラーが発生しなかったことを確証することが可能である。
しかし、標準モードまたはCRTモードで故障攻撃に対するこのようなチェックの実施を妨げる欠点は、このようなチェックの演算も公開指数eの以前の知識を必要とすることである。残念ながら、上記で説明したように標準モードまたはCRTモードでRSAアルゴリズムの秘密演算を実施する構成要素またはデバイスは、常に公開指数eを有しているとは限らない。秘密演算のみを実行する場合は、特にそうである。それ故その状況では、公開指数eは通常分からないか、使用不可能である。
そのために、フランス特許文献第FR 2 830 146号(D1)は、先験的に分かっていない公開指数eを使用して、特に標準モードまたはCRTモードでRSAタイプの暗号アルゴリズムの特定のステップを実行可能にする方法を提案している。
D1で開示された方法によって、特に、公開指数eが知られていない場合でも、上述したような最善の可能な保護を提供する対策、特に故障攻撃に対する対策を提供することが可能である。
そのために、(e,d)を、それぞれ公開および秘密のRSA指数の対応する対とし、nをRSAの法であるとする。D1は、ケースの95%で公開指数eの値が216+1、3、17の値から選択されるという以下の観察から開始する。標準モードに関して本明細書で簡単に説明するが、CRTモードにも等しく適用可能であるD1の方法は、関係式を満足させるまでe.d=1 modulo Φ(n)であるかを連続的に試験することによって、eが実際に上記値の1つに等しいことをチェックすることに存する。ここで、eΦE={216+1,3,17}である。
1つのeについて関係式が満足すると、e=eであることが分かる。この方法で公開指数eの値が決定されると、RSAアルゴリズムの対応する秘密演算を実行する間に故障攻撃のせいでエラーが発生していないことをチェックする目的で、RSAアルゴリズムの計算に使用するためにeを記憶する。それ故、eが分かると、単に取得した値sが対応する公開演算の関係式s=μ(m) modulo nを満足させることをチェックするだけで、1に等しい確率で、例えば、署名sの生成に関する秘密演算がエラーなく実行されたと断言することが可能である。ここで、s=μ(m) modulo nであり、μ(m)は埋め込み関数μを署名すべきメッセージmに適用することによって得られる値である。
のいずれの値もeに帰すことが可能でなかった場合、D1では、故障攻撃に対して保護するために、値eを使用してRSAアルゴリズムの計算を実行することができないことに留意する必要がある。
しかし、D1で提案された方法の欠点は、認識されるeの値からの値eについて、関係式ed=1 modulo Φ(n)を満たすかどうかを決定するために連続的試験を実行する場合、複数のモジュラ計算を実行する必要があることである。それ故、この方法は計算時間および計算資源が法外に厳しい。
フランス特許文献第FR 2 830 146号(D1)
それ故、生じた問題は、上述した欠点を軽減することである。
特に、本発明の目的は、eの上記値が先験的に分かっている場合に、計算速度および複雑さが法外に厳しくない方法で、1組の所定の推定値から公開指数eの値を決定することに存し、指数eは、標準モードまたはCRTモードのRSAタイプ暗号アルゴリズムの特定のステップで実装される。
それ故別の目的は、公開指数eの値が決定されると、特に暗号アルゴリズム、特にRSAタイプのアルゴリズムの秘密演算の実施中に作成されるようなDPAおよびSPAタイプ、第一に「故障攻撃」を、第二に「サイド・チャネル攻撃」を回避することを目的として、公開指数eの値を使用して対策演算を実施することを可能にすることに存する。
これらの目的を達成することに鑑みて、本発明は、公開鍵暗号アルゴリズムを安全に実行する方法を提供し、公開鍵は2つの大きい素数pおよびqの積である整数nと公開指数eとで構成され、上記方法は、公開指数eの値に対応することができる所定の数の値eを備えた集合Eを決定することに存し、eの値は素数であり、上記方法は、
a)Eに属する任意のeについて、Φ/eがΦ(n)より小さくなるように、値
Figure 2007500863
を計算するステップであって、Φはオイラーのトーシェント関数であるステップと、
b)値Φを所定の計算に適用するステップと、
c)各eについて、上記所定の計算の結果が値Φ/eに等しいかどうかを試験するステップであって、
−等しい場合は、値eをeに帰して、上記暗号アルゴリズムの計算に使用するためにeを記憶し、
−それ以外の場合は、値eを使用した暗号アルゴリズムの計算が実行不可能であることを遵守するステップとを含むことを特徴とする。
それ故、利点はモジュラ乗算が1回だけであることが明白である。
第1の変形では、暗号アルゴリズムは標準モードのRSAタイプのアルゴリズムに基づく。
上記第1変形に関して、ステップb)の所定の計算は、以下のような値Cの計算である。
C=Φ.d modulo Φ(n)
ここで、dは、e.d=1 modulo Φ(n)であるようなRSAアルゴリズムの対応する秘密鍵であり、Φはオイラーのトーシェント関数である。
代替方法では、ステップb)の所定の計算は、以下のような値Cの計算である。
C=Φ.d modulo Φ(n)
ここで、dは、e.d=1 modulo Φ(n)であるようなRSAアルゴリズムの対応する秘密鍵であり、Φはカーマイケル関数である。
第2の変形では、暗号アルゴリズムはCRTモードのRSAタイプのアルゴリズムに基づく。
上記第2変形に関して、ステップb)の所定の計算は、以下のような値Cの計算である。
C=Φ.d modulo (p−1)
ここで、dは、e.d=1 modulo (p−1)であるようなRSAアルゴリズムの対応する秘密鍵である。
代替方法では、ステップb)の所定の計算は、以下のような値Cの計算である。
C=Φ.d modulo (q−1)
ここで、dは、e.d=1 modulo (q−1)であるようなRSAアルゴリズムの対応する秘密鍵である。
別の代替方法では、ステップb)の所定の計算は、以下のような2つの値CおよびCの計算である。
=Φ.d modulo (p−1)
ここで、dは、e.d=1 modulo (p−1)であるようなRSAアルゴリズムの対応する秘密鍵である。
=Φ.d modulo (q−1)
ここで、dは、e.d=1 modulo (q−1)であるようなRSAアルゴリズムの対応する秘密鍵である。
さらに、試験ステップc)は、各eについて、Cおよび/またはCが値Φ/eと等しいかどうかを試験することに存し、
−等しい場合は、値eをeに帰して、上記暗号アルゴリズムの計算に使用するためにeを記憶し、
−それ以外の場合は、値eを使用した上記暗号アルゴリズムの計算が実行不可能であることを遵守する。
第1の変形では、値eがeに帰されている場合、値eを使用する計算は、以下である。
ランダムな整数rを選択し、
d*=d+r.(e.d−1)であるように値d*を計算し、
関係式x=yd* modulo nを適用することによって、値yから値xを得るアルゴリズムの秘密演算を実施する。
第1の変形では、値eがeに帰されている場合、値eを使用する計算は、アルゴリズムの秘密演算の後、値yから値xを得ることと、x=y modulo nであるかをチェックすることに存する。
第2の変形では、値eがeに帰されている場合、値eを使用する計算は、アルゴリズムの秘密演算の後、値yから値xを得ることと、最初にx=y modulo pであるか、第二にx=y modulo qであるかをチェックすることに存する。
集合Eは、少なくとも以下のeの値、すなわち3、17、216+1を備えることが好ましい。
本発明は、上記で定義したような方法を実施するための手段を備えることを特徴とする電子構成要素も提供する。
本発明は、定義されたような電子構成要素を含むスマート・カードも備える。
本発明は、また、公開鍵暗号アルゴリズムを安全に実施するための方法を提供し、公開鍵は、2つの大きい素数pおよびqの積である整数nと公開指数eとで構成され、上記方法は、公開指数eの値に対応することができる所定数の値eを含む集合Eを決定することに存し、eの値は素数であり、上記方法は、
a)集合Eの値から値eを選択するステップと、
b)Φ(p)=Φ(q)である場合、選択されたeの値が関係式、
(1−e.d) modulo n<e.2(Φ(n)/2)+1
または単純化した上記関係式
(−e.d) modulo n<e.2(Φ(n)/2)+1
を満たすかどうかを試験し、
ここで、Φ(p)、Φ(q)およびΦ(n)は、それぞれ数p、数qおよび数nをコード化するビットの数を与える関数であり、
これ以外では、pおよびqが不均衡である場合は、選択したeの値が関係式
(1−e.d) modulo n<e.2g+1
または単純化した上記関係式
(−e.d) modulo n<e.2g+1
を満たすかどうかを試験するステップとを含み、
Φ(p)およびΦ(q)が分かっている場合は、g=max(Φ(p),Φ(q))、またはそれ以外では、g=Φ(n)/2+tで、tが不均衡な係数またはその係数の限界を示し、さらに、
c)先行するステップに適用された試験関係式を満たし、したがってe=eである場合は、上記暗号アルゴリズムの計算に使用するためにeを記憶するステップを含み、
それ以外では、eの値をeに帰すことが可能になるまで、集合Eからeの別の値を選択しながら、先行するステップを繰り返し、eに帰すことが可能なeの値がない場合は、eの値を使用する上記暗号アルゴリズムの計算が実行不可能であることを遵守することを特徴とする。
の値の順番を、現れた公開指数の確率の順番として選択することによって、時間を節約することが可能になる。それ故、次の順序、すなわちe=216+1、e=3、e=17を選択可能であることが好ましい。
変形では、iの全ての値についてe≦216+1であり、ステップb)は下記に存する別の試験ステップで置換される。すなわち、
ここで、Φ(p)=Φ(q)である場合は、選択したeの値が以下の関係式、すなわち
(1−e.d) modulo n<e.2(Φ(n)/2)+17
または単純化した上記関係式
(−e.d) modulo n<e.2(Φ(n)/2)+17
を満たすかどうかを試験し、
Φ(p)、Φ(q)およびΦ(n)が、それぞれ数p、数qおよび数nをコード化するビットの数を与える関数であり、
これ以外では、pおよびqが不均衡である場合は、選択したeの値が以下の関係式:
(1−e.d) modulo n<e.2g+17
または単純化した上記関係式:
(−e.d) modulo n<e.2g+17
を満たすかどうかを試験し、
Φ(p)およびΦ(q)が分かっている場合は、g=max(Φ(p),Φ(q))で、すなわちそれ以外では、g=Φ(n)/2+tであり、tが不均衡な係数またはその係数の限界を示す。
別の変形では、ステップb)が以下に存する別の試験ステップで置換される、すなわち、
選択したeの値が関係式を満たすかどうかを試験するステップを含み、それにより、
(1−e.d) modulo nの最初の最上位ビットがゼロであるか、
単純化した上記関係式で、
(−e.d) modulo nの最初の最上位ビットがゼロである。
試験は、最初の128の最上位ビットで実行することが好ましい。
本発明の好ましい実施形態では、暗号アルゴリズムは標準モードのRSAタイプのアルゴリズムに基づく。
1つの特徴によると、eの値がeに帰されている場合、値eを使用する計算は、
ランダムな整数rを選択することと、
d*=d+r.(e.d−1)であるように値d*を計算することと、
関係式x=yd* modulo nを適用することによって値yから値xが得られるアルゴリズムの秘密演算を実施することとである。
別の特徴によると、eの値がeに帰されている場合、本発明の方法は、アルゴリズムの秘密演算の後、値yから値xを得ることに存し、値eを使用する計算は、x=y modulo nであるかをチェックすることに存する。
好適には、集合Eは、少なくとも以下のeの値、すなわち3、17、216+1を備えることが好ましい。
本発明は、上記で定義したような方法を実施するための手段を備えることを特徴とする電子構成要素も提供する。
本発明は、定義されたような電子構成要素を含むスマート・カードも提供する。
本発明の他の特徴および利点は、非制限的な表示によって与えられる以下の説明から、さらに明白になる。
それ故、本発明は、先験的に分からない公開指数eの値の検証を可能にする様々な技術について説明する。これらの技術は、適切な暗号計算手段を装備した任意の電子構成要素またはデバイスによって、特にスマート・カードによって実施することができる。
本発明は、以下の観察結果に基づく。すなわち、集合Eが少なくとも以下のeの値を備えるようにする。すなわちe=216+1、e=3、およびe=17を備える。値のこの集合Eは、RSAタイプの暗号アルゴリズムの計算で一般的に使用する公開指数の値の約95%を含む。
本発明で提示し、RSAアルゴリズムの標準モードで有効である第1の技術は、一般に、eを選択することと、e=eであるかをチェックすることに存し、e≠eの場合はeで試み、e≠eである場合は、eで試みる。
5%という他のケースに対応する特定の用途では、eはeにもeにもeにも等しくないことが可能である。それ故、eの値はeによってさらに一般的に指定される。また、方法は最終的に、想起されるeの値から値eを選択することと、e=eであるかをチェックすることに存する。
特に、RSAアルゴリズムの標準モードで有効であるeの値を求める第1技術は、以下の推論に基づく。
標準モードでは、秘密アルゴリズム(メッセージに署名するか、これを解読する演算を実施する)が、モジュラスnの値および秘密指数dの値を有する。
それ故、式(1)から、下式のような整数kが存在することになる。
e.d=1+kΦ(n)
すなわち、1−e.d=−kΦ(n)=−k.(n−p−q+1)
式modulo nの両辺を引くことによって、下式が得られる。
1−e.d=k(p+q−1)(modulo n)
eが比較的小さい場合に、k<eが常に得られることに留意すると、上式は下式のように書くこともできる。
(1−e.d) modulo n=k(p+q−1) (6)
式(6)の左辺はモジュラスnとほぼ同じサイズを有し、右辺は、pとqが平衡している、すなわち同じサイズΦ(p)=Φ(q)である場合に、下式に従い画定されるサイズを有する。
k.(p+q−1)<e.2(Φ(n)/2)+1
ここで、Φ(n)、Φ(p)、Φ(q)は、それぞれ数n、数pおよび数qをコード化するビットの数を与える関数である。
pとqが同じサイズでない場合は、Φ(p)およびΦ(q)が分かれば、g=max(Φ(p),Φ(q))の関数、すなわちpおよびqの最大長さを与える関数を呼び出すか、そうでない場合は、g=Φ(n)/2+tを得る。ここで、tは不均衡係数を示し、あるいは他の場合ではその係数の限界を示す。pとqが不均衡である場合、上式の公式は下式のようになる。
k.(p+q−1)<e.21+g
n=p.qであるので、pとqが平衡している場合は式p+q<2(Φ(n)/2)+1が得られ、逆にpとqが不均衡である場合はp+q<21+gになる。
それ故、集合Eの全ての可能なeの値で、Φ(p)=Φ(q)である場合は、試験を実施して、選択したe値が以下の所定の関係式を満たすかどうかを判断する。
(1−e.d) modulo n<e.2(Φ(n)/2)+1 (7)
これ以外では、試験を実施して、選択したeの値が以下の所定の関係式を満たすかどうかを判断する。
(1−e.d) modulo n<e.2g+1 (7’)
適用した所定の試験関係式を満たす場合は、e=eであり、eが記憶される。
それ以外では、集合Eからeのために別の値を選択し、先行するステップを繰り返す。
第1の変形では、eの値を求める試験は、pとqが平衡しているかいないかに応じて、
(1−e.d) modulo n<e.2(Φ(n)/2)+1または
(1−e.d) modulo n<e.2g+1
を以下の試験で置換することができる。
(1−e.d) modulo n<B
ここで、Φ(p)=Φ(q)である場合は、B=[最大(e)]22(Φ(n)/2)+1
他の場合は、B=[最大(e)]2g+1
発明者の例では、E={216+1,3,17}である。それ故、iの全ての値についてe=216+1であり、先行する試験は、
(1−e.d) modulo n<B、ここで、B=2(Φ(n)/2)+17であり、Φ(p)=Φ(q)である場合、
それ以外では、(1−e.d) modulo n<B、ここで、B=2g+17
であるかをチェックすることに存する以下の方法で単純化することができる。
試験の第2の変形では、(1−e.d) modulo nの最上位ビット、例えば、128の最上位ビットがゼロであるかをチェックすることにより、先行する試験をさらに単純化することが可能である。
最後に、第1の技術について、最終的な単純化は、eの値に関する試験の所定の関係式を求めることに存し、関係式(6)の代わりに、以下の関係式で開始する。
(−e.d) modulo n=k(p+q−1)−1
それ故、この単純化から、試験関係式(7、7’)について、以下の単純化が得られる。
Φ(p)=Φ(q)の場合は、(−e.d) modulo n<e(Φ(n)/2)+1
それ以外では、(−e.d) modulo n<e.2g+1
第1の変形では、以下の単純化した試験が得られる。
(−e.d) modulo n<B、ここで、Φ(p)=Φ(q)の場合は、B=2(Φ(n)/2)+17、それ以外では、B=2g+17である。
また、試験の第2の変形では、(−e.d) modulo nの第1最上位ビットがゼロであるかをチェックすることに存する以下の単純化した試験が得られる。
実施する変形に関係なく、これが単純化したタイプであっても、そうでなくても、eの値について試験を満足しない場合は、一致点を見いだすまで集合Eからeの別の値を選択する。
上述した第1の技術に関するいずれの変形でも、eの値の中にe=eであるような値が存在しない場合、eを伴う標準モードのRSA暗号アルゴリズムの計算を実行できないことが、そのままである。
逆に、いずれかの変形によって所定の値Eの集合の値eからeの値を見いだした場合は、秘密演算を適用することによって値yに基づいて得られた値xが、関係式x=y modulo nを満足することを確保することによって、暗号アルゴリズム(メッセージの解読または署名の生成である)の各秘密演算(3)をチェックすることが可能である。これ以外では、任意の暗号解読を回避するように、解読したメッセージまたは署名を戻さない。
上記で説明したように、eが分かると、本発明の方法を、対策に、特に、上記DPA(およびSPA)タイプの攻撃に対する対策にも適用することができる。それ故、このような方法は、ランダムな整数rを選択することと、d*=d+r.(e.d−1)であるように値d*を計算することと、関係式x=yd* modulo nを適用することによって値yから値xを得るアルゴリズムの秘密演算を実施することに存する。
最後に、本発明は、所定の値eの集合を備える集合Eから指数eの値を求める第2の技術に関する。以下で説明するように、この技術は、RSAアルゴリズムの標準モードとCRTモードの両方に適用可能である。
上記技術は、特に、D1で提示された方法の改善である。それ故、以下のステップを実施する。
a)Eに属する任意のeについて、Φ/eがΦ(n)より小さくなるように、値
Figure 2007500863
を画定する。ここで、Φは、オイラーのトーシェント関数である。
b)値Φを所定の計算に適用する。
c)各eについて、上記所定の計算結果が値Φ/eに等しいかどうかを試験する。
−等しい場合は、eをeに帰し、暗号アルゴリズムの計算に使用するためにeを記憶する。
−それ以外では、値eを使用する暗号アルゴリズムの計算を実行することができない。
標準モードでは、ステップb)の所定の計算は、以下のように値Cの計算である。
C=Φ.d modulo Φ(n)であり、ここで、dは、e.d=1 modulo Φ(n)であるように、標準モードのRSAアルゴリズムの対応する秘密鍵である。
例えば、集合E={e=3,e=17,e=216+1}にすると、Φ=e.e.e=3.17.(216+1)である。
それ故、C=Φ.d modulo Φ(n)では、
C=17.(216+1)=Φ/eであれば、e=e=3であり、
C=3.(216+1)=Φ/eであれば、e=e=17であり、
C=3.17=Φ/eであれば、e=e=(216+1)である。
それ故、Cの値の取得を可能にする単一のモジュラ計算によって、上記計算の結果の関数として、集合Eから指数eの値を求めることが可能である。
代替方法では、ステップb)の所定の計算は、以下のように値Cを計算することに存する。
C=Φ.d modulo Φ(n)であり、ここで、dは、標準モードのRSAアルゴリズムの対応する秘密鍵であるが、オイラーのトーシェント関数をモジュロとする代わりに、カーマイケル関数をモジュロとする上記代替法で計算され、それ故e.d=1 modulo Φ(n)であり、Φはカーマイケル関数である。
eの値を求め、記憶すると、eの値を実装する標準モードの暗号アルゴリズムの計算は、故障攻撃を回避することと、対策、特にDPA(およびSPA)タイプの攻撃に対する対策を設けることに存し、これは第1技術に関して説明した計算と同一である。
変形では、実施されるRSAアルゴリズムがCRTモードである場合は、ステップb)の所定の計算は、以下のように値Cの計算に存する。
C=Φ.d modulo (p−1)であり、ここで、dはe.d=1 modulo (p−1)であるようなRSAアルゴリズムの対応する秘密鍵である。
あるいは実際には、
C=Φ.d modulo (q−1)であり、ここで、dはe.d=1 modulo (q−1)であるようなRSAアルゴリズムの対応する秘密鍵である。
または実際にはその両方であり、さらに2つの試験のうち少なくとも一方によって与えられるeを得ることに存する。
eの値を実際に求め、記憶すると、eの値を実装するCRTモードの暗号アルゴリズムの計算は、故障攻撃を回避することに存する。
次に、CRTモードの秘密演算を適用することによって値yから取得した値xが、第一に関係式x=y modulo p、第二に関係式x=y modulo qを満足させることを確保することによって、暗号アルゴリズム(メッセージの解読または署名の生成である)のCRTモードの各秘密演算をチェックすることが可能である。

Claims (25)

  1. 公開鍵暗号アルゴリズムを安全に実施するための方法であって、前記公開鍵が、2つの大きい素数pおよびqの積である整数nと公開指数eとで構成され、前記方法が、前記公開指数eの値に対応可能である所定数の素数eを備える集合Eを決定することからなり、前記方法が、
    a)Eに属する任意のeについてΦ/eがΦ(n)より小さくなるように、値
    Figure 2007500863
    を計算するステップであって、ここで、Φはオイラーのトーシェント関数であるステップと、
    b)値Φを所定の計算に適用するステップと、
    c)各eについて、前記所定の計算の結果が値Φ/eと等しいかどうかを試験するステップであって、
    −等しい場合は、値eをeに帰し、前記暗号アルゴリズムの計算に使用するためにeを記憶し、
    −それ以外では、値eを使用した暗号アルゴリズムの計算が実行不可能であることを遵守するステップとを含むことを特徴とする方法。
  2. 暗号アルゴリズムが、標準モードのRSAタイプのアルゴリズムに基づくことを特徴とする、請求項1に記載の方法。
  3. 前記ステップb)の前記所定の計算が、値C=Φ.d modulo Φ(n)の計算からなり、ここで、dは、e.d=1 modulo Φ(n)であるような前記RSAアルゴリズムの対応する秘密鍵であり、Φが前記オイラーのトーシェント関数であることを特徴とする、請求項2に記載の方法。
  4. 前記ステップb)の前記所定の計算が、値C=Φ.d modulo Φ(n)の計算からなり、ここで、dは、e.d=1 modulo Φ(n)であるような前記RSAアルゴリズムの対応する秘密鍵であり、Φがカーマイケル関数であることを特徴とする、請求項2に記載の方法。
  5. 前記暗号アルゴリズムが、CRTモードのRSAタイプのアルゴリズムに基づくことを特徴とする、請求項1に記載の方法。
  6. 前記ステップb)の所定の計算が、値C=Φ.d modulo (p−1)の計算からなり、ここで、dは、e.d=1 modulo (p−1)であるようなRSAアルゴリズムの対応する秘密鍵であることを特徴とする、請求項5に記載の方法。
  7. 前記ステップb)の前記所定の計算が、値C=Φ.d modulo (q−1)の計算からなり、ここで、dは、e.d=1 modulo (q−1)であるような前記RSAアルゴリズムの対応する秘密鍵であることを特徴とする、請求項5に記載の方法。
  8. 前記ステップb)の前記所定の計算が、以下の2つの値CおよびCの計算からなり、
    =Φ.d modulo (p−1)、ここで、dは、e.d=1 modulo (p−1)であるような前記RSAアルゴリズムの対応する秘密鍵、
    =Φ.d modulo (q−1)、ここで、dは、e.d=1 modulo (q−1)であるような前記RSAアルゴリズムの対応する秘密鍵、
    前記試験ステップc)が、各eについて、Cおよび/またはCが値Φ/eと等しいかどうかを試験することからなり、
    −等しい場合は、値eをeに帰し、前記暗号アルゴリズムの計算に使用するためにeを記憶し、
    −それ以外では、値eを使用した前記暗号アルゴリズムの計算が実行不可能であることを遵守することを特徴とする、請求項5に記載の方法。
  9. 値eがeに帰され、前記方法が、値eを使用する計算が、
    ランダムな整数rを選択することと、
    d*=d+r.(e.d−1)であるように、値d*を計算することと、
    関係式x=yd* modulo nを適用することによって、値yから値xを得るアルゴリズムの秘密演算を実施することからなることを特徴とする、請求項3または4に記載の方法。
  10. 値eがeに帰され、前記方法が、アルゴリズムの秘密演算の後、値yから値xを得ることからなり、値eを使用する計算が、x=y modulo nであるかをチェックすることからなることを特徴とする、請求項2乃至4の何れかに記載の方法。
  11. 値eがeに帰され、前記方法が、アルゴリズムの秘密演算の後、値yから値xを得ることからなり、値eを使用する計算が、第一にx=y modulo pであるか、第二にx=y modulo qであるかをチェックすることからなることを特徴とする、請求項5乃至8の何れかに記載の方法。
  12. 前記集合Eが少なくとも以下のeの値、すなわち3、17、216+1を含むことを特徴とする、請求項1乃至11のいずれかに記載の方法。
  13. 請求項1乃至12のいずれかに記載の方法を実施するための手段を備えることを特徴とする電子構成要素。
  14. 請求項13に記載の電子構成要素を含むスマート・カード。
  15. 公開鍵暗号アルゴリズムを安全に実施するための方法であって、前記公開鍵が、2つの大きい素数pおよびqの積である整数nと公開指数eとで構成され、前記方法が、公開指数eの値に対応可能である所定数の素数eを含む集合Eを決定することからなり、
    a)集合Eの値から値eを選択するステップと、
    b)Φ(p)=Φ(q)の場合、選択したeの値が、関係式
    (1−e.d) modulo n<e.2(Φ(n)/2)+1
    または単純化した前記関係式
    (−e.d) modulo n<e.2(Φ(n)/2)+1
    を満足させるかどうかを試験し、
    Φ(p)、Φ(q)およびΦ(n)が、それぞれ数p、数qおよび数nをコード化するビットの数を与える関数であり、
    それ以外では、pとqが不均衡である場合に、選択したeの値が以下の関係式
    (1−e.d) modulo n<e.2g+1
    または単純化した前記関係式
    (−e.d) modulo n<e.2g+1
    を満足させるかどうかを試験するステップであって、
    Φ(p)およびΦ(q)が分かっている場合は、g=max(Φ(p),Φ(q))、またはそれ以外では、g=Φ(n)/2+tであり、ここで、tが不均衡係数またはその係数の限界を示すステップと、
    c)前記ステップで適用された試験関係式を満し、したがってe=eである場合は、前記暗号アルゴリズムの計算に使用するためにeを記憶するステップであって、
    −それ以外では、eの値をeに帰すことができるまで、集合Eからeの別の値を選択しながら前記ステップを繰り返し、eに帰すことができるeの値がない場合は、eの値を使用する前記暗号アルゴリズムの計算が実行不可能であることを遵守するステップとを含むことを特徴とする方法。
  16. iの全ての値でe≦216+1であり、前記ステップb)が、別の試験ステップ、すなわち
    b)Φ(p)=Φ(q)の場合は、選択したeの値が関係式
    (1−e.d) modulo n<e.2(Φ(n)/2)+17
    または単純化した前記関係式
    (−e.d) modulo n<e.2(Φ(n)/2)+17
    を満足させるかどうかを試験するステップで置換され、
    ここで、Φ(p)、Φ(q)およびΦ(n)が、それぞれ数p、数qおよび数nをコード化するビットの数を与える関数であり、
    それ以外では、pとqが不均衡である場合には、選択したeの値が以下の関係式
    (1−e.d) modulo n<e.2g+17
    または単純化した前記関係式
    (−e.d) modulo n<e.2g+17
    を満足させるかどうかを試験するステップで置換され、
    Φ(p)およびΦ(q)が分かっている場合は、g=max(Φ(p),Φ(q))、またはそれ以外では、g=Φ(n)/2+tであり、ここで、tが不均衡係数またはその係数の限界を示すことを特徴とする、請求項15に記載の方法。
  17. 前記ステップb)が、
    選択したeの値が前記関係式を満たすかどうかを試験し、それにより、
    (1−e.d) modulo nの最初の最上位ビットがゼロであるか、
    または単純化した前記関係式
    (−e.d) modulo nの最初の最上位ビットがゼロであることからなる別の試験ステップで置換されることを特徴とする、請求項15に記載の方法。
  18. 前記試験が最初の128の最上位ビットで実行されることを特徴とする、請求項17に記載の方法。
  19. 前記暗号アルゴリズムが、標準モードのRSAタイプのアルゴリズムに基づくことを特徴とする、請求項15乃至18の何れかに記載の方法。
  20. の値がeに帰され、前記方法が、値eを使用する前記計算が、
    ランダムな整数rを選択することと、
    d*=d+r.(e.d−1)であるように、値d*を計算することと、
    前記関係式x=yd* modulo nを適用することにより、値yから値xが得られるアルゴリズムの秘密演算を実施することからなることを特徴とする、請求項15乃至19の何れかに記載の方法。
  21. の値がeに帰され、前記方法が、前記アルゴリズムの秘密演算の後、値yから値xを得ることからなり、値eを使用する前記計算が、x=y modulo nであるかをチェックすることからなることを特徴とする、請求項15乃至19の何れかに記載の方法。
  22. 集合Eが少なくとも以下のeの値、すなわち3、17、216+1を含むことを特徴とする、請求項15乃至21の何れかに記載の方法。
  23. 集合Eの値から値eの好ましい選択が、以下の順序、すなわち216+1、3、17の順序で行われることを特徴とする、請求項22に記載の方法。
  24. 請求項15乃至23の何れかに記載の方法を実施するための手段を備えることを特徴とする電子構成要素。
  25. 請求項24に記載の電子構成要素を含むスマート・カード。
JP2006521566A 2003-07-31 2004-07-08 Rsaタイプの暗号アルゴリズムを安全に実施するための方法、および対応する構成要素 Expired - Fee Related JP4568886B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009515449A (ja) * 2005-11-04 2009-04-09 ジェムプリュス 組み込みシステム上での暗号アルゴリズム実行中にデータを安全に処理するための方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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