JP2002323852A - 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム - Google Patents

楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム

Info

Publication number
JP2002323852A
JP2002323852A JP2001126024A JP2001126024A JP2002323852A JP 2002323852 A JP2002323852 A JP 2002323852A JP 2001126024 A JP2001126024 A JP 2001126024A JP 2001126024 A JP2001126024 A JP 2001126024A JP 2002323852 A JP2002323852 A JP 2002323852A
Authority
JP
Japan
Prior art keywords
points
point
elliptic curve
representation data
binary representation
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
JP2001126024A
Other languages
English (en)
Other versions
JP3820909B2 (ja
Inventor
Toru Akishita
徹 秋下
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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2001126024A priority Critical patent/JP3820909B2/ja
Priority to US10/128,805 priority patent/US7177422B2/en
Publication of JP2002323852A publication Critical patent/JP2002323852A/ja
Application granted granted Critical
Publication of JP3820909B2 publication Critical patent/JP3820909B2/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)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 楕円曲線暗号処理演算の高速化を実現する楕
円曲線暗号処理方法および楕円曲線暗号処理装置を提供
する。 【解決手段】 楕円曲線暗号処理演算において、2つの
スカラー倍演算:kP,lQを別々に実行せずにkP+
lQの演算処理を同時に行なう。モンゴメリ(Montgome
ry)型楕円曲線By2=x3+Ax2+x上の点:P、Q
に関するスカラー倍算kP+lQの算出において、初期
点となる4点を設定し、スカラー量k,lの2進表現デ
ータの上位ビットからのk,l各ビット値の組み合わせ
に応じて、算出済みの4点に基づく次の4点の算出関係
式を選択し、選択式に従って次4点算出処理を繰り返し
実行し、最終的にkP+lQを算出する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、楕円曲線暗号にお
ける高速化を実現する楕円曲線暗号処理方法および楕円
曲線暗号処理装置、並びにプログラムに関する。
【0002】
【従来の技術】昨今、ネットワーク通信、電子商取引の
発展に伴い、通信におけるセキュリティ確保が重要な問
題となっている。セキュリティ確保の1つの方法が暗号
技術であり、現在、様々な暗号化手法を用いた通信が実
際に行なわれている。
【0003】暗号化方式には、大別して共通鍵方式、公
開鍵方式がある。共通鍵方式は、対称暗号方式ともよば
れ、発信者、受信者の双方で共通の鍵を保有する。共通
鍵方式の代表的な方法として、DES(Data Encryptio
n Standard)がある。DESアルゴリズムの特徴は、暗
号化と復号とをほぼ同じアルゴリズムで実行可能なこと
である。
【0004】この共通鍵暗号に対して、発信者と受信者
の鍵を異なるものとした構成が公開鍵方式または非対称
暗号方式である。公開鍵暗号方式では、暗号化、復号化
に共通の鍵を用いる共通鍵暗号方式と異なり、秘密に保
つ必要のある秘密鍵は、特定の1人が持てばよいため鍵
の管理において有利である。ただし、公開鍵暗号方式は
共通鍵暗号方式に比較してデータ処理速度が遅く、一般
には、秘密鍵の配送、ディジタル署名等のデータ量の少
ない対象に多く用いられている。公開鍵暗号方式の代表
的なものにはRSA(Rivest-Shamir-Adleman)暗号が
ある。これは非常に大きな2つの素数(例えば150
桁)の積を用いるものであり、大きな2つの素数(例え
ば150桁)の積の素因数分解する処理の困難さを利用
している。
【0005】公開鍵暗号方式では、不特定多数に公開鍵
を使用可能とする構成であり、配布する公開鍵が正当な
ものであるか否かを証明する証明書、いわゆる公開鍵証
明書を使用する方法が多く用いられている。例えば、利
用者Aが公開鍵、秘密鍵のペアを生成して、生成した公
開鍵を認証局に対して送付して公開鍵証明書を認証局か
ら入手する。利用者Aは公開鍵証明書を一般に公開す
る。不特定のユーザは公開鍵証明書から所定の手続きを
経て公開鍵を入手して文書等を暗号化して利用者Aに送
付する。利用者Aは秘密鍵を用いて暗号化文書等を復号
する等のシステムである。また、利用者Aは、秘密鍵を
用いて文書等に署名を付け、不特定のユーザが公開鍵証
明書から所定の手続きを経て公開鍵を入手して、その署
名の検証を行なうシステムである。
【0006】公開鍵証明書は、公開鍵暗号方式における
認証局あるいは発行局(CA:Certificate Authority
またはIA:Issuer Authority)が発行する証明書であ
り、ユーザが自己のID、公開鍵等を認証局に提出する
ことにより、認証局側が認証局のIDや有効期限等の情
報を付加し、さらに認証局による署名を付加して作成さ
れる証明書である。
【0007】公開鍵暗号方式としては、上述したRSA
方式の他にnが素数の場合の離散対数問題の困難さを利
用した離散対数暗号が知られている。米国標準のディジ
タル署名方式として知られるDSA(Digital Signatur
e Standard)には、この離散対数暗号が用いられてい
る。また、V.Miller, N.Koblitzによって提案された楕
円曲線暗号(ECC:Ellipitic Curve Cryptography)
が、安全性および高速性の点で昨今注目されている。楕
円曲線暗号は、160bitの鍵でRSA1024bi
tの鍵と同等の強度を持つと言われる。
【0008】一般に、楕円曲線暗号(Elliptic Curve C
ryptography)は、素体上の楕円曲線y2=x3+ax+
b(4a3+27b2≠0)や、2の拡大体上の楕円曲線
2+xy=x3+ax2+b(b≠0)などを用いる。
これらの曲線上の点に無限遠点(O)を加えた集合は、
加法に関して有限群をなし、無限遠点(O)はその単位
元となる。以下、この有限群上の点の加法を+で表す。
この有限群上の異なる2点P,Qの加算P+Qを「点の
加算」、点Pと点Pの加算P+P=2Pを「点の2倍
算」と呼ぶ。また、点Pをk回加算した点P+P+…+
P=kPを求める演算を「点のスカラー倍算」と呼ぶ。
【0009】点のスカラー倍算は、点の加算、および点
の2倍算を用いて構成できることが知られている。素体
上の楕円曲線や2の拡大体上の楕円曲線上のアフィン座
標系(x,y)や射影座標(X,Y,Z)における点の
加算法、点の2倍算法、および点のスカラー倍算法は、
IEEE P1363/D13 Standard Specifications forPub
lic Key Cryptographyに記されている。
【0010】また、素因数分解を行なうために導入され
た素体上のモンゴメリ型楕円曲線By2=x3+Ax2
x((A2−4)B≠0)を用いて点のスカラー倍算法
を高速に行なう方法(P.Montgomery “Speeding the Po
llard and Elliptic Curve Method of Factorizatio
n”,Mathematics of Computation,Vol.48,No.177,pp.24
3-264(1987))が提案されている。以下、この手法を素
体上の楕円曲線におけるモンゴメリ法と呼ぶ。
【0011】この手法によれば、アフィン座標系におい
て、異なる2点:P0(x0,y0),P1(x1,y1)の
加算点を点P2=P1+P0とすると、P3(x3,y3)=
1(x1,y1)−P0(x0,y0)が既知であれば、 x2=(x01−1)2/(x3(x0−x12) により、x2を求めることができる。
【0012】また、点P0(x0,y0)の2倍算点を点
2(x2,y2)=2P0とすると、 x2=(x0 2−1)2/(4x0(x0 2+Ax0+1)) により、x2を求めることができる。このように、y座
標を用いないで、点の加算法、および点の2倍算法を構
成することができる。
【0013】ここで、一般に素体上の除算は素体上の乗
算に比べると計算コストが高いため、x=X/Z,y=
Y/Zとして射影座標系(X,Y,Z)に変換すると、
モンゴメリ型楕円曲線は、 BY2Z=X3+AX2Z+XZ2 となる。
【0014】このとき、異なる2点、P0(X0,Y0
0)、P1(X1,Y1,Z1)の加算点をP2(X2
2,Z2)=P1(X1,Y1,Z1)+P0(X0,Y0
0)とすると、P3(X3,Y3,Z3)=P1(X1
1,Z1)−P0(X0,Y0,Z0)が既知であれば、
【0015】 X2=Z3((X0−Z0)(X1+Z1)+(X0+Z0)(X1−Z1))22=X3((X0−Z0)(X1+Z1)−(X0+Z0)(X1−Z1))2
【0016】により、(X2,Z2)を求めることができ
る。また、点P0(X0,Y0,Z0)の2倍算点を点P2
(X2,Y2,Z2)=2P0とすると、C=(A+2)/
4として、
【0017】 X2=(X0+Z02(X0−Z022=((X0+Z02−(X0−Z02)((X0−Z02+C(((X0+Z02−(X0−Z02)))
【0018】により、(X2,Z2)を求めることができ
る。このように、Y座標を用いないで、点の加算法、お
よび点の2倍算法を構成することができる。
【0019】素体上のモンゴメリ型楕円曲線において、
以上の点の加算法および点の2倍算法を用いて点のスカ
ラー倍算kPを構成するためには、点の加算において2
点の差分となる点が既知である必要があることに注意し
て、以下のようにする。初期の2点を{T0,T1}=
{P,2P}とし、kを2進展開する。kの最上位ビッ
トの次ビットから最下位ビットまで、そのビットが0の
場合には、{T0,T1}から{2T0,T0+T1}
を求めて新たな{T0,T1}とし、そのビットが1の
場合は、{T0,T1}から{T0+T1,2T1}を
求めて新たな{T0,T1}とすることを繰り返す。す
ると最後のT0がkPとなる。このとき、T1−T0=
Pが常に成立している。
【0020】楕円曲線暗号を用いた電子署名方式として
は、ECDSA(Elliptic Curve Digital Signature A
lgorithm)が代表的である。ECDSAの署名検証処理
においては、異なる2点のスカラー倍点の加算点kP+
lQのx座標を求める計算が必要となる。
【0021】素体上の楕円曲線におけるモンゴメリ法を
用いて、kP+lQのx座標を計算するためには以下の
ようにする。まず、前述した手法に従って、素体上の楕
円曲線におけるモンゴメリ法でkPおよびlQを求め
る。その後、点kPと点lQを加算するが、2点の差分
の点が既知ではないため、前述の点の加算法を適用する
ことができない。そのため、kP,lQそれぞれのy座
標またはY座標を復元してから、別の加算法を用いてk
P+lQのx座標を求める必要がある。
【0022】また、2の拡大体上の楕円曲線y2+xy
=x3+ax2+b(b≠0)において、素体上のモンゴ
メリ型楕円曲線と同様の手法で高速に点のスカラー倍を
行なう手法(J.Lopez and R. Dahab,“Fast Multiplica
tion on Elliptic Curves over GF(2m) without Precom
putation”Cryptographic Hardware and Embedded Syst
ems, LNCS 1717,pp.316-327(1999))が提案されてい
る。以下、これを2の拡大体上の楕円曲線におけるモン
ゴメリ法とよぶ。この手法においても、kP+lQのx
座標を計算するためには、kP,lQそれぞれのy座標
またはY座標を復元してから、kP+lQのx座標を求
める必要がある。
【0023】
【発明が解決しようとする課題】上述のように、素体上
の楕円曲線におけるモンゴメリ法および2の拡大体上の
楕円曲線におけるモンゴメリ法では点のスカラー倍算を
高速に計算できるが、ECDSAの署名生成時に必要な
kP+lQの計算ではkP,lQのy座標またはY座標
を復元する処理が必要となる。
【0024】本発明は、上述の素体上の楕円曲線におけ
るモンゴメリ法および2の拡大体上の楕円曲線における
モンゴメリ法における問題点に鑑みてなされたものであ
り、2つのスカラー倍算kP,lQを別々に実行せずに
楕円曲線上の4点を計算しながらkP+lQの演算処理
を同時に実行することで楕円曲線暗号処理における高速
化を実現した楕円曲線暗号処理方法および楕円曲線暗号
処理装置、並びにプログラムを提供することを目的とす
る。
【0025】さらに、本発明は、上述の素体上の楕円曲
線におけるモンゴメリ法および2の拡大体上の楕円曲線
において、kP+lQの演算処理を行なう際に、楕円曲
線上の3点を計算しながらkP+lQの演算処理を同時
に実行することで楕円曲線暗号処理における高速化を実
現した楕円曲線暗号処理方法および楕円曲線暗号処理装
置、並びにプログラムを提供することを目的とする。
【0026】
【課題を解決するための手段】本発明の第1の側面は、
素体上のモンゴメリ(Montgomery)型楕円曲線By2
3+Ax2+xを適用した楕円曲線暗号処理方法であ
り、前記モンゴメリ(Montgomery)型楕円曲線By2
3+Ax2+x上の点:Pのスカラー量(k)倍の点:
kPと、該モンゴメリ(Montgomery)型楕円曲線By2
=x3+Ax2+x上の点:Qのスカラー量(l)倍の
点:lQとの加算点:kP+lQの算出において、前記
点Pと点Qに基づいて初期点とする4点の集合Gt+1
計算する初期点算出ステップと、前記スカラー量k,l
の2進表現データのk,lの各ビット値の組み合わせを
検出するビット値検出ステップと、前記ビット値検出ス
テップにおいて検出したk,lの2進表現データの各ビ
ット値の組合わせに応じて、前記初期点4点の集合G
t+1に基づく次の4点の集合Gtの算出関係式を選択し、
選択された関係式に従って次の4点の算出処理を実行
し、さらに、k,lの2進表現データの各ビット値の組
合わせに応じて、算出済みの4点の集合Gi+1から次の
4点の集合Giの算出関係式を選択し、選択された関係
式に従って次の4点の算出処理を、前記2進表現データ
のkまたはlのビット数に応じて繰り返し実行する繰り
返し演算処理ステップと、を有することを特徴とする楕
円曲線暗号処理方法にある。
【0027】さらに、本発明の楕円曲線暗号処理方法の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、4点の集合G
iは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、前記初期点算出ステップ
は、i=t+1として、mt+1=kt+1=0、nt+1=l
t+1=0から、上記式により算出される4点としての、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q として設定する処理ステップとして実行することを特徴
とする。
【0028】さらに、本発明の楕円曲線暗号処理方法の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、4点の集合G
iは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、前記繰り返し演算処理ステ
ップは、算出済みの4点の集合Gi+1から、次の4点の
集合Giを算出する処理を繰り返し実行し、最終的に4
点の集合G0を算出する処理ステップとして実行し、4
点の集合G0を構成する1点をW=kP+lQとして算
出することを特徴とする。
【0029】さらに、本発明の第2の側面は、素体上の
モンゴメリ(Montgomery)型楕円曲線By2=x3+Ax
2+xを適用した楕円曲線暗号処理方法であり、前記モ
ンゴメリ(Montgomery)型楕円曲線By2=x3+Ax2
+x上の点:Pのスカラー量(k)倍の点:kPと、該
モンゴメリ(Montgomery)型楕円曲線By2=x3+Ax
2+x上の点:Qのスカラー量(l)倍の点:lQとの
加算点:kP+lQの算出において、前記スカラー量
k,lの2進表現データのk,lの各ビット値の組み合
わせを検出するビット値検出ステップと、前記スカラー
量k,lの2進表現データのk,lの最上位ビット値
(kt,lt)の組合わせに基づいて、初期点とする3点
の集合G’t+1を前記P,Qを用いて算出する初期点算
出ステップと、前記ビット値検出ステップにおいて検出
したk,lの2進表現データの各ビット値の組合わせに
応じて、前記初期点3点の集合G’t+1に基づく次の3
点の集合G’tの算出関係式を選択し、選択された関係
式に従って次の3点の算出処理を実行し、さらに、k,
lの2進表現データの各ビット値の組合わせに応じて、
算出済みの3点の集合G’i+1から次の3点の集合G’i
の算出関係式を選択し、選択された関係式に従って次の
3点の算出処理を、前記2進表現データのkまたはlの
ビット数に応じて繰り返し実行する繰り返し演算処理ス
テップと、を有することを特徴とする楕円曲線暗号処理
方法にある。
【0030】さらに、本発明の楕円曲線暗号処理方法の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、3点の集合
G’iは、前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
(ki-1,li-1)の組合わせに基づいて選択される3点
であり、前記初期点算出ステップは、i=t+1とし
て、mt+1=kt+1=0、nt+1=lt+1=0から、上記式
により算出される4点としての、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q の4点から、前記2進表現データのk,lの最上位ビッ
ト値(kt,lt)の組合わせに基づいて選択される3点
として設定する処理ステップとして実行することを特徴
とする。
【0031】さらに、本発明の楕円曲線暗号処理方法の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、3点の集合
G’iは、前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
(ki-1,li-1)の組合わせに基づいて選択される3点
であり、前記繰り返し演算処理ステップは、算出済みの
3点の集合G’i+1から、次の3点の集合G’iを算出す
る処理を繰り返し実行し、最終的に3点の集合G’1
算出する処理ステップとして実行し、さらに3点の集合
G’1からW=kP+lQを算出することを特徴とす
る。
【0032】さらに、本発明の第3の側面は、2の拡大
体上の楕円曲線y2+xy=x3+ax2+bを適用した
楕円曲線暗号処理方法であり、前記楕円曲線y2+xy
=x3+ax2+b上の点:Pのスカラー量(k)倍の
点:kPと、該楕円曲線y2+xy=x3+ax2+b上
の点:Qのスカラー量(l)倍の点:lQとの加算点:
kP+lQの算出において、前記点Pと点Qに基づいて
初期点とする4点の集合Gt+1を計算する初期点算出ス
テップと、前記スカラー量k,lの2進表現データの
k,lの各ビット値の組み合わせを検出するビット値検
出ステップと、前記ビット値検出ステップにおいて検出
したk,lの2進表現データの各ビット値の組合わせに
応じて、前記初期点4点の集合Gt+1に基づく次の4点
の集合Gtの算出関係式を選択し、選択された関係式に
従って次の4点の算出処理を実行し、さらに、k,lの
2進表現データの各ビット値の組合わせに応じて、算出
済みの4点の集合Gi+1から次の4点の集合Giの算出関
係式を選択し、選択された関係式に従って次の4点の算
出処理を、前記2進表現データのkまたはlのビット数
に応じて繰り返し実行する繰り返し演算処理ステップ
と、を有することを特徴とする楕円曲線暗号処理方法に
ある。
【0033】さらに、本発明の楕円曲線暗号処理方法の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、4点の集合G
iは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、前記初期点算出ステップ
は、i=t+1として、mt+1=kt+1=0、nt+1=l
t+1=0から、上記式により算出される4点としての、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q として設定する処理ステップとして実行することを特徴
とする。
【0034】さらに、本発明の楕円曲線暗号処理方法の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l 02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、4点の集合G
iは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、前記繰り返し演算処理ステ
ップは、算出済みの4点の集合Gi+1から、次の4点の
集合Giを算出する処理を繰り返し実行し、最終的に4
点の集合G0を算出する処理ステップとして実行し、4
点の集合G0を構成する1点をW=kP+lQとして算
出することを特徴とする。
【0035】さらに、本発明の第4の側面は、2の拡大
体上の楕円曲線y2+xy=x3+ax2+bを適用した
楕円曲線暗号処理方法であり、前記楕円曲線y2+xy
=x3+ax2+b上の点:Pのスカラー量(k)倍の
点:kPと、該楕円曲線y2+xy=x3+ax2+b上
の点:Qのスカラー量(l)倍の点:lQとの加算点:
kP+lQの算出において、前記スカラー量k,lの2
進表現データのk,lの各ビット値の組み合わせを検出
するビット値検出ステップと、前記スカラー量k,lの
2進表現データのk,lの最上位ビット値(kt,lt
の組合わせに基づいて、初期点とする3点の集合G’
t+1を前記P,Qを用いて算出する初期点算出ステップ
と、前記ビット値検出ステップにおいて検出したk,l
の2進表現データの各ビット値の組合わせに応じて、前
記初期点3点の集合G’t+1に基づく次の3点の集合
G’tの算出関係式を選択し、選択された関係式に従っ
て次の3点の算出処理を実行し、さらに、k,lの2進
表現データの各ビット値の組合わせに応じて、算出済み
の3点の集合G’i+1から次の3点の集合G’iの算出関
係式を選択し、選択された関係式に従って次の3点の算
出処理を、前記2進表現データのkまたはlのビット数
に応じて繰り返し実行する繰り返し演算処理ステップ
と、を有することを特徴とする楕円曲線暗号処理方法に
ある。
【0036】さらに、本発明の楕円曲線暗号処理方法の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、3点の集合
G’iは、前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
(ki-1,li-1)の組合わせに基づいて選択される3点
であり、前記初期点算出ステップは、i=t+1とし
て、mt+1=kt+1=0、nt+1=lt+1=0から、上記式
により算出される4点としての、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q の4点から、前記2進表現データのk,lの最上位ビッ
ト値(kt,lt)の組合わせに基づいて選択される3点
として設定する処理ステップとして実行することを特徴
とする。
【0037】さらに、本発明の楕円曲線暗号処理方法の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、3点の集合
G’iは、前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
(ki-1,li-1)の組合わせに基づいて選択される3点
であり、前記繰り返し演算処理ステップは、算出済みの
3点の集合G’i+1から、次の3点の集合G’iを算出す
る処理を繰り返し実行し、最終的に3点の集合G’1
算出する処理ステップとして実行し、さらに3点の集合
G’1からW=kP+lQを算出することを特徴とす
る。
【0038】さらに、本発明の第5の側面は、素体上の
モンゴメリ(Montgomery)型楕円曲線By2=x3+Ax
2+xを適用した楕円曲線暗号処理を実行する楕円曲線
暗号処理装置であり、前記モンゴメリ(Montgomery)型
楕円曲線By2=x3+Ax2+x上の点:Pのスカラー
量(k)倍の点:kPと、該モンゴメリ(Montgomery)
型楕円曲線By2=x3+Ax2+x上の点:Qのスカラ
ー量(l)倍の点:lQとの加算点:kP+lQの算出
を実行する演算処理手段を有し、該演算処理手段は、前
記点Pと点Qに基づいて初期点とする4点の集合Gt+1
を計算する初期点算出処理を実行し、前記スカラー量
k,lの2進表現データのk,lの各ビット値の組み合
わせを検出するビット値検出処理を実行し、前記ビット
値検出ステップにおいて検出したk,lの2進表現デー
タの各ビット値の組合わせに応じて、前記初期点4点の
集合Gt+1に基づく次の4点の集合Gtの算出関係式を選
択し、選択された関係式に従って次の4点の算出処理を
実行し、さらに、k,lの2進表現データの各ビット値
の組合わせに応じて、算出済みの4点の集合Gi+1から
次の4点の集合Giの算出関係式を選択し、選択された
関係式に従って次の4点の算出処理を、前記2進表現デ
ータのkまたはlのビット数に応じて繰り返し実行する
繰り返し演算処理を実行する構成を有することを特徴と
する楕円曲線暗号処理装置にある。
【0039】さらに、本発明の楕円曲線暗号処理装置の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、4点の集合G
iは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、前記演算処理手段は、前記
初期点算出処理において、i=t+1として、mt+1
t+1=0、nt+1=lt+1=0から、上記式により算出
される4点としての、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q として設定する処理として実行する構成であることを特
徴とする。
【0040】さらに、本発明の楕円曲線暗号処理装置の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、4点の集合G
iは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、前記演算処理手段は、前記
繰り返し演算処理において、算出済みの4点の集合G
i+1から、次の4点の集合Giを算出する処理を繰り返し
実行し、最終的に4点の集合G0を算出する処理ステッ
プとして実行し、4点の集合G0を構成する1点をW=
kP+lQとして算出する処理を実行する構成であるこ
とことを特徴とする。
【0041】さらに、本発明の第6の側面は、素体上の
モンゴメリ(Montgomery)型楕円曲線By2=x3+Ax
2+xを適用した楕円曲線暗号処理を実行する楕円曲線
暗号処理装置であり、前記モンゴメリ(Montgomery)型
楕円曲線By2=x3+Ax2+x上の点:Pのスカラー
量(k)倍の点:kPと、該モンゴメリ(Montgomery)
型楕円曲線By2=x3+Ax2+x上の点:Qのスカラ
ー量(l)倍の点:lQとの加算点:kP+lQの算出
を実行する演算処理手段を有し、該演算処理手段は、前
記スカラー量k,lの2進表現データのk,lの各ビッ
ト値の組み合わせを検出するビット値検出処理を実行
し、前記スカラー量k,lの2進表現データのk,lの
最上位ビット値(kt,lt)の組合わせに基づいて、初
期点とする3点の集合G’t+1を前記P,Qを用いて算
出する初期点算出処理を実行し、前記ビット値検出処理
において検出したk,lの2進表現データの各ビット値
の組合わせに応じて、前記初期点3点の集合G’t+1
基づく次の3点の集合G’tの算出関係式を選択し、選
択された関係式に従って次の3点の算出処理を実行し、
さらに、k,lの2進表現データの各ビット値の組合わ
せに応じて、算出済みの3点の集合G’i+1から次の3
点の集合G’iの算出関係式を選択し、選択された関係
式に従って次の3点の算出処理を、前記2進表現データ
のkまたはlのビット数に応じて繰り返し実行する繰り
返し演算処理を実行する構成を有することを特徴とする
楕円曲線暗号処理装置にある。
【0042】さらに、本発明の楕円曲線暗号処理装置の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、3点の集合
G’iは、前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
(ki-1,li-1)の組合わせに基づいて選択される3点
であり、前記演算処理手段は、前記初期点算出処理にお
いて、i=t+1として、mt+1=kt+1=0、nt+1
t+1=0から、上記式により算出される4点として
の、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q の4点から、前記2進表現データのk,lの最上位ビッ
ト値(kt,lt)の組合わせに基づいて選択される3点
として設定する処理として実行する構成であることを特
徴とする。
【0043】さらに、本発明の楕円曲線暗号処理装置の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、3点の集合
G’iは、前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
(ki-1,li-1)の組合わせに基づいて選択される3点
であり、前記演算処理手段は、前記繰り返し演算処理に
おいて、算出済みの3点の集合G’i+1から、次の3点
の集合G’iを算出する処理を繰り返し実行し、最終的
に3点の集合G’1を算出する処理ステップとして実行
し、さらに3点の集合G’1からW=kP+lQを算出
することを特徴とする。
【0044】さらに、本発明の第7の側面は、2の拡大
体上の楕円曲線y2+xy=x3+ax2+bを適用した
楕円曲線暗号処理を実行する楕円曲線暗号処理装置であ
り、前記楕円曲線y2+xy=x3+ax2+b上の点:
Pのスカラー量(k)倍の点:kPと、該楕円曲線y2
+xy=x3+ax2+b上の点:Qのスカラー量(l)
倍の点:lQとの加算点:kP+lQの算出を実行する
演算処理手段を有し、該演算処理手段は、前記点Pと点
Qに基づいて初期点とする4点の集合Gt+1を計算する
初期点算出処理を実行し、前記スカラー量k,lの2進
表現データのk,lの各ビット値の組み合わせを検出す
るビット値検出処理を実行し、前記ビット値検出ステッ
プにおいて検出したk,lの2進表現データの各ビット
値の組合わせに応じて、前記初期点4点の集合Gt+1
基づく次の4点の集合Gtの算出関係式を選択し、選択
された関係式に従って次の4点の算出処理を実行し、さ
らに、k,lの2進表現データの各ビット値の組合わせ
に応じて、算出済みの4点の集合Gi+1から次の4点の
集合Giの算出関係式を選択し、選択された関係式に従
って次の4点の算出処理を、前記2進表現データのkま
たはlのビット数に応じて繰り返し実行する繰り返し演
算処理を実行する構成を有することを特徴とする楕円曲
線暗号処理装置にある。
【0045】さらに、本発明の楕円曲線暗号処理装置の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、4点の集合G
iは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、前記演算処理手段は、前記
初期点算出処理において、i=t+1として、mt+1
t+1=0、nt+1=lt+1=0から、上記式により算出
される4点としての、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q として設定する処理として実行する構成であることを特
徴とする。
【0046】さらに、本発明の楕円曲線暗号処理装置の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l 02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、4点の集合G
iは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、前記演算処理手段は、前記
繰り返し演算処理において、算出済みの4点の集合G
i+1から、次の4点の集合Giを算出する処理を繰り返し
実行し、最終的に4点の集合G0を算出する処理ステッ
プとして実行し、4点の集合G0を構成する1点をW=
kP+lQとして算出する処理を実行する構成であるこ
とことを特徴とする。
【0047】さらに、本発明の第8の側面は、2の拡大
体上の楕円曲線y2+xy=x3+ax2+bを適用した
楕円曲線暗号処理を実行する楕円曲線暗号処理装置であ
り、前記楕円曲線y2+xy=x3+ax2+b上の点:
Pのスカラー量(k)倍の点:kPと、該楕円曲線y2
+xy=x3+ax2+b上の点:Qのスカラー量(l)
倍の点:lQとの加算点:kP+lQの算出を実行する
演算処理手段を有し、該演算処理手段は、前記スカラー
量k,lの2進表現データのk,lの各ビット値の組み
合わせを検出するビット値検出処理を実行し、前記スカ
ラー量k,lの2進表現データのk,lの最上位ビット
値(kt,lt)の組合わせに基づいて、初期点とする3
点の集合G’t+1を前記P,Qを用いて算出する初期点
算出処理を実行し、前記ビット値検出処理において検出
したk,lの2進表現データの各ビット値の組合わせに
応じて、前記初期点3点の集合G’t+1に基づく次の3
点の集合G’tの算出関係式を選択し、選択された関係
式に従って次の3点の算出処理を実行し、さらに、k,
lの2進表現データの各ビット値の組合わせに応じて、
算出済みの3点の集合G’i+1から次の3点の集合G’i
の算出関係式を選択し、選択された関係式に従って次の
3点の算出処理を、前記2進表現データのkまたはlの
ビット数に応じて繰り返し実行する繰り返し演算処理を
実行する構成を有することを特徴とする楕円曲線暗号処
理装置にある。
【0048】さらに、本発明の楕円曲線暗号処理装置の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、3点の集合
G’iは、前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
(ki-1,li-1)の組合わせに基づいて選択される3点
であり、前記演算処理手段は、前記初期点算出処理にお
いて、i=t+1として、mt+1=kt+1=0、nt+1
t+1=0から、上記式により算出される4点として
の、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q の4点から、前記2進表現データのk,lの最上位ビッ
ト値(kt,lt)の組合わせに基づいて選択される3点
として設定する処理として実行する構成であることを特
徴とする。
【0049】さらに、本発明の楕円曲線暗号処理装置の
一実施態様において、前記k,lの2進表現データの各
ビットがk:(kt…k02,l:(lt…l02である
ときの上位t〜iの上位ビット値をmi=(kt
i2,ni=(lt…li2としたとき、3点の集合
G’iは、前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
(ki-1,li-1)の組合わせに基づいて選択される3点
であり、前記演算処理手段は、前記繰り返し演算処理に
おいて、算出済みの3点の集合G’i+1から、次の3点
の集合G’iを算出する処理を繰り返し実行し、最終的
に3点の集合G’1を算出する処理ステップとして実行
し、さらに3点の集合G’1からW=kP+lQを算出
することを特徴とする。
【0050】さらに、本発明の第9の側面は、素体上の
モンゴメリ(Montgomery)型楕円曲線By2=x3+Ax
2+xを適用した楕円曲線暗号処理において、前記モン
ゴメリ(Montgomery)型楕円曲線By 2=x3+Ax2
x上の点:Pのスカラー量(k)倍の点:kPと、該モ
ンゴメリ(Montgomery)型楕円曲線By2=x3+Ax2
+x上の点:Qのスカラー量(l)倍の点:lQとの加
算点:kP+lQの算出処理をコンピュータ・システム
上で実行せしめるプログラムであって、前記プログラム
は、前記点Pと点Qに基づいて初期点とする4点の集合
t+1を計算する初期点算出ステップと、前記スカラー
量k,lの2進表現データのk,lの各ビット値の組み
合わせを検出するビット値検出ステップと、前記ビット
値検出ステップにおいて検出したk,lの2進表現デー
タの各ビット値の組合わせに応じて、前記初期点4点の
集合Gt+1に基づく次の4点の集合Gtの算出関係式を選
択し、選択された関係式に従って次の4点の算出処理を
実行し、さらに、k,lの2進表現データの各ビット値
の組合わせに応じて、算出済みの4点の集合Gi+1から
次の4点の集合Giの算出関係式を選択し、選択された
関係式に従って次の4点の算出処理を、前記2進表現デ
ータのkまたはlのビット数に応じて繰り返し実行する
繰り返し演算処理ステップと、を有することを特徴とす
るプログラムにある。
【0051】さらに、本発明の第10の側面は、素体上
のモンゴメリ(Montgomery)型楕円曲線By2=x3+A
2+xを適用した楕円曲線暗号処理において、前記モ
ンゴメリ(Montgomery)型楕円曲線By 2=x3+Ax2
+x上の点:Pのスカラー量(k)倍の点:kPと、該
モンゴメリ(Montgomery)型楕円曲線By2=x3+Ax
2+x上の点:Qのスカラー量(l)倍の点:lQとの
加算点:kP+lQの算出処理をコンピュータ・システ
ム上で実行せしめるプログラムであって、前記プログラ
ムは、前記スカラー量k,lの2進表現データのk,l
の各ビット値の組み合わせを検出するビット値検出ステ
ップと、前記スカラー量k,lの2進表現データのk,
lの最上位ビット値(kt,lt)の組合わせに基づい
て、初期点とする3点の集合G’t+1を前記P,Qを用
いて算出する初期点算出ステップと、前記ビット値検出
ステップにおいて検出したk,lの2進表現データの各
ビット値の組合わせに応じて、前記初期点3点の集合
G’t+1に基づく次の3点の集合G’tの算出関係式を選
択し、選択された関係式に従って次の3点の算出処理を
実行し、さらに、k,lの2進表現データの各ビット値
の組合わせに応じて、算出済みの3点の集合G’i+1
ら次の3点の集合G’iの算出関係式を選択し、選択さ
れた関係式に従って次の3点の算出処理を、前記2進表
現データのkまたはlのビット数に応じて繰り返し実行
する繰り返し演算処理ステップと、を有することを特徴
とするプログラムにある。
【0052】さらに、本発明の第11の側面は、2の拡
大体上の楕円曲線y2+xy=x3+ax2+bを適用し
た楕円曲線暗号処理において、前記楕円曲線y2+xy
=x3+ax2+b上の点:Pのスカラー量(k)倍の
点:kPと、該楕円曲線y2+xy=x3+ax2+b上
の点:Qのスカラー量(l)倍の点:lQとの加算点:
kP+lQの算出処理をコンピュータ・システム上で実
行せしめるプログラムであって、前記プログラムは、前
記点Pと点Qに基づいて初期点とする4点の集合Gt+1
を計算する初期点算出ステップと、前記スカラー量k,
lの2進表現データのk,lの各ビット値の組み合わせ
を検出するビット値検出ステップと、前記ビット値検出
ステップにおいて検出したk,lの2進表現データの各
ビット値の組合わせに応じて、前記初期点4点の集合G
t+1に基づく次の4点の集合Gtの算出関係式を選択し、
選択された関係式に従って次の4点の算出処理を実行
し、さらに、k,lの2進表現データの各ビット値の組
合わせに応じて、算出済みの4点の集合Gi+1から次の
4点の集合Giの算出関係式を選択し、選択された関係
式に従って次の4点の算出処理を、前記2進表現データ
のkまたはlのビット数に応じて繰り返し実行する繰り
返し演算処理ステップと、を有することを特徴とするプ
ログラムにある。
【0053】さらに、本発明の第12の側面は、2の拡
大体上の楕円曲線y2+xy=x3+ax2+bを適用し
た楕円曲線暗号処理において、前記楕円曲線y2+xy
=x3+ax2+b上の点:Pのスカラー量(k)倍の
点:kPと、該楕円曲線y2+xy=x3+ax2+b上
の点:Qのスカラー量(l)倍の点:lQとの加算点:
kP+lQの算出処理をコンピュータ・システム上で実
行せしめるプログラムであって、前記プログラムは、前
記スカラー量k,lの2進表現データのk,lの各ビッ
ト値の組み合わせを検出するビット値検出ステップと、
前記スカラー量k,lの2進表現データのk,lの最上
位ビット値(kt,lt)の組合わせに基づいて、初期点
とする3点の集合G’t+1を前記P,Qを用いて算出す
る初期点算出ステップと、前記ビット値検出ステップに
おいて検出したk,lの2進表現データの各ビット値の
組合わせに応じて、前記初期点3点の集合G’t+1に基
づく次の3点の集合G’tの算出関係式を選択し、選択
された関係式に従って次の3点の算出処理を実行し、さ
らに、k,lの2進表現データの各ビット値の組合わせ
に応じて、算出済みの3点の集合G’i+1から次の3点
の集合G’iの算出関係式を選択し、選択された関係式
に従って次の3点の算出処理を、前記2進表現データの
kまたはlのビット数に応じて繰り返し実行する繰り返
し演算処理ステップと、を有することを特徴とするプロ
グラムにある。
【0054】なお、本発明のプログラムは、例えば、様
々なプログラム・コードを実行可能な汎用コンピュータ
・システムに対して、コンピュータ可読な形式で提供す
る記憶媒体、通信媒体によって提供されるコンピュータ
・プログラムである。
【0055】このようなプログラムをコンピュータ可読
な形式で提供することにより、コンピュータ・システム
上でプログラムに応じた処理が実現される。コンピュー
タ・プログラムをコンピュータ・システムにインストー
ルすることによって、コンピュータ・システム上では協
働的作用が発揮され、本発明の他の側面と同様の作用効
果を得ることができるのである。
【0056】本発明のさらに他の目的、特徴や利点は、
後述する本発明の実施例や添付する図面に基づくより詳
細な説明によって明らかになるであろう。
【0057】
【発明の実施の形態】本発明の楕円曲線暗号処理方法お
よび楕円曲線暗号処理装置、すなわち、素体上のモンゴ
メリ型楕円曲線、および2の拡大体上の楕円曲線におい
て異なる2点のスカラー倍点の加算点:kP+lQを同
時に計算する構成について、以下説明する。なお、以下
の説明においては、素体上のモンゴメリ型楕円曲線、お
よび2の拡大体上の楕円曲線において異なる2点のスカ
ラー倍点の加算点:kP+lQを同時に計算する方法を
スカラー倍同時計算方法と呼ぶ。
【0058】上述の従来技術の欄で説明したモンゴメリ
法によるスカラー倍算は要約すると次のような計算法で
あると言える。すなわち、従来のモンゴメリ法によるス
カラー倍算kP(k=(kt…k02,kt=1)では、
i=(kt…ki2に対して、常にmiPと(mi+1)
Pの2点を計算しながら演算を進めていく方式である。
【0059】[第1実施例]本発明に係る第1実施例に
ついて説明する。本実施例構成においては、楕円曲線に
おける異なる2点のスカラー倍点の加算点:kP+lQ
に含まれるスカラー量k,lの2進表現を(kt…k0
2,(lt…l02とし、mi=(kt…ki2,ni
(lt…li2、(ただし、kt=1またはlt=1)と
したとき、楕円曲線上の4点の集合Giを以下のように
定義する。
【0060】
【数1】Gi={miP+niQ, miP+(ni+1)Q, (mi+1)P+niQ, (mi+1)P+(ni+1)Q}
【0061】このとき、(ki,li)=(0,0)の場
合、mi=2mi+1,ni=2ni+1となるから、4点の集
合Gi+1と、4点の集合Giとの対応関係が下式(2)に
基づいて求められる。
【0062】
【数2】 miP+niQ=2(mi+1P+ni+1Q) miP+(ni+1)Q=(mi+1P+(ni+1+1)Q)+(mi+1P+ni+1Q ) (mi+1)P+niQ=((mi+1+1)P+ni+1Q)+(mi+1P+ni+1Q ) (mi+1)P+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+( mi+1P+ni+1Q) ……式(2)
【0063】また、(ki,li)=(0,1)の場合、
i=2mi+1,ni=2ni+1+1となるから、4点の集
合Gi+1と、4点の集合Giとの対応関係が下式(3)に
基づいて求められる。
【0064】
【数3】 miP+niQ=(mi+1P+(ni+1+1)Q))+(mi+1P+ni+1Q) miP+(ni+1)Q=2(mi+1P+(ni+1+1)Q) (mi+1)P+niQ=((mi+1+1)P+(ni+1+1)Q)+(mi+1P +ni+1Q) (mi+1)P+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+( mi+1P+(ni+1+1)Q) ……式(3)
【0065】また、(ki,li)=(1,0)の場合、
i=2mi+1+1,ni=2ni+1となるから、4点の集
合Gi+1と、4点の集合Giとの対応関係が下式(4)に
基づいて求められる。
【0066】
【数4】 miP+niQ=((mi+1+1)P+ni+1Q)+(mi+1P+ni+1Q) miP+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+(mi+1P +ni+1Q) (mi+1)P+niQ=2((mi+1+1)P+ni+1Q) (mi+1)P+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+( (mi+1+1)P+ni+1Q) ……式(4)
【0067】また、(ki,li)=(1,1)の場合、
i=2mi+1+1,ni=2ni+1+1となるから、4点
の集合Gi+1と、4点の集合Giとの対応関係が下式
(5)に基づいて求められる。
【0068】
【数5】 miP+niQ=((mi+1+1)P+(ni+1+1)Q))+(mi+1P+ni+1 Q) miP+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+(mi+1P +(ni+1+1)Q) (mi+1)P+niQ=((mi+1+1)P+(ni+1+1)Q)+((mi+1 +1)P+ni+1Q) (mi+1)P+(ni+1)Q=2((mi+1+1)P+(ni+1+1)Q) ……式(5)
【0069】以上の各式(2)、(3)、(4)、
(5)に基づいて、Gi+1からGiを求めることができ
る。
【0070】ここで、 T0[i]=miP+niQ T1[i]=miP+(ni+1)Q T2[i]=(mi+1)P+niQ T3[i]=(mi+1)P+(ni+1)Q として、 Gi={T0[i],T1[i],T2[i],T
3[i]} と表現する。
【0071】mt+1=0、nt+1=0であるから、Gi
初期値Gt+1を、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Qとおいて、図1のフローに従っ
た処理を実行しkP+lQ(=W)を求める。
【0072】以下、図1のフローに従って本発明の楕円
曲線暗号処理方法を適用した処理について説明する。
【0073】まず、ステップS101において、P,
Q,k,l,rを入力する。次に、ステップS102、
S103において、kPが無限遠点(O)である場合に
ついての判定を行なう。
【0074】具体的には、ステップS102において、
点Pが無限遠点(O)であると判定された場合には、k
Pは無限遠点(O)となるから、W=lQとなり、lQ
の計算を行なうためにステップS108へ進む。同様
に、ステップS103において、kが0と判定された場
合には、kPは無限遠点(O)となるから、W=lQと
なり、lQの計算を行なうためにステップS108へ進
む。ステップS108では、QをPに、lをkに代入し
てlQをkPの計算に変換し、ステップS111へ進
む。
【0075】次に、ステップS104、S105におい
て、lQが無限遠点(O)である場合についての判定を
行なう。
【0076】具体的には、ステップS104において、
点Qが無限遠点(O)であると判定された場合には、l
Qは無限遠点(O)となるから、W=kPとなり、kP
の計算を行なうためにステップS111へ進む。同様
に、ステップS105において、lが0と判定された場
合には、lQは無限遠点(O)となるから、W=kPと
なり、kPの計算を行なうためにステップS111へ進
む。
【0077】ステップS106では、P=Qかを判定す
る。P=Qであれば、W=kP+lQ=(k+l)Pと
なるから、ステップS109において、k=k+lmo
drとして、(k+l)PをkPの計算に変換し、ステ
ップS111へ進む。ステップS107では、P=−Q
かを判定する。P=−Qであれば、W=kP+lQ=
(k−l)Pとなるから、ステップS110において、
k=k−lmodrとして、(k−l)PをkPの計算
に変換し、ステップS111へ進む。
【0078】ステップS111では、ステップS102
〜S107において「Yes」と判定されている場合に
おいては、kP+lQの計算は、ステップS108〜S
110において、kPの計算に変換されているから、
P,kを入力としてスカラー倍計算を行ない、出力Wを
得て終了する。
【0079】ステップS112では、P,Qの加算点P
+Qを求める。ステップS113では、kを2進展開
し、ステップS114ではlを2進展開する。このと
き、kt=1、または、lt=1である。ステップS11
5ではGiの初期値Gt+1を T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Qとおいて、ステップS116で
は、i=tと初期化する。
【0080】ステップS117〜S125においては、
2進展開したk,lの各ビット(k i,li)に応じてG
i+1からGiを計算し、最終的にG0を求める。
【0081】すなわち、ステップS117で、(ki
i)=(0,0)と判定された場合には、前述の式
(2)に従って、ステップS120において、 T0[i]=2T0[i+1] T1[i]=T1[i+1]+T0[i+1] T2[i]=T2[i+1]+T0[i+1] T3[i]=T3[i+1]+T0[i+1] とし、Gi+1からGiを計算する。
【0082】また、ステップS118で、(ki,li
=(0,1)と判定された場合には、前述の式(3)に
従って、ステップS121において、 T0[i]=T1[i+1]+T0[i+1] T1[i]=2T1[i+1] T2[i]=T3[i+1]+T0[i+1] T3[i]=T3[i+1]+T1[i+1] とし、Gi+1からGiを計算する。
【0083】また、ステップS119で、(ki,li
=(1,0)と判定された場合には、前述の式(4)に
従って、ステップS122において、 T0[i]=T2[i+1]+T0[i+1] T1[i]=T3[i+1]+T0[i+1] T2[i]=2T2[i+1] T3[i]=T3[i+1]+T2[i+1] とし、Gi+1からGiを計算する。
【0084】また、ステップS117〜S119でNo
と判定された場合、すなわち、(k i,li)=(1,
1)と判定された場合には、前述の式(5)に従って、
ステップS123において、 T0[i]=T3[i+1]+T0[i+1] T1[i]=T3[i+1]+T1[i+1] T2[i]=T3[i+1]+T2[i+1] T3[i]=2T3[i+1] とし、Gi+1からGiを計算する。
【0085】ステップS124では、iにi−1を代入
し、ステップS125では、i≧0を判定し、i≧0で
ある場合には、ステップS117に戻り、同様の処理を
繰り返し実行する。
【0086】ステップS125でi≧0がNoと判定さ
れた場合は、G0が算出されたことになり、ステップS
126に進む。
【0087】モンゴメリ法を用いた点の加算において
は、差分点が既知であることが必要であるが、 T1[i+1]−T0[i+1]=Q T2[i+1]−T0[i+1]=P T3[i+1]−T0[i+1]=P+Q T3[i+1]−T1[i+1]=P T3[i+1]−T2[i+1]=Q により、差分点は既知となっている。
【0088】ここで、m0=k,n0=lであるから、T
0[0]=kP+lQとなり、ステップS126でWに
0[0]を代入して、2点のスカラー倍の加算点kP
+lQ=W=T0[0]として終了する。
【0089】なお、T3[i+1]+T0[i+1]は、
2[i+1]+T1[i+1]とすることもできる。こ
の場合、T2[i+1]−T1[i+1]=P−Qとなる
ため、P,Qの差分P−Qを事前に計算する必要があ
る。
【0090】上述したように、本発明の構成において
は、スカラー倍算:kP+lQを、楕円上の4点の集合
iを定義して実行することにより、高速に結果を出力
することができる。
【0091】[第2実施例]次に、第1の実施例をさら
に高速化した処理構成について第2実施例として説明す
る。第1実施例と同様、楕円曲線における異なる2点の
スカラー倍点の加算点:kP+lQに含まれるスカラー
量k,lの2進表現を(kt…k02,(lt…l02
し、mi=(kt…ki2,ni=(lt…li2、(ただ
し、kt=1またはlt=1)としたとき、楕円曲線上の
4点の集合Giを第1実施例と同様、以下のように定義
する。 Gi={miP+niQ, miP+(ni+1)Q, (mi+1)P+niQ, (mi+1)P+(ni+1)Q}
【0092】このとき、(ki,li)=(0,0)の場
合、mi=2mi+1,ni=2ni+1となるから、4点の集
合Gi+1と、4点の集合Giとの対応関係は、前述の式
(2)、すなわち下式に基づいて求められる。
【0093】 miP+niQ=2(mi+1P+ni+1Q) miP+(ni+1)Q=(mi+1P+(ni+1+1)Q)+(mi+1P+ni+1Q ) (mi+1)P+niQ=((mi+1+1)P+ni+1Q)+(mi+1P+ni+1Q ) (mi+1)P+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+( mi+1P+ni+1Q) ……式(2)
【0094】この式(2)は、以下のように変形するこ
とができる。
【0095】
【数6】 miP+niQ=2(mi+1P+ni+1Q) miP+(ni+1)Q=(mi+1P+(ni+1+1)Q)+(mi+1P+ni+1Q ) (mi+1)P+niQ=((mi+1+1)P+ni+1Q)+(mi+1P+ni+1Q ) (mi+1)P+(ni+1)Q=((mi+1+1)P+ni+1Q)+(mi+1P +(ni+1+1)Q) ……式(6)
【0096】この式(6)において、Gi+1の要素(m
i+1+1)P+(ni+1+1)Qは、Giを求めるために
は必要のない要素である。
【0097】また、(ki,li)=(0,1)の場合、
4点の集合Gi+1と、4点の集合Giとの対応関係は前述
の式(3)で示されるが、式(3)において、Gi+1
要素(mi+1+1)P+ni+1Qは、Giを求めるために
は必要のない要素である。
【0098】また、(ki,li)=(1,0)の場合、
4点の集合Gi+1と、4点の集合Giとの対応関係は前述
の式(4)で示されるが、式(4)において、Gi+1
要素mi+1P+(ni+1+1)Qは、Giを求めるために
は必要のない要素である。
【0099】また、(ki,li)=(1,1)の場合、
4点の集合Gi+1と、4点の集合Giとの対応関係は前述
の式(5)で示されるが、式(5)は、以下のように変
形することができる。
【0100】
【数7】 miP+niQ=((mi+1+1)P+ni+1Q))+(mi+1P+(ni+1+1) Q) miP+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+(mi+1P +(ni+1+1)Q) (mi+1)P+niQ=((mi+1+1)P+(ni+1+1)Q)+((mi+1 +1)P+ni+1Q) (mi+1)P+(ni+1)Q=2((mi+1+1)P+(ni+1+1)Q) ……式(7)
【0101】上記式(7)から明らかなように、Gi+1
の要素mi+1P+ni+1Qは、Giを求めるためには必要
のない要素である。
【0102】上述のように、第1実施例において説明し
た、(ki,li)の各場合における4点の集合G
i+1と、4点の集合Giとの対応関係式において、Gi+1
の要素(mi +1+1−ki)P+(ni+1+1−li)Qを
iを求めるためには必要のない要素として定義するこ
とができる。
【0103】そこで、第1実施例で適用した4点の集合
iを3点の集合G’iとして、以下の式(8)のように
定義する。
【0104】
【数8】 G’i=Gi−{(mi+1−ki-1)P+(ni+1−li-1)Q} ……式(8)
【0105】このとき、G’i+1からGiを計算すること
ができるから、G’i+1からG’iを計算することができ
る。ここで、G’i+1からG’iを計算する際には、その
計算方法は、(ki,li)に依存するが、さらに、Gi
からG’iを定義する際に(k i-1,li-1)に依存する
ため、G’i+1からG’iを計算する際には、その計算方
法は、(ki,li,ki-1,li-1)に依存する。
【0106】以下、(ki,li,ki-1,li-1)に応じ
たG’i+1からG’iを計算する手法について説明する。
【0107】まず、(ki,li,ki-1,li-1)=
(0,0,0,0)の場合、 G’i+1={mi+1P+ni+1Q,mi+1P+(ni+1
1)Q,(mi+1+1)P+ni+1Q} G’i={miP+niQ,miP+(ni+1)Q,(mi
+1)P+niQ} となるから、前述の式(6)に基づいて、下式(9)に
従って、G’i+1からG’iを計算する。
【0108】
【数9】 miP+niQ=2(mi+1P+ni+1Q) miP+(ni+1)Q=(mi+1P+(ni+1+1)Q)+(mi+1P+ni+1Q ) (mi+1)P+niQ=((mi+1+1)P+ni+1Q)+(mi+1P+ni+1Q ) ……式(9)
【0109】次に、(ki,li,ki-1,li-1)=
(0,0,0,1)の場合、 G’i+1={mi+1P+ni+1Q,mi+1P+(ni+1
1)Q,(mi+1+1)P+ni+1Q} G’i={miP+niQ,miP+(ni+1)Q,(mi
+1)P+(ni+1)Q} となるから、前述の式(6)に基づいて、下式(10)
に従って、G’i+1からG’iを計算する。
【0110】
【数10】 miP+niQ=2(mi+1P+ni+1Q) miP+(ni+1)Q=(mi+1P+(ni+1+1)Q)+(mi+1P+ni+1Q ) (mi+1)P+(ni+1)Q=((mi+1+1)P+ni+1Q)+(mi+1P +(ni+1+1)Q) ……式(10)
【0111】次に、(ki,li,ki-1,li-1)=
(0,0,1,0)の場合、 G’i+1={mi+1P+ni+1Q,mi+1P+(ni+1
1)Q,(mi+1+1)P+ni+1Q} G’i={miP+niQ,(mi+1)P+niQ,(mi
+1)P+(ni+1)Q} となるから、前述の式(6)に基づいて、下式(11)
に従って、G’i+1からG’iを計算する。
【0112】
【数11】 miP+niQ=2(mi+1P+ni+1Q) (mi+1)P+niQ=((mi+1+1)P+ni+1Q)+(mi+1P+ni+1Q ) (mi+1)P+(ni+1)Q=((mi+1+1)P+ni+1Q)+(mi+1P +(ni+1+1)Q) ……式(11)
【0113】次に、(ki,li,ki-1,li-1)=
(0,0,1,1)の場合、 G’i+1={mi+1P+ni+1Q,mi+1P+(ni+1
1)Q,(mi+1+1)P+ni+1Q} G’i={miP+(ni+1)Q,(mi+1)P+ni
Q,(mi+1)P+(ni+1)Q} となるから、前述の式(6)に基づいて、下式(12)
に従って、G’i+1からG’iを計算する。
【0114】
【数12】 miP+(ni+1)Q=(mi+1P+(ni+1+1)Q)+(mi+1P+ni+1Q ) (mi+1)P+niQ=((mi+1+1)P+ni+1Q)+(mi+1P+ni+1Q ) (mi+1)P+(ni+1)Q=((mi+1+1)P+ni+1Q)+(mi+1P +(ni+1+1)Q) ……式(12)
【0115】次に、(ki,li,ki-1,li-1)=
(0,1,0,0)の場合、 G’i+1={mi+1P+ni+1Q,mi+1P+(ni+1
1)Q,(mi+1+1)P+(ni+1+1)Q} G’i={miP+niQ,miP+(ni+1)Q,(mi
+1)P+niQ} となるから、前述の式(3)に基づいて、下式(13)
に従って、G’i+1からG’iを計算する。
【0116】
【数13】 miP+niQ=(mi+1P+(ni+1+1)Q)+(mi+1P+ni+1Q) miP+(ni+1)Q=2(mi+1P+(ni+1+1)Q) (mi+1)P+niQ=((mi+1+1)P+(ni+1+1)Q)+(mi+1P +ni+1Q) ……式(13)
【0117】次に、(ki,li,ki-1,li-1)=
(0,1,0,1)の場合、 G’i+1={mi+1P+ni+1Q,mi+1P+(ni+1
1)Q,(mi+1+1)P+(ni+1+1)Q} G’i={miP+niQ,miP+(ni+1)Q,(mi
+1)P+(ni+1)Q} となるから、前述の式(3)に基づいて、下式(14)
に従って、G’i+1からG’iを計算する。
【0118】
【数14】 miP+niQ=(mi+1P+(ni+1+1)Q)+(mi+1P+ni+1Q) miP+(ni+1)Q=2(mi+1P+(ni+1+1)Q) (mi+1)P+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+( mi+1P+(ni+1+1)Q) ……式(14)
【0119】次に、(ki,li,ki-1,li-1)=
(0,1,1,0)の場合、 G’i+1={mi+1P+ni+1Q,mi+1P+(ni+1
1)Q,(mi+1+1)P+(ni+1+1)Q} G’i={miP+niQ,(mi+1)P+niQ,(mi
+1)P+(ni+1)Q} となるから、前述の式(3)に基づいて、下式(15)
に従って、G’i+1からG’iを計算する。
【0120】
【数15】 miP+niQ=(mi+1P+(ni+1+1)Q)+(mi+1P+ni+1Q) (mi+1)P+niQ=((mi+1+1)P+(ni+1+1)Q)+(mi+1P +ni+1Q) (mi+1)P+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+( mi+1P+(ni+1+1)Q) ……式(15)
【0121】次に、(ki,li,ki-1,li-1)=
(0,1,1,1)の場合、 G’i+1={mi+1P+ni+1Q,mi+1P+(ni+1
1)Q,(mi+1+1)P+(ni+1+1)Q} G’i={miP+(ni+1)Q,(mi+1)P+ni
Q,(mi+1)P+(ni+1)Q} となるから、前述の式(3)に基づいて、下式(16)
に従って、G’i+1からG’iを計算する。
【0122】
【数16】 miP+(ni+1)Q=2(mi+1P+(ni+1+1)Q) (mi+1)P+niQ=((mi+1+1)P+(ni+1+1)Q)+(mi+1P +ni+1Q) (mi+1)P+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+( mi+1P+(ni+1+1)Q) ……式(16)
【0123】次に、(ki,li,ki-1,li-1)=
(1,0,0,0)の場合、 G’i+1={mi+1P+ni+1Q,(mi+1+1)P+n
i+1Q,(mi+1+1)P+(ni+1+1)Q} G’i={miP+niQ,miP+(ni+1)Q,(mi
+1)P+niQ} となるから、前述の式(4)に基づいて、下式(17)
に従って、G’i+1からG’iを計算する。
【0124】
【数17】 miP+niQ=((mi+1+1)P+ni+1Q)+(mi+1P+ni+1Q) miP+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+(mi+1P +ni+1Q) (mi+1)P+niQ=2((mi+1+1)P+ni+1Q) ……式(17)
【0125】次に、(ki,li,ki-1,li-1)=
(1,0,0,1)の場合、 G’i+1={mi+1P+ni+1Q,(mi+1+1)P+n
i+1Q,(mi+1+1)P+(ni+1+1)Q} G’i={miP+niQ,miP+(ni+1)Q,(mi
+1)P+(ni+1)Q} となるから、前述の式(4)に基づいて、下式(18)
に従って、G’i+1からG’iを計算する。
【0126】
【数18】 miP+niQ=((mi+1+1)P+ni+1Q)+(mi+1P+ni+1Q) miP+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+(mi+1P +ni+1Q) (mi+1)P+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+( (mi+1+1)P+ni+1Q) ……式(18)
【0127】次に、(ki,li,ki-1,li-1)=
(1,0,1,0)の場合、 G’i+1={mi+1P+ni+1Q,(mi+1+1)P+n
i+1Q,(mi+1+1)P+(ni+1+1)Q} G’i={miP+niQ,(mi+1)P+niQ,(mi
+1)P+(ni+1)Q} となるから、前述の式(4)に基づいて、下式(19)
に従って、G’i+1からG’iを計算する。
【0128】
【数19】 miP+niQ=((mi+1+1)P+ni+1Q)+(mi+1P+ni+1Q) (mi+1)P+niQ=2((mi+1+1)P+ni+1Q) (mi+1)P+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+( (mi+1+1)P+ni+1Q) ……式(19)
【0129】次に、(ki,li,ki-1,li-1)=
(1,0,1,1)の場合、 G’i+1={mi+1P+ni+1Q,(mi+1+1)P+n
i+1Q,(mi+1+1)P+(ni+1+1)Q} G’i={miP+(ni+1)Q,(mi+1)P+ni
Q,(mi+1)P+(ni+1)Q} となるから、前述の式(4)に基づいて、下式(20)
に従って、G’i+1からG’iを計算する。
【0130】
【数20】 miP+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+(mi+1P +ni+1Q) (mi+1)P+niQ=2((mi+1+1)P+ni+1Q) (mi+1)P+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+( (mi+1+1)P+ni+1Q) ……式(20)
【0131】次に、(ki,li,ki-1,li-1)=
(1,1,0,0)の場合、 G’i+1={mi+1P+(ni+1+1)Q,(mi+1+1)
P+ni+1Q,(mi+1+1)P+(ni+1+1)Q} G’i={miP+niQ,miP+(ni+1)Q,(mi
+1)P+niQ} となるから、前述の式(7)に基づいて、下式(21)
に従って、G’i+1からG’iを計算する。
【0132】
【数21】 miP+niQ=((mi+1+1)P+ni+1Q)+(mi+1P+(ni+1+1)Q ) miP+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+(mi+1P +(ni+1+1)Q) (mi+1)P+niQ=((mi+1+1)P+(ni+1+1)Q)+((mi+1 +1)P+ni+1Q) ……式(21)
【0133】次に、(ki,li,ki-1,li-1)=
(1,1,0,1)の場合、 G’i+1={mi+1P+(ni+1+1)Q,(mi+1+1)
P+ni+1Q,(mi+1+1)P+(ni+1+1)Q} G’i={miP+niQ,miP+(ni+1)Q,(mi
+1)P+(ni+1)Q} となるから、前述の式(7)に基づいて、下式(22)
に従って、G’i+1からG’iを計算する。
【0134】
【数22】 miP+niQ=((mi+1+1)P+ni+1Q)+(mi+1P+(ni+1+1)Q ) miP+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+(mi+1P +(ni+1+1)Q) (mi+1)P+(ni+1)Q=2((mi+1+1)P+(ni+1+1)Q) ……式(22)
【0135】次に、(ki,li,ki-1,li-1)=
(1,1,1,0)の場合、 G’i+1={mi+1P+(ni+1+1)Q,(mi+1+1)
P+ni+1Q,(mi+1+1)P+(ni+1+1)Q} G’i={miP+niQ,(mi+1)P+niQ,(mi
+1)P+(ni+1)Q} となるから、前述の式(7)に基づいて、下式(23)
に従って、G’i+1からG’iを計算する。
【0136】
【数23】 miP+niQ=((mi+1+1)P+ni+1Q)+(mi+1P+(ni+1+1)Q ) (mi+1)P+niQ=((mi+1+1)P+(ni+1+1)Q)+((mi+1 +1)P+ni+1Q) (mi+1)P+(ni+1)Q=2((mi+1+1)P+(ni+1+1)Q) ……式(23)
【0137】最後に、(ki,li,ki-1,li-1)=
(1,1,1,1)の場合、 G’i+1={mi+1P+(ni+1+1)Q,(mi+1+1)
P+ni+1Q,(mi+1+1)P+(ni+1+1)Q} G’i={miP+(ni+1)Q,(mi+1)P+ni
Q,(mi+1)P+(ni+1)Q} となるから、前述の式(7)に基づいて、下式(24)
に従って、G’i+1からG’iを計算する。
【0138】
【数24】 miP+(ni+1)Q=((mi+1+1)P+(ni+1+1)Q)+(mi+1P +(ni+1+1)Q) (mi+1)P+niQ=((mi+1+1)P+(ni+1+1)Q)+((mi+1 +1)P+ni+1Q) (mi+1)P+(ni+1)Q=2((mi+1+1)P+(ni+1+1)Q) ……式(24)
【0139】以上の各式により、(ki,li,ki-1
i-1)の取り得るすべての場合について、G’i+1から
G’iが算出できる。
【0140】第2実施例を適用してW=kP+lQを求
める処理について、図3以下に示すフローチャートを用
いて説明する。なお、当フローの概略は、G’iをG’i
={T0[i],T1[i],T2[i]}と表現し、m
t+1=0、nt+1=0により、G’i+1の初期値を定めて
G’iを計算してW=kP+lQを求める処理である。
【0141】まず、ステップS201において、P,
Q,k,l,rを入力する。次に、ステップS202、
S203において、kPが無限遠点(O)である場合に
ついての判定を行なう。
【0142】具体的には、ステップS202において、
点Pが無限遠点(O)であると判定された場合には、k
Pは無限遠点(O)となるから、W=lQとなり、lQ
の計算を行なうためにステップS208へ進む。同様
に、ステップS203において、kが0と判定された場
合には、kPは無限遠点(O)となるから、W=lQと
なり、lQの計算を行なうためにステップS208へ進
む。ステップS208では、QをPに、lをkに代入し
てlQをkPの計算に変換し、ステップS211へ進
む。
【0143】次に、ステップS204、S205におい
て、lQが無限遠点(O)である場合についての判定を
行なう。
【0144】具体的には、ステップS204において、
点Qが無限遠点(O)であると判定された場合には、l
Qは無限遠点(O)となるから、W=kPとなり、kP
の計算を行なうためにステップS211へ進む。同様
に、ステップS205において、lが0と判定された場
合には、lQは無限遠点(O)となるから、W=kPと
なり、kPの計算を行なうためにステップS211へ進
む。
【0145】ステップS206では、P=Qかを判定す
る。P=Qであれば、kP+lQ=(k+l)Pとなる
から、ステップS209において、k=k+lmodr
として、(k+l)PをkPの計算に変換し、ステップ
S211へ進む。ステップS207では、P=−Qかを
判定する。P=−Qであれば、W=kP+lQ=(k−
l)Pとなるから、ステップS210において、k=k
−lmodrとして、(k−l)PをkPの計算に変換
し、ステップS211へ進む。
【0146】ステップS211では、ステップS202
〜S207において「Yes」と判定されている場合に
おいては、kP+lQの計算は、ステップS208〜S
210において、kPの計算に変換されているから、
P,kを入力としてスカラー倍計算を行ない、出力Wを
得て終了する。
【0147】ステップS212では、P,Qの加算点P
+Qと差分点P−Qを求める。ステップS213では、
kを2進展開し、ステップS214ではlを2進展開す
る。このとき、kt=1、または、lt=1である。
【0148】ステップS215〜S219ではG’i
初期値G’t+1を求める。まず、ステップS215で、
(kt,lt)=(0,1)と判定された場合には、式
(1)、(8)により、G’t+1={O(無限遠点),
Q,P+Q}だから、 ステップS217で、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P+Q を代入する。
【0149】次に、ステップS216で、(kt,lt
=(1,0)と判定された場合には、式(1)、(8)
により、G’t+1={O(無限遠点),P,P+Q}だ
から、ステップS217で、 T0[t+1]=O(無限遠点) T1[t+1]=P T2[t+1]=P+Q を代入する。
【0150】最後に、ステップS216、S217でN
oと判定された場合、つまり、(k t,lt)=(1,
1)と判定された場合には、式(1)、(8)により、
G’t+1={Q,P,P+Q}だから、ステップS21
7で、 T0[t+1]=Q T1[t+1]=P T2[t+1]=P+Q を代入する。
【0151】その後、ステップS220でi=tと初期
化する。ステップS221〜S229では、(ki
i,ki-1,li-1)の値に応じて、G’i+1からG’i
を算出し、最終的にG’1を求める。
【0152】ステップS221で、(ki,li)=
(0,0)と判定された場合には、ステップS224の
処理を実行する。ステップS224の処理の詳細フロー
を図6に示す。
【0153】図6のステップS301で、(ki-1,l
i-1)=(0,0)と判定された場合には、前述の式
(9)に従って、ステップS304において、 T0[i]=2T0[i+1] T1[i]=T1[i+1]+T0[i+1] T2[i]=T2[i+1]+T0[i+1] と代入し、G’i+1からG’iを計算する。
【0154】また、ステップS302で、(ki-1,l
i-1)=(0,1)と判定された場合には、前述の式
(10)に従って、ステップS305において、 T0[i]=2T0[i+1] T1[i]=T1[i+1]+T0[i+1] T2[i]=T2[i+1]+T1[i+1] と代入し、G’i+1からG’iを計算する。
【0155】また、ステップS303で、(ki-1,l
i-1)=(1,0)と判定された場合には、前述の式
(11)に従って、ステップS306において、 T0[i]=2T0[i+1] T1[i]=T2[i+1]+T0[i+1] T2[i]=T2[i+1]+T1[i+1] と代入し、G’i+1からG’iを計算する。
【0156】また、ステップS301〜S303でNo
と判定された場合、すなわち、(k i-1,li-1)=
(1,1)と判定された場合には、前述の式(12)に
従って、ステップS307において、 T0[i]=T1[i+1]+T0[i+1] T1[i]=T2[i+1]+T0[i+1] T2[i]=T2[i+1]+T1[i+1] と代入し、G’i+1からG’iを計算する。
【0157】ステップS304〜S307では、点の加
算の際に必要な差分点は、 T1[i+1]−T0[i+1]=Q T2[i+1]−T0[i+1]=P T2[i+1]−T1[i+1]=P−Q となる。いずれの場合もステップS228に進む。
【0158】ステップS222で、(ki,li)=
(0,1)と判定された場合には、ステップS225の
処理を実行する。ステップS225の処理の詳細フロー
を図7に示す。
【0159】図7のステップS401で、(ki-1,l
i-1)=(0,0)と判定された場合には、前述の式
(13)に従って、ステップS404において、 T0[i]=T1[i+1]+T0[i+1] T1[i]=2T1[i+1] T2[i]=T2[i+1]+T0[i+1] と代入し、G’i+1からG’iを計算する。
【0160】また、ステップS402で、(ki-1,l
i-1)=(0,1)と判定された場合には、前述の式
(14)に従って、ステップS405において、 T0[i]=T1[i+1]+T0[i+1] T1[i]=2T1[i+1] T2[i]=T2[i+1]+T1[i+1] と代入し、G’i+1からG’iを計算する。
【0161】また、ステップS403で、(ki-1,l
i-1)=(1,0)と判定された場合には、前述の式
(15)に従って、ステップS406において、 T0[i]=T1[i+1]+T0[i+1] T1[i]=T2[i+1]+T0[i+1] T2[i]=T2[i+1]+T1[i+1] と代入し、G’i+1からG’iを計算する。
【0162】また、ステップS401〜S403でNo
と判定された場合、すなわち、(k i-1,li-1)=
(1,1)と判定された場合には、前述の式(16)に
従って、ステップS407において、 T0[i]=2T1[i+1] T1[i]=T2[i+1]+T0[i+1] T2[i]=T2[i+1]+T1[i+1] と代入し、G’i+1からG’iを計算する。
【0163】ステップS404〜S407では、点の加
算の際に必要な差分点は、 T1[i+1]−T0[i+1]=Q T2[i+1]−T0[i+1]=P+Q T2[i+1]−T1[i+1]=P となる。いずれの場合もステップS228に進む。
【0164】ステップS223で、(ki,li)=
(1,0)と判定された場合には、ステップS226の
処理を実行する。ステップS226の処理の詳細フロー
を図8に示す。
【0165】図8のステップS501で、(ki-1,l
i-1)=(0,0)と判定された場合には、前述の式
(17)に従って、ステップS504において、 T0[i]=T1[i+1]+T0[i+1] T1[i]=T2[i+1]+T0[i+1] T2[i]=2T1[i+1] と代入し、G’i+1からG’iを計算する。
【0166】また、ステップS502で、(ki-1,l
i-1)=(0,1)と判定された場合には、前述の式
(18)に従って、ステップS505において、 T0[i]=T1[i+1]+T0[i+1] T1[i]=T2[i+1]+T1[i+1] T2[i]=T2[i+1]+T1[i+1] と代入し、G’i+1からG’iを計算する。
【0167】また、ステップS503で、(ki-1,l
i-1)=(1,0)と判定された場合には、前述の式
(19)に従って、ステップS506において、 T0[i]=T1[i+1]+T0[i+1] T1[i]=2T1[i+1] T2[i]=T2[i+1]+T1[i+1] と代入し、G’i+1からG’iを計算する。
【0168】また、ステップS501〜S503でNo
と判定された場合、すなわち、(k i-1,li-1)=
(1,1)と判定された場合には、前述の式(20)に
従って、ステップS507において、 T0[i]=T2[i+1]+T0[i+1] T1[i]=2T1[i+1] T2[i]=T2[i+1]+T1[i+1] と代入し、G’i+1からG’iを計算する。
【0169】ステップS504〜S507では、点の加
算の際に必要な差分点は、 T1[i+1]−T0[i+1]=P T2[i+1]−T0[i+1]=P+Q T2[i+1]−T1[i+1]=Q となる。いずれの場合もステップS228に進む。
【0170】ステップS221〜S223でNoと判定
された場合、すなわち(ki,li)=(1,1)と判定
された場合には、ステップS227の処理を実行する。
ステップS227の処理の詳細フローを図9に示す。
【0171】図9のステップS601で、(ki-1,l
i-1)=(0,0)と判定された場合には、前述の式
(21)に従って、ステップS604において、 T0[i]=T1[i+1]+T0[i+1] T1[i]=T2[i+1]+T0[i+1] T2[i]=T2[i+1]+T1[i+1] と代入し、G’i+1からG’iを計算する。
【0172】また、ステップS602で、(ki-1,l
i-1)=(0,1)と判定された場合には、前述の式
(22)に従って、ステップS605において、 T0[i]=T1[i+1]+T0[i+1] T1[i]=T2[i+1]+T0[i+1] T2[i]=2T2[i+1] と代入し、G’i+1からG’iを計算する。
【0173】また、ステップS603で、(ki-1,l
i-1)=(1,0)と判定された場合には、前述の式
(23)に従って、ステップS606において、 T0[i]=T1[i+1]+T0[i+1] T1[i]=T2[i+1]+T1[i+1] T2[i]=2T2[i+1] と代入し、G’i+1からG’iを計算する。
【0174】また、ステップS601〜S603でNo
と判定された場合、すなわち、(k i-1,li-1)=
(1,1)と判定された場合には、前述の式(24)に
従って、ステップS607において、 T0[i]=T2[i+1]+T0[i+1] T1[i]=T2[i+1]+T1[i+1] T2[i]=2T2[i+1] と代入し、G’i+1からG’iを計算する。
【0175】ステップS604〜S607では、点の加
算の際に必要な差分点は、 T1[i+1]−T0[i+1]=P−Q T2[i+1]−T0[i+1]=P T2[i+1]−T1[i+1]=Q となる。いずれの場合もステップS228に進む。
【0176】ステップS228では、iにi−1を代入
し、ステップS229では、i≧1を判定し、i≧1で
ある場合には、ステップS221に戻り、同様の処理を
繰り返し実行する。
【0177】ステップS229でi≧1がNoと判定さ
れた場合は、G’1が算出されたことになり、ステップ
S230に進む。
【0178】ステップS230〜S236では、G’1
からWを求める。WはG’0を構成する3点の1つの点
であり、kP+lQに相当する。
【0179】ステップS230で、(k0,l0)=
(0,0)と判定された場合には、T0[1]=m1P+
1Qで、 k=m0=2m1、 l=n0=2n1、 だから、ステップS233で、W=2T0[1]を代入
して終了する。
【0180】ステップS231で、(k0,l0)=
(0,1)と判定された場合には、 T0[1]=m1P+n1Q、 T1[1]=m1P+(n1+1)Qで、 k=m0=2m1、 l=n0=2n1+1、 だから、ステップS234で、W=T1[1]+T
0[1]を代入して終了する。このとき、点の加算の際
に必要な差分点は、T1[1]−T0[1]=Qである。
【0181】ステップS232で、(k0,l0)=
(1,0)と判定された場合には、 T0[1]=m1P+n1Q、 T1[1]=(m1+1)P+n1Qで、 k=m0=2m1+1、 l=n0=2n1、 だから、ステップS235で、W=T1[1]+T
0[1]を代入して終了する。このとき、点の加算の際
に必要な差分点は、T1[1]−T0[1]=Pである。
【0182】ステップS230〜S232でNoと判定
された場合、すなわち、(k0,l0)=(1,1)と判
定された場合には、 T0[1]=m1P+(n1+1)Q、 T1[1]=(m1+1)P+n1Qで、 k=m0=2m1+1、 l=n0=2n1+1、 だから、ステップS236で、W=T1[1]+T
0[1]を代入して終了する。このとき、点の加算の際
に必要な差分点は、T1[1]−T0[1]=P−Qであ
る。
【0183】以上、説明したように、上述したように、
本発明の構成においては、スカラー倍算:kP+lQ
を、楕円上の3点の集合G’iを定義して実行すること
により、高速に結果を出力することができる。
【0184】なお、上述した第1実施例、第2実施例と
も、素体上のモンゴメリ型楕円曲線、および2の拡大体
上の楕円曲線において、実施可能であり、また、アフィ
ン座標系および射影座標系のどちらにおいても実施可能
である。
【0185】[システム構成例]なお、上述の実施例で
述べた一連の処理は、ハードウェア、ソフトウェアの組
合わせにより行うことができる。即ち、汎用のコンピュ
ータや、マイクロコンピュータにプログラムを実行させ
ることにより行う構成とすることが可能である。一連の
処理をソフトウェアによって行う場合には、そのソフト
ウェアを構成するプログラムが、例えば汎用のコンピュ
ータや1チップのマイクロコンピュータ等にインストー
ルされる。図10は、上述した一連の処理を実行するプ
ログラムがインストールされるコンピュータの一実施の
形態の構成例を示している。
【0186】図10に示すシステム構成例は1つの例で
あり、システムは、ここに示すべての機能を必ずしも備
えることが要求されるものではない。図10に示すCP
U(Central processing Unit)101は、各種アプリケ
ーションプログラムや、OS(Operating System)を実
行するプロセッサである。ROM(Read-Only-Memory)
102は、CPU101が実行するプログラム、あるい
は演算パラメータとしての固定データを格納する。RA
M(Random Access Memory)103は、CPU101の
処理において実行されるプログラム、およびプログラム
処理において適宜変化するパラメータの格納エリア、ワ
ーク領域として使用される。
【0187】HDD104はハードディスクの制御を実
行し、ハードディスクに対する各種データ、プログラム
の格納処理および読み出し処理を実行する。暗号処理手
段105は、送信データの暗号処理、復号処理等を実行
する。なお、ここでは、暗号処理手段を個別モジュール
とした例を示したが、このような独立した暗号処理モジ
ュールを設けず、例えば暗号処理プログラムをROM1
02に格納し、CPU101がROM格納プログラムを
読み出して実行するように構成してもよい。メモリ(セ
キュアモジュール)106は例えば耐タンパ構造を持つ
メモリとして構成され、暗号処理に必要な鍵データ、ア
クセス許可書の格納領域として使用可能である。なお、
これらのデータは、他のメモリ領域、記憶媒体に格納す
ることも可能である。
【0188】バス121はPCI(Peripheral Compone
nt Internet/Interface)バス等により構成され、各モ
ジュール、入出力インタフェース122を介した各入手
力装置とのデータ転送を可能にしている。
【0189】入力部111は、例えばキーボード、ポイ
ンティングデバイス等によって構成され、CPU101
に各種のコマンド、データを入力するためにユーザによ
り操作される。出力部112は、例えばCRT、液晶デ
ィスプレイ等であり、各種情報をテキストまたはイメー
ジ等により表示する。
【0190】通信部113はシステムの接続したエンテ
ィテイ、例えば暗号データの通信エンティテイとの通信
処理を実行し、CPU101の制御の下に、各記憶部か
ら供給されたデータ、あるいはCPU101によって処
理されたデータ、暗号化されたデータ等を送信したり、
他エンティテイからのデータを受信する処理を実行す
る。
【0191】ドライブ114は、フロッピー(登録商
標)ディスク、CD−ROM(Compact Disc Read Only
Memory),MO(Magneto optical)ディスク,DVD(Dig
ital Versatile Disc)、磁気ディスク、半導体メモリな
どのリムーバブル記録媒体115の記録再生を実行する
ドライブであり、各リムーバブル記録媒体115からの
プログラムまたはデータ再生、リムーバブル記録媒体1
15に対するプログラムまたはデータ格納を実行する。
【0192】各記憶媒体に記録されたプログラムまたは
データを読み出してCPU101において実行または処
理を行なう場合は、読み出したプログラム、データはイ
ンタフェース122、バス121を介して例えば接続さ
れているRAM103に供給される。
【0193】先に各フロー図を参照した説明内に含まれ
る楕円曲線処理演算を実行するためのプログラムは例え
ばROM102に格納されてCPU101によって処理
されるか、あるいはハードディスクに格納されHDD1
04を介してCPU101に供給されて実行される。
【0194】図10に示す暗号処理手段105につい
て、機能別に詳細な処理ブロックとして示した図が図1
1である。図11に示すように、暗号処理手段105
は、データの暗号化処理、復号処理、署名生成、検証
等、各種暗号処理に伴う演算を実行する暗号処理演算部
201、楕円曲線の生成処理を実行する楕円曲線生成部
202、公開鍵暗号方式に適用する公開鍵、秘密鍵の生
成処理を実行する公開鍵秘密鍵生成部203、鍵の生
成、その他各種演算に用いる乱数を発生する乱数発生部
204、暗号処理演算に適用する各種パラメータ等を記
憶する記憶部205を有する。
【0195】例えば、外部から入力された平文の暗号
化、暗号文の復号、または署名の生成、署名の検証処理
等を実行する場合は、楕円曲線生成部202でまず楕円
曲線を生成し、公開鍵秘密鍵生成部203において生成
した鍵を用いて、暗号処理演算部201において各種暗
号処理を実行する。
【0196】例えば、楕円曲線生成部203は、By2
=x3+Ax2+xで表されるモンゴメリ(Montgomery)
型楕円曲線EM(GF(p))を生成する処理を実行
し、暗号処理演算部201は、楕円曲線生成部203に
おいて生成された楕円曲線に基づいて、前述のスカラー
倍演算処理を実行する。すなわち、暗号処理演算部20
1は、By2=x3+Ax2+xで表されるモンゴメリ(M
ontgomery)型楕円曲線EM(GF(p))を射影座標系
(X,Y,Z)に変換し、前記射影座標系(X,Y,
Z)において、Gi+1からGiを算出可能な4点の集合G
iを定義し、前記Giに基づいて、G’i+1からG’iを算
出が可能3点の集合G’iを定義し、mt+ 1=0,nt+1
=0として、初期値G’t+1を設定し(ki,li
i-1,li-1)に応じてG’iを計算してG’1を算出
し、前記G’1からkP+lQを求める演算処理等を実
行する。
【0197】以上、特定の実施例を参照しながら、本発
明について詳解してきた。しかしながら、本発明の要旨
を逸脱しない範囲で当業者が該実施例の修正や代用を成
し得ることは自明である。すなわち、例示という形態で
本発明を開示してきたのであり、限定的に解釈されるべ
きではない。本発明の要旨を判断するためには、冒頭に
記載した特許請求の範囲の欄を参酌すべきである。
【0198】なお、明細書中において説明した一連の処
理はハードウェア、またはソフトウェア、あるいは両者
の複合構成によって実行することが可能である。ソフト
ウェアによる処理を実行する場合は、処理シーケンスを
記録したプログラムを、専用のハードウェアに組み込ま
れたコンピュータ内のメモリにインストールして実行さ
せるか、あるいは、各種処理が実行可能な汎用コンピュ
ータにプログラムをインストールして実行させることが
可能である。
【0199】例えば、プログラムは記録媒体としてのハ
ードディスクやROM(Read OnlyMemory)に予め記録し
ておくことができる。あるいは、プログラムはフロッピ
ーディスク、CD−ROM(Compact Disc Read Only Me
mory),MO(Magneto optical)ディスク,DVD(Digit
al Versatile Disc)、磁気ディスク、半導体メモリなど
のリムーバブル記録媒体に、一時的あるいは永続的に格
納(記録)しておくことができる。このようなリムーバ
ブル記録媒体は、いわゆるパッケージソフトウエアとし
て提供することができる。
【0200】なお、プログラムは、上述したようなリム
ーバブル記録媒体からコンピュータにインストールする
他、ダウンロードサイトから、コンピュータに無線転送
したり、LAN(Local Area Network)、インターネット
といったネットワークを介して、コンピュータに有線で
転送し、コンピュータでは、そのようにして転送されて
くるプログラムを受信し、内蔵するハードディスク等の
記録媒体にインストールすることができる。
【0201】なお、明細書に記載された各種の処理は、
記載に従って時系列に実行されるのみならず、処理を実
行する装置の処理能力あるいは必要に応じて並列的にあ
るいは個別に実行されてもよい。また、本明細書におい
てシステムとは、複数の装置の論理的集合構成であり、
各構成の装置が同一筐体内にあるものには限らない。
【0202】
【発明の効果】以上、説明したように、本発明の楕円曲
線暗号処理装置および楕円曲線暗号処理方法、並びにプ
ログラムによれば、素体上のモンゴメリ(Montgo
mery)型楕円曲線上、あるいは2の拡大体上の楕円
曲線上におけるスカラー倍演算において、高速化したス
カラー倍算が可能となる。
【0203】さらに、本発明の楕円曲線暗号処理装置お
よび楕円曲線暗号処理方法、並びにプログラムによれ
ば、例えば素体上のモンゴメリ(Montgomer
y)型楕円曲線暗号処理演算、あるいは2の拡大体上の
楕円曲線上において、2つのスカラー倍演算:kP,l
Qを別々に実行せずにkP+lQの演算処理を同時に行
なうことで高速化が実現される。すなわち、初期点を4
点、あるいは3点設定し、k,lの2進データ(ki
i,ki-1,li-1)に応じて算出済みの4点の集合G
i+1から次の4点の集合Gi、または算出済みの3点の集
合G’i+1から次の3点の集合G’iを順次算出する処理
によって高速化したスカラー倍算処理が可能となる。ま
た、yまたはY座標の復元の処理が不要であることがさ
らなる高速処理を可能としている。
【0204】さらに、本発明の楕円曲線暗号処理装置お
よび楕円曲線暗号処理方法、並びにプログラムにおける
3点の集合G’iを順次算出する手法によれば、従来の
楕円曲線暗号処理のスカラー倍算:kP+lQの演算に
比較し、3/4倍、つまり25%の高速化が可能とな
る。また、yまたはY座標の復元を必要としない。
【図面の簡単な説明】
【図1】楕円曲線上の4点を用いたスカー倍算処理フロ
ー(その1)を示す図である。
【図2】楕円曲線上の4点を用いたスカー倍算処理フロ
ー(その2)を示す図である。
【図3】楕円曲線上の3点を用いたスカー倍算処理フロ
ー(その1)を示す図である。
【図4】楕円曲線上の3点を用いたスカー倍算処理フロ
ー(その2)を示す図である。
【図5】楕円曲線上の3点を用いたスカー倍算処理フロ
ー(その3)を示す図である。
【図6】楕円曲線上の3点を用いたスカー倍算処理フロ
ーにおける(ki,li)=(0,0)の場合の処理フロ
ーを示す図である。
【図7】楕円曲線上の3点を用いたスカー倍算処理フロ
ーにおける(ki,li)=(0,1)の場合の処理フロ
ーを示す図である。
【図8】楕円曲線上の3点を用いたスカー倍算処理フロ
ーにおける(ki,li)=(1,0)の場合の処理フロ
ーを示す図である。
【図9】楕円曲線上の3点を用いたスカー倍算処理フロ
ーにおける(ki,li)=(1,1)の場合の処理フロ
ーを示す図である。
【図10】楕円曲線スカラー倍同時計算処理を実行する
システム構成例を示す図である。
【図11】楕円曲線スカラー倍同時計算処理を実行する
暗号処理手段構成例を示す図である。
【符号の説明】
101 CPU 102 ROM 103 RAM 104 HDD 105 暗号処理手段 106 メモリ 111 入力部 112 出力部 113 通信部 114 リムーバブル記憶媒体 121 バス 122 入出力インタフェース 201 暗号処理演算部 202 楕円曲線生成部 203 公開鍵秘密鍵生成部 204 乱数発生部 205 記憶部

Claims (28)

    【特許請求の範囲】
  1. 【請求項1】素体上のモンゴメリ(Montgomery)型楕円
    曲線By2=x3+Ax2+xを適用した楕円曲線暗号処
    理方法であり、 前記モンゴメリ(Montgomery)型楕円曲線By2=x3
    Ax2+x上の点:Pのスカラー量(k)倍の点:kP
    と、該モンゴメリ(Montgomery)型楕円曲線By2=x3
    +Ax2+x上の点:Qのスカラー量(l)倍の点:l
    Qとの加算点:kP+lQの算出において、 前記点Pと点Qに基づいて初期点とする4点の集合G
    t+1を計算する初期点算出ステップと、 前記スカラー量k,lの2進表現データのk,lの各ビ
    ット値の組み合わせを検出するビット値検出ステップ
    と、 前記ビット値検出ステップにおいて検出したk,lの2
    進表現データの各ビット値の組合わせに応じて、前記初
    期点4点の集合Gt+1に基づく次の4点の集合Gtの算出
    関係式を選択し、選択された関係式に従って次の4点の
    算出処理を実行し、さらに、k,lの2進表現データの
    各ビット値の組合わせに応じて、算出済みの4点の集合
    i+1から次の4点の集合Giの算出関係式を選択し、選
    択された関係式に従って次の4点の算出処理を、前記2
    進表現データのkまたはlのビット数に応じて繰り返し
    実行する繰り返し演算処理ステップと、 を有することを特徴とする楕円曲線暗号処理方法。
  2. 【請求項2】前記k,lの2進表現データの各ビットが
    k:(kt…k02,l:(lt…l 02であるときの上
    位t〜iの上位ビット値をmi=(kt…ki2,ni
    (lt…li2としたとき、 4点の集合Giは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、 前記初期点算出ステップは、 i=t+1として、mt+1=kt+1=0、nt+1=lt+1
    0から、上記式により算出される4点としての、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q として設定する処理ステップとして実行することを特徴
    とする請求項1に記載の楕円曲線暗号処理方法。
  3. 【請求項3】前記k,lの2進表現データの各ビットが
    k:(kt…k02,l:(lt…l 02であるときの上
    位t〜iの上位ビット値をmi=(kt…ki2,ni
    (lt…li2としたとき、 4点の集合Giは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、 前記繰り返し演算処理ステップは、 算出済みの4点の集合Gi+1から、次の4点の集合Gi
    算出する処理を繰り返し実行し、最終的に4点の集合G
    0を算出する処理ステップとして実行し、4点の集合G0
    を構成する1点をW=kP+lQとして算出することを
    特徴とする請求項1に記載の楕円曲線暗号処理方法。
  4. 【請求項4】素体上のモンゴメリ(Montgomery)型楕円
    曲線By2=x3+Ax2+xを適用した楕円曲線暗号処
    理方法であり、 前記モンゴメリ(Montgomery)型楕円曲線By2=x3
    Ax2+x上の点:Pのスカラー量(k)倍の点:kP
    と、該モンゴメリ(Montgomery)型楕円曲線By2=x3
    +Ax2+x上の点:Qのスカラー量(l)倍の点:l
    Qとの加算点:kP+lQの算出において、 前記スカラー量k,lの2進表現データのk,lの各ビ
    ット値の組み合わせを検出するビット値検出ステップ
    と、 前記スカラー量k,lの2進表現データのk,lの最上
    位ビット値(kt,lt)の組合わせに基づいて、初期点
    とする3点の集合G’t+1を前記P,Qを用いて算出す
    る初期点算出ステップと、 前記ビット値検出ステップにおいて検出したk,lの2
    進表現データの各ビット値の組合わせに応じて、前記初
    期点3点の集合G’t+1に基づく次の3点の集合G’t
    算出関係式を選択し、選択された関係式に従って次の3
    点の算出処理を実行し、さらに、k,lの2進表現デー
    タの各ビット値の組合わせに応じて、算出済みの3点の
    集合G’i+1から次の3点の集合G’iの算出関係式を選
    択し、選択された関係式に従って次の3点の算出処理
    を、前記2進表現データのkまたはlのビット数に応じ
    て繰り返し実行する繰り返し演算処理ステップと、 を有することを特徴とする楕円曲線暗号処理方法。
  5. 【請求項5】前記k,lの2進表現データの各ビットが
    k:(kt…k02,l:(lt…l 02であるときの上
    位t〜iの上位ビット値をmi=(kt…ki2,ni
    (lt…li2としたとき、 3点の集合G’iは、 前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
    (ki-1,li-1)の組合わせに基づいて選択される3点
    であり、 前記初期点算出ステップは、 i=t+1として、mt+1=kt+1=0、nt+1=lt+1
    0から、上記式により算出される4点としての、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q の4点から、前記2進表現データのk,lの最上位ビッ
    ト値(kt,lt)の組合わせに基づいて選択される3点
    として設定する処理ステップとして実行することを特徴
    とする請求項4に記載の楕円曲線暗号処理方法。
  6. 【請求項6】前記k,lの2進表現データの各ビットが
    k:(kt…k02,l:(lt…l 02であるときの上
    位t〜iの上位ビット値をmi=(kt…ki2,ni
    (lt…li2としたとき、 3点の集合G’iは、 前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
    (ki-1,li-1)の組合わせに基づいて選択される3点
    であり、 前記繰り返し演算処理ステップは、 算出済みの3点の集合G’i+1から、次の3点の集合
    G’iを算出する処理を繰り返し実行し、最終的に3点
    の集合G’1を算出する処理ステップとして実行し、さ
    らに3点の集合G’1からW=kP+lQを算出するこ
    とを特徴とする請求項4に記載の楕円曲線暗号処理方
    法。
  7. 【請求項7】2の拡大体上の楕円曲線y2+xy=x3
    ax2+bを適用した楕円曲線暗号処理方法であり、 前記楕円曲線y2+xy=x3+ax2+b上の点:Pの
    スカラー量(k)倍の点:kPと、該楕円曲線y2+x
    y=x3+ax2+b上の点:Qのスカラー量(l)倍の
    点:lQとの加算点:kP+lQの算出において、 前記点Pと点Qに基づいて初期点とする4点の集合G
    t+1を計算する初期点算出ステップと、 前記スカラー量k,lの2進表現データのk,lの各ビ
    ット値の組み合わせを検出するビット値検出ステップ
    と、 前記ビット値検出ステップにおいて検出したk,lの2
    進表現データの各ビット値の組合わせに応じて、前記初
    期点4点の集合Gt+1に基づく次の4点の集合Gtの算出
    関係式を選択し、選択された関係式に従って次の4点の
    算出処理を実行し、さらに、k,lの2進表現データの
    各ビット値の組合わせに応じて、算出済みの4点の集合
    i+1から次の4点の集合Giの算出関係式を選択し、選
    択された関係式に従って次の4点の算出処理を、前記2
    進表現データのkまたはlのビット数に応じて繰り返し
    実行する繰り返し演算処理ステップと、 を有することを特徴とする楕円曲線暗号処理方法。
  8. 【請求項8】前記k,lの2進表現データの各ビットが
    k:(kt…k02,l:(lt…l 02であるときの上
    位t〜iの上位ビット値をmi=(kt…ki2,ni
    (lt…li2としたとき、 4点の集合Giは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、 前記初期点算出ステップは、 i=t+1として、mt+1=kt+1=0、nt+1=lt+1
    0から、上記式により算出される4点としての、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q として設定する処理ステップとして実行することを特徴
    とする請求項7に記載の楕円曲線暗号処理方法。
  9. 【請求項9】前記k,lの2進表現データの各ビットが
    k:(kt…k02,l:(lt…l 02であるときの上
    位t〜iの上位ビット値をmi=(kt…ki2,ni
    (lt…li2としたとき、 4点の集合Giは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、 前記繰り返し演算処理ステップは、 算出済みの4点の集合Gi+1から、次の4点の集合Gi
    算出する処理を繰り返し実行し、最終的に4点の集合G
    0を算出する処理ステップとして実行し、4点の集合G0
    を構成する1点をW=kP+lQとして算出することを
    特徴とする請求項7に記載の楕円曲線暗号処理方法。
  10. 【請求項10】2の拡大体上の楕円曲線y2+xy=x3
    +ax2+bを適用した楕円曲線暗号処理方法であり、 前記楕円曲線y2+xy=x3+ax2+b上の点:Pの
    スカラー量(k)倍の点:kPと、該楕円曲線y2+x
    y=x3+ax2+b上の点:Qのスカラー量(l)倍の
    点:lQとの加算点:kP+lQの算出において、 前記スカラー量k,lの2進表現データのk,lの各ビ
    ット値の組み合わせを検出するビット値検出ステップ
    と、 前記スカラー量k,lの2進表現データのk,lの最上
    位ビット値(kt,lt)の組合わせに基づいて、初期点
    とする3点の集合G’t+1を前記P,Qを用いて算出す
    る初期点算出ステップと、 前記ビット値検出ステップにおいて検出したk,lの2
    進表現データの各ビット値の組合わせに応じて、前記初
    期点3点の集合G’t+1に基づく次の3点の集合G’t
    算出関係式を選択し、選択された関係式に従って次の3
    点の算出処理を実行し、さらに、k,lの2進表現デー
    タの各ビット値の組合わせに応じて、算出済みの3点の
    集合G’i+1から次の3点の集合G’iの算出関係式を選
    択し、選択された関係式に従って次の3点の算出処理
    を、前記2進表現データのkまたはlのビット数に応じ
    て繰り返し実行する繰り返し演算処理ステップと、 を有することを特徴とする楕円曲線暗号処理方法。
  11. 【請求項11】前記k,lの2進表現データの各ビット
    がk:(kt…k02,l:(lt…l 02であるときの
    上位t〜iの上位ビット値をmi=(kt…ki2,ni
    =(lt…li2としたとき、 3点の集合G’iは、 前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
    (ki-1,li-1)の組合わせに基づいて選択される3点
    であり、 前記初期点算出ステップは、 i=t+1として、mt+1=kt+1=0、nt+1=lt+1
    0から、上記式により算出される4点としての、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q の4点から、前記2進表現データのk,lの最上位ビッ
    ト値(kt,lt)の組合わせに基づいて選択される3点
    として設定する処理ステップとして実行することを特徴
    とする請求項10に記載の楕円曲線暗号処理方法。
  12. 【請求項12】前記k,lの2進表現データの各ビット
    がk:(kt…k02,l:(lt…l 02であるときの
    上位t〜iの上位ビット値をmi=(kt…ki2,ni
    =(lt…li2としたとき、 3点の集合G’iは、 前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
    (ki-1,li-1)の組合わせに基づいて選択される3点
    であり、 前記繰り返し演算処理ステップは、 算出済みの3点の集合G’i+1から、次の3点の集合
    G’iを算出する処理を繰り返し実行し、最終的に3点
    の集合G’1を算出する処理ステップとして実行し、さ
    らに3点の集合G’1からW=kP+lQを算出するこ
    とを特徴とする請求項10に記載の楕円曲線暗号処理方
    法。
  13. 【請求項13】素体上のモンゴメリ(Montgomery)型楕
    円曲線By2=x3+Ax2+xを適用した楕円曲線暗号
    処理を実行する楕円曲線暗号処理装置であり、 前記モンゴメリ(Montgomery)型楕円曲線By2=x3
    Ax2+x上の点:Pのスカラー量(k)倍の点:kP
    と、該モンゴメリ(Montgomery)型楕円曲線By2=x3
    +Ax2+x上の点:Qのスカラー量(l)倍の点:l
    Qとの加算点:kP+lQの算出を実行する演算処理手
    段を有し、該演算処理手段は、 前記点Pと点Qに基づいて初期点とする4点の集合G
    t+1を計算する初期点算出処理を実行し、 前記スカラー量k,lの2進表現データのk,lの各ビ
    ット値の組み合わせを検出するビット値検出処理を実行
    し、 前記ビット値検出ステップにおいて検出したk,lの2
    進表現データの各ビット値の組合わせに応じて、前記初
    期点4点の集合Gt+1に基づく次の4点の集合Gtの算出
    関係式を選択し、選択された関係式に従って次の4点の
    算出処理を実行し、さらに、k,lの2進表現データの
    各ビット値の組合わせに応じて、算出済みの4点の集合
    i+1から次の4点の集合Giの算出関係式を選択し、選
    択された関係式に従って次の4点の算出処理を、前記2
    進表現データのkまたはlのビット数に応じて繰り返し
    実行する繰り返し演算処理を実行する構成を有すること
    を特徴とする楕円曲線暗号処理装置。
  14. 【請求項14】前記k,lの2進表現データの各ビット
    がk:(kt…k02,l:(lt…l 02であるときの
    上位t〜iの上位ビット値をmi=(kt…ki2,ni
    =(lt…li2としたとき、 4点の集合Giは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、 前記演算処理手段は、 前記初期点算出処理において、 i=t+1として、mt+1=kt+1=0、nt+1=lt+1
    0から、上記式により算出される4点としての、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q として設定する処理として実行する構成であることを特
    徴とする請求項13に記載の楕円曲線暗号処理装置。
  15. 【請求項15】前記k,lの2進表現データの各ビット
    がk:(kt…k02,l:(lt…l 0)2であるとき
    の上位t〜iの上位ビット値をmi=(kt…ki2,n
    i=(l t…li2としたとき、 4点の集合Giは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、 前記演算処理手段は、 前記繰り返し演算処理において、 算出済みの4点の集合Gi+1から、次の4点の集合Gi
    算出する処理を繰り返し実行し、最終的に4点の集合G
    0を算出する処理ステップとして実行し、4点の集合G0
    を構成する1点をW=kP+lQとして算出する処理を
    実行する構成であることことを特徴とする請求項13に
    記載の楕円曲線暗号処理装置。
  16. 【請求項16】素体上のモンゴメリ(Montgomery)型楕
    円曲線By2=x3+Ax2+xを適用した楕円曲線暗号
    処理を実行する楕円曲線暗号処理装置であり、 前記モンゴメリ(Montgomery)型楕円曲線By2=x3
    Ax2+x上の点:Pのスカラー量(k)倍の点:kP
    と、該モンゴメリ(Montgomery)型楕円曲線By2=x3
    +Ax2+x上の点:Qのスカラー量(l)倍の点:l
    Qとの加算点:kP+lQの算出を実行する演算処理手
    段を有し、該演算処理手段は、 前記スカラー量k,lの2進表現データのk,lの各ビ
    ット値の組み合わせを検出するビット値検出処理を実行
    し、 前記スカラー量k,lの2進表現データのk,lの最上
    位ビット値(kt,lt)の組合わせに基づいて、初期点
    とする3点の集合G’t+1を前記P,Qを用いて算出す
    る初期点算出処理を実行し、 前記ビット値検出処理において検出したk,lの2進表
    現データの各ビット値の組合わせに応じて、前記初期点
    3点の集合G’t+1に基づく次の3点の集合G’tの算出
    関係式を選択し、選択された関係式に従って次の3点の
    算出処理を実行し、さらに、k,lの2進表現データの
    各ビット値の組合わせに応じて、算出済みの3点の集合
    G’i+1から次の3点の集合G’iの算出関係式を選択
    し、選択された関係式に従って次の3点の算出処理を、
    前記2進表現データのkまたはlのビット数に応じて繰
    り返し実行する繰り返し演算処理を実行する構成を有す
    ることを特徴とする楕円曲線暗号処理装置。
  17. 【請求項17】前記k,lの2進表現データの各ビット
    がk:(kt…k02,l:(lt…l 02であるときの
    上位t〜iの上位ビット値をmi=(kt…ki2,ni
    =(lt…li2としたとき、 3点の集合G’iは、 前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
    (ki-1,li-1)の組合わせに基づいて選択される3点
    であり、 前記演算処理手段は、 前記初期点算出処理において、 i=t+1として、mt+1=kt+1=0、nt+1=lt+1
    0から、上記式により算出される4点としての、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q の4点から、前記2進表現データのk,lの最上位ビッ
    ト値(kt,lt)の組合わせに基づいて選択される3点
    として設定する処理として実行する構成であることを特
    徴とする請求項16に記載の楕円曲線暗号処理装置。
  18. 【請求項18】前記k,lの2進表現データの各ビット
    がk:(kt…k02,l:(lt…l 02であるときの
    上位t〜iの上位ビット値をmi=(kt…ki2,ni
    =(lt…li2としたとき、 3点の集合G’iは、 前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
    (ki-1,li-1)の組合わせに基づいて選択される3点
    であり、 前記演算処理手段は、 前記繰り返し演算処理において、 算出済みの3点の集合G’i+1から、次の3点の集合
    G’iを算出する処理を繰り返し実行し、最終的に3点
    の集合G’1を算出する処理ステップとして実行し、さ
    らに3点の集合G’1からW=kP+lQを算出するこ
    とを特徴とする請求項16に記載の楕円曲線暗号処理装
    置。
  19. 【請求項19】2の拡大体上の楕円曲線y2+xy=x3
    +ax2+bを適用した楕円曲線暗号処理を実行する楕
    円曲線暗号処理装置であり、 前記楕円曲線y2+xy=x3+ax2+b上の点:Pの
    スカラー量(k)倍の点:kPと、該楕円曲線y2+x
    y=x3+ax2+b上の点:Qのスカラー量(l)倍の
    点:lQとの加算点:kP+lQの算出を実行する演算
    処理手段を有し、該演算処理手段は、 前記点Pと点Qに基づいて初期点とする4点の集合G
    t+1を計算する初期点算出処理を実行し、 前記スカラー量k,lの2進表現データのk,lの各ビ
    ット値の組み合わせを検出するビット値検出処理を実行
    し、 前記ビット値検出ステップにおいて検出したk,lの2
    進表現データの各ビット値の組合わせに応じて、前記初
    期点4点の集合Gt+1に基づく次の4点の集合Gtの算出
    関係式を選択し、選択された関係式に従って次の4点の
    算出処理を実行し、さらに、k,lの2進表現データの
    各ビット値の組合わせに応じて、算出済みの4点の集合
    i+1から次の4点の集合Giの算出関係式を選択し、選
    択された関係式に従って次の4点の算出処理を、前記2
    進表現データのkまたはlのビット数に応じて繰り返し
    実行する繰り返し演算処理を実行する構成を有すること
    を特徴とする楕円曲線暗号処理装置。
  20. 【請求項20】前記k,lの2進表現データの各ビット
    がk:(kt…k02,l:(lt…l 02であるときの
    上位t〜iの上位ビット値をmi=(kt…ki2,ni
    =(lt…li2としたとき、 4点の集合Giは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、 前記演算処理手段は、 前記初期点算出処理において、 i=t+1として、mt+1=kt+1=0、nt+1=lt+1
    0から、上記式により算出される4点としての、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q として設定する処理として実行する構成であることを特
    徴とする請求項19に記載の楕円曲線暗号処理装置。
  21. 【請求項21】前記k,lの2進表現データの各ビット
    がk:(kt…k02,l:(lt…l 02であるときの
    上位t〜iの上位ビット値をmi=(kt…ki2,ni
    =(lt…li2としたとき、 4点の集合Giは、前記点P,点Qを用いて、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q として示される4点であり、 前記演算処理手段は、 前記繰り返し演算処理において、 算出済みの4点の集合Gi+1から、次の4点の集合Gi
    算出する処理を繰り返し実行し、最終的に4点の集合G
    0を算出する処理ステップとして実行し、4点の集合G0
    を構成する1点をW=kP+lQとして算出する処理を
    実行する構成であることことを特徴とする請求項19に
    記載の楕円曲線暗号処理装置。
  22. 【請求項22】2の拡大体上の楕円曲線y2+xy=x3
    +ax2+bを適用した楕円曲線暗号処理を実行する楕
    円曲線暗号処理装置であり、 前記楕円曲線y2+xy=x3+ax2+b上の点:Pの
    スカラー量(k)倍の点:kPと、該楕円曲線y2+x
    y=x3+ax2+b上の点:Qのスカラー量(l)倍の
    点:lQとの加算点:kP+lQの算出を実行する演算
    処理手段を有し、該演算処理手段は、 前記スカラー量k,lの2進表現データのk,lの各ビ
    ット値の組み合わせを検出するビット値検出処理を実行
    し、 前記スカラー量k,lの2進表現データのk,lの最上
    位ビット値(kt,lt)の組合わせに基づいて、初期点
    とする3点の集合G’t+1を前記P,Qを用いて算出す
    る初期点算出処理を実行し、 前記ビット値検出処理において検出したk,lの2進表
    現データの各ビット値の組合わせに応じて、前記初期点
    3点の集合G’t+1に基づく次の3点の集合G’tの算出
    関係式を選択し、選択された関係式に従って次の3点の
    算出処理を実行し、さらに、k,lの2進表現データの
    各ビット値の組合わせに応じて、算出済みの3点の集合
    G’i+1から次の3点の集合G’iの算出関係式を選択
    し、選択された関係式に従って次の3点の算出処理を、
    前記2進表現データのkまたはlのビット数に応じて繰
    り返し実行する繰り返し演算処理を実行する構成を有す
    ることを特徴とする楕円曲線暗号処理装置。
  23. 【請求項23】前記k,lの2進表現データの各ビット
    がk:(kt…k02,l:(lt…l 02であるときの
    上位t〜iの上位ビット値をmi=(kt…ki2,ni
    =(lt…li2としたとき、 3点の集合G’iは、 前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
    (ki-1,li-1)の組合わせに基づいて選択される3点
    であり、 前記演算処理手段は、 前記初期点算出処理において、 i=t+1として、mt+1=kt+1=0、nt+1=lt+1
    0から、上記式により算出される4点としての、 T0[t+1]=O(無限遠点) T1[t+1]=Q T2[t+1]=P T3[t+1]=P+Q の4点から、前記2進表現データのk,lの最上位ビッ
    ト値(kt,lt)の組合わせに基づいて選択される3点
    として設定する処理として実行する構成であることを特
    徴とする請求項22に記載の楕円曲線暗号処理装置。
  24. 【請求項24】前記k,lの2進表現データの各ビット
    がk:(kt…k02,l:(lt…l 02であるときの
    上位t〜iの上位ビット値をmi=(kt…ki2,ni
    =(lt…li2としたとき、 3点の集合G’iは、 前記点P,点Qを用いて示される、下式、 miP+niQ miP+(ni+1)Q (mi+1)P+niQ (mi+1)P+(ni+1)Q の4点から、前記2進表現データのk,lのビット値
    (ki-1,li-1)の組合わせに基づいて選択される3点
    であり、 前記演算処理手段は、 前記繰り返し演算処理において、 算出済みの3点の集合G’i+1から、次の3点の集合
    G’iを算出する処理を繰り返し実行し、最終的に3点
    の集合G’1を算出する処理ステップとして実行し、さ
    らに3点の集合G’1からW=kP+lQを算出するこ
    とを特徴とする請求項22に記載の楕円曲線暗号処理装
    置。
  25. 【請求項25】素体上のモンゴメリ(Montgomery)型楕
    円曲線By2=x3+Ax2+xを適用した楕円曲線暗号
    処理において、前記モンゴメリ(Montgomery)型楕円曲
    線By 2=x3+Ax2+x上の点:Pのスカラー量
    (k)倍の点:kPと、該モンゴメリ(Montgomery)型
    楕円曲線By2=x3+Ax2+x上の点:Qのスカラー
    量(l)倍の点:lQとの加算点:kP+lQの算出処
    理をコンピュータ・システム上で実行せしめるプログラ
    ムであって、前記プログラムは、 前記点Pと点Qに基づいて初期点とする4点の集合G
    t+1を計算する初期点算出ステップと、 前記スカラー量k,lの2進表現データのk,lの各ビ
    ット値の組み合わせを検出するビット値検出ステップ
    と、 前記ビット値検出ステップにおいて検出したk,lの2
    進表現データの各ビット値の組合わせに応じて、前記初
    期点4点の集合Gt+1に基づく次の4点の集合Gtの算出
    関係式を選択し、選択された関係式に従って次の4点の
    算出処理を実行し、さらに、k,lの2進表現データの
    各ビット値の組合わせに応じて、算出済みの4点の集合
    i+1から次の4点の集合Giの算出関係式を選択し、選
    択された関係式に従って次の4点の算出処理を、前記2
    進表現データのkまたはlのビット数に応じて繰り返し
    実行する繰り返し演算処理ステップと、 を有することを特徴とするプログラム。
  26. 【請求項26】素体上のモンゴメリ(Montgomery)型楕
    円曲線By2=x3+Ax2+xを適用した楕円曲線暗号
    処理において、前記モンゴメリ(Montgomery)型楕円曲
    線By 2=x3+Ax2+x上の点:Pのスカラー量
    (k)倍の点:kPと、該モンゴメリ(Montgomery)型
    楕円曲線By2=x3+Ax2+x上の点:Qのスカラー
    量(l)倍の点:lQとの加算点:kP+lQの算出処
    理をコンピュータ・システム上で実行せしめるプログラ
    ムであって、前記プログラムは、 前記スカラー量k,lの2進表現データのk,lの各ビ
    ット値の組み合わせを検出するビット値検出ステップ
    と、 前記スカラー量k,lの2進表現データのk,lの最上
    位ビット値(kt,lt)の組合わせに基づいて、初期点
    とする3点の集合G’t+1を前記P,Qを用いて算出す
    る初期点算出ステップと、 前記ビット値検出ステップにおいて検出したk,lの2
    進表現データの各ビット値の組合わせに応じて、前記初
    期点3点の集合G’t+1に基づく次の3点の集合G’t
    算出関係式を選択し、選択された関係式に従って次の3
    点の算出処理を実行し、さらに、k,lの2進表現デー
    タの各ビット値の組合わせに応じて、算出済みの3点の
    集合G’i+1から次の3点の集合G’iの算出関係式を選
    択し、選択された関係式に従って次の3点の算出処理
    を、前記2進表現データのkまたはlのビット数に応じ
    て繰り返し実行する繰り返し演算処理ステップと、を有
    することを特徴とするプログラム。
  27. 【請求項27】2の拡大体上の楕円曲線y2+xy=x3
    +ax2+bを適用した楕円曲線暗号処理において、前
    記楕円曲線y2+xy=x3+ax2+b上の点:Pのス
    カラー量(k)倍の点:kPと、該楕円曲線y2+xy
    =x3+ax2+b上の点:Qのスカラー量(l)倍の
    点:lQとの加算点:kP+lQの算出処理をコンピュ
    ータ・システム上で実行せしめるプログラムであって、
    前記プログラムは、 前記点Pと点Qに基づいて初期点とする4点の集合G
    t+1を計算する初期点算出ステップと、 前記スカラー量k,lの2進表現データのk,lの各ビ
    ット値の組み合わせを検出するビット値検出ステップ
    と、 前記ビット値検出ステップにおいて検出したk,lの2
    進表現データの各ビット値の組合わせに応じて、前記初
    期点4点の集合Gt+1に基づく次の4点の集合Gtの算出
    関係式を選択し、選択された関係式に従って次の4点の
    算出処理を実行し、さらに、k,lの2進表現データの
    各ビット値の組合わせに応じて、算出済みの4点の集合
    i+1から次の4点の集合Giの算出関係式を選択し、選
    択された関係式に従って次の4点の算出処理を、前記2
    進表現データのkまたはlのビット数に応じて繰り返し
    実行する繰り返し演算処理ステップと、 を有することを特徴とするプログラム。
  28. 【請求項28】2の拡大体上の楕円曲線y2+xy=x3
    +ax2+bを適用した楕円曲線暗号処理において、前
    記楕円曲線y2+xy=x3+ax2+b上の点:Pのス
    カラー量(k)倍の点:kPと、該楕円曲線y2+xy
    =x3+ax2+b上の点:Qのスカラー量(l)倍の
    点:lQとの加算点:kP+lQの算出処理をコンピュ
    ータ・システム上で実行せしめるプログラムであって、
    前記プログラムは、 前記スカラー量k,lの2進表現データのk,lの各ビ
    ット値の組み合わせを検出するビット値検出ステップ
    と、 前記スカラー量k,lの2進表現データのk,lの最上
    位ビット値(kt,lt)の組合わせに基づいて、初期点
    とする3点の集合G’t+1を前記P,Qを用いて算出す
    る初期点算出ステップと、 前記ビット値検出ステップにおいて検出したk,lの2
    進表現データの各ビット値の組合わせに応じて、前記初
    期点3点の集合G’t+1に基づく次の3点の集合G’t
    算出関係式を選択し、選択された関係式に従って次の3
    点の算出処理を実行し、さらに、k,lの2進表現デー
    タの各ビット値の組合わせに応じて、算出済みの3点の
    集合G’i+1から次の3点の集合G’iの算出関係式を選
    択し、選択された関係式に従って次の3点の算出処理
    を、前記2進表現データのkまたはlのビット数に応じ
    て繰り返し実行する繰り返し演算処理ステップと、を有
    することを特徴とするプログラム。
JP2001126024A 2001-04-24 2001-04-24 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム Expired - Fee Related JP3820909B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001126024A JP3820909B2 (ja) 2001-04-24 2001-04-24 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム
US10/128,805 US7177422B2 (en) 2001-04-24 2002-04-24 Elliptic curve encryption processing method, elliptic curve encryption processing apparatus, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001126024A JP3820909B2 (ja) 2001-04-24 2001-04-24 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム

Publications (2)

Publication Number Publication Date
JP2002323852A true JP2002323852A (ja) 2002-11-08
JP3820909B2 JP3820909B2 (ja) 2006-09-13

Family

ID=18975132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001126024A Expired - Fee Related JP3820909B2 (ja) 2001-04-24 2001-04-24 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム

Country Status (2)

Country Link
US (1) US7177422B2 (ja)
JP (1) JP3820909B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009515206A (ja) * 2005-11-03 2009-04-09 サーティコム コーポレイション 同時スカラー乗算方法
US7835517B2 (en) * 2006-01-16 2010-11-16 Sony Corporation Encryption processing apparatus, encryption processing method, and computer program
US8208626B2 (en) 2006-08-04 2012-06-26 Samsung Electronics Co., Ltd. Apparatus for performing a fault detection operation and method thereof

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040001590A1 (en) * 2002-06-27 2004-01-01 Eisentraeger Anne Kirsten Efficient elliptic curve double-and-add calculator
ATE352830T1 (de) * 2002-10-26 2007-02-15 Additional Director Ipr Defenc Verfahren zur elliptische-kurven-verschlüsselung
US7555122B2 (en) * 2002-12-04 2009-06-30 Wired Communications LLC Method for elliptic curve point multiplication
US7483533B2 (en) * 2004-08-05 2009-01-27 King Fahd University Of Petroleum Elliptic polynomial cryptography with multi x-coordinates embedding
US7483534B2 (en) * 2004-08-05 2009-01-27 King Fahd University Of Petroleum Elliptic polynomial cryptography with multi y-coordinates embedding
US7742596B2 (en) * 2004-08-24 2010-06-22 General Dynamics C4 Systems, Inc. Reliable elliptic curve cryptography computation
US7991162B2 (en) * 2007-09-14 2011-08-02 University Of Ottawa Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields
US8755517B2 (en) * 2010-12-08 2014-06-17 Total Technology Solutions Co. Method for generic-point parallel elliptic curve scalar multiplication

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6782100B1 (en) * 1997-01-29 2004-08-24 Certicom Corp. Accelerated finite field operations on an elliptic curve
US6748410B1 (en) * 1997-05-04 2004-06-08 M-Systems Flash Disk Pioneers, Ltd. Apparatus and method for modular multiplication and exponentiation based on montgomery multiplication
ATE372541T1 (de) * 1997-05-04 2007-09-15 Milsys Ltd Verbessertes gerät und verfahren für modulare multiplikation und exponentation basierend auf montgomerymultiplikation
JPH11242434A (ja) * 1998-02-26 1999-09-07 Hitachi Ltd 楕円曲線暗号実行方法及び暗号処理システム
US6240436B1 (en) * 1998-03-30 2001-05-29 Rainbow Technologies, Inc. High speed montgomery value calculation
JP3542278B2 (ja) * 1998-06-25 2004-07-14 株式会社東芝 モンゴメリ・リダクション装置及び記録媒体
US6430588B1 (en) * 1998-09-03 2002-08-06 Nippon Telegraph And Telephone Corporation Apparatus and method for elliptic-curve multiplication and recording medium having recorded thereon a program for implementing the method
EP1098010A4 (en) * 1999-03-04 2003-08-06 Nippon Kokan Kk STEEL SHEET FOR HEAT SHRINK TAPE AND MANUFACTURING METHOD THEREOF
JP3689039B2 (ja) * 1999-09-08 2005-08-31 株式会社日立製作所 楕円曲線生成方法、装置及び楕円暗号システム並びに記録媒体
JP3821631B2 (ja) * 2000-05-30 2006-09-13 株式会社日立製作所 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009515206A (ja) * 2005-11-03 2009-04-09 サーティコム コーポレイション 同時スカラー乗算方法
JP2012185517A (ja) * 2005-11-03 2012-09-27 Certicom Corp 同時スカラー乗算方法
US8284930B2 (en) 2005-11-03 2012-10-09 Certicom Corp. Simultaneous scalar multiplication method
US8548163B2 (en) 2005-11-03 2013-10-01 Certicom Corp. Simultaneous scalar multiplication method
US7835517B2 (en) * 2006-01-16 2010-11-16 Sony Corporation Encryption processing apparatus, encryption processing method, and computer program
US8208626B2 (en) 2006-08-04 2012-06-26 Samsung Electronics Co., Ltd. Apparatus for performing a fault detection operation and method thereof

Also Published As

Publication number Publication date
US20030026419A1 (en) 2003-02-06
JP3820909B2 (ja) 2006-09-13
US7177422B2 (en) 2007-02-13

Similar Documents

Publication Publication Date Title
US6751318B2 (en) Method and apparatus for digital signature authentication
US6307935B1 (en) Method and apparatus for fast elliptic encryption with direct embedding
US6876745B1 (en) Method and apparatus for elliptic curve cryptography and recording medium therefore
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
JP4137385B2 (ja) 公開鍵および秘密鍵による暗号化方法
WO1993006672A1 (en) Method and apparatus for public key exchange in a cryptographic system
JP2007187958A (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US6480606B1 (en) Elliptic curve encryption method and system
JP3820909B2 (ja) 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム
KR20080086476A (ko) 암호 처리 장치, 및 암호 처리 방법, 및 컴퓨터 프로그램
US6959091B1 (en) Cryptography private key storage and recovery method and apparatus
EP3352411B1 (en) Method of generating cryptographic key pairs
US6609141B1 (en) Method of performing modular inversion
KR20080055378A (ko) 타원 곡선 암호 방식에서 공개키를 생성하는 방법 및 상기방법을 수행하는 시스템
US8731187B2 (en) Computing genus-2 curves using general isogenies
JP2003216026A (ja) 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにコンピュータ・プログラム
Gueron et al. Speed records for multi-prime RSA using AVX2 architectures
Sarma et al. Public key cryptosystem based on Pell's equation using the Gnu Mp library
EP2524332B1 (en) Determination of pairings on a curve using aggregated inversions
EP1705560A2 (en) Elliptic curve point octupling for weighted projective coordinates
JP4904981B2 (ja) 公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラム
JP2004053814A (ja) 楕円曲線暗号装置及び楕円曲線暗号演算方法
Zitouni et al. Identity-Based Encryption from the Tate pairing on genus two curves
Omondi et al. Modular-Arithmetic Cryptosystems
KR100808953B1 (ko) 모듈러곱셈 방법 및 상기 곱셈방법을 수행할 수 있는스마트카드

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051219

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: 20060530

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060612

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

Free format text: PAYMENT UNTIL: 20090630

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100630

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100630

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110630

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120630

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130630

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees