[go: up one dir, main page]

JP2002540483A - 楕円曲線型公開鍵暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法 - Google Patents

楕円曲線型公開鍵暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法

Info

Publication number
JP2002540483A
JP2002540483A JP2000608545A JP2000608545A JP2002540483A JP 2002540483 A JP2002540483 A JP 2002540483A JP 2000608545 A JP2000608545 A JP 2000608545A JP 2000608545 A JP2000608545 A JP 2000608545A JP 2002540483 A JP2002540483 A JP 2002540483A
Authority
JP
Japan
Prior art keywords
calculate
point
replace
algorithm
steps
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.)
Pending
Application number
JP2000608545A
Other languages
English (en)
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 JP2002540483A publication Critical patent/JP2002540483A/ja
Pending legal-status Critical Current

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/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • 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/7228Random curve mapping, e.g. mapping to an isomorphous or projective curve
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computer Security & Cryptography (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)
  • Credit Cards Or The Like (AREA)
  • Studio Circuits (AREA)
  • Storage Device Security (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Image Processing (AREA)
  • Photoreceptors In Electrophotography (AREA)
  • Lock And Its Accessories (AREA)

Abstract

(57)【要約】 楕円曲線に基づく暗号化アルゴリズムは、計算時間をより短くし、鍵のサイズをより小さくするという利点をRSAに備えた公開鍵式アルゴリズムである。チップカード型環境の枠内でそれらを応用した場合、DPA(電力差分解析)型の攻撃に弱いことが分かった。本発明は、このタイプのDPA攻撃に対して備えることを可能にする対抗措置方法を説明することから成る。この対抗措置は性能を低下させず、チップカード型の構成部品内で容易に利用することができる。

Description

【発明の詳細な説明】
【0001】 本発明は、楕円曲線型の公開鍵暗号化アルゴリズムを用いる電子構成部品にお
ける対抗措置方法に関するものである。
【0002】 秘密鍵暗号方式の従来のモデルでは、安全化されていない経路を介して通信し
たいと望む2人は、前もって、暗号化の秘密鍵Kについて合意しておかなければ
ならない。暗号化関数および復号化関数は、同じ鍵Kを用いる。秘密鍵暗号シス
テムの欠点は、前記システムが、安全化されていない経路を介して何らかの暗号
化メッセージを送信する前に、安全化された経路を介して2人の間の鍵Kを予め
通信しておくことを要することである。実際には、完璧に安全化された通信経路
を見つけるのは一般に難しく、2人を隔てる距離が大きい場合は特に難しい。安
全化された経路とは、前記経路を通過する情報を知ること、または変更すること
が不可能である経路を意味する。このような安全化された経路は、前記2人が所
有する2つの端末を接続するケーブルとすることができる。
【0003】 公開鍵暗号方式のコンセプトは、Whitfield DIFFIEおよびMartin HELLMANに
よって1976年に発明された。公開鍵暗号方式により、安全化されていない経
路を介しての鍵配布の問題を解決することができる。公開鍵暗号方式の原理は、
一対の鍵、即ち暗号化の公開鍵および復号化の秘密鍵を用いることから成る。暗
号化の公開鍵から復号化の秘密鍵を見つけるのは、計算上できないことになって
いる。人Bに情報を伝達したいとを望む人Aは、人Bの暗号化の公開鍵を用いる
。人Bのみがその公開鍵と関連する秘密鍵を所有している。したがって、人Bの
みが、自分宛てのメッセージを復号化することができる。
【0004】 秘密鍵暗号方式に対する公開鍵暗号方式の別の利点は、公開鍵暗号方式により
、電子署名の使用による認証が可能になることである。
【0005】 公開鍵暗号の体系の最初の実現は、暗号システムRSAを発明したRivest、Shami
rおよびAdlemanによって1977年に開発された。RSAの安全性は、2つの素数
の積である大きな数を因数分解する難しさの上に成り立つものである。
【0006】 それ以来、安全性が多様な計算問題の上に成り立っている数多くの公開鍵暗号
システムが提案されている:(このリストは全部を網羅するものではない)。 −Merckle-Hellmanのナップサック: この暗号システムは、部分集合の和の問題の難しさに基づくものである
。 −McEliece: この暗号システムは、代数符号の理論に基づくものである。それは、線
形符号の復号化の問題に基づく。 −ElGamal: この暗号システムは、有限体における離散対数の難しさに基づくもので
ある。 −楕円曲線: 楕円曲線暗号システムは、楕円曲線の領域において適用するための既存
の暗号システムの修正型である。
【0007】 暗号システムにおける楕円曲線の使用は、1985年に、Victor Millerおよ
びNeal Koblitzによって、独立に提唱された。楕円曲線の実際への応用は、1
990年代の初めに検討された。
【0008】 楕円曲線を基にした暗号システムの利点は、他の暗号システムと同等の安全性
を、より小さいサイズの鍵で提供することである。鍵のサイズによるこの利益は
、メモリの必要性の減少および計算時間の削減をもたらし、それによって、チッ
プカードタイプの応用に特に適した楕円曲線が使用されることとなる。
【0009】 有限体GF(q^n)(qは素数であり、nは整数である)上の楕円曲線は、
次の方程式の解GF(q^n)に属する点(x,y)の集合であり、ここでxは
横座標、yは縦座標である: qが3以上であるとき y^2=x^3+a*x+b q=2であるとき y^2+x*y=x^3+a*x^2+b
【0010】 楕円曲線上の1点を表すための2つの方法が存在する。 第一は、アフィン座標表示である。この方法では、楕円曲線上の点Pは、その
座標(x,y)で表される。 第二は、射影座標表示である。
【0011】 射影座標表示の利点は、有限体内の除算を避けることができることであって、
前記除算とは計算時間を最も必要とする演算である。
【0012】 最も一般的に用いられている射影座標表示は、楕円曲線上の点Pを、x=Y/
Zで、y=Y/Z^3である座標(X,Y,Z)によって表すことから成るもの
である。
【0013】 ある点の射影座標は一意ではなく、なぜなら3つの要素(X,Y,Z)と3つ
の要素(λ^2*X,λ^3*Y,λ*Z)は、楕円曲線が規定される有限体に
属する要素λに関係なく同じ点を表すからである。
【0014】 暗号方式において最も良く利用される曲線の2つのクラスは、以下の通りであ
る: 1)以下の方程式を有する、有限体GF(p)(pは素数であって、pを
法とする整数の集合)上で規定される曲線: y^2=x^3+a*x=b 2)式y^2+x*y=x^3+a*x^2+bを有する、有限体GF(
2^n)上で規定される曲線
【0015】 これらの2つのクラスの曲線のそれぞれについて、点の加算および点の倍算の
演算を定義する。
【0016】 点の加算とは、2点をPおよびQとすると、和R=P+Qを計算する演算であ
り、Rは曲線の一点であって、その座標はAlfred J. Menezesの著作“楕円曲
線公開鍵暗号システム(Elliptic curve public key cryptosystem)”に記
されている式に従う点PおよびQの座標で表される。
【0017】 点の倍算とは、点Pが与えられたとき、点R=2*Pを計算する演算であり、
Rは曲線上の点であって、該曲線の座標は、Alfred J.Menezes
の著作"楕円曲線公開鍵暗号システム(Elliptic curve public key cryptosyste
m)"に記されている式に従う点P座標で表される。
【0018】 点の加算および点の倍算の演算によって、スカラー乗算の演算を定義すること
ができる。Pを楕円曲線に属する点、dを整数とすると、Pとdとのスカラー乗
算の結果は、Q=d*P=P+P+…+Pをd回のようになる点Qとなる。
【0019】 楕円曲線における暗号化アルゴリズムの安全性は、楕円曲線上での離散対数問
題の難しさに基づくものであり、前記の問題とは、楕円曲線Eに属する2点Qお
よびPから、もし存在するならば、Q=x*Pであるような整数xを見つけるこ
とである。
【0020】 離散対数問題に基づく暗号化アルゴリズムが数多く存在する。これらのアルゴ
リズムは、楕円曲線に容易に移行可能である。
【0021】 例えば、認証、機密性、完全性確認、および鍵交換を保証するアルゴリズムを
実施することが可能である。
【0022】 楕円曲線に基づく暗号化アルゴリズムの大多数に共通する点は、有限体上で規
定される楕円曲線およびこの楕円曲線に属する点Pを、パラメータとして含むこ
とである。秘密鍵は、無作為に選択された整数dである。公開鍵は、Q=d*P
であるような曲線の1点Qである。これらの暗号化アルゴリズムは、一般的に、
dが秘密鍵であるときの点R=d*Tの計算に、スカラー乗算を介入させる。
【0023】 後の段落において、楕円曲線に基づく暗号化アルゴリズムを説明する。この体
系は、El Gamalの暗号化体系に類似している。メッセージmは、以下の
ように暗号化される。 暗号化者は、無作為に整数kを選択し、曲線の点、k*P=(x1,y1)お
よびk*Q=(x2,y2)、そして整数c=x2+mを計算する。mの暗号は
、3つの要素(x1,y1,c)である。
【0024】 dを所有する復号化者は、以下を計算することによってmを復号化する。 (x’2,y’2)=d(x1,y1)およびm=c−x’2
【0025】 前述の計算の手順において必要なスカラー乗算を実行するためには、複数のア
ルゴリズムが存在する。 “倍加算” アルゴリズム “加減算” アルゴリズム 加算鎖式アルゴリズム 窓式アルゴリズム 署名表示アルゴリズム
【0026】 このリストは全体を網羅するものではない。最も単純で最も使用されているア
ルゴリズムは、“倍加算” アルゴリズムである。“倍加算” アルゴリズムは、
ある楕円曲線に属する点Pおよび整数dを入力する。整数dは、d=(d(t)
,d(t−1),…,d(0))と記されるが、(d(t),d(t−1),…
,d(0))は、dの2進法表示であり、d(t)は重みのあるビット、d(0
)は重みのないビットである。アルゴリズムは、点Q=d・Pを出力として返す
【0027】 “倍加算” アルゴリズムは、次の3つのステップを有する。 1)点Qを値Pで初期化する 2)iが、t−1から0となるまで、以下を実行する 2a)Qに2Qを代入する 2b)もしd(i)=1ならば、QにQ+Pを代入する 3)Qを返す
【0028】 楕円曲線型の公開鍵式暗号化アルゴリズムのチップカードへの実装が、復号化
の秘密鍵を見つけ出すことを可能にする消費電力差分解析による攻撃に対して脆
いものであったことが明らかになっている。これらの攻撃は、Differential Po
wer Analysis(電力差分解析)の頭字語で、DPA攻撃と呼ばれる。これらの
DPA攻撃の原理は、命令を実行するマイクロプロセッサの消費電力は、処理さ
れるデータに依存して変動するという事実に基づくものである。
【0029】 特に、特定の1ビットが一定で、他の複数ビットの値が変動するデータを、命
令が処理する際、命令に関する消費電力を解析すると、特定のビットが0の値を
取るか、または1の値を取るかによって、命令の平均消費は同じではないことが
分かる。従って、DPAタイプの攻撃は、暗号化アルゴリズムの実行の際、カー
ドのマイクロプロセッサが処理する中間データについての補足的情報を得ること
を可能にするのである。これらの補足的情報は、ある場合では、復号化アルゴリ
ズムの秘密パラメータを暴くこと可能にすることがあり、暗号システムを不確実
なものにする。
【0030】 続くこの文書では、整数dが秘密鍵であるときの、点Pと整数dとのスカラー
乗算タイプの演算を実行する楕円曲線型のアルゴリズムへのDPA攻撃の手順を
説明する。この攻撃は、秘密鍵dを直接暴くことを可能にする。したがって、こ
の攻撃により、楕円曲線のチップカードへの実装の安全性がひどく危うくなる。
【0031】 攻撃の第1のステップは、N個の異なる点P(1),…,P(N)についての
前述の“倍加算” アルゴリズムの実行に対応する消費電力を記録することであ
る。楕円曲線に基づくアルゴリズムでは、チップカードのマイクロプロセッサは
、N回のスカラー乗算d・P(1),…,d・P(N)を行う。
【0032】 攻撃の説明から明らかになるように、秘密鍵dのビットd(t−1)の値を得
ることを可能にする方法を記載することから始めるが、ここで(d(t),d(
t−1),…,d(0))は、dの2進法表示であり、d(t)は重みのあるビ
ット、d(0)は重みのないビットである。次に、値dを奪取することを可能に
するアルゴリズムを説明する。
【0033】 4・Pの横座標の最後のビットの値に従って、点P(1)からP(N)をまと
めるが、ここで、Pは、P(1)からP(N)の点の1つを示す。第1のグルー
プは、4・Pの横座標の最後のビットが1に等しくなるような点Pから構成され
る。
【0034】 第2のグループは、4・Pの横座標の最後のビットが0に等しくなるような点
Pから構成される。2つのグループのそれぞれに対応する消費電力の平均を計算
し、これらの2つ平均の間の差分の曲線を計算する。
【0035】 dのビットd(t−1)が0に等しい場合、前述のスカラー乗算アルゴリズム
は、4・Pの値を計算し、メモリに記憶する。そのことは、チップカードにおい
てアルゴリズムを実行する際に、カードのマイクロプロセッサが実際に4・Pを
計算することを意味する。この場合、第1のメッセージグループにおいては、マ
イクロプロセッサが処理するデータの最後のビットは常に1であり、第2のメッ
セージグループにおいては、処理するデータの最後のビットは常に0である。従
って、それぞれのグループに対応する消費電力の平均は異なる。従って、2つの
平均の間の差分の曲線において、消費電力差分のピークが現れている。
【0036】 反対に、dのビットd(t−1)が1である場合、前述のべき乗アルゴリズム
は、点4・Pを計算しない。従って、チップカードがアルゴリズムを実行する際
、マイクロプロセッサは、データ4・Pを決して処理しない。従って、消費の差
分のピークは現れない。
【0037】 従って、この方法は、dのビットd(t−1)の値を決定することができる。
【0038】 次の段落に記載されるアルゴリズムは、先のアルゴリズムを一般化したもので
ある。それは、秘密鍵dの値を決定することができる。
【0039】 チップカードが実行するN回の計算に対応するP(1)からP(N)で表され
るN個の点を入力とし、整数hを出力とする。
【0040】 前記アルゴリズムは、以下のように、3つのステップで行われる。 1)h=1を実行する 2)iが、t−1から1になるまで、以下を実行する 2)1)(4*h)・Pの横座標の最後のビットの値に従って、点P(1)
からP(N)を分類する 2)2)2つのグループのそれぞれについて、消費電力の平均を計算する 2)3)2つの平均の差を計算する 2)4)その差が、消費の差分ピークを現すのであれば、h=h*2、そう
でなければ、h=h*2+1を行う 3)hを返す
【0041】 先のアルゴリズムは、d=2*hまたはd=2*h+1であるような整数hを
算出する。dの値を得るためには、続いて、2つの可能な推定をテストするだけ
で十分である。
【0042】 従って、説明したDPAタイプの攻撃は、秘密鍵dを奪取することを可能にす
るのである。
【0043】 本発明の方法は、前述のDPA攻撃に対して備えることを可能にする1つの対
抗措置を作成することから成る。この対抗措置は、射影座標での楕円曲線上の点
の表示を使用する。
【0044】 先に説明したごとく、射影座標でのある点の代表元は一意ではない。楕円曲線
を規定する有限体が、n個の要素を含むとき、n−1の可能なものの中から一つ
の代表元を選ぶことができる。
【0045】 計算を実行するある点の無作為の代表元を選ぶことによって、計算の中間値は
それ自体が無作為になり、したがって、外部から予測不可能となって、それが上
述のDPA攻撃を不可能にする。
【0046】 対抗措置方法は、素数pについての有限体GF(p)とGF(2^n)上に規
定される楕円曲線上の点の加算と点の倍算の演算を変更することから成る。素数
pについての有限体GF(p)とGF(2^n)上に規定される楕円曲線上の点
の加算と点の倍算の演算は、これらの演算を実行するために用いられるアルゴリ
ズムに関係なく適用される。
【0047】 また、対抗措置方法は、スカラー乗算の演算における4つの変型を定義するこ
とによっても構成される。これらの4つの変型は、スカラー乗算演算を実行する
ために用いられるアルゴリズムに関係なく適用される。
【0048】 本節では、pが素数である有限体GF(p)上に規定される楕円曲線上の点の
倍算アルゴリズムの変更を説明する。したがって、楕円曲線は次式によって定義
される。 y^2=x^3+a*x+b ここで、aとbは、最初に定められた整数パラメータである。
【0049】 P=(X1,Y1,Z1)で、Q=2・Pである点Q=(X2,Y2,Z2)
の射影座標は、次の6ステップでの方法によって計算される。各ステップでは、
pを法として計算が行われる。 1)M=3*X1^2+a*Z1^4を計算 2)Z2=2*Y1*Z1を計算 3)S=4*X1*Y1^2を計算 4)X2=M^2−2*Sを計算 5)T=8*Y1^4を計算 6)Y2=M*(S−X2)−Tを計算
【0050】 対抗措置方法は、上述の方法を変更することから成る。
【0051】 有限体GF(p)上に規定される楕円曲線上の点の倍算の新しい方法は、次の
8ステップから成る。 1)0<λ<pである整数λを無作為抽出 2)X’1=λ^2*X1, Y’1=λ^3*Y1, Z’1=λ*Z1を計
算 3)M=3*X’1^2+a*Z’1^4を計算 4)Z2=2*Y’1*Z’1を計算 5)S=4*X’1*Y’1^2を計算 6)X2=M^2−2*Sを計算 7)T=8*Y’1^4を計算 8)Y2=M*(S−X2)−Tを計算
【0052】 より一般的に、対抗措置方法は点の倍算演算の実行に用いられる方法(以下に
Aで表す)に関係なく適用される。方法Aは、3ステップでの方法A’に置き換
えられる。 入力:射影座標で表された点P=(X1,Y1,Z1) 出力:Q=2・Pとなる射影座標で表されたQ=(X2,Y2,Z2) 1)0<λ<pである整数λを無作為抽出 2)X’1=λ^2*X1, Y’1=λ^3*Y1, Z’1=λ*Z1を計
算 ここで、X’1,Y’1,Z’1は、点P’=(X’1,Y’1,Z’1)の座
標を定義する 3)アルゴリズムAを用いてQ=2*P’を計算
【0053】 方法A’の実行の途中で処理される変数は無作為であるので、上述のDPA攻
撃はもはや適用されない。
【0054】 本節では、pが素数である有限体GF(p)上に規定される楕円曲線上の点の
加算アルゴリズムの変更を説明する。
【0055】 P=(X0,Y0,Z0)で、Q=(X1,Y1,Z1)であるとき、R=P
+Qとなる点R=(X2,Y2,Z2)の射影座標は、次の12ステップでの方
法で計算される。各ステップでは、pを法として計算が行われる。 1)U0=X0*Z1^2を計算 2)S0=Y0*Z1^3を計算 3)U1=X1*Z0^2を計算 4)S1=Y1*Z0^3を計算 5)W=U0−U1を計算 6)R=S0−S1を計算 7)T=U0+U1を計算 8)M=S0+S1を計算 9)Z2=Z0*Z1*Wを計算 10)X2=R^2−T*W^2を計算 11)V=T*W^2−2*X2を計算 12)2*Y2=V*R−M*W^3を計算
【0056】 対抗措置方法は、上述の方法を変更することから成る。有限体GF(p)上に
規定される楕円曲線上の点の加算の新たな方法は、次の16ステップから成る。
1)0<λ<pである整数λを無作為抽出 2)X0をλ^2*X0に、Y0をλ^3*Y0に、Z0をλ*Z0に置き換え
る 3)0<μ<pである整数μを無作為抽出 4)X1をμ^2*X1に、Y1をμ^3*Y1に、Z1をμ*Z1に置き換え
る 5)U0=X0*Z1^2を計算 6)S0=Y0*Z1^3を計算 7)U1=X1*Z0^2を計算 8)S1=Y1*Z0^3を計算 9)W=U0−U1を計算 10)R=S0−S1を計算 11)T=U0+U1を計算 12)M=S0+S1を計算 13)Z2=Z0*Z1*Wを計算 14)X2=R^2−T*W^2を計算 15)V=T*W^2−2*X2を計算 16)2*Y2=V*R−M*W^3を計算
【0057】 より一般的に、対抗措置方法は点の加算演算の実行に用いられる方法(以下に
Aで表す)に関係なく適用される。方法Aは、5ステップでの方法A’に置き換
えられる。 入力:射影座標で表された2点 P=(X0,Y0,Z0)とQ=(X1,Y
1,Z1) 出力:R=P+Qとなる射影座標で表されたR=(X2,Y2,Z2) 1)0<λ<pである整数λを無作為抽出 2)X0をλ^2*X0に、Y0をλ^3*Y0に、Z0をλ*Z0に置き換え
る 3)0<μ<pである整数μを無作為抽出 4)X1をμ^2*X1に、Y1をμ^3*Y1に、Z1をμ*Z1に置き換え
る 5)アルゴリズムAを用いてR=P+Qを計算
【0058】 方法A’の実行の途中で処理される変数は無作為であるので、上述のDPA攻
撃はもはや適用されない。
【0059】 本節では、有限体GF(2^n)上に規定される楕円曲線上の点の倍算アルゴ
リズムの変更を説明する。したがって、楕円曲線は次式で定義される。 y^2+x*y=x^3+a*x^2+b ここで、aとbは、最初に定められた有限体GF(2^n)に属するパラメー
タである。cは以下の等式によって定義される: c=b^(2^(n−2))
【0060】 P=(X1,Y1,Z1)のとき、Q=2・Pである点Q=(X2,Y2,Z
2)の射影座標は、次の4ステップでの方法によって計算される。各ステップで
は、有限体GF(2^n)内で計算が行われる。 1)Z2=X1*Z1^2を計算 2)X2=(X1+c*Z1^2)^4を計算 3)U=Z2+X1^2+Y1*Z1を計算 4)Y2=X1^4*Z2+U*X2を計算
【0061】 対抗措置方法は、上述の方法を変更することから成る。有限体GF(2^n)
上に規定される楕円曲線上の点の倍算の新しい方法は、次の6ステップから成る
。 1)GF(2^n)のゼロでない要素λを無作為抽出 2)X’1=λ^2*X1, Y’1=λ^3*Y1, Z’1=λ*Z1を計
算 3)Z2=X’1*Z’1^2を計算 4)X2=(X’1+c*Z’1^2)^4を計算 5)U=Z2+X’1^2+Y’1*Z’1を計算 6)Y2=X’1^4*Z2+U*X2を計算
【0062】 より一般的に、対抗措置方法は、点の倍算演算の実行に用いられる方法(以下
にAで表す)に関係なく適用される。方法Aは、3ステップでの方法A’に置き
換えられる: 入力:射影座標で表された点P=(X1,Y1,Z1) 出力:Q=2・Pである、射影座標で表された点Q=(X2,Y2,Z2) 1)GF(2^n)のゼロでない要素λを無作為抽出 2)X’1=λ^2*X1, Y’1=λ^3*Y1, Z’1=λ*Z1を計
算 X’1,Y’1,Z’1は、点P’=(X’1,Y’1,Z’1)の座標を定
義する 3)アルゴリズムAによるQ=2・P’の計算 方法A’の実行途中で処理される変数は無作為であるので、上述のDPA攻撃
はもはや適用されない。
【0063】 本節では、有限体GF(2^n)上に規定される楕円曲線上の点の加算アルゴ
リズムの変更を説明する。
【0064】 P=(X0,Y0,Z0)で、Q=(X1,Y1,Z1)であるとき、R=P
+Qとなる点R=(X2,Y2,Z2)の射影座標は、次の12ステップでの方
法によって計算される。各ステップでは、有限体GF(2^n)内で計算が行わ
れる。 1)U0=X0*Z1^2を計算 2)S0=Y0*Z1^3を計算 3)U1=X1*Z0^2を計算 4)S1=Y1*Z0^3を計算 5)W=U0+U1を計算 6)R=S0+S1を計算 7)L=Z0*Wを計算 8)V=R*X1+L*Y1を計算 9)Z2=L*Z1を計算 10)T=R+Z2を計算 11)X2=a*Z2^2+T*R+W^3を計算 12)Y2=T*X2+V*L^2を計算
【0065】 対抗措置方法は、先の方法を変更することから成る。有限体GF(2^n)上
に規定される楕円曲線上の点の加算の新しい方法は、次の14ステップから成る
。 1)GF(2^n)のゼロでない要素λを無作為抽出 2)X0をλ^2*X0に、Y0をλ^3*Y0に、Z0をλ*Z0に置き換え
る 3)GF(2^n)のゼロでない要素μを無作為抽出 4)X1をμ^2*X1に、Y1をμ^3*Y1に、Z1をμ*Z1に置き換え
る 5)U0=X0*Z1^2を計算 6)S0=Y0*Z1^3を計算 7)U1=X1*Z0^2を計算 8)S1=Y1*Z0^3を計算 9)W=U0+U1を計算 10)R=S0+S1を計算 11)L=Z0*Wを計算 12)V=R*X1+L*Y1を計算 13)Z2=L*Z1を計算 14)T=R+Z2を計算 15)X2=a*Z2^2+T*R+W^3を計算 16)Y2=T*X2+V*L^2を計算
【0066】 より一般的に、対抗措置方法は、点の加算演算の実行に用いられる方法(以下
にAで表す)に関係なく適用される。方法Aは、5ステップでの方法A’に置き
換えられる。 入力:射影座標で表された2つの点 P=(X0,Y0,Z0)とQ=(X1
,Y1,Z1) 出力:R=P+Qである、射影座標で表されたR=(X2,Y2,Z2) 1)GF(2^n)のゼロでない要素λを無作為抽出 2)X0をλ^2*X0に、Y0をλ^3*Y0に、Z0をλ*Z0に置き換え
る 3)GF(2^n)のゼロでない要素μを無作為抽出 4)X1をμ^2*X1に、Y1をμ^3*Y1に、Z1をμ*Z1に置き換え
る 5)アルゴリズムAを用いてR=P+Qを計算
【0067】 方法A’の実行の途中で処理される変数は無作為であるので、上述のDPA攻
撃はもはや適用されない。
【0068】 対抗措置はまた、スカラー乗算の演算の4つの変型を定義することから成る。
スカラー乗算演算には、Doで示した点の倍算演算と、Adで示した点の加算演
算とが用いられる。
【0069】 上述の変更された点の倍算演算をDo’とし、上述の変更された点の加算演算を
Ad’とする。
【0070】 本節では、スカラー乗算演算を変更する第一の変型を説明する。第一の変型は
、計算過程の最初の点の表示を無作為にすることから成る。“倍加算”アルゴリ
ズムを利用する場合、スカラー乗算を変更する方法は、5ステップでの次のもの
になる。この方法は、点Pと整数dを入力とする。整数dは、d=(d(t),
d(t−1),…,d(0))で表され、ここで(d(t),d(t−1),…
,d(0))はdの2進数表示であり、d(t)は重みのあるビット、d(0)
は重みのないビットである。アルゴリズムは点Q=d・Pを出力に返す。
【0071】 この第一の変型は、5ステップで実行される。 1)値Pで点Qを初期化する 2)方法Do’を用いてQに2・Qを代入する 3)もしd(t−1)=1ならば、方法Adを用いてQにQ+Pを代入する 4)iがt−2から0になるまで、下記を実行する 4a)Qに2Qを代入する 4b)もしd(i)=1ならば、QにQ+Pを代入する 5)Qを返す
【0072】 より一般的に、上述の第一の変型の方法は、スカラー乗算計算の実行に用いら
れる方法(以下にAで表す)に関係なく、スカラー乗算演算に適用される。方法
Aは、先に定義した演算DoとAdを利用する。
【0073】 対抗措置の第一の変型は、第一の演算Doを先に定義したDo’に置き換える
ことから成る。
【0074】 したがって、第一の変型は、スカラー乗算演算の際に処理される中間変数が無
作為になることを保証する。これによって上述のDPA攻撃は適用できなくなる
【0075】 本節では、スカラー乗算演算の変更の第二の変型を説明する。
【0076】 第二の変型は、計算方法の最初の点と計算方法と最後の点の表示を無作為にす
ることから成る。“倍加算”アルゴリズムを利用する場合、スカラー乗算を変更
する方法は、7ステップでの次のものになる。この方法は点Pと整数dを入力と
する。整数dは、d=(d(t),d(t−1),…,d(0))で表され、こ
こで(d(t),d(t−1),…,d(0))はdの2進数表示であり、d(
t)は重みのあるビット、d(0)は重みのないビットである。アルゴリズムは
点Q=d・Pを出力に返す。
【0077】 この第二の変型は、7ステップで実行される。 1)値Pで点Qを初期化する 2)方法Do’を用いてQに2・Qを代入する 3)もしd(t−1)=1ならば、方法Adを用いてQにQ+Pを代入する 4)iがt−2から1になるまで、下記を実行する 4a)Qに2Qを代入する 4b)もしd(i)=1ならば、QにQ+Pを代入する 5)方法Do’を用いてQに2・Qを代入する 6)もしd(0)=1ならば、方法Adを用いてQにQ+Pを代入する 7)Qを返す
【0078】 より一般的に、上述の第二の変型の方法は、スカラー乗算計算の実行に用いら
れる方法(以下にAで表す)に関係なく、スカラー乗算演算に適用される。方法
Aは、先に定義した演算DoとAdを利用する。対抗措置の第二の変型は第一の
演算Doを先に定義したDo’に、最後の演算DoをDo’に置き換えることを
もって成る。
【0079】 したがって、第二の変型はスカラー乗算演算の際に処理される中間変数が無作
為になることを保証する。第二の変型の利点は、スカラー乗算アルゴリズムの終
わりのDPA攻撃に対する安全性が向上することである。とくに、第二の変型は
上述のDPA攻撃を適用できなくする。
【0080】 本節では、スカラー乗算演算を変更する第三の変型を説明する。
【0081】 第三の変型は、スカラー乗算方法の途中で処理されるそれぞれの点の表示を無
作為にすることから成る。“倍加算”アルゴリズムを利用する場合、スカラー乗
算を変更する方法は、4ステップでの次のものになる。この方法は点Pと整数d
を入力とする。整数dは、d=(d(t),d(t−1),…,d(0))で表
され、ここで(d(t),d(t−1),…,d(0))はdの2進数表示であ
り、d(t)は重みのあるビット、d(0)は重みのないビットである。アルゴ
リズムは点Q=d・Pを出力に返す。
【0082】 この第三の変型は3ステップで実行される。 1)点Pで点Qを初期化する 2)iがt−2から0になるまで、下記を実行する 2a)方法Do’を用いてQに2Qを代入する 2b)もしd(i)=1ならば、方法Ad’を用いてQにQ+Pを代入する 3)Qを返す
【0083】 より一般的に、上述の第三の変型の方法は、スカラー乗算計算の実行に用いら
れる方法(以下にAで表す)に関係なく、スカラー乗算の演算に適用される。方
法Aは、先に定義した演算DoとAdを利用する。
【0084】 対抗措置の第三の変型はすべての演算についてDoをDo’に、AdをAd’
に置き換えることをもって成る。
【0085】 したがって、第三の変型はスカラー乗算演算の際に処理される中間変数が無作
為になることを保証する。第二の変型に対する第三の変型の利点は、スカラー乗
算方法の中間演算へのDPA攻撃に対する安全性が向上することである。とくに
、第三の変型は上述のDPA攻撃を適用できなくする。
【0086】 本節では、スカラー乗算演算を変更する第四の変型を説明する。第四の変型は
、スカラー乗算方法の過程で処理されるそれぞれの点の表示を無作為にすること
をもって成る。第四の変型は、カウンタを用いることによって第三の変型を変更
するものであり、前記カウンタは、ある点の表示を無作為にするスカラー乗算ア
ルゴリズムのステップを決定することを可能にするものである。このために、セ
キュリティ変数Tを定義する。実際には、T=5とすることができる。“倍加算
”アルゴリズムを利用する場合、スカラー乗算を変更する方法は、4ステップで
の次のものになる。この方法は、点Pと整数dを入力とする。
【0087】 整数dは、d=(d(t),d(t−1),…,d(0))で表され、ここで
(d(t),d(t−1),…,d(0))はdの2進数表示であり、d(t)
は重みのあるビット、d(0)は重みのないビットである。アルゴリズムは点Q
=d・Pを出力に返す。
【0088】 第四の変型は3ステップで実行される。 1)点Pで点Qを初期化する 2)カウンタcoを値Tに初期化する 3)iがt−1から0になるまで、下記を実行する 3a)もしcoが0でははないならば、方法Doを用いてQを2Qに代え、それ
以外の場合、方法Do’を用いる 3b)もしd(i)=1ならば、方法Adを用いてQにQ+Pを代入する 3c)もしco=0ならば、カウンタcoを値Tに再度初期化する 3d)カウンタcoをデクリメントする 3)Qを返す
【0089】 より一般的に、上述の第三の変型の方法は、スカラー乗算の計算の実行に用い
られる方法(以下にAで表す)に関係なく、スカラー乗算の演算に適用される。
方法Aは先に定義した演算DoとAdを利用する。
【0090】 第三の対抗措置の変型は、カウンタcoを値Tに初期化することから成る。カ
ウンタの値が0に等しいとき、演算Doは演算Do’に置き換えられる。
【0091】 演算DoまたはDo’の実行の都度、カウンタが値0に達していれば、カウン
タは値Tに再度初期化される;次にデクリメントする。
【0092】 したがって、第四の変型はスカラー乗算の演算の際に処理される中間変数が無
作為になることを保証する。第三の変型に対する第四の変型の利点は、実行速度
がはるかに速いことである。第四の変型は上述のDPA攻撃を適用できなくする
【0093】 したがって、上述の4つの変型の一つを適用することによって、楕円曲線に基
づくあらゆる暗号化アルゴリズムを、上述のDPA型の攻撃から保護することが
できる。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成13年5月2日(2001.5.2)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C R,CU,CZ,DE,DK,DM,EE,ES,FI ,GB,GD,GE,GH,GM,HR,HU,ID, IL,IN,IS,JP,KE,KG,KP,KR,K Z,LC,LK,LR,LS,LT,LU,LV,MA ,MD,MG,MK,MN,MW,MX,NO,NZ, PL,PT,RO,RU,SD,SE,SG,SI,S K,SL,TJ,TM,TR,TT,TZ,UA,UG ,US,UZ,VN,YU,ZA,ZW

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】射影座標の楕円曲線上の点の表示を使用する楕円曲線型公開鍵
    暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法であって、xとyが
    アフィン座標での楕円曲線上の点の座標であるとき、x=X/Zで、y=Y/Z
    ^3である座標(X,Y,Z)によって楕円曲線上の点Pを表すことから成り、
    前記曲線は、n個の要素を含み、かつpが素数である有限体GF(p)上で規定
    され、aとbが最初に定められた整数パラメータであるとき、前記曲線の等式は
    、y^2=x^3+a*x+bであるか、あるいは有限体GF(2^n)上に規
    定された前記曲線の等式y^2+x*y=x^3+a*x^2+bであり、前記
    方法は、楕円曲線の射影座標内の可能なn個の要素の中から無作為の代表元を選
    択し、点の加算と前記点の倍算の演算を変更すること及びスカラー乗算演算を変
    更することから成ることを特徴とする方法。
  2. 【請求項2】対抗措置方法が、点の倍算演算の実行に用いられる以下にAで
    表す方法またはアルゴリズムに関係なく適用され、楕円曲線の、射影座標で表さ
    れた点P=(X1,Y1,Z1)によって規定された入力と、射影座標で表され
    たQ=2・Pである点Q=(X2,Y2,Z2)によって規定される出力を用い
    て、方法Aが3ステップでの方法A’に置換され、前記ステップが以下であるこ
    とを特徴とする、請求項1に記載の対抗措置方法。 1)0<λ<pである整数λを無作為抽出 2)X’1=λ^2*X1, Y’1=λ^3*Y1, Z’1=λ*Z1を計
    算 ここでX’1,Y’1,Z’1は、点P’=(X’1,Y’1,Z’1)の座標
    を定義する 3)アルゴリズムAを用いてQ=2*P’を計算。
  3. 【請求項3】前記有限体GF(p)上に規定される楕円曲線上の点の倍算ア
    ルゴリズム、または点の倍算演算が以下の8ステップから成ることを特徴とする
    、請求項1に記載の対抗措置方法。 1)0<λ<pである整数λを無作為抽出 2)X’1=λ^2*X1, Y’1=λ^3*Y1, Z’1=λ*Z1を計
    算 3)M=3*X’1^2+a*Z’1^4を計算 4)Z2=2*Y’1*Z’1を計算 5)S=4*X’1*Y’1^2を計算 6)X2=M^2−2*Sを計算 7)T=8*Y’1^4を計算 8)Y2=M*(S−X2)−Tを計算
  4. 【請求項4】より一般的に、対抗措置方法は、前記有限体GF(p)上に規
    定される楕円曲線上の点の加算演算の実行に用いられる以下にAで表す方法に関
    係なく適用され、5ステップで実行されることを特徴とする、請求項1に記載の
    対抗措置方法。 1)GF(2^n)のゼロでない要素λを無作為抽出 2)X0をλ^2*X0に、Y0をλ^3*Y0に、Z0をλ*Z0に置き換え
    る 3)GF(2^n)のゼロでない要素μを無作為抽出 4)X1をμ^2*X1に、Y1をμ^3*Y1に、Z1をμ*Z1に置き換え
    る 5)アルゴリズムAを用いてR=P+Qを計算
  5. 【請求項5】pが素数である有限体GF(p)上に規定される楕円曲線上の
    点の加算アルゴリズムが以下の通りに変更され、P=(X0,Y0,Z0)で、
    Q=(X1,Y1,Z1)のとき、R=P+Qとなる点R=(X2,Y2,Z2
    )の射影座標は、16ステップでの次の方法で計算され、各ステップでは、pを
    法として計算が行われることを特徴とする、請求項1に記載の対抗措置方法。 1)0<λ<pである、前記有限体GF(p)に属する整数λを無作為抽出 2)X0をλ^2*X0に、Y0をλ^3*Y0に、Z0をλ Z0に置き換え
    る 3)0<μ<pなどに属する整数μを無作為抽出 4)X1をμ^2*X1に、Y1をμ^3*Y1に、Z1をμ*Z1に置き換え
    る 5)U0=X0*Z1^2を計算 6)S0=Y0*Z1^3を計算 7)U1=X1*Z0^2を計算 8)S1=Y1*Z0^3を計算 9)W=U0−U1を計算 10)R=S0−S1を計算 11)T=U0+U1を計算 12)M=S0+S1を計算 13)Z2=Z0*Z1*Wを計算 14)X2=R^2−T*W^2を計算 15)V=T*W^2−2*X2を計算 16)2*Y2=V*R−M*W^3を計算
  6. 【請求項6】より一般的に、nが素数である有限体GF(2^n)上に規定
    される楕円曲線上の点の加算アルゴリズムが以下の通りに変更され、R=P+Q
    で、Q=(X2,Y2,Z2)である点P=(X1,Y1,Z1)の射影座標が
    3ステップでの次の方法で計算され、各ステップでは、pを法として計算が行わ
    れることを特徴とする、請求項1に記載の対抗措置方法。 1)GF(2^n)のゼロでない要素λを無作為抽出 2)X’1=λ^2*X1, Y’1=λ^3*Y1, Z’1=λ*Z1を計
    算 ここでX’1,Y’1,Z’1は、点P’=(X’1,Y’1,Z’1)の座標
    を定義する 3)アルゴリズムAを用いてQ=2・P’を計算
  7. 【請求項7】対抗措置方法が先の方法を変更することから成り、有限体GF
    (2^n)上に規定される楕円曲線上の点の倍算の新しい方法が次の6ステップ
    から成ることを特徴とする、請求項1に記載の対抗措置方法。 1)GF(2^n)のゼロでない要素λを無作為抽出 2)X’1=λ^2*X1, Y’1=λ^3*Y1, Z’1=λ*Z1を計
    算 3)Z2=X’1*Z’1^2を計算 4)X2=(X’1+c*Z’1^2)^4を計算 5)U=Z2+X’1^2+Y’1*Z’1を計算 6)Y2=X’1^4*Z2+U*X2を計算
  8. 【請求項8】より一般的に、nが素数である有限体GF(2^n)上に規定
    される楕円曲線上の点の加算アルゴリズムが以下の通りに変更され、入力の点
    P=(X0,Y0,Z0)及びQ=(X1,Y1,Z2)とR=(X2,Y2,
    Z2)との射影座標が、5ステップの次の方法で計算され、各ステップでは、計
    算が剰算で実行されることを特徴とする、請求項1に記載の対抗措置方法。 1)GF(2^n)のゼロでない要素λを無作為抽出 2)X0をλ^2*X0に、Y0をλ^3*Y0に、Z0をλ*Z0に置き換え
    る 3)GF(2^n)のゼロでない要素μを無作為抽出 4)X1をμ^2*X1に、Y1をμ^3*Y1に、Z1をμ*Z1に置き換え
    る 5)アルゴリズムAを用いてR=P+Qを計算
  9. 【請求項9】対抗措置方法は、有限体GF(2^n)上に規定される楕円曲
    線上の点の加算法を変更することから成り、次の16ステップから成ることを特
    徴とする、請求項1に記載の対抗措置方法。 1)GF(2^n)のゼロでない要素λを無作為抽出 2)X0をλ^2*X0に、Y0をλ^3*Y0に、Z0をλ*Z0に置き換え
    る 3)GF(2^n)のゼロでない要素μを無作為抽出 4)X1をμ^2*X1に、Y1をμ^3*Y1に、Z1をμ*Z1に置き換え
    る 5)U0=X0*Z1^2を計算 6)S0=Y0*Z1^3を計算 7)U1=X1*Z0^2を計算 8)S1=Y1*Z0^3を計算 9)W=U0+U1を計算 10)R=S0+S1を計算 11)L=Z0*Wを計算 12)V=R*X1+L*Y1を計算 13)Z2=L*Z1を計算 14)T=R+Z2を計算 15)X2=a*Z2^2+T*R+W^3を計算 16)Y2=T*X2+V*L^2を計算
  10. 【請求項10】スカラー乗算演算を変更する第一の変型が、“倍加算”アル
    ゴリズムを利用して計算方法の最初に点の表示を無作為にすることから成り、ス
    カラー乗算を変更する方法は5ステップの次のものになり、点Pと整数dを入力
    とし、整数dはd=(d(t),d(t−1),…,d(0))で表され、ここ
    で(d(t),d(t−1),…,d(0))はdの2進数表示であり、d(t
    )は重みのあるビット、d(0)は重みのないビットであり、アルゴリズムは点
    Q=d・Pを出力に返し、方法Doは点の倍算法であり、方法Do’が請求項1
    から9のいずれか一つに従って変更される点の倍算法であり、この第一の変型が
    5ステップで実行されることを特徴とする、請求項1に記載の対抗措置方法。 1)値Pで点Qを初期化する 2)方法Do’を用いてQに2・Qを代入する 3)もしd(t−1)=1ならば、方法Adが点の加算法である、方法Adを用
    いてQにQ+Pを代入する 4)iがt−2から0になるまで、下記を実行する 4a)Qに2Qを代入する 4b)もしd(i)=1ならば、QにQ+Pを代入する 5)Qを返す
  11. 【請求項11】スカラー乗算演算の第二の変型が、“倍加算”アルゴリズム
    を利用する場合に、計算方法の最初と計算方法の最後に、点の表示を無作為にす
    ることから成り、 スカラー乗算を変更する方法は、7ステップでの次のものになり、点Pと整数d
    を入力とし、整数dは、d=(d(t),d(t−1),…,d(0))で表さ
    れ、ここで(d(t),d(t−1),…,d(0))はdの2進数表示であり
    、d(t)は重みのあるビット、d(0)は重みのないビットであり、アルゴリ
    ズムが点Q=d・Pを出力に返し、前記第二の変型が7ステップで実行されるこ
    とを特徴とする、請求項1に記載の対抗措置方法。 1)値Pで点Qを初期化する 2)方法Do’を用いてQに2・Qを代入する 3)もしd(t−1)=1ならば、方法Adを用いてQにQ+Pを代入する 4)iがt−2から1になるまで、下記を実行する 4a)Qに2Qを代入する 4b)もしd(i)=1ならば、QにQ+Pを代入する 5)方法Do’を用いてQに2・Qを代入する 6)d(0)=1のとき、方法Adを用いてQにQ+Pを代入する 7)Qを返す
  12. 【請求項12】スカラー乗算演算の変更の第三の変型が3ステップで実行さ
    れることを特徴とする、請求項1に記載の対抗措置方法。 1)点Pで点Qを初期化する 2)iがt−2から0になるまで、下記を実行する 2a)方法Do’を用いてQに2Qを代入する 2b)もしd(i)=1ならば、方法Ad’を用いてQにQ+Pを代入する
    が、Ad’は請求項1から12のいずれか一つに従って変更された点の加算法で
    ある 3)Qを返す
  13. 【請求項13】スカラー乗算演算の第四の変型が3ステップで実行されるこ
    とを特徴とする、請求項1に記載の対抗措置方法。 1)点Pで点Qを初期化する 2)カウンタcoを値Tに初期化する 3)iがt−1から0になるまで、下記を実行する 3a)もしcoが0ではないならば、方法Doを用いてQを2Qに代え、そ
    れ以外の場合、方法Do’を用いる 3b)もしd(i)=1ならば、方法Adを用いてQにQ+Pを代入する 3c)もしco=0ならば、カウンタcoを値Tに再度初期化する 3d)カウンタcoをデクリメントする 3)Qを返す
  14. 【請求項14】チップカードであり得ることを特徴とする、請求項1から1
    3のいずれか一つに記載の方法を利用する電子構成部品。
JP2000608545A 1999-03-26 2000-03-13 楕円曲線型公開鍵暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法 Pending JP2002540483A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR99/03921 1999-03-26
FR9903921A FR2791497B1 (fr) 1999-03-26 1999-03-26 Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique
PCT/FR2000/000603 WO2000059156A1 (fr) 1999-03-26 2000-03-13 Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique

Publications (1)

Publication Number Publication Date
JP2002540483A true JP2002540483A (ja) 2002-11-26

Family

ID=9543775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000608545A Pending JP2002540483A (ja) 1999-03-26 2000-03-13 楕円曲線型公開鍵暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法

Country Status (11)

Country Link
US (1) US7162033B1 (ja)
EP (1) EP1166494B1 (ja)
JP (1) JP2002540483A (ja)
CN (1) CN1345495A (ja)
AT (1) ATE434879T1 (ja)
AU (1) AU3296500A (ja)
DE (1) DE60042448D1 (ja)
ES (1) ES2331456T3 (ja)
FR (1) FR2791497B1 (ja)
MX (1) MXPA01009498A (ja)
WO (1) WO2000059156A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005008955A1 (ja) * 2003-07-22 2005-01-27 Fujitsu Limited 個人鍵を用いた耐タンパ暗号処理
WO2005015526A1 (ja) * 2003-08-06 2005-02-17 Fujitsu Limited 楕円曲線暗号装置,楕円曲線暗号方法,楕円曲線暗号プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体
WO2011033672A1 (ja) * 2009-09-18 2011-03-24 株式会社東芝 演算装置、方法およびプログラム

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3796993B2 (ja) 1998-12-22 2006-07-12 株式会社日立製作所 楕円曲線暗号実行方法及び装置並びに記録媒体
FR2828779B1 (fr) * 2001-08-17 2004-01-16 Gemplus Card Int Procede de calcul universel applique a des points d'une courbe elliptique
US7379546B2 (en) * 2004-03-03 2008-05-27 King Fahd University Of Petroleum And Minerals Method for XZ-elliptic curve cryptography
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
US8396213B2 (en) * 2005-01-21 2013-03-12 Certicom Corp. Elliptic curve random number generation
KR100723863B1 (ko) * 2005-11-12 2007-05-31 한국전자통신연구원 랜덤화한 프로베니우스 분해방법을 이용한 차분 공격 방지방법 및 그 장치
JP4513752B2 (ja) * 2006-01-16 2010-07-28 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4682852B2 (ja) * 2006-01-16 2011-05-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
DE102006013515A1 (de) * 2006-03-23 2007-10-04 Siemens Ag Kryptographisches Verfahren mit elliptischen Kurven
US8559625B2 (en) * 2007-08-07 2013-10-15 Inside Secure Elliptic curve point transformations
US7991162B2 (en) * 2007-09-14 2011-08-02 University Of Ottawa Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields
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
CN101630244B (zh) * 2009-07-28 2012-05-23 哈尔滨工业大学深圳研究生院 一种流水线型椭圆曲线双标量乘法系统及方法
US8509426B1 (en) 2010-12-01 2013-08-13 King Fahd University Of Petroleum And Minerals XZ-elliptic curve cryptography system and method
US8699701B2 (en) 2010-12-01 2014-04-15 King Fahd University Method of performing XZ-elliptic curve cryptography for use with network security protocols
US8413906B2 (en) 2011-05-22 2013-04-09 King Saud University Countermeasures to secure smart cards
CN102394747B (zh) * 2011-11-23 2015-01-14 上海爱信诺航芯电子科技有限公司 一种快速嵌入明文到椭圆曲线上一点的方法
FR3024808B1 (fr) * 2014-08-05 2016-07-29 Inside Secure Procede de cryptographie sur courbe elliptique comprenant une detection d’erreur
WO2016034912A1 (en) 2014-09-05 2016-03-10 Umm Al-Qura University Method and apparatus for scalar multiplication secure against differential power attacks
US9645794B2 (en) * 2014-09-23 2017-05-09 Texas Instruments Incorporated Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography
FR3033965B1 (fr) * 2015-03-18 2018-12-07 Maxim Integrated Products, Inc. Systèmes et procédés de commande de dispositifs de cryptage sur courbe elliptique sécurisés
US10181944B2 (en) 2015-06-16 2019-01-15 The Athena Group, Inc. Minimizing information leakage during modular exponentiation and elliptic curve point multiplication
EP3208789B1 (en) * 2016-02-22 2020-08-05 Eshard Method of protecting a circuit against a side-channel analysis
US11146397B2 (en) * 2017-10-31 2021-10-12 Micro Focus Llc Encoding abelian variety-based ciphertext with metadata

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307935B1 (en) * 1991-09-17 2001-10-23 Apple Computer, Inc. Method and apparatus for fast elliptic encryption with direct embedding
US5497423A (en) * 1993-06-18 1996-03-05 Matsushita Electric Industrial Co., Ltd. Method of implementing elliptic curve cryptosystems in digital signatures or verification and privacy communication
WO1996004602A1 (en) * 1994-07-29 1996-02-15 Certicom Corp. Elliptic curve encryption systems

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005008955A1 (ja) * 2003-07-22 2005-01-27 Fujitsu Limited 個人鍵を用いた耐タンパ暗号処理
JPWO2005008955A1 (ja) * 2003-07-22 2006-09-07 富士通株式会社 個人鍵を用いた耐タンパ暗号処理
JP4632950B2 (ja) * 2003-07-22 2011-02-16 富士通株式会社 個人鍵を用いた耐タンパ暗号処理
WO2005015526A1 (ja) * 2003-08-06 2005-02-17 Fujitsu Limited 楕円曲線暗号装置,楕円曲線暗号方法,楕円曲線暗号プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体
US7639808B2 (en) 2003-08-06 2009-12-29 Fujitsu Limited Elliptic curve cryptosystem apparatus, elliptic curve cryptosystem method, elliptic curve cryptosystem program and computer readable recording medium storing the elliptic curve cryptosystem program
WO2011033672A1 (ja) * 2009-09-18 2011-03-24 株式会社東芝 演算装置、方法およびプログラム
JP5323196B2 (ja) * 2009-09-18 2013-10-23 株式会社東芝 演算装置、方法およびプログラム
US8924448B2 (en) 2009-09-18 2014-12-30 Kabushiki Kaisha Toshiba Arithmetic device, method, and program product

Also Published As

Publication number Publication date
WO2000059156A1 (fr) 2000-10-05
AU3296500A (en) 2000-10-16
FR2791497B1 (fr) 2001-05-18
DE60042448D1 (de) 2009-08-06
ES2331456T3 (es) 2010-01-05
EP1166494B1 (fr) 2009-06-24
US7162033B1 (en) 2007-01-09
CN1345495A (zh) 2002-04-17
EP1166494A1 (fr) 2002-01-02
ATE434879T1 (de) 2009-07-15
MXPA01009498A (es) 2002-06-04
FR2791497A1 (fr) 2000-09-29

Similar Documents

Publication Publication Date Title
JP2002540483A (ja) 楕円曲線型公開鍵暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法
US7764785B2 (en) Method for communicating securely over an insecure communication channel
US6876745B1 (en) Method and apparatus for elliptic curve cryptography and recording medium therefore
US7864951B2 (en) Scalar multiplication method with inherent countermeasures
US7536011B2 (en) Tamper-proof elliptic encryption with private key
US20070177721A1 (en) Tamper-proof elliptic encryption with private key
US6914986B2 (en) Countermeasure method in an electronic component using a public key cryptography algorithm on an elliptic curve
US20080260143A1 (en) Xz-elliptic curve cryptography with secret key embedding
JP2007510947A (ja) 多数当事者の効率的な乗算のための方法及び装置
KR20150107784A (ko) 스칼라 또는 멱수와의 곱셈 연산을 포함하는 암호화 방법
JP2002540484A (ja) 楕円曲線型の公開鍵暗号化アルゴリズムを用いる電子構成部品における対抗措置方法
EP0952697B1 (en) Elliptic curve encryption method and system
US20040228478A1 (en) Countermeasure method in an electronic component using a public key cryptographic algorithm on an elliptic curve
US20030044014A1 (en) Method for scrambling a calculation with a secret quantity
JP7155173B2 (ja) 外部監視攻撃からモジュラーインバージョン演算を保護すること
CN100403674C (zh) 使用rsa类型公开密钥加密算法的电子部件中的对策方法
Berbain et al. Efficient implementations of multivariate quadratic systems
JP4875686B2 (ja) 楕円曲線上の有限体演算の加速方法
Vincent et al. A Novel and efficient public key encryption algorithm
US7401226B2 (en) Public key cryptographic method based on braid groups
JP3878853B2 (ja) 公開鍵暗号アルゴリズムを用いる電子構成品におけるモジュラべき乗演算アルゴリズム
US20060282491A1 (en) Method for countermeasuring by masking the accumulators in an electronic component while using a public key cryptographic algorithm
Smart Physical side‐channel attacks on cryptographic systems
JP4598269B2 (ja) 楕円曲線上の高速有限体演算
Ding et al. Cryptanalysis of an implementation scheme of the tamed transformation method cryptosystem

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040706

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20041006

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20041014

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050412