JPH11242434A - 楕円曲線暗号実行方法及び暗号処理システム - Google Patents

楕円曲線暗号実行方法及び暗号処理システム

Info

Publication number
JPH11242434A
JPH11242434A JP10044851A JP4485198A JPH11242434A JP H11242434 A JPH11242434 A JP H11242434A JP 10044851 A JP10044851 A JP 10044851A JP 4485198 A JP4485198 A JP 4485198A JP H11242434 A JPH11242434 A JP H11242434A
Authority
JP
Japan
Prior art keywords
elliptic curve
point
prime
cipher
public key
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
JP10044851A
Other languages
English (en)
Inventor
Hiroyuki Kurumaya
博之 車谷
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP10044851A priority Critical patent/JPH11242434A/ja
Priority to EP99103480A priority patent/EP0952697B1/en
Priority to DE69924912T priority patent/DE69924912T2/de
Priority to US09/255,858 priority patent/US6480606B1/en
Publication of JPH11242434A publication Critical patent/JPH11242434A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/728Methods 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 using Montgomery reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】楕円曲線暗号の実行方法としては、Chudnovsky
の同次座標による方法が知られているが、より高速な処
理を行うため剰余演算を高速にする必要がある。 【解決手段】従来の問題を解決するため、加算演算には
高速な[ X1, Y1, Z1, (Z1)2, (Z1)3]を使用し、2倍演
算では高速な[ X1, Y1, Z1]を使用するため、次の手段
を用いる。 (1)加算方法:[X3,Y3,Z3]=[X1,Y1,Z1,(Z1)2,(Z1)3]
+[X2,Y2,Z2]を実行する。 (2)2倍点の計算を従来の[ X3, Y3, Z3]=2[ X1, Y1,
Z1]で実行し、加算を[ X3, Y3, Z3]=[ X1, Y1, Z1, (Z
1)2, (Z1)3]+[ X2, Y2, Z2]で実行する。さらに、多倍
長乗算剰余演算も高速にする必要がある。モンゴメリ乗
算剰余演算の高速化のため、定義体位数(素数)を以下
のような形式とする事により、剰余演算を高速化する。 (3)p=Abn+B(0<A<2w ; 0<B<2w ; b=2w ; wは正の整
数)形式の素数を用いることにより、多倍長剰余算を高
速に実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータネッ
トワークにおいてけるセキュリティを確保する技術に関
し、特に楕円曲線を利用した暗号技術に関する。
【0002】
【従来の技術】楕円曲線暗号は、V.Miller, N.Koblitz
両氏によって、独立に発明された公開鍵暗号である。公
開鍵暗号技術とは、暗号化された情報をやりとりする二
者間で、第三者に秘密の暗号鍵(秘密鍵)を共有する暗
号方式(共通鍵暗号技術)における安全上の短所(秘密
鍵を共有する段階での安全性の低下)を補う暗号方式と
して生み出されたものであり、個人が持ち他人には公開
しない秘密鍵と、その秘密鍵を基に数学的計算を施して
得られる公開鍵と呼ばれる他人に公開する暗号鍵の対、
即ち、秘密鍵と公開鍵の対を用いる暗号方式である。
【0003】その公開鍵暗号方式の特徴としては、ある
人の公開鍵で暗号化された文書は、その人の(公開鍵と
対になっている)秘密鍵でしか復号化できない、という
特徴がある。この特徴は、文書を第三者に秘匿して相手
に送付する場合に利用できる。例えば、A氏がB氏に暗
号化した文書を送付する場合、公開されているB氏の公
開鍵を使用して暗号化した文書をB氏に送付する。この
暗号化された文書を復号化できるのはB氏の公開鍵と対
になっているB氏の秘密鍵だけであり、B氏だけが自分
のその秘密鍵を使用して元の文書に復元することができ
る。
【0004】また、ある人の秘密鍵で暗号処理された文
書は、その人の(秘密鍵と対になっている)公開鍵を用
いて、確かに秘密鍵で処理されたことを確認できる。こ
れはディジタル署名に利用できる。即ち、ディジタル署
名は、署名対象の文書に対してある種の計算を施して得
られたデータを署名者の秘密鍵で暗号処理したものであ
るが、例えば、A氏が作成したディジタル署名が真正か
否かの検証は、そのディジタル署名をA氏の公開鍵で暗
号処理して得られるデータと、署名の対象となった元の
文書に対して暗号処理を施して得られるデータが一致す
るか否かにより可能となる。一致すれば、そのディジタ
ル署名がA氏の真正の署名であることが検証できるとと
もに、そのディジタル署名が付された文書が改竄されて
いないことも検証できる。この特長は、インターネット
などのネットワークにおいて、本人認証、偽造防止に利
用できる。前者は、悪意を持った人物が他人に成りすま
して、商品を購入する行為の防止に用いる。後者は、売
買契約書や領収書の金額の偽造を防ぐことに利用でき
る。
【0005】公開鍵暗号技術において安全上からの要請
として、他人に公開される公開鍵から、それに対応する
秘密鍵を発見することが事実上不可能であることが求め
られる。その一方で、秘密鍵暗号方式に比べて基本的に
暗号化や復号化に時間のかかる公開鍵暗号方式におい
て、暗号化や復号化におけるより高速のものが求められ
ている状況にある。このように、安全性と高速性とい
う、ある意味で背反的な要請を実現する公開鍵暗号技術
として、従来からのRSA暗号やエルガマル暗号に比べ
てより上述の性質を有する楕円曲線暗号が注目されてき
ている。
【0006】楕円曲線は標数5以上の有限体上の、楕円
曲線の標準形 y2=x3+ax+b (4a+27b≠0)で表され
る。この曲線上の点に、無限遠点を加えると、アーベル
群が成立する。このアーベル群演算を+記号で表現す
る。
【0007】暗号で使用する楕円曲線は、次のWeierstr
assの標準形に代表される。
【0008】 0:単位元(楕円曲線の2次元射影平面上の無限遠点) (x,y):楕円曲線上の点 0 + 0 = 0 2) (x,y) + 0 = (x,y) 3) (x,y) + (x,-y) = 0 4) 可換性 (x1,y1) + (x2,y2) = (x2,y2) + (x1,y1) 5) 加算演算 (x3,y3) = (x1,y1)+ (x2,y2) x3 = λ2 - x1 - x2 ; y3 = λ(x1 - x3) - y1; λ=
(y2-y1)/(x2-x1) 6) 2倍演算 (x3,y3) = (x1,y1) + (x1,y1) = 2(x1,y
1) x3 = λ2 - 2*x1 ; y3 = λ(x1 - x3) - y1; λ= (3*x
12 + a)/(2*y1) 楕円曲線暗号は、有限体上の楕円曲線を用いて、その有
限体となる点の集合を用いる。
【0009】有限体は、素数pを法とする整数の剰余の
集合Fpを用いる。 Fp={0,1,...., p-1} 有限体の位数は、有限体の要素数である。楕円曲線の位
数は、楕円曲線の点の数である。
【0010】以下、Pをs回加算(P + P + … + P)
した結果をPのs倍点といい、これを求める演算をsPと
書く。
【0011】楕円曲線上の点Pの位数は、nP = 0, 1<=
m<n, mP ≠0、となるnである。
【0012】楕円曲線暗号の鍵は、以下の楕円曲線、ベ
ースポイント、公開鍵、秘密鍵から構成される。 ・楕円曲線の係数a,b ・ベースポイント:位数が素数である点P ・秘密鍵:有限体要素d ・公開鍵:ベースポイントの秘密鍵倍の点Q (Q=d
P) 楕円曲線、ベースポイント、公開鍵は公開情報である。
公開鍵/秘密鍵は、ユーザ毎に異なる値であり、楕円曲
線、ベースポイントは、ユーザ間共通の値である。
【0013】楕円曲線暗号における、データ暗号化、デ
ータ復号化、ディジタル署名作成、ディジタル署名検証
は、任意の点Rのスカラ倍sR演算を用いる。これは、
上記の加算演算と2倍演算の組合せで、求めることがで
きる。ところが、上記の加算演算と2倍演算計算法にお
いては、それぞれ1回の除算が必要である。ところが、
一般に有限体の除算は非常に時間がかかるため、これを
避ける方法が求められる。
【0014】文献 D.V.Chudnovsky, G.V.Chudnovsky "
Sequences of Numbers Generated by Addtion in Forma
l Groups and New Primality and Facorization Test
s", Advances in Applied Mathematics, 7, 385-434,19
86によれば、この有限体の除算を避けるため、射影空間
で、加算演算、2倍演算の式を導出している。これを以
下に示す。
【0015】< Chudnovskyの式1> 加算演算 : [X3, Y3, Z3]=[ X1, Y1, Z1]+[ X2, Y2,
Z2] X3=-( U1+ U2)P2+R2 ; 2Y3=R(-2R2+3P2(U1+ U2))-P3( S1+ S2) Z3= Z1Z2P U1=X1(Z2)2 ; U2=X2(Z1)2 ; S1= Y1(Z2)3 ; S2= Y2(Z1)
3;P=U2-U1 ; R=S2-S1 2倍演算 : [ X3, Y3, Z3]=2[ X1, Y1, Z1] X=T Y=-8((Y1)2)2+M( S-T ) Z=2Y1Z1 S=4X1(Y1)2 ; M=3(X1)2+a((Z1)2)2 ; T=-2S+M2 ; a=-3の場合、 M=3(X1-(Z1)2)(X1+(Z1)2); a=0の場合、 M=3(X1)2; 上記の、X1, Y1, Z1 は有限体要素であり、これらのデ
ータは、多倍長整数(2160以上の)で表現できる。
【0016】この場合、多倍長乗算剰余演算と、多倍長
加減算では多倍長乗算剰余演算が通常、遥かに時間がか
かるため、乗算剰余演算数で、計算時間を評価できる。
この場合、加算演算で、乗算剰余演算が16回必要であ
る。2倍演算において、10回必要である、と述べてい
る。また、楕円曲線の係数aにおいても、a=-3の場合、
8回の乗算剰余演算となるとしている。なお、a= 0の場
合は、8回必要とする。
【0017】また、さらに続けて、[ X1, Y1, Z1, (Z1)
2, (Z1)3] という表現を用いる方法が示されている。こ
れを以下に記述する。
【0018】< Chudnovskyの式2> 加算演算: [ X1, Y1, Z1, (Z1)2, (Z1)3]=[ X1, Y1, Z1, (Z1)2,
(Z1)3]+[ X2, Y2, Z2, (Z2)2, (Z2)3] 2倍演算: [ X3, Y3, Z3, (Z3)2, (Z3)3]=2[ X1, Y1, Z1, (Z1)2,
(Z1)3] この場合、加算演算で、乗算剰余演算が14回必要であ
る。2倍演算において、11回必要である、と述べてい
る。また楕円曲線の係数aにおいても、a=-3の場合9回
の乗算剰余演算となるとしている。なおa= 0の場合は9
回必要とする。
【0019】加算演算は、< Chudnovskyの式2>が高速
であり、2倍演算は、< Chudnovskyの式1>が高速であ
る。
【0020】上記の多倍長乗算剰余演算には、モンゴメ
リ剰余演算などが知られている。これらは、文献A.Mene
zes, P.Oorschot, S.Vanstone, "Handbook of Appied C
ryptograpy",CRC Press,p.600(1996)の14.3節 Multiple
-precision modular arithmeticに記述されている。
【0021】ここで、この文献に記述されているモンゴ
メリ剰余算を説明する。
【0022】入力:p=( pn-1,… ,p2,p1 ), gcd(p,b)=
1, R=bn, p'=-1/p mod b, T=(t2n-1,… ,t1, t0 )<pR,
b=2w pは、剰余をとる法。 0<=pi<b。0<= ti<b。、wは正整
数。Tはp未満の整数x,yを乗算した結果である。
【0023】出力をT/R (mod p)とする。
【0024】 ステップ1:A←T ステップ2:iを0から(n-1)まで次のステップ2.1, 2.2
を実行する。 ステップ2.1:ui←aip' mod b ステップ2.2:A←A+uipbi ステップ3:A←A/bn ステップ4:もしA>=pならば、A←A-p ステップ5:Aが出力結果である。
【0025】楕円曲線暗号に用いる楕円曲線は、素数p
を位数とする素体Fpを定義体とする楕円曲線y2=x3+ax
+bである。安全な楕円曲線とするためには、楕円曲線
の位数#E(Fp)が大きな素因数rを持つパラメタa,bを設定
する必要がある。#E(Fp)=krで、k:小さな整数、r大きな
素数となる。
【0026】その位数大きな素因数を持つ楕円曲線のパ
ラメタの設定方法は、文献Henri Cohen, "A Cource in
Computational Algebraic Number Theory",GTM138, Spr
inger(1993) p.464 Atkin's Testで記述されている。
【0027】上記素数pの生成に用いる素数判定法とし
ては、Miller-Rabin素数判定法がよく知られている。こ
れは文献A.Menezes, P.Oorschot, S.Vanstone, "Handbo
ok of Appied Cryptograpy",CRC Press,p.139(1996)4.
1.3節に記述されている。
【0028】特定の素数を用いた楕円曲線暗号方法とし
ては、米国特許第5271061号公報,及び米国特許第546369
0号公報に記載された方法がある。これら特許は、有限
体Fq,q=pk、即ち素数pのk次拡大体を定義体とする楕
円曲線暗号において、素数pが「 p=2e-α ; eは正の整
数 ; α<232 または α=1」の形式の素数を用いた技術
が開示されている。点Pのs倍点を求める演算は、整数a
をe乗するべき乗剰余演算と類似している。このべき乗
演算の高速化手法としては、スライディングウィンドウ
メソッドが知られている。これは、文献A.Menezes, P.O
orschot, S.Vanstone, "Handbook of Appied Cryptogra
py", CRC Press, p.616(1996) 14.6.1節(ii) "Sliding
-window exponentiation"に記述されている。
【0029】
【発明が解決しようとする課題】上記文献1において
は、< Chudnovskyの式1>、< Chudnovskyの式2>のどち
らを選んでも、高速実行には不満である。我々は、加算
演算は< Chudnovskyの式2>の効率を持ち、2倍演算は<
Chudnovskyの式1>の効率を持つ演算方法を望む。
【0030】さらに、高速にするためには、< Chudnovs
kyの式1>や< Chudnovskyの式2>に現れる多倍長乗算剰
余演算を高速にする必要がある。
【0031】
【課題を解決するための手段】上記、従来の問題を解決
するため、加算演算には高速な[ X1, Y1, Z1, (Z1)2,(Z
1)3]を使用し、2倍演算では高速な[ X1, Y1, Z1]を使
用するため、次の手段を用いる。
【0032】(1)加算方法:[X3,Y3,Z3]=[X1,Y1,Z1,
(Z1)2,(Z1)3]+[X2,Y2,Z2]を実行する。
【0033】(2)2倍点の計算を従来の[X3,Y3,Z3]=2
[ X1, Y1, Z1]で実行し、加算を[X3,Y3,Z3]=[X1,Y1,Z1,
(Z1)2,(Z1)3]+[X2,Y2,Z2]で実行する。
【0034】さらに、多倍長乗算剰余演算も高速にする
必要がある。モンゴメリ乗算剰余演算の高速化のため、
定義体位数(素数)を以下のような形式とする事によ
り、剰余演算を高速化する。
【0035】(3)p=Abn+B(0<A<2w ; 0<B<2w ; b=2
w ; wは正の整数)形式の素数を用いることにより、多
倍長剰余算を高速に実行する。
【0036】
【発明の実施の形態】図1は、第1の実施例を示す図で
ある。図1で説明する楕円曲線暗号処理システムは、本
発明が適用される暗号化/複合化を実行するためのシス
テムを説明するものである。
【0037】楕円曲線生成部101で楕円曲線暗号に使
用する楕円曲線を生成する。公開鍵/秘密鍵生成部10
2は、101で生成した楕円曲線を入力し、これに基づ
いて公開鍵116と秘密鍵117を生成する。公開鍵1
16は、従来の公開鍵暗号方式と同様にネットワーク
(本図では省略)などで配布される。
【0038】暗号化部103では、平文113、公開鍵
116を入力して暗号文114を出力する。暗号化部1
03は、本発明が適用された楕円曲線暗号に基づき暗号
化部103が動作する演算装置を有する機器上であれ
ば、コンピュータ以外の電子機器に設けられてもよい。
【0039】復号化部104は、暗号文114と秘密鍵
117を入力し、平文115を出力する。ここで出力す
る平文115は平文103と同一のものである。複合化
部104も暗号化部103と同様に、本発明が適用され
た楕円曲線暗号に基づき暗号化部103が動作する演算
装置を有する機器上であれば、コンピュータ以外の電子
機器に設けられてもよい。
【0040】楕円曲線生成部101の素数生成部105
では以下の手順で素数pを生成する。 1:乱数p生成する。次へ行く。 2: Miller-Rabin素数判定法でpの素数を判定する。素
数と判定されれば、終了。合成数ならば、1へ戻る。 他の素数判定法を用いても本発明の実施は可能である。
【0041】楕円曲線パラメタ設定106は、101で
生成した素数pを位数とする素体Fpを定義体とする楕円
曲線y2=x3+ax+bのパラメタa,bを設定する。安全な楕
円曲線とするためには、楕円曲線の位数#E(Fp)が大きな
素因数rを持つ必要がある。#E(Fp)= kr で、k:小さな
整数、r大きな素数となる。
【0042】文献Henri Cohen, "A Cource in Computat
ional Algebraic Number Theory",GTM138, Springer(19
93) p.464 Atkin's Testで記述された方法を用いて、大
きな素因数rを位数に持つ楕円曲線を生成する。なお、
他の楕円曲線の位数が大きな素因数rを持つ楕円曲線パ
ラメタ設定法を用いても本発明の実施は可能である。
【0043】ベースポイント生成部107は、楕円曲線
上のアーベル群において、上記rを位数とする部分巡回
群の生成元を求める。#E(Fp)=krとなる場合、 1:E(Fp)上の任意の点(x1,y1)を求める。 2:r(x1,y1) =0かつk(x1,y1) ≠0 の場合、G=(x1,y1)
がベースポイントである。他の場合、1へ戻る。
【0044】ここで、r(x1,y1)は、(x1,y1)のスカラー
倍(r倍)演算を実行する。これは楕円曲線演算部109
で説明する。
【0045】以上、101により、定義体位数p、楕円
曲線y2=x3+ax+bのパラメタa,b、ベースポイント
G、ベースポイントの位数rを生成した。これらは公開
する情報である。
【0046】公開鍵/秘密鍵生成部102は、以下の手
順で公開鍵と秘密鍵を生成する。
【0047】 入力:定義体位数p、楕円曲線y2=x3+ax+bのパラメタ
a,b、ベースポイントG 出力:公開鍵Q、秘密鍵d 1:乱数2<d<p-1を生成する。 2:Q= dG Gのスカラ倍(d倍)点を求める。これは楕円
曲線演算部109で説明する。
【0048】公開鍵は、公開する情報であり、秘密鍵は
秘密にする情報である。Q,Gからdを求める問題は、離散
対数問題といわれるものであり、楕円曲線において、ベ
ースポイントの位数rのビット長の指数オーダの計算量
を必要とする。このため、rが大きな素数であれば例え
ば、r> 2の159乗をとれば、事実上、Q,Gからdを求め
ることはできなくなる。これが楕円曲線暗号の原理であ
る。
【0049】暗号化部103では、以下の手順で平文1
13を暗号文114に変換する。 入力:平文M、公開鍵Q、定義体位数p、楕円曲線y2=x
3+ax+bのパラメタa,b、ベースポイントG 出力:暗号文C ステップ1:乱数kを生成する(乱数生成部108) ステップ2:(x1,y1)= kG (楕円曲線演算部109) ステップ3:(x2,y2)= kQ (楕円曲線演算部109) ステップ4:M' = M xor x2 (データ暗号化110) ステップ5:暗号文 C= x1 || y1 || M' (データ暗
号化110) 楕円曲線生成部109は、任意の点Rのスカラ倍kR演算
を行う。
【0050】本部分は、加算方法は[ X3, Y3, Z3]=[
X1, Y1, Z1, (Z1)2, (Z1)3]+[ X2, Y2, Z2]を実行し、
2倍点の計算を従来の[ X3, Y3, Z3]=2[ X1, Y1, Z1]で
実行する例を実施したものであり、この方法を図2を用
いて説明する。ステップ2とステップ3は図2を用いて
実行する。入力はk、R=[ X1, Y1, Z1]、出力はkRとす
る。ステップ201で、処理をはじめる。ステップ20
2で、k, [ X1, Y1, Z1]を入力する。ステップ203
で、Hm,....H0は、kの2進数表現とする。ステップ2
04で、[ Xk, Yk, Zk]←[ X1, Y1, Z1]; j←m ;
(Z1)2, (Z1)3を求める。ステップ205で、j←j−1
とする。ステップ206で、変数jをmから1まで、降
べき順にステップ206、207、208を繰返ため、
j==0を判定する。j==0ならばステップ210へ、そうで
なければステップ207へいく。ステップ207で、[
Xk, Yk, Zk]←2[ Xk, Yk, Zk]とする。ステップ208
で、Hj==0を判定する。0ならばステップ209へ、1
ならば205へ行く。ステップ209で、[ Xk, Yk,
Zk]←[ Xk, Yk, Zk]+[ X1, Y1, Z1, (Z1)2, (Z1)3]とす
る。ステップ210で、Eiを出力する。ステップ21
1で、処理が終わる。
【0051】復号化部104では、以下の手順で暗号文
114を元の平文115に変換する。113と115は
同一の平文になる。
【0052】入力は、暗号文 C= x1 || y1 || M'、秘
密鍵d、定義体位数p、楕円曲線y2=x3+ax+bのパラメ
タa,b、ベースポイントG、出力は平文Mとする。 ステップ1:(x2,y2)= k(x1, y1) (楕円曲線演算部1
11) ステップ2:平文 M = M' xor x2 ステップ1は図2を用いて実行する。次に、第2の実施
例を説明する。第2の実施例は、図1の素数生成部10
1において、特定の素数を生成することにより、高速実
行を可能とする例であり、p=Abn+B( 0<A<2w ; 0<B<2
w ; b=2w ; wは正の整数)形式の素数を用いることによ
り、多倍長剰余算を高速に実行する例である。第1実施
例と第2実施例はそれぞれ独立に実施してよい。また、
組合わせるといっそう高速実行を可能とする。
【0053】p=Abn+B形式とする定義体位数(素数)を
用いることにより、多倍長整数乗算剰余演算に用いられ
るモンゴメリ乗算剰余演算を高速に実行する。この方法
を図3を用いて説明する。ステップ301で、処理をは
じめる。ステップ302で、b,nを入力する。ステップ
303で、乱数p=Abn+Bを生成する。次へ行く。ステッ
プ304で、pの素数を判定する。ここではMiller-Rabi
n素数判定法を用いる。素数と判定すればステップ30
5へ、合成数ならば、ステップ303へ戻る。ステップ
305で、pを出力する。ステップ306で、処理を終
わる。
【0054】この形式の素数の場合、従来の技術で説明
したモンゴメリ剰余算において、 ステップ2.2:A←A+uipbiにおいてpとの乗算が高速にな
る。
【0055】従来の演算では、すべてのpiとuiを乗算演
算するが、本発明の素数では、最上位のpn=Aと最下位の
p0=Bのみ乗算演算すれば良い。本発明の素数では、最上
位と最下位を除く、piは0である。例えば、w=32,n=5の
場合、図5で示すように最上位の32ビットである501
と最下位の32ビットである505を除いて、502、5
03、504が0となる。0とuiの計算手間を省くこと
ができる。
【0056】次に、第3の実施例を説明する。第3の実
施例は、図1の素数生成部101において、p=Abn+1形
式の素数を生成することにより、より高速実行を可能と
する例である。図3の素数の特別な例となっている。図
3に比べて最下位のp0の乗算は1×p0なので必要ではな
く、最上位のpnとのみ乗算演算すれば良い。例えば、w=
32,n=5の場合、図6で示すように最上位の32ビットであ
る601とのみ乗算演算を行う。602、603、60
4が0となる。0とuiの計算手間を省くことができる。
最下位の605は1であるので、やはり乗算結果は必ず
ui となり乗算を更に省くことができる。この方法を図
4を用いて説明する。
【0057】ステップ401で、処理を始める。ステッ
プ402で、b,nを入力する。ステップ403で、乱数p
=Abn+1を生成する。次へ行く。ステップ404で、pの
素数を判定する。本実施例ではMiller-Rabin素数判定法
を用いる。素数と判定されれば、ステップ405へ、合
成数ならば、ステップ403へ戻る。ステップ405
で、pを出力する。ステップ406で、処理を終わる。
【0058】次に、第4の実施例を説明する。第4の実
施例は、図1の楕円曲線実行部109において、より高
速実行を可能とする例である。スライディングウィンド
ウメソッドを点Pのs倍点演算に用い、加算方法は[X3
, Y3, Z3] =[X1 , Y1, Z1, (Z1)2 , (Z1)3] + [X2
, Y2, Z2]を実行し、2倍点の計算を従来の[X3 , Y3 ,
Z3 ] = 2[X1 , Y1, Z1]で実行する例を説明する。
【0059】文献A.Menezes, P.Oorschot, S.Vanstone,
"Handbook of Appied Cryptograpy",CRC Press, p.616
(1996) 14.6.1節(ii) "Sliding-window exponentiatio
n"に記述されているアルゴリズムを以下に説明する。
【0060】<Sliding-window exponentiation> 入力:g,e=(et et-1 ,,, e1 e0) et=1, k(整数) 出力:ge 前計算 g1←1 ; g2←g2 ; iを1から(2k-1-1)まで、 g2i+1←g2i-1*g2とする。 ステップ1:A ←1; i← t ; ステップ2:i >= 0 の間 以下のステップを行う。 ステップ21: et=0の場合、A←A2 ; i←i-1; ステップ22:そうでない場合、もっとも長いビットスト
リングetet-1,,,elであり、かつi-l+1 <= kかつ el =1
を見つけ出し、A←A2*g(etet-1,,,el) ; i←l-1;を行
う。
【0061】このアルゴリズムを応用し、本発明の加算
方法を用いて、ePを求めるアルゴリズムを以下に述べ
る。
【0062】<スライディングウィンドウメソッドを用
いた点Pのe倍点演算を計算> 入力:点P,e=(et et-1 ,,, e1 e0) et=1, k(整数) 出力:eP 前計算 P1 ←P; P2 ← 2P ; iを1から(2k-1-1)まで、 P2i+1←P2i-1+P2とする。 ステップ1:A←P ; i←t; ステップ2:i >= 0 の間 以下のステップを行う。 ステップ21: et=0の場合、A←2A ; i←i-1; ステップ22:そうでない場合、もっとも長いビットスト
リングetet-1,,,elであり、かつi-l+1 <= kかつ el=1
を見つけ出し、A ← 2A + P(etet-1,,,el) ; i←l-1;を
行う。
【0063】このアルゴリズムの前計算において、各P
2i+1を[ X1, Y1, Z1, (Z1)2, (Z1)3]で表現する。ステ
ップ21、とステップ22の A←2A計算を[ X3, Y3, Z3]=2
[ X1,Y1, Z1]で行う。また、ステップ22の 2A+P(e
tet-1,,,el)という加算 "+" を[ X3, Y3, Z3]=[ X2,
Y2, Z2]+[ X1, Y1, Z1, (Z1)2, (Z1)3]で実行する。
【0064】以上説明した実施例は、本発明を図3、図
4、図5はソフトウェアで実施した例であるが、本発明を
電子回路で実施できることは明らかである。
【0065】本発明の各実施例によって、従来より高速
に楕円曲線暗号におけるデータ暗号処理、及び暗号デー
タ復号処理を実現できる。また、本発明の各実施例を用
いることで、楕円曲線暗号を用いたディジタル署名作成
処理、及びディジタル署名検証処理を高速に実行できる
ことは、当業者によれば明らかである。
【0066】本発明を適用した各実施例により説明した
ように、楕円曲線暗号において、加算演算には高速な[X
1,Y1,Z1,(Z1)2,(Z1)3]を使用し、2倍演算では高速な[X
1,Y1,Z1]を使用することにより、次の効果がある。
【0067】(1)加算方法:[X3,Y3,Z3]=[X1,Y1,Z1,
(Z1)2,(Z1)3]+[X2,Y2,Z2]で楕円曲線の加算演算を多倍
長整数乗算剰余演算14回で実行できる。
【0068】(2)任意の点のスカラー倍演算におい
て、いわゆるウィンドウメソッドを用いて、セグメント
を[X1,Y1,Z1,(Z1)2,(Z1)3]で表現することにより、上記
14回の加算方法を用いることができる。
【0069】(3)2倍点の計算を従来の[X3,Y3,Z3]=2
[X1,Y1,Z1]で実行することにより、10回(a=-3の場合
8回)で実行できる。
【0070】
【発明の効果】本発明により、従来より高速に楕円曲線
暗号におけるデータ暗号処理、及び暗号データ復号処理
を実現でき、また、ディジタル署名作成処理、及びディ
ジタル署名検証処理を高速に実行できる。
【図面の簡単な説明】
【図1】本発明の第1の実施例を示す楕円曲線暗号実行
方法説明図である。
【図2】本発明の第1の実施例を示す楕円曲線暗号実行
方法において楕円曲線演算を実行するフローチャートで
ある。
【図3】本発明の第2の実施例を示す楕円曲線暗号実行
方法を高速に実行するための素数生成方法のフローチャ
ートである。
【図4】本発明の第3の実施例を示す楕円曲線暗号実行
方法を高速に実行するための素数生成方法のフローチャ
ートである。
【図5】本発明の第2の実施例における素数説明図であ
る。
【図6】本発明の第3の実施例における素数説明図であ
る。
【符号の説明】
101 楕円曲線生成部 102 公開鍵/秘密鍵生成部 103 暗号化部 104 復号化部 105 素数生成部 106 楕円曲線パラメタ設定 107 ベースポイント生成部 108 乱数生成部 109 楕円曲線演算部 111 楕円曲線演算部 110 データ暗号化処理部 112 データ復号化処理部 113 平分 115 平文 114 暗号文

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】素体上の楕円曲線に基づく、楕円曲線暗号
    実行方法において、楕円曲線上の点を同次座標で表現す
    るとき、点を[X3,Y3,Z3]と[X1,Y1,Z1,(Z1)2,(Z1)3]で表
    現し、点の加算方法として [X3,Y3,Z3]=[X1,Y1,Z1,(Z1)2,(Z1)3]+[X2,Y2,Z2] を用い、点の2倍方法として [X3,Y3,Z3]=2[X1,Y1,Z1] を用ることを特徴とする楕円曲線暗号実行方法。
  2. 【請求項2】素体上の楕円曲線に基づく、楕円曲線暗号
    実行方法において、素体の位数である素数pの形式が、 p=Abn+B ( 0<A<2w; 0<B<2w; b=2w; wは正の整数) であることを特徴とする楕円曲線暗号実行方法。
  3. 【請求項3】素体上の楕円曲線に基づく、楕円曲線暗号
    実行方法において、素体の位数である素数pの形式が p=Abn+1 ( 0<A<2w; 0<B<2w; b=2w; wは正の整数) であることを特徴とする請求項1記載の楕円曲線暗号実
    行方法。
  4. 【請求項4】素体上の楕円曲線に基づく、楕円曲線暗号
    を実行する暗号処理システムにおいて、楕円曲線上の点
    を同次座標で表現するとき、点を[X3,Y3,Z3]と[X1,Y1,Z
    1,(Z1)2,(Z1)3]で表現し、点の加算方法として [X3,Y3,Z3]=[X1,Y1,Z1,(Z1)2,(Z1)3]+[X2,Y2,Z2] を用い、点の2倍方法として [X,Y,Z]=2[X,Y,Z] を用ることを特徴とする暗号処理システム。
  5. 【請求項5】素体上の楕円曲線に基づく、楕円曲線暗号
    を実行する暗号処理システムにおいて、素体の位数であ
    る素数pの形式が p=Abn+B ( 0<A<2w; 0<B<2w; b=2w; wは正の整数) であることを特徴とする暗号処理システム。
  6. 【請求項6】素体上の楕円曲線に基づく、楕円曲線暗号
    を実行する暗号処理システムにおいて、素体の位数であ
    る素数pの形式が、 p=Abn+1 ( 0<A<2w; 0<B<2w; b=2w; wは正の整数) であることを特徴とする請求項1記載の暗号処理システ
    ム。
JP10044851A 1998-02-26 1998-02-26 楕円曲線暗号実行方法及び暗号処理システム Pending JPH11242434A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP10044851A JPH11242434A (ja) 1998-02-26 1998-02-26 楕円曲線暗号実行方法及び暗号処理システム
EP99103480A EP0952697B1 (en) 1998-02-26 1999-02-23 Elliptic curve encryption method and system
DE69924912T DE69924912T2 (de) 1998-02-26 1999-02-23 Verschlüsselungsverfahren und Vorrichtung unter Verwendung einer elliptischen Kurve
US09/255,858 US6480606B1 (en) 1998-02-26 1999-02-23 Elliptic curve encryption method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10044851A JPH11242434A (ja) 1998-02-26 1998-02-26 楕円曲線暗号実行方法及び暗号処理システム

Publications (1)

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

Family

ID=12702992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10044851A Pending JPH11242434A (ja) 1998-02-26 1998-02-26 楕円曲線暗号実行方法及び暗号処理システム

Country Status (4)

Country Link
US (1) US6480606B1 (ja)
EP (1) EP0952697B1 (ja)
JP (1) JPH11242434A (ja)
DE (1) DE69924912T2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200225B1 (en) * 1999-11-12 2007-04-03 Richard Schroeppel Elliptic curve point ambiguity resolution apparatus and method
JP4284867B2 (ja) * 2001-01-18 2009-06-24 株式会社日立製作所 標準モデル上で適応的選択暗号文攻撃に対して安全な公開鍵暗号方法
JP3820909B2 (ja) * 2001-04-24 2006-09-13 ソニー株式会社 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム
FR2828779B1 (fr) * 2001-08-17 2004-01-16 Gemplus Card Int Procede de calcul universel applique a des points d'une courbe elliptique
US7372960B2 (en) * 2001-12-31 2008-05-13 Certicom Corp. Method and apparatus for performing finite field calculations
JP4034585B2 (ja) * 2002-01-28 2008-01-16 松下電器産業株式会社 楕円曲線演算装置及び楕円曲線演算方法
JP4611305B2 (ja) * 2003-10-03 2011-01-12 パナソニック株式会社 情報伝達システム、暗号装置及び復号装置
JP4688886B2 (ja) * 2006-01-11 2011-05-25 三菱電機株式会社 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号システム及び楕円曲線暗号パラメータ生成プログラム
US7991162B2 (en) * 2007-09-14 2011-08-02 University Of Ottawa Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields
US8781112B2 (en) * 2007-11-02 2014-07-15 Certicom Corp. Signed montgomery arithmetic
US10148285B1 (en) 2012-07-25 2018-12-04 Erich Schmitt Abstraction and de-abstraction of a digital data stream
US10795858B1 (en) 2014-02-18 2020-10-06 Erich Schmitt Universal abstraction and de-abstraction of a digital data stream
US9645794B2 (en) * 2014-09-23 2017-05-09 Texas Instruments Incorporated Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography
US9531531B2 (en) * 2015-05-06 2016-12-27 Qualcomm Incorporated Methods and devices for fixed execution flow multiplier recoding and scalar multiplication
US11146397B2 (en) * 2017-10-31 2021-10-12 Micro Focus Llc Encoding abelian variety-based ciphertext with metadata
CN117423470B (zh) * 2023-10-30 2024-04-23 盐城市第三人民医院 一种慢性病临床决策支持系统及构建方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307935B1 (en) * 1991-09-17 2001-10-23 Apple Computer, Inc. Method and apparatus for fast elliptic encryption with direct embedding
US5271061A (en) * 1991-09-17 1993-12-14 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
US5442707A (en) * 1992-09-28 1995-08-15 Matsushita Electric Industrial Co., Ltd. Method for generating and verifying electronic signatures and privacy communication using elliptic curves
JPH0756506A (ja) * 1993-08-11 1995-03-03 Nippon Telegr & Teleph Corp <Ntt> 楕円曲線に基づく暗号の鍵生成装置
US6088453A (en) * 1997-01-27 2000-07-11 Kabushiki Kaisha Toshiba Scheme for computing Montgomery division and Montgomery inverse realizing fast implementation

Also Published As

Publication number Publication date
EP0952697A3 (en) 2003-05-14
DE69924912T2 (de) 2006-03-30
EP0952697A2 (en) 1999-10-27
DE69924912D1 (de) 2005-06-02
EP0952697B1 (en) 2005-04-27
US6480606B1 (en) 2002-11-12

Similar Documents

Publication Publication Date Title
US6876745B1 (en) Method and apparatus for elliptic curve cryptography and recording medium therefore
EP3459203B1 (en) Method and device to protect a cryptographic exponent
JPH11242434A (ja) 楕円曲線暗号実行方法及び暗号処理システム
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
JP2004501385A (ja) 楕円曲線暗号化方法
Rososhek Modified matrix modular cryptosystems
Jeng et al. An ECC-based blind signature scheme
US7062043B1 (en) Method of elliptic curve digital signature using coefficient splitting
Daniel et al. A forward secure signcryption scheme with ciphertext authentication for e-payment systems using conic curve cryptography
Mohapatra Public key cryptography
Gligoroski Stream cipher based on quasigroup string transformations in $ Z_p^* $
Vincent et al. A Novel and efficient public key encryption algorithm
Thiers et al. Side channel attack resistance of the elliptic curve point multiplication using Eisenstein integers
Sayid et al. Certificateless public key cryptography: A research survey
Rao Valluri et al. Public key authentication scheme over quaternions
JP4598269B2 (ja) 楕円曲線上の高速有限体演算
KR100341507B1 (ko) 빠른 유한체 연산을 이용한 타원곡선 암호화 방법 및 전자서명 방법
WO2004070681A2 (ja) 楕円曲線スカラー倍計算方法および装置
JPH02273779A (ja) ディジタル署名装置
Subrahmanyam et al. Signcryption Using ECDSA and Paillier Cryptosystem
Somsuk The alternative Method to Finish Modular Exponentiation and Point Multiplication Processes
Su et al. ID-based threshold digital signature schemes on the elliptic curve discrete logarithm problem
Wade The Iso-RSA Cryptographic Scheme
Rabah Security of the Cryptographic Protocols Based on Discrete Logarithm Problem
Dissanayake Identification to Fake Messages with Two PKCs

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041019

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041216

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050125