JP2012185517A - 同時スカラー乗算方法 - Google Patents

同時スカラー乗算方法 Download PDF

Info

Publication number
JP2012185517A
JP2012185517A JP2012122076A JP2012122076A JP2012185517A JP 2012185517 A JP2012185517 A JP 2012185517A JP 2012122076 A JP2012122076 A JP 2012122076A JP 2012122076 A JP2012122076 A JP 2012122076A JP 2012185517 A JP2012185517 A JP 2012185517A
Authority
JP
Japan
Prior art keywords
pair
bit
scalar
bits
multiplication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012122076A
Other languages
English (en)
Other versions
JP2012185517A5 (ja
Inventor
Antipa Adrian
アンティパ エイドリアン
Poliahu Yuri
ポーレフ ユーリ
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.)
Certicom Corp
Original Assignee
Certicom 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 Certicom Corp filed Critical Certicom Corp
Publication of JP2012185517A publication Critical patent/JP2012185517A/ja
Publication of JP2012185517A5 publication Critical patent/JP2012185517A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Executing Machine-Instructions (AREA)
  • Catalysts (AREA)
  • Exhaust Gas Treatment By Means Of Catalyst (AREA)

Abstract

【課題】モンゴメリ法での特別な用法である同時点乗算の方法を提供する。
【解決手段】例えば、kP+sQを組み合わせるためにモンゴメリ法を用いて、楕円曲線スキームで重複点(例えばkP及びsQ)を別々に計算するに当たり、kP及びsQの個別の計算において、同時に行うことができるはずの演算が数回繰り返される。そこで、倍加及び加算演算の総数を減らし、これにより、重複スカラー乗算の方法の効率を良くする、同時スカラー乗算法を提供する。PとQの対の元を1つの対に組み合わせ、k及びsのビットを、ビット対として各ステップにて評価する。k及びsのビットが等しい場合には、1回の倍加演算と1回の加算演算のみを必要として現在の対を計算し、k及びsのビットが等しくない場合は、1回の倍加演算と2回の加算演算のみを必要とする。
【選択図】図3

Description

本発明は、概して暗号法の分野に関するものであり、そのための楕円曲線暗号及びスカ
ラー乗算法における特別な有用性を有する。
楕円曲線算法で、点乗算(point multiplication)とは、整数に
楕円曲線上の或る点を掛ける演算のことである。この点乗算が楕円曲線暗号スキームの実
行時間の大半を占めることは周知である。
値kPを計算するために点乗算を行う1つの方法に、モンゴメリ法があり、kは整数、
Pは楕円曲線E上の或る点である。モンゴメリ法の1つの実装では、整数値kは、基数を
2とする一連のバイナリビットで表される。モンゴメリのスカラー乗算は、対(mP,(
m+1)P)で始まるシーケンス及びkのビットを用いてkPを計算する。係数mは、前
の対の第1項における、Pの係数を表す任意の整数である。このシーケンスで、各対は、
前の対の一方の成分を2倍にし、且つ両成分を加算することによって得られる。ここで、
これら演算の順序は、kのビット値に依存する。演算のシーケンスは開始対から始まり、
最上位ビットを除く、kの各ビットごとに新規の対を計算する。全ての対にとって、第2
の成分は第1の成分とはPだけ異なるようになっている。このことは、点倍加及び点加算
により効率的な方法を用いることを可能にする。
実際上、演算シーケンスは対(P,2P)で開始し、ここに、Pは第1項、2Pは第2
項であり、従ってm=1である。整数kの最上位ビットは破棄され、kの2番目の上位ビ
ットから最下位ビットへと進み、次の対は以下のように計算される。
各ステップに対し、kの現在のビットがゼロ(0)の場合(例えば、2番目のステップ
に対し、kの2番目の上位ビットがゼロの場合)、現在の第1項は前の第1項の2倍とし
、現在の第2項は前の第1と第2項の和とする。しかし、kの現在のビットが1の場合に
は、現在の第1項は前の第1と第2項の和とし、現在の第2項は前の第2項の2倍とする
例えば、対(mP,(m+1)P)で開始し、kの現在のビットが0の場合、次のステ
ップでは、現在の対は(2*mP,mP+(m+1)P)=(2mP,(2m+1)P)
となる。一方、kの現在のビットが1の場合には、現在の対は(mP+(m+1)P,2
*(m+1)P)=((2m+1)P,(2m+2)P)となる。これから明らかなよう
に、各ステップは、倍加演算及び加算演算を含む。演算シーケンスは、kの最終ビットま
で各ビットに対して継続し、その時点(kの最後のビットの時点)で、現在の対の第1項
(例えば、計算した最後の対の第1項)が、kPに対する所望の値を含むようになる。
モンゴメリ法の一例を、図1に示してある。図1に示す例では、k=45=10110
である。演算シーケンスは対(P,2P)で開始し、ステップi=5〜i=0の間に
、kの現在のビットに対する新規の対を計算する。
上述した一般的なやり方を説明するために、ステップi=3を参照するに、ここで、k
の現在のビットは1であり、前の対(すなわちi=4からの対)は(2P,3P)である
。現在のビットが1なので、図1の表のステップi=3に示すように、現在の第1項は2
P+3P=5Pと計算される。現在の第2項は、同様に表に示すように、2*3P=6P
と計算される。これらの項の他の計算方法はmの値に基づき、このステップに対するmの
値は2である(すなわち、ステップi=4におけるPの係数は2である)。従って、現在
の第1項は(2*2+1)P=5Pと計算され、現在の第2項は(2*2+2)P=6P
と計算される。ステップi=0では、k=45から予想されるように、値45Pは所望値
kpに相当する。
楕円曲線ディジタル署名アルゴリズム(ECDSA)の検証のような、ある楕円曲線暗
号演算では、kP+sQを求めるためにスカラー乗算の組み合わせを計算する。ここでQ
は、楕円曲線E上の他の点であり、sは他のスカラーである。kP+sQを求めるために
モンゴメリ法を用いることができるが、各スカラー乗算は、別々に行うことになり、この
場合に得られる2つの値、すなわちkP及びsQは、同時乗算(simultaneou
s multiplication)kP+sQを求めるために、互いに加算することにな
る。従って、kP+sQを求めるためには、k及びs双方の各ビットに対して、個別に倍
加演算と加算演算を必要とする。
スカラー乗算は、楕円曲線暗号スキームの実行時間の大半を占めることになるから、上
述したように検証ステップにモンゴメリ法を用いることは、典型的な用途にとっては、非
効率的であると見なされる。
従って、本発明の目的は、上述の不利な点の少なくとも1つを取り除くか又は軽減する
ことにある。
モンゴメリ法での特別な用法である同時点乗算(simultaneous poin
t multiplication)の方法を提供する。この方法は、各々の点乗算に対
して個別にモンゴメリ法を用いる場合と比較して、倍加演算の回数を減少させ、場合によ
っては加算演算の回数を減少させる。
本発明の一形態では、第1のスカラーkに楕円曲線E上の第1の点Pを掛ける第1の乗
算と、第2のスカラーsに楕円曲線E上の第2の点Qを掛ける第2の乗算とを同時に行う
方法を提供する。当該方法は、tは前記スカラーのビットの総数を表し、iは前記第1及
び第2スカラーにおける評価する現在のビットを表すものとして、t個のビット対(k
,s)に対して、前記各ビット対(k,s)に示す値に従って、前記第1及び第2
の乗算にて少なくとも1回の繰り返し演算を同時に行って、前記乗算の各ステップでの数
学演算の回数を減らすようにする、同時スカラー乗算方法である。
他の形態では、第1のスカラーkに楕円曲線E上の第1の点Pを掛ける第1の乗算と、
第2のスカラーsに楕円曲線E上の第2の点Qを掛ける第2の乗算とを同時に行う方法で
あって、前記第1及び第2のスカラーは異なるビット長であり:各スカラーがtビットか
ら成るように、前記第1及び第2のスカラーの短い方のスカラーをv個のゼロでパディン
グするステップであって、tは最大ビット長のビット総数を表すものとするステップと、
前記第1のスカラーk及び前記第2のスカラーsの最上位ビットをそれぞれ破棄するステ
ップと、iは前記第1及び第2のスカラーにおける評価する現在のビットを表すものとし
て、破棄されていないパディングしたゼロを含む、v−1個のビット対(k,s)に
対して、前記第1及び第2のスカラーの長い方のスカラーに対しモンゴメリ法を行うステ
ップと、残りのt−v−1個のビット対(k,s)に対して、前記ビット対(k
)に示される値に従って、前記第1及び第2の乗算にて少なくとも1回の繰り返し演
算を同時に行って、前記乗算の各ステップでの数学演算の回数を減らすステップと、を含
むようにする。
例えば、本発明は、以下の項目を提供する。
(項目1)
楕円曲線暗号方式にて、第1のスカラーkに楕円曲線E上の第1の点Pを掛ける第1の
乗算と、第2のスカラーsに楕円曲線E上の第2の点Qを掛ける第2の乗算とを同時に行
う方法であって、tは前記スカラーのビットの総数を表し、iは前記第1及び第2スカラ
ーにおける評価する現在のビットを表すものとして、t個のビット対(k ,s )に対
して、前記各ビット対(k ,s )に示される値に従って、前記第1及び第2の乗算に
て少なくとも1回の繰り返し演算を同時に行って、前記乗算の各ステップでの数学演算の
回数を減らすようにする、同時スカラー乗算方法。
(項目2)
前記第1スカラーkの最上位ビットを破棄することと、前記第2スカラーsの最上位ビ
ットを破棄することを更に含む、項目1に記載の方法。
(項目3)
前記第1及び第2乗算は、計算対[mP+nQ,(m+1)P+(n+1)Q]によっ
て各ステップにて同時に表され、ここで、mは前の計算対の前記第1の点Pの係数を表し
、nは前の計算対の前記第2の点Qの係数を表し、各対に対し、第2の成分は第1の成分
とは(P+Q)だけ異なるようにする、項目1に記載の方法。
(項目4)
前記ビット対(k ,s )が(0,0)のとき、次の計算対は[2mP+2nQ,(
2m+1)P+(2n+1)Q]となる、項目3に記載の方法。
(項目5)
前記ビット対(k ,s )が(1,1)のとき、次の計算対は[(2m+1)P+(
2n+1)Q,(2m+2)P+(2n+2)Q]となる、項目3に記載の方法。
(項目6)
前記ビット対(k ,s )が(0,1)のとき、次の計算対は[2mP+2nQ+Q
,(2m+1)P+(2n+1)Q+Q]となる、項目3に記載の方法。
(項目7)
前記ビット対(k ,s )が(1,0)のとき、次の計算対は[2mP+2nQ+P
,(2m+1)P+P+(2n+1)Q]となる、項目3に記載の方法。
(項目8)
項目1による同時点乗算を行うための暗号モジュール。
(項目9)
楕円曲線暗号方式にて、第1のスカラーkに楕円曲線E上の第1の点Pを掛ける第1の
乗算と、第2のスカラーsに楕円曲線E上の第2の点Qを掛ける第2の乗算とを同時に行
う方法であって、前記第1及び第2のスカラーは異なるビット長であり:
― 各スカラーがtビットから成るように、前記第1及び第2のスカラーの短い方のスカ
ラーをv個のゼロでパディングするステップであって、tは最大ビット長のビット総数を
表すものとするステップと、
― 前記第1のスカラーk及び前記第2のスカラーsの最上位ビットをそれぞれ破棄する
ステップと、
― iは前記第1及び第2のスカラーにおける評価する現在のビットを表すものとして、
破棄されていないパディングしたゼロを含む、v−1個のビット対(k ,s )に対し
て、前記第1及び第2のスカラーの長い方のスカラーに対しモンゴメリ法を行うステップ
と、
― 残りのt−v−1個のビット対(k ,s )に対して、前記ビット対(k ,s
)に示される値に従って、前記第1及び第2の乗算にて少なくとも1回の繰り返し演算を
同時に行って、前記乗算の各ステップでの数学演算の回数を減らすステップと、
を含む、同時スカラー乗算方法。
(項目10)
前記t−v−1個のビット対に対して、前記第1及び第2乗算は、計算対[mP+nQ
,(m+1)P+(n+1)Q]によって各ステップにて同時に表され、ここで、mは前
の計算対の、前記第1の点Pの係数を表し、nは前の計算対の、前記第2の点Qの係数を
表し、各対に対して、第2の成分は第1の成分とは(P+Q)だけ異なるようにする、請
求項9に記載の方法。
(項目11)
前記t−v−1個のビット対に対して、前記ビット対(k ,s )が(0,0)のと
き、次の計算対は[2mP+2nQ,(2m+1)P+(2n+1)Q]となる、項目
10に記載の方法。
(項目12)
前記t−v−1個のビット対に対して、前記ビット対(k ,s )が(1,1)のと
き、次の計算対は[(2m+1)P+(2n+1)Q,(2m+2)P+(2n+2)Q
]となる、項目10に記載の方法。
(項目13)
前記t−v−1個のビット対に対して、前記ビット対(k ,s )が(0,1)のと
き、次の計算対は[2mP+2nQ+Q,(2m+1)P+(2n+1)Q+Q]となる
、項目10に記載の方法。
(項目14)
前記t−v−1個のビット対に対して、前記ビット対(k ,s )が(1,0)のと
き、次の計算対は[2mP+2nQ+P,(2m+1)P+P+(2n+1)Q]となる
、項目10に記載の方法。
(項目15)
項目9による同時点乗算を行うための暗号モジュール。
スカラー乗算のためのモンゴメリ方法の実装を示す表である。 暗号通信システムを示す図である。 同時スカラー乗算法の実施例を示す表である。 図3に示した同時スカラー乗算法の他の実施例を示す表である。
添付の図面を参照して、本発明の実施例を説明する。
図2には、暗号通信システムを10で総称して示してある。当該システム10は、通信
路16を介して相互に通信することができる、第1のコレスポンデント12及び第2のコ
レスポンデント14を備えている。通信路16は(セキュリティ上)安全か、又は安全で
ないかもしれない。各コレスポンデントは、暗号演算を行うための暗号モジュール18及
び20を各々備えている。
好ましくは各暗号モジュール18及び20は、1以上の整数と、フィールドFにわた
って規定される楕円曲線E上の1つ以上の点との点乗算のような、楕円曲線暗号演算を行
うことができるようにする。このような暗号演算は、例えば、ECDSA法及び、このた
めに行う複数のステップを含む。ここに記載する実施例は、特に、組み合わせkP+sQ
を計算し、P及びQに対して予め計算したテーブルを利用できない場合の、ECDSAの
検証に適している。
当然のことながら、ここで記載する実施例は、重複点(multiple point
)乗算を含む他の暗号演算にも用いることができ、ここで記載するような、ECDSAの
検証のための組み合わせkP+sQを計算することに限定すべきではない。
本出願人は、モンゴメリ法を用いてkPとsQを別々に計算する場合に、kP及びsQ
の計算における幾つかの演算が繰り返され、これは単一演算で実行可能であることを発見
した。以下に、倍加演算及び加算演算の総数を減らし、これにより、重複スカラー(mu
ltiple scalar)乗算のための効率的な方法を提供する、同時スカラー乗算
法について述べる。
現在の同時スカラー乗算法では、kP及びsQを計算するのに用いる対を組み合わせて
、単一の計算対、即ち、(mP+nQ,(m+1)P+(n+1)Q)を生成する。従っ
て、m=n=1では、開始対は(P+Q,2(P+Q))となり、k及びsの最上位ビッ
トは破棄される。この方法における全ての対にとって、第2成分は第1成分とはP+Qだ
け異なるようになっている。このことは、点倍加及び点加算に、より効率的な式を用いる
ことを可能にする。
本実施例では、整数k及びsを、一連のバイナリビットで表わす。従って、同時スカラ
ー乗算法の各ステップでは、kからの1ビットと、sからの1ビットとのビット対(k
,s)を参照する。各ステップで2ビットを参照し、且つそのために各ビットがバイナ
リ表現を有する場合、この例で可能なビット対は、(0,0)、(1,1)、(0,1)
、(1,0)である。一般に、各スカラーにはtビットあり、評価は、i=t−1からi
=0まで進められ、例えば、ここでkは最上位ビットであり、kは最下位ビットであ
る。
ビットの対が(0,0)、(1,1)である場合には、k及びsに対して同様な演算を
行うのだから、1回の倍加演算をP及びQの双方で同時に行い、前の対の両項を1回加算
することができる。従って、P及びQの計算には、1回の倍加演算と1回の加算を必要と
するだけであるので、ビットの対が(0,0)、(1,1)である場合の、kP+sQの
本例の同時スカラー乗算は、半分の倍加演算と半分の加算を必要とするだけである。
ビット対が(0,0)の場合、P及びQに対する現在の第1項の各々は、前の第1項の
倍加演算を必要とし、第2項の各々は、前の第1項と第2項との和となる。従って、対(
mP+nQ,(m+1)P+(n+1)Q)で開始すると、k及びs双方の現在のビット
がゼロ(0)の場合、次の対は、(2*(mP+nQ),mP+nQ+(m+1)P+(
n+1)Q)となり、これは簡約すると次のようになる。
ケース1(0,0):(2mP+2nQ,(2m+1)P+(2n+1)Q);
ここでm及びnは、前のステップにおけるP及びQの各々の係数である。
ビット対が(1,1)の場合、P及びQに対する現在の第1項の各々は、前の第1項と
第2項との和となり、第2項の各々は、前の第2項を2倍したものを必要とする。従って
、対(mP+nQ,(m+1)P+(n+1)Q)で開始すると、k及びs双方の現在の
ビットが(1)の場合、次の対は、(mP+nQ+(m+1)P+(n+1)Q,2*(
(m+1)P+(n+1)Q))となり、これは簡約すると、次のようになる。
ケース2(1,1):((2m+1)P+(2n+1)Q,(2m+2)P+(2n+
2)Q);
ここでm及びnは、前のステップにおけるP及びQの各々の係数である。
従って、kとsのビットが同じ場合には、kP+sQを計算するシーケンスにおいて現
在のステップを計算するのに半分の演算で済むことになり、これにより、重複点スカラー
乗算の計算効率が増大する。
ビット対が(0,1)及び(1,0)の場合、kP及びsQには異なる演算を必要とす
るが、特に、繰り返される倍加演算では、所定の繰り返しを避けることができる。ビット
対が(0,1)及び(1,0)の場合に、kP+sQの本例の同時スカラー乗算は半分の
倍加演算を必要とするだけであり、従って、総合演算のうち4分の3の演算回数で済む。
ビット対が(0,1)の場合、P及びQに対する現在の第1項は、倍加及び加算演算を
それぞれ必要とし、P及びQに対する現在の第2項は、その逆を必要とする。P及びQの
双方を同時に適合させるために、本出願人は、現在の第1項は、前の第1項を2倍し、Q
を加えることによって計算することができ、現在の第2項は、(P+Q)を現在の第1項
に加えることによって計算することができ、これにより、1回の倍加と2回の加算を必要
とするだけで済むことを発見した。従って、対(mP+nQ,(m+1)P+(n+1)
Q)で開始すると、(kの現在のビットがゼロ(0)で、sの現在のビットが(1)の場
合の)次の対は、(2*(mP+nQ)+Q,2*(mP+nQ)+Q+(P+Q))と
なり、これは簡約すると、次のようになる。
ケース3(0,1):(2mP+2nQ+Q,(2m+1)P+(2n+1)Q+Q)

ここでm及びnは、前のステップにおけるP及びQの各々の係数である。
ビット対が(1,0)の場合、P及びQに対する現在の第1項は、加算及び倍加演算を
それぞれ必要とし、P及びQに対する現在の第2項には、その逆を必要とする。PとQの
双方を同時に適合させるために、本出願人は、現在の第1項は、前の第1項を2倍し、P
を加えることによって計算することができ、現在の第2項は、(P+Q)を現在の第1項
に加えることによって計算することができ、これにより、1回の倍加と2回の加算を必要
とするだけで済むことを発見した。従って、対(mP+nQ,(m+1)P+(n+1)
Q)で開始すると、(kの現在のビットが(1)で、sの現在のビットがゼロ(0)の場
合の)次の対は、(2*(mP+nQ)+P,2*(mP+nQ)+P+(P+Q))と
なり、これは簡約すると、次のようになる。
ケース4(1,0):(2mP+2nQ+P,(2m+1)P+P+(2n+1)Q)

ここでm及びnは、前のステップにおけるP及びQの各々の係数である。
従って、k及びsのビットが異なる場合に、kP+sQを計算するシーケンスにおいて
現在のステップを計算するのに、4分の3の演算で済むことになる。これにより、重複点
スカラー乗算の計算効率が増大する。
演算シーケンスは、(上記のどのケースを必要とするかを評価する)各ビット対に対し
て、k及びsの最下位ビットまで続き、その時点(k及びsの最小ビットになった時点)
で、現在の対(例えば最後に計算した対)が、その対の第1項として所望値kP+sQを
含むようになる。
上述した実施例の一例を、図3に示してある。図3に示した例では、k=45=101
101、s=54=110110とし、k及びsのビット長は同じで、t=6として
ある。シーケンスは、対(P+Q,2P+2Q)で開始し、ステップi=5からステップ
i=0までの間に、現在のビットに対する新たな対を以下のように計算する。
kの最上位ビット及びsの最上位ビットは破棄し、最初の計算はステップi=4で開始
する。このステップでは、kの現在のビットはゼロ(0)であり、sの現在のビットは(
1)であり、前の対(すなわち開始時の対)は(P+Q,2P+2Q)である。現在のビ
ット対は(0,1)なので、現在の第1項は、前の第1項を2倍して、Qを加えることに
より計算され、すなわち、図3の表のステップi=4に示すように、2*P+2*Q+Q
=2P+3Qとなる。現在の第2項は、現在の第1項に(P+Q)を加えることにより計
算され、すなわち、同じく表に示すように、2P+3Q+(P+Q)=3P+4Qとなる
。それぞれの項を計算するための他の方法は、m及びnの値に基づき、このステップでは
それぞれ1に等しい(すなわち、ステップi=5におけるP及びQの係数)。従って、現
在の第1項は2*1P+2*1Q+Q=2P+3Qと計算され、現在の第2項は、上記で
計算したように、(2*1+1)P+(2*1+1)Q+Q=3P+4Qと計算される。
ステップi=3では、kの現在のビットは(1)、sの現在のビットは(0)、前の対
は(2P+3Q,3P+4Q)である。現在のビット対は(1,0)なので、現在の第1
項は、前の第1項を2倍してPを加えることにより計算され、すなわち、図3の表のステ
ップi=3に示すように、2*2P+2*3Q+P=5P+6Qとなる。現在の第2項は
、現在の第1項に(P+Q)を加えることにより計算され、すなわち、同じく表に示すよ
うに、5P+6Q+(P+Q)=6P+7Qとなる。当然のことながら、当該対は、上述
したようにm及びnの値に基づいて計算することもできる。
ステップi=2では、kの現在のビットは(1)、sの現在のビットは(1)、前の対
は(5P+6Q,6P+7Q)である。現在のビット対は(1,1)なので、現在の第1
項は、前の両項の和として計算され、すなわち、図3の表のステップi=2に示すように
、5P+6P+6Q+7Q=11P+13Qとなる。現在の第2項は、前の第2項を2倍
することにより計算され、すなわち、同じく表に示すように、2*6P+2*7Q=12
P+14Qとなる。当然のことながら、当該対は、上述したようにm及びnの値に基づい
て計算することもできる。
ステップi=1では、kの現在のビットは(0)、sの現在のビットは(1)、前の対
は(11P+13Q,12P+14Q)である。現在のビット対は(0,1)なので、現
在の第1項は、前の第1項を2倍してQを加えることにより計算され、すなわち、図3の
表のステップi=1に示すように、2*11P+2*13Q+Q=22P+27Qとなる
。現在の第2項は、現在の第1項に(P+Q)を加えることにより計算され、すなわち、
同じく表に示すように、22P+27Q+(P+Q)=23P+28Qとなる。当然のこ
とながら、当該対は、上述したようにm及びnの値に基づいて計算することもできる。
最後に、ステップi=0では、kの現在のビットは(1)、sの現在のビットは(0)
、前の対は(22P+27Q,23P+28Q)である。現在のビット対は(1,0)な
ので、現在の第1項は、前の第1項を2倍してPを加えることにより計算され、すなわち
、図3の表のステップi=0に示すように、2*22P+2*27Q+P=45P+54
Qとなる。現在の第2項は、現在の第1項に(P+Q)を加えることにより計算され、す
なわち、同じく表に示すように、45P+54Q+(P+Q)=46P+55Qとなる。
当然のことながら、当該対は、上述したようにm及びnの値に基づいて計算することもで
きる。
値45P+54Q(すなわち、最後の対の第1項)は、k=45及びs=54であるこ
とから予測される、所望の組み合わせkP+sQに相当する。
図4に示す他の実施例では、k及びsのビット長が異なり、k=5=101、s=1
09=1101101とする。この場合には、ビット長が等しくなるように、最初にk
をv個の0でパディングする。表に示すように、ステップi=6からi=3に対して(す
なわち、パディングした0及びkの第1項に対して)、モンゴメリ法をQのみに対して(
すなわち、長いビット長を有し、従って0を埋め込んでいないスカラーに対して)実施す
る。
従って、演算シーケンスは、ステップi=6にて対(Q,2Q)で開始する。最上位ビ
ットは破棄するので、最初の計算はステップi=5から開始する。ステップi=5でのk
のビットはゼロでパディングしてあるので、sのビットだけに着目する。このステップで
は、sのビットは(1)であり、前の対(すなわち第1の対)は(Q,2Q)である。s
のビットは(1)なので、現在の第1項は、前の両項の和として計算され、すなわち、図
4の表のステップi=5に示すように、Q+2Q=3Qとなる。現在の第2項は、前の第
2項を2倍することにより計算され、すなわち、同じく表に示すように、2(2Q)=4
Qとなる。当然のことながら、当該対は、nの値に基づいて計算することもできる。
ステップi=4では、kのビットは同じくゼロでパディングしてあるので、sのビット
だけに着目する。このステップで、sのビットはゼロ(0)、前の対は(3Q,4Q)で
ある。sのビットがゼロ(0)なので、現在の第1項は、前の第1項を2倍することによ
り計算され、すなわち、図4の表のステップi=4に示すように、2*3Q=6Qとなる
。現在の第2項は、前の両項の和として計算され、すなわち、同じく表に示すように、3
Q+4Q=7Qとなる。当然のことながら、当該対は、nの値に基づいて計算することも
できる。
ステップi=3では、kのビットはこのシーケンスに対する最後にパディングしたビッ
トであり、従って、sのビットだけに着目する。このステップで、sのビットは(1)、
前の対は(6Q,7Q)である。sのビットが(1)なので、現在の第1項は、前の両項
の和として計算され、すなわち、図4の表のステップi=3に示すように、6Q+7Q=
13Qとなる。現在の第2項は、前の第2項を2倍することにより計算され、すなわち、
同じく表に示すように、2(7Q)=14Qとなる。当然のことながら、当該対は、nの
値に基づいて計算することもできる。
ステップi=2では、kのビットは、もはやパディングしたゼロではなく、実際の値で
ある。従って、この対が、同時乗算における第1の対であり、kの第1ビットを破棄し、
対(P,2P)を現在のQ値に加える。現在のQの値は、現在のsの値(これは(1)で
ある)及び、前の対(これは(13Q,14Q)である)に着目することにより計算され
る。sのビットが(1)なので、現在の第1項のQの部分は、前の両項の和として計算さ
れ、すなわち、図4の表のステップi=2に示すように、13Q+14Q=27Qとなる
。現在の第2項のQの部分は、前の第2項を2倍することにより計算され、すなわち、同
じく表に示すように、2(14Q)=28Qとなる。当然のことながら、当該対は、nの
値に基づいて計算することもできる。それから、完全な対は、現在のQの値に(P,2P
)を加えることにより得られ、表に示すように、(P+27Q,2P+28Q)となる。
次のステップ(すなわち、同時乗算部分の第2ステップ)は、i=1で現在のビット対
(0,0)を利用し、前の対は(P+27Q,2P+28Q)である。ビット対が(0,
0)なので、現在の第1項は、前の第1項を2倍することにより計算され、すなわち、図
4の表のステップi=1に示すように、2*P+2*27Q=2P+54Qとなる。現在
の第2項は、前の両項の和として計算され、すなわち、同じく表に示すように、P+27
Q+2P+28Q=3P+55Pとなる。当然のことながら、当該対は、上述したように
m及びnの値に基づいて計算することもできる。
最後に、ステップi=0では、現在のビット対は(1,1)で、前の対は(2P+54
Q,3P+55Q)である。ビット対が(1,1)なので、現在の第1項は、前の両項の
和として計算され、すなわち、図4の表のステップi=0に示すように、2P+54Q+
3P+55Q=5P+109Qとなる。現在の第2項は、前の第2項を2倍することによ
り計算され、すなわち、同じく表に示すように、2*3P+2*55Q=6P+110Q
となる。当然のことながら、当該対は、上述したようにm及びnの値に基づいて計算する
こともできる。
値5P+109Q(すなわち、最後の対の第1項)は、k=5及びs=109であるこ
とから予測される、所望の組み合わせkP+sQに相当する。従って、本例の同時点乗算
法は、異なるビット長の整数に対しても、容易に実装することができる。
ある特定の実施例を参照しながら本発明を説明したが、添付した特許請求の範囲によっ
て規定されるような本発明の精神及び範囲を逸脱することなく、幾多の変更を加えうるこ
とは当業者に明らかである。

Claims (15)

  1. 楕円曲線暗号方式にて、第1のスカラーkに楕円曲線E上の第1の点Pを掛ける第1の
    乗算と、第2のスカラーsに楕円曲線E上の第2の点Qを掛ける第2の乗算とを同時に行
    う方法であって、tは前記スカラーのビットの総数を表し、iは前記第1及び第2スカラ
    ーにおける評価する現在のビットを表すものとして、t個のビット対(k,s)に対
    して、前記各ビット対(k,s)に示される値に従って、前記第1及び第2の乗算に
    て少なくとも1回の繰り返し演算を同時に行って、前記乗算の各ステップでの数学演算の
    回数を減らすようにする、同時スカラー乗算方法。
  2. 前記第1スカラーkの最上位ビットを破棄することと、前記第2スカラーsの最上位ビ
    ットを破棄することを更に含む、請求項1に記載の方法。
  3. 前記第1及び第2乗算は、計算対[mP+nQ,(m+1)P+(n+1)Q]によっ
    て各ステップにて同時に表され、ここで、mは前の計算対の前記第1の点Pの係数を表し
    、nは前の計算対の前記第2の点Qの係数を表し、各対に対し、第2の成分は第1の成分
    とは(P+Q)だけ異なるようにする、請求項1に記載の方法。
  4. 前記ビット対(k,s)が(0,0)のとき、次の計算対は[2mP+2nQ,(
    2m+1)P+(2n+1)Q]となる、請求項3に記載の方法。
  5. 前記ビット対(k,s)が(1,1)のとき、次の計算対は[(2m+1)P+(
    2n+1)Q,(2m+2)P+(2n+2)Q]となる、請求項3に記載の方法。
  6. 前記ビット対(k,s)が(0,1)のとき、次の計算対は[2mP+2nQ+Q
    ,(2m+1)P+(2n+1)Q+Q]となる、請求項3に記載の方法。
  7. 前記ビット対(k,s)が(1,0)のとき、次の計算対は[2mP+2nQ+P
    ,(2m+1)P+P+(2n+1)Q]となる、請求項3に記載の方法。
  8. 請求項1による同時点乗算を行うための暗号モジュール。
  9. 楕円曲線暗号方式にて、第1のスカラーkに楕円曲線E上の第1の点Pを掛ける第1の
    乗算と、第2のスカラーsに楕円曲線E上の第2の点Qを掛ける第2の乗算とを同時に行
    う方法であって、前記第1及び第2のスカラーは異なるビット長であり:
    ― 各スカラーがtビットから成るように、前記第1及び第2のスカラーの短い方のスカ
    ラーをv個のゼロでパディングするステップであって、tは最大ビット長のビット総数を
    表すものとするステップと、
    ― 前記第1のスカラーk及び前記第2のスカラーsの最上位ビットをそれぞれ破棄する
    ステップと、
    ― iは前記第1及び第2のスカラーにおける評価する現在のビットを表すものとして、
    破棄されていないパディングしたゼロを含む、v−1個のビット対(k,s)に対し
    て、前記第1及び第2のスカラーの長い方のスカラーに対しモンゴメリ法を行うステップ
    と、
    ― 残りのt−v−1個のビット対(k,s)に対して、前記ビット対(k,s
    )に示される値に従って、前記第1及び第2の乗算にて少なくとも1回の繰り返し演算を
    同時に行って、前記乗算の各ステップでの数学演算の回数を減らすステップと、
    を含む、同時スカラー乗算方法。
  10. 前記t−v−1個のビット対に対して、前記第1及び第2乗算は、計算対[mP+nQ
    ,(m+1)P+(n+1)Q]によって各ステップにて同時に表され、ここで、mは前
    の計算対の、前記第1の点Pの係数を表し、nは前の計算対の、前記第2の点Qの係数を
    表し、各対に対して、第2の成分は第1の成分とは(P+Q)だけ異なるようにする、請
    求項9に記載の方法。
  11. 前記t−v−1個のビット対に対して、前記ビット対(k,s)が(0,0)のと
    き、次の計算対は[2mP+2nQ,(2m+1)P+(2n+1)Q]となる、請求項
    10に記載の方法。
  12. 前記t−v−1個のビット対に対して、前記ビット対(k,s)が(1,1)のと
    き、次の計算対は[(2m+1)P+(2n+1)Q,(2m+2)P+(2n+2)Q
    ]となる、請求項10に記載の方法。
  13. 前記t−v−1個のビット対に対して、前記ビット対(k,s)が(0,1)のと
    き、次の計算対は[2mP+2nQ+Q,(2m+1)P+(2n+1)Q+Q]となる
    、請求項10に記載の方法。
  14. 前記t−v−1個のビット対に対して、前記ビット対(k,s)が(1,0)のと
    き、次の計算対は[2mP+2nQ+P,(2m+1)P+P+(2n+1)Q]となる
    、請求項10に記載の方法。
  15. 請求項9による同時点乗算を行うための暗号モジュール。
