JP4225764B2 - Elliptic curve conversion device, elliptic curve conversion method, elliptic curve utilization device, and elliptic curve generation device - Google Patents

Elliptic curve conversion device, elliptic curve conversion method, elliptic curve utilization device, and elliptic curve generation device Download PDF

Info

Publication number
JP4225764B2
JP4225764B2 JP2002307370A JP2002307370A JP4225764B2 JP 4225764 B2 JP4225764 B2 JP 4225764B2 JP 2002307370 A JP2002307370 A JP 2002307370A JP 2002307370 A JP2002307370 A JP 2002307370A JP 4225764 B2 JP4225764 B2 JP 4225764B2
Authority
JP
Japan
Prior art keywords
elliptic curve
elliptic
parameters
search
conversion device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002307370A
Other languages
Japanese (ja)
Other versions
JP2003208096A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2002307370A priority Critical patent/JP4225764B2/en
Publication of JP2003208096A publication Critical patent/JP2003208096A/en
Application granted granted Critical
Publication of JP4225764B2 publication Critical patent/JP4225764B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、情報セキュリテイ技術としての暗号技術に関し、特に、楕円曲線を用いる秘密通信、デジタル署名及び鍵共有技術に関する。
【0002】
【従来の技術】
1.公開鍵暗号
近年、コンピュータ技術と通信技術とに基づくデータ通信が広く普及してきており、このデータ通信においては、秘密通信方式又はデジタル署名方式が用いられている。ここで、秘密通信方式とは、特定の通信相手以外に通信内容を漏らすことなく通信を行う方式である。またデジタル署名方式とは、通信相手に通信内容の正当性を示したり、発信者の身元を証明する通信方式である。
【0003】
これらの秘密通信方式又はデジタル署名方式には公開鍵暗号と呼ばれる暗号方式が用いられる。公開鍵暗号は通信相手が多数の時、通信相手毎に異なる暗号鍵を容易に管理するための方式であり、多数の通信相手と通信を行うのに不可欠な基盤技術である。公開鍵暗号を用いる秘密通信では、暗号化鍵と復号化鍵とが異なり、復号化鍵は秘密にするが、暗号化鍵は公開する。
【0004】
この公開鍵暗号の安全性の根拠として離散対数問題が用いられる。離散対数問題には、代表的なものとして、有限体上定義されるもの及び楕円曲線上定義されるものがある(例えば、非特許文献1)。
【0005】
2.楕円曲線上の離散対数問題
楕円曲線上の離散対数問題について、以下に述べる。楕円曲線上の離散対数問題とは、E(GF(p))を有限体GF(p)上で定義された楕円曲線とし、楕円曲線Eの位数が大きな素数で割り切れる場合に、楕円曲線Eに含まれる元Gをベースポイントとする。この時、楕円曲線Eに含まれる与えられた元Yに対して、
(式1) Y=x*G
となる整数xが存在するならば、xを求めよ、という問題である。
【0006】
ここで、pは素数、GF(p)はp個の元を持つ有限体である。また、この明細書において、記号*は、楕円曲線に含まれる元を複数回加算する演算を示し、x*Gは、次式に示すように、楕円曲線に含まれる元Gをx回加算することを意味する。
【0007】
x*G=G+G+G+…+G
離散対数問題を公開鍵暗号の安全性の根拠とするのは、多くの元を有する有限体GF(p)に対して、上記問題は極めて難しいからである。
【0008】
3.楕円曲線上の離散対数問題を応用したエルガマル署名
以下に、上記楕円曲線上の離散対数問題を応用したエルガマル署名によるデジタル署名方式について、図11を用いて、説明する。この図は、上記エルガマル署名によるデジタル署名方式の手順を示すシーケンス図である。ユーザA11、管理センタ12及びユーザB13は、ネットワークで接続されている。pを素数、有限体GF(p)上の楕円曲線をEとする。EのベースポイントをGとし、Eの位数をqとする。つまり、qは、
(式2) q*G=0
を満たす最小の正整数である。
【0009】
なお、x座標、y座標共に∞である(∞、∞)を無限遠点といい、0で表す。この0は、楕円曲線を群とみた時に、無限遠点が加算における「零元」の役割を果たす。
【0010】
(1)管理センタ12による公開鍵の生成
管理センタ12は、予め通知されているユーザA11の秘密鍵xAを用いて、式3に従って、ユーザA11の公開鍵YAを生成する(ステップS141〜S142)。
(式3) YA=xA*G
その後、管理センタ12は、素数p、楕円曲線E及びベースポイントGをシステムパラメータとして公開し、また、他のユーザB13にユーザA11の公開鍵YAを公開する(ステップS143〜S144)。
【0011】
(2)ユーザA11による署名生成
ユーザA11は、乱数kを生成する(ステップS145)。次に、ユーザA11は、
(式4) R1=(rx,ry)=k*G
を計算し(ステップS146)、
(式5) s×k=m+rx×xA (mod q)
から、sを計算する(ステップS147)。ここで、mは、ユーザA11がユーザB13へ送信するメッセージである。さらに、ユーザA11は、得られた(R1、s)を署名としてメッセージmと共に、ユーザB13へ送信する(ステップS148)。
【0012】
(3)ユーザB13による署名検証
ユーザB13は、
(式6) s*R1=m*G+rx*YA
が成立するかどうか判定することにより、送信者であるユーザA11の身元を確認する(ステップS149)。これは、

