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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
Description
術としての暗号技術に関し、特に、楕円曲線を用いて実
現する暗号・復号技術、デジタル署名・検証技術及び鍵
共有技術に関する。
信が広く普及してきており、このデータ通信において
は、秘密通信方式又はデジタル署名方式が用いられてい
る。ここで、秘密通信方式とは、特定の通信相手以外に
通信内容を漏らすことなく通信を行なう方式である。ま
たデジタル署名方式とは、通信相手に通信内容の正当性
を示したり、発信者の身元を証明する通信方式である。
式には公開鍵暗号とよばれる暗号方式が用いられる。公
開鍵暗号は通信相手が多数の時、通信相手ごとに異なる
暗号鍵を容易に管理するための方式であり、多数の通信
相手と通信を行なうのに不可欠な基盤技術である。公開
鍵暗号を用いる秘密通信では、暗号化鍵と復号化鍵とが
異なり、復号化鍵は秘密にするが、暗号化鍵は公開す
る。
対数問題が用いられる。離散対数問題には、代表的なも
のとして、有限体上定義されるもの及び楕円曲線上定義
されるものがある。なお、離散対数問題については、ニ
イルコブリッツ著 ”ア コウス イン ナンバア セ
オリイ アンド クリプトグラヒイ”(Neal Koblitz, "
A Course in Number theory and Cryptography", Spri
nger-Verlag,1987)に詳しく述べられている。 2.楕円曲線上の離散対数問題 楕円曲線上の離散対数問題について、以下に述べる。
(p))を有限体GF(p)上で定義された楕円曲線と
し、楕円曲線Eの位数が大きな素数で割り切れる場合
に、楕円曲線Eに含まれる元Gをベースポイントとす
る。このとき、楕円曲線Eに含まれる与えられた元Yに
対して、 (式1) Y=x*G となる整数xが存在するならば、xを求めよ、という問
題である。
を持つ有限体である。また、この明細書において、記号
*は、楕円曲線に含まれる元を複数回加算する演算を示
し、x*Gは、次式に示すように、楕円曲線に含まれる
元Gをx回加算することを意味する。 x*G=G+G+G+・・・+G 離散対数問題を公開鍵暗号の安全性の根拠とするのは、
多くの元を有する有限体GF(p)に対して、上記問題
は極めて難しいからである。 3.楕円曲線上の離散対数問題を応用したエルガマル署
名 以下に、上記楕円曲線上の離散対数問題を応用したエル
ガマル署名によるデジタル署名方式について、図1を用
いて、説明する。
タル署名方式の手順を示すシーケンス図である。ユーザ
A110、管理センタ120及びユーザB130は、ネ
ットワークで接続されている。pを素数、有限体GF
(p)上の楕円曲線をEとする。Eのベースポイントを
Gとし、Eの位数をqとする。つまり、qは、 (式2) q*G=0 を満たす最小の正整数である。
(∞、∞)を無限遠点といい、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)。
5)。次に、ユーザA110は、 (式4) R1=(rx,ry)=k*G を計算し(ステップS146)、 (式5) s×k=m+rx×xA (mod q) から、sを計算する(ステップS147)。ここで、m
は、ユーザA110がユーザB130へ送信するメッセ
ージである。
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」は、楕円曲
線上の点の冪倍の演算である。
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.)に詳しく説明されてい
る。
する。楕円曲線の方程式をy^2 = x^3 +a×
x+b とし、任意の点Pの座標を(x1,y1)と
し、任意の点Qの座標を(x2,y2)とする。ここ
で、R=P+Qで定まる点Rの座標を(x3,y3)と
する。
乗の演算を示し、例えば、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倍算の公式を以下
に示す。
−y1 なお、上記演算は、楕円曲線が定義される有限体上での
演算である。上記に示すように、2項組座標であるアフ
ィン座標、すなわち今まで述べてきた座標において、楕
円曲線上の加算演算を行う場合に、楕円曲線上の加算1
回につき、1回の有限体上の逆数計算が必要となる。一
般に、有限体上の逆数計算は、有限体上での乗算計算と
比較して、10倍程度の計算量を必要とする。
て、射影座標と呼ばれる3項組の座標が用いられる。射
影座標とは、3項組X、Y、Zからなる座標のことであ
って、座標(X,Y,Z)と座標(X’,Y’,Z’)
とに対して、ある数nが存在して、X’=nX、Y’=
nY、Z’=nZなる関係があるならば、(X,Y,
Z)=(X’,Y’,Z’)とするものである。
Y,Z)とは、 (x,y) → (x,y,1) (X,Y,Z)→ (X/Y,Y/Z) (Z≠0のと
き) なる関係で、互いに対応している。ここで、記号→は、
次に示す意味で用いている。集合S1の任意の元に、集
合S2の一つの元が対応するとき、S1→S2と表記す
る。
標で行われるものとする。次に、射影座標上の楕円曲線
の加算公式、2倍公式について説明する。これらの公式
は、もちろん、前に述べたアフィン座標における加算公
式、2倍公式と整合性のあるものである。冪倍の演算
は、楕円曲線上の点の加算、2倍算の演算の繰り返しに
よって実現できる。この冪倍の演算のうち、加算の計算
量は、楕円曲線のパラメータに依存しないが、2倍算の
計算量は、楕円曲線のパラメータに依存する。
有限体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 を以下のようにして、求める。
2 (式15) Y3=−S1×H^3+r×(U1×H^
2−X3) (式16) Z3=Z1×Z2×H (ii)P=Qの場合(すなわち、R=2P) この場合、2倍算の演算となる。
いて説明する。ここで、有限体GF(p)上の1回の乗
算による計算量を1Mul、1回の2乗算による計算量
を1Sqで表す。なお、一般のマイクロプロセッサにお
いては、1Sq≒0.8Mulである。
ている楕円曲線上の加算の計算量は、式8〜式16にお
いて、乗算の回数及び2乗算の回数をカウントすること
により得られ、12Mul+4Sqである。これは、式
8、9、10、11、14、15、16における加算の
計算量は、それぞれ、1Mul+1Sq、1Mul+1
Sq、2Mul、2Mul、2Mul+2Sq、2Mu
l、2Mulであることから明らかである。
示されている楕円曲線上の2倍算の計算量は、式17〜
式22において、乗算の回数及び2乗算の回数をカウン
トすることにより得られ、4Mul+6Sqである。こ
れは、式17、18、19、21、22における2倍算
の計算量は、それぞれ、1Mul+1Sq、1Mul+
3Sq、1Sq、1Mul+1Sq、1Mulであるこ
とから明らかである。
ば、式14のH^3については、 H^3=H^2×H と展開できるので、H^3の計算量は、1Mul+1S
qとし、式18のZ1^4については、 Z1^4=(Z1^2)^2 と展開できるので、Z1^4の計算量は、2Sqとす
る。
H^3の計算のプロセスにおいて、H^2が算出されて
いるので、H^2の計算量は再度カウントしない。ま
た、乗算の回数のカウントの際、ある値に小さい値を乗
じて行われる乗算の回数は、カウントしない。その理由
を以下に説明する。ここで言う小さい値とは、式8〜式
22において、乗算の対象となる小さい固定値であり、
具体的には、2、3、4、8などの値である。これらの
値は、多くとも4ビットの2進数で表現できる。一方、
その他の変数は、通常、160ビットの値を有してい
る。
数と被乗数との乗算は、被乗数のシフトと加算の繰り返
しにより行われる。すなわち、2進数で表現される乗数
の各ビット毎に、このビットが1であるならば、2進数
で表現される被乗数の最下位ビットが、このビットの存
在する位置に一致するように、被乗数をシフトして、1
つのビット列を得る。乗数の全ビットについて、このよ
うにして得られた少なくとも1つのビット列をすべて加
算する。
トの被乗数との乗算においては、160ビットの被乗数
を160回シフトし、160個のビット列を得、得られ
た160個のビット列を加算する。一方、4ビットの乗
数と160ビットの被乗数との乗算においては、160
ビットの被乗数を4回シフトし、4個のビット列を得、
得られた4個のビット列を加算する。
で、乗算がある値に小さい値を乗じて行われる場合に
は、前記繰り返しの回数が少なくなる。従って、その計
算量は少ないと見なせるので、乗算の回数にカウントし
ない。以上説明したように、楕円曲線の2倍算を行う場
合において、式18には、楕円曲線のパラメータaが含
まれている。このパラメータaの値として、例えば、小
さい値を採用すると、楕円曲線上の2倍算の計算量は、
1Mul分削減でき、3Mul+6Sqとなる。なお、
加算に関しては、楕円曲線のパラメータを変化させて
も、計算量は変わらない。 5.暗号に適した楕円曲線の選択 次に暗号に適した楕円曲線を選択する方法について説明
する。なお、その詳細については、「IEEE P1363 Worki
ng draft」(1997年2月6日、IEEE発行) に
詳しく書かれている。
を繰り返すことにより得られる。 (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 とする。
どうかを判定楕円曲線Eの元の個数#E(GF(p))
を計算し、 (条件1) #E(GF(p))が大きな素数で割り切
れ、かつ、 (条件2) #E(GF(p))−(p+1) ≠
0,−1である場合に、楕円曲線Eを採用する。条件1
又は条件2を満たさない場合は、楕円曲線Eを棄却し、
step 1に戻って、再度、任意の楕円曲線の選択と、判定
とを繰り返す。
に、楕円曲線のパラメータaとして固定的に小さい値を
選択すると、楕円曲線の冪倍の演算において計算量を削
減できるものの、パラメータを予め固定的に取ることに
より、暗号に適した安全な楕円曲線を選択しにくいとい
う問題点がある。
方法を用いて、暗号に適した安全な楕円曲線を選択する
と、楕円曲線のパラメータaとして小さい値を選択でき
るとは限らず、計算量を削減できないという問題点があ
る。このように、暗号に適した安全な楕円曲線を選択
し、その楕円曲線での演算量を削減するためには、相互
に矛盾し対立する問題点を有する。
号に適した安全な楕円曲線として任意に選択された楕円
曲線を、この楕円曲線と等価な安全性を有し、かつ、計
算量を削減できる楕円曲線に変換する楕円曲線変換装
置、楕円曲線変換方法、及び楕円曲線変換プログラムを
記録している記録媒体を提供することを目的とする。ま
た、これにより安全でかつ高速に演算ができる暗号装
置、復号装置、デジタル署名装置、デジタル署名検証装
置、鍵共有装置などの利用装置及び前記利用装置と前記
楕円曲線変換装置とから構成される利用システムを提供
することを目的とする。
ために、本発明は、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とを外部へ出力する出力手段とを備えることを特徴と
する。
り、前記変換係数取得手段は、t^4×a (mod
p)が32ビット以下の数になる、という条件を満たす
変換係数tを取得するように構成してもよい。ここで、
前記変換係数取得手段は、t^4×a (mod p)
が−3となる、という条件を満たす変換係数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)上で定義される楕円曲線上での演算に基づき、離
散対数問題を安全性の根拠とする暗号、復号、デジタル
署名、デジタル署名検証又は鍵共有を行うことを特徴と
する。
取得手段と楕円曲線算出手段と第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)上で定義される楕円曲線上での演算に
基づき、離散対数問題を安全性の根拠とする暗号、復
号、デジタル署名、デジタル署名検証又は鍵共有を行う
ことを特徴とする。
しての楕円曲線変換装置200について、図を用いて説
明する。 1.楕円曲線変換装置200の構成 楕円曲線変換装置200は、図2に示すように、パラメ
ータ受信部210、変換係数取得部220、変換楕円曲
線算出部230、パラメータ送出部240から構成され
る。 (パラメータ受信部210)パラメータ受信部210
は、外部の装置から、楕円曲線のパラメータa、bと、
前記楕円曲線上の元Gと、素数pとを受信する。ここ
で、pは、160ビットの素数である。
暗号装置、復号装置、デジタル署名装置、デジタル署名
検証装置、鍵共有装置などが含まれる。前記外部の装置
は、公開鍵暗号の安全性の根拠として楕円曲線上の離散
対数問題を用いており、前記楕円曲線を有している。こ
こで、有限体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、・・・の値を
有する。
て、iの値を1ずつ加算しながら、 (式24) −2^31+1≦T(i)≦2^31−1 を満たし、かつ、 (式25) T(i)=t^4×a (mod p) となる変換係数tであって、有限体GF(p)上の元で
ある変換係数tを算出する。
以下になるように取られることを示している。なお、関
数T(i)は、i=0のときに、−3の値を有してお
り、変換係数取得部220は、i=0から始めて、iの
値を1ずつ加算しながら、関数T(i)の値を参照する
ので、最初に−3の値が参照される。
−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に示すフローチ
ャートを用いて、説明する。
ら素数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に示すフローチャートを用
いて説明する。
定する(ステップ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に示すフローチャ
ートを用いて説明する。
(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とが同型であることを証明する。な
お、以下において、楕円曲線上の演算は、アフィン座標
のものを取り扱う。
を取る。このとき、点Pは、E上の点であるから、 (式30) y0^2=x0^3+a×x0+b を満たしている。この変換により、点Pは、点P’(x
0’,y0’)=(t^2×x0,t^3×y0)に変
換される。
と、 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 この式は、さらに、次のように変形できる。
0’+b×t^6 これは、点P’が、変換楕円曲線Et上にあることを示
している。また、楕円曲線E上の点から変換楕円曲線E
t上の点への変換は、 (x,y)→(x’,y’)=(t^2×x,t^3×
y) により示される。ここで、t≠0であるので、以下に示
す変換楕円曲線Et上の点から楕円曲線E上への点の変
換は、上記変換の逆変換であることは容易に分かる。
(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 となる。
り、楕円曲線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 が成り立つ。
ここにおける加算演算は、変換楕円曲線Et上の加算を
示す。R”の座標を(x3”,y3”)とすると、 x3”={(y2’−y1’)/(x2’−x1’)}
^2−x1’−x2’ y3”={(y2’−y1’)/(x2’−x1’)}
(x1’−x3’)−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”とは、等しい点を表してい
ることが分かる。
変換においても、保存されることが分かる。次に、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’とする。
円曲線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”とは、等しい点を表してい
ることが分かる。
変換においても、保存されることが分かる。以上に述べ
たことにより、楕円曲線Eと、本発明において用いる変
換により生成された変換楕円曲線Etとは、同型である
ことが証明できた。 4.変換楕円曲線Etを用いる場合の計算量の評価 上記の実施の形態によると、変換楕円曲線Etのパラメ
ータa’は、32ビット以下になるように取られるの
で、式18の計算量は、3Sqとなる。従って、楕円曲
線上の加算の計算量は、12Mul+4Sqとなり、2
倍算の計算量は、3Mul+6Sqとなる。このよう
に、楕円曲線Eのパラメータaが、160ビットに近い
値である場合とと比較すると2倍算において、1Mul
分の計算量が削減できることが分かる。
=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) と変形できる。
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回で検出できる可能
性がある。
線を用いると、楕円曲線上の計算を高速化することがで
きる。 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を満たすかどうかを判
定する。
元uが見つかるまで、前記乱数発生部による元uの発生
と式31を満たすかどうかの判定を繰り返す。また、変
換係数取得部220は、式31の代わりに、 (式32) u^4×a(mod p)=−3 を用いるとしてもよい。 6.楕円曲線変換装置200の適用例 上記に説明した楕円曲線変換装置200を適用する鍵共
有シテスムを図7に示すシーケンス図を用いて説明す
る。
ーザB470は、ネットワークで接続されている。 (1)管理センタ460による楕円曲線の選択 管理センタ460は、素数pを選択し、有限体GF
(p)上の楕円曲線Eを選択し、Eのベースポイントを
Gとし、Eの位数をqとする(ステップS411)。つ
まり、qは、 (式2) q*G=0 を満たす最小の正整数である。
×x+b であり、G=(x0,y0)である。次に、
管理センタ460は、p、E、Gを楕円曲線変換装置2
00へ送出する(ステップS412)。
楕円曲線の生成 楕円曲線変換装置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である。
Gtを管理センタ460へ送出する(ステップS42
2)。管理センタ460は、P、Et、Gtを各ユーザ
へ送出する(ステップS413)。 (3)ユーザによる秘密鍵の設定と公開鍵の生成 ユーザA450は、秘密鍵xAを設定し(ステップS4
01)、ユーザB470は、秘密鍵xBを設定する(ス
テップS431)。
Aを算出し(ステップS402)、公開鍵YAをユーザ
B470へ送出する(ステップS403)。 YA=xA*Gt また、ユーザB470は、次式により、公開鍵YBを算
出し(ステップS432)、公開鍵YBをユーザA45
0へ送出する(ステップS433)。
(ステップS404)。また、ユーザB470は、共有
鍵をxB*YAにより算出する(ステップS434)。
共有鍵xA*YBは、 xA*YB=(xA×xB)*Gt のように変形できる。また、ユーザB470により算出
された共有鍵xB*YAは、 のように変形できる。
共有鍵xA*YBと、ユーザB470により算出された
共有鍵xB*YAとが同じものであることは、明らかで
ある。7.その他の変形例別の実施の形態の一つは、上
記により示される楕円曲線変換方法であるとしてもよ
い。前記楕円曲線変換方法をコンピュータに実行させる
楕円曲線変換プログラムを含むコンピュータ読み取り可
能な記録媒体としてもよい。さらに、前記楕円曲線変換
プログラムを通信回線を介して伝送するとしてもよい。
を、暗号装置、復号装置、又は暗号装置と復号装置とか
らなる暗号システムに適用してもよい。また、上記に説
明した楕円曲線変換装置を、デジタル署名装置、デジタ
ル署名検証装置、又はデジタル署名装置とデジタル署名
検証装置とからなるデジタル署名システムに適用しても
よい。
装置、デジタル署名検証装置、又は鍵共有装置は、楕円
曲線変換装置により算出された楕円曲線のパラメータ
a’、b’と元Gtとを予め記憶しており、記憶してい
る楕円曲線のパラメータa’、b’と元Gtとを用い
て、暗号、復号、デジタル署名、デジタル署名検証、又
は鍵共有を行うとしてもよい。
の変形例を組み合わせてもよい。
他の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とを外部へ出力する出力手段とを備え
る。
楕円曲線と同じ安全性を有し、利用装置において高速な
演算を可能にする楕円曲線を提供することができ、その
実用的価値は非常に大きい。ここで、pは、160ビッ
トの素数であり、前記変換係数取得手段は、t^4×a
(mod p)が32ビット以下の数になる、という
条件を満たす変換係数tを取得するとしてもよい。
円曲線を利用装置において用いると、楕円曲線上の2倍
算において、変換前の楕円曲線のパラメータaが、16
0ビットに近い値を取る場合と比較して、1Mul分の
計算量が削減できることが分かる。ここで、前記変換係
数取得手段は、t^4×a (mod p)が−3とな
る、という条件を満たす変換係数tを取得するとしても
よい。
円曲線を利用装置において用いると、楕円曲線上の2倍
算において、従来と比較して、2Sq分の計算量が削減
できることが分かる。ここで、前記変換係数取得手段
は、変数Tとして、初期値を−3とし、初期値以外の値
については、桁数の小さい値から大きい値へ順に取るこ
とと、T=t^4×a (mod p)という条件を満
たすかどうかを判定することとを繰り返すことにより、
変換係数tを取得するとしてもよい。
0のときに、−3の値を有しており、変換係数取得部2
20は、i=0から始めて、iの値を1ずつ加算しなが
ら、関数T(i)の値を参照するので、最初に−3の値
が参照される。従って、2倍算において、従来との比較
で2Sq分の計算量が削減できる場合が、最初に検証さ
れるので、最も適切な変換楕円曲線を1回で検出できる
可能性がある。また、関数T(i)は、i=0のとき
に、−3の値を有していることを除いて、絶対値の小さ
い値から大きい値へと順に値を有しており、絶対値の小
さい値から順に参照することができるので、より計算量
の少ない変換楕円曲線から順に、適切な変換楕円曲線を
選んでいくことができる。
して他の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)上で定義さ
れる楕円曲線上での演算に基づき、離散対数問題を安全
性の根拠とする暗号、復号、デジタル署名、デジタル署
名検証又は鍵共有を行う。
楕円曲線と同じ安全性を有し、高速な演算を可能にする
楕円曲線を利用することができ、その実用的価値は非常
に大きい。ここで、pは、160ビットの素数であり、
前記変換係数取得手段は、t^4×a (mod p)
が32ビット以下の数になる、という条件を満たす変換
係数tを取得するとしてもよい。
用いるので、楕円曲線上の2倍算において、変換前の楕
円曲線のパラメータaが、160ビットに近い値を取る
場合と比較して、1Mul分の計算量が削減できること
が分かる。ここで、前記変換係数取得手段は、t^4×
a (mod p)が−3となる、という条件を満たす
変換係数tを取得するとしてもよい。
用いるので、楕円曲線上の2倍算において、従来と比較
して、2Sq分の計算量が削減できることが分かる。こ
こで、前記変換係数取得手段は、変数Tとして、初期値
を−3とし、初期値以外の値については、桁数の小さい
値から大きい値へ順に取ることと、T=t^4×a
(mod p)という条件を満たすかどうかを判定する
こととを繰り返すことにより、変換係数tを取得すると
してもよい。
0のときに、−3の値を有しており、変換係数取得部2
20は、i=0から始めて、iの値を1ずつ加算しなが
ら、関数T(i)の値を参照するので、最初に−3の値
が参照される。従って、2倍算において、従来との比較
で2Sq分の計算量が削減できる場合が、最初に検証さ
れるので、最も適切な変換楕円曲線を1回で検出できる
可能性がある。また、関数T(i)は、i=0のとき
に、−3の値を有していることを除いて、絶対値の小さ
い値から大きい値へと順に値を有しており、絶対値の小
さい値から順に参照することができるので、より計算量
の少ない変換楕円曲線から順に、適切な変換楕円曲線を
選んでいくことができる。
取得手段と楕円曲線算出手段と第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)上で定義される楕円曲線上での演算に
基づき、離散対数問題を安全性の根拠とする暗号、復
号、デジタル署名、デジタル署名検証又は鍵共有を行
う。
楕円曲線と同じ安全性を有し、高速な演算を可能にする
楕円曲線を利用することができ、その実用的価値は非常
に大きい。また、本発明は、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座標値である。
楕円曲線と同じ安全性を有し、高速な演算を可能にする
楕円曲線を利用することができ、その実用的価値は非常
に大きい。また、本発明は、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とを外部
へ出力する出力ステップとを含む。
た楕円曲線と同じ安全性を有し、利用装置において高速
な演算を可能にする楕円曲線を生成することができ、そ
の実用的価値は非常に大きい。また、本発明は、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とを外部へ出力する
出力ステップとを含む。
ンピュータで実行することにより、ランダムに構成され
た楕円曲線と同じ安全性を有し、利用装置において高速
な演算を可能にする楕円曲線を生成することができ、そ
の実用的価値は非常に大きい。
を示すシーケンス図である。
線変換装置のブロック図である。
T(i)を説明する表である。
ーチャートである。
の動作を示すフローチャートである。
出部の動作を示すフローチャートである。
システムの動作手順を示すシーケンス図である。
Claims (12)
- 【請求項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】 pは、160ビットの素数であり、 前記変換係数取得手段は、t^4×a (mod p)
が32ビット以下の数になる、という条件を満たす変換
係数tを取得することを特徴とする請求項1記載の楕円
曲線変換装置。 - 【請求項3】 前記変換係数取得手段は、t^4×a
(mod p)が−3となる、という条件を満たす変換
係数tを取得することを特徴とする請求項1記載の楕円
曲線変換装置。 - 【請求項4】 前記変換係数取得手段は、変数Tとし
て、初期値を−3とし、初期値以外の値については、桁
数の小さい値から大きい値へ順に取ることと、 T=t^4×a (mod p) という条件を満たすかどうかを判定することとを繰り返
すことにより、変換係数tを取得することを特徴とする
請求項1記載の楕円曲線変換装置。 - 【請求項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】 pは、160ビットの素数であり、 前記変換係数取得手段は、t^4×a (mod p)
が32ビット以下の数になる、という条件を満たす変換
係数tを取得することを特徴とする請求項5記載の楕円
曲線利用システム。 - 【請求項7】 前記変換係数取得手段は、t^4×a
(mod p)が−3となる、という条件を満たす変換
係数tを取得することを特徴とする請求項5記載の楕円
曲線利用システム。 - 【請求項8】 前記変換係数取得手段は、変数Tとし
て、初期値を−3とし、初期値以外の値については、桁
数の小さい値から大きい値へ順に取ることと、 T=t^4×a (mod p) という条件を満たすかどうかを判定することとを繰り返
すことにより、変換係数tを取得することを特徴とする
請求項5記載の楕円曲線利用システム。 - 【請求項9】 請求項5記載の楕円曲線利用システムに
おける暗号装置。 - 【請求項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】 入力された任意の楕円曲線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】 入力された任意の楕円曲線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)を楕円曲線算出手段により算出し出力する
楕円曲線算出ステップとをコンピュータに実行させる こ
とを特徴とする記録媒体。
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 |
---|---|---|---|
JP10-53204 | 1998-03-05 | ||
JP5320498 | 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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1217783B9 (en) * | 1999-09-29 | 2009-07-15 | Hitachi, Ltd. | Device, program or system for processing secret information |
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 |
-
1999
- 1999-03-04 JP JP11056592A patent/JP3050313B2/ja not_active Expired - Lifetime
Non-Patent Citations (3)
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) | 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置 | |
JP3402441B2 (ja) | 公開鍵暗号化装置、公開鍵暗号復号装置及び復号プログラム記録媒体 | |
JP3050313B2 (ja) | 楕円曲線変換装置、利用装置及び利用システム | |
JP2002082609A (ja) | 依頼計算を用いた演算装置、及び記録媒体 | |
JP3615405B2 (ja) | 素体上楕円曲線上の点の演算方法およびその装置 | |
Frey et al. | Fast bilinear maps from the Tate-Lichtenbaum pairing on hyperelliptic curves | |
JP2000137436A (ja) | 素体上楕円曲線上の点の演算方法およびその装置 | |
JP4225764B2 (ja) | 楕円曲線変換装置、楕円曲線変換方法、楕円曲線利用装置及び楕円曲線生成装置 | |
JP4058152B2 (ja) | 楕円曲線演算装置 | |
Muchtadi-Alamsyah et al. | Implementation of elliptic curve25519 in cryptography | |
JP4105803B2 (ja) | 楕円曲線演算装置 | |
JP3518680B2 (ja) | 素数生成装置 | |
KR100368204B1 (ko) | 정규 기저를 이용한 역원 계산 알고리즘 | |
JPWO2004070681A1 (ja) | 楕円曲線スカラー倍計算方法および装置 | |
AL-Saidi et al. | A new public key cryptosystem based on IFS |
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 |