JP2000181347A - 素体上楕円曲線上の点の演算方法およびその装置 - Google Patents

素体上楕円曲線上の点の演算方法およびその装置

Info

Publication number
JP2000181347A
JP2000181347A JP36149198A JP36149198A JP2000181347A JP 2000181347 A JP2000181347 A JP 2000181347A JP 36149198 A JP36149198 A JP 36149198A JP 36149198 A JP36149198 A JP 36149198A JP 2000181347 A JP2000181347 A JP 2000181347A
Authority
JP
Japan
Prior art keywords
point
elliptic curve
doubling
calculation
processing
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.)
Granted
Application number
JP36149198A
Other languages
English (en)
Other versions
JP3615405B2 (ja
Inventor
Koichi Ito
孝一 伊藤
Masahiko Takenaka
正彦 武仲
Naoya Torii
直哉 鳥居
Shoji Tenma
尚二 天満
Yasushi Kurihara
靖 栗原
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP36149198A priority Critical patent/JP3615405B2/ja
Publication of JP2000181347A publication Critical patent/JP2000181347A/ja
Application granted granted Critical
Publication of JP3615405B2 publication Critical patent/JP3615405B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)

Abstract

(57)【要約】 【課題】 素体上楕円曲線上の点を3次元に投影したヤ
コビアン座標を用いることで逆数演算を行うことなく加
算処理を可能とし、かつ付加的な座標を追加せずに高速
な処理を可能とする素体上楕円曲線上の点の演算方法を
提案する。 【解決手段】 素体上楕円曲線上の点演算方法は、2倍
算が連続する場合の初回の2倍算処理では、Y’=2Y
0,W0=aZ0 4を演算し(ステップS202)、
(X1,2Y1(=Y1’),Z1),F1=T0,F2=W0
を出力し、2回目以降は、現在の座標(Xi,2Yi(=
i’),Zi)を用いて(Xi+1,2Yi+1(=
i+1’),Zi+1)を演算し(ステップS204)、最
終回はYi=Yi/2を演算して(ステップS206)、
演算結果である(Xi,Yi,Zi)=2m(X0,Y0,Z
0)を出力する(ステップS207)ことを特徴とす
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、素体上楕円曲線上
の点の演算方法、特に、楕円曲線上の点に乗数を乗算す
る際に、2進数系表現に変換された乗数に基づいて2倍
算処理および加算処理を組み合わせて演算を行う演算方
法およびこの演算方法を実現する素体上楕円曲線上の点
の演算装置に関する。
【0002】
【従来の技術】近年のコンピュータネットワークの発達
により、データベースの検索や電子メール、電子ニュー
スなどの電子化された情報をネットワークを経由して送
受信する機会が急速の増加してきている。さらに、これ
らを利用して、オンラインショッピングなどのサービス
も提供されつつある。しかし、それに伴って、ネットワ
ーク上の電子化されたデータを盗聴したり、改竄した
り、または他人になりすましてサービスを受けるなどの
違法行為についての問題が浮上してきている。特に、無
線を利用したネットワークにおいては、傍受が容易なた
めこれらを防止する対策が望まれている。
【0003】これらの問題に対して暗号技術(encrypti
on technology)を応用した暗号化電子メールや利用者
認証システムが提案され、種々のネットワークにも導入
されつつあり、コンピュータネットワークにおいて暗号
化は必須の技術となりつつある。この意味でコンピュー
タネットワークにおいては暗号化は必須の技術であると
いえる。
【0004】暗号化方式は、大別すると秘密鍵暗号系と
公開鍵暗号系の2つの分類することができる。
【0005】秘密鍵暗号系は、送信者と受信者が同じ鍵
を持つことにより暗号通信を行う方式である。すなわ
ち、秘密鍵暗号系では、あるメッセージを秘密の暗号鍵
に基づいて暗号化し相手に送り、受け手はこの暗号鍵を
用いて暗号分を複合化しもとのメッセージに戻して情報
を入手する。
【0006】公開鍵暗号系は、送信者は公開されている
受信者の公開鍵でメッセージを暗号化して送信し、受信
者は自分の秘密鍵でその暗号化メッセージを復号するこ
とで通信を行う方式である。すなわち、公開鍵暗号系で
は、公開鍵は暗号化のための鍵、秘密鍵は公開鍵により
暗号化された暗号を復号するための鍵であり、公開鍵で
暗号化した暗号が秘密鍵でのみ復号することができる。
【0007】秘密鍵暗号系では、個人が秘密に保管しな
ければならない鍵の数が通信相手の数だけ必要であり、
必要な総鍵数はn人のネットワークの場合、n(n−
1)/2個である。また、はじめて通信をする相手に対
しては、何らかの方法で秘密鍵の配送を行う必要がある
という点で欠点がある。この問題を避けるために、大規
模なネットワークでは、鍵管理センタを設置し、センタ
との間の秘密鍵のみを保管し、暗号通信を行う場合はセ
ンタから送信相手との秘密鍵を得る方法が用いられる。
この場合秘密鍵の総数はnとなる。
【0008】一方公開鍵暗号系では、個人が秘密に保管
する鍵は自分の秘密鍵のみであり、必要な総秘密鍵数も
n人のネットワークの場合、n個である。また、はじめ
て通信する相手に対しては、公開鍵の配送を行えばよ
く、鍵管理センタを設置して、ユーザの公開鍵をn個公
開簿に登録し、センタから送信相手の公開鍵を得る方法
が用いられる。この場合、センタは公開鍵の改竄を防ぐ
だけで、秘密に保管する必要がない。ただし、公開鍵方
式は秘密鍵方式に比べて鍵のビット数が大きいため保管
に要するファイルサイズが大きくなるという問題を内包
している。
【0009】また、認証の場合、秘密鍵暗号系では、例
えば、送信するメッセージを秘密鍵で圧縮変換し、送信
文に付加して送り、受信側では同様に圧縮変換して比較
する方式がとられている。しかし、送受信が同じ鍵であ
るため受信者は認証データを偽造することができる。
【0010】これに対して、公開鍵暗号系では、秘密鍵
で暗号化することができるのは本人だけであるという特
徴を利用する。送信者はメッセージを圧縮変換して秘密
鍵で暗号化し、送信文に付加して送り、受信者は送信者
の公開鍵で付加されたデータを復号化し、同様に圧縮変
換したものと比較する方式がとられている。この場合は
受信者が不正できない。
【0011】このように、認証系では公開鍵暗号系の技
術は必要不可欠であるといえる。しかし、公開鍵暗号系
には、暗号化/復号化に大量の処理が必要であるという
大きな欠点があるため、一般には処理の速い秘密鍵暗号
系をメッセージの暗号化に、公開鍵暗号系は認証用にと
いうように組み合わせて用いられる場合が多い。
【0012】公開鍵暗号系の中で、現在IEEE P1363, AN
SI X 9.62などで標準化が進んでいるものに、楕円曲線
暗号(Elliptic Curve Cryptography)がある。これ
は、楕円曲線の離散対数問題に基づくもので、N. Kobli
tz("A course in number theory and cryptography",
Spring-Verlag, 1997)と、V. Miller("Use of ellipt
ic curves in cryptography", Advances in Cryptology
-Proceedings of Crypto'85, Lecture Notes in Comput
er Science, 218(1986), Spring-Verlag, pp 417-426)
により提案された。 〔楕円曲線暗号に用いる楕円曲線〕楕円曲線暗号に用い
る主な楕円曲線は、素体上の楕円曲線(標準形:y2
3+ax+b(modp),p:素数,a,b:GF
(p)の元)と、2の拡大体上の楕円曲線(標準形:y
2+xy=x3+ax2+b(mod f),f:n次既
約多項式,a,b:GF(2n)の元)である。この楕
円曲線上の点P(x,y)および単位元となる無限遠点
Οの集合は、加算に関して群をなす。楕円曲線は、この
点の演算による離散対数問題に基づく暗号である。 〔楕円曲線の点の演算と離散対数問題〕楕円曲線上の点
の演算は以下のものが定義されている。 加算:R=P+Q=Q+P 2倍算:R=2P=P+P 減算:R=P−Q 零点:Ο(無限遠点)=P−P スカラー倍算:kP=P+P+・・・+P(k個のPの
和) ここで、kPとPからkを計算することは困難である。
このことは、楕円曲線の離散対数問題と呼ばれており、
この離散対数問題に関連する計算の困難性に基づいて公
開鍵系の暗号とすることができる。
【0013】たとえば、公開鍵暗号系と知られる(有限
体上の)ディフィ−ヘルマン(Diffie-Hellman)鍵交換
と同様の鍵交換方式を実現することができる。楕円曲線
上のベースポイントをGとし、Aの秘密鍵をsaとしP
a=saGを演算して公開鍵とする。また、Bの秘密鍵
をsbとし、Pb=sbGを演算してこれを公開鍵とす
る。AはBの公開鍵Pbと自分の秘密鍵saから、KAB
=saPb=sabGを演算することによって共通鍵を
得ることができる。また、同様にして、BはAの公開鍵
Paと自分の秘密鍵sbから、KBA=sbPa=sba
を演算することによって共通鍵を得ることができる。こ
の方式は、ECDH(Elliptic Curve Diffie-Hellma
n)方式と呼ばれ、秘密鍵sa,sbをスカラー量として
楕円曲線上の点G、Pa、Pbに乗算する必要があり、
暗号化/復号化の際に大量の演算処理を必要とする。こ
の他にECDSA方式やECES方式なども提案されて
いるが、演算処理が大きくなる点については同様であ
る。 〔楕円曲線上の点のスカラー倍算〕楕円曲線上の点のス
カラー倍算は上記のように定義されるが、kの値が大き
くなると計算量が膨大となるため、通常は、加算と2倍
算を組み合わせたバイナリメソッド(Binary Method)
や加算と2倍算、減算を組み合わせたサインドバイナリ
メソッド(Signed Binary Method)、事前計算表を用い
て用いてバイナリメソッドを複数ビット単位で行うウィ
ンドウメソッド(Window Method)などを用いて計算を
行うことが提案されている。 〔素体上楕円曲線上における点の加算〕楕円曲線上の点
のスカラー倍算を行うためにバイナリーメソッドやウィ
ンドウメソッドを用いる場合、2進数系の表現に変換さ
れた乗数に基づいて、2倍算処理または加算処理と2倍
算処理を行って、楕円曲線上の点を次々に演算していく
ことにより結果を得ることができる。
【0014】素体上の楕円曲線y2=x3+ax+b(m
od p)での点の演算を定義する。点P=(x0
0)、点Q=(x1,y1)、点R=(x2,y2)、単
位元Ο(無限遠点)とすると、点の加算は次のように定
義される。但し、−P=(x0,−y0)と定義される。
【0015】1.点Pと単位元Οとの加算 R=P+Ο=Ο+P=P 2.単位元Οの2倍算 R=Ο+Ο=2Ο=Ο 3.点Pと点−Pとの加算 R=P−P=Ο 4.点Pと点Q(≠P)との加算 R=P+Q=(x2,y2) x2=((y1−y0)/(x1−x0))2−x0−x1(mod
p) y2=((y1−y0)/(x1−x0))(x0−x1)−y0(mo
d p) 5.点Pの2倍算 R=P+P=2P=(x2,y2) x2=((3x0 2−a)/2y0)2−2x0 (mod p) y2=((3x0 2−a)/2y0)(x0−x2)−y0(mod
p) 〔点の三次元表現と演算〕上述の楕円曲線上の点の加算
は、もっとも基本的な方式であり、加算ごとに素体上の
逆数演算が必要となる。通常、素体上の逆数演算は大量
の処理が必要となるため、楕円曲線上の点を三次元表現
することで、逆数演算を行わずに加算処理を行う方式
が、D. V. ChudnovskyとG. V. Chudnovskyにより、"Seq
uences of Numbers Generated by Addition in Formal
Groups and New Primality and Factorization Tests",
Advances in Applied Mathematics, Vol. 7, 1986に提
案されている。このうち、ヤコビアン(Jacobian)座標
を用いれば、楕円曲線上の点は、(x,y)=(X/Z
2,Y/Z3)となる(X,Y,Z)に投影される。この
場合の点の加算および2倍算は、IEEE P1363に掲載され
ており、次のように示される。
【0016】4’.点Pと点Q(≠P)との加算 R=P+Q=(X2,Y2,Z2) U0=X01 21=X10 20=Y01 31=Y10 3 W=U0−U1 T=U0+U1 R=S0−S1 M=S0+S1 V=TW2−2X22=R2−TW22=(VR−MW3)/2 Z2=Z01W 5’.点Pの2倍算 R=P+P=2P=(X2,Y2,Z2) M=3X0 2+aZ0 4 S=4X00 2 T=8Y0 42=M2−2S Y2=M(S−X2)−T Z2=2Y00
【0017】
【発明が解決しようとする課題】出願人は、特願平10
−311379号に、ヤコビアン座標を用いた楕円曲線
上の点の演算を行う際に、演算途中の計算結果を利用し
て点の2倍算を連続実行するようにした素体上楕円曲線
上の点の演算方法を提案した。この演算方法のアルゴリ
ズムを下に示す。
【0018】 6.入力:(X0,Y0,Z0)、べき値k、楕円曲線パラメータa 出力:(Xm,Ym,Zm)=2m(X0,Y0,Z0) W0=aZ0 40=3X0 2+W00=4X00 20=8Y0 41=M0 2−2S01=M0(S0−X1)−T01=2Y00 for (i=1;i<m;i++) { Wi=2Ti-1i-1i=3Xi 2+Wii=4Xii 2i=8Yi 4i+1=Mi 2−2Sii+1=Mi(Si−Xi+1)−Tii+1=2Yii } この方法を用いることにより、2倍算が連続する場合の
乗算回数を削減することができる。IEEE P1363に記載さ
れているヤコビアン座標を用いた点の加算および2倍算
に必要な計算量および特願平10−311379号にお
けるべき値mの場合のべき乗倍算に必要な計算量を表1
に示す。
【0019】
【表1】
【0020】ここで、加算系とは、加算、減算、2倍
算、1/2算、3倍算、4倍算、8倍算の総称である。
加算、減算、2倍算、1/2算の計算量を1とし、加算
と2倍算とを1回ずつ実行することで可能な3倍算およ
び2倍算を2回実行することで可能な4倍算の計算量を
2とし、2倍算を3回実行することで可能な8倍算の計
算量を3とする。
【0021】点の2倍算が連続して行われる場合には、
IEEE P1363の方法では、10×べき値m回の乗算を必要
とするのに対して、特開平10−311379号のもの
では8m+2回となり、べき値mが多くなればそれだけ
乗算回数が削減されることとなる。しかしながら、加算
系の演算回数については、べき値mが多くなるにつれて
むしろ増加してしまう。
【0022】計算機において、加算系の演算処理は乗算
処理に比して非常に負担の小さい処理とされていたが、
ハードウェア乗算器を備えたプロセッサなどでは、乗算
処理と比較して加算系の処理が無視できるほど小さいも
のではない場合が多い。特に、DSPなどの高速なハー
ドウェア乗算器を持つプロセッサにおいて楕円曲線上の
点の加算、2倍算を高速に処理するためには、乗算回数
の最適化のみならず、加算系の回数の最適化が重要な課
題となる。
【0023】本発明の目的は、素体上楕円曲線上の点を
3次元に投影したヤコビアン座標を用いることで逆数演
算を行うことなく加算処理を可能とし、かつ付加的な座
標を追加せずに高速な処理を可能とする素体上楕円曲線
上の点の演算方法およびその装置を提案することにあ
る。
【0024】
【課題を解決するための手段】本発明は、y2=x3+a
x+b(mod p)で表される素体上楕円曲線上の点
(x,y)に乗数を乗算する際に、2進数系表現に変換
された前記乗数に基づいて2倍算処理および加算処理を
組み合わせて演算を行う方法であって、前記素体上楕円
曲線上の点(x,y)を(x,y)=(X/Z2,Y/
3)となるヤコビアン座標表現(X,Y,Z)に変換
し、2倍算処理を連続して行う場合には、その連続した
2倍算処理の時点(t+1)での演算結果(Xt+1,Y
t+1,Zt+1)を現在のヤコビアン座標(Xt,Yt
t)を用いて、 Yt’=2Ytt=3Xt 2+aZt 4t=Xt(Yt’)2t=(Yt’)4/2 Xt+1=Mt 2−2Stt+1=Mt(St−Xt+1)−Ttt+1=Yt’Zt として演算処理を行うことを特徴とする素体上楕円曲線
上の点の演算方法である(ただし、計算式の記載順は、
計算順を特定するものではない)。
【0025】ヤコビアン座標を用いた演算において、4
2の演算を、4×Y2として演算すると、乗算1回およ
び加算系2回の計算量を必要とする。これに対して、4
2の演算を(2Y)2として演算を行った場合、乗算1
回および加算系1回の計算量となり、前者の場合と比し
て加算系を1回削減することができる。上述した本発明
の演算方法では、Y座標の2倍の値であるY’の値を先
に計算し、このY’の値を用いることによって、ヤコビ
アン座標の点の2倍算における加算系の回数を削減して
いる。
【0026】また、本発明では、y2=x3+ax+b
(mod p)で表される素体上楕円曲線上の点(x,
y)に乗数を乗算する際に、2進数系表現に変換された
前記乗数に基づいて2倍算処理および加算処理を組み合
わせて演算を行う方法であって、前記素体上楕円曲線上
の点(x,y)を(x,y)=(X/Z2,Y/Z3)と
なるヤコビアン座標表現(X,Y,Z)に変換し、2倍
算処理を連続して行う場合には、初回は、 Y0’=2Y00=aZ0 40=3X0 2+W00=X0(Y0’)20=(Y0’)41=M0 2−2S01’=2M0(S0−X1)−T01=Y0’Z0 を演算し、2回目以降はその連続した2倍算処理の時点
(t+1)での演算結果(Xt+1,Yt+1’,Zt+1)を
現在の座標(Xt,Yt’,Zt)を用いて、 Wt=Tt-1t-1t=3Xt 2+Wtt=Xt(Yt’)2t=(Yt’)4t+1=Mt 2−2Stt+1’=2Mt(St−Xt+1)−Ttt+1=Yt’Zt として演算処理を行い、最終回には、Yt+1=Yt+1’/
2を演算することを特徴とする素体上楕円曲線上の点の
演算方法を提案する。
【0027】従来の方法においては、Tt=8Yt 4,Wt
=aZt 4からWt=2Tt-1t-1を演算していたのに対
し、この方法を用いることによって、Tt=(Yt’)4
=16Yt 4の演算結果を利用して、Wt=Tt-1t-1
16Yt 4tとして演算することができる。したがっ
て、Ttの2倍算が不要となり計算量を削減することが
可能となる。
【0028】また、2倍算処理が連続する場合の従来の
演算方法では、(X0,Y0,Z0)の2t倍点(Xt
t,Zt)から2t+1倍点(Xt+1,Yt+1,Zt+1)を計
算していたが、上述の方法では、点(Xt,2Yt
t)から点(Xt+1,2Yt+1,Zt +1)を計算すること
によって点の2のべき乗倍算ループ毎に必要なY座標の
2倍値の計算を削減することができ、初回のY0→2Y1
の2倍算および最終回のY座標の1/2算が増加するも
のの、全体として計算量を削減することが可能となる。
【0029】ここで、連続した2倍算処理の時点(t+
1)での演算処理において、前回の時点(t)での演算
結果(Xt,Yt’,Zt)を求める際に用いたWt-1=a
t- 1 4とTt-1=Yt-1 4とを用いて2倍算処理を行うと
ともに、この2倍算処理において求めたWt=aZt 4
t=(Yt’)4とを記憶するように構成できる。
【0030】また、連続した2倍算処理の時点(t+
1)において、演算結果(Xt+1,Yt +1’,Zt+1)以
外の情報を出力しないように構成できる。
【0031】本発明に係る素体上楕円曲線上の点の演算
装置は、記憶手段と、演算手段と、レジスタ群と、出力
手段とを備えている。記憶手段は、y2=x3+ax+b
(mod p)で表される素体上楕円曲線上の点(x,
y)に対応して(x,y)=(X/Z2,Y/Z3)とな
るヤコビアン座標表現とした点(X,Y,Z)および乗
数が格納される領域を有する。演算手段は、記憶手段に
格納された乗数を2進数系表現に変換し、この乗数に基
づいて前記ヤコビアン座標に2倍算処理または加算処理
と2倍算処理とを選択的に行って次のヤコビアン座標を
演算する。レジスタ群は、演算手段による演算処理にお
いて途中の情報を一時的に格納する。出力手段は、演算
手段により演算された次のヤコビアン座標を記憶手段に
出力する。しかして、演算手段により演算されて記憶手
段に記憶されたヤコビアン座標を用いて、前記乗数に基
づく演算を連続的に行うとともに、演算手段による演算
が連続する2倍算処理である場合には、初回は、 Y0’=2Y00=aZ0 40=3X0 2+W00=X0(Y0’)20=(Y0’)41=M0 2−2S01’=2M0(S0−X1)−T01=Y0’Z0 を演算し、2回目以降はその連続した2倍算処理の時点
(t+1)での演算結果(Xt+1,Yt+1’,Zt+1)を
現在の座標(Xt,Yt’,Zt)を用いて、 Wt=Tt-1t-1t=3Xt 2+Wtt=Xt(Yt’)2t=(Yt’)4t+1=Mt 2−2Stt+1’=2Mt(St−Xt+1)−Ttt+1=Yt’Zt として演算処理を行い、最終回には、Yt+1=Yt+1’/
2を演算することを特徴とする。
【0032】この装置によれば、前述したような演算方
法を実現することができ、たとえば、2倍算処理を連続
して行う場合には、レジスタ群に残っているWおよびT
の値を用いて演算を行うことによって演算回数を軽減す
ることが可能となり、演算を高速化することができる。
【0033】
【発明の実施の形態】本発明に素体上楕円曲線上の点の
演算装置の1実施形態を図1を用いて説明する。
【0034】この演算装置1は、通常のCPUおよびメ
モリを搭載したコンピュータにより実現されるものであ
って、主に記憶手段2と演算部3とで構成される。
【0035】記憶手段2は、楕円曲線上の点に対応する
ヤコビアン座標(X,Y,Z)や乗数kが格納される。
【0036】演算部3は、ヤコビアン座標に変換された
楕円曲線上の点に乗数kを乗算する際に、バイナリーメ
ソッドやウィンドウメソッドなどを用いて2倍算処理ま
たは加算処理と2倍算処理を選択的に行って楕円曲線上
の点を次のヤコビアン座標として演算する演算手段4を
備えている。また、演算部3は、演算手段4における演
算に必要な入力変数を一時的に格納しておくレジスタ群
5を備えている。また、演算部3は、演算手段4の演算
結果を一時的に格納する演算結果出力用レジスタ6を備
えている。
【0037】演算手段4では、記憶手段2に格納された
現時点でのヤコビアン座標(Xt,Yt,Zt)を2倍算
処理するか加算処理と2倍算処理とを行うかを、乗数k
の値に基づいて選択し、演算処理を行う。
【0038】加算処理を行う場合には、4’として示し
た前述のアルゴリズムと同様であり、ここでは省略す
る。 〔第1実施形態〕2倍算処理が連続する、いわゆる2の
べき乗倍算を行う際に、その連続した2倍算処理の時点
(t+1)での演算結果(Xt+1,Yt+1,Zt+1)を現
在のヤコビアン座標(Xt,Yt,Zt)を用いて、 Yt’=2Ytt=3Xt 2+aZt 4t=Xt(Yt’)2t=(Yt’)4/2 Xt+1=Mt 2−2Stt+1=Mt(St−Xt)−Ttt+1=Yt’Zt とする第1のアルゴリズムの場合について考える。この
ときの処理を表すフローチャートを図2に示す。
【0039】入力されるヤコビアン座標を(X0,Y0
0)、出力するヤコビアン座標を(X1,Y1,Z1)と
し、計算過程におけるテンポラリ値を格納しておく場所
をレジスタ群F1〜F5とする。
【0040】ステップS100では、記憶手段2に格納
されている(X0,Y0,Z0)および楕円パラメータa
をレジスタ群5に読み出す。ステップS101では、2
×Y 0、X0×X0、Z0×Z0を演算し、演算結果をそれ
ぞれレジスタF1、F4、F3に格納する。このとき、F1
=Y0’となっている。
【0041】ステップS102では、レジスタF3の値
を読み出してF3×F3を演算し、この演算結果をレジス
タF3に再度格納する。さらに、レジスタF4の値を読み
出して2×F4を演算しこの演算結果をF5に格納する。
ここでは、F3=Z0 4、F4=2X0 2となっている。
【0042】ステップS103では、レジスタF3の値
を読み出してa×F3を演算しこの演算結果をレジスタ
2に格納する。さらに、レジスタF4、F5の値を読み
出してF4+F5を演算しこの演算結果をレジスタF4
格納する。このとき、F2=aZ 0 4、F4=3X0 2となっ
ている。
【0043】ステップS104では、レジスタF4、F2
の値を読み出してF4+F2を演算しこの演算結果をレジ
スタF4に格納する。このとき、F4=3X0 2+aZ0 4
Mとなっている。
【0044】ステップS105では、Z0の値とレジス
タF1の値を読み出してZ0×F1を演算しこの演算結果
をZ1として演算結果出力用レジスタ6に出力する。ま
た、レジスタF1の値を読み出してF1×F1を演算しこ
の演算結果をレジスタF3に格納する。このとき、Z1
0’Z0、F3=(Y0’)2となっている。
【0045】ステップS106では、X0の値とレジス
タF3の値を読み出してX0×F3を演算しこの演算結果
をレジスタF5に格納する。また、レジスタF4の値を読
み出してF4×F4を演算しこの演算結果をレジスタF1
に格納する。このとき、F5=X 0×(Y0’)2=S、F
1=M2となっている。
【0046】ステップS107では、レジスタF5の値
を読み出して2×F5を演算しこの演算結果をX1として
演算結果出力用レジスタ6に出力する。このとき、X1
=2Sになっている。
【0047】ステップS108では、レジスタF1の値
とX1の値を読み出してF1−X1を演算しこの演算結果
をX1として演算結果出力用レジスタ6に出力する。こ
のとき、X1=M2−2Sとなっている。
【0048】ステップS109では、レジスタF3の値
を読み出してF3×F3の演算を行いこの演算結果をレジ
スタF1に格納する。また、レジスタF5の値およびX1
の値を読み出してF5−X1の演算を行いこの演算結果を
レジスタF5に格納する。このとき、F1=(Y0’)4
5=S−X1となっている。
【0049】ステップS110では、レジスタF1の値
を読み出してF1/2の演算を行いこの演算結果をレジ
スタF1に格納する。また、レジスタF5、F4の値を読
み出してF5×F4を演算しこの演算結果をY1として演
算結果出力用レジスタ6に出力する。このとき、F1
(Y0’)4/2=8Y0 4、Y1=M(S−X1)となって
いる。
【0050】ステップS111では、Y1の値およびレ
ジスタF1の値を読み出してY1−F1を演算しこの演算
結果をY1として演算結果出力用レジスタ6に出力す
る。このとき、Y1=M(S−X1)−Tとなっている。
【0051】最終的に演算された(X1,Y1,Z1)は
記憶手段2に出力される。
【0052】べき乗倍算がさらに続く場合には、この
(X1,Y1,Z1)の値を入力(X0,Y0,Z0)として
同じ動作を繰り返し行うことで続けて演算することが可
能である。 〔第2実施形態〕2倍算処理が連続する、いわゆる2の
べき乗倍算を行う際に、初回には、 Y0’=2Y00=aZ0 40=3X0 2+W00=X0(Y0’)20=(Y0’)41=M0 2−2S01’=2M0(S0−X1)−T01=Y0’Z0 を演算し、2回目以降にはその連続した2倍算処理の時
点(t+1)での演算結果(Xt+1,Yt+1’,Zt+1
を現在の座標(Xt,Yt’,Zt)を用いて、 Wt=Tt-1t-1t=3Xt 2+Wtt=Xt(Yt’)2t=(Yt’)4t+1=Mt 2−2Stt+1’=2Mt(St−Xt)−Ttt+1=Yt’Zt として演算処理を行い、最終回には、Yt+1=Yt+1’/
2を演算する第2のアルゴリズムの場合について考え
る。このときの処理を表すフローチャートを図3に示
す。
【0053】入力されるヤコビアン座標を(X0,Y0
0)、連続する2倍算の途中におけるヤコビアン座標
を(Xi,Yi,Zi)とし、計算過程におけるテンポラ
リ値を格納しておく場所をレジスタ群F1〜F5とする。
【0054】ステップS200では、記憶手段2に格納
されている(X0,Y0,Z0)、べき数mおよび楕円パ
ラメータaをレジスタ群5に読み出す。ステップS20
1では、連続した2倍算の演算回数をカウントするため
の計数iを初期化する。
【0055】ステップS202では、点の2倍算ルーチ
ンを実行し、得られた(Xi,Yi,Zi)の値および
1、F2の値をレジスタ群5内に出力する。
【0056】ステップS203では、現在の連続2倍算
の演算回数iが今回行うべき数mに到達したか否かを判
別する。現在の連続2倍算の演算回数iが今回行うべき
数mに到達していない場合には、ステップS204に移
行する。ステップS204では、点の2倍算ループルー
チンを実行する。ここでは、レジスタ群5中の(Xi
i,Zi)の値およびF1、F2の値を入力X0,Y0,Z
0,T0,W0とし、演算の結果得られる値を再度(Xi
i,Zi)、F1、F2の値としてレジスタ群5に出力す
る。
【0057】ステップS205では、現在の連続2倍算
の演算回数iをインクリメントする。この後、ステップ
S203に移行する。
【0058】ステップS203において、現在の連続2
倍算の演算回数iが今回行うべき数mに到達したと判断
した場合には、ステップS206に移行する。ステップ
S206では、レジスタ群5よりYiの値を読み出して
i/2を演算しこの演算結果をYiとしてレジスタ群5
に出力する。ステップS207では、(Xi,Yi
i)の値を2m(X0,Y0,Z0)として演算結果出力
用レジスタ6に出力する。
【0059】ステップS202における点の2倍算ルー
チンを図4に示す。
【0060】ステップS300では、記憶手段2に格納
されている(X0,Y0,Z0)および楕円パラメータa
をレジスタ群5に読み出す。
【0061】ステップS301では、2×Y0、X0×X
0、Z0×Z0を演算し、演算結果をそれぞれレジスタ
1、F4、F3に格納する。このとき、F1=Y0’、F4
=X0 2、F3=Z0 2となっている。
【0062】ステップS302では、レジスタF3の値
を読み出してF3×F3を演算し、この演算結果をレジス
タF3に再度格納する。さらに、レジスタF4の値を読み
出して2×F4を演算しこの演算結果をF5に格納する。
ここでは、F3=Z0 4、F5=2X0 2となっている。
【0063】ステップS303では、レジスタF3の値
を読み出してa×F3を演算しこの演算結果をレジスタ
2に格納する。さらに、レジスタF4、F5の値を読み
出してF4+F5を演算しこの演算結果をレジスタF4
格納する。このとき、F2=aZ 0 4=W0、F4=3X0 2
となっている。
【0064】ステップS304では、レジスタF4、F2
の値を読み出してF4+F2を演算しこの演算結果をレジ
スタF4に格納する。このとき、F4=3X0 2+aZ0 4
0となっている。
【0065】ステップS305では、Z0の値とレジス
タF1の値を読み出してZ0×F1を演算しこの演算結果
をZiとして演算結果出力用レジスタ6に出力する。ま
た、レジスタF1の値を読み出してF1×F1を演算しこ
の演算結果をレジスタF3に格納する。このとき、Zi
0’Z0、F3=(Y0’)2となっている。
【0066】ステップS306では、X0の値とレジス
タF3の値を読み出してX0×F3を演算しこの演算結果
をレジスタF5に格納する。また、レジスタF4の値を読
み出してF4×F4を演算しこの演算結果をレジスタF1
に格納する。このとき、F5=X 0×(Y0’)2=S0
1=M0 2となっている。
【0067】ステップS307では、レジスタF5の値
を読み出して2×F5を演算しこの演算結果をXiとして
演算結果出力用レジスタ6に出力する。このとき、Xi
=2S 0になっている。
【0068】ステップS308では、レジスタF1の値
とXiの値を読み出してF1−Xiを演算しこの演算結果
をXiとして演算結果出力用レジスタ6に出力する。こ
のとき、Xi=M0 2−2S0となっている。
【0069】ステップS309では、レジスタF3の値
を読み出してF3×F3の演算を行いこの演算結果をレジ
スタF1に格納する。また、レジスタF5の値およびXi
の値を読み出してF5−Xiの演算を行いこの演算結果を
レジスタF5に格納する。このとき、F1=(Y0’)4
0、F5=S−Xiとなっている。
【0070】ステップS310では、レジスタF5、F4
の値を読み出してF5×F4の演算を行いこの演算結果を
iとして演算結果出力用レジスタ6に出力する。この
とき、Yi=M0(S0−Xi)となっている。
【0071】ステップS311では、Yiの値を読み出
して2×Yiを演算しこの演算結果をYiとして演算結果
出力用レジスタ6に出力する。このとき、Yi=2M
0(S0−Xi)となっている。
【0072】ステップS312では、Yiの値およびレ
ジスタF1の値を読み出してYi−F1を演算しこの演算
結果をYiとして演算結果出力用レジスタ6に出力す
る。このとき、Yi=2M0(S0−Xi)−T0となって
いる。
【0073】ステップS313では、最終的に演算され
たXi,Yi,Zi,F1,F2を記憶手段2に出力する。
このあと、メインルーチンに復帰する。
【0074】この点の2倍算ルーチンでは、連続する2
倍算の初回において、Y0’=2Y0およびW0=aZ0 4
を演算し、これらに基づいて演算した結果、出力される
(Xi,Yi,Zi)の値は、実際のヤコビヤン座標
(X1,Y1,Z1)に対して(X1,2Y1,Z1)となっ
ている。
【0075】ステップS204の点の2倍算ループルー
チンについて、図5により説明する。この2倍算ループ
ルーチンでは、実際のヤコビヤン座標を(Xt,Yt,Z
t)とすると、(Xt,2Yt,Zt)を入力として(X
t+1,2Yt+1,Zt+1)を演算してこれを出力としてい
る。
【0076】ステップS400では、記憶手段2に格納
されている(Xi,Yi,Zi)およびレジスタF1(=T
i-1)、F2(=Wi-1)の値を入力として読み出す。
【0077】ステップS401では、F1×F2を演算し
その演算結果をレジスタF2に格納する。また、Xi×X
iを演算しその演算結果をレジスタF3に格納する。この
とき、F2=Wi、F3=Xi 2となっている。
【0078】ステップS402では、レジスタF3の値
を読み出して2×F3を演算しこの演算結果をF5に格納
する。ここでは、F4=2Xi 2となっている。
【0079】ステップS403では、レジスタF5、F3
の値を読み出してF5+F3を演算しこの演算結果をレジ
スタF5に格納する。このとき、F5=3Xi 2となってい
る。
【0080】ステップS404では、レジスタF2、F5
の値を読み出してF2+F5を演算しこの演算結果をレジ
スタF5に格納する。このとき、F5=3Xi 2+Wi=Mi
となっている。
【0081】ステップS405では、Yi,Ziの値を読
み出してYi×Ziを演算しこの演算結果をZiとして演
算結果出力用レジスタ6に出力する。また、Yi×Yi
演算しこの演算結果をレジスタF4に格納する。ここで
は、入力されるXi,Yi,Ziに対してZi+1を演算して
iとして出力しており、演算としてはZi+1=Yi’Z i
を実行したこととなる。また、レジスタF4に格納され
る値は、F4=(Yi’) 2となっている。
【0082】ステップS406では、Xiの値とレジス
タF4の値を読み出してXi×F4を演算しこの演算結果
をレジスタF3に格納する。また、レジスタF5の値を読
み出してF5×F5を演算しこの演算結果をレジスタF1
に格納する。このとき、F3=X i×(Yi’)2=Si
1=Mi 2となっている。
【0083】ステップS407では、レジスタF3の値
を読み出して2×F3を演算しこの演算結果をXiとして
演算結果出力用レジスタ6に出力する。ここでは、入力
されるXi,Yi,Ziに対してXi+1を演算してXiとし
て出力しており、演算としてはXi+1=2Siを実行した
こととなる。
【0084】ステップS408では、レジスタF1の値
とXiの値を読み出してF1−Xiを演算しこの演算結果
をXiとして演算結果出力用レジスタ6に出力する。こ
のとき、Xi+1=Mi 2−2Siを演算したこととなる。
【0085】ステップS409では、レジスタF4の値
を読み出してF4×F4の演算を行いこの演算結果をレジ
スタF1に格納する。また、レジスタF3の値およびXi
の値を読み出してF3−Xiの演算を行いこの演算結果を
レジスタF3に格納する。このとき、F1=(Yi’)4
i、F3=Si−Xiとなっている。
【0086】ステップS410では、レジスタF5、F3
の値を読み出してF5×F3の演算を行いこの演算結果を
iとして演算結果出力用レジスタ6に出力する。ここ
では、入力されるXi,Yi,Ziに対してYi+1を演算し
てYiとして出力しており、演算としてはYi+1=M
i(Si−Xi+1)を実行したこととなる。
【0087】ステップS411では、Yiの値を読み出
して2×Yiを演算しこの演算結果をYiとして演算結果
出力用レジスタ6に出力する。このとき、Yi+1=2Mi
(Si−Xi+1)を演算したこととなる。
【0088】ステップS412では、Yiの値およびレ
ジスタF1の値を読み出してYi−F1を演算しこの演算
結果をYiとして演算結果出力用レジスタ6に出力す
る。このとき、Yi+1=2Mi(Si−Xi+1)−Tiを演
算したこととなる。
【0089】ステップS413では、最終的に演算され
たXi,Yi,Zi,F1,F2を記憶手段2に出力する。
このあと、メインルーチンに復帰する。
【0090】素体上楕円曲線上の点の演算に関して、そ
の計算量を従来例による場合と本発明による場合とで比
較したものを表2に示す。
【0091】
【表2】
【0092】点の2倍算の場合には、本発明の第1実施
形態を採用することができる。この場合には、IEEE P13
63に記載されている従来例の場合と乗算回数は同じであ
るが、加算系の演算回数を13回から9回に削減でき
る。
【0093】また、点の2m倍算の場合には、本発明の
第2実施形態を採用することができる。このとき、特願
平10−311379号に記載の従来例の場合と同様に
乗算回数は8m+2となる。しかしながら、加算系の演
算回数が従来例の場合、14m−1回であるのに対し、
本発明の方法では8m+2回となり、大幅に計算量を削
減することができる。
【0094】本発明の第2実施形態の方法を、DSP
(テキサスインスツルメンツ社製TMS320C6x)
に実装したところ、特願平10−311379号に記載
の従来の方法に比して、楕円曲線上の任意点のスカラー
倍算が6%高速化することがでい、この結果楕円曲線暗
号を用いたDSA署名確認処理が従来法よりも5%高速
化された。
【0095】
【発明の効果】本発明によれば、素体上楕円曲線上の点
の演算において、加算系の演算処理を削減することがで
き、特に、2倍算処理が連続する場合に計算量を削減
し、楕円曲線上の点のスカラー倍算を行った場合、演算
の高速化を図ることが可能となる。
【図面の簡単な説明】
【図1】本発明の1実施形態の制御ブロック図。
【図2】第1実施形態の制御フローチャート。
【図3】第2実施形態の制御フローチャート。
【図4】2倍算ルーチンの制御フローチャート。
【図5】2倍算ループルーチンの制御フローチャート。
【符号の説明】
1 演算装置 2 記憶手段 3 演算部 4 演算手段 5 レジスタ群 6 演算結果出力用レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 鳥居 直哉 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 天満 尚二 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 栗原 靖 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5J104 AA25 JA25 NA16 9A001 BB02 EE03 GG21 KK26

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】y2=x3+ax+b(mod p)で表さ
    れる素体上楕円曲線上の点(x,y)に乗数を乗算する
    際に、2進数系表現に変換された前記乗数に基づいて2
    倍算処理および加算処理を組み合わせて演算を行う方法
    であって、 前記素体上楕円曲線上の点(x,y)を(x,y)=
    (X/Z2,Y/Z3)となるヤコビアン座標表現(X,
    Y,Z)に変換し、2倍算処理を連続して行う場合に
    は、その連続した2倍算処理の時点(t+1)での演算
    結果(Xt+1,Yt+1,Zt+1)を現在のヤコビアン座標
    (Xt,Yt,Zt)を用いて、 Yt’=2Ytt=3Xt 2+aZt 4t=Xt(Yt’)2t=(Yt’)4/2 Xt+1=Mt 2−2Stt+1=Mt(St−Xt+1)−Ttt+1=Yt’Zt として演算処理を行うことを特徴とする素体上楕円曲線
    上の点の演算方法。
  2. 【請求項2】y2=x3+ax+b(mod p)で表さ
    れる素体上楕円曲線上の点(x,y)に乗数を乗算する
    際に、2進数系表現に変換された前記乗数に基づいて2
    倍算処理および加算処理を組み合わせて演算を行う方法
    であって、前記素体上楕円曲線上の点(x,y)を
    (x,y)=(X/Z2,Y/Z3)となるヤコビアン座
    標表現(X,Y,Z)に変換し、2倍算処理を連続して
    行う場合には、初回は、 Y0’=2Y00=aZ0 40=3X0 2+W00=X0(Y0’)20=(Y0’)41=M0 2−2S01’=2M0(S0−X1)−T01=Y0’Z0 を演算し、2回目以降はその連続した2倍算処理の時点
    (t+1)での演算結果(Xt+1,Yt+1’,Zt+1)を
    現在の座標(Xt,Yt’,Zt)を用いて、 Wt=Tt-1t-1t=3Xt 2+Wtt=Xt(Yt’)2t=(Yt’)4t+1=Mt 2−2Stt+1’=2Mt(St−Xt+1)−Ttt+1=Yt’Zt として演算処理を行い、最終回には、Yt+1=Yt+1’/
    2を演算することを特徴とする素体上楕円曲線上の点の
    演算方法。
  3. 【請求項3】連続した2倍算処理の時点(t+1)での
    演算処理において、前回の時点(t)での演算結果(X
    t,Yt’,Zt)を求める際に用いたWt-1=aZt-1 4
    t- 1=(Yt-1’)4とを用いて2倍算処理を行うとと
    もに、この2倍算処理において求めたWt=aZt 4とTt
    =(Yt’)4とを記憶しておくことを特徴とする、請求
    項2に記載の素体上楕円曲線上の点の演算方法。
  4. 【請求項4】連続した2倍算処理の時点(t+1)にお
    いて、演算結果(Xt+1,Yt+1’,Zt+1)以外の情報
    を出力しないことを特徴とする、請求項2または3に記
    載の素体上楕円曲線上の点の演算方法。
  5. 【請求項5】y2=x3+ax+b(mod p)で表さ
    れる素体上楕円曲線上の点(x,y)に対応して(x,
    y)=(X/Z2,Y/Z3)となるヤコビアン座標表現
    とした点(X,Y,Z)および乗数が格納される領域を
    有する記憶手段と、 前記記憶手段に格納された乗数を2進数系表現に変換
    し、この乗数に基づいて前記ヤコビアン座標に2倍算処
    理または加算処理と2倍算処理とを選択的に行って次の
    ヤコビアン座標を演算する演算手段と、 前記演算手段による演算処理において途中の情報を一時
    的に格納するレジスタ群と、 前記演算手段により演算された次のヤコビアン座標を前
    記記憶手段に出力する出力手段と、 を備え、前記演算手段により演算されて前記記憶手段に
    記憶されたヤコビアン座標を用いて、前記乗数に基づく
    演算を連続的に行うとともに、前記演算手段による演算
    が連続する2倍算処理である場合には、初回は、 Y0’=2Y00=aZ0 40=3X0 2+W00=X0(Y0’)20=(Y0’)41=M0 2−2S01’=2M0(S0−X1)−T01=Y0’Z0 を演算し、2回目以降はその連続した2倍算処理の時点
    (t+1)での演算結果(Xt+1,Yt+1’,Zt+1)を
    現在の座標(Xt,Yt’,Zt)を用いて、 Wt=Tt-1t-1t=3Xt 2+Wtt=Xt(Yt’)2t=(Yt’)4t+1=Mt 2−2Stt+1’=2Mt(St−Xt+1)−Ttt+1=Yt’Zt として演算処理を行い、最終回には、Yt+1=Yt+1’/
    2を演算することを特徴とする素体上楕円曲線上の点の
    演算装置。
JP36149198A 1998-12-18 1998-12-18 素体上楕円曲線上の点の演算方法およびその装置 Expired - Fee Related JP3615405B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP36149198A JP3615405B2 (ja) 1998-12-18 1998-12-18 素体上楕円曲線上の点の演算方法およびその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP36149198A JP3615405B2 (ja) 1998-12-18 1998-12-18 素体上楕円曲線上の点の演算方法およびその装置

Publications (2)

Publication Number Publication Date
JP2000181347A true JP2000181347A (ja) 2000-06-30
JP3615405B2 JP3615405B2 (ja) 2005-02-02

Family

ID=18473799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP36149198A Expired - Fee Related JP3615405B2 (ja) 1998-12-18 1998-12-18 素体上楕円曲線上の点の演算方法およびその装置

Country Status (1)

Country Link
JP (1) JP3615405B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004177582A (ja) * 2002-11-26 2004-06-24 Fujitsu Ltd 楕円曲線暗号装置、楕円曲線暗号演算方法
JP2006259734A (ja) * 2005-03-15 2006-09-28 Microsoft Corp 重み付き射影座標用の楕円曲線点8倍化
JP2006259735A (ja) * 2005-03-15 2006-09-28 Microsoft Corp Simd処理を用いた楕円曲線点8倍化
JP2011512556A (ja) * 2008-02-15 2011-04-21 トムソン ライセンシング 楕円曲線上の多数の点を計算する装置及び方法
US8180047B2 (en) 2006-01-13 2012-05-15 Microsoft Corporation Trapdoor pairings
US8208626B2 (en) 2006-08-04 2012-06-26 Samsung Electronics Co., Ltd. Apparatus for performing a fault detection operation and method thereof

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004177582A (ja) * 2002-11-26 2004-06-24 Fujitsu Ltd 楕円曲線暗号装置、楕円曲線暗号演算方法
JP4543143B2 (ja) * 2002-11-26 2010-09-15 富士通株式会社 楕円曲線暗号装置、楕円曲線暗号演算方法
JP2006259734A (ja) * 2005-03-15 2006-09-28 Microsoft Corp 重み付き射影座標用の楕円曲線点8倍化
JP2006259735A (ja) * 2005-03-15 2006-09-28 Microsoft Corp Simd処理を用いた楕円曲線点8倍化
US8180047B2 (en) 2006-01-13 2012-05-15 Microsoft Corporation Trapdoor pairings
US8208626B2 (en) 2006-08-04 2012-06-26 Samsung Electronics Co., Ltd. Apparatus for performing a fault detection operation and method thereof
JP2011512556A (ja) * 2008-02-15 2011-04-21 トムソン ライセンシング 楕円曲線上の多数の点を計算する装置及び方法

Also Published As

Publication number Publication date
JP3615405B2 (ja) 2005-02-02

Similar Documents

Publication Publication Date Title
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
US6243467B1 (en) Method of elliptic curve cryptographic digital signature generation and verification using reduced base tau expansion in non-adjacent form
US7379546B2 (en) Method for XZ-elliptic curve cryptography
US6202076B1 (en) Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
US20110161390A1 (en) Modular multiplication processing apparatus
EP0704124A1 (en) A cryptographic method
WO1993006672A1 (en) Method and apparatus for public key exchange in a cryptographic system
EP1306750A2 (en) Multi-scalar multiplication computation in elliptic curve signature verification
US6898284B2 (en) Cryptographic identification and digital signature method using efficient elliptic curve
JP4783382B2 (ja) モンゴメリ法用乗算剰余計算装置
EP1330702B1 (en) Method and system of using an insecure crypto-accelerator
EP0899907B1 (en) Apparatus for processing bivectors and encrypting system including the same
US6480606B1 (en) Elliptic curve encryption method and system
US6993136B2 (en) Cryptographic key exchange method using efficient elliptic curve
JP2003098962A (ja) 楕円曲線スカラー倍計算方法及び装置並びに記録媒体
JP2000132376A (ja) 剰余演算方法,乗算剰余演算方法,剰余演算装置,乗算剰余演算装置及び記録媒体
JP4177526B2 (ja) 乗算剰余演算方法および乗算剰余回路
JP4690819B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
JP3616897B2 (ja) モンゴメリ法による乗算剰余計算装置
Pandey et al. An RNS implementation of the elliptic curve cryptography for IoT security
JP3615405B2 (ja) 素体上楕円曲線上の点の演算方法およびその装置
KR100340102B1 (ko) 알에스에이 공개키 암호 고속화 장치 및 방법
JP3797808B2 (ja) スカラー倍算方法およびその装置
JP2000137436A (ja) 素体上楕円曲線上の点の演算方法およびその装置
JP2005055488A (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040427

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040624

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040713

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040913

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040924

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041026

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041029

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081112

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081112

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091112

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101112

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101112

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111112

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111112

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121112

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121112

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131112

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees