WO2004070681A2 - 楕円曲線スカラー倍計算方法および装置 - Google Patents

楕円曲線スカラー倍計算方法および装置 Download PDF

Info

Publication number
WO2004070681A2
WO2004070681A2 PCT/JP2003/015253 JP0315253W WO2004070681A2 WO 2004070681 A2 WO2004070681 A2 WO 2004070681A2 JP 0315253 W JP0315253 W JP 0315253W WO 2004070681 A2 WO2004070681 A2 WO 2004070681A2
Authority
WO
WIPO (PCT)
Prior art keywords
scalar
elliptic curve
calculation
unit
calculating
Prior art date
Application number
PCT/JP2003/015253
Other languages
English (en)
French (fr)
Other versions
WO2004070681A1 (ja
Inventor
Katsuyuki Okeya
Tsuyoshi Takagi
Original Assignee
Hitachi Ltd
Katsuyuki Okeya
Tsuyoshi Takagi
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, Katsuyuki Okeya, Tsuyoshi Takagi filed Critical Hitachi Ltd
Priority to JP2004567900A priority Critical patent/JP4502817B2/ja
Priority to AU2003284481A priority patent/AU2003284481A1/en
Publication of WO2004070681A1 publication Critical patent/WO2004070681A1/ja
Publication of WO2004070681A2 publication Critical patent/WO2004070681A2/ja

Links

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

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Storage Device Security (AREA)

Description

明細書
楕円曲線ス力ラ一倍計算方法およぴ装置 技術分野
本発明はセキュリティ技術に係り、 特に楕円曲線演算を用いたメッセージ処理 方法に関する。 背景技術
楕円曲線暗号は N. Koblitz, V. S. Millerにより提案された公開鍵暗号の一種 である。 公開鍵暗号には、 公開鍵と呼ばれる一般に公開してよい情報と、 秘密鍵 と呼ばれる秘匿しなければならない秘密情報がある。 与えられたメッセージの喑 号化や署名の検証には公開鍵を用い、 与えられたメッセージの復号化や署名の作 成には秘密鍵を用いる。
楕円曲線暗号における秘密鍵は、 スカラー値が担っている。 また、 楕円曲線暗 号の安全性は楕円曲線上の離散対数問題の求解が困難であることに由来している。 楕円曲線上の離散対数問題とは、 楕円曲線上のある点 Pとそのスカラー倍の点 が与えられた時、 スカラー値 dを求める問題である。
楕円曲線上の点とは、 楕円曲線の定義方程式をみたす数の組をいい、 楕円曲線 上の点全体には、 無限遠点という仮想的な点を単位元とした演算、 すなわち楕円 曲線上の加法 (乃至は加算) が定義される。 そして、 同じ点同士による楕円曲線 上の加法のことを、 特に楕円曲線上の 2倍算という。
楕円曲線上の 2点の加法は次のようにして計算される。 2点を通る直線を引くと その直線は楕円曲線と他の点において交わる。 その交わった点と X軸に関して対 称な点を、 加法を行った結果の点とする。 例えば、 ワイエルシュトラス型楕円曲 線の場合には、 点 ( , yx)と点 (x2, y2)の加算
3, y3) = (x1, y!) + 2, y2) ¾
χ3= ( (Υ2— yi) Z (¾— χι) )— χι— ¾ (式 i)
y3= ( (y2-yi) I (χ2 - χι) ) (χι- ¾) ~Υι (式 2)
を計算することにより得られる。 ここで、 ワイエルシュトラス型楕円曲線の定義 式は
y2=x3+Ax+B (式 3)
で与えられる。 すなわち、 式 3の x,yに各々 Xiyi , 3) を代入した場合に、 式 3の等式が成り立つ。
楕円曲線上の点の 2倍算は次のようにして計算される。 楕円曲線上の点におけ る接線をひくと、 その接線は楕円曲線上の他の点において交わる。 その交わった 点と X座標に関して対称な点を、 2倍算を行った結果の点とする。 例えば、 ヮイエ ルシュトラス型楕円曲線の場合には、 点 (Xい Yl)の2倍算
(x3, y3) =2 (xv y = (x1; yx) + (x yx)
x3= ( (3Xl 2+A) / (2Yl) ) 2-2Xl (式 4)
y3= ( (3¾ 2+A) I (2Yl) ) (x厂 ¾) -Yl (式 5)
を計算することにより得られる。 ' ある点に対し、 特定の回数だけ加法を行うことをスカラー倍といい、 その結果 をスカラー倍点、 その回数のことをスカラー値という。
楕円曲線上の離散対数問題の求解の困難性が理論的に確立されてきている一方 で、 実際の実装においては秘密鍵等の秘密情報に関連する情報 (計算時間や電力 消費量など) が暗号処理において漏洩する場合があり、 その漏洩情報をもとに秘 密情報を復元するといつた、 サイドチヤネノレ攻撃という攻撃法が提案されている。 楕円曲線暗号に対するサイドチャネル攻撃が、 J. Coron, Resistance against Differentia丄 Power Analysis for Elliptic Curve Cryptosystems, Cryptographic Hardware and Embedded Systems : Proceedings of CHES'99, LNCS 1717, Springer-Verlag, (1999) pp. 292-302. (文献 1 ) に記載されている。 楕円曲線暗号においては、 与えられたメッセージの暗号化、 復号化、 署名の作 成またはその検証は、 楕円曲線演算を用いて行う必要がある。 特に楕円曲線上の スカラ一倍の計算は、 秘密情報であるスカラ一値を用いた暗号処理にぉレ、て用い られる。
楕円曲線喑号に対するサイドチャネル攻撃の防御法が、 B. Moeller, Securing Elliptic Curve Point Multiplication against Sioe-Channel Attacks, Information Security (ISC2001) , LNCS 2200, Springer-Verlag, (2001), pp. 324-334. (文献 2 ) に記載されている。 発明の開示 情報通信ネットワークの進展と共に電子情報に対する秘匿や認証の為に暗号技 術は不可欠な要素となってきている。 そこでは暗号技術の安全性とともにメモリ 等の使用リソースの削減が望まれている。 楕円曲線上の離散対数問題が非常に困 難である為に、 素因数分解の困難性を安全性の根拠にしている暗号と比べて、 楕 円曲線暗号は鍵長を比較的短くすることができる。 そのため比較的少ないリソー スで暗号処理を行うことが可能である。 しかしながら、 備えているメモリ量が少 ないスマートカード (ICカードともいう) 等においては、 必ずしも満足できると は限らない。 それゆえに少ないメモリで実行できる暗号処理が必要となる。 上記技術は、 サイドチャネル攻撃を防ぐ方法としては有効であるが、 メモリ使 用量の削減という点は考慮されていない。
本発明は、 サイドチヤネノレ攻撃を防ぐことができる、 かつメモリ使用量の少な レ、、 楕円曲線演算方法を提供する。
本発明は更に、 上記楕円曲線演算方法を用いた、 暗号化処理方法、 復号化処理 方法、 署名作成方法、 署名検証方法、 データ共有方法を提供する。
本発明は、 楕円曲線演算において、 スカラー値と楕円曲線上の点からスカラー 倍点を計算するス力ラ一倍計算方法であつて、 上記ス力ラ一値を数値列にェンコ 一ドするステップと、 上記楕円曲線上の点から前計算テーブルを作成するステッ プと、 上記ェンコ一ドした数値列及び上記前計算テーブルからスカラー倍点を計 算するステップとを有する。
本宪明は、 また、 上記エンコードするステップの出力する数値列を 0と奇数か らなるように構成してもよい。
本発明は、 また、 上記スカラー倍点を計算するステップは、 第 1の演算を予め 定められた回数を実行するステップと、 第 1の演算とは異なる第 2の演算を実行す るステップとを含むように構成してもよい。
本発明は、 また、 楕円曲線演算において、 スカラー値と楕円曲線上の点の奇数 倍点を格納した前計算テーブルからスカラ一倍点を計算するスカラ一倍計算方法 であって、 上記スカラー値を数値列にエンコードするステップと、 上記ェンコ一 ドした数値列と上記前計算テーブルからスカラ一倍点を計算するステップとを有 し、 上記ェンコードするステップの出力する数値列は 0と奇数からなるように構 成してもよい。
以上のように本発明のスカラー倍計算方法によれば、 奇数倍の点のみを前計算 テーブルに格納し、 スカラー値を奇数倍の点のみを用いるようにエンコードする ことにより、 サイドチヤネノレ攻撃を防ぐことができ、 メモリ使用量が少ないスカ ラ一倍計算方法が利用可能になる。 図面の簡単な説明 図 1は、 実施形態におけるシステム構成図である。
図 2は、 各実施形態における情報の受け渡しを示すシーケンス図である。
図 3は、 実施形態におけるスカラー倍計算部の構成図である。
図 4は、 エンコード部の行うェンコ一ド方法を示すフローチャート図である。 図 5は、 前計算部の行う前計算方法を示すフローチヤ一ト図である。
図 6は、 実計算部の行う実計算方法を示すフローチャート図である。
図 7は、 実施形態における署名検証システム構成図である。
発明を実施するための最良の形態 以下、 本発明の実施例を図面により説明する。
図 1はネットワーク 142によつて接続された本発明による楕円曲線演算方法を適 用したコンピュータ A101、 コンピュータ B 121がネットワーク 142により接続さ れたシステム構成を示すものである。
図 1の暗号通信システムにおけるコンピュータ A 101でメッセージの暗号化を行 うには、 Pm+k (aQ)及び kQを計算して出力し、 コンピュータ B 121で暗号文の復号 化を行うには、 秘密鍵 a及び kQより- a (kQ)を計算し、
(Pra+k (aQ) ) -a (kQ) (式 6)
を計算して出力すればよい。 ここで Pmはメッセージ、 kは乱数、 aは秘密鍵を示す 定数、 Qは定点、 aQは公開鍵を示す点である。
ネットワーク 142には、 Pm+k (aQ),kQのみ送信され、 メッセージ Pmを復元するた めには、 kaQ、 すなわち kQの a倍を計算する必要がある。 ところが、 秘密鍵 aはネ ットワーク 142には送信されないため、 秘密鍵 aを保持しているものだけが、 Pmを 復元できることになる。
図 1において、 コンピュータ A101は、 C P U113やコプロセッサ 114などの演算 装置、 R AM103、 R OM106や外部記憶装置 107などの記憶装置、 コンピュータ 外部とのデータ入出力を行う入出力インタフェース 110を装備しており、 外部に はコンピュータ A101をユーザが操作するためのディスプレイ 108、 キーボード 109、 着脱可能な可搬型記憶媒体の読み書き装置などが接続されている。
更にコンピュータ A101は、 RAM103、 R OM106や外部記憶装置 107などの記 憶装置によって、 記憶部 102を実現し、 C P U113やコプロセッサ 114などの演算 装置が、 記憶部 102に格納されたプログラムを実行することにより、 データ処理 部 112、 スカラー倍計算部 115を実現する。
データ処理部 112は、 本実施形態においては、 暗号ィ匕処理部 112として機能し、 入力されたメッセージの暗号化を行う。
スカラー倍計算部 115は、 暗号処理部 112で暗号化を行うのに必要なパラメタを 計算する。 記憶部 102は、 定数 104 (例えば、 楕円曲線の定義式や楕円曲線上の定 点である。 ) 、 秘密情報 105 (例えば、 秘密鍵である。 ) などを記憶している。 コンピュータ B 121は、 コンピュータ A101と同様のハードウエア構成を備える。 更にコンピュータ B 121は、 R AM123、 R OM126や外部記憶装置 107などの記 憶装置によって、 記憶部 122を実現し、 C P U133やコプロセッサ 134などの演算 装置が、 記憶部 122に格納されたプログラムを実行することにより、 データ処理 部 1:32、 スカラー倍計算部 135を実現する。
データ処理部 132は、 本実施形態においては、 複号化処理部 132として機能し、 暗号化されたメッセージである暗号文 141の復号化を行う。
スカラー倍計算部 135は、 複号化処理部 132で復号ィ匕を行うのに必要なパラメタ を計算する。 記憶部 122は、 定数 124 (例えば、 楕円曲線の定義式や楕円曲線上の 定点である。 ) 、 秘密情報 125 (例えば、 秘密鍵である。 ) などを記憶している。 なお、 上記各プログラムは、 あらかじめ、 上記コンピュータ内の記憶部に格納 されていても良いし、 必要なときに、 入出力インタフェース 110と上記コンビュ ータ 721が利用可能な媒体を介して、 他の装置から上記記憶部に導入されてもよ い。 媒体とは、 たとえば、 入出力インタフェース 110に着脱可能な記憶媒体、 ま たは通信媒体 (すなわちネットワークまたはネットワークを伝搬する搬送波) を 指す。
図 2は、 コンピュータ A101、 コンピュータ B 121の各処理部が行う情報の受け 渡しの様子を示したものである。
次に、 図 1のコンピュータ A101が、 入力されたメッセージを暗号化する場合の 動作について説明する。 メッセージはディジタノレ化されたデータであれば良く、 テキスト、 画像、 映像、 音などの種類は問わない。
暗号化処理部 112は、 入出力インタフェース 110を介して、 平文メッセージ (図 2 の入カメッセージ 204)を受け取ると、 入力された平文メッセージのビット長が予 め定めたビット長力否かを判断する。 予め定めたビット長より長い場合には、 予 め定めたビット長となるように平文メッセージを区切る。 以下、 所定のビット長 に区切られている部分メッセージ (単にメッセージともいう)について説明する。 次に、 暗号化処理部 112は、 メッセージのビット列によって表される数値を X座 標 ( )にもつ楕円曲線上の点 Pmの y座標の値 を計算する。 例えば、 ュトラス型楕円曲線は、 A,Bをそれぞれ定数とするとき、 y1 2=x1 3+Axt+B (式 7)
で表されるので、 これより y座標の値を求めることができる。
次に、 暗号化処理部 112は、 乱数 kを生成する。 そして、 記憶部 102に格納され ている定数 104から読み出した(図 2の 205)公開鍵 aQと Qの x座標と、 求めた y座標の 値と乱数 kとをスカラー倍計算部 115へ送る(図 2の 206)。
スカラー倍計算部 115は、 Qの X座標、 y座標の値、 乱数 kによるスカラー倍点 (xdl,ydl) =kQと、 公開鍵 aQの X座標、 y座標の値、 乱数によるスカラー倍点 (Xd2yd2) =k (aQ)とを計算し、 計算されたスカラー倍点を暗号化処理部 II2へ送る (図 2の 207)。
暗号ィ匕処理部 112は、 送られたスカラー倍点を用いて、 暗号化処理を行う。 例 えば、 ワイエルシュトラス型の楕円曲線については、 Pm+k (aQ)と kQを計算する。 すなわち、
( ΥάΓΥι) I (Xd厂 Xi) ) 2_Xi一 Xdi, 8)
Xe2 =xd2 (式9)
を計算し、 暗号化されたメッセージ xel, を得る。
コンピュータ A101は暗号化処理部 112で暗号化された 1つ以上の部分メッセー ジから暗号ィヒされた出カメッセージを組み立てる(図 2の 208)。
コンピュータ A101は、 喑号化された出カメッセージをデータ 141として入出力 インタフェース 110より出力し、 ネットワーク 142を介してコンピュータ B 121へ 転送する。
なお、 図 2の記憶部 102からの情報読み出しは、 スカラー計算部 115へ当該情報 を送る前で有れば、 入カメッセージを受け付ける前であっても良い。
次に、 コンピュータ B 121が、 暗号化されたメッセージ 141を復号化する場合の 動作について、 図 2を参照しつつ説明する。
複号化処理部 132 (図 2のデータ処理部 112)は、 入出力ィンタフェース 110を介し て、 暗号化されたデータ 141 (図 2の入力メッセージ 204) が入力されると、 入力さ れた暗号化されたデータ 141のビット長が予め定めたビット長力否かを判断する。 予め定めたビット長より長い場合には、 予め定めたビット長となるように暗号化 されたデータを区切る。 以下、 所定のビット長に区切られている部分データ (単 にデータともいう) について説明する。
データ 141のビット列によって表される数値を X座標にもっ楕円曲線上の y座標 の値を計算する。
暗号化されたメッセージが xel, xe2のビット列であり、 ワイエルシュトラス型楕 円曲線の場合、 y座標の値 (yel)は
yel 2=xel 3+Axel+B (式 10)
(ただし、 A, Bはそれぞれ定数である)
から得ることができる。
復号ィヒ処理部 132は、 記憶部 122 (図 2の 102)に格納されている秘密情報 125から 読み出した(図 2の 205)秘密鍵 aと、 X座標、 y座標の値 (xel,yel)を、 スカラー倍計 算部 135 (図 2の 115)へ送る(図 2の 206)。
スカラー倍計算部 135は、 X座標、 y座標の値、 秘密情報 al25からスカラー倍点 (xd3,yd3) =a (Xe2,ye2)を計算する。 スカラー倍計算部 135は、 計算されたスカラー倍 点を復号化処理部 132へ送る(図 2の 207)。 復号化処理部 132は、 送られたスカラー 倍点を用いて、 複号化処理を行う。
例えば、 暗号化されたメッセージが、 xel, xe2のビット列であり、 ワイエルシュ トラス型の楕円曲線の場合は、
(Pm+k (aQ) ) -a (kQ) = (xel, yel) - ( , yd3)
を計算することにより達成する。 すなわち、
Xfi= ( (yei+yd3^ I (xei_Xd3) ) 2— xe厂 X<B (式 11)
を計算し、 暗号化される前の部分メッセージ に相当する ¾を得る。
コンピュータ B 121は、 復号化処理部 132で復号化された部分メッセージから平 文メッセージを組み立て(図 2の 208)、 入出力インタフェース 110を介して、 ディ スプレイ 108などから出力する。
次に、 コンピュータ B 121が、 復号化処理を行う場合の、 スカラー倍計算部 135 の処理を詳細に説明する。
図 3は、 各実施例で用いるスカラー倍計算部の機能プロックを示したものであ る。 スカラー倍計算部 II5 (図 1の 135)は、 エンコード部 302、 前計算部 303、 実計 算部 304からなる。 エンコード部 302は、 剰余取得部 321、 剰余変換判定部 322、 剰 余変換部 323、 繰り返し判定部 324、 格納部 325からなる。 前計算部 303は、 加算部 331、 2倍算部 332、 繰り返し判定部333からなる。 実計算部 304は、 ビット値判定 部 341、 加算部 342、 2倍算部 343、 操り返し判定部 344からなる。
スカラー倍計算部 115がスカラー値 d及び楕円曲線上の点 Pから、 楕円曲線にお けるスカラ一倍点 dPを計算する方法を説明する。
スカラ一倍計算部 115が複号化処理部 132からスカラ一値 dと楕円曲線上の点 Pを 受け取ると、 エンコード部 302は、 入力されたスカラー値 dを数値列 djj]にェン コードする。 すなわち、
ά=< [n] 2n+d, [n-1] 2n-'+..Λά, [ j] 2j+... + [0] (式 12)
-2"≤^ ≤2" (式 13)
をみたす djj]に、 スカラー値 dを変換する。 ここで、 wはあらかじめ定めた小さ な正整数で、 ウィンドウ幅と呼ばれる。 計算時間を優先する場合は wを大きな値 とする。 メモリ使用量を小さくする場合は wを小さな値にする。 前計算部 303は、 入力された楕円曲線上の点 Pから前計算テーブルを作成する。 前計算テーブルは P, 3P, (2W- 1) Pにより構成される。 実計算部 304は、 エンコードされたスカラー 値と前計算テーブルを用いてス力ラ一倍点 dPを計算する。
なお、 エンコード部 302の行うエンコード処理は、 スカラー値 dを受け取った後、 および実計算部 304がスカラー倍点を計算する前であればよレ、。 すなわち、 前計 算部 303が前計算テーブルを作成する前に行っても、 後に行なってもよい。
また、 点 Pが固定点である場合、 前計算部 303の行う前計算テーブルの作成処理 は、 ただ一度行えばよい。 すなわち、 一旦前計算テーブルを作成すれば、 それ以 降のスカラー倍計算では前計算テーブルを再作成する必要はない。
次にエンコード部 302、 前計算部 303、 実計算部 304の行なう各処理について詳 細に説明する。
まず、 図 4を用いて、 エンコード部 302がスカラー値 dをエンコードする方法を 説明する。
変数 iに初期値 0を、 変数 d'にスカラー値 dをそれぞれ代入する(401)。
剰余取得部 321は、 スカラー td'の 2Wによる剰余を u[i]に格納する(402)。 剰余取得部 321は、 (d' - u[i])/2wを計算し、 それを新たな d'とする(411)。
変数 iを 1増加させる(412)。
繰り返し判定部 324は、 変数 iと kがー致するかどうかを判定する。
一致すればステップ 421へ行く。 一致しなければステップ 414へ行く(413)。
剰余取得部 321は、 d,の 2Wによる剰余を u[i]に格納する(414)。
剰余変換判定部 322は、 u[i]が偶数力、奇数かを判定する。
u[i]が偶数の場合はステップ 416へ行く。 奇数の場合はステップ 417へ行く (415)。
剰余変換部 323は、 u [i]が奇数となるように、
u[i], u[i_l]を変換する(416)。 これは、
b— sign(u[i— 1]) (式 14)
u[i]^u[i]+b (式 15)
u[i-l]— u[i- l]-b2w (式 16)
の操作を行なうことにより達成される。 ここで、 sign (u)は uの符号を取り出す関 数であり、 uが正の時は 1、 uが負の時は- 1となる。
格納部 325は、
(i-l ], cU(i_l)W+l], …, dj(i- l)+w- 1]にそれぞれ、 u[i-l], 0, ···, 0 を格納し、 ステップ 411へ戻る(417)。
ステップ 413で変数 iと kがー致した場合、 格納部 325は [kw], d kw+l], ..., d kw+w-l]にそれぞれ、 u[k], 0, ···, 0を格納する(421)。
エンコード部 302は、 d n], d n- 1], …, d 0]を実計算部 304へ出力する (422)。
次に、 図 5を用いて、 前計算部 303が楕円曲線上の点から、 前計算テーブルを作 成する方法を説明する。
点 Pを ECDBLにより 2倍し、 その結果を点 2Pに格納する(501)。
変数 jに初期値 1を代入する(502)。
jが 2^より小さいかどうかを判定する。 jが より小さい場合はステップ 50 4へ行く。 2rt以上の場合はステップ 511へ行く(503)。
ステップ 503で jが 2W—1より小さい場合、 点 2Pと点(2j_l)Pを ECADDにより加算し、 その結果を点(2j+l) Pに格鈉する(504)。
変数 jを 1増加させ、 ステツプ 503へ戻る(505)。
ステップ 503で jが 2W—1以上の場合、 P, 3P, (2W- 1)Pを前計算テーブルとし て出力する(511)。
ただし、 ECADD, ECDBLはそれぞれ楕円曲線における加算、 2倍算を表す。 加算 は式 1, 2を用いて、 2倍算は式 4, 5を用いてそれぞれ計算される。 なお、 加算、 2倍 算の計算には式 1, 2、 および式 4, 5を用いる以外にも、 射影座標やヤコビアン座標 における計算公式があり、 Cohen, H. , Miyaji, A., Ono, T. , Efficient Elliptic Curve Exponentiation Using Mixed Coordinates, Advances in Cryptology - ASIACRYPT 1998, LNCS 1514, Springer- Verlag, (1998) , pp. 51- 65. (文献 3 ) に記載されている。
また、 楕円曲線上の点 Q= (x,y)に対して、 楕円曲線加算に関する逆元の点- Qは、 - Q=(x,_y)と表されるため、 点 Qの座標が与えられていれば容易に計算できる。 そ のため、 点 P, 3P, ···, (2W- 1)Pのみを前計算テーブルとして格納する。 その後の 実計算部 304が行う計算で必要となる点- P, - 3P, · · ·, - (2 ) Pは、 それらから導 出すればよく、 前計算テーブルには格納する必要はない。
なお、 前計算部 303の行う前計算テーブルの作成処理は、 点 P, 3P, ···, (2W- 1)Pが計算されればよレ、。 そのため、 モンゴメリ トリックを用いて、 楕円曲線演 算で必要となる逆元演算の計算の共通化を行うことにより、 高速化をはかつても よい。
モンゴメリ トリックによる逆元演算共通化方法が Cohen, H. , A course in computational algebraic number theory, GTM138, Springer -Verlag, (1993) . (文献 4 ) の 481ページに記載されている。
最後に、 図 6を用いて、 実計算部 304がエンコードされたスカラー値と楕円曲線 上の点から、 楕円曲線におけるスカラー倍点を計算する方法を説明する。
変数 cに初期値 nを代入する(601)。
d,v[c]が 0か 0でないかを判定する。
[c]が 0の場合はステップ 603へ行く。 0でなければステップ 611へ行く(602)。 変数 cを 1減少させ、 ステツプ 602へ戻る(603)。 ステップ 602で d c]が 0でない場合、 点 Qに dJc]Pを代入する(611)。
変数 jに初期値 c-1を代入する(612)。
jが 0より小さいかどうかを判定する。 jが 0より小さい場合はステップ 621へ行 く。 0以上の場合はステップ 614へ行く(613)。
点 Qを ECDBLにより 2倍し、 点 Qに再び格納する(614)。
djj]が 0か 0でないかを判定する。
djj]が 0の場合はステップ 617へ行く。 0でなければステップ 616へ行く 15)。 ステップ 615で [j]力 SOでなレ、場合、 点 Qと [ j] Pとを ECADDにより加算する。 ただし、 djj]が負の場合は (- cUj])Pの y座標を反転したものを用いて加算を行 う。 その結果を点 Qに格納し、 ステップ 617へ行く(616)。 なお、 d j]力 でない 場合は、 d j]は奇数である。 そのため、 d j]Pもしくは (- cUj]) Pのいずれかが、 前計算テープノレに必ず存在する。
変数 jを 1減少させ、 ステップ 613へと戻る(617)。
ステップ 613で jが 0より小さい場合、 点 Qを出力する(621)。
エンコード部 302が行う処理により出力される d j]は、 式 12, 式 13をみたす。 この理由は次の通りである。
djj]は jが wで割り切れる時は u[j/w]に等しく、 割り切れない場合は 0に等しい。 そのため、 式 12の右辺は、
u [k] 2^ [k-1] 2(k— ..+u [i] 2iw+
u [i- l] 2(i-1)w+〜+u[0] (式 17)
と等しい。 ただし、 k=n/wである。 一方、 ステップ 416の変換では、
u [i] 2lw+u[i-l] 2(i-1)w (式 18)
の値は不変である。 したがって、 ステップ 416の変換で、 式 17の値は不変である。 他方、 スカラー値 dを 2W-進展開したものが u[i]の初期状態であるので、 式 17は d に等しい。 ゆえに式 12がみたされる。 また、 ステップ 416の変換では、
-2w≤u[i]≤2ff (式 19)
をみたす u[i]は、 変換後も式 19をみたす。 したがって、 式 13がみたされる。
エンコード部 302が行う処理で計算される u [i]は i=0を除き全て奇数となる。 こ の理由は次の通りである。 ステップ 415で u [i]が奇数であれば、 u[i]の値はその まま保持されるので、 u[i]は奇数である。 ステップ 415で u [i]が偶数であれば、 ステップ 416で u [i], 11 [:1-1]は式15,16にょり変換される。 式 14により bの値が計 算されるため、 bは 1もしくは- 1である。 そのため、 式 15の変換で、 u [i]は奇数に 変換される。 また、 式 16の変換では、 u [i_l]の偶奇性は変化しない。 ステップ 415に初めて来る時の iは 1である。 そのため、 u [0]は奇数とは限らない。 結果と して、 i=0を除き、 u [i]は全て奇数である。
なお、 u [0]も奇数とするためには、 スカラー値 dが奇数であればよい。 そのた めには、 入力されたすカラー値 dが偶数の時は、 d+1を改めてスカラー値 d'として エンコードする。 すなわち、 dを奇数に変換する。 そして、 スカラー倍点 d' Pを計 算する。
d' P= (d+l)P=dP+P (式 20)
であるので、 d' Pから点 Pを引き、 その値をスカラー倍点 dPとして出力すればよい。 実計算部 304が出力する点 Qはスカラー倍点 dPに等しい。 この理由は次の通りで ある。
ステップ 613において点 Qが
(dw [c] 2c-(j+1)+dw[c-l] 2(°-1)-(j+1)+...+ dw [j+l] 2(j+1)-(j+1)) P (式 21) と表されるとする。 このとき、 次にステップ 613に来る時も点 Qは式 21をみたすこ とを示す。
点 Qはステツプ 614で 2倍され、 [j]が 0でなければステップ 616で [j ] Pが加え られる。 そのためステップ 616の直後では、 点 Qの ί直は
( [c] 2 + [c-l] 2 (c— ..HCj+1] 2(j+1)j+ [j] 2jj) P (式 22) となる。 したがって djj] =0の時も含めて、 ステップ 617の直前で、 点 Qは式 22を みたす。 ステップ 617で jが 1減少するので、 式 22の jに j+1を代入すると式 21にな る。 すなわち、 次にステップ 613に来る時も点 Qは式 21をみたす。
j>cに対する d j]の値は 0であるので、 ステップ 621で出力される点 Qの値は ( [η] 2α+ά, [n-1] 2n"I+...+dw [0] ) Ρ (式 23)
に等しい。 実計算部 304に入力されるスカラー値は、 エンコード部 302によりェン コードされた d j]であるので、 その djj]は式 12をみたす。 したがって、 Q=dPで あ 。 上記ス力ラ一倍におけるメモリ使用量は、 前計算部 303の前計算テーブルの大 きさにより定まる。 上記スカラー倍計算方法では、 前計算テーブルは P,3P, …,(2W- 1)Pのみ、 すなわち奇数倍の点のみを格納すればよいので、 その点の数は 2rt個である。 文献 2の方法では、 ウィンドウ幅 wに対して、 2W個の点を格納する 必要がある。 そのため、 上記スカラー倍計算方法は、 文献 2の方法と比べて格納 する点の数が少なく、 メモリ使用量が小さくてすむ。
さらに、 いかなる方法をもってしても、 前計算テーブルに格納する点の数をこ れ以上削減することができないという意味で、 メモリ使用量は最小である。 この 理由は次の通りである。
m個の点からなる前計算テーブルを用いた場合、 k+1個の u[i]を用いて、 ェンコ ードされたスカラー値として表すことのできる数は (2m)k+1個である。 他方、 nビ ット以下のスカラー値は全部で 2i§あり、 各々のスカラー ί直はそれぞれ異なる数 値列にエンコードされなければならない。 そのため、 (2m)w≥2nが成り立つ。 k+l=n/wであるので、 m となる。 実際、 上記スカラー倍計算方法における前 計算テーブルの点の個数は 2rtであり、 最小である。
また、 上記スカラー倍方法は、 サイドチャネル攻撃に対する防御法に関しても 有効である。 この理由は次の通りである。
エンコード部 302によりスカラ一値 dは数値列 [j]にエンコードされる。 この 数値列 dj j]は固定されたパターン
|0···0χ|0···0χ|···|0···0χ| (式 24)
をもつ。 ここで各 Xは各々非 0の値であり、 それぞれ djiw]に対応する。 そのため、 実計算部 304がスカラー倍点を計算する際に、 ステップ 613- 617の繰り返し処理に おいて、 |0···0χ|のブロックに対応する楕円曲線演算は、 lD〜DA|、 すなわち w回 の Dの後に Aとなる。 ただし、 Dは ECDBLを、 Aは ECADDをそれぞれ表す。 したがって、 全てのスカラー値に対して、 実行する楕円曲線演算は、
|D---DA|D---DA|---|D---DA| (式 25)
となり、 必ず楕円加算が実行されるので、 スカラー値との依存関係がない。
なお、 文献 1のランダム化射影座標を併用してスカラー倍計算を行ってもよい。 そうすると、 同じ点 Pを入力しても実行毎に異なる値に変換してス力ラ一倍計算 を行うので、 攻撃者が中間値の値を予測できなくなる。
また、 前計算テーブルに格納されている点が読み出されるたびに、 再びランダ ム化して、 前計算テーブルに書き込んでもよい。 そうすると、 同じデータの再使 用がなくなるため、 より一層、 サイドチャネル攻撃への 1Μ·生が増す。
以上の通り、 上記計算方法は、 サイドチャネル攻撃に有用な情報を与えないの で、 サイドチャネル攻撃に対して耐性がある。 また、 奇数倍の点のみを前計算テ 一ブルとして格納するため、 メモリ使用量が小さくてすむという特徴がある。 なお、 上記計算方法では楕円曲線としてワイエルシュトラス型楕円曲線を用い たが、 標数 2の有限体上で定義された楕円曲線や、 0EF (0Ptimal Extension Field)上で定義された楕円曲線、 もしくはモンゴメリ型楕円曲線を用いてもよい。 0EFにつレヽては、 D. V. Bailey, C. Paar, Optimal Extension Fields for Fast Arithmetic in Public-Key Algorithms, Advances in Crypto logy Crypto ' 98, LNCS 1462, (1998) , 472-485. (文献 5 ) に記載されている。
以上、 コンピュータ B 121が、 暗号化されたデータ 141を復号化する場合のスカ ラー倍計算部 135の動作を説明したが、 コンピュータ A101が入カメッセージを暗 号化する場合も同様である。
その場合には、 コンピュータ A101のスカラー倍計算部 115は、 既に説明した楕 円曲線上の点 Q、 乱数 kによるスカラー倍点 kQと、 公開鍵 aQと乱数 kによるスカラ 一倍点 k (aQ)を出力する。 このとき、 上記計算方法で説明したスカラー値 dを乱数 楕円曲線上の点 Pを楕円曲線上の点 Q、 公開鍵 aQとして同様の処理を行うこと により、 それぞれのスカラ一倍点を求めることができる。
次に本発明を署名検証システムに適用する実施例を、 図 7と図 2を用いて説明す る。
図 7の署名検証システムは、 スマートカード 701と署名検証処理を行うコンビュ ータ 721とから成る。
スマートカード 701は、 機能としてはコンピュータ A101と類似の構成を備える I C P U113やコプロセッサ 114などの演算装置とが記憶部 102に格納されてい るプログラムを実行することにより、 データ処理部 112ではなく、 署名生成処理 部 712を実現する。 ただし、 外部記憶装置、 ディスプレイ、 キーボードを備えな い。
コンピュータ 721は、 コンピュータ A101と同様の構成を備えるが、 C P U113 がプログラムを実行することによりデータ処理部 112ではなく、 署名検証処理部 732を実現する。
スカラ一倍計算部 715と 735は、 図 1に示すス力ラ一倍計算部 II5または I35と同 様の機能を備える。
なお、 本実施例において、 コンピュータ 721内の各プログラムは、 あらかじめ、 上記コンピュータ内の記憶部に格納されていても良いし、 必要なときに、 コンビ ユータ 721が利用可能な媒体を介して他の装置から上記記憶部に導入されてもよ レ、。
さらに、 スマートカード内の各プログラムは、 あらかじめ、 上記スマートカー ド内の記憶部に格納されていても良いし、 必要なときに、 入出力インタフェース を介して接続するコンピュータ、 または当該コンピュータが利用可能な媒体を介 して上記記憶部に導入されてもよい。
媒体とは、 たとえば当該コンピュータに着脱可能な記憶媒体、 または通信媒体 (すなわちネットワークまたはネットワークを伝搬する搬送波) を指す。
図 7の署名検証システムにおける署名作成と署名検証動作を、 図 2を参照して説 明する。
コンピュータ 721は、 ランダムに選んだ数値をチヤレンジコード 743として、 ィ ンタフェース 742を介してスマートカード 701に転送する。
署名生成処理部 712 (図 2の 112)は、 チャレンジコード 743を受け付け、 チヤレン ジコード 743のハッシュ値をとり、 所定のビット長の数値 fに変換する。
署名生成処理部 712は、 乱数 uを生成し、 記憶部 702 (図 2の 102)に格納されてい る定数 704から読み出した(図 2の 205)楕円曲線上の定点 Qとともにスカラー倍計算 部 715 (図 2の 115)へ送る(図 2の 206)。
スカラー倍計算部 5は、 定点 Q、 乱数 uによるスカラー倍点 (xu,yu)を計算し、 計算されたスカラー倍点を署名生成処理部 712へ送る(図 2の 207)。
署名生成処理部 712は、 送られたスカラー倍点を用いて署名の生成を行う。 例 えば、 ECDSA署名であれば、 s = xu mod q (式 26)
t = u一1 (f+ds) mod q (式 27)
を計算することによりチヤレンジコード 743に対応する署名(s, t)を得る(図 2の 208)。
ここで、 qは定点 Qの位数、 すなわち定点 Qの q倍点 qQが無限遠点になり、 qより 小さな数値 mに対する定点 Qの m倍点 raQは無限遠点にはならない、 というような数 値のことである。
ECDSA署名については、 ANSI X9. 62 Public Key Cryptography for the Financial Services Industry, The Elliptic Curve Digital Signature Algorithm (ECDSA) , (1999) (文献 6 ) に記載されている。
スマートカード 701は、 署名生成処理部 712で作成した署名 741を入出力ィンタ フェース 710より出力し、 インタフェース 742を介してコンピュータ 721へ転送す る。
コンピュータ 721の署名検証処理部 732 (図 2の 112)は、 署名 741が入力される(図 2の 204)と、 署名 741の数値 s, tが適切な範囲内すなわち l≤s, tく qであるかを調べ る。
数値 s, tが上記範囲内になければチヤレンジコード 743に対する署名の検証結 果として 「無効」 を出力し、 スマートカード 701を拒絶する。 数 ;S, tが上記範 囲内にあれば、 署名検証処理部 732は、
h = t"1 mod q (式 28)
hx = fh mod q (式 29)
h2 = sh mod q (式 30)
を計算する。 そして、 記憶部 722 (図 2の 102)に格納されている定数 724から読み出 した(図 2の 20¾公開鍵 aQ及び定点 Qと計算した 1¾, h2をスカラ一倍計算部 735 (図 2 の 115)へ送る(図 2の 206)。
スカラー倍計算部 735は、 定点 Qと によるスカラー倍点 1¾Qと、 公開鍵 aQと h2に よるスカラ一倍点 h2aQとを計算し、 計算されたスカラ一倍点を署名検証処理部 732へ送る(図 2の 207)。
署名検証処理部 732は、 送られたスカラー倍点を用いて、 署名検証処理を行う。 例えば、 ECDSAの署名検証であれば、 点 R
R^h^+h^Q (式 31)
を計算し、 その X座標を ¾としたとき、
s = „ mod q 32)
を計算し、 s' =sであればチャレンジコード 743に対する署名の検証結果として 「有効」 を出力し、 スマートカード 701を認証し、 受け入れる(図 2の 208)。
s,=sでなければ 「無効」 を出力し、 スマートカードを拒絶する(図 2の 208)。 上記実施形態のスカラー倍計算部 715、 735は、 図 1のスカラー倍計算部 115また は 135と同様の機能を備えるので、 サイドチャネル攻撃を防ぎ且つメモリ使用量 の少ないスカラー倍計算を実行できる。
そのためスマートカード 701は署名作成処理を行う際に、 コンピュータ 721は署 名検証処理を行う際に、 サイドチャネル攻撃を防ぎ、 その上少ないメモリ使用量 で実行できる。
次に本発明を鍵交換システムに適用する例を説明する。 本実施形態においては、 図 1のシステム構成が応用できる。
図 1のデータ処理部 112、 132は、 本実施形態においては、 それぞれ鍵交換処理 部 112、 132として機能する。
鍵交換システムのコンピュータ A 101が、 入力されたデータ 143から共有情報の 導出を行う場合の動作について図 1、 図 2を参照して説明する。
コンピュータ B 121のデータ処理部 132 (図 2の 112)は、 記憶部 122 (図 2の 102)の 定数 125から秘密鍵 bを読み出しコンピュータ B 121の公開鍵 bQを計算する。 そし て、 ネットワーク 142を介して、 公開鏈 bQをデータ 143としてコンピュータ A101 に転送する。
コンピュータ A101の鍵交換処理部 112 (図 2の 112)はコンピュータ B 121の公開 鍵 bQの入力を受け付ける(図 2の 204)と、 鍵交換処理部 112は、 記憶部 102から読み 出した(図 2の 205)秘密情報 105であるコンピュータ A101の秘密鍵 aと、 コンビュ ータ B 121の公開鍵 bQとをスカラー倍計算部 115へ送る(図 2の 206)。
スカラー倍計算部 II5は、 秘密鍵 aと、 公開鍵 bQによるスカラー倍点 abQを計算 し、 計算されたスカラー倍点を鍵交換処理部 112へ送る(図 2の 207)。 键交換処理部 112は、 送られたスカラ一倍点を用いて共有情報の導出を行い、 記憶部 102に秘密情報 105として格納する。 例えば、 スカラー倍点 abQの X座標を、 共有情報とする。
次に、 コンピュータ 121が、 入力されたデータ 141から共有情報の導出を行う場 合の動作について説明する。
コンピュータ A 101のデータ処理部 112は、 記憶部 102の定数 105から秘密鍵 aを 読み出しコンピュータ A 101の公開鍵 aQを計算する。 そして、 ネットワーク I42を 介して、 公開鍵 aQをデータ 141としてコンピュータ B 121に転送する。
コンピュータ B 121の鍵交換処理部 132 (図 2の 112)はコンピュータ A101の公開 鍵 aQの入力を受け付ける(図 2の 204)と、 鍵交換処理部 132は、 記憶部 122 (図 2の 102)の定数 125から読み出した(図 2の 205) 秘密情報 125であるコンピュータ B 1 の秘密鍵 bと、 コンピュータ A 101の公開鍵 aQとをスカラー倍計算部 135 (図 2の 115)へ送る(図 2の 206)。
スカラー倍計算部 135は、 秘密鍵 bと、 公開鍵 aQによるスカラー倍点 baQを計算 し、 計算されたスカラー倍点を鍵交換処理部 132へ送る(図 2の 207)。
鍵交換処理部 132は、 送られたスカラー倍点を用いて共有情報の導出を行い、 記憶部 122に秘密情報 125として格納する。 例えば、 スカラー倍点 baQの X座標を、 共有情報とする。
ここで、 数 abと数 baは数値として同じなので、 点 abQと点 baQは同じ点となり、 同じ情報が導出されたことになる。
ネットワーク 142には、 点 aQと点 bQが送信されるが、 点 abQ (もしくは点 baQ)を 計算するには秘密鍵 aもしくは秘密鍵 bを用いなければならない。 すなわち、 秘密 鍵 aもしくは秘密鍵 bを知らなければ、 共有情報を得ることができない。 このよう にして得られた共有情報は、 共通鍵暗号の秘密鍵として利用できる。
本実施形態においても、 スカラー倍計算部 115、 135は、 上述の特徴を備えるの で、 サイドチャネル攻撃を防ぎ、 そのうえ少ないメモリ使用量で鍵交換処理が可 能になる。
また、 上記各実施形態における暗号化処理部、 復号化処理部、 署名作成部、 署 名検証部、 鍵交換処理部は、 専用のハードウェアを用いて行ってもよい。 また、 スカラー倍計算部をコプロセッサまたはそれ以外の専用ハードウェアで実現して あ良い。
また、 データ処理部は、 上記暗号化処理、 復号化処理、 署名作成処理、 署名検 証処理、 鍵交換処理のうち、 任意の一つ以上の処理を行えるように構成してもよ い。
本発明によれば、 サイドチャネル攻撃に対して安全で、 かつメモリ使用量の少 ない、 楕円曲線演算を用いたメッセージ処理が可能になる。

