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
Application number
JP25091499A
Other languages
English (en)
Other versions
JP2000276046A (ja
Inventor
文学 星野
鉄太郎 小林
邦生 小林
光 森田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP25091499A priority Critical patent/JP3145368B2/ja
Publication of JP2000276046A publication Critical patent/JP2000276046A/ja
Application granted granted Critical
Publication of JP3145368B2 publication Critical patent/JP3145368B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は,楕円曲線の演
算装置、特に、情報セキュリティ技術(楕円曲線暗号/
署名、素因数分解)を実現するために適する装置及びプ
ログラム記録媒体に関する。
【0002】
【従来の技術】楕円曲線暗号は、現在主流の暗号方式と
比べて遥かに短い鍵長で同等の安全性強度を実現するこ
とから、電子商取引の時代を担う次世代暗号として注目
を浴びている。しかし、従来の楕円曲線暗号は暗号化・
復号化の処理速度や安全性の面で課題があり、高速化・
安全性の研究が世界中で展開されてきた。
【0003】楕円曲線上で公開鍵暗号やデジタル署名を
実現する場合,その処理時間のほとんどは楕円曲線上の
m倍演算に費やされる。一般に,暗号や署名には有限体
GF(q)上で定義される楕円曲線を使う。これをE/GF(q)を
表記する。qは素数又はそのべき乗である。従来の実装
法ではqに素数又は2n(nは1以上の整数)を用いるこ
とが多かった。
【0004】楕円曲線上の点Pに対する加算や2倍を定
義することができる。通常の加算と区別するためにこれ
を、「楕円加算」、「楕円2倍演算」と呼ぶ。また、楕円
曲線上の点のうち、加算の単位元をOと表記する。通
常、m倍演算(mは2以上の整数)を構成するために、
「楕円加算」と「楕円2倍演算」を組み合わせて行う方法
が用いられている。
【0005】この2つ以外に「フロベニウス写像」を用
いてm倍演算を行えることがある。この手法を「φ進展
開法」と呼ぶ。例えば、GF(2)上で定義された楕円曲線E
/GF(2)上のGF(2k)有理点(kは2以上の整数)をm倍す
る方法についてKoblitzらが提案している。しかし、以
下に説明するように、従来の方法ではqが非常に小さい
場合に限って演算を高速化することが出来たにすぎな
い。
【0006】次に楕円曲線とフロベニウス写像について
説明する。有限体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)の代数閉体
を表す。
【0007】フロベニウス写像φは、楕円曲線上の自己
準同型写像であり、m倍写像P→mPを[m]を表すと、式
(1)を満たす。 φ−[t]φ+[q]=[0], -2√q<t<2√q (1) 式(1)は虚根を持ち、φによって[m]とは異なる演算を
行うことができる。φは与えられた楕円曲線に固有に定
まる値であり、その求め方は知られている。フロベニウ
ス写像の演算は、一般に楕円加算などと比べて高速に行
うことができる。例えば、正規基底を用いてGF(qk)の元
を表している場合、フロベニウス写像を要素の置き換え
のみによって行うことができ、演算時間を無視できる。
【0008】正規基底の生成元をαとする。正規基底表
現では、元a∈GF(qk)を
【0009】
【数64】 となるようなai∈GF(q)を用いてa=[a0,a1,…,ak-1]
と表す。このとき、aq=[a k-1,a0,a1,…,ak-1]であ
り、要素の入れ換えによって写像φを適用することがで
きる。
【0010】φ進展開法では、まずmPをφを用いて、
次式(3)の形に変換する。
【0011】
【数65】 ただし、-q<ci<q,rkである。Koblitzにより、E/GF
(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))が提案された。これらの方法では−1c i1で
あり、最大r回のフロベニウス写像演算と楕円加算によ
ってm倍演算をおこなうことができる。
【0012】例えば、楕円曲線E/GF(2):y2+xy=x3+1上
ではφ=[(−1+√−7)/2]と見なすことができる。φ進展
開法を用いないで9Pを求める場合、 9P=(2×2×2+1)P (4) を用いる。式(4)の演算を行うには、3回の「楕円2倍
演算」と1回の「楕円加算」(合計4回)が必要であ
る。
【0013】一方、φを用いれば、 9P=(φ5−φ3+1)P (5) と表すことができる。式(5)の演算を行うには、φ5P,
φ3Pを無視してできる演算時間で求めることが出来るの
で、2回の「楕円加算」で演算できる。このため、式(3)
の場合よりも演算時間を少なくできる。
【0014】
【発明が解決しようとする課題】従来は主に、小さい整
数qに対してGF(qk)上で定義された楕円曲線に対してφ
進展開法による高速演算法が適用されてきたが、理論的
にはもっと一般的な場合にも適用できる。しかしその場
合、式(3)における係数ciは0|ci|<qとなるた
め、GF(qk)でqが大きい場合はci倍演算を行う演算時間
を無視できない。例えば、従来法の例における式(5)で
は、|ci|は0又は1であり、ci倍演算を行う演算時間
は無視できた。
【0015】この場合、従来法の方法を単純に用いる
と、必ずしもφを用いない演算法よりも速いとは限らな
い。従来qが小さい場合に限ってφ進展開法が適用され
てきたのはこのためである。この発明の目的は、素数q
の大きさに関わらず、φ進展開法によりGF(qk)上で定義
された楕円曲線上におけるm倍演算が可能な演算方法及
びその方法を実施する装置、及びその方法をコンピュー
タで実施するプログラムを記録し記録媒体を提供するこ
とである。
【0016】
【課題を解決するための手段】この発明によれば、有限
体上に定義された楕円曲線E/GF(q)上における有理点P
のm倍を演算する楕円曲線演算において、入力手段によ
り有理点Pと、E/GF(q)上で定義されるフロベニウス写
像φと、整数kと、3以上の素数qとを入力し、φ進展
開手段により上記E/GF(q)によって定まるフロベニウス
写像φを用いて
【0017】
【数66】 を満す整数r,ci,ただし0i<r,0k,−
c iqを求め,上記有理点Pと整数r,ciが与えら
れた生成手段により、 P0=P P1=φP P22P : Pr-1r-1P なるr個の点P0〜Pr-1を求め、上記r個のP0〜Pr-1が入
力されたべき乗テーブル加算手段により
【0018】
【数67】 を計算し、計算した上記mPを出力手段により出力す
る。
【0019】
【発明の実施の形態】発明の原理フロベニウス写像が高
速に演算できると考えると、この問題は事前演算による
テーブルを用いたべき演算法(以下「べき乗テーブル
法」と呼ぶ)の場合と似た状況であると考えることがで
きる。
【0020】べき乗テーブル法は予め事前演算を行った
データを蓄積しておくことにより、m倍演算を高速化す
る方法である。もともと、べき乗を高速に行うための技
術なのでこの名前で呼ぶが、楕円曲線上のm倍演算(m
は2以上の整数)を行う場合も同様に使うことが出来
る。しかし、事前演算に多大な計算時間が必要であり、
適用範囲が制限された。
【0021】これに対し、この発明では、フロベニウス
写像を用いればわずかな時間でべき乗テーブルに相当す
るデータを求めることができることを利用して演算を行
う。即ち、 P0=P,P1=φP,…,Pk-1k-1P (6) (ただしkは2以上の整数)を事前演算された値と見な
し、Piを用いて後で示す式(7)と同様の方法でm倍演算
を行う。
【0022】事前演算による方法にはいくつか方法があ
る。qとkの比率によってどの方法が最も効率が良いか
が決まる。この方法によって、従来適用できなかったq
が大きい場合にもφ進展開法を適用することができる。
また、qが小さい場合も従来法よりも高速に演算するこ
とができる。 べき乗テーブル法 ある決まった楕円曲線上の点Pとそのたびに変わるmと
を用いてmPを求める(これをm倍演算という)場合、
べき乗テーブル法を用いて演算を高速化することができ
る。
【0023】べき乗テーブル法に関してはさまざまな方
法が提案されているこれらは以下のような構成になって
いる。 A(事前演算):予めPi=aiPなるPをいくつか計算して
保存しておく。 B(m倍演算):m=Σi aiciなるciを求め事前演算で求
めたPiを用いて、 mP=Σi ciPi (7) によりmPを求める。
【0024】べき乗テーブル法には「BGWM法」、
「櫛形法」、「Window法」などがあり、式(7)の
構成方法が異なる。以下にいくつかのべき乗テーブル法
の演算方法を簡単に示す。実際にはこれ以外にもべき乗
テーブル法は存在し、また、組み合わせなどのバリエー
ションもある。どのべき乗テーブル法もこの発明に用い
ることができる。
【0025】b及びkを2以上の整数とし0<m<bk
満たすmに対してmPを求める方法を説明する。以下、l
ogは底を2とし、[x]はx以下の最大の整数を表す。m
iはmのb進展を行った値とし、mijはmiを2進展開
を行った値とする。従ってmiは0以上b-1以下の整数で
あり、mijは0又は1である。即ち、
【0026】
【数68】 BGMW法 A(事前演算): P0=P,P1=bP,…,Pk-1=bk-1P B(m倍演算): ステップ1:Sd=ΣPi,(0d<b,1ik),ただしΣ
はm idを満たすiについてPiを加算する ステップ2:
【0027】
【数69】 を出力する。 櫛形法 A(事前演算): P0=P,P1=bP,…,Pk-1=bk-1P B(m倍演算): ステップ1:
【0028】
【数70】 ステップ2:
【0029】
【数71】 箱法 A(事前演算): P0=P,P1=bP,…,Pk-1=bk-1P B(m倍演算): ステップ1:
【0030】
【数72】 ただし、Σはmi=jのiについてPi を加算する。 ステップ2
【0031】
【数73】 を出力する。 window法 A(事前演算): P1=P,P2=2P,…,Pb-1=(b−1)P B(m倍演算):S=Σi biPiを出力する。
【0032】べき乗テーブル法としてBGMW法、櫛形
法又は箱法のいずれかを適用する場合は、フロベニウス
写像φを行った(式(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とからなる。
【0033】Pi生成部10は、図3に示すように構成
され、φ進展開部20は図7に示すように構成され、べ
き乗テーブル加算部30は図9,10,11のいずれか
によって構成される。これらについては後で詳細に説明
する。図1のm倍演算装置の動作をプログラムで実現す
る場合は、図2の手順に従って以下のように演算が実行
される。
【0034】ステップS1:E,q,P,k,φ,mを
入力する。 ステップS2:φ進展開部20は、入力k,φ,mに対
して
【0035】
【数74】 を満たすc0,c1,…,cr-1,r(0i<r)を求めて出力す
る。 ステップS3:Pi生成部10は、入力q,P,k,r
に対して Pi=φiP を満たすP0, P1,…,Pr-1を求め、出力する。
【0036】ステップS4:べき乗テーブル加算部30
は、入力E,Pi,ciに対して
【0037】
【数75】 を計算し、mPを出力する。 ・Pi生成部(図3) 図3のPi生成部10について説明する。図3は定義体
の大きさq,GF(qk)有理点P、整数r入力に対してφ
0P,φ1P,…,φr-1Pを出力する構成の一例を表し
ている。このPi生成部10はメモリ11と、制御部1
2、加算部13と,フロベニウス写像器14とからな
る。
【0038】フロベニウス写像器14は後述の図5又は
図6に示すように構成される。この装置の動作をプログ
ラムで実現する場合は,図4に示す手順に従って以下の
ように演算が実行される。 ステップS1:q,P,rを入力する。 ステップS2:制御部12は入力値q,P,rに対して
メモリ11にSの初期値としてPを渡し、メモリ11
は、カウンタ値iと、楕円曲線上の点Sを保持する。iと
Sの初期値はそれぞれOとPである。
【0039】ステップS3:制御部12は、入力値q,
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の構成の一例を示
している。
【0040】この写像器14は、楕円曲線上の点P=(x,
y)(ただしx,y∈GF(qk))と表されている場合に用いるこ
とができる。この写像器14はべき乗器14Aと14B
からなる。このPi生成部10の動作をプログラムで実
現する場合は、図18の処理手順に従って以下のように
演算が実行される。
【0041】ステップS1:P=(x,y),qを入力する。 ステップS2:べき乗器14Aは、入力値x,qに対し
てxqを計算し、べき乗器14Bは、入力値y,qに対
してyqを計算する。 ステップS3:フロベニウス写像器14は、(xq,yq
をφPとして出力する。 ・フロベニウス写像器(図6) 図6はGF(qk)有理点P、整数qの入力に対してφPを出
力するフロベニウス写像器14の構成の一例を示してい
る。
【0042】この写像器14は、楕円曲線上の点P=(x,
y,z)(ただしx,y,z∈GF(qk))と表されている場合に
用いることができる。この写像器14はべき乗器14
A、14B、14Cからなる。この写像器14の動作を
プログラムで実現する場合は、図19に示す手順に従っ
て以下のように演算が実行される。
【0043】ステップS1:p=(x,y,z),qを入力する。 ステップS2:べき乗器14Aは、入力値x,qに対し
てxqを計算し,べき乗器14Bは、入力値y,qに対し
てyqを計算し、べき乗器14Cは、入力値z,qに対してz
qを計算する。 ステップS3:フロベニウス写像器14は、(xq,yq,zq)
をφPとして出力する。 ・φ進展開部(図−7) 図7のφ進展開部20を説明する。図7は定義体の大き
さq、拡大次数k、整数m、フロベニウス写像φの入力
に対して
【0044】
【数76】 を満たすc0,c1,…,cr-1,rを求め、出力する。このφ進
展開部20はトレース演算部21と、制御部22と、メ
モリ23と、剰余部24とからなる。
【0045】このφ進展開部20の動作をプログラムで
実現する場合は、図8に示す手順に従って実行する。ト
レースはφ、qによって固定の値であるから、予め求め
ておき、外部から与えることにしてもよい。その場合、
トレース演算器21は不要である。このφ進展開部20
では、以下のように演算が実行される。
【0046】ステップS1:m,q,φ,kを入力す
る。 ステップ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は不要であ
る。
【0047】メモリ23は、カウンタ値+iと、整数x,
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) とする。
【0048】ステップS6:u=0又は2x+ty>2u-qか判定
する。 ステップ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
とからなる。
【0049】この加算部30Aの動作をプログラムで実
現する場合は、図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へ渡す。
【0050】ステップS3:制御部32Aは入力値Sを
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)。
【0051】ステップS6:制御部32Aはjから1を
減算し、ステップS3へ戻る。 ・べき乗テーブル加算部(BGMW) 図10のべき乗テーブル加算部(BGMW)30Bを説
明する。図10のべき乗テーブル加算部30Bは楕円曲
線E、楕円曲線上の点P0,P1,…,Pr-1、整数c0,c1,…c
r-1の入力に対して式(16)を計算し、mPを出力する。
このべき乗テーブル加算部30Bはメモリ31Bと、制
御部32Bと楕円加算部33Bとからなる。
【0052】この装置の動作をプログラムで実現する場
合は、図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へ渡す。
【0053】ステップS3:制御部32Bは入力値dが
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に戻る。
【0054】ステップS5:ステップS4-2でi=rとなっ
ていれば、ステップ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に示す手順にしたが
って実行する。
【0055】この加算部30Cでは、以下のように演算
が実行される。 ステップ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を保存する。
【0056】ステップS3:制御部32Cはj=0,…,r-1
に対して(ステップ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を行う。
【0057】ステップS6:制御部32Cはj=1,…,d
に対して(ステップ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)。
【0058】ステップS7:制御部32CはTをmPを
して出力し終了する。 第2実施例 ・楕円曲線上のm倍演算装置(図15) 図15の楕円曲線上のm倍演算装置に従って説明する。
図15は楕円曲線E、定義体の大きさq、整数k、GF(q
k)有理点P、フロベニウス写像φ、整数mの入力に対し
てmPを出力する装置の構成の一例を表している。この
装置100はPi生成部10と、φ進展開部20とべき乗テ
ーブル加算部30とからなる。
【0059】Pi生成部10は、図17に示すように構成
され,φ進展開部20は、図5と同様に構成され、べき
乗テーブル加算部30Dは図19に示すように構成され
る。この装置100の動作をプログラムで実現する場合
は、図16の手順に従って以下のように演算が実行され
る。 ステップS1:E,q,k,P,φ,mを入力する。
【0060】ステップS2:φ進展開部20は、入力k,
φ,mに対して式(15)を満たすc0,c1,…,cr-1,rを求め、
出力する。 ステップS3:Pi生成部10は入力E,q,pに対して Pi=iP によりP0,P1,…,Pq-1を求め、出力する。
【0061】ステップS4:べき乗テーブル加算部30
は、入力E,Pi,ciに対して
【0062】
【数77】 を計算し、mPを出力する。 ・P生成部(図17) 図17のPi生成部10を説明する。図17は楕円曲線
E、定義体の大きさq、GF(qk)有理点Pの入力に対して
P,2P,・・・,(q-1)Pを出力する構成の一例を示している。
このPi生成部10はメモリ11と、制御部12と、加算
部13と、楕円加算部14とからなる。
【0063】このPi生成部10の動作をプログラムで実
現する場合は、図18に示す手順に従って以下のように
演算が実行される。 ステップS1:E,q,Pを入力する。 ステップS2:メモリ11は、カウンタ値iと、楕円曲
線上の点Sを保持する。それぞれ初期値は0とOであ
り、制御部12へ渡す。
【0064】ステップS3:制御部12は、入力値q,
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の入力に対し
【0065】
【数78】 を計算し、mPを出力する。この加算部30Dはメモリ
31Dと、制御部32Dと、楕円加算部33Dとフロベ
ニウス写像器34Dとからなる。フロベニウス写像器3
4Dは、例えば図5又は図6に示したと同様に構成され
る。
【0066】このべき乗テーブル加算部30Dの動作を
プログラムで実現する場合は、図20に示す手順に従っ
て以下のように演算が実行される。 ステップS1:E,ci,Piを入力する。 ステップS2:制御部32Dはi←r−1,S←Oと
し、メモリ31Dに保存する。
【0067】ステップS3:制御部32Dはフロベニウ
ス写像器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
に示す。
【0068】図21は楕円曲線E、定義体の大きさq、
整数k、GF(qk)有理点P及びQ、フロベニウス写像φ、
整数m,nの入力に対してmP+nQを出力する装置110
の構成の一例を表している。この装置110はPi生成部1
0Aと、Qi生成部10Bと、φ進展開部21と、φ進
展開部22と、べき乗テーブル加算部30と、比較部5
0とからなる。
【0069】Pi生成部10A及びQi生成部10Bは、
図3に示したと同様に構成され、φ進展開部21及び2
2は、図5に示したと同様に構成され、べき乗テーブル
加算部30は図7,8,9のいずれかによって構成され
る。この装置の動作をプログラムで実現する場合は、図
22に示す手順に従って以下のように演算が実行され
る。
【0070】ステップS1:E,q,k,φ,m,P,n,Qを入力す
る。 ステップS2:φ進展開部21は、入力k,φ,mに対し
【0071】
【数79】 を満たすc0,c1,…,crm-1(ここでのみrmはrmを表してい
る), rm(0<i<rm)を求め、出力する。
【0072】ステップS3:φ進展開部22は、i入力
k,φ,nに対して
【0073】
【数80】 を満たすd0,d1,…,drn-1(ここでのみrnはrnを表してい
る),rn(0<i<rn)を求め、出力する。
【0074】ステップS4:比較部50は、入力rm,rn
に対して大きい方をrとし、出力する。 ステップS5:Pi生成部10Aは、入力q,P,k,rに対し
て Pi=φiP を計算し、P0,P1,…,Pr-1を出力する。
【0075】ステップS6:Qi生成部10Bは、入力
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 とし、
【0076】
【数81】 を計算してmP+nQを出力する。図15による装置を
「m+n倍演算」を行うようにすることもできる。
【0077】また、図1,15,21の装置の一般化に
よって Σ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における演算量を削減するようにした実施例
を次に示す。
【0078】演算量削減方法1 事前演算によるべき乗テーブル加算法はいくつかある
が、入力されるciの数が少ないほうが演算速度が早い。
ところで,楕円曲線上の有利点PがGF(qk)有理点である
場合、 (φk-1)P=0 という関係が成り立つ。これを利用して、ciの項数を減
らすことができる。
【0079】例えば、k=3, m= c0+c1φ+c2φ2+c3φ3 を用いてPのm倍を求める際に、c0=3,c1=5,c2=1,c3=4
となった場合を考える。φ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に減らすことができる。
【0080】演算量削減法2 事前演算によるべき乗テーブル加算法には、いくつか方
法があるが、それぞれ入力されるciの値によって、演算
速度が異なる。例えば、図9に示した前述の「櫛形法」
の場合は、ciのを2進数で表現した場合の各桁の値(0
又は1)の“1”の数(これをハミング重みという)が
多いほど演算時間がかかる。
【0081】ところで、楕円曲線上の位数がq+2√2より
大きい素数の有理点PがGF(qk)有理点であり、かつGF
(q)有理点で無い場合、(φk-1)=0かつ(φ-1)≠0である
から (φk-1k-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である。と
ころで、 φ21+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とすることが出来る。
【0082】この演算量削減方法によって、第1,第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とからなる。
【0083】Pi生成部10及びφ進展開部20の構成は
それぞれ第1実施例における図3及び図7に示したもの
と同じであり、べき乗テーブル加算部30も第1実施例
における図9又は10のいずれかと同様に構成される。
図1の実施例と異なる点は、φ進展開調整部40が新た
に設けられ、φ進展開部20で求められたr、ciに対
し、べき乗テーブル加算部30での演算量が削減される
よう調整を行ってr’,c'i,を求め、これをべき乗テ
ーブル加算部30に与えていることである。Pi生成部1
0においてもrの代わりにr’を使ってPiが計算され
る。それ以外は図1の実施例と同様である。
【0084】このm倍演算装置の動作をプログラムで実
現する場合は、図24の手順に従って以下のように演算
が実行される。 ステップS1:E,q,P,k,φ,mを入力する。 ステップS2:φ進展開部20は、入力k,φ,mに対して
【0085】
【数82】 を満たすc0,c1,…,cr-1,rを求めて出力する。 ステップS3:φ進展開調整部40は、φ進展開部20
からのr,ciに対して
【0086】
【数83】 を満たすc'0,c'1,…,c'r'-1,r’を求めて出力する。 ステップS4:Pi生成部10は、入力q,P,k,r'に対し
て PiiP からP0,P1,…,Pr'-1を求め、出力する。
【0087】ステップS5:べき乗テーブル加算部30
は、入力E,Pi,c’i,r’に対して
【0088】
【数84】 によりmPを求め、出力する。 ・φ進展開調整部(図25) 図25のφ進展開調整部40を説明する。図25のφ進
展開調整部40は加算部41と、α生成部42と、減算
部43とからなり、整数c0,c1,…,cr-1,r,kの入力に対
して
【0089】
【数85】 を満たす整数c'0,c'1,…,c'r'-1,r’を求め出力する。
この調整部40の動作をプログラムで実現する場合は、
図26又は図27の手順に従って以下のように演算が実
行される。
【0090】ステップS1:ci,r,kを入力する。 ステップS2:加算部41はc”i=ci+ci+k+ci+2k+…,0<
i<k-1なるc”iを求める。 ステップS3:α生成部42は入力されたc"iとkから、
適当なαを求める。使用すべき乗テーブル加算部30が
図10に示したBGMW形の場合は、c"iの平均値に最
も近い整数をαとして出力する。(27図)。
【0091】使用するべき乗テーブル加算部30が図9
に示した櫛形の場合は、c"iを2進表現したときのj桁
の値をc"i,j(0又は1)とし、
【0092】
【数86】 によりsiを求め、それを使って、
【0093】
【数87】 を求めて出力する。ただしbはciのうちの最大のもの
である ステップS4:減算部43はc'i=c"i-α,0ik-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を出力する。
【0094】この装置110はPi生成部10Aと、Qi生成
部10Bと、φ進展開部21、22と、べき乗テーブル
加算部30と、比較部50と、φ進展開調整部40A、
40Bとからなる。Pi生成部10A及びQi生成部10
Bは、図3に示した同様に構成され、φ進展開部21及
び22は、図7に示したと同様に構成され、べき乗テー
ブル加算部30は図9、10のいずれかによって構成さ
れる。
【0095】この装置の動作をプログラムで実現する場
合は、図29に示す手順に従って以下のように演算が実
行される。 ステップS1:E, q, k, φ, m, P, n, Qを入力する。 ステップS2:φ進展開部21は入力k,φ, mに対して
【0096】
【数88】 を満たすc0, c1, …, crm-1(ここでのみrmはrmを表
す), rnを求め、出力する。 ステップS3:φ進展開部22は入力k,φ, mに対して
【0097】
【数89】 を満たすd0, d1, …, drn-1(ここでのみnrはnrを表
す), rn,を求め、出力する。 ステップS4:φ進展開調整部40Aは入力rn, ci
対して
【0098】
【数90】 を満たすc'i, r'mを求め出力する。 ステップS5:φ新展開調整部40Bは入力rn, diに対
して
【0099】
【数91】 を満たすd'i, r'nを求め出力する。 ステップS6:比較部50は、入力r'm, r'nに対して大
きいほうをrとし、出力する。
【0100】ステップS7:Pi生成部10Aは、入力q,
P, k, rに対して PiiP (37a) によりP0, Pi, …, Pr-1を求め、出力する。 ステップS8:Qi生成部10Bは、入力q, Q, k, rに対
して QiiQ (37b) によりQ0, Qi, …, Qr-1を求め、出力する。
【0101】ステップS9:べき乗テーブル加算部30
は、入力E, r, Pi, Qi, c'i, d'iに対して Ri= Pi for 0i< r = Qi-r for ri< 2r ei=c'i for 0i<r =d'i-1 for ri<2r (38) とし、
【0102】
【数92】 よりmP+nQを求めて出力する。上述の図23及び28の
実施例を一般化して m1P+m2Q+m3R+… を演算する装置も同様に構成できる。
【0103】この第4及び第5実施例では、事前演算なし
でべき乗テーブルを構成することができるため、従来の
べき乗テーブル加算法と比べて適用範囲が広い(例え
ば、楕円DSA署名の署名検証などにも利用できる)。ま
た古くから用いられて、定義法がGF(2)の場合にも、こ
の実施例を用いることができ、その場合も従来装置の約
2倍高速にm倍演算をすることができる、 第6実施例 従来の代表的なφ進展開法は、例えばφ進展開によって
求められたci, (0i<k)を用いて
【0104】
【数93】 (但しcj,i∈{0,1},bは bb log2ciの整数)を満た
すcj,iを求めてから、
【0105】
【数94】 を求め、これを用いて
【0106】
【数95】 を演算してmPを得る。その際 S=2(2(…(Sb-1)+Sb-2)+…S2)+S1)+S0 と「楕円2倍算」をb-1回用いる事によりmPを得てい
た。「楕円加算」及び「楕円2倍算」はφ倍演算よりも
多大な計算時間を要する。従来「楕円加算」を減らす工
夫が行われて来たが「楕円2倍算」を減らす工夫は行わ
れておらず、この部分の演算時間は無視できないという
問題点があった。
【0107】ところでHornerの方法と呼ばれる良く知ら
れた、多項式の計算方法があり、それは次のようなもの
である。(但しLは有限体GF(qk)) 入力:Lの元x及びuj,(0j<b)
【0108】
【数96】 一時記憶領域:Lの元f、整数j ステップ1:f←ub-1, j←b-2 ステップ2:もしj<0ならステップ6へ ステップ3:f←f×x+ u ステップ4:j←j-1 ステップ5:ステップ2へ ステップ6:fをf(x)の値として出力 jに関する計算を無視すれば、b−1次多項式f(x)の値
を計算するためにHornerの方法ではb-1回のx倍算及びb-
1回の加算を必要とする。ところでaを(b+1)/2以下の最
大の整数として、もしuj, (aj<b)の代わりにujxa,
(aj<2a)(但しbが奇数の時U2a=0とする)が予め分か
っているとするとHornerの方法は次のように改良出来る
事が良く知られている。 入力:Lの元x及びuj, (0j<b)及びujxa, (aj<2a)
【0109】
【数97】 一時記憶領域:Lの元f、整数j ステップ1:f←ua-1+ u2a-1xa, j←a-2 ステップ2:もしj<0ならステップ6へ ステップ3:f←f×x+uj-uj+axa ステップ4:j←j-1 ステップ5:ステップ2へ ステップ6:fをf(x)の値として出力 jに関する計算と自明な0の加算を無視すれば、この方
法ではb-1回の加算とa-1回のx倍算が必要である。加算
の部分は改善されていないが、x倍算の回数は約半分に
改善されている。この例の場合多項式の係数を項の次数
がa以上のものとa-1以下のものと2通りに分けて、事前
演算(係数がa以下のものをxa倍)されたデータを用意
する事によってx倍算の回数を約半分にする事ができ
た。同様の方法により、項の次数で係数をs通りに分け
て、事前演算されたデータを用意する事によってx倍算
の回数を約1/sにすることができる。
【0110】従来のφ進展開法で行われて来た式(42)の
計算方法は上記Hornerの方法で、Lを整数として、ujはu
jP=Sjなるujであるとして、x=2とした場合に他ならな
い。S j(0j<b)の計算は通常Hornerの方法を実行中
に順次行われるこの様子を簡単な例で図30A、30B、
30Cに示す。これらの図は従来のφ進展開法で利用さ
れて来たべき乗テーブル加算装置内で行われている処理
を模式的に記述したものである。簡単のためにφ進展開
係数は第19桁〜第0桁からなる20桁の2進数又は符
号付き2進数で表現されているとする。この従来型のべ
き乗テーブル加算装置はP, φP, φ2P, c0, c1, c2を受
け取って
【数98】 の値を出力する。図30A,30B,30Cはそのための
処理の流れを表現したものである。図中のSは計算のた
めの楕円曲線上の点の座標を格納する一時記憶領域であ
り計算の最終段階に於いては装置の出力である式(43)の
値を保持する。
【0111】図中のci,jとは、入力されたciを第19
桁〜第0桁からなる20桁の2進数又は符号付2進数で表現
した時の第j桁目の数値である。従ってci,jは0又は±
1のいずれかの数値でありci,j倍の計算は簡単に実行で
きる。通常この数値が0以外である場合のみ「楕円計
算」が行われる。図30Aでは、まずc0, c1, c2の最上
位桁である第19桁に注目しS19を計算している。S19の結
果は必ずしも一時記憶領域を必要とはせず、式(43)を計
算する為の一時記憶領域Sに順次足し込んでゆけばよ
い。
【0112】c0, c1, c2の第19桁に注目した処理が終わ
ると、図30Bにしめすc0, c1, c2の第18桁に注目した
処理が始まる。このときSを2倍してS18の各項をSに足
し込む処理が行われる。以下第17桁から第0桁まで同様
の処理が行われ、図30Cに示す第0桁に注目した処理
が終了した時点でSには式(43)の値が格納される。従来
のべき乗テーブル加算装置ではこの値を出力していた。
【0113】もしSj(0j<b)の代わりに事前演算され
たデータを用意することが出来ればHornerの方法の改良
と同様にして「楕円2倍算」の回数を削減することが出来
る。例えばSj(0j<b)を2通りに分ける場合、aを(b
+1)/2以下の最大の整数として、 Tj=Sj+2aSa+j,(0j<a) (44) として、Sjの代わりにTjが計算できれば
【0114】
【数99】 の計算をHornerの方法で行えば良い。Tjは、もし楕円曲
線上の点Pの他に2aPが事前に用意されていれば、従来の
φ進展開法で行われてきたSj, (0j<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)の値を保持する。
【0115】図32〜33中のci,jとは、入力されたc1
を第19桁〜第0桁からなる20桁の2進数又は符号付き2進
数で表現した時の第j桁目の数値である。従ってci,jは0
又は±1のいずれかの数値でありci,j倍の計算は簡単に
実行できる。この数値が0以外である場合のみ「楕円加
算」を行う。図32,33中では煩雑さを避けるために
Q0=P, Q1=210Pとしている。
【0116】まず、図31に示しているのはc0, c1, c2
の第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に順次足し込んでゆけばよ
い。
【0117】第8桁〜第0桁に注目した処理は図33で模
式的に示される。第9桁に注目した処理が終わると、第8
桁に注目した処理が始まる。このときSを2倍してT9の各
項をSに足し込む処理が行われる。以下第7桁〜第0桁ま
で同様の処理が行われ、第0桁に注目した処理が終了し
た時点でSには式(43)の値が格納される。事前演算付き
べき乗テーブル加算装置ではこの値を出力する。
【0118】フロベニウス写像は「楕円加算」や「楕円
2倍算」に比べて非常に高速に実行できるのでP, φP,
φ2P, 210P, φ210P, φ2210P,はP,と210Pが事前に用意
されていれば非常に高速に計算できる。従って、この例
の場合Pの他に210P, を用意するだけで「楕円2倍算」の
回数を半分に出来る。
【0119】この発明による第6実施例ではmのφ進展
開後にmPを構成する過程で、事前に演算されたQt=dtaP,
(1t<s)を用いることによって演算の高速化を行
う。図34は第6実施例による楕円曲線上のm倍演算装置
を示し、Rt,i生成部10と、φ進展開部20と、事前演
算付きべき乗テーブル加算部30とからなる。この演算
装置は楕円曲線E、定義体の大きさq、整数k、楕円曲
線上のGF(qk)有理点Pより事前に計算され得る楕円曲線
上のGF(qk)有理点列Qt=2taP (1t<s)、整数mの入
力に対してmPを出力する。
【0120】Rt,i生成部10は、図36に示すように構
成され、φ進展開部20は、図38に示すように構成さ
れ、事前演算付きべき乗テーブル加算部30は図40に
示すように構成される。Rt,i演算部10は、φ進展開部
20から得られるrが入力されているが、rはk以下に
出来ることが予め分かっているので、Rt,i演算部10の
入力rの代わりにkを入力し、Rt,i演算部10とφ進展
開部20を並列に動作させる事も出来る。この装置で
は、図34の装置の動作をプログラムで実現する場合
は、図35のフロー図に従って以下のように演算が実行
される。
【0121】ステップS1:φ進展開部10は、入力
k、φ、mに対して
【0122】
【数100】 を満たすc0, c1, …,cr-1, rを求め、出力する。 ステップS2:Rt,i生成部10は、入力q,k,r,P,2aP,2
2aP,…,2(s-1)aPに対して Rt.i=φi2taP (47) によりRt,i (0<i<r, 0<t<s)を求め、出力する。
【0123】ステップS3:事前演算付きべき乗テーブ
ル加算部30は、入力E,Rt,i, ci, rに対して次式
【0124】
【数101】 を満たすcj,t,iを求め、
【0125】
【数102】 によりmPを求めて出力する。 Rt,i生成部(図36) 図36に示すRt,i生成部10はメモリ11と、制御部1
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 を計算し、出力する。
【0126】フロベニウス写像器14は第1実施例にお
ける図5又は6と同様に構成され、同様の処理を行うの
で説明を省略する。フロベニウス写像器14を複数個用
いて、点列Qj上の複数の点から並列にφQjを求めること
もできる。図36のRt,i生成部10の動作をプログラム
で実現する場合は、図37のフロー図に従って以下のよ
うに演算が実行される。
【0127】ステップS1:制御部12は、入力値q,
Qt,rを受け取る。 ステップS2:制御部12はt←0 と設定する。 ステップS3:制御部12は、U←Qtと設定する。 ステップS4:制御部12はi←0 と設定する。 ステップS5:制御部12は、Rt,i←Uと設定し、Rt,i
を出力する。
【0128】ステップS6:制御部12はi←i+1と設
定する。 ステップS7:制御部12はi=r となったか判定し、な
っていればステップS9に移る。 ステップS8:制御部12はUをフロベニウス写像器6
Eに入力し、φU を受け取り、U←φU と設定し、ステ
ップS5に移る。
【0129】ステップS9:制御部12はt←t+1と設
定する。 ステップ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)を求め、出力す
る。
【0130】φ進展開補正部25は後述の図42のよう
に構成され、この構成は第4実施例における図25の構
成と同様である。図38のφ進展開部20の動作をプロ
グラムで実現する場合は、図39のフロー図に従って以
下のように演算が実行される。 ステップS1:m, q, φ, k がφ進展開部20に入力さ
れる。
【0131】ステップS2:トレース演算部21は、入
力値φ、qから、 φ2−tφ+q=0 を満たすトレースtを求め、制御部22に渡す。なお、
トレースはφ、qによって固定の値なので、予め求めて
おき、外部から与えることにしてもよい。その場合、ト
レース演算器7Bは不要である。
【0132】ステップS3:剰余部24は入力m, q, φ
に対しx+yφ≡m(modφk-1)を満たすx, yを演算し、メモ
リ23に保存する。また、演算が行われた状態で装置の
外から入力してもよい。その場合は、入力値は整数mの
代わりにx, yとなる。この演算を行わない場合は剰余部
24は不要である。メモリ22は、カウンタ値iと、整
数x, y, u, vを保持する。iの初期値は0である。
【0133】ステップS4:制御部22は入力値x, y,
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と設定する。
【0134】ステップS6:u=0又は2x+ty>2u-qか判定
する。 ステップS7:YES ならば(x,y)←(tv+y, -v)と設定
し、メモリ23に書き込む。 ステップS8:NOならば(x,y)←(tv+y+t, -v-1), u←u-
qと設定し、これらの値をメモリ23に書き込む。
【0135】ステップS9:制御部22は、c'iとして
uをφ進展開補正部25に入力し、iに1を加算してメ
モリ23に書き込み、ステップS4に戻る。 ステップS10:φ進展開補正部25は、ステップS4
でx=0かつy=0が満足すると、入力値r', k, c'iから次式
【0136】
【数103】 を満たし、かつr<kなるr, ciを計算し、出力する。 ・事前演算付きべき乗テーブル加算部(図40) 図40に示すように事前演算付きべき乗テーブル加算部
30は、メモリ31と、制御部32と、楕円加算部33
と、楕円2倍演算部35とからなり、楕円曲線E、楕円
曲線の有理点列Rt,i=φi2taP (0<i<r, 0<t<s), 整数ci
(0<i<r)の入力に対して次式
【0137】
【数104】 を演算してmPを求め、出力する。このべき乗テーブル加
算部30の動作をプログラムで実現する場合は、図41
のフロー図に従って以下のように演算が実行される。
【0138】ステップS1:E, ci, Rt,iを入力する。 ステップS2:制御部32はj←a-1, S←Oと設定し、
メモリにj, S を保存し、更に次式
【0139】
【数105】 を満たすct,iを生成する。メモリ31はi, t, j, S を
制御部32に渡す。 ステップS3:制御部32はj<0 ならSを出力して終了
する。 ステップS4:j<0 でなければ、制御部32はSを楕円
2倍算部34に渡す。楕円2倍算部34は入力Sに対し
て2Sを制御部32に渡す。制御部32は2SをSとしてメ
モリ31に保存する。
【0140】ステップS5:制御部32はi←0と設定す
る。 ステップ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に移る。
【0141】ステップS10:制御部32はS及びc
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に移る。
【0142】ステップS13:制御部32はj←j+1と
設定してステップS3に移る。 ・φ進展開補正部(図42) 図42に示すように、図38におけるφ進展開補正部2
5は、図25と同様に加算部25Aと、α生成部25B
と、減算部25Cとからなり、整数c'0, c'1,…,
c'r'-1, r', kの入力に対し、次式
【0143】
【数106】 を満たす整数c0, c1, ..., cr-1, r を求め、出力す
る。このφ進展開補正部25の動作をプログラムで実現
する場合は、図43のフロー図に従って以下のように演
算が実行される。
【0144】ステップS1:c'i, r', kが補正部25に
入力されると、加算部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とすると、次式
の値
【0145】
【数107】 が小さくなる、あるいは統計的に小さくなるような適当
なαを求める。 ステップS3:減算部25Cはci=c"i-α (0<i<k)を求
め、出力する。またrとしてkを出力する。
【0146】このように、第6実施例は、従来のGF(q)
上の楕円曲線に対するフロベニウス写像を用いた演算法
を改良し、より効率よく楕円m倍演算を行える。従っ
て、楕円DSA署名の署名検証などを高速に行うことが
できる。 第7実施例 前述の各実施例において、Pi生成部10ではPiiP(0<
i<k)を演算する。この演算はPをi回φで写像する演算
であり、楕円曲線上の点P0を(x0, y0)とすると、i回の
写像による点(xi, yi)は(x0 iq, y0 iq)となる。即ち、各
回の写像毎にxq, yq の演算を例えば図5で示したフロ
ベニウス写像器14のべき乗部14A、14Bで実行す
る方法及び構成を示す。
【0147】通常、a(a∈GF(qk))を有限体GF(q)上の元
の組(a0,a1,…,ak-1)で表現するとき、多くの場合、次
の2つの方式のどちらかが選択される。α∈GF*(qk)=GF
(qk)-{0}を生成元として多項式基底{1,α,α2,…,
αk-q}を用いて表現する場合と,正規基底
【0148】
【数108】 を用いた場合である。多項式基底で表現する場合には、
有限体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)を用いて、
【0149】
【数109】 になる。なお、多項式基底と正規基底の生成元αの必要
十分条件は異なるので,必ずしも同じ値とは限らない。
(詳細は,平松豊一著、応用代数学、裳華房の3.3と3.6
節を参照されたい。) 選択された基底が多項式基底であるか正規基底であるか
によって,演算に異なる特徴が現れる。通常,多項式基
底はそれで表される要素同士の掛け算を正規基底より高
速に実行することができるが、aのべき乗aqを求める場
合は,逆に正規基底より遅くなる性質がある。
【0150】楕円曲線上の有利点どうしの加法を実行す
る場合には、Stinson著櫻井監訳、暗号理論の基礎、共
立出版のp.198によれば、 x32-x1-x2 y3=λ(x1-x3)-y1 ただし、λはx1=x2かつy1=y2ならばλ=(3x1 2+c)/(2y1)
であり、それ以外の場合は、λ=(y2-y1)/(x2-x1)で求め
られる。また、このcは楕円曲線の選定パラメータによ
って決まる量である。
【0151】以上のような演算が繰り返されるので、加
算に付いては、多項式基底による表現を用いても正規基
底による表現を用いても差異はないが、乗算を高速に実
行できるという利点から考えると多項式基底が好まし
い。しかし、aからaqの要素を関係づける写像(フロベ
ニウス・マップ)を実行する場合には{a0,a1,a2,…,a
k-1}から{ak-1,a0,a1,…,ak-2}に置換するだけで済
む点では、逆に、正規基底表現が好ましいと考えられ
る。
【0152】このように、多項式基底は、それで表され
る要素同士の掛け算を正規基底より高速に実行すること
ができるという利点を持つが、aの写像であるべき乗q
を求める速度が遅いという欠点がある。この第7実施例
では、前述の各実施例のPi生成部10のフロベニウス写
像器14で実行される写像φPでのべき乗演算(xq,yq)
に適用され、そのべき乗演算量を削減可能な構成を示
す。
【0153】以下図面を用いてこの第7実施例について
説明する。第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を実行する代わりに、これと等価な処理とし
て、次の演算を行う。
【0154】式αk-β=0の関係によって、αq,α2q
3q,…,α(k-1)qはそれぞれ次のように表される。 αqq mod k・β[q/k] α2q2q mod k・β[2q/k] α3q3q 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個の基底(αqmodk2qmodk3qmodk,…,
α(k-1)qmodk)の各要素は相互に異なる指数をもち、基
底(αqmodk, α2qmodk3qmodk,…,α(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)を計算し、これらの修正
因子を予めメモリに蓄積しておく。
【0155】次に、GF(q)上でa0,a1,a2,…,ak-1に対し
て、それぞれ、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)と記す。
【0156】この方法による処理コストは、β[q/k]
[2q/k],…,β[(k-1)q/k]を演算する(実際には、予め計
算してメモリに蓄積する)ことと、aiβ[iq/k]mod qを
演算してq mod k,2q mod k,…,(k-1)q mod kの値に従っ
て、並び順を置換する事であり、演算量を著しく低下さ
せることができる。このようにして、多項式基底を用い
る場合にはaのべき乗aqを求める速度が遅いという欠
点を克服することができる。
【0157】図44は、第7実施例の多項式基底を用い
た演算方法を実施するためのべき乗演算部のブロック図
であり、前述の各実施例におけるフロベニウス写像器1
4内のべき乗部14A,14Bに適用される。本実施例
のべき乗演算部60は、多項式基底演算部61、修正因
子演算部62、係数演算部63、出力部64を備えてい
る。
【0158】多項式基底演算部61は、αのGF(q)上の
最小多項式がxk-β(β∈GF(q))の形式で表されるように
設定された、有限体GF(q)の位数qと、該位数qと互い
に素であるように定められた次数kとを入力し、iqmod
k(1≦i≦k-1)を演算し、1=α 0及びαiq/(k) (1≦i≦k-
1)を昇べきの順に再配列して新たな多項式基底として出
力する。
【0159】修正因子演算部62は、位数q、次数k及
びβを入力し、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 k-1)ccを、前記再配列して構成
された新たな多項式基底<α0=1,αiq/(k) (1≦i≦k-1)>
に対応する配列に再配列し、各基底の係数として出力す
る。
【0160】出力部64は、係数演算部63の出力をaq
のベクトル表示とし、また、昇べきの順序に配列された
多項式基底の各に、対応する係数を乗算して加算した結
果を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)>に対応して新たな配列に再配列し、それぞれの
対応する基底の係数として出力する。
【0161】図46は、図44の実施例の動作を説明す
るフロー図である。 ステップS1:予め、αのGF(q)上の最小多項式がxk
の形式で表されるように、有限体GF(q)の位数q、次数
k及びβを設定する。ここで、kとqとは互いに素であ
る。 ステップS2:次に、iq mod k(0<i<k)を演算し、α
iq/k(0<i<k)を昇べきの順序に配列して新たな多項式基
底を構成する。
【0162】ステップS3:次に、修正因子β[iq/k](0
<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の多
項式表現として出力される。
【0163】一例として、GF(q)の位数qのビット長|
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)} に置換される。
【0164】その結果、次の5行5列の行列に該当する
置換が行われる。
【0165】
【数110】 従って、aqのべクトル表示は {a0,a3β[3q/5]/(q),a1β[q/5]/(q),a4β[4q/5]/(q),a
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 である。
【0166】図44の演算装置のブロック図には、この
装置を制御してそれぞれ第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=α0iq/(k) (1≦
i≦k-1)>に対応する配列に置換昇べきの順に配列し、各
基底の係数として出力する処理を実行させ、(4)出力
部64に、係数演算部の出力をaqのベクトル表示とし、
前記昇べきの順序に配列された多項式基底の各々に、対
応する係数を乗算して加算した結果をaqの多項式表現と
して出力する処理を実行させる、手続きが記述されてい
る。
【0167】以上説明したように、第7実施例によっ
て、扱えるデータ長が限定される演算処理に付加処理を
施すことによって、更に汎用な値を扱うことが出来る多
項式基底利用の演算方法及び装置を提供することが出来
る。第8実施例上述の第7実施例と同様にフロベニウス
写像、即ちaのqべき乗を効率良く演算するもう1つの
方法を以下に説明する。
【0168】前述のように元aのqべき乗aqは次式 aq=a0+a1αq+a2α2q+…+aiαiq+…+ak-1α(k-1)q (56) で表される。aiq(1≦i≦k-1)は、前述のようにαのGF
(q)上の最小多項式xk-β(β∈GF(q))に最小多項式の定
義αk-β=0を適用して αiqiαi(q-1) iβi[(q-1)/k] (57) で表される。従って、aqは次式のように表される。
【0169】 aq=a0+a1αβ[(q-1)/k]+a2α2β2[(q-1)/k]+…+aiαiβi[(q-1)/k]+… +ak-1α(k-1)β(k-1)[(q-1)/k] (58) 式(58)において、i(q-1)/k(0<i<k)は整数であるからai
βi[(q-1)/k]∈GF(q) (0<i<k)である。従って、式(58)
は、aqが、αのGF(q)上の多項式として表現されている
事を示している。
【0170】式(58)から次のことが分かる。 (1)aq を、(α0=1,α,α2,…,αi,…,αk-1)を基底
とするベクトルとして表現すると 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) になる。
【0171】(2)aqを、(α0=1,α,α2,…,αi,…,α
k-1)を基底とする多項式として表現すると
【0172】
【数111】 になる。以下図面を参考にして第8実施形態を説明す
る。
【0173】図47は第8実施例のフロベニウス写像演
算方法を実施するためのフロベニウス写像演算部の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を用いて予め演算された
【0174】
【数112】 を蓄積する。乗算器48Bは外部回路から(a0,a1,…,
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])を生成する。
【0175】積和演算器48Cは乗算器48Bの出力
(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中を素通りする場合の動作が
記述されている。
【0176】ステップS1:まずαのGF(q)上の最小多項
式が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],…,aii[(q-1)/k],…,ak-1(k-1)[( q-1)/k] ) =(a'0,a'1, a'2,…,a'i,…,a'k-1) (64) を生成する。
【0177】ステップS3:次に、乗算器48Bの出力
(a'0,a'1, a'2,…,a'i,…,a'k-1)と多項式基底(1,α,
α2,…αk-1)は積和演算器48Cによって積和演算さ
れ、その演算結果がaqの多項式表現として出力される。
上記の動作は、図47に示されていない情報処理装置の
制御によって実行される。この情報処理装置と図47の
フロベニウス写像演算装置とは、実際には1つのコンピ
ューターによって実現され、前掲のフロベニウス写像演
算処理は、図示されていない記録媒体に記録されている
制御プログラムに記述されている手順に従って実行され
る。
【0178】制御プログラムは、αのGF(q)上の最小多
項式が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]を演算する処理を実行させる。
【0179】次に、制御プログラムはコンピュータに
【0180】
【数113】 を演算させ、その演算結果をaqの多項式表現として出力
させる。この実施例によるフロベニウス写像演算装置の
処理コストはβ[(q-1)/k]2[ (q-1)/k],…,β
(k-1)[(q-1)/k],をメモリに蓄積する事によって演算量
を著しく低下させることが出来る。
【0181】
【発明の効果】この発明は事前演算無しでべき乗テーブ
ルを構成することが出来るため、従来の乗べきテーブル
法を用いた装置と比べて適用範囲が広い(例えば、楕円
DSA署名の署名検索などにも利用できる)。また、従来
装置ではqの小さいFG(q)上の楕円曲線に対してのみ有効
であったフロベニウス写像を用いた演算装置を改良し、
任意の定義体上の楕円曲線に対してフロベニウス写像を
用いない場合の演算装置よりも効率良くm倍演算が行わ
れるようにした。
【0182】図1、23及び34の実施例によるnビッ
トのm倍演算を行うのに必要な楕円加算及び楕円2倍算
の回数を従来の2進法及び符号付2進法と比較した結果
を次表Iに示す。ただし、「べき乗テーブル加算部」に
櫛形法を使った場合、q2wとし、y=n/wとする。また、
zは事前に用意してある楕円曲線上の点の数にiを加えた
値である。通常、楕円曲線暗号ではnとして160〜260程
度の値を用いる。また、wはCPUのワード長を想定してい
る。(w=8,16,32,64またはその近くの値を用いる場合が
多い。
【0183】
【表1】 また「べき乗テーブル加算部」にBGMW法を使った場合、
例えば、q=16、k=40の場合、フロベニウス写像を用いな
い場合に比べ、この発明は、約3.9倍高速にm倍演算をす
ることが出来る。定義体がGF(2)の場合は従来の演算法
と同一であるので、従来装置の拡張になっている。
【図面の簡単な説明】
【図1】この発明による楕円曲線上のm倍演算装置を示
すブロック図。
【図2】楕円曲線上のm倍演算の処理て準を示す流れ
図。
【図3】図1中のPi生成装置1Bの構成を示すブロック
図。
【図4】Pi生成装置の処理手順を示す流れ図。
【図5】フロベニウス写像器の構成を示すブロック図。
【図6】フロベニウス写像器の他の構成を示すブロック
図。
【図7】図1中のφ進展開装置1Cの構成を示すブロッ
ク図。
【図8】φ進展開装置1Cの処理手順を示す流れ図。
【図9】べき乗テーブル加算装置(くし形)の構成を示
すブロック図。
【図10】べき乗テーブル加算装置(BGMW)の構成
を示すブロック図。
【図11】べき乗テーブル加算装置(箱)の構成を示す
ブロック図。
【図12】べき乗テーブル加算装置(くし形)の処理手
順を示す流れ図。
【図13】べき乗テーブル加算装置(BGMW)の処理
手順を示す流れ図。
【図14】べき乗テーブル加算装置(箱)の処理手順を
示す流れ図。
【図15】この発明による楕円m倍演算装置の他の例を
示すブロック図。
【図16】図15の装置の楕円曲線上のm倍演算の処理
手順を示す流れ図。
【図17】図15中のPi生成装置8Bの構成を示すブ
ロック図。
【図18】Pi生成装置(WINDOW)の処理手順を
示す流れ図。
【図19】べき乗テーブル加算装置(WINDOW)の
構成を示すブロック図。
【図20】べき乗テーブル加算(WINDOW)の処理
手順を示す流れ図。
【図21】この発明による楕円m倍+n倍装置の構成を
示すブロック図。
【図22】図21の装置の楕円曲線上のm+n倍演算の
処理手順を示す流れ図。
【図23】この発明によるm倍演算装置の演算量を削減
可能にした実施例を示す図。
【図24】図23の装置によるm倍演算手順を示す流れ
図。
【図25】図23中のφ進展階調整部40の構成を示す
図。
【図26】図25のφ進展階調整処理手順を示す図。
【図27】図25のφ進展階調整処理手順の他の例を示
す図。
【図28】楕円曲線のm+n倍演算装置の構成を示すブ
ロック図。
【図29】図28の演算処理手順を示す図。
【図30】AはHorner法による多項式の計算方法を説明
するための図、BはHorner法による多項式の計算方法を
説明するための図、CはHorner法による多項式の計算方
法を説明するための図。
【図31】多項式計算における桁の分割を説明するため
の図。
【図32】第6実施例において提案する計算方法を説明
するための図
【図33】第6実施例において提案する計算方法を説明
するための図
【図34】第6実施例による楕円曲線上のm倍演算装置
の構成図。
【図35】楕円曲線上のm倍演算手順を示すフロー図。
【図36】Rt,i生成部の構成を示す図。
【図37】Rt,i生成手順を示すフロー図。
【図38】φ進展開部の構成を示す図。
【図39】φ進展開手順を示すフロー図。
【図40】事前演算付き羃乗テーブル加算部の構成を示
す図。
【図41】事前演算付き羃乗テーブル加算手順を示すフ
ロー図。
【図42】φ進展開補正部の構成を示す図。
【図43】φ進展開補正手順を示すフロー図。
【図44】第7実施例の多項式基底を用いた演算方式を
実施するための演算装置のブロック図である。
【図45】図44における係数演算部63の構成例を示
すブロック図。
【図46】第7実施例の動作を説明するフロー図。
【図47】フロベニウス写像演算装置のブロック図。
【図48】図47のフロベニウス写像演算装置の動作を
説明するフロー図である。
───────────────────────────────────────────────────── フロントページの続き (31)優先権主張番号 特願平11−13187 (32)優先日 平成11年1月21日(1999.1.21) (33)優先権主張国 日本(JP) (72)発明者 森田 光 東京都千代田区大手町二丁目3番1号 日本電信電話株式会社内 (56)参考文献 Cheon,J.H.et al., “Two Efficient Alg orithms for Arithm etic of Elliptic C urves Using Froben ius Map,”Lecture N otes in Computer S cience,Vol.1431, (1998),pp.195−202 Tsuruoka,Y.and Ko yama,K.,“Fast scal ar multiplications over elliptic cur ves using Frobeniu s expansions,”1999年暗 号と情報セキュリティシンポジウム,S CIS’99 W4−1.6 Cheon,J.H.et al., “Scalar Multiplica tion on Elliptic C urves by Frobenius Expansions,”ETRI Journal,Vol.21,No. 1,(1999),pp.27−38 Kobayashi,T.et a l.,“Fast Elliptic Curve Algorithm Co mbining Frobenius Map and Table Refe rence to Adapt to Higher Characteris tic,”Lecture Notes in Computer Scien ce,Vol.1592,(1999),pp. 176−189 (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 - 5/00 H04K 1/00 - 3/00 H04L 9/00 G06F 7/00 INSPEC(DIALOG) JICSTファイル(JOIS)

Claims (66)

    (57)【特許請求の範囲】
  1. 【請求項1】 有限体上に定義された楕円曲線E/GF(q)
    上におけるGF(qk)有理点Pのm倍を演算する楕円曲線演
    算装置であり、 有理点Pと、E/GF(q)上で定義されるフロベニウス写像
    φと、1以上の整数kと、3以上の素数qまたはそのべ
    き乗とを入力する入力手段と上記E/GF(q)によって定ま
    るフロベニウス写像φを用いて 【数1】 を満たす整数r,ci, ただし0i<r,0k,−
    i qを求めるφ進展開手段と、 上記有理点Pと整数r,ciが与えられ、 なるr個の点P0〜Pr-1を求めるPi生成手段と、 上記r個の点P0〜Pr-1が入力されて 【数2】 を計算するべき乗テーブル加算手段と、 計算した上記mPを出力する出力手段、 とを含む楕円曲線演算装置。
  2. 【請求項2】 請求項1の楕円曲線演算装置において、 上記べき乗テーブル加算手段は、 ciがd以下となるiについてPiを全て加算した値Sdを得
    て、更に 【数3】 を演算してmPを得る手段を含む楕円曲線演算装置。
  3. 【請求項3】 請求項1の楕円曲線演算装置において、 上記べき乗テーブル加算手段は、 【数4】 からcijを求める手段と、 【数5】 を演算する手段と、 【数6】 をmPとして得る手段とを含む楕円曲線演算装置。
  4. 【請求項4】 請求項1の楕円曲線演算装置において、 上記べき乗テーブル加算手段は、 【数7】 【数8】 を求めてmPを得る手段である楕円曲線演算装置。
  5. 【請求項5】 請求項1の楕円曲線演算装置において、
    加算の単位元をOとすると、 上記べき乗テーブル加算手段は、 Sr=O Si=ciP+φSi+1, 0i<r (3a) の演算を行って、S0=mPを求める手段である楕円曲
    線演算装置。
  6. 【請求項6】 有限体上に定義された楕円曲線E/GF(q)
    上におけるGF(qk)有理点Pのm倍を演算する楕円曲線演
    算装置であり、 有理点Pと、E/GF(q)上で定義されるフロベニウス写像
    φと、1以上の整数kと、3以上の素数qまたはそのべ
    き乗とを入力する入力手段と上記E/GF(q)によって定ま
    るフロベニウス写像φを用いて 【数9】 を満たす整数r,ci, ただし0i<r,0k,−
    i qを求めるφ進展開手段と、 上記有理点Pと上記E,qが与えられ、 Pi=iP なるq個の点P0〜Pq-1を求めるPi生成手段と、 r個の上記点P0〜Pr-1と上記c0〜cr-1が入力されて 【数10】 を計算するべき乗テーブル加算手段と、 計算した上記mPを出力する出力手段、 とを含む楕円曲線演算装置。
  7. 【請求項7】 請求項6の楕円曲線演算装置において、
    加算の単位元をOとすると、 上記べき乗テーブル加算手段は、上記Piの全部又は一部
    を用いて Sr=O Si=Pi+φSi+1, 0i<r として演算してS0=mPを求める手段である楕円曲線
    演算装置。
  8. 【請求項8】 請求項6の楕円曲線演算装置において、
    外部から Pi=iP,0<iq となるPiが少なくとも一部入力され、 上記べき乗テーブル加算手段は上記式(1a)の演算を Sr=O Si=Pi+φSi+1, 0i<r として行う手段である楕円曲線演算装置。
  9. 【請求項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. 【請求項10】 請求項9の楕円曲線演算装置におい
    て、r>kの場合に、上記φ進展開調整手段は楕円曲線
    上のGF(qk)有理点に対し、 φkP=P が成り立つことを利用して、c'i=ci+ci+k+ci+2k
    …, 0k-1なる変換を行う事によってr個の列ci
    をk個の列c'iに変換してから、上記べき乗テーブル加
    算手段に入力して上記式(1a)の右辺の演算を行う手段で
    ある楕円曲線演算装置。
  11. 【請求項11】 請求項9又は10の楕円曲線演算装置
    において、上記べき乗テーブル加算手段は、ciがd以下
    となるiについてPiをすべて加算してSdを得て、 【数12】 を求めることによって上記式(1a)を計算する手段を含
    み、 上記φ進展開調整手段は楕円曲線上のGF(qk)有理点Pに
    対し、 (φk-1+φk-2+…+1)P=0 が成り立っている場合、これを利用して、ciの絶対値を
    小さくする変換を施す手段を含む楕円曲線演算装置。
  12. 【請求項12】 請求項9又は10の楕円曲線演算装置
    において、上記べき乗テーブル加算手段は、 【数13】 ただし0ij 1,[logb]はbより小さい最大の整
    数、bは|ci|の最大値、によってcijを定め、 【数14】 によりSを上記mPとして求め、 上記φ進展開調整手段は、楕円曲線上のGF(qk)有理点P
    に対し、 (φk-1+φk-2+…+1)P=0 が成り立っていいる場合に、これを利用して、ciを2進
    又は符号付き2進表現を行う場合の各桁0以外の値の数
    で表されるハミング重みを最小化するように変換する手
    段を含む楕円曲線演算装置。
  13. 【請求項13】 請求項1、9又は10の楕円曲線演算
    装置において、楕円曲線上の点PとしてP1, P2, …, Pn
    を入力し、整数mとしてm1, m2, …, mnを入力し、 【数15】 を上記mPとして得る楕円曲線演算装置。
  14. 【請求項14】 請求項1の楕円曲線演算装置におい
    て、 上記φ進展開手段はE/GF(q)によって定まるフロベニウ
    ス写像φを用いて 【数16】 を満たすr,ciを求め、但し0i<r,0r<k,
    −q<ci<qであり、上記Pi生成手段は、整数r及びP
    より事前に計算されるS個のE/GF(q)上のGF(qk)有理点
    t=dtaP, 0 t <sの入力に対し、 Rt,i≡φit ただし0 t<s, 0i<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. 【請求項15】 請求項14の楕円曲線演算装置におい
    て、上記事前演算付べき乗テーブル加算手段は、 【数19】 を演算する手段と、 【数20】 を演算してmPを得る手段、 とを含む楕円曲線演算装置。
  16. 【請求項16】 請求項15の楕円曲線演算装置におい
    て、上記整数dはd=2であり、上記集合Bは{0,
    1}であって上記式(6a)の演算に於いてcj,t,i倍の部分
    を0倍及び1倍のみで構成する楕円曲線演算装置。
  17. 【請求項17】 請求項15の楕円曲線演算装置におい
    て、上記整数dはd=2であり、上記集合Bは{−1,
    0,1}であって上記式(6a)の演算に於いてcj,t,i倍の
    部分を−1倍及び0倍及び1倍のみで構成する楕円曲線
    演算装置。
  18. 【請求項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. 【請求項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=α0iq/(k)(1≦i≦k-
    1)}に対応して新たな配列に再配列し、それぞれの対応
    する基底の係数として出力する楕円曲線演算装置。
  20. 【請求項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. 【請求項21】 請求項20の楕円曲線演算装置におい
    て、上記フロベニウス写像演算手段は、予め演算された
    βi[(q-1)/k](0<i<k)を蓄積し、上記乗算手段にβ
    i[(q-1)/k](0<i<k)を出力するメモリ手段を含む楕円曲
    線演算装置。
  22. 【請求項22】 請求項20の楕円曲線演算装置におい
    て、上記a0と上記乗算手段によって生成されたa'i(0<i<
    k)を入力して、積和 【数21】 を演算して、上記aqの多項式表現として出力する積和演
    算手段を含む楕円曲線演算装置。
  23. 【請求項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,但し0i<r,0<rk,−
    ci qを求めるステップ、 (C) 上記有理点Pと整数rと上記写像φと上記qを上記
    P i 生成手段に力して、 なるr個の点P0〜Pr-1を生成するステップ、 (D) 上記r個の点P0〜Pr-1と上記整数ciと、上記Eと
    上記rを上記加算手段に入力して 【数23】 を計算するステップ、 (E) その計算した上記mPを出力するステップ
  24. 【請求項24】 請求項23の楕円曲線演算方法におい
    て、上記ステップ(D)は以下のステップを含む: (D-1) 上記ciとdと上記Piを入力してciがd以下となるi
    についてPiをすべて加算した値Siを求め、 (D-2) ciの最大値bと上記Sdを入力して 【数24】 を求め、そのSを上記mPとして出力することを特徴と
    する楕円曲線演算方法。
  25. 【請求項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. 【請求項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. 【請求項27】 請求項23の楕円曲線演算方法におい
    て、加算の単位元をOとすると、上記ステップ(D)はSr
    =Oとi=r−1を初期値としてメモリに格納し、 メモリよりSi+1とiを取出し、そのSi+1とci,Pi
    φを入力して Si=ciP+φSi+1,0i<r (3b) を演算し、かつi←i−1としてSi+1とiをメモリに
    格納し、 メモリからSi+1とiを取り出して上記のことを繰り返
    し、S0を上記mPとして求めるステップであることを特
    徴とする楕円曲線演算方法。
  28. 【請求項28】 有限体上に定義された楕円曲線E/GF
    (q)上におけるGF(qk)有理点Pのm倍を演算する装置に
    使用される楕円曲線演算方法であり、φ進展開手段と、
    生成手段と、べき乗テーブル加算手段とを用いて
    下のステップを行うことを特徴とする楕円曲線演算方
    法。: (A) 有理点Pと、E/GF(q)上で定義されるフロベニウス
    写像φと、整数kと、3以上の素数qまたはそのべき乗
    とを上記φ進展開手段に入力するステップ、 (B) 上記mとkと、上記E/GF(q)によって定まるフロベ
    ニウス写像φを用いて 【数30】 を満たす整数r,ci,但し0i<r,0<rk,−
    ci qを求めるステップ、 (C) 上記有理点Pと上記E、qを上記P 生成手段に入
    力して、 Pi=iP なるq個の点P0〜Pq-1を生成するステップ、 (D) r個の上記点P0〜Pr-1と上記c0〜cr-1上記べき
    乗テーブル加算手段に入力して、 【数31】 を計算するステップ、 (E) 計算した上記mPを出力するステップ
  29. 【請求項29】 請求項28の楕円曲線演算方法におい
    て、iとPを入力して Pi=iP,ただし0<iq の演算を行うステップを含み、 上記ステップ(D)は Sr=O、i=r−1を初期値としてメモリに格納し、 上記P i の全部又は一部を用い、かつメモリからS i+1 とi
    とを取り出してi=Pi+φSi+1,0i<r (3b) を演算し、かつi←i−1として、S i+1 とiをメモリに
    格納し、 メモリからS i+1 とiとを取り出して上記のことを繰り返
    して 演算するステップであることを特徴とする楕円曲線
    演算方法。
  30. 【請求項30】 請求項28の楕円曲線演算方法におい
    て、外部から Pi=iP,0i<q となるPiを少なくとも一部入力し、上記ステップ(D)は
    上記メモリに対する格納読み出しを利用して上記式(3b)
    の演算をSr=O、i=r−1を初期値として Si=Pi+φSi+1,0i<r を演算するステップであることを特徴とする楕円曲線演
    算方法。
  31. 【請求項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. 【請求項32】 請求項31の楕円曲線演算方法におい
    て、r>kの場合に、上記φ進展開調整ステップは、楕
    円曲線上のGF(qk)有理点に対し、 φkP=P が成り立つことを利用して、上記kも上記φ進展開調整
    手段に入力して、c'i=ci+ci+k+ci+2k+…, 0
    k-1なる変換を行うことによってr個の列ciをk個の列
    c'iに変換するステップであることを特徴とする楕円曲
    線演算方法。
  33. 【請求項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. 【請求項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. 【請求項35】 請求項23,31又は32の楕円曲線
    演算方法において、上記ステップ(D)は加算手段に楕円
    曲線上の点PとしてP1, P2, …, Pnを入力し、整数mと
    してm1, m2, …, mnを入力して、 【数36】 を演算してその結果を上記mpとして得ることを特徴と
    する楕円曲線演算方法。
  36. 【請求項36】 有限体上に定義された楕円曲線E/GF
    (q)上におけるGF(q k )有理点Pのm倍を演算する装置に
    使用される楕円曲線演算方法であり、φ進展開手段と、
    t,i 生成手段と、加算手段とを用いて以下のステップ
    を行うことを特徴とする楕円曲線演算方法。: (A) 有理点Pと、E/GF(q)上で定義されるフロベニウス
    写像φと、整数kと、整数mと、3以上の素数qまたは
    そのべき乗とを上記φ進展開手段に入力するステップ、 (B) 上記整数mと、上記整数kと上記E/GF(q) によって定
    まるフロベニウス写像φを用いて、 【数37】 を満たすr,c i ただし0i<r,0r<k,-q<c<q,
    を求めるステップ(C)整 数d及びPより事前に計算されたs個のE/GF(q)上の
    GF(qk)有理点列Qt=dtaP, 0t<s,とφiと、rを上記
    t,i 生成手段に入力して、 Rt,i=φit ただし0i<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. 【請求項37】 請求項36の楕円曲線演算方法におい
    て、上記事前演算付べき乗テーブル加算ステップは 上記Rt,i
    とcj,t,iとrとsを入力して、 【数40】 を演算するステップと、上記djとTjとaを入力して、 【数41】 を演算してmPを得るステップ、 とを含むことを特徴とする楕円曲線演算方法。
  38. 【請求項38】 請求項37の楕円曲線演算方法におい
    て、上記整数dをd=2とし、上記集合Bを{0,1}
    として上記式(6b)の演算においてcj,t,i倍の部分を0倍
    及び1倍のみで構成することを特徴とする楕円曲線演算
    方法。
  39. 【請求項39】 請求項37の楕円曲線演算方法におい
    て、上記整数dをd=2とし、上記集合Bを{−1,
    0,1}とし、上記式(6b)の演算においてcj,t,i倍の部
    分を−1倍及び0倍及び1倍のみで構成することを特徴
    とする楕円曲線演算方法。
  40. 【請求項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. 【請求項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. 【請求項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. 【請求項43】 請求項42の楕円曲線演算方法におい
    て、上記フロベニウス写像演算ステップの上記入力ステ
    ップは、予め演算されメモリ手段に蓄積されてあるβ
    i[(q-1)/k](0<i<k)を読み出して入力することを特徴と
    する楕円曲線演算方法。
  44. 【請求項44】 請求項42の楕円曲線演算方法におい
    て、上記a0と上記乗算ステップによって生成されたa'
    i(0<i<k)とαiを入力して、 【数42】 を演算して、上記aqの多項式表現として出力する積和演
    算ステップを含むことを特徴とする楕円曲線演算方法。
  45. 【請求項45】 有限体上に定義された楕円曲線E/GF
    (q)上におけるGF(qk)有理点Pのm倍を演算する装置に
    使用される楕円曲線演算方法をコンピュータで実行する
    プログラムが記録された記録媒体であり、上記プログラ
    ムは、φ進展開手段と、P 生成手段と、加算手段とを
    用いて以下のステップを実行させることを特徴とする記
    録媒体。: (A) 有理点Pと、E/GF(q)上で定義されるフロベニウス
    写像φと、整数kと、整数mと、3以上の素数qまたは
    そのべき乗とを上記φ進展開手段に入力するステップ、 (B) 上記mと上記kと上記E/GF(q)によって定まるフロベ
    ニウス写像φを入力して、 【数43】 を満たす整数r,ci,ただし0i<r,0
    k,−qi qを求めるステップ、 (C) 上記有理点Pと整数r,ci、上記写像φ,上記qを
    上記P 生成手段に入力して なるr個の点P0〜Pr-1を生成するステップ、 (D) 上記r個のP0〜Pr-1と上記ciと、上記Eと上記r
    上記加算手段に入力して 【数44】 を計算するステップ、 (E) その計算した上記mPを出力するステップ
  46. 【請求項46】 請求項45の記録媒体において、上記
    ステップ(D)は以下のステップを含む: (D-1) 上記ciとdと上記Piを入力してciがd以下となる
    iについてPiをすべて加算した値Sdを求め、 (D-2) ciの最大値bとSdとを入力して 【数45】 を演算し、上記mPを得ることを特徴とする記録媒体。
  47. 【請求項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. 【請求項48】 請求項45の記録媒体において、上記
    ステップ(D)は以下のステップを含む: (D-1) mとbを入力して、mのb進展開した値miと、
    iを2進展開した値mijを求め、ただしbは0<m<b
    kを満たす整数、 mijとPiとkを入力して 【数49】 を計算し、 (D-2) ciを入力して、その最大値bを求め、bと上記
    計算結果Sjを入力して、 【数50】 を計算し、その計算結果SをmPとして演算することを
    特徴とする記録媒体。
  49. 【請求項49】 請求項45の記録媒体において、加算
    の単位元をOとすると、上記ステップ(D)はSr=Oとi
    =r−1を初期値としてメモリに格納し、 メモリよりSi+1とiを取出し、そのSi+1とPi、ci、φ
    を入力して、 Si=ciP+φSi+1,0i<r (3c) を演算し、かつi←i−1として、そのiと演算結果S
    i+1をメモリに入力し、これより再び取り出して、上記
    のことを繰り返し、S0を上記mPとして求めるステップ
    であることを特徴とする記録媒体。
  50. 【請求項50】有限体上に定義された楕円曲線E/GF(q)
    上におけるGF(qk)有理点Pのm倍を演算する装置に使用
    される楕円曲線演算方法をコンピュータで実行するプロ
    グラムが記録された記録媒体であり、上記プログラム
    、φ進展開手段と、P 生成手段と、べき乗テーブル
    加算手段とを用いて以下のステップを実行させることを
    特徴とする記録媒体。: (A) 有理点Pと、E/GF(q)上で定義されるフロベニウス
    写像φと、整数kと、3以上の素数qまたはそのべき乗
    とを上記φ進展開手段に入力するステップ、 (B) 上記mとkと上記E/GF(q)によって定まるフロベニ
    ウス写像φを用いて 【数51】 を満たす整数r,ci,ただし0i<r,0
    k,−qi qを求めるステップ、 (C) 上記有理点Pと上記E,qを上記P 生成手段に入力
    して、 Pi=iP なるq個の点P0〜Pq-1を生成するステップ、 (D) r個の上記P0〜Pr-1と上記c0〜cr-1上記べき
    乗テーブル加算手段に入力して 【数52】 を計算するステップ、 (E) 計算した上記mPを出力するステップ
  51. 【請求項51】 請求項50の記録媒体において、 上記ステップ(D)は、 r =O,i=r−1を初期値としてメモリに格納し、 上記Piの全部又は一部を用い、かつメモリからS i+1
    とiを取り出してi=Pi+φSi+1,0i<r (3c) を演算し、かつi←i−1として、S i+1 とiをメモ
    リに格納し、 メモリからS i+1 とiを取り出して上記のことを繰り
    返して演算 するステップであることを特徴とする記録媒
    体。
  52. 【請求項52】 請求項50の記録媒体において、外部
    から Pi=iP,0i<q となるPiを少なくとも一部入力し、上記ステップ(D)は
    メモリに対する格納読み出しを繰り返して上記式(3c)
    演算をSr=O,i=r−1を初期値として Si=Pi+φSi+1,0i<r を演算するステップであることを特徴とする記録媒体。
  53. 【請求項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. 【請求項54】 請求項53の記録媒体において、r>
    kの場合に、上記φ進展開調整ステップは、楕円曲線上
    のGF(qk)有理点に対し、 φkP=P が成り立つことを利用して、kも上記φ進展開調整手段
    入力してc'i=ci+ci+k+ci+2k+…,Oik-1なる変
    換を行うことによってr個の列ciをk個の列c'iに変換
    するステップであることを特徴とする記録媒体。
  55. 【請求項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. 【請求項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. 【請求項57】 請求項46,53又は54の記録媒体
    において、上記ステップ(D)は加算手段に楕円曲線上の
    点PとしてP1, P2, …, Pnを入力し、整数mとしてm1,
    2, …, mnを入力して、 【数57】 を計算し,その結果を上記mPとして得ることを特徴と
    する記録媒体。
  58. 【請求項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 ただし0i<r, 0r<k, -q<ci<q
    を求めるステップ、 (C)整 数d及びPより事前に計算されたs個のE/GF(q)上
    のGF(qk)有理点列Qt=dtaP, 0t<s, とφiとrを上記
    t,i 生成手段に入力して、 Rt,i=φit, ただし0i<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. 【請求項59】 請求項58の記録媒体において、上記事前演算付べき乗テーブル加算ステップは 上記Rt,i
    とcj,t,iとrとsを入力して、 【数61】 を演算するステップと、上記djとTjとaを入力して 【数62】 を演算してmPを得るステップ、 とを含むことを特徴とする記録媒体。
  60. 【請求項60】 請求項59の記録媒体において、上記
    整数dはd=2であり、上記集合Bは{0,1}であっ
    て上記式(6c)の演算においてcj,t,i倍の部分を0倍及び
    1倍のみで構成することを特徴とする記録媒体。
  61. 【請求項61】 請求項59の記録媒体において、上記
    整数dはd=2であり、上記集合Bは{−1,0,1}
    であって上記式(6c)の演算においてcj,t,i倍の部分を0
    倍及び1倍のみで構成することを特徴とする記録媒体。
  62. 【請求項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. 【請求項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. 【請求項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. 【請求項65】 請求項64の記録媒体において、上記
    フロベニウス写像演算ステップの上記入力ステップは、
    予め演算されメモリ手段に蓄積されてあるβi[(q-1)/k]
    (0<i<k)を読み出して入力することを特徴とする記録媒
    体。
  66. 【請求項66】 請求項64の記録媒体において、上記
    a0と上記乗算ステップによって生成されたa'i (0<i<k)
    とαiを入力して、 【数63】 を演算して、上記aqの多項式表現として出力する積和演
    算ステップを含むことを特徴とする記録媒体。
JP25091499A 1998-09-03 1999-09-03 楕円曲線演算装置、演算方法及びその方法を実施するプログラムを記録した記録媒体 Expired - Lifetime JP3145368B2 (ja)

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
JP24950098 1998-09-03
JP10-249500 1998-09-03
JP25552698 1998-09-09
JP10-255526 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020057796A1 (en) 1998-12-24 2002-05-16 Lambert Robert J. Method for accelerating cryptographic operations on elliptic curves
CA2257008C (en) * 1998-12-24 2007-12-11 Certicom Corp. A method for accelerating cryptographic operations on elliptic curves
JP2003513312A (ja) * 1999-10-28 2003-04-08 シーメンス アクチエンゲゼルシヤフト スカラーによる因子類の乗算のための方法
US7602907B2 (en) * 2005-07-01 2009-10-13 Microsoft Corporation Elliptic curve point multiplication

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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) 有限可換群演算方法、装置およびそのプログラム
Li et al. Efficient Nonrecursive Bit-Parallel Karatsuba Multiplier for a Special Class of Trinomials.
Kim et al. Toffoli gate count Optimized Space-Efficient Quantum Circuit for Binary Field Multiplication
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
US20220417017A1 (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) 積演算装置及びそのプログラム記録媒体

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