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

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

Info

Publication number
JP5073669B2
JP5073669B2 JP2008538237A JP2008538237A JP5073669B2 JP 5073669 B2 JP5073669 B2 JP 5073669B2 JP 2008538237 A JP2008538237 A JP 2008538237A JP 2008538237 A JP2008538237 A JP 2008538237A JP 5073669 B2 JP5073669 B2 JP 5073669B2
Authority
JP
Japan
Prior art keywords
pair
bit
current
scalar
scalars
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.)
Active
Application number
JP2008538237A
Other languages
English (en)
Other versions
JP2009515206A (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)

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 (14)

  1. 暗号モジュールによって実行される方法であって、前記方法は、
    第1のスカラーkに楕円曲線E上の第1の点Pを乗算する第1の乗算と、第2のスカラーsに楕円曲線E上の第2の点Qを乗算する第2の乗算とを同時に実行することを含み、前記スカラーk、sは、異なる数のビットを含み、
    前記実行することは、
    初期の計算対を生成することであって、前記初期の計算対を生成することは、
    前記スカラーk、sのうち少ない数のビットを含む一方を決定することと、
    スカラーk、sのビット長が等しくなるように前記スカラーの前記一方をゼロでパディングすることにより、tビット対(k,s)を提供することであって、tは、前記スカラーのビットの総数を表し、iは、前記スカラーの前記一方および前記スカラーの他方において評価されている現在のビットを表す、ことと、
    前記スカラーの前記一方における前記パディングと前記スカラーの前記他方の対応するビットとを含むビット対に対してモンゴメリ法を実行することにより、前記初期の計算対を生成することと
    によって行われる、ことと、
    残りのビット対(k,s)に対して、前記パディングの後の第1のビット対を開始点として、各ビット対(k,s)においてそれぞれ示される値に従って前記第1および第2の乗算において少なくとも1回の繰り返し演算を同時に実行することにより、前記乗算の各ステップにおける数学演算の回数を減らすことによって、前の計算対から(P+Q)だけ異なる第1の成分および第2の成分を含む計算対を生成することと
    を含む、方法。
  2. 前記スカラーの前記一方における最上位ビットを破棄することと、前記スカラーの前記他方における最上位ビットを破棄することとをさらに含む、請求項1に記載の方法。
  3. 前記計算対は、[mP+nQ,(m+1)P+(n+1)Q]として各ステップにおいて前記第1および第2の乗算を表し、mは、前記前の計算対における前記第1の点Pの係数を表し、nは、前記前の計算対における前記第2の点Qの係数を表す、請求項1または請求項2に記載の方法。
  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のスカラーkに楕円曲線E上の第1の点Pを乗算する第1の乗算と、第2のスカラーsに楕円曲線E上の第2の点Qを乗算する第2の乗算とを同時に実行するように構成された暗号モジュールであって、前記スカラーk、sは、異なる数のビットを含み、
    前記暗号モジュールは、
    初期の計算対を生成する手段であって、前記初期の計算対を生成することは、
    前記スカラーk、sのうち少ない数のビットを含む一方を決定することと、
    スカラーk、sのビット長が等しくなるように前記スカラーの前記一方をゼロでパディングすることにより、tビット対(k,s)を提供することであって、tは、前記スカラーのビットの総数を表し、iは、前記スカラーの前記一方および前記スカラーの他方において評価されている現在のビットを表す、ことと、
    前記スカラーの前記一方における前記パディングと前記スカラーの前記他方の対応するビットとを含むビット対に対してモンゴメリ法を実行することにより、前記初期の計算対を生成することと
    によって行われる、手段と、
    残りのビット対(k,s)に対して、前記パディングの後の第1のビット対を開始点として、各ビット対(k,s)においてそれぞれ示される値に従って前記第1および第2の乗算において少なくとも1回の繰り返し演算を同時に実行することにより、前記乗算の各ステップにおける数学演算の回数を減らすことによって、前の計算対から(P+Q)だけ異なる第1の成分および第2の成分を含む計算対を生成する手段と
    を含む、暗号モジュール。
  9. 前記スカラーの前記一方における最上位ビットを破棄することと、前記スカラーの前記他方における最上位ビットを破棄することとを行う手段をさらに含む、請求項8に記載の暗号モジュール。
  10. 前記計算対は、[mP+nQ,(m+1)P+(n+1)Q]として各ステップにおいて前記第1および第2の乗算を表し、mは、前記前の計算対における前記第1の点Pの係数を表し、nは、前記前の計算対における前記第2の点Qの係数を表す、請求項8または請求項9に記載の暗号モジュール。
  11. 前記ビット対(k,s)が現在(0,0)に等しいとき、次の計算対は、[2mP+2nQ,(2m+1)P+(2n+1)Q]である、請求項10に記載の暗号モジュール。
  12. 前記ビット対(k,s)が現在(1,1)に等しいとき、次の計算対は、[(2m+1)P+(2n+1)Q,(2m+2)P+(2n+2)Q]である、請求項10に記載の暗号モジュール。
  13. 前記ビット対(k,s)が現在(0,1)に等しいとき、次の計算対は、[2mP+2nQ+Q,(2m+1)P+(2n+1)Q+Q]である、請求項10に記載の暗号モジュール
  14. 前記ビット対(k,s)が現在(1,0)に等しいとき、次の計算対は、[2mP+2nQ+P,(2m+1)P+P+(2n+1)Q]である、請求項10に記載の暗号モジュール。
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 JP2009515206A (ja) 2009-04-09
JP5073669B2 true 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)

Families Citing this family (14)

* 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 고려대학교 산학협력단 재배치를 통한 트리플-베이스 체인 기반 타원곡선 스칼라 곱셈을 위한 연산 장치 및 방법
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

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2252078C (en) * 1998-10-28 2009-02-17 Certicom Corp. Power signature attack resistant cryptographic system
JP3820909B2 (ja) * 2001-04-24 2006-09-13 ソニー株式会社 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム
JP2003131568A (ja) 2001-10-26 2003-05-09 Hitachi Ltd 楕円曲線署名検証方法及び装置並びに記憶媒体
JP4067818B2 (ja) 2001-12-10 2008-03-26 富士通株式会社 楕円曲線暗号装置、楕円曲線暗号プログラム及び楕円曲線暗号の演算方法
JP4203944B2 (ja) * 2002-01-28 2009-01-07 パナソニック株式会社 楕円曲線演算装置及び楕円曲線演算方法
JP4034585B2 (ja) * 2002-01-28 2008-01-16 松下電器産業株式会社 楕円曲線演算装置及び楕円曲線演算方法
JP3818193B2 (ja) 2002-03-27 2006-09-06 大阪瓦斯株式会社 カーボンナノチューブ含有炭素材料の製造方法
JP2004053814A (ja) * 2002-07-18 2004-02-19 Fujitsu Ltd 楕円曲線暗号装置及び楕円曲線暗号演算方法
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 中国电子科技集团公司第三十研究所 一种用于椭圆曲线密码算法芯片的倍点运算电路

Also Published As

Publication number Publication date
JP2009515206A (ja) 2009-04-09
ATE507625T1 (de) 2011-05-15
US8045705B2 (en) 2011-10-25
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
JP2012185517A (ja) 2012-09-27
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) 同時スカラー乗算方法
JP3939658B2 (ja) モジュラー乗算を行うための装置、および、モジュラー乗算を行うための算術演算装置
KR101089121B1 (ko) 빠른 집합 검증 방법 및 그 장치
US20030123655A1 (en) Method and apparatus for elliptic curve scalar multiplication
EP3115887B1 (en) Method, device and non-transitory computer-readable medium for cryptographic computation
JP2009540394A (ja) フォールディングを用いるモジュール削減
JP2012185517A5 (ja)
US20090136025A1 (en) Method for scalarly multiplying points on an elliptic curve
EP2350811A1 (en) Method and apparatus for modulus reduction
Granger et al. Faster ECC over
US6480606B1 (en) Elliptic curve encryption method and system
JP4354609B2 (ja) 有限体上の連立方程式求解装置及び逆元演算装置
US10057064B2 (en) Computational method, computational device and computer software product for montgomery domain
Konstantinou et al. A software library for elliptic curve cryptography
JP2004163687A (ja) 楕円曲線暗号装置、楕円曲線暗号プログラム
Hashimoto et al. An implementation of ecc with twisted montgomery curve over 32nd degree tower field on arduino uno
Herbaut et al. Random euclidean addition chain generation and its application to point multiplication
JP2000321979A (ja) 多項式演算装置、楕円曲線位数計算装置、楕円曲線生成装置及び楕円曲線暗号システム
US7684564B2 (en) Method for solving Frobenius equations for elliptic-curve cryptography
JP2003218858A (ja) 署名生成方法及び署名検証方法及び署名生成装置及び署名検証装置及び署名生成プログラム及び署名検証プログラム及び署名生成プログラムを格納した記憶媒体及び署名検証プログラムを格納した記憶媒体
JP2007212768A (ja) 楕円曲線暗号における事前計算テーブル作成装置
CN114611051A (zh) 一种减少预计算的标量乘算法
JP2002196671A (ja) 暗号プロトコル実行用計算装置
JP2003043915A (ja) 演算装置及び演算方法及び演算プログラム
JP2018146766A (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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250