Claims

請求の範囲
1 . 楕円曲線暗号における楕円曲線において、 スカラー値及び楕円曲線上の点か らスカラ一倍点を計算するスカラ一倍計算方法であつて、
前記スカラ一値を数値列にエンコードするステップと、
前記楕円曲線上の点から前計算テーブルを作成するステツプと、
前記ェンコードした数値列及び前記前計算テーブルからスカラ一倍点を計算す るステップと、 を有するスカラー倍計算方法。
2. 請求項 1記載のスカラー倍計算方法であって、
前記ェンコードするステップが出力する数値列は 0と奇数からなるスカラー倍 計算方法。
3 . 請求項 2記載のスカラー倍計算方法であって、
前記ス力ラ一倍点を計算するステツプは、
第 1の演算を予め定められた回数を実行するステップと、
第 1の演算とは異なる第 2の演算を実行するステツプとを含むス力ラ一倍計算 方法。
4. 楕円曲線暗号における楕円曲線において、 スカラー値及び楕円曲線上の点の 奇数倍点を格納した前計算テーブルからスカラ一倍点を計算するスカラ一倍計算 方法であって、
前記ス力ラ一値を数値列にエンコードするステップと、
前記ェンコードした数値列及び前記前計算テーブルからスカラ一倍点を計算す るステップとを有し、
前記ェンコードするステップが出力する数値列は 0と奇数からなるスカラー倍 計算方法。
5 . 請求項 3記載のスカラ一倍計算方法であって、
楕円曲線としてワイエルシュトラス型楕円曲線を用いるスカラー倍計算方法。
6 . 請求項 3記載のスカラ一倍計算方法であって、
楕円曲線としてモンゴメリ型楕円曲線を用いるスカラー倍計算方法。
7. 請求項 3記載のスカラー倍計算方法であって、
楕円曲線として標数 2の有限体上で定義された楕円曲線を用いるスカラ一倍計 算方法。
8 . 請求項 3記載のスカラ一倍計算方法であつて、
楕円曲線として OEF上で定義された楕円曲線を用いるスカラ一倍計算方法。
9 . 第 1のデータから第 2のデータを生成するデータ生成方法であって、
請求項 3に記載のスカラー倍計算方法を用いてスカラー倍を計算するステップ を有するデータ生成方法。
1 0. データから署名データを生成する署名作成方法であって、
請求項 3に記載のスカラ一倍計算方法を用いてスカラ一倍を計算するステツプ を有する署名作成方法。
1 1 . 暗号化されたデータから復号化されたデータを生成する復号化方法であつ て、
請求項 3に記載のスカラ一倍計算方法を用いてスカラ一倍を計算するステツプ を有する複号化方法。
1 2. 楕円曲線暗号における楕円曲線において、 スカラー値及び楕円曲線上の点 からスカラ一倍点を計算するス力ラ一倍計算装置であつて、
前記ス力ラ一値を数値列にエンコードするエンコード部と、
前記楕円曲線上の点から前計算テーブルを作成する前計算部と、
前記ェンコードした数値列及び前記前計算テーブルからスカラ一倍点を計算す る実計算部とを有するスカラ一倍計算装置。
1 3 . 第 1のデータから第 2のデータを生成するデータ変換部と、 前記データ変 換部より依頼されてスカラ一倍を計算するス力ラ一倍計算部とを有するデータ生 成装置であって、
前記スカラー倍計算部は、 請求項 3に記載のスカラー倍計算方法を用いてスカ ラ一倍を計算するデータ生成装置。
1 4. データから署名データを生成する署名部と、 前記署名部より依頼されてス 力ラ一倍を計算するス力ラ一倍計算部とを有する署名作成装置であって、 前記スカラー倍計算部は、 請求項 3に記載のスカラー倍計算方法を用いてスカ ラー倍を計算する署名作成装置。
1 5 . 暗号化されたデータから復号ィヒされたデータを生成する復号部と、 前記復 号部より依頼されてスカラ一倍を計算するス力ラ一倍計算部とを有する複号化装 置であって、
前記スカラー倍計算部は、 請求項 3に記載のスカラー倍計算方法を用いてスカ ラ一倍を計算する複号化装置。
1 6 . 請求項 3に記載のスカラー倍計算方法を計算機に実行させるプログラム。
1 7 . 請求項 1 0記載の署名作成方法を計算機に実行させるプログラム。
1 8 . 請求項 1 1記載の復号化方法を計算機に実行させる:
PCT/JP2003/015253 2003-02-06 2003-11-28 楕円曲線スカラー倍計算方法および装置 WO2004070681A2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004567900A JP4502817B2 (ja) 2003-02-06 2003-11-28 楕円曲線スカラー倍計算方法および装置
AU2003284481A AU2003284481A1 (en) 2003-02-06 2003-11-28 Elliptic curve scalar multiple calculation method and device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003028996 2003-02-06
JP2003-28996 2003-02-06

Publications (2)

Publication Number Publication Date
WO2004070681A1 WO2004070681A1 (ja) 2004-08-19
WO2004070681A2 true WO2004070681A2 (ja) 2004-08-19

Family

ID=32844222

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/015253 WO2004070681A2 (ja) 2003-02-06 2003-11-28 楕円曲線スカラー倍計算方法および装置

Country Status (3)

Country Link
JP (1) JP4502817B2 (ja)
AU (1) AU2003284481A1 (ja)
WO (1) WO2004070681A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005020735A (ja) * 2003-06-26 2005-01-20 Sharp Corp データ処理装置におけるサイドチャネル攻撃防止
JP2006243690A (ja) * 2005-02-04 2006-09-14 Renesas Technology Corp 楕円曲線暗号におけるスカラー倍計算装置、署名生成装置、復号化装置、データ生成装置、及び、それらのプログラム
US7940936B2 (en) 2006-12-15 2011-05-10 Samsung Electronics Co., Ltd. Public key generation method in elliptic curve cryptography and public key generation system executing the method
JP2018514809A (ja) * 2015-05-06 2018-06-07 クアルコム,インコーポレイテッド 固定実行フロー乗数再コーディングおよびスカラ乗算のための方法およびデバイス

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3797808B2 (ja) * 1998-10-27 2006-07-19 富士通株式会社 スカラー倍算方法およびその装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005020735A (ja) * 2003-06-26 2005-01-20 Sharp Corp データ処理装置におけるサイドチャネル攻撃防止
JP2006243690A (ja) * 2005-02-04 2006-09-14 Renesas Technology Corp 楕円曲線暗号におけるスカラー倍計算装置、署名生成装置、復号化装置、データ生成装置、及び、それらのプログラム
US7940936B2 (en) 2006-12-15 2011-05-10 Samsung Electronics Co., Ltd. Public key generation method in elliptic curve cryptography and public key generation system executing the method
JP2018514809A (ja) * 2015-05-06 2018-06-07 クアルコム,インコーポレイテッド 固定実行フロー乗数再コーディングおよびスカラ乗算のための方法およびデバイス

Also Published As

Publication number Publication date
JP4502817B2 (ja) 2010-07-14
JPWO2004070681A1 (ja) 2006-05-25
AU2003284481A1 (en) 2004-08-30

Similar Documents

Publication Publication Date Title
US7308096B2 (en) Elliptic scalar multiplication system
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
US7961873B2 (en) Password protocols using XZ-elliptic curve cryptography
US6049610A (en) Method and apparatus for digital signature authentication
EP0997016B1 (en) Method and apparatus for fast elliptical encryption with direct embedding
US7864951B2 (en) Scalar multiplication method with inherent countermeasures
US6876745B1 (en) Method and apparatus for elliptic curve cryptography and recording medium therefore
US8184803B2 (en) Hash functions using elliptic curve cryptography
US7379546B2 (en) Method for XZ-elliptic curve cryptography
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
US7483533B2 (en) Elliptic polynomial cryptography with multi x-coordinates embedding
EP0952697B1 (en) Elliptic curve encryption method and system
EP1296224B1 (en) Elliptic scalar multiplication system
KR100699836B1 (ko) 스칼라 곱에서 dfa 대책을 위한 장치 및 방법
US6772184B2 (en) Method for efficient modular division over prime integer fields
JP2007041461A (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
JP4423900B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
KR100817048B1 (ko) 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치
JP2003255831A (ja) 楕円曲線スカラー倍計算方法及び装置
Nedjah et al. Efficient parallel modular exponentiation algorithm
JP4502817B2 (ja) 楕円曲線スカラー倍計算方法および装置
US20070121935A1 (en) Method for countermeasuring in an electronic component
JP2005316038A (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびプログラム
JP2007212768A (ja) 楕円曲線暗号における事前計算テーブル作成装置
Multiplications Efficient Algorithms for Multi-Scalar Multiplications

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004567900

Country of ref document: JP

122 Ep: pct application non-entry in european phase