JP2000187438A - 楕円曲線暗号実行方法及び装置並びに記録媒体 - Google Patents

楕円曲線暗号実行方法及び装置並びに記録媒体

Info

Publication number
JP2000187438A
JP2000187438A JP10364277A JP36427798A JP2000187438A JP 2000187438 A JP2000187438 A JP 2000187438A JP 10364277 A JP10364277 A JP 10364277A JP 36427798 A JP36427798 A JP 36427798A JP 2000187438 A JP2000187438 A JP 2000187438A
Authority
JP
Japan
Prior art keywords
elliptic curve
coordinate
point
coordinates
storing
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
JP10364277A
Other languages
English (en)
Other versions
JP3796993B2 (ja
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 JP36427798A priority Critical patent/JP3796993B2/ja
Priority to CA002292817A priority patent/CA2292817C/en
Priority to EP99310340A priority patent/EP1014617A3/en
Priority to US09/468,948 priority patent/US6876745B1/en
Publication of JP2000187438A publication Critical patent/JP2000187438A/ja
Application granted granted Critical
Publication of JP3796993B2 publication Critical patent/JP3796993B2/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
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/005Countermeasures against attacks on cryptographic mechanisms for timing attacks
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7228Random curve mapping, e.g. mapping to an isomorphous or projective curve
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

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

Abstract

(57)【要約】 【課題】楕円曲線暗号処理を実行する方法は知られてい
たが、楕円曲線暗号のデータ復号化処理では、与えられ
た楕円曲線上の点(x,y)の秘密鍵dから、(x,
y)のスカラー倍演算d(x,y)を行う。 dの偏差
情報をもれないスカラー倍演算方法で高速な方法を与え
る。 【解決手段】次の手段を用いる。 (1)dのビットあたり一定の乗算回数でスカラー倍演
算d(x,y)を求める方法を与える。 (2)スカラー倍d(x,y)を計算する場合、このア
フィン座標(x,y)を射影座標する際に、乱数kを生
成し、(x,y)→[kx, ky, k]または
(x,y)→[kx, ky, k]に変換する。
このことにより、素体の演算対象が乱数によって変更す
る方法を与える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータネッ
トワークにおいてセキュリティを確保する技術に係り、
特に楕円曲線暗号を実行する方法及び装置並びに記録媒
体に関する。
【0002】
【従来の技術】楕円曲線暗号は、V.Miller, N.Koblitz
両氏によって、独立に発明された公開鍵暗号である。公
開鍵暗号技術において安全上からの要請として、他人に
公開される公開鍵から、それに対応する秘密鍵を発見す
ることが事実上不可能であることが求められる。その一
方で、秘密鍵暗号方式に比べて基本的に暗号化や復号化
に時間のかかる公開鍵暗号方式において、暗号化や復号
化におけるより高速のものが求められている状況にあ
る。このように、安全性と高速性という、ある意味で背
反的な要請を実現する公開鍵暗号技術として、従来から
のRSA暗号やエルガマル暗号に比べてより上述の性質
を有する楕円曲線暗号が注目されてきている。
【0003】楕円曲線暗号は、有限素体上の楕円曲線の
標準形y=x+ax+b(4a+27b≠0)
や2の拡大体上の楕円曲線の標準形y+xy=x
ax +b(b≠0)で表される。この曲線上の点に、
無限遠点を加えると、アーベル群が成立する。このアー
ベル群演算を+記号で表現する。相異なるX,Y間の演
算をX+Yを加算演算と呼ぶ。また、X+Xを2倍演算
と呼び、2Xと表現する。
【0004】かかる楕円曲線は、その計算を容易にする
ためにアフィン座標における楕円曲線上の点(X,Y)
を射影座標で表現することもある。任意のλ≠0につい
て,[X,Y,Z]= [λX,λY,λZ]とな
る射影座標を考えると、アフィン座標とこの射影座標の
対応は以下で与えられる。すなわち、アフィン座標
(x,y)は、射影座標[x,y,1]で表現され、射
影座標[X,Y,Z]は、アフィン座標(X/
(Z),Y/(Z) )となる。また、射影座標に
おいて−[X,Y,Z]=[X,−Y,Z]である。
【0005】楕円曲線暗号は、有限体上の楕円曲線を用
いて、その有限体となる点の集合を用いる。また、楕円
曲線の位数は、楕円曲線の点の数である。以下、Pをs
回加算(P+P+…+P)した結果をPのs倍点とい
い、これを求める演算をsPと書くと、楕円曲線上の点
Pの位数は、nP=0,1<=m<n,mP ≠0とな
るnである112となる。
【0006】楕円曲線暗号の鍵は、楕円曲線、ベースポ
イント、公開鍵、秘密鍵から構成され、具体的には、楕
円曲線の係数a,b、位数が素数である点P(ベースポ
イント)、有限体要素d(秘密鍵)、ベースポイントの
秘密鍵倍の点Q(公開鍵:Q=dP)である。ここで、
楕円曲線、ベースポイント、公開鍵は公開情報である。
また、公開鍵/秘密鍵は、ユーザ毎に異なる値であり、
楕円曲線、ベースポイントは、ユーザ間共通の値であ
る。
【0007】楕円曲線暗号における、データ暗号化、デ
ータ復号化、ディジタル署名作成、ディジタル署名検証
は、任意の点Rのスカラ倍sR演算を用いる。これは、
上記の加算演算と2倍演算の組合せで、求めることがで
きる。ところが、上記の加算演算と2倍演算計算法にお
いては、それぞれ1回の除算が必要であり、一般に有限
体の除算は非常に時間がかかるため、これを避ける方法
が求められる。
【0008】文献D.V.Chudnovsky, G.V.Chudnovsky "Se
quences of Numbers Generated byAddition in Formal
Groups and New Primality and Factorization Tests",
Advances in Applied Mathematics, 7, 385-434,1986
によれば、この有限体の除算を避けるため、射影空間
で、加算演算、2倍演算の式を導出している。この場
合、素体乗算と、素体加減算では素体乗算が通常、遥か
に時間がかかるため、素体乗算演算数で、計算時間を評
価できる。この場合、加算演算で、素体乗算(2乗算を
含む)が16回必要である。2倍演算において、10回
必要である、と述べている。また、楕円曲線の係数aに
おいても、a=−3の場合、8回の乗算剰余演算となる
としている。
【0009】また、P.Montgomery,"Speeding the Polla
rd and Elliptic Curve Methods ofFactorization", Ma
thematics of computation Vol.48,No.177,pp.243-264
(1987)によれば、有限素体上の楕円曲線の標準形By
=x+Ax+Bxを用いて、点P0(x0,y
0),P1(x1,y1)の加算をP3(x3,y
3)、減算をP4(x4,y4)、すなわちP1+P0
=P3、P1−P0=P4とするとき、x0,x1,x
4から、x3が高速に求まる。具体的には、素体の乗算
6回で求まるとされている。また、P1の2倍点をP5
(x5,y5)とするとき、x5は、x1のみから求ま
り、乗算5回である。これを利用して、点Rのスカラ倍
(スカラー値d)のx座標を以下のようにRxから求め
ることができる。
【0010】初期値を[R,2R]、mRをRのm倍の
x座標とするとき、dを2進数展開し、dの上位ビット
から、0の場合は、[mR,(m+1)R]→ [2m
R,(2m+1)R]となり、1の場合は、[mR,
(m+1)R]→[(2m+1)R,2(m+1)R]
となる。尚、(m+1)R−mR=R、(m+1)R+
mR=(2m+1)Rである。
【0011】従って、1ビットあたり、6+5=10回
の素体乗算(2乗算を含む)でスカラー倍sPを求める
ことができる。これを以下、モンゴメリ法と呼ぶ。
【0012】一方、2の拡大体上の楕円曲線の標準形y
+xy=x+ax+b(b≠0)で表される。こ
のスカラー倍演算も、加算演算、2倍演算の組合せで実
現できる。IEEE P1363 / D2 Standard Specification f
or Public Key Cryptography(1998)では、加算演算と2
倍演算規則を与えている。2の拡大体演算では、2乗
算、加減算は相異なる乗算に比べて非常に速く演算でき
るので、(相異なる)乗算回数で評価できる。加算演算
で15回の乗算、2倍演算で5回の乗算が必要となる。
しかし、2の拡大体楕円曲線暗号ではモンゴメリ法を用
いる演算は知られていない。
【0013】安全な楕円曲線とするためには、楕円曲線
の位数#E(Fq)が大きな素因数rを持つパラメタ
a,bを設定する必要がある。#E(Fq)=krで、
kは小さな整数、rは大きな素数となる。そのが位数大
きな素因数を持つ楕円曲線のパラメタの設定方法は、例
えば文献Henri Cohen, "A Course in Computational Al
gebraic Number Theory", GTM138, Springer(1993) p.4
64 Atkin's Testで記述されている方法がある。
【0014】次に暗号のアタックと防御について述べ
る。近年、暗号のアタックは、理論的な暗号解読に加
え、消費電流波形を統計的に処理して解読を試みるDP
A(Differential Power Analysis)や暗号処理時間の違
いから統計的に分析し解読を試みるタイミングアタック
等、リーク情報を分析する攻撃とその防御が研究されは
じめている。これらの防御研究の多くは、主にICカー
ドを分析する等のハードウェア回路そのものに防御機能
を組み込むことが中心になっている。
【0015】
【発明が解決しようとする課題】上述したように2の拡
大体の楕円曲線暗号ではモンゴメリ法を用いる演算は知
られていない。また、楕円曲線暗号の研究においては、
主に高速な実行方法、暗号解読の観点からの安全な楕円
曲線生成の研究開発が中心であり、リーク情報分析型の
アタックに対する防御開発は行われていない。楕円曲線
暗号のデータ復号化処理では、与えられた楕円曲線上の
点(x,y)の秘密鍵dから、(x,y)のd倍演算d
(x,y)を行う。dの偏差情報を消費電流波形や暗号
処理時間に洩れる場合DPAやタイミングアタックへの
手がかりを与えてしまう。本発明の第1の目的は、楕円
曲線がy+xy=x+ax+b(b≠0)であ
る、2の拡大体上の楕円曲線暗号を高速に演算する方法
及び装置を提供することにある。また、本発明の第2の
目的は、楕円曲線暗号においてタイミングアタックやD
PAによる攻撃を防御するための、処理時間の偏差情報
から秘密鍵情報がもれない方法を提供することにある。
【0016】
【課題を解決するための手段】本発明の第1の目的は、
楕円曲線がy+xy=x+ax+b(b≠0)で
ある、2の拡大体上の楕円曲線暗号の実行方法であっ
て、各座標成分が前記楕円曲線上の点である点P1(x
1,y1),P2(x2,y2)の加算をP3(x3,
y3)とし、点P1(x1,y1),P2(x2,y
2)の減算をP4(x4,y4)とした場合、前記x1
を入力するステップと、前記入力されたx1を射影空間
のX座標、Z座標[X,Z]に変換するステップ
と、前記射影空間の座標[X,Z]を記憶するステ
ップと、前記x2を[X,Z]に変換するステップ
と、前記[X,Z]を記憶するステップと、前記x
4を[X,Z]に変換するステップと、前記
[X,Z]を記憶するステップと、前記記憶された
[X,Z],[X ,Z],[X,Z]か
ら[X,Z]を求めるステップと、前記[X,Z
]からx3に変換するステップと、前記x3を出力す
るステップとからなり、点P1(x1,y1)のスカラ
ー倍を計算することにより達成される。また、記憶され
た[X,Z],[X,Z],[X,Z]か
らx3に変換できる[X,Z]を求めるステップに
は、B=X +X を計算するステップ
と、前記計算されたBを記憶するステップと、前記記憶
されたBをB=0であるか否かをを判別するステップ
と、B=0の場合は無限遠点を出力し、B=0でない場
合はZ=ZBを計算するステップと、前記計算され
たZを記憶するステップと、前記記憶されたZから
=X +X を計算
するステップとを有することにより達成される。
【0017】本発明の第2の目的は、2の拡大体上の楕
円曲線暗号の復号化処理時間において、処理時間の偏差
情報から秘密鍵情報がもれない方法、すなわち楕円曲線
がy+xy=x+ax+bである、2の拡大体上
の楕円曲線暗号の実行方法であって、各座標成分が前記
楕円曲線上の点である点P1(x1,y1),P2(x
2,y2)の加算をP3(x3,y3)とし、点P1
(x1,y1),P2(x2,y2)の減算をP4(x
4,y4)とした場合、前記x1を入力するステップ
と、前記入力されたx1を射影空間のX座標、Z座標
[X,Z]に変換するステップと、前記射影空間の
座標[X,Z]を記憶するステップと、前記x2を
[X,Z]に変換するステップと、前記[X,Z
]を記憶するステップと、前記x4を[X,Z
に変換するステップと、前記[X,Z]を記憶する
ステップと、前記記憶された[X,Z],[X
,Z],[X,Z]から[X,Z]を求
めるステップと、前記[X,Z]からx3に変換す
るステップと、前記x3を出力するステップの他、さら
に乱数kを生成するステップと、前記生成された乱数k
を記憶するステップと、x座標を射影座標に変換した
後、射影空間の各座標成分と前記記憶された乱数kと演
算させて、射影座標[kx,k]に変換するステップ
とを有することにより達成される。すなわち、2の拡大
体の演算対象が乱数によって常に変更する方法を用い
る。
【0018】また、乱数kを生成するステップと、前記
生成された乱数kを記憶するステップと、x座標を射影
座標に変換した後、射影空間の各座標成分と前記記憶さ
れた乱数kと演算させて、射影座標[kx,k]に変換
するステップとを有することにより達成される。また、
楕円曲線がy+xy=x+ax+bである、2の
拡大体上の楕円曲線暗号の演算装置であって、乱数kを
生成する乱数生成部と、2の拡大体上の座標x0と前記
乱数kとを入力し、射影座標[kx0,k]=[X
]に変換する射影座標変換部と、前記[X
]から2倍点を演算し出力する2倍演算部と、前記
[X,Z]から加算点を求め出力する加算演算部
と、前記射影座標変換部と前記2倍演算部と前記加算演
算部からの情報を得て、座標x0をスカラー倍するスカ
ラー倍部とを有することにより達成される。
【0019】また、楕円曲線がy+xy=x+ax
+bである、2の拡大体上の楕円曲線暗号の実行方法
を格納した記録媒体であって、前記楕円曲線暗号の実行
方法は以下を含むことにより達成される。すなわち、各
座標成分が前記楕円曲線上の点である点P1(x1,y
1),P2(x2,y2)の加算をP3(x3,y3)
とし、点P1(x1,y1),P2(x2,y2)の減
算をP4(x4,y4)とした場合、前記x1を入力す
るステップと、前記入力されたx1を射影空間のX座
標、Z座標[X,Z]に変換するステップと、前記
射影空間の座標[X,Z]を記憶するステップと、
前記x2を[X,Z]に変換するステップと、前記
[X,Z]を記憶するステップと、前記x4を[X
,Z]に変換するステップと、前記[X,Z
を記憶するステップと、前記記憶された[X
],[X ,Z],[X,Z]から
[X,Z]を求めるステップと、前記[X
]からx3に変換するステップと、前記x3を出力
するステップとからなり、点P1(x1,y1)のスカ
ラー倍を計算する。
【0020】また、上述した2の拡大体上の楕円曲線暗
号の実行方法は、素体上の楕円曲線暗号の復号化処理時
間において、処理時間の偏差情報から秘密鍵情報がもれ
ない方法としても適用可能である。素体上の楕円曲線暗
号において、上記課題(2)を解決するため、次の
(a),(b)を組合わせる。次の(a),(b)を組
合わせる。(a)楕円曲線のスカラー倍d(x,y)に
おいて、素体上の楕円曲線の標準形By=x+Ax
+Bxの場合、モンゴメリのスカラー倍を用いる。
(b)スカラー倍d(x,y)を計算する場合、このア
フィン座標(x,y)を射影座標する際に、乱数kを生
成し、(x,y)→[kx,ky,k]または(x,
y)→[kx,ky,k]に変換する。このことに
より、素体の演算対象が乱数によって常に変更する方法
を用いる。
【0021】
【発明の実施の形態】2の拡大体上の楕円曲線の標準形
+xy=x+ax+b(b≠0)のアフィン座
標における演算規則を以下に示す。
【0022】1)0+0=0 2)(x,y)+0=(x,y) 3)(x,y)+(x,x+y)=0 4)可換性(x0,y0)+(x1,y1)=(x1,
y1)+(x0,y0) 5)加算演算(x2,y2)=(x1,y1)+(x
0,y0)x2=a+λ+λ+x0+x1; y2=
λ(x1+x2)+x2+y1;λ=(y0+y1)/
(x0+x1) 6)2倍演算(x2,y2)=(x1,y1)+(x
1,y1)=2(x1,y1)x2=a+λ+λ;y
2=λ(x1+x2)+x2+y1;λ=x1+(y1
/x1) または、x2=(x1)+b/(x1) かかる楕円曲線は、その計算を容易にするためにアフィ
ン座標における楕円曲線上の点(X,Y)を射影座標で
表現することもある。任意のλ≠0について,[X,
Y,Z]=[λX,λY,λZ]となる射影座標を
考えると、アフィン座標とこの射影座標の対応は以下で
与えられる。すなわち、アフィン座標(x,y)は、射
影座標[x,y,1]で表現され、射影座標[X,Y,
Z]は、アフィン座標(X/(Z),Y/(Z)
となる。また、射影座標において−[X,Y,Z]=
[X,XZ+Y,Z]である。
【0023】以下、本発明の実施例を図面を用いて具体
的に説明する。図10は、楕円曲線暗号システムの構成
図である。入出力インターフェース1001は暗号化す
る平文を入力するキーボード等の入力装置、復号化した
平文を出力するディスプレー、プリンタ等の出力装置、
平文を記憶するメモリ等の記憶装置などである。暗号化
部1002は、楕円曲線生成部1003で生成された楕
円曲線と、公開鍵、暗号鍵生成部1004からの鍵とを
入力し、平文を暗号化する。ここで、公開鍵、暗号鍵は
対になっており、どちらの鍵を暗号化部1002、復号
化部1006に与えるかは暗号システムの用途、即ち、
秘密通信に用いるか、署名・認証と呼ばれる通信に用い
るか等で使い分ける。暗号化された暗号文は接続インタ
ーフェース1005から送信される。復号化部1006
は、暗号文を復号化し平文にする。
【0024】図1は、楕円曲線暗号システムにおける処
理の流れを示す図である。楕円曲線生成部101では楕
円曲線暗号に使用する楕円曲線を生成する。公開鍵/秘
密鍵生成部102では、楕円曲線生成部101で生成し
た楕円曲線を入力し、これに基づいて公開鍵115と秘
密鍵116を生成する。暗号化部103では、平文11
3、公開鍵115、楕円曲線を入力して暗号文112を
出力する。復号化部104では、暗号文112、秘密鍵
116、楕円曲線を入力し、平文114を出力するが、
ここで出力する平文114は平文113と内容が同じも
のである。
【0025】楕円曲線生成部101では以下の手順で楕
円曲線を生成する。原始多項式(primitive polynomial
s)設定105では、素体F上の原始多項式f(x)を
設定する。例えば、素体F上の原始多項式は、A.Mene
zes, P.Oorschot, S.Vanstone, "Handbook of Applied
Cryptography", CRC Press(1996)の第4.5.3 Primitive
polynomialsに記述されている。
【0026】楕円曲線パラメタ設定106は、2の拡大
体Fqを定義体とする楕円曲線y+xy=x+ax
+bのパラメタa,bを設定する。安全な楕円曲線と
するためには、楕円曲線の位数#E(Fq)が大きな素
因数rを持つ必要がある。#E(Fq)=krの場合、
kを小さな整数とすることによって、rは大きな素数と
なる。大きな素因数rを位数に持つ楕円曲線を生成する
方法として、文献Henri Cohen, "A Course in Computat
ional Algebraic Number Theory",GTM138, Springer(19
93) p.464 Atkin's Testで記述されている方法がある。
なお、他の楕円曲線の位数が大きな素因数rを持つ楕円
曲線パラメタ設定法を用いても本発明の実施は可能であ
る。
【0027】ベースポイント生成部107は、楕円曲線
上のアーベル群において、上記rを位数とする部分巡回
群の生成元を求める。例えば、#E(Fq)=krの場
合は、第1のステップでE(Fq)上の任意の点(x
1,y1)を求める。次に第2のステップでr(x1,
y1)=0かつk(x1,y1)≠0の場合、G=(x
1,y1)をベースポイントとする。他の場合は、第1
のステップへ戻る。
【0028】ここで、r(x1,y1)は、(x1,y
1)のスカラー倍(r倍)演算を実行するという意味で
ある。スカラー倍(r倍)演算については楕円曲線演算
部109で説明する。
【0029】以上、楕円曲線生成部101により、原始
多項式f(x)、楕円曲線y+xy=x+ax
bのパラメタa,b、ベースポイントG、ベースポイン
トの位数rを生成した。これらは公開する情報である。
【0030】次に公開鍵/秘密鍵生成部102は、以下
の手順で公開鍵と秘密鍵を生成する。入力を原始多項式
f(x)、楕円曲線y+xy=x+ax+bのパ
ラメタa,b、ベースポイントGとし、出力を公開鍵
Q、秘密鍵dとすると、第1のステップで乱数2<d<
r−1を生成し、第2のステップでQ= dGすなわち
Gのスカラ倍(d倍)点を求める。
【0031】公開鍵は、公開する情報であり、秘密鍵は
秘密にする情報である。Q,Gからdを求める問題は、
離散対数問題といわれるものであり、楕円曲線におい
て、ベースポイントの位数rのビット長の指数オーダの
計算量を必要とする。このため、rが大きな素数であれ
ば例えば、r>2の159乗をとれば、事実上、Q,G
からdを求めることはできなくなる。これが楕円曲線暗
号の原理である。なお、Qを計算する方法は、従来技術
文献 D.V.Chudnovsky, G.V.Chudnovsky "Sequences of
Numbers Generated by Addition in Formal Groups an
d New Primalityand Factorization Tests", Advances
in Applied Mathematics, 7, 385-434,1986で記載され
ている方法で求めることができる。
【0032】次に、暗号化部103では、以下の手順で
平文113を暗号文114に変換する。入力を平文M、
公開鍵Q、原始多項式f(x)、楕円曲線y+xy=
+ax+bのパラメタb、ベースポイントGと
し、出力を暗号文Cとすると、第1のステップで乱数k
を生成し(乱数生成部108)、第2のステップでベー
スポイントGと第1のステップで生成した乱数kとを演
算し、kGすなわち(kx1,ky1)とする(楕円曲
線演算部109)。第3のステップで公開鍵Qと第1の
ステップで生成した乱数kとを演算し、kQすなわち
(kx2,ky2)とする(楕円曲線演算部109)。
第4のステップでM xor x2を演算し、M'とする
(データ暗号化110)。第5のステップでx1||y1
||M'を演算し暗号文Cとする(データ暗号化11
0)。
【0033】楕円曲線演算部109は、任意の点Rのス
カラ倍kR演算を行いそのx座標を得る。これにより2
の拡大体上の楕円曲線暗号の復号化処理時間において、
処理時間の偏差情報から秘密鍵情報が漏れなくなる。以
下にこのスカラー倍方法を説明する。図2、図3は、こ
のスカラー倍方法の第1の実施例の説明図である。
【0034】<第1実施例スカラー倍方法>Rのx座標
の射影座標成分X、スカラー値mを入力とし、Rのm
倍の点のx座標の射影座標成分Xを出力とする。m,
を入力を入力し(ステップ202)、ステップ20
3から205では乱数を射影座標の各座標に乗算するこ
とにより、データを撹拌する。すなわち、乱数kを生成
し(ステップ203)、乱数kとXを演算してk
をXに代入し、乱数kをZに代入する(ステップ
205)。ステップ206から208及び301ではス
カラー倍の準備を行う。すなわち、[X,Z]を
[X,Z]に代入し(ステップ206)、また[X
,Z]を2倍方法(図5)に入力し、出力を
[X,Z]へ代入する(ステップ207)。 mの
2進数表現をhi−1...hとする(ステップ
208)。ただし、最上位ビットhは1である。iを
lとする(ステップ301)。ステップ302から30
9ではmの1ビットが0か1かによって加算方法や2倍
方法を制御しスカラー倍を求める。すなわち、 i−1
をiに代入し(ステップ302)、[X,Z]、
[X,Z]、[X,Z]を加算方法(図4)に
入力し、出力を[X,Z]へ代入する(ステップ3
03)。ここで、h==0ならば、ステップ304
へ、1ならばステップ306へ進む(ステップ30
4)。[X,Z]を2倍方法(図5)に入力し、出
力を[X,Z]に代入する(ステップ305)。
[X,Z]を[X,Z]に代入し、ステップ3
08へいく(ステップ306)。[X, Z]を2
倍方法(図5)に入力し、出力を[X,Z]に代入
する(ステップ307)。[X,Z]を[X,Z
]に代入し、ステップ308へいく(ステップ30
8)。i>0ならばステップ302へ進む(ステップ3
09)。次は、射影座標から(x,y)座標のx座標へ
変換する。X/(ZをXに代入し(ステップ
310)、Xを出力する(ステップ311)。
【0035】次に、加算方法について説明する。楕円曲
線上の点の射影空間座標として、任意のλ≠0につい
て,[X,Y,Z]=[λX,λY,λZ]とす
る。ここで、楕円曲線上の点P0=(x0,y0)=
[X,Y,Z];P1=(x1,y1)=
[X,Y,Z]とする。この和と差をP3=(x
3,y3)=[X,Y,Z],P4=(x4,y
4)=[X,Y,Z]とする。
【0036】 P1+P0=P3; P1−P0=P4; x3=a+(λ+λ+x0+x1;λ=(y0+y1)/(x0+ x1); x4=a+(λ+λ+x0+x1;λ=(x0+y0+y1)/( x0+x1); λ+λ=(x0)/(x0+x1); (λ+(λ=(x0)/(x0+x1); x3+x4=((x0)2+(x0)(x0+x1))/(x0+x1)2=(x0x1)/(x0+x1)2; 以上により、x3+x4=(x0x1)/(x0+x1) −−−−(1) という関係式が得られた。
【0037】次に、射影座標での関係式を導出する。
【0038】x1=X/(Z、x0=X
(Zを(1)式に代入する。 X/(Z=X4/(Z4)2+((X0/(Z0)2)( X1/(Z1)2))/( X0/(Z0)2+ X1/(Z 1 )2)2; =X4/(Z4)2+((X0(Z0)2)( X1(Z1)2))/( X0(Z1)2+X1(Z0)2)2; =((Xβ)+Z (X )( X )) /(Z β) ただし、β= X + X これより、 X=Xβ+Z (X )( X );−−−−−(2 ) Z=Zβ;−−−−−−−−−−−−−−−−−−−−−−(3) を 得た。
【0039】ここで、mR=[X,Y,Z]、
(m+1)R=[X,Y,Z]、R=[X,Y
,Z]、(2m+1)R=[X,Y,Z]と
する。この導出式を利用した加算方法を以下に説明す
る。図4はこの方法の説明図である。
【0040】<第1実施例加算方法>射影座標[X
],[X,Z],[X,Z]を入力とし、
[X,Z]または無限遠点を出力とする。[X
],[X,Z],[X,Z]を入力し(ステ
ップ402)、ステップ403から407では加算結果
が無限遠点か判定するためにX(Z+ X
(Zを求める。さらに各中間結果S、S、B
は、上記式(2),(3)を求めるための準備である。
すなわち、X(ZをSに代入し(ステップ4
03)、X(ZをSに代入し(ステップ40
4)、S+SをBに代入し(ステップ405)、B
=0の場合、ステップ407へ進み、成立しない場合ス
テップ408へ進む(ステップ406)。ステップ40
7では、無限遠点を出力し、ステップ413へいく。以
下の408−411は上記式(2),(3)に従って
[X,Z]を求める。ZBをZに代入し(ステ
ップ408)、(ZをSに代入し(ステ
ップ409)、X をMに代入し(ステップ41
0)、 M+SをXに代入し(ステップ411)、
[X,Z]を出力を出力する(ステップ412)。
かかる方法により相異なる変数の乗算6回で加算演算を
実行できる。すなわち、X、X、XからXを高
速に演算できる。
【0041】次に、2倍計算方法について説明する。P
1の2倍点をP2とし、P1=(x1,y1)=
[X,Y,Z]、P2=(x2,y2)=
[X,Y,Z]とする。2倍演算の演算式 x2
=(x1)+b/(x1)より、x1= X
(Z、x2=X/(Zをこの式に代入す
る。
【0042】X2/(Z2)2=(X1/(Z1)2)2+b/(X1/(Z1)2)2=X1 2
/(Z1)4+(b(Z1)4)/(X1)2=(X1 4+b(Z1)8)/(X1 2Z1 4) 従って、 X=X +bZ −−−−−(4) Z=X −−−−−−−−(5) この導出式を利用した2倍方法を以下に説明する。図5
は、この説明図である。
【0043】<第1実施例2倍計算方法>Q=[X
]、bを入力とし、2Q=[X,Z]または無
限遠点を出力とする。X,Zを入力し(ステップ5
02)、以下のステップ503から504は2倍結果が
無限遠点を判定するためにX==0またはZ==0
の判定を行う。すなわち、X==0またはZ==0
の場合は、ステップ504へ。成立しない場合は、ステ
ップ505へいく(ステップ503)。ステップ504
では、無限遠点を出力する。以下のステップ505から
507では上記式(4),(5)に従って[X
]を求める。Z をSに代入し(ステップ50
5)、 XSをZに代入し(ステップ506)、X
+b(S)をXに代入し(ステップ507)、
[X,Z]を出力する(ステップ508)。かかる
方法により相異なる変数の乗算2回で加算演算を実行で
きる。従って、<スカラー倍方法>においてはスカラー
値dのビットあたり、相異なる変数の乗算6+2=8回
で実行できる。すなわち、X、X、XからX
高速に演算できる。
【0044】つぎに、復号化部104では、以下の手順
で暗号文112を元の平文114に変換する。112と
114は内容が同じ平文である。入力を暗号文C←x1
||y1||M'、秘密鍵d、原始多項式f(x)、楕円曲
線y+xy=x+ax+bのパラメタ,b、ベー
スポイントGとし、出力を平文Mとする。
【0045】ステップ1:(x2,y2)←d(x1,
y1)(楕円曲線演算部111) ステップ2:平文M←M' xor x2 ステップ1は図2、図3を用いて実行する。
【0046】以上により、与えられた座標(x,y)の
dスカラー倍のx座標を求める処理において、 dのビ
ットパターンに依存せず、dの各ビットあたり8回の相
異なる乗算処理で実現することができる。また、dの与
えられたx座標に対して、乱数kにより[kx,k]
をスカラー倍初期値とすることによって、常に演算対象
を変動させることができる。さらに、これらの組合わせ
により、dのビットパターンが、d(x,y)処理時間
の偏差に現れないため、d(x,y)処理時間の偏差情
報から秘密鍵情報がもれない方法を示した。また、この
性質は暗号処理の電流、電圧、電力の偏差を用いて、暗
号解読を行うDPA(Differential Power Analysis)に
対して、d(x,y)の処理電流(電圧、電力)の偏差
情報から秘密鍵情報がもれない方法をも示している。
【0047】次に第1実施例を更に高速化を図ることが
可能な第2実施例を説明する。アフィン座標から、射影
座標への変換を(x,y)→[x,y,1]とする場
合、Z=1とできる。(2)、(3)式にZ=1を
代入すると、 X3=(X4β2)+(X0(Z1)2)( X0(Z1)2) ------------(6) Z3=β -----------------------------------(7) この式を利用してスカラー倍方法、加算方法を以下のよ
うに求めることができる。
【0048】<第2実施例スカラー倍方法>これを図
6、図7に示す。Rのx座標の射影座標成分X、スカ
ラー値mを入力とし、 Rのm倍の点のx座標の射影座
標成分Xを出力とする。m,Xを入力し(ステップ
602)、以下のステップ603から604ではX
射影座標に変換する。XをXに代入し(ステップ6
03)、1をZに代入する(ステップ604)。ステ
ップ605から607ではスカラー倍の準備を行う。す
なわち、[X,Z]を[X,Z]に代入し(ス
テップ605)、[X,Z]を2倍方法(図5)に
入力し、出力を[X,Z]へ代入する(ステップ6
06)。mの2進数表現をhi−1...hとす
る(ステップ607)。ただし、最上位ビットhは1
である。1をiに代入する(ステップ701)。以下の
ステップ702から709ではmの1ビットが0か1か
によって加算方法や2倍方法を制御しスカラー倍を求め
る。すなわち、i−1をiに代入し(ステップ70
2)、[X,Z]、[X,Z]、Xを加算方
法(図8)に入力し、出力を[X,Z]へ代入する
(ステップ703)。h==0ならば、ステップ70
6へ、1ならばステップ708へ進む(ステップ70
4)。[X,Z] を2倍方法(図5)に入力し、
出力を[X,Z]に代入する(ステップ705)。
[X, Z]を[X,Z]に代入し、ステップ
710へいく(ステップ706)。[X,Z]を2
倍方法(図5)に入力し、出力を[X,Z]に代入
する(ステップ707)。[X, Z]を[X
]へ代入し、ステップ710へいく(ステップ70
8)。i>0ならばステップ703へ進む(ステップ7
09)。X/(ZをXに代入し(ステップ7
10)、Xを出力する(ステップ711)。
【0049】<第2実施例加算方法>これを図8に示
す。[X,Z],[X,Z],Xを入力と
し、[X,Z]または無限遠点を出力とする。[X
,Z],[X,Z],Xを入力し(ステップ
802)、以下のステップ803から807は加算結果
が無限遠点か判定するためにX(Z+ X
(Zを求める。さらに各中間結果S、S、B
は、上記式(6),(7)を求めるための準備である。
すなわち、X をSに代入し(ステップ80
3)、X をSに代入し(ステップ804)、
+SをBに代入する(ステップ805)。B==
0の場合は、ステップ807へ進み、成立しない場合ス
テップ808へ進む(ステップ806)。無限遠点を出
力し、ステップ813へいく(ステップ807)。以下
のステップ808から811は上記式(6),(7)に
従って[X,Z]を求める。すなわち、BをZ
代入し(ステップ808)、SをSに代入し(ス
テップ809)、X をMに代入し(ステップ8
10)、M+SをXに代入し(ステップ811)、
[X,Z]を出力する(ステップ812)。
【0050】以上により、相異なる変数の乗算4回で加
算演算を実行できる。このため、第1実施例の加算演算
より、乗算回数を減らすことができる。なお、2倍演算
は第1実施例の2倍演算を利用する。
【0051】上述した処理時間の偏差情報から秘密鍵情
報が漏れない方法は、2の拡大体上の楕円曲線の場合の
他、素体上の楕円曲線でも適用可能である。
【0052】次に第3実施例を説明する。素体上の楕円
曲線By=x+Ax+Bxの場合、モンゴメリ法
を用いて、処理時間の偏差情報から秘密鍵情報がもれな
い方法を示す。
【0053】P.Montgomery,"Speeding the Pollard and
Elliptic Curve Methods of Factorization", Mathema
tics of computation Vol.48,No.177,pp.243-264(1987)
では、有限素体上の楕円曲線の標準形 By=x
Ax+Bxを用いて、点P0(x0,y0),P1
(x1,y1)の加算と、減算を P3(x3,y3); P4(x4,y4); P1+P0=P3 ; P1−P0=P4 ; とするとき、 x0,x1,x4から、x3が高速に求まる。具体的に
は、次のように素体の乗算6回で求まる。
【0054】(x3,y3)→[X,Z];(x
4,y4)→[X,Z];とするとき、 X←Z[(X−Z)(X+Z)+(X
)(X−Z)] ; Z←X[(X−Z)(X+Z)−(X
)(X−Z)] ; また、2倍演算は、 P5=2P1;(x1,y1)→[X,Z]; 4X←(X+Z−(X−Z ; X5←(X1+Z1)2(X1-Z1)2;Z5←(4X1Z1)[(X1-Z1)2+((A+2)/
4)(4X1Z1)] ; また、P1の2倍点P5(x5,y5)とするとき、x
5は、x1のみから求まり、乗算5回である。これを利
用して、点Rのスカラ倍(スカラー値d)のx座標を以
下のようにRxから求める。
【0055】初期値を[R,2R]、mRをRのm倍の
x座標とするとき、dを2進数展開し、dの上位ビット
から、 0の場合、[mR,(m+1)R]→[2mR,(2m
+1)R] 1の場合、[mR,(m+1)R]→[(2m+1)
R,2(m+1)R] (m+1)R−mR=R (m+1)R+mR=(2m+1)Rである。
【0056】<第3実施例スカラー倍方法>Rのx座標
の射影座標成分X、スカラー値mを入力とし、Rのm
倍の点のx座標の射影座標成分Xを出力とする。
m,Xを入力を入力し(ステップ902)、ステップ
903から905では乱数を射影座標の各座標に乗算す
ることにより、データを撹拌する。すなわち、乱数kを
生成し(ステップ903)、乱数kとXを演算してk
をXに代入し(ステップ904)、乱数kをZ
に代入する(ステップ905)。次に、[X,Z
を[X,Z]に代入し(ステップ906)、
[X,Z]を2倍方法(モンゴメリの2倍演算)に
入力し、出力を[X,Z]へ代入する(ステップ9
07)。mの2進数表現をhi−1...hとす
る(ステップ908)。ただし、最上位ビットhは1
である。iをlとする(ステップ909)。i−1をi
に代入し(ステップ910)、[X,Z]、
[X,Z]、[X, Z]を加算方法(モンゴ
メリの加算演算)に入力し、出力を[X,Z]へ代
入する(ステップ911)。ここで、h==0なら
ば、ステップ912へ、1ならばステップ914へ進む
(ステップ912)。[X,Z]を2倍方法(モン
ゴメリの2倍演算)に入力し、出力を[X,Z]に
代入する(ステップ913)。[X,Z]を
[X,Z]に代入し、ステップ916へいく(ステ
ップ914)。[X,Z]を2倍方法(モンゴメリ
の2倍演算)に入力し、出力を[X,Z]に代入す
る(ステップ915)。[X, Z]を[X,Z
]に代入し、ステップ916へいく(ステップ91
6)。i>0ならばステップ910へ進む(ステップ9
17)。X/ZをXに代入し(ステップ91
8)、Xを出力する(ステップ919)。
【0057】以上により、与えられた座標(x,y)の
dスカラー倍のx座標を求める処理において、dの各ビ
ットあたり11回の相異なる乗算処理で実現し、与えら
れたx座標に対して、乱数kにより[kx,k]をスカ
ラー倍初期値とすることによって、d(x,y)処理時
間の偏差情報から秘密鍵情報がもれない方法を示した。
また、この性質は暗号処理の電流、電圧、電力の偏差を
用いて、暗号解読を行うDPAに対して、d(x,y)
の処理電流(電圧、電力)の偏差情報から秘密鍵情報が
もれない方法を示している。
【0058】さらに、素体上の楕円曲線y=x+a
x+bの場合、By=x+Ax+Bxとy=x
+ax+bの間に有理点がなすアーベル群が同型とな
る楕円曲線を構成し、素体上の楕円曲線y=x+a
x+bで与えられた(x,y)をBy=x+Ax
+Bxに変換し、上記発明の方法でスカラー倍を求め、
結果をy=x+ax+bに変換することにより本発
明を利用することができる。
【0059】次に第4実施例を説明する。第1実施例で
は、射影座標を任意のλ≠0について,[X,Y,Z]
=[λX,λY,λZ]とするものを説明したが、
[X,Y,Z]=[λX,λY,λZ]とする射影座標
で実施することもできる。
【0060】<第4実施例スカラー倍方法>Rのx座標
の射影座標成分X、スカラー値mを入力とし、Rのm
倍の点のx座標の射影座標成分Xを出力とする。m,
を入力し(ステップ1002)、以下のステップ1
003から1005では乱数を射影座標の各座標に乗算
することにより、データを撹拌する。すなわち、乱数k
を生成し(ステップ1003)、kXをXに代入し
(ステップ1004)、乱数kをZに代入する(ステ
ップ1005)。[X,Z]を[X,Z]に代
入し(ステップ1006)、[X,Z]を2倍方法
に入力し、出力を[X,Z]へ代入する(ステップ
1007)。mの2進数表現をhi−1...h
とする(ステップ1008)。ただし、最上位ビットh
は1である。iをlとする(ステップ1009)。i
−1をiに代入し(ステップ1010)、[X
]、[X,Z]、[X,Z]を加算方法に
入力し、出力を[X,Z]へ代入する(ステップ1
011)。ここで、h==0ならば、ステップ101
2へ、1ならばステップ1014へ進む(ステップ10
12)。[X,Z]を2倍方法に入力し、出力を
[X,Z]に代入する(ステップ1013)。[X
,Z]を[X,Z]に代入し、ステップ101
6へいく(ステップ1014)。[X,Z]を2倍
方法に入力し、出力を[X,Z]に代入する(ステ
ップ1015)。[X,Z]を[X, Z]に
代入し、ステップ1016へいく(ステップ101
6)。i>0ならばステップ1010へ進む(ステップ
1017)。X/ZをXに代入し(ステップ10
18)、Xを出力する(ステップ1019)。
【0061】楕円曲線上の点の射影空間座標として、任
意のλ≠0について,[X,Y,Z]=[λX, λ
Y,λZ]とする。ここで、楕円曲線上の点P0=(x
0,y0)=[X,Y,Z]; P1=(x1,
y1)=[X,Y,Z]とする。この和と差をP
3=(x3,y3)=[X,Y,Z],P4=
(x4,y4)=[X,Y,Z]とする。
【0062】P1+P0=P3; P1−P0=P4; 第1実施例の(1)式x3+x4=(x0x1)/(x
0+x1)より射影座標での関係式を導出する。
【0063】x1=X/Z、x0=X/Z
(1)式に代入する。 X/Z=X/Z+((X/Z)(X/Z))/(X/Z +X/Z; =X/(Z+((X)( X))/( X + X; =((Xβ)+Z (X)( X))/(Z β) ただし、β= X+ X これより、X=(Xβ)+Z (X)( X); − −(2)' Z=Z β; −−−−−−−−−−−−−−−−−−−−−(3) ' を得た。
【0064】ここで、mR=[X,Y,Z]、
(m+1)R=[X,Y,Z]、R=[X,Y
,Z]、(2m+1)R=[X,Y,Z]と
する。この導出式を利用した加算方法を以下に説明す
る。
【0065】<第4実施例加算方法>射影座標[X
],[X ,Z],[X , Z]を入力
とし、[X,Z] または無限遠点を出力とする。
[X,Z],[X,Z],[X,Z]を入
力し(ステップ1102)、XをSに代入し
(ステップ1103)、XをSに代入し(ステ
ップ1104)、S+SをBに代入する(ステップ
1105)。B==0の場合は、ステップ1107へ進
み、成立しない場合ステップ1108へ進む(ステップ
1106)。無限遠点を出力し、ステップ1113へい
く(ステップ1107)。(ZをZに代入
し(ステップ1108)、(ZをSに代
入し(ステップ1109)、(X)をMに代入し
(ステップ1110)、M+SをXに代入し(ステッ
プ1111)、[X,Z]を出力する(ステップ1
112)。
【0066】以上により、相異なる変数の乗算6回で加
算演算を実行できる。
【0067】次に、2倍計算方法について説明する。P
1の2倍点をP2とし、P1=(x1,y1)=
[X,Y,Z]、P2=(x2,y2)=
[X,Y,Z]とする。2倍演算の演算式 x2
=(x1)+b/(x1)より、x1=X
、x2=X/Zをこの式に代入する。
【0068】X2/Z2=(X1/Z1)2+b/(X1/Z1)2=X1 2/(Z1)2+(b
Z1 2)/(X1)2=(X1 4+bZ1 4)/(X1 2Z1 2) 従って、 X=X +bZ −−−−−(4)' Z=X −−−−−−−−−−(5)' この導出式を利用した2倍方法を以下に説明する。
【0069】<第4実施例2倍計算方法>Q=[X
,Z],bを入力とし、2Q=[X,Z]ま
たは無限遠点を出力する。X,Zを入力し(ステッ
プ1202)、X==0またはZ==0の場合、ス
テップ1204へ。成立しない場合、ステップ1205
へいく(ステップ1203)。ステップ1204では、
無限遠点を出力する。Z=X とし(ステッ
プ1205)、S=bZ とし(ステップ120
6)、X +SをXに代入し(ステップ120
7)、[X,Z]を出力する(ステップ120
8)。かかる方法により、相異なる変数の乗算2回で加
算演算を実行できる。
【0070】以上により、与えられた座標(x,y)の
dスカラー倍のx座標を求める処理において、dの各ビ
ットあたり8回の相異なる乗算処理で実現し、与えられ
たx座標に対して、乱数kにより[kx,k]をスカラ
ー倍初期値とすることによって、d(x,y)処理時間
の偏差情報から秘密鍵情報がもれない方法を示した。暗
号解読DPAに対して、d(x,y)の処理電流(電
圧、電力)の偏差情報から秘密鍵情報がもれない方法を
示している。
【0071】次に第5実施例を説明する。第2実施例で
は、射影座標を任意のλ≠0について,[X,Y,Z]
=[λX,λY,λZ]とするものを説明したが、
[X,Y,Z]=[λX,λY,λZ]とする射影座標
で実施することもできる。
【0072】アフィン座標から、射影座標への変換を
(x,y)→[x,y,1]とする場合、Z=1 と
できる。
【0073】<第5実施例スカラー倍方法>Rのx座標
の射影座標成分X、スカラー値mを入力とし、Rのm
倍の点のx座標の射影座標成分Xを出力とする。m,
を入力し(ステップ1302)、乱数kを生成し
(ステップ1303)、kXをXに代入する(ステ
ップ1304)。1をZに代入する(ステップ130
5)。[X,Z]を[X,Z]に代入し(ステ
ップ1306)、[X,Z]を2倍方法に入力し、
出力を[X,Z]へ代入する(ステップ130
7)。mの2進数表現をhi−1...hとす
る。ただし、最上位ビットhは1である(ステップ1
308)。1をiに代入する(ステップ1309)。i
−1をiに代入し(ステップ1310)、[X, Z
]、[X,Z]、Xを加算方法に入力し、出力
を[X,Z]へ代入する(ステップ1311)。h
==0ならば、ステップ1312へ、1ならばステッ
プ1314へ進む(ステップ1312)。[X
]を2倍方法に入力し、出力を[X,Z]に代
入する(ステップ1313)。[X,Z]を
[X,Z]へ代入し、ステップ1316へいく(ス
テップ1314)。[X,Z]を2倍方法に入力
し、出力を[X,Z]に代入する(ステップ131
5)。[X,Z]を[X,Z]へ代入し、ステ
ップ1316へいく(ステップ1316)。i>0なら
ばステップ1300へ進む(ステップ1317)。X
/ZをXに代入し(ステップ1318)、Xを出
力する(ステップ1319)。
【0074】<第5実施例加算方法>[X,Z],
[X,Z],Xを入力とし、[X,Z]また
は無限遠点を出力とする。[X,Z],[X,Z
],Xを入力する(ステップ1402)。X
をSに代入し(ステップ1403)、XをS
に代入し(ステップ1404)、S+SをBに代入
する(ステップ1405)。B==0の場合、ステップ
1407へ、成立しない場合ステップ1408へ進む
(ステップ1406)。無限遠点を出力し、ステップ1
413へいく(ステップ1407)。次に、BをZ
に代入し(ステップ1408)、SをSに代入し
(ステップ1409)、(X)をMに代入し(ス
テップ1410)、M+SをXに代入し(ステップ1
411)し、[X,Z]を出力する(ステップ14
12)。以上により、相異なる変数の乗算4回で加算演
算を実行できる。なお、2倍演算は、前述した実施例の
2倍演算を利用する。尚、本実施例は2の拡大体上、素
体上の楕円曲線どちらにも適用可能である。
【0075】次に第6実施例を説明する。図1の楕円曲
線演算部を、図9における901の楕円曲線演算装置で
実施する。901は点のx座標X、スカラー値m、2
の拡大体上の楕円曲線の標準形y+xy=x+ax
+bにおいけるbを入力し(902)、m倍の点のx
座標をX出力する(903)。尚、本実施例は2の拡
大体上の楕円曲線で説明するが、素体上の楕円曲線を用
いた場合も同様の方法で実現可能である。
【0076】乱数生成部904は、乱数kを生成し、k
を出力する(905)。射影座標変換部906には乱数
生成部904からの乱数kの他、x座標Xとスカラー
値m、bを入力し(905)、射影座標[kX,k]
に変換する。これを[X,Z]とする。スカラー倍
部908は射影座標[X,Z]とスカラー値mを入
力し、[X,Z]のm倍点を求め、そのx座標X
を出力する。ここで、スカラー倍部908は、先ず、
[X,Z]を[X,Z]へ代入する。かかる
[X,Z]は、例えばスカラー倍部のメモリに予め
記憶させておく。また[X,Z]を913へ出力し
て、2倍点[X,Z]を得る。次に、mを2進数展
開して、上位ビットからビットが0の場合[X
]を913に出力して913の出力である2倍点を
[X,Z]に代入する。その後[X,Z]、
[X,Z]、[X,Z]を910へ入力して出
力である加算点を[X,Z]に代入する。ビットが
1の場合[X,Z]を913に出力して913の出
力である2倍点を[X,Z]に代入する。その後
[X,Z]、[X,Z]、[X,Z]を9
10へ入力して出力である加算点を[X,Z]に代
入することによりm倍の点のX座標を得る。
【0077】加算演算部910では、[X,Z
[X,Z][X,Z]を入力し、[X
]=[X,Z]+[X,Z]、[X,Z
]=[X,Z]−[X,Z]となる[X
]を以下のように求め出力する。
【0078】先ず、S←X 、S←X
、B←S+Sを計算する。ここでB==0の場
合、無限遠点を出力し終了となる。B=0が成立しない
場合、Z←ZB、S←Z 、M ←X
、X←M+Sを計算する。
【0079】2倍演算部913では、[X,Z]、
bを入力し、[X,Z]=[X,Z]+
[X,Z]となる[X,Z]を以下のように求
め出力する。すなわち、X==0またはZ ==0
の場合、無限遠点を出力する。他の場合、S←Z
←XS、X←X +b(S)を計算する。
【0080】上記実施例では、x座標Xを射影座標
[kX,k]に変換した例を説明したが、射影座標
[k,k]に変換する場合にも適用可能である。
【0081】尚、上述した実施例にかかるプログラムは
記録媒体に格納しておくことも可能である。
【0082】
【発明の効果】本発明により前記従来のより、高速に楕
円曲線暗号処理を実行できる。また、楕円曲線暗号の実
行方法において、d(x,y)の処理時間がdのビット
パターンに依存しない処理方法を与えることによって、
偏差情報から秘密鍵情報がもれずに処理できる。
【図面の簡単な説明】
【図1】本発明の楕円曲線暗号システムにおける処理の
流れを示す図である。
【図2】本発明の第1の実施例を示す楕円曲線暗号実行
方法及び装置においてスカラー倍方法を示すフローチャ
ートである。
【図3】本発明の第1の実施例を示す楕円曲線暗号実行
方法及び装置においてスカラー倍方法を示すフローチャ
ートである。
【図4】本発明の第1の実施例を示す楕円曲線暗号実行
方法及び装置を実行するための加算演算のフローチャー
トである。
【図5】本発明の第1の実施例を示す楕円曲線暗号実行
方法及び装置を実行するための2倍演算のフローチャー
トである。
【図6】本発明の第2の実施例を示す楕円曲線暗号実行
方法及び装置においてスカラー倍方法を示すフローチャ
ートである。
【図7】本発明の第2の実施例を示す楕円曲線暗号実行
方法及び装置においてスカラー倍方法を示すフローチャ
ートである。
【図8】本発明の第2の実施例を示す楕円曲線暗号実行
方法及び装置を実行するための加算演算のフローチャー
トである。
【図9】本発明の楕円曲線演算装置を構成図である。
【図10】本発明の楕円曲線暗号システムの構成図であ
る。
【符号の説明】
101 楕円曲線生成部、 102 公開鍵、秘密鍵生成部、 103 暗号化部、 104 復号化部、 105 素数生成部、 106 楕円曲線パラメタ設定、 107 ベースポイント生成部、 108 乱数生成部、 109 楕円曲線演算部、 110 データ暗号化処理部、 111 データ復号化処理部、 112 暗号文、 113 平文。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】楕円曲線がy+xy=x+ax+b
    である、2の拡大体上の楕円曲線暗号の実行方法であっ
    て、各座標成分が前記楕円曲線上の点である点P1(x
    1,y1),P2(x2,y2)の加算をP3(x3,
    y3)とし、点P1(x1,y1),P2(x2,y
    2)の減算をP4(x4,y4)とした場合、前記x1
    を入力するステップと、前記入力されたx1を射影空間
    のX座標、Z座標[X,Z]に変換するステップ
    と、前記射影空間の座標[X,Z]を記憶するステ
    ップと、前記x2を[X,Z]に変換するステップ
    と、前記[X,Z]を記憶するステップと、前記x
    4を[X,Z]に変換するステップと、前記
    [X,Z]を記憶するステップと、前記記憶された
    [X,Z],[X ,Z],[X,Z]か
    ら[X,Z]を求めるステップと、前記[X,Z
    ]からx3に変換するステップと、前記x3を出力す
    るステップとからなり、点P1(x1,y1)のスカラ
    ー倍を計算することを特徴とする楕円曲線暗号実行方
    法。
  2. 【請求項2】請求項1記載の楕円曲線暗号実行方法であ
    って、乱数kを生成するステップと、前記生成された乱
    数kを記憶するステップと、x座標を射影座標に変換し
    た後、射影空間の各座標成分と前記記憶された乱数kと
    演算させて、射影座標[kx,k]に変換するステッ
    プとを有することを特徴とする請求項1記載の楕円曲線
    暗号実行方法。
  3. 【請求項3】請求項1記載の楕円曲線暗号実行方法であ
    って、乱数kを生成するステップと、前記生成された乱
    数kを記憶するステップと、x座標を射影座標に変換し
    た後、射影空間の各座標成分と前記記憶された乱数kと
    演算させて、射影座標[kx,k]に変換するステップ
    とを有することを特徴とする請求項1記載の楕円曲線暗
    号実行方法。
  4. 【請求項4】請求項1記載の楕円曲線暗号実行方法であ
    って、記憶された[X,Z],[X,Z],
    [X,Z]からx3に変換できる[X,Z]を
    求めるステップには、B=X +X を計
    算するステップと、前記計算されたBを記憶するステッ
    プと、前記記憶されたBをB=0であるか否かをを判別
    するステップと、B=0の場合は無限遠点を出力し、B
    =0でない場合はZ=ZBを計算するステップと、
    前記計算されたZを記憶するステップと、前記記憶さ
    れたZからX=X +X
    を計算するステップとを有することを特徴とする
    請求項1記載の楕円曲線暗号実行方法。
  5. 【請求項5】請求項1記載の楕円曲線暗号実行方法であ
    って、記憶された[X,Z],[X,Z],
    [X,Z]からx3に変換できる[X,Z]を
    求めるステップには、 B=X+Xを計算
    するステップと、前記計算されたBを記憶するステップ
    と、前記記憶されたBをB=0であるか否かをを判別す
    るステップと、B=0の場合は無限遠点を出力し、B=
    0でない場合はZ=Z 及びX=X
    を計算するステップとを有する
    ことを特徴とする請求項1記載の楕円曲線暗号実行方
    法。
  6. 【請求項6】楕円曲線がy+xy=x+ax+b
    である、2の拡大体上の楕円曲線暗号の演算装置であっ
    て、乱数kを生成する乱数生成部と、2の拡大体上の座
    標x0と前記乱数kとを入力し、射影座標[kx0,
    k]=[X,Z]に変換する射影座標変換部と、前
    記[X,Z]から2倍点を演算し出力する2倍演算
    部と、前記[X,Z]から加算点を求め出力する加
    算演算部と、前記射影座標変換部と前記2倍演算部と前
    記加算演算部からの情報を得て、座標x0をスカラー倍
    するスカラー倍部とを有することを特徴とする楕円曲線
    演算装置。
  7. 【請求項7】楕円曲線がy+xy=x+ax+b
    である、2の拡大体上の楕円曲線暗号の実行方法を格納
    した記録媒体であって、前記楕円曲線暗号の実行方法は
    以下を含む:各座標成分が前記楕円曲線上の点である点
    P1(x1,y1),P2(x2,y2)の加算をP3
    (x3,y3)とし、点P1(x1,y1),P2(x
    2,y2)の減算をP4(x4,y4)とした場合、前
    記x1を入力するステップと、前記入力されたx1を射
    影空間のX座標、Z座標[X,Z]に変換するステ
    ップと、前記射影空間の座標[X,Z]を記憶する
    ステップと、前記x2を[X,Z]に変換するステ
    ップと、前記[X,Z]を記憶するステップと、前
    記x4を[X,Z]に変換するステップと、前記
    [X,Z]を記憶するステップと、前記記憶された
    [X,Z],[X ,Z],[X,Z]か
    ら[X,Z]を求めるステップと、前記[X,Z
    ]からx3に変換するステップと、前記x3を出力す
    るステップとからなり、点P1(x1,y1)のスカラ
    ー倍を計算する。
JP36427798A 1998-12-22 1998-12-22 楕円曲線暗号実行方法及び装置並びに記録媒体 Expired - Fee Related JP3796993B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP36427798A JP3796993B2 (ja) 1998-12-22 1998-12-22 楕円曲線暗号実行方法及び装置並びに記録媒体
CA002292817A CA2292817C (en) 1998-12-22 1999-12-20 Method and apparatus for elliptic curve cryptography and recording medium therefor
EP99310340A EP1014617A3 (en) 1998-12-22 1999-12-21 Method and apparatus for elliptic curve cryptography and recording medium therefor
US09/468,948 US6876745B1 (en) 1998-12-22 1999-12-22 Method and apparatus for elliptic curve cryptography and recording medium therefore

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP36427798A JP3796993B2 (ja) 1998-12-22 1998-12-22 楕円曲線暗号実行方法及び装置並びに記録媒体

Publications (2)

Publication Number Publication Date
JP2000187438A true JP2000187438A (ja) 2000-07-04
JP3796993B2 JP3796993B2 (ja) 2006-07-12

Family

ID=18481429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP36427798A Expired - Fee Related JP3796993B2 (ja) 1998-12-22 1998-12-22 楕円曲線暗号実行方法及び装置並びに記録媒体

Country Status (4)

Country Link
US (1) US6876745B1 (ja)
EP (1) EP1014617A3 (ja)
JP (1) JP3796993B2 (ja)
CA (1) CA2292817C (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030078350A (ko) * 2002-03-29 2003-10-08 박근수 타원 곡선 암호에서 단위원의 n-제곱근 함수를 이용한프로베니우스 전개 방법
WO2005008955A1 (ja) * 2003-07-22 2005-01-27 Fujitsu Limited 個人鍵を用いた耐タンパ暗号処理
KR100731575B1 (ko) 2005-06-29 2007-06-22 경북대학교 산학협력단 전력분석공격에 대응하는 암호화 방법
KR100817048B1 (ko) 2005-03-05 2008-03-26 삼성전자주식회사 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치
KR100850202B1 (ko) 2006-03-04 2008-08-04 삼성전자주식회사 Ecc 패스트 몽고매리 전력 래더 알고리즘을 이용하여dfa 에 대응하는 암호화 방법
JP2009500892A (ja) * 2005-06-29 2009-01-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法
US7555122B2 (en) 2002-12-04 2009-06-30 Wired Communications LLC Method for elliptic curve point multiplication
JP2010539519A (ja) * 2006-09-29 2010-12-16 シーメンス アクチエンゲゼルシヤフト 暗号化されたデータ交換を行う方法、および通信システム
WO2011033672A1 (ja) * 2009-09-18 2011-03-24 株式会社東芝 演算装置、方法およびプログラム
US7940936B2 (en) 2006-12-15 2011-05-10 Samsung Electronics Co., Ltd. Public key generation method in elliptic curve cryptography and public key generation system executing the method
US7940927B2 (en) 2005-04-27 2011-05-10 Panasonic Corporation Information security device and elliptic curve operating device
KR101763443B1 (ko) * 2010-01-13 2017-07-31 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 집적된 역수 연산들을 이용한 곡선 상의 페어링 결정

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002023795A1 (en) * 2000-09-11 2002-03-21 Zhang Jinglong F A method and apparatus employing one-way transforms
JP3794266B2 (ja) * 2000-11-08 2006-07-05 株式会社日立製作所 楕円曲線スカラー倍計算方法及び装置並びに記憶媒体
DE10057203C1 (de) * 2000-11-17 2002-06-06 Cv Cryptovision Gmbh Verfahren zur Berechnung eines digitalen Signalwertes für ein cryptographisches Verfahren
WO2002082717A1 (en) * 2001-04-05 2002-10-17 Kent Ridge Digital Labs Method and apparatus for constructing efficient elliptic curve cryptosystems
US7308469B2 (en) * 2001-06-15 2007-12-11 Robert Joseph Harley Method for generating secure elliptic curves using an arithmetic-geometric mean iteration
FR2828779B1 (fr) * 2001-08-17 2004-01-16 Gemplus Card Int Procede de calcul universel applique a des points d'une courbe elliptique
US20040001590A1 (en) * 2002-06-27 2004-01-01 Eisentraeger Anne Kirsten Efficient elliptic curve double-and-add calculator
US7961873B2 (en) * 2004-03-03 2011-06-14 King Fahd University Of Petroleum And Minerals Password protocols using XZ-elliptic curve cryptography
US7379546B2 (en) * 2004-03-03 2008-05-27 King Fahd University Of Petroleum And Minerals Method for XZ-elliptic curve cryptography
US7961874B2 (en) * 2004-03-03 2011-06-14 King Fahd University Of Petroleum & Minerals XZ-elliptic curve cryptography with secret key embedding
US7764785B2 (en) * 2004-11-08 2010-07-27 King Fahd University Of Petroleum And Minerals Method for communicating securely over an insecure communication channel
EP1675299B1 (en) * 2004-12-23 2018-08-01 Hewlett-Packard Development Company, L.P. Authentication method using bilinear mappings
CA2935823C (en) * 2005-01-18 2019-01-15 Certicom Corp. Accelerated verification of digital signatures and public keys
EP1775880A1 (en) * 2005-10-11 2007-04-18 STMicroelectronics S.r.l. Method of processing information to be confidentially transmitted
ATE464599T1 (de) 2005-10-18 2010-04-15 Telecom Italia Spa Verfahren zur skalarmultiplikation in gruppen elliptischer kurven über primkörpern für nebenkanal-attacken-beständige kryptosysteme
ATE466329T1 (de) 2005-10-28 2010-05-15 Telecom Italia Spa Verfahren zur skalarmultiplikation in gruppen elliptischer kurven über binäre polynomische körper für nebenkanalattacken-beständige kryptosysteme
US7864951B2 (en) * 2006-07-10 2011-01-04 King Fahd University Of Petroleum And Minerals Scalar multiplication method with inherent countermeasures
US8997255B2 (en) 2006-07-31 2015-03-31 Inside Secure Verifying data integrity in a data storage device
KR20080012633A (ko) * 2006-08-04 2008-02-12 삼성전자주식회사 고속 몽고메리 전력 래더 알고리즘에서 사용되는 폴트 검출동작을 구현하기 위한 소수 유한 영역에서의 포인트 덧셈방법 및 덧셈 연산 장치
US8352752B2 (en) 2006-09-01 2013-01-08 Inside Secure Detecting radiation-based attacks
US7856101B2 (en) * 2007-02-07 2010-12-21 King Fahd University Of Petroleum And Minerals Method for elliptic curve scalar multiplication
US8050403B2 (en) * 2007-03-06 2011-11-01 Research In Motion Limited Method and apparatus for generating a public key in a manner that counters power analysis attacks
US8160245B2 (en) * 2007-03-07 2012-04-17 Research In Motion Limited Methods and apparatus for performing an elliptic curve scalar multiplication operation using splitting
US8102998B2 (en) * 2007-05-02 2012-01-24 King Fahd University Of Petroleum And Minerals Method for elliptic curve scalar multiplication using parameterized projective coordinates
US20080273695A1 (en) * 2007-05-02 2008-11-06 Al-Gahtani Theeb A Method for elliptic curve scalar multiplication using parameterized projective coordinates
US7986779B2 (en) * 2007-06-30 2011-07-26 Intel Corporation Efficient elliptic-curve cryptography based on primality of the order of the ECC-group
US8559625B2 (en) * 2007-08-07 2013-10-15 Inside Secure Elliptic curve point transformations
US7991162B2 (en) * 2007-09-14 2011-08-02 University Of Ottawa Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields
US8233615B2 (en) 2008-01-15 2012-07-31 Inside Secure Modular reduction using a special form of the modulus
US8619977B2 (en) * 2008-01-15 2013-12-31 Inside Secure Representation change of a point on an elliptic curve
US8422685B2 (en) 2008-02-26 2013-04-16 King Fahd University Of Petroleum And Minerals Method for elliptic curve scalar multiplication
EP2124382A1 (de) * 2008-05-20 2009-11-25 Siemens Aktiengesellschaft Verfahren zum verschlüsselten Datenaustausch und Kommunikationssystem
JP5233449B2 (ja) * 2008-07-02 2013-07-10 日本電気株式会社 署名生成装置、ならびに、署名検証装置
US20140314229A1 (en) * 2011-12-09 2014-10-23 Morpho Cryptography on a simplified elliptical curve
US20170207918A1 (en) 2009-06-16 2017-07-20 Morpho Cryptography on an elliptical curve
FR2946819B1 (fr) * 2009-06-16 2011-07-01 Sagem Securite Cryptographie sur une courbe elliptique.
US8385541B2 (en) * 2010-02-18 2013-02-26 King Fahd University Of Petroleum And Minerals Method of performing elliptic polynomial cryptography with elliptic polynomial hopping
US8331558B2 (en) * 2010-02-18 2012-12-11 King Fahd University Of Petroleum And Minerals Method of cipher block chaining using elliptic curve cryptography
US8189775B2 (en) * 2010-02-18 2012-05-29 King Fahd University Of Petroleum & Minerals Method of performing cipher block chaining using elliptic polynomial cryptography
US8699701B2 (en) 2010-12-01 2014-04-15 King Fahd University Method of performing XZ-elliptic curve cryptography for use with network security protocols
US8509426B1 (en) 2010-12-01 2013-08-13 King Fahd University Of Petroleum And Minerals XZ-elliptic curve cryptography system and method
WO2012090289A1 (ja) * 2010-12-27 2012-07-05 富士通株式会社 暗号処理装置および方法
US8635467B2 (en) 2011-10-27 2014-01-21 Certicom Corp. Integrated circuit with logic circuitry and multiple concealing circuits
US8334705B1 (en) 2011-10-27 2012-12-18 Certicom Corp. Analog circuitry to conceal activity of logic circuitry
CN102664889A (zh) * 2012-04-23 2012-09-12 网经科技(苏州)有限公司 基于椭圆曲线的ims媒体双向加密方法
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
CN104717072A (zh) * 2015-03-10 2015-06-17 南京师范大学 基于感知哈希与椭圆曲线的遥感影像认证方法
US10372886B2 (en) * 2015-05-05 2019-08-06 Nxp B.V. Protecting the input/output of modular encoded white-box RSA/ECC
US10181944B2 (en) 2015-06-16 2019-01-15 The Athena Group, Inc. Minimizing information leakage during modular exponentiation and elliptic curve point multiplication
BR112018016782A2 (pt) 2016-02-23 2018-12-26 Nchain Holdings Ltd sistema e método implementado por computador configurado para controlar uma transferência feita através de um blockchain
WO2017145010A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
BR112018016822A2 (pt) 2016-02-23 2018-12-26 Nchain Holdings Ltd método implementado por computador para realizar uma troca de entidades entre um primeiro usuário e um segundo usuário, processador e meio legível por computador
JP6942136B2 (ja) 2016-02-23 2021-09-29 エヌチェーン ホールディングス リミテッドNchain Holdings Limited デジタルコンテンツの制御及び配信のためのブロックチェーンにより実施される方法
BR112018016819A2 (pt) 2016-02-23 2018-12-26 Nchain Holdings Ltd método e sistemas para proteger um recurso digital controlado utilizando uma tabela de dispersão e livro-razão distribuídos e um blockchain
WO2017145019A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
LT3268914T (lt) 2016-02-23 2018-11-12 nChain Holdings Limited Bendros paslapties, skirtos saugiems informacijos mainams, nustatymas ir hierarchiniai determinuoti kriptografiniai raktai
EP3420669B1 (en) 2016-02-23 2021-03-24 Nchain Holdings Limited Cryptographic method and system for secure extraction of data from a blockchain
JP6528008B2 (ja) * 2016-02-23 2019-06-12 エヌチェーン ホールディングス リミテッドNchain Holdings Limited 秘密共有のための楕円曲線暗号化を利用したパーソナルデバイスセキュリティ
EP3420675B1 (en) 2016-02-23 2020-03-11 Nchain Holdings Limited Blockchain implemented counting system and method for use in secure voting and distribution
US11146397B2 (en) * 2017-10-31 2021-10-12 Micro Focus Llc Encoding abelian variety-based ciphertext with metadata

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
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
US5497423A (en) * 1993-06-18 1996-03-05 Matsushita Electric Industrial Co., Ltd. Method of implementing elliptic curve cryptosystems in digital signatures or verification and privacy communication
EP0874307B2 (en) * 1997-03-25 2016-12-28 Certicom Corp. Accelerated finite field operations on an elliptic curve
FR2791497B1 (fr) * 1999-03-26 2001-05-18 Gemplus Card Int Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030078350A (ko) * 2002-03-29 2003-10-08 박근수 타원 곡선 암호에서 단위원의 n-제곱근 함수를 이용한프로베니우스 전개 방법
US7555122B2 (en) 2002-12-04 2009-06-30 Wired Communications LLC Method for elliptic curve point multiplication
US8027467B2 (en) 2002-12-04 2011-09-27 Wired Connections Llc Method for elliptic curve point multiplication
WO2005008955A1 (ja) * 2003-07-22 2005-01-27 Fujitsu Limited 個人鍵を用いた耐タンパ暗号処理
JPWO2005008955A1 (ja) * 2003-07-22 2006-09-07 富士通株式会社 個人鍵を用いた耐タンパ暗号処理
JP4632950B2 (ja) * 2003-07-22 2011-02-16 富士通株式会社 個人鍵を用いた耐タンパ暗号処理
KR100817048B1 (ko) 2005-03-05 2008-03-26 삼성전자주식회사 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치
US7940927B2 (en) 2005-04-27 2011-05-10 Panasonic Corporation Information security device and elliptic curve operating device
JP2009500892A (ja) * 2005-06-29 2009-01-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法
KR100731575B1 (ko) 2005-06-29 2007-06-22 경북대학교 산학협력단 전력분석공격에 대응하는 암호화 방법
US8738927B2 (en) 2005-06-29 2014-05-27 Irdeto B.V. Arrangement for and method of protecting a data processing device against an attack or analysis
KR100850202B1 (ko) 2006-03-04 2008-08-04 삼성전자주식회사 Ecc 패스트 몽고매리 전력 래더 알고리즘을 이용하여dfa 에 대응하는 암호화 방법
JP2010539519A (ja) * 2006-09-29 2010-12-16 シーメンス アクチエンゲゼルシヤフト 暗号化されたデータ交換を行う方法、および通信システム
US8707038B2 (en) 2006-09-29 2014-04-22 Siemens Aktiengesellschaft Method for the encrypted data exchange and communication system
US7940936B2 (en) 2006-12-15 2011-05-10 Samsung Electronics Co., Ltd. Public key generation method in elliptic curve cryptography and public key generation system executing the method
WO2011033672A1 (ja) * 2009-09-18 2011-03-24 株式会社東芝 演算装置、方法およびプログラム
JP5323196B2 (ja) * 2009-09-18 2013-10-23 株式会社東芝 演算装置、方法およびプログラム
US8924448B2 (en) 2009-09-18 2014-12-30 Kabushiki Kaisha Toshiba Arithmetic device, method, and program product
KR101763443B1 (ko) * 2010-01-13 2017-07-31 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 집적된 역수 연산들을 이용한 곡선 상의 페어링 결정

Also Published As

Publication number Publication date
CA2292817C (en) 2004-02-17
US6876745B1 (en) 2005-04-05
JP3796993B2 (ja) 2006-07-12
CA2292817A1 (en) 2000-06-22
EP1014617A2 (en) 2000-06-28
EP1014617A3 (en) 2002-08-21

Similar Documents

Publication Publication Date Title
JP3796993B2 (ja) 楕円曲線暗号実行方法及び装置並びに記録媒体
JP3862500B2 (ja) 直接埋め込み方式による高速楕円曲線暗号化の方法と装置
US7536011B2 (en) Tamper-proof elliptic encryption with private key
JP4668931B2 (ja) 電力解析攻撃に対する耐タンパ性を持った暗号化処理装置
US20040250081A1 (en) Method and apparatus for digital signature authentication
US20080260143A1 (en) Xz-elliptic curve cryptography with secret key embedding
US6266688B1 (en) Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
US20110161390A1 (en) Modular multiplication processing apparatus
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
EP0704124A1 (en) A cryptographic method
US6480606B1 (en) Elliptic curve encryption method and system
JP2004501385A (ja) 楕円曲線暗号化方法
JP2003098962A (ja) 楕円曲線スカラー倍計算方法及び装置並びに記録媒体
Paar et al. The RSA cryptosystem
JP4690819B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
JP2005195829A (ja) 復号または署名作成におけるべき乗剰余算の計算方法
JP4502817B2 (ja) 楕円曲線スカラー倍計算方法および装置
JP4598269B2 (ja) 楕円曲線上の高速有限体演算
Li et al. A novel algorithm for scalar multiplication in ECDSA
Siddavaatam et al. An adaptive security framework with extensible computational complexity for cipher systems
JP4692022B2 (ja) 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム
JP3966714B2 (ja) 暗号処理方法、そのプログラム及びその記録媒体
JP2004205870A (ja) 超楕円曲線スカラー倍演算方法及び装置
US7480380B2 (en) Method for efficient generation of modulo inverse for public key cryptosystems
JPH02273779A (ja) ディジタル署名装置

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

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060410

LAPS Cancellation because of no payment of annual fees