JP2012122076A 2005-11-03 2012-05-29 同時スカラー乗算方法 Pending JP2012185517A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US73271505P 2005-11-03 2005-11-03
US60/732,715 2005-11-03

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008538237A Division JP5073669B2 (ja) 2005-11-03 2006-11-03 同時スカラー乗算方法

Publications (2)

Publication Number Publication Date
JP2012185517A true JP2012185517A (ja) 2012-09-27
JP2012185517A5 JP2012185517A5 (ja) 2013-03-21

Family

ID=38005395

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008538237A Active JP5073669B2 (ja) 2005-11-03 2006-11-03 同時スカラー乗算方法
JP2012122076A Pending JP2012185517A (ja) 2005-11-03 2012-05-29 同時スカラー乗算方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2008538237A Active JP5073669B2 (ja) 2005-11-03 2006-11-03 同時スカラー乗算方法

Country Status (9)

Country Link
US (3) US8045705B2 (ja)
EP (3) EP2293491B1 (ja)
JP (2) JP5073669B2 (ja)
CN (1) CN101366232B (ja)
AT (1) ATE507625T1 (ja)
CA (1) CA2626847A1 (ja)
DE (1) DE602006021601D1 (ja)
HK (1) HK1155293A1 (ja)
WO (1) WO2007051305A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101524661B1 (ko) * 2014-04-03 2015-06-03 고려대학교 산학협력단 재배치를 통한 트리플-베이스 체인 기반 타원곡선 스칼라 곱셈을 위한 연산 장치 및 방법

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1775880A1 (en) * 2005-10-11 2007-04-18 STMicroelectronics S.r.l. Method of processing information to be confidentially transmitted
US8422685B2 (en) * 2008-02-26 2013-04-16 King Fahd University Of Petroleum And Minerals Method for elliptic curve scalar multiplication
US8548160B2 (en) * 2010-01-13 2013-10-01 Microsoft Corporation Determination of pairings on a curve using aggregated inversions
US8755517B2 (en) 2010-12-08 2014-06-17 Total Technology Solutions Co. Method for generic-point parallel elliptic curve scalar multiplication
US8804952B2 (en) 2012-12-26 2014-08-12 Umm Al-Qura University System and method for securing scalar multiplication against differential power attacks
US8861721B2 (en) * 2012-12-26 2014-10-14 Umm Al-Qura University System and method for securing scalar multiplication against simple power attacks
BR112016025201B1 (pt) * 2014-05-08 2022-08-23 Micro Motion, Inc. Método para realizar cálculos à prova de falhas, dispositivo para realizar cálculos à prova de falhas para operar um hardware, e, método para compilar um código para operar um hardware em um modo à prova de falhas
US9645794B2 (en) * 2014-09-23 2017-05-09 Texas Instruments Incorporated Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography
US9590805B1 (en) * 2014-12-23 2017-03-07 EMC IP Holding Company LLC Ladder-based cryptographic techniques using pre-computed points
US9531531B2 (en) * 2015-05-06 2016-12-27 Qualcomm Incorporated Methods and devices for fixed execution flow multiplier recoding and scalar multiplication
EP3376705A1 (en) * 2017-03-17 2018-09-19 Koninklijke Philips N.V. Elliptic curve point multiplication device and method in a white-box context
CN109117677A (zh) * 2018-09-21 2019-01-01 阿里巴巴集团控股有限公司 一种用于椭圆曲线多倍点运算的电路
WO2022146437A1 (en) * 2020-12-30 2022-07-07 Pqsecure Technologies, Llc High-performance systems to validate isogeny-based cryptography keys

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000025204A1 (en) * 1998-10-28 2000-05-04 Certicom Corp. Power signature attack resistant cryptography
JP2002323852A (ja) * 2001-04-24 2002-11-08 Sony Corp 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム
JP2003131568A (ja) * 2001-10-26 2003-05-09 Hitachi Ltd 楕円曲線署名検証方法及び装置並びに記憶媒体
JP2003288013A (ja) * 2002-01-28 2003-10-10 Matsushita Electric Ind Co Ltd 楕円曲線演算装置及び楕円曲線演算方法
JP2003288014A (ja) * 2002-01-28 2003-10-10 Matsushita Electric Ind Co Ltd 楕円曲線演算装置及び楕円曲線演算方法
JP2004053814A (ja) * 2002-07-18 2004-02-19 Fujitsu Ltd 楕円曲線暗号装置及び楕円曲線暗号演算方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4067818B2 (ja) 2001-12-10 2008-03-26 富士通株式会社 楕円曲線暗号装置、楕円曲線暗号プログラム及び楕円曲線暗号の演算方法
JP3818193B2 (ja) 2002-03-27 2006-09-06 大阪瓦斯株式会社 カーボンナノチューブ含有炭素材料の製造方法
AT412916B (de) 2002-07-19 2005-08-25 Avl List Gmbh Verfahren zur simulation des fahrverhaltens von fahrzeugen
CN100461668C (zh) * 2004-12-09 2009-02-11 中国电子科技集团公司第三十研究所 一种用于椭圆曲线密码算法芯片的倍点运算电路

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000025204A1 (en) * 1998-10-28 2000-05-04 Certicom Corp. Power signature attack resistant cryptography
JP2002323852A (ja) * 2001-04-24 2002-11-08 Sony Corp 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム
JP2003131568A (ja) * 2001-10-26 2003-05-09 Hitachi Ltd 楕円曲線署名検証方法及び装置並びに記憶媒体
JP2003288013A (ja) * 2002-01-28 2003-10-10 Matsushita Electric Ind Co Ltd 楕円曲線演算装置及び楕円曲線演算方法
JP2003288014A (ja) * 2002-01-28 2003-10-10 Matsushita Electric Ind Co Ltd 楕円曲線演算装置及び楕円曲線演算方法
JP2004053814A (ja) * 2002-07-18 2004-02-19 Fujitsu Ltd 楕円曲線暗号装置及び楕円曲線暗号演算方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSNG200300136008; 秋下徹: 'Montgomery型楕円曲線における高速なスカラー倍同時計算法' 情報処理学会研究報告 第2001巻 第75号, 20010725, p.97-103, 社団法人情報処理学会 Information Processing Socie *
JPN6012010093; 秋下徹: 'Montgomery型楕円曲線における高速なスカラー倍同時計算法' 情報処理学会研究報告 第2001巻 第75号, 20010725, p.97-103, 社団法人情報処理学会 Information Processing Socie *
JPN6012010095; Toru Akishita: 'Fast Simultaneous Scalar Multiplication on Elliptic Curve with Montgomery Form' Lecture Notes in Computer Science Vol.2259, 2001, p.255-267 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101524661B1 (ko) * 2014-04-03 2015-06-03 고려대학교 산학협력단 재배치를 통한 트리플-베이스 체인 기반 타원곡선 스칼라 곱셈을 위한 연산 장치 및 방법

Also Published As

Publication number Publication date
JP2009515206A (ja) 2009-04-09
ATE507625T1 (de) 2011-05-15
US8045705B2 (en) 2011-10-25
JP5073669B2 (ja) 2012-11-14
US20130003964A1 (en) 2013-01-03
CA2626847A1 (en) 2007-05-10
EP1946480A1 (en) 2008-07-23
HK1155293A1 (en) 2012-05-11
EP1946480A4 (en) 2010-04-07
WO2007051305A1 (en) 2007-05-10
EP2293491B1 (en) 2012-08-22
EP2293491A1 (en) 2011-03-09
EP2509253B1 (en) 2014-06-18
US8284930B2 (en) 2012-10-09
CN101366232A (zh) 2009-02-11
US20110261956A1 (en) 2011-10-27
EP2509253A1 (en) 2012-10-10
US8548163B2 (en) 2013-10-01
CN101366232B (zh) 2012-05-16
DE602006021601D1 (de) 2011-06-09
US20070098154A1 (en) 2007-05-03
EP1946480B1 (en) 2011-04-27

Similar Documents

Publication Publication Date Title
JP5073669B2 (ja) 同時スカラー乗算方法
CA2369545C (en) Method and apparatus for elliptic curve scalar multiplication
CN107040385B (zh) 一种基于sm2椭圆曲线的签名验证算法的实现方法及系统
US8345864B1 (en) Elliptic curve cryptography scalar multiplication with on demand acceleration table generation
KR101089121B1 (ko) 빠른 집합 검증 방법 및 그 장치
EP2350811B1 (en) Method and apparatus for modulus reduction
Granger et al. Faster ECC over
US6480606B1 (en) Elliptic curve encryption method and system
US6763366B2 (en) Method for calculating arithmetic inverse over finite fields for use in cryptography
Krishna et al. Window method based cubic spline curve public key cryptography
JP4354609B2 (ja) 有限体上の連立方程式求解装置及び逆元演算装置
CN111897578A (zh) 一种特征为2的椭圆曲线上标量乘的并行处理方法及装置
Konstantinou et al. A software library for elliptic curve cryptography
Aoki et al. A cyclic window algorithm for ECC defined over extension fields
Nikooghadam et al. A protocol for digital signature based on the elliptic curve discrete logarithm problem
Okeya et al. Use of montgomery trick in precomputation of multi-scalar multiplication in elliptic curve cryptosystems
SP Recommendations for Discrete Logarithm-based Cryptography
Gysin The discrete logarithm problem for Lucas sequences and a new class of weak RSA Moduli.
Koç et al. Lean multiplication of multi-precision numbers over GF (2m)
Lee et al. Efficient Exponentiation in GF (pm) Using the Frobenius Map
Leone et al. On the Complexity of Parallel Algorithms for Computing Inverses in with Prime
Kobayashi et al. A cyclic window algorithm for elliptic curves over OEF
Ding et al. Joint Sparse Form of Window Three for Koblitz Curve.
Lee et al. Area Efficient Multiplier based on LFSR Architecture
JP2003216030A (ja) 多基底離散対数検証方法、この方法を実施する装置、プログラムおよびプログラムを記憶した記憶媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130807

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131227