JP3050313B2 - 楕円曲線変換装置、利用装置及び利用システム - Google Patents

楕円曲線変換装置、利用装置及び利用システム

Info

Publication number
JP3050313B2
JP3050313B2 JP11056592A JP5659299A JP3050313B2 JP 3050313 B2 JP3050313 B2 JP 3050313B2 JP 11056592 A JP11056592 A JP 11056592A JP 5659299 A JP5659299 A JP 5659299A JP 3050313 B2 JP3050313 B2 JP 3050313B2
Authority
JP
Japan
Prior art keywords
elliptic curve
conversion coefficient
parameters
conversion
finite field
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 - Lifetime
Application number
JP11056592A
Other languages
English (en)
Other versions
JPH11316542A (ja
Inventor
充子 宮地
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP11056592A priority Critical patent/JP3050313B2/ja
Publication of JPH11316542A publication Critical patent/JPH11316542A/ja
Application granted granted Critical
Publication of JP3050313B2 publication Critical patent/JP3050313B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は情報セキュリテイ技
術としての暗号技術に関し、特に、楕円曲線を用いて実
現する暗号・復号技術、デジタル署名・検証技術及び鍵
共有技術に関する。
【0002】
【従来の技術】1.公開鍵暗号 近年、コンピュータ技術と通信技術とに基づくデータ通
信が広く普及してきており、このデータ通信において
は、秘密通信方式又はデジタル署名方式が用いられてい
る。ここで、秘密通信方式とは、特定の通信相手以外に
通信内容を漏らすことなく通信を行なう方式である。ま
たデジタル署名方式とは、通信相手に通信内容の正当性
を示したり、発信者の身元を証明する通信方式である。
【0003】これらの秘密通信方式又はデジタル署名方
式には公開鍵暗号とよばれる暗号方式が用いられる。公
開鍵暗号は通信相手が多数の時、通信相手ごとに異なる
暗号鍵を容易に管理するための方式であり、多数の通信
相手と通信を行なうのに不可欠な基盤技術である。公開
鍵暗号を用いる秘密通信では、暗号化鍵と復号化鍵とが
異なり、復号化鍵は秘密にするが、暗号化鍵は公開す
る。
【0004】この公開鍵暗号の安全性の根拠として離散
対数問題が用いられる。離散対数問題には、代表的なも
のとして、有限体上定義されるもの及び楕円曲線上定義
されるものがある。なお、離散対数問題については、ニ
イルコブリッツ著 ”ア コウス イン ナンバア セ
オリイ アンド クリプトグラヒイ”(Neal Koblitz, "
A Course in Number theory and Cryptography", Spri
nger-Verlag,1987)に詳しく述べられている。 2.楕円曲線上の離散対数問題 楕円曲線上の離散対数問題について、以下に述べる。
【0005】楕円曲線上の離散対数問題とは、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回加算することを意味する。 x*G=G+G+G+・・・+G 離散対数問題を公開鍵暗号の安全性の根拠とするのは、
多くの元を有する有限体GF(p)に対して、上記問題
は極めて難しいからである。 3.楕円曲線上の離散対数問題を応用したエルガマル署
名 以下に、上記楕円曲線上の離散対数問題を応用したエル
ガマル署名によるデジタル署名方式について、図1を用
いて、説明する。
【0007】この図は、上記エルガマル署名によるデジ
タル署名方式の手順を示すシーケンス図である。ユーザ
A110、管理センタ120及びユーザB130は、ネ
ットワークで接続されている。pを素数、有限体GF
(p)上の楕円曲線をEとする。Eのベースポイントを
Gとし、Eの位数をqとする。つまり、qは、 (式2) q*G=0 を満たす最小の正整数である。
【0008】なお、x座標、y座標ともに∞である
(∞、∞)を無限遠点といい、0で表す。この0は、楕
円曲線を群とみたときに、無限遠点が加算における「零
元」の役割を果たす。 (1)管理センタ120による公開鍵の生成 管理センタ120は、予め通知されているユーザA11
0の秘密鍵xAを用いて、式3に従って、ユーザA11
0の公開鍵YAを生成する(ステップS141〜S14
2)。 (式3) YA=xA*G その後、管理センタ120は、素数p、楕円曲線E及び
ベースポイントGをシステムパラメータとして公開し、
また、他のユーザB130にユーザA110の公開鍵Y
Aを公開する(ステップS143〜S144)。
【0009】(2)ユーザA110による署名生成 ユーザA110は、乱数kを生成する(ステップS14
5)。次に、ユーザA110は、 (式4) R1=(rx,ry)=k*G を計算し(ステップS146)、 (式5) s×k=m+rx×xA (mod q) から、sを計算する(ステップS147)。ここで、m
は、ユーザA110がユーザB130へ送信するメッセ
ージである。
【0010】さらに、ユーザA110は、得られた(R
1、s)を署名としてメッセージmとともに、ユーザB
130へ送信する(ステップS148)。 (3)ユーザB130による署名検証 ユーザB130は、 (式6) s*R1=m*G+rx*YA が成立するかどうか判定することにより、送信者である
ユーザA110の身元を確認する(ステップS14
9)。これは、 (式7) s*R1={((m+rx×xA)/k)×k}*G =(m+rx×xA)*G =m*G+(rx×xA)*G =m*G+rx*YA となることから明らかであるである。 4.楕円曲線上の点の加算、2倍算の演算による計算量 上記に示した楕円曲線上の離散対数問題を応用したエル
ガマル署名によるデジタル署名方式における公開鍵の生
成、署名生成、署名検証のそれぞれにおいて、楕円曲線
上の点の冪倍の演算の計算が行われる。例えば、式3に
示す「xA*G」、式4に示す「k*G」、式6に示す
「s*R1」、「m*G」、「rx*YA」は、楕円曲
線上の点の冪倍の演算である。
【0011】楕円曲線の演算公式については、"Efficie
nt elliptic curve exponentiation"(Miyaji, Ono, an
d Cohen著、Advances in cryptology-proceedings of I
CICS'97, Lecture notes incomputer science, 1997,
Springer-verlag, 282-290.)に詳しく説明されてい
る。
【0012】楕円曲線の演算公式について、以下に説明
する。楕円曲線の方程式をy^2 = x^3 +a×
x+b とし、任意の点Pの座標を(x1,y1)と
し、任意の点Qの座標を(x2,y2)とする。ここ
で、R=P+Qで定まる点Rの座標を(x3,y3)と
する。
【0013】なお、この明細書において、記号^は、冪
乗の演算を示し、例えば、2^3は、2×2×2を意味
する。P≠Qの場合、R=P+Qは、加算の演算とな
る。加算の公式を以下に示す。 x3={(y2−y1)/(x2−x1)}^2−x1
−x2 y3={(y2−y1)/(x2−x1)}(x1−x
3)−y1 P=Qの場合、R=P+Q=P+P=2×Pとなり、R
=P+Qは、2倍算の演算となる。2倍算の公式を以下
に示す。
【0014】 x3={(3x1^2+a)/2y1}^2−2x1 y3={(3x1^2+a)/2y1}(x1−x3)
−y1 なお、上記演算は、楕円曲線が定義される有限体上での
演算である。上記に示すように、2項組座標であるアフ
ィン座標、すなわち今まで述べてきた座標において、楕
円曲線上の加算演算を行う場合に、楕円曲線上の加算1
回につき、1回の有限体上の逆数計算が必要となる。一
般に、有限体上の逆数計算は、有限体上での乗算計算と
比較して、10倍程度の計算量を必要とする。
【0015】そこで、計算量を削減することを目的とし
て、射影座標と呼ばれる3項組の座標が用いられる。射
影座標とは、3項組X、Y、Zからなる座標のことであ
って、座標(X,Y,Z)と座標(X’,Y’,Z’)
とに対して、ある数nが存在して、X’=nX、Y’=
nY、Z’=nZなる関係があるならば、(X,Y,
Z)=(X’,Y’,Z’)とするものである。
【0016】アフィン座標(x,y)と射影座標(X,
Y,Z)とは、 (x,y) → (x,y,1) (X,Y,Z)→ (X/Y,Y/Z) (Z≠0のと
き) なる関係で、互いに対応している。ここで、記号→は、
次に示す意味で用いている。集合S1の任意の元に、集
合S2の一つの元が対応するとき、S1→S2と表記す
る。
【0017】以下、楕円曲線の演算は、すべて、射影座
標で行われるものとする。次に、射影座標上の楕円曲線
の加算公式、2倍公式について説明する。これらの公式
は、もちろん、前に述べたアフィン座標における加算公
式、2倍公式と整合性のあるものである。冪倍の演算
は、楕円曲線上の点の加算、2倍算の演算の繰り返しに
よって実現できる。この冪倍の演算のうち、加算の計算
量は、楕円曲線のパラメータに依存しないが、2倍算の
計算量は、楕円曲線のパラメータに依存する。
【0018】ここでは、pを160ビットの素数とし、
有限体GF(p)上の楕円曲線をE:y^2 = x^
3 +ax+b とし、楕円曲線E上の元P、Qをそれ
ぞれ、P=(X1,Y1,Z1)、 Q=(X2,Y
2,Z2)で表すとき、 R=(X3,Y3,Z3)=P+Q を以下のようにして、求める。
【0019】(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 (ii)P=Qの場合(すなわち、R=2P) この場合、2倍算の演算となる。
【0020】(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 次に、楕円曲線の加算、2倍算を行う場合の計算量につ
いて説明する。ここで、有限体GF(p)上の1回の乗
算による計算量を1Mul、1回の2乗算による計算量
を1Sqで表す。なお、一般のマイクロプロセッサにお
いては、1Sq≒0.8Mulである。
【0021】上記の例によると、P≠Qの場合に示され
ている楕円曲線上の加算の計算量は、式8〜式16にお
いて、乗算の回数及び2乗算の回数をカウントすること
により得られ、12Mul+4Sqである。これは、式
8、9、10、11、14、15、16における加算の
計算量は、それぞれ、1Mul+1Sq、1Mul+1
Sq、2Mul、2Mul、2Mul+2Sq、2Mu
l、2Mulであることから明らかである。
【0022】また、上記の例によると、P=Qの場合に
示されている楕円曲線上の2倍算の計算量は、式17〜
式22において、乗算の回数及び2乗算の回数をカウン
トすることにより得られ、4Mul+6Sqである。こ
れは、式17、18、19、21、22における2倍算
の計算量は、それぞれ、1Mul+1Sq、1Mul+
3Sq、1Sq、1Mul+1Sq、1Mulであるこ
とから明らかである。
【0023】なお、上記回数のカウントにおいて、例え
ば、式14のH^3については、 H^3=H^2×H と展開できるので、H^3の計算量は、1Mul+1S
qとし、式18のZ1^4については、 Z1^4=(Z1^2)^2 と展開できるので、Z1^4の計算量は、2Sqとす
る。
【0024】また、式14のH^2については、前述の
H^3の計算のプロセスにおいて、H^2が算出されて
いるので、H^2の計算量は再度カウントしない。ま
た、乗算の回数のカウントの際、ある値に小さい値を乗
じて行われる乗算の回数は、カウントしない。その理由
を以下に説明する。ここで言う小さい値とは、式8〜式
22において、乗算の対象となる小さい固定値であり、
具体的には、2、3、4、8などの値である。これらの
値は、多くとも4ビットの2進数で表現できる。一方、
その他の変数は、通常、160ビットの値を有してい
る。
【0025】一般に、マイクロプロセッサにおいて、乗
数と被乗数との乗算は、被乗数のシフトと加算の繰り返
しにより行われる。すなわち、2進数で表現される乗数
の各ビット毎に、このビットが1であるならば、2進数
で表現される被乗数の最下位ビットが、このビットの存
在する位置に一致するように、被乗数をシフトして、1
つのビット列を得る。乗数の全ビットについて、このよ
うにして得られた少なくとも1つのビット列をすべて加
算する。
【0026】例えば、160ビットの乗数と160ビッ
トの被乗数との乗算においては、160ビットの被乗数
を160回シフトし、160個のビット列を得、得られ
た160個のビット列を加算する。一方、4ビットの乗
数と160ビットの被乗数との乗算においては、160
ビットの被乗数を4回シフトし、4個のビット列を得、
得られた4個のビット列を加算する。
【0027】乗算は、上記に示すようにして行われるの
で、乗算がある値に小さい値を乗じて行われる場合に
は、前記繰り返しの回数が少なくなる。従って、その計
算量は少ないと見なせるので、乗算の回数にカウントし
ない。以上説明したように、楕円曲線の2倍算を行う場
合において、式18には、楕円曲線のパラメータaが含
まれている。このパラメータaの値として、例えば、小
さい値を採用すると、楕円曲線上の2倍算の計算量は、
1Mul分削減でき、3Mul+6Sqとなる。なお、
加算に関しては、楕円曲線のパラメータを変化させて
も、計算量は変わらない。 5.暗号に適した楕円曲線の選択 次に暗号に適した楕円曲線を選択する方法について説明
する。なお、その詳細については、「IEEE P1363 Worki
ng draft」(1997年2月6日、IEEE発行) に
詳しく書かれている。
【0028】暗号に適した楕円曲線は、以下のステップ
を繰り返すことにより得られる。 (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 とする。
【0029】(step 2) 暗号に適した楕円曲線であるか
どうかを判定楕円曲線Eの元の個数#E(GF(p))
を計算し、 (条件1) #E(GF(p))が大きな素数で割り切
れ、かつ、 (条件2) #E(GF(p))−(p+1) ≠
0,−1である場合に、楕円曲線Eを採用する。条件1
又は条件2を満たさない場合は、楕円曲線Eを棄却し、
step 1に戻って、再度、任意の楕円曲線の選択と、判定
とを繰り返す。
【0030】
【発明が解決しようとする課題】上記に説明したよう
に、楕円曲線のパラメータaとして固定的に小さい値を
選択すると、楕円曲線の冪倍の演算において計算量を削
減できるものの、パラメータを予め固定的に取ることに
より、暗号に適した安全な楕円曲線を選択しにくいとい
う問題点がある。
【0031】また逆に、上記に説明した楕円曲線の選択
方法を用いて、暗号に適した安全な楕円曲線を選択する
と、楕円曲線のパラメータaとして小さい値を選択でき
るとは限らず、計算量を削減できないという問題点があ
る。このように、暗号に適した安全な楕円曲線を選択
し、その楕円曲線での演算量を削減するためには、相互
に矛盾し対立する問題点を有する。
【0032】本発明は、上記に示す問題点を解決し、暗
号に適した安全な楕円曲線として任意に選択された楕円
曲線を、この楕円曲線と等価な安全性を有し、かつ、計
算量を削減できる楕円曲線に変換する楕円曲線変換装
置、楕円曲線変換方法、及び楕円曲線変換プログラムを
記録している記録媒体を提供することを目的とする。ま
た、これにより安全でかつ高速に演算ができる暗号装
置、復号装置、デジタル署名装置、デジタル署名検証装
置、鍵共有装置などの利用装置及び前記利用装置と前記
楕円曲線変換装置とから構成される利用システムを提供
することを目的とする。
【0033】
【課題を解決するための手段】上記の問題点を解決する
ために、本発明は、1つの楕円曲線Eを変換して他の1
つの楕円曲線Etを生成する楕円曲線変換装置であっ
て、外部から、素数pと、楕円曲線Eのパラメータa及
びパラメータbと、ベースポンイトとしての元Gとを受
信する手段であって、楕円曲線Eは、有限体GF(p)
上で定義され、y^2=x^3+ax+bで表され、元
Gは、楕円曲線E上に存在し、G=(x0,y0)で表
される受信手段と、有限体GF(p)上に存在する変換
係数tを取得する手段であって、変換係数tは、t≠0
であり、かつ、t^4×a (mod p)は、素数p
と比較して桁数が小さい、という条件を満たす変換係数
取得手段と、前記取得された変換係数tを用いて、次式
により、楕円曲線Etのパラメータa’及びb’と、新
たなベースポイント元Gtとを算出する手段であって、
a’=a×t^4、b’=b×t^6、xt0=t^2
×x0、yt0=t^3×y0、楕円曲線Etは、有限
体GF(p)上で定義され、y’^2 = x’^3
+a’×x’+b’で表され、xt0、yt0は、それ
ぞれ元Gtのx座標値、y座標値である楕円曲線算出手
段と、前記算出されたパラメータa’及びb’と、元G
tとを外部へ出力する出力手段とを備えることを特徴と
する。
【0034】ここで、pは、160ビットの素数であ
り、前記変換係数取得手段は、t^4×a (mod
p)が32ビット以下の数になる、という条件を満たす
変換係数tを取得するように構成してもよい。ここで、
前記変換係数取得手段は、t^4×a (mod p)
が−3となる、という条件を満たす変換係数tを取得す
るように構成してもよい。
【0035】ここで、前記変換係数取得手段は、変数T
として、初期値を−3とし、初期値以外の値について
は、桁数の小さい値から大きい値へ順に取ることと、T
=t^4×a (mod p)という条件を満たすかど
うかを判定することとを繰り返すことにより、変換係数
tを取得するように構成してもよい。また、本発明は、
1つの楕円曲線Eを変換して他の1つの楕円曲線Etを
生成する楕円曲線変換装置と、生成された楕円曲線Et
を利用する利用装置とからなる楕円曲線利用システムで
あって、前記利用装置は、第1出力手段と第1受信手段
と利用手段とを備え、前記楕円曲線変換装置は、第2受
信手段と変換係数取得手段と楕円曲線算出手段と第2出
力手段とを備え、前記第1出力手段は、素数pと、楕円
曲線Eのパラメータa及びパラメータbと、ベースポイ
ントとしての元Gとを前記楕円曲線変換装置へ出力し、
ここで、楕円曲線Eは、有限体GF(p)上で定義さ
れ、y^2=x^3+ax+bで表され、元Gは、楕円
曲線E上に存在し、G=(x0,y0)で表され、前記
第2受信手段は、前記利用装置から、素数pと、楕円曲
線Eのパラメータa及びパラメータbと、元Gとを受信
し、前記変換係数取得手段は、有限体GF(p)上に存
在する変換係数tを取得し、ここで、変換係数tは、t
≠0であり、かつ、t^4×a (mod p)は、素
数pと比較して桁数が小さい、という条件を満し、前記
楕円曲線算出手段は、前記取得された変換係数tを用い
て、次式により、楕円曲線Etのパラメータa’及び
b’と、新たなベースポイントとしての元Gtとを算出
し、a’=a×t^4、b’=b×t^6、xt0=t
^2×x0、yt0=t^3×y0、ここで、楕円曲線
Etは、有限体GF(p)上で定義され、y’^2 =
x’^3+a’×x’+b’で表され、xt0、yt
0は、それぞれ元Gtのx座標値、y座標値であり、前
記第2出力手段は、前記算出されたパラメータa’及び
b’と、元Gtとを前記利用装置へ出力し、前記第1受
信手段は、前記出力されたパラメータa’及びb’と、
元Gtとを受信し、前記利用手段は、素数pと、前記受
信したパラメータa’及びb’とで定まる楕円曲線と、
ベースポイントとしての元Gtとを用いて、有限体GF
(p)上で定義される楕円曲線上での演算に基づき、離
散対数問題を安全性の根拠とする暗号、復号、デジタル
署名、デジタル署名検証又は鍵共有を行うことを特徴と
する。
【0036】また、本発明は、第2受信手段と変換係数
取得手段と楕円曲線算出手段と第2出力手段とを備え、
1つの楕円曲線Eを変換して他の1つの楕円曲線Etを
生成する楕円曲線変換装置から、前記生成された楕円曲
線Etを受信して利用する利用装置であって、前記利用
装置は、第1出力手段と第1受信手段と利用手段とを備
え、前記第1出力手段は、素数pと、楕円曲線Eのパラ
メータa及びパラメータbと、ベースポイントとしての
元Gとを前記楕円曲線変換装置へ出力し、ここで、楕円
曲線Eは、有限体GF(p)上で定義され、y^2=x
^3+ax+bで表され、元Gは、楕円曲線E上に存在
し、G=(x0,y0)で表され、前記第2受信手段
は、前記利用装置から、素数pと、楕円曲線Eのパラメ
ータa及びパラメータbと、元Gとを受信し、前記変換
係数取得手段は、有限体GF(p)上に存在する変換係
数tを取得し、ここで、変換係数tは、t≠0であり、
かつ、t^4×a (mod p)は、素数pと比較し
て桁数が小さい、という条件を満し、前記楕円曲線算出
手段は、前記取得された変換係数tを用いて、次式によ
り、楕円曲線Etのパラメータa’及びb’と、元Gt
とを算出し、a’=a×t^4、b’=b×t^6、x
t0=t^2×x0、yt0=t^3×y0、ここで、
楕円曲線Etは、有限体GF(p)上で定義され、y’
^2 = x’^3 +a’×x’+b’で表され、x
t0、yt0は、それぞれ元Gtのx座標値、y座標値
であり、前記第2出力手段は、前記算出されたパラメー
タa’及びb’と、元Gtとを前記利用装置へ出力し、
前記第1受信手段は、前記出力されたパラメータa’及
びb’と、元Gtとを受信し、前記利用手段は、素数p
と、前記受信したパラメータa’及びb’とで定まる楕
円曲線と、ベースポンイトとしての元Gtとを用いて、
有限体GF(p)上で定義される楕円曲線上での演算に
基づき、離散対数問題を安全性の根拠とする暗号、復
号、デジタル署名、デジタル署名検証又は鍵共有を行う
ことを特徴とする。
【0037】
【発明の実施の形態】本発明に係る1つの実施の形態と
しての楕円曲線変換装置200について、図を用いて説
明する。 1.楕円曲線変換装置200の構成 楕円曲線変換装置200は、図2に示すように、パラメ
ータ受信部210、変換係数取得部220、変換楕円曲
線算出部230、パラメータ送出部240から構成され
る。 (パラメータ受信部210)パラメータ受信部210
は、外部の装置から、楕円曲線のパラメータa、bと、
前記楕円曲線上の元Gと、素数pとを受信する。ここ
で、pは、160ビットの素数である。
【0038】前記外部の装置には、公開鍵暗号を用いる
暗号装置、復号装置、デジタル署名装置、デジタル署名
検証装置、鍵共有装置などが含まれる。前記外部の装置
は、公開鍵暗号の安全性の根拠として楕円曲線上の離散
対数問題を用いており、前記楕円曲線を有している。こ
こで、有限体GF(p)上の任意に構成される前記楕円
曲線は、E:y^2 = x^3 +ax+b で示さ
れ、前記元Gは、前記楕円曲線の任意に構成され、 G=(x0,y0) で表される。 (変換係数取得部220)変換係数取得部220は、図
3に示すように、関数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、・・・の値を
有する。
【0039】変換係数取得部220は、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を算出する。
【0040】ここで、式24は、T(i)が32ビット
以下になるように取られることを示している。なお、関
数T(i)は、i=0のときに、−3の値を有してお
り、変換係数取得部220は、i=0から始めて、iの
値を1ずつ加算しながら、関数T(i)の値を参照する
ので、最初に−3の値が参照される。
【0041】また、関数T(i)は、i=0のときに、
−3の値を有していることを除いて、絶対値の小さい値
から大きい値へと順に値を有しているので、絶対値の小
さい値から順に参照することができる。(変換楕円曲線
算出部230)変換楕円曲線算出部230は、有限体G
F(p)上に構成される変換楕円曲線Et:y’^2
= x’^3 +a’×x’+b’のパラメータa’、
b’をそれぞれ次のようにして、算出する。 (式26) a’=a×t^4 (式27) b’=b×t^6 また、変換楕円曲線算出部230は、元Gに対応する変
換楕円曲線Et上の元Gt=(xt0,yt0)を次の
ようにして、算出する。 (式28) xt0=t^2×x0 (式29) yt0=t^3×y0 なお、楕円曲線E上の任意の点は、以上のようにして生
成されたパラメータa’、b’で定まる変換楕円曲線E
t上の1点に変換される。 (パラメータ送出部240)パラメータ送出部240
は、前記算出された変換楕円曲線Etのパラメータ
a’、b’と、元Gt(xt0,yt0)とを前記外部
の装置へ送出する。 2.楕円曲線変換装置200の動作 (楕円曲線変換装置200の全体の動作)楕円曲線変換
装置200の全体の動作について、図4に示すフローチ
ャートを用いて、説明する。
【0042】パラメータ受信部210は、外部の装置か
ら素数pと、楕円曲線Eのパラメータa及びbとを受け
取り(ステップS301)、前記楕円曲線上の元Gを受
け取る(ステップS302)。次に、変換係数取得部2
20は、変換係数tを算出し(ステップS303)、変
換楕円曲線算出部230は、有限体GF(p)上に構成
される変換楕円曲線Etのパラメータa’、b’と、元
Gに対応する変換楕円曲線Et上の元Gt=(xt0,
yt0)を算出し(ステップS304)、パラメータ送
出部240は、前記算出された変換楕円曲線Etのパラ
メータa’、b’と、元Gt(xt0,yt0)とを前
記外部の装置へ送出する(ステップS305)。 (変換係数取得部220の動作)次に、変換係数取得部
220の動作について、図5に示すフローチャートを用
いて説明する。
【0043】変換係数取得部220は、iに0の値を設
定する(ステップS311)。次に、変換係数取得部2
20は、関数T(i)について、 −2^31+1≦T(i)≦2^31−1 を満たすかどうかを判定し、満たさないならば(ステッ
プS312)、処理を終了する。満たすならば(ステッ
プS312)、 T(i)=t^4×a (mod p) となる変換係数tを算出し(ステップS313)、算出
された変換係数tが有限体GF(p)上の元であるかど
うかを判定し、有限体GF(p)上の元であるなら(ス
テップS314)、処理を終了する。有限体GF(p)
上の元でないなら(ステップS314)、iに1を加算
し(ステップS315)、再度ステップS312へ制御
を戻す。 (変換楕円曲線算出部230の動作)次に、変換楕円曲
線算出部230の動作について、図6に示すフローチャ
ートを用いて説明する。
【0044】変換楕円曲線算出部230は、有限体GF
(p)上に構成される変換楕円曲線Etのパラメータ
a’=a×t^4を算出し(ステップS321)、パラ
メータb’=b×t^6を算出する(ステップS32
2)。また、変換楕円曲線算出部230は、元Gに対応
する変換楕円曲線Et上の元Gt=(xt0,yt0)
として、xt0=t^2×x0を算出し(ステップS3
23)、yt0=t^3×y0を算出する(ステップS
324)。 3.変換楕円曲線Etと楕円曲線Eとが同型である証明 ここでは、変換楕円曲線Et:y’^2=x’^3+a
×t^4×x’+b×t^6と、楕円曲線E:y^2=
x^3+a×x+bとが同型であることを証明する。な
お、以下において、楕円曲線上の演算は、アフィン座標
のものを取り扱う。
【0045】楕円曲線E上の任意の点P(x0,y0)
を取る。このとき、点Pは、E上の点であるから、 (式30) y0^2=x0^3+a×x0+b を満たしている。この変換により、点Pは、点P’(x
0’,y0’)=(t^2×x0,t^3×y0)に変
換される。
【0046】ここで、式30の両辺に、t^6をかける
と、 t^6×y0^2=t^6×x0^3+t^6×a×x
0+t^6×b が得られる。この式は、次のように変形できる。 (t^3×y0)^2=(t^2×x0)^3+a×t
^4×(t^2×x0)+b×t^6 この式は、さらに、次のように変形できる。
【0047】y0’^2=x0’^3+a×t^4×x
0’+b×t^6 これは、点P’が、変換楕円曲線Et上にあることを示
している。また、楕円曲線E上の点から変換楕円曲線E
t上の点への変換は、 (x,y)→(x’,y’)=(t^2×x,t^3×
y) により示される。ここで、t≠0であるので、以下に示
す変換楕円曲線Et上の点から楕円曲線E上への点の変
換は、上記変換の逆変換であることは容易に分かる。
【0048】(x’,y’)→(x,y)=(x’/
(t^2),y’/(t^3)) 以上のことから、楕円曲線E上の点と変換楕円曲線Et
上の点とは、1対1に対応していることが分かる。次
に、楕円曲線E上の任意の異なる2点P=(x1,y
1)、Q=(x2,y2)を取り、R=P+Qとし、R
の座標を(x3,y3)とする。このとき、前に述べた
ように、 x3={(y2−y1)/(x2−x1)}^2−x1
−x2 y3={(y2−y1)/(x2−x1)}(x1−x
3)−y1 となる。
【0049】次に、本発明で用いた楕円曲線の変換によ
り、楕円曲線E上の点P、点Q、点Rが、それぞれ、変
換楕円曲線Et上の点P’、点Q’、点R’に変換され
るものとする。ここで、点P’、点Q’、点R’の座標
をそれぞれ、(x1’,y1’)、(x2’,y
2’)、(x3’,y3’)とする。このとき、 x1’=t^2×x1 y1’=t^3×y1 x2’=t^2×x2 y2’=t^3×y2 x3’=t^2×x3 y3’=t^3×y3 が成り立つ。
【0050】また、R”=P’+Q’とする。ただし、
ここにおける加算演算は、変換楕円曲線Et上の加算を
示す。R”の座標を(x3”,y3”)とすると、 x3”={(y2’−y1’)/(x2’−x1’)}
^2−x1’−x2’ y3”={(y2’−y1’)/(x2’−x1’)}
(x1’−x3’)−y1’ となる。
【0051】ここで、この式におけるx1’、y1’、
x2’、y2’を、それぞれ、上記のように、x1、y
1、x2、y2を用いて表すと、 x3”={(t^3×y2−t^3×y1)/(t^2×x2 −t^2×x1)}^2−t^2×x1−t^2×x2 ={t(y2−y1)/(x2−x1)}^2−t^2×x1 −t^2×x2 =t^2×{{(y2−y1)/(x2−x1)}^2−x1−x2} =t^2×x3 =x3’ y3”={(t^3×y2−t^3×y1)/(t^2×x2 −t^2×x1)}×(t^2×x1−t^2×x3) −t^3×y1 ={t(y2−y1)/(x2−x1)}×t^2(x1−x3) −t^3×y1 =t^3×{{(y2−y1)/(x2−x1)}×(x1−x3) −y1} =t^3×y3 =y3’ となる。従って、R’とR”とは、等しい点を表してい
ることが分かる。
【0052】以上により、楕円曲線上の加算演算は、本
変換においても、保存されることが分かる。次に、Q=
Pの場合について、すなわち、2倍公式について、述べ
る。前と同様に、楕円曲線E上の任意の点Pに対して、
R=P+Pとし、本発明で用いた楕円曲線の変換によ
り、楕円曲線E上の点P、点Rが、それぞれ、変換楕円
曲線Et上の点P’、点R’に変換されるものとする。
ここで、点P、点R、点P’、点R’の座標をそれぞ
れ、(x1,y1)、(x3,y3)、(x1’,y
1’)、(x3’,y3’)とする。このとき、 x1’=t^2×x1 y1’=t^3×y1 x3’=t^2×x3 y3’=t^3×y3 が成り立つ。また、R”=P’+P’とする。
【0053】ただし、ここにおける2倍演算は、変換楕
円曲線Et上の2倍演算を示す。点R”の座標を(x
3”,y3”)とすると、 x3”={(3x1’^2+a)/2y1’}^2−2
x1’ y3”={(3x1’^2+a)/2y1’}(x1’
−x3’)−y1’ となる。ここで、x1’、y1’をそれぞれ、x1、y
1を用いて上記のように表すと、 x3”={{(t^2×3x1)^2+a}/(2×t^3×y1)}^2 −2×t^2×x1 =t^2{(3x1^2+a)/y1}^2−t^2×2x1 =t^2{{(3x1^2+a)/y1}^2−2x1} =t^2×x3 ={t(y2−y1)/(x2−x1)}^2−t^2×x1 −t^2×x2 =t^2{{(y2−y1)/(x2−x1)}^2 −x1−x2} =t^2×x3 =x3’ y3”={{(t^2×3x1)^2+a}/(2×t^3×y1)} ×(t^2×x1−t^2×x3)−t^3×y1 =t^3{(3x1^2+a)/2y1}(x1−x3) −t^3×y1 =t^3{{(3x1^2+a)/2y1}(x1−x3)−y1} =t^3×y3 =y3’ となる。従って、R’とR”とは、等しい点を表してい
ることが分かる。
【0054】以上により、楕円曲線上の2倍演算は、本
変換においても、保存されることが分かる。以上に述べ
たことにより、楕円曲線Eと、本発明において用いる変
換により生成された変換楕円曲線Etとは、同型である
ことが証明できた。 4.変換楕円曲線Etを用いる場合の計算量の評価 上記の実施の形態によると、変換楕円曲線Etのパラメ
ータa’は、32ビット以下になるように取られるの
で、式18の計算量は、3Sqとなる。従って、楕円曲
線上の加算の計算量は、12Mul+4Sqとなり、2
倍算の計算量は、3Mul+6Sqとなる。このよう
に、楕円曲線Eのパラメータaが、160ビットに近い
値である場合とと比較すると2倍算において、1Mul
分の計算量が削減できることが分かる。
【0055】上記に述べたように、関数T(i)は、i
=0のときに、−3の値を有していることを除いて、絶
対値の小さい値から大きい値へと順に値を有しており、
絶対値の小さい値から順に参照することができるので、
より計算量の少ない変換楕円曲線から順に、適切な変換
楕円曲線を選んでいくことができる。また、上記の実施
の形態によると、変換楕円曲線Etのパラメータa’
が、−3の場合、式18は、 M=3×X1^2+a’×Z1^4 =3×X1^2−3×Z1^4 =3×(X1+Z1^2)×(X1−Z1^2) と変形できる。
【0056】最後の式において、計算量は、1Mul+
1Sqとなる。従って、楕円曲線上の加算の計算量は、
12Mul+4Sqとなり、2倍算の計算量は、4Mu
l+4Sqとなる。このように、従来と比較すると2倍
算において、2Sq分の計算量が削減できることが分か
る。上記に述べたように、関数T(i)は、i=0のと
きに、−3の値を有しており、変換係数取得部220
は、i=0から始めて、iの値を1ずつ加算しながら、
関数T(i)の値を参照するので、最初に−3の値が参
照される。従って、2倍算において、従来との比較で2
Sq分の計算量が削減できる場合が、最初に検証される
ので、最も適切な変換楕円曲線を1回で検出できる可能
性がある。
【0057】このため、本実施の形態に示す変換楕円曲
線を用いると、楕円曲線上の計算を高速化することがで
きる。 5.変形例 変換係数取得部220は、次のようにして、変換係数t
を決定してもよい。変換係数取得部220は、乱数発生
部を備えており、前記乱数発生部は、有限体GF(p)
上の元u(u≠0)をランダムに発生する。次に、変換
係数取得部220は、元uが、 (式31) −2^31+1≦u^4×a(mod p)≦2^31−1 を満たすかどうかを判定する。元uが式31を満たすと
判定された場合は、元uを変換係数tとして採用する。
元uが式31を満たさないと判定された場合は、再度、
前記乱数発生部は、ランダムに元uを発生し、変換係数
取得部220は、元uが、式31を満たすかどうかを判
定する。
【0058】変換係数取得部220は、式31を満たす
元uが見つかるまで、前記乱数発生部による元uの発生
と式31を満たすかどうかの判定を繰り返す。また、変
換係数取得部220は、式31の代わりに、 (式32) u^4×a(mod p)=−3 を用いるとしてもよい。 6.楕円曲線変換装置200の適用例 上記に説明した楕円曲線変換装置200を適用する鍵共
有シテスムを図7に示すシーケンス図を用いて説明す
る。
【0059】ユーザA450、管理センタ460及びユ
ーザB470は、ネットワークで接続されている。 (1)管理センタ460による楕円曲線の選択 管理センタ460は、素数pを選択し、有限体GF
(p)上の楕円曲線Eを選択し、Eのベースポイントを
Gとし、Eの位数をqとする(ステップS411)。つ
まり、qは、 (式2) q*G=0 を満たす最小の正整数である。
【0060】ここで、E: y^2 = x^3 +a
×x+b であり、G=(x0,y0)である。次に、
管理センタ460は、p、E、Gを楕円曲線変換装置2
00へ送出する(ステップS412)。
【0061】(2)楕円曲線変換装置200による変換
楕円曲線の生成 楕円曲線変換装置200は、変換楕円曲線Etを算出
し、元Gtを算出する(ステップS421)。ここで、 Et:y’^2 = x’^3 +a’×x’+b’、 a’=a×t^4、 b’=b×t^6、 Gt=(xt0,yt0)、 xt0=t^2×x0、 yt0=t^3×y0である。
【0062】次に、楕円曲線変換装置200は、Et、
Gtを管理センタ460へ送出する(ステップS42
2)。管理センタ460は、P、Et、Gtを各ユーザ
へ送出する(ステップS413)。 (3)ユーザによる秘密鍵の設定と公開鍵の生成 ユーザA450は、秘密鍵xAを設定し(ステップS4
01)、ユーザB470は、秘密鍵xBを設定する(ス
テップS431)。
【0063】ユーザA450は、次式により、公開鍵Y
Aを算出し(ステップS402)、公開鍵YAをユーザ
B470へ送出する(ステップS403)。 YA=xA*Gt また、ユーザB470は、次式により、公開鍵YBを算
出し(ステップS432)、公開鍵YBをユーザA45
0へ送出する(ステップS433)。
【0064】YB=xB*Gt (4)各ユーザによる共有鍵の生成 ユーザA450は、共有鍵をxA*YBにより算出する
(ステップS404)。また、ユーザB470は、共有
鍵をxB*YAにより算出する(ステップS434)。
【0065】ここで、ユーザA450により算出された
共有鍵xA*YBは、 xA*YB=(xA×xB)*Gt のように変形できる。また、ユーザB470により算出
された共有鍵xB*YAは、 のように変形できる。
【0066】従って、ユーザA450により算出された
共有鍵xA*YBと、ユーザB470により算出された
共有鍵xB*YAとが同じものであることは、明らかで
ある。7.その他の変形例別の実施の形態の一つは、上
記により示される楕円曲線変換方法であるとしてもよ
い。前記楕円曲線変換方法をコンピュータに実行させる
楕円曲線変換プログラムを含むコンピュータ読み取り可
能な記録媒体としてもよい。さらに、前記楕円曲線変換
プログラムを通信回線を介して伝送するとしてもよい。
【0067】また、上記に説明した楕円曲線変換装置
を、暗号装置、復号装置、又は暗号装置と復号装置とか
らなる暗号システムに適用してもよい。また、上記に説
明した楕円曲線変換装置を、デジタル署名装置、デジタ
ル署名検証装置、又はデジタル署名装置とデジタル署名
検証装置とからなるデジタル署名システムに適用しても
よい。
【0068】また、暗号装置、復号装置、デジタル署名
装置、デジタル署名検証装置、又は鍵共有装置は、楕円
曲線変換装置により算出された楕円曲線のパラメータ
a’、b’と元Gtとを予め記憶しており、記憶してい
る楕円曲線のパラメータa’、b’と元Gtとを用い
て、暗号、復号、デジタル署名、デジタル署名検証、又
は鍵共有を行うとしてもよい。
【0069】また、上記に示す実施の形態及びその複数
の変形例を組み合わせてもよい。
【0070】
【発明の効果】本発明は、1つの楕円曲線Eを変換して
他の1つの楕円曲線Etを生成する楕円曲線変換装置で
あって、外部から、素数pと、楕円曲線Eのパラメータ
a及びパラメータbと、ベースポンイトとしての元Gと
を受信する手段であって、楕円曲線Eは、有限体GF
(p)上で定義され、y^2=x^3+ax+bで表さ
れ、元Gは、楕円曲線E上に存在し、G=(x0,y
0)で表される受信手段と、有限体GF(p)上に存在
する変換係数tを取得する手段であって、変換係数t
は、t≠0であり、かつ、t^4×a (mod p)
は、素数pと比較して桁数が小さい、という条件を満た
す変換係数取得手段と、前記取得された変換係数tを用
いて、次式により、楕円曲線Etのパラメータa’及び
b’と、新たなベースポイント元Gtとを算出する手段
であって、a’=a×t^4、b’=b×t^6、xt
0=t^2×x0、yt0=t^3×y0、楕円曲線E
tは、有限体GF(p)上で定義され、y’^2 =
x’^3 +a’×x’+b’で表され、xt0、yt
0は、それぞれ元Gtのx座標値、y座標値である楕円
曲線算出手段と、前記算出されたパラメータa’及び
b’と、元Gtとを外部へ出力する出力手段とを備え
る。
【0071】この構成によると、ランダムに構成された
楕円曲線と同じ安全性を有し、利用装置において高速な
演算を可能にする楕円曲線を提供することができ、その
実用的価値は非常に大きい。ここで、pは、160ビッ
トの素数であり、前記変換係数取得手段は、t^4×a
(mod p)が32ビット以下の数になる、という
条件を満たす変換係数tを取得するとしてもよい。
【0072】この楕円曲線変換装置により変換された楕
円曲線を利用装置において用いると、楕円曲線上の2倍
算において、変換前の楕円曲線のパラメータaが、16
0ビットに近い値を取る場合と比較して、1Mul分の
計算量が削減できることが分かる。ここで、前記変換係
数取得手段は、t^4×a (mod p)が−3とな
る、という条件を満たす変換係数tを取得するとしても
よい。
【0073】この楕円曲線変換装置により変換された楕
円曲線を利用装置において用いると、楕円曲線上の2倍
算において、従来と比較して、2Sq分の計算量が削減
できることが分かる。ここで、前記変換係数取得手段
は、変数Tとして、初期値を−3とし、初期値以外の値
については、桁数の小さい値から大きい値へ順に取るこ
とと、T=t^4×a (mod p)という条件を満
たすかどうかを判定することとを繰り返すことにより、
変換係数tを取得するとしてもよい。
【0074】この構成によると、関数T(i)は、i=
0のときに、−3の値を有しており、変換係数取得部2
20は、i=0から始めて、iの値を1ずつ加算しなが
ら、関数T(i)の値を参照するので、最初に−3の値
が参照される。従って、2倍算において、従来との比較
で2Sq分の計算量が削減できる場合が、最初に検証さ
れるので、最も適切な変換楕円曲線を1回で検出できる
可能性がある。また、関数T(i)は、i=0のとき
に、−3の値を有していることを除いて、絶対値の小さ
い値から大きい値へと順に値を有しており、絶対値の小
さい値から順に参照することができるので、より計算量
の少ない変換楕円曲線から順に、適切な変換楕円曲線を
選んでいくことができる。
【0075】また、本発明は、1つの楕円曲線Eを変換
して他の1つの楕円曲線Etを生成する楕円曲線変換装
置と、生成された楕円曲線Etを利用する利用装置とか
らなる楕円曲線利用システムであって、前記利用装置
は、第1出力手段と第1受信手段と利用手段とを備え、
前記楕円曲線変換装置は、第2受信手段と変換係数取得
手段と楕円曲線算出手段と第2出力手段とを備え、前記
第1出力手段は、素数pと、楕円曲線Eのパラメータa
及びパラメータbと、ベースポイントとしての元Gとを
前記楕円曲線変換装置へ出力し、ここで、楕円曲線E
は、有限体GF(p)上で定義され、y^2=x^3+
ax+bで表され、元Gは、楕円曲線E上に存在し、G
=(x0,y0)で表され、前記第2受信手段は、前記
利用装置から、素数pと、楕円曲線Eのパラメータa及
びパラメータbと、元Gとを受信し、前記変換係数取得
手段は、有限体GF(p)上に存在する変換係数tを取
得し、ここで、変換係数tは、t≠0であり、かつ、t
^4×a (mod p)は、素数pと比較して桁数が
小さい、という条件を満し、前記楕円曲線算出手段は、
前記取得された変換係数tを用いて、次式により、楕円
曲線Etのパラメータa’及びb’と、新たなベースポ
イントとしての元Gtとを算出し、a’=a×t^4、
b’=b×t^6、xt0=t^2×x0、yt0=t
^3×y0、ここで、楕円曲線Etは、有限体GF
(p)上で定義され、y’^2 = x’^3+a’×
x’+b’で表され、xt0、yt0は、それぞれ元G
tのx座標値、y座標値であり、前記第2出力手段は、
前記算出されたパラメータa’及びb’と、元Gtとを
前記利用装置へ出力し、前記第1受信手段は、前記出力
されたパラメータa’及びb’と、元Gtとを受信し、
前記利用手段は、素数pと、前記受信したパラメータ
a’及びb’とで定まる楕円曲線と、ベースポイントと
しての元Gtとを用いて、有限体GF(p)上で定義さ
れる楕円曲線上での演算に基づき、離散対数問題を安全
性の根拠とする暗号、復号、デジタル署名、デジタル署
名検証又は鍵共有を行う。
【0076】この構成によると、ランダムに構成された
楕円曲線と同じ安全性を有し、高速な演算を可能にする
楕円曲線を利用することができ、その実用的価値は非常
に大きい。ここで、pは、160ビットの素数であり、
前記変換係数取得手段は、t^4×a (mod p)
が32ビット以下の数になる、という条件を満たす変換
係数tを取得するとしてもよい。
【0077】この構成によると、変換された楕円曲線を
用いるので、楕円曲線上の2倍算において、変換前の楕
円曲線のパラメータaが、160ビットに近い値を取る
場合と比較して、1Mul分の計算量が削減できること
が分かる。ここで、前記変換係数取得手段は、t^4×
a (mod p)が−3となる、という条件を満たす
変換係数tを取得するとしてもよい。
【0078】この構成によると、変換された楕円曲線を
用いるので、楕円曲線上の2倍算において、従来と比較
して、2Sq分の計算量が削減できることが分かる。こ
こで、前記変換係数取得手段は、変数Tとして、初期値
を−3とし、初期値以外の値については、桁数の小さい
値から大きい値へ順に取ることと、T=t^4×a
(mod p)という条件を満たすかどうかを判定する
こととを繰り返すことにより、変換係数tを取得すると
してもよい。
【0079】この構成によると、関数T(i)は、i=
0のときに、−3の値を有しており、変換係数取得部2
20は、i=0から始めて、iの値を1ずつ加算しなが
ら、関数T(i)の値を参照するので、最初に−3の値
が参照される。従って、2倍算において、従来との比較
で2Sq分の計算量が削減できる場合が、最初に検証さ
れるので、最も適切な変換楕円曲線を1回で検出できる
可能性がある。また、関数T(i)は、i=0のとき
に、−3の値を有していることを除いて、絶対値の小さ
い値から大きい値へと順に値を有しており、絶対値の小
さい値から順に参照することができるので、より計算量
の少ない変換楕円曲線から順に、適切な変換楕円曲線を
選んでいくことができる。
【0080】また、本発明は、第2受信手段と変換係数
取得手段と楕円曲線算出手段と第2出力手段とを備え、
1つの楕円曲線Eを変換して他の1つの楕円曲線Etを
生成する楕円曲線変換装置から、前記生成された楕円曲
線Etを受信して利用する利用装置であって、前記利用
装置は、第1出力手段と第1受信手段と利用手段とを備
え、前記第1出力手段は、素数pと、楕円曲線Eのパラ
メータa及びパラメータbと、ベースポイントとしての
元Gとを前記楕円曲線変換装置へ出力し、ここで、楕円
曲線Eは、有限体GF(p)上で定義され、y^2=x
^3+ax+bで表され、元Gは、楕円曲線E上に存在
し、G=(x0,y0)で表され、前記第2受信手段
は、前記利用装置から、素数pと、楕円曲線Eのパラメ
ータa及びパラメータbと、元Gとを受信し、前記変換
係数取得手段は、有限体GF(p)上に存在する変換係
数tを取得し、ここで、変換係数tは、t≠0であり、
かつ、t^4×a (mod p)は、素数pと比較し
て桁数が小さい、という条件を満し、前記楕円曲線算出
手段は、前記取得された変換係数tを用いて、次式によ
り、楕円曲線Etのパラメータa’及びb’と、元Gt
とを算出し、a’=a×t^4、b’=b×t^6、x
t0=t^2×x0、yt0=t^3×y0、ここで、
楕円曲線Etは、有限体GF(p)上で定義され、y’
^2 = x’^3 +a’×x’+b’で表され、x
t0、yt0は、それぞれ元Gtのx座標値、y座標値
であり、前記第2出力手段は、前記算出されたパラメー
タa’及びb’と、元Gtとを前記利用装置へ出力し、
前記第1受信手段は、前記出力されたパラメータa’及
びb’と、元Gtとを受信し、前記利用手段は、素数p
と、前記受信したパラメータa’及びb’とで定まる楕
円曲線と、ベースポンイトとしての元Gtとを用いて、
有限体GF(p)上で定義される楕円曲線上での演算に
基づき、離散対数問題を安全性の根拠とする暗号、復
号、デジタル署名、デジタル署名検証又は鍵共有を行
う。
【0081】この構成によると、ランダムに構成された
楕円曲線と同じ安全性を有し、高速な演算を可能にする
楕円曲線を利用することができ、その実用的価値は非常
に大きい。また、本発明は、1つの楕円曲線Eを変換し
て生成された楕円曲線Etを利用する利用装置であっ
て、前記利用装置は、楕円曲線Etのパラメータa’及
びb’と、ベースポイントとしての元Gtとを記憶して
いる記憶手段と、pと、前記記憶しているパラメータ
a’及びb’とで定まる楕円曲線と、ベースポイントと
しての元Gtとを用いて、有限体GF(p)上で定義さ
れる楕円曲線上での演算に基づき、離散対数問題を安全
性の根拠とする暗号、復号、デジタル署名、デジタル署
名検証又は鍵共有を行う利用手段とを備え、ここで、パ
ラメータa’及びb’と、元Gtとは楕円曲線変換装置
により生成され、前記楕円曲線変換装置は、変換係数取
得手段、楕円曲線算出手段を備え、pは素数であり、楕
円曲線Eは、有限体GF(p)上で定義され、y^2=
x^3+ax+bで表され、ベースポンイトとしての元
Gが、楕円曲線E上に存在し、G=(x0,y0)で表
され、前記変換係数取得手段は、有限体GF(p)上に
存在する変換係数tを取得し、ここで、変換係数tは、
t≠0であり、かつ、t^4×a (mod p)は、
素数pと比較して桁数が小さい、という条件を満し、前
記楕円曲線算出手段は、前記取得された変換係数tを用
いて、次式により、楕円曲線Etのパラメータa’及び
b’と、新たなベースポイントとしての元Gtとを算出
し、a’=a×t^4、b’=b×t^6、xt0=t
^2×x0、yt0=t^3×y0、ここで、楕円曲線
Etは、有限体GF(p)上で定義され、y’^2 =
x’^3 +a’×x’+b’で表され、xt0、y
t0は、それぞれ元Gtのx座標値、y座標値である。
【0082】この構成によると、ランダムに構成された
楕円曲線と同じ安全性を有し、高速な演算を可能にする
楕円曲線を利用することができ、その実用的価値は非常
に大きい。また、本発明は、1つの楕円曲線Eを変換し
て他の1つの楕円曲線Etを生成する楕円曲線変換方法
であって、外部から、素数pと、楕円曲線Eのパラメー
タa及びパラメータbと、ベースポンイトとしての元G
とを受信するステップであって、楕円曲線Eは、有限体
GF(p)上で定義され、y^2=x^3+ax+bで
表され、元Gは、楕円曲線E上に存在し、G=(x0,
y0)で表される受信ステップと、有限体GF(p)上
に存在する変換係数tを取得するステップであって、変
換係数tは、t≠0であり、かつ、t^4×a (mo
d p)は、素数pと比較して桁数が小さい、という条
件を満たす変換係数算出ステップと、前記取得された変
換係数tを用いて、次式により、楕円曲線Etのパラメ
ータa’及びb’と、新たなベースポイントとしての元
Gtとを算出するステップであって、a’=a×t^
4、b’=b×t^6、xt0=t^2×x0、yt0
=t^3×y0、楕円曲線Etは、有限体GF(p)上
で定義され、y’^2 =x’^3 +a’×x’+
b’で表され、xt0、yt0は、それぞれ元Gtのx
座標値、y座標値である楕円曲線算出ステップと、前記
算出されたパラメータa’及びb’と、元Gtとを外部
へ出力する出力ステップとを含む。
【0083】この方法を用いると、ランダムに構成され
た楕円曲線と同じ安全性を有し、利用装置において高速
な演算を可能にする楕円曲線を生成することができ、そ
の実用的価値は非常に大きい。また、本発明は、1つの
楕円曲線Eを変換して他の1つの楕円曲線Etを生成す
る楕円曲線変換プログラムを記録しているコンピュータ
読み取り可能な記録媒体であって、前記プログラムは、
外部から、素数pと、楕円曲線Eのパラメータa及びパ
ラメータbと、ベースポイントとしての元Gとを受信す
るステップであって、楕円曲線Eは、有限体GF(p)
上で定義され、y^2=x^3+ax+bで表され、元
Gは、楕円曲線E上に存在し、G=(x0,y0)で表
される受信ステップと、有限体GF(p)上に存在する
変換係数tを取得するステップであって、変換係数t
は、t≠0であり、かつ、t^4×a (mod p)
は、素数pと比較して桁数が小さい、という条件を満た
す変換係数算出ステップと、前記取得された変換係数t
を用いて、次式により、楕円曲線Etのパラメータa’
及びb’と、新たなベースポイントとしての元Gtとを
算出するステップであって、a’=a×t^4、b’=
b×t^6、xt0=t^2×x0、yt0=t^3×
y0、楕円曲線Etは、有限体GF(p)上で定義さ
れ、y’^2 =x’^3 +a’×x’+b’で表さ
れ、xt0、yt0は、それぞれ元Gtのx座標値、y
座標値である楕円曲線算出ステップと、前記算出された
パラメータa’及びb’と、元Gtとを外部へ出力する
出力ステップとを含む。
【0084】この媒体に記録されているプログラムをコ
ンピュータで実行することにより、ランダムに構成され
た楕円曲線と同じ安全性を有し、利用装置において高速
な演算を可能にする楕円曲線を生成することができ、そ
の実用的価値は非常に大きい。
【図面の簡単な説明】
【図1】エルガマル署名によるデジタル署名方式の手順
を示すシーケンス図である。
【図2】本発明に係る1つの実施の形態としての楕円曲
線変換装置のブロック図である。
【図3】図2に示す楕円曲線変換装置で用いられる関数
T(i)を説明する表である。
【図4】図2に示す楕円曲線変換装置の動作を示すフロ
ーチャートである。
【図5】図2に示す楕円曲線変換装置の変換係数取得部
の動作を示すフローチャートである。
【図6】図2に示す楕円曲線変換装置の変換楕円曲線算
出部の動作を示すフローチャートである。
【図7】図2に示す楕円曲線変換装置を適用する鍵共有
システムの動作手順を示すシーケンス図である。
【符号の説明】
200 楕円曲線変換装置 210 パラメータ受信部 220 変換係数取得部 230 変換楕円曲線算出部 240 パラメータ送出部
フロントページの続き (56)参考文献 特開 平7−98563(JP,A) 小山謙二;“高速だ円曲線法による素 因数分解”電子情報通信学会論文誌 D,Vol.J70−D,No.12 (1987.9.27)p.2730−2738 Erik De Win,Antoo n Bosselaers,Serva as Vandenberghe,Pe ater De Gersem,Joo s Vandewalle;“A Fa st Software Implem entation for Arith metic Operations i n GF(2▲上n▼)” Lectu re Notes in Comput er Science,Vol.1163 (1996)p.65−76 Burton S.Kaliski Jr.,Yiqun Lisa Yi n;“Storage−Efficie nt Finite Field Ba sis Conversion”Lec ture Notes in Comp uter Science,Vol. 1556(1999)p.81−93 (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 H04L 9/28 - 9/32

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】 入力された任意の楕円曲線Eを暗号に適
    した楕円曲線Etに変換する装置であって、 pを素数とする有限体GF(p)上の楕円曲線E:y^
    2=x^3+ax+bを特定するパラメータp、a、b
    及びその楕円曲線E上の点Gを特定する座標値(x0、
    y0)の入力を受けつける入力手段と、 入力されたa及びpを用いて、t≠0であり、かつ、t
    ^4×a (modp)の値がpと比較して桁数が小さ
    くなるような変換係数tを特定する変換係数特定手段
    と、 特定された変換係数tを用いて、式a’=a×t^4、
    b’=b×t^6、xt0=t^2×x0及びyt0=
    t^3×y0に従い、有限体GF(p)上の新たな楕円
    曲線Et:y’^2=x’^3+a’×x’+b’を特
    定するパラメータa’、b’及び前記点Gに対応する新
    たな点Gtの座標値(xt0、yt0)を算出し出力す
    る楕円曲線算出手段と を備えることを特徴とする楕円曲
    線変換装置。
  2. 【請求項2】 pは、160ビットの素数であり、 前記変換係数取得手段は、t^4×a (mod p)
    が32ビット以下の数になる、という条件を満たす変換
    係数tを取得することを特徴とする請求項1記載の楕円
    曲線変換装置。
  3. 【請求項3】 前記変換係数取得手段は、t^4×a
    (mod p)が−3となる、という条件を満たす変換
    係数tを取得することを特徴とする請求項1記載の楕円
    曲線変換装置。
  4. 【請求項4】 前記変換係数取得手段は、変数Tとし
    て、初期値を−3とし、初期値以外の値については、桁
    数の小さい値から大きい値へ順に取ることと、 T=t^4×a (mod p) という条件を満たすかどうかを判定することとを繰り返
    すことにより、変換係数tを取得することを特徴とする
    請求項1記載の楕円曲線変換装置。
  5. 【請求項5】 請求項1記載の楕円曲線変換装置とその
    楕円曲線変換装置によって生成された楕円曲線Etを利
    用する暗号装置とからなる楕円曲線利用システムであっ
    て、 前記暗号装置は、 pを素数とする有限体GF(p)上の楕円曲線E:y^
    2=x^3+ax+bを特定するパラメータp、a、b
    及びその楕円曲線E上の点Gを特定する座標値(x0、
    y0)を前記楕円曲線変換装置に送信する送信手段と、 前記送信手段が送信したパラメータp、a、b及び座標
    値(x0、y0)に基づいて前記楕円曲線変換装置が生
    成し出力した有限体GF(p)上の新たな楕円曲線E
    t:y’^2=x’^3+a’×x’+b’を特定する
    パラメータa’、b’及び前記点Gに対応する新たな点
    Gtの座標値(xt0、yt0)を受信する受信手段
    と、 受信したパラメータa’、b’及び座標値(xt0、y
    t0)によって定まる楕円曲線Et及びベースポイント
    としての点Gtを用いて、有限体GF(p)上で定義さ
    れる楕円曲線Et上での演算に基づき、離散対数問題を
    安全性の根拠とする暗号、復号、デジタル署名、デジタ
    ル署名検証又は鍵共有を行う利用手段とを備える ことを
    特徴とする楕円曲線利用システム。
  6. 【請求項6】 pは、160ビットの素数であり、 前記変換係数取得手段は、t^4×a (mod p)
    が32ビット以下の数になる、という条件を満たす変換
    係数tを取得することを特徴とする請求項5記載の楕円
    曲線利用システム。
  7. 【請求項7】 前記変換係数取得手段は、t^4×a
    (mod p)が−3となる、という条件を満たす変換
    係数tを取得することを特徴とする請求項5記載の楕円
    曲線利用システム。
  8. 【請求項8】 前記変換係数取得手段は、変数Tとし
    て、初期値を−3とし、初期値以外の値については、桁
    数の小さい値から大きい値へ順に取ることと、 T=t^4×a (mod p) という条件を満たすかどうかを判定することとを繰り返
    すことにより、変換係数tを取得することを特徴とする
    請求項5記載の楕円曲線利用システム。
  9. 【請求項9】 請求項5記載の楕円曲線利用システムに
    おける暗号装置
  10. 【請求項10】 請求項1記載の楕円曲線変換装置によ
    って生成された楕円曲線Etを利用する暗号装置であっ
    て、 前記楕円曲線変換装置が生成し出力した有限体GF
    (p)上の楕円曲線Et:y’^2=x’^3+a’×
    x’+b’を特定するパラメータa’、b’及び前記点
    Gtの座標値(xt0、yt0)を記憶する記憶手段
    と、 記憶されているパラメータa’、b’及び座標値(xt
    0、yt0)によって定まる楕円曲線Et及びベースポ
    イントとしての点Gtを用いて、有限体GF(p)上で
    定義される楕円曲線Et上での演算に基づき、離散対数
    問題を安全性の根拠とする暗号、復号、デジタル署名、
    デジタル署名検証又は鍵共有を行う利用手段とを備える
    ことを特徴とする暗号装置。
  11. 【請求項11】 入力された任意の楕円曲線Eを暗号に
    適した楕円曲線Etに変換する方法であって、 pを素数とする有限体GF(p)上の楕円曲線E:y^
    2=x^3+ax+bを特定するパラメータp、a、b
    及びその楕円曲線E上の点Gを特定する座標値(x0、
    y0)をそれぞれ入力手段を介して受けつける入力ステ
    ップと、 入力されたa及びpを用いて、t≠0であり、かつ、t
    ^4×a (modp)の値がpと比較して桁数が小さ
    くなるような変換係数tを変換係数特定手段により特定
    する変換係数特定ステップと、 特定された変換係数tを用いて、楕円曲線算出手段によ
    り、式a’=a×t^4、b’=b×t^6、xt0=
    t^2×x0及びyt0=t^3×y0に従い、有限体
    GF(p)上の新たな楕円曲線Et:y’^2=x’^
    3+a’×x’+b’を特定するパラメータa’、b’
    及び前記点Gに対応する新たな点Gtの座標値(xt
    0、yt0)を楕円曲線算出手段により算出し出力する
    楕円曲線算出ステップと を含むことを特徴とする楕円曲
    線変換方法。
  12. 【請求項12】 入力された任意の楕円曲線Eを暗号に
    適した楕円曲線Etに変換するためのプログラムを記録
    したコンピュータ読み取り可能な記録媒体であって、 前記プログラムは、 pを素数とする有限体GF(p)上の楕円曲線E:y^
    2=x^3+ax+bを特定するパラメータp、a、b
    及びその楕円曲線E上の点Gを特定する座標値(x0、
    y0)をそれぞれ入力手段を介して受けつける入力ステ
    ップと、 入力されたa及びpを用いて、t≠0であり、かつ、t
    ^4×a (modp)の値がpと比較して桁数が小さ
    くなるような変換係数tを変換係数特定手段により特定
    する変換係数特定ステップと、 特定された変換係数tを用いて、楕円曲線算出手段によ
    り、式a’=a×t^4、b’=b×t^6、xt0=
    t^2×x0及びyt0=t^3×y0に従い、有限体
    GF(p)上の新たな楕円曲線Et:y’^2=x’^
    3+a’×x’+b’を特定するパラメータa’、b’
    及び前記点Gに対応する新たな点Gtの座標値(xt
    0、yt0)を楕円曲線算出手段により算出し出力する
    楕円曲線算出ステップとをコンピュータに実行させる
    とを特徴とする記録媒体。
JP11056592A 1998-03-05 1999-03-04 楕円曲線変換装置、利用装置及び利用システム Expired - Lifetime JP3050313B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11056592A JP3050313B2 (ja) 1998-03-05 1999-03-04 楕円曲線変換装置、利用装置及び利用システム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP5320498 1998-03-05
JP10-53204 1998-03-05
JP11056592A JP3050313B2 (ja) 1998-03-05 1999-03-04 楕円曲線変換装置、利用装置及び利用システム

Publications (2)

Publication Number Publication Date
JPH11316542A JPH11316542A (ja) 1999-11-16
JP3050313B2 true JP3050313B2 (ja) 2000-06-12

Family

ID=26393914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11056592A Expired - Lifetime JP3050313B2 (ja) 1998-03-05 1999-03-04 楕円曲線変換装置、利用装置及び利用システム

Country Status (1)

Country Link
JP (1) JP3050313B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69940372D1 (de) * 1999-09-29 2009-03-19 Hitachi Ltd Vorrichtung, programm oder system zur verarbeitung geheimer informationen
DE10057203C1 (de) * 2000-11-17 2002-06-06 Cv Cryptovision Gmbh Verfahren zur Berechnung eines digitalen Signalwertes für ein cryptographisches Verfahren
US7209555B2 (en) 2001-10-25 2007-04-24 Matsushita Electric Industrial Co., Ltd. Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Burton S.Kaliski Jr.,Yiqun Lisa Yin;"Storage−Efficient Finite Field Basis Conversion"Lecture Notes in Computer Science,Vol.1556(1999)p.81−93
Erik De Win,Antoon Bosselaers,Servaas Vandenberghe,Peater De Gersem,Joos Vandewalle;"A Fast Software Implementation for Arithmetic Operations in GF(2▲上n▼)" Lecture Notes in Computer Science,Vol.1163(1996)p.65−76
小山謙二;"高速だ円曲線法による素因数分解"電子情報通信学会論文誌 D,Vol.J70−D,No.12(1987.9.27)p.2730−2738

Also Published As

Publication number Publication date
JPH11316542A (ja) 1999-11-16

Similar Documents

Publication Publication Date Title
KR100513127B1 (ko) 타원곡선 변환장치, 이용장치 및 이용시스템
JP3862500B2 (ja) 直接埋め込み方式による高速楕円曲線暗号化の方法と装置
JP5190142B2 (ja) 楕円曲線上の新しいトラップドア1方向性関数と、その、より短い署名及び非対称暗号化への応用
CA2369540C (en) Method and apparatus for computing a shared secret key
Gouvêa et al. Efficient software implementation of public-key cryptography on sensor networks using the MSP430X microcontroller
US6202076B1 (en) Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
US7209555B2 (en) Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device
JP2012014203A (ja) デジタル署名と公開鍵の促進された検証
Vanstone et al. Elliptic curve cryptosystems using curves of smooth order over the ring Z/sub n
US6480606B1 (en) Elliptic curve encryption method and system
JP4690819B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
JP3050313B2 (ja) 楕円曲線変換装置、利用装置及び利用システム
JP2002082609A (ja) 依頼計算を用いた演算装置、及び記録媒体
JP3615405B2 (ja) 素体上楕円曲線上の点の演算方法およびその装置
JP2000137436A (ja) 素体上楕円曲線上の点の演算方法およびその装置
JP4225764B2 (ja) 楕円曲線変換装置、楕円曲線変換方法、楕円曲線利用装置及び楕円曲線生成装置
JP4058152B2 (ja) 楕円曲線演算装置
Muchtadi-Alamsyah et al. Implementation of elliptic curve25519 in cryptography
JP3518680B2 (ja) 素数生成装置
JP4105803B2 (ja) 楕円曲線演算装置
KR100368204B1 (ko) 정규 기저를 이용한 역원 계산 알고리즘
JPWO2004070681A1 (ja) 楕円曲線スカラー倍計算方法および装置
AL-Saidi et al. A new public key cryptosystem based on IFS
KR20010103134A (ko) 빠른 유한체 연산을 이용한 타원곡선 암호화 방법 및 전자서명 방법
JP2003005644A (ja) 情報セキュリティ装置、素数生成装置及び素数生成方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000307

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

Free format text: PAYMENT UNTIL: 20080331

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090331

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100331

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110331

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110331

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120331

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130331

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20130331

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20140331

Year of fee payment: 14

EXPY Cancellation because of completion of term