Figure 0004225764
となることから明らかである。
【0013】
4.楕円曲線上の点の加算、2倍算の演算による計算量
上記に示した楕円曲線上の離散対数問題を応用したエルガマル署名によるデジタル署名方式における公開鍵の生成、署名生成、署名検証のそれぞれにおいて、楕円曲線上の点の冪倍の演算の計算が行われる。例えば、式3に示す「xA*G」、式4に示す「k*G」、式6に示す「s*R1」、「m*G」、「rx*YA」は、楕円曲線上の点の冪倍の演算である。なお、楕円曲線の演算公式については、非特許文献2に詳述されている。
【0014】
楕円曲線の演算公式について、以下に説明する。楕円曲線の方程式をy^2 = x^3 +a×x+b とし、任意の点Pの座標を(x1,y1)とし、任意の点Qの座標を(x2,y2)とする。ここで、R=P+Qで定まる点Rの座標を(x3,y3)とする。
【0015】
なお、P≠Qの場合、R=P+Qは、加算の演算となる。加算の公式を以下に示す。
【0016】
x3={(y2−y1)/(x2−x1)}^2−x1−x2
y3={(y2−y1)/(x2−x1)}(x1−x3)−y1
P=Qの場合、R=P+Q=P+P=2×Pとなり、R=P+Qは、2倍算の演算となる。2倍算の公式を以下に示す。
x3={(3x1^2+a)/2y1}^2−2x1
y3={(3x1^2+a)/2y1}(x1−x3)−y1
【0017】
なお、上記演算は、楕円曲線が定義される有限体上での演算である。上記に示すように、2項組座標であるアフィン座標、即ち今まで述べてきた座標において、楕円曲線上の加算演算を行う場合に、楕円曲線上の加算1回につき、1回の有限体上の逆数計算が必要となる。一般に、有限体上の逆数計算は、有限体上での乗算計算と比較して、10倍程度の計算量を必要とする。
【0018】
そこで、計算量を削減することを目的として、射影座標と呼ばれる3項組の座標が用いられる。射影座標とは、3項組X、Y、Zからなる座標のことであって、座標(X,Y,Z)と座標(X’,Y’,Z’)とに対して、ある数nが存在して、X’=nX、Y’=nY、Z’=nZなる関係があるならば、(X,Y,Z)=(X’,Y’,Z’)とするものである。アフィン座標(x,y)と射影座標(X,Y,Z)とは、
(x,y) → (x,y,1)
(X,Y,Z)→ (X/Y,Y/Z) (Z≠0の時)なる関係で、互いに対応している。ここで、記号→は、次に示す意味で用いている。集合S1の任意の元に、集合S2の一つの元が対応する時、S1→S2と表記する。
【0019】
以下、楕円曲線の演算は、全て、射影座標で行われるものとする。次に、射影座標上の楕円曲線の加算公式、2倍公式について説明する。これらの公式は、もちろん、前に述べたアフィン座標における加算公式、2倍公式と整合性のあるものである。冪倍の演算は、楕円曲線上の点の加算、2倍算の演算の繰り返しによって実現できる。この冪倍の演算のうち、加算の計算量は、楕円曲線のパラメータに依存しないが、2倍算の計算量は、楕円曲線のパラメータに依存する。
【0020】
ここでは、pを160ビットの素数とし、有限体GF(p)上の楕円曲線をE:y^2 = x^3 +ax+b とし、楕円曲線E上の元P、Qをそれぞれ、P=(X1,Y1,Z1)、 Q=(X2,Y2,Z2)で表す時、
R=(X3,Y3,Z3)=P+Qを以下のようにして、求める。
【0021】
(i)P≠Qの場合
この場合、加算の演算となる。
(step 1−1) 中間値の計算
以下を計算する。
(式8) U1=X1×Z2^2
(式9) U2=X2×Z1^2
(式10) S1=Y1×Z2^3
(式11) S2=Y2×Z1^3
(式12) H=U2−U1
(式13) r=S2−S1
(step 1−2) R=(X3,Y3,Z3)の計算
以下を計算する。
(式14) X3=−H^3−2×U1×H^2+r^2
(式15) Y3=−S1×H^3+r×(U1×H^2−X3)
(式16) Z3=Z1×Z2×H
【0022】
(ii)P=Qの場合(即ち、R=2P)
この場合、2倍算の演算となる。
(step 2−1) 中間値の計算
以下を計算する。
(式17) S=4×X1×Y1^2
(式18) M=3×X1^2+a×Z1^4
(式19) T=−2×S+M^2
(step 2−2) R=(X3,Y3,Z3)の計算
以下を計算する。
(式20) X3=T
(式21) Y3=−8×Y1^4+M×(S−T)
(式22) Z3=2×Y1×Z1
【0023】
次に、楕円曲線の加算、2倍算を行う場合の計算量について説明する。ここで、有限体GF(p)上の1回の乗算による計算量を1Mul、1回の2乗算による計算量を1Sqで表す。なお、一般のマイクロプロセッサにおいては、1Sq≒0.8Mulである。
【0024】
上記の例によると、P≠Qの場合に示されている楕円曲線上の加算の計算量は、式8〜式16において、乗算の回数及び2乗算の回数をカウントすることにより得られ、12Mul+4Sqである。これは、式8、9、10、11、14、15、16における加算の計算量は、それぞれ、1Mul+1Sq、1Mul+1Sq、2Mul、2Mul、2Mul+2Sq、2Mul、2Mulであることから明らかである。
【0025】
また、上記の例によると、P=Qの場合に示されている楕円曲線上の2倍算の計算量は、式17〜式22において、乗算の回数及び2乗算の回数をカウントすることにより得られ、4Mul+6Sqである。これは、式17、18、19、21、22における2倍算の計算量は、それぞれ、1Mul+1Sq、1Mul+3Sq、1Sq、1Mul+1Sq、1Mulであることから明らかである。
【0026】
なお、上記回数のカウントにおいて、例えば、式14のH^3については、
H^3=H^2×Hと展開できるので、H^3の計算量は、1Mul+1Sqとし、式18のZ1^4については、
Z1^4=(Z1^2)^2と展開できるので、Z1^4の計算量は、2Sqとする。
【0027】
また、式14のH^2については、前述のH^3の計算のプロセスにおいて、H^2が算出されているので、H^2の計算量は再度カウントしない。また、乗算の回数のカウントの際、ある値に小さい値を乗じて行われる乗算の回数は、カウントしない。その理由を以下に説明する。ここで言う小さい値とは、式8〜式22において、乗算の対象となる小さい固定値であり、具体的には、2、3、4、8などの値である。これらの値は、多くとも4ビットの2進数で表現できる。一方、その他の変数は、通常、160ビットの値を有している。
【0028】
一般に、マイクロプロセッサにおいて、乗数と被乗数との乗算は、被乗数のシフトと加算の繰り返しにより行われる。即ち、2進数で表現される乗数の各ビット毎に、このビットが1であるならば、2進数で表現される被乗数の最下位ビットが、このビットの存在する位置に一致するように、被乗数をシフトして、1つのビット列を得る。乗数の全ビットについて、このようにして得られた少なくとも1つのビット列を全て加算する。
【0029】
例えば、160ビットの乗数と160ビットの被乗数との乗算においては、160ビットの被乗数を160回シフトし、160個のビット列を得、得られた160個のビット列を加算する。一方、4ビットの乗数と160ビットの被乗数との乗算においては、160ビットの被乗数を4回シフトし、4個のビット列を得、得られた4個のビット列を加算する。
【0030】
乗算は、上記に示すようにして行われるので、乗算がある値に小さい値を乗じて行われる場合には、前記繰り返しの回数が少なくなる。従って、その計算量は少ないと見なせるので、乗算の回数にカウントしない。以上説明したように、楕円曲線の2倍算を行う場合において、式18には、楕円曲線のパラメータaが含まれている。このパラメータaの値として、例えば、小さい値を採用すると、楕円曲線上の2倍算の計算量は、1Mul分削減でき、3Mul+6Sqとなる。なお、加算に関しては、楕円曲線のパラメータを変化させても、計算量は変わらない。
【0031】
5.暗号に適した楕円曲線の選択
次に暗号に適した楕円曲線を選択する方法について説明する。なお、その詳細については、「IEEE P1363 Working draft」(1997年2月6日、IEEE発行)に詳しく書かれている。暗号に適した楕円曲線は、以下のステップを繰り返すことにより得られる。
【0032】
(step 1) 任意の楕円曲線の選択
有限体GF(p)上の任意のパラメータa、bを選ぶ。ここで、a、bは、式23を満たし、pは素数である。
(式23) 4×a^3+27×b^2 ≠0 (mod p)
選択されたa、bを用いて、楕円曲線をE:y^2=x^3+a×x+bとする。
【0033】
(step 2) 暗号に適した楕円曲線であるかどうかを判定するために、楕円曲線Eの元の個数#E(GF(p))を計算し、
(条件1) #E(GF(p))が大きな素数で割り切れ、かつ、
(条件2) #E(GF(p))−(p+1)≠0,−1である場合に、楕円曲線Eを採用する。
【0034】
上記に説明したように、楕円曲線のパラメータaとして固定的に小さい値を選択すると、楕円曲線の冪倍の演算において計算量を削減できるものの、パラメータを予め固定的に取ることにより、暗号に適した安全な楕円曲線を選択しにくいという問題点がある。
【0035】
また逆に、上記に説明した楕円曲線の選択方法を用いて、暗号に適した安全な楕円曲線を選択すると、楕円曲線のパラメータaとして小さい値を選択できるとは限らず、計算量を削減できないという問題点がある。このように、暗号に適した安全な楕円曲線を選択し、その楕円曲線での演算量を削減するためには、相互に矛盾し対立する問題点を有する。
【0036】
6.従来の楕円曲線変換装置
上記問題点を解決するために、従来の「楕円曲線変換装置、楕円曲線変換方法及び楕円曲線利用装置」として、以下の楕円曲線変換装置が示されている(例えば、特許第3050313号公報)。この従来の楕円曲線変換装置は、入力された任意の楕円曲線E:y^2=x^3+ax+bを、その位数を変えることなく、小さな係数a(a=−3など)を持つ楕円曲線E:y^2=x^3+ax+bに変換する装置である。つまり、安全性を維持したまま、より計算量を削減することが可能な楕円曲線を生成する。
この装置は、入力の楕円曲線をそれと同型な楕円曲線に変換している。
【0037】
楕円曲線変換装置100は、図12に示すように、パラメータ受信部110、変換係数取得部120、変換楕円曲線算出部130、パラメータ送出部140から構成される。
【0038】
パラメータ受信部110は、外部の装置から、楕円曲線のパラメータa、bと、前記楕円曲線上の元Gと、素数pとを受信する。ここで、pは、160ビットの素数である。
【0039】
前記外部の装置には、公開鍵暗号を用いる暗号装置、復号装置、デジタル署名装置、デジタル署名検証装置、鍵共有装置などが含まれる。前記外部の装置は、公開鍵暗号の安全性の根拠として楕円曲線上の離散対数問題を用いており、前記楕円曲線を有している。ここで、有限体GF(p)上の任意に構成される前記楕円曲線は、E:y^2=x^3+ax+bで示され、前記元Gは、前記楕円曲線の任意に構成され、G=(x0,y0)で表される。
【0040】
変換係数取得部120は、関数T(i)を有する。関数T(i)は、i=0、1、2、3、4の時、それぞれ、−3、1、−1、2、−2の値を有する。また、関数T(i)は、i=5、6、7、8、9、10、11、…の時、3、4、−4、5、−5、6、−6、…の値を有する。
【0041】
変換係数取得部120は、i=0から始めて、iの値を1ずつ加算しながら、(式24) −2^31+1≦T(i)≦2^31−1
を満たし、かつ、
(式25) T(i)=t^4×a (mod p)
となる変換係数tであって、有限体GF(p)上の元である変換係数tを算出する。
【0042】
ここで、式24は、T(i)が32ビット以下になるように取られることを示している。なお、関数T(i)は、i=0の時に、−3の値を有しており、変換係数取得部120は、i=0から始めて、iの値を1ずつ加算しながら、関数T(i)の値を参照するので、最初に−3の値が参照される。
【0043】
また、関数T(i)は、i=0の時に、−3の値を有していることを除いて、絶対値の小さい値から大きい値へと順に値を有しているので、絶対値の小さい値から順に参照することができる。
【0044】
変換楕円曲線算出部130は、有限体GF(p)上に構成される変換楕円曲線Et:y’^2=x’^3+a’×x’+b’のパラメータa’、b’をそれぞれ次のようにして、算出する。
(式26) a’=a×t^4
(式27) b’=b×t^6
【0045】
また、変換楕円曲線算出部130は、元Gに対応する変換楕円曲線Et上の元Gt=(xt0,yt0)を次のようにして、算出する。
(式28) xt0=t^2×x0
(式29) yt0=t^3×y0
【0046】
なお、楕円曲線E上の任意の点は、以上のようにして生成されたパラメータa’、b’で定まる変換楕円曲線Et上の1点に変換される。
【0047】
パラメータ送出部140は、前記算出された変換楕円曲線Etのパラメータa’、b’と、元Gt(xt0,yt0)とを前記外部の装置へ送出する。
このような従来の楕円曲線変換装置100の動作は以下の通りである。
【0048】
パラメータ受信部110は、外部の装置から素数pと、楕円曲線Eのパラメータa及びbとを受け取り(ステップS151)、前記楕円曲線上の元Gを受け取る(ステップS152)。次に、変換係数取得部120は、変換係数tを算出し(ステップS153)、変換楕円曲線算出部130は、有限体GF(p)上に構成される変換楕円曲線Etのパラメータa’、b’と、元Gに対応する変換楕円曲線Et上の元Gt=(xt0,yt0)を算出し(ステップS154)、パラメータ送出部140は、前記算出された変換楕円曲線Etのパラメータa’、b’と、元Gt(xt0,yt0)とを前記外部の装置へ送出する(ステップS155)。
【0049】
また、変換係数取得部120の詳細な動作は以下の通りである。
変換係数取得部120は、iに0の値を設定する(ステップS161)。次に、変換係数取得部120は、関数T(i)について、
−2^31+1≦T(i)≦2^31−1
を満たすかどうかを判定し、満たさないならば(ステップS162)、処理を終了する。満たすならば(ステップS162)、
T(i)=t^4×a (mod p)
となる変換係数tを算出し(ステップS163)、算出された変換係数tが有限体GF(p)上の元であるかどうかを判定し、有限体GF(p)上の元であるなら(ステップS164)、処理を終了する。有限体GF(p)上の元でないなら(ステップS164)、iに1を加算し(ステップS165)、再度ステップS162へ制御を戻す。
【0050】
次に、変換楕円曲線算出部130は、以下の動作をする。
変換楕円曲線算出部130は、有限体GF(p)上に構成される変換楕円曲線Etのパラメータa’=a×t^4を算出し(ステップS171)、パラメータb’=b×t^6を算出する(ステップS172)。また、変換楕円曲線算出部130は、元Gに対応する変換楕円曲線Et上の元Gt=(xt0,yt0)として、xt0=t^2×x0を算出し(ステップS173)、yt0=t^3×y0を算出する(ステップS174)。
【0051】
この従来の楕円曲線変換装置は、入力した楕円曲線をそれと同型な楕円曲線に変換している。ステップS164において、T(i)=−3とした時、式23のtがGF(p)の元である場合のみ、y^2=x^3−3x+bの方程式をもつ楕円曲線に変換できる。
【0052】
しかし、−3=a×t^4となるためには、−3/aのGF(p)における4乗根が存在しなければならない。任意のxについて、xがGF(p)で2乗根が存在する確率は1/2であるので、4乗根が存在する確率は「2乗根の2乗根が存在する確率」であるから、1/2×1/2=1/4である。従って、上記tがGF(p)の元である確率は、1/4と低く、y^2=x^3−3x+bの方程式をもつ楕円曲線に必ずしも変換できないという問題点がある。
【0053】
7.モンゴメリ型楕円曲線
上記の楕円曲線変換装置は、その方程式がy^2=x^3+a×x+bの形をしている楕円曲線だけを対象としている。このような楕円曲線はワイヤーシュトラス型楕円曲線と呼ばれる。
【0054】
一方、方程式がB×y^2=x^3+A×x^2+xの形をしている楕円曲線をモンゴメリ型楕円曲線と呼ぶ。この楕円曲線は、点の加算や2倍算が高速であることが知られており、それぞれの計算量は、4Mul+2Sq、3Mul+2Sqになる。上記5で述べたようにワイヤーシュトラス型楕円曲線の点の加算、2倍算の計算量は、それぞれ、12Mul+4Sq、4Mul+6Sqである。よって、モンゴメリ型楕円曲線の方が点の加算、2倍算が高速である(例えば、非特許文献3)。
【0055】
一方、安全な楕円曲線を生成するための方法において、位数計算を行い、安全であるかを判定することによって安全な楕円曲線を生成することがある。ここでの位数計算で、使用する楕円曲線はワイヤーシュトラス型である。ゆえに、この方法で生成できる楕円曲線もワイヤーシュトラス型に限る。
【0056】
上記従来の楕円曲線変換装置と同様の考え方で、楕円曲線の同型を利用することにより、ワイヤーシュトラス型楕円曲線からモンゴメリ型楕円曲線に変換することが考えられる。しかし、上記従来の楕円曲線変換装置においてa=−3を満たす楕円曲線を捜したのと同様で、必ずしも変換可能ではない。即ち、モンゴメリ型楕円曲線に変換できないワイヤーシュトラス型楕円曲線が存在する。上記のように同型を利用する場合は、文献「楕円曲線暗号演算の計算法について」(伊豆 哲也、SCIS’99、275〜280ページ)より、ワイヤーシュトラス型楕円曲線からモンゴメリ楕円曲線に変換可能である確率は19/48程度であり、必ずしもモンゴメリ型楕円曲線に変換できないという問題点がある。
【0057】
【特許文献1】
特許第3050313号公報
【0058】
【非特許文献1】
ニイルコブリッツ著“ア コウス イン ナンバア セオリイ アンド クリプトグラヒイ“(Neal Koblitz,A Course in Number theory and Cryptography”,Springer-Verlag,1987)
【0059】
【非特許文献2】
“Efficient elliptic curve exponentiation”(Miyaji, Ono, and Cohen著、Advances in cryptology-proceedings of ICICS, 97, Lecture notes in computer science, 1997, Springer-verlag, 282-290.)
【0060】
【非特許文献3】
“Speeding the Pollar and Elliptic Curve Methods of Factorization”(P.L.Montgomery著,Math. of Comp. 48,1987,pp.243-264)
【0061】
【発明が解決しようとする課題】
以上のように、従来の楕円曲線変換装置は、入力された任意な楕円曲線を、その安全性を維持したまま、より高速化が可能な楕円曲線y^2=x^3−3x+b(ワイヤーシュトラス型楕円曲線)に変換し得るものの、必ずしも変換可能とは限らないという問題点がある。また、ワイヤーシュトラス型楕円曲線からモンゴメリ型楕円曲線への変換についても、必ずしも変換可能とは限らないという問題点がある。
【0062】
そこで、本発明では、任意の楕円曲線を、その安全性を維持したまま、より計算量が削減される楕円曲線y^2=x^3−3x+bに、極めて高い確率で、変換することができる楕円曲線変換装置等を提供することを目的とする。
【0063】
さらに、本発明は、任意のワイヤーシュトラス型楕円曲線を、その安全性を維持したまま、より計算量が削減されるモンゴメリ型楕円曲線に、極めて高い確率で、変換することができる楕円曲線変換装置等を提供することをも目的とする。
【0064】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る楕円曲線変換装置は、有限体F上の第1楕円曲線を有限体F上の第2楕円曲線に変換する楕円曲線変換装置であって、前記第1楕円曲線と位数が同じで、かつ、一定関係を有する楕円曲線群であるL1次同種な楕円曲線群の中から、楕円曲線上での演算の計算量が削減される高速化条件を満たす楕円曲線を探索する探索手段と、前記探索手段による探索により、前記高速化条件を満たす楕円曲線が探索されたか否かを判定する判定手段と、前記判定手段によって前記高速化条件を満たす楕円曲線が探索されたと判断された場合に、当該楕円曲線を前記第2楕円曲線として出力する出力手段とを備えることを特徴とする。
【0065】
ここで、前記探索手段は、前記判定手段によって前記高速化条件を満たす楕円曲線が探索されなかったと判断された場合には、前記高速化条件を満たす楕円曲線の探索を繰り返してもよい。
【0066】
例えば、前記探索手段は、前記判定手段によって前記高速化条件を満たす楕円曲線が探索されなかったと判断された場合には、前記第1楕円曲線とL2次同種な楕円曲線群の中から、前記高速化条件を満たす楕円曲線を探索してもよいし、前記探索手段は、前記第1楕円曲線と位数が同じで、かつ、L1次同種な楕円曲線群の中から、楕円曲線上での演算の計算量が削減される高速化条件を満たす楕円曲線の候補となる暫定的な楕円曲線を特定し、前記判定手段は、前記探索手段で特定された暫定的な楕円曲線が前記高速化条件を満たすか否かを判定し、前記探索手段は、前記判定手段によって前記暫定的な楕円曲線が前記高速化条件を満たさないと判断された場合には、前記暫定的な楕円曲線を新たな第1楕円曲線とし、その第1楕円曲線と位数が同じで、かつ、一定関係を有する楕円曲線群であるL1次同種な楕円曲線群の中から、楕円曲線上での演算の計算量が削減される高速化条件を満たす楕円曲線を探索してもよい。
【0067】
また、前記高速化条件は、前記楕円曲線の方程式y^2=x^3+a×x+bにおいてa=−3を満たすことであってもよいし、前記高速化条件は、前記楕円曲線がモンゴメリ型楕円曲線であることであってもよい。
【0068】
また、本発明に係る楕円曲線利用装置は、楕円曲線変換装置で得られた楕円曲線を利用する楕円曲線利用装置であって、前記楕円曲線を特定するパラメータを記憶する記憶手段と、有限体Fの構造と前記記憶手段に記憶されているパラメータとで定まる楕円曲線を利用する暗号、復号、デジタル署名、デジタル署名検証又は鍵共有を行う利用手段とを備え、前記楕円曲線変換装置は、有限体F上の第1楕円曲線を有限体F上の第2楕円曲線に変換する楕円曲線変換装置であって、前記第1楕円曲線と位数が同じで、かつ、一定関係を有する楕円曲線群であるL1次同種な楕円曲線群の中から、楕円曲線上での演算の計算量が削減される高速化条件を満たす楕円曲線を探索する探索手段と、前記探索手段による探索により、前記高速化条件を満たす楕円曲線が探索されたか否かを判定する判定手段と、前記判定手段によって前記高速化条件を満たす楕円曲線が探索されたと判断された場合に、当該楕円曲線を前記第2楕円曲線として出力する出力手段とを備えることを特徴とする。
【0069】
また、本発明に係る楕円曲線生成装置は、有限体F上の楕円曲線を生成する楕円曲線生成装置であって、有限体F上の第1楕円曲線を生成する生成手段と、生成された前記第1楕円曲線と位数が同じで、かつ、一定関係を有する楕円曲線群であるL1次同種な楕円曲線群の中から、楕円曲線上での演算の計算量が削減される高速化条件を満たす楕円曲線を探索する探索手段と、前記探索手段による探索により、前記高速化条件を満たす楕円曲線が探索されたか否かを判定する判定手段と、前記判定手段によって前記高速化条件を満たす楕円曲線が探索されたと判断された場合に、当該楕円曲線を前記第2楕円曲線として出力する出力手段とを備えることを特徴とする。
【0070】
なお、本発明は、上記楕円曲線変換装置、楕円曲線利用装置及び楕円曲線生成装置として実現することができるだけでなく、それらの装置が備える特徴的な手段をステップとする楕円曲線変換方法、楕円曲線利用方法及び楕円曲線生成方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現することもできる。そして、そのプログラムは、CD−ROM等の記録媒体やインターネット等の伝送媒体を介して広く流通させることができるのは言うまでもない。
【0071】
【発明の実施の形態】
(実施の形態1)
本発明に係る実施の形態1における楕円曲線変換装置200について説明する。
【0072】
図1は、実施の形態1における楕円曲線変換装置200の構成を示す機能ブロック図である。楕円曲線変換装置200は、コンピュータ上で実行されるプログラム又はLSI等の電子回路で実現される装置であり、機能的に、楕円曲線生成部210と、楕円曲線条件判定部220と、楕円曲線出力部230から構成される。楕円曲線変換装置200は、有限体GF(p)上楕円曲線EI:y^2=x^3+a×x+bのパラメータp,a,bと楕円曲線EIの位数mEIを入力とし、それと同種なGF(p)上の楕円曲線EO:y^2=x^3−3×x+b’のパラメータb’を出力する。「同種」については後述する。ここで、x×yはxとyの積を示す。
【0073】
楕円曲線生成部210は、入力される任意の楕円曲線を受け取り、その楕円曲線と同種な楕円曲線を生成し、楕円曲線条件判定部220及び楕円曲線出力部230に出力する。具体的には、楕円曲線生成部210は、有限体GF(p)上の楕円曲線EI:y^2=x^3+a×x+bのパラメータp,a,bと楕円曲線EIの位数mEIを入力とし、それと同種な楕円曲線EI2:y^2=x^3+a2×x+b2を決定し、そのパラメータa2,b2を楕円曲線条件判定部220及び楕円曲線出力部230に出力する。
【0074】
楕円曲線条件判定部220は、楕円曲線生成部210が出力した楕円曲線が係数a2=−3を満たすか否かを判定し、満たさない場合は、その旨を楕円曲線生成部210に通知することで、楕円曲線生成部210に、いま出力した楕円曲線を新たな入力楕円曲線として、再び同様の処理(新たな楕円曲線の生成)繰り返させる。一方、満たす場合は、その旨を楕円曲線出力部230に通知する。
【0075】
楕円曲線出力部230は、楕円曲線条件判定部220から条件を満たす旨の通知を受け取った場合に、楕円曲線生成部210から出力された楕円曲線を外部に出力する。具体的には、最終的な楕円曲線EO:y^2=x^3−3×x+b’のパラメータb’として、楕円曲線生成部210から受け取った楕円曲線EI2のパラメータb2を外部に出力する。
【0076】
次に、以上のように構成された本実施の形態における楕円曲線変換装置200の動作を説明する。
図2は、楕円曲線変換装置200の動作を示すフローチャートである。楕円曲線生成部210は、入力された任意の楕円曲線を受け取り(ステップS200)、その楕円曲線と同種な楕円曲線を生成し(ステップS201)、生成した楕円曲線を楕円曲線条件判定部220及び楕円曲線出力部230に出力する。楕円曲線条件判定部220は、楕円曲線生成部210が出力した楕円曲線がa2=−3を満たすか否かを判定する(ステップS202)。
【0077】
判定の結果、a2=−3を満たさない場合は(ステップS202でNo)、楕円曲線条件判定部220は、その旨を楕円曲線生成部210に通知し、その通知を受けた楕円曲線生成部210は、いま生成した楕円曲線を入力の楕円曲線として、再び、同種な他の楕円曲線の生成を繰り返す(ステップS201〜S202)。
【0078】
一方、判定の結果、a2=−3を満たす場合は(ステップS202でYes)、楕円曲線条件判定部220は、その旨を楕円曲線出力部230に通知し、その通知を受けた楕円曲線出力部230は、楕円曲線生成部210から出力された楕円曲線EI2のパラメータb2をb’として外部に出力する(ステップS203)。
【0079】
図3〜図4は、図2における楕円曲線生成部210の処理(ステップS201)の詳細な手順を示すフローチャートである。
楕円曲線生成部210は、以下の手順により、入力された楕円曲線EI:y^2=x^3+a×x+bから、それと同種な楕円曲線EI2:y^2=x^3+a2×x+b2を生成する。
【0080】
ステップS301:以下の式より、楕円曲線EIのj不変数jEIを求める。
jEI=1728×(4×a^3+27×b^2)/(4×a^3)
ステップS302:素数Lに初期値(2)をセットする。
ステップS303:素数Lに対応するモジュラー多項式ΦL(X、Y)を読み出す。
【0081】
ステップS304:ΦL(X、Y)=0をYを未定変数として、有限体GF(p)上で解く。
ステップS305(S305a、S305b):解が2個以上ない場合は、素数Lに、次に大きな素数をセットし、ステップS303へ。なお、素数Lについては、予め記憶している素数の系列(2,3,5,7,・・・)から小さい順に取り出した値をセットする。
【0082】
ステップS306:上記解の中から一つ選び、Sとする。
ステップS307:ΦL(X、S)=0をXを未定変数として、有限体GF(p)上で解く。
ステップS308:上記解の中でjEIと等しい解以外の解を取り、jEI2とする。
【0083】
ステップS309:(1−1728/jEI2)が法pで平方剰余であるか否かを判定する。平方剰余である場合ステップS310へ。それ以外は、ステップS312へ。
ステップS310:(1−1728/jEI2)のGF(p)における平方根を求め、Rとする。
ステップS311:a2=−3,b2=2×Rとする。ステップS313へ。
【0084】
ステップS312:以下の式より、a2及びb2を求める。
a2=3×jEI2/(1728−jEI2)
b2=2×jEI2/(1728−jEI2)
ステップS313:楕円曲線y^2=x^3+a2×x+b2上のGF(p)を座標としてもつ点を探索し、PEI2とする。
【0085】
ステップS314(S314a、S314b):mEI*PEI2=Oを満たすか否か判定する。但し、OはEI2の零元であり、mEI*PEI2はPEI2のmEI倍の点である。満たす場合は、a2,b2を出力し終了。それ以外はステップS315へ。
【0086】
ステップS315(S315a、S315b):法pで平方非剰余の元を選びcとする。以下の式より楕円曲線y^2=x^3+a2×x+b2のtwist:y^2=x^3+a2’×x+b2’を求める。twistについては後述する。
a2’=c^2×a2
b2’=c^3×b2
ステップS316:a2’とb2’を、a2,b2として出力し終了。
【0087】
なお、楕円曲線生成部210は、楕円曲線条件判定部220からa2≠3の通知を受けた場合には、直前に生成した楕円曲線EI2を新たに入力された楕円曲線EIとして(ステップS320)、再び、同様の処理(ステップS301〜S316)を繰り返す。
【0088】
ここで、本楕円曲線変換装置200の楕円曲線生成部210及び楕円曲線条件判定部220での処理の意義について、基盤となる数学用語とともに、説明する。なお、以下の用語については、文献「The Arithmetic of Elliptic Curves」(J.H.Silverman著、GTM106、Springer-verlag、1986年)で詳述されている。
【0089】
(楕円曲線の位数)
有限体F上の楕円曲線E上の点を(X、Y)とする時、X、Yの両方の座標がFに属する時、その点をF有理点という。F有理点全体に楕円曲線の群の零元Oを加えた集合をE(F)と書く。E(F)は楕円曲線の加算について群をなすことが知られている。E(F)の元の個数を楕円曲線の位数と呼ぶ。現在の楕円曲線暗号の安全性は、使用する楕円曲線の位数に依存している。即ち、有限体Fが同じ、かつ楕円曲線の位数が同じである楕円曲線同士は安全性が等しい。
【0090】
(楕円曲線の同型)
有限体F上の楕円曲線Eの群E(F)と楕円曲線E’の群E’(F)が群準同型であり、1対1対応する場合、楕円曲線EとE’は「同型」であるという。E:y^2=x^3+a×x+bに対し、有限体Fの元cによって与えられる楕円曲線E’:y^2=x^3+c^4×a×x+c^6×bは、(x,y)→(cx,cy)によって同型であることがいえる。
【0091】
(楕円曲線の同種)
有限体F上の楕円曲線E:y^2=x^3+a×x+bに対し、楕円曲線の位数がEと同じである楕円曲線E’’をEと同種な楕円曲線と呼ぶ。また、楕円曲線EとE’’が位数が等しい場合、楕円曲線EとE’’は同種であるという。同種については、上記文献でも触れられているが、特に、文献「Isogeny cycles and the Schoof-Elkies-Atkin algorithm」(J.-M.Couveignes,L.Dewaghe and F.Morain著,Research Report LIX/RR/96/03,Ecole Polytechnique-LIX,1996)で詳述されている。
【0092】
(同種写像とモジュラー多項式)
同種同士の楕円曲線の間には、同種写像が存在する。同種写像φ:E→E’’において、E’’の零元O’’に上記写像によって移るE上の点の個数をLとする時、φはL次同種写像とよび、楕円曲線EとE’’はL次同種であるという。楕円曲線EとL次同種な楕円曲線を求めるためにモジュラー多項式が使用できる。モジュラー多項式はLのみに依存する2変数多項式である。楕円曲線変換装置200内の楕円曲線生成部210によるステップS304からS308では、モジュラー多項式を用いて楕円曲線EIとL次同種な楕円曲線を求めている。モジュラー多項式及びモジュラー多項式の求め方については、特に、文献「Calcul du nombre de points sur une courbe elliptique dans un corps fini: aspects algorithmiques」(F.Morain著,J. Theor. Nombres Bordeaux 7,1995,255-282)、文献「Counting points on elliptic curves over finite fields」(R.Schoof著,J. Theor. Nombres Bordeaux 7,1995,219-254)で詳述されている。
【0093】
(楕円曲線のj不変数)
楕円曲線のパラメータとしてj不変数がある。楕円曲線E:y^2=x^3+a×x+bのj不変数は以下の式で与えられる。
【0094】
j=1728×4×a^3/(4×a^3+27×b^2)
楕円曲線Eと、それと同型な楕円曲線E’のj不変数は等しい。
【0095】
(楕円曲線のtwist)
上記と逆に楕円曲線EとE’のj不変数が等しい時は、EとE’が同型であるか、または、E’がEのtwistであるかのどちらかである。楕円曲線E:y^2=x^3+a×x+bに対し、有限体Fの元cによって与えられる楕円曲線Et:y^2=x^3+a×c^2×x+b×c^3をEのtwistと呼ぶ。上記で述べたように、EとEtのj不変数は等しい。EとEのtwistは、一般に位数は異なる。
【0096】
楕円曲線生成部210によるステップS304からS308ではL次同種な楕円曲線EI2を求めているが、j不変数から楕円曲線を求めているため、求めたいL次同種な楕円曲線EI2のtwistを求めている可能性がある。ステップS314では、求めたいL次同種な楕円曲線が得られているかを判定するため、入力の楕円曲線EIと位数が等しいかをチェックしている。そこで、等しいと判定されない場合に、y^2=x^3+a2×x+b2のtwistを計算している。
【0097】
以上の説明から分かるように、楕円曲線暗号の安全性は位数に依存する。そして、本楕円曲線変換装置200は、入力された楕円曲線を同種な楕円曲線、即ち、位数が等しい楕円曲線に変換しているため、安全性を保持した変換を行っていると言える。
【0098】
また、上記特許第3050313号に係る従来の楕円曲線変換装置は、入力された楕円曲線に対して、a=−3を満たす楕円曲線に1/4の確率でしか変換できなかったが、本実施の形態1の楕円曲線変換装置200は、同種の楕円曲線、つまり、位数が等しい極めて数多くの楕円曲線を対象として探索しているので、位数が等しい楕円曲線の中にa=−3のものがあれば必ず変換可能になる。
【0099】
以上より、実施の形態1における楕円曲線変換装置によって、任意の楕円曲線を、その安全性を維持したまま、より計算量が削減される、a=−3の楕円曲線に極めて高い確率で変換可能になる。
(実施の形態2)
本発明に係る実施の形態2における楕円曲線変換装置400について説明する。
【0100】
図5は、実施の形態2における楕円曲線変換装置400の構成を示す機能ブロック図である。楕円曲線変換装置400は、コンピュータ上で実行されるプログラム又はLSI等の電子回路で実現される装置であり、機能的に、楕円曲線生成部410と、楕円曲線条件判定部420と、楕円曲線出力部430から構成される。楕円曲線変換装置400は、有限体GF(p)上のワイヤーシュトラス型楕円曲線EI:y^2=x^3+a×x+bのパラメータp,a,bとその楕円曲線EIの位数mEIを入力とし、それと同種なGF(p)上のモンゴメリ型楕円曲線EO:B’×y^2=x^3+A’×x^2+xのパラメータA’,B’を出力する。
【0101】
楕円曲線生成部410は、入力される任意のワイヤーシュトラス型楕円曲線を受け取り、その楕円曲線と同種なモンゴメリ型楕円曲線を探索し、あれば、その楕円曲線を生成し、楕円曲線条件判定部420及び楕円曲線出力部430に出力する。具体的には、楕円曲線生成部410は、入力される任意のワイヤーシュトラス型楕円曲線EI:y^2=x^3+a×x+bのパラメータp,a,bと楕円曲線EIの位数mEIを入力とし、それと同種なモンゴメリ型楕円曲線EI2:B2×y^2=x^3+A2×x^2+xを探索し、見つかった場合に、その楕円曲線のA2、B2を出力し、見つからなければFalseを出力する。
【0102】
楕円曲線条件判定部420は、楕円曲線生成部410からの出力値が楕円曲線のパラメータであるかFalseであるかを判定し、Falseの場合には、その旨を楕円曲線生成部410に通知することで、楕円曲線生成部410に、他の同種なモンゴメリ型楕円曲線を再び生成させる。一方、Falseでない場合は、その旨を楕円曲線出力部430に通知する。
【0103】
楕円曲線出力部430は、楕円曲線条件判定部420から楕円曲線生成部410の出力値がFalseでない旨の通知を受け取った場合に、楕円曲線生成部410から出力された楕円曲線EI2:B2×y^2=x^3+A2×x^2+xのパラメータA2、B2をA’、B’として外部に出力する。
【0104】
次に、以上のように構成された本実施の形態における楕円曲線変換装置400の動作を説明する。
図6は、楕円曲線変換装置400の動作を示すフローチャートである。まず、楕円曲線生成部410は、入力されたワイヤーシュトラス型楕円曲線を受け取り(ステップS400)、その楕円曲線と同種なモンゴメリ型楕円曲線を探索し(ステップS401)、見つかった場合にはその楕円曲線(パラメータA2,B2)を、見つからなかった場合にはその旨(False)を楕円曲線条件判定部420及び楕円曲線出力部430に出力する。楕円曲線条件判定部420は、楕円曲線生成部410でモンゴメリ型楕円曲線が探索されたか否か、つまり、楕円曲線生成部410の出力がFalseであるか否かを判定し(S402)、探索されなかった場合、つまり、Falseである場合は(ステップS402でNo)、その旨を楕円曲線生成部410に通知する。
【0105】
その通知を受けた楕円曲線生成部410は、入力されたワーヤーシュトラス型楕円曲線と同種な他のモンゴメリ型楕円曲線の探索を繰り返す(S401〜S402)。このとき、楕円曲線生成部410は、これまでとは異なる次数の同種写像(L次同種写像)を用いて、入力されたワイヤーシュトラス型楕円曲線から他の同種なモンゴメリ型楕円曲線の生成を試みる。
【0106】
一方、楕円曲線変換装置400での探索に成功した場合には(ステップS402でYes)、楕円曲線条件判定部420は、その旨を楕円曲線出力部430に通知する。そして、その通知を受けた楕円曲線出力部430は、楕円曲線生成部410から出力されているモンゴメリ型楕円曲線EI2のパラメータA2、B2をA’、B’として出力する(ステップS403)。
【0107】
図7〜図8は、図6における楕円曲線生成部410の処理(ステップS401)の詳細な手順を示すフローチャートである。
楕円曲線生成部410は、以下の手順により、入力された楕円曲線EI:y^2=x^3+a×x+bのパラメータa,bとその楕円曲線EIの位数mEIから、それと同種なモンゴメリ型楕円曲線EI2:B2×y^2=x^3+A2×x^2+xを探索し、探索できた場合には、その係数A2、B2を出力し、なければFalseを出力する。
【0108】
ステップS501:以下の式より、楕円曲線EIのj不変数jEIを求める。
jEI=1728×(4×a^3+27×b^2)/(4×a^3)
ステップS502:素数Lに初期値(2)をセットする。
ステップS503:素数Lに対応するモジュラー多項式ΦL(X、Y)を読み出す。
【0109】
ステップS504:ΦL(X、Y)=0をYを未定変数として、有限体GF(p)上で解く。
ステップS505(S505a、S505b):解が2個以上ない場合は、素数Lに、次に大きな素数をセットし、ステップS503へ。なお、素数Lについては、予め記憶している素数の系列(2,3,5,7,・・・)から小さい順に取り出した値をセットする。
【0110】
ステップS506:上記解の中から一つ選び、Sとする。
ステップS507:ΦL(X、S)=0をXを未定変数として、有限体GF(p)上で解く。
ステップS508:上記解の中でjEIと等しい解以外の解を取り、jEI2とする。
【0111】
ステップS509:以下の式を有限体GF(p)上で解く。
X^6−9×X^4+27×(1―jEI2/1728)+27×(4×jEI2/1728−1)=0
ステップS510(S510a、S510b):上記式の解がある場合は、解の一つをA2としてステップS511へ。それ以外は、ステップ512へ。
【0112】
ステップS511:B2=1とする。ステップS513へ。
ステップS512:Falseを出力し終了。
ステップS513:楕円曲線y^2=x^3+A2×x^2+x上のGF(p)を座標としてもつ点を探索し、PEI2とする。
ステップS514(S514a、S514b):mEI*PEI2=Oを満たすか否か判定する。但し、OはEI2の零元である。満たす場合は、A2,B2を出力し終了。それ以外はステップS515へ。
【0113】
ステップS515(S515a、S515b):法pで平方非剰余の元を選びcとする。以下の式より楕円曲線y^2=x^3+A2×x^2+xのtwist:B2’×y^2=x^3+A2’×x^2+xを求める。
A2’=A2
B2’=c^3
ステップS516:A2’とB2’を、A2,B2として出力し終了。
【0114】
なお、楕円曲線生成部410は、楕円曲線条件判定部420から楕円曲線生成部410の出力がFalseである旨の通知を受けた場合には、直前の素数Lの次に大きな素数を素数Lにセットした後に(ステップS505b)、上記ステップS503からの処理を繰り返す。
【0115】
このように、楕円曲線変換装置400は、入力された楕円曲線を同種な楕円曲線、即ち、位数が等しい楕円曲線に変換しているため、楕円曲線変換装置400は安全性を保持した変換を行っていると言える。
【0116】
ここで、上記特許第3050313号に係る従来の楕円曲線変換装置と同じ考えに基づき、入力されたワイヤーシュトラス型楕円曲線を同型のモンゴメリ型楕円曲線に変換した場合の変換方法と本実施の形態における変換方法とを比較する。従来の楕円曲線変換装置は、入力された楕円曲線をモンゴメリ型楕円曲線に19/48の確率でしか変換できない。一方、本実施の形態の楕円曲線変換装置400は、同種、即ち、位数が等しい楕円曲線に変換するため、位数が等しい楕円曲線の中にモンゴメリ型楕円曲線があれば必ず変換可能になる。
【0117】
よって、本実施の形態における楕円曲線変換装置によって、任意のワイヤーシュトラス型楕円曲線を、その安全性を維持したまま、より計算量が削減される、モンゴメリ型楕円曲線に極めて高い確率で変換可能になる。
【0118】
次に、上記実施の形態1及び実施の形態2に共通する本発明の基本的なアルゴリズムを上記特許第3050313号に係る従来の楕円曲線変換装置と対比して説明する。図9(a)は、上記従来の楕円曲線変換装置による楕円曲線の探索手法を示す図であり、図9(b)は、実施の形態1における楕円曲線変換装置200による楕円曲線の探索手法を示す図であり、図9(c)は、実施の形態2における楕円曲線変換装置400による楕円曲線の探索手法を示す図である。なお、これらの図において、外側に位置する大きな枠500は、楕円曲線変換装置に入力された楕円曲線と同種の楕円曲線の集合を示し、黒丸501は、楕円曲線変換装置に入力された楕円曲線、枠502は、その楕円曲線501と同型の楕円曲線の集合を示し、枠510〜512及び520〜522は、入力された楕円曲線501と図示されているようなL次同種の関係にある楕円曲線の集合を示す。
【0119】
図9(a)に示されるように、従来の楕円曲線変換装置は、入力された楕円曲線501と同型な楕円曲線群502の中から、一定条件(a2=−3)を満たす楕円曲線を探索している。一方、本発明に係る実施の形態1における楕円曲線変換装置200は、図9(b)に示されるように、入力された楕円曲線501とL1次同種な楕円曲線群510の中から、a2=−3という高速化条件を満たす楕円曲線を探索し、見つからなかった場合に、そのL1次同種な楕円曲線510とさらにL1次同種な楕円曲線群511(つまり、楕円曲線501とL1^2次同種な楕円曲線の中から探索する、という探索を同種な楕円曲線の範囲で繰り返している。
【0120】
よって、実施の形態1の楕円曲線変換装置200は、同型という狭い範囲に属する楕円曲線群を対象として目的の楕円曲線を探索する従来の楕円曲線変換装置と異なり、同種というより広い範囲に属する楕円曲線群を対象として目的の楕円曲線を探索しているので、同種の楕円曲線群の中に目的の楕円曲線が存在する限り、100%の確率で、目的の楕円曲線を探索し、生成することができる。
【0121】
なお、入力された楕円曲線501に対してL1次同種な写像を施して得られた楕円曲線510に対して、再び、L1次同種な写像を施して得られる楕円曲線511は、元の楕円曲線501に対してL1^2次同種な写像を施すことに等しい。
【0122】
また、図9(c)に示されるように、本発明の実施の形態2における楕円曲線変換装置400は、入力された楕円曲線501とL1次同種な楕円曲線群520の中から、モンゴメリ型楕円曲線という高速化条件を満たす楕円曲線を探索し、見つからなかった場合には、今度は、入力された楕円曲線501をL2次同種な楕円曲線群521の中から探索する、という探索を同種な楕円曲線群500の範囲で繰り返している。
【0123】
よって、実施の形態2の楕円曲線変換装置400は、同型という狭い範囲に属する楕円曲線群を対象として目的の楕円曲線を探索する従来の楕円曲線変換装置と異なり、同種というより広い範囲に属する楕円曲線群を対象として目的の楕円曲線を探索しているので、同種の楕円曲線群の中に目的の楕円曲線が存在する限り、100%の確率で、目的の楕円曲線を探索し、生成することができる。
【0124】
以上、本発明に係る楕円曲線変換装置について、2つの実施の形態に基づいて説明したが、本発明はこれらの実施の形態に限られないことは勿論である。
【0125】
例えば、実施の形態2では、図9(c)に示される同種写像が用いられたが、図9(b)に示される同種写像を用いてよい。つまり、一旦生成された楕円曲線を新たな入力楕円曲線として探索を繰り返すのではなく、最初に入力された楕円曲線に対して、異なる同種写像を繰り返すことによって探索を行ってもよい。
【0126】
また、楕円曲線生成部210及び楕円曲線生成部410によるステップS305、S505での判定条件として、「解が2個である」としてもよい。さらに、この時、ステップS302、S502では、それぞれ、ステップS305a、S505aで「解が2個である」と判定された後は、その時のLの値に設定することとしてもよい。つまり、ステップS305a、S505aで「解が2個以上である」と判定された場合には、入力された楕円曲線に対してその時のLによる同種(L次同種)の写像を繰り返すことができる(写像後の楕円曲線が必ず存在する)ことが保証されているので、図9(b)に示されるような同一次数(L)のL次写像の繰り返しが可能になる。
【0127】
また、本発明は、上記に説明した楕円曲線変換装置で得られた楕円曲線を利用する楕円曲線利用装置として実現することもできる。楕円曲線利用装置の具体的な例は、暗号化装置及び復号化装置からなる暗号通信システム、デジタル署名装置及び署名検証装置からなるデジタル署名システム、2つの装置が相互に相手の正当性を認証し合うことによって秘密鍵の共有化を図る鍵共有システム等である。
【0128】
例えば、図10に示される本発明の適用例のように、本発明に係る楕円曲線変換装置を備える管理センタCが、暗号通信システムで使用される楕円曲線(例えば、a2=−3の楕円曲線)を生成し、ユーザA1〜Anに提供したり、デジタル署名システムで使用される楕円曲線(例えば、モンゴメリ型楕円曲線)を生成し、ユーザB1〜Bnに提供したりする。
【0129】
そして、安全性確保のために、例えば、一定期間を経過したときに、管理センタCが、本発明に係る楕円曲線変換装置を用いて新たな楕円曲線を生成し、ユーザA1〜An及びユーザB1〜Bnに提供し、暗号通信システム及びデジタル署名システムで使用される楕円曲線を更新してもよい。また、ユーザA1〜Anの装置が管理センタCの楕円曲線変換装置に対して、それまで使用していた楕円曲線のパラメータ(p,a,b,mEI)を通知し、そのパラメータを入力として管理センタCの楕円曲線変換装置が新たな楕円曲線を生成し、ユーザA1〜Anに返信してもよい。そして、ユーザA1〜Anの装置は、管理センタCの楕円曲線変換装置から返信されてきた新たな楕円曲線を用いて暗号通信を行うことにする。これによって、暗号の基盤となる楕円曲線が動的に変更される安全性の高い暗号システムが実現される。
【0130】
また、本発明は、上記に説明した楕円曲線変換装置を備える安全な楕円曲線のパラメータを生成する楕円曲線生成装置であってもよい。例えば、上記実施の形態における楕円曲線変換装置への入力パラメータのセットを一定手順で生成したり、複数の入力パラメータのセットを予め保持しておき、順次、楕円曲線変換装置に出力する入力パラメータ生成部を設けることで、その入力パラメータ生成部と楕円曲線変換装置とからなる楕円曲線生成装置を実現することができる。
【0131】
また、上記実施の形態における楕円曲線変換装置は、楕円曲線の条件として、a=−3を満たす、あるいは、モンゴメリ型楕円曲線である、としているが、これら条件を満たす可能性のある条件、つまり、楕円曲線上での演算の計算量が削減されるという高速化条件であれば、どのようなものであってもよい。
【0132】
また、上記実施の形態における楕円曲線変換装置では、楕円曲線条件判定部によって一定の楕円曲線の条件が満たされないと判断された場合には、楕円曲線生成部による処理が繰り返されたが、このような繰り返し処理を行わず、何も出力しないようにしてもよい。また、一定回数を限度に繰り返すこととしてもよい。これによって、一定の時間制約の下での楕円曲線変換が可能となる。
【0133】
また、本発明は、本実施の形態における楕円曲線変換装置が備える特徴的な構成要素をステップとする楕円曲線変換方法として実現することもできる。
【0134】
【発明の効果】
以上に説明したように、本発明により、入力されたワイヤーシュトラス型楕円曲線に対して、その楕円曲線と同種な楕円曲線の中にa=−3を満たす楕円曲線、あるいは、モンゴメリ型楕円曲線が存在する限り、そのような楕円曲線に変換することができる。したがって、安全性を損なうことなく、より計算量が削減される楕円曲線を生成することが容易となり、楕円曲線を用いる暗号通信システム、電子署名システム、あるいは、鍵共有化システムに、特に、複数の楕円曲線を採用するシステムや楕円曲線を動的に変更するようなシステムに好適であり、高い安全性が要求される電子決済や秘密通信、デジタル著作物保護等の基盤技術として、その実用的価値は極めて大きい。
【図面の簡単な説明】
【図1】本発明の実施の形態1における楕円曲線変換装置の構成を示す機能ブロック図である。
【図2】同楕円曲線変換装置の動作を示すフローチャートである。
【図3】図2における楕円曲線生成部の処理(ステップS201)の詳細な手順を示すフローチャートの前半部である。
【図4】図2における楕円曲線生成部の処理(ステップS201)の詳細な手順を示すフローチャートの後半部である。
【図5】本発明の実施の形態2における楕円曲線変換装置の構成を示す機能ブロック図である。
【図6】同楕円曲線変換装置の動作を示すフローチャートである。
【図7】図6における楕円曲線生成部の処理(ステップS401)の詳細な手順を示すフローチャートの前半部である。
【図8】図6における楕円曲線生成部の処理(ステップS401)の詳細な手順を示すフローチャートの後半部である。
【図9】(a)は、従来の楕円曲線変換装置による楕円曲線の探索手法を示す図であり、(b)は、本発明に係る楕円曲線変換装置による楕円曲線の探索手法を示す図である。
【図10】本発明に係る楕円曲線変換装置の適用例を示す通信システムのシーケンス図である。
【図11】エルガマル署名によるデジタル署名方式の手順を示すシーケンス図である。
【図12】従来の楕円曲線変換装置のブロック図である。
【符号の説明】
200 楕円曲線変換装置
210 楕円曲線生成部
220 楕円曲線条件判定部
230 楕円曲線出力部
400 楕円曲線変換装置
410 楕円曲線生成部
420 楕円曲線条件判定部
430 楕円曲線出力部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a cryptographic technique as an information security technique, and more particularly to a secret communication using an elliptic curve, a digital signature, and a key sharing technique.
[0002]
[Prior art]
1. Public key cryptography
In recent years, data communication based on computer technology and communication technology has become widespread, and in this data communication, a secret communication method or a digital signature method is used. Here, the secret communication method is a method for performing communication without leaking communication contents to other than a specific communication partner. The digital signature method is a communication method that shows the validity of communication contents to the communication partner or proves the identity of the caller.
[0003]
An encryption method called public key encryption is used for these secret communication methods or digital signature methods. Public key cryptography is a method for easily managing encryption keys that differ for each communication partner when there are many communication partners, and is an indispensable basic technology for communicating with many communication partners. In secret communication using public key cryptography, the encryption key and the decryption key are different, and the decryption key is kept secret, but the encryption key is made public.
[0004]
The discrete logarithm problem is used as a basis for the security of this public key cryptosystem. As a typical discrete logarithm problem, there are one defined on a finite field and one defined on an elliptic curve (for example, Non-Patent Document 1).
[0005]
2. Discrete logarithm problem on elliptic curve
The discrete logarithm problem on an elliptic curve is described below. The discrete logarithm problem on an elliptic curve is an elliptic curve E when E (GF (p)) is an elliptic curve defined on the finite field GF (p) and the order of the elliptic curve E is divisible by a large prime number. The base point is the element G included in. At this time, for a given element Y included in the elliptic curve E,
(Formula 1) Y = x * G
If there exists an integer x such that
[0006]
Here, p is a prime number and GF (p) is a finite field having p elements. Further, in this specification, the symbol * indicates an operation for adding the element included in the elliptic curve a plurality of times, and x * G adds the element G included in the elliptic curve x times as shown in the following equation. Means that.
[0007]
x * G = G + G + G + ... + G
The reason why the discrete logarithm problem is based on the security of public key cryptography is that the above problem is extremely difficult for a finite field GF (p) having many elements.
[0008]
3. El Gamal signature applying the discrete logarithm problem on elliptic curves
Hereinafter, a digital signature method using an El Gamal signature applying the discrete logarithm problem on the elliptic curve will be described with reference to FIG. This figure is a sequence diagram showing the procedure of the digital signature method based on the El Gamal signature. User A11, management center 12 and user B13 are connected via a network. Let p be a prime number and E an elliptic curve on a finite field GF (p). Let the base point of E be G and the order of E be q. That is, q is
(Formula 2) q * G = 0
Is the smallest positive integer that satisfies.
[0009]
Note that (∞, ∞) where both the x coordinate and the y coordinate are ∞ is referred to as an infinite point and is represented by 0. This 0 is a point of “zero element” in addition when the elliptic curve is considered as a group.
[0010]
(1) Generation of public key by management center 12
The management center 12 generates the public key YA of the user A11 according to Equation 3 using the secret key xA of the user A11 notified in advance (Steps S141 to S142).
(Formula 3) YA = xA * G
Thereafter, the management center 12 discloses the prime number p, the elliptic curve E, and the base point G as system parameters, and also discloses the public key YA of the user A11 to other users B13 (steps S143 to S144).
[0011]
(2) Signature generation by user A11
User A11 generates a random number k (step S145). Next, the user A11
(Formula 4) R1 = (rx, ry) = k * G
Is calculated (step S146),
(Formula 5) s × k = m + rx × xA (mod q)
From this, s is calculated (step S147). Here, m is a message transmitted from the user A11 to the user B13. Further, the user A11 transmits the obtained (R1, s) as a signature together with the message m to the user B13 (step S148).
[0012]
(3) Signature verification by user B13
User B13
(Formula 6) s * R1 = m * G + rx * YA
By determining whether or not is established, the identity of the user A11 who is the sender is confirmed (step S149). this is,
Figure 0004225764
It is clear from that.
[0013]
4). The amount of calculation by adding points on the elliptic curve and by doubling
In each of the public key generation, signature generation, and signature verification in the digital signature scheme by El Gamal signature applying the discrete logarithm problem on the elliptic curve shown above, calculation of multiplication of the number of points on the elliptic curve is performed. . For example, “xA * G” shown in Equation 3, “k * G” shown in Equation 4, “s * R1”, “m * G”, and “rx * YA” shown in Equation 6 are points on the elliptic curve. It is the operation of 冪 times. The calculation formula for the elliptic curve is described in detail in Non-Patent Document 2.
[0014]
An elliptic curve calculation formula will be described below. Let the equation of the elliptic curve be y 2 = x 3 + a × x + b, the coordinates of an arbitrary point P be (x1, y1), and the coordinates of an arbitrary point Q be (x2, y2). Here, the coordinates of the point R determined by R = P + Q are (x3, y3).
[0015]
When P ≠ Q, R = P + Q is an addition operation. The formula for addition is shown below.
[0016]
x3 = {(y2-y1) / (x2-x1)} ^ 2-x1-x2
y3 = {(y2-y1) / (x2-x1)} (x1-x3) -y1
When P = Q, R = P + Q = P + P = 2 × P, and R = P + Q is a doubling operation. The formula for doubling is shown below.
x3 = {(3x1 ^ 2 + a) / 2y1} ^ 2-2x1
y3 = {(3x1 ^ 2 + a) / 2y1} (x1-x3) -y1
[0017]
The above calculation is an operation on a finite field in which an elliptic curve is defined. As shown above, when an addition operation on an elliptic curve is performed on an affine coordinate that is a binomial coordinate, that is, the coordinates described so far, one addition on the elliptic curve is performed once on a finite field. The reciprocal calculation of is required. In general, reciprocal calculation on a finite field requires about 10 times the amount of calculation compared to multiplication calculation on a finite field.
[0018]
Therefore, for the purpose of reducing the amount of calculation, a ternary set of coordinates called projective coordinates is used. Projective coordinates are coordinates consisting of the ternary set X, Y, Z, and a certain number n with respect to coordinates (X, Y, Z) and coordinates (X ′, Y ′, Z ′). And X ′ = nX, Y ′ = nY, and Z ′ = nZ, (X, Y, Z) = (X ′, Y ′, Z ′). Affine coordinates (x, y) and projected coordinates (X, Y, Z) are
(X, y) → (x, y, 1)
(X, Y, Z) → (X / Y, Y / Z) (when Z ≠ 0), they correspond to each other. Here, the symbol → is used in the meaning shown below. When one element of the set S2 corresponds to an arbitrary element of the set S1, it is expressed as S1 → S2.
[0019]
In the following, it is assumed that all calculations of elliptic curves are performed in projective coordinates. Next, the addition formula of the elliptic curve on the projective coordinates and the double formula will be described. These formulas are, of course, consistent with the addition formula and the double formula in affine coordinates described above. The multiplication operation can be realized by adding points on the elliptic curve and repeating the operation of doubling. In this multiplication operation, the calculation amount of addition does not depend on the elliptic curve parameters, but the calculation amount of doubling depends on the elliptic curve parameters.
[0020]
Here, p is a prime number of 160 bits, the elliptic curve on the finite field GF (p) is E: y ^ 2 = x ^ 3 + ax + b, and the elements P and Q on the elliptic curve E are P = (X1 , Y1, Z1), Q = (X2, Y2, Z2)
R = (X3, Y3, Z3) = P + Q is obtained as follows.
[0021]
(I) When P ≠ Q
In this case, an addition operation is performed.
(Step 1-1) Calculation of intermediate value
Calculate the following:
(Formula 8) U1 = X1 × Z2 ^ 2
(Formula 9) U2 = X2 × Z1 ^ 2
(Formula 10) S1 = Y1 × Z2 ^ 3
(Formula 11) S2 = Y2 × Z1 ^ 3
(Formula 12) H = U2-U1
(Formula 13) r = S2-S1
(Step 1-2) Calculation of R = (X3, Y3, Z3)
Calculate the following:
(Expression 14) X3 = −H ^ 3−2 × U1 × H ^ 2 + r ^ 2
(Formula 15) Y3 = -S1 * H ^ 3 + r * (U1 * H ^ 2-X3)
(Formula 16) Z3 = Z1 × Z2 × H
[0022]
(Ii) When P = Q (ie, R = 2P)
In this case, a doubling operation is performed.
(Step 2-1) Calculation of intermediate value
Calculate the following:
(Expression 17) S = 4 × X1 × Y1 ^ 2
(Formula 18) M = 3 * X1 ^ 2 + a * Z1 ^ 4
(Equation 19) T = −2 × S + M ^ 2
(Step 2-2) Calculation of R = (X3, Y3, Z3)
Calculate the following:
(Formula 20) X3 = T
(Formula 21) Y3 = -8 * Y1 ^ 4 + M * (ST)
(Formula 22) Z3 = 2 × Y1 × Z1
[0023]
Next, the amount of calculation when performing elliptic curve addition and doubling will be described. Here, the calculation amount by one multiplication on the finite field GF (p) is represented by 1Mul, and the calculation amount by one multiplication by two is represented by 1Sq. In a general microprocessor, 1Sq≈0.8Mul.
[0024]
According to the above example, the calculation amount of addition on the elliptic curve shown in the case of P ≠ Q is obtained by counting the number of multiplications and the number of two multiplications in Expressions 8 to 16, and 12Mul + 4Sq It is. This is apparent from the fact that the calculation amount of the addition in Equations 8, 9, 10, 11, 14, 15, 16 is 1Mul + 1Sq, 1Mul + 1Sq, 2Mul, 2Mul, 2Mul + 2Sq, 2Mul, and 2Mul, respectively.
[0025]
Further, according to the above example, the calculation amount of doubling on the elliptic curve shown in the case of P = Q is obtained by counting the number of multiplications and the number of multiplications in Equations 17 to 22. Obtained, 4Mul + 6Sq. This is apparent from the fact that the amount of doubling in Equations 17, 18, 19, 21, and 22 is 1Mul + 1Sq, 1Mul + 3Sq, 1Sq, 1Mul + 1Sq, and 1Mul, respectively.
[0026]
In the above count, for example, for H ^ 3 in Equation 14,
Since it can be expanded as H ^ 3 = H ^ 2 × H, the calculation amount of H ^ 3 is 1Mul + 1Sq, and for Z1 ^ 4 in Equation 18,
Since Z1 ^ 4 = (Z1 ^ 2) ^ 2 can be expanded, the calculation amount of Z1 ^ 4 is 2Sq.
[0027]
Further, for H ^ 2 in Expression 14, since H ^ 2 is calculated in the above-described calculation process of H ^ 3, the calculation amount of H ^ 2 is not counted again. When counting the number of multiplications, the number of multiplications performed by multiplying a certain value by a small value is not counted. The reason will be described below. The small value here is a small fixed value to be multiplied in Equations 8 to 22, and specifically, is a value such as 2, 3, 4, 8, or the like. These values can be expressed in binary numbers of at most 4 bits. On the other hand, other variables usually have a value of 160 bits.
[0028]
In general, in a microprocessor, multiplication of a multiplier and a multiplicand is performed by repeating shift and addition of the multiplicand. That is, for each bit of the multiplier expressed in binary number, if this bit is 1, the multiplicand is set so that the least significant bit of the multiplicand expressed in binary number matches the position where this bit exists. Are shifted to obtain one bit string. For all the bits of the multiplier, all at least one bit string obtained in this way is added.
[0029]
For example, in the multiplication of the 160-bit multiplier and the 160-bit multiplicand, the 160-bit multiplicand is shifted 160 times to obtain 160 bit strings, and the obtained 160 bit strings are added. On the other hand, in the multiplication of the 4-bit multiplier and the 160-bit multiplicand, the 160-bit multiplicand is shifted four times to obtain four bit strings, and the obtained four bit strings are added.
[0030]
Since the multiplication is performed as described above, when the multiplication is performed by multiplying a certain value by a small value, the number of repetitions is reduced. Therefore, since the amount of calculation can be considered to be small, the number of multiplications is not counted. As described above, when the doubling of the elliptic curve is performed, the equation 18 includes the parameter a of the elliptic curve. If, for example, a small value is adopted as the value of the parameter a, the calculation amount of doubling on the elliptic curve can be reduced by 1 Mul, and becomes 3 Mul + 6 Sq. Regarding addition, the amount of calculation does not change even if the elliptic curve parameters are changed.
[0031]
5. Selecting an elliptic curve suitable for cryptography
Next, a method for selecting an elliptic curve suitable for encryption will be described. Details thereof are described in detail in “IEEE P1363 Working draft” (February 6, 1997, published by IEEE). An elliptic curve suitable for encryption is obtained by repeating the following steps.
[0032]
(Step 1) Select an arbitrary elliptic curve
Arbitrary parameters a and b on the finite field GF (p) are selected. Here, a and b satisfy Expression 23, and p is a prime number.
(Formula 23) 4 * a ^ 3 + 27 * b ^ 2 ≠ 0 (mod p)
Using the selected a and b, let the elliptic curve be E: y ^ 2 = x ^ 3 + a * x + b.
[0033]
(Step 2) In order to determine whether the elliptic curve is suitable for encryption, the original number #E (GF (p)) of the elliptic curve E is calculated,
(Condition 1) #E (GF (p)) is divisible by a large prime number, and
(Condition 2) Elliptic curve E is adopted when #E (GF (p)) − (p + 1) ≠ 0, −1.
[0034]
As described above, if a fixedly small value is selected as the parameter a of the elliptic curve, the calculation amount can be reduced in the multiplication of the elliptic curve, but it is suitable for encryption by taking the parameter in advance. It is difficult to select a safe elliptic curve.
[0035]
Conversely, if a safe elliptic curve suitable for encryption is selected using the elliptic curve selection method described above, a small value cannot always be selected as the parameter a of the elliptic curve, and the amount of calculation cannot be reduced. There is a problem. Thus, in order to select a safe elliptic curve suitable for encryption and reduce the amount of computation in the elliptic curve, there are problems that contradict each other and conflict.
[0036]
6). Conventional elliptic curve converter
In order to solve the above problems, the following elliptic curve conversion device is shown as a conventional “elliptic curve conversion device, elliptic curve conversion method and elliptic curve utilization device” (for example, Japanese Patent No. 30503313). This conventional elliptic curve transformation device converts an arbitrary elliptic curve E: y ^ 2 = x ^ 3 + ax + b into an elliptic curve E having a small coefficient a (such as a = -3) without changing its order. : Y ^ 2 = x ^ 3 + ax + b. That is, an elliptic curve capable of reducing the amount of calculation while maintaining safety is generated.
This device converts an input elliptic curve into an elliptic curve of the same type.
[0037]
As shown in FIG. 12, the elliptic curve conversion device 100 includes a parameter reception unit 110, a conversion coefficient acquisition unit 120, a conversion elliptic curve calculation unit 130, and a parameter transmission unit 140.
[0038]
The parameter receiving unit 110 receives elliptic curve parameters a and b, the element G on the elliptic curve, and a prime number p from an external device. Here, p is a 160-bit prime number.
[0039]
The external device includes an encryption device using public key cryptography, a decryption device, a digital signature device, a digital signature verification device, a key sharing device, and the like. The external device uses the discrete logarithm problem on an elliptic curve as a basis for security of public key cryptography, and has the elliptic curve. Here, the elliptic curve arbitrarily configured on the finite field GF (p) is represented by E: y ^ 2 = x ^ 3 + ax + b, the element G is arbitrarily configured of the elliptic curve, and G = It is represented by (x0, y0).
[0040]
The conversion coefficient acquisition unit 120 has a function T (i). The function T (i) has values of -3, 1, -1, 2, and -2, respectively, when i = 0, 1, 2, 3, and 4. Further, the function T (i) has values of 3, 4, -4, 5, -5, 6, -6, ... when i = 5, 6, 7, 8, 9, 10, 11,. Have.
[0041]
The conversion coefficient acquisition unit 120 starts from i = 0 and adds 1 to the value of i, (Expression 24) −2 ^ 31 + 1 ≦ T (i) ≦ 2 ^ 31-1
And satisfy
(Equation 25) T (i) = t ^ 4 × a (mod p)
The conversion coefficient t, which is the element on the finite field GF (p), is calculated.
[0042]
Here, Equation 24 shows that T (i) is taken to be 32 bits or less. The function T (i) has a value of −3 when i = 0, and the transform coefficient acquisition unit 120 starts from i = 0 and increments the function T Since the value of (i) is referred to, the value of -3 is first referred to.
[0043]
Since the function T (i) has a value in order from the smallest value to the largest value except for having a value of −3 when i = 0, the absolute value It is possible to refer in order from the smallest value of.
[0044]
The converted elliptic curve calculation unit 130 sets the parameters a ′ and b ′ of the converted elliptic curve Et: y ′ ^ 2 = x ′ ^ 3 + a ′ × x ′ + b ′ configured on the finite field GF (p) as follows: Thus, the calculation is performed.
(Formula 26) a ′ = a × t ^ 4
(Formula 27) b ′ = b × t ^ 6
[0045]
Further, the conversion elliptic curve calculation unit 130 calculates the element Gt = (xt0, yt0) on the conversion elliptic curve Et corresponding to the element G as follows.
(Formula 28) xt0 = t ^ 2 × x0
(Equation 29) yt0 = t ^ 3 × y0
[0046]
An arbitrary point on the elliptic curve E is converted into one point on the converted elliptic curve Et determined by the parameters a ′ and b ′ generated as described above.
[0047]
The parameter sending unit 140 sends the parameters a ′ and b ′ of the calculated conversion elliptic curve Et and the original Gt (xt0, yt0) to the external device.
The operation of the conventional elliptic curve conversion apparatus 100 is as follows.
[0048]
The parameter receiving unit 110 receives the prime number p and the parameters a and b of the elliptic curve E from an external device (step S151), and receives the element G on the elliptic curve (step S152). Next, the conversion coefficient acquisition unit 120 calculates the conversion coefficient t (step S153), and the conversion elliptic curve calculation unit 130 sets the parameters a ′ and b of the conversion elliptic curve Et configured on the finite field GF (p). 'And the element Gt = (xt0, yt0) on the conversion elliptic curve Et corresponding to the element G is calculated (step S154), and the parameter sending unit 140 sets the parameters a ′ and b of the calculated conversion elliptic curve Et. 'And the original Gt (xt0, yt0) are sent to the external device (step S155).
[0049]
The detailed operation of the conversion coefficient acquisition unit 120 is as follows.
The conversion coefficient acquisition unit 120 sets 0 to i (step S161). Next, the transform coefficient acquisition unit 120 performs the function T (i)
-2 ^ 31 + 1≤T (i) ≤2 ^ 31-1
Whether or not is satisfied is determined. If not satisfied (step S162), the process is terminated. If satisfied (step S162),
T (i) = t ^ 4 × a (mod p)
Is calculated (step S163), and it is determined whether or not the calculated conversion coefficient t is an element on the finite field GF (p), and if it is an element on the finite field GF (p) ( Step S164), the process is terminated. If it is not an element on the finite field GF (p) (step S164), 1 is added to i (step S165), and the control is returned to step S162 again.
[0050]
Next, the converted elliptic curve calculation unit 130 performs the following operation.
The converted elliptic curve calculation unit 130 calculates the parameter a ′ = a × t ^ 4 of the converted elliptic curve Et formed on the finite field GF (p) (step S171), and the parameter b ′ = b × t ^ 6. Is calculated (step S172). Also, the conversion elliptic curve calculation unit 130 calculates xt0 = t ^ 2 × x0 as element Gt = (xt0, yt0) on the conversion elliptic curve Et corresponding to the element G (step S173), and yt0 = t ^ 3 × y0 is calculated (step S174).
[0051]
This conventional elliptic curve conversion device converts an input elliptic curve into an elliptic curve of the same type. In step S164, when T (i) = − 3, it can be converted into an elliptic curve having the equation y ^ 2 = x ^ 3-3x + b only when t in Expression 23 is an element of GF (p).
[0052]
However, in order to be −3 = a × t ^ 4, the fourth power root in GF (p) of −3 / a must exist. For any x, the probability that x is GF (p) and the square root exists is ½, so the probability that the fourth root exists is “the probability that the square root of the square root exists”. Therefore, 1/2 × 1/2 = 1/4. Therefore, the probability that the t is an element of GF (p) is as low as ¼, and there is a problem that it cannot always be converted into an elliptic curve having an equation of y ^ 2 = x ^ 3-3x + b.
[0053]
7). Montgomery elliptic curve
The above elliptic curve conversion apparatus is intended only for elliptic curves whose equations are in the form of y ^ 2 = x ^ 3 + a * x + b. Such an elliptic curve is called a Wirestrass type elliptic curve.
[0054]
On the other hand, an elliptic curve whose equation is in the form of B * y ^ 2 = x ^ 3 + A * x ^ 2 + x is called a Montgomery-type elliptic curve. This elliptic curve is known to be fast for point addition and doubling, and the amount of calculation is 4Mul + 2Sq and 3Mul + 2Sq, respectively. As described in 5 above, the addition amount and the double calculation amount of the points of the Weirstrass elliptic curve are 12Mul + 4Sq and 4Mul + 6Sq, respectively. Therefore, the Montgomery-type elliptic curve is faster in point addition and doubling (for example, Non-Patent Document 3).
[0055]
On the other hand, in a method for generating a safe elliptic curve, a safe elliptic curve may be generated by performing order calculation and determining whether it is safe. In the order calculation here, the elliptic curve to be used is the Wirestrass type. Therefore, the elliptic curve that can be generated by this method is also limited to the Wirestrass type.
[0056]
By using the same type of elliptic curve in the same way as the conventional elliptic curve conversion device, it is conceivable to convert the Wirestrass type elliptic curve to the Montgomery type elliptic curve. However, this is the same as searching for an elliptic curve satisfying a = −3 in the conventional elliptic curve conversion device, and is not necessarily convertible. That is, there is a Wirestrass-type elliptic curve that cannot be converted into a Montgomery-type elliptic curve. When using the same type as described above, it is possible to convert from the wire-strass-type elliptic curve to the Montgomery elliptic curve from the literature "Calculation method of elliptic curve cryptography" (Tetsuya Izu, SCIS '99, pages 275-280). There is a problem that it is not necessarily converted into a Montgomery-form elliptic curve.
[0057]
[Patent Document 1]
Japanese Patent No. 30503313
[0058]
[Non-Patent Document 1]
Nile Koblitz, A Course in Number theory and Cryptography (Springer-Verlag, 1987)
[0059]
[Non-Patent Document 2]
“Efficient elliptic curve exponentiation” (Miyaji, Ono, and Cohen, Advances in cryptology-proceedings of ICICS, 97, Lecture notes in computer science, 1997, Springer-verlag, 282-290.)
[0060]
[Non-Patent Document 3]
“Speeding the Pollar and Elliptic Curve Methods of Factorization” (PLMontgomery, Math. Of Comp. 48, 1987, pp.243-264)
[0061]
[Problems to be solved by the invention]
As described above, the conventional elliptic curve conversion device can convert an arbitrary arbitrary elliptic curve while maintaining the safety of the elliptic curve y ^ 2 = x ^ 3-3x + b (Wireless). Can be converted into a truss-type elliptic curve), but is not always convertible. Also, there is a problem that conversion from the Wirestrass type elliptic curve to the Montgomery type elliptic curve is not always possible.
[0062]
Therefore, in the present invention, it is possible to convert an arbitrary elliptic curve into an elliptic curve y ^ 2 = x ^ 3-3x + b that reduces the amount of calculation while maintaining its safety with a very high probability. An object is to provide an elliptic curve conversion device and the like.
[0063]
Furthermore, the present invention is an elliptic curve transformation that can convert an arbitrary wire-strass-type elliptic curve into a Montgomery-type elliptic curve with a very high probability while reducing its computational complexity while maintaining its safety. Another object is to provide a device or the like.
[0064]
[Means for Solving the Problems]
To achieve the above object, an elliptic curve conversion device according to the present invention is an elliptic curve conversion device that converts a first elliptic curve on a finite field F into a second elliptic curve on a finite field F, wherein An elliptic curve group having the same order as that of one elliptic curve and having a fixed relationship satisfies the speed-up condition for reducing the amount of calculation on the elliptic curve from the L1-order similar elliptic curve group. Search means for searching for an elliptic curve, determination means for determining whether an elliptic curve satisfying the speed-up condition has been searched by the search by the search means, and an elliptic curve satisfying the speed-up condition by the determination means And an output means for outputting the elliptic curve as the second elliptic curve when it is determined that the search has been made.
[0065]
Here, the search means may repeat the search for the elliptic curve that satisfies the speed-up condition when the determination means determines that the elliptic curve that satisfies the speed-up condition is not searched.
[0066]
For example, when the determination unit determines that the elliptic curve satisfying the speed-up condition is not searched by the determination unit, the search unit selects the high-speed fast curve from a group of elliptic curves similar to the first elliptic curve in the L2 order. The search means may search for an elliptic curve satisfying the conversion condition, and the search means may perform an operation on the elliptic curve from among a group of elliptic curves of the same order as the first elliptic curve and having the same order as the L1 order. The provisional elliptic curve that is a candidate for the elliptic curve that satisfies the speed-up condition that reduces the amount of calculation is specified, and the determination means determines that the provisional elliptic curve specified by the search means satisfies the speed-up condition. When the determination unit determines that the provisional elliptic curve does not satisfy the speed-up condition, the search unit determines whether the provisional elliptic curve is a new first one. An elliptic curve, and the first elliptic curve Search for elliptic curves that satisfy the speed-up condition that reduces the amount of calculation on the elliptic curve from among the L1-order elliptic curve groups that are the same number and have a constant relationship. May be.
[0067]
The speed-up condition may be that the elliptic curve equation y ^ 2 = x ^ 3 + a * x + b satisfies a = -3, and the speed-up condition is that the elliptic curve is a Montgomery-type ellipse. It may be a curve.
[0068]
An elliptic curve utilization device according to the present invention is an elliptic curve utilization device that uses an elliptic curve obtained by an elliptic curve conversion device, a storage unit that stores parameters for specifying the elliptic curve, and a finite field F. And using means for performing encryption, decryption, digital signature, digital signature verification or key sharing using an elliptic curve determined by the structure stored in the storage means and the parameters stored in the storage means, and the elliptic curve conversion device comprises a finite field An elliptic curve conversion device for converting a first elliptic curve on F to a second elliptic curve on a finite field F, wherein the elliptic curve group has the same order as the first elliptic curve and has a fixed relationship. A search means for searching for an elliptic curve satisfying a speed-up condition that reduces the amount of calculation on the elliptic curve from a group of elliptic curves of the same order of the L1 order, and the speed-up condition by the search by the search means Meet A determination means for determining whether or not an elliptic curve has been searched; and when the determination means determines that an elliptic curve satisfying the speed-up condition has been searched, the elliptic curve is output as the second elliptic curve. Output means.
[0069]
An elliptic curve generation device according to the present invention is an elliptic curve generation device that generates an elliptic curve on a finite field F, the generation means for generating a first elliptic curve on the finite field F, and the generated Speed-up conditions that reduce the amount of computation on the elliptic curve from the L1-order similar elliptic curve group that has the same order and the same order as the first elliptic curve. A search unit that searches for an elliptic curve that satisfies the condition, a determination unit that determines whether an elliptic curve that satisfies the speed-up condition is searched by the search by the search unit, and an elliptic curve that satisfies the speed-up condition by the determination unit Output means for outputting the elliptic curve as the second elliptic curve when it is determined that a search has been made.
[0070]
The present invention can be realized not only as the above-described elliptic curve conversion device, elliptic curve utilization device, and elliptic curve generation device, but also as an elliptic curve conversion method, elliptic curve using steps characteristic of the devices. It can be realized as a usage method and an elliptic curve generation method, or as a program for causing a computer to execute these steps. Needless to say, the program can be widely distributed via a recording medium such as a CD-ROM or a transmission medium such as the Internet.
[0071]
DETAILED DESCRIPTION OF THE INVENTION
(Embodiment 1)
An elliptic curve conversion device 200 according to the first embodiment of the present invention will be described.
[0072]
FIG. 1 is a functional block diagram showing a configuration of an elliptic curve conversion device 200 in the first embodiment. The elliptic curve conversion device 200 is a device that is realized by a program executed on a computer or an electronic circuit such as LSI, and functionally includes an elliptic curve generation unit 210, an elliptic curve condition determination unit 220, and an elliptic curve output. The unit 230 is configured. The elliptic curve transformation device 200 receives the parameters p, a, b of the elliptic curve EI: y ^ 2 = x ^ 3 + a * x + b on the finite field GF (p) and the order mEI of the elliptic curve EI as input, and the same kind of GF (P) On the elliptic curve EO: y ^ 2 = x ^ 3-3 * x + b 'The parameter b' is output. The “same type” will be described later. Here, x × y represents the product of x and y.
[0073]
The elliptic curve generation unit 210 receives an input arbitrary elliptic curve, generates an elliptic curve similar to the elliptic curve, and outputs the generated elliptic curve to the elliptic curve condition determination unit 220 and the elliptic curve output unit 230. Specifically, the elliptic curve generation unit 210 inputs the elliptic curve EI on the finite field GF (p): y ^ 2 = x ^ 3 + a × x + b parameters p, a, b and the order mEI of the elliptic curve EI. The same elliptic curve EI2: y ^ 2 = x ^ 3 + a2 * x + b2 is determined, and the parameters a2 and b2 are output to the elliptic curve condition determination unit 220 and the elliptic curve output unit 230.
[0074]
The elliptic curve condition determination unit 220 determines whether or not the elliptic curve output from the elliptic curve generation unit 210 satisfies the coefficient a2 = -3, and if not, notifies the elliptic curve generation unit 210 to that effect. Then, the elliptic curve generation unit 210 repeats the same process (generation of a new elliptic curve) again as the newly input elliptic curve as a new input elliptic curve. On the other hand, when it satisfies, it notifies the elliptic curve output unit 230 to that effect.
[0075]
When the elliptic curve output unit 230 receives a notification that the condition is satisfied from the elliptic curve condition determination unit 220, the elliptic curve output unit 230 outputs the elliptic curve output from the elliptic curve generation unit 210 to the outside. Specifically, the parameter b2 of the elliptic curve EI2 received from the elliptic curve generation unit 210 is output to the outside as the parameter b ′ of the final elliptic curve EO: y ^ 2 = x ^ 3-3 × x + b ′.
[0076]
Next, the operation of the elliptic curve conversion device 200 in the present embodiment configured as described above will be described.
FIG. 2 is a flowchart showing the operation of the elliptic curve conversion device 200. The elliptic curve generation unit 210 receives the input arbitrary elliptic curve (step S200), generates an elliptic curve similar to the elliptic curve (step S201), and uses the generated elliptic curve as the elliptic curve condition determination unit 220 and the elliptic curve. Output to the curve output unit 230. The elliptic curve condition determination unit 220 determines whether the elliptic curve output from the elliptic curve generation unit 210 satisfies a2 = -3 (step S202).
[0077]
If the result of determination is that a2 = −3 is not satisfied (No in step S202), the elliptic curve condition determination unit 220 notifies the elliptic curve generation unit 210 to that effect and the elliptic curve generation unit 210 that has received the notification. Repeats the generation of another elliptic curve of the same type again using the generated elliptic curve as an input elliptic curve (steps S201 to S202).
[0078]
On the other hand, if a2 satisfies −3 as a result of the determination (Yes in step S202), the elliptic curve condition determination unit 220 notifies the elliptic curve output unit 230 to that effect and the elliptic curve output unit that has received the notification. 230 outputs the parameter b2 of the elliptic curve EI2 output from the elliptic curve generation unit 210 to the outside as b '(step S203).
[0079]
3 to 4 are flowcharts showing detailed procedures of the process (step S201) of the elliptic curve generation unit 210 in FIG.
The elliptic curve generation unit 210 generates the same elliptic curve EI2: y ^ 2 = x ^ 3 + a2 * x + b2 from the input elliptic curve EI: y ^ 2 = x ^ 3 + a * x + b according to the following procedure.
[0080]
Step S301: The j invariant jEI of the elliptic curve EI is obtained from the following equation.
jEI = 1728 * (4 * a ^ 3 + 27 * b ^ 2) / (4 * a ^ 3)
Step S302: The initial value (2) is set to the prime number L.
Step S303: The modular polynomial ΦL (X, Y) corresponding to the prime number L is read.
[0081]
Step S304: ΦL (X, Y) = 0 is solved on the finite field GF (p) with Y as an undetermined variable.
Step S305 (S305a, S305b): When there are not two or more solutions, the next largest prime number is set as the prime number L, and the process proceeds to step S303. For the prime number L, values taken out in ascending order from a pre-stored series of prime numbers (2, 3, 5, 7,...) Are set.
[0082]
Step S306: One of the above solutions is selected and set as S.
Step S307: ΦL (X, S) = 0 is solved on the finite field GF (p) with X as an undetermined variable.
Step S308: Take a solution other than the solution equal to jEI from the above solutions and set it as jEI2.
[0083]
Step S309: It is determined whether (1-1728 / jEI2) is a quadratic residue in modulus p. If it is a square remainder, go to step S310. Otherwise, go to step S312.
Step S310: The square root of GF (p) in (1-1728 / jEI2) is obtained and set as R.
Step S311: a2 = -3, b2 = 2 * R. Go to step S313.
[0084]
Step S312: Obtain a2 and b2 from the following equations.
a2 = 3 * jEI2 / (1728-jEI2)
b2 = 2 * jEI2 / (1728-jEI2)
Step S313: A point having GF (p) as coordinates on the elliptic curve y ^ 2 = x ^ 3 + a2 * x + b2 is searched for as PEI2.
[0085]
Step S314 (S314a, S314b): It is determined whether mEI * PEI2 = 0 is satisfied. However, O is a zero element of EI2, and mEI * PEI2 is a point of mEI times PEI2. If satisfied, a2 and b2 are output and the process ends. Otherwise, go to step S315.
[0086]
Step S315 (S315a, S315b): Select the element of the non-square residue by the modulus p and set it as c. The twist of the elliptic curve y ^ 2 = x ^ 3 + a2 * x + b2: y ^ 2 = x ^ 3 + a2 '* x + b2' is obtained from the following equation. Twist will be described later.
a2 '= c ^ 2 * a2
b2 '= c ^ 3 * b2
Step S316: Output a2 ′ and b2 ′ as a2 and b2, and end.
[0087]
When the elliptic curve generation unit 210 receives a notification of a2 ≠ 3 from the elliptic curve condition determination unit 220, the elliptic curve EI2 generated immediately before is set as the newly input elliptic curve EI (step S320). The same process (steps S301 to S316) is repeated again.
[0088]
Here, the significance of the processes in the elliptic curve generation unit 210 and the elliptic curve condition determination unit 220 of the elliptic curve conversion apparatus 200 will be described together with mathematical terms as a basis. The following terms are described in detail in the document “The Arithmetic of Elliptic Curves” (JHSilverman, GTM106, Springer-verlag, 1986).
[0089]
(Order of elliptic curve)
When a point on the elliptic curve E on the finite field F is (X, Y), when both X and Y coordinates belong to F, the point is called an F rational point. A set obtained by adding a zero element O of a group of elliptic curves to the entire F rational point is written as E (F). E (F) is known to form a group for the addition of elliptic curves. The original number of E (F) is called the order of the elliptic curve. The security of current elliptic curve cryptography depends on the order of the elliptic curve used. That is, elliptic curves having the same finite field F and the same order of elliptic curves have the same safety.
[0090]
(Same shape of elliptic curve)
When the group E (F) of the elliptic curve E on the finite field F and the group E ′ (F) of the elliptic curve E ′ are group homomorphic and have a one-to-one correspondence, the elliptic curves E and E ′ are “isomorphic”. It is said. E: For y ^ 2 = x ^ 3 + a * x + b, the elliptic curve E 'given by the element c of the finite field F: y ^ 2 = x ^ 3 + c ^ 4 * a * x + c ^ 6 * b is (x, It can be said that it is the same type by y) → (cx, cy).
[0091]
(Same kind of elliptic curve)
An elliptic curve E ″ in which the order of the elliptic curve is the same as that of E is called an elliptic curve similar to E with respect to the elliptic curve E on the finite field F: y ^ 2 = x ^ 3 + a × x + b. Further, when the elliptic curves E and E ″ have the same order, the elliptic curves E and E ″ are said to be of the same kind. The same kind is mentioned in the above-mentioned document, but in particular, the document “Isogeny cycles and the Schoof-Elkies-Atkin algorithm” (J.-M. Couveignes, L. Dewaghe and F. Morain, Research Report LIX / RR) / 96/03, Ecole Polytechnique-LIX, 1996).
[0092]
(Homogeneous maps and modular polynomials)
A homogeneous map exists between elliptic curves of the same kind. In the homogeneous map φ: E → E ″, when the number of points on E transferred to the zero element O ″ of E ″ by the above mapping is L, φ is called the L-order homogeneous map, and the elliptic curve E and E '' is said to be L-order homogeneous. Modular polynomials can be used to find elliptic curves of the same order as the elliptic curves E and L. Modular polynomials are bivariate polynomials that depend only on L. In steps S304 to S308 by the elliptic curve generation unit 210 in the elliptic curve conversion apparatus 200, an elliptic curve similar to the elliptic curve EI and the L order is obtained using a modular polynomial. Regarding the modular polynomial and how to obtain the modular polynomial, in particular, the document “Calcul du nombre de points sur une courbe elliptique dans un corps fini: aspects algorithmiques” (F. Morain, J. Theor. Nombres Bordeaux 7, 1995, 255- 282), “Counting points on elliptic curves over finite fields” (R. Schoof, J. Theor. Nombres Bordeaux 7, 1995, 219-254).
[0093]
(J variable of elliptic curve)
There is a j invariant as a parameter of the elliptic curve. The j invariant of the elliptic curve E: y ^ 2 = x ^ 3 + a * x + b is given by the following equation.
[0094]
j = 1728 * 4 * a ^ 3 / (4 * a ^ 3 + 27 * b ^ 2)
The j invariant of the elliptic curve E and the elliptic curve E ′ having the same shape are equal.
[0095]
(Elliptic curve twist)
On the contrary, when the j invariants of the elliptic curves E and E ′ are equal, either E and E ′ are isomorphic or E ′ is the twist of E. For elliptic curve E: y ^ 2 = x ^ 3 + a * x + b, elliptic curve Et: y ^ 2 = x ^ 3 + a * c ^ 2 * x + b * c ^ 3 given by element c of finite field F is twisted of E Call it. As stated above, the j invariants of E and Et are equal. E and E twist generally have different orders.
[0096]
In steps S304 to S308 by the elliptic curve generation unit 210, the Lth order elliptic curve EI2 is obtained. Since the elliptic curve is obtained from the j invariant, the twist of the Lth order homogeneous elliptic curve EI2 to be obtained is obtained. There is a possibility. In step S314, it is checked whether or not the order of the elliptic curve EI is equal to that of the input elliptic curve EI in order to determine whether or not the desired Lth order elliptic curve is obtained. Therefore, when it is not determined that they are equal, the twist of y ^ 2 = x ^ 3 + a2 * x + b2 is calculated.
[0097]
As can be seen from the above description, the security of elliptic curve cryptography depends on the order. Since the elliptic curve conversion apparatus 200 converts the input elliptic curve into the same type of elliptic curve, that is, an elliptic curve having the same order, it can be said that the conversion is performed while maintaining safety.
[0098]
In addition, the conventional elliptic curve conversion device according to the above-mentioned Japanese Patent No. 30503313 was able to convert an input elliptic curve into an elliptic curve satisfying a = −3 with a probability of 1/4, but this embodiment The elliptic curve conversion apparatus 200 of the first embodiment searches for an elliptic curve of the same type, that is, an extremely large number of elliptic curves having the same order, so that a = −3 in the elliptic curves having the same order. Anything can be converted.
[0099]
As described above, the elliptic curve conversion apparatus according to the first embodiment can convert an arbitrary elliptic curve into an elliptic curve with a = −3 with a very high probability, which further reduces the amount of calculation while maintaining its safety. become.
(Embodiment 2)
An elliptic curve conversion device 400 according to the second embodiment of the present invention will be described.
[0100]
FIG. 5 is a functional block diagram showing a configuration of the elliptic curve conversion device 400 according to the second embodiment. The elliptic curve conversion device 400 is a device that is realized by a program executed on a computer or an electronic circuit such as LSI, and functionally includes an elliptic curve generation unit 410, an elliptic curve condition determination unit 420, and an elliptic curve output. Part 430. The elliptic curve conversion device 400 receives the parameters p, a, b of the Weirstrass type elliptic curve EI: y ^ 2 = x ^ 3 + a * x + b on the finite field GF (p) and the order mEI of the elliptic curve EI. And the parameters A ′ and B ′ of the Montgomery-type elliptic curve EO: B ′ × y 2 = x 3 + A ′ × x 2 + x on the same kind of GF (p) are output.
[0101]
The elliptic curve generation unit 410 receives an arbitrary arbitrary Wirestrass type elliptic curve and searches for a Montgomery type elliptic curve similar to the elliptic curve. If there is, the elliptic curve generation unit 410 generates the elliptic curve, and the elliptic curve condition determination unit 420 and the elliptic curve output unit 430. Specifically, the elliptic curve generation unit 410 calculates the parameters p, a, and b of the input arbitrary Wirestrass-type elliptic curve EI: y ^ 2 = x ^ 3 + a * x + b and the order mEI of the elliptic curve EI. As input, search for the same kind of Montgomery-type elliptic curve EI2: B2 × y ^ 2 = x ^ 3 + A2 × x ^ 2 + x. If found, output A2 and B2 of the elliptic curve. Output.
[0102]
The elliptic curve condition determination unit 420 determines whether the output value from the elliptic curve generation unit 410 is an elliptic curve parameter or False, and if it is False, notifies the elliptic curve generation unit 410 to that effect. This causes the elliptic curve generation unit 410 to generate another similar Montgomery-type elliptic curve again. On the other hand, when it is not False, the fact is notified to the elliptic curve output unit 430.
[0103]
When the elliptic curve output unit 430 receives a notification from the elliptic curve condition determination unit 420 that the output value of the elliptic curve generation unit 410 is not False, the elliptic curve EI2 output from the elliptic curve generation unit 410: B2 × y ^ 2 = x ^ 3 + A2 * x ^ 2 + x parameters A2 and B2 are output to the outside as A 'and B'.
[0104]
Next, the operation of the elliptic curve conversion apparatus 400 in the present embodiment configured as described above will be described.
FIG. 6 is a flowchart showing the operation of the elliptic curve conversion apparatus 400. First, the elliptic curve generation unit 410 receives the input Weirstrass-type elliptic curve (step S400), searches for a Montgomery-type elliptic curve similar to the elliptic curve (step S401), and if found, the elliptic curve If the curve (parameters A 2 and B 2) is not found, the fact (False) is output to the elliptic curve condition determination unit 420 and the elliptic curve output unit 430. The elliptic curve condition determination unit 420 determines whether or not the Montgomery-type elliptic curve is searched for by the elliptic curve generation unit 410, that is, whether or not the output of the elliptic curve generation unit 410 is False (S402). If not, that is, if it is False (No in step S402), the fact is notified to the elliptic curve generation unit 410.
[0105]
Upon receiving the notification, the elliptic curve generation unit 410 repeats the search for another Montgomery-type elliptic curve of the same type as the input Wyaerstrath-type elliptic curve (S401 to S402). At this time, the elliptic curve generation unit 410 generates another similar Montgomery-type elliptic curve from the input Weirstrass-type elliptic curve by using a homogeneous map of different order (L-order homogeneous map). Try.
[0106]
On the other hand, when the search by the elliptic curve conversion device 400 is successful (Yes in step S402), the elliptic curve condition determination unit 420 notifies the elliptic curve output unit 430 to that effect. Upon receiving the notification, the elliptic curve output unit 430 outputs the parameters A2 and B2 of the Montgomery-type elliptic curve EI2 output from the elliptic curve generation unit 410 as A ′ and B ′ (step S403).
[0107]
7 to 8 are flowcharts showing the detailed procedure of the process (step S401) of the elliptic curve generation unit 410 in FIG.
The elliptic curve generation unit 410 performs a Montgomery-type ellipse of the same kind from the parameters a and b of the input elliptic curve EI: y 2 = x 3 + a × x + b and the order mEI of the elliptic curve EI according to the following procedure. Curve EI2: B2 * y ^ 2 = x ^ 3 + A2 * x ^ 2 + x is searched, and if the search is successful, its coefficients A2 and B2 are output, otherwise False is output.
[0108]
Step S501: The j invariant jEI of the elliptic curve EI is obtained from the following equation.
jEI = 1728 * (4 * a ^ 3 + 27 * b ^ 2) / (4 * a ^ 3)
Step S502: The initial value (2) is set to the prime number L.
Step S503: The modular polynomial ΦL (X, Y) corresponding to the prime number L is read.
[0109]
Step S504: ΦL (X, Y) = 0 is solved on the finite field GF (p) with Y as an undetermined variable.
Step S505 (S505a, S505b): If there are not two or more solutions, the next largest prime number is set as the prime number L, and the process proceeds to step S503. For the prime number L, values taken out in ascending order from a pre-stored series of prime numbers (2, 3, 5, 7,...) Are set.
[0110]
Step S506: One of the above solutions is selected and S is designated.
Step S507: ΦL (X, S) = 0 is solved on the finite field GF (p) with X as an undetermined variable.
Step S508: A solution other than a solution equal to jEI is taken out of the above solutions and is set as jEI2.
[0111]
Step S509: The following equation is solved on the finite field GF (p).
X ^ 6-9 * X ^ 4 + 27 * (1-jEI <2> / 1728) + 27 * (4 * jEI <2> / 1728-1) = 0
Step S510 (S510a, S510b): If there is a solution of the above equation, one of the solutions is designated as A2, and the process proceeds to step S511. Otherwise, go to step 512.
[0112]
Step S511: B2 = 1. Go to step S513.
Step S512: Output False and end.
Step S513: A point having GF (p) as coordinates on the elliptic curve y ^ 2 = x ^ 3 + A2 * x ^ 2 + x is searched for as PEI2.
Step S514 (S514a, S514b): It is determined whether mEI * PEI2 = 0 is satisfied. Where O is the zero element of EI2. If satisfied, output A2 and B2 and end. Otherwise, go to step S515.
[0113]
Step S515 (S515a, S515b): Select the element of the non-square residue by the modulus p and set it as c. The twist of the elliptic curve y ^ 2 = x ^ 3 + A2 * x ^ 2 + x: B2 '* y ^ 2 = x ^ 3 + A2' * x ^ 2 + x is obtained from the following equation.
A2 '= A2
B2 '= c ^ 3
Step S516: A2 'and B2' are output as A2 and B2, and the process ends.
[0114]
When the elliptic curve generation unit 410 receives a notification from the elliptic curve condition determination unit 420 that the output of the elliptic curve generation unit 410 is False, the prime number next to the immediately preceding prime L is changed to the prime L. After setting (step S505b), the processing from step S503 is repeated.
[0115]
In this way, the elliptic curve conversion device 400 converts the input elliptic curve into the same type of elliptic curve, that is, an elliptic curve having the same order, so that the elliptic curve conversion device 400 performs a conversion that maintains safety. It can be said that it is going.
[0116]
Here, based on the same idea as the conventional elliptic curve conversion device according to the above-mentioned Patent No. 30503313, a conversion method in the case of converting the input Wire Strass type elliptic curve into the same type Montgomery type elliptic curve and the present embodiment Compare with the conversion method in. A conventional elliptic curve conversion device can convert an input elliptic curve into a Montgomery-type elliptic curve with a probability of 19/48 only. On the other hand, since the elliptic curve conversion apparatus 400 according to the present embodiment converts into an elliptic curve of the same type, that is, with the same order, if the Montgomery type elliptic curve is in the elliptic curve with the same order, the conversion is always possible. .
[0117]
Therefore, the elliptic curve conversion device according to the present embodiment can convert an arbitrary Wirestrass-type elliptic curve into a Montgomery-type elliptic curve with a very high probability of reducing the amount of calculation while maintaining its safety. become.
[0118]
Next, the basic algorithm of the present invention common to the first and second embodiments will be described in comparison with the conventional elliptic curve conversion device according to the above-mentioned Japanese Patent No. 30503313. FIG. 9A is a diagram showing an elliptic curve search method by the conventional elliptic curve conversion device, and FIG. 9B is an elliptic curve search method by the elliptic curve conversion device 200 in the first embodiment. FIG. 9C is a diagram illustrating an elliptic curve search method performed by the elliptic curve conversion apparatus 400 according to the second embodiment. In these figures, a large frame 500 positioned outside indicates a set of elliptic curves of the same type as the elliptic curve input to the elliptic curve conversion device, and a black circle 501 indicates the elliptic curve input to the elliptic curve conversion device. , A frame 502 shows a set of elliptic curves of the same type as the elliptic curve 501, and frames 510 to 512 and 520 to 522 are ellipses having the same type of L-order relationship as shown in the figure with the input elliptic curve 501. Indicates a set of curves.
[0119]
As shown in FIG. 9A, the conventional elliptic curve conversion device searches for an elliptic curve satisfying a certain condition (a2 = -3) from an elliptic curve group 502 having the same type as the input elliptic curve 501. is doing. On the other hand, the elliptic curve conversion apparatus 200 according to the first embodiment of the present invention, as shown in FIG. 9B, a2 = If an elliptic curve satisfying the speed-up condition of −3 is searched and cannot be found, the L1 order homogeneous elliptic curve 510 and the L1 order homogeneous elliptic curve group 511 (that is, the elliptic curve 501 and the L1 ^ second order homogeneous) The search of searching from among elliptic curves is repeated in the range of similar elliptic curves.
[0120]
Therefore, the elliptic curve conversion apparatus 200 according to the first embodiment is different from the conventional elliptic curve conversion apparatus that searches for a target elliptic curve for a group of elliptic curves belonging to a narrow range of the same type, and an elliptic curve belonging to a wider range of the same type. Since the target elliptic curve is searched for the curve group, as long as the target elliptic curve exists in the same kind of elliptic curve group, the target elliptic curve is searched and generated with a probability of 100%. Can do.
[0121]
Note that an elliptic curve 511 obtained by applying an L1 order homogeneous map to the elliptic curve 510 obtained by applying an L1 order homogeneous map to the input elliptic curve 501 is the original elliptic curve. Equivalent to applying L1 ^ 2 second-order homogeneous mapping to 501.
[0122]
As shown in FIG. 9C, the elliptic curve conversion apparatus 400 according to the second embodiment of the present invention includes a Montgomery-type ellipse from the input elliptic curve 501 and the L1-order similar elliptic curve group 520. If an elliptic curve satisfying the speeding up condition of a curve is searched and not found, this time, a search for searching the input elliptic curve 501 from the L2 order similar elliptic curve group 521 is performed. It repeats in the range of the curve group 500.
[0123]
Therefore, the elliptic curve conversion apparatus 400 according to the second embodiment is different from the conventional elliptic curve conversion apparatus that searches for the target elliptic curve for the elliptic curve group belonging to a narrow range of the same type, and the elliptic curve belonging to a wider range of the same type. Since the target elliptic curve is searched for the curve group, as long as the target elliptic curve exists in the same kind of elliptic curve group, the target elliptic curve is searched and generated with a probability of 100%. Can do.
[0124]
Although the elliptic curve conversion device according to the present invention has been described based on the two embodiments, it is needless to say that the present invention is not limited to these embodiments.
[0125]
For example, in the second embodiment, the homogeneous map shown in FIG. 9C is used, but the homogeneous map shown in FIG. 9B may be used. That is, instead of repeating the search using the elliptic curve once generated as a new input elliptic curve, the search may be performed by repeating different homogenous mappings on the first input elliptic curve.
[0126]
The determination condition in steps S305 and S505 by the elliptic curve generation unit 210 and the elliptic curve generation unit 410 may be “two solutions”. Further, at this time, in steps S302 and S502, after it is determined in steps S305a and S505a that “there are two solutions”, the value of L at that time may be set. That is, if it is determined in steps S305a and S505a that “there are two or more solutions”, the same type of L (the same order of L type) can be repeated for the input elliptic curve by L at that time ( Since it is guaranteed that an elliptic curve after mapping always exists), it is possible to repeat L-order mapping of the same order (L) as shown in FIG. 9B.
[0127]
The present invention can also be realized as an elliptic curve utilization device that utilizes the elliptic curve obtained by the elliptic curve conversion device described above. A specific example of an elliptic curve utilization device is an encryption communication system comprising an encryption device and a decryption device, a digital signature system comprising a digital signature device and a signature verification device, and the two devices mutually authenticate the validity of the other party. For example, a key sharing system for sharing a secret key by matching.
[0128]
For example, as in the application example of the present invention illustrated in FIG. 10, the management center C including the elliptic curve conversion device according to the present invention uses an elliptic curve (for example, an elliptic curve with a 2 = −3) used in the cryptographic communication system. ) And provided to the users A1 to An, or an elliptic curve (for example, Montgomery-type elliptic curve) used in the digital signature system is generated and provided to the users B1 to Bn.
[0129]
In order to ensure safety, for example, when a predetermined period has elapsed, the management center C generates a new elliptic curve using the elliptic curve conversion device according to the present invention, and the users A1 to An and the user B1. ~ Bn, and the elliptic curve used in the cryptographic communication system and digital signature system may be updated. Further, the devices of the users A1 to An notify the elliptic curve conversion device of the management center C of the elliptic curve parameters (p, a, b, mEI) used so far, and manage the parameters as inputs. The elliptic curve conversion device of the center C may generate a new elliptic curve and return it to the users A1 to An. Then, the devices of the users A1 to An perform cryptographic communication using the new elliptic curve returned from the elliptic curve conversion device of the management center C. This realizes a highly secure cryptographic system in which the elliptic curve that is the basis of the encryption is dynamically changed.
[0130]
Further, the present invention may be an elliptic curve generation device that generates a parameter of a safe elliptic curve including the elliptic curve conversion device described above. For example, a set of input parameters to the elliptic curve conversion device in the above embodiment is generated in a certain procedure, or a set of a plurality of input parameters is stored in advance, and the input parameter generation that is sequentially output to the elliptic curve conversion device By providing the unit, it is possible to realize an elliptic curve generation device including the input parameter generation unit and the elliptic curve conversion device.
[0131]
Further, the elliptic curve conversion device according to the embodiment described above satisfies a = −3 or a Montgomery-type elliptic curve as an elliptic curve condition. As long as the speedup condition is such that the calculation amount of the calculation on the elliptic curve is reduced, any method may be used.
[0132]
Further, in the elliptic curve conversion device in the above embodiment, when the elliptic curve condition determination unit determines that the condition of a certain elliptic curve is not satisfied, the process by the elliptic curve generation unit is repeated. No repeated processing may be performed and nothing may be output. Further, it may be repeated up to a certain number of times. Thus, elliptic curve transformation can be performed under a certain time constraint.
[0133]
Further, the present invention can also be realized as an elliptic curve conversion method using the characteristic components included in the elliptic curve conversion device according to the present embodiment as a step.
[0134]
【The invention's effect】
As described above, according to the present invention, an elliptic curve satisfying a = -3 in an elliptic curve similar to the elliptic curve, or a Montgomery-type elliptic curve according to the present invention. Can be converted to such an elliptic curve. Therefore, it becomes easy to generate an elliptic curve that reduces the amount of calculation without sacrificing security, and in particular, a plurality of encryption communication systems, electronic signature systems, or key sharing systems that use an elliptic curve have a plurality of It is suitable for systems that adopt elliptic curves and systems that dynamically change elliptic curves, and has practical value as a fundamental technology for electronic payments, secret communications, and digital work protection that requires high security. Is extremely large.
[Brief description of the drawings]
FIG. 1 is a functional block diagram showing a configuration of an elliptic curve conversion device according to a first embodiment of the present invention.
FIG. 2 is a flowchart showing the operation of the elliptic curve conversion device.
FIG. 3 is a first half of a flowchart showing a detailed procedure of processing (step S201) of the elliptic curve generation unit in FIG. 2;
FIG. 4 is the latter half of the flowchart showing the detailed procedure of the process (step S201) of the elliptic curve generation unit in FIG.
FIG. 5 is a functional block diagram showing a configuration of an elliptic curve conversion device according to Embodiment 2 of the present invention.
FIG. 6 is a flowchart showing the operation of the elliptic curve conversion apparatus.
FIG. 7 is a first half of a flowchart showing a detailed procedure of the process (step S401) of the elliptic curve generation unit in FIG.
FIG. 8 is the latter half of the flowchart showing the detailed procedure of the process (step S401) of the elliptic curve generation unit in FIG.
9A is a diagram showing an elliptic curve search method using a conventional elliptic curve conversion device, and FIG. 9B is a diagram showing an elliptic curve search method using an elliptic curve conversion device according to the present invention. is there.
FIG. 10 is a sequence diagram of a communication system showing an application example of an elliptic curve conversion device according to the present invention.
FIG. 11 is a sequence diagram illustrating a procedure of a digital signature method using an El Gamal signature.
FIG. 12 is a block diagram of a conventional elliptic curve conversion device.
[Explanation of symbols]
200 Elliptic curve converter
210 Elliptic curve generator
220 Elliptic curve condition determination unit
230 Elliptic curve output unit
400 Elliptic curve converter
410 Elliptic curve generator
420 Elliptic curve condition determination unit
430 Elliptic curve output unit

Claims (15)

有限体F上の第1楕円曲線としてのワイヤーシュトラウス型楕円曲線EI:y^2=x^3+a×x+bを、第2有限体F上の第2楕円曲線としての楕円曲線EO:y^2=x^3−3×x+b’に変換する楕円曲線変換装置であって、
外部装置から前記第1楕円曲線のパラメータa及びbと前記第1楕円曲線の位数とを入力し、前記第1楕円曲線と位数が同じで、かつ、前記第1楕円曲線と群準同型である楕円曲線群であるL1次同種な楕円曲線群EI2:y^2=x^3+a2×x+b2の中から、楕円曲線上でa2=−3の条件を満たす楕円曲線を探索する探索手段と、
前記探索手段による探索により、前記条件を満たす楕円曲線が探索されたか否かを判定する判定手段と、
前記判定手段によって前記条件を満たす楕円曲線が探索されたと判断された場合に、当該楕円曲線のパラメータb2を前記第2楕円曲線のパラメータb’として前記外部装置へ出力する出力手段と
を備えることを特徴とする楕円曲線変換装置。
Wire Strauss type elliptic curve EI: y ^ 2 = x ^ 3 + a × x + b as the first elliptic curve on the finite field F , and elliptic curve EO: y ^ 2 = as the second elliptic curve on the second finite field F An elliptic curve conversion device that converts x ^ 3-3 × x + b ′ ,
The parameters a and b of the first elliptic curve and the order of the first elliptic curve are input from an external device, the order is the same as that of the first elliptic curve, and the group is homomorphic with the first elliptic curve. a search means for searching the elliptic curve that satisfies among y ^ 2 = x ^ 3 + a2 × x + b2, the conditions on the elliptic curve a2 = -3,: an elliptic curve group L1 primary allogeneic elliptic curve group EI2 is
The search by the searching means, elliptic curve that satisfies the condition judging means for judging whether or not searched,
When the elliptic curve that satisfies the condition by the determining means is determined to have been searched, further comprising an output means for outputting to the external device parameters b2 of the elliptic curve as parameters b 'of the second elliptic curve A characteristic elliptic curve converter.
前記探索手段は、
前記第1楕円曲線のj不変数を算出するj不変数算出部と、
予め記憶している素数の系列から小さい順に素数LをL1として取出す素数生成部と、
取出された前記素数Lから計算可能なモジュラー多項式Φ(X、Y)を生成する多項式生成部と、
生成された前記モジュラー多項式Φ(X、Y)と前記j不変数とを用いて、方程式を生成する方程式生成部と、
生成された前記方程式について前記有限体F上における解を算出する方程式求解部と、
算出された前記解の個数が予め与えられた個数条件を満たすか否かを判定する解判定部と、
前記解の個数が前記個数条件を満たすまで、前記素数生成部、前記多項式生成部、前記方程式生成部、前記方程式求解部及び前記解判定部に対して、それぞれ、異なる素数の生成、多項式の生成、方程式の生成、方程式の求解及び解の個数の判定をするように制御する制御部と
を有することを特徴とする請求項記載の楕円曲線変換装置。
The search means includes
A j invariant calculating unit for calculating a j invariant of the first elliptic curve;
A prime number generation unit that extracts a prime number L as L1 in ascending order from a sequence of prime numbers stored in advance;
A polynomial generation unit generating a computable modular polynomials Φ (X, Y) from the take-out has been the prime number L,
An equation generator that generates an equation using the generated modular polynomial Φ (X, Y) and the j invariant;
An equation solving unit for calculating a solution on the finite field F with respect to the generated equation;
A solution determination unit that determines whether or not the calculated number of solutions satisfies a predetermined number condition;
Until the number of solutions satisfies the number condition, different prime numbers and polynomials are generated for the prime number generation unit, the polynomial generation unit, the equation generation unit, the equation solution unit, and the solution determination unit, respectively. , generation of equations, elliptic curve converting device according to claim 1, characterized in that it comprises a control unit for controlling to the determination of the number of solving and solutions to the equation.
前記制御部は、前記解の個数が前記個数条件を満たした後は、前記素数生成部から新たな素数を取出すことなく、同一の素数を用いて、楕円曲線を探索する
ことを特徴とする請求項記載の楕円曲線変換装置。
The control unit searches for an elliptic curve using the same prime number without taking out a new prime number from the prime number generation unit after the number of solutions satisfies the number condition. Item 3. The elliptic curve conversion device according to Item 2 .
前記探索手段は、前記判定手段によって前記条件を満たす楕円曲線が探索されなかったと判断された場合には、前記条件を満たす楕円曲線の探索を繰り返す
ことを特徴とする請求項1記載の楕円曲線変換装置。
The search means, when said elliptic curve that satisfies the condition is determined to have not been searched by the determining means, elliptic curve transformation according to claim 1, wherein the repeating the search of the elliptic curve that satisfies the conditions apparatus.
前記探索手段は、前記判定手段によって前記条件を満たす楕円曲線が探索されなかったと判断された場合には、前記第1楕円曲線とL2次同種な楕円曲線群の中から、前記条件を満たす楕円曲線を探索する
ことを特徴とする請求項記載の楕円曲線変換装置。
Elliptic Curve the search unit, when the elliptic curve that satisfies the condition by the determining means is determined to have not been searched, from the first elliptic curve and L2 primary allogeneic elliptic curve group, which satisfies the condition The elliptic curve conversion device according to claim 4, wherein:
前記探索手段は、前記第1楕円曲線と位数が同じで、かつ、L1次同種な楕円曲線群の中から、楕円曲線上でa2=−3の条件を満たす楕円曲線の候補となる暫定的な楕円曲線を特定し、
前記判定手段は、前記探索手段で特定された暫定的な楕円曲線が前記条件を満たすか否かを判定し、
前記探索手段は、前記判定手段によって前記暫定的な楕円曲線が前記条件を満たさないと判断された場合には、前記暫定的な楕円曲線を新たな第1楕円曲線とし、その第1楕円曲線と位数が同じで、かつ、前記第1楕円曲線と群準同型である楕円曲線群であるL1次同種な楕円曲線群の中から、楕円曲線上でa2=−3の条件を満たす楕円曲線を探索する
ことを特徴とする請求項記載の楕円曲線変換装置。
The searching means is a temporary elliptic curve candidate that satisfies the condition of a2 = −3 on the elliptic curve from the L1-order similar elliptic curve group having the same order as the first elliptic curve. Specific elliptic curve,
It said determining means, tentative elliptic curve identified by the search means is operable to determine whether it meets the condition,
When the determination unit determines that the provisional elliptic curve does not satisfy the condition , the search unit sets the provisional elliptic curve as a new first elliptic curve, and the first elliptic curve Elliptic curves having the same order and satisfying the condition of a2 = -3 on the elliptic curve from among the elliptic curve groups of the L1 degree that are group homomorphic with the first elliptic curve. The elliptic curve conversion device according to claim 4 , wherein searching is performed.
有限体F上の第1楕円曲線としてのワイヤーシュトラウス型楕円曲線EWire Strauss-type elliptic curve E as the first elliptic curve on the finite field F I:y^2=x^3+a×x+bを、第2有限体F上の第2楕円曲線としてのモンゴメリ型楕円曲線EO:B’×y^2=x^3+A’×x^2+xに変換する楕円曲線変換装置であって、I: y ^ 2 = x ^ 3 + a * x + b is converted into a Montgomery-type elliptic curve EO: B '* y ^ 2 = x ^ 3 + A' * x ^ 2 + x as the second elliptic curve on the second finite field F An elliptic curve converter,
外部装置から前記第1楕円曲線のパラメータa及びbと前記第1楕円曲線の位数とを入力し、前記第1楕円曲線と位数が同じで、かつ、前記第1楕円曲線と群準同型であるモンゴメリ型楕円曲線EI2:B2×y^2=x^3+A2×x^2+xを探索する探索手段と、The parameters a and b of the first elliptic curve and the order of the first elliptic curve are input from an external device. A search means for searching for a Montgomery-type elliptic curve EI2: B2 * y ^ 2 = x ^ 3 + A2 * x ^ 2 + x,
前記探索手段による探索により、前記モンゴメリ型楕円曲線EI2が探索されたか否かを判定する判定手段と、Determination means for determining whether or not the Montgomery-form elliptic curve EI2 has been searched by the search by the search means;
前記判定手段によって前記モンゴメリ型楕円曲線EI2が探索されたと判断された場合に、当該モンゴメリ型楕円曲線EI2のパラメータA2及びB2を前記第2楕円曲線のパラメータB’及びA’として前記外部装置へ出力する出力手段とWhen the determination means determines that the Montgomery elliptic curve EI2 has been searched, the parameters A2 and B2 of the Montgomery elliptic curve EI2 are output to the external device as the parameters B ′ and A ′ of the second elliptic curve. Output means to
を備えることを特徴とする楕円曲線変換装置。An elliptic curve conversion device comprising:
楕円曲線変換装置で得られた楕円曲線を利用する楕円曲線利用装置であって、
前記楕円曲線を特定するパラメータを記憶する記憶手段と、
有限体Fの構造と前記記憶手段に記憶されているパラメータとで定まる楕円曲線を利用する暗号、復号、デジタル署名、デジタル署名検証又は鍵共有を行う利用手段とを備え、
前記楕円曲線変換装置は、
有限体F上の第1楕円曲線としてのワイヤーシュトラウス型楕円曲線EI:y^2=x^3+a×x+bを、第2有限体F上の第2楕円曲線としての楕円曲線E0:y^2=x^3−3×x+b’に変換する楕円曲線変換装置であって、
外部装置から前記第1楕円曲線のパラメータa及びbと前記第1楕円曲線の位数とを入力し、前記第1楕円曲線と位数が同じで、かつ、前記第1楕円曲線と群準同型である楕円曲線群であるL1次同種な楕円曲線群EI2:y^2=x^3+a2×x+b2の中から、楕円曲線上でa2=−3の条件を満たす楕円曲線を探索する探索手段と、
前記探索手段による探索により、前記条件を満たす楕円曲線が探索されたか否かを判定する判定手段と、
前記判定手段によって前記条件を満たす楕円曲線が探索されたと判断された場合に、当該楕円曲線のパラメータb2を前記第2楕円曲線のパラメータb’として前記外部装置へ出力する出力手段と
を備えることを特徴とする楕円曲線利用装置。
An elliptic curve utilization device using an elliptic curve obtained by an elliptic curve conversion device,
Storage means for storing parameters for specifying the elliptic curve;
Using encryption means, decryption, digital signature, digital signature verification or key sharing using an elliptic curve determined by the structure of the finite field F and the parameters stored in the storage means,
The elliptic curve conversion device comprises:
Wire Strauss type elliptic curve EI: y ^ 2 = x ^ 3 + a × x + b as the first elliptic curve on the finite field F , and elliptic curve E0: y ^ 2 = as the second elliptic curve on the second finite field F An elliptic curve conversion device that converts x ^ 3-3 × x + b ′ ,
The parameters a and b of the first elliptic curve and the order of the first elliptic curve are input from an external device, the order is the same as that of the first elliptic curve, and the group is homomorphic with the first elliptic curve. a search means for searching the elliptic curve that satisfies among y ^ 2 = x ^ 3 + a2 × x + b2, the conditions on the elliptic curve a2 = -3,: an elliptic curve group L1 primary allogeneic elliptic curve group EI2 is
The search by the searching means, elliptic curve that satisfies the condition judging means for judging whether or not searched,
When the elliptic curve that satisfies the condition by the determining means is determined to have been searched, further comprising an output means for outputting to the external device parameters b2 of the elliptic curve as parameters b 'of the second elliptic curve A characteristic elliptic curve utilization device.
前記楕円曲線利用装置は、さらに、
前記記憶手段に記憶されているパラメータを前記楕円曲線変換装置に送信することによって、前記楕円曲線変換装置に新たな楕円曲線のパラメータを生成させるパラメータ送信手段と、
前記楕円曲線変換装置で生成されたパラメータで前記記憶手段の内容を更新するパラメータ更新手段とを備える
ことを特徴とする請求項記載の楕円曲線利用装置。
The elliptic curve utilization device further includes:
Parameter transmitting means for causing the elliptic curve conversion device to generate a new elliptic curve parameter by transmitting the parameters stored in the storage means to the elliptic curve conversion device;
The elliptic curve utilization device according to claim 8 , further comprising parameter update means for updating the contents of the storage means with parameters generated by the elliptic curve conversion device.
有限体F上の第1楕円曲線としてのワイヤーシュトラウス型楕円曲線EI:y^2=x^3+a×x+bを、第2有限体F上の第2楕円曲線としての楕円曲線EO:y^2=x^3−3×x+b’に変換する楕円曲線変換装置であって、
前記第1楕円曲線のパラメータa及びbと前記第1楕円曲線の位数とを生成する生成手段と、
前記生成された前記第1楕円曲線と位数が同じで、かつ、前記第1楕円曲線と群準同型である楕円曲線群であるL1次同種な楕円曲線群の中から、楕円曲線上でa2=−3の条件を満たす楕円曲線を探索する探索手段と、
前記探索手段による探索により、前記条件を満たす楕円曲線が探索されたか否かを判定する判定手段と、
前記判定手段によって前記条件を満たす楕円曲線が探索されたと判断された場合に、当該楕円曲線のパラメータb2を前記第2楕円曲線のパラメータb’として外部装置へ出力する出力手段と
を備えることを特徴とする楕円曲線変換装置
Wire Strauss type elliptic curve EI: y ^ 2 = x ^ 3 + a × x + b as the first elliptic curve on the finite field F, and elliptic curve EO: y ^ 2 = as the second elliptic curve on the second finite field F An elliptic curve conversion device that converts x ^ 3-3 × x + b ′,
Generating means for generating parameters a and b of the first elliptic curve and the order of the first elliptic curve ;
Among the elliptic curve groups of the L1th order that are the same order as the generated first elliptic curve and are homomorphic with the first elliptic curve , a2 on the elliptic curve a2 = a search means for searching the elliptic curve that satisfies -3 conditions,
The search by the searching means, elliptic curve that satisfies the condition judging means for judging whether or not searched,
Wherein when the elliptic curve that satisfies the condition is determined to be searched by the determining means, and output means for outputting to an external device parameters b2 of the elliptic curve as parameters b 'of the second elliptic curve An elliptic curve converter .
前記探索手段は、前記判定手段によって前記条件を満たす楕円曲線が探索されなかったと判断された場合には、前記条件を満たす楕円曲線の探索を繰り返す
ことを特徴とする請求項10記載の楕円曲線変換装置
The search means, when said elliptic curve that satisfies the condition is determined to have not been searched by the determining means, elliptic curve transformation according to claim 10, wherein repeating the search of the elliptic curve that satisfies the conditions Equipment .
楕円曲線変換装置で得られた楕円曲線を利用する楕円曲線利用装置であって、An elliptic curve utilization device using an elliptic curve obtained by an elliptic curve conversion device,
前記楕円曲線を特定するパラメータを記憶する記憶手段と、Storage means for storing parameters for specifying the elliptic curve;
有限体Fの構造と前記記憶手段に記憶されているパラメータとで定まる楕円曲線を利用する暗号、復号、デジタル署名、デジタル署名検証又は鍵共有を行う利用手段とを備え、Use means for performing encryption, decryption, digital signature, digital signature verification or key sharing using an elliptic curve determined by the structure of the finite field F and the parameters stored in the storage means;
前記楕円曲線変換装置は、The elliptic curve conversion device comprises:
有限体F上の第1楕円曲線としてのワイヤーシュトラウス型楕円曲線EI:y^2=x^3+a×x+bを、第2有限体F上の第2楕円曲線としてのモンゴメリ型楕円曲線EO:B’×y^2=x^3+A’×x^2+xに変換する楕円曲線変換装置であって、Wire Strauss-type elliptic curve EI: y ^ 2 = x ^ 3 + a × x + b as the first elliptic curve on finite field F, Montgomery-type elliptic curve EO: B ′ as the second elliptic curve on second finite field F Xy ^ 2 = x ^ 3 + A ′ × x ^ 2 + x, which is an elliptic curve conversion device,
外部装置から前記第1楕円曲線のパラメータa及びbと前記第1楕円曲線の位数とを入力し、前記第1楕円曲線と位数が同じで、かつ、前記第1楕円曲線と群準同型であるモンゴメリ型楕円曲線EI2:B2×y^2=x^3+A2×x^2+xを探索する探索手段と、The parameters a and b of the first elliptic curve and the order of the first elliptic curve are input from an external device. A search means for searching for a Montgomery-type elliptic curve EI2: B2 * y ^ 2 = x ^ 3 + A2 * x ^ 2 + x,
前記探索手段による探索により、前記モンゴメリ型楕円曲線EI2が探索されたか否かを判定する判定手段と、Determination means for determining whether or not the Montgomery-form elliptic curve EI2 has been searched by the search by the search means;
前記判定手段によって前記モンゴメリ型楕円曲線EI2が探索されたと判断された場合に、当該モンゴメリ型楕円曲線EI2のパラメータA2及びB2を前記第2楕円曲線のパラメータB’及びA’として前記外部装置へ出力する出力手段とWhen the determination means determines that the Montgomery elliptic curve EI2 has been searched, the parameters A2 and B2 of the Montgomery elliptic curve EI2 are output to the external device as the parameters B ′ and A ′ of the second elliptic curve. Output means to
を備えることを特徴とする楕円曲線利用装置。An elliptic curve utilization device comprising:
前記楕円曲線利用装置は、さらに、The elliptic curve utilization device further includes:
前記記憶手段に記憶されているパラメータを前記楕円曲線変換装置に送信することによって、前記楕円曲線変換装置に新たな楕円曲線のパラメータを生成させるパラメータ送信手段と、Parameter transmitting means for causing the elliptic curve conversion device to generate a new elliptic curve parameter by transmitting the parameters stored in the storage means to the elliptic curve conversion device;
前記楕円曲線変換装置で生成されたパラメータで前記記憶手段の内容を更新するパラメータ更新手段とを備えるParameter updating means for updating the contents of the storage means with the parameters generated by the elliptic curve conversion device.
ことを特徴とする請求項12記載の楕円曲線利用装置。The apparatus for using an elliptic curve according to claim 12.
有限体F上の第1楕円曲線としてのワイヤーシュトラウス型楕円曲線EI:y^2=x^3+a×x+bを、第2有限体F上の第2楕円曲線としてのモンゴメリ型楕円曲線EO:B’×y^2=x^3+A’×x^2+xに変換する楕円曲線変換装置であって、Wire Strauss-type elliptic curve EI: y ^ 2 = x ^ 3 + a × x + b as the first elliptic curve on finite field F, Montgomery-type elliptic curve EO: B ′ as the second elliptic curve on second finite field F Xy ^ 2 = x ^ 3 + A ′ × x ^ 2 + x, which is an elliptic curve conversion device,
前記第1楕円曲線のパラメータa及びbと前記第1楕円曲線の位数とを生成する生成手段と、Generating means for generating parameters a and b of the first elliptic curve and the order of the first elliptic curve;
前記生成された前記第1楕円曲線と位数が同じで、かつ、前記第1楕円曲線と群準同型であるモンゴメリ型楕円曲線EI2:B2×y^2=x^3+A2×x^2+xを探索する探索手段と、Search for the Montgomery-type elliptic curve EI2: B2 * y ^ 2 = x ^ 3 + A2 * x ^ 2 + x having the same order as the generated first elliptic curve and having a group homomorphism with the first elliptic curve Search means to
前記探索手段による探索により、前記モンゴメリ型楕円曲線EI2が探索されたか否かを判定する判定手段と、Determination means for determining whether or not the Montgomery-form elliptic curve EI2 has been searched by the search by the search means;
前記判定手段によって前記モンゴメリ型楕円曲線EI2が探索されたと判断された場合に、当該モンゴメリ型楕円曲線EI2のパラメータA2及びB2を前記第2楕円曲線のパラメータB’及びA’として外部装置へ出力する出力手段とWhen the determination means determines that the Montgomery elliptic curve EI2 has been searched, the parameters A2 and B2 of the Montgomery elliptic curve EI2 are output to the external device as the parameters B ′ and A ′ of the second elliptic curve. Output means and
を備えることを特徴とする楕円曲線変換装置。An elliptic curve conversion device comprising:
前記外部装置は、公開鍵暗号を用いる暗号装置、復号装置、デジタル著名装置、デジタル署名検証装置、鍵共有装置のいずれかであることを特徴とする請求項1、請求項7、請  The external device is any one of an encryption device using public key cryptography, a decryption device, a digital famous device, a digital signature verification device, and a key sharing device. 求項10及び請求項14のいずれかに記載の楕円曲線変換装置。The elliptic curve conversion device according to any one of claims 10 and 14.
JP2002307370A 2001-10-25 2002-10-22 Elliptic curve conversion device, elliptic curve conversion method, elliptic curve utilization device, and elliptic curve generation device Expired - Fee Related JP4225764B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002307370A JP4225764B2 (en) 2001-10-25 2002-10-22 Elliptic curve conversion device, elliptic curve conversion method, elliptic curve utilization device, and elliptic curve generation device

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001-327337 2001-10-25
JP2001327337 2001-10-25
JP2002307370A JP4225764B2 (en) 2001-10-25 2002-10-22 Elliptic curve conversion device, elliptic curve conversion method, elliptic curve utilization device, and elliptic curve generation device

Publications (2)

Publication Number Publication Date
JP2003208096A JP2003208096A (en) 2003-07-25
JP4225764B2 true JP4225764B2 (en) 2009-02-18

Family

ID=27666479

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002307370A Expired - Fee Related JP4225764B2 (en) 2001-10-25 2002-10-22 Elliptic curve conversion device, elliptic curve conversion method, elliptic curve utilization device, and elliptic curve generation device

Country Status (1)

Country Link
JP (1) JP4225764B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6614979B2 (en) * 2016-01-15 2019-12-04 三菱電機株式会社 Encryption apparatus, encryption method, and encryption program
EP3367608A1 (en) * 2017-02-28 2018-08-29 Koninklijke Philips N.V. Elliptic curve isogeny based key agreement protocol

Also Published As

Publication number Publication date
JP2003208096A (en) 2003-07-25

Similar Documents

Publication Publication Date Title
EP1306749B1 (en) Elliptic curve converting device
Galbraith Mathematics of public key cryptography
US6263081B1 (en) Elliptic curve calculation apparatus capable of calculating multiples at high speed
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
KR100513127B1 (en) Elliptic curve transformation device, utilization device and utilization system
US7486789B2 (en) Device and method for calculation on elliptic curve
JP2011164607A (en) Method and system for privacy-preserving computation of edit distance of symbol sequence
Ustimenko et al. On extremal graph theory, explicit algebraic constructions of extremal graphs and corresponding Turing encryption machines
US6480606B1 (en) Elliptic curve encryption method and system
Ding et al. The Nested Subset Differential Attack: A Practical Direct Attack Against LUOV Which Forges a Signature Within 210 Minutes
JP4875686B2 (en) Accelerating finite field operations on elliptic curves
CN111897578A (en) Parallel processing method and device for scalar multiplication on elliptic curve with characteristic of 2
JP4225764B2 (en) Elliptic curve conversion device, elliptic curve conversion method, elliptic curve utilization device, and elliptic curve generation device
JP2020052215A (en) Public key encryption system, public key encryption method, and public key encryption program
JP3615405B2 (en) Method and apparatus for calculating points on elliptic curve on element body
JP3050313B2 (en) Elliptic curve conversion device, utilization device and utilization system
CN113535121A (en) Safe and efficient mathematical division calculation optimization method based on secret sharing protocol
Frey et al. Mathematical background of public key cryptography
JP2000137436A (en) Calculating method of point on elliptic curve on prime field and device therefor
CN111614465A (en) Public key generation method and device based on super-singular homologous secret key encapsulation protocol
Bessalov et al. 3-and 5-isogenies of supersingular Edwards curves
JP4105803B2 (en) Elliptic curve calculation device
Taşkın et al. TMVP-friendly primes for efficient elliptic curve cryptography
JP4541485B2 (en) Exponentiation arithmetic unit, exponentiation remainder arithmetic unit, elliptic power multiple arithmetic unit, arrangement of those methods, and recording medium
Gligoroski A Transformation for Lifting Discrete Logarithm Based Cryptography to Post-Quantum Cryptography

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080722

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080829

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081125

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

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4225764

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121205

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121205

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131205

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees