JP3329440B2 - 事前計算を用いた複数生成元に対する演算装置及びそのプログラム記録媒体 - Google Patents
事前計算を用いた複数生成元に対する演算装置及びそのプログラム記録媒体Info
- Publication number
- JP3329440B2 JP3329440B2 JP09592798A JP9592798A JP3329440B2 JP 3329440 B2 JP3329440 B2 JP 3329440B2 JP 09592798 A JP09592798 A JP 09592798A JP 9592798 A JP9592798 A JP 9592798A JP 3329440 B2 JP3329440 B2 JP 3329440B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- subsum
- value
- power
- sum
- 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 - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
Landscapes
- Complex Calculations (AREA)
Description
リティ技術に利用され、事前計算を用いて生成元が複数
存在するものを算出する装置およびそのプログラム記録
媒体に関する。
らによる有限体上の1つの生成元に対する演算方式の説
明をする。固定されたg(∈Z/qZ)と固定でないn
に対してgn を求める方式である。
ぞれsum=1、subsum=1、d=maとする。 S1 at =dを探し、そのtについて事前計算値(g
のbt 乗)を用い、 S2 subsum←subsum×(gのbt 乗)を
計算し、 S3 更にsum←sum×subsumを計算し、 S4 d←d−1としてd=0になるまでS1乃至S4
を繰返す。
である。このようにgのbt 乗を事前に計算し結果を保
持しておくことにより有限体上の演算gn を算出するこ
とが可能である。従来方式にて複数生成元に対する演算
を行う場合は個々の生成元に対して計算を行い、最後に
これらから得られた結果の積をとることで求める。この
従来方式の具体的な数値例を図10に示す。これはg1
352・g2 406を求める例であり、図10Aはg1 352を、
図10Bはg2 406をそれぞれ求める過程を描いたもので
あり、g1 352の352を10進展開し352に、またg
2 406の406を10進展開し406になり、(g1 100,
g1 10 ,g1 1)と(g2 100,g2 10 ,g2 1)が事前計算
によって予め得られている値とする。図10Aのg1 352
の計算を例として説明する。
3,5,2であり、グラフではそれぞれの値が棒グラフ
として記載されている。3本の棒グラフの中で最も値が
大きいのは10の位の5である。従ってma=5であ
り、d=5からスタートする。つまり初期値としてsu
m=1,subsum=1,d=5を与える。d=5と
3本の棒グラフの端点が接しているのは10の位のみで
ある。従ってg1 10 をメモリより取り出し、subsu
m←subsum×g1 10 =g1 10 を計算し、更にsu
m←sum×g1 10 =g1 10 を求める。このsum(=
g1 10 )がd=5のときの結果となる。次にdを−1し
てd=4とするとd=4と棒グラフの端点が接している
箇所はない。従ってsum←sum(=g1 10 )×su
bsum(=g1 10 )を計算し、sum=g1 20 を得
る。このsum(=g1 20 )がd=4のときの結果とな
る。次にd=3としてd=3と棒グラフの端点が接して
いるのは100の位である。従ってg1 100をメモリより
取り出し、subsum←subsum×g1 100=g1
10 ×g1 100=g1 110を計算し、更にsum←sum×
g 1 110=g1 20 ×g1 110=g1 130となる。このsum
(=g1 130)がd=3のときの結果となる。以下d=1
まで同様の作業を行い、結果としてg1 352を得る。
様の作業にてg2 406を得、これとg 1 の結果であるg1
352との積をとり、最終的なg1 352・g2 406を得る。こ
のように複数の生成元が存在する場合はその生成元の数
だけ上記方式を繰り返すことになる。
力の向上や各種解法アルゴリズムの発見により、暗号や
署名の安全性を向上させるためにより難しい問題を根拠
とする必要が生じている。これに対する解決法としてよ
り難しい問題である複数生成元を扱った離散対数問題や
楕円曲線上の群に対する離散対数問題を安全性の根拠と
する暗号方式や署名方式が提案されつつある。
生成元に対する演算方式では、こういった複数生成元を
もつものに対してはその生成元の数の分だけ方式自体を
繰返すこととなり、演算量を低減し処理速度を向上させ
る点で十分な効果が得られなかった。従来方式による具
体的な数値例を図10に挙げたが、従来方式ではg1 3 52
とg2 406を独立に計算し、最後に両者の積をとるという
作業が必要であった。
対して、より難しい問題点である複数生成元に対する離
散対数問題を安全性の根拠とした暗号方式や署名方式の
内部演算をより効率的に行う演算装置およびそのプログ
ラム記録媒体を提供することである。
ば、固定要素g1 ,g2 ,…,gm と固定でない整数y
1 ,y2 ,…,ym が入力され、(g1 のy1 乗)×
(g2 のy2 乗)×…×(gm のym 乗)の演算結果を
出力する演算装置において、g1 のb1 0 乗,g1 のb
1 1 乗,…,g1 のb1 r1乗,g2 のb2 0 乗,g 2 の
b2 1 乗,…,g2 のb2 r2乗,…,gm のbm 0 乗,
gm のbm 1 乗,…,gm のbm rm乗の各値が記憶メモ
リ手段に記憶され、上記各入力値yi (i=1,2,
…,m)をそれぞれbi 進展開してgi =Σ t=0 riait
bi t なる関係の各係数ait(0≦ait<bi ,t=
0,1,…,ri)が展開手段で求められてレジスタに
格納され、各係数ait中の最大値maが検出され、3つ
の変数sum,subsum,dがそれぞれ初期値1,
1,maに設定され、上記係数ait中の上記変数値dと
一致するものが探索手段で探索され、その探索したait
のiとtに対し、上記メモリ手段を参照して、subs
um演算手段でsubsum×(gi のbi t 乗)が演
算され、その結果が新たなsubsumとされ、掛算手
段で上記変数subsumと上記変数sumとが掛算さ
れて新たなsumとされ、上記変数dが正であるか0で
あるかが判定手段で判定され、その判定手段が正と判定
すると、上記変数dを1減算して新たなdとし、そのd
に対し、上記探索手段、上記subsum演算手段、上
記掛算手段、上記判定手段を繰返し、上記判定手段が0
と判定すると上記掛算手段の結果の変数値sumが演算
結果として出力される。
要素G1 ,G2 ,…,Gm と、固定でない整数y1 ,y
2 ,…,ym が入力され、 y1 G1 +y2 G2 +…+ym Gm の演算結果を出力する演算装置において、b1 0 G1 ,
b1 1 G1 ,…,b1 r1G1 ,b2 0 G2 ,b
2 1 G2 ,…,b 2 r2G2 ,…,bm 0 Gm ,bm 1 G
m ,…,bm rmGm の各乗算値がメモリ手段に記憶さ
れ、上記各入力値yi (i=1,2,…,m)がそれぞ
れ展開手段により、bi 進展開されてyi =Σt=0 ria
itbi t なる関係の各係数ait(0≦ait<b,t=
0,1,…,ri)が求められ、これら各係数aitがレ
ジスタに格納され、各係数ait中の最大値maが検出さ
れ、3つの変数sum,subsum,dがそれぞれ初
期値として無限遠点、無限遠点、maに設定され、上記
係数ait中の上記変数値dと一致するものが探索手段で
探索され、その探索したaitのiとtに対し、上記メモ
リ手段を参照してsubsum+bi t G i がsubs
um演算手段で、上記楕円曲線上で演算され、その結果
が新たなsubsumとされ、上記変数subsumと
上記変数sumと上記楕円曲線上で加算手段により加算
されて新たなsumとされ、上記変数dが正であるかd
=0かが判定手段で判定され、、上記判定手段が正と判
定すると、上記変数dを1減算して、新たなdとし、そ
のdに対し、上記探索手段、上記subsum演算手
段、上記加算手段、上記判定手段が繰返され、上記判定
手段が0と判定すると上記加算手段の結果の変数値su
mが演算結果として出力される。
2 ,…,gm と固定でない整数y1,y2 ,…,ym が
入力され、(g1 のy1 乗)×(g2 のy2 乗)×…×
(g m のym 乗)の演算結果を出力する演算装置におい
て、g1 の(−b1 r1)乗,g1 の(−b1 r1-1)乗,
…,g1 のb1 0 乗,g1のb1 1 乗,…,g1 のb1
r1乗,g2 の(−b2 r2)乗,g2 の(−b2 r2-1)
乗,…,g2 のb2 0 乗,…,g2 のb2 r2乗,…,g
m の(−bm rm)乗,…,gm のbm 0 乗,…,gm の
bm rm乗の各値がメモリ手段に記憶され、上記各入力値
yi (i=1,2,…,m)がそれぞれ符号付bi 進展
開されて、yi =Σt=0 riaitbi t なる関係の各係数
ait(−[(bi −1)/2]≦ait≦[(bi −1)
/2],t=0,1,…,ri,[a]はa以上で最小
の整数である)が展開手段により求められてレジスタに
格納され、上記係数ait中の絶対値の最大値maが検出
され、3つの変数sum,subsum,dがそれぞれ
初期値として1,1,maに設定され、上記係数ait中
の絶対値が上記変数値dと一致するものが探索手段で探
索され、その探索したaitの符号とiとtに対し、上記
メモリ手段を参照してsubsum×(gi の(aitの
符号)bi t 乗)がsubsum演算手段で演算され、
その結果が新たなsubsumとされ、上記変数sub
sumと上記変数sumとが掛算手段で掛算されて新た
なsumとされ、上記変数dが正であるか0であるかが
判定手段で判定され、上記判定手段が正と判定すると、
上記変数dを1減算して新たなdとし、そのdに対し上
記探索手段、上記subsum演算手段、上記掛算手
段、上記判定手段が繰返され、上記判定手段が0と判定
すると、上記掛算手段の結果の変数値sumが演算結果
として出力される。
要素G1 ,G2 ,…,Gm と、固定でない整数y1 ,y
2 ,…,ym が入力され、 y1 G1 +y2 G2 +…+ym Gm の演算結果を出力する演算装置において、b1 0 G1 ,
b1 1 G1 ,…,b1 r1G1 ,b2 0 G2 ,b
2 1 G2 ,…,b 2 r2G2 ,…,bm 0 Gm ,bm 1 G
m ,…,bm rmGm の各乗算値がメモリ手段に記憶さ
れ、上記各入力値yi (i=1,2,…,m)が展開手
段で、それぞれ符号付bi 進展開されてyi =Σt=0 ri
aitbi t なる関係の各係数ait(−[(bi −1)/
2]≦ait≦[(bi −1)/2],t=0,1,…,
ri,[a]はa以上で最小の整数である)が求められ
てレジスタに格納され、上記係数ait中の絶対値の最大
値maが検出され、3つの変数sum,subsum,
dにそれぞれ初期値として無限遠点、無限遠点、maが
設定され、上記係数ait中の絶対値が上記変数値dと一
致するものが探索手段で探索され、その探索したaitの
iとtに対し、上記メモリ手段を参照して、subsu
m演算手段でsubsum+(aitの符号)bi t Gi
が上記楕円曲線上で演算され、その結果が新たなsub
sumとされ、上記変数subsumと上記変数sum
とが上記楕円曲線上で加算手段により加算されて新たな
sumとされ、上記変数dが正であるか0であるかが判
定手段で判定され、上記判定手段が正と判定すると、上
記変数dを1減算して新たなdとし、そのdに対し、上
記探索手段、上記subsum演算手段、上記加算手
段、上記判定手段が繰返され、上記判定手段が0と判定
すると、上記加算手段の結果の変数値sumが演算結果
として出力される。
いた各生成元に対する乗算(有限体上)または加算(楕
円曲線上)を先にまとめてその全体を乗算または加算を
行うことにより、これまで複数回必要であった乗算また
は加算の箇所を1回で完了可能とする。
例について詳しく説明する。第一実施例
例の手順の一例は以下の通りである。3つの変数su
m、subsum、dの初期値をそれぞれsum=1、
subsum=1、d=maとし、 S1 ait=dを探し、そのi,tについて、 S2 subsum←subsum×(gi のb
i t 乗)を計算し、 S3 sum←sum×subsumを計算し、 S4 d←d−1としてd=0になるまでS1乃至S4
を繰返す。
である。以上をgi のbi t 乗を事前に計算し結果を保
持しておくことにより(g1 のy 1 乗)×(g2 のy2
乗)×…×(gm のym 乗)を効率良く算出する一例と
して挙げることができる。上記アルゴリズムを実行する
この発明の演算装置の実施例を図1に示す。固定要素g
1 ,g2 ,…,gm と固定でない整数y1 ,y2 ,…,
ym が入力手段(レジスタを含む)11に入力される。
g1 のb1 0 乗,g1 のb1 1 乗,…,g 1 のb
1 r1乗,g2 のb2 0 乗,g2 のb2 1 乗,…,g2 の
b2 r2乗,…,g m のbm 0 乗,gm のbm 1 乗,…,
gm のbm rm乗の各値を記憶したメモリ手段12が設け
られている。各入力値yi (i=1,2,…,m)は展
開手段13でそれぞれbi 進展開されてyi =Σt=0 ri
aitbi t なる関係の各係数ait(0≦ait<bi ,t
=0,1,…,ri)が求められ、これら各係数ait、
つまり(a10,a11,…,a1r1 ),(a20,a21,
…,a2r2 ),…,(am0,a m1,…,amrm )がレジ
スタ14に格納される。最大値検出手段15により係数
ait中の最大値maが検出される。一方変数レジスタ1
6,17および18に、それぞれ変数sum,subs
um,dの初期値として1,1,maが設定される。そ
の後、探索手段19により各係数ait中のレジスタ18
内の変数値dと一致するものが探索される。その探索し
たaitのiとtによりメモリ手段12から(gi のbi
t 乗)の値が読出され、レジスタ17中のsubsum
の値との乗算がsubsum演算手段21で行われ、そ
の演算結果subsum×(gi のbi t 乗)が新たな
subsumとしてレジスタ17に格納される。
レジスタ16内の上記変数sum値とが掛算手段22で
掛算され、その結果が新たなsumとしてレジスタ16
に格納される。この掛算の後、レジスタ18内の変数d
が正であるか0であるかの判定が判定手段23で行われ
る。この判定手段23が正と判定すると、変数dは減算
手段24で1減算されてレジスタ18に新たなdとして
格納され、そのdに対し、探索手段19、subsum
演算手段21、掛算手段22、判定手段23の各動作が
繰返される。この際に探索手段19で一致するaitが見
つからなかった場合はsubsum演算手段21は実行
されないが、掛算手段22は実行される。
タ16内の変数値sumを演算結果として出力する。以
上の各手段13,15,19,21,22,23,24
の動作、入力手段11、メモリ手段12、レジスタ1
4,16,17,18に対する読出し、書込み、処理手
順などは制御手段26により制御される。
来技術と同様にg1 352 ・g2 406の演算について、図
10と同様な表現で図2を参照して説明する。図2では
g1 352 の352を10進展開して352になり、g2
406 の406を10進展開して406になり、つまりこ
の場合も図10のときと同様に(g1 100 ,g1 10,g
1 1 )と(g2 100 ,g2 10,g2 1 )が事前計算によ
って予め得られ、メモリ手段12に記憶されてある。
る。まず各位の数{3,5,2,4,0,6}のうち最
大値は6であり、これが手段15で検出され、ma=6
でありd=6からスタートする。つまりレジスタ18の
初期値は6とされ、他のレジスタ16,17の初期値と
してsum=1,subsum=1が格納される。d=
6と棒グラフの端点が接しているのはg2 の1の位であ
る、つまりdと一致するaitはi=2、t=1であっ
て、従ってg2 1 をメモリ12より取り出し、subs
um←subsum×g2 1 =g2 1としsum←sum
×g2 1=g2 1となる。このsum(=g2 1)がd=6の
ときの結果となる。次にd=5としてd=5と棒グラフ
の端点が接しているのはg1 の10の位である。つまり
dと一致するaitはi=1,t=10であり、従ってg
1 10をメモリ12より取り出し、subsum←sub
sum×g1 10 =g2 1×g1 10 =g1 10 g2 1とし、su
m=sum×g1 10 g2 1=g2 1×g1 10 g2 1=g1 10 g
2 2となる。このsum(=g 1 10 g2 2)がd=5のとき
の結果である。以下d=1まで同様の作業を行い、結果
としてg1 352・g2 406を得る。
複数回行っていた演算の適用をまとめ、結果乗算回数を
減らすことが可能である。第二実施例 pを素数とし、nを自然数として、要素数pn である有
限体F(pn )上で定義された楕円曲線EのF(pn )
有利点で構成される群をE(F(pn ))、 E(F(pn ))上の2項演算を記号+、 E(F(pn ))の要素Gの逆元を記号−G、 E(F(pn ))の要素Gをx個演算したG+G+…+
G(x個)をxGと表わす。
部分群をGq として、部分群Gq の異なる固定要素
G1 ,G2 ,…,Gm ,および固定でない整数y1 ,y
2 ,…,ym ∈Z/qZを選び、楕円曲線E上の下記の
加算を行う。 y1 G1 +y2 G2 +…+ym Gm この際にこの発明の装置の原理とアルゴリズムは以下の
通りである。
3つの変数sum,subsum,dの初期値をそれぞ
れsum=O(無限遠点)、subsum=O(無限遠
点)、d=maとし、 S1 ait=dを探し、そのi,tについて、 S2 subsum←subsum+bi t Gi を計算
し、 S3 sum←sum+subsumを計算し、 S4 d←d−1として、d=0になるまでS1乃至S
4を繰返す。
算結果である。以上をbi t Gi を事前に計算し結果を
保持しておくことにより楕円曲線上の演算y1 G1 +y
2 G2 +…+ym Gm を効率良く算出することができ
る。次にこの第二実施例の装置を図3を参照して説明す
る。入力手段11には楕円曲線上の固定要素G1 ,
G2 ,…,Gm と、固定でない整数y1 ,y2 ,…,y
m が入力され、メモリ手段12にはb1 0 G1 ,b1 1
G1 ,…,b1 r1G1 ,b2 0 G2 ,b2 1 G2 ,…,
b2 r2G2 ,…,bm 0 Gm ,bm 1 Gm ,…,bm rm
Gm の各乗算値が記憶されている。第一実施例と同様に
各入力値yi (i=1,2,…,m)は展開手段13で
それぞれbi 進展開され、yi =Σt=0 riaitbi t な
る関係の各係数ait(0≦ait<b,t=0,1,…,
ri)が求められて、レジスタ14に格納され、各係数
ait中の最大値maが検出手段15で検出される点も第
一実施例と同様である。
数sum,subsum,dの各初期値として無限遠
点、無限遠点、maがそれぞれ設定される。係数ait中
の上記変数値dと一致するものが探索手段19で探索さ
れ、その探索したaitのiとtによりメモリ手段12が
読出され、subsum演算手段31によりsubsu
m+bi t Gi が楕円曲線E上で演算され、その結果が
新たなsubsumとしてレジスタ17に格納される。
そのレジスタ17の変数subsumとレジスタ16内
の変数sumとが加算手段32により楕円曲線E上で加
算されて新たなsumとしてレジスタ16に格納され
る。
あるかの判定が判定手段23で行われ、正と判定される
と、減算手段24で変数dを1減算して、新たなdと
し、レジスタ18に格納され、そのdに対し、探索手段
19、subsum演算手段31、加算手段32、判定
手段23の各動作が繰返され、判定手段23が0と判定
するとレジスタ16内の変数値sumが演算結果として
出力される。制御手段26は第一実施例のそれと同様な
動作をするものである。
G2 を演算する過程を、図4に図2と同様な手法で示
す。この場合は、subsum演算手段31が楕円曲線
上での加算となり、また掛算手段22の代りに加算手段
32となっている点がこの図にも現われている。図2の
場合と同様に容易に理解できると思われるから説明は省
略する。
を得るが、各入力値y i を符号付きbi 進展開する点で
異なる。以下にその原理とアルゴリズムを述べる。固定
要素g1 ,g2 ,…,gm と固定でない整数y1 ,
y2 ,…,ym に対して、 g1 y1g2 y2…gm ym を求める。各yi を
順の一例としては以下のようにすればよい。3つの変数
sum,subsum,dの初期値をそれぞれsum=
1、subsum=1、d=maとし、 S1 |ait|=dを探し、そのi,tについて、 S2 subsum←subsum×(gi のsign
(ait)bi t 乗)を計算し、 S3 sum←sum×subsumを計算し、 S4 d←d−1としてd=0になるまでS1〜S4を
繰返す。
算結果である。以上を±gi のbi t 乗を事前に計算し
結果を保持しておくことにより有限体上の演算(g1 の
y1 乗)×(g2 のy2 乗)×…×(gm のym 乗)を
効率良く算出する一例として挙げることができる。図5
に第三実施例を示し、図1と対応する部分に同一符号を
付けてあり、第一実施例と異なる点について説明する。
メモリ手段12にはg1 の(−b1 r1)乗,g1 の(−
b1 r1-1)乗,…,g1のb1 0 乗,g1 のb1 1 乗,
…,g1 のb1 r1乗,g2 の(−b2 r2)乗,g 2 の
(−b2 r2-1)乗,…,g2 のb2 0 乗,…,g2 のb
2 r2乗,…,gm の(−bm rm)乗,…,gm のbm 0
乗,…,gm のbm rm乗の各値が記憶され、展開手段1
3では符号付bi 進展開、つまり、yi =Σt=0 riait
bi t なる関係の各係数ait(−[(bi −1)/2]
≦ait≦[(bi −1)/2],t=0,1,…,r
i,[a]はa以上で最小の整数である)が求められ、
検出手段15では係数ait中の絶対値|ait|の最大値
maが検出される。探索手段19では係数ait中の絶対
値|ait|が変数値dと一致するものが探索され、su
bsum演算手段21では探索したaitの符号とiとt
により、メモリ手段12が読出され、subsum×
(gi の(aitの符号)bi t 乗)が演算される。その
他は第一実施例と同様である。
2 406 について図2と同様な表現で図6に示す。第四実施例 これは第二実施例と同一の入力に対し、同一の演算結果
を得るが、第三実施例と同様にyi を符号付きbi 進展
開している点で異なる。以下にその原理とアルゴリズム
を述べる。
…,Gm 、および固定でない整数y 1 ,y2 ,…,ym
∈Z/qZを選び、 y1 G1 +y2 G2 +…+ym Gm を求める。yi を
算手順の一例としては以下のようにすればよい。3つの
変数sum,subsum,dの初期値をそれぞれsu
m=O(無限遠点)、subsum=O(無限遠点)、
d=maとし、 S1 |ait|=dを探し、 S2 subsum←subsum+sign(ait)
bi t Gi を計算し、 S3 sum←sum+subsumを計算し、 S4 d←d−1として、d=0になるまでS1〜S4
を繰返す。
算結果である。以上を±bi t Gi を事前に計算し結果
を保持しておくことにより楕円曲線上の演算y1 G1 +
y2 G2 +…+ym Gm を効率良く算出することができ
る。この第四実施例の演算装置を図3、図5と対応する
部分に同一符号を付けて図7に示す。メモリ手段12の
記憶内容は図3のそれと同一である。つまり楕円曲線上
の要素ではαGに対して−αGは容易に算出することが
できるので、−αGは事前計算しておく必要はない。展
開手段13では図5中のそれと同様に符号付bi 進展開
が行われ、また係数ait中の絶対値|ait|の最大値m
aが検出され、レジスタ16,17,18の初期値は図
3の場合と同様とされ、探索手段19は|ait|中の変
数値dと一致するものが探索され、その探索した|ait
|のiとtでメモリ手段12を読出し、subsum演
算手段で、探索手段19の探索|ait|のaitの符号を
加味してsubsum+(aitの符号)bi t Gi を演
算する。その他は図3の実施例と同様である。具体的数
値例の352G1 +406G2 の演算過程を図8に示
す。
タによりプログラムを読出し解読実行させることによ
り、同様の演算を行う演算装置とすることもできる。
元をもつ演算に対して事前計算によりその演算処理速度
の向上を図ることが可能となり、さらに楕円曲線上の演
算にも適用しその演算処理速度の向上を図ることが可能
となった。これは有名なディジタル署名であるDSA署
名や楕円DSA署名とも適用することが可能であり、そ
の他複数生成元を用いている多くの暗号やディジタル署
名に適用可能であると予想され、処理の高速化が見込ま
れる。また図9に従来方式とこの発明装置の計算量比較
として生成元が2つ存在する場合の乗算回数および加算
回数を比較したグラフを挙げる。なお図9Aは符号無の
場合、図9Bは符号付の場合である。従来方式およびこ
の発明装置では(有限体上での乗算回数)=(楕円曲線
上での加算回数)となるため図9ではグラフの縦軸が
「乗算/加算回数」となっている。
施例の機能構成を示す図。
示す図。
実施例の機能構成を示す図。
示す図。
施例の機能構成を示す図。
示す図。
他の実施例の機能構成を示す図。
過程を示す図。
例を示す図。
演算過程を示す図。
Claims (8)
- 【請求項1】 固定要素g1 ,g2 ,…,gm と固定で
ない整数y1 ,y2,…,ym が入力され、(g1 のy
1 乗)×(g2 のy2 乗)×…×(gm のym 乗)の演
算結果を出力する演算装置において、 g1 のb1 0 乗,g1 のb1 1 乗,…,g1 のb
1 r1乗,g2 のb2 0 乗,g2 のb2 1 乗,…,g2 の
b2 r2乗,…,gm のbm 0 乗,gm のbm 1 乗,…,
gm のbm rm乗の各値を記憶したメモリ手段と、 上記各入力値yi (i=1,2,…,m)をそれぞれb
i 進展開してyi =Σt=0 riaitbi t なる関係の各係
数ait(0≦ait<bi ,t=0,1,…,ri)を求
める展開手段と、 上記求めた各係数aitを格納するレジスタと、 上記求めた各係数ait中の最大値maを検出する手段
と、 3つの変数sum,subsum,dをそれぞれ初期値
として1,1,maに設定する手段と、 上記係数ait中の上記変数値dと一致するものを探索す
る探索手段と、 その探索したaitのiとtに対し、上記メモリ手段を参
照してsubsum×(gi のbi t 乗)を演算し、そ
の結果を新たなsubsumとするsubsum演算手
段と、 上記変数subsumと上記変数sumとを掛算して新
たなsumとする掛算手段と、 上記変数dが正であるか0であるかを判定する判定手段
と、 上記判定手段が正と判定すると、上記変数dを1減算し
て新たなdとし、そのdに対し、上記探索手段、上記s
ubsum演算手段、上記掛算手段、上記判定手段を繰
り返し動作させる手段と、 上記判定手段が0と判定すると上記掛算手段の結果の変
数値sumを演算結果として出力する手段と、 を具備する事前計算を用いた複数生成元に対する演算装
置。 - 【請求項2】 楕円曲線上の固定要素G1 ,G2 ,…,
Gm と、固定でない整数y1 ,y2 ,…,ym が入力さ
れ、 y1 G1 +y2 G2 +…+ym Gm の演算結果を出力する演算装置において、 b1 0 G1 ,b1 1 G1 ,…,b1 r1G1 ,b
2 0 G2 ,b2 1 G2 ,…,b2 r2G2 ,…,bm 0 G
m ,bm 1 Gm ,…,bm rmGm の各乗算値を記憶した
メモリ手段と、 上記各入力値yi (i=1,2,…,m)をそれぞれb
i 進展開してyi =Σt=0 riaitbi t なる関係の各係
数ait(0≦ait<b,t=0,1,…,ri)を求め
る展開手段と、 上記求めた各係数aitを格納するレジスタと、 上記求めた各係数ait中の最大値maを検出する手段
と、 3つの変数sum,subsum,dをそれぞれ初期値
として無限遠点、無限遠点、maに設定する手段と、 上記係数ait中の上記変数値dと一致するものを探索す
る探索手段と、 その探索したaitのiとtに対し、上記メモリ手段を参
照してsubsum+bi t Gi を演算し、その結果を
新たなsubsumとするsubsum演算手段と、 上記変数subsumと上記変数sumを加算して新た
なsumとする加算手段と、 上記変数dが正であるかd=0かを判定する判定手段
と、 上記判定手段が正と判定すると、上記変数dを1減算し
て、新たなdとし、そのdに対し、上記探索手段、上記
subsum演算手段と、上記加算手段、上記判定手段
を繰り返し動作させる手段と、 上記判定手段が0と判定すると上記加算手段の結果の変
数値sumを演算結果として出力する手段と、 を具備する事前計算を用いた複数生成元に対する演算装
置。 - 【請求項3】 固定要素g1 ,g2 ,…,gm と固定で
ない整数y1 ,y2,…,ym が入力され、(g1 のy
1 乗)×(g2 のy2 乗)×…×(gm のym 乗)の演
算結果を出力する演算装置において、 g1 の(−b1 r1)乗,g1 の(−b1 r1-1)乗,…,
g1 のb1 0 乗,g1のb1 1 乗,…,g1 のb
1 r1乗,g2 の(−b2 r2)乗,g2 の(−b2 r2-1)
乗,…,g2 のb2 0 乗,…,g2 のb2 r2乗,…,g
m の(−bm rm)乗,…,gm のbm 0 乗,…,gm の
bm rm乗の各値を記憶したメモリ手段と、 上記各入力値yi (i=1,2,…,m)をそれぞれ符
号付bi 進展開して、yi =Σt=0 riaitbi t なる関
係の各係数ait(−[(bi −1)/2]≦ait≦
[(bi −1)/2],t=0,1,…,ri,[a]
はa以上で最小の整数である)を求める展開手段と、 上記求めた各係数aitを格納するレジスタと、 上記係数ait中の絶対値の最大値maを検出する手段
と、 3つの変数sum,subsum,dをそれぞれ初期値
として1,1,maに設定する手段と、 上記係数ait中の絶対値が上記変数値dと一致するもの
を探索する探索手段と、 その探索したaitの符号とiとtに対し、上記メモリ手
段を参照してsubsum×(gi の(aitの符号)b
i t 乗)を演算し、その結果を新たなsubsumとす
るsubsum演算手段と、 上記変数subsumと上記変数sumとを掛算して新
たなsumとする掛算手段と、 上記変数dが正であるか0であるかを判定する判定手段
と、 上記判定手段が正と判定すると、上記変数dを1減算し
て新たなdとし、そのdに対し上記探索手段、上記su
bsum演算手段、上記掛算手段、上記判定手段を繰り
返し動作させる手段と、 上記判定手段が0と判定すると、上記掛算手段の結果の
変数値sumを演算結果として出力する手段と、 を具備する事前計算を用いた複数生成元に対する演算装
置。 - 【請求項4】 楕円曲線上の固定要素G1 ,G2 ,…,
Gm と、固定でない整数y1 ,y2 ,…,ym が入力さ
れ、 y1 G1 +y2 G2 +…+ym Gm の演算結果を出力する演算装置において、 b1 0 G1 ,b1 1 G1 ,…,b1 r1G1 ,b
2 0 G2 ,b2 1 G2 ,…,b2 r2G2 ,…,bm 0 G
m ,bm 1 Gm ,…,bm rmGm の各乗算値を記憶した
メモリ手段と、 上記各入力値yi (i=1,2,…,m)をそれぞれ符
号付bi 進展開してy1 =Σt=0 riaitbi t なる関係
の各係数ait(−[(bi −1)/2]≦ait≦[(b
i −1)/2],t=0,1,…,ri,[a]はa以
上で最小の整数である)を求める展開手段と、 上記求めた各係数aitを格納するレジスタと、 上記係数ait中の絶対値の最大値maを検出する手段
と、 3つの変数sum,subsum,dをそれぞれ初期値
として無限遠点、無限遠点、maに設定する手段と、 上記係数ait中の絶対値が上記変数値dと一致するもの
を探索する探索手段と、 その探索したaitのiとtに対し、上記メモリ手段を参
照して、subsum+(aitの符号)bi t Gi を演
算してその結果を新たなsubsumとするsubsu
m演算手段と、 上記変数subsumと上記変数sumとを加算して新
たなsumとする加算手段と、 上記変数dが正であるか0であるかを判定する判定手段
と、 上記判定手段が正と判定すると、上記変数dを1減算し
て新たなdとし、そのdに対し、上記探索手段、上記s
ubsum演算手段、上記加算手段、上記判定手段を繰
り返し動作させる手段と、 上記判定手段が0と判定すると、上記加算手段の結果の
変数値sumを演算結果として出力する手段と、 を具備する事前計算を用いた複数生成元に対する演算装
置。 - 【請求項5】 固定要素g1 ,g2 ,…,gm と固定で
ない整数y1 ,y2,…,ym が入力され、(g1 のy
1 乗)×(g2 のy2 乗)×…×(gm のym 乗)の演
算結果を出力する装置であって、g 1 のb 1 0 乗,g 1 のb 1 1 乗,…,g 1 のb
1 r1 乗,g 2 のb 2 0 乗,g 2 のb 2 1 乗,…,g 2 の
b 2 r2 乗,…,g m のb m 0 乗,g m のb m 1 乗,…,
g m のb m rm 乗の各値を記憶したメモリ手段と、 上記固定要素g1 ,g2 ,…,gm と上記整数y1 ,y
2 ,…,ym を入力する手段と、 上記各入力値yi (i=1,2,…,m)をそれぞれb
i 進展開してyi =Σt=0 riaitbi t なる関係の各係
数ait(0≦ait<bi ,t=0,1,…,ri)を求
める手段と、 上記求めた各係数aitを第1レジスタに格納する手段
と、 上記求めた各係数ait中の最大値maを検出する手段
と、 3つの変数sum,subsum,dの各初期値として
1,1,maを第2、第3、第4レジスタにそれぞれ格
納する手段と、 上記第1レジスタ内の係数ait中の上記第4レジスタ内
の変数値dと一致するものを探索する探索手段と、 その探索したaitのiとtにより、上記メモリ手段を読
出して(gi のbi t乗)を得る手段と、 上記読出された(gi のbi t 乗)と上記第3レジスタ
内のsubsumを乗算し、その結果を上記第3レジス
タに格納する演算手段と、 上記第3レジスタ内のsubsumと上記第2レジスタ
内のsumとを掛算してその結果を上記第2レジスタに
格納する掛算手段と、 上記第4レジスタ内のdが正であるか0であるかを判定
する判定手段と、 上記判定手段が正と判定すると、上記第4レジスタ内の
dを1減算し、その結果を上記第4レジスタに格納する
減算手段と、 上記減算手段された上記第4レジスタ内のdに対し、上
記探索手段、上記演算手段、上記掛算手段、上記判定手
段を繰り返し動作させる手段と、 上記判定手段が0と判定すると上記第2レジスタ内のs
umを演算結果として出力する手段とを備える演算装置
として、コンピュータを機能させるためのプログラムを
記録したコンピュータ読み取り可能な記録媒体。 - 【請求項6】 楕円曲線上の固定要素G1 ,G2 ,…,
Gm と、固定でない整数y1 ,y2 ,…,ym が入力さ
れ、 y1 G1 +y2 G2 +…+ym Gm の演算結果を出力する装置であって、b 1 0 G 1 ,b 1 1 G 1 ,…,b 1 r1 G 1 ,b
2 0 G 2 ,b 2 1 G 2 ,…,b 2 r2 G 2 ,…,b m 0 G
m ,b m 1 G m ,…,b m rm G m の各乗算値を記憶した
メモリ手段と、 上記固定要素G1 ,G2 ,…,Gm 、上記整数y1 ,y
2 ,…,ym を入力する手段と、 上記各入力値yi (i=1,2,…,m)をそれぞれb
i 進展開してyi =Σt=0 riaitbi t なる関係の各係
数ait(0≦ait<b,t=0,1,…,ri)を求め
る手段と、 上記求めた各係数aitを第1レジスタに格納する手段
と、 上記求めた各係数ait中の最大値maを検出する手段
と、 3つの変数sum,subsum,dの各初期値として
無限遠点、無限遠点、maを第2、第3、第4レジスタ
にそれぞれ格納する手段と、 上記第1レジスタ内の係数ait中の上記変数値dと一致
するものを探索する探索手段と、 その探索したaitのiとtにより、メモリ手段よりbi
t Gを読出す手段と、 上記第3レジスタ内のsubsumと上記読出されたb
i t Gi を加算し、その結果を上記第3レジスタに格納
する演算手段と、 上記第3レジスタ内のsubsumと上記第2レジスタ
内のsumを加算し、 その結果を上記第2レジスタに格納する加算手段と、 上記第4レジスタ内のdが正であるかd=0かを判定す
る判定手段と、 上記判定手段が正と判定すると、上記第4レジスタ内の
dを1減算して、その結果を上記第4レジスタ内に格納
する手段と、 上記第4レジスタ内の減算されたdに対し、上記探索手
段、上記演算手段、上記加算手段、上記判定手段を繰り
返し動作させる手段と、 上記判定手段が0と判定すると上記第2レジスタ内の変
数値sumを演算結果として出力する手段とを備える演
算装置として、コンピュータを機能させるためのプログ
ラムを記録したコンピュータ読み取り可能な記録媒体。 - 【請求項7】 固定要素g1 ,g2 ,…,gm と固定で
ない整数y1 ,y2,…,ym が入力され、(g1 のy
1 乗)×(g2 のy2 乗)×…×(gm のym 乗)の演
算結果を出力する装置であって、g 1 の(−b 1 r1 )乗,g 1 の(−b 1 r1-1 )乗,…,
g 1 のb 1 0 乗,g 1 のb 1 1 乗,…,g 1 のb
1 r1 乗,g 2 の(−b 2 r2 )乗,g 2 の(−b 2 r2-1 )
乗,…,g 2 のb 2 0 乗,…,g 2 のb 2 r2 乗,…,g
m の(−b m rm )乗,…,g m のb m 0 乗,…,g m の
b m rm 乗の各値を記憶したメモリ手段と、 上記固定要素g1 ,g2 ,…,gm と上記整数y1 ,y
2 ,…,ym を入力する手段と、 上記各入力値yi (i=1,2,…,m)をそれぞれ符
号付bi 進展開して、yi =Σt=0 riaitbi t なる関
係の各係数ait(−[(bi −1)/2]≦ait≦
[(bi −1)/2],t=0,1,…,ri、[a]
はa以上で最小の整数である)を求める展開手段と、 上記求めた各係数aitを第1レジスタに格納する手段
と、 上記第1レジスタ内の係数ait中の絶対値の最大値ma
を検出する手段と、 変数sum,subsum,dの各初期値として1,
1,maをそれぞれ第2、第3、第4レジスタに格納す
る手段と、 上記第1レジスタ内の係数ait中の絶対値が上記変数値
dと一致するものを探索する探索手段と、 その探索したaitの符号とiとtによりメモリを読出し
て(gi の(aitの符号)bi t 乗)を得る手段と、 上記第3レジスタ内のsubsumと上記読出した(g
i の(aitの符号)bi t 乗)を乗算し、その結果を上
記第3レジスタに格納する演算手段と、 上記第3レジスタ内のsubsumと上記第2レジスタ
内のsumとを掛算してその結果を上記第2レジスタに
格納する掛算手段と、 上記第4レジスタ内のdが正であるか0であるかを判定
する判定手段と、 上記判定手段が正と判定すると、上記第4レジスタ内の
dを1減算してその結果を第4レジスタに格納する手段
と、 その第4レジスタ内の減算されたdに対し上記探索手
段、上記演算手段、上記掛算手段、上記判定手段を繰り
返し動作させる手段と、 上記判定手段が0と判定すると、上記第2レジスタ内の
変数値sumを演算結果として出力する手段とを備える
演算装置として、コンピュータを機能させるためのプロ
グラムを記録したコンピュータ読み取り可能な記録媒
体。 - 【請求項8】 楕円曲線上の固定要素G1 ,G2 ,…,
Gm と、固定でない整数y1 ,y2 ,…,ym が入力さ
れ、 y1 G1 +y2 G2 +…+ym Gm の演算結果を出力する装置であって、b 1 0 G 1 ,b 1 1 G 1 ,…,b 1 r1 G 1 ,b
2 0 G 2 ,b 2 1 G 2 ,…,b 2 r2 G 2 ,…,b m 0 G
m ,b m 1 G m ,…,b m rm G m の各乗算値を記憶した
メモリ手段と、 上記固定要素G1 ,G2 ,…,Gm と上記整数y1 ,y
2 ,…,ym を入力する手段と、 上記各入力値yi (i=1,2,…,m)をそれぞれ符
号付bi 進展開してy1 =Σt=0 riaitbi t なる関係
の各係数ait(−[(bi −1)/2]≦ait≦[(b
i −1)/2],t=0,1,…,ri,[a]はa以
上で最小の整数である)を求める手段と、 上記求めた各係数aitを第1レジスタに格納する手段
と、 上記第1レジスタ内の係数ait中の絶対値の最大値ma
を検出する手段と、 変数sum,subsum,dの各初期値として無限遠
点、無限遠点、maを第2、第3、第4レジスタにそれ
ぞれ格納する手段と、 上記第1レジスタ内の係数ait中の絶対値が上記変数値
dと一致するものを探索する探索手段と、 その探索したaitのiとtにより、メモリ手段を読出し
て、bi t Gt を得る手段と、 上記第3レジスタ内のsubsumと上記読出したbi
t Gi を上記探索したaitの符号を加味して加算し、そ
の結果を上記第3レジスタ内に格納する演算手段と、 上記第3レジスタ内のsubsumと上記第2レジスタ
内のsumとを加算し、その結果を上記第2レジスタに
格納する加算手段と、 上記第4レジスタ内のdが正であるか0であるかを判定
する判定手段と、 上記判定手段が正と判定すると、上記第4レジスタ内の
dを1減算して第4レジスタに格納する手段と、その第
4レジスタ内の減算されたdに対し、上記探索手段、上
記演算手段、上記加算手段、上記判定手段を繰り返し動
作させる手段と、 上記判定手段が0と判定すると、上記第2レジスタ内の
変数値sumを演算結果として出力する手段とを備える
演算装置として、コンピュータを機能させるためのプロ
グラムを記録したコンピュータ読み取り可能な記録媒
体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09592798A JP3329440B2 (ja) | 1998-04-08 | 1998-04-08 | 事前計算を用いた複数生成元に対する演算装置及びそのプログラム記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09592798A JP3329440B2 (ja) | 1998-04-08 | 1998-04-08 | 事前計算を用いた複数生成元に対する演算装置及びそのプログラム記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11296077A JPH11296077A (ja) | 1999-10-29 |
JP3329440B2 true JP3329440B2 (ja) | 2002-09-30 |
Family
ID=14150916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09592798A Expired - Fee Related JP3329440B2 (ja) | 1998-04-08 | 1998-04-08 | 事前計算を用いた複数生成元に対する演算装置及びそのプログラム記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3329440B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100484487B1 (ko) * | 2002-10-29 | 2005-04-20 | 한국전자통신연구원 | 모듈러 연산 장치 및 방법, 그리고 이를 이용한 rsa암호 연산 시스템 |
JP2009258502A (ja) * | 2008-04-18 | 2009-11-05 | Toshiba Corp | 乗算装置及びプログラム |
-
1998
- 1998-04-08 JP JP09592798A patent/JP3329440B2/ja not_active Expired - Fee Related
Non-Patent Citations (3)
Title |
---|
HANDBOOK of APPLIED CRYPTOGRAPHY,CRC Press,p.617−618 |
KNUTH The Art of Computer Programming−4 準数値算法/算術演算,サイエンス社,p.384,471 |
効率的なn変数べき乗剰余演算法の提案とその一応用,電子通信学会技術研究報告,ISC91−40 |
Also Published As
Publication number | Publication date |
---|---|
JPH11296077A (ja) | 1999-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0933695B1 (en) | IC card equipped with elliptic curve encryption processing facility | |
CN101194457B (zh) | 随机模数化多项式约简方法及其硬件 | |
US20080044013A1 (en) | Koblitz Exponentiation with Bucketing | |
Hung et al. | An approximate sign detection method for residue numbers and its application to RNS division | |
Bernstein et al. | Modular exponentiation via the explicit Chinese remainder theorem | |
JP4354609B2 (ja) | 有限体上の連立方程式求解装置及び逆元演算装置 | |
JP3329440B2 (ja) | 事前計算を用いた複数生成元に対する演算装置及びそのプログラム記録媒体 | |
US6609141B1 (en) | Method of performing modular inversion | |
EP0994424A2 (en) | High speed prime numbers calculation | |
KR100194769B1 (ko) | 메모리를 사용하여 유한체상에서 역원을 구하는 방법 | |
Niederreiter et al. | On a new factorization algorithm for polynomials over finite fields | |
JP3401196B2 (ja) | 事前計算を用いた複数生成元に対する演算装置、そのプログラム記録媒体、及び演算方法 | |
JP3638493B2 (ja) | 楕円曲線自乗演算装置、およびこのプログラム記録媒体 | |
KR102000914B1 (ko) | 자연수에 적용가능하며 무조건적이며 결정론 방식을 이용한 소수판별 및 소인수분해 방법 | |
KR100257124B1 (ko) | 공통 피승수 모듈라 곱셈을 이용한 고속 멱승 방법 | |
KR19980083640A (ko) | 변형된 몽고메리 모듈라 곱셈을 적용한 고속 멱승 방법 | |
Nievergelt | Analysis and applications of Priest's distillation | |
Balasubramanian et al. | A survey of fermat factorization algorithms for factoring RSA composite numbers | |
JP3673785B2 (ja) | 最大公約数演算装置及び逆元演算装置及び演算プログラム記録媒体 | |
Hess et al. | Design of long integer arithmetic units for public-key algorithms | |
JP3390966B2 (ja) | 平方数を法とした剰余演算装置及びそのプログラム記録媒体 | |
JPH10187037A (ja) | 素数判定方法および装置 | |
JP2856554B2 (ja) | 準乱数生成装置及び方法並びに関数fの多重積分計算置及び方法 | |
JP3992883B2 (ja) | 演算装置及び演算方法 | |
Tse et al. | Testing of large number multiplication functions in cryptographic systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080719 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080719 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090719 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090719 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100719 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100719 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110719 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120719 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130719 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |