JP3145368B2 - 楕円曲線演算装置、演算方法及びその方法を実施するプログラムを記録した記録媒体 - Google Patents
楕円曲線演算装置、演算方法及びその方法を実施するプログラムを記録した記録媒体Info
- Publication number
- JP3145368B2 JP3145368B2 JP25091499A JP25091499A JP3145368B2 JP 3145368 B2 JP3145368 B2 JP 3145368B2 JP 25091499 A JP25091499 A JP 25091499A JP 25091499 A JP25091499 A JP 25091499A JP 3145368 B2 JP3145368 B2 JP 3145368B2
- Authority
- JP
- Japan
- Prior art keywords
- elliptic curve
- input
- curve calculation
- integer
- recording medium
- 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
Description
算装置、特に、情報セキュリティ技術(楕円曲線暗号/
署名、素因数分解)を実現するために適する装置及びプ
ログラム記録媒体に関する。
比べて遥かに短い鍵長で同等の安全性強度を実現するこ
とから、電子商取引の時代を担う次世代暗号として注目
を浴びている。しかし、従来の楕円曲線暗号は暗号化・
復号化の処理速度や安全性の面で課題があり、高速化・
安全性の研究が世界中で展開されてきた。
実現する場合,その処理時間のほとんどは楕円曲線上の
m倍演算に費やされる。一般に,暗号や署名には有限体
GF(q)上で定義される楕円曲線を使う。これをE/GF(q)を
表記する。qは素数又はそのべき乗である。従来の実装
法ではqに素数又は2n(nは1以上の整数)を用いるこ
とが多かった。
義することができる。通常の加算と区別するためにこれ
を、「楕円加算」、「楕円2倍演算」と呼ぶ。また、楕円
曲線上の点のうち、加算の単位元をOと表記する。通
常、m倍演算(mは2以上の整数)を構成するために、
「楕円加算」と「楕円2倍演算」を組み合わせて行う方法
が用いられている。
いてm倍演算を行えることがある。この手法を「φ進展
開法」と呼ぶ。例えば、GF(2)上で定義された楕円曲線E
/GF(2)上のGF(2k)有理点(kは2以上の整数)をm倍す
る方法についてKoblitzらが提案している。しかし、以
下に説明するように、従来の方法ではqが非常に小さい
場合に限って演算を高速化することが出来たにすぎな
い。
説明する。有限体GF(q)上で定義された楕円曲線をE/GF
(q)と表記する。E/GF(q)上のGF(qk)有理点のなす群E(GF
(qk))に対して、以下のようなフロベニウス写像φを用
いた演算を定義できる。 定義1(フロベニウス写像) 楕円曲線上の点P=(x,y),ただしx,y∈GF(q)’に対す
る自己準同型写像 φ:(x,y) → (xq,yq) をフロベニウス写像と呼ぶ。GF(q)’はGF(q)の代数閉体
を表す。
準同型写像であり、m倍写像P→mPを[m]を表すと、式
(1)を満たす。 φ−[t]φ+[q]=[0], -2√q<t<2√q (1) 式(1)は虚根を持ち、φによって[m]とは異なる演算を
行うことができる。φは与えられた楕円曲線に固有に定
まる値であり、その求め方は知られている。フロベニウ
ス写像の演算は、一般に楕円加算などと比べて高速に行
うことができる。例えば、正規基底を用いてGF(qk)の元
を表している場合、フロベニウス写像を要素の置き換え
のみによって行うことができ、演算時間を無視できる。
現では、元a∈GF(qk)を
と表す。このとき、aq=[a k-1,a0,a1,…,ak-1]であ
り、要素の入れ換えによって写像φを適用することがで
きる。
次式(3)の形に変換する。
(2)上のGF(2k)有理点を、φ進展開法を用いてm倍する
方法(N.Koblitz,"CM-Curves with with Good Cryptogra
phic Properties,"CRYPTO’91,pp.279−287(1991))が提
案された。また、Solinasによってその改良版(J.A.Soli
nas, “An improved Algorithm for Arithmetic on a F
amily of EllipticCurves,” CRYPTO’97, pp.357−371
(1997))が提案された。これらの方法では−1<c i<1で
あり、最大r回のフロベニウス写像演算と楕円加算によ
ってm倍演算をおこなうことができる。
ではφ=[(−1+√−7)/2]と見なすことができる。φ進展
開法を用いないで9Pを求める場合、 9P=(2×2×2+1)P (4) を用いる。式(4)の演算を行うには、3回の「楕円2倍
演算」と1回の「楕円加算」(合計4回)が必要であ
る。
φ3Pを無視してできる演算時間で求めることが出来るの
で、2回の「楕円加算」で演算できる。このため、式(3)
の場合よりも演算時間を少なくできる。
数qに対してGF(qk)上で定義された楕円曲線に対してφ
進展開法による高速演算法が適用されてきたが、理論的
にはもっと一般的な場合にも適用できる。しかしその場
合、式(3)における係数ciは0<|ci|<qとなるた
め、GF(qk)でqが大きい場合はci倍演算を行う演算時間
を無視できない。例えば、従来法の例における式(5)で
は、|ci|は0又は1であり、ci倍演算を行う演算時間
は無視できた。
と、必ずしもφを用いない演算法よりも速いとは限らな
い。従来qが小さい場合に限ってφ進展開法が適用され
てきたのはこのためである。この発明の目的は、素数q
の大きさに関わらず、φ進展開法によりGF(qk)上で定義
された楕円曲線上におけるm倍演算が可能な演算方法及
びその方法を実施する装置、及びその方法をコンピュー
タで実施するプログラムを記録し記録媒体を提供するこ
とである。
体上に定義された楕円曲線E/GF(q)上における有理点P
のm倍を演算する楕円曲線演算において、入力手段によ
り有理点Pと、E/GF(q)上で定義されるフロベニウス写
像φと、整数kと、3以上の素数qとを入力し、φ進展
開手段により上記E/GF(q)によって定まるフロベニウス
写像φを用いて
q<c i<qを求め,上記有理点Pと整数r,ciが与えら
れた生成手段により、 P0=P P1=φP P2=φ2P : Pr-1=φr-1P なるr個の点P0〜Pr-1を求め、上記r個のP0〜Pr-1が入
力されたべき乗テーブル加算手段により
る。
速に演算できると考えると、この問題は事前演算による
テーブルを用いたべき演算法(以下「べき乗テーブル
法」と呼ぶ)の場合と似た状況であると考えることがで
きる。
データを蓄積しておくことにより、m倍演算を高速化す
る方法である。もともと、べき乗を高速に行うための技
術なのでこの名前で呼ぶが、楕円曲線上のm倍演算(m
は2以上の整数)を行う場合も同様に使うことが出来
る。しかし、事前演算に多大な計算時間が必要であり、
適用範囲が制限された。
写像を用いればわずかな時間でべき乗テーブルに相当す
るデータを求めることができることを利用して演算を行
う。即ち、 P0=P,P1=φP,…,Pk-1=φk-1P (6) (ただしkは2以上の整数)を事前演算された値と見な
し、Piを用いて後で示す式(7)と同様の方法でm倍演算
を行う。
る。qとkの比率によってどの方法が最も効率が良いか
が決まる。この方法によって、従来適用できなかったq
が大きい場合にもφ進展開法を適用することができる。
また、qが小さい場合も従来法よりも高速に演算するこ
とができる。 べき乗テーブル法 ある決まった楕円曲線上の点Pとそのたびに変わるmと
を用いてmPを求める(これをm倍演算という)場合、
べき乗テーブル法を用いて演算を高速化することができ
る。
法が提案されているこれらは以下のような構成になって
いる。 A(事前演算):予めPi=aiPなるPをいくつか計算して
保存しておく。 B(m倍演算):m=Σi aiciなるciを求め事前演算で求
めたPiを用いて、 mP=Σi ciPi (7) によりmPを求める。
「櫛形法」、「Window法」などがあり、式(7)の
構成方法が異なる。以下にいくつかのべき乗テーブル法
の演算方法を簡単に示す。実際にはこれ以外にもべき乗
テーブル法は存在し、また、組み合わせなどのバリエー
ションもある。どのべき乗テーブル法もこの発明に用い
ることができる。
満たすmに対してmPを求める方法を説明する。以下、l
ogは底を2とし、[x]はx以下の最大の整数を表す。m
iはmのb進展開を行った値とし、mijはmiを2進展開
を行った値とする。従ってmiは0以上b-1以下の整数で
あり、mijは0又は1である。即ち、
はm i<dを満たすiについてPiを加算する ステップ2:
法又は箱法のいずれかを適用する場合は、フロベニウス
写像φを行った(式(6))を事前演算された値と考え
てべき乗テーブル法を適用する。Window法を適用
する場合は、m倍演算部分の中にある、b倍演算部分に
フロベニウス写像を適用する。qとkによって、演算時
間を最小化するべき乗テーブル法が異なる。ここではq
kを一定値2nに近似し、各方式の平均演算時間を導くこ
とによって、与えられたq,nに対して演算時間を最小
化する演算装置を得ることができる。 第1実施例 図1は、この発明による楕円m倍演算装置の第一実施例で
ある。 楕円曲線上のm倍演算装置(図1) 図1の「楕円曲線上のm倍演算装置」に従って説明する。
図1は楕円曲線E、定義体の大きさq、正整数k、E上のG
F(qk)有理点P、フロベニウス写像φ、正整数mの入力に
対してmPを出力する装置の構成の一例を表している。
このm倍演算装置100はPi生成部10と、φ進展開部2
0と、べき乗テーブル加算部30とからなる。
され、φ進展開部20は図7に示すように構成され、べ
き乗テーブル加算部30は図9,10,11のいずれか
によって構成される。これらについては後で詳細に説明
する。図1のm倍演算装置の動作をプログラムで実現す
る場合は、図2の手順に従って以下のように演算が実行
される。
入力する。 ステップS2:φ進展開部20は、入力k,φ,mに対
して
る。 ステップS3:Pi生成部10は、入力q,P,k,r
に対して Pi=φiP を満たすP0, P1,…,Pr-1を求め、出力する。
は、入力E,Pi,ciに対して
の大きさq,GF(qk)有理点P、整数r入力に対してφ
0P,φ1P,…,φr-1Pを出力する構成の一例を表し
ている。このPi生成部10はメモリ11と、制御部1
2、加算部13と,フロベニウス写像器14とからな
る。
図6に示すように構成される。この装置の動作をプログ
ラムで実現する場合は,図4に示す手順に従って以下の
ように演算が実行される。 ステップS1:q,P,rを入力する。 ステップS2:制御部12は入力値q,P,rに対して
メモリ11にSの初期値としてPを渡し、メモリ11
は、カウンタ値iと、楕円曲線上の点Sを保持する。iと
Sの初期値はそれぞれOとPである。
P,及びi,Sに対してi=rかどうかを検査し、i=rなら
ば演算を終了する。 ステップS4:制御部12はi≠rならばSをフロベニウ
ス写像器14に入力してφSを求め、φSをPiとして
出力し、φSとi+1をそれぞれ新たなS,iとしてメモリ
11に保存し、ステップS3へ戻る。 ・フロベニウス写像器(図5) 図5はGF(qk)有理点P=(x,y)、整数qの入力に対してφ
Pを出力するフロベニウス写像器14の構成の一例を示
している。
y)(ただしx,y∈GF(qk))と表されている場合に用いるこ
とができる。この写像器14はべき乗器14Aと14B
からなる。このPi生成部10の動作をプログラムで実
現する場合は、図18の処理手順に従って以下のように
演算が実行される。
てxqを計算し、べき乗器14Bは、入力値y,qに対
してyqを計算する。 ステップS3:フロベニウス写像器14は、(xq,yq)
をφPとして出力する。 ・フロベニウス写像器(図6) 図6はGF(qk)有理点P、整数qの入力に対してφPを出
力するフロベニウス写像器14の構成の一例を示してい
る。
y,z)(ただしx,y,z∈GF(qk))と表されている場合に
用いることができる。この写像器14はべき乗器14
A、14B、14Cからなる。この写像器14の動作を
プログラムで実現する場合は、図19に示す手順に従っ
て以下のように演算が実行される。
てxqを計算し,べき乗器14Bは、入力値y,qに対し
てyqを計算し、べき乗器14Cは、入力値z,qに対してz
qを計算する。 ステップS3:フロベニウス写像器14は、(xq,yq,zq)
をφPとして出力する。 ・φ進展開部(図−7) 図7のφ進展開部20を説明する。図7は定義体の大き
さq、拡大次数k、整数m、フロベニウス写像φの入力
に対して
展開部20はトレース演算部21と、制御部22と、メ
モリ23と、剰余部24とからなる。
実現する場合は、図8に示す手順に従って実行する。ト
レースはφ、qによって固定の値であるから、予め求め
ておき、外部から与えることにしてもよい。その場合、
トレース演算器21は不要である。このφ進展開部20
では、以下のように演算が実行される。
る。 ステップS2:トレース演算部21は、入力値φ,qか
ら、 φ2−tφ+q=0 (18) を満たすtを求め、制御部22へ渡す。 ステップS3:剰余部24は入力m,φ,kに対し x+yφ=m(modφk-1) (19) を満たすx,yを演劇し、メモリ23に保存する。ま
た、予め演算されたx,yを装置100の外から入力して
も良い。その場合は、入力値は整数mの代わりにx、yと
なる。この演算を行わない場合は剰余部24は不要であ
る。
y,u,vを保持する。iの初期値は0である。 ステップS4:制御部22は入力値x,y,t,qに対
し、x=0かつy=0が成り立っているかどうかを判定し、x=
0かつy=0ならば終了する。 ステップS5:制御部22は入力値x,y,t,qに対
し、 u←x mod q 及び v←(x-u)/q (20) とする。
する。 ステップS7:YESならば(x,y)←(tv+y,-v)とする。 ステップS8:そうでなければ(x,y)←(tv+y+t,-v-1),u
←u-qとする。これらの値をメモリ23に書き込む。 ステップS9:制御部22はciとしてuを出力し、iに
1を加え、メモリ23に書き込み、ステップS4へ戻
る。 べき乗テーブル加算装置(くし形)(図9) 図9のべき乗テーブル加算部(くし形)30Aを説明す
る。図9の加算部30Aは楕円曲線Eの点P0,P1,…,P
r-1、整数c 0 ,c1,…,cr-1の入力に対して式(16)を計算
し、mPを出力する。このべき乗テーブル加算部30A
はメモリ31Aと、制御部32Aと、楕円加算部33A
とからなる。
現する場合は、図12に示す手順に従って実行する。こ
のべき乗テーブル加算部30Aでは、以下のように演算
が実行される。 ステップS1:E,ci,Piを入力する。 ステップS2:制御部32Aは入力値E,ci,Piから、ci
の最大値d及びe=[logd]を求め、j←e,S←Oとし、
メモリ31Aにj,Sを保存する。ここでは[logd]はd
以下の最大の整数を表すものとする。メモリ31Aは
i,j,r,Sを保存し、制御部32Aへ渡す。
2倍し、メモリ31Aへ保存する。 ステップS4:j<0ならばSを出力して終了する。 ステップS5:j>0ならば、制御部32Aはi=0,…,r-
1に対して各ci(ステップS5−1,S5−2,S5−5)
の第jビット目が1かどうかを判定する(ステップS5
−3)。1ならば、楕円加算部33Aを用いてSにPi
を加算する(ステップS5−4)。
減算し、ステップS3へ戻る。 ・べき乗テーブル加算部(BGMW) 図10のべき乗テーブル加算部(BGMW)30Bを説
明する。図10のべき乗テーブル加算部30Bは楕円曲
線E、楕円曲線上の点P0,P1,…,Pr-1、整数c0,c1,…c
r-1の入力に対して式(16)を計算し、mPを出力する。
このべき乗テーブル加算部30Bはメモリ31Bと、制
御部32Bと楕円加算部33Bとからなる。
合は、図13の手順に従って以下のように演算が実行さ
れる。 ステップS1:E,ci,Piを入力する。 ステップS2:制御部32Bは入力値E,ci,Piからciの
最大値dを求め、S←O、R←Oとし、メモリ31Bに
R,Sを保存する。メモリ31BはS,R,d,iを保存
し、制御部32Bへ渡す。
d=0かどうかを判定し、d=0ならばSを出力して終了。 ステップS4:d≠0ならばステップS4-2でi=0とし、
ステップS4-2でi=rとなったか判定し、i=rとなっていな
ければステップS4-3でci=dか判定し、NOであればステッ
プS4-5に飛んでiをインクリメントしてステップS4-2
に戻り、YESであればステップS4-4でRをR←R+Piのよう
に更新し、ステップS4-5でiをインクリメントしてステ
ップS4-2に戻る。
ていれば、ステップS5に飛んで楕円加算部33Bによ
りSにRを加算し(S←S+R)、dから1を減算し(d←d-
1)、S,R,dをメモリ31Bに保存してステップS3に
戻る。 ・べき乗テーブル加算装置(箱)(図11) 図11のべき乗テーブル加算部30C(箱)を説明す
る。図11のべき乗テーブル加算部30Cは楕円曲線
E、楕円曲線上の点P0,P1,…,Pr-1、整数c0,c1,…,cr -1
の入力に対して式(16)を計算し、mPを出力する。この
加算部30Cはメモリ31Cと、制御部32Cと、楕円
加算部33Cとからなる。この加算部30Cの動作をプ
ログラムで実現する場合は、図14に示す手順にしたが
って実行する。
が実行される。 ステップS1:E,ci,Piを入力する。 ステップS2:制御部32Cは入力値E,ci,Piからc
iの最大値d及びe=[logd](logd以下の最大の整数を表
すものとする)を求め、j←0,w←1,S0,S1,…,S d←O,
R0,R1,…,Re←O,T←Oとしメモリ31Cにj,S0,…,Sd,
R0,…Re,Tを保存する。
に対して(ステップS3-1,S3-3)ScjにPjを加え(ステ
ップS3-2)、メモリ31Cに保存する。 ステップS4:制御部32Cはe=[logd](logd以下の
最大の整数)を求め、i←0,w←1,R0,R1,…Re←O,T←O
としてメモリ31Cに保存する。 ステップS5:制御部32Cはi=0,…,eに対して(ス
テップS5-1,S6-1)以下のステップS6を行う。
に対して(ステップS6-1)jを2wで割った余りがw
以上かどうかを判定し(ステップS6-2)、w以上だっ
た場合はRjにSjを加えて(ステップS6-3)、wより小
の場合は加えないでステップS6-1に戻る。ステップS6-1
でj>dになると、TにwRiを加え、iに1を加え、w
を2倍する(ステップS6-5)。
して出力し終了する。 第2実施例 ・楕円曲線上のm倍演算装置(図15) 図15の楕円曲線上のm倍演算装置に従って説明する。
図15は楕円曲線E、定義体の大きさq、整数k、GF(q
k)有理点P、フロベニウス写像φ、整数mの入力に対し
てmPを出力する装置の構成の一例を表している。この
装置100はPi生成部10と、φ進展開部20とべき乗テ
ーブル加算部30とからなる。
され,φ進展開部20は、図5と同様に構成され、べき
乗テーブル加算部30Dは図19に示すように構成され
る。この装置100の動作をプログラムで実現する場合
は、図16の手順に従って以下のように演算が実行され
る。 ステップS1:E,q,k,P,φ,mを入力する。
φ,mに対して式(15)を満たすc0,c1,…,cr-1,rを求め、
出力する。 ステップS3:Pi生成部10は入力E,q,pに対して Pi=iP によりP0,P1,…,Pq-1を求め、出力する。
は、入力E,Pi,ciに対して
E、定義体の大きさq、GF(qk)有理点Pの入力に対して
P,2P,・・・,(q-1)Pを出力する構成の一例を示している。
このPi生成部10はメモリ11と、制御部12と、加算
部13と、楕円加算部14とからなる。
現する場合は、図18に示す手順に従って以下のように
演算が実行される。 ステップS1:E,q,Pを入力する。 ステップS2:メモリ11は、カウンタ値iと、楕円曲
線上の点Sを保持する。それぞれ初期値は0とOであ
り、制御部12へ渡す。
P及びi,Sに対してi=qかどうかを検査し、i=qならば
演算を終了する。 ステップS4:制御部10はi≠qならばP及びSを楕円
加算部14に入力してP+Sを求め、P+SをPiとして出
力し,P+Sとi+1を新たなS,iとしてメモリ11に
保存し、ステップS3に戻る。 ・べき乗テーブル加算部(Window)(図19) 図19のべき乗乗テーブル加算部(Window)30Dを説
明する。図19の加算部30Dは楕円曲線E、楕円曲線
上の点P0,P1,…,Pr-1、整数c0,c1,…,cr-1の入力に対し
て
31Dと、制御部32Dと、楕円加算部33Dとフロベ
ニウス写像器34Dとからなる。フロベニウス写像器3
4Dは、例えば図5又は図6に示したと同様に構成され
る。
プログラムで実現する場合は、図20に示す手順に従っ
て以下のように演算が実行される。 ステップS1:E,ci,Piを入力する。 ステップS2:制御部32Dはi←r−1,S←Oと
し、メモリ31Dに保存する。
ス写像器34Dを用いてφSを求め、メモリ31Dに保
存する。 ステップS4:制御部32Dはi<0かどうかを判断す
る。 ステップS5:i<0ならばSを出力して終了。 ステップS6:i>0ならば楕円加算部33Dを用いて
SにPciを加え(ステップS6-1)iから1を減じ(ステ
ップS6-2)、メモリ31Dに保存する。その後ステッ
プS3へ戻る。 第3実施例 ・楕円曲線上のm+n倍演算装置(図21) 署名や暗号方式によっては入力値P,Q,m,nに対して
mP+nQを出力する演算(これをm+n倍演算と呼ぶ)
を行う必要がある場合もある。このような場合もこの発
明の装置を用いることができる。図1による装置を「m+
n倍演算」を行うように変更した場合の構成例を図21
に示す。
整数k、GF(qk)有理点P及びQ、フロベニウス写像φ、
整数m,nの入力に対してmP+nQを出力する装置110
の構成の一例を表している。この装置110はPi生成部1
0Aと、Qi生成部10Bと、φ進展開部21と、φ進
展開部22と、べき乗テーブル加算部30と、比較部5
0とからなる。
図3に示したと同様に構成され、φ進展開部21及び2
2は、図5に示したと同様に構成され、べき乗テーブル
加算部30は図7,8,9のいずれかによって構成され
る。この装置の動作をプログラムで実現する場合は、図
22に示す手順に従って以下のように演算が実行され
る。
る。 ステップS2:φ進展開部21は、入力k,φ,mに対し
て
る), rm(0<i<rm)を求め、出力する。
k,φ,nに対して
る),rn(0<i<rn)を求め、出力する。
に対して大きい方をrとし、出力する。 ステップS5:Pi生成部10Aは、入力q,P,k,rに対し
て Pi=φiP を計算し、P0,P1,…,Pr-1を出力する。
q,Q,k,rに対して Qi=φiQ を計算し、Q0,Q1,…,Qr-1を出力する。ステップS7:
べき乗テーブル加算部30は、入力E,r,Pi,Qi,ci,diに
対して Ri=Pi for 0<i<r =Qi-r for r<i<2r ei=ci for 0<i<r =di-r for r<i<2r とし、
「m+n倍演算」を行うようにすることもできる。
よって Σi miPi (26) を演算する装置も同様に構成できる。図1、図15にお
いてPi生成部10はべき乗テーブル加算部30(30
D)に含めて1つの演算装置としてもよい。また図15
のPi生成部10としてはPi=iPを予め演算したものを外
部から入力するようにしたものでもよい。 第4実施例 上述の第1,第2及び第3実施例では前述の式(6)を事
前演算された値とみなし、Piを用いて式(7)と同様の方
法でm倍演算を行う。しかし、この方法も、従来のGF(2
k)の場合に比べて必ずしも効率が高くない場合がある。
そこで、r及びciを調整することによりべき乗テーブル
加算部30における演算量を削減するようにした実施例
を次に示す。
が、入力されるciの数が少ないほうが演算速度が早い。
ところで,楕円曲線上の有利点PがGF(qk)有理点である
場合、 (φk-1)P=0 という関係が成り立つ。これを利用して、ciの項数を減
らすことができる。
となった場合を考える。φ3=1である事から、 c'0=c0+c3=7, c'1=c1=5, c'2=c2=1, とすると m=c'0+c'1φ+c'2φ2 が成り立つ。この方法によって、ciをc'iに変換し、項
の数をkに減らすことができる。
法があるが、それぞれ入力されるciの値によって、演算
速度が異なる。例えば、図9に示した前述の「櫛形法」
の場合は、ciのを2進数で表現した場合の各桁の値(0
又は1)の“1”の数(これをハミング重みという)が
多いほど演算時間がかかる。
大きい素数の有理点PがGF(qk)有理点であり、かつGF
(q)有理点で無い場合、(φk-1)=0かつ(φ-1)≠0である
から (φk-1+φk-2+…+φ+1)P=0 という関係が成り立つ。例えば、k=3の場合、 m=c0+c1φ+c2φ2 を用いてPのm倍を求める際に、c0=7,c1=5,c2=1となっ
た場合を考える。ここではPがGF(qk)有理点であって
(φ2+φ+1)P=0が成り立っているとする。これらciは2進
数表現で c0=7=1112 c1=5=1012 c2=1=0012 となり、1の数の総計(ハミング重み)が6である。と
ころで、 φ2+φ1+1=0 であることから、各ciに同じ数を足したり減らしても m=co+c1φ+c2φ2 の等式は成り立つ。そこで、c'i=ci-1とすれば、 c'0=6=1102 c'1=4=1002 c'2=0=0002 となり、ハミング重みを3とすることが出来る。更に
c”i=c'i-4とすることにより、 c”0=2=0102 c”1=0=0002 c”2=-4=1002( は負の記号を表す) となり、ハミング重みを2とすることが出来る。
及び第3実施例と比べ、櫛形法の場合は楕円加算の平均
回数を約2/3にすることが出来る(約1.5倍高速に演算で
きる)。この第4実施例はべき乗テーブル加算法による
演算を行う前にφについて成り立つ等式を用い、べき乗
テーブル加算法に合わせて、φ進展開の列ciを調整する
ことによって演算の高速化を行う。 ・楕円曲線上のm倍演算装置(図23) 図23は第4実施例による楕円曲線上m倍演算装置の一
構成例である。この装置110は楕円曲線E,定義体の大
きさq,整数k,楕円曲線上のGF(qk)有理点P、整数m
の入力に対してmPを出力する。この装置110はPi生成
部10と、φ進展開部20と、べき乗テーブル加算部3
0と、φ進展開調整部40とからなる。
それぞれ第1実施例における図3及び図7に示したもの
と同じであり、べき乗テーブル加算部30も第1実施例
における図9又は10のいずれかと同様に構成される。
図1の実施例と異なる点は、φ進展開調整部40が新た
に設けられ、φ進展開部20で求められたr、ciに対
し、べき乗テーブル加算部30での演算量が削減される
よう調整を行ってr’,c'i,を求め、これをべき乗テ
ーブル加算部30に与えていることである。Pi生成部1
0においてもrの代わりにr’を使ってPiが計算され
る。それ以外は図1の実施例と同様である。
現する場合は、図24の手順に従って以下のように演算
が実行される。 ステップS1:E,q,P,k,φ,mを入力する。 ステップS2:φ進展開部20は、入力k,φ,mに対して
からのr,ciに対して
て Pi=φiP からP0,P1,…,Pr'-1を求め、出力する。
は、入力E,Pi,c’i,r’に対して
展開調整部40は加算部41と、α生成部42と、減算
部43とからなり、整数c0,c1,…,cr-1,r,kの入力に対
して
この調整部40の動作をプログラムで実現する場合は、
図26又は図27の手順に従って以下のように演算が実
行される。
i<k-1なるc”iを求める。 ステップS3:α生成部42は入力されたc"iとkから、
適当なαを求める。使用すべき乗テーブル加算部30が
図10に示したBGMW形の場合は、c"iの平均値に最
も近い整数をαとして出力する。(27図)。
に示した櫛形の場合は、c"iを2進表現したときのj桁
の値をc"i,j(0又は1)とし、
である ステップS4:減算部43はc'i=c"i-α,0<i<k-1な
るc'iを求め、c"iとkを出力する。 第5実施例 ・ 楕円曲線上のm+n倍演算装置(図28) 図23の第4実施例を図21の実施例と同様なm+n倍演
算に適用した実施例を図28に示す。図28の演算装置
は楕円曲線E、定義体の大きさq、整数k、楕円曲線GF
(qk)有理点P及びQ,フロベニウス写像φ、整数m、n
の入力に対してmP+nQを出力する。
部10Bと、φ進展開部21、22と、べき乗テーブル
加算部30と、比較部50と、φ進展開調整部40A、
40Bとからなる。Pi生成部10A及びQi生成部10
Bは、図3に示した同様に構成され、φ進展開部21及
び22は、図7に示したと同様に構成され、べき乗テー
ブル加算部30は図9、10のいずれかによって構成さ
れる。
合は、図29に示す手順に従って以下のように演算が実
行される。 ステップS1:E, q, k, φ, m, P, n, Qを入力する。 ステップS2:φ進展開部21は入力k,φ, mに対して
す), rnを求め、出力する。 ステップS3:φ進展開部22は入力k,φ, mに対して
す), rn,を求め、出力する。 ステップS4:φ進展開調整部40Aは入力rn, ci に
対して
して
きいほうをrとし、出力する。
P, k, rに対して Pi=φiP (37a) によりP0, Pi, …, Pr-1を求め、出力する。 ステップS8:Qi生成部10Bは、入力q, Q, k, rに対
して Qi=φiQ (37b) によりQ0, Qi, …, Qr-1を求め、出力する。
は、入力E, r, Pi, Qi, c'i, d'iに対して Ri= Pi for 0<i< r = Qi-r for r<i< 2r ei=c'i for 0<i<r =d'i-1 for r<i<2r (38) とし、
実施例を一般化して m1P+m2Q+m3R+… を演算する装置も同様に構成できる。
でべき乗テーブルを構成することができるため、従来の
べき乗テーブル加算法と比べて適用範囲が広い(例え
ば、楕円DSA署名の署名検証などにも利用できる)。ま
た古くから用いられて、定義法がGF(2)の場合にも、こ
の実施例を用いることができ、その場合も従来装置の約
2倍高速にm倍演算をすることができる、 第6実施例 従来の代表的なφ進展開法は、例えばφ進展開によって
求められたci, (0<i<k)を用いて
すcj,iを求めてから、
た。「楕円加算」及び「楕円2倍算」はφ倍演算よりも
多大な計算時間を要する。従来「楕円加算」を減らす工
夫が行われて来たが「楕円2倍算」を減らす工夫は行わ
れておらず、この部分の演算時間は無視できないという
問題点があった。
れた、多項式の計算方法があり、それは次のようなもの
である。(但しLは有限体GF(qk)) 入力:Lの元x及びuj,(0<j<b)
を計算するためにHornerの方法ではb-1回のx倍算及びb-
1回の加算を必要とする。ところでaを(b+1)/2以下の最
大の整数として、もしuj, (a<j<b)の代わりにujxa,
(a<j<2a)(但しbが奇数の時U2a=0とする)が予め分か
っているとするとHornerの方法は次のように改良出来る
事が良く知られている。 入力:Lの元x及びuj, (0<j<b)及びujxa, (a<j<2a)
法ではb-1回の加算とa-1回のx倍算が必要である。加算
の部分は改善されていないが、x倍算の回数は約半分に
改善されている。この例の場合多項式の係数を項の次数
がa以上のものとa-1以下のものと2通りに分けて、事前
演算(係数がa以下のものをxa倍)されたデータを用意
する事によってx倍算の回数を約半分にする事ができ
た。同様の方法により、項の次数で係数をs通りに分け
て、事前演算されたデータを用意する事によってx倍算
の回数を約1/sにすることができる。
計算方法は上記Hornerの方法で、Lを整数として、ujはu
jP=Sjなるujであるとして、x=2とした場合に他ならな
い。S j(0<j<b)の計算は通常Hornerの方法を実行中
に順次行われるこの様子を簡単な例で図30A、30B、
30Cに示す。これらの図は従来のφ進展開法で利用さ
れて来たべき乗テーブル加算装置内で行われている処理
を模式的に記述したものである。簡単のためにφ進展開
係数は第19桁〜第0桁からなる20桁の2進数又は符
号付き2進数で表現されているとする。この従来型のべ
き乗テーブル加算装置はP, φP, φ2P, c0, c1, c2を受
け取って
処理の流れを表現したものである。図中のSは計算のた
めの楕円曲線上の点の座標を格納する一時記憶領域であ
り計算の最終段階に於いては装置の出力である式(43)の
値を保持する。
桁〜第0桁からなる20桁の2進数又は符号付2進数で表現
した時の第j桁目の数値である。従ってci,jは0又は±
1のいずれかの数値でありci,j倍の計算は簡単に実行で
きる。通常この数値が0以外である場合のみ「楕円計
算」が行われる。図30Aでは、まずc0, c1, c2の最上
位桁である第19桁に注目しS19を計算している。S19の結
果は必ずしも一時記憶領域を必要とはせず、式(43)を計
算する為の一時記憶領域Sに順次足し込んでゆけばよ
い。
ると、図30Bにしめすc0, c1, c2の第18桁に注目した
処理が始まる。このときSを2倍してS18の各項をSに足
し込む処理が行われる。以下第17桁から第0桁まで同様
の処理が行われ、図30Cに示す第0桁に注目した処理
が終了した時点でSには式(43)の値が格納される。従来
のべき乗テーブル加算装置ではこの値を出力していた。
たデータを用意することが出来ればHornerの方法の改良
と同様にして「楕円2倍算」の回数を削減することが出来
る。例えばSj(0<j<b)を2通りに分ける場合、aを(b
+1)/2以下の最大の整数として、 Tj=Sj+2aSa+j,(0<j<a) (44) として、Sjの代わりにTjが計算できれば
線上の点Pの他に2aPが事前に用意されていれば、従来の
φ進展開法で行われてきたSj, (0<j<b)をPから構成
しながらSを計算する方法を少し改良するだけで構成す
ることが出来る。図31〜33に事前演算付きべき乗テ
ーブル加算装置がTjを構成しながら式(43)を計算する処
理を模式的に示す。簡単の為にφ進展開係数は第19桁〜
第0桁からなる20桁の2進数又は符号付2進数で表現され
ているとする。この事前演算つきべき乗テーブル加算部
はP, φP, φ2P, 210P, φ210P,φ2210P, c0,…, c2を
受け取って式(43)の値を出力する。図32、33はその
ための処理の流れを表現したものである。図中のSは計
算のための楕円曲線上の点の座標を格納する一時記憶領
域であり計算の最終段階において装置の出力である式(4
3)の値を保持する。
を第19桁〜第0桁からなる20桁の2進数又は符号付き2進
数で表現した時の第j桁目の数値である。従ってci,jは0
又は±1のいずれかの数値でありci,j倍の計算は簡単に
実行できる。この数値が0以外である場合のみ「楕円加
算」を行う。図32,33中では煩雑さを避けるために
Q0=P, Q1=210Pとしている。
の第19桁〜第0桁の上位10桁と第9桁〜第0桁の下位10桁
とに分割している様子を表している。以下、図32、3
3では、分割された上位の桁においてはc0, c1, c2の第
19桁〜第10桁に相当する上位桁を第9桁〜第0桁として扱
うことにする。図32では、まずc0, c1, c2及び分割さ
れた上位桁の第9桁に注目しT9を計算している。T9の結
果は必ずしも一時記憶領域を必要とはせず、式(43)を計
算するための一時記憶領域Sに順次足し込んでゆけばよ
い。
式的に示される。第9桁に注目した処理が終わると、第8
桁に注目した処理が始まる。このときSを2倍してT9の各
項をSに足し込む処理が行われる。以下第7桁〜第0桁ま
で同様の処理が行われ、第0桁に注目した処理が終了し
た時点でSには式(43)の値が格納される。事前演算付き
べき乗テーブル加算装置ではこの値を出力する。
2倍算」に比べて非常に高速に実行できるのでP, φP,
φ2P, 210P, φ210P, φ2210P,はP,と210Pが事前に用意
されていれば非常に高速に計算できる。従って、この例
の場合Pの他に210P, を用意するだけで「楕円2倍算」の
回数を半分に出来る。
開後にmPを構成する過程で、事前に演算されたQt=dtaP,
(1<t<s)を用いることによって演算の高速化を行
う。図34は第6実施例による楕円曲線上のm倍演算装置
を示し、Rt,i生成部10と、φ進展開部20と、事前演
算付きべき乗テーブル加算部30とからなる。この演算
装置は楕円曲線E、定義体の大きさq、整数k、楕円曲
線上のGF(qk)有理点Pより事前に計算され得る楕円曲線
上のGF(qk)有理点列Qt=2taP (1<t<s)、整数mの入
力に対してmPを出力する。
成され、φ進展開部20は、図38に示すように構成さ
れ、事前演算付きべき乗テーブル加算部30は図40に
示すように構成される。Rt,i演算部10は、φ進展開部
20から得られるrが入力されているが、rはk以下に
出来ることが予め分かっているので、Rt,i演算部10の
入力rの代わりにkを入力し、Rt,i演算部10とφ進展
開部20を並列に動作させる事も出来る。この装置で
は、図34の装置の動作をプログラムで実現する場合
は、図35のフロー図に従って以下のように演算が実行
される。
k、φ、mに対して
2aP,…,2(s-1)aPに対して Rt.i=φi2taP (47) によりRt,i (0<i<r, 0<t<s)を求め、出力する。
ル加算部30は、入力E,Rt,i, ci, rに対して次式
2と、加算部13と、フロベニウス写像器14とからな
り、定義体の大きさq、楕円曲線上のGF(qk)有理点Pよ
り事前に計算され得る楕円曲線上のGF(qk)有理点列Qt=2
taP(0<t<s),整数rの入力に対して Rt,i = φi2taP ただし、0<i<r, 0<t<s を計算し、出力する。
ける図5又は6と同様に構成され、同様の処理を行うの
で説明を省略する。フロベニウス写像器14を複数個用
いて、点列Qj上の複数の点から並列にφQjを求めること
もできる。図36のRt,i生成部10の動作をプログラム
で実現する場合は、図37のフロー図に従って以下のよ
うに演算が実行される。
Qt,rを受け取る。 ステップS2:制御部12はt←0 と設定する。 ステップS3:制御部12は、U←Qtと設定する。 ステップS4:制御部12はi←0 と設定する。 ステップS5:制御部12は、Rt,i←Uと設定し、Rt,i
を出力する。
定する。 ステップS7:制御部12はi=r となったか判定し、な
っていればステップS9に移る。 ステップS8:制御部12はUをフロベニウス写像器6
Eに入力し、φU を受け取り、U←φU と設定し、ステ
ップS5に移る。
定する。 ステップS10:制御部12はt=s となったか判定し、
なっていなければステップS3に移る。 ・φ進展開部(38) 図38はφ進展開部20を示し、トレース演算部21
と、制御部22と、メモリ23と、剰余部24と、φ進
展開補正部25とからなり、定義体の大きさq、拡大次
数k、整数m、フロベニウス写像φの入力に対して式(4
6)を満たすc0, c1, …, cr-1,r(0<i<r)を求め、出力す
る。
に構成され、この構成は第4実施例における図25の構
成と同様である。図38のφ進展開部20の動作をプロ
グラムで実現する場合は、図39のフロー図に従って以
下のように演算が実行される。 ステップS1:m, q, φ, k がφ進展開部20に入力さ
れる。
力値φ、qから、 φ2−tφ+q=0 を満たすトレースtを求め、制御部22に渡す。なお、
トレースはφ、qによって固定の値なので、予め求めて
おき、外部から与えることにしてもよい。その場合、ト
レース演算器7Bは不要である。
に対しx+yφ≡m(modφk-1)を満たすx, yを演算し、メモ
リ23に保存する。また、演算が行われた状態で装置の
外から入力してもよい。その場合は、入力値は整数mの
代わりにx, yとなる。この演算を行わない場合は剰余部
24は不要である。メモリ22は、カウンタ値iと、整
数x, y, u, vを保持する。iの初期値は0である。
t, qに対し、x=0かつy=0が成り立っているかどうかを判
定し、x=0かつy=0ならカウンタ値iをr'としてφ進展開
補正部25に入力して、ステップS10に移る。 ステップS5:制御部22は入力値x, y, t, qに対し、
u←xmodq,v←(x-u)/qと設定する。
する。 ステップS7:YES ならば(x,y)←(tv+y, -v)と設定
し、メモリ23に書き込む。 ステップS8:NOならば(x,y)←(tv+y+t, -v-1), u←u-
qと設定し、これらの値をメモリ23に書き込む。
uをφ進展開補正部25に入力し、iに1を加算してメ
モリ23に書き込み、ステップS4に戻る。 ステップS10:φ進展開補正部25は、ステップS4
でx=0かつy=0が満足すると、入力値r', k, c'iから次式
30は、メモリ31と、制御部32と、楕円加算部33
と、楕円2倍演算部35とからなり、楕円曲線E、楕円
曲線の有理点列Rt,i=φi2taP (0<i<r, 0<t<s), 整数ci
(0<i<r)の入力に対して次式
算部30の動作をプログラムで実現する場合は、図41
のフロー図に従って以下のように演算が実行される。
メモリにj, S を保存し、更に次式
制御部32に渡す。 ステップS3:制御部32はj<0 ならSを出力して終了
する。 ステップS4:j<0 でなければ、制御部32はSを楕円
2倍算部34に渡す。楕円2倍算部34は入力Sに対し
て2Sを制御部32に渡す。制御部32は2SをSとしてメ
モリ31に保存する。
る。 ステップS6:制御部32はi=r ならステップS13に
移る。 ステップS7:制御部32はt←0 と設定する。 ステップS8:制御部32はt=s ならステップS12に
移る。 ステップS9:制御部32はct,iのj桁目cj,t,iがc
j,t,i=0ならばステップ11に移る。
j,t,iRt,iを楕円加算部33に渡す。楕円加算部33は
入力のS及びcj,t,iRt,iに対してS+cj,t,iRt,iを制御部
32に渡す。制御部32はS+cj,t,iRt,iをSとしてメモ
リ31に保存する。 ステップS11:制御部32はt←t+1と設定してステ
ップS8に移る。 ステップS12:制御部32はi←i+1と設定してステ
ップS6に移る。
設定してステップS3に移る。 ・φ進展開補正部(図42) 図42に示すように、図38におけるφ進展開補正部2
5は、図25と同様に加算部25Aと、α生成部25B
と、減算部25Cとからなり、整数c'0, c'1,…,
c'r'-1, r', kの入力に対し、次式
る。このφ進展開補正部25の動作をプログラムで実現
する場合は、図43のフロー図に従って以下のように演
算が実行される。
入力されると、加算部25Aはc"i=c'i+c'i+k+c'
i+2k+..., 0<i<k なるc"iを求める。 ステップS2:α生成部25Bは入力されたc"iとkか
ら、ci=c"-αを求め、c iを2進表現、あるいは符号付き
2進表現したときの0以外の桁の数をwiとすると、次式
の値
なαを求める。 ステップS3:減算部25Cはci=c"i-α (0<i<k)を求
め、出力する。またrとしてkを出力する。
上の楕円曲線に対するフロベニウス写像を用いた演算法
を改良し、より効率よく楕円m倍演算を行える。従っ
て、楕円DSA署名の署名検証などを高速に行うことが
できる。 第7実施例 前述の各実施例において、Pi生成部10ではPi=φiP(0<
i<k)を演算する。この演算はPをi回φで写像する演算
であり、楕円曲線上の点P0を(x0, y0)とすると、i回の
写像による点(xi, yi)は(x0 iq, y0 iq)となる。即ち、各
回の写像毎にxq, yq の演算を例えば図5で示したフロ
ベニウス写像器14のべき乗部14A、14Bで実行す
る方法及び構成を示す。
の組(a0,a1,…,ak-1)で表現するとき、多くの場合、次
の2つの方式のどちらかが選択される。α∈GF*(qk)=GF
(qk)-{0}を生成元として多項式基底{1,α,α2,…,
αk-q}を用いて表現する場合と,正規基底
有限体GF(q)の要素ai(0≦i<k)を用いて、 a={a0,a1,a2,…ak-1}=a0+a1α+a2α2+…+ak-1αk-1 になる。正規基底で表現する場合には,有限体GF(q)の
要素ai(0≦i<k)を用いて、
十分条件は異なるので,必ずしも同じ値とは限らない。
(詳細は,平松豊一著、応用代数学、裳華房の3.3と3.6
節を参照されたい。) 選択された基底が多項式基底であるか正規基底であるか
によって,演算に異なる特徴が現れる。通常,多項式基
底はそれで表される要素同士の掛け算を正規基底より高
速に実行することができるが、aのべき乗aqを求める場
合は,逆に正規基底より遅くなる性質がある。
る場合には、Stinson著櫻井監訳、暗号理論の基礎、共
立出版のp.198によれば、 x3=λ2-x1-x2 y3=λ(x1-x3)-y1 ただし、λはx1=x2かつy1=y2ならばλ=(3x1 2+c)/(2y1)
であり、それ以外の場合は、λ=(y2-y1)/(x2-x1)で求め
られる。また、このcは楕円曲線の選定パラメータによ
って決まる量である。
算に付いては、多項式基底による表現を用いても正規基
底による表現を用いても差異はないが、乗算を高速に実
行できるという利点から考えると多項式基底が好まし
い。しかし、aからaqの要素を関係づける写像(フロベ
ニウス・マップ)を実行する場合には{a0,a1,a2,…,a
k-1}から{ak-1,a0,a1,…,ak-2}に置換するだけで済
む点では、逆に、正規基底表現が好ましいと考えられ
る。
る要素同士の掛け算を正規基底より高速に実行すること
ができるという利点を持つが、aの写像であるべき乗q
を求める速度が遅いという欠点がある。この第7実施例
では、前述の各実施例のPi生成部10のフロベニウス写
像器14で実行される写像φPでのべき乗演算(xq,yq)
に適用され、そのべき乗演算量を削減可能な構成を示
す。
説明する。第7実施例の第1の方法は多項式基底を用い
た演算方法である。この実施例においては、αのGF(q)
上の最小多項式がxk-β(β∈GF(q))の形式で表されるよ
うに、有限体GF(q)の位数q、次数k及びβを設定し、
かつ、位数qと次数kとが互いに素であるように定め、
αを生成元として、GF(q)のk次拡大体GF(qk)を構成す
る。この拡大体GF(qk)の元a=a0+a1α+a2α2+…+ak-1α
k-1(ただしai∈GF(q)、0≦i<k)の多項式で表し、aの
qべき乗aqを求める演算元aq=a0+a1αq+a2α2 q+…+ak-1
α(k-1)qを実行する代わりに、これと等価な処理とし
て、次の演算を行う。
3q,…,α(k-1)qはそれぞれ次のように表される。 αq=αq mod k・β[q/k] α2q=α2q mod k・β[2q/k] α3q=α3q mod k・β[3q/k] ・・・ α(k-1)q=α(k-1)qmodk・β[(k-1)q/k] (54) ここで[iq/k](0<i<k)はiq/kの小数点以下を切り捨てた
整数を表す。qとkはお互いに素であるから、iq mod k
≠0になる。またq≠kであるから、0<j≠i<kを満たす
任意の整数jに対してjq mod k≠iq mod kが成り立つ。
従って、k-1個の基底(αqmodk,α2qmodk,α3qmodk,…,
α(k-1)qmodk)の各要素は相互に異なる指数をもち、基
底(αqmodk, α2qmodk,α3qmodk,…,α(k-1)qmodk)は基
底(α,α2,…,α(k-1))と要素の順序が入れ変わったの
みで同一の空間を構成する。以下、演算iqmod k(o<i<k)
の演算結果をiq/(k)と記す。新しい基底は、計算された
基底(αq/(k),α2q/(k),α3q/(k),…,α(k-1)q/(k))を
昇べきの順序に再配列して構成される。以下の記述にお
いて、iq mod k(0<i<k)が増加するように再配列する置
換操作を<>で表す。従って、<αq/(k),α2q/(k),α
3q/(k),…,α(k-1)q/(k)>={α,α2,α3,…,
αk-1}である。次に、設定されたβ,k,qを用い
て、修正因子β[iq/k](0<i<k)を計算し、これらの修正
因子を予めメモリに蓄積しておく。
て、それぞれ、a0,a1β[q/k]modq,a2β[2q/k]mod q,a3
β[3q/k]mod q,…,ak-1β[(k-1)q/k]mod qの演算を実行
し、その演算結果を、再配列によって構成された新しい
基底<α0=1, αq/(k), α2q/(k ),α3q/(k),…,α
(k-1)q/(k)>={1,α,α2,…,αk-1 }の順序に対応する
ように(新しい基底を構成するときに行った再配列と同
一の順序に、即ち、iqmod k(0<i<k)が増加するように)
再配列する。このようにして、従来方式のaq=a0+a1αq+
a2α2q…+ak-1α(k-1)qの演算と等価な処理を実行する
ことが出来る。以下、aiβ[iq/k]modqの演算結果をaiβ
[iq/k]/(q)と記す。
[2q/k],…,β[(k-1)q/k]を演算する(実際には、予め計
算してメモリに蓄積する)ことと、aiβ[iq/k]mod qを
演算してq mod k,2q mod k,…,(k-1)q mod kの値に従っ
て、並び順を置換する事であり、演算量を著しく低下さ
せることができる。このようにして、多項式基底を用い
る場合にはaのべき乗aqを求める速度が遅いという欠
点を克服することができる。
た演算方法を実施するためのべき乗演算部のブロック図
であり、前述の各実施例におけるフロベニウス写像器1
4内のべき乗部14A,14Bに適用される。本実施例
のべき乗演算部60は、多項式基底演算部61、修正因
子演算部62、係数演算部63、出力部64を備えてい
る。
最小多項式がxk-β(β∈GF(q))の形式で表されるように
設定された、有限体GF(q)の位数qと、該位数qと互い
に素であるように定められた次数kとを入力し、iqmod
k(1≦i≦k-1)を演算し、1=α 0及びαiq/(k) (1≦i≦k-
1)を昇べきの順に再配列して新たな多項式基底として出
力する。
びβを入力し、GF(q)の元ai(1≦i≦k-1)の修正因子とし
てβ[iq/k] (1≦i≦k-1)を演算する。係数演算部63は
GF(q)の元ai(1≦i≦k-1)と修正因子β[iq/k] (1≦i≦k-
1)を入力し、aiβ[iq/k]mod qを演算し、a0及びaiβ
[iq/k]/(q)(1<i< k-1)ccを、前記再配列して構成
された新たな多項式基底<α0=1,αiq/(k) (1≦i≦k-1)>
に対応する配列に再配列し、各基底の係数として出力す
る。
のベクトル表示とし、また、昇べきの順序に配列された
多項式基底の各に、対応する係数を乗算して加算した結
果をaqの多項式表現として出力する。図45は、図44
の実施例における係数演算部63の機能構成を示すブロ
ック図である。この実施例の係数演算部63は、メモリ
63Aと項別処理部63Bと置換処理部63Cとを備え
ている。メモリ63Aは予め演算された修正因子β[i
q/k] (1≦i≦k-1)を蓄積している。項別処理部63B
は、入力されたGF(q)の元a i(1≦i≦k-1)と、メモリ63
Aから読み出された修正因子β[iq/k](1≦i≦k-1)を入
力してaiβ[iq/k]mod qを演算する。置換処理部63C
は、ao及びaiβ[iq/k ]/(q)(1≦i≦k-1)を、昇べきの順
に配列された新たな多項式基底<α0=1, αiq/( k) (1≦i
≦k-1)>に対応して新たな配列に再配列し、それぞれの
対応する基底の係数として出力する。
るフロー図である。 ステップS1:予め、αのGF(q)上の最小多項式がxk-β
の形式で表されるように、有限体GF(q)の位数q、次数
k及びβを設定する。ここで、kとqとは互いに素であ
る。 ステップS2:次に、iq mod k(0<i<k)を演算し、α
iq/k(0<i<k)を昇べきの順序に配列して新たな多項式基
底を構成する。
<i<k)を計算する。β,i,qが予め分かっていて、これら
の修正因子が予めメモリに蓄積されている場合には、修
正因子を読み出す。 ステップS4:次に、GF(q)上で元素の修正演算aiβ
[iq/k]/(q)(0<i<k)が実行され、その演算結果とa0が新
たな多項式基底に対応する順序に順序変換される。以
下、修正された元a0, aiβ[iq/k]/(q)(0<i<k)を係数と
記す。順序変換されたa 0, aiβ[iq/k]/(q)(0<i<k)の配
列、即ち< a0,aiβ[iq/k]/(q)(0<i<k)>はaqのベクトル
表現として出力される。また、新たな多項式基底の各成
分と当該成分に対応する係数との積は加算され、aqの多
項式表現として出力される。
q|が32ビットでk=5の場合を例にとり説明する。図
45に示される通りメモリ63Aにβ[q/5], β[2q/5],
β[3q/ 5], β[4q/5],が蓄積され、項別処理部63Bの入
力a0,a1,a2,a3,a4に対し、それぞれ出力a0,a1β[q/5],a
2β[2q/5]a3β[3q/5],a4β[4q/5]が生成される。一例と
してq mod k=2(即ち、正整数qに対してq=5q+2)の場合
にはq mod k, 2q mod k,3q mod k, 4q mod kはそれぞれ
2,4,3,1になる。その結果、新しい基底は <1,aq mod 5,a2q mod 5,a3q mod 5,a4q mod 5> ={1,a3q/(5), aq/(5), a4q/(5), a2q/(5),}={1,α,
α2, α3, α4} になる従って、係数 {a0,a1β[q/5]/(q),a2β[2q/5]/(q),a3β[3q/5]/(q),a
4β[4q/5]/(q)} の順序は、基底の順序に対応して {a0,a3β[3q/5]/(q),a1β[q/5]/(q),a4β[4q/5]/(q),a
2β[2q/5]/(q)} に置換される。
置換が行われる。
2β[2q/5]/(q)} である。また、aqの多項式基底表現は aq= a0+{a3β[3q/5]/(q)}α+aβ[q/5]/(q)} α2+{a4β
[4q/5]/(q)}α+{a2β[2q/5]/(q)}α4 である。
装置を制御してそれぞれ第1、第3の実施形態の多項式
基底を用いた演算方法を実行するプロセッサと、これら
の演算方法を実行するために必要な手続きを記述する制
御プログラムが記録されている記録媒体が省略されてい
る。図44のべき乗演算部によるべき乗演算を実施する
ための制御プログラムには(1)多項式基底演算部61
に位数q及び次数kを入力し、iq mod k(1≦i≦k-1)を
演算し、1=α0とαiq/(k) (1≦i≦k-1)を昇べきの順に
配列して新たな多項式基底として出力する処理を実行さ
せ、(2)修正因子演算部62に位数q、次数k及びβ
を入力し、iq(1≦i≦k-1)をkで除算して小数点以下を切
り捨てた整数[iq/k]を演算し、さらに、GF(q)の元a1(1
≦i≦k-1)の修正因子としてβ[iq/k] (1≦i≦k-1)を演
算する処理を実行させ、(3)係数演算部63にGF(q)
の元a1(1≦i≦k-1)と修正因子β[iq/k] (1≦i≦k-1)を
入力し、aiβ[iq/k] mod q を演算し、(その演算結果
をaiβ[iq/k]/(q)として)a0及びaiβ[iq/k]/(q) (1≦i
≦k-1)を、前記新たな多項式基底<1=α0,αiq/(k) (1≦
i≦k-1)>に対応する配列に置換昇べきの順に配列し、各
基底の係数として出力する処理を実行させ、(4)出力
部64に、係数演算部の出力をaqのベクトル表示とし、
前記昇べきの順序に配列された多項式基底の各々に、対
応する係数を乗算して加算した結果をaqの多項式表現と
して出力する処理を実行させる、手続きが記述されてい
る。
て、扱えるデータ長が限定される演算処理に付加処理を
施すことによって、更に汎用な値を扱うことが出来る多
項式基底利用の演算方法及び装置を提供することが出来
る。第8実施例上述の第7実施例と同様にフロベニウス
写像、即ちaのqべき乗を効率良く演算するもう1つの
方法を以下に説明する。
(q)上の最小多項式xk-β(β∈GF(q))に最小多項式の定
義αk-β=0を適用して αiq=αiαi(q-1) =αiβi[(q-1)/k] (57) で表される。従って、aqは次式のように表される。
βi[(q-1)/k]∈GF(q) (0<i<k)である。従って、式(58)
は、aqが、αのGF(q)上の多項式として表現されている
事を示している。
とするベクトルとして表現すると aq=(a'0,a'1,a'2,…,a'i,…,a'k-1) =(a0,a1β[(q-1)/k], a2β2[(q-1)/k],…,aiβi[(q-1)/k],…, a(k- 1) β(k-1)[(q-1)/k]) (59) になる。
k-1)を基底とする多項式として表現すると
る。
算方法を実施するためのフロベニウス写像演算部の1実
施形態のブロック図である。以下の記述において、有限
体GF(q)のk次拡大体GF(qk)とし、代数系GF*(qk)= GF
(qk)-{0}の元をαとする。図47の演算部は、αのGF
(q)上の最小多項式が xk-β(β∈GF(q)) (61) になるようにq、β及びkを予め設定し、かつ、式(61)
が成り立つと言う条件の元でk|(q-1)(kがq-1を割り切
る)が成り立つとき、 a=a0+a1α+ a2α2+…+ak-1αk-1(a∈GF*(qk),ai∈GF
(q), 0≦i≦k-1) のqべき乗aq=a0+a1αq+ a2α2q+…+ak-1α(k-1)q に
等価な処理として aq=a0+a'1α+ a'2α2+…+a'jαj+…+a'k-1αk-1(a'i∈G
F(q),0≦j≦k) を演算するフロベニウス写像演算部である。ここで、a'
iは前掲の式(59)に記されているように次式で表される a'i= aiβi[(q-1)/k], (0<i<k) (62) この演算装置は、メモリ48A、乗算器48B、積和演
算器48Cを備えてる。メモリ48Aは、設定された
q、β及びkを用いて予め演算された
ai,…,ak-1)を入力し、及びメモリ48Aから(1, β
[(q-1)/k],β2[(q-1)/k],…,βi[(q-1)/k],…,β
(k-1)[(q-1)/k ])を入力し、対応する要素を乗算して(a'
0,a'1,…,a'i,…,a'k-1)=(a0・1,a1β[ (q-1)/k],…,ai
βi[(q-1)/k],…,ak-1β(k-1)[(q-1)/k])を生成する。
(a'0,a'1,…,a'i,…,a'k-1)と外部回路からの(α0=1,
α,…,αi,…,αk-1)とを入力して、対応する要素を乗
算した後、乗算結果を加算してその加算結果をaqとして
出力する。図48は、図47のフロベニウス写像演算装
置の動作を説明するフロー図である。図47には、本実
施形態の技術思想を明らかにする都合上、乗算器48B
がメモリ48Aから読み出された1と外部回路から入力
したa0とを乗算してa'0=a0を生成する例が記述されてい
るが、実際には、メモリ48Aには1を蓄積せずに、a0
を乗算器48B中を素通りさせて演算量を低減させる。
従って、図48のフロー図にはメモリ48Aに1を蓄積
せずに、a0が乗算器48B中を素通りする場合の動作が
記述されている。
式がxk-βで表され、かつ、k|(q-1)が成り立つように
設定されたq,k,βを用いてβ[(q-1)/k],β2[(q-1)/k],
…,βi [(q-1)/k],…,β(k-1)[(q-1)/k]を演算してその
演算結果をメモリ48Aに蓄積する。 ステップS2:次に、乗算器48B、外部回路からa0, a
1, a2,…,ai,…,ak-1を入力し、メモリ48Aから β[(q-1)/k],β2[(q-1)/k],…,βi[(q-1)/k],…,β(k-1)[(q-1)/k] を入力し (a0,a1,β[(q-1)/k],a2,β2[(q-1)/k],…,ai,βi[(q-1)/k],…,ak-1,β(k-1)[( q-1)/k] ) =(a'0,a'1, a'2,…,a'i,…,a'k-1) (64) を生成する。
(a'0,a'1, a'2,…,a'i,…,a'k-1)と多項式基底(1,α,
α2,…αk-1)は積和演算器48Cによって積和演算さ
れ、その演算結果がaqの多項式表現として出力される。
上記の動作は、図47に示されていない情報処理装置の
制御によって実行される。この情報処理装置と図47の
フロベニウス写像演算装置とは、実際には1つのコンピ
ューターによって実現され、前掲のフロベニウス写像演
算処理は、図示されていない記録媒体に記録されている
制御プログラムに記述されている手順に従って実行され
る。
項式がxk-β(β∈GF(q))の形式で表され、かつ、拡大
次数kがq-1を割り切るように設定された、有限体GF(q)
の位数q、拡大次数k及びβをデータとして用い、コン
ピュータにフロベニウス写像演算を実行させる。まず、
制御プログラムはコンピュータに、不等式0<i<kを満た
す全ての整数iに対してβi[(q-1)/k]を演算させる処理
を実行させ、次に、不等式0<i<kを満たす全ての整数iに
対してaiβi[(q-1)/k]を演算する処理を実行させる。
させる。この実施例によるフロベニウス写像演算装置の
処理コストはβ[(q-1)/k],β2[ (q-1)/k],…,β
(k-1)[(q-1)/k],をメモリに蓄積する事によって演算量
を著しく低下させることが出来る。
ルを構成することが出来るため、従来の乗べきテーブル
法を用いた装置と比べて適用範囲が広い(例えば、楕円
DSA署名の署名検索などにも利用できる)。また、従来
装置ではqの小さいFG(q)上の楕円曲線に対してのみ有効
であったフロベニウス写像を用いた演算装置を改良し、
任意の定義体上の楕円曲線に対してフロベニウス写像を
用いない場合の演算装置よりも効率良くm倍演算が行わ
れるようにした。
トのm倍演算を行うのに必要な楕円加算及び楕円2倍算
の回数を従来の2進法及び符号付2進法と比較した結果
を次表Iに示す。ただし、「べき乗テーブル加算部」に
櫛形法を使った場合、q〜2wとし、y=n/wとする。また、
zは事前に用意してある楕円曲線上の点の数にiを加えた
値である。通常、楕円曲線暗号ではnとして160〜260程
度の値を用いる。また、wはCPUのワード長を想定してい
る。(w=8,16,32,64またはその近くの値を用いる場合が
多い。
例えば、q=16、k=40の場合、フロベニウス写像を用いな
い場合に比べ、この発明は、約3.9倍高速にm倍演算をす
ることが出来る。定義体がGF(2)の場合は従来の演算法
と同一であるので、従来装置の拡張になっている。
すブロック図。
図。
図。
図。
ク図。
すブロック図。
を示すブロック図。
ブロック図。
順を示す流れ図。
手順を示す流れ図。
示す流れ図。
示すブロック図。
手順を示す流れ図。
ロック図。
示す流れ図。
構成を示すブロック図。
手順を示す流れ図。
示すブロック図。
処理手順を示す流れ図。
可能にした実施例を示す図。
図。
図。
す図。
ロック図。
するための図、BはHorner法による多項式の計算方法を
説明するための図、CはHorner法による多項式の計算方
法を説明するための図。
の図。
するための図
するための図
の構成図。
す図。
ロー図。
実施するための演算装置のブロック図である。
すブロック図。
説明するフロー図である。
Claims (66)
- 【請求項1】 有限体上に定義された楕円曲線E/GF(q)
上におけるGF(qk)有理点Pのm倍を演算する楕円曲線演
算装置であり、 有理点Pと、E/GF(q)上で定義されるフロベニウス写像
φと、1以上の整数kと、3以上の素数qまたはそのべ
き乗とを入力する入力手段と上記E/GF(q)によって定ま
るフロベニウス写像φを用いて 【数1】 を満たす整数r,ci, ただし0<i<r,0<r<k,−
q<ci <qを求めるφ進展開手段と、 上記有理点Pと整数r,ciが与えられ、 なるr個の点P0〜Pr-1を求めるPi生成手段と、 上記r個の点P0〜Pr-1が入力されて 【数2】 を計算するべき乗テーブル加算手段と、 計算した上記mPを出力する出力手段、 とを含む楕円曲線演算装置。 - 【請求項2】 請求項1の楕円曲線演算装置において、 上記べき乗テーブル加算手段は、 ciがd以下となるiについてPiを全て加算した値Sdを得
て、更に 【数3】 を演算してmPを得る手段を含む楕円曲線演算装置。 - 【請求項3】 請求項1の楕円曲線演算装置において、 上記べき乗テーブル加算手段は、 【数4】 からcijを求める手段と、 【数5】 を演算する手段と、 【数6】 をmPとして得る手段とを含む楕円曲線演算装置。
- 【請求項4】 請求項1の楕円曲線演算装置において、 上記べき乗テーブル加算手段は、 【数7】 【数8】 を求めてmPを得る手段である楕円曲線演算装置。
- 【請求項5】 請求項1の楕円曲線演算装置において、
加算の単位元をOとすると、 上記べき乗テーブル加算手段は、 Sr=O Si=ciP+φSi+1, 0<i<r (3a) の演算を行って、S0=mPを求める手段である楕円曲
線演算装置。 - 【請求項6】 有限体上に定義された楕円曲線E/GF(q)
上におけるGF(qk)有理点Pのm倍を演算する楕円曲線演
算装置であり、 有理点Pと、E/GF(q)上で定義されるフロベニウス写像
φと、1以上の整数kと、3以上の素数qまたはそのべ
き乗とを入力する入力手段と上記E/GF(q)によって定ま
るフロベニウス写像φを用いて 【数9】 を満たす整数r,ci, ただし0<i<r,0<r<k,−
q<ci <qを求めるφ進展開手段と、 上記有理点Pと上記E,qが与えられ、 Pi=iP なるq個の点P0〜Pq-1を求めるPi生成手段と、 r個の上記点P0〜Pr-1と上記c0〜cr-1が入力されて 【数10】 を計算するべき乗テーブル加算手段と、 計算した上記mPを出力する出力手段、 とを含む楕円曲線演算装置。 - 【請求項7】 請求項6の楕円曲線演算装置において、
加算の単位元をOとすると、 上記べき乗テーブル加算手段は、上記Piの全部又は一部
を用いて Sr=O Si=Pi+φSi+1, 0<i<r として演算してS0=mPを求める手段である楕円曲線
演算装置。 - 【請求項8】 請求項6の楕円曲線演算装置において、
外部から Pi=iP,0<i<q となるPiが少なくとも一部入力され、 上記べき乗テーブル加算手段は上記式(1a)の演算を Sr=O Si=Pi+φSi+1, 0<i<r として行う手段である楕円曲線演算装置。 - 【請求項9】 請求項1の楕円曲線演算装置において、
楕円曲線上のGF(qk)有理点Pに対し、 φkP=P が成り立つこと、又は、楕円曲線上のGF(qk)有理点Pに
対し、 (φk-1+φk-2+…+1)P=0 が成り立つ場合にこれを利用して、上記φ進展開手段で
求めたciの列とrに対し次式 【数11】 を満たすc'i, r'を求めて、これらを上記ci, rとして
上記べき乗テーブル加算手段に与えるφ進展開調整手段
を含み、上記べき乗テーブル加算手段は上記φ進展開調
整手段から与えられた上記ciとrを使用して上記式(2a)
の右辺を計算する楕円曲線演算装置。 - 【請求項10】 請求項9の楕円曲線演算装置におい
て、r>kの場合に、上記φ進展開調整手段は楕円曲線
上のGF(qk)有理点に対し、 φkP=P が成り立つことを利用して、c'i=ci+ci+k+ci+2k+
…, 0<i<k-1なる変換を行う事によってr個の列ci
をk個の列c'iに変換してから、上記べき乗テーブル加
算手段に入力して上記式(1a)の右辺の演算を行う手段で
ある楕円曲線演算装置。 - 【請求項11】 請求項9又は10の楕円曲線演算装置
において、上記べき乗テーブル加算手段は、ciがd以下
となるiについてPiをすべて加算してSdを得て、 【数12】 を求めることによって上記式(1a)を計算する手段を含
み、 上記φ進展開調整手段は楕円曲線上のGF(qk)有理点Pに
対し、 (φk-1+φk-2+…+1)P=0 が成り立っている場合、これを利用して、ciの絶対値を
小さくする変換を施す手段を含む楕円曲線演算装置。 - 【請求項12】 請求項9又は10の楕円曲線演算装置
において、上記べき乗テーブル加算手段は、 【数13】 ただし0<cij <1,[logb]はbより小さい最大の整
数、bは|ci|の最大値、によってcijを定め、 【数14】 によりSを上記mPとして求め、 上記φ進展開調整手段は、楕円曲線上のGF(qk)有理点P
に対し、 (φk-1+φk-2+…+1)P=0 が成り立っていいる場合に、これを利用して、ciを2進
又は符号付き2進表現を行う場合の各桁0以外の値の数
で表されるハミング重みを最小化するように変換する手
段を含む楕円曲線演算装置。 - 【請求項13】 請求項1、9又は10の楕円曲線演算
装置において、楕円曲線上の点PとしてP1, P2, …, Pn
を入力し、整数mとしてm1, m2, …, mnを入力し、 【数15】 を上記mPとして得る楕円曲線演算装置。 - 【請求項14】 請求項1の楕円曲線演算装置におい
て、 上記φ進展開手段はE/GF(q)によって定まるフロベニウ
ス写像φを用いて 【数16】 を満たすr,ciを求め、但し0<i<r,0<r<k,
−q<ci<qであり、上記Pi生成手段は、整数r及びP
より事前に計算されるS個のE/GF(q)上のGF(qk)有理点
Qt=dtaP, 0< t <sの入力に対し、 Rt,i≡φiQt ただし0< t<s, 0<i<rなるrs個のE/GF(q)上のGF(qk)
有理点Rt,iを求める手段であり、 C=1+max|ci|とするとa,d,sはa×s>logdCを満
たす正の整数であり、上記べき乗テーブル加算手段は 【数17】 なるcj,t,i∈Bを求め、ただしBは整数の有限集合で位
数の小さいものであり、 【数18】 を演算して、上記mPを得る事前演算付べき乗テーブル
加算手段である楕円曲線演算装置。 - 【請求項15】 請求項14の楕円曲線演算装置におい
て、上記事前演算付べき乗テーブル加算手段は、 【数19】 を演算する手段と、 【数20】 を演算してmPを得る手段、 とを含む楕円曲線演算装置。 - 【請求項16】 請求項15の楕円曲線演算装置におい
て、上記整数dはd=2であり、上記集合Bは{0,
1}であって上記式(6a)の演算に於いてcj,t,i倍の部分
を0倍及び1倍のみで構成する楕円曲線演算装置。 - 【請求項17】 請求項15の楕円曲線演算装置におい
て、上記整数dはd=2であり、上記集合Bは{−1,
0,1}であって上記式(6a)の演算に於いてcj,t,i倍の
部分を−1倍及び0倍及び1倍のみで構成する楕円曲線
演算装置。 - 【請求項18】 請求項1の楕円曲線演算装置におい
て、GF(q)のk次拡大体をGF(qk)とし、代数系GF*(qk)を
GF(qk)−{0}とし、GF(q)の元ai(0≦i<k)と、GF*(qk)
の元αとを用い、αをGF(q)上k次概約多項式f(x)の根
としてGF(qk)の元aをa=a0+a1α+a2α2+…+ak-1α
k-1の形式に多項式表現すると、上記Pi生成手段はaの
累乗aq=a0+a1αq+a2α2q+…+ak-1α(k-1)qを演算す
る、多項式基底を用いたべき乗演算を行うべき乗演算手
段を含み、上記べき乗演算手段は、 f(x)がxk-β(β∈GF(q))の形式で表されるように設定さ
れた有限体GF(q)の位数qと、概位数qと互いに素であ
るように定められた次数kとを入力し、iq modk(1≦i
≦k-1)を演算し、その演算結果をiq/(k)と記述すると
き、α0=1及びαiq/(k)(1≦i≦k-1)を昇べきの順に再配
列して新たな多項式基底として出力する多項式基底演算
部と、 上記位数q、次数k及びβを入力し、iq(1≦i≦k-1)を
kで除算して小数点以下を切り捨てた整数[iq/k]を演算
し、さらに、GF(q)の元ai(1≦i≦k-1)の修正因子として
β[iq/k](1≦i≦k-1)を演算する修正因子演算部と、 GF(q)の元ai(1≦i≦k-1)と修正因子β[iq/k](1≦i≦k-
1)を入力し、aiβ[iq/k]modqを演算し、その演算結果
をaiβ[iq/k]/(q)と記すとき、a0とaiβ[iq/k]/(q)(1≦
i≦k-1)とを、上記新たな多項式基底に対応する配列に
再配列し、各基底要素の係数として出力する係数演算部
と、 上記係数演算部の出力をaqのベクトル表示とし、上記昇
べきの順に再配列された多項式基底の各要素に、対応す
る係数を乗算して加算した結果をaqの多項式表現として
出力する出力部とを含む楕円曲線演算装置。 - 【請求項19】 請求項18の楕円曲線演算装置におい
て、上記係数演算部は、メモリ手段と項別処理部と置換
処理部とを有し、上記メモリ手段は予め演算された修正
因子β[iq/k](1≦i≦k-1)を蓄積し、上記項別処理部
は、入力されたGF(q)の元ai(1≦i≦k-1)と、メモリ手段
から読み出された修正因子β[iq/k](1≦i≦k-1)を入力
してaiβ[iq/k]mod qを演算し、置換処理部は、a0とai
β[iq/k]/(q)(1≦i≦k-1)とを、上記昇べきの順に配列
された新たな多項式基底{1=α0,αiq/(k)(1≦i≦k-
1)}に対応して新たな配列に再配列し、それぞれの対応
する基底の係数として出力する楕円曲線演算装置。 - 【請求項20】 請求項18の楕円曲線演算装置におい
て、拡大次数kがq-1を割り切るように設定された、有
限体GF(q)の位数q、拡大次数k及びβを用いて、不等
式0<i<kを満たす総ての整数iに対して予め演算された
βi[(q-1)/k]を入力し、及び、上記a1, a2, …, ai,
…, ak-1を入力し、不等式0<i<kを満たす総ての整数i
に対してaiβi[(q-1)/k]を演算し、それぞれのaiβ
i[(q-1)/k](0<i<k)を、aqのベクトル表現の、基底αjに
対応する要素a'iとして出力する乗算手段を含む楕円曲
線演算装置。 - 【請求項21】 請求項20の楕円曲線演算装置におい
て、上記フロベニウス写像演算手段は、予め演算された
βi[(q-1)/k](0<i<k)を蓄積し、上記乗算手段にβ
i[(q-1)/k](0<i<k)を出力するメモリ手段を含む楕円曲
線演算装置。 - 【請求項22】 請求項20の楕円曲線演算装置におい
て、上記a0と上記乗算手段によって生成されたa'i(0<i<
k)を入力して、積和 【数21】 を演算して、上記aqの多項式表現として出力する積和演
算手段を含む楕円曲線演算装置。 - 【請求項23】 有限体上に定義された楕円曲線E/GF
(q)上におけるGF(qk)有理点Pのm倍を演算する装置に
使用される楕円曲線演算方法であり、φ進展開手段と、
P i 生成手段と、加算手段とを用いて以下のステップを行
うことを特徴とする楕円曲線演算方法。: (A) 有理点Pと、E/GF(q)上で定義されるフロベニウス
写像φと、整数kと、整数mと、3以上の素数qまたは
そのべき乗とを上記φ進展開手段に入力するステップ、 (B) 上記整数mと、上記整数kと、上記E/GF(q)によっ
て定まるフロベニウス写像φを入力として 【数22】 を満たす整数r,ci,但し0<i<r,0<r<k,−
q<ci <qを求めるステップ、 (C) 上記有理点Pと整数rと上記写像φと上記qを上記
P i 生成手段に入力して、 なるr個の点P0〜Pr-1を生成するステップ、 (D) 上記r個の点P0〜Pr-1と上記整数ciと、上記Eと
上記rを上記加算手段に入力して 【数23】 を計算するステップ、 (E) その計算した上記mPを出力するステップ。 - 【請求項24】 請求項23の楕円曲線演算方法におい
て、上記ステップ(D)は以下のステップを含む: (D-1) 上記ciとdと上記Piを入力してciがd以下となるi
についてPiをすべて加算した値Siを求め、 (D-2) ciの最大値bと上記Sdを入力して 【数24】 を求め、そのSを上記mPとして出力することを特徴と
する楕円曲線演算方法。 - 【請求項25】 請求項23の楕円曲線演算方法におい
て、上記ステップ(D)は以下のステップを含む: (D-1) ciを入力してその最大値bについて[log2b]を求
め、 ciと[log2b]を入力して 【数25】 を満たすcijを求め、 (D-2) cijとPiとkを入力して 【数26】 を演算し、 (D-3) Sjと[log2b]を入力して 【数27】 を演算してS=mPとして出力することを特徴とする楕
円曲線演算方法。 - 【請求項26】 請求項23の楕円曲線演算方法におい
て、上記ステップ(D)は以下のステップを含む: (D-1) mとbを入力して、mのb進展開した値miと、mi
を2進展開した値mijを求め、ただしbは0<m<bkを
満たす整数、 mijとPiとkを入力して 【数28】 を求め、 (D-2) ciを入力してその最大値bを求め、bとSjを入力
して、 【数29】 を計算し、その結果SをmPとして演算することを特徴
とする楕円曲線演算方法。 - 【請求項27】 請求項23の楕円曲線演算方法におい
て、加算の単位元をOとすると、上記ステップ(D)はSr
=Oとi=r−1を初期値としてメモリに格納し、 メモリよりSi+1とiを取出し、そのSi+1とci,Pi,
φを入力して Si=ciP+φSi+1,0<i<r (3b) を演算し、かつi←i−1としてSi+1とiをメモリに
格納し、 メモリからSi+1とiを取り出して上記のことを繰り返
し、S0を上記mPとして求めるステップであることを特
徴とする楕円曲線演算方法。 - 【請求項28】 有限体上に定義された楕円曲線E/GF
(q)上におけるGF(qk)有理点Pのm倍を演算する装置に
使用される楕円曲線演算方法であり、φ進展開手段と、
P i 生成手段と、べき乗テーブル加算手段とを用いて以
下のステップを行うことを特徴とする楕円曲線演算方
法。: (A) 有理点Pと、E/GF(q)上で定義されるフロベニウス
写像φと、整数kと、3以上の素数qまたはそのべき乗
とを上記φ進展開手段に入力するステップ、 (B) 上記mとkと、上記E/GF(q)によって定まるフロベ
ニウス写像φを用いて 【数30】 を満たす整数r,ci,但し0<i<r,0<r<k,−
q<ci <qを求めるステップ、 (C) 上記有理点Pと上記E、qを上記P i 生成手段に入
力して、 Pi=iP なるq個の点P0〜Pq-1を生成するステップ、 (D) r個の上記点P0〜Pr-1と上記c0〜cr-1を上記べき
乗テーブル加算手段に入力して、 【数31】 を計算するステップ、 (E) 計算した上記mPを出力するステップ。 - 【請求項29】 請求項28の楕円曲線演算方法におい
て、iとPを入力して Pi=iP,ただし0<i<q の演算を行うステップを含み、 上記ステップ(D)は、 Sr=O、i=r−1を初期値としてメモリに格納し、 上記P i の全部又は一部を用い、かつメモリからS i+1 とi
とを取り出して Si=Pi+φSi+1,0<i<r (3b) を演算し、かつi←i−1として、S i+1 とiをメモリに
格納し、 メモリからS i+1 とiとを取り出して上記のことを繰り返
して 演算するステップであることを特徴とする楕円曲線
演算方法。 - 【請求項30】 請求項28の楕円曲線演算方法におい
て、外部から Pi=iP,0<i<q となるPiを少なくとも一部入力し、上記ステップ(D)は
上記メモリに対する格納読み出しを利用して上記式(3b)
の演算をSr=O、i=r−1を初期値として Si=Pi+φSi+1,0<i<r を演算するステップであることを特徴とする楕円曲線演
算方法。 - 【請求項31】 請求項23の楕円曲線演算方法におい
て、φ進展開調整手段を用い、このφ進展開調整手段に
上記ステップ(B)で求めたc i の列とrと、上記φを入力
して、楕円曲線上のGF(qk)有理点Pに対し、 φkP=P が成り立つこと、又は、楕円曲線上のGF(qk)有理点Pに
対し、 (φk-1+φk-2+…+1)P=0 が成り立つ場合にこれを利用して、 【数32】 を満たすc'i, r'を求めて、これらを上記ci,rとして上
記べき乗テーブル加算ステップ(D)に与えるφ進展開調
整ステップを含み、上記ステップ(D)は上記φ進展開調
整ステップで生成された上記ciとrと、上記Piと上記E
を上記加算手段に入力して上記式(2b)の右辺を計算する
ことを特徴とする楕円曲線演算方法。 - 【請求項32】 請求項31の楕円曲線演算方法におい
て、r>kの場合に、上記φ進展開調整ステップは、楕
円曲線上のGF(qk)有理点に対し、 φkP=P が成り立つことを利用して、上記kも上記φ進展開調整
手段に入力して、c'i=ci+ci+k+ci+2k+…, 0<i<
k-1なる変換を行うことによってr個の列ciをk個の列
c'iに変換するステップであることを特徴とする楕円曲
線演算方法。 - 【請求項33】 請求項31又は32の楕円曲線演算方
法において、上記ステップ(D)は、ciとPiを入力して上
記ciがd以下となるiについてPiをすべて加算してSdを
得て、 上記各Sdとrを入力して 【数33】 を求めることによって上記式(2b)を計算するステップを
含み、 上記φ進展開調整ステップは、楕円曲線上のGF(qk)有理
点Pに対し、 (φk-1+φk-2+…+1)P=0 が成り立っている場合、これを利用して、ciの絶対値を
小さくする変換を施すステップを含むことを特徴とする
楕円曲線演算方法。 - 【請求項34】 請求項31又は32の楕円曲線演算方
法において、上記ステップ(D)は、ciを入力して、その
|ci|の最大値bの[logb]を求め、[a]はaより小さい最
大の整数、 ciと[logb]を入力して、 【数34】 を満たすcijを求め、 cij,Pi,kを入力して、 【数35】 を演算してSを上記mPとして求め、 上記φ進展開調整ステップは、楕円曲線上のGF(qk)有理
点Pに対し、 (φk-1+φk-2+…+1)P=0 が成り立っている場合、これを利用して、ciを入力して
ciの2進又は符号付き2進表現を行い、その各桁0以外
の値の数で表されるハミング重みを最小化するようにci
を変換するステップを含むことを特徴とする楕円曲線演
算方法。 - 【請求項35】 請求項23,31又は32の楕円曲線
演算方法において、上記ステップ(D)は加算手段に楕円
曲線上の点PとしてP1, P2, …, Pnを入力し、整数mと
してm1, m2, …, mnを入力して、 【数36】 を演算してその結果を上記mpとして得ることを特徴と
する楕円曲線演算方法。 - 【請求項36】 有限体上に定義された楕円曲線E/GF
(q)上におけるGF(q k )有理点Pのm倍を演算する装置に
使用される楕円曲線演算方法であり、φ進展開手段と、
R t,i 生成手段と、加算手段とを用いて以下のステップ
を行うことを特徴とする楕円曲線演算方法。: (A) 有理点Pと、E/GF(q)上で定義されるフロベニウス
写像φと、整数kと、整数mと、3以上の素数qまたは
そのべき乗とを上記φ進展開手段に入力するステップ、 (B) 上記整数mと、上記整数kと上記E/GF(q) によって定
まるフロベニウス写像φを用いて、 【数37】 を満たすr,c i 、ただし0<i<r,0<r<k,-q<c<q,
を求めるステップ、(C)整 数d及びPより事前に計算されたs個のE/GF(q)上の
GF(qk)有理点列Qt=dtaP, 0<t<s,とφiと、rを上記
R t,i 生成手段に入力して、 Rt,i=φiQt ただし0<i<r を計算して、rs個のE/GF(q)上のGF(qk)有理点Rt,iを求
めるステップ、 (D)上 記ci,a,s,t,dを上記加算手段に入力して、 【数38】 を満たすcj,t,i∈Bを求め、ただしBは整数の有限集合
で位数の小さいものであり、上記dとcj,t,iとRt,i、aと
rとsを入力して、 【数39】 を演算して、上記mPを得る事前演算付べき乗テーブル
加算ステップ。 - 【請求項37】 請求項36の楕円曲線演算方法におい
て、上記事前演算付べき乗テーブル加算ステップは 上記Rt,i
とcj,t,iとrとsを入力して、 【数40】 を演算するステップと、上記djとTjとaを入力して、 【数41】 を演算してmPを得るステップ、 とを含むことを特徴とする楕円曲線演算方法。 - 【請求項38】 請求項37の楕円曲線演算方法におい
て、上記整数dをd=2とし、上記集合Bを{0,1}
として上記式(6b)の演算においてcj,t,i倍の部分を0倍
及び1倍のみで構成することを特徴とする楕円曲線演算
方法。 - 【請求項39】 請求項37の楕円曲線演算方法におい
て、上記整数dをd=2とし、上記集合Bを{−1,
0,1}とし、上記式(6b)の演算においてcj,t,i倍の部
分を−1倍及び0倍及び1倍のみで構成することを特徴
とする楕円曲線演算方法。 - 【請求項40】 請求項23の楕円曲線演算方法におい
て、GF(q)のk次拡大体をGF(qk)とし、代数系GF*(qk)を
GF(qk)−{0}とし、GF(q)の元ai(0≦i<k)と、GF*(q)
の元αとを用い、αをGF(q)上k次規約多項式f(x)の根
としてGF(qk)の元aをa=a0+a1α+a2α2+…+ak-1α
k-1の形式に多項式表現し、 上記ステップ(C)はaの累乗aq=a0+a1αq+a2α2q+…
+ak-1α(k-1)qを演算する、多項式基底を用いたべき乗
演算を行うべき乗演演算ステップを含み、上記べき乗演
算ステップは、 上記f(x)がxk-β(β∈GF(q))の形式で表されるように設
定された有限体GF(q)の位数qと、該位数qと互いに素
であるように定められた次数kとを入力して、iq mod k
(1≦i≦k-1)を演算し、その演算結果をiq/(k)と記述す
るとき、α0=1及びαiq/(k)(1≦i≦k-1)を昇べきの順
に再配列して新たな多項式基底として出力する多項式基
底演算ステップと、 上記位数q、次数k及びβ、iq/(k)を入力して、iq(1≦
i≦k-1)をkで除算して小数点以下を切り捨てた整数[iq
/k]を演算し、さらに、β、iq/kを入力してGF(qk)の元a
i(1≦i≦k-1)の修正因子としてβ[iq/k](1≦i≦k-1)を
演算する修正因子演算ステップと、 GF(qk)の元ai(1≦i≦k-1)と修正因子β[iq/k](1≦i≦k-
1)とqを入力して、aiβ[iq/k]mod qを演算し、その演
算結果をaiβ[iq/k]/(q)と記すとき、a0とaiβ[iq/k]/
(q)(1≦i≦k-1)とを、上記新たな多項式基底に対応する
配列に再配列し、各基底要素の係数として出力する係数
演算ステップと、 上記係数演算ステップの出力をaqのベクトル表示とし、
上記昇べきの順序に配列された多項式基底の各要素に、
対応する係数を乗算して加算した結果をaqの多項式表現
として出力する出力ステップ、 とを含むことを特徴とする楕円曲線演算方法。 - 【請求項41】 請求項40の楕円曲線演算方法におい
て、上記係数演算ステップは、 予め演算された修正因子β[iq/k](1≦i≦k-1)をメモリ
手段に蓄積する蓄積ステップと、 入力されたGF(q)の元ai(1≦i≦k-1)と、上記メモリ手段
から読み出された修正因子β[iq/k](1≦i≦k-1)を入力
してaiβ[iq/k]mod qを演算する項別処理ステップと、 a0とaiβ[iq/k]/(q)(1≦i≦k-1)とを入力して、上記昇
べきの順に配列された新たな多項式基底{1=α0,α
iq/(k)(1≦i≦k-1)}に対応して新たな配列に再配列
し、それぞれの対応する基底の係数として出力する置換
処理ステップ、 とを含むことを特徴とする楕円曲線演算方法。 - 【請求項42】 請求項40の楕円曲線演算方法におい
て、拡大次数kがq−1を割り切るように設定された、
有限体GF(q)の位数q、拡大次数k及びβを用いて、不
等式0<i<kを満たす総ての整数iに対して予め演算され
たβi[(q-1)/k]を入力する入力ステップと、 上記a1, a2, …, ai, …, ak-1と上記βi[(q-1)/k]を入
力して、不等式0<i<kを満たす総ての整数iに対してai
βi[(q-1)/k]を演算し、それぞれのaiβi[(q-1)/k](0<i
<k)を、aqのベクトル表現の、基底αjに対応する要素a'
iとして出力する乗算ステップ、 とを含むことを特徴とする楕円曲線演算方法。 - 【請求項43】 請求項42の楕円曲線演算方法におい
て、上記フロベニウス写像演算ステップの上記入力ステ
ップは、予め演算されメモリ手段に蓄積されてあるβ
i[(q-1)/k](0<i<k)を読み出して入力することを特徴と
する楕円曲線演算方法。 - 【請求項44】 請求項42の楕円曲線演算方法におい
て、上記a0と上記乗算ステップによって生成されたa'
i(0<i<k)とαiを入力して、 【数42】 を演算して、上記aqの多項式表現として出力する積和演
算ステップを含むことを特徴とする楕円曲線演算方法。 - 【請求項45】 有限体上に定義された楕円曲線E/GF
(q)上におけるGF(qk)有理点Pのm倍を演算する装置に
使用される楕円曲線演算方法をコンピュータで実行する
プログラムが記録された記録媒体であり、上記プログラ
ムは、φ進展開手段と、P i 生成手段と、加算手段とを
用いて以下のステップを実行させることを特徴とする記
録媒体。: (A) 有理点Pと、E/GF(q)上で定義されるフロベニウス
写像φと、整数kと、整数mと、3以上の素数qまたは
そのべき乗とを上記φ進展開手段に入力するステップ、 (B) 上記mと上記kと上記E/GF(q)によって定まるフロベ
ニウス写像φを入力して、 【数43】 を満たす整数r,ci,ただし0<i<r,0<r<
k,−q<ci <qを求めるステップ、 (C) 上記有理点Pと整数r,ci、上記写像φ,上記qを
上記P i 生成手段に入力して なるr個の点P0〜Pr-1を生成するステップ、 (D) 上記r個のP0〜Pr-1と上記ciと、上記Eと上記r
を上記加算手段に入力して 【数44】 を計算するステップ、 (E) その計算した上記mPを出力するステップ。 - 【請求項46】 請求項45の記録媒体において、上記
ステップ(D)は以下のステップを含む: (D-1) 上記ciとdと上記Piを入力してciがd以下となる
iについてPiをすべて加算した値Sdを求め、 (D-2) ciの最大値bとSdとを入力して 【数45】 を演算し、上記mPを得ることを特徴とする記録媒体。 - 【請求項47】 請求項45の記録媒体において、上記
ステップ(D)は以下のステップを含む: (D-1) ciを入力して、その最大値bの[log2b]を求め、 ciと[log2b]を入力して 【数46】 を満たすcijを求め、 (D-2) 上記cijとPi,kを入力して、 【数47】 Sjを演算し、 (D-3) Sjと[log2b]を入力して、 【数48】 を演算してS=mPを得ることを特徴とする記録媒体。 - 【請求項48】 請求項45の記録媒体において、上記
ステップ(D)は以下のステップを含む: (D-1) mとbを入力して、mのb進展開した値miと、
miを2進展開した値mijを求め、ただしbは0<m<b
kを満たす整数、 mijとPiとkを入力して 【数49】 を計算し、 (D-2) ciを入力して、その最大値bを求め、bと上記
計算結果Sjを入力して、 【数50】 を計算し、その計算結果SをmPとして演算することを
特徴とする記録媒体。 - 【請求項49】 請求項45の記録媒体において、加算
の単位元をOとすると、上記ステップ(D)はSr=Oとi
=r−1を初期値としてメモリに格納し、 メモリよりSi+1とiを取出し、そのSi+1とPi、ci、φ
を入力して、 Si=ciP+φSi+1,0<i<r (3c) を演算し、かつi←i−1として、そのiと演算結果S
i+1をメモリに入力し、これより再び取り出して、上記
のことを繰り返し、S0を上記mPとして求めるステップ
であることを特徴とする記録媒体。 - 【請求項50】有限体上に定義された楕円曲線E/GF(q)
上におけるGF(qk)有理点Pのm倍を演算する装置に使用
される楕円曲線演算方法をコンピュータで実行するプロ
グラムが記録された記録媒体であり、上記プログラム
は、φ進展開手段と、P i 生成手段と、べき乗テーブル
加算手段とを用いて以下のステップを実行させることを
特徴とする記録媒体。: (A) 有理点Pと、E/GF(q)上で定義されるフロベニウス
写像φと、整数kと、3以上の素数qまたはそのべき乗
とを上記φ進展開手段に入力するステップ、 (B) 上記mとkと上記E/GF(q)によって定まるフロベニ
ウス写像φを用いて 【数51】 を満たす整数r,ci,ただし0<i<r,0<r<
k,−q<ci <qを求めるステップ、 (C) 上記有理点Pと上記E,qを上記P i 生成手段に入力
して、 Pi=iP なるq個の点P0〜Pq-1を生成するステップ、 (D) r個の上記P0〜Pr-1と上記c0〜cr-1を上記べき
乗テーブル加算手段に入力して 【数52】 を計算するステップ、 (E) 計算した上記mPを出力するステップ。 - 【請求項51】 請求項50の記録媒体において、 上記ステップ(D)は、S r =O,i=r−1を初期値としてメモリに格納し、 上記Piの全部又は一部を用い、かつメモリからS i+1
とiを取り出して Si=Pi+φSi+1,0<i<r (3c) を演算し、かつi←i−1として、S i+1 とiをメモ
リに格納し、 メモリからS i+1 とiを取り出して上記のことを繰り
返して演算 するステップであることを特徴とする記録媒
体。 - 【請求項52】 請求項50の記録媒体において、外部
から Pi=iP,0<i<q となるPiを少なくとも一部入力し、上記ステップ(D)は
メモリに対する格納読み出しを繰り返して上記式(3c)の
演算をSr=O,i=r−1を初期値として Si=Pi+φSi+1,0<i<r を演算するステップであることを特徴とする記録媒体。 - 【請求項53】 請求項46の記録媒体において、φ進
展開調整手段に上記ステップ(B)で求めたc i の列とr
と、上記φを入力して、楕円曲線上のGF(qk)有理点Pに
対し、 φkP=P が成り立つこと、又は、楕円曲線上のGF(qk)有理点Pに
対し、 (φk-1+φk-2+…+1)P=0 が成り立つ場合にこれを利用して、 【数53】 を満たすc'i, r'を求めて、これらを上記ci, rとして上
記べき乗テーブル加算ステップ(D)に与えるφ進展開調
整ステップを含み、上記ステップ(D)は上記φ進展開調
整ステップで生成された上記ciとr、上記Piと上記Eを
上記加算手段に入力して上記式(2c)の右辺を計算するこ
とを特徴とする記録媒体。 - 【請求項54】 請求項53の記録媒体において、r>
kの場合に、上記φ進展開調整ステップは、楕円曲線上
のGF(qk)有理点に対し、 φkP=P が成り立つことを利用して、kも上記φ進展開調整手段
に入力してc'i=ci+ci+k+ci+2k+…,O<i<k-1なる変
換を行うことによってr個の列ciをk個の列c'iに変換
するステップであることを特徴とする記録媒体。 - 【請求項55】 請求項53又は54の記録媒体におい
て、上記ステップ(D)は、上記ciとPiを入力して上記ci
がd以下となるiについてPiをすべて加算してSdを得
て、 上記各Sdとrを入力して 【数54】 を求めることによって上記式(2c)を計算する手段を含
み、 上記φ進展開調整ステップは、楕円曲線上のGF(qk)有理
点Pに対し、 (φk-1+φk-2+…+1)P=0 が成り立っている場合、これを利用して、ciの絶対値を
小さくする変換を施すステップを含むことを特徴とする
記録媒体。 - 【請求項56】 請求項53又は54の記録媒体におい
て、上記ステップ(D)は、 ciを入力して、その|ci|の最大値bの[logb]を求め、
[a]はaより小さい最大数、 ciと[logb]を入力して 【数55】 cijを求め、 cij,Pi,kを入力して 【数56】 を計算してSを上記mPとして求め、 上記φ進展開調整ステップは、楕円曲線上のGF(qk)有理
点Pに対し、 (φk-1+φk-2+…+1)P=0 が成り立っている場合に、これを利用して、ciを入力し
てciの2進又は符号付2進表現を行い、その各桁0以外
の値の数で表されるハミング重みを最小化するようにci
を変換するステップを含むことを特徴とする記録媒体。 - 【請求項57】 請求項46,53又は54の記録媒体
において、上記ステップ(D)は加算手段に楕円曲線上の
点PとしてP1, P2, …, Pnを入力し、整数mとしてm1,
m2, …, mnを入力して、 【数57】 を計算し,その結果を上記mPとして得ることを特徴と
する記録媒体。 - 【請求項58】 有限体上に定義された楕円曲線E/GF
(q)上におけるGF(q k )有理点Pのm倍を演算する装置に
使用される楕円曲線演算方法をコンピュータで実行する
プログラムが記録された記録媒体であり、上記プログラ
ムは、φ進展開手段と、R t,i 生成手段と、加算手段と
を用いて以下のステップを実行させることを特徴とする
記録媒体。: (A) 有理点Pと、E/GF(q)上で定義されるフロベニウス
写像φと、整数kと、整数mと、3以上の素数qまたは
そのべき乗とを上記φ進展開手段に入力するステップ 、(B)上記整数m,kと 、E/GF(q)によって定まるフロベニ
ウス写像φを用いて 【数58】 を満たすr,c i 、ただし0<i<r, 0<r<k, -q<ci<q
を求めるステップ、 (C)整 数d及びPより事前に計算されたs個のE/GF(q)上
のGF(qk)有理点列Qt=dtaP, 0<t<s, とφiとrを上記
R t,i 生成手段に入力して、 Rt,i=φiQt, ただし0<i<r を計算してrs個のE/GF(q)上のGF(qk)有理点Rt,iを求め
るステップ、 (D)上 記ci,a,s,t,dを上記加算手段に入力して 【数59】 を満たすcj,t,i∈Bを求め、ただしBは整数の有限集合
で位数の小さいものであり、 上記dとcj,t,iとRt,iとaとrとsを入力して、 【数60】 を演算して、上記mPを得る事前演算付べき乗テーブル
加算ステップ。 - 【請求項59】 請求項58の記録媒体において、上記事前演算付べき乗テーブル加算ステップは 上記Rt,i
とcj,t,iとrとsを入力して、 【数61】 を演算するステップと、上記djとTjとaを入力して 【数62】 を演算してmPを得るステップ、 とを含むことを特徴とする記録媒体。 - 【請求項60】 請求項59の記録媒体において、上記
整数dはd=2であり、上記集合Bは{0,1}であっ
て上記式(6c)の演算においてcj,t,i倍の部分を0倍及び
1倍のみで構成することを特徴とする記録媒体。 - 【請求項61】 請求項59の記録媒体において、上記
整数dはd=2であり、上記集合Bは{−1,0,1}
であって上記式(6c)の演算においてcj,t,i倍の部分を0
倍及び1倍のみで構成することを特徴とする記録媒体。 - 【請求項62】 請求項46の記録媒体において、GF
(q)のk次拡大体をGF(qk)とし、代数系GF*(qk)をGF
(qk)-{0}とし、GF(q)の元ai(0≦i<k)と、GF*(qk)の
元αとを用い、αをGF(q)上k次既約多項式f(x)の根と
してGF(qk)の元aをa=a0+a1α+a2α2…+ ak-1αk-1の形
式に多項式表現すると、上記ステップ(C)はaの累乗aq=
a0+a1αq+a2α2q…+ ak-1α(k-1)qを演算する、多項式
基底を用いたべき乗演算を行うべき乗演演算ステップを
含み、上記べき上演算ステップは、 上記f(x)がxk-β(β∈GF(q))の形式で表されるように
設定された有限体の位数qと、該位数qと互いに素であ
るように定められた次数kとを入力して、iq mod k(1≦
i≦k-1)を演算し、その演算結果をiq/(k)と記述すると
き、a0=1及びαiq/(k) (1≦i≦k-1)を昇べきの順に再配
列して新たな多項式基底として出力する多項式基底演算
ステップと、 上記位数q、次数k及びβとiq/(k)を入力して、iq(1≦i
≦k-1)をkで除算して小数点以下を切り捨てた整数[iq/
(k)]を演算し、さらに、βとiq/kを入力してGF(q)の元
ai(1≦i≦k-1)の修正因子としてβ[iq/(k)] 1(≦i≦k-
1)を演算する修正因子演算ステップとGF(q)の元ai(1≦i
≦k-1)と修正因子β[iq/(k)] (1≦i≦k-1)とqを入力し
て、aiβ[iq/(k)] mod qを演算し、その演算結果をaiβ
[iq/(k)] /(q)と記すとき、a0とaiβ[iq/(k)] /(q)(1≦
i≦k-1)とを、上記新たな多項式基底に対応する配列に
再配列し、各基底要素の係数として出力する係数演算ス
テップと、 上記係数演算ステップの出力をaqのベクトル表示とし、
上記昇べき順序に配列された多項式基底の各要素に、対
応する係数を乗算して加算した結果をaqの多項式表現と
して出力する出力ステップ、 とを含むことを特徴とする記録媒体。 - 【請求項63】 請求項62の記録媒体において、上記
係数演算ステップは、 予め演算された修正因子β[iq/(k)] (1≦i≦k-1)メモリ
手段に蓄積するステップと、 入力されたGF(q)の元ai(1≦i≦k-1)と、上記メモリ手段
から読み出された修正因子β[iq/(k)] (1≦i≦k-1)とを
入力して、aiβ[iq/(k)] mod qを演算する項別処理ステ
ップと、 a0とaiβ[iq/(k)] /(q) (1≦i≦k-1)とを入力して、上
記昇べきの順に配列された新たな多項式基底{1=α0,α
iq/(k)(1≦i≦k-1)}に対応して新たな配列に再配列し、
それぞれ対応する基底の係数として出力する置換処理ス
テップ、 とを含むことを特徴とする記録媒体。 - 【請求項64】 請求項62の記録媒体において、拡大
次数kがq-1が割り切るように設定された、有限体GF(q)
の位数q、拡大次数k及びβを用いて、不等式0<i<kを
満たす総ての整数iに対して予め演算されたβ
i[(q-1)/k]を入力するステップと、 上記a1, a2,…,ai,…,ak-1と上記βi[(q-1)/k]を入力
し、不等式0<i<kを満たす総ての整数iに対してaiβ
i[(q-1)/k]を演算し、それぞれのaiβi[(q-1)/k](0<i<
k)を、aqのベクトル表現の、基底ajに対応する要素a'i
として出力する乗算ステップ、 とを含むことを特徴とする記録媒体。 - 【請求項65】 請求項64の記録媒体において、上記
フロベニウス写像演算ステップの上記入力ステップは、
予め演算されメモリ手段に蓄積されてあるβi[(q-1)/k]
(0<i<k)を読み出して入力することを特徴とする記録媒
体。 - 【請求項66】 請求項64の記録媒体において、上記
a0と上記乗算ステップによって生成されたa'i (0<i<k)
とαiを入力して、 【数63】 を演算して、上記aqの多項式表現として出力する積和演
算ステップを含むことを特徴とする記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25091499A JP3145368B2 (ja) | 1998-09-03 | 1999-09-03 | 楕円曲線演算装置、演算方法及びその方法を実施するプログラムを記録した記録媒体 |
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10-249500 | 1998-09-03 | ||
JP24950098 | 1998-09-03 | ||
JP10-255526 | 1998-09-09 | ||
JP25552698 | 1998-09-09 | ||
JP11-12981 | 1999-01-21 | ||
JP11-13187 | 1999-01-21 | ||
JP1318799 | 1999-01-21 | ||
JP1298199 | 1999-01-21 | ||
JP25091499A JP3145368B2 (ja) | 1998-09-03 | 1999-09-03 | 楕円曲線演算装置、演算方法及びその方法を実施するプログラムを記録した記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000276046A JP2000276046A (ja) | 2000-10-06 |
JP3145368B2 true JP3145368B2 (ja) | 2001-03-12 |
Family
ID=27519462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25091499A Expired - Lifetime JP3145368B2 (ja) | 1998-09-03 | 1999-09-03 | 楕円曲線演算装置、演算方法及びその方法を実施するプログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3145368B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009058712A (ja) * | 2007-08-31 | 2009-03-19 | Nippon Telegr & Teleph Corp <Ntt> | 楕円曲線暗号演算装置、方法、プログラム |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2257008C (en) * | 1998-12-24 | 2007-12-11 | Certicom Corp. | A method for accelerating cryptographic operations on elliptic curves |
US20020057796A1 (en) | 1998-12-24 | 2002-05-16 | Lambert Robert J. | Method for accelerating cryptographic operations on elliptic curves |
CA2389157A1 (en) * | 1999-10-28 | 2001-05-03 | Siemens Aktiengesellschaft | Method for multiplying divisor classes by a scalar |
US7602907B2 (en) * | 2005-07-01 | 2009-10-13 | Microsoft Corporation | Elliptic curve point multiplication |
-
1999
- 1999-09-03 JP JP25091499A patent/JP3145368B2/ja not_active Expired - Lifetime
Non-Patent Citations (4)
Title |
---|
Cheon,J.H.et al.,"Scalar Multiplication on Elliptic Curves by Frobenius Expansions,"ETRI Journal,Vol.21,No.1,(1999),pp.27−38 |
Cheon,J.H.et al.,"Two Efficient Algorithms for Arithmetic of Elliptic Curves Using Frobenius Map,"Lecture Notes in Computer Science,Vol.1431,(1998),pp.195−202 |
Kobayashi,T.et al.,"Fast Elliptic Curve Algorithm Combining Frobenius Map and Table Reference to Adapt to Higher Characteristic,"Lecture Notes in Computer Science,Vol.1592,(1999),pp.176−189 |
Tsuruoka,Y.and Koyama,K.,"Fast scalar multiplications over elliptic curves using Frobenius expansions,"1999年暗号と情報セキュリティシンポジウム,SCIS’99 W4−1.6 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009058712A (ja) * | 2007-08-31 | 2009-03-19 | Nippon Telegr & Teleph Corp <Ntt> | 楕円曲線暗号演算装置、方法、プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2000276046A (ja) | 2000-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5854759A (en) | Methods and apparatus for efficient finite field basis conversion | |
US5689452A (en) | Method and apparatus for performing arithmetic in large galois field GF(2n) | |
US7447310B2 (en) | Lean multiplication of multi-precision numbers over GF(2m) | |
US8862651B2 (en) | Method and apparatus for modulus reduction | |
US6430588B1 (en) | Apparatus and method for elliptic-curve multiplication and recording medium having recorded thereon a program for implementing the method | |
Pan | Fast and efficient parallel algorithms for the exact inversion of integer matrices | |
US20020059353A1 (en) | Methods and apparatus for incomplete modular arithmetic | |
US9841950B2 (en) | Modular multiplier and modular multiplication method thereof | |
JP3145368B2 (ja) | 楕円曲線演算装置、演算方法及びその方法を実施するプログラムを記録した記録媒体 | |
KR100670780B1 (ko) | 유한체 GF(2^m)에서의 하이브리드 곱셈 연산 장치및 연산 방법 | |
JP4621162B2 (ja) | 有限可換群演算方法、装置およびそのプログラム | |
KR100954843B1 (ko) | 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체 | |
Luo et al. | Quantum reversible circuits for GF (2 8) multiplication based on composite field arithmetic operations | |
Sanu et al. | Parallel montgomery multipliers | |
US12010231B2 (en) | Computer processing architecture and method for supporting multiple public-key cryptosystems based on exponentiation | |
JP4001751B2 (ja) | 超楕円曲線暗号のための演算装置 | |
JP4629972B2 (ja) | ベクトル演算装置及び分割値演算装置及び楕円曲線スカラー倍演算装置及び楕円暗号演算装置及びベクトル演算方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
Paryasto et al. | Implementation of Polynomial–ONB I Basis Conversion | |
JP4752176B2 (ja) | 一方向性関数演算方法及び装置及びプログラム | |
JP3332270B2 (ja) | べき乗演算装置 | |
JP4197245B2 (ja) | 楕円曲線演算装置及び変換装置及び楕円曲線演算装置の楕円曲線演算方法及びプログラム及びコンピュータ読み取り可能な記録媒体 | |
JP2778219B2 (ja) | 有限体の乗算回路 | |
JP3766250B2 (ja) | 積演算装置及びそのプログラム記録媒体 | |
JP3638493B2 (ja) | 楕円曲線自乗演算装置、およびこのプログラム記録媒体 | |
Dutta et al. | Extending the Signed Non-zero Bit and Sign-Aligned Columns Methods to General Bases for Use in Cryptography |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
R151 | Written notification of patent or utility model registration |
Ref document number: 3145368 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090105 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100105 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110105 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120105 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130105 Year of fee payment: 12 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |