JP3821631B2 - 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体 - Google Patents

楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体 Download PDF

Info

Publication number
JP3821631B2
JP3821631B2 JP2000160001A JP2000160001A JP3821631B2 JP 3821631 B2 JP3821631 B2 JP 3821631B2 JP 2000160001 A JP2000160001 A JP 2000160001A JP 2000160001 A JP2000160001 A JP 2000160001A JP 3821631 B2 JP3821631 B2 JP 3821631B2
Authority
JP
Japan
Prior art keywords
doubling
addition
scalar
point
value
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.)
Expired - Fee Related
Application number
JP2000160001A
Other languages
English (en)
Other versions
JP2001337599A (ja
Inventor
勝幸 桶屋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000160001A priority Critical patent/JP3821631B2/ja
Priority to DE60119620T priority patent/DE60119620T2/de
Priority to US09/811,459 priority patent/US7046801B2/en
Priority to EP01106954A priority patent/EP1160661B1/en
Publication of JP2001337599A publication Critical patent/JP2001337599A/ja
Priority to US10/196,508 priority patent/US7308096B2/en
Application granted granted Critical
Publication of JP3821631B2 publication Critical patent/JP3821631B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータネットワークにおけるセキュリティ技術に関し、特に楕円曲線暗号における暗号処理方法及び装置並びに記憶媒体に関する。
【0002】
【従来の技術】
楕円曲線暗号は、N.Koblitz, V.S.Millerにより提案された公開鍵暗号の一種である。公開鍵暗号には、公開鍵と呼ばれる一般に公開してよい情報と、秘密鍵と呼ばれる秘匿しなければならない秘密情報がある。与えられたメッセージの暗号化や署名の検証には公開鍵を用い、与えられたメッセージの復号化や署名の作成には秘密鍵を用いる。楕円曲線暗号における秘密鍵は、スカラー値が担っている。また、楕円曲線暗号の安全性は、楕円曲線上の離散対数問題の求解が困難であることに由来している。ここで楕円曲線上の離散対数問題とは、楕円曲線上のある点Pとそのスカラー倍の点dPが与えられたとき、スカラー値dを求める問題である。ここにおいて、楕円曲線上の点とは、楕円曲線の定義方程式をみたす数の組をいう。楕円曲線上の点全体には、無限遠点という仮想的な点を単位元とした演算、すなわち楕円曲線上の加法が定義されている。そして、同じ点同士の楕円曲線上の加法のことを、特に楕円曲線上の2倍算という。ある点に対し、特定の回数だけ加法を行なうことをスカラー倍といい、その結果をスカラー倍点、その回数のことをスカラー値という。
【0003】
楕円曲線上の離散対数問題の求解の困難性が理論的に確立されてきている一方で、実際の実装においては秘密鍵等の秘密情報に関連する情報が暗号処理において漏洩する場合があり、その漏洩情報をもとに秘密情報を復元するといった、所謂パワーアナリシスという攻撃法が提案されている。
【0004】
DES(Data Encryption Standard)等の秘密情報を用いた暗号処理において、電圧変化を測定することで暗号処理経過を入手し、それをもとにして秘密情報を推察するという攻撃法が、P.Kocher, J.Jaffe, B.Jun Differential Power Analysis, Advances in Cryptology: Proceedings of CRYPTO '99, LNCS 1666, Springer-Verlag, (1999) pp.388-397. に記載されている。この攻撃法は、DPA(Differential Power Analysis)と呼ばれている。
【0005】
楕円曲線暗号に対して上述の攻撃法を適用したものが、J.Coron, Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems, Cryptographic Hardware and Embedded Systems: Proceedings of CHES'99, LNCS 1717, Springer-Verlag, (1999) pp.292-302. に記載されている。楕円曲線暗号において、与えられたメッセージの暗号化や復号化、乃至は署名の作成及びその検証は、楕円曲線演算を用いて行なう必要がある。特に、楕円曲線上のスカラー倍の計算は、秘密情報であるスカラー値を用いた暗号処理において用いられる。
【0006】
また、モンゴメリ型楕円曲線BY=X+AX+X(A,B∈Fp)を用いると標準型楕円曲線と呼ばれる通常用いる楕円曲線よりも高速に演算を実行できることが、P.L.Montgomery, Speeding the Pollard and Elliptic Curve Methods of Factorization, Math. Comp. 48 (1987) pp.243-264. に記載されている。これは、スカラー値の特定のビットの値に依存して、楕円曲線上の点の組(mP,(m+1)P)から点の組(2mP,(2m+1)P)乃至は点の組((2m+1)P,(2m+2)P)を繰り返し計算するスカラー倍計算方法において、モンゴメリ型楕円曲線を利用することにより、加算及び2倍算の計算時間が短縮されることに由来する。
【0007】
また、標数2の有限体上で定義された楕円曲線に対しても、モンゴメリ型楕円曲線におけるスカラー倍計算方法を適応させたスカラー倍計算方法並びにそれに用いる加算方法及び2倍算方法が、J.Lopez, R.Dahab, Fast Multiplication on Elliptic Curves over GF(2m) without Precomputation, Cryptographic Hardware and Embedded Systems: Proceedings of CHES'99, LNCS 1717, Springer-Verlag, (1999) pp.316-327. に記載されている。このスカラー倍計算方法における加算及び2倍算の計算時間が短縮されることにより、標数2の有限体上で定義された楕円曲線における通常のスカラー倍計算方法と比べて、スカラー倍計算が高速に実行できる。
【0008】
楕円曲線暗号に対するDPA攻撃の対処法の一つとして、ランダム化射影座標を用いる方法が、J.Coron, Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems, Cryptographic Hardware and Embedded Systems: Proceedings of CHES'99, LNCS 1717, Springer-Verlag, (1999) pp.292-302. に記載されている。これはスカラー倍計算において、特定の値が出現するか否かを観測し、そこからスカラー値を割り出す攻撃法に対して、ランダムな値を乗ずることにより、特定の値が出現することを予測できなくする対処法である。
【0009】
【発明が解決しようとする課題】
上記従来技術の楕円曲線暗号は、DPA等のパワーアナリシスによる攻撃については考慮されていなかった。それゆえに、パワーアナリシスによる攻撃を和らげるためには、秘密情報を用いた暗号処理において、必要な計算以外に余分な計算を行なうなどして、暗号処理経過と秘密情報との依存関係を弱くしなければならなかった。そのため、暗号処理に必要な時間が増大し、ICカード等の計算速度の遅いコンピュータや、膨大な数の暗号処理をこなすサーバ等においては、暗号処理効率の低下が目立つ状態にあった。そのうえ、暗号処理経過と秘密情報との依存関係を完全に断ち切ることはできなかった。また、暗号処理効率を優先しようとすれば、パワーアナリシスによる攻撃を受け易く、秘密情報が漏洩する可能性があるという状態にあった。
【0010】
本発明の目的は、パワーアナリシス等により暗号処理経過が漏洩しても、秘密情報自体は漏洩せず、しかも高速に暗号処理を実行できる暗号処理方法及び装置並びに記憶媒体を提供すること、特に、秘密情報であるスカラー値から楕円曲線上のスカラー倍点を計算する計算経過からスカラー値の情報を引き出すことができないスカラー倍計算方法を提供することにある。
【0013】
【課題を解決するための手段】
発明は、あらかじめ、楕円曲線上の第1の加算及び楕円曲線上の第1の2倍算の計算を行う第1の加算・2倍算手段と、楕円曲線上の第2の加算及び楕円曲線上の第2の2倍算の計算を行う第2の加算・2倍算手段とを用意しておき、ランダム化により加算が先か2倍算が先かを決定し、前記スカラー値の所定ビットの値を判定し、(1)加算が先と決定され、かつ、前記所定ビットの値が0と判定された場合は、前記第1の加算・2倍算手段が、前記加算を先に行い、2倍算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、(2)加算が先と決定され、かつ、前記所定ビットの値が1と判定された場合は、前記第2の加算・2倍算手段が、前記加算を先に行い、2倍算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、(3)2倍算が先と決定され、かつ、前記所定ビットの値が0と判定された場合は、前記第1の加算・2倍算手段が、前記2倍算を先に行い、加算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、(4)2倍算が先と決定され、かつ、前記所定ビットの値が1と判定された場合は、前記第2の加算・2倍算手段が、前記2倍算を先に行い、加算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行うことを特徴とする。
【0014】
また本発明は、あらかじめ、楕円曲線上の第1の加算及び楕円曲線上の第1の2倍算の計算を行う第1の加算・2倍算手段と、楕円曲線上の第2の加算及び楕円曲線上の第2の2倍算の計算を行う第2の加算・2倍算手段とを用意しておき、前記スカラー値の所定ビットの値を判定し、ランダム化により加算が先か2倍算が先かを決定し、 (1) 前記所定ビットの値が0と判定され、かつ、加算が先と決定された場合は、前記第1の加算・2倍算手段が、前記加算を先に行い、2倍算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、 (2) 前記所定ビットの値が1と判定され、かつ、加算が先と決定された場合は、前記第2の加算・2倍算手段が、前記加算を先に行い、2倍算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、 (3) 前記所定ビットの値が0と判定され、かつ、2倍算が先と決定された場合は、前記第1の加算・2倍算手段が、前記2倍算を先に行い、加算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、 (4) 前記所定ビットの値が1と判定され、かつ、2倍算が先と決定された場合は、前記第2の加算・2倍算手段が、前記2倍算を先に行い、加算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行うことを特徴とする。
【0021】
【発明の実施の形態】
以下、本発明の実施の形態を図面を用いて説明する。
【0022】
図11は、本発明の実施の形態に係る暗号処理システムの構成図である。この暗号処理システム1101は、例えばICカード内に設けられ、暗号化(あるいは、復号化、署名の作成や検証)の際に、あるメッセージ(値)1105を入力すると所定の計算を行なってあるメッセージ(値)1106を出力する処理を行なう。暗号処理システム1101は、暗号処理部1102、スカラー倍計算部1103、及び秘密情報格納部1104を備えている。特に、本実施形態のスカラー倍計算部1103は、スカラー倍計算経過が漏洩しても秘密情報は漏洩しないものであり、これにより暗号処理システム1101は、暗号処理経過が漏洩しても秘密情報は漏洩しないシステムになっている。
【0023】
図16は、図11の暗号処理システムにおける処理の流れを示すフローチャートである。図17は、図11の暗号処理システムにおける処理の流れを示すシーケンス図である。
【0024】
図16において、暗号処理システム1101は、以下のようにして、与えられたメッセージ1105から暗号処理を行なったメッセージ1106を出力する。まず、メッセージ1105を暗号処理システム1101に入力すると、暗号処理部1102がそれを受け取る(ステップ1601)。暗号処理部1102は、スカラー倍計算部1103に、入力メッセージ1105に応じた楕円曲線上の点を与える(ステップ1602)。スカラー倍計算部1103は、秘密情報格納部1104より秘密情報であるスカラー値を受け取る(ステップ1603)。スカラー倍計算部1103は、受け取った点とスカラー値より、スカラー倍点を、スカラー倍計算経過が漏洩しても秘密情報は漏洩しないスカラー倍計算方法で計算する(ステップ1604)。スカラー倍計算部1103は、計算したスカラー倍点を暗号処理部1102に送る(ステップ1605)。暗号処理部1102は、スカラー倍計算部1103より受け取ったスカラー倍点をもとにして暗号処理を行なう(ステップ1606)。その結果を暗号処理を行なったメッセージ1106として出力する(ステップ1607)。
【0025】
上記処理手順を図17のシーケンス図を用いて説明する。まず、暗号処理部1701(図11の1102)の実行する処理について説明する。暗号処理部1701は、入力メッセージを受け取る。暗号処理部1701は、入力メッセージをもとに楕円曲線上の点を選び、スカラー倍計算部1702に楕円曲線上の点を与え、そしてスカラー倍計算部1702からスカラー倍点を受け取る。暗号処理部1701は、受け取ったスカラー倍点を用いて暗号処理を行ない、その結果を出力メッセージとして出力する。
【0026】
次にスカラー倍計算部1702(図11の1103)の実行する処理について説明する。スカラー倍計算部1702は、暗号処理部1701より楕円曲線上の点を受け取る。スカラー倍計算部1702は、秘密情報格納部1703よりスカラー値を受け取る。スカラー倍計算部1702は、受け取った楕円曲線上の点及びスカラー値から、スカラー倍計算経過が漏洩しても秘密情報は漏洩しないスカラー倍計算方法により、スカラー倍点を計算し、暗号処理部1701にスカラー倍点を送る。
【0027】
最後に秘密情報格納部1703(図11の1104)の実行する処理について説明する。秘密情報格納部1703は、スカラー倍計算部1702がスカラー倍を計算できるように、スカラー値をスカラー倍計算部1702に送る。
【0028】
スカラー倍計算部1103が実行するスカラー倍計算は、スカラー倍計算経過が漏洩しても秘密情報であるスカラー値に関する情報は漏洩しないものである。そのため、暗号処理部1102において、暗号処理を行なう際に暗号処理経過が漏洩したとしても、秘密情報であるスカラー値を扱っているのはスカラー倍計算部1103のみであり、秘密情報に関する情報は漏洩しない。
【0029】
次に、暗号処理システム1101におけるスカラー倍計算部1103の具体的な実施例を説明する。
【0030】
図2は、暗号処理システム1101における秘密情報を用いた暗号処理において、暗号処理経過が漏洩しても秘密情報は漏洩しないスカラー倍計算方法の第1実施例を示す図である。図1は、第1実施例のスカラー倍計算方法を示すフローチャートである。図1及び図2を参照して、第1実施例を説明する。
【0031】
スカラー倍計算装置201では、点及びスカラー値207を入力し、以下の手順でスカラー倍208を出力する。ここで入力された点をP、入力されたスカラー値をd、出力するスカラー倍の点をdPで、それぞれ表すことにする。
【0032】
ステップ101として、繰り返し判定部206において繰り返すか否かの判定を行なう為に、初期値として変数Iに1を代入する。ステップ102として、2倍算演算部204により、点Pの2倍点2Pを計算する。ステップ103として、スカラー倍計算装置201に入力された点Pとステップ102で求めた点2Pを、点格納部202に点の組(P,2P)として格納する。ステップ104として、繰り返し判定部206により、変数Iとスカラー値のビット長とが一致するかどうかを判定し、一致すればステップ113へ行く。一致しなければステップ105へ行く。ステップ105として、変数Iを1増加させる。ステップ106として、ビット値判定部205により、スカラー値のI番目のビットの値が0であるか1であるかを判定する。そのビットの値が0であればステップ107へ行く。そのビットの値が1であればステップ110へ行く。
【0033】
ステップ107として、加算演算部203により、点格納部202に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステップ108へ行く。ステップ108として、2倍算演算部204により、点格納部202に格納されている点の組(mP,(m+1)P)から点mPの2倍算2(mP)を行ない、点2mPを計算する。その後ステップ109へ行く。ステップ109として、ステップ108で求めた点2mPとステップ107で求めた点(2m+1)Pを点格納部202に点の組(2mP,(2m+1)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ104へ戻る。
【0034】
ステップ110として、加算演算部203により、点格納部202に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステップ111へ行く。ステップ111として、2倍算演算部204により、点格納部202に格納されている点の組(mP,(m+1)P)から点(m+1)Pの2倍算2((m+1)P)を行ない、点(2m+2)Pを計算する。その後ステップ112へ行く。ステップ112として、ステップ110で求めた点(2m+1)Pとステップ111で求めた点(2m+2)Pを点格納部202に点の組((2m+1)P,(2m+2)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ104へ戻る。
【0035】
ステップ113として、点格納部202に格納されている点の組(mP,(m+1)P)から、点mPをスカラー倍208として出力し、終了する。
【0036】
以上の手順により出力する値である点mPが点Pのスカラー値dによるスカラー倍の点dPとなることは、計算過程において格納されている点の組(mP,(m+1)P)の点mPに対するスカラー値mが、スカラー値dにおける先頭Iビットのビット列と一致することと、ステップ104においてステップ113へ行くと判定されるためには、Iとスカラー値dのビット長が等しいことが必要であり、そのためスカラー値mとスカラー値dが一致することにより示される。
【0037】
また、以上の手順によりスカラー倍計算経過が漏洩しても秘密情報であるスカラー値に関する情報が漏洩しないことの根拠は以下の通りである。計算経過からスカラー値に関する情報を得る為には、少なくとも、各々のスカラー値に対する計算経過の間に違いが存在しなければならない。まず、あるスカラー値と、そのスカラー値との間に特定のビットのみが異なるスカラー値とについて考える。特定ビットが異なるので、計算経過において特定の回数だけ繰り返した後のステップ106でのビット値の判定の後、ステップ107へ行くかステップ110へ行くかの違いが生じる。しかしながら、ステップ107へ行ってもステップ110へ行っても、共にその後で加算を行ない、次に2倍算を行ない、そしてその結果を点の組として格納するという手順をとり、ステップ104へと戻る為、計算経過としての差異は存在しない。したがって同一の計算経過をとるためスカラー値の情報は引き出すことはできない。
【0038】
次に固定したビット長のスカラー値について考える。二つのビット長の同じスカラー値はいくつかのビットの値が異なる。値の異なるビットの数をkとし、与えられた2つのスカラー値をそれぞれd及びdとする。スカラー値dとスカラー値dの間でビットの値が異なる最初のビットに対して、その値がdの対応するビットの値と等しく、その他のビットの値がdの対応するビットの値と等しいようなスカラー値をdとする。スカラー値dとスカラー値dは1ビットのみ値が異なる。次にスカラー値dとスカラー値dの間でビットの値が異なる最初のビットに対して、その値がdの対応するビットの値と等しく、その他のビットの値がdの対応するビットの値と等しいようなスカラー値をdとする。スカラー値dとスカラー値dは1ビットのみ値が異なる。以下同様にしてスカラー値dk−1まで定める。スカラー値dとスカラー値dはkビットの値が異なるので、スカラー値dk−1とスカラー値dは1ビットのみ値が異なる。したがって下付き指数の値が1だけ異なるスカラー値同士は1ビットのみ値が異なる。上述したように、1ビットのみ値の異なるスカラー値同士においてはそれらの計算経過は同一となる。スカラー値dからスカラー値dまで1ビットのみ値の異なるスカラー値の連鎖が存在するので、スカラー値dとスカラー値dの計算経過は同一となる。ゆえに計算経過によりスカラー値の情報を引き出すことはできない。
【0039】
また、楕円曲線としてモンゴメリ型楕円曲線を用いると、加算及び2倍算が高速に実行可能であり、通常用いる標準型楕円曲線よりも高速にスカラー倍計算が実行可能である。
【0040】
標数2の有限体上で定義された楕円曲線に対しても、高速な加算及び2倍算の計算方法が知られており、上記手順において加算及び2倍算の計算にその計算方法を用いることにより、標数2の有限体上で定義された楕円曲線の通常のスカラー倍計算と比べて、高速にスカラー倍計算が実行可能である。
【0041】
図5は、図11の暗号処理システム1101における秘密情報を用いた暗号処理において、暗号処理経過が漏洩しても秘密情報は漏洩しないスカラー倍計算方法の第2実施例を示す図である。図4は、第2実施例のスカラー倍計算方法を示すフローチャートである。図4及び図5を参照して、第2実施例を説明する。
【0042】
スカラー倍計算装置501では、点及びスカラー値507を入力し、以下の手順でスカラー倍508を出力する。ステップ401として、繰り返し判定部506において繰り返すか否かの判定を行なう為に、初期値として変数Iに1を代入する。ステップ402として、2倍算演算部504により、点Pの2倍点2Pを計算する。ステップ403として、スカラー倍計算装置501に入力された点Pとステップ402で求めた点2Pを、点格納部502に点の組(P,2P)として格納する。ステップ404として、繰り返し判定部506により、変数Iとスカラー値のビット長とが一致するかどうかを判定し、一致すればステップ413へ行く。一致しなければステップ405へ行く。ステップ405として、変数Iを1増加させる。ステップ406として、ビット値判定部505により、スカラー値のI番目のビットの値が0であるか1であるかを判定する。そのビットの値が0であればステップ407へ行く。そのビットの値が1であればステップ410へ行く。
【0043】
ステップ407として、2倍算演算部504により、点格納部502に格納されている点の組(mP,(m+1)P)から点mPの2倍算2(mP)を行ない、点2mPを計算する。その後ステップ408へ行く。ステップ408として、加算演算部503により、点格納部502に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステップ409へ行く。ステップ409として、ステップ407で求めた点2mPとステップ408で求めた点(2m+1)Pを点格納部502に点の組(2mP,(2m+1)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ404へ戻る。
【0044】
ステップ410として、2倍算演算部504により、点格納部502に格納されている点の組(mP,(m+1)P)から点(m+1)Pの2倍算2((m+1)P)を行ない、点(2m+2)Pを計算する。その後ステップ411へ行く。ステップ411として、加算演算部503により、点格納部502に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステップ412へ行く。ステップ412として、ステップ411で求めた点(2m+1)Pとステップ410で求めた点(2m+2)Pを点格納部502に点の組((2m+1)P,(2m+2)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ404へ戻る。
【0045】
ステップ413として、点格納部502に格納されている点の組(mP,(m+1)P)から、点mPをスカラー倍508として出力し、終了する。
【0046】
以上の手順により出力する値である点mPが点Pのスカラー値dによるスカラー倍の点dPとなることは、第1実施例の場合と同様に示すことができる。
【0047】
また、以上の手順によりスカラー倍計算経過が漏洩しても秘密情報であるスカラー値に関する情報が漏洩しないことの根拠は以下の通りである。ある特定のビットのみ値が異なる二つのスカラー値に対して、それらの計算経過が同一であることを示せば、他の部分は第一実施例における根拠と同様であるので、スカラー倍計算経過が漏洩しても秘密情報であるスカラー値に関する情報が漏洩しないことが示される。したがって、ある特定のビットのみ値が異なる二つのスカラー値について考える。ある特定のビットの値のみが異なるので、計算経過において特定の回数だけ繰り返した後のステップ406でのビット値の判定の後、ステップ407へ行くかステップ410へ行くかの違いが生じる。しかしながらステップ407へ行ってもステップ410へ行っても、共にその後で2倍算を行ない、次に加算を行ない、そしてその結果を点の組として格納するという手順をとり、ステップ404へと戻る為、計算経過としての差異は存在しない。ゆえにスカラー倍計算経過によりスカラー値の情報を引き出すことはできない。
【0048】
また、楕円曲線としてモンゴメリ型楕円曲線を用いると、標準型楕円曲線よりも高速にスカラー倍計算が実行可能であることも、第1実施例と同様である。
【0049】
標数2の有限体上で定義された楕円曲線に対しても、上記手順において加算及び2倍算の計算に高速な加算及び2倍算の計算方法を用いることにより、標数2の有限体上で定義された楕円曲線の通常のスカラー倍計算と比べて、高速にスカラー倍計算が実行可能であることも、第1実施例と同様である。
【0050】
図7は、図11の暗号処理システム1101における秘密情報を用いた暗号処理において、暗号処理経過が漏洩しても秘密情報は漏洩しないスカラー倍計算方法の第3実施例を示す図である。図6は、第3実施例のスカラー倍計算方法を示すフローチャートである。図6及び図7を参照して、第3実施例を説明する。
【0051】
スカラー倍計算装置701では、点及びスカラー値707を入力し、以下の手順でスカラー倍708を出力する。ステップ601として、繰り返し判定部706において繰り返すか否かの判定を行なう為に、初期値として変数Iに1を代入する。ステップ602として、2倍算演算部704により、点Pの2倍点2Pを計算する。ステップ603として、スカラー倍計算装置701に入力された点Pとステップ602で求めた点2Pを、点格納部702に点の組(P,2P)として格納する。ステップ604として、繰り返し判定部706により、変数Iとスカラー値のビット長とが一致するかどうかを判定し、一致すればステップ613へ行く。一致しなければステップ605へ行く。ステップ605として、変数Iを1増加させる。ステップ606として、ビット値判定部705により、スカラー値のI番目のビットの値が0であるか1であるかを判定する。そのビットの値が0であればステップ607へ行く。そのビットの値が1であればステップ610へ行く。
【0052】
ステップ607として、加算及び2倍算演算部703により、点格納部702に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)P及び点mPの2倍算2(mP)を同時に行ない、点(2m+1)P及び点2mPを計算する。その後ステップ609へ行く。ステップ609として、ステップ607で求めた点2mPと点(2m+1)Pを点格納部702に点の組(2mP,(2m+1)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ604へ戻る。
【0053】
ステップ610として、加算及び2倍算演算部703により、点格納部702に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)P及び点(m+1)Pの2倍算2((m+1)P)を同時に行ない、点(2m+1)P及び点(2m+2)Pを計算する。その後ステップ612へ行く。ステップ612として、ステップ610で求めた点(2m+1)Pと点(2m+2)Pを点格納部702に点の組((2m+1)P,(2m+2)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ604へ戻る。
【0054】
ステップ613として、点格納部702に格納されている点の組(mP,(m+1)P)から、点mPをスカラー倍708として出力し、終了する。
【0055】
以上の手順により出力する値である点mPが点Pのスカラー値dによるスカラー倍の点dPとなることは、第1実施例の場合と同様に示すことができる。
【0056】
また、以上の手順によりスカラー倍計算経過が漏洩しても秘密情報であるスカラー値に関する情報が漏洩しないことの根拠は以下の通りである。ある特定のビットのみ値が異なる二つのスカラー値に対して、それらの計算経過が同一であることを示せば、他の部分は第一実施例における根拠と同様であるので、スカラー倍計算経過が漏洩しても秘密情報であるスカラー値に関する情報が漏洩しないことが示される。したがって、ある特定のビットのみ値が異なる二つのスカラー値について考える。ある特定のビットの値のみが異なるので、計算経過において特定の回数だけ繰り返した後のステップ606でのビット値の判定の後、ステップ607へ行くかステップ610へ行くかの違いが生じる。しかしながらステップ607へ行ってもステップ610へ行っても、共にその後で加算及び2倍算を同時に行ない、そしてそれらの結果を点の組として格納するという手順をとり、ステップ604へと戻る為、計算経過としての差異は存在しない。ゆえにスカラー倍計算経過によりスカラー値の情報を引き出すことはできない。
【0057】
また、楕円曲線としてモンゴメリ型楕円曲線を用いると、標準型楕円曲線よりも高速にスカラー倍計算が実行可能であることも、第1実施例と同様である。
【0058】
標数2の有限体上で定義された楕円曲線に対しても、上記手順において加算及び2倍算の計算に高速な加算及び2倍算の計算方法を用いることにより、標数2の有限体上で定義された楕円曲線の通常のスカラー倍計算と比べて、高速にスカラー倍計算が実行可能であることも、第1実施例と同様である。
【0059】
図9は、図11の暗号処理システム1101における秘密情報を用いた暗号処理において、暗号処理経過が漏洩しても秘密情報は漏洩しないスカラー倍計算方法の第4実施例を示す図である。図8は、第4実施例のスカラー倍計算方法を示すフローチャートである。図8及び図9を参照して、第4実施例を説明する。
【0060】
スカラー倍計算装置901では、点及びスカラー値907を入力し、以下の手順でスカラー倍908を出力する。ステップ801として、繰り返し判定部906において繰り返すか否かの判定を行なう為に、初期値として変数Iに1を代入する。ステップ802として、2倍算演算部904により、点Pの2倍点2Pを計算する。ステップ803として、スカラー倍計算装置901に入力された点Pとステップ802で求めた点2Pを、点格納部902に点の組(P,2P)として格納する。ステップ804として、繰り返し判定部906により、変数Iとスカラー値のビット長とが一致するかどうかを判定し、一致すればステップ813へ行く。一致しなければステップ805へ行く。ステップ805として、変数Iを1だけ増加させる。ステップ806として、加算演算部903により、点格納部902に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。ステップ807として、ビット値判定部905により、スカラー値のI番目のビットの値が0であるか1であるかを判定する。そのビットの値が0であればステップ808へ行く。そのビットの値が1であればステップ811へ行く。
【0061】
ステップ808として、2倍算演算部904により、点格納部902に格納されている点の組(mP,(m+1)P)から点mPの2倍算2(mP)を行ない、点2mPを計算する。その後ステップ809へ行く。ステップ809として、ステップ808で求めた点2mPとステップ806で求めた点(2m+1)Pを点格納部902に点の組(2mP,(2m+1)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ804へ戻る。ステップ811として、2倍算演算部904により、点格納部902に格納されている点の組(mP,(m+1)P)から点(m+1)Pの2倍算2((m+1)P)を行ない、点(2m+2)Pを計算する。その後ステップ812へ行く。ステップ812として、ステップ806で求めた点(2m+1)Pとステップ811で求めた点(2m+2)Pを点格納部902に点の組((2m+1)P,(2m+2)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ804へ戻る。
【0062】
ステップ813として、点格納部902に格納されている点の組(mP,(m+1)P)から、点mPをスカラー倍908として出力し、終了する。
【0063】
以上の手順により出力する値である点mPが点Pのスカラー値dによるスカラー倍の点dPとなることは、第1実施例の場合と同様に示すことができる。
【0064】
また、以上の手順によりスカラー倍計算経過が漏洩しても秘密情報であるスカラー値に関する情報が漏洩しないことの根拠は以下の通りである。ある特定のビットのみ値が異なる二つのスカラー値に対して、それらの計算経過が同一であることを示せば、他の部分は第一実施例における根拠と同様であるので、スカラー倍計算経過が漏洩しても秘密情報であるスカラー値に関する情報が漏洩しないことが示される。したがって、ある特定のビットのみ値が異なる二つのスカラー値について考える。ある特定のビットの値のみが異なるので、計算経過において特定の回数だけ繰り返した後のステップ807でのビット値の判定の後、ステップ808へ行くかステップ811へ行くかの違いが生じる。しかしながらステップ808へ行ってもステップ811へ行っても、共にその後で2倍算を行ない、そしてその結果を加算の結果とともに点の組として格納するという手順をとり、ステップ804へと戻る為、計算経過としての差異は存在しない。ゆえにスカラー倍計算経過によりスカラー値の情報を引き出すことはできない。
【0065】
また、楕円曲線としてモンゴメリ型楕円曲線を用いると、標準型楕円曲線よりも高速にスカラー倍計算が実行可能であることも、第1実施例と同様である。
【0066】
標数2の有限体上で定義された楕円曲線に対しても、上記手順において加算及び2倍算の計算に高速な加算及び2倍算の計算方法を用いることにより、標数2の有限体上で定義された楕円曲線の通常のスカラー倍計算と比べて、高速にスカラー倍計算が実行可能であることも、第1実施例と同様である。
【0067】
図15は、図11の暗号処理システム1101における秘密情報を用いた暗号処理において、暗号処理経過が漏洩しても秘密情報は漏洩しないスカラー倍計算方法の第5実施例を示す図である。図12、図13及び図14は、第5実施例のスカラー倍計算方法を示すフローチャートである。図12〜図15を参照して、第5実施例を説明する。
【0068】
スカラー倍計算装置1501では、点及びスカラー値1507を入力し、以下の手順でスカラー倍1508を出力する。ステップ1201として、繰り返し判定部1506において繰り返すか否かの判定を行なう為に、初期値として変数Iに1を代入する。ステップ1202として、2倍算演算部1504により、点Pの2倍点2Pを計算する。ステップ1203として、スカラー倍計算装置1501に入力された点Pとステップ1202で求めた点2Pを、点格納部1502に点の組(P,2P)として格納する。ステップ1204として、繰り返し判定部1506により、変数Iとスカラー値のビット長とが一致するかどうかを判定し、一致すればステップ1213へ行く。一致しなければステップ1205へ行く。ステップ1205として、変数Iを1増加させる。ステップ1206として、演算ランダム化部1509により、加算及び2倍算の計算順序をランダム化する。加算、2倍算の順序で計算を実行する場合はステップ1301へ行く。2倍算、加算の順序で計算を実行する場合はステップ1401へ行く。
【0069】
ステップ1301として、ビット値判定部1505により、スカラー値のI番目のビットの値が0であるか1であるかを判定する。そのビットの値が0であればステップ1302へ行く。そのビットの値が1であればステップ1305へ行く。
【0070】
ステップ1302として、加算演算部1503により、点格納部1502に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステップ1303へ行く。ステップ1303として、2倍算演算部1504により、点格納部1502に格納されている点の組(mP,(m+1)P)から点mPの2倍算2(mP)を行ない、点2mPを計算する。その後ステップ1304へ行く。ステップ1304として、ステップ1303で求めた点2mPとステップ1302で求めた点(2m+1)Pを点格納部1502に点の組(2mP,(2m+1)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ1204へ戻る。
【0071】
ステップ1305として、加算演算部1503により、点格納部1502に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステップ1306へ行く。ステップ1306として、2倍算演算部1504により、点格納部1502に格納されている点の組(mP,(m+1)P)から点(m+1)Pの2倍算2((m+1)P)を行ない、点(2m+2)Pを計算する。その後ステップ1307へ行く。ステップ1307として、ステップ1305で求めた点(2m+1)Pとステップ1306で求めた点(2m+2)Pを点格納部1502に点の組((2m+1)P,(2m+2)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ1204へ戻る。
【0072】
ステップ1401として、ビット値判定部1505により、スカラー値のI番目のビットの値が0であるか1であるかを判定する。そのビットの値が0であればステップ1402へ行く。そのビットの値が1であればステップ1405へ行く。
【0073】
ステップ1402として、2倍算演算部1504により、点格納部1502に格納されている点の組(mP,(m+1)P)から点mPの2倍算2(mP)を行ない、点2mPを計算する。その後ステップ1403へ行く。ステップ1403として、加算演算部1503により、点格納部1502に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステップ1404へ行く。ステップ1404として、ステップ1402で求めた点2mPとステップ1403で求めた点(2m+1)Pを点格納部1502に点の組(2mP,(2m+1)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ1204へ戻る。
【0074】
ステップ1405として、2倍算演算部1504により、点格納部1502に格納されている点の組(mP,(m+1)P)から点(m+1)Pの2倍算2((m+1)P)を行ない、点(2m+2)Pを計算する。その後ステップ1406へ行く。ステップ1406として、加算演算部1503により、点格納部1502に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステップ1407へ行く。ステップ1407として、ステップ1406で求めた点(2m+1)Pとステップ1405で求めた点(2m+2)Pを点格納部1502に点の組((2m+1)P,(2m+2)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ1204へ戻る。
【0075】
ステップ1213として、点格納部1502に格納されている点の組(mP,(m+1)P)から、点mPをスカラー倍1508として出力し、終了する。
【0076】
以上の手順により出力する値である点mPが点Pのスカラー値dによるスカラー倍の点dPとなることは、第1実施例の場合と同様に示すことができる。
【0077】
また、楕円曲線としてモンゴメリ型楕円曲線を用いると、加算及び2倍算が高速に実行可能であり、通常用いる標準型楕円曲線よりも高速にスカラー倍計算が実行可能である。
【0078】
標数2の有限体上で定義された楕円曲線に対しても、上記手順において加算及び2倍算の計算に高速な加算及び2倍算の計算方法を用いることにより、標数2の有限体上で定義された楕円曲線の通常のスカラー倍計算と比べて、高速にスカラー倍計算が実行可能である。
【0079】
図25は、図11の暗号処理システム1101における秘密情報を用いた暗号処理において、暗号処理経過が漏洩しても秘密情報は漏洩しないスカラー倍計算方法の第6実施例を示す図である。図22、図23及び図24は、第6実施例のスカラー倍計算方法を示すフローチャートである。図22〜図25を参照して、第6実施例を説明する。
【0080】
スカラー倍計算装置2501では、点及びスカラー値2507を入力し、以下の手順でスカラー倍2508を出力する。ステップ2201として、繰り返し判定部2506において繰り返すか否かの判定を行なう為に、初期値として変数Iに1を代入する。ステップ2202として、2倍算演算部2504により、点Pの2倍点2Pを計算する。ステップ2203として、スカラー倍計算装置2501に入力された点Pとステップ2202で求めた点2Pを、点格納部2502に点の組(P,2P)として格納する。
【0081】
ステップ2204として、繰り返し判定部2506により、変数Iとスカラー値のビット長とが一致するかどうかを判定し、一致すればステップ2213へ行く。一致しなければステップ2205へ行く。ステップ2205として、変数Iを1増加させる。ステップ2206として、ビット値判定部2505により、スカラー値のI番目のビットの値が0であるか1であるかを判定する。そのビットの値が0であればステップ2401へ行く。そのビットの値が1であればステップ2301へ行く。
【0082】
ステップ2301として、演算ランダム化部2509により、加算及び2倍算の計算順序をランダム化する。加算、2倍算の順序で計算を実行する場合はステップ2305へ行く。2倍算、加算の順序で計算を実行する場合はステップ2302へ行く。
【0083】
ステップ2302として、2倍算演算部2504により、点格納部2502に格納されている点の組(mP,(m+1)P)から点(m+1)Pの2倍算2((m+1)P)を行ない、点(2m+2)Pを計算する。その後ステップ2303へ行く。ステップ2303として、加算演算部2503により、点格納部2502に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステップ2304へ行く。
【0084】
ステップ2305として、加算演算部2503により、点格納部2502に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステップ2306へ行く。ステップ2306として、2倍算演算部2504により、点格納部2502に格納されている点の組(mP,(m+1)P)から点(m+1)Pの2倍算2((m+1)P)を行ない、点(2m+2)Pを計算する。その後ステップ2304へ行く。
【0085】
ステップ2304として、ステップ2303乃至はステップ2305で求めた点(2m+1)Pとステップ2302乃至はステップ2306で求めた点(2m+2)Pを点格納部2502に点の組((2m+1)P,(2m+2)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ2204へ戻る。
【0086】
ステップ2401として、演算ランダム化部2509により、加算及び2倍算の計算順序をランダム化する。加算、2倍算の順序で計算を実行する場合はステップ2405へ行く。2倍算、加算の順序で計算を実行する場合はステップ2402へ行く。
【0087】
ステップ2402として、2倍算演算部2504により、点格納部2502に格納されている点の組(mP,(m+1)P)から点mPの2倍算2(mP)を行ない、点2mPを計算する。その後ステップ2403へ行く。ステップ2403として、加算演算部2503により、点格納部2502に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステップ2404へ行く。
【0088】
ステップ2405として、加算演算部2503により、点格納部2502に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステップ2406へ行く。ステップ2406として、2倍算演算部2504により、点格納部2502に格納されている点の組(mP,(m+1)P)から点mPの2倍算2(mP)を行ない、点2mPを計算する。その後ステップ2404へ行く。
【0089】
ステップ2404として、ステップ2402乃至はステップ2406で求めた点2mPとステップ2403乃至はステップ2405で求めた点(2m+1)Pを点格納部2502に点の組(2mP,(2m+1)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ2204へ戻る。
【0090】
ステップ2213として、点格納部2502に格納されている点の組(mP,(m+1)P)から、点mPをスカラー倍2508として出力し、終了する。
【0091】
以上の手順により出力する値である点mPが点Pのスカラー値dによるスカラー倍の点dPとなることは、第1実施例の場合と同様に示すことができる。
【0092】
また、楕円曲線としてモンゴメリ型楕円曲線を用いると、加算及び2倍算が高速に実行可能であり、通常用いる標準型楕円曲線よりも高速にスカラー倍計算が実行可能である。
【0093】
標数2の有限体上で定義された楕円曲線に対しても、上記手順において加算及び2倍算の計算に高速な加算及び2倍算の計算方法を用いることにより、標数2の有限体上で定義された楕円曲線の通常のスカラー倍計算と比べて、高速にスカラー倍計算が実行可能である。
【0094】
図27は、図11の暗号処理システム1101における秘密情報を用いた暗号処理において、暗号処理経過が漏洩しても秘密情報は漏洩しないスカラー倍計算方法の第7実施例を示す図である。図26は、第7実施例のスカラー倍計算方法を示すフローチャートである。図26及び図27を参照して、第7実施例を説明する。
【0095】
スカラー倍計算装置2701では、点及びスカラー値2707を入力し、以下の手順でスカラー倍2708を出力する。ステップ2601として、繰り返し判定部2706において繰り返すか否かの判定を行なう為に、初期値として変数Iに1を代入する。ステップ2614として、ランダム化射影座標変換部2709により、乱数kを生成する。ステップ2615として、ランダム化射影座標変換部2709により、ステップ2614で生成したkを用いて、点Pを射影座標において、P=(kx,ky,k)と表す。ここで点Pは、アフィン座標では、P=(x,y)と表されるとする。ステップ2602として、2倍算演算部2704により、ステップ2615で(kx,ky,k)と表された点Pの2倍点2Pを計算する。ステップ2603として、スカラー倍計算装置2701に入力され、ステップ2615で(kx,ky,k)と表された点Pと、ステップ2602で求めた点2Pを、点格納部2702に点の組(P,2P)として格納する。
【0096】
ステップ2604として、繰り返し判定部2706により、変数Iとスカラー値のビット長とが一致するかどうかを判定し、一致すればステップ2613へ行く。一致しなければステップ2605へ行く。ステップ2605として、変数Iを1増加させる。ステップ2606として、ビット値判定部2705により、スカラー値のI番目のビットの値が0であるか1であるかを判定する。そのビットの値が0であればステップ2607へ行く。そのビットの値が1であればステップ2610へ行く。
【0097】
ステップ2607として、加算演算部2703により、点格納部2702に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステップ2608へ行く。ステップ2608として、2倍算演算部2704により、点格納部2702に格納されている点の組(mP,(m+1)P)から点mPの2倍算2(mP)を行ない、点2mPを計算する。その後ステップ2609へ行く。ステップ2609として、ステップ2608で求めた点2mPとステップ2607で求めた点(2m+1)Pを点格納部2702に点の組(2mP,(2m+1)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ2604へ戻る。
【0098】
ステップ2610として、加算演算部2703により、点格納部2702に格納されている点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステップ2611へ行く。ステップ2611として、2倍算演算部2704により、点格納部2702に格納されている点の組(mP,(m+1)P)から点(m+1)Pの2倍算2((m+1)P)を行ない、点(2m+2)Pを計算する。その後ステップ2612へ行く。ステップ2612として、ステップ2610で求めた点(2m+1)Pとステップ2611で求めた点(2m+2)Pを点格納部2702に点の組((2m+1)P,(2m+2)P)として、点の組(mP,(m+1)P)の代わりに格納する。その後ステップ2604へ戻る。
【0099】
ステップ2613として、点格納部2702に格納されている点の組(mP,(m+1)P)から、点mPをスカラー倍2708として出力し、終了する。
【0100】
以上の手順により出力する値である点mPが点Pのスカラー値dによるスカラー倍の点dPとなることは、第1実施例の場合と同様に示すことができる。
【0101】
また、以上の手順によりスカラー倍計算経過が漏洩しても秘密情報であるスカラー値に関する情報が漏洩しないことの根拠は、第1実施例における根拠と同様である。そのうえ、スカラー倍計算において、特定の値が出現するか否かを観測し、そこからスカラー値を割り出す攻撃法に対しても、最初にランダムな値を乗じている為、特定の値の出現を予測できなくなるので、そのような攻撃法に対しても、スカラー値に関する情報が漏洩しないことがわかる。
【0102】
また、楕円曲線としてモンゴメリ型楕円曲線を用いると、標準型楕円曲線よりも高速にスカラー倍計算が実行可能であることも、第1実施例と同様である。
【0103】
標数2の有限体上で定義された楕円曲線に対しても、上記手順において加算及び2倍算の計算に高速な加算及び2倍算の計算方法を用いることにより、標数2の有限体上で定義された楕円曲線の通常のスカラー倍計算と比べて、高速にスカラー倍計算が実行可能であることも、第1実施例と同様である。
【0104】
図28は、図27のランダム化射影座標変換部2709として使用するランダム化射影座標変換装置の一実施例を示す図である。図29は、このランダム化射影座標変換装置におけるランダム化射影座標変換方法を示すフローチャートである。
【0105】
ランダム化射影座標変換装置2801では、楕円曲線上の点2805を入力し、以下の手順でランダム化射影座標で表された点2806を出力する。ステップ2901として、座標判定部2802により、与えられた楕円曲線上の点2805がアフィン座標で表されているか、それとも射影座標で表されているかを判定する。アフィン座標で表されていればステップ2902へ行く。射影座標で表されていればステップ2903へ行く。ステップ2902として、次のようにしてアフィン座標で表された点を射影座標で表す。アフィン座標で表された点を(x,y)とすると、射影座標として(x,y,1)と表す。
【0106】
ステップ2903として、乱数生成部2803により、乱数kを生成する。ステップ2904として、射影座標変換部2804により、次のようにして射影座標で表された与えられた点ををランダム化射影座標により表す。与えられた点を(x,y,z)とすると、乱数生成部2803で生成された乱数kを、各座標に乗じ、(kx,ky,kz)と表し、ランダム化射影座標で表された点2806として出力する。
【0107】
射影座標においては、0以外の任意の数kにより各座標を乗じても、同じ点と見做す。すなわち、(x,y,z)と(kx,ky,kz)は同じ点を表している。
【0108】
また、メモリ等の節約の為、ステップ2902の(x,y,1)は実際に格納しなくとも、仮想的に(x,y,1)と表されていると考え、ステップ2904で(kx,ky,k)と表す際に、実際に格納を行なってもよい。
【0109】
図3は、図11の本実施形態の暗号処理システムを署名作成装置として利用する場合の構成を示す。図11における暗号処理部1102は、図3の署名作成装置301では署名部302になる。図18は、図3の署名作成装置における処理の流れを示すフローチャートである。図19は、図3の署名作成装置における処理の流れを示すシーケンス図である。
【0110】
図18において、署名作成装置301は、以下のようにして、与えられたメッセージ305から署名が付随しているメッセージ306を出力する。メッセージ305を署名作成装置301に入力すると、署名部302がそれを受け取る(ステップ1801)。署名部302は、スカラー倍計算部303に、入力メッセージ305に応じた楕円曲線上の点を与える(ステップ1802)。スカラー倍計算部303は、秘密情報格納部304より秘密情報であるスカラー値を受け取る(ステップ1803)。スカラー倍計算部303は、受け取った点とスカラー値より、スカラー倍点を、スカラー倍計算経過が漏洩しても秘密情報は漏洩しないスカラー倍計算方法で計算する(ステップ1804)。スカラー倍計算部303は、計算したスカラー倍点を署名部302に送る(ステップ1805)。署名部302は、スカラー倍計算部303より受け取ったスカラー倍点をもとにして署名作成処理を行なう(ステップ1806)。その結果を署名が付随したメッセージ306として出力する(ステップ1807)。
【0111】
上記処理手順を図19のシーケンス図を用いて説明する。まず、署名部1901(図3の302)の実行する処理について説明する。署名部1901は、入力メッセージを受け取る。署名部1901は、入力メッセージをもとに楕円曲線上の点を選び、スカラー倍計算部1902に楕円曲線上の点を与え、そしてスカラー倍計算部1902からスカラー倍点を受け取る。署名部1901は、受け取ったスカラー倍点を用いて署名作成処理を行ない、その結果を出力メッセージとして出力する。
【0112】
次にスカラー倍計算部1902(図3の303)の実行する処理について説明する。スカラー倍計算部1902は、署名部1901より楕円曲線上の点を受け取る。スカラー倍計算部1902は、秘密情報格納部1903よりスカラー値を受け取る。スカラー倍計算部1903は、受け取った楕円曲線上の点及びスカラー値から、スカラー倍計算経過が漏洩しても秘密情報は漏洩しないスカラー倍計算方法により、スカラー倍点を計算し、署名部1901にスカラー倍点を送る。
【0113】
最後に秘密情報格納部1903(図3の304)の実行する処理について説明する。秘密情報格納部1903は、スカラー倍計算部1902がスカラー倍を計算できるように、スカラー値をスカラー倍計算部1902に送る。
【0114】
スカラー倍計算部303が実行するスカラー倍計算は、上述した第1〜第7実施例で説明したものがそのまま適用される。したがって、このスカラー倍計算は、スカラー倍計算経過が漏洩しても秘密情報であるスカラー値に関する情報は漏洩しないものである。そのため署名部302において、署名作成処理を行なう際に署名作成処理経過が漏洩したとしても、秘密情報であるスカラー値を扱っているのはスカラー倍計算部303のみであり、秘密情報に関する情報は漏洩しない。
【0115】
図10は、図11の本実施形態の暗号処理システムを復号化装置として利用する場合の構成を示す。図11における暗号処理部1102は、図10の復号化装置1001では復号部1002になる。図20は、図10の復号化装置における処理の流れを示すフローチャートである。図21は、図10の復号化装置における処理の流れを示すシーケンス図である。
【0116】
図20において、復号化装置1001は、以下のようにして、与えられたメッセージ1005から復号化されたメッセージ1006を出力する。メッセージ1005を復号化装置1001に入力すると、復号部1002がそれを受け取る(ステップ2001)。復号部1002は、スカラー倍計算部1003に、入力メッセージ1005に応じた楕円曲線上の点を与える(ステップ2002)。スカラー倍計算部1003は、秘密情報格納部1004より秘密情報であるスカラー値を受け取る(2003)。スカラー倍計算部1003は、受け取った点とスカラー値より、スカラー倍点を、スカラー倍計算経過が漏洩しても秘密情報は漏洩しないスカラー倍計算方法で計算する(ステップ2004)。スカラー倍計算部1003は、計算したスカラー倍点を復号部1002に送る(ステップ2005)。復号部1002は、スカラー倍計算部1003より受け取ったスカラー倍点をもとにして復号化処理を行なう(ステップ2006)。その結果を復号化されたメッセージ1006として出力する(ステップ2007)。
【0117】
上記処理手順を図21のシーケンス図を用いて説明する。まず、復号部2101(図10の1002)の実行する処理について説明する。復号部2101は、入力メッセージを受け取る。復号部2101は、入力メッセージをもとに楕円曲線上の点を選び、スカラー倍計算部2102に楕円曲線上の点を与え、そしてスカラー倍計算部2102からスカラー倍点を受け取る。復号部2101は、受け取ったスカラー倍点を用いて復号化処理を行ない、その結果を出力メッセージとして出力する。
【0118】
次にスカラー倍計算部2102(図10の1003)の実行する処理について説明する。スカラー倍計算部2102は、復号部2101より楕円曲線上の点を受け取る。スカラー倍計算部2102は、秘密情報格納部2103よりスカラー値を受け取る。スカラー倍計算部2103は、受け取った楕円曲線上の点及びスカラー値から、スカラー倍計算経過が漏洩しても秘密情報は漏洩しないスカラー倍計算方法により、スカラー倍点を計算し、復号部2101にスカラー倍点を送る。
【0119】
最後に秘密情報格納部2103(図10の1004)の実行する処理について説明する。秘密情報格納部2103は、スカラー倍計算部2102がスカラー倍を計算できるように、スカラー値をスカラー倍計算部2102に送る。
【0120】
スカラー倍計算部1003が実行するスカラー倍計算は、上述した第1〜第7実施例で説明したものがそのまま適用される。したがって、このスカラー倍計算は、スカラー倍計算経過が漏洩しても秘密情報であるスカラー値に関する情報は漏洩しないものである。そのため復号部1002において、復号化処理を行なう際に復号化処理経過が漏洩したとしても、秘密情報であるスカラー値を扱っているのはスカラー倍計算部1003のみであり、秘密情報に関する情報は漏洩しない。
【0121】
【発明の効果】
以上述べたように、本発明によれば、暗号処理システムにおける秘密情報を用いた暗号処理において、暗号処理経過が漏洩しても、暗号処理経過と秘密情報との依存関係が完全に断ち切られているので、秘密情報は漏洩しない。また、使用する楕円曲線をモンゴメリ型楕円曲線とすることで暗号処理の高速化を図ることができる。同様に、楕円曲線として標数2の有限体上で定義された楕円曲線を用いることで暗号処理の高速化を図ることができる。
【図面の簡単な説明】
【図1】本発明の第1実施例のスカラー倍計算方法を示すフローチャート図である。
【図2】第1実施例のスカラー倍計算方法及び装置における処理の流れを示す図である。
【図3】本発明の実施の形態に係る署名作成装置の構成図である。
【図4】本発明の第2実施例のスカラー倍計算方法を示すフローチャート図である。
【図5】第2実施例のスカラー倍計算方法及び装置における処理の流れを示す図である。
【図6】本発明の第3実施例のスカラー倍計算方法を示すフローチャート図である。
【図7】第3実施例のスカラー倍計算方法及び装置における処理の流れを示す図である。
【図8】本発明の第4実施例のスカラー倍計算方法を示すフローチャート図である。
【図9】第4実施例のスカラー倍計算方法及び装置における処理の流れを示す図である。
【図10】本発明の実施の形態に係る復号化装置の構成図である。
【図11】本発明の実施の形態に係る暗号処理システムの構成図である。
【図12】本発明の第5実施例のスカラー倍計算方法を示すフローチャート図である。
【図13】本発明の第5実施例のスカラー倍計算方法を示すフローチャート図である。
【図14】本発明の第5実施例のスカラー倍計算方法を示すフローチャート図である。
【図15】第5実施例のスカラー倍計算方法及び装置における処理の流れを示す図である。
【図16】図11の暗号処理システムにおける暗号処理方法を示すフローチャート図である。
【図17】図11の暗号処理システムにおける処理の流れを示すシーケンス図である。
【図18】図3の署名作成装置における署名作成方法を示すフローチャート図である。
【図19】図3の署名作成装置における処理の流れを示すシーケンス図である。
【図20】図10の復号化装置における復号化方法を示すフローチャート図である。
【図21】図10の復号化装置での処理の流れを示すシーケンス図である。
【図22】本発明の第6実施例のスカラー倍計算方法を示すフローチャート図である。
【図23】本発明の第6実施例のスカラー倍計算方法を示すフローチャート図である。
【図24】本発明の第6実施例のスカラー倍計算方法を示すフローチャート図である。
【図25】第6実施例のスカラー倍計算方法及び装置における処理の流れを示す図である。
【図26】本発明の第7実施例のスカラー倍計算方法を示すフローチャート図である。
【図27】第7実施例のスカラー倍計算方法及び装置における処理の流れを示す図である。
【図28】図27のランダム化射影座標変換装置を示す図である。
【図29】ランダム化射影座標変換装置におけるランダム化射影座標変換方法を示すフローチャート図である。
【符号の説明】
201 スカラー倍計算装置
202 点格納部
203 加算演算部
204 2倍算演算部
205 ビット値判定部
206 繰り返し判定部
207 点及びスカラー値
208 スカラー倍
301 署名作成装置
302 署名部
303 スカラー倍計算部
304 秘密情報格納部
305 入力メッセージ
306 出力メッセージ
701 スカラー倍計算装置
702 点格納部
703 加算及び2倍算演算部
704 2倍算演算部
705 ビット値判定部
706 繰り返し判定部
707 点及びスカラー値
708 スカラー倍
1001 復号化装置
1002 復号化部
1003 スカラー倍計算部
1004 秘密情報格納部
1005 入力メッセージ
1006 出力メッセージ
1101 暗号処理システム
1102 暗号処理部
1103 スカラー倍計算部
1104 秘密情報格納部
1105 入力メッセージ
1106 出力メッセージ
1501 スカラー倍計算装置
1502 点格納部
1503 加算演算部
1504 2倍算演算部
1505 ビット値判定部
1506 繰り返し判定部
1507 点及びスカラー値
1508 スカラー倍
1509 演算ランダム化部
2701 スカラー倍計算装置
2702 点格納部
2703 加算演算部
2704 2倍算演算部
2705 ビット値判定部
2706 繰り返し判定部
2707 点及びスカラー値
2708 スカラー倍
2709 ランダム化射影座標変換部
2801 ランダム化射影座標変換装置
2802 座標判定部
2803 乱数生成部
2804 射影座標変換部
2805 楕円曲線上の点
2806 ランダム化射影座標で表された点

Claims (4)

  1. 楕円曲線暗号においてスカラー値及び楕円曲線上の点からスカラー倍点を計算するスカラー倍計算方法であって、
    あらかじめ、楕円曲線上の第1の加算及び楕円曲線上の第1の2倍算の計算を行う第1の加算・2倍算手段と、楕円曲線上の第2の加算及び楕円曲線上の第2の2倍算の計算を行う第2の加算・2倍算手段とを用意し、
    入力手段が、点及びスカラー値の入力を受け付けるステップと、
    点格納手段が、前記入力された点を格納するステップと、
    ランダム化手段が、楕円曲線上の加算及び楕円曲線上の2倍算の計算順序をランダム化し、加算が先か2倍算が先かを決定するステップと、
    所定ビット判定手段が、前記スカラー値の所定ビットの値を判定するステップと、
    スカラー倍点計算手段が、
    (1)前記ランダム化手段で加算が先と決定され、かつ、前記所定ビット判定手段により前記所定ビットの値が0と判定された場合は、前記第1の加算・2倍算手段が、前記加算を先に行い、2倍算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、
    (2)前記ランダム化手段で加算が先と決定され、かつ、前記所定ビット判定手段により前記所定ビットの値が1と判定された場合は、前記第2の加算・2倍算手段が、前記加算を先に行い、2倍算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、
    (3)前記ランダム化手段で2倍算が先と決定され、かつ、前記所定ビット判定手段により前記所定ビットの値が0と判定された場合は、前記第1の加算・2倍算手段が、前記2倍算を先に行い、加算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、
    (4)前記ランダム化手段で2倍算が先と決定され、かつ、前記所定ビット判定手段により前記所定ビットの値が1と判定された場合は、前記第2の加算・2倍算手段が、前記2倍算を先に行い、加算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行う
    ステップと、
    出力手段が、算出したスカラー倍点を出力するステップと
    を含むことを特徴とするスカラー倍計算方法。
  2. 楕円曲線暗号においてスカラー値及び楕円曲線上の点からスカラー倍点を計算するスカラー倍計算方法であって、
    あらかじめ、楕円曲線上の第1の加算及び楕円曲線上の第1の2倍算の計算を行う第1の加算・2倍算手段と、楕円曲線上の第2の加算及び楕円曲線上の第2の2倍算の計算を行う第2の加算・2倍算手段とを用意し、
    入力手段が、点及びスカラー値の入力を受け付けるステップと、
    点格納手段が、前記入力された点を格納するステップと、
    所定ビット判定手段が、前記スカラー値の所定ビットの値を判定するステップと、
    ランダム化手段が、楕円曲線上の加算及び楕円曲線上の2倍算の計算順序をランダム化し、加算が先か2倍算が先かを決定するステップと、
    スカラー倍点計算手段が、
    (1)前記所定ビット判定手段により前記所定ビットの値が0と判定され、かつ、前記ランダム化手段で加算が先と決定された場合は、前記第1の加算・2倍算手段が、前記加算を先に行い、2倍算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、
    (2)前記所定ビット判定手段により前記所定ビットの値が1と判定され、かつ、前記ランダム化手段で加算が先と決定された場合は、前記第2の加算・2倍算手段が、前記加算を先に行い、2倍算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、
    (3)前記所定ビット判定手段により前記所定ビットの値が0と判定され、かつ、前記ランダム化手段で2倍算が先と決定された場合は、前記第1の加算・2倍算手段が、前記2倍算を先に行い、加算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、
    (4)前記所定ビット判定手段により前記所定ビットの値が1と判定され、かつ、前記ランダム化手段で2倍算が先と決定された場合は、前記第2の加算・2倍算手段が、前記2倍算を先に行い、加算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行う
    ステップと、
    出力手段が、算出したスカラー倍点を出力するステップと
    を含むことを特徴とするスカラー倍計算方法。
  3. 楕円曲線暗号においてスカラー値及び楕円曲線上の点からスカラー倍点を計算するスカラー倍計算装置であって、
    楕円曲線上の第1の加算及び楕円曲線上の第1の2倍算の計算を行う第1の加算・2倍算手段と、
    楕円曲線上の第2の加算及び楕円曲線上の第2の2倍算の計算を行う第2の加算・2倍算手段と、
    点及びスカラー値の入力を受け付ける入力手段と、
    前記入力された点を格納する点格納手段と、
    楕円曲線上の加算及び楕円曲線上の2倍算の計算順序をランダム化し、加算が先か2倍算が先かを決定するランダム化手段と、
    前記スカラー値の所定ビットの値を判定する所定ビット判定手段と、
    (1)前記ランダム化手段で加算が先と決定され、かつ、前記所定ビット判定手段により前記所定ビットの値が0と判定された場合は、前記第1の加算・2倍算手段が、前記加算を先に行い、2倍算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、
    (2)前記ランダム化手段で加算が先と決定され、かつ、前記所定ビット判定手段により前記所定ビットの値が1と判定された場合は、前記第2の加算・2倍算手段が、前記加算を先に行い、2倍算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、
    (3)前記ランダム化手段で2倍算が先と決定され、かつ、前記所定ビット判定手段により前記所定ビットの値が0と判定された場合は、前記第1の加算・2倍算手段が、前記2倍算を先に行い、加算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、
    (4)前記ランダム化手段で2倍算が先と決定され、かつ、前記所定ビット判定手段により前記所定ビットの値が1と判定された場合は、前記第2の加算・2倍算手段が、前記2倍算を先に行い、加算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行う
    スカラー倍点計算手段と、
    算出したスカラー倍点を出力する出力手段と
    を備えることを特徴とするスカラー倍計算装置。
  4. 楕円曲線暗号においてスカラー値及び楕円曲線上の点からスカラー倍点を計算するスカラー倍計算装置であって、
    楕円曲線上の第1の加算及び楕円曲線上の第1の2倍算の計算を行う第1の加算・2倍算手段と、
    楕円曲線上の第2の加算及び楕円曲線上の第2の2倍算の計算を行う第2の加算・2倍算手段と、
    点及びスカラー値の入力を受け付ける入力手段と、
    前記入力された点を格納する点格納手段と、
    前記スカラー値の所定ビットの値を判定する所定ビット判定手段と、
    楕円曲線上の加算及び楕円曲線上の2倍算の計算順序をランダム化し、加算が先か2倍算が先かを決定するランダム化手段と、
    (1)前記所定ビット判定手段により前記所定ビットの値が0と判定され、かつ、前記ランダム化手段で加算が先と決定された場合は、前記第1の加算・2倍算手段が、前記加算を先に行い、2倍算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、
    (2)前記所定ビット判定手段により前記所定ビットの値が1と判定され、かつ、前記ランダム化手段で加算が先と決定された場合は、前記第2の加算・2倍算手段が、前記加算を先に行い、2倍算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、
    (3)前記所定ビット判定手段により前記所定ビットの値が0と判定され、かつ、前記ランダム化手段で2倍算が先と決定された場合は、前記第1の加算・2倍算手段が、前記2倍算を先に行い、加算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行い、
    (4)前記所定ビット判定手段により前記所定ビットの値が1と判定され、かつ、前記ランダム化手段で2倍算が先と決定された場合は、前記第2の加算・2倍算手段が、前記2倍算を先に行い、加算を後に行うことで、前記点格納手段に格納された点のスカラー倍演算を行う
    スカラー倍点計算手段と、
    算出したスカラー倍点を出力する出力手段と
    を備えることを特徴とするスカラー倍計算装置。
JP2000160001A 2000-05-30 2000-05-30 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体 Expired - Fee Related JP3821631B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2000160001A JP3821631B2 (ja) 2000-05-30 2000-05-30 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
DE60119620T DE60119620T2 (de) 2000-05-30 2001-03-20 Verfahren zur Skalarmultiplikation auf einer elliptischen Kurve und entsprechende Vorrichtung
US09/811,459 US7046801B2 (en) 2000-05-30 2001-03-20 Method of calculating multiplication by scalars on an elliptic curve and apparatus using same and recording medium
EP01106954A EP1160661B1 (en) 2000-05-30 2001-03-20 Method of calculating multiplication by scalars on an elliptic curve and apparatus using same
US10/196,508 US7308096B2 (en) 2000-05-30 2002-07-17 Elliptic scalar multiplication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000160001A JP3821631B2 (ja) 2000-05-30 2000-05-30 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体

Publications (2)

Publication Number Publication Date
JP2001337599A JP2001337599A (ja) 2001-12-07
JP3821631B2 true JP3821631B2 (ja) 2006-09-13

Family

ID=18664253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000160001A Expired - Fee Related JP3821631B2 (ja) 2000-05-30 2000-05-30 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体

Country Status (4)

Country Link
US (1) US7046801B2 (ja)
EP (1) EP1160661B1 (ja)
JP (1) JP3821631B2 (ja)
DE (1) DE60119620T2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3820909B2 (ja) * 2001-04-24 2006-09-13 ソニー株式会社 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム
FR2828779B1 (fr) * 2001-08-17 2004-01-16 Gemplus Card Int Procede de calcul universel applique a des points d'une courbe elliptique
JP4067818B2 (ja) 2001-12-10 2008-03-26 富士通株式会社 楕円曲線暗号装置、楕円曲線暗号プログラム及び楕円曲線暗号の演算方法
US7555122B2 (en) 2002-12-04 2009-06-30 Wired Communications LLC Method for elliptic curve point multiplication
AU2003304629A1 (en) * 2003-07-22 2005-02-04 Fujitsu Limited Tamper-resistant encryption using individual key
US7483534B2 (en) * 2004-08-05 2009-01-27 King Fahd University Of Petroleum Elliptic polynomial cryptography with multi y-coordinates embedding
US7483533B2 (en) * 2004-08-05 2009-01-27 King Fahd University Of Petroleum Elliptic polynomial cryptography with multi x-coordinates embedding
US7478902B2 (en) * 2004-11-04 2009-01-20 Hewlett-Packard Development Company, L.P. Inkjet compositions
US7764785B2 (en) 2004-11-08 2010-07-27 King Fahd University Of Petroleum And Minerals Method for communicating securely over an insecure communication channel
WO2006118092A1 (ja) * 2005-04-27 2006-11-09 Matsushita Electric Industrial Co., Ltd. 情報セキュリティ装置及び楕円曲線演算装置
KR101194837B1 (ko) * 2005-07-12 2012-10-25 삼성전자주식회사 멱지수를 숨기는 dpa 대책의 고속 계산을 위한 암호화장치 및 방법
DE602005020702D1 (de) 2005-10-18 2010-05-27 Telecom Italia Spa Verfahren zur skalarmultiplikation in gruppen elliptischer kurven über primkörpern für nebenkanal-attacken-beständige kryptosysteme
DE602005020991D1 (de) 2005-10-28 2010-06-10 Telecom Italia Spa Verfahren zur skalarmultiplikation in gruppen ellir nebenkanalattacken-beständige kryptosysteme
KR100850202B1 (ko) * 2006-03-04 2008-08-04 삼성전자주식회사 Ecc 패스트 몽고매리 전력 래더 알고리즘을 이용하여dfa 에 대응하는 암호화 방법
KR20080012634A (ko) * 2006-08-04 2008-02-12 삼성전자주식회사 고속 몽고메리 전력 래더 알고리즘에서 사용되는 폴트 검출동작을 구현하기 위한 이진 유한 영역에서의 포인트 덧셈방법 및 덧셈 연산 장치
US7983415B2 (en) * 2006-12-19 2011-07-19 King Fahd University Of Petroleum And Minerals Method for performing iterative scalar multiplication which is protected against address bit attack
US20080273695A1 (en) * 2007-05-02 2008-11-06 Al-Gahtani Theeb A Method for elliptic curve scalar multiplication using parameterized projective coordinates
US8102998B2 (en) * 2007-05-02 2012-01-24 King Fahd University Of Petroleum And Minerals Method for elliptic curve scalar multiplication using parameterized projective coordinates
US8559625B2 (en) * 2007-08-07 2013-10-15 Inside Secure Elliptic curve point transformations
US7991162B2 (en) * 2007-09-14 2011-08-02 University Of Ottawa Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields
US8233615B2 (en) 2008-01-15 2012-07-31 Inside Secure Modular reduction using a special form of the modulus
US8619977B2 (en) * 2008-01-15 2013-12-31 Inside Secure Representation change of a point on an elliptic curve
US8542820B2 (en) * 2009-02-05 2013-09-24 Infineon Technologies Ag Apparatus for calculating a result of a scalar multiplication
US8548160B2 (en) * 2010-01-13 2013-10-01 Microsoft Corporation Determination of pairings on a curve using aggregated inversions
US20150234750A1 (en) * 2014-02-18 2015-08-20 Aspeed Technology Inc. Method and apparatus for addressing a memory containing different bit-length field variables
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
US10181944B2 (en) 2015-06-16 2019-01-15 The Athena Group, Inc. Minimizing information leakage during modular exponentiation and elliptic curve point multiplication
US11251973B1 (en) * 2018-06-11 2022-02-15 Synopsys, Inc. Efficient calculation of ED25519/448 signature verification in an encryption device
CN113014388B (zh) * 2021-03-30 2022-06-28 浙江萤火虫区块链科技有限公司 一种椭圆曲线密码算法中标量乘的加速系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5854759A (en) * 1997-05-05 1998-12-29 Rsa Data Security, Inc. Methods and apparatus for efficient finite field basis conversion
US5987131A (en) * 1997-08-18 1999-11-16 Picturetel Corporation Cryptographic key exchange using pre-computation
DE19837808A1 (de) 1998-08-20 2000-02-24 Orga Kartensysteme Gmbh Verfahren zur Ausführung eines Verschlüsselungsprogramms zur Verschlüsselung von Daten in einem mikroprozessorgestützten, tragbaren Datenträger
CA2252078C (en) * 1998-10-28 2009-02-17 Certicom Corp. Power signature attack resistant cryptographic system

Also Published As

Publication number Publication date
US20010048741A1 (en) 2001-12-06
EP1160661A3 (en) 2002-06-12
EP1160661A2 (en) 2001-12-05
EP1160661B1 (en) 2006-05-17
DE60119620D1 (de) 2006-06-22
US7046801B2 (en) 2006-05-16
DE60119620T2 (de) 2006-12-21
JP2001337599A (ja) 2001-12-07

Similar Documents

Publication Publication Date Title
JP3821631B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
Coron Resistance against differential power analysis for elliptic curve cryptosystems
EP1548687B1 (en) Tamper-resistant elliptical curve encryption using secret key
US7639808B2 (en) Elliptic curve cryptosystem apparatus, elliptic curve cryptosystem method, elliptic curve cryptosystem program and computer readable recording medium storing the elliptic curve cryptosystem program
CN107040362B (zh) 模乘设备和方法
US7864951B2 (en) Scalar multiplication method with inherent countermeasures
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
JP4668931B2 (ja) 電力解析攻撃に対する耐タンパ性を持った暗号化処理装置
WO2006054559A1 (ja) 暗号処理演算装置
US20130279692A1 (en) Protecting modular exponentiation in cryptographic operations
EP3503459B1 (en) Device and method for protecting execution of a cryptographic operation
JP2019515353A (ja) 暗号化べき乗アルゴリズムへのセーフ−エラーフォールトインジェクション攻撃に対する対策
JP2010164904A (ja) 楕円曲線演算処理装置、楕円曲線演算処理プログラム及び方法
EP0952697B1 (en) Elliptic curve encryption method and system
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
JP2003098962A (ja) 楕円曲線スカラー倍計算方法及び装置並びに記録媒体
US8014520B2 (en) Exponentiation ladder for cryptography
Dubeuf et al. ECDSA passive attacks, leakage sources, and common design mistakes
US7983415B2 (en) Method for performing iterative scalar multiplication which is protected against address bit attack
JP2003255831A (ja) 楕円曲線スカラー倍計算方法及び装置
Joye Basics of side-channel analysis
JP2004163687A (ja) 楕円曲線暗号装置、楕円曲線暗号プログラム
Leadbitter et al. Attacking DSA under a repeated bits assumption
Hodjat et al. A scalable and high performance elliptic curve processor with resistance to timing attacks
JP4664514B2 (ja) 素数生成装置及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060501

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060530

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060620

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees