JP5179358B2 - 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法 - Google Patents

攻撃又は解析に対してデータ処理装置を保護するための装置及び方法 Download PDF

Info

Publication number
JP5179358B2
JP5179358B2 JP2008519042A JP2008519042A JP5179358B2 JP 5179358 B2 JP5179358 B2 JP 5179358B2 JP 2008519042 A JP2008519042 A JP 2008519042A JP 2008519042 A JP2008519042 A JP 2008519042A JP 5179358 B2 JP5179358 B2 JP 5179358B2
Authority
JP
Japan
Prior art keywords
data processing
processing device
cryptographic operation
processing apparatus
random variable
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.)
Expired - Fee Related
Application number
JP2008519042A
Other languages
English (en)
Other versions
JP2009500892A (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.)
Irdeto BV
Original Assignee
Irdeto Eindhoven BV
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 Irdeto Eindhoven BV filed Critical Irdeto Eindhoven BV
Publication of JP2009500892A publication Critical patent/JP2009500892A/ja
Application granted granted Critical
Publication of JP5179358B2 publication Critical patent/JP5179358B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/7238Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)
    • 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/728Methods 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 using Montgomery reduction
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)

Description

本発明は、一般的には、暗号解析を防ぐ技術分野に関し、特に少なくとも1つの攻撃に対して、例えば少なくとも1つの電磁(Electro Magnetic、EM)放射攻撃に対して、又は少なくとも1つの解析に対して、例えば少なくとも1つの差分電力解析(Differential Power Analysis、DPA)に対して、少なくとも1つのデータ処理装置を保護する技術分野に関する。
更に詳細には、本発明は、少なくとも1つのデータ処理装置、特に例えば少なくとも1つのチップカード又はスマートカードのような少なくとも1つの埋め込みシステムを、少なくとも1つの攻撃、特に例えば少なくとも1つの電流追跡解析のような少なくとも1つのサイドチャネル攻撃から保護するための装置及び方法であって、前記データ処理装置、特に前記データ処理装置の少なくとも1つの集積回路が、計算、特に暗号演算を実行するための装置及び方法に関する。
特にチップカード又はスマートカードのような埋め込みシステムのようなデータ処理装置は、鍵を交換するために公開鍵基盤(PKI)システムを利用し、秘密鍵を見出すことを目的とする幾つかの形態の攻撃に対して保護される必要がある。斯かる攻撃の1つは、
−チップ上の、特にむき出しの(従って光に敏感な)チップ上の、1以上の光源、又は
−チップ上の、何らかの種類の電磁(EM)放射源を目標とすることにより、計算、特に暗号演算に影響を与えることである。
RSA(Rivest-Shamir-Adleman)アルゴリズム及び/又は楕円曲線暗号(Elliptic Curve Cryptography、ECC)アルゴリズムに基づく計算のためには、多くの乗算が必要とされる。通常これらの計算は、例えば電流追跡解析のような、サイドチャネル攻撃に対する保護なく実行される。
このことは、DPA攻撃に対して脆弱であり得る。なぜなら、同一の乗算が実行される度に、攻撃者が多くの電流追跡を為し得るからである。これらの追跡を加算した後には、ノイズの殆どが除去される。攻撃者が異なる入力に対し同一のことを実行すると、該攻撃者は電流追跡を比較し、ビット毎に秘密鍵を知ることができる。
国際特許出願公開WO01/97009A1の先行技術文献は、モジュール型のべき乗ルーティンを有する暗号計算のための方法を開示している。該既知の方法は、中間結果を隠蔽するための2つのランダム的な変数を用いて動作する。これに関連して、国際特許出願公開WO01/97009A1の先行技術は、ランダム的な変数の加算を用いて動作するが、乗算演算のみが隠蔽される。
しかしながら、結果が次の計算のために利用される前に、該結果は最初に隠蔽されず、該結果はやはり脆弱になる。乗算はDPAに対して敏感であるのみならず、隠蔽されていない結果のランダムアクセスメモリ(RAM)のアクセスに対しても敏感である。
Jean-Sebastien Coron及びLouis Goubinによる先行技術の論文「On Boolean and Arithmetic Masking against Differential Power Analysis」は、DPA攻撃を議論し、全ての入力及び出力をマスキングすることを提案している(第2頁、第4及び5段落)。第5段落は乗算によるRSAのマスキングを議論しており、Thomas S. Messergesによる「Securing the AES Finalists Against Power Analysis Attacks」(FSE 2000、Springer-Verlag)に参照が為されている。
Radu Muresanによる先行技術の論文「Modeling and applications of current dynamics in a complex processor core」は、ECCを適用する前に楕円曲線上の点を隠蔽することを言及している(第33乃至37頁)。
本発明の技術的な背景に関して、更なる参照が、以下に対して為され得る:
−Luca Benini、Angelo Galati、Alberto Macii、Enrico Macii及びMassimo Poncinoによる先行技術の論文「Energy-Efficient Data Scrambling on Memory-Processor Interfaces」、
−Tom Lashによる先行技術の論文「A Study of Power Analysis and the Advanced Encryption Standard - Recommendations for Designing Power Analysis Resistant Devices」、
−欧州特許出願公開EP1014617A2、
−欧州特許出願公開EP1267514A9、
−英国特許出願公開GB2345229A、
−米国特許出願公開US2003/0194086A1、
−国際特許出願公開WO00/42511A1、
−国際特許出願公開WO01/08012A1、
−国際特許出願公開WO01/31436A1、
−国際特許出願公開WO02/50658A1、
−国際特許出願公開WO03/101039A1、及び
−Larry T. McDaniel IIIによる先行技術の論文「An Investigation of Differential Power Analysis Attacks on FPGA-based Encryption Systems」。
上述した欠点及び短所を発端とし、議論されたような先行技術を考慮に入れ、本発明の目的は、本技術分野における上述したような装置、及び本技術分野における上述したような種類の方法を更に発展させ、特に秘密鍵を見出すことを目的とした、例えばEM放射攻撃のような攻撃、又は例えばDPAのような解析を、安全に回避することを可能とすることにある。
本発明の目的は、請求項1の特徴を有する装置、及び請求項8の特徴を有する方法により達成される。本発明の有利な実施例及び好適な改良は、それぞれの従属請求項に開示される。
本発明は主に、非脆弱性、特にDPAに対する非脆弱性を提供するため、中間結果を隠蔽するための装置及び方法を利用するという発想に基づく。とりわけ、斯かる隠蔽は例えば、少なくとも1つのランダム的な変数を利用することにより、計算、特に暗号演算に含まれる加算により、乗算において利用される。ここで、オペランドの逆数の計算は必要とされない。
より具体的には、メッセージMが変数Vによって隠蔽されることができる。該変数Vは、ランダム的に選択された変数vから導出されることができる。このようにして、全ての中間結果もが隠蔽される。これら中間結果は、計算の終了まで、特に暗号演算の終了まで、隠蔽されたままとなる。
本発明の好適な実施例によれば、RSA計算全体の間又はECC計算の全体の間一定に保たれるが、新たな計算が開始されると変化させられるランダム的な変数によって、全ての中間結果が隠蔽される。これにより、全ての入力が同一である場合であっても、全ての電流追跡が変化させられる。なぜなら、ランダム的な変数は同一でないからである。
本発明の好適な実施例においては、モンゴメリ還元(Montgomery reduction)の原理が利用される。モンゴメリ還元は、Peter L. Montgomeryによって1985年に発表された、モジュール型計算における乗算のための効率的なアルゴリズムである。より具体的には、モンゴメリ還元は、c=ab・mod(n)を計算するための方法であり、ここでa、b及びnはkビットのバイナリ数である。
モンゴメリ還元は、ここでは特に暗号化に適用される。mを正の整数とし、R及びTをR>m、gcd(m,R)=1且つ0≦T<mRとなる整数とする。ここでgcdは最大公約数(greatest common divisor)である。古典的な方法を使わずにTR-1mod(m)を算出することは、Rに対するTモジュロmのモンゴメリ還元と呼ばれる。Rの適切な選択により、モンゴメリ還元が効率的に計算されることができる。
有利にも、本発明はモンゴメリ還元に限定されるものではなく、本発明は他の還元原理にも適合されることができる。
本発明はオペランドの逆数を計算する能力を必要とせず、このことはRSAアプリケーションに好適であり得る。
本発明は更に、計算、特に暗号演算を実行する少なくとも1つの集積回路を有する、データ処理装置、特に例えばチップカード又はスマートカードのような埋め込みシステムに関する。ここで前記集積回路は、
−少なくとも1つの攻撃に対して、特に少なくとも1つのEM放射攻撃に対して、又は
−少なくとも1つの暗号解析に対して、特に少なくとも1つのDPAに対して、
前記計算のオペランドを反転させることなく、少なくとも1つのランダム的な変数によって、前記計算の全ての中間結果を隠蔽することにより、保護される。
本発明は最後に、DPAに対して保護されるべき上述したような少なくとも1つのデータ処理装置における、上述したような少なくとも1つの装置の使用、及び/又は上述したような方法の使用に関する。
既に上述したように、本発明の教示を有利な態様で実施化及び改善する幾つかの選択肢がある。この目的のため、請求項1に従属する及び請求項8に従属する請求項に参照が為される。本発明の更なる改善、特徴及び利点は、例として示される好適な実施例及び添付図面を参照しながら、以下により詳細に説明される。
図1乃至図4において、対応する部分には同一の参照番号が用いられる。
データ処理装置の実施例、即ち暗号演算を実行する集積回路(IC)を有するチップカード又はスマートカードの形をとる埋め込みシステムは、PKIシステムを参照し、本発明の方法に従って動作する。即ち、保護装置100(図4を参照)により不正使用及び/又は操作から保護される。
本発明は、オペランドの逆数を計算する能力を必要としない。
本集積回路の暗号計算は、RSAアルゴリズムに基づくものであっても良い(米国特許US4405829、又はRon Rivest、Adi Shamir及びLen Adlemanによる先行技術の論文「A Method for Obtaining Digital Signatures and Public-Key Cryptosystems」(Communications of the ACM、21(2)、120-126頁、1978年2月を参照)。該アルゴリズムは暗号化C=Memod(N)を計算するためのものであり、ここで、
Mは暗号化されるべきメッセージであり、
N=p・qであり、
eは(p-1)(q-1)と互いに素であり、
dはxedmod[(p-1)(q-1)]=1であるような数である。
復号化はM=Cdmod(N)を計算する。
Me(又はCd)を計算するための方法の1つは、以下のとおりである:
第1のステップ:R=1から始める。
第2のステップ:左から右へと指数eを走査する。
第3のステップ:R=R2mod(N)を常に計算する。
第4のステップ:eの走査されたビットが1である場合、R=R・M・mod(N)が更に計算される。
かくして、本計算は幾つかの二乗及び乗算を有する。
係数Nがnビットから成る幾つかの語mを有すると仮定する。即ち、
N=nm-1Bm-1+nm-2Bm-2+...+n1B+n0(ここでB=2n)である。
モジュール還元の後、変数はnビットから成るm個の語を有するが、最上位語(MSW)は更に数ビットを持ち得る。モジュール還元の前に、結果は更なる語(通常は1)を持つ。
以下により詳細に示されるように、本発明は最初に、1つの語のランダム的に選択された変数vを用いて、Mを隠蔽する。該ランダム的に選択された変数vは、Mmod(N)の全ての語から減算される。V=(Bm-1+Bm-2+...+B+1)vを用いると、Mは、M=M-Vmod(N)として計算されることができる。本文脈においては、下線は変数が隠蔽されることを示す。次いで、結果RがVによって同様に隠蔽されるように、乗算及び二乗が変更される。従って、全ての中間結果も隠蔽される。次いで最後の端において、べき乗が準備状態となると、結果が非隠蔽化される。
更に詳細には、初期隠蔽の最初の段階において、vをnビットのランダム的に選択された変数であるとする。還元を容易化するための更なる条件はv<nm-1であり得るが、nm-1が幾つかの先行ゼロを持つ場合には、該条件は隠蔽を危うくする。なぜなら、vが常に、少なくとも同じ数の先行ゼロを常に受信することになるからである。
次いで、ランダム的に選択された変数vが、Mの全ての語から減算される。結果が負である場合には、N又は2Nが加算される。しかしながら、結果が負であるか否かを事前に知ることが好ましい。
このため、最初にMm-1-v-1+nm-1が計算される:
−結果がオーバフローする場合には、M-Vが計算される。
−結果が正でありオーバフローしない場合には、M-V+Nが計算される。
−結果が負である場合には、M-V+2Nが計算される。
vの減算はその2の補数を利用することにより為される。即ち、
-V=-Bm+(B-v-1)Bm-1+...+(B-v-1)B+(B-v-1)+1である。従って、Bmについて予期される全ての正の数が加算される。項-Bmは利用されないが、他の変数に対する(B-v-1)Bm-1+...+(B-v-1)B+(B-v-1)+1の加算がキャリービットを与える場合には、項-Bmは無視される。
上述の計算の数学的実装は、以下のようになる:
c=1
if Mm-1-v-1+nm-1≧B
for j=0 to m-1: Bc+Rj=Mj+(B-v-1)+c
else if Mm-1-v-1+nm-1≧0
for j=0 to m-1: Bc+Rj=Mj+(B-v-1)+c+nj
else
for j=0 to m-1: Bc+Rj=Mj+(B-v-1)+c+2nj
第4のステップ、即ち保護のないRSA計算即ち乗算のステップにおいて、以下の計算が実行される:
R=X*Ymod(N)
X=xm-1Bm-1+xm-2Bm-2+...+x1B+x0
Y=ym-1Bm-1+ym-2Bm-2+...+y1B+y0
B=2n
ここで、mは語の数であり(例えばm=16)、nは語のビットの数である(例えばn=64)。
図1は、4つの語についての、即ちm=4についての、モジュール乗算X*Yの例を与える。Yの1つの語が完全なXにより乗算される度に、以前の結果Rが加算される。次いで、該結果が還元される。図1の例においては、モンゴメリ還元(図1における参照記号Mr)により還元される。次いで、Yの全ての語が利用されるまで、この手順がYの次の語について繰り返される。
該乗算のサブステップにおいて、XYj+Rが計算され、次いでモンゴメリ還元Mrが実行される。このことは、以下のように為される:
C=0;
for i=0 to m-1 {(BC+Ri)=XiYj+Ri+C}
Rm=C
保護の場合には、全てのオペランドがVにより隠蔽されることが想定される。即ち、
V=(Bm-1+...+B+1)v
次いで、X=X-Vmod(N)、Y=Y-Vmod(N)及びR=R-Vmod(N)が計算される。
最初に、Y jが非隠蔽化される:
キャリーを与える場合にはvが全ての語Yjに加算され、次に高次の語Yj+1に加算される:
Bc+Yj=Y j+v+c
ここで、R'=XYj+R+VYj-Bmv=(X-V)Yj+R-V+VYj-Bmv=XYj+R-V-Bmv=R'-Vが計算される。項-Bmvは積XYjのMSW(インデクスm)を隠蔽するためのものである。従って、新たな結果R'もまたVによって隠蔽される。それ故、VYj-BmVが乗算XYj+Rに加算される必要があり、このことはvYj=BWH+WLと記述されることができる。
このことは、以下のアルゴリズムに帰着する:
C=0;
Bc+Yj=Y j+v+c;
BWH+WL=vYj;
for i=0 to m-1: {(BC+R i)=X iYj+BWH+WL+R i+C}
R m=C-v
j=0について、隠蔽の一部を実行したRの加算なく、R=XYが計算される必要がある。この場合、XY0-Vが代わりに計算される:
C=0;
Bc+Y0=Y 0+v+c;
BWH+WL=vY0
for i=0 to m-1: {(BC+R i)=X iY0+BWH+WL-v+C}
R m=C-v
付加的な還元のサブステップに関しては、モンゴメリ還元Mrは1つの語の分だけ還元し、このことは不十分であり得る。乗算の間、R'=XYj+R+VYj-Bmvが計算される。本文脈において、Yj=B-1について、VYj-Bm=-vであることは留意されるべきである。0≦X<Bm、0≦Yj<B、0≦R<Bm及び0≦v<Bであると、Bm+1<R'<Bm+1となる。中間結果は負となり得る。
乗算及び還元の全体の結果は、R''=(NQ+XYj+R+VYj-Bmv)/Bである。Yjが最大値B-1を持つと仮定すると、(VYj-Bmv)/B=-v/B>-1であり、従ってこれら項は無視され得る。
この場合、R<N+Xである場合には、R''<N+Xも成り立つことが証明され得る。従ってR及びそれ故R''は多くとも1ビットだけ大きいが、幾つかの計算の間累積しない。最後の端においてのみ、即ちYm-1が利用される場合にのみ、多くとも2度Nを減算することによる付加的な還元が実行される必要がある。
他方の端において、Q=0且つYj-1=0である場合、R>-vBm-1である場合には、R''>-vBm-1も成り立つことが証明され得る。従って、R''は負となり得るが、幾つかの付加的な還元の間累積しない。従って、結果が負のままとなる。最後の端においてのみ、即ちYm-1が利用される場合にのみ、多くとも2度Nを加算することによる付加的な還元が実行される必要がある。
上述の計算は更に、以下のことを意味する:
−次のYjがロードされる度に、最初にvが加算される必要があり、次いでvYj=BWH+WLが事前に計算される必要があり、WH及びWLが保存される必要がある。このことは付加的な乗算であり、これにより計算時間が長くなり得る。
−BWH+WLが乗算の間に加算される必要があり、このことは乗算器10(図3及び4を参照)に対する付加的な加算入力を意味する。
−還元の最後の乗算の間、vが当該結果の上部から減算される必要があり、このこともまた乗算器10(図3及び4を参照)の適合を必要とする。
第3のステップ、即ち保護のないRSA計算即ち二乗のステップにおいて、図2は、4つの語についての、即ちm=4についての、通常のRSA二乗の第1のサブステップ及びモンゴメリ還元(図2における参照記号Mr)を示す。
XHj=Bm-1Xm-1+...+Bj+1Xj+1(即ちXj+1から始まるXの全ての項)であり、
RHj=Bm-1Rm-1+...+Bj+1Rj+1(即ちRj+1から始まるRの全ての項)であるが、
RH0=0である。
一般に、Xj 2+Rj及び2XHjXj+RHj+Cが計算され、次いでモンゴメリ還元(図2における参照記号Mr)が実行される。
第3のステップ、即ち保護のないRSA計算即ち二乗のステップにおいて、全てのオペランドがVにより隠蔽されることが仮定される。即ち、
V=(Bm-1+...+B+1)v
X=X-Vmod(N)及びR=R-Vmod(N)を計算した後、最初にX jが非隠蔽化される。vが全ての語X jに加算される。キャリーを与える場合には、次に高次の語X j+1に加算される:Bc+Xj=X j+v+c
ここで、二乗のために、以下が計算される:
BC+R j'=X jXj+R j+vXj=(Xj-v)Xj+R j+vXj=Xj 2+R j
隠蔽されたR jの加算は、項R j'を再び隠蔽する。
二重積については、
R Hj'=2X HjXj+R Hj+C+2VHjXj-Bmv=2XHjXj+R Hj+C-Bmv
であり、ここでVHj=(Bm-1+...+Bj+1)vである。
R Hjは、j+1からm-1に亘るインデクスを持つ全ての項を隠蔽する。項-Bmvは、結果(Rm)のMSWを隠蔽する。0からj-1に亘るインデクスを持つ全ての項Rは変化させられず、それ故隠蔽される。
従って、新たな結果R'もまたVにより隠蔽される。
それ故、vXjが二乗に加算される必要があり、2VHjXj-Bmvが二重積に加算される必要がある。
j=0については、隠蔽の一部を実行したRの加算なくR=X2が計算される必要があり、この場合においては、代わりにXX0-Vが計算される。
このことは、以下のアルゴリズムを与える:
//j=0
Bc+X0=X 0+v;
BWH+WL=VX0;
BC+R0=X 0X0+BWH+WL-v;
for i=1 to m-1: {BC+R i=2X 0X0+B2WH+2WL-v+C}
R m =C-v;
R=Montgomery(R);
//j>0
for j=1 to m-1:
{ Bc+Xj=X j +v+c;
BWH+WL=vXj;
BC+R j=X jXj+BWH+WL+R j;
for i=j+1 to m-1: {BC+R i=2X iXj+B2WH+2WL+R i+C}
R m=C-v;
R=Montgomery(R);
}
付加的な還元のサブステップにおいて、モンゴメリ還元(図2における参照記号Mr)は1語だけ還元し、このことは不十分であり得る。
乗算の間、
R=(X jXj+R j+vXj)Bj+2X HjXj+R Hj+2VHjXj-Bmv
が計算される。ここで
R<2X Hj-1Xj+R Hj-1+2VHj-1Xj-Bmv
である。
Xj<B、XHj-1<Bm-BjV Hj-1<Bm-Bj、v<Bとすると、R'<3Bm+1となる。vを除く全ての変数がゼロとすると、R'>-Bm+1となる。中間結果は負となり得、正である場合には2ビットだけオーバフローし得る。
乗算及び還元の全体の結果は、
R''<(NQ+2X Hj-1Xj+R Hj-1+2VHj-1Xj-Bmv)/B
となる。
R<N+2X Hj-1+2VHj-1-Bmである場合には、
R''<N+2X Hj-1+2VHj-1-Bm<3Bm+N<4Bm
も成り立つことが、証明され得る。
従って、R及びそれ故R''は多くとも2ビットだけ大きいが、幾つかの計算の間累積しない。従って、最後の1つを除いて、全ての還元について残される。
しかしながら最後の還元は、1つの乗算を伴い、二重積を伴わずに終了する。このことは、乗算と同一の結果を与える(保護のない乗算の間の付加的な還元のサブステップを参照)。
上述した計算は更に、乗算の間、BWH+WLの他に、2(BWH+WL)もが加算される必要があることを示している。このことは、BWH+WLのための付加的な加算器が、入力をシフトするために入力部において多重化器を持つことを意味している。
ECCについては(M. Ernst、M. Jung、F. Madlenerらによる先行技術の論文「A Reconfigurable System on Chip Implementation for Elliptic Curve Cryptography over GF(2n)」、381-399頁を参照)、楕円曲線及び該曲線上の点Pが選択される。
第1のインスタンスAにおいて、ランダム的な数aが選択される。公開鍵としてaPが計算され第2のインスタンスBに送信される。第2のインスタンスBにおいても、ランダム的な数bが選択される。公開鍵としてbPが計算され第1のインスタンスAに送信される。次いで第1のインスタンスAはK=a(bP)を計算し、第2のインスタンスBはK'=b(aP)を計算する。ここでK=K'であり、このことは2つのインスタンスA及びBの共通の秘密である。
基本的な演算は、スカラaによる点Pの乗算である。該乗算は、(a回)繰り返される点の加算:X=aP=P+P+...+Pである。該加算は点Pから開始され、スカラaが左から右へと走査される。即ち、
−R=Pで開始;
−スカラaを左から右へと走査:
−−R=2Rmod(N)を常に計算(所謂点倍算(point doubling))
−−aの走査されたビットが1である場合、R=R+Pmod(N)が更に算出される(所謂点加算(point addition))。
所謂点倍算のためのアルゴリズム及び所謂点加算のためのアルゴリズムは、XYmod(N)及びX2mod(N)のような演算を利用するが(RSAアルゴリズムのように)、
R=X+Ymod(N)及びR=X-Ymod(N)のような演算にもよる。
点倍算アルゴリズム及び点加算アルゴリズムはまた、X-1を計算する逆数演算を必要とし、ここでXX-1mod(N)=1である。
隠蔽は逆数には適しておらず、従ってオペランドは最初に非隠蔽化され、次いで反転され、次いで再び隠蔽される。このことは問題とはならない。なぜなら、殆どのアルゴリズムは、1つの反転のみを持つ投射座標を用いて動作し、最後まで後回しにされるからである。他にも逆数演算を隠蔽する既知の方法がある。
ECCのための語の数は、RSAのための語の数よりもかなり少ない。それ故、最初に加算/減算を伴う完全な乗算が、還元の前に実行される。RSAのように、乗算と還元とをインタリーブすることも可能である。
ここで、モンゴメリ還元が利用されるが、隠蔽は他のタイプの減算のために設計されても良い。
最初の段階、即ち初期隠蔽において、該初期隠蔽は、RSAアルゴリズムについて上述したものと同一の方法で実行されるが、ここでは点Pの両方の座標が隠蔽される必要がある。全ての演算は、同一の方法で隠蔽される結果をもたらす。
第2の段階、即ち乗算(XYmod(N))及び二乗(X2mod(N))において、これら演算の隠蔽は、RSAアルゴリズムについて上述したものと同一の方法で実行される。
最後のステップ、即ち付加的な還元(R=X±Ymod(N))においては、
−加算の場合、R=X+Y+V=(X-V)+(Y-V)+V=R-Vが計算され、
−減算の場合、R=X-Y-V=(X-V)-(Y-V)-V=R-Vが計算される。
本発明の実装は、少なくとも部分的にソフトウェアベースであっても良い。これに関連して、RSAプログラミング及び/又はECCプログラミングに適したプロセッサが、上述した付加的な還元アルゴリズムを実装しても良い。
本発明による保護装置100のハードウェア実装の例が、図3及び4に示される。最大限の速度のため、図3に例示された乗算ユニット10は、以下の式を計算することが可能である:
Bc+r=xy+Bu-kBx+z+c (k=-2,...,3)
ここでrは、XY±Zの乗算についての例えばn2q+Br5-Bkn2+c2+c又はxy±Bz+r+cについての結果の最下位語(LSW)であり、cはMSWである。
乗算器10は、
(i)積xyを計算する;
(ii)必要であれば、該積xyの下部にzを加算する;
(iii)必要であれば、該積xyの下部にcレジスタ14cの内容を加算する;
(iv)必要であれば、該積xyの上部にuを加算する;
(v)必要であれば、該積xyの上部にxの倍数を加算又は減算する;
(vi)結果の下部をrレジスタ14rに保存する;
(vii)結果の上部を、次の計算における利用のため、cレジスタ14cに保存する。
更に図3から分かるように、乗算器10は、
−結果rのための全加算器16rと、
−乗算が完了したときのキャリーのための全加算器16cと、
−どの範囲(2pに対して)に結果が存在するかを決定する範囲器18と、
を有する。
乗算器10を例えば2ビットのルックアップテーブルを用いて構築することは有利である。なぜならこのとき、xの倍数(特に3x)が既に利用可能であるからである。
これとは独立して、又はこれに加えて、キャリー保存加算器を用いて合計を実行し、rレジスタ14rについてのみ全加算器16rを利用することも有利である。この場合、cは2つの語、即ちキャリーとキャリー保存加算器の合計とを有する。次いでcレジスタ14cが倍算され、入力cもまた2つの語を有する。
範囲器18は、結果Bc+rがf2p/Bm-1よりも小さいか否かを決定する必要がある。ここでfは以下の値、即ち0、3/4又は1(Reについて)、及び-7/8、-3/4、-1/2、0、3/4、7/8、1、3/2、7/4及び2を持つ。結果Bc+rが正であるか負であるかは、符号ビットをみることにより分かる。例えば値7/8については、位置p-2m-1から下の4ビットは0111である。p=Bmである場合、これら4ビットはcのMSBである。
乗算器10はメモリ20に接続され(図4における参照記号12a及び12b)、メモリ20において全てのオペランドが保存される。前記結果もまた該メモリ20に保存される。
更に状態機械30が存在し、該状態機械30は、
−必要とされるタイプの計算を実行するため乗算器10を制御し、
−keの値及びkの値を選択し、
−メモリ20から入力オペランドを読み込み、
−結果をメモリ20に書き込む。
4つの語に対するモジュール型乗算の実施例を模式的に示す。 4つの語に対する、通常のRSA二乗及びモンゴメリ還元の実施例を模式的に示す。 図4の装置に含まれる乗算ユニットの実施例を模式的に示す。 本発明の方法に従って動作する、本発明による装置の実施例を模式的に示す。
符号の説明
100 装置
10 装置100の乗算ユニット
12a 乗算ユニット10とメモリユニット20との間の第1の接続、とりわけ乗算ユニット10からメモリ20への接続
12b 乗算ユニット10とメモリユニット20との間の第2の接続、とりわけメモリユニット20から乗算ユニット10への接続
14c 乗算ユニット10のcレジスタモジュール
14r 乗算ユニット10のrレジスタモジュール
16c 乗算ユニット10の第1の全加算モジュール
16r 乗算ユニット10の第2の全加算モジュール
18 乗算ユニット10の範囲モジュール
20 装置100のメモリユニット
30 装置100の状態機械
Mr モンゴメリ還元

Claims (9)

  1. 少なくとも1つの攻撃から少なくとも1つのデータ処理装置を保護する方法であって、データ処理装置は、入力メッセージ(M)上で暗号演算を実行するためにオペランドを利用するように配置され、暗号演算は、モジュール型計算を含み、
    データ処理装置が、隠蔽される入力メッセージを生成するために、第1のランダム的な変数(V)を利用して入力メッセージ(M)を隠蔽する過程と、
    データ処理装置が、対応する隠蔽される中間結果を生成するために、第1のランダム的な変数(V)を利用して暗号演算の全ての中間結果(R)を隠蔽する過程と、を具備し、
    オペランドは、暗号演算中にデータ処理装置によって反転されず、
    データ処理装置が、隠蔽される入力メッセージ、M−Vmod(N)として計算しデータ処理装置が、各隠蔽される中間結果、R−Vmod(N)として計算しデータ処理装置が、第1のランダム的な変数(V)、(Bm−1+Bm−2+・・・+B+1)vとして計算し
    Nは、モジュール型計算で利用されるモジュールであり、m個の語を含み、各m個の語は、nビットを含み、vは、nビットを含む1つの語である第2のランダム的な変数であり、Bは、2に等しいことを特徴とする方法。
  2. データ処理装置が、第1のランダム的な変数、暗号演算の全体の中で一定に保ち、新たな暗号演算が開始されたときに、データ処理装置が、前記第1のランダム的な変数を変化させることを特徴とする、請求項1に記載の方法。
  3. 暗号演算は、(a)RSAアルゴリズム及び(b)楕円曲線暗号アルゴリズムの1つ又は両方に基づくことを特徴とする、請求項1又は2に記載の方法。
  4. 1つ又は複数の前記モジュール型計算を実行するために、データ処理装置が、モンゴメリ還元を利用することを特徴とする、請求項1乃至3のいずれか一項に記載の方法。
  5. データ処理装置であって、入力メッセージ(M)上で暗号演算を実行するためにオペランドを利用するように配置され、暗号演算は、モジュール型計算を含み、
    データ処理装置が、隠蔽される入力メッセージを生成するために、第1のランダム的な変数(V)を利用して入力メッセージ(M)を隠蔽するように配置され、
    データ処理装置が、対応する隠蔽される中間結果を生成するために、第1のランダム的な変数(V)を利用して暗号演算の全ての中間結果(R)を隠蔽するように配置され、
    オペランドは、暗号演算中にデータ処理装置によって反転されず、
    データ処理装置が、隠蔽される入力メッセージを、M−Vmod(N)として計算し、データ処理装置が、各隠蔽される中間結果を、R−Vmod(N)として計算し、データ処理装置が、第1のランダム的な変数(V)を、(B m−1 +B m−2 +・・・+B+1)vとして計算し、
    Nは、モジュール型計算で利用されるモジュールであり、m個の語を含み、各m個の語は、nビットを含み、vは、nビットを含む1つの語である第2のランダム的な変数であり、Bは、2 に等しいことを特徴とするデータ処理装置。
  6. データ処理装置が、第1のランダム的な変数を、暗号演算の全体の中で一定に保つように配置され、新たな暗号演算が開始されたときに、データ処理装置が、前記第1のランダム的な変数を変化させるように配置されることを特徴とする、請求項5に記載のデータ処理装置。
  7. 暗号演算は、(a)RSAアルゴリズム及び(b)楕円曲線暗号アルゴリズムの1つ又は両方に基づくことを特徴とする、請求項5又は6に記載のデータ処理装置。
  8. 1つ又は複数の前記モジュール型計算を実行するために、データ処理装置が、モンゴメリ還元を利用することを特徴とする、請求項5乃至7のいずれか一項に記載のデータ処理装置。
  9. オペランドと計算の結果とを保存するためのメモリユニットと、
    メモリユニットに接続された少なくとも1つの乗算ユニットと、
    (a)乗算ユニットを制御すること、(b)必要とされるタイプの計算を実行すること、(c)メモリユニットから入力オペランドを読み取ること、及び(d)メモリユニットに計算の結果を書き込むこと、の1つ又は複数を実行するための少なくとも1つの状態機械と、
    を具備することを特徴とする請求項5乃至8のいずれか一項に記載のデータ処理装置
JP2008519042A 2005-06-29 2006-06-23 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法 Expired - Fee Related JP5179358B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP05105806.3 2005-06-29
EP05105806 2005-06-29
PCT/IB2006/052055 WO2007000702A2 (en) 2005-06-29 2006-06-23 Arrangement for and method of protecting a data processing device against a cryptographic attack or analysis

Publications (2)

Publication Number Publication Date
JP2009500892A JP2009500892A (ja) 2009-01-08
JP5179358B2 true JP5179358B2 (ja) 2013-04-10

Family

ID=37456056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008519042A Expired - Fee Related JP5179358B2 (ja) 2005-06-29 2006-06-23 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法

Country Status (5)

Country Link
US (1) US8738927B2 (ja)
EP (1) EP1899804B1 (ja)
JP (1) JP5179358B2 (ja)
CN (1) CN101213513B (ja)
WO (1) WO2007000702A2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007000701A2 (en) * 2005-06-29 2007-01-04 Koninklijke Philips Electronics N. V. Arrangement for and method of protecting a data processing device against an attack or analysis
CN101213513B (zh) 2005-06-29 2013-06-12 爱迪德艾恩德霍芬公司 保护数据处理装置免受密码攻击或分析的设备和方法
FR2926651B1 (fr) * 2008-01-23 2010-05-21 Inside Contactless Procede et dispositifs de contre-mesure pour cryptographie asymetrique
EP2365659B1 (fr) * 2010-03-01 2017-04-12 Inside Secure Procédé de test de la résistance d'un circuit intégré à une analyse par canal auxiliaire
FR2956933A1 (fr) * 2010-03-01 2011-09-02 Inside Contactless Circuit integre protege contre une analyse par canal auxiliaire horizontale
US8572406B2 (en) 2010-03-31 2013-10-29 Inside Contactless Integrated circuit protected against horizontal side channel analysis
US8413906B2 (en) 2011-05-22 2013-04-09 King Saud University Countermeasures to secure smart cards
FR2977954B1 (fr) 2011-07-13 2015-06-26 St Microelectronics Rousset Protection d'un calcul sur courbe elliptique
FR2977953A1 (fr) 2011-07-13 2013-01-18 St Microelectronics Rousset Protection d'un calcul d'exponentiation modulaire par addition d'une quantite aleatoire
CN102412965B (zh) * 2011-08-09 2013-11-27 深圳市德卡科技有限公司 椭圆曲线密码协处理器
CN102967818B (zh) * 2011-08-31 2015-07-01 北京中电华大电子设计有限责任公司 一种故障检测电路
CN103888246A (zh) * 2014-03-10 2014-06-25 深圳华视微电子有限公司 低功耗小面积的数据处理方法及其数据处理装置
TWI712915B (zh) * 2014-06-12 2020-12-11 美商密碼研究公司 執行一密碼編譯操作之方法,以及電腦可讀非暫時性儲存媒體
US10594471B2 (en) * 2015-03-20 2020-03-17 Cryptography Research, Inc. Multiplicative blinding for cryptographic operations
IL239880B (en) 2015-07-09 2018-08-30 Kaluzhny Uri Simplified montgomery multiplication
US20180115535A1 (en) * 2016-10-24 2018-04-26 Netflix, Inc. Blind En/decryption for Multiple Clients Using a Single Key Pair
US10778407B2 (en) * 2018-03-25 2020-09-15 Nuvoton Technology Corporation Multiplier protected against power analysis attacks
KR102510077B1 (ko) * 2018-04-24 2023-03-14 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법
US11121882B2 (en) * 2019-07-25 2021-09-14 EMC IP Holding Company LLC Blinding techniques for protection of private keys in message signing based on elliptic curve cryptography

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
RU2153191C2 (ru) 1998-09-29 2000-07-20 Закрытое акционерное общество "Алкорсофт" Способ изготовления вслепую цифровой rsa-подписи и устройство для его реализации (варианты)
JP3796993B2 (ja) * 1998-12-22 2006-07-12 株式会社日立製作所 楕円曲線暗号実行方法及び装置並びに記録媒体
GB2345229B (en) 1998-12-23 2003-12-03 Motorola Ltd Method for encrypting data
US7599491B2 (en) 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
CA2258338C (en) 1999-01-11 2009-02-24 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
FR2791496B1 (fr) 1999-03-26 2001-10-19 Gemplus Card Int Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique
US6295606B1 (en) 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
FR2800478B1 (fr) 1999-10-28 2001-11-30 Bull Cp8 Procede de securisation d'un ensemble electronique de cryptographie a base d'exponentiation modulaire contre les attaques par analyse physique
DE19963407A1 (de) 1999-12-28 2001-07-12 Giesecke & Devrient Gmbh Tragbarer Datenträger mit Zugriffsschutz durch Nachrichtenverfremdung
JP2003098962A (ja) * 2001-09-20 2003-04-04 Hitachi Ltd 楕円曲線スカラー倍計算方法及び装置並びに記録媒体
FR2810178B1 (fr) * 2000-06-13 2004-10-29 Gemplus Card Int Procede de calcul cryptographique comportant une routine d'exponentiation modulaire
FR2818473B1 (fr) 2000-12-19 2003-04-18 Gemplus Card Int Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa
JP2002358010A (ja) * 2001-05-31 2002-12-13 Mitsubishi Electric Corp べき乗剰余演算器
JP4596686B2 (ja) 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
FR2829335A1 (fr) 2001-09-06 2003-03-07 St Microelectronics Sa Procede de brouillage d'un calcul a quantite secrete
GB0211812D0 (en) 2002-05-23 2002-07-03 Koninkl Philips Electronics Nv S-box encryption in block cipher implementations
US7403620B2 (en) 2002-07-02 2008-07-22 Stmicroelectronics S.A. Cyphering/decyphering performed by an integrated circuit
JP3927151B2 (ja) * 2003-05-30 2007-06-06 株式会社東芝 記憶装置
CA2470422C (en) 2003-06-09 2013-01-15 Certicom Corp. Method and apparatus for exponentiation in an rsa cryptosystem
GB0313663D0 (en) 2003-06-13 2003-07-16 Hewlett Packard Development Co Mediated rsa cryptographic method and system
WO2005008955A1 (ja) 2003-07-22 2005-01-27 Fujitsu Limited 個人鍵を用いた耐タンパ暗号処理
US7363499B2 (en) * 2003-09-18 2008-04-22 Sun Microsystems, Inc. Blinded encryption and decryption
US7739521B2 (en) * 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7742596B2 (en) * 2004-08-24 2010-06-22 General Dynamics C4 Systems, Inc. Reliable elliptic curve cryptography computation
KR100617384B1 (ko) * 2004-09-24 2006-08-31 광주과학기술원 Rsa 보안 모듈의 몽고메리 곱셈기
JP4351987B2 (ja) * 2004-11-19 2009-10-28 株式会社東芝 モンゴメリ変換装置、演算装置、icカード、暗号装置、復号装置及びプログラム
CN101213513B (zh) 2005-06-29 2013-06-12 爱迪德艾恩德霍芬公司 保护数据处理装置免受密码攻击或分析的设备和方法
WO2007000701A2 (en) 2005-06-29 2007-01-04 Koninklijke Philips Electronics N. V. Arrangement for and method of protecting a data processing device against an attack or analysis

Also Published As

Publication number Publication date
EP1899804B1 (en) 2012-11-07
US20100100748A1 (en) 2010-04-22
EP1899804A2 (en) 2008-03-19
JP2009500892A (ja) 2009-01-08
WO2007000702A2 (en) 2007-01-04
CN101213513A (zh) 2008-07-02
US8738927B2 (en) 2014-05-27
WO2007000702A3 (en) 2007-03-29
CN101213513B (zh) 2013-06-12

Similar Documents

Publication Publication Date Title
JP5179358B2 (ja) 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法
JP2009500710A (ja) 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法
JP2004280103A (ja) モンゴメリー類型のモジュラー乗算装置及び方法
JP5182364B2 (ja) サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法
Sinha Roy et al. Lightweight coprocessor for Koblitz curves: 283-bit ECC including scalar conversion with only 4300 gates
JP5977996B2 (ja) サイドチャンネル攻撃に対する抵抗力のあるモジュラー累乗法及び装置
KR101925868B1 (ko) 모듈러 계산 유닛 및 그것을 포함하는 보안 시스템
CN110048840B (zh) 一种基于rsa算法的信息处理方法、系统及相关组件
US20100146029A1 (en) Method and apparatus for modular operation
US7493356B2 (en) Device and method for cryptoprocessor
Kim et al. An improved and efficient countermeasure against power analysis attacks
KR101990861B1 (ko) 논-모듈러 승산기, 논-모듈러 승산 방법 및 계산 장치
Yin et al. A randomized binary modular exponentiation based RSA algorithm against the comparative power analysis
Saldamli et al. Uniform montgomery multiplier
Mentens et al. FPGA-oriented secure data path design: implementation of a public key coprocessor
Sakai et al. A new attack with side channel leakage during exponent recoding computations
FR2856538A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme cryptographique du type a cle publique
Al-Somani Overlapped parallel computations of scalar multiplication with resistance against Side Channel Attacks
Yoshino et al. Unbridle the bit-length of a crypto-coprocessor with montgomery multiplication
EP2887342B1 (en) Optimized hardware architecture and method for ECC point doubling using jacobian coordinates over short weierstrass curves
Kim et al. First-order side channel attacks on Zhang’s countermeasures
Yoshino et al. Bipartite modular multiplication with twice the bit-length of multipliers
JP2005031472A (ja) 演算処理方法、および演算処理装置
JP2001147639A (ja) 公開鍵暗号鍵対生成装置
Yoshino et al. Recursive double-size modular multiplications without extra cost for their quotients

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120302

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120703

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121003

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121115

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130109

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees