JP4632950B2 - 個人鍵を用いた耐タンパ暗号処理 - Google Patents

個人鍵を用いた耐タンパ暗号処理 Download PDF

Info

Publication number
JP4632950B2
JP4632950B2 JP2005504397A JP2005504397A JP4632950B2 JP 4632950 B2 JP4632950 B2 JP 4632950B2 JP 2005504397 A JP2005504397 A JP 2005504397A JP 2005504397 A JP2005504397 A JP 2005504397A JP 4632950 B2 JP4632950 B2 JP 4632950B2
Authority
JP
Japan
Prior art keywords
point
value
elliptic curve
input
mod
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
JP2005504397A
Other languages
English (en)
Other versions
JPWO2005008955A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2005008955A1 publication Critical patent/JPWO2005008955A1/ja
Application granted granted Critical
Publication of JP4632950B2 publication Critical patent/JP4632950B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • 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
    • 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/7228Random curve mapping, e.g. mapping to an isomorphous or projective curve
    • 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
    • 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
    • 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/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile
    • 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/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Landscapes

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

Description

本発明は、暗号処理の分野に関し、特に、RSAおよび楕円曲線暗号のような公開鍵暗号のためのプロセッサにおけるSPA、DPAおよびRPAのような電力解析攻撃を防止する耐タンパ(tamper-proof)暗号化/復号に関する。
例えば電子決済および日本の住民基本台帳ネットワークのようなネットワークを利用したサービスが普及しつつある。これらのサービスには情報セキュリティのために暗号が用いられる。
上述のサービスにおけるユーザ側のデバイスとして、ユーザの秘密情報を格納したICチップを含むスマートカードが広く普及すると予想される。スマートカードは、暗号、ディジタル署名および認証の機能を有し、その秘密情報を鍵として用いる。スマートカードでは、秘密情報はICチップ・メモリに格納されるので、第三者による不正なアクセスに対する安全性または耐タンパ性が磁気カードに比べて非常に高い。
図1は、スマートカードのような暗号デバイスにおける秘密鍵を用いた暗号化/復号の構成の例を示している。図1において、暗号デバイスは、その内部の暗号化/復号ユニットにおいて周知の形態で個人鍵を用いて入力平文/暗号文メッセージを処理して出力暗号文/平文メッセージを供給する。暗号方式には一般的に公開鍵暗号方式と共通鍵暗号方式が含まれる。
公開鍵暗号方式は、暗号化と復号に異なる鍵(キー)を用いる。典型的には、公開鍵を用いて平文(plaintext)が暗号化され、個人または秘密鍵を用いて暗号文(ciphertext)が復号され、それによって暗号文が安全に送信できる。または、個人鍵を用いて平文が暗号化され、公開鍵を用いて暗号文が復号され、それによって平文を暗号化したユーザが識別される。公開鍵暗号は、送受信者間で秘密鍵を共有する必要がないが、計算量が共通鍵暗号と比べて非常に大きい。公開鍵暗号にはRSAおよび楕円曲線暗号が含まれる。
RSA暗号は、z=a(mod n)で表される冪(べき)乗剰余演算(modular exponentiation)に基づくものである。RSA暗号に基づく暗号機能は、暗号化、復号、署名生成および署名確認に関係する。復号および署名生成ではユーザの秘密情報を個人鍵として用いる。べき乗剰余演算は、v=a(mod n)を満たすは出力データvを生成する。ここで、aは入力データを表し、mod nは剰余の法を表し、dは個人鍵を表す。
楕円曲線暗号は、点のスカラー倍算に基づくものである。点のスカラー倍算は、スカラー値d、および楕円曲線上の点Aに対して、V=dAを満たす点Vを求める。楕円曲線暗号に基づく暗号機能は、ECES暗号化/復号、ECDSA署名生成/署名確認およびECDH秘密鍵共有に関係する。ECES復号、ECDSA署名生成およびECDH秘密鍵共有のための処理は、ユーザの秘密情報を個人鍵として用いる。例えば、ECDH秘密鍵共有処理は、秘密共有値を表す点Vを計算するためにV=dAで表される点のスカラー倍算を行う。ここで、Aは秘密鍵を共有する公開鍵の点を表し、dは個人鍵のスカラー値を表す。
RSA暗号における乗算剰余c=a×b(mod n)、2乗剰余c=aおよびべき乗剰余c=a(mod n)は、楕円曲線暗号における点の加算C=A+B、点の2倍算C=2Aおよび点のスカラー倍算C=xAにそれぞれ対応する。
暗号解読(分析)またはタンパ(tamper)は、暗号文のような入手可能な情報から個人鍵を含めた秘密情報を推定する。暗号解読の1つである電力解析攻撃が、1998年にPaul Kocher(ポール コーチャ)によって考案された。
電力解析攻撃は、文献、P. Kocher, J. Jaffe and B. Jun "Differential Power Anaysis", Crypto'99, LNCS 1666, pp.388-397, Springer-Verlag, 1999に記載されている。
この電力解析攻撃は、スマートカードのような暗号デバイスに含まれる暗号プロセッサに相異なる入力データを与え、例えば図1に示されているようにオシロスコープ等を用いてその処理中における時間に対する消費電力の変化を測定し、統計的に充分な数の消費電力変化の曲線を収集しそれを解析し、それによって暗号プロセッサ内部の鍵情報を推定する。これは、共通鍵暗号と公開鍵暗号の双方に適用できる。
電力解析攻撃には、単純電力解析(Simple Power Analysis)(以下、SPAという)および電力差分攻撃(Differential Power Analysis)(以下、DPAという)が含まれる。SPAは暗号プロセッサにおける1つの消費電力変化曲線の特徴から秘密鍵または個人鍵の推定を行う。DPAは相異なる多数の消費電力変化曲線の差分(以下、電力差分曲線という)を用いて解析することによって秘密鍵の推定を行う。一般的にはDPAの方が強力である。
電力解析攻撃を防止する必要性が各種国際標準に記載されている。例えば、セキュリティの国際標準ISO15408によるスマートカード用プロテクション・プロファイル(PP)では電力解析攻撃への対策が必須である。また、暗号モジュールに関する米国標準FIPS140−2には、現在は電力解析攻撃対策の必要性に関するコメントがあるだけであるが、将来的に電力解析攻撃対策が必須になるであろう。
RSAと楕円曲線暗号に対する電力解析攻撃SPAおよびDPAを防止するための様々な対策が開発された。しかし、2003年に、改善された電力解析攻撃(Refined Power Analysis)(RPA)が、L. Goubin, "A Refined Power-Analysis Attack on Elliptic Curve Crypto-systems", PKC 2003, LNCS 2567, Springer-Verlag, 2003によって発表された。この攻撃は、楕円曲線暗号に対する電力解析攻撃を防止する公開鍵暗号の中の一部の暗号を攻撃するのに有効である。
次に、楕円曲線暗号に用いられる用語を説明する。詳細は文献IEEE P1363/D13 (Draft Version 13, November 12, 1999) main document, Standard Specifications for Public Key Cryptography, http://grouper.ieee.org/groups/1363/P1363/draft.htmlの標準を参照されたい。
次の式で表される変数xおよびyの関数で表される曲線が楕円曲線と呼ばれる。
楕円曲線(素体): y=x+ax+b (mod p)
ここで、pは素数を表し、aおよびbは楕円曲線パラメータ(0≦a,b<p)を表す。
楕円曲線(2べき): y+xy=x+ax+b (mod f(x))
ここで、fはGF(2)の多項式を表し、aおよびbは楕円曲線パラメータ(a,b,⊆GF(2))を表す。
楕円曲線は、主に素体(prime field)と2べき(binary field)からなる。楕円曲線は楕円曲線パラメータaおよびbによって一意的に決定される。
楕円曲線上の点(elliptic point)は、楕円曲線で表される式を満たす座標(x,y)であり、素体の場合0≦x,y<pを満たす整数(x,y)の集合であり、2べきの場合は(x,y)⊆GF(2)を満たす要素(x,y)の集合である。
無限遠点(infinite point)は、Oと表記され、任意の点Aに対しA+O=O+A=Aを満たす楕円曲線上の特殊な点である。ここで、+は点の加算を表す。
ベースポイント(base point)は、楕円曲線上の1点であり、Gと表記される。ベースポイントは楕円曲線暗号のユーザ間で共有され、公開鍵/個人鍵のペアの生成、および楕円曲線暗号を用いたその他の処理に用いられる。
2次元ベクトル(x,y)を用いた点の表現は、アファイン座標(Affine coordinates)と呼ばれる。(x,y)=(X/Z,Y/Z)を満たす3次元ベクトル(X,Y,Z)を用いた点の表現は、投影座標(projective coordinates)と呼ばれる。(x,y)=(X/Z,Y/Z)を満たす3次元ベクトル(X,Y,Z)を用いた点の表現は、ヤコビアン座標(Jacobian coordinates)と呼ばれる。3次元ベクトル表現の使用によって、点のスカラー倍算における除算の回数を大幅に減らし、全体の演算を高速化できる。
点AおよびBに対する演算A+Bは、点の加算(elliptic point addition)と呼ばれる。A+B=B+Aが成立する。点AおよびBに対する演算A−Bは、点の減算(elliptic point subtraction)と呼ばれる。
点の2倍算(elliptic point doubling)は、楕円曲線上の点AからC=2Aで表される楕円曲線上の点Cが定義される。この演算2Aを点の2倍算と呼ぶ。
点のスカラー倍算(elliptic scalar multiplication)は、楕円曲線上の点Aおよびスカラー値dから、V=dAによって定義される楕円曲線上のVを導出する演算であり、点の加算、点の減算および2倍算の組み合わせからなる。
ベースポイントGと、個人鍵を表すスカラー値dとに対し、公開鍵はV=dGを満たすVにより与えられる。公開鍵は楕円曲線上の点である。個人鍵はスカラー値である。
次に、電力解析攻撃について説明する。
べき乗剰余または点のスカラー倍算を実現するためのアルゴリズムには、例えばバイナリ法、符号付きバイナリ法およびウィンドウ法等が含まれる。攻撃者はスマートカードにおけるべき乗剰余または点のスカラー倍算のアルゴリズムを知っているものと仮定する。
図2は通常のバイナリ法によるべき乗剰余のアルゴリズムを示している。与えられた基数a、指数dおよび法nに対して、べき乗剰余値v=a(mod n)が求められる。図3は、通常のバイナリ法による点のスカラー倍算のアルゴリズムを示している。与えられた点Aおよびスカラー値dに対して、点のスカラー倍を表す点V=dAが求められる。ここで、dはmビットの2進値を表す。2進値d中のi番目のビット値はd[i]で表される(i=0,1,... m−1)。2進値d中のi番目からj番目のビット値(i≧j≧0)のストリングの値はd[i,j]で表される。例えば、d=19=(10011)のとき、d[4]=1、d[3]=0、d[2]=0、d[1]=1、d[0]=1であり、d[0,0]=(1)=1、d[1,0]=(11)=3、d[2,0]=(011)=3、d[3,0]=(0011)=3、d[4,0]=(10011)=19、d[4,1]=(1001)=9である。ECADDは点の加算を表し、ECDBLは点の2倍算を表す。
図2を参照すると、ステップ102においてワーク変数tおよびvがそれぞれt=aおよびv=1と初期化される。ステップ103〜106は、iに対するループ処理であり、i=0,1,...m−1について順次、d[i]=0に対してステップ105における2乗算が実行され、d[i]=1に対してステップ104における乗算とステップ105における2乗算が実行される。ステップ106の後、ワーク変数vの値はv=ad[i,0](mod n)で表される。
図3を参照すると、ステップ202においてワーク変数TおよびVがT=AおよびV=Oと初期化される。ステップ203〜206は、iに対するループ処理であり、i=0,1,...m−1について順次、d[i]=0に対してステップ205における2倍算が実行され、d[i]=1に対してステップ204における点の加算(ECADD)とステップ205における2倍算(ECDBL)とが実行される。ステップ206の後、ワーク変数Vの値はV=d[i,0]で表される。
図2および3のアルゴリズムと個人鍵dの間には、次の(COR.1)および(COR.2)の相関関係がある。
(COR.1) 値dのビット値と実行される演算の間に相関関係がある。図3のアルゴリズムにおいて、dの各ビット値に従って、ECDBL、またはECDBLおよびECADDが行われる。
(COR.2) 値dのビット値とワーク変数の値の間に相関関係がある。図3のアルゴリズムにおいて、ステップ106の後のVの値はV=(d[i,0])A =(2d[i])A+(d[i−1,0])Aで表される。
SPAは相関関係(COR.1)に基づいて個人鍵を求める。DPAは相関関係(COR.2)に基づいて個人鍵を推定する。RPAは相関関係(COR.1)および(COR.2)の任意のいずれかに基づいて個人鍵を推定する。
SPAは、単一の電力波形を測定し、スマートカード内部で行われている処理を推定することによって個人鍵を推定する。
例えば、図3のアルゴリズムを処理するスマートカードの消費電力を測定し、図4に例示された電力波形が得られたと仮定する。図4のように、得られた消費電力波形AおよびDがECADDとECDBLを識別できるような形状を有するとき、相関関係(COR.1)に従って、電力波形Dとその後続の波形Aの組はビット値1に対応し、単独の波形Dはビット値0に対応する。このようにして、個人鍵のビット列“00110”が求まる。
SPAに対する対策として、個人鍵dのビット値に関係なく一定の演算手順を繰り返すアド・アンド・ダブル・オールウェイズ(add-and-double-always、常に加算と2倍算を行う)およびモンゴメリ・ラダー(Montgomery-Ladder)等が知られている。
アド・アンド・ダブル・オールウェイズ法は、文献、J. Coron, "Resistance against differential power analysis for elliptic curve cryptographic cryptosystem", CHES'99, LNCS 1717, pp.292-302, Springer-Verlag, 1999に記載されている。
モンゴメリ・ラダー法は、文献、P. Montgomery, "Speeding the Pollard and elliptic curve methods for factorizations", Math of Comp, vol.48, pp.243-264, 1987に記載されている。
図5は、通常のアド・アンド・ダブル・オールウェイズのアルゴリズムを示している。この場合、演算の手順は、個人鍵dの各ビット値に関係なく、ECADD,ECDBL,ECADD,ECDBL,...,ECADD,ECDBLとなる。
DPAは、複数の電力波形を測定して解析することによって個人鍵を推定する。次の手順(DPA.01)〜(DPA.03)は、図3のアルゴリズムに対するDPAの例を示している。
(DPA.01) k個のランダムな与えられた点A,A,A,...Ak−1に対して、各Aのd倍算を行っている期間の消費電力が測定される。Aに対するスカラー倍算において測定されたk個の消費電力データの集合がC(A,t)で表される(j=0,1,...k−1)。
(DPA.02) 以下の手順に従って、d[0]の値が推定され、その推定が正しいどうかが判定される。
− 推定値d[0]が正しいと仮定する。この仮定に基づいて、i=0についてステップ203〜206が終了した時点における、スマートカード内部の変数Vの座標xのデータ値をそれぞれのAについて予想する。例えばd[0]=1と仮定した場合、図3のアルゴリズムに従ってV=Aと予想できる。予想の結果、Vのデータ値の最下位ビットが1であるとき、C(A,t)をGに分類し、Vのデータ値の最下位ビットが0であるとき、C(A,t)をGに分類する。分類に用いられるVのデータ値は、xの代わりにyまたはzのデータ値であってもよい。
− 上述の分類に基づいて、次の式で表される電力差分曲線を作成する。
Δ(t)={Gに属するC(A,t)の平均}
−{Gに属するC(A,t)の平均}
− その電力差分曲線が図6Aに示すようなスパイクを有するときは、d[0]の推定値が正しいと判定する。その電力差分曲線が図6Bに示すように平坦なときは、d[0]の推定値が誤りであると判定する。
(DPA.03) 手順(DPA.02)を、d[1],d[2],...d[m−1]に対して順に繰り返し実行することによって個人鍵dの値を求める。d[h]に対して手順(DPA.02)を実行するとき、手順(DPA.02)における分類の基準となるVのデータとして、i=hについて終了した時点のデータが用いられる。Vのデータ値の予想にあたっては、既に求められたd[0]〜d[h−1]の値と今回推定したd[h]の値が用いられる。その理由は、Vの値が、V=2d[h]A+d[h−1,0]A、即ち既に求められたd[0]〜d[h−1]と今回推定したd[h]によって決定される値だからである。
DPAは、スマートカードの消費電力がデータ値の“1”の数に比例するという性質に基づいている。
DPAに対する一般的な対策として乱数を用いた方法が知られている。その方法は、スマートカード内部で生成された乱数を用いて変数データを隠蔽またはランダム化することによって、DPAによるデータ値の推定を防止する。
例えば、ランダム化座標と呼ばれる方法は、投影座標またはヤコビアン座標の点のデータ表現をランダム化する。この場合、通常の暗号処理において、アファイン座標を表すワーク変数(x,y)に対して、ワーク変数が、投影座標(r×x,r×y,r×z)に変換され、またはヤコビアン座標(r×x,r×y,r×z)に変換される。ここで、rは乱数を表す。乱数rによって全ての座標データがランダム化され、ワーク変数の値は予測不可能となり、DPAが防止できる。それによってワーク変数の値はランダム化されるが、乱数rの値に関係なくワーク変数の値はいずれも同一の点を表すので、d[0]〜d[m−1]の計算後に、求めた座標をアファイン座標に逆変換することによって、通常の処理と同じ演算結果dAが一意的に求められる。
次に、RPAを説明する。RPAは、個人鍵dのビット値を推定し、その値に基づいて特定の入力点を選択してそれを暗号装置のスカラー倍算の入力として供給することによって、個人鍵dを推定する。スカラー倍算の特定のタイミングにおけるワーク変数値が0であれば、RPAはビット値の推定が正しいと判定し、そうでない場合は推定が誤りであると判定する。ワーク変数値が0であるか否かは、SPAにおける単一の電力波形を用いても、またDPAにおける複数の電力波形の差分を用いても判定できる。
次の手順(RPA.01)〜(RPA.0)は、図3のアルゴリズムに対するRPAの例を示している。RPAにおいて、攻撃者は、既に求められたd[0],d[1],...d[h−1]に基づいて、次のビット値d[h]を求める。
(RPA.01) 既知の値d[0],d[1],...d[h−1]と、推定値d[h]とから、A=(d[h,0]−1(mod φ))Qを求める。ここで、φは位数(order)の値であり、QはQ=(x,0)または(0,y)を満たす楕円曲線上の点、即ち座標xまたはyが0となる座標である。
(RPA.02) スマートカードにdAを演算させて、消費電力波形C(A,d)を測定する。
(RPA.03) 消費電力波形C(A,d)の曲線のうち、ステップ203〜206のi=h,h+1に対応する部分波形を観察して、ワーク変数Vの座標xが0であるかどうかを判定する。Vの座標xが0かどうかの判定法については、前述のGoubinの文献を参照されたい。
RPAが可能な理由は、d[h]の推定が正しいとき、ステップ203〜206のループがi=hについて完了した後、ワーク変数Vの座標xまたはyが0となるからである。Vの座標xまたはyが0となると、この値がi=h+1に対する演算に用いられるときに、例外的処理が発生し、この例外処理は電力波形によって観察できる。
図7Aおよび7Bは、RPAにおける電力波形を例示している。
d[h]の推定が正しいときにi=hに対するループ処理の後にVの座標値を表す波形が出現する理由は、手順(RPA.01)に従ってAが与えられるからである。このようなAを与えることによって、d[h]の推定が正しいときにi=hに対するステップ203〜206のループ処理の後のVの値がQに一致し、座標xまたはyの値が0となる。
従って、ワーク変数の座標値が攻撃者の意図したタイミングにおいて0となることを回避するようアルゴリズムを作成することによってRPAを防止することができる。
基本的にデータをランダム化するDPA対策によってRPAを防止できるが、例外がある。例えば、DPA対策の1つであるランダム化座標は、RPAに対して脆弱である。これは、DPA対策なしの処理におけるワークデータを(X,Y,Z)としたとき、ランダム化座標を用いた場合のワークデータは(r×X,r×Y,r×Z)となるからである。即ち、DPA対策なしの処理における座標値が0である場合、ランダム化座標における座標値もrの値に関係なく0となる。
本発明者によって公表された、伊豆、他の文献、“楕円曲線暗号向けサイドチャネル対策方式の比較評価”、2003年、暗号と情報セキュリティシンポジウム(SCIS2003)、8D−3には、楕円曲線暗号に対応する公開鍵暗号の電力解析攻撃の対策として、SPAおよびDPAに対して最も安全な対策は、ランダム化座標(Randomized Projective Coordinates)(RPC)、ランダム化曲線(Randomized Curve)(RC)、指数分割法(Exponent Splitting)(ES)、点の隠蔽(Point Blinding)(PB)の4つの対策であることが記載されている。これらは、DPA対策であるが、SPA対策とともに用いることによってDPAとSPAの双方を防止できる。
特開2000−137436号公報
P. Kocher, J. Jaffe and B. Jun "Differential Power Anaysis", Crypto'99, LNCS 1666, pp.388-397, Springer-Verlag, 1999 L. Goubin, "A Refined Power-Analysis Attack on Elliptic Curve Crypto-systems", PKC 2003, LNCS 2567, Springer-Verlag, 2003 IEEE P1363/D13 (Draft Version 13, November 12, 1999) main document, Standard Specifications for Public Key Cryptography J. Coron, "Resistance against differential power analysis for elliptic curve cryptographic cryptosystem", CHES'99, LNCS 1717, pp.292-302, Springer-Verlag, 1999 伊豆、他"楕円曲線暗号向けサイドチャネル対策方式の比較評価"、2003年、暗号と情報セキュリティシンポジウム(SCIS2003)、8D−3
表1は、アド・アンド・ダブル・オールウェイズ法を併用した場合の、SPA、DPAおよびRPAに対する安全性と、点のスカラー倍算に必要な処理量の比較を示している。
Figure 0004632950
ここで、Sは電力解析攻撃に対して安全であること、Vは電力解析攻撃に対して脆弱であることを表す。Eは、図5のアド・アンド・ダブル・オールウェイズ法による点のスカラー倍算の処理時間を表し、Aは、点の加算、減算および2倍算の処理量を表し、Iは逆元計算の処理量を表している。
RPCおよびRCはその処理が高速であるが、RPAに対して弱い。ESおよびPBはRPAに対し安全であるがその処理が遅い。
図8Aは、投影座標に基づくRPCのアルゴリズムを示している。図8Bは、ヤコビアン座標に基づくRPCのアルゴリズムを示している。図8Cは、アファイン座標に基づくRCのアルゴリズムを示している。
これらのアルゴリズムは、(i)入力点Aの座標データのランダム化(図8Aのステップ401〜402;図8Bのステップ501〜502;図8Cのステップ601〜602)、(ii)アド・アンド・ダブル・オールウェイズを用いたスカラー倍算(図8Aのステップ403〜408;図8Bのステップ503〜508;図8Cのステップ603〜608)、および(iii)データのランダム化を解除して元に戻して(de-randomize)(逆ランダム化)、演算結果を出力する(図8Aのステップ409〜410;図8Bのステップ509〜510;図8Cの609〜610)の3段階で構成される。
段階(i)はDPA対策のための処理である。乱数rを生成し、図8AにおいてはA’=(r×A,r×A,r×A)、図8BにおいてはA’=(r×A,r×A,r×A)、図8CにおいてはA’=(r×A,r×A)に従って座標データをランダム化し、それによって、これらのデータが攻撃者によって推定されるのを防ぐ。ここで、A,A,Aはそれぞれ点Aの座標(Z,Y,Z)を表す。
段階(iii)は、データのランダム化を解除して、通常の暗号処理と同じ処理値を出力するための処理である。図8AにおいてはV=(V[0]/V[0],V[0]/V[0])、図8BにおいてはV=(V[0]/(V[0]Z)), V[0]/(V[0]Z)、図8CにおいてはV=(V[0]/r,V[0]/r)が処理される。
しかし、これらの対策はRPAには無効である。その理由は、段階(i)のランダム化において座標値と乱数rの積を導入するからである。例えば、図8Cにおいて、ランダム化を行わない場合のワーク変数データをV=(V,V)とすると、段階(i)ステップ603〜608のワーク変数データはV’=(r×V,r×V)で表される。即ち、ランダム化を行わない時のVの座標X,Yの値いずれかが0のとき、V’の座標X,Yの値いずれかも乱数rに関係なく0となり、RPAが適用できる条件を満たす。図8Aおよび8Bに示したRPCおよびRPAについても同様である。
処理時間は、RPCおよびRCにおいてアド・アンド・ダブル・オールウェイズ演算が1回、ランダム化の解除のための逆元演算が1回必要であり、合計E+Iである。
図9AはESのアルゴリズムを示している。図9BはPBのアルゴリズムを示している。
これらのアルゴリズムは、図8A〜8Cのアルゴリズムと同様に、(i)入力点Aの座標データのランダム化(図9Aのステップ701〜702;図9Bのステップ801〜802)、(ii)アド・アンド・ダブル・オールウェイズを用いたスカラー倍算(図9Aのステップ703〜704;図9Bのステップ803〜804)、および(iii)データのランダム化を解除して元に戻し、演算結果を出力する(図9Aのステップ705〜706;図9Bの805〜806)の3段階で構成される。
図9Aにおいて、段階(i)ではスカラー値dに対して、d=d+dを満たすランダムなスカラー値dおよびdが生成される。段階(ii)では、前述のdおよびdに対してV=dAおよびV=dAで表されるスカラー倍算を、図5のアド・アンド・ダブル・オールウェイズ演算に従って行う。ランダムなdおよびdに対するスカラー倍算によってワーク変数をランダム化し、それによってDPA対策が実現される。段階(i)および(ii)によって攻撃者の意図したタイミングでワーク変数の座標値が0となることが防止されて、RPA対策が実現される。段階(iii)では、V=V+V=dA+(d−r)A=dAの演算によって、データのランダム化を解除して元に戻し、dAを出力する。
図9Bにおいて、段階(i)では入力点Aに対し、A=A+Aを満たすランダムな点AおよびAを生成している。段階(ii)では前述の点AおよびAに対してV=dAおよびV=dAで表されるスカラー倍算を、図5のアド・アンド・ダブル・オールウェイズ演算に従って行う。ランダムな点AおよびAに対するスカラー倍算によってワーク変数をランダム化し、それによってDPA対策が実現される。段階(i)および(ii)によって攻撃者の意図したタイミングでワーク変数の座標値が0となることが防止されて、RPA対策が実現される。段階(iii)では、V=V+V=d(A+A)=dAの演算によって、データのランダム化を解除して元に戻し、dAを出力する。
ESの場合、アド・アンド・ダブル・オールウェイズ演算を2回と、ランダム化の解除の際に点の加算を1回を必要とするので、処理時間は合計で2E+Aである。PBの場合、アド・アンド・ダブル・オールウェイズ演算を2回と、データのランダム化とその解除の際に点の加算または減算を3回を必要とするので、処理時間は合計で2E+3Aである。
従って、点のスカラー倍算の処理量が少ない公知の公開鍵暗号処理法ではRPCに対して弱く、RPCに対して安全な公知の公開鍵暗号処理法ではスカラー倍算の処理量が多くなる。
発明者たちは、スカラー倍算の処理量が少なく、かつSPA、DPAおよびRPCに対して安全な公開鍵暗号の処理法を実現することの必要性を認識した。
本発明の目的は、スカラー倍算の処理量が少なく、かつSPA、DPAおよびRPCに対して安全な公開鍵暗号の処理法を実現することである。
発明の概要
本発明の特徴によれば、個人鍵を用いて楕円曲線暗号処理を行う暗号装置は、外部からアクセスできない内部で生成された乱数に基づい楕円曲線上の点Rをランダムに生成し、その楕円曲線上の或る入力点Aの値を入力し、その際、その点Rに応じて初期化される変数に対してその楕円曲線上の或る入力点Aの値に応じた初期化を行わず、その入力点Aに応じて初期化される変数に対してその点Rの値に応じた初期化を行わない、初期化手段と、その点Rを初期点V にセットし、その入力点Aをセットし、その楕円曲線暗号処理のための或るスカラー値dのビット・シーケンスの全てのビット値に対して、その初期点Vその入力点Aのスカラー倍との和V=V+dAの演算を実行する演算手段と、その演算によって得られた和Vからその初期点Vを減算する演算V=V−Vを実行するランダム化解除手段と、そのランダム化解除手段によって得られた点Vを出力として供給する手段と、を具えている。
本発明の別の特徴によれば個人鍵を用いてべき乗剰余暗号処理を行う暗号装置外部からアクセスできない内部で生成された乱数に基づい整数rをランダムに生成し、或る入力値aを入力し、その際、その整数rに応じて初期化される変数に対してその入力値aに応じた初期化を行わず、その入力値aに応じて初期化される変数に対してその整数rに応じた初期化を行わない、初期化手段と、その整数rを初期値V にセットし、その入力値aをセットし、そのべき乗剰余暗号処理のための或る値dを表すmビット・シーケンスの全てのビット値に対して、その初期値Vと或る入力値aに対するべき乗剰余演算V=V×Πa^(2d[i])(mod n)=r×a(mod n)の演算(i=0,1,...m−1)を実行する演算手段と、その演算によって得られた値Vとr(mod n)の逆元r−1(mod n)との乗算剰余演算V=V×r−1(mod n)を実行するランダム化解除手段と、そのランダム化解除手段によって得られた値Vを出力として供給する手段と、を具える。ここで、Πaは積a×a×...×am−1を表し、a^dはaを表す。
本発明は、上述の暗号装置を実現するプログラムに関する。
本発明は、上述の暗号装置を実現する方法に関する。
本発明によれば、スカラー倍算の処理量が少なく、かつSPA、DPAおよびRPCに対して安全な公開鍵暗号の処理法を実現できる。
図面において同じ要素には同じ参照番号が付されている。
図1は、スマートカードのような暗号デバイスにおける秘密鍵を用いた暗号化/復号の構成の例を示している。 図2は、通常のバイナリ法によるべき乗剰余のアルゴリズムを示している。 図3は、通常のバイナリ法による点のスカラー倍算のアルゴリズムを示している。 図4は、スマートカードの消費電力を測定して得られた電力波形を示している。 図5は、通常アド・アンド・ダブル・オールウェイズのアルゴリズムを示している。 図6Aは、スパイクを有する、時間に対する消費電力の曲線を示している。図6Bは、平坦な、時間に対する電力差分曲線を示している。 図7Aおよび7Bは、RPAにおける電力波形を例示している。 図8Aは、投影座標に基づくRPCのアルゴリズムを示している。 図8Bは、ヤコビアン座標に基づくRPCのアルゴリズムを示している。 図8Cは、アファイン座標に基づくRCのアルゴリズムを示している。 図9Aは、ES暗号のアルゴリズムを示している。図9Bは、PB暗号のアルゴリズムを示している。 図10は、本発明による暗号処理装置の概略的構成を示している。 図11は、図10の暗号化装置によって実行される、本発明の電力解析攻撃対策が施された公開鍵暗号処理のためのアルゴリズムを示している。 図12は、図10の暗号化装置によって実行される、本発明による電力解析攻撃対策を楕円曲線暗号に適用した基本的アルゴリズムを示す。 図13は、図10の暗号化装置によって実行される、本発明による電力解析攻撃対策をRSA暗号に適用した基本的アルゴリズムを示す。 図14〜16は、図12におけるランダムな点Rの生成のアルゴリズムを示している。 (図14で説明) (図14で説明) 図17は、図12における投影座標における点Rの生成のアルゴリズムを示している。 図18は、図12におけるヤコビアン座標における点Rの生成のアルゴリズムを示している。 図19は、図12におけるワーク変数V[2]に対する点の2倍算の実施形態を示している。 図20は、図16、20および19のアルゴリズムを組み合わせた、図12に示された本発明による基本的アルゴリズムの実施形態を示している。
図10は、本発明による暗号処理装置10の概略的構成を示している。暗号処理装置10は、値a、dおよびnまたは値Aおよびdを入力して供給する入力部12と、乱数Rまたはrを発生する乱数生成部14と、乱数生成部14からの乱数Rまたはrに従ってワーク変数をV’[0]:=R(またはr)、V[2]=A(またはa)として初期化するワーク変数初期化部16と、ワーク変数V’[0]、V’[1]およびV[2]を格納するメモリ18と、を具えている。暗号処理装置10は、さらに、値dの各ビット値を検出しながら初期化部16のワーク変数に対して公開鍵加算(PUBADD)および公開鍵2倍算(PUBDBL)を繰り返し実行して、V’[0]=dA+Rまたはa×r(mod n)を計算するスカラー倍算処理部20を具えている。ここで、PUBADDは点の加算または法nの乗算剰余を表し、PUBDBLは点の2倍算または法nの2乗剰余を表す。PUBADDとPUBDBLの演算手順はdビット値に依存しない。暗号処理装置10は、さらに、V’[0]からV=PUBSUB(V’[0],Rまたはr)を計算してRまたはrの影響を取り除いたV=dAを計算するランダム・データ除去部を具えている。ここで、公開鍵減算PUBSUBは点の減算またはrの逆元を用いた法nにおける乗算剰余を表す。暗号処理装置10は、さらに、演算結果の値V=dAまたはv=a(mod n)を出力する出力部24を含んでいる。Rまたはrは、暗号装置10内部で生成され、外部からはアクセスできない値である。
暗号化装置10は、さらに、プロセッサ32と、ROMのようなプログラム・メモリ34とを含んでいる。プロセッサ32は、メモリ34に格納されているプログラムに従ってこれらの要素12〜24を制御する。代替構成として、プロセッサ32は、要素12〜24に対応する機能を実現するメモリ34中のプログラムを実行することによって要素12〜2を実現してもよい。この場合、図10はフロー図として見ることができる。
図11は、図10の暗号化装置10によって実行される、本発明による電力解析攻撃への対策が施された公開鍵暗号処理のための基本的アルゴリズムを示している。このアルゴリズムは楕円曲線暗号とRSA暗号の双方に適用できる。
図11のアルゴリズムは、図8A〜8Cのアルゴリズムと同様に、(i)データのランダム化(ステップ1004〜1006)、(ii)アド・アンド・ダブル・オールウェイズを用いたスカラー倍算(ステップ1008)、および(iii)データのランダム化を解除して元に戻し、演算結果Vを出力する(ステップ1010)の3段階で構成される。
図11を参照すると、ステップ1002において、入力部12は、値a、dおよびnまたは値Aおよびdを入力する。ステップ1004において、生成部14は、ランダムなデータRまたはrを生成する。Rは、楕円曲線暗号において楕円曲線上のランダムな点のデータであり、RSAにおいてランダムな整数値である。
ステップ1006において、初期化部16は、アド・アンド・ダブル・オールウェイズ法で用いられるワーク変数を、V’[0]=Rまたはr、V[2]=Aまたはaと、初期化する。
ステップ1008において、点のスカラー倍算実行部20は、ワーク変数V’[0]、V’[]、V[2]を用いてアド・アンド・ダブル・オールウェイズを実行する。即ち、i=0,1,...,m−1に対して、楕円曲線暗号においてV’[1]=ECADD(V’[0],V[2]),V[2]=ECDBL(V[2])、およびV’[0]=V’[d[i]]の演算を繰り返し実行し、またはRSA暗号においてV’[1]=V’[0]×V[2](mod n)、V[2]=V[2](mod n)、およびV’[0]=V’[d[i]]の演算を繰り返し実行する。個人鍵dのビット値に関係なく、アド・アンド・ダブル・オールウェイズの所定の演算パターンを繰り返すことによってSPA対策を実現する。ステップ1004においてV’[0]=Rまたはrとセットすることによって、ワーク変数V’[0]およびV’[1]の値がランダム化されて、DPAを防止できる。V[2]の値はランダム化されない。その理由は、アド・アンド・ダブル・オールウェイズ法においてはV[2]の値を利用したDPAおよびSPAが不可能なので、V[2]をランダム化する必要がないからである。V[2]の値は、個人鍵dのビット値と関係なく、Aの2倍算または2乗算を繰り返し実行することによって求められる値なので、この値を利用してDPAを実行することはできない。
ステップ1010において、ランダム・データ除去部22はランダム化されたデータを元に戻す。そのために、ステップ1004で生成されRに対して、楕円曲線暗号においてはV=V’[0]−Rが計算され、RSAにおいてはV=V’[0]× −1が求められる。ステップ1012において、出力部24は演算結果Vを出力する。
このようにして、図11に示されたアルゴリズムによってSPAおよびDPAが防止される。次に、図11のアルゴリズムを楕円曲線暗号に適用したとき、RPAが防止されることを説明する。
図12は、図10の暗号化装置10によって実行される、本発明による電力解析攻撃対策を楕円曲線暗号に適用した基本的アルゴリズムを示す。
図12を参照すると、ステップ1101において、乱生成部14は楕円曲線上のランダムな点Rを生成または選択する。初期化部16は、ステップ1102において初期値としてRをワーク変数V’[0]にセットし、ステップ1103において初期値としてAをワーク変数V[2]にセットする。
ステップ1104〜1108を含むループは、ワーク変数V’[0]、V’[1]およびV[2]に対してアド・アンド・ダブル・オールウェイズ法による点のスカラー倍算を実行する。このループは、図5のステップ303〜307のRPA対策無しのアド・アンド・ダブル・オールウェイズ法と同じ処理を行っているが、V’[0]の初期値としてランダム点Rがセットされることによって、RPA対策が実現される。
そのような初期値によって、図12のワーク変数V’[0]およびV’[1]と図5のV[0]およびV[1]の間の関係は、V’[0]=V[0]+RおよびV’[1]=V[1]+Rで表される。即ち、図5で計算されるワーク変数のV[0]およびV[1]の値に対して、図12のアルゴリズムは、V’[0]=V[0]+RおよびV’[1]=V[1]+Rを求め、これらの値はRに応じてランダムに変化する。即ち、RPCおよびRCのように、ランダム値Rに関係なくV’[0]およびV’[1]の座標データが0となることはない。従って、攻撃者は意図的にワーク変数の座標データ値を0とすることが不可能となり、RPAが防止される。
ステップ1104〜1108のループが終了した後、ステップ1109において出力部24はV=V’[0]−Rを計算することによって、Rによってランダム化されたデータを元に戻して、その値Vを出力する。
このようにして、本発明によるアルゴリズムはRPAに対して安全な暗号処理を実現する。RPA対策なしの図5のアルゴリズムと本発明による図12のアルゴリズムを比較すると、RPA対策のための追加的処理はステップ1101に示す点Rの生成と、ステップ1109における点Rの減算だけである。即ち、RPA対策に関係する速度低下は、これら2つの処理分だけに限定されるので、図5の2倍の処理時間を必要とするESおよびPBと比較すると高速な処理が実現される。
図13は、図10の暗号化装置10によって実行される、本発明による電力解析攻撃対策をRSA暗号に適用した基本的アルゴリズムを示す。
図13を参照すると、ステップ1201において、乱数生成部14は乱数rを生成する。初期化部16は、ステップ1202において初期値としてrをワーク変数V’[0]にセットし、ステップ1203において初期値としてaをワーク変数V[2]にセットする。
ステップ1204〜1208を含むループは、ワーク変数V’[0]、V’[1]およびV[2]に対してアド・アンド・ダブル・オールウェイズ法によりべき剰余演算を実行してワーク変数を更新する。
ステップ1204〜1208のループが終了した後、ステップ1209において出力部24はrの逆元r−1(mod n)とV’[0]の乗算剰余を計算することによって、rによってランダム化されたデータを元に戻して、その値Vを出力する。
ステップ1204〜120におけるアド・アンド・ダブル・オールウェイズ法によるループによってSPAを防ぎ、ワーク変数V’[0]の初期値に乱数rがセットされることによって、そのループにおけるワーク変数をランダムに変化させDPAを防ぐ。
処理のオーバーヘッドについて、図5をRSAに適用する場合と比較すると、RPA対策のための追加的処理はステップ1201に示す追加処理はrの生成と、ステップ1209に示すrの逆元の乗算剰余だけである。
次に、図12の楕円曲線暗号用の基本的アルゴリズムの実施形態について説明する。
図12におけるステップ1101における点Rの生成、ステップ1107におけるV[2]の2倍算として、必要な計算量が異なる複数の実施形態が存在する。
図14〜18は、図12におけるステップ1101を実現する相異なるランダムな点Rの生成のアルゴリズムを示している。
図14を参照すると、ステップ1301において、乱数点生成部14は、取り得る任意の座標Xの値をランダムに生成し、値XをRにセットする。即ち、素体の楕円曲線パラメータを用いた楕円曲線暗号の場合、0≦R<pを満たす整数を、2べきの楕円曲線パラメータの場合GF(2)のランダムな値を与えることによって生成する。ステップ1302において所与の座標Xに対応する座標Yを求めRを生成する。ステップ1303および1304において、R=(R,R)とセットする。座標Xから座標Yを求めるためのアルゴリズムは、前記文献IEEE P1363/D13に記載されている。
図15を参照すると、生成部14は、ステップ1401において乱数sを生成し、ステップ1402において図5のアド・アンド・ダブル・オールウェイズによってベースポイントGをs倍したsGをRにセットする。あるいは、図5のアルゴリズムの代わりに、図12のアルゴリズムをR=O、d=sおよびA=Gについて実行してもよい。このように同一アルゴリズムを共用することによって、リソースの利用を効率化できる。乱数sは任意の値であるが、それがスカラー値dのビット長を超える場合、ステップ1402のスカラー倍算による計算オーバーヘッドが大きい。例えば160ビットの楕円曲線暗号においてsが160ビットの乱数であるとき、ステップ1402の計算量が大きくなる。その結果、本発明によるアルゴリズム全体の計算量が図5のアルゴリズムの概ね2倍となって処理速度が低下する。従って、sは20〜30ビットの値であることが好ましい。
図16は、スマートカードの初期化等において点Rの初期値をランダムに与えた後、本発明による電力解析攻撃から保護された暗号処理が呼び出される度にその点Rの値を更新するアルゴリズムを示している。その更新を簡単な演算で実現することによって、図14および15に示されたアルゴリズムと比べて、その処理時間を短くできる。
ステップ1501において、生成部14は、通常の電力解析攻撃対策において使用されるRの値をメモリ上の特定の領域から読み込む。代替構成として、例えば図14および15に示した方法を用いて点Rの初期値を与えてもよい。ステップ1502において、生成部14は、点Rに対して2倍算を行うことによってその値を更新する。ステップ1503において、生成部14はその更新した点Rの値を次回の処理のために格納する。
図17は、図12における投影座標における点Rの生成のアルゴリズムを示している。図18は、図12におけるヤコビアン座標における点Rの生成のアルゴリズムを示している。
これらのアルゴリズムにおいては、生成部14は、図16のアルゴリズムと同様にスマートカードが初期化されるとき等において点Rの初期値をランダムに生成し、その後、本発明による暗号プログラムが呼び出される度に、生成部14は点R初期値を更新する。
図16のアルゴリズムと同様に、生成部14は、ステップ1601においてメモリ18に格納されている前回のR読み込み、ステップ1603において更新されたRを格納する。図17において、生成部14は、ステップ1602において定数tを座標値R=(R,R,R)に乗算することによって初期値Rを更新する。図18において、生成部14は、ステップ1602において定数t、tおよびtを座標値R(R,R,R)の各成分に乗算することによって初期値Rを更新する。tの値として、例えばt=3のような小さな値を選択することによって、Rの更新に必要な計算量を小さくできる。
図19は、図12におけるステップ1107におけるワーク変数V[2]に対する点の2倍算の実施形態を示している。
ステップ1107における点の2倍算は、同一ワーク変数V[2]に対して繰り返し実行され、V[2]の値はループ変数iを用いてV[2]=2i+1Aと表される。ヤコビアン座標および素体の場合について、同一の点に対して繰り返し実行される2倍算(点の2倍算)によって計算を高速化する手法が、本発明者の中の2人、武仲および伊藤によって2000年5月16日付けで公開された特開2000−137436号公報(A)に開示されており、ここでこの文献を引用して組み込む。図19では、その公報における図2に示されている点の2倍算の手法が用いられる。
図19におけるiは、図17におけるループ変数iの値と同じである。このアルゴリズムは、変数PとしてのA[2]=(X,Y,Z)=2Aの入力からA[2]=(Xi+1,Yi+1,Zi+1)=2i+1Aの出力までの演算を表している。i=0のときは、if文によってi=0に対する処理に分岐することによって、通常の素体ヤコビアン座標における2倍算と同じ処理を行う。i≧1のときは、if文によってi≧1に対する処理に分岐する。このとき、点の2倍算のためのワーク変数Rを計算するために、i−1におけるワーク変数Ti−1の値を再利用することによって計算量が削減される。前記文献IEEE P1363に記載されている標準的な点の2倍算を用いたとき、1回当たり10回の乗算が必要であるが、図19のアルゴリズムを用いたとき1回当たり8回の乗算のみを必要とする。即ち、図19に示されたアルゴリズムを用いることによって、標準的な方法を用いるのと比較して点の2倍算に必要な計算量を2割だけ削減できる。
図20は、図15(R初期化)、16(ステップ1101、Rの生成)および19(ステップ1106、点の2倍算)のアルゴリズムを組み合わせた、図12に示された本発明による基本的アルゴリズムの実施形態を示している。
代替構成として、図12のステップ1101として図14〜18のいずれかと、ステップ1106として図19および前記文献IEEE P1363のいずれか、の組み合わせであってもよい。
次に、図13のRSA暗号用の基本的アルゴリズムの実施形態について説明する。RSA暗号用の電力解析攻撃対策の場合、図18がそのまま実施例となる。その理由は、ステップ1201における乱数rの生成、ステップ1206における2乗算の実現例には変形形態がないからである。
以上説明したように、本発明の実施形態によれば、SPA、DPAおよびRPAの全ての解析に対する対策が実現でき、かつ通常安全なものとして知られていたESおよびPBと比較して計算量が小さくなる。
表2は、電力解析攻撃対策の通常の公開鍵暗号と本発明による楕円曲線暗号の比較を示している。表3は、電力解析攻撃対策の通常の公開鍵暗号と本発明によるRSA暗号の比較を示している。表3においてRPC、RCおよびPB暗号は楕円曲線暗号に適用できないので除外されている。
Figure 0004632950
Figure 0004632950
ここで、Sは解析に対して安全であること、Vは解析に対して脆弱であることを表す。電力解析攻撃対策なしのアド・アンド・ダブル・オールウェイズにおいて、スカラー算の処理時間がEで表され、逆元計算の処理時間がIで表され、点の加算、減算および2倍算がAで表されるものとする。AはEに比べて無視できるほど小さい。
通常の暗号化による処理量は表1のものである。本発明による図20のアルゴリズムの処理量は、ステップ1702における点の2倍算とステップ1711における点の減算以外は、図5におけるアド・アンド・ダブル・オールウェイズと同じ演算を行うので、合計E+2Aと表される。
表2から分かるように、SPA、DPAおよびRPAの全てに対して安全な暗号は、ES暗号、PB暗号および本発明の暗号である。処理時間を比較すると、AはEに比べて無視できるほど小さいので、本発明の暗号の処理時間は、安全なES暗号およびPB暗号の処理時間のほぼ半分である。
AがEと比べて無視できるほど小さいのは、アド・アンド・ダブル・オールウェイズにおいて点の加算と2倍算がそれぞれm回実行され、合計2m回実行されることから明らかである。例えば、160ビット楕円曲線暗号においてm=160としたとき、E=320Aとなる。
ESに必要な計算は、RSAにおけるESの演算手順が次の通りなので、2Eとなる。
Figure 0004632950
ここで、vおよびvの乗算剰余はべき乗剰余演算と比べて非常に小さく無視できると仮定している。本発明による図13の処理は、ステップ1201〜1208に示すアド・アンド・ダブル・オールウェイズと、ステップ1209〜1210における逆元r−1(mod n)の演算で構成されるので、処理量は合計E+Iと表される。即ち、E>Iに対して、本発明の方がESよりも高速な処理を実現できる。EとIの大小関係は、処理環境によって異なるが、一般的にEは演算ビット長の3乗、Iは演算ビット長の2乗に比例するので、E>Iという仮定は妥当である。このように、本発明は電力解析攻撃に対する安全性を損なうことなく、処理時間が小さい。
以上説明した実施形態は典型例として挙げたに過ぎず、その変形およびバリエーションは当業者にとって明らかであり、当業者であれば本発明の原理および請求の範囲に記載した発明の範囲を逸脱することなく上述の実施形態の種々の変形を行えることは明らかである。

Claims (10)

  1. 個人鍵を用いて楕円曲線暗号処理を行う暗号装置であって、
    外部からアクセスできない内部で生成された乱数に基づいて楕円曲線上の点Rをランダムに生成し、前記楕円曲線上の或る入力点Aの値を入力し、その際、前記点Rに応じて初期化される変数に対して前記楕円曲線上の或る入力点Aの値に応じた初期化を行わず、前記入力点Aに応じて初期化される変数に対して前記点Rの値に応じた初期化を行わない、初期化手段と、
    前記点Rを初期点Vにセットし、前記入力点Aをセットし、前記楕円曲線暗号処理のための前記個人鍵を表す或るスカラー値dのビット・シーケンスの全てのビット値に対して、前記初期点Vと前記入力点Aのスカラー倍との和V=V+dAの演算を実行する演算手段と、
    前記演算によって得られた和Vから前記初期点Vを減算する演算V=V−Vを実行するランダム化解除手段と、
    前記ランダム化解除手段によって得られた点Vを出力として供給する手段と、
    を具える、暗号装置。
  2. 前記初期化手段は、前記楕円曲線上の点Rの座標Xを生成し、前記座標Xに従って前記点Rの座標Yを生成して、前記生成された座標(X,Y)を前記点Rとして生成するものである、請求項1に記載の暗号装置。
  3. 前記初期化手段は、乱数sを生成し、ベースポイントGのs倍を求め、前記求められたsGを前記点Rとして生成するものである、請求項1に記載の暗号装置。
  4. 前記演算手段は、前記sGを求めるために、乱数sを前記スカラー値dにセットし、前記入力点Aを前記ベースポイントGにセットし、無限遠点Oを前記点Rにセットすることによって、前記演算V=V+dAを用いてsG=O+sGを求めるものである、請求項に記載の暗号装置。
  5. 最初にランダムに発生された前記楕円曲線上の点Rが前記点Rにセットされ、その後前記点Rとして関数R=ECDBL(Rn−1)で表される前記楕円曲線上の点Rが用いられ、ここでRはn回目の楕円曲線暗号処理を表すものであり、ECDBL(A)は楕円曲線上の点Aの2倍算を表すものである、請求項1に記載の暗号装置。
  6. 最初にランダムに発生された前記楕円曲線上の初期点Rが前記点Rにセットされ、その後前記点Rとして前記楕円曲線上の点Rが用いられ、Rはn回目の楕円曲線暗号処理を表すものであり、前記楕円曲線上の前回の点Rn−1が投影座標の点(R,R,R)で表されるとき、前記楕円曲線上の今回の点Rが投影座標の点(t×R,t×R,t×R)で表され、tは定数を表すものである、請求項1に記載の暗号装置。
  7. 最初にランダムに発生された前記楕円曲線上の初期点Rが前記点Rにセットされ、その後前記点Rとして前記楕円曲線上の点Rが用いられ、Rはn回目の楕円曲線暗号処理を表すものであり、前記楕円曲線上の前回の点Rn−1がヤコビアン座標の点(R,R,R)で表されるとき、前記楕円曲線上の今回の点Rがヤコビアン座標の点(t×R,t×R,t×R)で表され、tは定数を表すものである、請求項1に記載の暗号装置。
  8. 個人鍵を用いてべき乗剰余暗号処理を行う暗号装置であって、
    外部からアクセスできない内部で生成された乱数に基づいて整数rをランダムに生成し、或る入力値aを入力し、その際、前記整数rに応じて初期化される変数に対して前記入力値aに応じた初期化を行わず、前記入力値aに応じて初期化される変数に対して前記整数rに応じた初期化を行わない、初期化手段と、
    前記整数rを初期値Vにセットし、前記入力値aをセットし、前記べき乗剰余暗号処理のための前記個人鍵を表す或る値dのビット・シーケンスの全てのビット値に対して、前記初期値Vと前記入力値aに対するべき乗剰余演算V=V(mod n)=r×a(mod n)の演算を実行する演算手段と、
    前記演算によって得られた値Vとr(mod n)の逆元r−1(mod n)との乗算剰余演算V=V×r−1(mod n)を実行するランダム化解除手段と、
    前記ランダム化解除手段によって得られた値Vを出力として供給する手段と、
    を具える、暗号装置。
  9. 情報処理装置個人鍵を用い楕円曲線暗号処理を実行させるためのプログラムであって、
    外部からアクセスできない内部で生成された乱数に基づいて楕円曲線上の点Rをランダムに生成し、前記楕円曲線上の或る入力点Aの値を入力するステップと、
    前記点Rに応じて初期化される変数に対して前記楕円曲線上の或る入力点Aの値に応じた初期化を行わず、前記入力点Aに応じて初期化される変数に対して前記点Rの値に応じた初期化を行わずに、前記点Rを初期点Vにセットし、前記入力点Aをセットするステップと、
    前記楕円曲線暗号処理のための前記個人鍵を表す或るスカラー値dのビット・シーケンスの全てのビット値に対して、前記初期点Vと前記入力点Aのスカラー倍との和V=V+dAの演算を実行するステップと、
    前記演算によって得られた和Vから前記初期点Vを減算する演算V=V−Vを実行するステップと、
    前記減算によって得られた点Vを出力として供給するステップと、
    前記情報処理装置に実行させるためのプログラム。
  10. 情報処理装置個人鍵を用いべき乗剰余暗号処理を実行させるためのプログラムであって、
    外部からアクセスできない内部で生成された乱数に基づいて整数rをランダムに生成し、或る入力値aを入力するステップと、
    前記整数rに応じて初期化される変数に対して前記入力値aに応じた初期化を行わず、前記入力値aに応じて初期化される変数に対して前記整数rに応じた初期化を行わずに、前記整数rを初期値Vにセットし、前記入力値aをセットするステップと、
    前記べき乗剰余暗号処理のための前記個人鍵を表す或る値dのビット・シーケンスの全てのビット値に対して、前記初期値Vと前記入力値aに対するべき乗剰余演算V=V(mod n)=r×a(mod n)の演算を実行するステップと、
    前記演算によって得られた値Vとr(mod n)の逆元r−1(mod n)との乗算剰余演算V=V×r−1(mod n)を実行するステップと、
    前記逆元との乗算剰余演算によって得られた値Vを出力として供給するステップと、
    前記情報処理装置に実行させるためのプログラム。
JP2005504397A 2003-07-22 2003-07-22 個人鍵を用いた耐タンパ暗号処理 Expired - Fee Related JP4632950B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/009284 WO2005008955A1 (ja) 2003-07-22 2003-07-22 個人鍵を用いた耐タンパ暗号処理

Publications (2)

Publication Number Publication Date
JPWO2005008955A1 JPWO2005008955A1 (ja) 2006-09-07
JP4632950B2 true JP4632950B2 (ja) 2011-02-16

Family

ID=34074135

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005504397A Expired - Fee Related JP4632950B2 (ja) 2003-07-22 2003-07-22 個人鍵を用いた耐タンパ暗号処理

Country Status (5)

Country Link
US (1) US20070177721A1 (ja)
EP (1) EP1648111B1 (ja)
JP (1) JP4632950B2 (ja)
AU (1) AU2003304629A1 (ja)
WO (1) WO2005008955A1 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2820576B1 (fr) * 2001-02-08 2003-06-20 St Microelectronics Sa Procede de cryptage protege contre les analyses de consommation energetique, et composant utilisant un tel procede de cryptage
US7555122B2 (en) * 2002-12-04 2009-06-30 Wired Communications LLC Method for elliptic curve point multiplication
US7961873B2 (en) * 2004-03-03 2011-06-14 King Fahd University Of Petroleum And Minerals Password protocols using XZ-elliptic curve cryptography
US7961874B2 (en) * 2004-03-03 2011-06-14 King Fahd University Of Petroleum & Minerals XZ-elliptic curve cryptography with secret key embedding
KR100891323B1 (ko) * 2005-05-11 2009-03-31 삼성전자주식회사 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치
DE102005024609A1 (de) * 2005-05-25 2006-11-30 Siemens Ag Bestimmung einer modularen Inversen
CN101213513B (zh) * 2005-06-29 2013-06-12 爱迪德艾恩德霍芬公司 保护数据处理装置免受密码攻击或分析的设备和方法
EP1899803A2 (en) * 2005-06-29 2008-03-19 Koninklijke Philips Electronics N.V. Arrangement for and method of protecting a data processing device against an attack or analysis
KR100850202B1 (ko) * 2006-03-04 2008-08-04 삼성전자주식회사 Ecc 패스트 몽고매리 전력 래더 알고리즘을 이용하여dfa 에 대응하는 암호화 방법
EP1840732A1 (en) 2006-03-31 2007-10-03 Axalto SA Protection against side channel attacks
US8065531B2 (en) * 2006-04-06 2011-11-22 Nxp B.V. Decryption method
JP2007325219A (ja) * 2006-06-05 2007-12-13 Sony Corp 暗号処理システムおよび暗号処理装置
US8559625B2 (en) * 2007-08-07 2013-10-15 Inside Secure Elliptic curve point transformations
US8233615B2 (en) * 2008-01-15 2012-07-31 Inside Secure Modular reduction using a special form of the modulus
US8619977B2 (en) * 2008-01-15 2013-12-31 Inside Secure Representation change of a point on an elliptic curve
US8401179B2 (en) * 2008-01-18 2013-03-19 Mitsubishi Electric Corporation Encryption parameter setting apparatus, key generation apparatus, cryptographic system, program, encryption parameter setting method, and key generation method
FR2926652B1 (fr) * 2008-01-23 2010-06-18 Inside Contactless Procede et dispositifs de contre-mesure pour cryptographie asymetrique a schema de signature
JP5182364B2 (ja) * 2008-03-28 2013-04-17 富士通株式会社 サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法
US8369517B2 (en) * 2008-08-12 2013-02-05 Inside Secure Fast scalar multiplication for elliptic curve cryptosystems over prime fields
US20100172492A1 (en) * 2009-01-08 2010-07-08 National Tsing Hua University Method for scheduling elliptic curve cryptography computation
CN103282950B (zh) * 2010-12-27 2015-11-25 三菱电机株式会社 运算装置、运算装置的椭圆标量乘法方法以及运算装置的剩余运算方法
US8549299B2 (en) * 2011-02-28 2013-10-01 Certicom Corp. Accelerated key agreement with assisted computations
FR2977952A1 (fr) 2011-07-13 2013-01-18 St Microelectronics Rousset Protection d'un calcul d'exponentiation modulaire par multiplication par une quantite aleatoire
FR2977953A1 (fr) 2011-07-13 2013-01-18 St Microelectronics Rousset Protection d'un calcul d'exponentiation modulaire par addition d'une quantite aleatoire
FR2977954B1 (fr) 2011-07-13 2015-06-26 St Microelectronics Rousset Protection d'un calcul sur courbe elliptique
FR3010210B1 (fr) * 2013-08-29 2017-01-13 Stmicroelectronics Rousset Protection d'un calcul contre des attaques par canaux caches
FR3017476B1 (fr) * 2014-02-12 2017-06-09 Secure-Ic Sas Procede de contremesure pour un composant electronique mettant en œuvre un algorithme de cryptographie sur une courbe elliptique
US10389520B2 (en) 2014-10-03 2019-08-20 Cryptography Research, Inc. Exponent splitting for cryptographic operations
US9590805B1 (en) * 2014-12-23 2017-03-07 EMC IP Holding Company LLC Ladder-based cryptographic techniques using pre-computed points
US10181944B2 (en) * 2015-06-16 2019-01-15 The Athena Group, Inc. Minimizing information leakage during modular exponentiation and elliptic curve point multiplication
FR3055444B1 (fr) * 2016-08-23 2022-02-04 Maxim Integrated Products Dispositif et procedes de commande de dispositif de cryptage sur courbe elliptique securises
US10341098B2 (en) * 2017-01-24 2019-07-02 Nxp B.V. Method of generating cryptographic key pairs
WO2018148819A1 (en) * 2017-02-15 2018-08-23 Infosec Global Inc. Cryptographic scheme with fault injection attack countermeasure
US11983280B2 (en) * 2019-01-07 2024-05-14 Cryptography Research, Inc. Protection of cryptographic operations by intermediate randomization
CN112217643B (zh) * 2019-07-09 2021-12-10 华为技术有限公司 运算方法、装置及设备
JP2022045614A (ja) * 2020-09-09 2022-03-22 キオクシア株式会社 演算装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000137436A (ja) * 1998-10-30 2000-05-16 Fujitsu Ltd 素体上楕円曲線上の点の演算方法およびその装置
JP2000187438A (ja) * 1998-12-22 2000-07-04 Hitachi Ltd 楕円曲線暗号実行方法及び装置並びに記録媒体
WO2001024439A1 (fr) * 1999-09-29 2001-04-05 Hitachi, Ltd. Dispositif, programme ou systeme de traitement d'informations secretes
JP2001195555A (ja) * 2000-01-12 2001-07-19 Hitachi Ltd Icカードとマイクロコンピュータ
JP2001337599A (ja) * 2000-05-30 2001-12-07 Hitachi Ltd 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
JP2002540483A (ja) * 1999-03-26 2002-11-26 ジェムプリュス 楕円曲線型公開鍵暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法
JP2002540484A (ja) * 1999-03-26 2002-11-26 ジェムプリュス 楕円曲線型の公開鍵暗号化アルゴリズムを用いる電子構成部品における対抗措置方法
JP2003098962A (ja) * 2001-09-20 2003-04-04 Hitachi Ltd 楕円曲線スカラー倍計算方法及び装置並びに記録媒体
JP2003177668A (ja) * 2001-09-06 2003-06-27 Stmicroelectronics Sa 秘密量をもった計算をスクランブルする方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW536672B (en) * 2000-01-12 2003-06-11 Hitachi Ltd IC card and microcomputer
JP3794266B2 (ja) * 2000-11-08 2006-07-05 株式会社日立製作所 楕円曲線スカラー倍計算方法及び装置並びに記憶媒体
JP2003131568A (ja) * 2001-10-26 2003-05-09 Hitachi Ltd 楕円曲線署名検証方法及び装置並びに記憶媒体

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000137436A (ja) * 1998-10-30 2000-05-16 Fujitsu Ltd 素体上楕円曲線上の点の演算方法およびその装置
JP2000187438A (ja) * 1998-12-22 2000-07-04 Hitachi Ltd 楕円曲線暗号実行方法及び装置並びに記録媒体
JP2002540483A (ja) * 1999-03-26 2002-11-26 ジェムプリュス 楕円曲線型公開鍵暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法
JP2002540484A (ja) * 1999-03-26 2002-11-26 ジェムプリュス 楕円曲線型の公開鍵暗号化アルゴリズムを用いる電子構成部品における対抗措置方法
WO2001024439A1 (fr) * 1999-09-29 2001-04-05 Hitachi, Ltd. Dispositif, programme ou systeme de traitement d'informations secretes
JP2001195555A (ja) * 2000-01-12 2001-07-19 Hitachi Ltd Icカードとマイクロコンピュータ
JP2001337599A (ja) * 2000-05-30 2001-12-07 Hitachi Ltd 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
JP2003177668A (ja) * 2001-09-06 2003-06-27 Stmicroelectronics Sa 秘密量をもった計算をスクランブルする方法
JP2003098962A (ja) * 2001-09-20 2003-04-04 Hitachi Ltd 楕円曲線スカラー倍計算方法及び装置並びに記録媒体

Also Published As

Publication number Publication date
AU2003304629A1 (en) 2005-02-04
JPWO2005008955A1 (ja) 2006-09-07
US20070177721A1 (en) 2007-08-02
WO2005008955A1 (ja) 2005-01-27
EP1648111A4 (en) 2008-03-19
EP1648111B1 (en) 2014-01-15
EP1648111A1 (en) 2006-04-19

Similar Documents

Publication Publication Date Title
JP4632950B2 (ja) 個人鍵を用いた耐タンパ暗号処理
US7536011B2 (en) Tamper-proof elliptic encryption with private key
Coron Resistance against differential power analysis for elliptic curve cryptosystems
Yen et al. Power analysis by exploiting chosen message and internal collisions–vulnerability of checking mechanism for RSA-decryption
Izu et al. Improved elliptic curve multiplication methods resistant against side channel attacks
US7334133B2 (en) Method for making a computer system implementing a cryptographic algorithm secure using Boolean operations and arithmetic operations and a corresponding embedded system
US8391477B2 (en) Cryptographic device having tamper resistance to power analysis attack
US7162033B1 (en) Countermeasure procedures in an electronic component implementing an elliptical curve type public key encryption algorithm
Itoh et al. A practical countermeasure against address-bit differential power analysis
EP1840732A1 (en) Protection against side channel attacks
US20080201398A1 (en) Determination of a Modular Inverse
Dupaquis et al. Redundant modular reduction algorithms
JP5182364B2 (ja) サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法
US7286666B1 (en) Countermeasure method in an electric component implementing an elliptical curve type public key cryptography algorithm
Boscher et al. Blinded fault resistant exponentiation revisited
Dubeuf et al. ECDSA passive attacks, leakage sources, and common design mistakes
Kim et al. Practical second‐order correlation power analysis on the message blinding method and its novel countermeasure for RSA
KR100731575B1 (ko) 전력분석공격에 대응하는 암호화 방법
KR100772550B1 (ko) 전력분석공격에 안전한 메시지 블라인딩 방법
Yin et al. A randomized binary modular exponentiation based RSA algorithm against the comparative power analysis
Kaedi et al. A New Side-Channel Attack on Reduction of RSA-CRT Montgomery Method Based
Smart et al. Randomised representations
JP2004163687A (ja) 楕円曲線暗号装置、楕円曲線暗号プログラム
Okeya et al. On the importance of protecting Δ in SFLASH against side channel attacks
Sakai et al. Simple power analysis on fast modular reduction with generalized mersenne prime for elliptic curve cryptosystems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101025

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: 20101116

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101116

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131126

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees