JP2000187438A - 楕円曲線暗号実行方法及び装置並びに記録媒体 - Google Patents
楕円曲線暗号実行方法及び装置並びに記録媒体Info
- Publication number
- JP2000187438A JP2000187438A JP10364277A JP36427798A JP2000187438A JP 2000187438 A JP2000187438 A JP 2000187438A JP 10364277 A JP10364277 A JP 10364277A JP 36427798 A JP36427798 A JP 36427798A JP 2000187438 A JP2000187438 A JP 2000187438A
- Authority
- JP
- Japan
- Prior art keywords
- elliptic curve
- coordinate
- point
- coordinates
- storing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/005—Countermeasures against attacks on cryptographic mechanisms for timing attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7228—Random curve mapping, e.g. mapping to an isomorphous or projective curve
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Complex Calculations (AREA)
- Storage Device Security (AREA)
Abstract
(57)【要約】
【課題】楕円曲線暗号処理を実行する方法は知られてい
たが、楕円曲線暗号のデータ復号化処理では、与えられ
た楕円曲線上の点(x,y)の秘密鍵dから、(x,
y)のスカラー倍演算d(x,y)を行う。 dの偏差
情報をもれないスカラー倍演算方法で高速な方法を与え
る。 【解決手段】次の手段を用いる。 (1)dのビットあたり一定の乗算回数でスカラー倍演
算d(x,y)を求める方法を与える。 (2)スカラー倍d(x,y)を計算する場合、このア
フィン座標(x,y)を射影座標する際に、乱数kを生
成し、(x,y)→[kx, ky, k]または
(x,y)→[k2x, k3y, k]に変換する。
このことにより、素体の演算対象が乱数によって変更す
る方法を与える。
たが、楕円曲線暗号のデータ復号化処理では、与えられ
た楕円曲線上の点(x,y)の秘密鍵dから、(x,
y)のスカラー倍演算d(x,y)を行う。 dの偏差
情報をもれないスカラー倍演算方法で高速な方法を与え
る。 【解決手段】次の手段を用いる。 (1)dのビットあたり一定の乗算回数でスカラー倍演
算d(x,y)を求める方法を与える。 (2)スカラー倍d(x,y)を計算する場合、このア
フィン座標(x,y)を射影座標する際に、乱数kを生
成し、(x,y)→[kx, ky, k]または
(x,y)→[k2x, k3y, k]に変換する。
このことにより、素体の演算対象が乱数によって変更す
る方法を与える。
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータネッ
トワークにおいてセキュリティを確保する技術に係り、
特に楕円曲線暗号を実行する方法及び装置並びに記録媒
体に関する。
トワークにおいてセキュリティを確保する技術に係り、
特に楕円曲線暗号を実行する方法及び装置並びに記録媒
体に関する。
【0002】
【従来の技術】楕円曲線暗号は、V.Miller, N.Koblitz
両氏によって、独立に発明された公開鍵暗号である。公
開鍵暗号技術において安全上からの要請として、他人に
公開される公開鍵から、それに対応する秘密鍵を発見す
ることが事実上不可能であることが求められる。その一
方で、秘密鍵暗号方式に比べて基本的に暗号化や復号化
に時間のかかる公開鍵暗号方式において、暗号化や復号
化におけるより高速のものが求められている状況にあ
る。このように、安全性と高速性という、ある意味で背
反的な要請を実現する公開鍵暗号技術として、従来から
のRSA暗号やエルガマル暗号に比べてより上述の性質
を有する楕円曲線暗号が注目されてきている。
両氏によって、独立に発明された公開鍵暗号である。公
開鍵暗号技術において安全上からの要請として、他人に
公開される公開鍵から、それに対応する秘密鍵を発見す
ることが事実上不可能であることが求められる。その一
方で、秘密鍵暗号方式に比べて基本的に暗号化や復号化
に時間のかかる公開鍵暗号方式において、暗号化や復号
化におけるより高速のものが求められている状況にあ
る。このように、安全性と高速性という、ある意味で背
反的な要請を実現する公開鍵暗号技術として、従来から
のRSA暗号やエルガマル暗号に比べてより上述の性質
を有する楕円曲線暗号が注目されてきている。
【0003】楕円曲線暗号は、有限素体上の楕円曲線の
標準形y2=x3+ax+b(4a3+27b2≠0)
や2の拡大体上の楕円曲線の標準形y2+xy=x3+
ax 2+b(b≠0)で表される。この曲線上の点に、
無限遠点を加えると、アーベル群が成立する。このアー
ベル群演算を+記号で表現する。相異なるX,Y間の演
算をX+Yを加算演算と呼ぶ。また、X+Xを2倍演算
と呼び、2Xと表現する。
標準形y2=x3+ax+b(4a3+27b2≠0)
や2の拡大体上の楕円曲線の標準形y2+xy=x3+
ax 2+b(b≠0)で表される。この曲線上の点に、
無限遠点を加えると、アーベル群が成立する。このアー
ベル群演算を+記号で表現する。相異なるX,Y間の演
算をX+Yを加算演算と呼ぶ。また、X+Xを2倍演算
と呼び、2Xと表現する。
【0004】かかる楕円曲線は、その計算を容易にする
ためにアフィン座標における楕円曲線上の点(X,Y)
を射影座標で表現することもある。任意のλ≠0につい
て,[X,Y,Z]= [λ2X,λ3Y,λZ]とな
る射影座標を考えると、アフィン座標とこの射影座標の
対応は以下で与えられる。すなわち、アフィン座標
(x,y)は、射影座標[x,y,1]で表現され、射
影座標[X,Y,Z]は、アフィン座標(X/
(Z)2,Y/(Z)3 )となる。また、射影座標に
おいて−[X,Y,Z]=[X,−Y,Z]である。
ためにアフィン座標における楕円曲線上の点(X,Y)
を射影座標で表現することもある。任意のλ≠0につい
て,[X,Y,Z]= [λ2X,λ3Y,λZ]とな
る射影座標を考えると、アフィン座標とこの射影座標の
対応は以下で与えられる。すなわち、アフィン座標
(x,y)は、射影座標[x,y,1]で表現され、射
影座標[X,Y,Z]は、アフィン座標(X/
(Z)2,Y/(Z)3 )となる。また、射影座標に
おいて−[X,Y,Z]=[X,−Y,Z]である。
【0005】楕円曲線暗号は、有限体上の楕円曲線を用
いて、その有限体となる点の集合を用いる。また、楕円
曲線の位数は、楕円曲線の点の数である。以下、Pをs
回加算(P+P+…+P)した結果をPのs倍点とい
い、これを求める演算をsPと書くと、楕円曲線上の点
Pの位数は、nP=0,1<=m<n,mP ≠0とな
るnである112となる。
いて、その有限体となる点の集合を用いる。また、楕円
曲線の位数は、楕円曲線の点の数である。以下、Pをs
回加算(P+P+…+P)した結果をPのs倍点とい
い、これを求める演算をsPと書くと、楕円曲線上の点
Pの位数は、nP=0,1<=m<n,mP ≠0とな
るnである112となる。
【0006】楕円曲線暗号の鍵は、楕円曲線、ベースポ
イント、公開鍵、秘密鍵から構成され、具体的には、楕
円曲線の係数a,b、位数が素数である点P(ベースポ
イント)、有限体要素d(秘密鍵)、ベースポイントの
秘密鍵倍の点Q(公開鍵:Q=dP)である。ここで、
楕円曲線、ベースポイント、公開鍵は公開情報である。
また、公開鍵/秘密鍵は、ユーザ毎に異なる値であり、
楕円曲線、ベースポイントは、ユーザ間共通の値であ
る。
イント、公開鍵、秘密鍵から構成され、具体的には、楕
円曲線の係数a,b、位数が素数である点P(ベースポ
イント)、有限体要素d(秘密鍵)、ベースポイントの
秘密鍵倍の点Q(公開鍵:Q=dP)である。ここで、
楕円曲線、ベースポイント、公開鍵は公開情報である。
また、公開鍵/秘密鍵は、ユーザ毎に異なる値であり、
楕円曲線、ベースポイントは、ユーザ間共通の値であ
る。
【0007】楕円曲線暗号における、データ暗号化、デ
ータ復号化、ディジタル署名作成、ディジタル署名検証
は、任意の点Rのスカラ倍sR演算を用いる。これは、
上記の加算演算と2倍演算の組合せで、求めることがで
きる。ところが、上記の加算演算と2倍演算計算法にお
いては、それぞれ1回の除算が必要であり、一般に有限
体の除算は非常に時間がかかるため、これを避ける方法
が求められる。
ータ復号化、ディジタル署名作成、ディジタル署名検証
は、任意の点Rのスカラ倍sR演算を用いる。これは、
上記の加算演算と2倍演算の組合せで、求めることがで
きる。ところが、上記の加算演算と2倍演算計算法にお
いては、それぞれ1回の除算が必要であり、一般に有限
体の除算は非常に時間がかかるため、これを避ける方法
が求められる。
【0008】文献D.V.Chudnovsky, G.V.Chudnovsky "Se
quences of Numbers Generated byAddition in Formal
Groups and New Primality and Factorization Tests",
Advances in Applied Mathematics, 7, 385-434,1986
によれば、この有限体の除算を避けるため、射影空間
で、加算演算、2倍演算の式を導出している。この場
合、素体乗算と、素体加減算では素体乗算が通常、遥か
に時間がかかるため、素体乗算演算数で、計算時間を評
価できる。この場合、加算演算で、素体乗算(2乗算を
含む)が16回必要である。2倍演算において、10回
必要である、と述べている。また、楕円曲線の係数aに
おいても、a=−3の場合、8回の乗算剰余演算となる
としている。
quences of Numbers Generated byAddition in Formal
Groups and New Primality and Factorization Tests",
Advances in Applied Mathematics, 7, 385-434,1986
によれば、この有限体の除算を避けるため、射影空間
で、加算演算、2倍演算の式を導出している。この場
合、素体乗算と、素体加減算では素体乗算が通常、遥か
に時間がかかるため、素体乗算演算数で、計算時間を評
価できる。この場合、加算演算で、素体乗算(2乗算を
含む)が16回必要である。2倍演算において、10回
必要である、と述べている。また、楕円曲線の係数aに
おいても、a=−3の場合、8回の乗算剰余演算となる
としている。
【0009】また、P.Montgomery,"Speeding the Polla
rd and Elliptic Curve Methods ofFactorization", Ma
thematics of computation Vol.48,No.177,pp.243-264
(1987)によれば、有限素体上の楕円曲線の標準形By2
=x3+Ax2+Bxを用いて、点P0(x0,y
0),P1(x1,y1)の加算をP3(x3,y
3)、減算をP4(x4,y4)、すなわちP1+P0
=P3、P1−P0=P4とするとき、x0,x1,x
4から、x3が高速に求まる。具体的には、素体の乗算
6回で求まるとされている。また、P1の2倍点をP5
(x5,y5)とするとき、x5は、x1のみから求ま
り、乗算5回である。これを利用して、点Rのスカラ倍
(スカラー値d)のx座標を以下のようにRxから求め
ることができる。
rd and Elliptic Curve Methods ofFactorization", Ma
thematics of computation Vol.48,No.177,pp.243-264
(1987)によれば、有限素体上の楕円曲線の標準形By2
=x3+Ax2+Bxを用いて、点P0(x0,y
0),P1(x1,y1)の加算をP3(x3,y
3)、減算をP4(x4,y4)、すなわちP1+P0
=P3、P1−P0=P4とするとき、x0,x1,x
4から、x3が高速に求まる。具体的には、素体の乗算
6回で求まるとされている。また、P1の2倍点をP5
(x5,y5)とするとき、x5は、x1のみから求ま
り、乗算5回である。これを利用して、点Rのスカラ倍
(スカラー値d)のx座標を以下のようにRxから求め
ることができる。
【0010】初期値を[R,2R]、mRをRのm倍の
x座標とするとき、dを2進数展開し、dの上位ビット
から、0の場合は、[mR,(m+1)R]→ [2m
R,(2m+1)R]となり、1の場合は、[mR,
(m+1)R]→[(2m+1)R,2(m+1)R]
となる。尚、(m+1)R−mR=R、(m+1)R+
mR=(2m+1)Rである。
x座標とするとき、dを2進数展開し、dの上位ビット
から、0の場合は、[mR,(m+1)R]→ [2m
R,(2m+1)R]となり、1の場合は、[mR,
(m+1)R]→[(2m+1)R,2(m+1)R]
となる。尚、(m+1)R−mR=R、(m+1)R+
mR=(2m+1)Rである。
【0011】従って、1ビットあたり、6+5=10回
の素体乗算(2乗算を含む)でスカラー倍sPを求める
ことができる。これを以下、モンゴメリ法と呼ぶ。
の素体乗算(2乗算を含む)でスカラー倍sPを求める
ことができる。これを以下、モンゴメリ法と呼ぶ。
【0012】一方、2の拡大体上の楕円曲線の標準形y
2+xy=x3+ax2+b(b≠0)で表される。こ
のスカラー倍演算も、加算演算、2倍演算の組合せで実
現できる。IEEE P1363 / D2 Standard Specification f
or Public Key Cryptography(1998)では、加算演算と2
倍演算規則を与えている。2の拡大体演算では、2乗
算、加減算は相異なる乗算に比べて非常に速く演算でき
るので、(相異なる)乗算回数で評価できる。加算演算
で15回の乗算、2倍演算で5回の乗算が必要となる。
しかし、2の拡大体楕円曲線暗号ではモンゴメリ法を用
いる演算は知られていない。
2+xy=x3+ax2+b(b≠0)で表される。こ
のスカラー倍演算も、加算演算、2倍演算の組合せで実
現できる。IEEE P1363 / D2 Standard Specification f
or Public Key Cryptography(1998)では、加算演算と2
倍演算規則を与えている。2の拡大体演算では、2乗
算、加減算は相異なる乗算に比べて非常に速く演算でき
るので、(相異なる)乗算回数で評価できる。加算演算
で15回の乗算、2倍演算で5回の乗算が必要となる。
しかし、2の拡大体楕円曲線暗号ではモンゴメリ法を用
いる演算は知られていない。
【0013】安全な楕円曲線とするためには、楕円曲線
の位数#E(Fq)が大きな素因数rを持つパラメタ
a,bを設定する必要がある。#E(Fq)=krで、
kは小さな整数、rは大きな素数となる。そのが位数大
きな素因数を持つ楕円曲線のパラメタの設定方法は、例
えば文献Henri Cohen, "A Course in Computational Al
gebraic Number Theory", GTM138, Springer(1993) p.4
64 Atkin's Testで記述されている方法がある。
の位数#E(Fq)が大きな素因数rを持つパラメタ
a,bを設定する必要がある。#E(Fq)=krで、
kは小さな整数、rは大きな素数となる。そのが位数大
きな素因数を持つ楕円曲線のパラメタの設定方法は、例
えば文献Henri Cohen, "A Course in Computational Al
gebraic Number Theory", GTM138, Springer(1993) p.4
64 Atkin's Testで記述されている方法がある。
【0014】次に暗号のアタックと防御について述べ
る。近年、暗号のアタックは、理論的な暗号解読に加
え、消費電流波形を統計的に処理して解読を試みるDP
A(Differential Power Analysis)や暗号処理時間の違
いから統計的に分析し解読を試みるタイミングアタック
等、リーク情報を分析する攻撃とその防御が研究されは
じめている。これらの防御研究の多くは、主にICカー
ドを分析する等のハードウェア回路そのものに防御機能
を組み込むことが中心になっている。
る。近年、暗号のアタックは、理論的な暗号解読に加
え、消費電流波形を統計的に処理して解読を試みるDP
A(Differential Power Analysis)や暗号処理時間の違
いから統計的に分析し解読を試みるタイミングアタック
等、リーク情報を分析する攻撃とその防御が研究されは
じめている。これらの防御研究の多くは、主にICカー
ドを分析する等のハードウェア回路そのものに防御機能
を組み込むことが中心になっている。
【0015】
【発明が解決しようとする課題】上述したように2の拡
大体の楕円曲線暗号ではモンゴメリ法を用いる演算は知
られていない。また、楕円曲線暗号の研究においては、
主に高速な実行方法、暗号解読の観点からの安全な楕円
曲線生成の研究開発が中心であり、リーク情報分析型の
アタックに対する防御開発は行われていない。楕円曲線
暗号のデータ復号化処理では、与えられた楕円曲線上の
点(x,y)の秘密鍵dから、(x,y)のd倍演算d
(x,y)を行う。dの偏差情報を消費電流波形や暗号
処理時間に洩れる場合DPAやタイミングアタックへの
手がかりを与えてしまう。本発明の第1の目的は、楕円
曲線がy2+xy=x3+ax2+b(b≠0)であ
る、2の拡大体上の楕円曲線暗号を高速に演算する方法
及び装置を提供することにある。また、本発明の第2の
目的は、楕円曲線暗号においてタイミングアタックやD
PAによる攻撃を防御するための、処理時間の偏差情報
から秘密鍵情報がもれない方法を提供することにある。
大体の楕円曲線暗号ではモンゴメリ法を用いる演算は知
られていない。また、楕円曲線暗号の研究においては、
主に高速な実行方法、暗号解読の観点からの安全な楕円
曲線生成の研究開発が中心であり、リーク情報分析型の
アタックに対する防御開発は行われていない。楕円曲線
暗号のデータ復号化処理では、与えられた楕円曲線上の
点(x,y)の秘密鍵dから、(x,y)のd倍演算d
(x,y)を行う。dの偏差情報を消費電流波形や暗号
処理時間に洩れる場合DPAやタイミングアタックへの
手がかりを与えてしまう。本発明の第1の目的は、楕円
曲線がy2+xy=x3+ax2+b(b≠0)であ
る、2の拡大体上の楕円曲線暗号を高速に演算する方法
及び装置を提供することにある。また、本発明の第2の
目的は、楕円曲線暗号においてタイミングアタックやD
PAによる攻撃を防御するための、処理時間の偏差情報
から秘密鍵情報がもれない方法を提供することにある。
【0016】
【課題を解決するための手段】本発明の第1の目的は、
楕円曲線がy2+xy=x3+ax2+b(b≠0)で
ある、2の拡大体上の楕円曲線暗号の実行方法であっ
て、各座標成分が前記楕円曲線上の点である点P1(x
1,y1),P2(x2,y2)の加算をP3(x3,
y3)とし、点P1(x1,y1),P2(x2,y
2)の減算をP4(x4,y4)とした場合、前記x1
を入力するステップと、前記入力されたx1を射影空間
のX座標、Z座標[X1,Z1]に変換するステップ
と、前記射影空間の座標[X1,Z1]を記憶するステ
ップと、前記x2を[X2,Z2]に変換するステップ
と、前記[X2,Z2]を記憶するステップと、前記x
4を[X4,Z4]に変換するステップと、前記
[X4,Z4]を記憶するステップと、前記記憶された
[X1,Z1],[X2 ,Z2],[X4,Z4]か
ら[X3,Z3]を求めるステップと、前記[X3,Z
3]からx3に変換するステップと、前記x3を出力す
るステップとからなり、点P1(x1,y1)のスカラ
ー倍を計算することにより達成される。また、記憶され
た[X1,Z1],[X2,Z2],[X4,Z4]か
らx3に変換できる[X3,Z3]を求めるステップに
は、B=X1Z2 2+X2Z1 2を計算するステップ
と、前記計算されたBを記憶するステップと、前記記憶
されたBをB=0であるか否かをを判別するステップ
と、B=0の場合は無限遠点を出力し、B=0でない場
合はZ3=Z4Bを計算するステップと、前記計算され
たZ3を記憶するステップと、前記記憶されたZ3から
X3=X4Z3 2+X1X2Z1 2Z2 2Z4 2を計算
するステップとを有することにより達成される。
楕円曲線がy2+xy=x3+ax2+b(b≠0)で
ある、2の拡大体上の楕円曲線暗号の実行方法であっ
て、各座標成分が前記楕円曲線上の点である点P1(x
1,y1),P2(x2,y2)の加算をP3(x3,
y3)とし、点P1(x1,y1),P2(x2,y
2)の減算をP4(x4,y4)とした場合、前記x1
を入力するステップと、前記入力されたx1を射影空間
のX座標、Z座標[X1,Z1]に変換するステップ
と、前記射影空間の座標[X1,Z1]を記憶するステ
ップと、前記x2を[X2,Z2]に変換するステップ
と、前記[X2,Z2]を記憶するステップと、前記x
4を[X4,Z4]に変換するステップと、前記
[X4,Z4]を記憶するステップと、前記記憶された
[X1,Z1],[X2 ,Z2],[X4,Z4]か
ら[X3,Z3]を求めるステップと、前記[X3,Z
3]からx3に変換するステップと、前記x3を出力す
るステップとからなり、点P1(x1,y1)のスカラ
ー倍を計算することにより達成される。また、記憶され
た[X1,Z1],[X2,Z2],[X4,Z4]か
らx3に変換できる[X3,Z3]を求めるステップに
は、B=X1Z2 2+X2Z1 2を計算するステップ
と、前記計算されたBを記憶するステップと、前記記憶
されたBをB=0であるか否かをを判別するステップ
と、B=0の場合は無限遠点を出力し、B=0でない場
合はZ3=Z4Bを計算するステップと、前記計算され
たZ3を記憶するステップと、前記記憶されたZ3から
X3=X4Z3 2+X1X2Z1 2Z2 2Z4 2を計算
するステップとを有することにより達成される。
【0017】本発明の第2の目的は、2の拡大体上の楕
円曲線暗号の復号化処理時間において、処理時間の偏差
情報から秘密鍵情報がもれない方法、すなわち楕円曲線
がy2+xy=x3+ax2+bである、2の拡大体上
の楕円曲線暗号の実行方法であって、各座標成分が前記
楕円曲線上の点である点P1(x1,y1),P2(x
2,y2)の加算をP3(x3,y3)とし、点P1
(x1,y1),P2(x2,y2)の減算をP4(x
4,y4)とした場合、前記x1を入力するステップ
と、前記入力されたx1を射影空間のX座標、Z座標
[X1,Z1]に変換するステップと、前記射影空間の
座標[X1,Z1]を記憶するステップと、前記x2を
[X2,Z2]に変換するステップと、前記[X2,Z
2]を記憶するステップと、前記x4を[X4,Z4]
に変換するステップと、前記[X4,Z4]を記憶する
ステップと、前記記憶された[X1,Z1],[X
2 ,Z2],[X4,Z4]から[X3,Z3]を求
めるステップと、前記[X3,Z3]からx3に変換す
るステップと、前記x3を出力するステップの他、さら
に乱数kを生成するステップと、前記生成された乱数k
を記憶するステップと、x座標を射影座標に変換した
後、射影空間の各座標成分と前記記憶された乱数kと演
算させて、射影座標[k2x,k]に変換するステップ
とを有することにより達成される。すなわち、2の拡大
体の演算対象が乱数によって常に変更する方法を用い
る。
円曲線暗号の復号化処理時間において、処理時間の偏差
情報から秘密鍵情報がもれない方法、すなわち楕円曲線
がy2+xy=x3+ax2+bである、2の拡大体上
の楕円曲線暗号の実行方法であって、各座標成分が前記
楕円曲線上の点である点P1(x1,y1),P2(x
2,y2)の加算をP3(x3,y3)とし、点P1
(x1,y1),P2(x2,y2)の減算をP4(x
4,y4)とした場合、前記x1を入力するステップ
と、前記入力されたx1を射影空間のX座標、Z座標
[X1,Z1]に変換するステップと、前記射影空間の
座標[X1,Z1]を記憶するステップと、前記x2を
[X2,Z2]に変換するステップと、前記[X2,Z
2]を記憶するステップと、前記x4を[X4,Z4]
に変換するステップと、前記[X4,Z4]を記憶する
ステップと、前記記憶された[X1,Z1],[X
2 ,Z2],[X4,Z4]から[X3,Z3]を求
めるステップと、前記[X3,Z3]からx3に変換す
るステップと、前記x3を出力するステップの他、さら
に乱数kを生成するステップと、前記生成された乱数k
を記憶するステップと、x座標を射影座標に変換した
後、射影空間の各座標成分と前記記憶された乱数kと演
算させて、射影座標[k2x,k]に変換するステップ
とを有することにより達成される。すなわち、2の拡大
体の演算対象が乱数によって常に変更する方法を用い
る。
【0018】また、乱数kを生成するステップと、前記
生成された乱数kを記憶するステップと、x座標を射影
座標に変換した後、射影空間の各座標成分と前記記憶さ
れた乱数kと演算させて、射影座標[kx,k]に変換
するステップとを有することにより達成される。また、
楕円曲線がy2+xy=x3+ax2+bである、2の
拡大体上の楕円曲線暗号の演算装置であって、乱数kを
生成する乱数生成部と、2の拡大体上の座標x0と前記
乱数kとを入力し、射影座標[kx0,k]=[X1,
Z1]に変換する射影座標変換部と、前記[X1,
Z1]から2倍点を演算し出力する2倍演算部と、前記
[X1,Z1]から加算点を求め出力する加算演算部
と、前記射影座標変換部と前記2倍演算部と前記加算演
算部からの情報を得て、座標x0をスカラー倍するスカ
ラー倍部とを有することにより達成される。
生成された乱数kを記憶するステップと、x座標を射影
座標に変換した後、射影空間の各座標成分と前記記憶さ
れた乱数kと演算させて、射影座標[kx,k]に変換
するステップとを有することにより達成される。また、
楕円曲線がy2+xy=x3+ax2+bである、2の
拡大体上の楕円曲線暗号の演算装置であって、乱数kを
生成する乱数生成部と、2の拡大体上の座標x0と前記
乱数kとを入力し、射影座標[kx0,k]=[X1,
Z1]に変換する射影座標変換部と、前記[X1,
Z1]から2倍点を演算し出力する2倍演算部と、前記
[X1,Z1]から加算点を求め出力する加算演算部
と、前記射影座標変換部と前記2倍演算部と前記加算演
算部からの情報を得て、座標x0をスカラー倍するスカ
ラー倍部とを有することにより達成される。
【0019】また、楕円曲線がy2+xy=x3+ax
2+bである、2の拡大体上の楕円曲線暗号の実行方法
を格納した記録媒体であって、前記楕円曲線暗号の実行
方法は以下を含むことにより達成される。すなわち、各
座標成分が前記楕円曲線上の点である点P1(x1,y
1),P2(x2,y2)の加算をP3(x3,y3)
とし、点P1(x1,y1),P2(x2,y2)の減
算をP4(x4,y4)とした場合、前記x1を入力す
るステップと、前記入力されたx1を射影空間のX座
標、Z座標[X1,Z1]に変換するステップと、前記
射影空間の座標[X1,Z1]を記憶するステップと、
前記x2を[X2,Z2]に変換するステップと、前記
[X2,Z2]を記憶するステップと、前記x4を[X
4,Z4]に変換するステップと、前記[X4,Z4]
を記憶するステップと、前記記憶された[X1,
Z1],[X2 ,Z2],[X4,Z4]から
[X3,Z3]を求めるステップと、前記[X3,
Z3]からx3に変換するステップと、前記x3を出力
するステップとからなり、点P1(x1,y1)のスカ
ラー倍を計算する。
2+bである、2の拡大体上の楕円曲線暗号の実行方法
を格納した記録媒体であって、前記楕円曲線暗号の実行
方法は以下を含むことにより達成される。すなわち、各
座標成分が前記楕円曲線上の点である点P1(x1,y
1),P2(x2,y2)の加算をP3(x3,y3)
とし、点P1(x1,y1),P2(x2,y2)の減
算をP4(x4,y4)とした場合、前記x1を入力す
るステップと、前記入力されたx1を射影空間のX座
標、Z座標[X1,Z1]に変換するステップと、前記
射影空間の座標[X1,Z1]を記憶するステップと、
前記x2を[X2,Z2]に変換するステップと、前記
[X2,Z2]を記憶するステップと、前記x4を[X
4,Z4]に変換するステップと、前記[X4,Z4]
を記憶するステップと、前記記憶された[X1,
Z1],[X2 ,Z2],[X4,Z4]から
[X3,Z3]を求めるステップと、前記[X3,
Z3]からx3に変換するステップと、前記x3を出力
するステップとからなり、点P1(x1,y1)のスカ
ラー倍を計算する。
【0020】また、上述した2の拡大体上の楕円曲線暗
号の実行方法は、素体上の楕円曲線暗号の復号化処理時
間において、処理時間の偏差情報から秘密鍵情報がもれ
ない方法としても適用可能である。素体上の楕円曲線暗
号において、上記課題(2)を解決するため、次の
(a),(b)を組合わせる。次の(a),(b)を組
合わせる。(a)楕円曲線のスカラー倍d(x,y)に
おいて、素体上の楕円曲線の標準形By2=x3+Ax
2+Bxの場合、モンゴメリのスカラー倍を用いる。
(b)スカラー倍d(x,y)を計算する場合、このア
フィン座標(x,y)を射影座標する際に、乱数kを生
成し、(x,y)→[kx,ky,k]または(x,
y)→[k2x,k3y,k]に変換する。このことに
より、素体の演算対象が乱数によって常に変更する方法
を用いる。
号の実行方法は、素体上の楕円曲線暗号の復号化処理時
間において、処理時間の偏差情報から秘密鍵情報がもれ
ない方法としても適用可能である。素体上の楕円曲線暗
号において、上記課題(2)を解決するため、次の
(a),(b)を組合わせる。次の(a),(b)を組
合わせる。(a)楕円曲線のスカラー倍d(x,y)に
おいて、素体上の楕円曲線の標準形By2=x3+Ax
2+Bxの場合、モンゴメリのスカラー倍を用いる。
(b)スカラー倍d(x,y)を計算する場合、このア
フィン座標(x,y)を射影座標する際に、乱数kを生
成し、(x,y)→[kx,ky,k]または(x,
y)→[k2x,k3y,k]に変換する。このことに
より、素体の演算対象が乱数によって常に変更する方法
を用いる。
【0021】
【発明の実施の形態】2の拡大体上の楕円曲線の標準形
y2+xy=x3+ax2+b(b≠0)のアフィン座
標における演算規則を以下に示す。
y2+xy=x3+ax2+b(b≠0)のアフィン座
標における演算規則を以下に示す。
【0022】1)0+0=0 2)(x,y)+0=(x,y) 3)(x,y)+(x,x+y)=0 4)可換性(x0,y0)+(x1,y1)=(x1,
y1)+(x0,y0) 5)加算演算(x2,y2)=(x1,y1)+(x
0,y0)x2=a+λ2+λ+x0+x1; y2=
λ(x1+x2)+x2+y1;λ=(y0+y1)/
(x0+x1) 6)2倍演算(x2,y2)=(x1,y1)+(x
1,y1)=2(x1,y1)x2=a+λ2+λ;y
2=λ(x1+x2)+x2+y1;λ=x1+(y1
/x1) または、x2=(x1)2+b/(x1)2 かかる楕円曲線は、その計算を容易にするためにアフィ
ン座標における楕円曲線上の点(X,Y)を射影座標で
表現することもある。任意のλ≠0について,[X,
Y,Z]=[λ2X,λ3Y,λZ]となる射影座標を
考えると、アフィン座標とこの射影座標の対応は以下で
与えられる。すなわち、アフィン座標(x,y)は、射
影座標[x,y,1]で表現され、射影座標[X,Y,
Z]は、アフィン座標(X/(Z)2,Y/(Z)3)
となる。また、射影座標において−[X,Y,Z]=
[X,XZ+Y,Z]である。
y1)+(x0,y0) 5)加算演算(x2,y2)=(x1,y1)+(x
0,y0)x2=a+λ2+λ+x0+x1; y2=
λ(x1+x2)+x2+y1;λ=(y0+y1)/
(x0+x1) 6)2倍演算(x2,y2)=(x1,y1)+(x
1,y1)=2(x1,y1)x2=a+λ2+λ;y
2=λ(x1+x2)+x2+y1;λ=x1+(y1
/x1) または、x2=(x1)2+b/(x1)2 かかる楕円曲線は、その計算を容易にするためにアフィ
ン座標における楕円曲線上の点(X,Y)を射影座標で
表現することもある。任意のλ≠0について,[X,
Y,Z]=[λ2X,λ3Y,λZ]となる射影座標を
考えると、アフィン座標とこの射影座標の対応は以下で
与えられる。すなわち、アフィン座標(x,y)は、射
影座標[x,y,1]で表現され、射影座標[X,Y,
Z]は、アフィン座標(X/(Z)2,Y/(Z)3)
となる。また、射影座標において−[X,Y,Z]=
[X,XZ+Y,Z]である。
【0023】以下、本発明の実施例を図面を用いて具体
的に説明する。図10は、楕円曲線暗号システムの構成
図である。入出力インターフェース1001は暗号化す
る平文を入力するキーボード等の入力装置、復号化した
平文を出力するディスプレー、プリンタ等の出力装置、
平文を記憶するメモリ等の記憶装置などである。暗号化
部1002は、楕円曲線生成部1003で生成された楕
円曲線と、公開鍵、暗号鍵生成部1004からの鍵とを
入力し、平文を暗号化する。ここで、公開鍵、暗号鍵は
対になっており、どちらの鍵を暗号化部1002、復号
化部1006に与えるかは暗号システムの用途、即ち、
秘密通信に用いるか、署名・認証と呼ばれる通信に用い
るか等で使い分ける。暗号化された暗号文は接続インタ
ーフェース1005から送信される。復号化部1006
は、暗号文を復号化し平文にする。
的に説明する。図10は、楕円曲線暗号システムの構成
図である。入出力インターフェース1001は暗号化す
る平文を入力するキーボード等の入力装置、復号化した
平文を出力するディスプレー、プリンタ等の出力装置、
平文を記憶するメモリ等の記憶装置などである。暗号化
部1002は、楕円曲線生成部1003で生成された楕
円曲線と、公開鍵、暗号鍵生成部1004からの鍵とを
入力し、平文を暗号化する。ここで、公開鍵、暗号鍵は
対になっており、どちらの鍵を暗号化部1002、復号
化部1006に与えるかは暗号システムの用途、即ち、
秘密通信に用いるか、署名・認証と呼ばれる通信に用い
るか等で使い分ける。暗号化された暗号文は接続インタ
ーフェース1005から送信される。復号化部1006
は、暗号文を復号化し平文にする。
【0024】図1は、楕円曲線暗号システムにおける処
理の流れを示す図である。楕円曲線生成部101では楕
円曲線暗号に使用する楕円曲線を生成する。公開鍵/秘
密鍵生成部102では、楕円曲線生成部101で生成し
た楕円曲線を入力し、これに基づいて公開鍵115と秘
密鍵116を生成する。暗号化部103では、平文11
3、公開鍵115、楕円曲線を入力して暗号文112を
出力する。復号化部104では、暗号文112、秘密鍵
116、楕円曲線を入力し、平文114を出力するが、
ここで出力する平文114は平文113と内容が同じも
のである。
理の流れを示す図である。楕円曲線生成部101では楕
円曲線暗号に使用する楕円曲線を生成する。公開鍵/秘
密鍵生成部102では、楕円曲線生成部101で生成し
た楕円曲線を入力し、これに基づいて公開鍵115と秘
密鍵116を生成する。暗号化部103では、平文11
3、公開鍵115、楕円曲線を入力して暗号文112を
出力する。復号化部104では、暗号文112、秘密鍵
116、楕円曲線を入力し、平文114を出力するが、
ここで出力する平文114は平文113と内容が同じも
のである。
【0025】楕円曲線生成部101では以下の手順で楕
円曲線を生成する。原始多項式(primitive polynomial
s)設定105では、素体F2上の原始多項式f(x)を
設定する。例えば、素体F2上の原始多項式は、A.Mene
zes, P.Oorschot, S.Vanstone, "Handbook of Applied
Cryptography", CRC Press(1996)の第4.5.3 Primitive
polynomialsに記述されている。
円曲線を生成する。原始多項式(primitive polynomial
s)設定105では、素体F2上の原始多項式f(x)を
設定する。例えば、素体F2上の原始多項式は、A.Mene
zes, P.Oorschot, S.Vanstone, "Handbook of Applied
Cryptography", CRC Press(1996)の第4.5.3 Primitive
polynomialsに記述されている。
【0026】楕円曲線パラメタ設定106は、2の拡大
体Fqを定義体とする楕円曲線y2+xy=x3+ax
2+bのパラメタa,bを設定する。安全な楕円曲線と
するためには、楕円曲線の位数#E(Fq)が大きな素
因数rを持つ必要がある。#E(Fq)=krの場合、
kを小さな整数とすることによって、rは大きな素数と
なる。大きな素因数rを位数に持つ楕円曲線を生成する
方法として、文献Henri Cohen, "A Course in Computat
ional Algebraic Number Theory",GTM138, Springer(19
93) p.464 Atkin's Testで記述されている方法がある。
なお、他の楕円曲線の位数が大きな素因数rを持つ楕円
曲線パラメタ設定法を用いても本発明の実施は可能であ
る。
体Fqを定義体とする楕円曲線y2+xy=x3+ax
2+bのパラメタa,bを設定する。安全な楕円曲線と
するためには、楕円曲線の位数#E(Fq)が大きな素
因数rを持つ必要がある。#E(Fq)=krの場合、
kを小さな整数とすることによって、rは大きな素数と
なる。大きな素因数rを位数に持つ楕円曲線を生成する
方法として、文献Henri Cohen, "A Course in Computat
ional Algebraic Number Theory",GTM138, Springer(19
93) p.464 Atkin's Testで記述されている方法がある。
なお、他の楕円曲線の位数が大きな素因数rを持つ楕円
曲線パラメタ設定法を用いても本発明の実施は可能であ
る。
【0027】ベースポイント生成部107は、楕円曲線
上のアーベル群において、上記rを位数とする部分巡回
群の生成元を求める。例えば、#E(Fq)=krの場
合は、第1のステップでE(Fq)上の任意の点(x
1,y1)を求める。次に第2のステップでr(x1,
y1)=0かつk(x1,y1)≠0の場合、G=(x
1,y1)をベースポイントとする。他の場合は、第1
のステップへ戻る。
上のアーベル群において、上記rを位数とする部分巡回
群の生成元を求める。例えば、#E(Fq)=krの場
合は、第1のステップでE(Fq)上の任意の点(x
1,y1)を求める。次に第2のステップでr(x1,
y1)=0かつk(x1,y1)≠0の場合、G=(x
1,y1)をベースポイントとする。他の場合は、第1
のステップへ戻る。
【0028】ここで、r(x1,y1)は、(x1,y
1)のスカラー倍(r倍)演算を実行するという意味で
ある。スカラー倍(r倍)演算については楕円曲線演算
部109で説明する。
1)のスカラー倍(r倍)演算を実行するという意味で
ある。スカラー倍(r倍)演算については楕円曲線演算
部109で説明する。
【0029】以上、楕円曲線生成部101により、原始
多項式f(x)、楕円曲線y2+xy=x3+ax2+
bのパラメタa,b、ベースポイントG、ベースポイン
トの位数rを生成した。これらは公開する情報である。
多項式f(x)、楕円曲線y2+xy=x3+ax2+
bのパラメタa,b、ベースポイントG、ベースポイン
トの位数rを生成した。これらは公開する情報である。
【0030】次に公開鍵/秘密鍵生成部102は、以下
の手順で公開鍵と秘密鍵を生成する。入力を原始多項式
f(x)、楕円曲線y2+xy=x3+ax2+bのパ
ラメタa,b、ベースポイントGとし、出力を公開鍵
Q、秘密鍵dとすると、第1のステップで乱数2<d<
r−1を生成し、第2のステップでQ= dGすなわち
Gのスカラ倍(d倍)点を求める。
の手順で公開鍵と秘密鍵を生成する。入力を原始多項式
f(x)、楕円曲線y2+xy=x3+ax2+bのパ
ラメタa,b、ベースポイントGとし、出力を公開鍵
Q、秘密鍵dとすると、第1のステップで乱数2<d<
r−1を生成し、第2のステップでQ= dGすなわち
Gのスカラ倍(d倍)点を求める。
【0031】公開鍵は、公開する情報であり、秘密鍵は
秘密にする情報である。Q,Gからdを求める問題は、
離散対数問題といわれるものであり、楕円曲線におい
て、ベースポイントの位数rのビット長の指数オーダの
計算量を必要とする。このため、rが大きな素数であれ
ば例えば、r>2の159乗をとれば、事実上、Q,G
からdを求めることはできなくなる。これが楕円曲線暗
号の原理である。なお、Qを計算する方法は、従来技術
文献 D.V.Chudnovsky, G.V.Chudnovsky "Sequences of
Numbers Generated by Addition in Formal Groups an
d New Primalityand Factorization Tests", Advances
in Applied Mathematics, 7, 385-434,1986で記載され
ている方法で求めることができる。
秘密にする情報である。Q,Gからdを求める問題は、
離散対数問題といわれるものであり、楕円曲線におい
て、ベースポイントの位数rのビット長の指数オーダの
計算量を必要とする。このため、rが大きな素数であれ
ば例えば、r>2の159乗をとれば、事実上、Q,G
からdを求めることはできなくなる。これが楕円曲線暗
号の原理である。なお、Qを計算する方法は、従来技術
文献 D.V.Chudnovsky, G.V.Chudnovsky "Sequences of
Numbers Generated by Addition in Formal Groups an
d New Primalityand Factorization Tests", Advances
in Applied Mathematics, 7, 385-434,1986で記載され
ている方法で求めることができる。
【0032】次に、暗号化部103では、以下の手順で
平文113を暗号文114に変換する。入力を平文M、
公開鍵Q、原始多項式f(x)、楕円曲線y2+xy=
x3+ax2+bのパラメタb、ベースポイントGと
し、出力を暗号文Cとすると、第1のステップで乱数k
を生成し(乱数生成部108)、第2のステップでベー
スポイントGと第1のステップで生成した乱数kとを演
算し、kGすなわち(kx1,ky1)とする(楕円曲
線演算部109)。第3のステップで公開鍵Qと第1の
ステップで生成した乱数kとを演算し、kQすなわち
(kx2,ky2)とする(楕円曲線演算部109)。
第4のステップでM xor x2を演算し、M'とする
(データ暗号化110)。第5のステップでx1||y1
||M'を演算し暗号文Cとする(データ暗号化11
0)。
平文113を暗号文114に変換する。入力を平文M、
公開鍵Q、原始多項式f(x)、楕円曲線y2+xy=
x3+ax2+bのパラメタb、ベースポイントGと
し、出力を暗号文Cとすると、第1のステップで乱数k
を生成し(乱数生成部108)、第2のステップでベー
スポイントGと第1のステップで生成した乱数kとを演
算し、kGすなわち(kx1,ky1)とする(楕円曲
線演算部109)。第3のステップで公開鍵Qと第1の
ステップで生成した乱数kとを演算し、kQすなわち
(kx2,ky2)とする(楕円曲線演算部109)。
第4のステップでM xor x2を演算し、M'とする
(データ暗号化110)。第5のステップでx1||y1
||M'を演算し暗号文Cとする(データ暗号化11
0)。
【0033】楕円曲線演算部109は、任意の点Rのス
カラ倍kR演算を行いそのx座標を得る。これにより2
の拡大体上の楕円曲線暗号の復号化処理時間において、
処理時間の偏差情報から秘密鍵情報が漏れなくなる。以
下にこのスカラー倍方法を説明する。図2、図3は、こ
のスカラー倍方法の第1の実施例の説明図である。
カラ倍kR演算を行いそのx座標を得る。これにより2
の拡大体上の楕円曲線暗号の復号化処理時間において、
処理時間の偏差情報から秘密鍵情報が漏れなくなる。以
下にこのスカラー倍方法を説明する。図2、図3は、こ
のスカラー倍方法の第1の実施例の説明図である。
【0034】<第1実施例スカラー倍方法>Rのx座標
の射影座標成分X0、スカラー値mを入力とし、Rのm
倍の点のx座標の射影座標成分Xmを出力とする。m,
X0を入力を入力し(ステップ202)、ステップ20
3から205では乱数を射影座標の各座標に乗算するこ
とにより、データを撹拌する。すなわち、乱数kを生成
し(ステップ203)、乱数kとX0を演算してk2X
0をX1に代入し、乱数kをZ1に代入する(ステップ
205)。ステップ206から208及び301ではス
カラー倍の準備を行う。すなわち、[X1,Z1]を
[X4,Z4]に代入し(ステップ206)、また[X
1,Z1]を2倍方法(図5)に入力し、出力を
[X2,Z2]へ代入する(ステップ207)。 mの
2進数表現をhihi−1...h0とする(ステップ
208)。ただし、最上位ビットhlは1である。iを
lとする(ステップ301)。ステップ302から30
9ではmの1ビットが0か1かによって加算方法や2倍
方法を制御しスカラー倍を求める。すなわち、 i−1
をiに代入し(ステップ302)、[X1,Z1]、
[X2,Z2]、[X4,Z4]を加算方法(図4)に
入力し、出力を[X3,Z3]へ代入する(ステップ3
03)。ここで、hi==0ならば、ステップ304
へ、1ならばステップ306へ進む(ステップ30
4)。[X1,Z1]を2倍方法(図5)に入力し、出
力を[X1,Z1]に代入する(ステップ305)。
[X3,Z3]を[X2,Z2]に代入し、ステップ3
08へいく(ステップ306)。[X2, Z2]を2
倍方法(図5)に入力し、出力を[X2,Z2]に代入
する(ステップ307)。[X3,Z3]を[X1,Z
1]に代入し、ステップ308へいく(ステップ30
8)。i>0ならばステップ302へ進む(ステップ3
09)。次は、射影座標から(x,y)座標のx座標へ
変換する。X1/(Z1)2をXmに代入し(ステップ
310)、Xmを出力する(ステップ311)。
の射影座標成分X0、スカラー値mを入力とし、Rのm
倍の点のx座標の射影座標成分Xmを出力とする。m,
X0を入力を入力し(ステップ202)、ステップ20
3から205では乱数を射影座標の各座標に乗算するこ
とにより、データを撹拌する。すなわち、乱数kを生成
し(ステップ203)、乱数kとX0を演算してk2X
0をX1に代入し、乱数kをZ1に代入する(ステップ
205)。ステップ206から208及び301ではス
カラー倍の準備を行う。すなわち、[X1,Z1]を
[X4,Z4]に代入し(ステップ206)、また[X
1,Z1]を2倍方法(図5)に入力し、出力を
[X2,Z2]へ代入する(ステップ207)。 mの
2進数表現をhihi−1...h0とする(ステップ
208)。ただし、最上位ビットhlは1である。iを
lとする(ステップ301)。ステップ302から30
9ではmの1ビットが0か1かによって加算方法や2倍
方法を制御しスカラー倍を求める。すなわち、 i−1
をiに代入し(ステップ302)、[X1,Z1]、
[X2,Z2]、[X4,Z4]を加算方法(図4)に
入力し、出力を[X3,Z3]へ代入する(ステップ3
03)。ここで、hi==0ならば、ステップ304
へ、1ならばステップ306へ進む(ステップ30
4)。[X1,Z1]を2倍方法(図5)に入力し、出
力を[X1,Z1]に代入する(ステップ305)。
[X3,Z3]を[X2,Z2]に代入し、ステップ3
08へいく(ステップ306)。[X2, Z2]を2
倍方法(図5)に入力し、出力を[X2,Z2]に代入
する(ステップ307)。[X3,Z3]を[X1,Z
1]に代入し、ステップ308へいく(ステップ30
8)。i>0ならばステップ302へ進む(ステップ3
09)。次は、射影座標から(x,y)座標のx座標へ
変換する。X1/(Z1)2をXmに代入し(ステップ
310)、Xmを出力する(ステップ311)。
【0035】次に、加算方法について説明する。楕円曲
線上の点の射影空間座標として、任意のλ≠0につい
て,[X,Y,Z]=[λ2X,λ3Y,λZ]とす
る。ここで、楕円曲線上の点P0=(x0,y0)=
[X0,Y0,Z0];P1=(x1,y1)=
[X1,Y1,Z1]とする。この和と差をP3=(x
3,y3)=[X3,Y3,Z3],P4=(x4,y
4)=[X4,Y4,Z4]とする。
線上の点の射影空間座標として、任意のλ≠0につい
て,[X,Y,Z]=[λ2X,λ3Y,λZ]とす
る。ここで、楕円曲線上の点P0=(x0,y0)=
[X0,Y0,Z0];P1=(x1,y1)=
[X1,Y1,Z1]とする。この和と差をP3=(x
3,y3)=[X3,Y3,Z3],P4=(x4,y
4)=[X4,Y4,Z4]とする。
【0036】 P1+P0=P3; P1−P0=P4; x3=a+(λ3)2+λ3+x0+x1;λ3=(y0+y1)/(x0+ x1); x4=a+(λ4)2+λ4+x0+x1;λ4=(x0+y0+y1)/( x0+x1); λ3+λ4=(x0)/(x0+x1); (λ3)2+(λ4)2=(x0)2/(x0+x1)2; x3+x4=((x0)2+(x0)(x0+x1))/(x0+x1)2=(x0x1)/(x0+x1)2; 以上により、x3+x4=(x0x1)/(x0+x1)2 −−−−(1) という関係式が得られた。
【0037】次に、射影座標での関係式を導出する。
【0038】x1=X1/(Z1)2、x0=X0/
(Z0)2を(1)式に代入する。 X3/(Z3)2=X4/(Z4)2+((X0/(Z0)2)( X1/(Z1)2))/( X0/(Z0)2+ X1/(Z 1 )2)2; =X4/(Z4)2+((X0(Z0)2)( X1(Z1)2))/( X0(Z1)2+X1(Z0)2)2; =((X4β2)+Z4 2(X0Z0 2)( X1Z1 2)) /(Z4 2β2) ただし、β= X0Z1 2+ X1Z0 2 これより、 X3=X4β2+Z4 2(X0Z1 2)( X1Z0 2);−−−−−(2 ) Z3=Z4β;−−−−−−−−−−−−−−−−−−−−−−(3) を 得た。
(Z0)2を(1)式に代入する。 X3/(Z3)2=X4/(Z4)2+((X0/(Z0)2)( X1/(Z1)2))/( X0/(Z0)2+ X1/(Z 1 )2)2; =X4/(Z4)2+((X0(Z0)2)( X1(Z1)2))/( X0(Z1)2+X1(Z0)2)2; =((X4β2)+Z4 2(X0Z0 2)( X1Z1 2)) /(Z4 2β2) ただし、β= X0Z1 2+ X1Z0 2 これより、 X3=X4β2+Z4 2(X0Z1 2)( X1Z0 2);−−−−−(2 ) Z3=Z4β;−−−−−−−−−−−−−−−−−−−−−−(3) を 得た。
【0039】ここで、mR=[X1,Y1,Z1]、
(m+1)R=[X2,Y2,Z2]、R=[X4,Y
4,Z4]、(2m+1)R=[X3,Y3,Z3]と
する。この導出式を利用した加算方法を以下に説明す
る。図4はこの方法の説明図である。
(m+1)R=[X2,Y2,Z2]、R=[X4,Y
4,Z4]、(2m+1)R=[X3,Y3,Z3]と
する。この導出式を利用した加算方法を以下に説明す
る。図4はこの方法の説明図である。
【0040】<第1実施例加算方法>射影座標[X1,
Z1],[X2,Z2],[X4,Z4]を入力とし、
[X3,Z3]または無限遠点を出力とする。[X1Z
1],[X2,Z2],[X4,Z4]を入力し(ステ
ップ402)、ステップ403から407では加算結果
が無限遠点か判定するためにX1(Z2)2+ X2
(Z1)2を求める。さらに各中間結果S1、S2、B
は、上記式(2),(3)を求めるための準備である。
すなわち、X1(Z2)2をS1に代入し(ステップ4
03)、X2(Z1)2をS2に代入し(ステップ40
4)、S1+S2をBに代入し(ステップ405)、B
=0の場合、ステップ407へ進み、成立しない場合ス
テップ408へ進む(ステップ406)。ステップ40
7では、無限遠点を出力し、ステップ413へいく。以
下の408−411は上記式(2),(3)に従って
[X3,Z3]を求める。Z4BをZ3に代入し(ステ
ップ408)、(Z4)2S1S2をSに代入し(ステ
ップ409)、X4Z3 2をMに代入し(ステップ41
0)、 M+SをX3に代入し(ステップ411)、
[X3,Z3]を出力を出力する(ステップ412)。
かかる方法により相異なる変数の乗算6回で加算演算を
実行できる。すなわち、X1、X2、X4からX3を高
速に演算できる。
Z1],[X2,Z2],[X4,Z4]を入力とし、
[X3,Z3]または無限遠点を出力とする。[X1Z
1],[X2,Z2],[X4,Z4]を入力し(ステ
ップ402)、ステップ403から407では加算結果
が無限遠点か判定するためにX1(Z2)2+ X2
(Z1)2を求める。さらに各中間結果S1、S2、B
は、上記式(2),(3)を求めるための準備である。
すなわち、X1(Z2)2をS1に代入し(ステップ4
03)、X2(Z1)2をS2に代入し(ステップ40
4)、S1+S2をBに代入し(ステップ405)、B
=0の場合、ステップ407へ進み、成立しない場合ス
テップ408へ進む(ステップ406)。ステップ40
7では、無限遠点を出力し、ステップ413へいく。以
下の408−411は上記式(2),(3)に従って
[X3,Z3]を求める。Z4BをZ3に代入し(ステ
ップ408)、(Z4)2S1S2をSに代入し(ステ
ップ409)、X4Z3 2をMに代入し(ステップ41
0)、 M+SをX3に代入し(ステップ411)、
[X3,Z3]を出力を出力する(ステップ412)。
かかる方法により相異なる変数の乗算6回で加算演算を
実行できる。すなわち、X1、X2、X4からX3を高
速に演算できる。
【0041】次に、2倍計算方法について説明する。P
1の2倍点をP2とし、P1=(x1,y1)=
[X1,Y1,Z1]、P2=(x2,y2)=
[X2,Y2,Z2]とする。2倍演算の演算式 x2
=(x1)2+b/(x1)2より、x1= X1/
(Z1)2、x2=X2/(Z2)2をこの式に代入す
る。
1の2倍点をP2とし、P1=(x1,y1)=
[X1,Y1,Z1]、P2=(x2,y2)=
[X2,Y2,Z2]とする。2倍演算の演算式 x2
=(x1)2+b/(x1)2より、x1= X1/
(Z1)2、x2=X2/(Z2)2をこの式に代入す
る。
【0042】X2/(Z2)2=(X1/(Z1)2)2+b/(X1/(Z1)2)2=X1 2
/(Z1)4+(b(Z1)4)/(X1)2=(X1 4+b(Z1)8)/(X1 2Z1 4) 従って、 X2=X1 4+bZ1 8−−−−−(4) Z2=X1Z1 2−−−−−−−−(5) この導出式を利用した2倍方法を以下に説明する。図5
は、この説明図である。
/(Z1)4+(b(Z1)4)/(X1)2=(X1 4+b(Z1)8)/(X1 2Z1 4) 従って、 X2=X1 4+bZ1 8−−−−−(4) Z2=X1Z1 2−−−−−−−−(5) この導出式を利用した2倍方法を以下に説明する。図5
は、この説明図である。
【0043】<第1実施例2倍計算方法>Q=[X1,
Z1]、bを入力とし、2Q=[X2,Z2]または無
限遠点を出力とする。X1,Z1を入力し(ステップ5
02)、以下のステップ503から504は2倍結果が
無限遠点を判定するためにX1==0またはZ1==0
の判定を行う。すなわち、X1==0またはZ1==0
の場合は、ステップ504へ。成立しない場合は、ステ
ップ505へいく(ステップ503)。ステップ504
では、無限遠点を出力する。以下のステップ505から
507では上記式(4),(5)に従って[X2,
Z2]を求める。Z1 2をSに代入し(ステップ50
5)、 X1SをZ2に代入し(ステップ506)、X
1 4+b(S)4をX2に代入し(ステップ507)、
[X2,Z2]を出力する(ステップ508)。かかる
方法により相異なる変数の乗算2回で加算演算を実行で
きる。従って、<スカラー倍方法>においてはスカラー
値dのビットあたり、相異なる変数の乗算6+2=8回
で実行できる。すなわち、X1、X2、X4からX3を
高速に演算できる。
Z1]、bを入力とし、2Q=[X2,Z2]または無
限遠点を出力とする。X1,Z1を入力し(ステップ5
02)、以下のステップ503から504は2倍結果が
無限遠点を判定するためにX1==0またはZ1==0
の判定を行う。すなわち、X1==0またはZ1==0
の場合は、ステップ504へ。成立しない場合は、ステ
ップ505へいく(ステップ503)。ステップ504
では、無限遠点を出力する。以下のステップ505から
507では上記式(4),(5)に従って[X2,
Z2]を求める。Z1 2をSに代入し(ステップ50
5)、 X1SをZ2に代入し(ステップ506)、X
1 4+b(S)4をX2に代入し(ステップ507)、
[X2,Z2]を出力する(ステップ508)。かかる
方法により相異なる変数の乗算2回で加算演算を実行で
きる。従って、<スカラー倍方法>においてはスカラー
値dのビットあたり、相異なる変数の乗算6+2=8回
で実行できる。すなわち、X1、X2、X4からX3を
高速に演算できる。
【0044】つぎに、復号化部104では、以下の手順
で暗号文112を元の平文114に変換する。112と
114は内容が同じ平文である。入力を暗号文C←x1
||y1||M'、秘密鍵d、原始多項式f(x)、楕円曲
線y2+xy=x3+ax2+bのパラメタ,b、ベー
スポイントGとし、出力を平文Mとする。
で暗号文112を元の平文114に変換する。112と
114は内容が同じ平文である。入力を暗号文C←x1
||y1||M'、秘密鍵d、原始多項式f(x)、楕円曲
線y2+xy=x3+ax2+bのパラメタ,b、ベー
スポイントGとし、出力を平文Mとする。
【0045】ステップ1:(x2,y2)←d(x1,
y1)(楕円曲線演算部111) ステップ2:平文M←M' xor x2 ステップ1は図2、図3を用いて実行する。
y1)(楕円曲線演算部111) ステップ2:平文M←M' xor x2 ステップ1は図2、図3を用いて実行する。
【0046】以上により、与えられた座標(x,y)の
dスカラー倍のx座標を求める処理において、 dのビ
ットパターンに依存せず、dの各ビットあたり8回の相
異なる乗算処理で実現することができる。また、dの与
えられたx座標に対して、乱数kにより[kx2,k]
をスカラー倍初期値とすることによって、常に演算対象
を変動させることができる。さらに、これらの組合わせ
により、dのビットパターンが、d(x,y)処理時間
の偏差に現れないため、d(x,y)処理時間の偏差情
報から秘密鍵情報がもれない方法を示した。また、この
性質は暗号処理の電流、電圧、電力の偏差を用いて、暗
号解読を行うDPA(Differential Power Analysis)に
対して、d(x,y)の処理電流(電圧、電力)の偏差
情報から秘密鍵情報がもれない方法をも示している。
dスカラー倍のx座標を求める処理において、 dのビ
ットパターンに依存せず、dの各ビットあたり8回の相
異なる乗算処理で実現することができる。また、dの与
えられたx座標に対して、乱数kにより[kx2,k]
をスカラー倍初期値とすることによって、常に演算対象
を変動させることができる。さらに、これらの組合わせ
により、dのビットパターンが、d(x,y)処理時間
の偏差に現れないため、d(x,y)処理時間の偏差情
報から秘密鍵情報がもれない方法を示した。また、この
性質は暗号処理の電流、電圧、電力の偏差を用いて、暗
号解読を行うDPA(Differential Power Analysis)に
対して、d(x,y)の処理電流(電圧、電力)の偏差
情報から秘密鍵情報がもれない方法をも示している。
【0047】次に第1実施例を更に高速化を図ることが
可能な第2実施例を説明する。アフィン座標から、射影
座標への変換を(x,y)→[x,y,1]とする場
合、Z4=1とできる。(2)、(3)式にZ4=1を
代入すると、 X3=(X4β2)+(X0(Z1)2)( X0(Z1)2) ------------(6) Z3=β -----------------------------------(7) この式を利用してスカラー倍方法、加算方法を以下のよ
うに求めることができる。
可能な第2実施例を説明する。アフィン座標から、射影
座標への変換を(x,y)→[x,y,1]とする場
合、Z4=1とできる。(2)、(3)式にZ4=1を
代入すると、 X3=(X4β2)+(X0(Z1)2)( X0(Z1)2) ------------(6) Z3=β -----------------------------------(7) この式を利用してスカラー倍方法、加算方法を以下のよ
うに求めることができる。
【0048】<第2実施例スカラー倍方法>これを図
6、図7に示す。Rのx座標の射影座標成分X0、スカ
ラー値mを入力とし、 Rのm倍の点のx座標の射影座
標成分Xmを出力とする。m,X0を入力し(ステップ
602)、以下のステップ603から604ではX0を
射影座標に変換する。X0をX1に代入し(ステップ6
03)、1をZ1に代入する(ステップ604)。ステ
ップ605から607ではスカラー倍の準備を行う。す
なわち、[X1,Z1]を[X4,Z4]に代入し(ス
テップ605)、[X1,Z1]を2倍方法(図5)に
入力し、出力を[X2,Z2]へ代入する(ステップ6
06)。mの2進数表現をhihi−1...h0とす
る(ステップ607)。ただし、最上位ビットhiは1
である。1をiに代入する(ステップ701)。以下の
ステップ702から709ではmの1ビットが0か1か
によって加算方法や2倍方法を制御しスカラー倍を求め
る。すなわち、i−1をiに代入し(ステップ70
2)、[X1,Z1]、[X2,Z2]、X0を加算方
法(図8)に入力し、出力を[X3,Z3]へ代入する
(ステップ703)。hi==0ならば、ステップ70
6へ、1ならばステップ708へ進む(ステップ70
4)。[X1,Z1] を2倍方法(図5)に入力し、
出力を[X1,Z1]に代入する(ステップ705)。
[X3, Z3]を[X2,Z2]に代入し、ステップ
710へいく(ステップ706)。[X2,Z2]を2
倍方法(図5)に入力し、出力を[X2,Z2]に代入
する(ステップ707)。[X3, Z3]を[X1,
Z1]へ代入し、ステップ710へいく(ステップ70
8)。i>0ならばステップ703へ進む(ステップ7
09)。X1/(Z1)2をXmに代入し(ステップ7
10)、Xmを出力する(ステップ711)。
6、図7に示す。Rのx座標の射影座標成分X0、スカ
ラー値mを入力とし、 Rのm倍の点のx座標の射影座
標成分Xmを出力とする。m,X0を入力し(ステップ
602)、以下のステップ603から604ではX0を
射影座標に変換する。X0をX1に代入し(ステップ6
03)、1をZ1に代入する(ステップ604)。ステ
ップ605から607ではスカラー倍の準備を行う。す
なわち、[X1,Z1]を[X4,Z4]に代入し(ス
テップ605)、[X1,Z1]を2倍方法(図5)に
入力し、出力を[X2,Z2]へ代入する(ステップ6
06)。mの2進数表現をhihi−1...h0とす
る(ステップ607)。ただし、最上位ビットhiは1
である。1をiに代入する(ステップ701)。以下の
ステップ702から709ではmの1ビットが0か1か
によって加算方法や2倍方法を制御しスカラー倍を求め
る。すなわち、i−1をiに代入し(ステップ70
2)、[X1,Z1]、[X2,Z2]、X0を加算方
法(図8)に入力し、出力を[X3,Z3]へ代入する
(ステップ703)。hi==0ならば、ステップ70
6へ、1ならばステップ708へ進む(ステップ70
4)。[X1,Z1] を2倍方法(図5)に入力し、
出力を[X1,Z1]に代入する(ステップ705)。
[X3, Z3]を[X2,Z2]に代入し、ステップ
710へいく(ステップ706)。[X2,Z2]を2
倍方法(図5)に入力し、出力を[X2,Z2]に代入
する(ステップ707)。[X3, Z3]を[X1,
Z1]へ代入し、ステップ710へいく(ステップ70
8)。i>0ならばステップ703へ進む(ステップ7
09)。X1/(Z1)2をXmに代入し(ステップ7
10)、Xmを出力する(ステップ711)。
【0049】<第2実施例加算方法>これを図8に示
す。[X1,Z1],[X2,Z2],X4を入力と
し、[X3,Z3]または無限遠点を出力とする。[X
1,Z1],[X2,Z2],X4を入力し(ステップ
802)、以下のステップ803から807は加算結果
が無限遠点か判定するためにX1(Z2)2+ X2
(Z1)2を求める。さらに各中間結果S1、S2、B
は、上記式(6),(7)を求めるための準備である。
すなわち、X1Z2 2をS1に代入し(ステップ80
3)、X2Z1 2をS2に代入し(ステップ804)、
S1+S2をBに代入する(ステップ805)。B==
0の場合は、ステップ807へ進み、成立しない場合ス
テップ808へ進む(ステップ806)。無限遠点を出
力し、ステップ813へいく(ステップ807)。以下
のステップ808から811は上記式(6),(7)に
従って[X3,Z3]を求める。すなわち、BをZ3に
代入し(ステップ808)、S1S2をSに代入し(ス
テップ809)、X4Z3 2をMに代入し(ステップ8
10)、M+SをX3に代入し(ステップ811)、
[X3,Z3]を出力する(ステップ812)。
す。[X1,Z1],[X2,Z2],X4を入力と
し、[X3,Z3]または無限遠点を出力とする。[X
1,Z1],[X2,Z2],X4を入力し(ステップ
802)、以下のステップ803から807は加算結果
が無限遠点か判定するためにX1(Z2)2+ X2
(Z1)2を求める。さらに各中間結果S1、S2、B
は、上記式(6),(7)を求めるための準備である。
すなわち、X1Z2 2をS1に代入し(ステップ80
3)、X2Z1 2をS2に代入し(ステップ804)、
S1+S2をBに代入する(ステップ805)。B==
0の場合は、ステップ807へ進み、成立しない場合ス
テップ808へ進む(ステップ806)。無限遠点を出
力し、ステップ813へいく(ステップ807)。以下
のステップ808から811は上記式(6),(7)に
従って[X3,Z3]を求める。すなわち、BをZ3に
代入し(ステップ808)、S1S2をSに代入し(ス
テップ809)、X4Z3 2をMに代入し(ステップ8
10)、M+SをX3に代入し(ステップ811)、
[X3,Z3]を出力する(ステップ812)。
【0050】以上により、相異なる変数の乗算4回で加
算演算を実行できる。このため、第1実施例の加算演算
より、乗算回数を減らすことができる。なお、2倍演算
は第1実施例の2倍演算を利用する。
算演算を実行できる。このため、第1実施例の加算演算
より、乗算回数を減らすことができる。なお、2倍演算
は第1実施例の2倍演算を利用する。
【0051】上述した処理時間の偏差情報から秘密鍵情
報が漏れない方法は、2の拡大体上の楕円曲線の場合の
他、素体上の楕円曲線でも適用可能である。
報が漏れない方法は、2の拡大体上の楕円曲線の場合の
他、素体上の楕円曲線でも適用可能である。
【0052】次に第3実施例を説明する。素体上の楕円
曲線By2=x3+Ax2+Bxの場合、モンゴメリ法
を用いて、処理時間の偏差情報から秘密鍵情報がもれな
い方法を示す。
曲線By2=x3+Ax2+Bxの場合、モンゴメリ法
を用いて、処理時間の偏差情報から秘密鍵情報がもれな
い方法を示す。
【0053】P.Montgomery,"Speeding the Pollard and
Elliptic Curve Methods of Factorization", Mathema
tics of computation Vol.48,No.177,pp.243-264(1987)
では、有限素体上の楕円曲線の標準形 By2=x3+
Ax2+Bxを用いて、点P0(x0,y0),P1
(x1,y1)の加算と、減算を P3(x3,y3); P4(x4,y4); P1+P0=P3 ; P1−P0=P4 ; とするとき、 x0,x1,x4から、x3が高速に求まる。具体的に
は、次のように素体の乗算6回で求まる。
Elliptic Curve Methods of Factorization", Mathema
tics of computation Vol.48,No.177,pp.243-264(1987)
では、有限素体上の楕円曲線の標準形 By2=x3+
Ax2+Bxを用いて、点P0(x0,y0),P1
(x1,y1)の加算と、減算を P3(x3,y3); P4(x4,y4); P1+P0=P3 ; P1−P0=P4 ; とするとき、 x0,x1,x4から、x3が高速に求まる。具体的に
は、次のように素体の乗算6回で求まる。
【0054】(x3,y3)→[X3,Z3];(x
4,y4)→[X4,Z4];とするとき、 X3←Z4[(X1−Z1)(X0+Z0)+(X1+
Z1)(X0−Z0)]2 ; Z3←X4[(X1−Z1)(X0+Z0)−(X1+
Z1)(X0−Z0)]2 ; また、2倍演算は、 P5=2P1;(x1,y1)→[X1,Z1]; 4X1Z1←(X1+Z1)2−(X1−Z1)2 ; X5←(X1+Z1)2(X1-Z1)2;Z5←(4X1Z1)[(X1-Z1)2+((A+2)/
4)(4X1Z1)] ; また、P1の2倍点P5(x5,y5)とするとき、x
5は、x1のみから求まり、乗算5回である。これを利
用して、点Rのスカラ倍(スカラー値d)のx座標を以
下のようにRxから求める。
4,y4)→[X4,Z4];とするとき、 X3←Z4[(X1−Z1)(X0+Z0)+(X1+
Z1)(X0−Z0)]2 ; Z3←X4[(X1−Z1)(X0+Z0)−(X1+
Z1)(X0−Z0)]2 ; また、2倍演算は、 P5=2P1;(x1,y1)→[X1,Z1]; 4X1Z1←(X1+Z1)2−(X1−Z1)2 ; X5←(X1+Z1)2(X1-Z1)2;Z5←(4X1Z1)[(X1-Z1)2+((A+2)/
4)(4X1Z1)] ; また、P1の2倍点P5(x5,y5)とするとき、x
5は、x1のみから求まり、乗算5回である。これを利
用して、点Rのスカラ倍(スカラー値d)のx座標を以
下のようにRxから求める。
【0055】初期値を[R,2R]、mRをRのm倍の
x座標とするとき、dを2進数展開し、dの上位ビット
から、 0の場合、[mR,(m+1)R]→[2mR,(2m
+1)R] 1の場合、[mR,(m+1)R]→[(2m+1)
R,2(m+1)R] (m+1)R−mR=R (m+1)R+mR=(2m+1)Rである。
x座標とするとき、dを2進数展開し、dの上位ビット
から、 0の場合、[mR,(m+1)R]→[2mR,(2m
+1)R] 1の場合、[mR,(m+1)R]→[(2m+1)
R,2(m+1)R] (m+1)R−mR=R (m+1)R+mR=(2m+1)Rである。
【0056】<第3実施例スカラー倍方法>Rのx座標
の射影座標成分X0、スカラー値mを入力とし、Rのm
倍の点のx座標の射影座標成分Xmを出力とする。
m,X0を入力を入力し(ステップ902)、ステップ
903から905では乱数を射影座標の各座標に乗算す
ることにより、データを撹拌する。すなわち、乱数kを
生成し(ステップ903)、乱数kとX0を演算してk
X0をX1に代入し(ステップ904)、乱数kをZ1
に代入する(ステップ905)。次に、[X1,Z1]
を[X4,Z4]に代入し(ステップ906)、
[X1,Z1]を2倍方法(モンゴメリの2倍演算)に
入力し、出力を[X2,Z2]へ代入する(ステップ9
07)。mの2進数表現をhihi−1...h0とす
る(ステップ908)。ただし、最上位ビットhlは1
である。iをlとする(ステップ909)。i−1をi
に代入し(ステップ910)、[X1,Z1]、
[X2,Z2]、[X4, Z4]を加算方法(モンゴ
メリの加算演算)に入力し、出力を[X3,Z3]へ代
入する(ステップ911)。ここで、hi==0なら
ば、ステップ912へ、1ならばステップ914へ進む
(ステップ912)。[X1,Z1]を2倍方法(モン
ゴメリの2倍演算)に入力し、出力を[X1,Z1]に
代入する(ステップ913)。[X3,Z3]を
[X2,Z2]に代入し、ステップ916へいく(ステ
ップ914)。[X2,Z2]を2倍方法(モンゴメリ
の2倍演算)に入力し、出力を[X2,Z2]に代入す
る(ステップ915)。[X3, Z3]を[X1,Z
1]に代入し、ステップ916へいく(ステップ91
6)。i>0ならばステップ910へ進む(ステップ9
17)。X1/Z1をXmに代入し(ステップ91
8)、Xmを出力する(ステップ919)。
の射影座標成分X0、スカラー値mを入力とし、Rのm
倍の点のx座標の射影座標成分Xmを出力とする。
m,X0を入力を入力し(ステップ902)、ステップ
903から905では乱数を射影座標の各座標に乗算す
ることにより、データを撹拌する。すなわち、乱数kを
生成し(ステップ903)、乱数kとX0を演算してk
X0をX1に代入し(ステップ904)、乱数kをZ1
に代入する(ステップ905)。次に、[X1,Z1]
を[X4,Z4]に代入し(ステップ906)、
[X1,Z1]を2倍方法(モンゴメリの2倍演算)に
入力し、出力を[X2,Z2]へ代入する(ステップ9
07)。mの2進数表現をhihi−1...h0とす
る(ステップ908)。ただし、最上位ビットhlは1
である。iをlとする(ステップ909)。i−1をi
に代入し(ステップ910)、[X1,Z1]、
[X2,Z2]、[X4, Z4]を加算方法(モンゴ
メリの加算演算)に入力し、出力を[X3,Z3]へ代
入する(ステップ911)。ここで、hi==0なら
ば、ステップ912へ、1ならばステップ914へ進む
(ステップ912)。[X1,Z1]を2倍方法(モン
ゴメリの2倍演算)に入力し、出力を[X1,Z1]に
代入する(ステップ913)。[X3,Z3]を
[X2,Z2]に代入し、ステップ916へいく(ステ
ップ914)。[X2,Z2]を2倍方法(モンゴメリ
の2倍演算)に入力し、出力を[X2,Z2]に代入す
る(ステップ915)。[X3, Z3]を[X1,Z
1]に代入し、ステップ916へいく(ステップ91
6)。i>0ならばステップ910へ進む(ステップ9
17)。X1/Z1をXmに代入し(ステップ91
8)、Xmを出力する(ステップ919)。
【0057】以上により、与えられた座標(x,y)の
dスカラー倍のx座標を求める処理において、dの各ビ
ットあたり11回の相異なる乗算処理で実現し、与えら
れたx座標に対して、乱数kにより[kx,k]をスカ
ラー倍初期値とすることによって、d(x,y)処理時
間の偏差情報から秘密鍵情報がもれない方法を示した。
また、この性質は暗号処理の電流、電圧、電力の偏差を
用いて、暗号解読を行うDPAに対して、d(x,y)
の処理電流(電圧、電力)の偏差情報から秘密鍵情報が
もれない方法を示している。
dスカラー倍のx座標を求める処理において、dの各ビ
ットあたり11回の相異なる乗算処理で実現し、与えら
れたx座標に対して、乱数kにより[kx,k]をスカ
ラー倍初期値とすることによって、d(x,y)処理時
間の偏差情報から秘密鍵情報がもれない方法を示した。
また、この性質は暗号処理の電流、電圧、電力の偏差を
用いて、暗号解読を行うDPAに対して、d(x,y)
の処理電流(電圧、電力)の偏差情報から秘密鍵情報が
もれない方法を示している。
【0058】さらに、素体上の楕円曲線y2=x3+a
x+bの場合、By2=x3+Ax2+Bxとy2=x
3+ax+bの間に有理点がなすアーベル群が同型とな
る楕円曲線を構成し、素体上の楕円曲線y2=x3+a
x+bで与えられた(x,y)をBy2=x3+Ax2
+Bxに変換し、上記発明の方法でスカラー倍を求め、
結果をy2=x3+ax+bに変換することにより本発
明を利用することができる。
x+bの場合、By2=x3+Ax2+Bxとy2=x
3+ax+bの間に有理点がなすアーベル群が同型とな
る楕円曲線を構成し、素体上の楕円曲線y2=x3+a
x+bで与えられた(x,y)をBy2=x3+Ax2
+Bxに変換し、上記発明の方法でスカラー倍を求め、
結果をy2=x3+ax+bに変換することにより本発
明を利用することができる。
【0059】次に第4実施例を説明する。第1実施例で
は、射影座標を任意のλ≠0について,[X,Y,Z]
=[λ2X,λ3Y,λZ]とするものを説明したが、
[X,Y,Z]=[λX,λY,λZ]とする射影座標
で実施することもできる。
は、射影座標を任意のλ≠0について,[X,Y,Z]
=[λ2X,λ3Y,λZ]とするものを説明したが、
[X,Y,Z]=[λX,λY,λZ]とする射影座標
で実施することもできる。
【0060】<第4実施例スカラー倍方法>Rのx座標
の射影座標成分X0、スカラー値mを入力とし、Rのm
倍の点のx座標の射影座標成分Xmを出力とする。m,
X0を入力し(ステップ1002)、以下のステップ1
003から1005では乱数を射影座標の各座標に乗算
することにより、データを撹拌する。すなわち、乱数k
を生成し(ステップ1003)、kX0をX1に代入し
(ステップ1004)、乱数kをZ1に代入する(ステ
ップ1005)。[X1,Z1]を[X4,Z4]に代
入し(ステップ1006)、[X1,Z1]を2倍方法
に入力し、出力を[X2,Z2]へ代入する(ステップ
1007)。mの2進数表現をhihi−1...h0
とする(ステップ1008)。ただし、最上位ビットh
lは1である。iをlとする(ステップ1009)。i
−1をiに代入し(ステップ1010)、[X1,
Z1]、[X2,Z2]、[X4,Z4]を加算方法に
入力し、出力を[X3,Z3]へ代入する(ステップ1
011)。ここで、hi==0ならば、ステップ101
2へ、1ならばステップ1014へ進む(ステップ10
12)。[X1,Z1]を2倍方法に入力し、出力を
[X1,Z1]に代入する(ステップ1013)。[X
3,Z3]を[X2,Z2]に代入し、ステップ101
6へいく(ステップ1014)。[X2,Z2]を2倍
方法に入力し、出力を[X2,Z2]に代入する(ステ
ップ1015)。[X3,Z3]を[X1, Z1]に
代入し、ステップ1016へいく(ステップ101
6)。i>0ならばステップ1010へ進む(ステップ
1017)。X1/Z1をXmに代入し(ステップ10
18)、Xmを出力する(ステップ1019)。
の射影座標成分X0、スカラー値mを入力とし、Rのm
倍の点のx座標の射影座標成分Xmを出力とする。m,
X0を入力し(ステップ1002)、以下のステップ1
003から1005では乱数を射影座標の各座標に乗算
することにより、データを撹拌する。すなわち、乱数k
を生成し(ステップ1003)、kX0をX1に代入し
(ステップ1004)、乱数kをZ1に代入する(ステ
ップ1005)。[X1,Z1]を[X4,Z4]に代
入し(ステップ1006)、[X1,Z1]を2倍方法
に入力し、出力を[X2,Z2]へ代入する(ステップ
1007)。mの2進数表現をhihi−1...h0
とする(ステップ1008)。ただし、最上位ビットh
lは1である。iをlとする(ステップ1009)。i
−1をiに代入し(ステップ1010)、[X1,
Z1]、[X2,Z2]、[X4,Z4]を加算方法に
入力し、出力を[X3,Z3]へ代入する(ステップ1
011)。ここで、hi==0ならば、ステップ101
2へ、1ならばステップ1014へ進む(ステップ10
12)。[X1,Z1]を2倍方法に入力し、出力を
[X1,Z1]に代入する(ステップ1013)。[X
3,Z3]を[X2,Z2]に代入し、ステップ101
6へいく(ステップ1014)。[X2,Z2]を2倍
方法に入力し、出力を[X2,Z2]に代入する(ステ
ップ1015)。[X3,Z3]を[X1, Z1]に
代入し、ステップ1016へいく(ステップ101
6)。i>0ならばステップ1010へ進む(ステップ
1017)。X1/Z1をXmに代入し(ステップ10
18)、Xmを出力する(ステップ1019)。
【0061】楕円曲線上の点の射影空間座標として、任
意のλ≠0について,[X,Y,Z]=[λX, λ
Y,λZ]とする。ここで、楕円曲線上の点P0=(x
0,y0)=[X0,Y0,Z0]; P1=(x1,
y1)=[X1,Y1,Z1]とする。この和と差をP
3=(x3,y3)=[X3,Y3,Z3],P4=
(x4,y4)=[X4,Y4,Z4]とする。
意のλ≠0について,[X,Y,Z]=[λX, λ
Y,λZ]とする。ここで、楕円曲線上の点P0=(x
0,y0)=[X0,Y0,Z0]; P1=(x1,
y1)=[X1,Y1,Z1]とする。この和と差をP
3=(x3,y3)=[X3,Y3,Z3],P4=
(x4,y4)=[X4,Y4,Z4]とする。
【0062】P1+P0=P3; P1−P0=P4; 第1実施例の(1)式x3+x4=(x0x1)/(x
0+x1)2より射影座標での関係式を導出する。
0+x1)2より射影座標での関係式を導出する。
【0063】x1=X1/Z1、x0=X0/Z0を
(1)式に代入する。 X3/Z3=X4/Z4+((X0/Z0)(X1/Z1))/(X0/Z 0 +X1/Z1)2; =X4/(Z4)2+((X0Z0)( X1Z1))/( X 0 Z1+ X1Z0)2; =((X4β2)+Z4 2(X0Z0)( X1Z1))/(Z 4 2 β2) ただし、β= X0Z1+ X1Z0 これより、X3=(X4β2)+Z4 2(X0Z1)( X1Z0); − −(2)' Z3=Z4 2β2; −−−−−−−−−−−−−−−−−−−−−(3) ' を得た。
(1)式に代入する。 X3/Z3=X4/Z4+((X0/Z0)(X1/Z1))/(X0/Z 0 +X1/Z1)2; =X4/(Z4)2+((X0Z0)( X1Z1))/( X 0 Z1+ X1Z0)2; =((X4β2)+Z4 2(X0Z0)( X1Z1))/(Z 4 2 β2) ただし、β= X0Z1+ X1Z0 これより、X3=(X4β2)+Z4 2(X0Z1)( X1Z0); − −(2)' Z3=Z4 2β2; −−−−−−−−−−−−−−−−−−−−−(3) ' を得た。
【0064】ここで、mR=[X1,Y1,Z1]、
(m+1)R=[X2,Y2,Z2]、R=[X4,Y
4,Z4]、(2m+1)R=[X3,Y3,Z3]と
する。この導出式を利用した加算方法を以下に説明す
る。
(m+1)R=[X2,Y2,Z2]、R=[X4,Y
4,Z4]、(2m+1)R=[X3,Y3,Z3]と
する。この導出式を利用した加算方法を以下に説明す
る。
【0065】<第4実施例加算方法>射影座標[X1,
Z1],[X2 ,Z2],[X4 , Z4]を入力
とし、[X3,Z3] または無限遠点を出力とする。
[X1,Z1],[X2,Z2],[X4,Z4]を入
力し(ステップ1102)、X1Z2をS1に代入し
(ステップ1103)、X2Z1をS2に代入し(ステ
ップ1104)、S1+S2をBに代入する(ステップ
1105)。B==0の場合は、ステップ1107へ進
み、成立しない場合ステップ1108へ進む(ステップ
1106)。無限遠点を出力し、ステップ1113へい
く(ステップ1107)。(Z4)2B2をZ3に代入
し(ステップ1108)、(Z4)2S1S2をSに代
入し(ステップ1109)、(X4B2)をMに代入し
(ステップ1110)、M+SをX3に代入し(ステッ
プ1111)、[X3,Z3]を出力する(ステップ1
112)。
Z1],[X2 ,Z2],[X4 , Z4]を入力
とし、[X3,Z3] または無限遠点を出力とする。
[X1,Z1],[X2,Z2],[X4,Z4]を入
力し(ステップ1102)、X1Z2をS1に代入し
(ステップ1103)、X2Z1をS2に代入し(ステ
ップ1104)、S1+S2をBに代入する(ステップ
1105)。B==0の場合は、ステップ1107へ進
み、成立しない場合ステップ1108へ進む(ステップ
1106)。無限遠点を出力し、ステップ1113へい
く(ステップ1107)。(Z4)2B2をZ3に代入
し(ステップ1108)、(Z4)2S1S2をSに代
入し(ステップ1109)、(X4B2)をMに代入し
(ステップ1110)、M+SをX3に代入し(ステッ
プ1111)、[X3,Z3]を出力する(ステップ1
112)。
【0066】以上により、相異なる変数の乗算6回で加
算演算を実行できる。
算演算を実行できる。
【0067】次に、2倍計算方法について説明する。P
1の2倍点をP2とし、P1=(x1,y1)=
[X1,Y1,Z1]、P2=(x2,y2)=
[X2,Y2,Z2]とする。2倍演算の演算式 x2
=(x1)2+b/(x1)2より、x1=X1/
Z1、x2=X2/Z2をこの式に代入する。
1の2倍点をP2とし、P1=(x1,y1)=
[X1,Y1,Z1]、P2=(x2,y2)=
[X2,Y2,Z2]とする。2倍演算の演算式 x2
=(x1)2+b/(x1)2より、x1=X1/
Z1、x2=X2/Z2をこの式に代入する。
【0068】X2/Z2=(X1/Z1)2+b/(X1/Z1)2=X1 2/(Z1)2+(b
Z1 2)/(X1)2=(X1 4+bZ1 4)/(X1 2Z1 2) 従って、 X2=X1 4+bZ1 4−−−−−(4)' Z2=X1 2Z1 2−−−−−−−−−−(5)' この導出式を利用した2倍方法を以下に説明する。
Z1 2)/(X1)2=(X1 4+bZ1 4)/(X1 2Z1 2) 従って、 X2=X1 4+bZ1 4−−−−−(4)' Z2=X1 2Z1 2−−−−−−−−−−(5)' この導出式を利用した2倍方法を以下に説明する。
【0069】<第4実施例2倍計算方法>Q=[X
1 ,Z1],bを入力とし、2Q=[X2,Z2]ま
たは無限遠点を出力する。X1,Z1を入力し(ステッ
プ1202)、X2==0またはZ2==0の場合、ス
テップ1204へ。成立しない場合、ステップ1205
へいく(ステップ1203)。ステップ1204では、
無限遠点を出力する。Z2=X1 2Z1 2とし(ステッ
プ1205)、S=bZ1 4とし(ステップ120
6)、X1 4+SをX2に代入し(ステップ120
7)、[X2,Z2]を出力する(ステップ120
8)。かかる方法により、相異なる変数の乗算2回で加
算演算を実行できる。
1 ,Z1],bを入力とし、2Q=[X2,Z2]ま
たは無限遠点を出力する。X1,Z1を入力し(ステッ
プ1202)、X2==0またはZ2==0の場合、ス
テップ1204へ。成立しない場合、ステップ1205
へいく(ステップ1203)。ステップ1204では、
無限遠点を出力する。Z2=X1 2Z1 2とし(ステッ
プ1205)、S=bZ1 4とし(ステップ120
6)、X1 4+SをX2に代入し(ステップ120
7)、[X2,Z2]を出力する(ステップ120
8)。かかる方法により、相異なる変数の乗算2回で加
算演算を実行できる。
【0070】以上により、与えられた座標(x,y)の
dスカラー倍のx座標を求める処理において、dの各ビ
ットあたり8回の相異なる乗算処理で実現し、与えられ
たx座標に対して、乱数kにより[kx,k]をスカラ
ー倍初期値とすることによって、d(x,y)処理時間
の偏差情報から秘密鍵情報がもれない方法を示した。暗
号解読DPAに対して、d(x,y)の処理電流(電
圧、電力)の偏差情報から秘密鍵情報がもれない方法を
示している。
dスカラー倍のx座標を求める処理において、dの各ビ
ットあたり8回の相異なる乗算処理で実現し、与えられ
たx座標に対して、乱数kにより[kx,k]をスカラ
ー倍初期値とすることによって、d(x,y)処理時間
の偏差情報から秘密鍵情報がもれない方法を示した。暗
号解読DPAに対して、d(x,y)の処理電流(電
圧、電力)の偏差情報から秘密鍵情報がもれない方法を
示している。
【0071】次に第5実施例を説明する。第2実施例で
は、射影座標を任意のλ≠0について,[X,Y,Z]
=[λ2X,λ3Y,λZ]とするものを説明したが、
[X,Y,Z]=[λX,λY,λZ]とする射影座標
で実施することもできる。
は、射影座標を任意のλ≠0について,[X,Y,Z]
=[λ2X,λ3Y,λZ]とするものを説明したが、
[X,Y,Z]=[λX,λY,λZ]とする射影座標
で実施することもできる。
【0072】アフィン座標から、射影座標への変換を
(x,y)→[x,y,1]とする場合、Z4=1 と
できる。
(x,y)→[x,y,1]とする場合、Z4=1 と
できる。
【0073】<第5実施例スカラー倍方法>Rのx座標
の射影座標成分X0、スカラー値mを入力とし、Rのm
倍の点のx座標の射影座標成分Xmを出力とする。m,
X0を入力し(ステップ1302)、乱数kを生成し
(ステップ1303)、kX0をX1に代入する(ステ
ップ1304)。1をZ1に代入する(ステップ130
5)。[X1,Z1]を[X4,Z4]に代入し(ステ
ップ1306)、[X1,Z1]を2倍方法に入力し、
出力を[X2,Z2]へ代入する(ステップ130
7)。mの2進数表現をhihi−1...h0とす
る。ただし、最上位ビットhiは1である(ステップ1
308)。1をiに代入する(ステップ1309)。i
−1をiに代入し(ステップ1310)、[X1, Z
1]、[X2,Z2]、X4を加算方法に入力し、出力
を[X3,Z3]へ代入する(ステップ1311)。h
i==0ならば、ステップ1312へ、1ならばステッ
プ1314へ進む(ステップ1312)。[X1,
Z1]を2倍方法に入力し、出力を[X1,Z1]に代
入する(ステップ1313)。[X3,Z3]を
[X2,Z2]へ代入し、ステップ1316へいく(ス
テップ1314)。[X2,Z2]を2倍方法に入力
し、出力を[X2,Z2]に代入する(ステップ131
5)。[X3,Z3]を[X1,Z1]へ代入し、ステ
ップ1316へいく(ステップ1316)。i>0なら
ばステップ1300へ進む(ステップ1317)。X1
/Z1をXmに代入し(ステップ1318)、Xmを出
力する(ステップ1319)。
の射影座標成分X0、スカラー値mを入力とし、Rのm
倍の点のx座標の射影座標成分Xmを出力とする。m,
X0を入力し(ステップ1302)、乱数kを生成し
(ステップ1303)、kX0をX1に代入する(ステ
ップ1304)。1をZ1に代入する(ステップ130
5)。[X1,Z1]を[X4,Z4]に代入し(ステ
ップ1306)、[X1,Z1]を2倍方法に入力し、
出力を[X2,Z2]へ代入する(ステップ130
7)。mの2進数表現をhihi−1...h0とす
る。ただし、最上位ビットhiは1である(ステップ1
308)。1をiに代入する(ステップ1309)。i
−1をiに代入し(ステップ1310)、[X1, Z
1]、[X2,Z2]、X4を加算方法に入力し、出力
を[X3,Z3]へ代入する(ステップ1311)。h
i==0ならば、ステップ1312へ、1ならばステッ
プ1314へ進む(ステップ1312)。[X1,
Z1]を2倍方法に入力し、出力を[X1,Z1]に代
入する(ステップ1313)。[X3,Z3]を
[X2,Z2]へ代入し、ステップ1316へいく(ス
テップ1314)。[X2,Z2]を2倍方法に入力
し、出力を[X2,Z2]に代入する(ステップ131
5)。[X3,Z3]を[X1,Z1]へ代入し、ステ
ップ1316へいく(ステップ1316)。i>0なら
ばステップ1300へ進む(ステップ1317)。X1
/Z1をXmに代入し(ステップ1318)、Xmを出
力する(ステップ1319)。
【0074】<第5実施例加算方法>[X1,Z1],
[X2,Z2],X4を入力とし、[X3,Z3]また
は無限遠点を出力とする。[X1,Z1],[X2,Z
2],X4を入力する(ステップ1402)。X1Z2
をS1に代入し(ステップ1403)、X2Z1をS2
に代入し(ステップ1404)、S1+S2をBに代入
する(ステップ1405)。B==0の場合、ステップ
1407へ、成立しない場合ステップ1408へ進む
(ステップ1406)。無限遠点を出力し、ステップ1
413へいく(ステップ1407)。次に、B2をZ3
に代入し(ステップ1408)、S1S2をSに代入し
(ステップ1409)、(X4B2)をMに代入し(ス
テップ1410)、M+SをX3に代入し(ステップ1
411)し、[X3,Z3]を出力する(ステップ14
12)。以上により、相異なる変数の乗算4回で加算演
算を実行できる。なお、2倍演算は、前述した実施例の
2倍演算を利用する。尚、本実施例は2の拡大体上、素
体上の楕円曲線どちらにも適用可能である。
[X2,Z2],X4を入力とし、[X3,Z3]また
は無限遠点を出力とする。[X1,Z1],[X2,Z
2],X4を入力する(ステップ1402)。X1Z2
をS1に代入し(ステップ1403)、X2Z1をS2
に代入し(ステップ1404)、S1+S2をBに代入
する(ステップ1405)。B==0の場合、ステップ
1407へ、成立しない場合ステップ1408へ進む
(ステップ1406)。無限遠点を出力し、ステップ1
413へいく(ステップ1407)。次に、B2をZ3
に代入し(ステップ1408)、S1S2をSに代入し
(ステップ1409)、(X4B2)をMに代入し(ス
テップ1410)、M+SをX3に代入し(ステップ1
411)し、[X3,Z3]を出力する(ステップ14
12)。以上により、相異なる変数の乗算4回で加算演
算を実行できる。なお、2倍演算は、前述した実施例の
2倍演算を利用する。尚、本実施例は2の拡大体上、素
体上の楕円曲線どちらにも適用可能である。
【0075】次に第6実施例を説明する。図1の楕円曲
線演算部を、図9における901の楕円曲線演算装置で
実施する。901は点のx座標X0、スカラー値m、2
の拡大体上の楕円曲線の標準形y2+xy=x3+ax
2+bにおいけるbを入力し(902)、m倍の点のx
座標をXm出力する(903)。尚、本実施例は2の拡
大体上の楕円曲線で説明するが、素体上の楕円曲線を用
いた場合も同様の方法で実現可能である。
線演算部を、図9における901の楕円曲線演算装置で
実施する。901は点のx座標X0、スカラー値m、2
の拡大体上の楕円曲線の標準形y2+xy=x3+ax
2+bにおいけるbを入力し(902)、m倍の点のx
座標をXm出力する(903)。尚、本実施例は2の拡
大体上の楕円曲線で説明するが、素体上の楕円曲線を用
いた場合も同様の方法で実現可能である。
【0076】乱数生成部904は、乱数kを生成し、k
を出力する(905)。射影座標変換部906には乱数
生成部904からの乱数kの他、x座標X0とスカラー
値m、bを入力し(905)、射影座標[kX0,k]
に変換する。これを[X1,Z1]とする。スカラー倍
部908は射影座標[X1,Z1]とスカラー値mを入
力し、[X1,Z1]のm倍点を求め、そのx座標Xm
を出力する。ここで、スカラー倍部908は、先ず、
[X1,Z1]を[X4,Z4]へ代入する。かかる
[X4,Z4]は、例えばスカラー倍部のメモリに予め
記憶させておく。また[X1,Z1]を913へ出力し
て、2倍点[X2,Z2]を得る。次に、mを2進数展
開して、上位ビットからビットが0の場合[X1,
Z1]を913に出力して913の出力である2倍点を
[X1,Z1]に代入する。その後[X1,Z1]、
[X2,Z2]、[X4,Z4]を910へ入力して出
力である加算点を[X2,Z2]に代入する。ビットが
1の場合[X2,Z2]を913に出力して913の出
力である2倍点を[X2,Z2]に代入する。その後
[X1,Z1]、[X2,Z2]、[X4,Z4]を9
10へ入力して出力である加算点を[X1,Z1]に代
入することによりm倍の点のXm座標を得る。
を出力する(905)。射影座標変換部906には乱数
生成部904からの乱数kの他、x座標X0とスカラー
値m、bを入力し(905)、射影座標[kX0,k]
に変換する。これを[X1,Z1]とする。スカラー倍
部908は射影座標[X1,Z1]とスカラー値mを入
力し、[X1,Z1]のm倍点を求め、そのx座標Xm
を出力する。ここで、スカラー倍部908は、先ず、
[X1,Z1]を[X4,Z4]へ代入する。かかる
[X4,Z4]は、例えばスカラー倍部のメモリに予め
記憶させておく。また[X1,Z1]を913へ出力し
て、2倍点[X2,Z2]を得る。次に、mを2進数展
開して、上位ビットからビットが0の場合[X1,
Z1]を913に出力して913の出力である2倍点を
[X1,Z1]に代入する。その後[X1,Z1]、
[X2,Z2]、[X4,Z4]を910へ入力して出
力である加算点を[X2,Z2]に代入する。ビットが
1の場合[X2,Z2]を913に出力して913の出
力である2倍点を[X2,Z2]に代入する。その後
[X1,Z1]、[X2,Z2]、[X4,Z4]を9
10へ入力して出力である加算点を[X1,Z1]に代
入することによりm倍の点のXm座標を得る。
【0077】加算演算部910では、[X1,Z1]
[X2,Z2][X4,Z4]を入力し、[X3,
Z3]=[X2,Z2]+[X1,Z1]、[X4,Z
4]=[X2,Z2]−[X1,Z1]となる[X3,
Z3]を以下のように求め出力する。
[X2,Z2][X4,Z4]を入力し、[X3,
Z3]=[X2,Z2]+[X1,Z1]、[X4,Z
4]=[X2,Z2]−[X1,Z1]となる[X3,
Z3]を以下のように求め出力する。
【0078】先ず、S1←X1Z2 2、S2←X2Z1
2、B←S1+S2を計算する。ここでB==0の場
合、無限遠点を出力し終了となる。B=0が成立しない
場合、Z3←Z4B、S←Z4 2S1S2、M ←X4
Z3 2、X3←M+Sを計算する。
2、B←S1+S2を計算する。ここでB==0の場
合、無限遠点を出力し終了となる。B=0が成立しない
場合、Z3←Z4B、S←Z4 2S1S2、M ←X4
Z3 2、X3←M+Sを計算する。
【0079】2倍演算部913では、[X1,Z1]、
bを入力し、[X2,Z2]=[X1,Z1]+
[X1,Z1]となる[X2,Z2]を以下のように求
め出力する。すなわち、X1==0またはZ1 ==0
の場合、無限遠点を出力する。他の場合、S←Z1 2、
Z2←X1S、X2←X1 4+b(S)4を計算する。
bを入力し、[X2,Z2]=[X1,Z1]+
[X1,Z1]となる[X2,Z2]を以下のように求
め出力する。すなわち、X1==0またはZ1 ==0
の場合、無限遠点を出力する。他の場合、S←Z1 2、
Z2←X1S、X2←X1 4+b(S)4を計算する。
【0080】上記実施例では、x座標X0を射影座標
[kX0,k]に変換した例を説明したが、射影座標
[k2X0,k]に変換する場合にも適用可能である。
[kX0,k]に変換した例を説明したが、射影座標
[k2X0,k]に変換する場合にも適用可能である。
【0081】尚、上述した実施例にかかるプログラムは
記録媒体に格納しておくことも可能である。
記録媒体に格納しておくことも可能である。
【0082】
【発明の効果】本発明により前記従来のより、高速に楕
円曲線暗号処理を実行できる。また、楕円曲線暗号の実
行方法において、d(x,y)の処理時間がdのビット
パターンに依存しない処理方法を与えることによって、
偏差情報から秘密鍵情報がもれずに処理できる。
円曲線暗号処理を実行できる。また、楕円曲線暗号の実
行方法において、d(x,y)の処理時間がdのビット
パターンに依存しない処理方法を与えることによって、
偏差情報から秘密鍵情報がもれずに処理できる。
【図1】本発明の楕円曲線暗号システムにおける処理の
流れを示す図である。
流れを示す図である。
【図2】本発明の第1の実施例を示す楕円曲線暗号実行
方法及び装置においてスカラー倍方法を示すフローチャ
ートである。
方法及び装置においてスカラー倍方法を示すフローチャ
ートである。
【図3】本発明の第1の実施例を示す楕円曲線暗号実行
方法及び装置においてスカラー倍方法を示すフローチャ
ートである。
方法及び装置においてスカラー倍方法を示すフローチャ
ートである。
【図4】本発明の第1の実施例を示す楕円曲線暗号実行
方法及び装置を実行するための加算演算のフローチャー
トである。
方法及び装置を実行するための加算演算のフローチャー
トである。
【図5】本発明の第1の実施例を示す楕円曲線暗号実行
方法及び装置を実行するための2倍演算のフローチャー
トである。
方法及び装置を実行するための2倍演算のフローチャー
トである。
【図6】本発明の第2の実施例を示す楕円曲線暗号実行
方法及び装置においてスカラー倍方法を示すフローチャ
ートである。
方法及び装置においてスカラー倍方法を示すフローチャ
ートである。
【図7】本発明の第2の実施例を示す楕円曲線暗号実行
方法及び装置においてスカラー倍方法を示すフローチャ
ートである。
方法及び装置においてスカラー倍方法を示すフローチャ
ートである。
【図8】本発明の第2の実施例を示す楕円曲線暗号実行
方法及び装置を実行するための加算演算のフローチャー
トである。
方法及び装置を実行するための加算演算のフローチャー
トである。
【図9】本発明の楕円曲線演算装置を構成図である。
【図10】本発明の楕円曲線暗号システムの構成図であ
る。
る。
101 楕円曲線生成部、 102 公開鍵、秘密鍵生成部、 103 暗号化部、 104 復号化部、 105 素数生成部、 106 楕円曲線パラメタ設定、 107 ベースポイント生成部、 108 乱数生成部、 109 楕円曲線演算部、 110 データ暗号化処理部、 111 データ復号化処理部、 112 暗号文、 113 平文。
Claims (7)
- 【請求項1】楕円曲線がy2+xy=x3+ax2+b
である、2の拡大体上の楕円曲線暗号の実行方法であっ
て、各座標成分が前記楕円曲線上の点である点P1(x
1,y1),P2(x2,y2)の加算をP3(x3,
y3)とし、点P1(x1,y1),P2(x2,y
2)の減算をP4(x4,y4)とした場合、前記x1
を入力するステップと、前記入力されたx1を射影空間
のX座標、Z座標[X1,Z1]に変換するステップ
と、前記射影空間の座標[X1,Z1]を記憶するステ
ップと、前記x2を[X2,Z2]に変換するステップ
と、前記[X2,Z2]を記憶するステップと、前記x
4を[X4,Z4]に変換するステップと、前記
[X4,Z4]を記憶するステップと、前記記憶された
[X1,Z1],[X2 ,Z2],[X4,Z4]か
ら[X3,Z3]を求めるステップと、前記[X3,Z
3]からx3に変換するステップと、前記x3を出力す
るステップとからなり、点P1(x1,y1)のスカラ
ー倍を計算することを特徴とする楕円曲線暗号実行方
法。 - 【請求項2】請求項1記載の楕円曲線暗号実行方法であ
って、乱数kを生成するステップと、前記生成された乱
数kを記憶するステップと、x座標を射影座標に変換し
た後、射影空間の各座標成分と前記記憶された乱数kと
演算させて、射影座標[k2x,k]に変換するステッ
プとを有することを特徴とする請求項1記載の楕円曲線
暗号実行方法。 - 【請求項3】請求項1記載の楕円曲線暗号実行方法であ
って、乱数kを生成するステップと、前記生成された乱
数kを記憶するステップと、x座標を射影座標に変換し
た後、射影空間の各座標成分と前記記憶された乱数kと
演算させて、射影座標[kx,k]に変換するステップ
とを有することを特徴とする請求項1記載の楕円曲線暗
号実行方法。 - 【請求項4】請求項1記載の楕円曲線暗号実行方法であ
って、記憶された[X1,Z1],[X2,Z2],
[X4,Z4]からx3に変換できる[X3,Z3]を
求めるステップには、B=X1Z2 2+X2Z1 2を計
算するステップと、前記計算されたBを記憶するステッ
プと、前記記憶されたBをB=0であるか否かをを判別
するステップと、B=0の場合は無限遠点を出力し、B
=0でない場合はZ3=Z4Bを計算するステップと、
前記計算されたZ3を記憶するステップと、前記記憶さ
れたZ3からX3=X4Z3 2+X1X2Z1 2Z2 2
Z4 2を計算するステップとを有することを特徴とする
請求項1記載の楕円曲線暗号実行方法。 - 【請求項5】請求項1記載の楕円曲線暗号実行方法であ
って、記憶された[X1,Z1],[X2,Z2],
[X4,Z4]からx3に変換できる[X3,Z3]を
求めるステップには、 B=X1Z2+X2Z1を計算
するステップと、前記計算されたBを記憶するステップ
と、前記記憶されたBをB=0であるか否かをを判別す
るステップと、B=0の場合は無限遠点を出力し、B=
0でない場合はZ3=Z4 2B2及びX3=X4B2+
X1X2Z1Z2Z4 2を計算するステップとを有する
ことを特徴とする請求項1記載の楕円曲線暗号実行方
法。 - 【請求項6】楕円曲線がy2+xy=x3+ax2+b
である、2の拡大体上の楕円曲線暗号の演算装置であっ
て、乱数kを生成する乱数生成部と、2の拡大体上の座
標x0と前記乱数kとを入力し、射影座標[kx0,
k]=[X1,Z1]に変換する射影座標変換部と、前
記[X1,Z1]から2倍点を演算し出力する2倍演算
部と、前記[X1,Z1]から加算点を求め出力する加
算演算部と、前記射影座標変換部と前記2倍演算部と前
記加算演算部からの情報を得て、座標x0をスカラー倍
するスカラー倍部とを有することを特徴とする楕円曲線
演算装置。 - 【請求項7】楕円曲線がy2+xy=x3+ax2+b
である、2の拡大体上の楕円曲線暗号の実行方法を格納
した記録媒体であって、前記楕円曲線暗号の実行方法は
以下を含む:各座標成分が前記楕円曲線上の点である点
P1(x1,y1),P2(x2,y2)の加算をP3
(x3,y3)とし、点P1(x1,y1),P2(x
2,y2)の減算をP4(x4,y4)とした場合、前
記x1を入力するステップと、前記入力されたx1を射
影空間のX座標、Z座標[X1,Z1]に変換するステ
ップと、前記射影空間の座標[X1,Z1]を記憶する
ステップと、前記x2を[X2,Z2]に変換するステ
ップと、前記[X2,Z2]を記憶するステップと、前
記x4を[X4,Z4]に変換するステップと、前記
[X4,Z4]を記憶するステップと、前記記憶された
[X1,Z1],[X2 ,Z2],[X4,Z4]か
ら[X3,Z3]を求めるステップと、前記[X3,Z
3]からx3に変換するステップと、前記x3を出力す
るステップとからなり、点P1(x1,y1)のスカラ
ー倍を計算する。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36427798A JP3796993B2 (ja) | 1998-12-22 | 1998-12-22 | 楕円曲線暗号実行方法及び装置並びに記録媒体 |
CA002292817A CA2292817C (en) | 1998-12-22 | 1999-12-20 | Method and apparatus for elliptic curve cryptography and recording medium therefor |
EP99310340A EP1014617A3 (en) | 1998-12-22 | 1999-12-21 | Method and apparatus for elliptic curve cryptography and recording medium therefor |
US09/468,948 US6876745B1 (en) | 1998-12-22 | 1999-12-22 | Method and apparatus for elliptic curve cryptography and recording medium therefore |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36427798A JP3796993B2 (ja) | 1998-12-22 | 1998-12-22 | 楕円曲線暗号実行方法及び装置並びに記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000187438A true JP2000187438A (ja) | 2000-07-04 |
JP3796993B2 JP3796993B2 (ja) | 2006-07-12 |
Family
ID=18481429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP36427798A Expired - Fee Related JP3796993B2 (ja) | 1998-12-22 | 1998-12-22 | 楕円曲線暗号実行方法及び装置並びに記録媒体 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6876745B1 (ja) |
EP (1) | EP1014617A3 (ja) |
JP (1) | JP3796993B2 (ja) |
CA (1) | CA2292817C (ja) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030078350A (ko) * | 2002-03-29 | 2003-10-08 | 박근수 | 타원 곡선 암호에서 단위원의 n-제곱근 함수를 이용한프로베니우스 전개 방법 |
WO2005008955A1 (ja) * | 2003-07-22 | 2005-01-27 | Fujitsu Limited | 個人鍵を用いた耐タンパ暗号処理 |
KR100731575B1 (ko) | 2005-06-29 | 2007-06-22 | 경북대학교 산학협력단 | 전력분석공격에 대응하는 암호화 방법 |
KR100817048B1 (ko) | 2005-03-05 | 2008-03-26 | 삼성전자주식회사 | 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치 |
KR100850202B1 (ko) | 2006-03-04 | 2008-08-04 | 삼성전자주식회사 | Ecc 패스트 몽고매리 전력 래더 알고리즘을 이용하여dfa 에 대응하는 암호화 방법 |
JP2009500892A (ja) * | 2005-06-29 | 2009-01-08 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法 |
US7555122B2 (en) | 2002-12-04 | 2009-06-30 | Wired Communications LLC | Method for elliptic curve point multiplication |
JP2010539519A (ja) * | 2006-09-29 | 2010-12-16 | シーメンス アクチエンゲゼルシヤフト | 暗号化されたデータ交換を行う方法、および通信システム |
WO2011033672A1 (ja) * | 2009-09-18 | 2011-03-24 | 株式会社東芝 | 演算装置、方法およびプログラム |
US7940936B2 (en) | 2006-12-15 | 2011-05-10 | Samsung Electronics Co., Ltd. | Public key generation method in elliptic curve cryptography and public key generation system executing the method |
US7940927B2 (en) | 2005-04-27 | 2011-05-10 | Panasonic Corporation | Information security device and elliptic curve operating device |
KR101763443B1 (ko) * | 2010-01-13 | 2017-07-31 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 집적된 역수 연산들을 이용한 곡선 상의 페어링 결정 |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002023795A1 (en) * | 2000-09-11 | 2002-03-21 | Zhang Jinglong F | A method and apparatus employing one-way transforms |
JP3794266B2 (ja) * | 2000-11-08 | 2006-07-05 | 株式会社日立製作所 | 楕円曲線スカラー倍計算方法及び装置並びに記憶媒体 |
DE10057203C1 (de) * | 2000-11-17 | 2002-06-06 | Cv Cryptovision Gmbh | Verfahren zur Berechnung eines digitalen Signalwertes für ein cryptographisches Verfahren |
WO2002082717A1 (en) * | 2001-04-05 | 2002-10-17 | Kent Ridge Digital Labs | Method and apparatus for constructing efficient elliptic curve cryptosystems |
US7308469B2 (en) * | 2001-06-15 | 2007-12-11 | Robert Joseph Harley | Method for generating secure elliptic curves using an arithmetic-geometric mean iteration |
FR2828779B1 (fr) * | 2001-08-17 | 2004-01-16 | Gemplus Card Int | Procede de calcul universel applique a des points d'une courbe elliptique |
US20040001590A1 (en) * | 2002-06-27 | 2004-01-01 | Eisentraeger Anne Kirsten | Efficient elliptic curve double-and-add calculator |
US7961873B2 (en) * | 2004-03-03 | 2011-06-14 | King Fahd University Of Petroleum And Minerals | Password protocols using XZ-elliptic curve cryptography |
US7379546B2 (en) * | 2004-03-03 | 2008-05-27 | King Fahd University Of Petroleum And Minerals | Method for 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 |
US7764785B2 (en) * | 2004-11-08 | 2010-07-27 | King Fahd University Of Petroleum And Minerals | Method for communicating securely over an insecure communication channel |
EP1675299B1 (en) * | 2004-12-23 | 2018-08-01 | Hewlett-Packard Development Company, L.P. | Authentication method using bilinear mappings |
CA2935823C (en) * | 2005-01-18 | 2019-01-15 | Certicom Corp. | Accelerated verification of digital signatures and public keys |
EP1775880A1 (en) * | 2005-10-11 | 2007-04-18 | STMicroelectronics S.r.l. | Method of processing information to be confidentially transmitted |
ATE464599T1 (de) | 2005-10-18 | 2010-04-15 | Telecom Italia Spa | Verfahren zur skalarmultiplikation in gruppen elliptischer kurven über primkörpern für nebenkanal-attacken-beständige kryptosysteme |
ATE466329T1 (de) | 2005-10-28 | 2010-05-15 | Telecom Italia Spa | Verfahren zur skalarmultiplikation in gruppen elliptischer kurven über binäre polynomische körper für nebenkanalattacken-beständige kryptosysteme |
US7864951B2 (en) * | 2006-07-10 | 2011-01-04 | King Fahd University Of Petroleum And Minerals | Scalar multiplication method with inherent countermeasures |
US8997255B2 (en) | 2006-07-31 | 2015-03-31 | Inside Secure | Verifying data integrity in a data storage device |
KR20080012633A (ko) * | 2006-08-04 | 2008-02-12 | 삼성전자주식회사 | 고속 몽고메리 전력 래더 알고리즘에서 사용되는 폴트 검출동작을 구현하기 위한 소수 유한 영역에서의 포인트 덧셈방법 및 덧셈 연산 장치 |
US8352752B2 (en) | 2006-09-01 | 2013-01-08 | Inside Secure | Detecting radiation-based attacks |
US7856101B2 (en) * | 2007-02-07 | 2010-12-21 | King Fahd University Of Petroleum And Minerals | Method for elliptic curve scalar multiplication |
US8050403B2 (en) * | 2007-03-06 | 2011-11-01 | Research In Motion Limited | Method and apparatus for generating a public key in a manner that counters power analysis attacks |
US8160245B2 (en) * | 2007-03-07 | 2012-04-17 | Research In Motion Limited | Methods and apparatus for performing an elliptic curve scalar multiplication operation using splitting |
US8102998B2 (en) * | 2007-05-02 | 2012-01-24 | King Fahd University Of Petroleum And Minerals | Method for elliptic curve scalar multiplication using parameterized projective coordinates |
US20080273695A1 (en) * | 2007-05-02 | 2008-11-06 | Al-Gahtani Theeb A | Method for elliptic curve scalar multiplication using parameterized projective coordinates |
US7986779B2 (en) * | 2007-06-30 | 2011-07-26 | Intel Corporation | Efficient elliptic-curve cryptography based on primality of the order of the ECC-group |
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 |
US8422685B2 (en) | 2008-02-26 | 2013-04-16 | King Fahd University Of Petroleum And Minerals | Method for elliptic curve scalar multiplication |
EP2124382A1 (de) * | 2008-05-20 | 2009-11-25 | Siemens Aktiengesellschaft | Verfahren zum verschlüsselten Datenaustausch und Kommunikationssystem |
JP5233449B2 (ja) * | 2008-07-02 | 2013-07-10 | 日本電気株式会社 | 署名生成装置、ならびに、署名検証装置 |
US20140314229A1 (en) * | 2011-12-09 | 2014-10-23 | Morpho | Cryptography on a simplified elliptical curve |
US20170207918A1 (en) | 2009-06-16 | 2017-07-20 | Morpho | Cryptography on an elliptical curve |
FR2946819B1 (fr) * | 2009-06-16 | 2011-07-01 | Sagem Securite | Cryptographie sur une courbe elliptique. |
US8385541B2 (en) * | 2010-02-18 | 2013-02-26 | King Fahd University Of Petroleum And Minerals | Method of performing elliptic polynomial cryptography with elliptic polynomial hopping |
US8331558B2 (en) * | 2010-02-18 | 2012-12-11 | King Fahd University Of Petroleum And Minerals | Method of cipher block chaining using elliptic curve cryptography |
US8189775B2 (en) * | 2010-02-18 | 2012-05-29 | King Fahd University Of Petroleum & Minerals | Method of performing cipher block chaining using elliptic polynomial cryptography |
US8699701B2 (en) | 2010-12-01 | 2014-04-15 | King Fahd University | Method of performing XZ-elliptic curve cryptography for use with network security protocols |
US8509426B1 (en) | 2010-12-01 | 2013-08-13 | King Fahd University Of Petroleum And Minerals | XZ-elliptic curve cryptography system and method |
WO2012090289A1 (ja) * | 2010-12-27 | 2012-07-05 | 富士通株式会社 | 暗号処理装置および方法 |
US8635467B2 (en) | 2011-10-27 | 2014-01-21 | Certicom Corp. | Integrated circuit with logic circuitry and multiple concealing circuits |
US8334705B1 (en) | 2011-10-27 | 2012-12-18 | Certicom Corp. | Analog circuitry to conceal activity of logic circuitry |
CN102664889A (zh) * | 2012-04-23 | 2012-09-12 | 网经科技(苏州)有限公司 | 基于椭圆曲线的ims媒体双向加密方法 |
US10148285B1 (en) | 2012-07-25 | 2018-12-04 | Erich Schmitt | Abstraction and de-abstraction of a digital data stream |
US10795858B1 (en) | 2014-02-18 | 2020-10-06 | Erich Schmitt | Universal abstraction and de-abstraction of a digital data stream |
CN104717072A (zh) * | 2015-03-10 | 2015-06-17 | 南京师范大学 | 基于感知哈希与椭圆曲线的遥感影像认证方法 |
US10372886B2 (en) * | 2015-05-05 | 2019-08-06 | Nxp B.V. | Protecting the input/output of modular encoded white-box RSA/ECC |
US10181944B2 (en) | 2015-06-16 | 2019-01-15 | The Athena Group, Inc. | Minimizing information leakage during modular exponentiation and elliptic curve point multiplication |
BR112018016782A2 (pt) | 2016-02-23 | 2018-12-26 | Nchain Holdings Ltd | sistema e método implementado por computador configurado para controlar uma transferência feita através de um blockchain |
WO2017145010A1 (en) | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system |
BR112018016822A2 (pt) | 2016-02-23 | 2018-12-26 | Nchain Holdings Ltd | método implementado por computador para realizar uma troca de entidades entre um primeiro usuário e um segundo usuário, processador e meio legível por computador |
JP6942136B2 (ja) | 2016-02-23 | 2021-09-29 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | デジタルコンテンツの制御及び配信のためのブロックチェーンにより実施される方法 |
BR112018016819A2 (pt) | 2016-02-23 | 2018-12-26 | Nchain Holdings Ltd | método e sistemas para proteger um recurso digital controlado utilizando uma tabela de dispersão e livro-razão distribuídos e um blockchain |
WO2017145019A1 (en) | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | Registry and automated management method for blockchain-enforced smart contracts |
LT3268914T (lt) | 2016-02-23 | 2018-11-12 | nChain Holdings Limited | Bendros paslapties, skirtos saugiems informacijos mainams, nustatymas ir hierarchiniai determinuoti kriptografiniai raktai |
EP3420669B1 (en) | 2016-02-23 | 2021-03-24 | Nchain Holdings Limited | Cryptographic method and system for secure extraction of data from a blockchain |
JP6528008B2 (ja) * | 2016-02-23 | 2019-06-12 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | 秘密共有のための楕円曲線暗号化を利用したパーソナルデバイスセキュリティ |
EP3420675B1 (en) | 2016-02-23 | 2020-03-11 | Nchain Holdings Limited | Blockchain implemented counting system and method for use in secure voting and distribution |
US11146397B2 (en) * | 2017-10-31 | 2021-10-12 | Micro Focus Llc | Encoding abelian variety-based ciphertext with metadata |
Family Cites Families (5)
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 |
US5442707A (en) * | 1992-09-28 | 1995-08-15 | Matsushita Electric Industrial Co., Ltd. | Method for generating and verifying electronic signatures and privacy communication using elliptic curves |
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 |
EP0874307B2 (en) * | 1997-03-25 | 2016-12-28 | Certicom Corp. | Accelerated finite field operations on an elliptic curve |
FR2791497B1 (fr) * | 1999-03-26 | 2001-05-18 | 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 |
-
1998
- 1998-12-22 JP JP36427798A patent/JP3796993B2/ja not_active Expired - Fee Related
-
1999
- 1999-12-20 CA CA002292817A patent/CA2292817C/en not_active Expired - Fee Related
- 1999-12-21 EP EP99310340A patent/EP1014617A3/en not_active Withdrawn
- 1999-12-22 US US09/468,948 patent/US6876745B1/en not_active Expired - Fee Related
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030078350A (ko) * | 2002-03-29 | 2003-10-08 | 박근수 | 타원 곡선 암호에서 단위원의 n-제곱근 함수를 이용한프로베니우스 전개 방법 |
US7555122B2 (en) | 2002-12-04 | 2009-06-30 | Wired Communications LLC | Method for elliptic curve point multiplication |
US8027467B2 (en) | 2002-12-04 | 2011-09-27 | Wired Connections Llc | Method for elliptic curve point multiplication |
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 | 富士通株式会社 | 個人鍵を用いた耐タンパ暗号処理 |
KR100817048B1 (ko) | 2005-03-05 | 2008-03-26 | 삼성전자주식회사 | 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치 |
US7940927B2 (en) | 2005-04-27 | 2011-05-10 | Panasonic Corporation | Information security device and elliptic curve operating device |
JP2009500892A (ja) * | 2005-06-29 | 2009-01-08 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法 |
KR100731575B1 (ko) | 2005-06-29 | 2007-06-22 | 경북대학교 산학협력단 | 전력분석공격에 대응하는 암호화 방법 |
US8738927B2 (en) | 2005-06-29 | 2014-05-27 | Irdeto B.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 에 대응하는 암호화 방법 |
JP2010539519A (ja) * | 2006-09-29 | 2010-12-16 | シーメンス アクチエンゲゼルシヤフト | 暗号化されたデータ交換を行う方法、および通信システム |
US8707038B2 (en) | 2006-09-29 | 2014-04-22 | Siemens Aktiengesellschaft | Method for the encrypted data exchange and communication system |
US7940936B2 (en) | 2006-12-15 | 2011-05-10 | Samsung Electronics Co., Ltd. | Public key generation method in elliptic curve cryptography and public key generation system executing the method |
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 |
KR101763443B1 (ko) * | 2010-01-13 | 2017-07-31 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 집적된 역수 연산들을 이용한 곡선 상의 페어링 결정 |
Also Published As
Publication number | Publication date |
---|---|
CA2292817C (en) | 2004-02-17 |
US6876745B1 (en) | 2005-04-05 |
JP3796993B2 (ja) | 2006-07-12 |
CA2292817A1 (en) | 2000-06-22 |
EP1014617A2 (en) | 2000-06-28 |
EP1014617A3 (en) | 2002-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3796993B2 (ja) | 楕円曲線暗号実行方法及び装置並びに記録媒体 | |
JP3862500B2 (ja) | 直接埋め込み方式による高速楕円曲線暗号化の方法と装置 | |
US7536011B2 (en) | Tamper-proof elliptic encryption with private key | |
JP4668931B2 (ja) | 電力解析攻撃に対する耐タンパ性を持った暗号化処理装置 | |
US20040250081A1 (en) | Method and apparatus for digital signature authentication | |
US20080260143A1 (en) | Xz-elliptic curve cryptography with secret key embedding | |
US6266688B1 (en) | Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed | |
US20110161390A1 (en) | Modular multiplication processing apparatus | |
JP2008252299A (ja) | 暗号処理システム及び暗号処理方法 | |
EP0704124A1 (en) | A cryptographic method | |
US6480606B1 (en) | Elliptic curve encryption method and system | |
JP2004501385A (ja) | 楕円曲線暗号化方法 | |
JP2003098962A (ja) | 楕円曲線スカラー倍計算方法及び装置並びに記録媒体 | |
Paar et al. | The RSA cryptosystem | |
JP4690819B2 (ja) | 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置 | |
JP2005195829A (ja) | 復号または署名作成におけるべき乗剰余算の計算方法 | |
JP4502817B2 (ja) | 楕円曲線スカラー倍計算方法および装置 | |
JP4598269B2 (ja) | 楕円曲線上の高速有限体演算 | |
Li et al. | A novel algorithm for scalar multiplication in ECDSA | |
Siddavaatam et al. | An adaptive security framework with extensible computational complexity for cipher systems | |
JP4692022B2 (ja) | 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム | |
JP3966714B2 (ja) | 暗号処理方法、そのプログラム及びその記録媒体 | |
JP2004205870A (ja) | 超楕円曲線スカラー倍演算方法及び装置 | |
US7480380B2 (en) | Method for efficient generation of modulo inverse for public key cryptosystems | |
JPH02273779A (ja) | ディジタル署名装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041019 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041216 |
|
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: 20060328 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060410 |
|
LAPS | Cancellation because of no payment of annual fees |