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

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

Info

Publication number
JP2009515206A
JP2009515206A JP2008538237A JP2008538237A JP2009515206A JP 2009515206 A JP2009515206 A JP 2009515206A JP 2008538237 A JP2008538237 A JP 2008538237A JP 2008538237 A JP2008538237 A JP 2008538237A JP 2009515206 A JP2009515206 A JP 2009515206A
Authority
JP
Japan
Prior art keywords
pair
bit
scalar
bits
current
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
JP2008538237A
Other languages
English (en)
Other versions
JP5073669B2 (ja
Inventor
アンティパ エイドリアン
ポーレフ ユーリ
Original Assignee
サーティコム コーポレイション
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 サーティコム コーポレイション filed Critical サーティコム コーポレイション
Publication of JP2009515206A publication Critical patent/JP2009515206A/ja
Application granted granted Critical
Publication of JP5073669B2 publication Critical patent/JP5073669B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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回の加算演算のみを必要とする。

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=101101である。演算シーケンスは対(P,2P)で開始し、ステップi=5〜i=0の間に、kの現在のビットに対する新規の対を計算する。
上述した一般的なやり方を説明するために、ステップi=3を参照するに、ここで、kの現在のビットは1であり、前の対(すなわちi=4からの対)は(2P,3P)である。現在のビットが1なので、図1の表のステップi=3に示すように、現在の第1項は2P+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は、同時乗算(simultaneous multiplication)kP+sQを求めるために、互いに加算することになる。従って、kP+sQを求めるためには、k及びs双方の各ビットに対して、個別に倍加演算と加算演算を必要とする。
スカラー乗算は、楕円曲線暗号スキームの実行時間の大半を占めることになるから、上述したように検証ステップにモンゴメリ法を用いることは、典型的な用途にとっては、非効率的であると見なされる。
従って、本発明の目的は、上述の不利な点の少なくとも1つを取り除くか又は軽減することにある。
モンゴメリ法での特別な用法である同時点乗算(simultaneous point 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,s)に示される値に従って、前記第1及び第2の乗算にて少なくとも1回の繰り返し演算を同時に行って、前記乗算の各ステップでの数学演算の回数を減らすステップと、を含むようにする。
添付の図面を参照して、本発明の実施例を説明する。
図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の計算における幾つかの演算が繰り返され、これは単一演算で実行可能であることを発見した。以下に、倍加演算及び加算演算の総数を減らし、これにより、重複スカラー(multiple 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=101101、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=12P+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+54Qとなる。現在の第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=109=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)=4Qとなる。当然のことながら、当該対は、nの値に基づいて計算することもできる。
ステップi=4では、kのビットは同じくゼロでパディングしてあるので、sのビットだけに着目する。このステップで、sのビットはゼロ(0)、前の対は(3Q,4Q)である。sのビットがゼロ(0)なので、現在の第1項は、前の第1項を2倍することにより計算され、すなわち、図4の表のステップi=4に示すように、2*3Q=6Qとなる。現在の第2項は、前の両項の和として計算され、すなわち、同じく表に示すように、3Q+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+27Q+2P+28Q=3P+55Pとなる。当然のことながら、当該対は、上述したようにm及びnの値に基づいて計算することもできる。
最後に、ステップi=0では、現在のビット対は(1,1)で、前の対は(2P+54Q,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に相当する。従って、本例の同時点乗算法は、異なるビット長の整数に対しても、容易に実装することができる。
ある特定の実施例を参照しながら本発明を説明したが、添付した特許請求の範囲によって規定されるような本発明の精神及び範囲を逸脱することなく、幾多の変更を加えうることは当業者に明らかである。
スカラー乗算のためのモンゴメリ方法の実装を示す表である。 暗号通信システムを示す図である。 同時スカラー乗算法の実施例を示す表である。 図3に示した同時スカラー乗算法の他の実施例を示す表である。

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による同時点乗算を行うための暗号モジュール。
JP2008538237A 2005-11-03 2006-11-03 同時スカラー乗算方法 Active JP5073669B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US73271505P 2005-11-03 2005-11-03
US60/732,715 2005-11-03
PCT/CA2006/001805 WO2007051305A1 (en) 2005-11-03 2006-11-03 Simultaneous scalar multiplication method

Related Child Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2009515206A true JP2009515206A (ja) 2009-04-09
JP5073669B2 JP5073669B2 (ja) 2012-11-14

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 After (1)

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

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
JP2020510879A (ja) * 2017-03-17 2020-04-09 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 楕円曲線点乗算デバイス及び方法

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
KR101524661B1 (ko) * 2014-04-03 2015-06-03 고려대학교 산학협력단 재배치를 통한 트리플-베이스 체인 기반 타원곡선 스칼라 곱셈을 위한 연산 장치 및 방법
WO2015171152A1 (en) * 2014-05-08 2015-11-12 Micro Motion, Inc. Method for performing failsafe calculations
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
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 楕円曲線署名検証方法及び装置並びに記憶媒体
JP2003288014A (ja) * 2002-01-28 2003-10-10 Matsushita Electric Ind Co Ltd 楕円曲線演算装置及び楕円曲線演算方法
JP2003288013A (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 楕円曲線署名検証方法及び装置並びに記憶媒体
JP2003288014A (ja) * 2002-01-28 2003-10-10 Matsushita Electric Ind Co Ltd 楕円曲線演算装置及び楕円曲線演算方法
JP2003288013A (ja) * 2002-01-28 2003-10-10 Matsushita Electric Ind Co Ltd 楕円曲線演算装置及び楕円曲線演算方法
JP2004053814A (ja) * 2002-07-18 2004-02-19 Fujitsu Ltd 楕円曲線暗号装置及び楕円曲線暗号演算方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020510879A (ja) * 2017-03-17 2020-04-09 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 楕円曲線点乗算デバイス及び方法
JP7123959B2 (ja) 2017-03-17 2022-08-23 コーニンクレッカ フィリップス エヌ ヴェ 楕円曲線点乗算デバイス及び方法

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5073669B2 (ja) 同時スカラー乗算方法
CA2369545C (en) Method and apparatus for elliptic curve scalar multiplication
KR101089121B1 (ko) 빠른 집합 검증 방법 및 그 장치
US8345864B1 (en) Elliptic curve cryptography scalar multiplication with on demand acceleration table generation
EP2350811B1 (en) Method and apparatus for modulus reduction
US20090136025A1 (en) Method for scalarly multiplying points on an elliptic curve
Granger et al. Faster ECC over
US6480606B1 (en) Elliptic curve encryption method and system
JP4649456B2 (ja) べき乗計算装置、べき乗計算方法及びプログラム
JP4354609B2 (ja) 有限体上の連立方程式求解装置及び逆元演算装置
Konstantinou et al. A software library for elliptic curve cryptography
US20170026178A1 (en) Computational method, computational device andcomputer software product for montgomery domain
Taşkın et al. TMVP-friendly primes for efficient elliptic curve cryptography
Herbaut et al. Random Euclidean addition chain generation and its application to point multiplication
US7684564B2 (en) Method for solving Frobenius equations for elliptic-curve cryptography
Okeya et al. Use of montgomery trick in precomputation of multi-scalar multiplication in elliptic curve cryptosystems
Aoki et al. A cyclic window algorithm for ECC defined over extension fields
JP2003218858A (ja) 署名生成方法及び署名検証方法及び署名生成装置及び署名検証装置及び署名生成プログラム及び署名検証プログラム及び署名生成プログラムを格納した記憶媒体及び署名検証プログラムを格納した記憶媒体
Dahmen et al. A new upper bound for the minimal density of joint representations in elliptic curve cryptosystems
JP2007212768A (ja) 楕円曲線暗号における事前計算テーブル作成装置
JP2018146766A (ja) スカラー倍演算装置、スカラー倍演算方法及びプログラム
JP2003216030A (ja) 多基底離散対数検証方法、この方法を実施する装置、プログラムおよびプログラムを記憶した記憶媒体
JP2004170642A (ja) 乗算剰余演算方法および乗算剰余演算装置
JP2008046295A (ja) 公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091026

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20091026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120229

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120706

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120822

R150 Certificate of patent or registration of utility model

Ref document number: 5073669

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150831

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250