JPH11242436A - 演算装置 - Google Patents

演算装置

Info

Publication number
JPH11242436A
JPH11242436A JP4322898A JP4322898A JPH11242436A JP H11242436 A JPH11242436 A JP H11242436A JP 4322898 A JP4322898 A JP 4322898A JP 4322898 A JP4322898 A JP 4322898A JP H11242436 A JPH11242436 A JP H11242436A
Authority
JP
Japan
Prior art keywords
remainder
integer
time
value
modp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP4322898A
Other languages
English (en)
Inventor
Natsume Matsuzaki
なつめ 松崎
Takatoshi Ono
貴敏 小野
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP4322898A priority Critical patent/JPH11242436A/ja
Publication of JPH11242436A publication Critical patent/JPH11242436A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves

Abstract

(57)【要約】 【課題】 楕円曲線上における加算点演算および2倍点
演算を高速にコンパクトに実現する演算装置を提供す
る。 【解決手段】 剰余乗算手段と算術演算手段を備え、並
列して動作させる。剰余乗算手段の1回の処理がmクロ
ックの場合、1回の処理が1クロックとなる算術演算手
段を複数回所定の手順に従って動作させ、楕円曲線上の
加算、2倍点演算を高速に処理する。剰余乗算手段は出
力を0からp-1までの値に補正する前段階で出力すること
により、剰余乗算手段の制御ゲートを削減し、処理時間
mクロックを最小にする。mクロックを1単位としてカウ
ンタNoで制御する場合、出力値の補正は次のNo以降で算
術演算器で行う。剰余乗算器の出力は入力した次Noのタ
イミングで使用し、剰余乗算器の処理時間mクロックを
最小にする。このパイプラインを切らないように手順を
定める。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、楕円曲線上におけ
る加算点演算および2倍点演算を高速にコンパクトに実
現する演算装置に関する。
【0002】
【従来の技術】楕円曲線暗号は1985年にKoblizとMiller
により考案された、楕円曲線上の離散対数問題を拠り所
とする公開鍵暗号である。楕円曲線上の点の間に「加
算」演算を定義し、楕円曲線上の点をP、これを整数k倍
した点をQとしたとき(Q=kP)、P,Qから整数kを求める
こと(これを楕円曲線上の離散対数問題という)が困難
であるということを利用している。ところで、この楕円
曲線暗号を実現するためにはこのQ=kP=P+..+P (楕円曲
線上のk-1回の「加算」演算)、すなわち「加算」演算
をできるだけ高速にコンパクトに実現する必要がある。
【0003】以下では、楕円曲線上の「加算」演算につ
いて説明する。楕円曲線をEp:y^2=x^3+ax+b (a,b∈有限
体Fp,4a^3+27b^2≠0)とするとき、この式を満たす(x,y)
∈Fp×Fpの元に無限遠点0を加えた点の集合を考え、こ
こに次の「加算」演算を定める。この演算により楕円曲
線上に可換群を構成し、上記楕円曲線上の離散対数問題
を利用した公開鍵暗号を構成できる。なおここでFpは整
数pを法とする剰余体とする。
【0004】P=(x1,y1), Q=(x2,y2), P+Q=(x3,y3) 加算(P≠±Q): x3=α^2-x1-x2 modp, y3=α(x1-x3)-y1 modp α=(y2-y1)/(x2-x1) modp 2倍点(P=±Q): x3=β^2-2x1 modp, y3=β(x1-x3)-y1 modp β=(3x1〜2+1)/2y1 modp これらの演算はすべて整数pを法とする剰余体上Fpの演
算で行う。以下では整数pは2^159≦p<2^160であると
し、「modp」はpを法とする剰余体上の演算であること
を示す。
【0005】
【発明が解決しようとする課題】ところで、上記の楕円
曲線上の加算における剰余体上の除算には一般に多くの
計算量を要する。そこで、除算を回避する方法として、
さまざまな「軸変換」手法が提案されている。
【0006】以下ではその例としてJacobian軸について
説明する。Jacobian軸では上記楕円曲線上の点にz軸を
付加し、x=X/Z^2, y=X/Z^3と変換する。その結果、楕円
曲線と加算、2倍点演算は次のようになる。
【0007】楕円曲線:y^2=x^3+axz^4+bz^6 加算:P=(x1,y1), Q=(x2,y2), P+Q=(x3,y3) 加算(P≠±Q): x3=-H^3-2U1H^2+r^2 modp, y3=-S1H^3+r(U1H^2-x3) mod
p, z3=z1z2H modp U1=x1z2^2 modp, U2=x2z1^2 modp, S1=y1z2^3 modp, S2
=y2z1^3 modp H=U2-U1 modp, r=S2-S1 modp 2倍点(P=±Q): x3= T, y3=M×(S-T)-8y1^4 modp, z3=2y1×z1 modp s=4x1×y1^2 modp, M=3x1^2+a×z1^4 modp, T=-2s+M^2
modp 上記式よりJacobian軸を利用すると楕円曲線上の加算と
2倍点演算に、pを法とする剰余体上の除算は使用しな
くてもよいが、剰余体上の乗算と加算、減算等が複雑に
組み合わされている演算を効率よく行う必要がある。そ
の上、楕円曲線演算では暗号を安全に構成するため、16
0ビット程度の大きな値を扱う必要がある。
【0008】従来上記楕円曲線演算を実現するに適した
ハードウェアは提案されていなかった。
【0009】例えば上記演算を通常のマイコンを用いて
ソフトで実現しようとすると、多倍長の剰余乗算演算に
非常に時間がかかる。また、RSA暗号を実現するために
多倍長のべき乗剰余演算を実現するハードウェアはいく
つか提案されているが、これを用いて上記演算を実現す
ることは途中に複雑な加算、減算演算が含まれているた
め困難である。
【0010】また、従来剰余乗算装置としては、例えば
特255867号公報、特1996261号公報、特開
昭63−304289号公報に記載されたものが知られ
ている。これらの公報では剰余乗算値をシフト演算器と
加算器を繰り返し用いて計算する手段が開示されてい
る。しかしながら、これら剰余乗算器においても、最後
の出力を0からp-1の剰余値に補正するのに余分な制御ゲ
ートと処理時間がかかっていた。そのため、この剰余乗
算装置を用いて上記楕円曲線基本演算を実現することも
得策ではない。
【0011】本発明はかかる点に鑑み、上記複雑な剰余
乗算、加算、減算等が混在する楕円曲線基本演算を高速
・コンパクトに実現する演算装置を提供することを目的
とする。
【0012】
【課題を解決するための手段】本発明の第1の構成にお
ける演算装置は、整数pを格納するp格納手段と、複数の
レジスタを備えるレジスタ群と、前記レジスタ群のうち
2つのレジスタの格納値をA,Bとしたとき、これらレジ
スタを入力として、前記整数pによる剰余体において積A
×Bと同値の値を、前記レジスタ群の1つのレジスタに
出力する剰余乗算手段と、前記レジスタ群のうち2つの
レジスタの格納値を入力として、加算、減算、比較の演
算を行い、その結果を前記レジスタ群の1つのレジスタ
に出力する算術演算手段と、前記剰余乗算手段と算術演
算手段を所定の手順に基づいて並列に動作させて制御を
行う制御手段を備えている。
【0013】本発明の第2の構成における演算装置は、
第1の構成における前記剰余乗算手段の処理時間をm、
前記算術演算手段の処理時間をnとするとき、mがnより
大であるとし、剰余乗算手段を1回動作する間に、所定
の手順に基づいて前記算術部演算手段を複数回動作させ
る制御を行うことを特徴とする。
【0014】本発明の第3の構成における演算装置は、
第1の構成における前記算術演算手段を用いて、前記剰
余乗算手段の出力を、前記整数pを法とする剰余値に補
正することを特徴とする。
【0015】本発明の第4の構成のおける演算装置は、
第1の構成における前記制御手段において、整数pを法
とする剰余乗算と算術演算を、所定の手順で組み合わせ
て実現する有限体上の楕円曲線の加算演算を、前記剰余
乗算手段と前記算術演算手段を並列に動作させて実現す
ることを特徴とす。
【0016】本発明の第5の構成における演算装置は、
整数pを法とする有限体上の楕円曲線y^2=x^3+ax+b (mod
p)の点(x1,y1,z1)を入力とし、この楕円曲線上の2倍
点(x3,y3,z3)を出力する演算装置であって、"modp"を
整数pにおける剰余とすると、各x3,y3,z3は、 x3=T, y3=M×(S-T)-8y1^4 modp, z3=2y1×z1 modp S=4x1×y1^2 modp, M=3x1^2+a×z1^4 modp, T=-2S+M^2
modp の演算で求められるとき、これらの演算を、前記剰余乗
算手段の処理時間mを時間の単位としたときに、時間1
では、剰余乗算手段でz1×z1の整数pによる剰余体にお
いて同値の値Aを求め、時間2では、剰余乗算手段でy1
×z1の整数pによる剰余体において同値の値Bを求め、時
間3では、剰余乗算手段でA×Aの整数pによる剰余体に
おいて同値の値Cを求め、同時に算術演算手段でBの2倍
値の整数pによる剰余を求めこれをz3として出力し、ま
たx1の4倍値の整数pによる剰余を求めこれを4x1とし、
時間4では、剰余乗算手段でx1×x1の整数pによる剰余
体において同値の値Dを求め、時間5では、剰余乗算手
段でC×aの整数pによる剰余体において同値の値Eを求
め、同時に算術演算手段でDの3倍値の整数pによる剰余
を求めこれを3x1^2とし、時間6では、剰余乗算手段でy
1×y1の整数pによる剰余体において同値の値Fを求め、
同時に算術演算手段でEと前記3x1^2の加算値の整数pに
よる剰余を求めこれをMとし、時間7では、剰余乗算手
段でM×Mの整数pによる剰余体において同値の値Gを求
め、時間8では、剰余乗算手段で4x1×Fの整数pによる
剰余体において同値の値Sを求め、時間9では、剰余乗
算手段でF×Fの整数pによる剰余体において同値の値Hを
求め、同時に算術演算手段でGからSの2倍値を減算した
減算値の整数pによる剰余を求めこれをTとしさらにこれ
をx3として出力し、SからTを減算した減算値の整数pに
よる剰余S-Tを求め、時間10では、剰余乗算手段で(S-
T)×Mの整数pによる剰余体において同値の値Iを求め、
同時にHの8倍値の整数pによる剰余を求めこれを8y1^4
とし、時間11では、算出演算手段でIから8y1^4を減算
した減算値の整数pによる剰余を求めこれをy3として出
力し、以上の制御手順で出力値x3,y3,z3を求める制御手
段を備えたことを特徴とする。
【0017】本発明の第6の構成における演算装置は、
有限体Fp上の楕円曲線y^2=x^3+ax+b(modp)の点(x1,y1,
z1)と(x2,y2,z2=1)を入力とし、この楕円曲線上の加
算点(x3,y3,z3)を出力する演算装置であって、"modp"
を整数pにおける剰余とすると、各x3,y3,z3は、 x3=-H^3-2U+r^2 modp, y3=-y1×H^3+r×(U-x3) modp, z
3=z1×H modp H=x2×z1^2-x1 modp, r=y2×z1^3-y1 modp, U=x1×H^2
modp の演算で求められるとき、これらの演算を、前記剰余乗
算手段の処理時間mを時間の単位としたときに、時間1
では、剰余乗算手段でz1×z1の整数pによる剰余体にお
いて同値の値Aを求め、時間2では、剰余乗算手段でy2
×z1の整数pによる剰余体において同値の値Bを求め、時
間3では、剰余乗算手段でx2×Aの整数pによる剰余体に
おいて同値の値Cを求め、時間4では、剰余乗算手段でB
×Aの整数pによる剰余体において同値の値Dを求め、同
時に算術演算手段でCからx1を減算した減算値の整数pに
よる剰余を求めこれをHとし、時間5では、剰余乗算手
段でH×Hの整数pによる剰余体において同値の値Eを求
め、同時に算術演算手段でDからy1を減算した減算値の
整数pによる剰余を求めこれをrとし、時間6では、剰余
乗算手段でz1×Hの整数pによる剰余体において同値の値
Fを求め、時間7では、剰余乗算手段でE×Hの整数pによ
る剰余体において同値の値Gを求め、同時に算術演算手
段でFの整数pによる剰余を求めこれをz3として出力し、
時間8では、剰余乗算手段でx1×Eの整数pによる剰余体
において同値の値Uを求め、時間9では、剰余乗算手段
でr×rの整数pによる剰余体において同値の値Hを求め、
時間10では、剰余乗算手段でy1×Gの整数pによる剰余
体において同値の値Iを求め、同時に算術演算手段でHか
らGおよびUの2倍を減算した減算値の整数pによる剰余
を求めこれをx3として出力し、さらにUからx3を減算し
た減算値の整数pによる剰余を求めこれを(U-x3) とし、
時間11では、剰余乗算手段でr×(U-x3)の整数pによる
剰余体において同値の値Jを求め、時間12では、算出
演算手段でJからIを減算した減算値の整数pによる剰余
を求めこれをy3として出力し、以上の制御手順で出力値
x3,y3,z3を求めることを特徴とする。
【0018】本発明の第7の構成における演算装置は、
第1から第6の構成において前記整数pを素数とするこ
とを特徴とする。
【0019】本発明の第8の構成における演算装置は、
第1から第6の構成において前記整数pを素数のべき乗
とすることを特徴とする。
【0020】
【発明の実施の形態】図1は本発明の一実施形態の構成
図である。1〜8はそれぞれ162ビットのレジスタR1,R
2,Ax,Ay,Az,Bx,By,Bzを示す。符号を含んで162ビットの
2の補数表現値を格納する。9は前記レジスタR1に格納
されている正の値A(符号なし161ビット)とR2に格納さ
れている正の値B(符号なし160ビット)を入力としてA
×Bの法pにおける同値の剰余乗算値C(符号なし161ビッ
ト)を10で示すレジスタOMULに出力する剰余乗算器で
ある。11は前記レジスタ群の2入力値を加算または減
算(比較も含む)を行う算術演算器である。12は前記
剰余体の法pを格納するレジスタp、13は楕円曲線の式
における1次の係数aを格納するレジスタaを示す。14
は剰余乗算器の演算、算術演算器の入出力レジスタや演
算を制御する制御部である。
【0021】なお、ここでは法pが160ビットの素数であ
り、2^159≦p<2^160とする。また、剰余乗算器は従来
例のシフト演算器と加算器を繰り返し用いて計算するも
のでよい。ただし、演算途中のビット数の上限だけを16
1ビットと設定し、出力値の0からp-1までの剰余補正は
行わないものとする。このことにより、余分な制御ゲー
ト数と処理時間を削減することができる。
【0022】図2は図1における演算器を用いて、楕円
曲線演算の加算点を求める場合の概略動作フローを示
す。
【0023】20はレジスタAx,Ay,Azに楕円曲線の第1の
点、レジスタBx,By,Bzに第2の点を設定する初期設定
部、21は剰余乗算器処理部、22は算術演算器処理部であ
る。剰余乗算器処理部は1回の処理にmクロック(m≧2
0)かかるとし、それと並行して算術演算器処理部では
複数回の処理を行う。そしてこれら剰余乗算器処理と算
術演算器の並行動作は繰り返して行われ、23において最
終的にレジスタAx,Ay,Azに楕円曲線の加算点が出力され
る。以降では、mクロックを1つの単位時間とし、Noを
カウンタとして説明を行う。
【0024】なお、図2においては、例えばNo=iの時の
剰余乗算器処理の出力値(これは0からp-1までの剰余補
正はまだ行っていない)をNo=i+1以降の算術演算器処理
において、剰余補正を行う等の制御を行う。
【0025】次にこの演算器を用いて楕円曲線演算の加
算点を求める場合の制御動作を説明する。ここでは、楕
円曲線上の入力座標(x1,y1,z1)(x2,y2,z2)のうち、z2が
1の場合について説明する。暗号処理に用いる楕円曲線
上のべき乗演算を、2倍点と加算点の繰り返し演算で実
現する右向き高速バイナリ法では、加算点の片側入力が
固定となる。そのため、片側入力のz座標を"1"に固定す
ることが可能となり、この仮定は妥当である。
【0026】この場合の楕円曲線加算の演算式は次のよ
うになる。 x3=-H^3-2U+r^2 modp, y3=-y1×H^3+r×(U-x3) modp, z
3=z1×H modp ここで、H=x2×z1^2-x1 modp, r=y2×z1^3 modp, U=x1
×H^2 modp 図3および図4に、楕円曲線加算制御手順に示す。同図
において、「レジスタR1,R2,Ax,Ay,Az,Bx,By,Bz,a,p」
の各行には対応するNoにおける各レジスタの格納値を記
している。同図において、「剰余乗算器」の行はそのNo
における剰余乗算器での処理内容を示している。剰余乗
算器ではそのNoにおけるレジスタR1,R2の格納値を入力
として剰余乗算値を求める。「(p)」の記述は、法pと同
値の161ビット値を求めることを示している。この出力
が必ずしもpを法とする剰余値とはならないことに注
意。そしてこの剰余乗算値の結果は次のNo+1においてOM
ULに格納される。また算術演算器の行は、そのNoにおけ
る算術演算器の動作手順を示している。算術演算器は1
クロックに1回の加算または減算(比較を含む)、レジ
スタ転送を実行できるものとする。
【0027】以下、図3と図4に従って処理内容を説明
する。まず、No=0では、初期状態としてレジスタAx,Ay,
Azにそれぞれ楕円曲線の第1の点(x1,y1,z1)、レジスタ
Bx,By,Bzに第2の点(x2,y2,z2)が格納されている。それ
ぞれは正の160ビットの値でありレジスタの上位に符号
の0を追加して格納されているとする。算術演算部によ
り、Axに格納されているz1をレジスタR1,R2に格納す
る。
【0028】No=1では、剰余乗算部で、R1,R2の格納値z
1,z1を入力とする処理が行われる。同時に算術演算部に
より、Byに格納されているy2をレジスタR1に格納する。
【0029】No=2では、剰余乗算部で、R1,R2の格納値y
2,z1を入力とする処理を行う。なお、図中「→」は、1
つ前の格納値から変わっていないことを示す。また1つ
前での剰余乗算部での結果である符号なし正の161ビッ
ト値(z1^2のpを法とする剰余体での同値)がOMULに出
力される。剰余乗算器では、処理時間を削減するため出
力値を法p以下にするための補正はせず、161ビット値と
して出力する。なお、この161ビット値は具体的には、2
^159≦p<2^160の制限により、0から2p-1までの値にな
る。同時に算術演算部において、OMULに格納されている
値のmodpの補正を行いその結果はR2に格納される。この
値をz1^2 modpと表す。なお、modpの補正の処理は、「R
2=OMUL<p?OMUL:OMUL-p」と表す。これは、OMULを法pと
比較し、OMULのほうが小さければOMULをR2に格納し、そ
うでなければOMUL-pをR2に格納することを示す。以降に
おいて、AからEをレジスタとする場合、「A=B<C?D:E」
はB<Cが成り立つ場合はDをAに格納し、そうでない場合
はEをAに格納するという意味を示すものとする。剰余乗
算器の入力となるレジスタR2の値は符号なし正の160ビ
ットでなることに注意する。また、算術演算部では、Bx
に格納されているx2をレジスタR1に格納する。
【0030】No=3では、剰余乗算部で、R1,R2の格納値x
2, z1^2 modpを入力とする処理を行う。また1つ前のNo
=3での剰余乗算部での結果(y2×z1の法pを法とする剰
余体での同値)がOMULに格納され、算術演算部でこれが
さらにレジスタR1に格納される。剰余乗算器の入力とな
るレジスタR1の値は正の161ビットとなることに注意す
る。
【0031】No=4では、剰余乗算部で、y2z1とz1^2を入
力とする処理を行う。また1つ前の剰余乗算部での結果
がOMULに格納される。同時に算術演算部では、まずOMUL
の格納値からレジスタAxの格納値が減算されてレジスタ
R1に格納される。OMULは0から2p-1の値、レジスタAxに
は0からp-1までの値が格納されているので、この減算の
結果は-(p-1)から2p-1となり、レジスタR1に符号付きで
格納される。次に、「R1=R1<0?R1+p:R1」で示している
通り、この結果が負の時にはpを加算して正にしてR1に
格納される。この結果R1は0から2p-1となるため、次に
このR1を「R1=R1<p?R1:R1-p」により0からp-1の値に補
正している。
【0032】以下同様であり、剰余乗算器と算術演算器
を所定の手続きで並列に動作させることにより、最終的
にレジスタAx,Ay,Azに楕円曲線の加算の結果(x3,y3,z3)
が格納される。
【0033】また図5と図6には楕円曲線の2倍点の演
算手続について述べている。図の見方は加算の手続きと
同様であるためここでは省略する。初期状態でレジスタ
Ax,Ay,Azに楕円曲線上の点(x1,y1,z1)の2倍点が、結果
として同様にレジスタAx,Ay,Azに格納される。
【0034】この演算器の特徴は次の通りである。 ・楕円曲線上の加算、2倍点演算を高速に処理ができ
る。
【0035】・剰余乗算器は、出力を0からp-1までの値
に補正する前段階で出力する。このことにより、剰余乗
算器の制御ゲートを削減するとともに、処理時間mクロ
ックを最小にしている。この出力値の補正は必要である
場合に、次のNo以降で算術演算器において行う。
【0036】・剰余乗算器が1回動作している間に、算
術演算部を複数回定められた手順に従って動作させる。
【0037】・剰余乗算器の出力は入力した次Noのタイ
ミングで使用することにより、剰余乗算器の処理時間m
クロックを最小にしている。そして、このパイプライン
を切らないように手順を定めている。なお、上記示した
楕円曲線の加算点と2倍点の演算では、中間的なレジス
タを少なくしている。
【0038】・以上のことより、トータルとして(剰余
乗算器の処理時間mクロック)×(剰余乗算器が動作す
る回数だけの処理時間で、複雑な楕円曲線の演算を行う
ことができる。
【0039】なお、以上の説明では法pが160ビットの楕
円曲線基本演算を実現する場合について説明したが、他
のビット数においても同様に実現可能であることは明ら
かである。また法pを素数としたが、これは素数のべき
乗値であってもよい。
【0040】また、本実施形態ではJacobian軸における
処理内容を説明したが、例えば射影軸などであってもよ
い。射影軸については、例えばK.Koyama and Y.Tsuruok
a, "Speeding up elliptic cryptosystems by using a
signed binary window method", Advances in Cryptolo
gy-Proceedings of Crypto'92, Lecture Notes in Comp
uter Science, 740 (1993), Springer-Verlag, pp345-3
57.などが参考になる。
【0041】また、剰余乗算器の構成自身については、
従来例より最後の剰余補正を取り除いたものとしている
が、この構成自身は本発明の範囲外とする。
【0042】
【発明の効果】以上のように本発明によれば、請求項1
の剰余乗算手段と算術演算手段を並列に動作させること
により、複雑な剰余乗算、加算、減算等が混在する楕円
曲線基本演算を高速・コンパクトに実現するハードウェ
アを提供することができる。
【0043】また、請求項2のように剰余乗算手段が1
回動作するバックグランドで複数の算術演算を所定の手
順で動作させることにより、実質的に算術演算の処理時
間を0にすることができる。
【0044】また請求項3のように、剰余乗算手段が最
終的な法pによる剰余補正を行わないことにより、剰余
乗算手段の制御ゲートと処理時間を削減することができ
る。なお、剰余乗算手段の出力の補正は、その後の剰余
乗算手段と並列した算術演算手段で必要に行うことによ
り、実質的にこの処理時間を削減できる。
【0045】また請求項5、6では剰余乗算器の出力は
入力した次Noのタイミングで使用することにより、剰余
乗算器の処理時間mクロックを最小にしている。そし
て、このパイプラインを切らないで楕円曲線の加算と2
倍点演算の手順を示している。そのため、楕円曲線の加
算や2倍点演算に必要となる処理時間は、(剰余乗算器
の処理時間mクロック)×(剰余乗算器が動作する回
数)だけの処理時間となる。なお、示した手順では、中
間的なレジスタの数が最小となり実現ゲート数を削減で
きる。
【図面の簡単な説明】
【図1】本発明の一実施形態における構成図
【図2】本発明の一実施形態における動作フロー図
【図3】本発明の一実施形態における楕円曲線上の2倍
点演算の詳細な処理手順を示す図
【図4】本発明の一実施形態における楕円曲線上の2倍
点演算の詳細な処理手順を示す図
【図5】本発明の一実施形態における楕円曲線上の加算
点演算の詳細な処理手順を示す図
【図6】本発明の一実施形態における楕円曲線上の加算
点演算の詳細な処理手順を示す図
【符号の説明】
1〜8,10,12,13 レジスタR1,R2,Ax,Ay,Az,Bx,By,Bz,
OMUL, p,a 9 剰余乗算器 11 算術演算器 14 制御部 20 データ入力部(初期設定部) 21 剰余乗算器処理部 22 算術演算器処理部 23 データ出力部

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】整数pを格納するp格納手段と、複数のレジ
    スタを備えるレジスタ群と、前記レジスタ群のうち2つ
    のレジスタの格納値をA,Bとしたとき、これらレジスタ
    を入力として、前記整数pによる剰余体において積A×B
    と同値な値を、前記レジスタ群の1つのレジスタに出力
    する剰余乗算手段と、前記レジスタ群のうち2つのレジ
    スタの格納値を入力として、加算、減算、比較の演算を
    行い、その結果を前記レジスタ群の1つのレジスタに出
    力する算術演算手段と、前記剰余乗算手段と算術演算手
    段を所定の手順に基づいて並列に動作させて制御を行う
    制御手段を備えた演算装置。
  2. 【請求項2】前記剰余乗算手段の処理時間をm、前記算
    術演算手段の処理時間をnとするとき、mがnより大であ
    るとし、剰余乗算手段を1回動作する間に、所定の手順
    に基づいて前記算術部演算手段を複数回動作させる制御
    を行うことを特徴とする請求項1記載の演算装置。
  3. 【請求項3】前記算術演算手段を用いて、前記剰余乗算
    手段の出力を、前記整数pを法とする剰余値に補正する
    ことを特徴とする請求項1記載の演算装置。
  4. 【請求項4】前記制御手段において、整数pを法とする
    剰余乗算と算術演算を所定の手順で組み合わせて実現す
    る、有限体上に構成された楕円曲線上の演算を、前記剰
    余乗算手段と前記算術演算手段を並列に動作させて実現
    することを特徴とする請求項1記載の演算装置。
  5. 【請求項5】整数pを法とする有限体上の楕円曲線y^2=x
    ^3+ax+b (modp)の点(x1,y1,z1)を入力とし、この楕円
    曲線上の2倍点(x3,y3,z3)を出力する演算装置であっ
    て、"modp"を整数pにおける剰余とすると、各x3,y3,z3
    は、 x3=T, y3=M×(S-T)-8y1^4 modp, z3=2y1×z1 modp S=4x1×y1^2 modp, M=3x1^2+a×z1^4 modp, T=-2S+M^2
    modp の演算で求められるとき、これらの演算を、前記剰余乗
    算手段の処理時間mを時間の単位としたときに、 時間1では、剰余乗算手段でz1×z1の整数pによる剰余
    体において同値の値Aを求め、 時間2では、剰余乗算手段でy1×z1の整数pによる剰余
    体において同値の値Bを求め、 時間3では、剰余乗算手段でA×Aの整数pによる剰余体
    において同値の値Cを求め、同時に算術演算手段でBの2
    倍値の整数pによる剰余を求めこれをz3として出力し、
    またx1の4倍値の整数pによる剰余を求めこれを4x1と
    し、 時間4では、剰余乗算手段でx1×x1の整数pによる剰余
    体において同値の値Dを求め、 時間5では、剰余乗算手段でC×aの整数pによる剰余体
    において同値の値Eを求め、同時に算術演算手段でDの3
    倍値の整数pによる剰余を求めこれを3x1^2とし、 時間6では、剰余乗算手段でy1×y1の整数pによる剰余
    体において同値の値Fを求め、同時に算術演算手段でEと
    前記3x1^2の加算値の整数pによる剰余を求めこれをMと
    し、 時間7では、剰余乗算手段でM×Mの整数pによる剰余体
    において同値の値Gを求め、 時間8では、剰余乗算手段で4x1×Fの整数pによる剰余
    体において同値の値Sを求め、 時間9では、剰余乗算手段でF×Fの整数pによる剰余体
    において同値の値Hを求め、同時に算術演算手段でGから
    Sの2倍値を減算した減算値の整数pによる剰余を求めこ
    れをTとしさらにこれをx3として出力し、SからTを減算
    した減算値の整数pによる剰余S-Tを求め、 時間10では、剰余乗算手段で(S-T)×Mの整数pによる
    剰余体において同値の値Iを求め、同時にHの8倍値の整
    数pによる剰余を求めこれを8y1^4とし、 時間11では、算出演算手段でIから8y1^4を減算した減
    算値の整数pによる剰余を求めこれをy3として出力し、 以上の制御手順で出力値x3,y3,z3を求める制御手段を備
    えたことを特徴とする請求項1記載の演算装置。
  6. 【請求項6】整数pを法とする有限体上の楕円曲線y^2=x
    ^3+ax+b (modp)の点(x1,y1,z1)と(x2,y2,z2=1)を入
    力とし、この楕円曲線上の加算点(x3,y3,z3)を出力す
    る演算装置であって、"modp"を整数pにおける剰余とす
    ると、各x3,y3,z3は、 x3=-H^3-2U+r^2 modp, y3=-y1×H^3+r×(U-x3) modp, z
    3=z1×H modp H=x2×z1^2-x1 modp, r=y2×z1^3-y1 modp, U=x1×H^2
    modp の演算で求められるとき、これらの演算を、前記剰余乗
    算手段の処理時間mを時間の単位としたときに、 時間1では、剰余乗算手段でz1×z1の整数pによる剰余
    体において同値の値Aを求め、 時間2では、剰余乗算手段でy2×z1の整数pによる剰余
    体において同値の値Bを求め、 時間3では、剰余乗算手段でx2×Aの整数pによる剰余体
    において同値の値Cを求め、 時間4では、剰余乗算手段でB×Aの整数pによる剰余体
    において同値の値Dを求め、同時に算術演算手段でCから
    x1を減算した減算値の整数pによる剰余を求めこれをHと
    し、 時間5では、剰余乗算手段でH×Hの整数pによる剰余体
    において同値の値Eを求め、同時に算術演算手段でDから
    y1を減算した減算値の整数pによる剰余を求めこれをrと
    し、 時間6では、剰余乗算手段でz1×Hの整数pによる剰余体
    において同値の値Fを求め、 時間7では、剰余乗算手段でE×Hの整数pによる剰余体
    において同値の値Gを求め、同時に算術演算手段でFの整
    数pによる剰余を求めこれをz3として出力し、 時間8では、剰余乗算手段でx1×Eの整数pによる剰余体
    において同値の値Uを求め、 時間9では、剰余乗算手段でr×rの整数pによる剰余体
    において同値の値Hを求め、 時間10では、剰余乗算手段でy1×Gの整数pによる剰余
    体において同値の値Iを求め、同時に算術演算手段でHか
    らGおよびUの2倍を減算した減算値の整数pによる剰余
    を求めこれをx3として出力し、さらにUからx3を減算し
    た減算値の整数pによる剰余を求めこれを(U-x3) とし、 時間11では、剰余乗算手段でr×(U-x3)の整数pによる
    剰余体において同値の値Jを求め、 時間12では、算出演算手段でJからIを減算した減算値
    の整数pによる剰余を求めこれをy3として出力し、 以上の制御手順で出力値x3,y3,z3を求めることを特徴と
    する請求項1記載の演算装置。
  7. 【請求項7】前記整数pを素数とすることを特徴とする
    請求項1から6のいずれか1項に記載の演算装置。
  8. 【請求項8】前記整数pを素数のべき乗とすることを特
    徴とする請求項1から6のいずれか1項に記載の演算装
    置。
JP4322898A 1998-02-25 1998-02-25 演算装置 Pending JPH11242436A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4322898A JPH11242436A (ja) 1998-02-25 1998-02-25 演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4322898A JPH11242436A (ja) 1998-02-25 1998-02-25 演算装置

Publications (1)

Publication Number Publication Date
JPH11242436A true JPH11242436A (ja) 1999-09-07

Family

ID=12658066

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4322898A Pending JPH11242436A (ja) 1998-02-25 1998-02-25 演算装置

Country Status (1)

Country Link
JP (1) JPH11242436A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009008930A (ja) * 2007-06-28 2009-01-15 Renesas Technology Corp 楕円曲線演算装置および楕円曲線演算方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009008930A (ja) * 2007-06-28 2009-01-15 Renesas Technology Corp 楕円曲線演算装置および楕円曲線演算方法

Similar Documents

Publication Publication Date Title
US7904498B2 (en) Modular multiplication processing apparatus
Ors et al. Hardware implementation of an elliptic curve processor over GF (p)
US6151393A (en) Device and method for modular multiplication
Kawamura et al. Cox-rower architecture for fast parallel montgomery multiplication
US6876745B1 (en) Method and apparatus for elliptic curve cryptography and recording medium therefore
Yanık et al. Incomplete reduction in modular arithmetic
US8862651B2 (en) Method and apparatus for modulus reduction
US7826612B2 (en) System, method and apparatus for an incremental modular process including modular multiplication and modular eduction
US20020126838A1 (en) Modular exponentiation calculation apparatus and modular exponentiation calculation method
EP0952697B1 (en) Elliptic curve encryption method and system
Großschädl A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m)
US20080114820A1 (en) Apparatus and method for high-speed modulo multiplication and division
KR20040060445A (ko) 4-2 컴프레서를 이용한 몽고메리 모듈러 승산기 및 그승산 방법
JPH11242436A (ja) 演算装置
US8290151B2 (en) Device and method for determining an inverse of a value related to a modulus
Gutub Fast 160-bits GF (p) elliptic curve crypto hardware of high-radix scalable multipliers
Bos et al. Efficient Modular Multiplication
KR20100062565A (ko) 모듈러스의 음의 역원을 구하는 방법
JP2000181347A (ja) 素体上楕円曲線上の点の演算方法およびその装置
US20080005209A1 (en) System, method and apparatus for public key encryption
Okeya et al. Use of montgomery trick in precomputation of multi-scalar multiplication in elliptic curve cryptosystems
JP3626315B2 (ja) 剰余算装置、情報処理装置及び剰余算方法
WO2000041068A1 (en) Method for generating a value for a multiplicative inverse of an element of a galois field
Mohammadi et al. A fast and secure RSA public key cryptosystem
KR20000009759A (ko) 모듈러 곱셈기

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20041208

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041216

RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20050124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070522

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071002