JP2001209316A - 楕円曲線演算装置及び記憶媒体 - Google Patents
楕円曲線演算装置及び記憶媒体Info
- Publication number
- JP2001209316A JP2001209316A JP2000016191A JP2000016191A JP2001209316A JP 2001209316 A JP2001209316 A JP 2001209316A JP 2000016191 A JP2000016191 A JP 2000016191A JP 2000016191 A JP2000016191 A JP 2000016191A JP 2001209316 A JP2001209316 A JP 2001209316A
- Authority
- JP
- Japan
- Prior art keywords
- point
- elliptic curve
- expansion
- calculation
- naf
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】
【課題】 楕円曲線の点Gに対する倍数演算kGの更な
る高速化を実現させる。 【解決手段】 倍数判定部3が、倍数kのビット数nk
が所定の範囲にあるか否かを判定し、φ進展開部4が、
倍数判定部3による判定結果が所定範囲にある旨を示す
とき、倍数kをnビット単位の形式に表現すると共に、
倍数kの2nに±c+tφ+φ2を代入し、代入結果を
展開してφ以外の項及びφの一次の項の係数を夫々nビ
ット単位で表現し、これら代入と展開との処理を複数回
繰返してφ進展開を実行し、倍数演算部5が、φ進展開
部4によりφ進展開された倍数kに点Gのデータを乗じ
て倍数演算kGを実行し、得られた結果kGを出力す
る。このように、代入の繰返しによりφ進展開を実行す
ることにより、従来のpを法とした剰余算を用いた処理
に比べて短時間で完了する。
る高速化を実現させる。 【解決手段】 倍数判定部3が、倍数kのビット数nk
が所定の範囲にあるか否かを判定し、φ進展開部4が、
倍数判定部3による判定結果が所定範囲にある旨を示す
とき、倍数kをnビット単位の形式に表現すると共に、
倍数kの2nに±c+tφ+φ2を代入し、代入結果を
展開してφ以外の項及びφの一次の項の係数を夫々nビ
ット単位で表現し、これら代入と展開との処理を複数回
繰返してφ進展開を実行し、倍数演算部5が、φ進展開
部4によりφ進展開された倍数kに点Gのデータを乗じ
て倍数演算kGを実行し、得られた結果kGを出力す
る。このように、代入の繰返しによりφ進展開を実行す
ることにより、従来のpを法とした剰余算を用いた処理
に比べて短時間で完了する。
Description
【0001】
【発明の属する技術分野】本発明は、例えば暗号化・復
号装置や素因数分解演算装置等の演算処理に適用され、
楕円曲線上の点Gの倍数演算kGを実行可能な楕円曲線
演算装置及び記憶媒体に係り、特に、倍数演算kGの更
なる高速化を実現し得る楕円曲線演算装置及び記憶媒体
に関する。
号装置や素因数分解演算装置等の演算処理に適用され、
楕円曲線上の点Gの倍数演算kGを実行可能な楕円曲線
演算装置及び記憶媒体に係り、特に、倍数演算kGの更
なる高速化を実現し得る楕円曲線演算装置及び記憶媒体
に関する。
【0002】
【従来の技術】例えば情報セキュリティ技術を支える暗
号技術の分野では、近年の高性能の計算機による攻撃に
対抗するため、ビット当りのセキュリティ強度が高い楕
円曲線暗号が注目されている。
号技術の分野では、近年の高性能の計算機による攻撃に
対抗するため、ビット当りのセキュリティ強度が高い楕
円曲線暗号が注目されている。
【0003】係る楕円曲線暗号は、ベースとしている問
題(楕円曲線上の離散対数問題)が従来方式のベースで
ある離散対数問題や素因数分解問題よりも解読困難と予
想される利点を持っている。
題(楕円曲線上の離散対数問題)が従来方式のベースで
ある離散対数問題や素因数分解問題よりも解読困難と予
想される利点を持っている。
【0004】具体的には、楕円曲線暗号は、有限体Fp
(又はFpn)上で定義された三次曲線E(:y2=x3
+ax+b)上の点の間で四則演算の組合せにより定義
される群演算(点の加算)を利用し、その点の加算の繰
返しによって暗号化と復号の各処理が実行されるもので
ある。
(又はFpn)上で定義された三次曲線E(:y2=x3
+ax+b)上の点の間で四則演算の組合せにより定義
される群演算(点の加算)を利用し、その点の加算の繰
返しによって暗号化と復号の各処理が実行されるもので
ある。
【0005】ここで、有限体Fpは、p個の元を有して
おり、整数Zを素数pで割った余りの系Z/pZ(pを
法とする既約剰余類)で示される。また、有限体Fpn
は、p n個の元を有しており、以下、拡大体Fpnとい
う。
おり、整数Zを素数pで割った余りの系Z/pZ(pを
法とする既約剰余類)で示される。また、有限体Fpn
は、p n個の元を有しており、以下、拡大体Fpnとい
う。
【0006】さて、以上のような楕円曲線暗号では、前
述した四則演算における演算時間のうち、点Gの倍数演
算kGの演算時間が高い割合を占めている。このため、
楕円曲線暗号では、以下の[1]〜[3]に述べる様々
な方式により、倍数演算kGの高速化が図られている。
述した四則演算における演算時間のうち、点Gの倍数演
算kGの演算時間が高い割合を占めている。このため、
楕円曲線暗号では、以下の[1]〜[3]に述べる様々
な方式により、倍数演算kGの高速化が図られている。
【0007】[1]φ進展開法による方式 楕円曲線E:y2=x3+ax+bが有限体Fp上で定
義されている(係数a,b∈Fp)とする。
義されている(係数a,b∈Fp)とする。
【0008】ここで、楕円曲線E上の点G=(x,y)
に対し、φ(G)=(xp,yp)を与える写像φをフ
ロベニウス写像(Frobenius map)という(但し、x,y
∈Fpn)。
に対し、φ(G)=(xp,yp)を与える写像φをフ
ロベニウス写像(Frobenius map)という(但し、x,y
∈Fpn)。
【0009】このフロベニウス写像φは、有限体Fpの
元が正規基底で表現される場合、要素の置換え(巡回シ
フト等)で実行可能であり、φの演算時間をほぼ0にで
きる利点を有している。また、フロベニウス写像φは、
線形であり、次の(1)式に示す固有多項式を満たすこ
とが知られている。
元が正規基底で表現される場合、要素の置換え(巡回シ
フト等)で実行可能であり、φの演算時間をほぼ0にで
きる利点を有している。また、フロベニウス写像φは、
線形であり、次の(1)式に示す固有多項式を満たすこ
とが知られている。
【0010】φ2−tφ+p=0 …(1) 但し、t:トレース また、この固有多項式に関し、倍数演算に用いる倍数k
を次の(2)式のようにφ進展開可能なφ進展開法が知
られている(J. A. Solinas "An Improved Algorithm f
or Arithmetic on a Family of Elliptic Curves" CRYP
TO '97, pp.357-371 (1997))。
を次の(2)式のようにφ進展開可能なφ進展開法が知
られている(J. A. Solinas "An Improved Algorithm f
or Arithmetic on a Family of Elliptic Curves" CRYP
TO '97, pp.357-371 (1997))。
【0011】k=Σαiφi …(2) 但し、−p/2<αi<p/2。また、係数αiはpを法
とした剰余算で得る。
とした剰余算で得る。
【0012】係るφ進展開法は、フロベニウス写像φ演
算と、加算演算とからなり、写像φ演算の演算時間がほ
ぼ0であることから、実質的な演算時間がi回の加算演
算に要する時間となっている。従って、このφ進展開法
によれば、楕円曲線上の点Gの倍数演算kGが、次の
(3)式に示す形式で高速に実現可能となる。
算と、加算演算とからなり、写像φ演算の演算時間がほ
ぼ0であることから、実質的な演算時間がi回の加算演
算に要する時間となっている。従って、このφ進展開法
によれば、楕円曲線上の点Gの倍数演算kGが、次の
(3)式に示す形式で高速に実現可能となる。
【0013】kG=ΣαiφiG …(3) [2]モンゴメリ型楕円曲線への変換による方式 この方式は、楕円曲線暗号が実際にはx座標のみが必要
であるということと、x座標のみの演算が可能なモンゴ
メリ型楕円曲線の性質とを組合せたものである。
であるということと、x座標のみの演算が可能なモンゴ
メリ型楕円曲線の性質とを組合せたものである。
【0014】具体的には、次の(4)式で定義される楕
円曲線をモンゴメリ型楕円曲線(elliptic curve of Mon
tgomery type)といい、一般の楕円曲線の約4割がこの
モンゴメリ型楕円曲線に変換可能となっている。
円曲線をモンゴメリ型楕円曲線(elliptic curve of Mon
tgomery type)といい、一般の楕円曲線の約4割がこの
モンゴメリ型楕円曲線に変換可能となっている。
【0015】By2=x3+Ax2+x …(4) 係るモンゴメリ型楕円曲線は、曲線上の点P,Qにつ
き、点Pのx座標のみから点Pを2倍した点2Pのx座
標を算出可能な性質と、点P,Qのx座標のみから点
(P+Q)のx座標を算出可能な性質とをもっている。
き、点Pのx座標のみから点Pを2倍した点2Pのx座
標を算出可能な性質と、点P,Qのx座標のみから点
(P+Q)のx座標を算出可能な性質とをもっている。
【0016】このため、モンゴメリ型楕円曲線では、倍
数演算kGのx座標を算出する際に、y座標を算出しな
い分、通常の楕円曲線よりも高速に倍数演算kGを実行
可能となっている(Montgomery, P. L., "Speeding the
Pollar and Elliptic Curve Methods for Factorizat
ions", Math. of Comp. 48 (1997), pp.243-264)。
数演算kGのx座標を算出する際に、y座標を算出しな
い分、通常の楕円曲線よりも高速に倍数演算kGを実行
可能となっている(Montgomery, P. L., "Speeding the
Pollar and Elliptic Curve Methods for Factorizat
ions", Math. of Comp. 48 (1997), pp.243-264)。
【0017】なお、kGの計算は、常にnGと(n+
1)Gの2点を記憶しながら実行される(Angrew,G.B.,
Mullin,R.C., Vanstone,S.A., "An Implementation of
Elliptic Curve Cryptosystems Over F2 155", IEEE J.
of selected areas in communications, 11(1993),pp8
04-813.)。
1)Gの2点を記憶しながら実行される(Angrew,G.B.,
Mullin,R.C., Vanstone,S.A., "An Implementation of
Elliptic Curve Cryptosystems Over F2 155", IEEE J.
of selected areas in communications, 11(1993),pp8
04-813.)。
【0018】以上をまとめると、一般の楕円曲線の約4
割は、モンゴメリ型楕円曲線に変換することにより、通
常の計算に比べて33%の高速演算が可能となる(伊豆
哲也,“y座標を用いない楕円曲線暗号について”,電
子情報通信学会 技術研究報告,IT98-83,ISEC98-86,SS
T98-129(1999-03), pp.93-98)。
割は、モンゴメリ型楕円曲線に変換することにより、通
常の計算に比べて33%の高速演算が可能となる(伊豆
哲也,“y座標を用いない楕円曲線暗号について”,電
子情報通信学会 技術研究報告,IT98-83,ISEC98-86,SS
T98-129(1999-03), pp.93-98)。
【0019】[3]NAF(Non-Adjacent Form)を用い
たWindow法による方式 楕円曲線E:y2=x3+ax+bが拡大体Fpn上で定
義されている(係数a,b∈Fpn)とする。
たWindow法による方式 楕円曲線E:y2=x3+ax+bが拡大体Fpn上で定
義されている(係数a,b∈Fpn)とする。
【0020】ここで、倍数演算の倍数演算に用いる倍数
kを次の(5)式のように2進展開可能なNAF展開方
式を用いたWindow法が知られている(F. Morain
andJ. Olivos, "Speeding up the computations on an
elliptic curve using additions-subtraction chain
s", Inform. Theory. Appl. 24 (1990), pp.531-54
3)。
kを次の(5)式のように2進展開可能なNAF展開方
式を用いたWindow法が知られている(F. Morain
andJ. Olivos, "Speeding up the computations on an
elliptic curve using additions-subtraction chain
s", Inform. Theory. Appl. 24 (1990), pp.531-54
3)。
【0021】
【数1】
【0022】係るNAF展開方式は、演算時間がほぼ0
となるβi=0の確率が2/3であることにより、演算
時間を短縮可能としている。従って、このNAF展開方
式によれば、次の(6)式に示すように、楕円曲線上の
点Gの倍数演算kGが高速に実現可能となる。
となるβi=0の確率が2/3であることにより、演算
時間を短縮可能としている。従って、このNAF展開方
式によれば、次の(6)式に示すように、楕円曲線上の
点Gの倍数演算kGが高速に実現可能となる。
【0023】
【数2】
【0024】なお、2iGは予め計算された値がメモリ
から読出されて使用される。
から読出されて使用される。
【0025】
【発明が解決しようとする課題】しかしながら、以上の
ような[1]〜[3]の楕円曲線演算方式においても、
より優れた技術を求める観点から、更なる高速化が望ま
れている。
ような[1]〜[3]の楕円曲線演算方式においても、
より優れた技術を求める観点から、更なる高速化が望ま
れている。
【0026】本発明は上記実情を考慮してなされたもの
で、楕円曲線上の点Gに対する倍数演算kGの更なる高
速化を実現し得る楕円曲線演算装置及び記憶媒体を提供
することを目的とする。
で、楕円曲線上の点Gに対する倍数演算kGの更なる高
速化を実現し得る楕円曲線演算装置及び記憶媒体を提供
することを目的とする。
【0027】
【課題を解決するための手段】請求項1に対応する発明
は、p個の要素からなる有限体Fp上で定義された楕円
曲線上における点G(x,y)の倍数演算kGを実行可
能な楕円曲線演算装置であって、前記倍数k,前記点G
及び素数p(=2n±c;nはビット数、log2(c)
≦n/2)が入力されたとき、倍数kのビット数nkが
所定の範囲(n<nk<2n)にあるか否かを判定する
倍数判定手段と、前記倍数判定手段による判定結果が前
記所定範囲にある旨を示すとき、前記倍数kをnビット
単位の形式(2nC+Dの形式;C,Dはnビットの
数)に表現すると共に、前記倍数kの2nに±c+tφ
+φ2(φはフロベニウス写像、tはトレース)を代入
し、前記代入結果を展開してφ以外の項及びφの一次の
項の係数を夫々nビット単位で表現し、前記代入と展開
との処理を複数回繰返してφ進展開を実行するφ進展開
手段と、前記φ進展開手段によりφ進展開された倍数k
に前記点G(x,y)のデータを乗じて倍数演算kGを
実行し、得られた結果kGを出力する倍数演算手段とを
備えた楕円曲線演算装置である。
は、p個の要素からなる有限体Fp上で定義された楕円
曲線上における点G(x,y)の倍数演算kGを実行可
能な楕円曲線演算装置であって、前記倍数k,前記点G
及び素数p(=2n±c;nはビット数、log2(c)
≦n/2)が入力されたとき、倍数kのビット数nkが
所定の範囲(n<nk<2n)にあるか否かを判定する
倍数判定手段と、前記倍数判定手段による判定結果が前
記所定範囲にある旨を示すとき、前記倍数kをnビット
単位の形式(2nC+Dの形式;C,Dはnビットの
数)に表現すると共に、前記倍数kの2nに±c+tφ
+φ2(φはフロベニウス写像、tはトレース)を代入
し、前記代入結果を展開してφ以外の項及びφの一次の
項の係数を夫々nビット単位で表現し、前記代入と展開
との処理を複数回繰返してφ進展開を実行するφ進展開
手段と、前記φ進展開手段によりφ進展開された倍数k
に前記点G(x,y)のデータを乗じて倍数演算kGを
実行し、得られた結果kGを出力する倍数演算手段とを
備えた楕円曲線演算装置である。
【0028】また、請求項2に対応する発明は、pn個
の要素からなる拡大体Fpn上で定義された第1型の楕円
曲線上における点G(x,y)の倍数演算kGを実行可
能な楕円曲線演算装置であって、前記倍数k,前記点G
及び素数p(=2n±c;nはビット数、log2(c)
≦n/2)が入力されたとき、倍数kのビット数nkが
所定の範囲(n<nk<2n)にあるか否かを判定する
倍数判定手段と、前記倍数判定手段による判定結果が前
記所定範囲にある旨を示すとき、前記倍数kをnビット
単位の形式(2nC+Dの形式;C,Dはnビットの
数)に表現すると共に、前記倍数kの2nに±c+tφ
+φ2(φはフロベニウス写像、tはトレース)を代入
し、前記代入結果を展開してφ以外の項及びφの一次の
項の係数を夫々nビット単位で表現し、前記代入と展開
との処理を複数回繰返してφ進展開を実行するφ進展開
手段と、前記第1型の楕円曲線を第2型の楕円曲線(B
y2=x3+Ax2+x;A,Bは任意の数)に変換可
能か否かを判定する判定手段と、前記判定手段による判
定結果が変換可能を示すとき、前記点G(x,y)のデ
ータを前記第2型の楕円曲線上の点Gmに変換する変換
手段と、前記変換手段により点Gmが得られたとき、前
記φ進展開手段によりφ進展開された倍数kを2*k0
とその残りk1との各成分で表現し(k=2*k1+
k0)、各成分k0,k1毎に前記点Gmを倍数演算して点
P(=k0Gm+k1Gm),Q(=k1Gm)を求め、各点
P,Qのx座標から点kGm(=P+Q)を算出する第
2型の倍数演算手段と、前記第2型の倍数演算手段によ
り得られた点kGmのデータを前記第1型の楕円曲線上
の点kGのデータに逆変換し、得られた結果kGを出力
する逆変換手段とを備えた楕円曲線演算装置である。
の要素からなる拡大体Fpn上で定義された第1型の楕円
曲線上における点G(x,y)の倍数演算kGを実行可
能な楕円曲線演算装置であって、前記倍数k,前記点G
及び素数p(=2n±c;nはビット数、log2(c)
≦n/2)が入力されたとき、倍数kのビット数nkが
所定の範囲(n<nk<2n)にあるか否かを判定する
倍数判定手段と、前記倍数判定手段による判定結果が前
記所定範囲にある旨を示すとき、前記倍数kをnビット
単位の形式(2nC+Dの形式;C,Dはnビットの
数)に表現すると共に、前記倍数kの2nに±c+tφ
+φ2(φはフロベニウス写像、tはトレース)を代入
し、前記代入結果を展開してφ以外の項及びφの一次の
項の係数を夫々nビット単位で表現し、前記代入と展開
との処理を複数回繰返してφ進展開を実行するφ進展開
手段と、前記第1型の楕円曲線を第2型の楕円曲線(B
y2=x3+Ax2+x;A,Bは任意の数)に変換可
能か否かを判定する判定手段と、前記判定手段による判
定結果が変換可能を示すとき、前記点G(x,y)のデ
ータを前記第2型の楕円曲線上の点Gmに変換する変換
手段と、前記変換手段により点Gmが得られたとき、前
記φ進展開手段によりφ進展開された倍数kを2*k0
とその残りk1との各成分で表現し(k=2*k1+
k0)、各成分k0,k1毎に前記点Gmを倍数演算して点
P(=k0Gm+k1Gm),Q(=k1Gm)を求め、各点
P,Qのx座標から点kGm(=P+Q)を算出する第
2型の倍数演算手段と、前記第2型の倍数演算手段によ
り得られた点kGmのデータを前記第1型の楕円曲線上
の点kGのデータに逆変換し、得られた結果kGを出力
する逆変換手段とを備えた楕円曲線演算装置である。
【0029】さらに、請求項3に対応する発明は、p個
の要素からなる有限体Fp上で定義された楕円曲線上に
おける点G(x,y)の倍数演算kGを実行可能な楕円
曲線演算装置であって、前記倍数k,前記点G及び素数
p(=2n±c;nはビット数、log2(c)≦n/
2)が入力されたとき、j=1〜n-1の点Gの2j倍(=2 1
G,22G,23G,…,2n-1G)を事前計算する第1
の事前計算手段と、前記倍数k,前記点G及び前記素数
pが入力されたとき、前記点Gをnビット単位の形式
(2nC+Dの形式;C,Dはnビットの数)に表現
し、前記点Gの2nに±c+tφ+φ2(φはフロベニ
ウス写像、tはトレース)を代入することにより、前記
点Gの2n倍(=2nG)を事前計算する第2の事前計算
手段と、前記倍数kを21G〜2nGの項を含んでNAF
展開するNAF展開手段と、前記NAF展開手段により
NAF展開された倍数kに、前記第1及び第2の事前計
算手段による事前計算結果(2G,22G,23G,…,
2n-1G,2nG)を乗じて倍数演算kGを実行し、得ら
れた結果kGを出力する倍数演算手段とを備えた楕円曲
線演算装置である。
の要素からなる有限体Fp上で定義された楕円曲線上に
おける点G(x,y)の倍数演算kGを実行可能な楕円
曲線演算装置であって、前記倍数k,前記点G及び素数
p(=2n±c;nはビット数、log2(c)≦n/
2)が入力されたとき、j=1〜n-1の点Gの2j倍(=2 1
G,22G,23G,…,2n-1G)を事前計算する第1
の事前計算手段と、前記倍数k,前記点G及び前記素数
pが入力されたとき、前記点Gをnビット単位の形式
(2nC+Dの形式;C,Dはnビットの数)に表現
し、前記点Gの2nに±c+tφ+φ2(φはフロベニ
ウス写像、tはトレース)を代入することにより、前記
点Gの2n倍(=2nG)を事前計算する第2の事前計算
手段と、前記倍数kを21G〜2nGの項を含んでNAF
展開するNAF展開手段と、前記NAF展開手段により
NAF展開された倍数kに、前記第1及び第2の事前計
算手段による事前計算結果(2G,22G,23G,…,
2n-1G,2nG)を乗じて倍数演算kGを実行し、得ら
れた結果kGを出力する倍数演算手段とを備えた楕円曲
線演算装置である。
【0030】また、請求項4に対応する発明は、請求項
3に対応する楕円曲線演算装置において、前記倍数k,
前記点G及び素数pが入力されたとき、前記点Gをnビ
ット単位の形式に表現し、前記点Gの2nrに−Cx+
tφ+φ2(Cxは(2n±c)rを展開して得られた
多項式データのうち、2nrの項を除いた各項のデータ)
を代入することにより、前記点Gの2nr倍(=2nrG)
を事前計算する第3の事前計算手段を備え、前記楕円曲
線が前記有限体Fpを含む拡大体Fpn上で定義されたと
き、前記NAF展開手段としては、2nrGの項をも含ん
で前記NAF展開を実行し、前記倍数演算手段として
は、前記倍数演算kGを前記第3の事前計算手段により
得られた2nrGをも用いて実行する楕円曲線演算装置で
ある。
3に対応する楕円曲線演算装置において、前記倍数k,
前記点G及び素数pが入力されたとき、前記点Gをnビ
ット単位の形式に表現し、前記点Gの2nrに−Cx+
tφ+φ2(Cxは(2n±c)rを展開して得られた
多項式データのうち、2nrの項を除いた各項のデータ)
を代入することにより、前記点Gの2nr倍(=2nrG)
を事前計算する第3の事前計算手段を備え、前記楕円曲
線が前記有限体Fpを含む拡大体Fpn上で定義されたと
き、前記NAF展開手段としては、2nrGの項をも含ん
で前記NAF展開を実行し、前記倍数演算手段として
は、前記倍数演算kGを前記第3の事前計算手段により
得られた2nrGをも用いて実行する楕円曲線演算装置で
ある。
【0031】さらに、請求項5〜請求項8のいずれかに
対応する発明は、夫々請求項1〜請求項4に対応する楕
円曲線演算装置に用いられるコンピュータ読取り可能な
記憶媒体であって、前記楕円曲線演算装置のコンピュー
タを、前記各手段として機能させるためのプログラムが
記憶されたコンピュータ読取り可能な記憶媒体である。
対応する発明は、夫々請求項1〜請求項4に対応する楕
円曲線演算装置に用いられるコンピュータ読取り可能な
記憶媒体であって、前記楕円曲線演算装置のコンピュー
タを、前記各手段として機能させるためのプログラムが
記憶されたコンピュータ読取り可能な記憶媒体である。
【0032】(作用)従って、請求項1,5に対応する
発明は以上のような手段を講じたことにより、倍数判定
手段が、倍数kのビット数nkが所定の範囲にあるか否
かを判定し、φ進展開手段が、倍数判定手段による判定
結果が所定範囲にある旨を示すとき、倍数kをnビット
単位の形式に表現すると共に、倍数kの2nに±c+t
φ+φ 2を代入し、代入結果を展開してφ以外の項及び
φの一次の項の係数を夫々nビット単位で表現し、これ
ら代入と展開との処理を複数回繰返してφ進展開を実行
し、倍数演算手段が、φ進展開手段によりφ進展開され
た倍数kに点Gのデータを乗じて倍数演算kGを実行
し、得られた結果kGを出力する。
発明は以上のような手段を講じたことにより、倍数判定
手段が、倍数kのビット数nkが所定の範囲にあるか否
かを判定し、φ進展開手段が、倍数判定手段による判定
結果が所定範囲にある旨を示すとき、倍数kをnビット
単位の形式に表現すると共に、倍数kの2nに±c+t
φ+φ 2を代入し、代入結果を展開してφ以外の項及び
φの一次の項の係数を夫々nビット単位で表現し、これ
ら代入と展開との処理を複数回繰返してφ進展開を実行
し、倍数演算手段が、φ進展開手段によりφ進展開され
た倍数kに点Gのデータを乗じて倍数演算kGを実行
し、得られた結果kGを出力する。
【0033】このように、代入の繰返しによりφ進展開
を実行することにより、従来のpを法とした剰余算を用
いた処理に比べて短時間で完了するため、楕円曲線上の
点Gに対する倍数演算kGの更なる高速化を実現させる
ことができる。
を実行することにより、従来のpを法とした剰余算を用
いた処理に比べて短時間で完了するため、楕円曲線上の
点Gに対する倍数演算kGの更なる高速化を実現させる
ことができる。
【0034】また、請求項2,6に対応する発明は、請
求項1,5と同様にφ進展開手段により倍数kがφ進展
開される一方、判定手段が、第1型の楕円曲線を第2型
の楕円曲線に変換可能か否かを判定し、変換手段が判定
手段による判定結果が変換可能を示すとき、点Gのデー
タを第2型の楕円曲線上の点Gmに変換し、第2型の倍
数演算が、変換手段により点Gmが得られたとき、φ進
展開手段によりφ進展開された倍数kを2*k0とその
残りk1との各成分で表現し、各成分k0,k1毎に点Gm
を倍数演算して点P,Qを求め、各点P,Qのx座標か
ら点kGmを算出し、逆変換手段が、第2型の倍数演算
手段により得られた点kGmのデータを第1型の楕円曲
線上の点kGのデータに逆変換し、得られた結果kGを
出力する。
求項1,5と同様にφ進展開手段により倍数kがφ進展
開される一方、判定手段が、第1型の楕円曲線を第2型
の楕円曲線に変換可能か否かを判定し、変換手段が判定
手段による判定結果が変換可能を示すとき、点Gのデー
タを第2型の楕円曲線上の点Gmに変換し、第2型の倍
数演算が、変換手段により点Gmが得られたとき、φ進
展開手段によりφ進展開された倍数kを2*k0とその
残りk1との各成分で表現し、各成分k0,k1毎に点Gm
を倍数演算して点P,Qを求め、各点P,Qのx座標か
ら点kGmを算出し、逆変換手段が、第2型の倍数演算
手段により得られた点kGmのデータを第1型の楕円曲
線上の点kGのデータに逆変換し、得られた結果kGを
出力する。
【0035】このように、x座標のみで高速に倍数演算
が可能な第2型の楕円曲線系に対し、請求項1,5と同
様の高速なφ進展開を適用するので、第1型の楕円曲線
を第2型の楕円曲線に変換できる場合、楕円曲線上の点
Gに対する倍数演算kGをより一層高速に実現させるこ
とができる。
が可能な第2型の楕円曲線系に対し、請求項1,5と同
様の高速なφ進展開を適用するので、第1型の楕円曲線
を第2型の楕円曲線に変換できる場合、楕円曲線上の点
Gに対する倍数演算kGをより一層高速に実現させるこ
とができる。
【0036】さらに、請求項3,6に対応する発明は、
有限体Fp上の楕円曲線演算を対象とし、第1の事前計
算手段が、倍数k,点G及び素数pが入力されたとき、
j=1〜n-1の点Gの2j倍を事前計算し、第2の事前計算
手段が、倍数k,点G及び素数pが入力されたとき、点
Gをnビット単位の形式に表現し、点Gの2nに±c+
tφ+φ2を代入することにより、点Gの2n倍を事前
計算し、NAF展開手段が、倍数kを21G〜2nGの項
を含んでNAF展開し、倍数演算手段が、NAF展開手
段によりNAF展開された倍数kに、第1及び第2の事
前計算手段による事前計算結果を乗じて倍数演算kGを
実行し、得られた結果kGを出力する。
有限体Fp上の楕円曲線演算を対象とし、第1の事前計
算手段が、倍数k,点G及び素数pが入力されたとき、
j=1〜n-1の点Gの2j倍を事前計算し、第2の事前計算
手段が、倍数k,点G及び素数pが入力されたとき、点
Gをnビット単位の形式に表現し、点Gの2nに±c+
tφ+φ2を代入することにより、点Gの2n倍を事前
計算し、NAF展開手段が、倍数kを21G〜2nGの項
を含んでNAF展開し、倍数演算手段が、NAF展開手
段によりNAF展開された倍数kに、第1及び第2の事
前計算手段による事前計算結果を乗じて倍数演算kGを
実行し、得られた結果kGを出力する。
【0037】このように、NAF展開の事前計算に対
し、請求項1,5と同様の高速なφ進展開を適用するの
で、楕円曲線上の点Gに対する倍数演算kGの更なる高
速化を実現させることができる。
し、請求項1,5と同様の高速なφ進展開を適用するの
で、楕円曲線上の点Gに対する倍数演算kGの更なる高
速化を実現させることができる。
【0038】また、請求項4,8に対応する発明は、倍
数k,点G及び素数pが入力されたとき、点Gをnビッ
ト単位の形式に表現し、点Gの2nrに−Cx+tφ+
φ2(Cxは(2n±c)rを展開して得られた多項式
データのうち、2nrの項を除いた各項のデータ)を代入
することにより、点Gの2nr倍(=2nrG)を事前計算
する第3の事前計算手段を付加し、楕円曲線が前記有限
体Fpを含む拡大体Fp n上で定義されたとき、NAF展
開手段が2nrGの項をも含んでNAF展開を実行し、倍
数演算手段が倍数演算kGを前記第3の事前計算手段に
より得られた2 nrGをも用いて実行する。
数k,点G及び素数pが入力されたとき、点Gをnビッ
ト単位の形式に表現し、点Gの2nrに−Cx+tφ+
φ2(Cxは(2n±c)rを展開して得られた多項式
データのうち、2nrの項を除いた各項のデータ)を代入
することにより、点Gの2nr倍(=2nrG)を事前計算
する第3の事前計算手段を付加し、楕円曲線が前記有限
体Fpを含む拡大体Fp n上で定義されたとき、NAF展
開手段が2nrGの項をも含んでNAF展開を実行し、倍
数演算手段が倍数演算kGを前記第3の事前計算手段に
より得られた2 nrGをも用いて実行する。
【0039】従って、NAF展開の事前計算中、点Gの
2nr倍を高速に算出できるので、拡大体Fpn上で定義さ
れた楕円曲線Eにおいても、請求項3,7に対応する作
用と同様の作用を奏することができる。
2nr倍を高速に算出できるので、拡大体Fpn上で定義さ
れた楕円曲線Eにおいても、請求項3,7に対応する作
用と同様の作用を奏することができる。
【0040】
【発明の実施の形態】以下、本発明の各実施形態につい
て図面を参照して説明する。なお、以下の各実施形態
は、全てフロベニウス写像φによるφ進展開の高速化に
関するものであり、有限体Fp及び拡大体Fpnの各要素
は正規基底で表現されることが演算の前提となってい
る。
て図面を参照して説明する。なお、以下の各実施形態
は、全てフロベニウス写像φによるφ進展開の高速化に
関するものであり、有限体Fp及び拡大体Fpnの各要素
は正規基底で表現されることが演算の前提となってい
る。
【0041】また、前述した拡大体Fpnは、次の(i)
〜(iii)の条件を満たし、一般に最適拡大体OEF(o
ptimal Extension Field)と呼ばれるものが対象となっ
ている。
〜(iii)の条件を満たし、一般に最適拡大体OEF(o
ptimal Extension Field)と呼ばれるものが対象となっ
ている。
【0042】(i)素数pの演算単位は、CPUのワー
ド長(バス幅)のnビット以下である。なお、ワード長
は、例えば32ビット等が使用可能となっている。
ド長(バス幅)のnビット以下である。なお、ワード長
は、例えば32ビット等が使用可能となっている。
【0043】(ii)p=2n±c;但し、log
2(c)≦n/2。すなわち、素数pの全体サイズは、
nビットの値に対し、n/2ビット以下の小さいサイズ
の値cが付加された値を示すサイズであり、具体的には
3n/2ビット以下である。
2(c)≦n/2。すなわち、素数pの全体サイズは、
nビットの値に対し、n/2ビット以下の小さいサイズ
の値cが付加された値を示すサイズであり、具体的には
3n/2ビット以下である。
【0044】(iii)拡大体Fpnは、有限体Fp上で、既
約二項多項式xm−wの解が付加されて得られる(既約
二項多項式xm−wの解は、Fpnの生成元である)。
約二項多項式xm−wの解が付加されて得られる(既約
二項多項式xm−wの解は、Fpnの生成元である)。
【0045】すなわち、以下の全ての実施形態はこれら
(i)〜(iii)の条件を満たすことが前提となってい
る。また、この前提は有限体Fpの場合も同様である。
(i)〜(iii)の条件を満たすことが前提となってい
る。また、この前提は有限体Fpの場合も同様である。
【0046】(第1の実施形態)図1は本発明の第1の
実施形態に係る楕円曲線演算装置の構成を示す機能ブロ
ック図であり、各機能ブロックは、ハードウェア回路、
あるいは記憶媒体に記憶されたプログラムをインストー
ルしてなるソフトウェア構成のいずれでも実現可能とな
っている。なお、以下の各実施形態も同様に、ハードウ
ェア又はソフトウェアのいずれでも実現可能である。
実施形態に係る楕円曲線演算装置の構成を示す機能ブロ
ック図であり、各機能ブロックは、ハードウェア回路、
あるいは記憶媒体に記憶されたプログラムをインストー
ルしてなるソフトウェア構成のいずれでも実現可能とな
っている。なお、以下の各実施形態も同様に、ハードウ
ェア又はソフトウェアのいずれでも実現可能である。
【0047】この楕円曲線演算装置は、従来の[1]φ
進展開法を改良してφ進展開の高速化を図るものであ
り、具体的には、メモリ1、入力部2、倍数判定部3、
φ進展開部4及び倍数演算部5を備えている。
進展開法を改良してφ進展開の高速化を図るものであ
り、具体的には、メモリ1、入力部2、倍数判定部3、
φ進展開部4及び倍数演算部5を備えている。
【0048】ここで、メモリ1は、楕円曲線演算のため
のデータが各要素2〜5から読出/書込可能に格納され
たものであり、データとしては、例えば楕円曲線E(:
y2=x3+ax+b)の係数a,b、トレースtなど
の設定データと、点G(x,y),素数p(=2n±
c)及び倍数kなどの入力データ等がある。
のデータが各要素2〜5から読出/書込可能に格納され
たものであり、データとしては、例えば楕円曲線E(:
y2=x3+ax+b)の係数a,b、トレースtなど
の設定データと、点G(x,y),素数p(=2n±
c)及び倍数kなどの入力データ等がある。
【0049】入力部2は、点G(x,y),素数p及び
倍数kがデータ入力されたとき、倍数kを倍数判定部3
に送出すると共に、点G(x,y),素数p及び倍数k
をメモリ1に格納する機能をもっている。
倍数kがデータ入力されたとき、倍数kを倍数判定部3
に送出すると共に、点G(x,y),素数p及び倍数k
をメモリ1に格納する機能をもっている。
【0050】倍数判定部3は、入力部2から倍数kを受
けたとき、倍数kのビット数nkが所定の範囲(n<nk
<2n)にあるとき、従来のφ進判定部(図示せず)に
代えて、φ進展開部4を起動する機能をもっている。
けたとき、倍数kのビット数nkが所定の範囲(n<nk
<2n)にあるとき、従来のφ進判定部(図示せず)に
代えて、φ進展開部4を起動する機能をもっている。
【0051】φ進展開部4は、倍数判定部3に起動され
ると、メモリ1内の倍数kを2nC+Dの形式(nビッ
ト単位の形式;C,Dはnビットの数)に表現すると共
に、メモリ1内のc,tを用いて2nに(±c+tφ+
φ2)を代入する機能と、代入結果を展開してφ以外の
項及びφの一次の項の係数を夫々nビット単位で表現す
る機能と、φ進展開が完了するまでこれら代入と展開と
の処理を繰返す機能と、倍数kのφ進展開が完了する
と、倍数演算部4を起動する機能とをもっている。
ると、メモリ1内の倍数kを2nC+Dの形式(nビッ
ト単位の形式;C,Dはnビットの数)に表現すると共
に、メモリ1内のc,tを用いて2nに(±c+tφ+
φ2)を代入する機能と、代入結果を展開してφ以外の
項及びφの一次の項の係数を夫々nビット単位で表現す
る機能と、φ進展開が完了するまでこれら代入と展開と
の処理を繰返す機能と、倍数kのφ進展開が完了する
と、倍数演算部4を起動する機能とをもっている。
【0052】なお、代入機能における2n=±c+tφ
−φ2の関係は、従来のフロベニウス写像φの固有多項
式の変形式p=tφ−φ2の左辺に対し、本実施形態の
前提条件(ii)のp=2n±cを代入し、±cを右辺に
移行して得たものである。
−φ2の関係は、従来のフロベニウス写像φの固有多項
式の変形式p=tφ−φ2の左辺に対し、本実施形態の
前提条件(ii)のp=2n±cを代入し、±cを右辺に
移行して得たものである。
【0053】倍数演算部5は、φ進展開部4に起動され
ると、φ進展開部4によりφ進展開された倍数kにメモ
リ1内の点G(x,y)のデータを乗じて倍数演算kG
を実行し、演算結果kGを出力する機能とをもってい
る。
ると、φ進展開部4によりφ進展開された倍数kにメモ
リ1内の点G(x,y)のデータを乗じて倍数演算kG
を実行し、演算結果kGを出力する機能とをもってい
る。
【0054】次に、以上のように構成された楕円曲線演
算装置の動作を図2のフローチャートを用いて説明す
る。いま、例えば暗号アルゴリズム(図示せず)の一部
で、楕円曲線上における点Gのk倍演算を実行する必要
が生じたとする。入力部2は、点G(x,y),素数p
及び倍数kがデータ入力されたとき、倍数kを倍数判定
部3に送出すると共に(ST1)、点G(x,y),素
数p及び倍数kをメモリ1に格納する。
算装置の動作を図2のフローチャートを用いて説明す
る。いま、例えば暗号アルゴリズム(図示せず)の一部
で、楕円曲線上における点Gのk倍演算を実行する必要
が生じたとする。入力部2は、点G(x,y),素数p
及び倍数kがデータ入力されたとき、倍数kを倍数判定
部3に送出すると共に(ST1)、点G(x,y),素
数p及び倍数kをメモリ1に格納する。
【0055】倍数判定部3は、倍数kを受けたとき、倍
数kのビット数nkがnビットより大きく2nビットよ
り小さい範囲(n<nk<2n)にあるか否かを判定
し、その範囲に無いときには従来のφ進展開部を起動す
るが(ST3)、ここではその範囲にあるので、本発明
のφ進展開部4を起動する。
数kのビット数nkがnビットより大きく2nビットよ
り小さい範囲(n<nk<2n)にあるか否かを判定
し、その範囲に無いときには従来のφ進展開部を起動す
るが(ST3)、ここではその範囲にあるので、本発明
のφ進展開部4を起動する。
【0056】φ進展開部4は、メモリ1内の倍数kを2
nC+Dの形式に表現すると共に(ST4)、メモリ1
内のc,tを用いて2nに(±c+tφ+φ2)を代入
し(ST5)、代入結果を展開して整理し(ST6)、
φ以外の項及びφの一次の項の係数を夫々nビット単位
で表現する(ST7)。
nC+Dの形式に表現すると共に(ST4)、メモリ1
内のc,tを用いて2nに(±c+tφ+φ2)を代入
し(ST5)、代入結果を展開して整理し(ST6)、
φ以外の項及びφの一次の項の係数を夫々nビット単位
で表現する(ST7)。
【0057】すなわち、ステップST4〜ST6は、 k=2nC+D =(±c+tφ−φ2)C+D =(±cC+D)+(tC)φ−Cφ2 として実行され、 ステップST7は、 (±cC+D)=2nC1+D1 (tD) =2nC2+D2 として実行される。
【0058】続いて、φ進展開部4は、例えばステップ
ST5〜ST7の実行回数に基づいて、φ進展開が完了
したか否かを判定し(ST8)、所定の実行回数(=φ
進展開の完了)までステップST5〜ST7の代入〜2
n表現の処理を繰返す。
ST5〜ST7の実行回数に基づいて、φ進展開が完了
したか否かを判定し(ST8)、所定の実行回数(=φ
進展開の完了)までステップST5〜ST7の代入〜2
n表現の処理を繰返す。
【0059】詳しくは、±cがn/2ビットの数であ
り、トレースtも(n/2+2)ビットの数であるか
ら、ステップST5〜ST7を3回程度、繰返すと、k
=Σαiφi(0≦αi<2n)の形になり、φ進展開が
完了する。
り、トレースtも(n/2+2)ビットの数であるか
ら、ステップST5〜ST7を3回程度、繰返すと、k
=Σαiφi(0≦αi<2n)の形になり、φ進展開が
完了する。
【0060】このφ進展開は、上述したように代入の繰
返しにより実行されるので、従来のpを法とした剰余算
を用いた処理に比べ、短時間で完了する。また、φ進展
開が完了したとき、フロベニウス写像φにおけるΣφi
=0の性質により、k=Σαiφiの右辺からΣ2n-1φ
iを減算してもよい。この減算により、係数αiを演算
回数の少ない範囲(−2n-1≦αi<2n-1)に設定でき
る。
返しにより実行されるので、従来のpを法とした剰余算
を用いた処理に比べ、短時間で完了する。また、φ進展
開が完了したとき、フロベニウス写像φにおけるΣφi
=0の性質により、k=Σαiφiの右辺からΣ2n-1φ
iを減算してもよい。この減算により、係数αiを演算
回数の少ない範囲(−2n-1≦αi<2n-1)に設定でき
る。
【0061】さて、φ進展開部4は、φ進展開が完了す
ると、倍数演算部5を起動する。倍数演算部5は、φ進
展開された倍数kにメモリ1内の点G(x,y)のデー
タを乗じて倍数演算kGを実行し(ST9)、演算結果
kGを出力する。
ると、倍数演算部5を起動する。倍数演算部5は、φ進
展開された倍数kにメモリ1内の点G(x,y)のデー
タを乗じて倍数演算kGを実行し(ST9)、演算結果
kGを出力する。
【0062】上述したように本実施形態によれば、φ進
展開部4が代入の繰返しによりφ進展開を実行すること
により、従来のpを法とした剰余算を用いた処理に比べ
て短時間で完了するため、楕円曲線上の点Gに対する倍
数演算kGの更なる高速化を実現させることができる。
展開部4が代入の繰返しによりφ進展開を実行すること
により、従来のpを法とした剰余算を用いた処理に比べ
て短時間で完了するため、楕円曲線上の点Gに対する倍
数演算kGの更なる高速化を実現させることができる。
【0063】(第2の実施形態)図3は本発明の第2の
実施形態に係る楕円曲線演算装置の構成を示す機能ブロ
ック図であり、前述した図面と同一部分には同一符号を
付してその詳しい説明を省略し、ここでは異なる部分に
ついて主に述べる。なお、以下の各実施形態も同様にし
て重複した説明を省略する。
実施形態に係る楕円曲線演算装置の構成を示す機能ブロ
ック図であり、前述した図面と同一部分には同一符号を
付してその詳しい説明を省略し、ここでは異なる部分に
ついて主に述べる。なお、以下の各実施形態も同様にし
て重複した説明を省略する。
【0064】すなわち、本実施形態は、従来の[2]モ
ンゴメリ型楕円曲線による方式と第1実施形態のφ進展
開法とを組合せて、より一層の高速化を図るものであ
り、具体的には、前述したφ進展開部4の後段に、判定
部6、変換部7、倍数演算部8及び逆変換部9を備えて
いる。
ンゴメリ型楕円曲線による方式と第1実施形態のφ進展
開法とを組合せて、より一層の高速化を図るものであ
り、具体的には、前述したφ進展開部4の後段に、判定
部6、変換部7、倍数演算部8及び逆変換部9を備えて
いる。
【0065】ここで、判定部6は、周知の判定条件と、
メモリ1内の楕円曲線E(:y2=x3+ax+b、以
下、標準型ともいう)を示す設定データ(定数a,b
等)とに基づいて、メモリ1内の楕円曲線Eをモンゴメ
リ型楕円曲線E(:By2=x 3+Ax2+x)に変換
可能な否かを判定し、変換不可能なときには第1実施形
態の倍数演算部5による処理を実行させ、変換可能なと
きには変換部6を起動する機能をもっている。
メモリ1内の楕円曲線E(:y2=x3+ax+b、以
下、標準型ともいう)を示す設定データ(定数a,b
等)とに基づいて、メモリ1内の楕円曲線Eをモンゴメ
リ型楕円曲線E(:By2=x 3+Ax2+x)に変換
可能な否かを判定し、変換不可能なときには第1実施形
態の倍数演算部5による処理を実行させ、変換可能なと
きには変換部6を起動する機能をもっている。
【0066】なお、周知の判定条件としては、最適拡大
体OEF上の標準型の楕円曲線Eが4|#E(Fpn)を満
足する旨の必要条件と、E(Fpn)上の4倍点や2倍点に
基づく十分条件とがあり、詳細は前述した文献等に記載
されている。また、判定のタイミングは、第1実施形態
の倍数演算部5による倍数演算kGよりも前であれば何
時でもよいが、ここでは、第1実施形態のφ進展開部4
によるφ進展開の後としている。
体OEF上の標準型の楕円曲線Eが4|#E(Fpn)を満
足する旨の必要条件と、E(Fpn)上の4倍点や2倍点に
基づく十分条件とがあり、詳細は前述した文献等に記載
されている。また、判定のタイミングは、第1実施形態
の倍数演算部5による倍数演算kGよりも前であれば何
時でもよいが、ここでは、第1実施形態のφ進展開部4
によるφ進展開の後としている。
【0067】変換部6は、判定部5により起動される
と、周知の変換公式により、メモリ1内の点Gをモンゴ
メリ型楕円曲線上の点Gmに座標変換する機能と、モン
ゴメリ型の倍数演算部8を起動する機能とをもってい
る。
と、周知の変換公式により、メモリ1内の点Gをモンゴ
メリ型楕円曲線上の点Gmに座標変換する機能と、モン
ゴメリ型の倍数演算部8を起動する機能とをもってい
る。
【0068】倍数演算部8は、変換部6に起動される
と、φ進展開部4によりφ進展開された倍数kを2*k
0とその残りk1との各成分で表現し(k=2*k1+
k0)、各成分k0,k1毎に点Gmを倍数演算して仮想的
な点P(=k0Gm+k1Gm),Q(=k1Gm)を求め、
各点P,Qのx座標から点kGm(=P+Q)を算出
し、算出結果kGmを逆変換部9に送出する機能をもっ
ている。なお、前述したが、モンゴメリ型楕円曲線は、
y座標を用いず、x座標のみから倍数演算が可能な性質
をもつ。
と、φ進展開部4によりφ進展開された倍数kを2*k
0とその残りk1との各成分で表現し(k=2*k1+
k0)、各成分k0,k1毎に点Gmを倍数演算して仮想的
な点P(=k0Gm+k1Gm),Q(=k1Gm)を求め、
各点P,Qのx座標から点kGm(=P+Q)を算出
し、算出結果kGmを逆変換部9に送出する機能をもっ
ている。なお、前述したが、モンゴメリ型楕円曲線は、
y座標を用いず、x座標のみから倍数演算が可能な性質
をもつ。
【0069】逆変換部9は、周知の変換公式により、倍
数演算部8から受けた点kGmを標準型の楕円曲線上の
点kGに座標変換して出力する機能をもっている。
数演算部8から受けた点kGmを標準型の楕円曲線上の
点kGに座標変換して出力する機能をもっている。
【0070】次に、以上のように構成された楕円曲線演
算装置の動作を図4のフローチャートを用いて説明す
る。前述同様に、φ進展開部4による倍数kのφ進展開
が完了し(ST11)、φ進展開結果がメモリ1に保持
されたとする。
算装置の動作を図4のフローチャートを用いて説明す
る。前述同様に、φ進展開部4による倍数kのφ進展開
が完了し(ST11)、φ進展開結果がメモリ1に保持
されたとする。
【0071】次に、判定部6は、周知の判定条件によ
り、メモリ1内の楕円曲線Eをモンゴメリ型楕円曲線E
に変換可能な否かを判定し(ST12)、変換不可能な
ときには第1実施形態の倍数演算部5に処理ST9を実
行させるが(ST13)、ここでは変換可能であるた
め、変換部7を起動する。変換部7は、メモリ1内の点
Gをモンゴメリ型楕円曲線上の点Gmに座標変換し(S
T14)、倍数演算部8を起動する。
り、メモリ1内の楕円曲線Eをモンゴメリ型楕円曲線E
に変換可能な否かを判定し(ST12)、変換不可能な
ときには第1実施形態の倍数演算部5に処理ST9を実
行させるが(ST13)、ここでは変換可能であるた
め、変換部7を起動する。変換部7は、メモリ1内の点
Gをモンゴメリ型楕円曲線上の点Gmに座標変換し(S
T14)、倍数演算部8を起動する。
【0072】倍数演算部8は、φ進展開された倍数kを
メモリ1から得ると、この倍数k=Σαiφiに対し、
係数αiを2進展開し、得られたαi=Σhij2jを代入
して次の(7)式のように整理する。
メモリ1から得ると、この倍数k=Σαiφiに対し、
係数αiを2進展開し、得られたαi=Σhij2jを代入
して次の(7)式のように整理する。
【0073】 k=Σ(Σhij2j)φi =Σ2j(Σhijφi) …(7) 次に、倍数演算部8は、この倍数kを次のように2*k
1とその残りk0との各成分で表現する(ST15)。な
お、以下の例は簡単な場合(0≦j≦1)である。
1とその残りk0との各成分で表現する(ST15)。な
お、以下の例は簡単な場合(0≦j≦1)である。
【0074】k=Σhi0φi+2Σhi1φiに対し、k
0=Σhi0φiとし、k1=Σhi1φiとおくと、 k=2*k1+k0 このとき、倍数演算kGmは次の(8)式で表現可能で
ある。
0=Σhi0φiとし、k1=Σhi1φiとおくと、 k=2*k1+k0 このとき、倍数演算kGmは次の(8)式で表現可能で
ある。
【0075】 kGm=2・k1Gm+k0Gm =(k0Gm+k1Gm)+(k1Gm) …(8) 従って、倍数演算部8は、(k0Gm+k1Gm)を点Pと
おき、(k1Gm)を点Qとおいて、これら各点P,Qを
夫々算出した後(ST16)、モンゴメリ型楕円曲線の
性質よりy座標を用いず、各点P,Qのx座標のみから
点kGm(:P+Q)を算出する(ST17)。
おき、(k1Gm)を点Qとおいて、これら各点P,Qを
夫々算出した後(ST16)、モンゴメリ型楕円曲線の
性質よりy座標を用いず、各点P,Qのx座標のみから
点kGm(:P+Q)を算出する(ST17)。
【0076】これは、従来のようにk1Gと、2・k1G
と、k0Gとを用いてkG=2・k1G+k0Gを計算す
る場合に比べ、少ない計算量で実現できる。
と、k0Gとを用いてkG=2・k1G+k0Gを計算す
る場合に比べ、少ない計算量で実現できる。
【0077】例えば従来の場合、kG=2・k1G+k0
Gの計算量は、1回の乗算と、1回の加算(x,y両座
標を用いる)との合計となる。
Gの計算量は、1回の乗算と、1回の加算(x,y両座
標を用いる)との合計となる。
【0078】一方、本実施形態では、kGm=2・k1G
m+k0Gmの計算量は、1回の加算(k0Gm+k1Gm)
と、1回の加算(P+Q;x座標のみ)との合計とな
る。
m+k0Gmの計算量は、1回の加算(k0Gm+k1Gm)
と、1回の加算(P+Q;x座標のみ)との合計とな
る。
【0079】従って、本実施形態の方が、乗算を用い
ず、且つ加算がx座標のみで済む分だけ、少ない計算量
で点kGmを算出できる。なお、k0=0のとき、倍数演
算部は、点Pを省略し、点Qから点2Q(=kGm)を
求めるが、この場合もモンゴメリ型楕円曲線の性質によ
り、少ない計算量で点kGmを算出できる。
ず、且つ加算がx座標のみで済む分だけ、少ない計算量
で点kGmを算出できる。なお、k0=0のとき、倍数演
算部は、点Pを省略し、点Qから点2Q(=kGm)を
求めるが、この場合もモンゴメリ型楕円曲線の性質によ
り、少ない計算量で点kGmを算出できる。
【0080】いずれにしても、以下、逆変換部9は、得
られた点kGmを標準型の楕円曲線上の点kGに座標変
換し(ST18)、得られた結果kGを出力する。
られた点kGmを標準型の楕円曲線上の点kGに座標変
換し(ST18)、得られた結果kGを出力する。
【0081】上述したように本実施形態によれば、x座
標のみで高速に倍数演算が可能なモンゴメリ型楕円曲線
系に対し、第1の実施形態と同様の高速なφ進展開を適
用するので、標準型楕円曲線をモンゴメリ型楕円曲線に
変換できる場合、楕円曲線上の点Gに対する倍数演算k
Gをより一層高速に実現させることができる。
標のみで高速に倍数演算が可能なモンゴメリ型楕円曲線
系に対し、第1の実施形態と同様の高速なφ進展開を適
用するので、標準型楕円曲線をモンゴメリ型楕円曲線に
変換できる場合、楕円曲線上の点Gに対する倍数演算k
Gをより一層高速に実現させることができる。
【0082】なお、倍数演算部8は、各点P,Qを夫々
x,y座標から算出し、点kGmをx座標のみから算出
する場合について説明したが、これに限らず、各点P,
Q及び点kGmの全てをx座標のみから算出する構成に
変形してもよい。すなわち、ΣαiφiG(但し、α0=
1、αi=0又は1の場合(なお、i=1,…,m−
1))を全て事前計算する構成(α0=0のときはφ倍
で容易)としてもよい。この事前計算値を用いた場合、
Fp m上の有理点Gに対し、kG=ΣαiφiG(但し、
|αi|≦p/2)をx座標のみで計算可能となり、倍
数演算を高速化することができる。ここで、事前計算値
は、2m-2個が必要となるが、m<10程度のmであれ
ば十分実用的となっている。
x,y座標から算出し、点kGmをx座標のみから算出
する場合について説明したが、これに限らず、各点P,
Q及び点kGmの全てをx座標のみから算出する構成に
変形してもよい。すなわち、ΣαiφiG(但し、α0=
1、αi=0又は1の場合(なお、i=1,…,m−
1))を全て事前計算する構成(α0=0のときはφ倍
で容易)としてもよい。この事前計算値を用いた場合、
Fp m上の有理点Gに対し、kG=ΣαiφiG(但し、
|αi|≦p/2)をx座標のみで計算可能となり、倍
数演算を高速化することができる。ここで、事前計算値
は、2m-2個が必要となるが、m<10程度のmであれ
ば十分実用的となっている。
【0083】また、この変形した倍数演算部8の処理の
具体例として、G+5φ(G)+3φ2(G)の計算方
法を次の[1]〜[4]に述べる。なお、以下の計算で
はGの記号を省略する。すなわち、φ(G)をφと表記
する。また前述したが、計算は全てx座標のみで行う。
計算原理は、次の(i)〜(ii)の通りである。
具体例として、G+5φ(G)+3φ2(G)の計算方
法を次の[1]〜[4]に述べる。なお、以下の計算で
はGの記号を省略する。すなわち、φ(G)をφと表記
する。また前述したが、計算は全てx座標のみで行う。
計算原理は、次の(i)〜(ii)の通りである。
【0084】(i)P,Q,P−Qの値がわかれば、P+
Qが計算できる。 (ii)P,Q,P+Qの値がわかれば、P−Qが計算でき
る。 (iii)1+φ、1+φ2、1+φ+φ2は事前に普通の
x,y両方の座標を用いる形で計算しておく。
Qが計算できる。 (ii)P,Q,P+Qの値がわかれば、P−Qが計算でき
る。 (iii)1+φ、1+φ2、1+φ+φ2は事前に普通の
x,y両方の座標を用いる形で計算しておく。
【0085】[1]1+φから1−φを計算する。具体
的には事前計算値1+φを用いて1−φを計算する。
的には事前計算値1+φを用いて1−φを計算する。
【0086】[2]1+φからφ+φ2を計算する。具
体的には事前計算値1+φにφを施し、φ(1+φ)=
φ+φ2として計算する。
体的には事前計算値1+φにφを施し、φ(1+φ)=
φ+φ2として計算する。
【0087】[3]φと、[2]で求めたφ+φ2とか
ら2φ+φ2を計算する。ここで、(φ+φ2)−φ=
φ2はGにφを2回施すとわかる。よって、(φ+
φ2)+φ=2φ+φ2も計算できる。
ら2φ+φ2を計算する。ここで、(φ+φ2)−φ=
φ2はGにφを2回施すとわかる。よって、(φ+
φ2)+φ=2φ+φ2も計算できる。
【0088】[4]1+φ+φ2と、[3]で求めた2
φ+φ2と、[1]で求めた1−φから1+5φ+3φ
2を計算する。ここで、1+φ+φ2が事前計算値であ
り、(1+φ+φ2)−(2φ+φ2)=1−φが既知
のため、(1+φ+φ2)+(2φ+φ2)を計算でき
る。
φ+φ2と、[1]で求めた1−φから1+5φ+3φ
2を計算する。ここで、1+φ+φ2が事前計算値であ
り、(1+φ+φ2)−(2φ+φ2)=1−φが既知
のため、(1+φ+φ2)+(2φ+φ2)を計算でき
る。
【0089】{(1+φ+φ2)+(2φ+φ2)}−
(2φ+φ2)=1+φ+φ2が既知のため、{(1+
φ+φ2)+(2φ+φ2)}+(2φ+φ2)=1+
5φ+3φ2を計算できる。
(2φ+φ2)=1+φ+φ2が既知のため、{(1+
φ+φ2)+(2φ+φ2)}+(2φ+φ2)=1+
5φ+3φ2を計算できる。
【0090】(第3の実施形態)図5は本発明の第3の
実施形態に係る楕円曲線演算装置の構成を示す機能ブロ
ック図である。この楕円曲線演算装置は、有限体Fp上
の楕円曲線演算を対象とし、従来の[3]NAFを用い
たWindow法による方式と第1実施形態のφ進展開
法とを組合せて、より一層の高速化を図るものである。
実施形態に係る楕円曲線演算装置の構成を示す機能ブロ
ック図である。この楕円曲線演算装置は、有限体Fp上
の楕円曲線演算を対象とし、従来の[3]NAFを用い
たWindow法による方式と第1実施形態のφ進展開
法とを組合せて、より一層の高速化を図るものである。
【0091】具体的には、前述した倍数判定部3、φ進
展開部4及び倍数演算部5に代えて、第1実施形態のφ
進展開機能及び周知のNAF展開機能を有するNAF展
開部11、及びNAF展開に応じた倍数演算部12を備
えている。
展開部4及び倍数演算部5に代えて、第1実施形態のφ
進展開機能及び周知のNAF展開機能を有するNAF展
開部11、及びNAF展開に応じた倍数演算部12を備
えている。
【0092】なお、これに伴い、入力部2は、前述した
機能中、倍数kの送出先がNAF展開部11となる上、
点G(x,y)の入力データをNAF展開部11に送出
する機能が付加される。
機能中、倍数kの送出先がNAF展開部11となる上、
点G(x,y)の入力データをNAF展開部11に送出
する機能が付加される。
【0093】NAF展開部11は、入力部2から倍数k
及び点G(x,y)を受けたとき、j=1〜n-1の点Gの2
j倍(=2G,22G,23G,…,2n-1G)を事前計算
する機能と、点Gの2n倍(=2nG)を本発明のφ進展
開(=(2n)に(±c+tφ+φ2)を代入)により
事前計算する機能と、点Gの22n倍毎(=22nG毎)に
22nG=2n(2nG)と変形して()内を同様のφ進展
開により事前計算する機能と、事前計算の結果(2G,
22G,23G,…,2n-1G,2nG)をメモリ1に格納
した後、周知のNAF展開の(5)式により、倍数kを
NAF展開する機能と、倍数kのNAF展開が完了する
と、倍数演算部12を起動する機能とをもっている。な
お、NAF展開のタイミングは、点Gに関する事前計算
より前としてもよい。
及び点G(x,y)を受けたとき、j=1〜n-1の点Gの2
j倍(=2G,22G,23G,…,2n-1G)を事前計算
する機能と、点Gの2n倍(=2nG)を本発明のφ進展
開(=(2n)に(±c+tφ+φ2)を代入)により
事前計算する機能と、点Gの22n倍毎(=22nG毎)に
22nG=2n(2nG)と変形して()内を同様のφ進展
開により事前計算する機能と、事前計算の結果(2G,
22G,23G,…,2n-1G,2nG)をメモリ1に格納
した後、周知のNAF展開の(5)式により、倍数kを
NAF展開する機能と、倍数kのNAF展開が完了する
と、倍数演算部12を起動する機能とをもっている。な
お、NAF展開のタイミングは、点Gに関する事前計算
より前としてもよい。
【0094】また、倍数演算部12は、NAF展開部1
1に起動されると、NAF展開部11によりNAF展開
された倍数kに、NAF展開部11による事前計算結果
(2G,22G,23G,…,2n-1G,2nG)を乗じて
倍数演算kGを実行し、演算結果kGを出力する機能と
をもっている。
1に起動されると、NAF展開部11によりNAF展開
された倍数kに、NAF展開部11による事前計算結果
(2G,22G,23G,…,2n-1G,2nG)を乗じて
倍数演算kGを実行し、演算結果kGを出力する機能と
をもっている。
【0095】次に、以上のように構成された楕円曲線演
算装置の動作を図6のフローチャートを用いて説明す
る。前述同様に、入力部2に点G(x,y),素数p及
び倍数kがデータ入力されたとする(ST21)。
算装置の動作を図6のフローチャートを用いて説明す
る。前述同様に、入力部2に点G(x,y),素数p及
び倍数kがデータ入力されたとする(ST21)。
【0096】入力部2は、倍数k及び点G(x,y)の
データをNAF展開部11に送出すると共に、点G
(x,y),素数p及び倍数kをメモリ1に格納する。
データをNAF展開部11に送出すると共に、点G
(x,y),素数p及び倍数kをメモリ1に格納する。
【0097】NAF展開部11は、倍数k及び点G
(x,y)を受けたとき、j=1〜n-1の点Gの2j倍(=
2G,22G,23G,…,2n-1G)を計算すると共に
(ST22)、点Gの2n倍(=2nG)を本発明のφ進
展開(=(2n)に(±c+tφ+φ2)を代入)によ
り計算する(ST23)。
(x,y)を受けたとき、j=1〜n-1の点Gの2j倍(=
2G,22G,23G,…,2n-1G)を計算すると共に
(ST22)、点Gの2n倍(=2nG)を本発明のφ進
展開(=(2n)に(±c+tφ+φ2)を代入)によ
り計算する(ST23)。
【0098】なお、このとき、点Gの22n倍毎(=22n
G毎)に22nG=2n(2nG)と変形して()内を同様
のφ進展開により計算する(ST24)。
G毎)に22nG=2n(2nG)と変形して()内を同様
のφ進展開により計算する(ST24)。
【0099】すなわち、従来のNAF展開による倍数演
算kGを示す(6)式のうち、2j nGの計算を
(2n)に(±c+tφ−φ2)を逐次代入して実行す
る。
算kGを示す(6)式のうち、2j nGの計算を
(2n)に(±c+tφ−φ2)を逐次代入して実行す
る。
【0100】このようにして、Gの21〜2n倍の計算が
完了すると(ST25)、NAF展開部11は、計算結
果(2G,22G,23G,…,2n-1G,2nG)をメモ
リ1に格納した後、倍数kを(5)式でNAF展開し
(ST26)、NAF展開の完了後、倍数演算部12を
起動する。
完了すると(ST25)、NAF展開部11は、計算結
果(2G,22G,23G,…,2n-1G,2nG)をメモ
リ1に格納した後、倍数kを(5)式でNAF展開し
(ST26)、NAF展開の完了後、倍数演算部12を
起動する。
【0101】倍数演算部12は、NAF展開された倍数
kに、メモリ1から得た事前計算結果(2G,22G,
23G,…,2n-1G,2nG)を乗じて倍数演算kGを
実行し(ST27)、演算結果kGを出力する。
kに、メモリ1から得た事前計算結果(2G,22G,
23G,…,2n-1G,2nG)を乗じて倍数演算kGを
実行し(ST27)、演算結果kGを出力する。
【0102】上述したように本実施形態によれば、NA
F展開の事前計算に対し、第1の実施形態と同様の高速
なφ進展開を適用するので、楕円曲線上の点Gに対する
倍数演算kGの更なる高速化を実現させることができ
る。
F展開の事前計算に対し、第1の実施形態と同様の高速
なφ進展開を適用するので、楕円曲線上の点Gに対する
倍数演算kGの更なる高速化を実現させることができ
る。
【0103】(第4の実施形態)図7は本発明の第4の
実施形態に係る楕円曲線演算装置の構成を示す機能ブロ
ック図である。この楕円曲線演算装置は、第3の実施形
態を相対拡大に拡張した変形例であり、前述した有限体
Fpを含む拡大体Fpn上の楕円曲線演算を対象としてい
る。
実施形態に係る楕円曲線演算装置の構成を示す機能ブロ
ック図である。この楕円曲線演算装置は、第3の実施形
態を相対拡大に拡張した変形例であり、前述した有限体
Fpを含む拡大体Fpn上の楕円曲線演算を対象としてい
る。
【0104】具体的には、NAF展開部11rが、前述
したNAF展開部11の機能に加え、点Gの2nr倍を事
前計算する機能を備えている。
したNAF展開部11の機能に加え、点Gの2nr倍を事
前計算する機能を備えている。
【0105】例えば、楕円曲線Eが、拡大体Fpn上で定
義されている場合、更に拡張された拡大体Fpnrでの演
算を考える。このとき、点G=(x,y)に対し、φ
(G)=(xp^nr,yp),(^はべき乗)となるフ
ロベニウス写像φでは次の(9)式が成立つ。
義されている場合、更に拡張された拡大体Fpnrでの演
算を考える。このとき、点G=(x,y)に対し、φ
(G)=(xp^nr,yp),(^はべき乗)となるフ
ロベニウス写像φでは次の(9)式が成立つ。
【0106】(2n±c)r=tφ−φ2 …(9) すなわち、NAF展開部11rは、この(9)式に基づ
いて、点Gの2nr倍を本発明のφ進展開(=(2nr)
に(−Cx+tφ+φ2)を代入)により事前計算して
メモリに格納する機能が付加されている。なお、−Cx
は、(2n±c) rを展開して得られた多項式データの
うち、2nrの項を除いた各項が右辺に移項されてなる値
である。また、展開には、例えば二項定理が使用され
る。
いて、点Gの2nr倍を本発明のφ進展開(=(2nr)
に(−Cx+tφ+φ2)を代入)により事前計算して
メモリに格納する機能が付加されている。なお、−Cx
は、(2n±c) rを展開して得られた多項式データの
うち、2nrの項を除いた各項が右辺に移項されてなる値
である。また、展開には、例えば二項定理が使用され
る。
【0107】例えば、(2n+c)r=tφ−φ2の左
辺を二項展開する場合、両辺に2nのべきを掛けると、
次のようにGhの漸化式となる。
辺を二項展開する場合、両辺に2nのべきを掛けると、
次のようにGhの漸化式となる。
【0108】Gh+rcGh-1+rC2c2Gh-2+cnG
h-r=tφ(Gh-r)−φ2(Gh-r) (但し、h≧
r) ここで、Gi(i=1,…,r−1)は(定義通り)計
算される。
h-r=tφ(Gh-r)−φ2(Gh-r) (但し、h≧
r) ここで、Gi(i=1,…,r−1)は(定義通り)計
算される。
【0109】また、Gi(i≧r)は、上の漸化式で計
算される。この漸化式は、r,cが小さいときに高速化
に有効である。
算される。この漸化式は、r,cが小さいときに高速化
に有効である。
【0110】以上のような構成により、図8に示すよう
に、NAF展開の事前計算中(ST24r)、点Gの2
nr倍を高速に算出できるので、拡大体Fpn上で定義され
た楕円曲線Eにおいても、第3の実施形態と同様の効果
を得ることができる。また、本実施形態は、特に拡大次
数rが小さいときに高速化に有効である。
に、NAF展開の事前計算中(ST24r)、点Gの2
nr倍を高速に算出できるので、拡大体Fpn上で定義され
た楕円曲線Eにおいても、第3の実施形態と同様の効果
を得ることができる。また、本実施形態は、特に拡大次
数rが小さいときに高速化に有効である。
【0111】尚、本発明における記憶媒体としては、磁
気ディスク、フロッピーディスク、ハードディスク、光
ディスク(CD−ROM、CD−R、DVD等)、光磁
気ディスク(MO等)、半導体メモリ等、プログラムを
記憶でき、かつコンピュータが読み取り可能な記憶媒体
であれば、その記憶形式は何れの形態であっても良い。
気ディスク、フロッピーディスク、ハードディスク、光
ディスク(CD−ROM、CD−R、DVD等)、光磁
気ディスク(MO等)、半導体メモリ等、プログラムを
記憶でき、かつコンピュータが読み取り可能な記憶媒体
であれば、その記憶形式は何れの形態であっても良い。
【0112】また、記憶媒体からコンピュータにインス
トールされたプログラムの指示に基づきコンピュータ上
で稼働しているOS(オペレーティングシステム)や、
データベース管理ソフト、ネットワークソフト等のMW
(ミドルウェア)等が本実施形態を実現するための各処
理の一部を実行しても良い。
トールされたプログラムの指示に基づきコンピュータ上
で稼働しているOS(オペレーティングシステム)や、
データベース管理ソフト、ネットワークソフト等のMW
(ミドルウェア)等が本実施形態を実現するための各処
理の一部を実行しても良い。
【0113】さらに、本発明における記憶媒体は、コン
ピュータと独立した媒体に限らず、LANやインターネ
ット等により伝送されたプログラムをダウンロードして
記憶または一時記憶した記憶媒体も含まれる。
ピュータと独立した媒体に限らず、LANやインターネ
ット等により伝送されたプログラムをダウンロードして
記憶または一時記憶した記憶媒体も含まれる。
【0114】また、記憶媒体は1つに限らず、複数の媒
体から本実施形態における処理が実行される場合も本発
明における記憶媒体に含まれ、媒体構成は何れの構成で
あっても良い。
体から本実施形態における処理が実行される場合も本発
明における記憶媒体に含まれ、媒体構成は何れの構成で
あっても良い。
【0115】尚、本発明におけるコンピュータは、記憶
媒体に記憶されたプログラムに基づき、本実施形態にお
ける各処理を実行するものであって、パソコン等の1つ
からなる装置、複数の装置がネットワーク接続されたシ
ステム等の何れの構成であっても良い。
媒体に記憶されたプログラムに基づき、本実施形態にお
ける各処理を実行するものであって、パソコン等の1つ
からなる装置、複数の装置がネットワーク接続されたシ
ステム等の何れの構成であっても良い。
【0116】また、本発明におけるコンピュータとは、
パソコンに限らず、情報処理機器に含まれる演算処理装
置、マイコン等も含み、プログラムによって本発明の機
能を実現することが可能な機器、装置を総称している。
パソコンに限らず、情報処理機器に含まれる演算処理装
置、マイコン等も含み、プログラムによって本発明の機
能を実現することが可能な機器、装置を総称している。
【0117】また、上記各実施形態では、楕円曲線演算
プログラムの各機能を説明するために便宜的に入力部
2,倍数判定部3,φ進展開部4,倍数演算部5,8,
12,判定部6,変換部7,逆変換部9及びNAF展開
部11,11rなる機能ブロックを用いて説明したが、
これに限らず、全体として同様に動作するものであれ
ば、本発明の範囲に包含される。
プログラムの各機能を説明するために便宜的に入力部
2,倍数判定部3,φ進展開部4,倍数演算部5,8,
12,判定部6,変換部7,逆変換部9及びNAF展開
部11,11rなる機能ブロックを用いて説明したが、
これに限らず、全体として同様に動作するものであれ
ば、本発明の範囲に包含される。
【0118】例えば倍数判定部3は、φ進展開部4に含
めても良く、また、倍数kの範囲が始めから制限されて
いれば省略してもよい。また、φ進展開部4と倍数演算
部5とを合わせてもよい(倍数kを(2)式でφ進展開
せずに、始めから倍数演算kGを(3)式でφ進展開し
てもよい)。
めても良く、また、倍数kの範囲が始めから制限されて
いれば省略してもよい。また、φ進展開部4と倍数演算
部5とを合わせてもよい(倍数kを(2)式でφ進展開
せずに、始めから倍数演算kGを(3)式でφ進展開し
てもよい)。
【0119】また、判定部6と変換部7とを一つの機能
ブロックで表現してもよい。あるいは、判定部6による
判定は、倍数判定部3の判定の直前又は直後(φ進展開
部4のφ進展開の前)に実行してもよい。同様にNAF
展開部11,11rと倍数演算部12を合わせても良い
(倍数kを(5)式でNAF展開せずに、始めから倍数
演算kGを(6)式でNAF展開してもよい)。また、
NAF展開部11,11rにおけるGの事前計算(ST
22〜ST24r)は、適宜順序を入換えてもよい。
ブロックで表現してもよい。あるいは、判定部6による
判定は、倍数判定部3の判定の直前又は直後(φ進展開
部4のφ進展開の前)に実行してもよい。同様にNAF
展開部11,11rと倍数演算部12を合わせても良い
(倍数kを(5)式でNAF展開せずに、始めから倍数
演算kGを(6)式でNAF展開してもよい)。また、
NAF展開部11,11rにおけるGの事前計算(ST
22〜ST24r)は、適宜順序を入換えてもよい。
【0120】いずれにしても上述したように、全体とし
て同様に動作するものであれば(=フロベニウス写像φ
の演算途中に生じる(2n)に(±c+tφ−φ2)を
代入する構成、あるいは(2nr)に(−Cx+tφ+φ
2)を代入する構成を含めば)、他の設計的事項をどの
ように変形しても、本発明の範囲に包含される。
て同様に動作するものであれば(=フロベニウス写像φ
の演算途中に生じる(2n)に(±c+tφ−φ2)を
代入する構成、あるいは(2nr)に(−Cx+tφ+φ
2)を代入する構成を含めば)、他の設計的事項をどの
ように変形しても、本発明の範囲に包含される。
【0121】その他、本発明はその要旨を逸脱しない範
囲で種々変形して実施できる。
囲で種々変形して実施できる。
【0122】
【発明の効果】以上説明したように本発明によれば、楕
円曲線上の点Gに対する倍数演算kGの更なる高速化を
実現できる楕円曲線演算装置及び記憶媒体を提供でき
る。
円曲線上の点Gに対する倍数演算kGの更なる高速化を
実現できる楕円曲線演算装置及び記憶媒体を提供でき
る。
【図1】本発明の第1の実施形態に係る楕円曲線演算装
置の構成を示す機能ブロック図
置の構成を示す機能ブロック図
【図2】同実施形態における動作を説明するためのフロ
ーチャート
ーチャート
【図3】本発明の第2の実施形態に係る楕円曲線演算装
置の構成を示す機能ブロック図
置の構成を示す機能ブロック図
【図4】同実施形態における動作を説明するためのフロ
ーチャート
ーチャート
【図5】本発明の第3の実施形態に係る楕円曲線演算装
置の構成を示す機能ブロック図
置の構成を示す機能ブロック図
【図6】同実施形態における動作を説明するためのフロ
ーチャート
ーチャート
【図7】本発明の第1の実施形態に係る楕円曲線演算装
置の構成を示す機能ブロック図
置の構成を示す機能ブロック図
【図8】同実施形態における動作を説明するためのフロ
ーチャート
ーチャート
1…メモリ 2…入力部 3…倍数判定部 4…φ進展開部 5,8,12…倍数演算部 6…判定部 7…変換部 9…逆変換部 11,11r…NAF展開部 k…倍数 G…点 p…素数
Claims (8)
- 【請求項1】 p個の要素からなる有限体Fp上で定義
された楕円曲線上における点G(x,y)の倍数演算k
Gを実行可能な楕円曲線演算装置であって、 前記倍数k,前記点G及び素数p(=2n±c;nはビ
ット数、log2(c)≦n/2)が入力されたとき、
倍数kのビット数nkが所定の範囲(n<nk<2n)に
あるか否かを判定する倍数判定手段と、 前記倍数判定手段による判定結果が前記所定範囲にある
旨を示すとき、前記倍数kをnビット単位の形式(2n
C+Dの形式;C,Dはnビットの数)に表現すると共
に、前記倍数kの2nに±c+tφ+φ2(φはフロベ
ニウス写像、tはトレース)を代入し、前記代入結果を
展開してφ以外の項及びφの一次の項の係数を夫々nビ
ット単位で表現し、前記代入と展開との処理を複数回繰
返してφ進展開を実行するφ進展開手段と、 前記φ進展開手段によりφ進展開された倍数kに前記点
G(x,y)のデータを乗じて倍数演算kGを実行し、
得られた結果kGを出力する倍数演算手段とを備えたこ
とを特徴とする楕円曲線演算装置。 - 【請求項2】 pn個の要素からなる拡大体Fpn上で定
義された第1型の楕円曲線上における点G(x,y)の
倍数演算kGを実行可能な楕円曲線演算装置であって、 前記倍数k,前記点G及び素数p(=2n±c;nはビ
ット数、log2(c)≦n/2)が入力されたとき、
倍数kのビット数nkが所定の範囲(n<nk<2n)に
あるか否かを判定する倍数判定手段と、 前記倍数判定手段による判定結果が前記所定範囲にある
旨を示すとき、前記倍数kをnビット単位の形式(2n
C+Dの形式;C,Dはnビットの数)に表現すると共
に、前記倍数kの2nに±c+tφ+φ2(φはフロベ
ニウス写像、tはトレース)を代入し、前記代入結果を
展開してφ以外の項及びφの一次の項の係数を夫々nビ
ット単位で表現し、前記代入と展開との処理を複数回繰
返してφ進展開を実行するφ進展開手段と、 前記第1型の楕円曲線を第2型の楕円曲線(By2=x
3+Ax2+x;A,Bは任意の数)に変換可能か否か
を判定する判定手段と、 前記判定手段による判定結果が変換可能を示すとき、前
記点G(x,y)のデータを前記第2型の楕円曲線上の
点Gmに変換する変換手段と、 前記変換手段により点Gmが得られたとき、前記φ進展
開手段によりφ進展開された倍数kを2*k0とその残
りk1との各成分で表現し(k=2*k1+k0)、各成
分k0,k1毎に前記点Gmを倍数演算して点P(=k0G
m+k1Gm),Q(=k1Gm)を求め、各点P,Qのx
座標から点kGm(=P+Q)を算出する第2型の倍数
演算手段と、 前記第2型の倍数演算手段により得られた点kGmのデ
ータを前記第1型の楕円曲線上の点kGのデータに逆変
換し、得られた結果kGを出力する逆変換手段とを備え
たことを特徴とする楕円曲線演算装置。 - 【請求項3】 p個の要素からなる有限体Fp上で定義
された楕円曲線上における点G(x,y)の倍数演算k
Gを実行可能な楕円曲線演算装置であって、 前記倍数k,前記点G及び素数p(=2n±c;nはビ
ット数、log2(c)≦n/2)が入力されたとき、j
=1〜n-1の点Gの2j倍(=21G,22G,23G,…,
2n-1G)を事前計算する第1の事前計算手段と、 前記倍数k,前記点G及び前記素数pが入力されたと
き、前記点Gをnビット単位の形式(2nC+Dの形
式;C,Dはnビットの数)に表現し、前記点Gの2n
に±c+tφ+φ2(φはフロベニウス写像、tはトレ
ース)を代入することにより、前記点Gの2n倍(=2n
G)を事前計算する第2の事前計算手段と、 前記倍数kを21G〜2nGの項を含んでNAF展開する
NAF展開手段と、 前記NAF展開手段によりNAF展開された倍数kに、
前記第1及び第2の事前計算手段による事前計算結果
(2G,22G,23G,…,2n-1G,2nG)を乗じて
倍数演算kGを実行し、得られた結果kGを出力する倍
数演算手段とを備えたことを特徴とする楕円曲線演算装
置。 - 【請求項4】 請求項3に記載の楕円曲線演算装置にお
いて、 前記倍数k,前記点G及び素数pが入力されたとき、前
記点Gをnビット単位の形式に表現し、前記点Gの2
nrに−Cx+tφ+φ2(Cxは(2n±c) rを展
開して得られた多項式データのうち、2nrの項を除いた
各項のデータ)を代入することにより、前記点Gの2nr
倍(=2nrG)を事前計算する第3の事前計算手段を備
え、 前記楕円曲線が前記有限体Fpを含む拡大体Fpn上で定
義されたとき、 前記NAF展開手段は、2nrGの項をも含んで前記NA
F展開を実行し、 前記倍数演算手段は、前記倍数演算kGを前記第3の事
前計算手段により得られた2nrGをも用いて実行するこ
とを特徴とする楕円曲線演算装置。 - 【請求項5】 p個の要素からなる有限体Fp上で定義
された楕円曲線上における点G(x,y)の倍数演算k
Gを実行可能な楕円曲線演算装置に用いられるコンピュ
ータ読取り可能な記憶媒体であって、 前記楕円曲線演算装置のコンピュータを、 前記倍数k,前記点G及び素数p(=2n±c;nはビ
ット数、log2(c)≦n/2)が入力されたとき、
倍数kのビット数nkが所定の範囲(n<nk<2n)に
あるか否かを判定する倍数判定手段、 前記倍数判定手段による判定結果が前記所定範囲にある
旨を示すとき、前記倍数kをnビット単位の形式(2n
C+Dの形式;C,Dはnビットの数)に表現すると共
に、前記倍数kの2nに±c+tφ+φ2(φはフロベ
ニウス写像、tはトレース)を代入し、前記代入結果を
展開してφ以外の項及びφの一次の項の係数を夫々nビ
ット単位で表現し、前記代入と展開との処理を複数回繰
返してφ進展開を実行するφ進展開手段、 前記φ進展開手段によりφ進展開された倍数kに前記点
G(x,y)のデータを乗じて倍数演算kGを実行し、
得られた結果kGを出力する倍数演算手段、 として機能させるためのプログラムが記憶されたコンピ
ュータ読取り可能な記憶媒体。 - 【請求項6】 pn個の要素からなる拡大体Fpn上で定
義された第1型の楕円曲線上における点G(x,y)の
倍数演算kGを実行可能な楕円曲線演算装置に用いられ
るコンピュータ読取り可能な記憶媒体であって、 前記楕円曲線演算装置のコンピュータを、 前記倍数k,前記点G及び素数p(=2n±c;nはビ
ット数、log2(c)≦n/2)が入力されたとき、
倍数kのビット数nkが所定の範囲(n<nk<2n)に
あるか否かを判定する倍数判定手段、 前記倍数判定手段による判定結果が前記所定範囲にある
旨を示すとき、前記倍数kをnビット単位の形式(2n
C+Dの形式;C,Dはnビットの数)に表現すると共
に、前記倍数kの2nに±c+tφ+φ2(φはフロベ
ニウス写像、tはトレース)を代入し、前記代入結果を
展開してφ以外の項及びφの一次の項の係数を夫々nビ
ット単位で表現し、前記代入と展開との処理を複数回繰
返してφ進展開を実行するφ進展開手段、 前記第1型の楕円曲線を第2型の楕円曲線(By2=x
3+Ax2+x;A,Bは任意の数)に変換可能か否か
を判定する判定手段、 前記判定手段による判定結果が変換可能を示すとき、前
記点G(x,y)のデータを前記第2型の楕円曲線上の
点Gmに変換する変換手段、 前記変換手段により点Gmが得られたとき、前記φ進展
開手段によりφ進展開された倍数kを2*k0とその残
りk1との各成分で表現し(k=2*k1+k0)、各成
分k0,k1毎に前記点Gmを倍数演算して点P(=k0G
m+k1Gm),Q(=k1Gm)を求め、各点P,Qのx
座標から点kGm(=P+Q)を算出する第2型の倍数
演算手段、 前記第2型の倍数演算手段により得られた点kGmのデ
ータを前記第1型の楕円曲線上の点kGのデータに逆変
換し、得られた結果kGを出力する逆変換手段、 として機能させるためのプログラムが記憶されたコンピ
ュータ読取り可能な記憶媒体。 - 【請求項7】 p個の要素からなる有限体Fp上で定義
された楕円曲線上における点G(x,y)の倍数演算k
Gを実行可能な楕円曲線演算装置に用いられるコンピュ
ータ読取り可能な記憶媒体であって、 前記楕円曲線演算装置のコンピュータを、 前記倍数k,前記点G及び素数p(=2n±c;nはビ
ット数、log2(c)≦n/2)が入力されたとき、j
=1〜n-1の点Gの2j倍(=21G,22G,23G,…,
2n-1G)を事前計算する第1の事前計算手段、 前記倍数k,前記点G及び前記素数pが入力されたと
き、前記点Gをnビット単位の形式(2nC+Dの形
式;C,Dはnビットの数)に表現し、前記点Gの2n
に±c+tφ+φ2(φはフロベニウス写像、tはトレ
ース)を代入することにより、前記点Gの2n倍(=2n
G)を事前計算する第2の事前計算手段、 前記倍数kを21G〜2nGの項を含んでNAF展開する
NAF展開手段、 前記NAF展開手段によりNAF展開された倍数kに、
前記第1及び第2の事前計算手段による事前計算結果
(2G,22G,23G,…,2n-1G,2nG)を乗じて
倍数演算kGを実行し、得られた結果kGを出力する倍
数演算手段、 として機能させるためのプログラムが記憶されたコンピ
ュータ読取り可能な記憶媒体。 - 【請求項8】 請求項7に記載のコンピュータ読取り可
能な記憶媒体において、 前記楕円曲線演算装置のコンピュータを、 前記倍数k,前記点G及び素数pが入力されたとき、前
記点Gをnビット単位の形式に表現し、前記点Gの2
nrに−Cx+tφ+φ2(Cxは(2n±c) rを展
開して得られた多項式データのうち、2nrの項を除いた
各項のデータ)を代入することにより、前記点Gの2nr
倍(=2nrG)を事前計算する第3の事前計算手段、と
して機能させるためのプログラムが記憶され、且つ、 前記楕円曲線が前記有限体Fpを含む拡大体Fpn上で定
義されたとき、 前記NAF展開手段には、2nrGの項をも含んで前記N
AF展開を実行させ、 前記倍数演算手段には、前記倍数演算kGを前記第3の
事前計算手段により得られた2nrGをも用いて実行させ
る、 ためのプログラムが記憶されたコンピュータ読取り可能
な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000016191A JP2001209316A (ja) | 2000-01-25 | 2000-01-25 | 楕円曲線演算装置及び記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000016191A JP2001209316A (ja) | 2000-01-25 | 2000-01-25 | 楕円曲線演算装置及び記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001209316A true JP2001209316A (ja) | 2001-08-03 |
Family
ID=18543373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000016191A Pending JP2001209316A (ja) | 2000-01-25 | 2000-01-25 | 楕円曲線演算装置及び記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001209316A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004252433A (ja) * | 2003-01-28 | 2004-09-09 | Matsushita Electric Ind Co Ltd | 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置 |
-
2000
- 2000-01-25 JP JP2000016191A patent/JP2001209316A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004252433A (ja) * | 2003-01-28 | 2004-09-09 | Matsushita Electric Ind Co Ltd | 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置 |
JP4634046B2 (ja) * | 2003-01-28 | 2011-02-16 | パナソニック株式会社 | 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Öztürk et al. | Low-power elliptic curve cryptography using scaled modular arithmetic | |
US20080044013A1 (en) | Koblitz Exponentiation with Bucketing | |
JP3821631B2 (ja) | 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体 | |
US20110161390A1 (en) | Modular multiplication processing apparatus | |
JP2012234199A (ja) | フォールディングを用いるモジュール削減 | |
JP5182364B2 (ja) | サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法 | |
Karmakar et al. | Efficient finite field multiplication for isogeny based post quantum cryptography | |
JP2002207589A (ja) | 演算回路および演算方法 | |
KR20100098017A (ko) | 확장된 몽고메리 레더를 이용한 스칼라 곱셈 방법 | |
JP4351987B2 (ja) | モンゴメリ変換装置、演算装置、icカード、暗号装置、復号装置及びプログラム | |
JP2001209316A (ja) | 楕円曲線演算装置及び記憶媒体 | |
Seo et al. | No Silver Bullet: Optimized Montgomery Multiplication on Various 64-Bit ARM Platforms | |
JP4223819B2 (ja) | べき乗剰余演算装置及びそのプログラム | |
JP2007526513A (ja) | 要素の累乗またはスカラー乗算の方法 | |
JP4202701B2 (ja) | 多項式剰余系演算装置、方法及びプログラム | |
Harb et al. | High-performance Pipelined FPGA Implementation of the Elliptic Curve Cryptography over GF (2n). | |
JP4850884B2 (ja) | べき乗剰余演算器 | |
Roy et al. | Efficient Finite field multiplication for isogeny based post quantum cryptography | |
JPH10214262A (ja) | 逆元演算方法及び装置及び乗算方法及び乗算装置 | |
JP5179933B2 (ja) | データ処理装置 | |
KR20230028626A (ko) | 양자 컴퓨터상 이진 필드 몽고메리 곱셈 장치 및 곱셈 방법 | |
JP2006235416A (ja) | 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム | |
JP3390966B2 (ja) | 平方数を法とした剰余演算装置及びそのプログラム記録媒体 | |
Atnashev et al. | Edwards curves and FFT-based multiplication | |
Kim et al. | Montgomery curve arithmetic revisited |