JP2012185517A - 同時スカラー乗算方法 - Google Patents
同時スカラー乗算方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating 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
【解決手段】例えば、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は楕円曲線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番目の上位ビ
ットから最下位ビットへと進み、次の対は以下のように計算される。
項であり、従ってm=1である。整数kの最上位ビットは破棄され、kの2番目の上位ビ
ットから最下位ビットへと進み、次の対は以下のように計算される。
各ステップに対し、kの現在のビットがゼロ(0)の場合(例えば、2番目のステップ
に対し、kの2番目の上位ビットがゼロの場合)、現在の第1項は前の第1項の2倍とし
、現在の第2項は前の第1と第2項の和とする。しかし、kの現在のビットが1の場合に
は、現在の第1項は前の第1と第2項の和とし、現在の第2項は前の第2項の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に対する所望の値を含むようになる。
ップでは、現在の対は(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
12である。演算シーケンスは対(P,2P)で開始し、ステップi=5〜i=0の間に
、kの現在のビットに対する新規の対を計算する。
12である。演算シーケンスは対(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に相当する。
の現在のビットは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双方の各ビットに対して、個別に倍
加演算と加算演算を必要とする。
号演算では、kP+sQを求めるためにスカラー乗算の組み合わせを計算する。ここでQ
は、楕円曲線E上の他の点であり、sは他のスカラーである。kP+sQを求めるために
モンゴメリ法を用いることができるが、各スカラー乗算は、別々に行うことになり、この
場合に得られる2つの値、すなわちkP及びsQは、同時乗算(simultaneou
s multiplication)kP+sQを求めるために、互いに加算することにな
る。従って、kP+sQを求めるためには、k及びs双方の各ビットに対して、個別に倍
加演算と加算演算を必要とする。
スカラー乗算は、楕円曲線暗号スキームの実行時間の大半を占めることになるから、上
述したように検証ステップにモンゴメリ法を用いることは、典型的な用途にとっては、非
効率的であると見なされる。
述したように検証ステップにモンゴメリ法を用いることは、典型的な用途にとっては、非
効率的であると見なされる。
従って、本発明の目的は、上述の不利な点の少なくとも1つを取り除くか又は軽減する
ことにある。
ことにある。
モンゴメリ法での特別な用法である同時点乗算(simultaneous poin
t multiplication)の方法を提供する。この方法は、各々の点乗算に対
して個別にモンゴメリ法を用いる場合と比較して、倍加演算の回数を減少させ、場合によ
っては加算演算の回数を減少させる。
t multiplication)の方法を提供する。この方法は、各々の点乗算に対
して個別にモンゴメリ法を用いる場合と比較して、倍加演算の回数を減少させ、場合によ
っては加算演算の回数を減少させる。
本発明の一形態では、第1のスカラーkに楕円曲線E上の第1の点Pを掛ける第1の乗
算と、第2のスカラーsに楕円曲線E上の第2の点Qを掛ける第2の乗算とを同時に行う
方法を提供する。当該方法は、tは前記スカラーのビットの総数を表し、iは前記第1及
び第2スカラーにおける評価する現在のビットを表すものとして、t個のビット対(ki
,si)に対して、前記各ビット対(ki,si)に示す値に従って、前記第1及び第2
の乗算にて少なくとも1回の繰り返し演算を同時に行って、前記乗算の各ステップでの数
学演算の回数を減らすようにする、同時スカラー乗算方法である。
算と、第2のスカラーsに楕円曲線E上の第2の点Qを掛ける第2の乗算とを同時に行う
方法を提供する。当該方法は、tは前記スカラーのビットの総数を表し、iは前記第1及
び第2スカラーにおける評価する現在のビットを表すものとして、t個のビット対(ki
,si)に対して、前記各ビット対(ki,si)に示す値に従って、前記第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個のビット対(ki,si)に
対して、前記第1及び第2のスカラーの長い方のスカラーに対しモンゴメリ法を行うステ
ップと、残りのt−v−1個のビット対(ki,si)に対して、前記ビット対(ki,
si)に示される値に従って、前記第1及び第2の乗算にて少なくとも1回の繰り返し演
算を同時に行って、前記乗算の各ステップでの数学演算の回数を減らすステップと、を含
むようにする。
例えば、本発明は、以下の項目を提供する。
(項目1)
楕円曲線暗号方式にて、第1のスカラーkに楕円曲線E上の第1の点Pを掛ける第1の
乗算と、第2のスカラーsに楕円曲線E上の第2の点Qを掛ける第2の乗算とを同時に行
う方法であって、tは前記スカラーのビットの総数を表し、iは前記第1及び第2スカラ
ーにおける評価する現在のビットを表すものとして、t個のビット対(k i ,s i )に対
して、前記各ビット対(k i ,s i )に示される値に従って、前記第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 i ,s i )が(0,0)のとき、次の計算対は[2mP+2nQ,(
2m+1)P+(2n+1)Q]となる、項目3に記載の方法。
(項目5)
前記ビット対(k i ,s i )が(1,1)のとき、次の計算対は[(2m+1)P+(
2n+1)Q,(2m+2)P+(2n+2)Q]となる、項目3に記載の方法。
(項目6)
前記ビット対(k i ,s i )が(0,1)のとき、次の計算対は[2mP+2nQ+Q
,(2m+1)P+(2n+1)Q+Q]となる、項目3に記載の方法。
(項目7)
前記ビット対(k i ,s i )が(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 i ,s i )に対し
て、前記第1及び第2のスカラーの長い方のスカラーに対しモンゴメリ法を行うステップ
と、
― 残りのt−v−1個のビット対(k i ,s i )に対して、前記ビット対(k i ,s i
)に示される値に従って、前記第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 i ,s i )が(0,0)のと
き、次の計算対は[2mP+2nQ,(2m+1)P+(2n+1)Q]となる、項目
10に記載の方法。
(項目12)
前記t−v−1個のビット対に対して、前記ビット対(k i ,s i )が(1,1)のと
き、次の計算対は[(2m+1)P+(2n+1)Q,(2m+2)P+(2n+2)Q
]となる、項目10に記載の方法。
(項目13)
前記t−v−1個のビット対に対して、前記ビット対(k i ,s i )が(0,1)のと
き、次の計算対は[2mP+2nQ+Q,(2m+1)P+(2n+1)Q+Q]となる
、項目10に記載の方法。
(項目14)
前記t−v−1個のビット対に対して、前記ビット対(k i ,s i )が(1,0)のと
き、次の計算対は[2mP+2nQ+P,(2m+1)P+P+(2n+1)Q]となる
、項目10に記載の方法。
(項目15)
項目9による同時点乗算を行うための暗号モジュール。
第2のスカラーsに楕円曲線E上の第2の点Qを掛ける第2の乗算とを同時に行う方法で
あって、前記第1及び第2のスカラーは異なるビット長であり:各スカラーがtビットか
ら成るように、前記第1及び第2のスカラーの短い方のスカラーをv個のゼロでパディン
グするステップであって、tは最大ビット長のビット総数を表すものとするステップと、
前記第1のスカラーk及び前記第2のスカラーsの最上位ビットをそれぞれ破棄するステ
ップと、iは前記第1及び第2のスカラーにおける評価する現在のビットを表すものとし
て、破棄されていないパディングしたゼロを含む、v−1個のビット対(ki,si)に
対して、前記第1及び第2のスカラーの長い方のスカラーに対しモンゴメリ法を行うステ
ップと、残りのt−v−1個のビット対(ki,si)に対して、前記ビット対(ki,
si)に示される値に従って、前記第1及び第2の乗算にて少なくとも1回の繰り返し演
算を同時に行って、前記乗算の各ステップでの数学演算の回数を減らすステップと、を含
むようにする。
例えば、本発明は、以下の項目を提供する。
(項目1)
楕円曲線暗号方式にて、第1のスカラーkに楕円曲線E上の第1の点Pを掛ける第1の
乗算と、第2のスカラーsに楕円曲線E上の第2の点Qを掛ける第2の乗算とを同時に行
う方法であって、tは前記スカラーのビットの総数を表し、iは前記第1及び第2スカラ
ーにおける評価する現在のビットを表すものとして、t個のビット対(k i ,s i )に対
して、前記各ビット対(k i ,s i )に示される値に従って、前記第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 i ,s i )が(0,0)のとき、次の計算対は[2mP+2nQ,(
2m+1)P+(2n+1)Q]となる、項目3に記載の方法。
(項目5)
前記ビット対(k i ,s i )が(1,1)のとき、次の計算対は[(2m+1)P+(
2n+1)Q,(2m+2)P+(2n+2)Q]となる、項目3に記載の方法。
(項目6)
前記ビット対(k i ,s i )が(0,1)のとき、次の計算対は[2mP+2nQ+Q
,(2m+1)P+(2n+1)Q+Q]となる、項目3に記載の方法。
(項目7)
前記ビット対(k i ,s i )が(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 i ,s i )に対し
て、前記第1及び第2のスカラーの長い方のスカラーに対しモンゴメリ法を行うステップ
と、
― 残りのt−v−1個のビット対(k i ,s i )に対して、前記ビット対(k i ,s i
)に示される値に従って、前記第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 i ,s i )が(0,0)のと
き、次の計算対は[2mP+2nQ,(2m+1)P+(2n+1)Q]となる、項目
10に記載の方法。
(項目12)
前記t−v−1個のビット対に対して、前記ビット対(k i ,s i )が(1,1)のと
き、次の計算対は[(2m+1)P+(2n+1)Q,(2m+2)P+(2n+2)Q
]となる、項目10に記載の方法。
(項目13)
前記t−v−1個のビット対に対して、前記ビット対(k i ,s i )が(0,1)のと
き、次の計算対は[2mP+2nQ+Q,(2m+1)P+(2n+1)Q+Q]となる
、項目10に記載の方法。
(項目14)
前記t−v−1個のビット対に対して、前記ビット対(k i ,s i )が(1,0)のと
き、次の計算対は[2mP+2nQ+P,(2m+1)P+P+(2n+1)Q]となる
、項目10に記載の方法。
(項目15)
項目9による同時点乗算を行うための暗号モジュール。
添付の図面を参照して、本発明の実施例を説明する。
図2には、暗号通信システムを10で総称して示してある。当該システム10は、通信
路16を介して相互に通信することができる、第1のコレスポンデント12及び第2のコ
レスポンデント14を備えている。通信路16は(セキュリティ上)安全か、又は安全で
ないかもしれない。各コレスポンデントは、暗号演算を行うための暗号モジュール18及
び20を各々備えている。
路16を介して相互に通信することができる、第1のコレスポンデント12及び第2のコ
レスポンデント14を備えている。通信路16は(セキュリティ上)安全か、又は安全で
ないかもしれない。各コレスポンデントは、暗号演算を行うための暗号モジュール18及
び20を各々備えている。
好ましくは各暗号モジュール18及び20は、1以上の整数と、フィールドFqにわた
って規定される楕円曲線E上の1つ以上の点との点乗算のような、楕円曲線暗号演算を行
うことができるようにする。このような暗号演算は、例えば、ECDSA法及び、このた
めに行う複数のステップを含む。ここに記載する実施例は、特に、組み合わせkP+sQ
を計算し、P及びQに対して予め計算したテーブルを利用できない場合の、ECDSAの
検証に適している。
って規定される楕円曲線E上の1つ以上の点との点乗算のような、楕円曲線暗号演算を行
うことができるようにする。このような暗号演算は、例えば、ECDSA法及び、このた
めに行う複数のステップを含む。ここに記載する実施例は、特に、組み合わせkP+sQ
を計算し、P及びQに対して予め計算したテーブルを利用できない場合の、ECDSAの
検証に適している。
当然のことながら、ここで記載する実施例は、重複点(multiple point
)乗算を含む他の暗号演算にも用いることができ、ここで記載するような、ECDSAの
検証のための組み合わせkP+sQを計算することに限定すべきではない。
)乗算を含む他の暗号演算にも用いることができ、ここで記載するような、ECDSAの
検証のための組み合わせkP+sQを計算することに限定すべきではない。
本出願人は、モンゴメリ法を用いてkPとsQを別々に計算する場合に、kP及びsQ
の計算における幾つかの演算が繰り返され、これは単一演算で実行可能であることを発見
した。以下に、倍加演算及び加算演算の総数を減らし、これにより、重複スカラー(mu
ltiple scalar)乗算のための効率的な方法を提供する、同時スカラー乗算
法について述べる。
の計算における幾つかの演算が繰り返され、これは単一演算で実行可能であることを発見
した。以下に、倍加演算及び加算演算の総数を減らし、これにより、重複スカラー(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だ
け異なるようになっている。このことは、点倍加及び点加算に、より効率的な式を用いる
ことを可能にする。
、単一の計算対、即ち、(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ビットとのビット対(ki
,si)を参照する。各ステップで2ビットを参照し、且つそのために各ビットがバイナ
リ表現を有する場合、この例で可能なビット対は、(0,0)、(1,1)、(0,1)
、(1,0)である。一般に、各スカラーにはtビットあり、評価は、i=t−1からi
=0まで進められ、例えば、ここでktは最上位ビットであり、k0は最下位ビットであ
る。
ー乗算法の各ステップでは、kからの1ビットと、sからの1ビットとのビット対(ki
,si)を参照する。各ステップで2ビットを参照し、且つそのために各ビットがバイナ
リ表現を有する場合、この例で可能なビット対は、(0,0)、(1,1)、(0,1)
、(1,0)である。一般に、各スカラーにはtビットあり、評価は、i=t−1からi
=0まで進められ、例えば、ここでktは最上位ビットであり、k0は最下位ビットであ
る。
ビットの対が(0,0)、(1,1)である場合には、k及びsに対して同様な演算を
行うのだから、1回の倍加演算をP及びQの双方で同時に行い、前の対の両項を1回加算
することができる。従って、P及びQの計算には、1回の倍加演算と1回の加算を必要と
するだけであるので、ビットの対が(0,0)、(1,1)である場合の、kP+sQの
本例の同時スカラー乗算は、半分の倍加演算と半分の加算を必要とするだけである。
行うのだから、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の各々の係数である。
倍加演算を必要とし、第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の各々の係数である。
第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)及び(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の各々の係数である。
それぞれ必要とし、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の各々の係数である。
それぞれ必要とし、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の演算で済むことになる。これにより、重複点
スカラー乗算の計算効率が増大する。
現在のステップを計算するのに、4分の3の演算で済むことになる。これにより、重複点
スカラー乗算の計算効率が増大する。
演算シーケンスは、(上記のどのケースを必要とするかを評価する)各ビット対に対し
て、k及びsの最下位ビットまで続き、その時点(k及びsの最小ビットになった時点)
で、現在の対(例えば最後に計算した対)が、その対の第1項として所望値kP+sQを
含むようになる。
て、k及びsの最下位ビットまで続き、その時点(k及びsの最小ビットになった時点)
で、現在の対(例えば最後に計算した対)が、その対の第1項として所望値kP+sQを
含むようになる。
上述した実施例の一例を、図3に示してある。図3に示した例では、k=45=101
1012、s=54=1101102とし、k及びsのビット長は同じで、t=6として
ある。シーケンスは、対(P+Q,2P+2Q)で開始し、ステップi=5からステップ
i=0までの間に、現在のビットに対する新たな対を以下のように計算する。
1012、s=54=1101102とし、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と計算される。
する。このステップでは、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の値に基づいて計算することもできる。
は(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の値に基づい
て計算することもできる。
は(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の値に基づいて計算することもできる。
は(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の値に基づいて計算することもで
きる。
、前の対は(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に相当する。
とから予測される、所望の組み合わせkP+sQに相当する。
図4に示す他の実施例では、k及びsのビット長が異なり、k=5=1012、s=1
09=11011012とする。この場合には、ビット長が等しくなるように、最初にk
をv個の0でパディングする。表に示すように、ステップi=6からi=3に対して(す
なわち、パディングした0及びkの第1項に対して)、モンゴメリ法をQのみに対して(
すなわち、長いビット長を有し、従って0を埋め込んでいないスカラーに対して)実施す
る。
09=11011012とする。この場合には、ビット長が等しくなるように、最初に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=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の値に基づいて計算することも
できる。
だけに着目する。このステップで、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の
値に基づいて計算することもできる。
トであり、従って、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)となる。
ある。従って、この対が、同時乗算における第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の値に基づいて計算することもできる。
(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の値に基づいて計算する
こともできる。
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に相当する。従って、本例の同時点乗算
法は、異なるビット長の整数に対しても、容易に実装することができる。
とから予測される、所望の組み合わせkP+sQに相当する。従って、本例の同時点乗算
法は、異なるビット長の整数に対しても、容易に実装することができる。
ある特定の実施例を参照しながら本発明を説明したが、添付した特許請求の範囲によっ
て規定されるような本発明の精神及び範囲を逸脱することなく、幾多の変更を加えうるこ
とは当業者に明らかである。
て規定されるような本発明の精神及び範囲を逸脱することなく、幾多の変更を加えうるこ
とは当業者に明らかである。
Claims (15)
- 楕円曲線暗号方式にて、第1のスカラーkに楕円曲線E上の第1の点Pを掛ける第1の
乗算と、第2のスカラーsに楕円曲線E上の第2の点Qを掛ける第2の乗算とを同時に行
う方法であって、tは前記スカラーのビットの総数を表し、iは前記第1及び第2スカラ
ーにおける評価する現在のビットを表すものとして、t個のビット対(ki,si)に対
して、前記各ビット対(ki,si)に示される値に従って、前記第1及び第2の乗算に
て少なくとも1回の繰り返し演算を同時に行って、前記乗算の各ステップでの数学演算の
回数を減らすようにする、同時スカラー乗算方法。 - 前記第1スカラーkの最上位ビットを破棄することと、前記第2スカラーsの最上位ビ
ットを破棄することを更に含む、請求項1に記載の方法。 - 前記第1及び第2乗算は、計算対[mP+nQ,(m+1)P+(n+1)Q]によっ
て各ステップにて同時に表され、ここで、mは前の計算対の前記第1の点Pの係数を表し
、nは前の計算対の前記第2の点Qの係数を表し、各対に対し、第2の成分は第1の成分
とは(P+Q)だけ異なるようにする、請求項1に記載の方法。 - 前記ビット対(ki,si)が(0,0)のとき、次の計算対は[2mP+2nQ,(
2m+1)P+(2n+1)Q]となる、請求項3に記載の方法。 - 前記ビット対(ki,si)が(1,1)のとき、次の計算対は[(2m+1)P+(
2n+1)Q,(2m+2)P+(2n+2)Q]となる、請求項3に記載の方法。 - 前記ビット対(ki,si)が(0,1)のとき、次の計算対は[2mP+2nQ+Q
,(2m+1)P+(2n+1)Q+Q]となる、請求項3に記載の方法。 - 前記ビット対(ki,si)が(1,0)のとき、次の計算対は[2mP+2nQ+P
,(2m+1)P+P+(2n+1)Q]となる、請求項3に記載の方法。 - 請求項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個のビット対(ki,si)に対し
て、前記第1及び第2のスカラーの長い方のスカラーに対しモンゴメリ法を行うステップ
と、
― 残りのt−v−1個のビット対(ki,si)に対して、前記ビット対(ki,si
)に示される値に従って、前記第1及び第2の乗算にて少なくとも1回の繰り返し演算を
同時に行って、前記乗算の各ステップでの数学演算の回数を減らすステップと、
を含む、同時スカラー乗算方法。 - 前記t−v−1個のビット対に対して、前記第1及び第2乗算は、計算対[mP+nQ
,(m+1)P+(n+1)Q]によって各ステップにて同時に表され、ここで、mは前
の計算対の、前記第1の点Pの係数を表し、nは前の計算対の、前記第2の点Qの係数を
表し、各対に対して、第2の成分は第1の成分とは(P+Q)だけ異なるようにする、請
求項9に記載の方法。 - 前記t−v−1個のビット対に対して、前記ビット対(ki,si)が(0,0)のと
き、次の計算対は[2mP+2nQ,(2m+1)P+(2n+1)Q]となる、請求項
10に記載の方法。 - 前記t−v−1個のビット対に対して、前記ビット対(ki,si)が(1,1)のと
き、次の計算対は[(2m+1)P+(2n+1)Q,(2m+2)P+(2n+2)Q
]となる、請求項10に記載の方法。 - 前記t−v−1個のビット対に対して、前記ビット対(ki,si)が(0,1)のと
き、次の計算対は[2mP+2nQ+Q,(2m+1)P+(2n+1)Q+Q]となる
、請求項10に記載の方法。 - 前記t−v−1個のビット対に対して、前記ビット対(ki,si)が(1,0)のと
き、次の計算対は[2mP+2nQ+P,(2m+1)P+P+(2n+1)Q]となる
、請求項10に記載の方法。 - 請求項9による同時点乗算を行うための暗号モジュール。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101524661B1 (ko) * | 2014-04-03 | 2015-06-03 | 고려대학교 산학협력단 | 재배치를 통한 트리플-베이스 체인 기반 타원곡선 스칼라 곱셈을 위한 연산 장치 및 방법 |
Families Citing this family (13)
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)
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)
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 | 中国电子科技集团公司第三十研究所 | 一种用于椭圆曲线密码算法芯片的倍点运算电路 |
-
2006
- 2006-11-03 EP EP10189354A patent/EP2293491B1/en active Active
- 2006-11-03 US US11/556,531 patent/US8045705B2/en active Active
- 2006-11-03 CA CA002626847A patent/CA2626847A1/en not_active Abandoned
- 2006-11-03 CN CN200680045391.2A patent/CN101366232B/zh active Active
- 2006-11-03 AT AT06804680T patent/ATE507625T1/de not_active IP Right Cessation
- 2006-11-03 EP EP06804680A patent/EP1946480B1/en active Active
- 2006-11-03 JP JP2008538237A patent/JP5073669B2/ja active Active
- 2006-11-03 DE DE602006021601T patent/DE602006021601D1/de active Active
- 2006-11-03 WO PCT/CA2006/001805 patent/WO2007051305A1/en active Application Filing
- 2006-11-03 EP EP12172540.2A patent/EP2509253B1/en active Active
-
2011
- 2011-07-06 US US13/177,286 patent/US8284930B2/en active Active
- 2011-09-05 HK HK11109358.4A patent/HK1155293A1/xx unknown
-
2012
- 2012-05-29 JP JP2012122076A patent/JP2012185517A/ja active Pending
- 2012-09-13 US US13/614,927 patent/US8548163B2/en active Active
Patent Citations (6)
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)
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)
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 |