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

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

Info

Publication number
JP2001337599A
JP2001337599A JP2000160001A JP2000160001A JP2001337599A JP 2001337599 A JP2001337599 A JP 2001337599A JP 2000160001 A JP2000160001 A JP 2000160001A JP 2000160001 A JP2000160001 A JP 2000160001A JP 2001337599 A JP2001337599 A JP 2001337599A
Authority
JP
Japan
Prior art keywords
scalar
elliptic curve
point
value
scalar 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.)
Granted
Application number
JP2000160001A
Other languages
English (en)
Other versions
JP3821631B2 (ja
Inventor
Katsuyuki Okeya
勝幸 桶屋
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

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)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】楕円曲線暗号における秘密情報を用いた暗号処
理において、DPA等のパワーアナリシスという攻撃法
により、暗号処理経過から秘密情報が復元される可能性
があった。本発明の目的は、パワーアナリシスにより暗
号処理経過が漏洩しても、秘密情報自体は漏洩せず、し
かも高速に暗号処理を実行できる暗号処理方法を提供す
ることにある。 【解決手段】暗号処理経過と秘密情報との依存関係を断
ち切った暗号処理方法を与える。特に、秘密情報である
スカラー値に対して、スカラー倍計算経過がそれらの値
に依存しないスカラー倍計算方法を与える。すなわち、
楕円曲線暗号においてスカラー値及び楕円曲線上の点か
らスカラー倍点を計算する際、スカラー値のビットの値
を判定し、その判定を行なったビットの値に依存せずに
一定の回数及び一定の順序で楕円曲線上の演算を実行す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータネッ
トワークにおけるセキュリティ技術に関し、特に楕円曲
線暗号における暗号処理方法及び装置並びに記憶媒体に
関する。
【0002】
【従来の技術】楕円曲線暗号は、N.Koblitz, V.S.Mille
rにより提案された公開鍵暗号の一種である。公開鍵暗
号には、公開鍵と呼ばれる一般に公開してよい情報と、
秘密鍵と呼ばれる秘匿しなければならない秘密情報があ
る。与えられたメッセージの暗号化や署名の検証には公
開鍵を用い、与えられたメッセージの復号化や署名の作
成には秘密鍵を用いる。楕円曲線暗号における秘密鍵
は、スカラー値が担っている。また、楕円曲線暗号の安
全性は、楕円曲線上の離散対数問題の求解が困難である
ことに由来している。ここで楕円曲線上の離散対数問題
とは、楕円曲線上のある点Pとそのスカラー倍の点dP
が与えられたとき、スカラー値dを求める問題である。
ここにおいて、楕円曲線上の点とは、楕円曲線の定義方
程式をみたす数の組をいう。楕円曲線上の点全体には、
無限遠点という仮想的な点を単位元とした演算、すなわ
ち楕円曲線上の加法が定義されている。そして、同じ点
同士の楕円曲線上の加法のことを、特に楕円曲線上の2
倍算という。ある点に対し、特定の回数だけ加法を行な
うことをスカラー倍といい、その結果をスカラー倍点、
その回数のことをスカラー値という。
【0003】楕円曲線上の離散対数問題の求解の困難性
が理論的に確立されてきている一方で、実際の実装にお
いては秘密鍵等の秘密情報に関連する情報が暗号処理に
おいて漏洩する場合があり、その漏洩情報をもとに秘密
情報を復元するといった、所謂パワーアナリシスという
攻撃法が提案されている。
【0004】DES(Data Encryption Standard)等の秘密
情報を用いた暗号処理において、電圧変化を測定するこ
とで暗号処理経過を入手し、それをもとにして秘密情報
を推察するという攻撃法が、P.Kocher, J.Jaffe, B.Jun
Differential Power Analysis, Advances in Cryptolo
gy: Proceedings of CRYPTO '99, LNCS 1666, Springer
-Verlag, (1999) pp.388-397. に記載されている。この
攻撃法は、DPA(Differential Power Analysis)と呼ばれ
ている。
【0005】楕円曲線暗号に対して上述の攻撃法を適用
したものが、J.Coron, Resistanceagainst Differentia
l Power Analysis for Elliptic Curve Cryptosystems,
Cryptographic Hardware and Embedded Systems: Proc
eedings of CHES'99, LNCS1717, Springer-Verlag, (19
99) pp.292-302. に記載されている。楕円曲線暗号にお
いて、与えられたメッセージの暗号化や復号化、乃至は
署名の作成及びその検証は、楕円曲線演算を用いて行な
う必要がある。特に、楕円曲線上のスカラー倍の計算
は、秘密情報であるスカラー値を用いた暗号処理におい
て用いられる。
【0006】また、モンゴメリ型楕円曲線BY=X
+AX+X(A,B∈Fp)を用いると標準型楕円曲
線と呼ばれる通常用いる楕円曲線よりも高速に演算を実
行できることが、P.L.Montgomery, Speeding the Polla
rd and Elliptic Curve Methods of Factorization, Ma
th. 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.Dah
ab, Fast Multiplication onElliptic Curves over GF
(2m) without Precomputation, Cryptographic Hardwar
e and Embedded Systems: Proceedings of CHES'99, LN
CS 1717, Springer-Verlag, (1999) pp.316-327. に記
載されている。このスカラー倍計算方法における加算及
び2倍算の計算時間が短縮されることにより、標数2の
有限体上で定義された楕円曲線における通常のスカラー
倍計算方法と比べて、スカラー倍計算が高速に実行でき
る。
【0008】楕円曲線暗号に対するDPA攻撃の対処法の
一つとして、ランダム化射影座標を用いる方法が、J.Co
ron, Resistance against Differential Power Analysi
s for Elliptic Curve Cryptosystems, Cryptographic
Hardware and Embedded Systems: Proceedings of CHE
S'99, LNCS 1717, Springer-Verlag, (1999) pp.292-30
2. に記載されている。これはスカラー倍計算におい
て、特定の値が出現するか否かを観測し、そこからスカ
ラー値を割り出す攻撃法に対して、ランダムな値を乗ず
ることにより、特定の値が出現することを予測できなく
する対処法である。
【0009】
【発明が解決しようとする課題】上記従来技術の楕円曲
線暗号は、DPA等のパワーアナリシスによる攻撃につい
ては考慮されていなかった。それゆえに、パワーアナリ
シスによる攻撃を和らげるためには、秘密情報を用いた
暗号処理において、必要な計算以外に余分な計算を行な
うなどして、暗号処理経過と秘密情報との依存関係を弱
くしなければならなかった。そのため、暗号処理に必要
な時間が増大し、ICカード等の計算速度の遅いコンピュ
ータや、膨大な数の暗号処理をこなすサーバ等において
は、暗号処理効率の低下が目立つ状態にあった。そのう
え、暗号処理経過と秘密情報との依存関係を完全に断ち
切ることはできなかった。また、暗号処理効率を優先し
ようとすれば、パワーアナリシスによる攻撃を受け易
く、秘密情報が漏洩する可能性があるという状態にあっ
た。
【0010】本発明の目的は、パワーアナリシス等によ
り暗号処理経過が漏洩しても、秘密情報自体は漏洩せ
ず、しかも高速に暗号処理を実行できる暗号処理方法及
び装置並びに記憶媒体を提供すること、特に、秘密情報
であるスカラー値から楕円曲線上のスカラー倍点を計算
する計算経過からスカラー値の情報を引き出すことがで
きないスカラー倍計算方法を提供することにある。
【0011】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、楕円曲線暗号においてスカラー値及び楕
円曲線上の点からスカラー倍点を計算するスカラー倍計
算方法であって、前記スカラー値のビットの値を判定す
るステップと、前記判定を行なったビットの値に依存せ
ずに一定の回数及び一定の順序で楕円曲線上の演算を実
行するステップとを含むことを特徴とする。
【0012】また本発明は、楕円曲線暗号においてスカ
ラー値及び楕円曲線上の点からスカラー倍点を計算する
スカラー倍計算方法であって、前記スカラー値のビット
の値を判定するステップと、楕円曲線上の加算及び楕円
曲線上の2倍算を、楕円曲線上の加算を実行した後、楕
円曲線上の2倍算を実行するという順序で行なうステッ
プとを含むことを特徴とする。
【0013】また本発明は、楕円曲線暗号においてスカ
ラー値及び楕円曲線上の点からスカラー倍点を計算する
スカラー倍計算方法であって、前記スカラー値のビット
の値を判定するステップと、楕円曲線上の加算及び楕円
曲線上の2倍算を、楕円曲線上の2倍算を実行した後、
楕円曲線上の加算を実行するという順序で行なうステッ
プとを含むことを特徴とする。
【0014】また本発明は、楕円曲線暗号においてスカ
ラー値及び楕円曲線上の点からスカラー倍点を計算する
スカラー倍計算方法であって、前記スカラー値のビット
の値を判定するステップと、楕円曲線上の加算及び楕円
曲線上の2倍算を同時に実行するステップとを含むこと
を特徴とする。
【0015】また本発明は、楕円曲線暗号においてスカ
ラー値及び楕円曲線上の点からスカラー倍点を計算する
スカラー倍計算方法であって、楕円曲線上の加算を実行
するステップと、前記スカラー値のビットの値を判定す
るステップと、楕円曲線上の2倍算を実行するステップ
とを含むことを特徴とする。
【0016】また本発明は、楕円曲線暗号においてスカ
ラー値及び楕円曲線上の点からスカラー倍点を計算する
スカラー倍計算方法であって、楕円曲線上の加算及び楕
円曲線上の2倍算の計算順序をランダム化するステップ
と、前記スカラー値のビットの値を判定するステップ
と、楕円曲線上の加算及び楕円曲線上の2倍算を、前記
加算及び2倍算の計算順序をランダム化するステップに
よりランダム化された順序で行なうステップとを含むこ
とを特徴とする。
【0017】また本発明は、楕円曲線暗号においてスカ
ラー値及び楕円曲線上の点からスカラー倍点を計算する
スカラー倍計算方法であって、前記スカラー値のビット
の値を判定するステップと、楕円曲線上の加算及び楕円
曲線上の2倍算の計算順序をランダム化するステップ
と、楕円曲線上の加算及び楕円曲線上の2倍算を、前記
加算及び2倍算の計算順序をランダム化するステップに
よりランダム化された順序で行なうステップとを含むこ
とを特徴とする。
【0018】また本発明は、第1のデータから第2のデ
ータを生成するデータ生成方法であって、上述のスカラ
ー倍計算方法を用いてスカラー倍を計算するステップを
有することを特徴とする。さらに、データから署名デー
タを生成する署名生成方法であって、上述のスカラー倍
計算方法を用いてスカラー倍を計算するステップを有す
ることを特徴とする。さらに、暗号化されたデータから
復号化されたデータを生成する復号化方法であって、上
述のスカラー倍計算方法を用いてスカラー倍を計算する
ステップを有することを特徴とする。
【0019】さらに、本発明は、楕円曲線暗号において
スカラー値及び楕円曲線上の点からスカラー倍点を計算
するスカラー倍計算装置であって、前記スカラー値のビ
ットの値を判定するビット値判定手段と、楕円曲線上の
加算を実行する加算演算手段と、楕円曲線上の2倍算を
実行する2倍算演算手段とを具備し、前記ビット値判定
手段により前記スカラー値のビットの値を判定した後、
前記加算演算手段及び2倍算演算手段により楕円曲線上
の加算及び楕円曲線上の2倍算を一定の回数及び一定の
順序で実行し、スカラー倍点を計算することを特徴とす
る。
【0020】さらに、本発明は、上述のスカラー倍計算
方法に係るプログラムを格納したことを特徴とする記憶
媒体にある。前記楕円曲線としてモンゴメリ型楕円曲線
を用いるとよい。前記楕円曲線として標数2の有限体上
で定義された楕円曲線を用いるとよい。
【0021】
【発明の実施の形態】以下、本発明の実施の形態を図面
を用いて説明する。
【0022】図11は、本発明の実施の形態に係る暗号
処理システムの構成図である。この暗号処理システム1
101は、例えばICカード内に設けられ、暗号化(あ
るいは、復号化、署名の作成や検証)の際に、あるメッ
セージ(値)1105を入力すると所定の計算を行なっ
てあるメッセージ(値)1106を出力する処理を行な
う。暗号処理システム1101は、暗号処理部110
2、スカラー倍計算部1103、及び秘密情報格納部1
104を備えている。特に、本実施形態のスカラー倍計
算部1103は、スカラー倍計算経過が漏洩しても秘密
情報は漏洩しないものであり、これにより暗号処理シス
テム1101は、暗号処理経過が漏洩しても秘密情報は
漏洩しないシステムになっている。
【0023】図16は、図11の暗号処理システムにお
ける処理の流れを示すフローチャートである。図17
は、図11の暗号処理システムにおける処理の流れを示
すシーケンス図である。
【0024】図16において、暗号処理システム110
1は、以下のようにして、与えられたメッセージ110
5から暗号処理を行なったメッセージ1106を出力す
る。まず、メッセージ1105を暗号処理システム11
01に入力すると、暗号処理部1102がそれを受け取
る(ステップ1601)。暗号処理部1102は、スカ
ラー倍計算部1103に、入力メッセージ1105に応
じた楕円曲線上の点を与える(ステップ1602)。ス
カラー倍計算部1103は、秘密情報格納部1104よ
り秘密情報であるスカラー値を受け取る(ステップ16
03)。スカラー倍計算部1103は、受け取った点と
スカラー値より、スカラー倍点を、スカラー倍計算経過
が漏洩しても秘密情報は漏洩しないスカラー倍計算方法
で計算する(ステップ1604)。スカラー倍計算部1
103は、計算したスカラー倍点を暗号処理部1102
に送る(ステップ1605)。暗号処理部1102は、
スカラー倍計算部1103より受け取ったスカラー倍点
をもとにして暗号処理を行なう(ステップ1606)。
その結果を暗号処理を行なったメッセージ1106とし
て出力する(ステップ1607)。
【0025】上記処理手順を図17のシーケンス図を用
いて説明する。まず、暗号処理部1701(図11の1
102)の実行する処理について説明する。暗号処理部
1701は、入力メッセージを受け取る。暗号処理部1
701は、入力メッセージをもとに楕円曲線上の点を選
び、スカラー倍計算部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を入力し、以下の手順でスカラー倍20
8を出力する。ここで入力された点をP、入力されたス
カラー値をd、出力するスカラー倍の点をdPで、それ
ぞれ表すことにする。
【0032】ステップ101として、繰り返し判定部2
06において繰り返すか否かの判定を行なう為に、初期
値として変数Iに1を代入する。ステップ102とし
て、2倍算演算部204により、点Pの2倍点2Pを計
算する。ステップ103として、スカラー倍計算装置2
01に入力された点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に格納されている点の組(m
P,(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に点の組(2m
P,(2m+1)P)として、点の組(mP,(m+
1)P)の代わりに格納する。その後ステップ104へ
戻る。
【0034】ステップ110として、加算演算部203
により、点格納部202に格納されている点の組(m
P,(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)を行ない、点(2
m+2)Pを計算する。その後ステップ112へ行く。
ステップ112として、ステップ110で求めた点(2
m+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となる
ことは、計算過程において格納されている点の組(m
P,(m+1)P)の点mPに対するスカラー値mが、
スカラー値dにおける先頭Iビットのビット列と一致す
ることと、ステップ104においてステップ113へ行
くと判定されるためには、Iとスカラー値dのビット長
が等しいことが必要であり、そのためスカラー値mとス
カラー値dが一致することにより示される。
【0037】また、以上の手順によりスカラー倍計算経
過が漏洩しても秘密情報であるスカラー値に関する情報
が漏洩しないことの根拠は以下の通りである。計算経過
からスカラー値に関する情報を得る為には、少なくと
も、各々のスカラー値に対する計算経過の間に違いが存
在しなければならない。まず、あるスカラー値と、その
スカラー値との間に特定のビットのみが異なるスカラー
値とについて考える。特定ビットが異なるので、計算経
過において特定の回数だけ繰り返した後のステップ10
6でのビット値の判定の後、ステップ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ビットのみ値が異なる。以下同様にしてスカラー値
k−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の暗号処理システム110
1における秘密情報を用いた暗号処理において、暗号処
理経過が漏洩しても秘密情報は漏洩しないスカラー倍計
算方法の第2実施例を示す図である。図4は、第2実施
例のスカラー倍計算方法を示すフローチャートである。
図4及び図5を参照して、第2実施例を説明する。
【0042】スカラー倍計算装置501では、点及びス
カラー値507を入力し、以下の手順でスカラー倍50
8を出力する。ステップ401として、繰り返し判定部
506において繰り返すか否かの判定を行なう為に、初
期値として変数Iに1を代入する。ステップ402とし
て、2倍算演算部504により、点Pの2倍点2Pを計
算する。ステップ403として、スカラー倍計算装置5
01に入力された点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倍算演算部50
4により、点格納部502に格納されている点の組(m
P,(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倍算演算部50
4により、点格納部502に格納されている点の組(m
P,(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】また、以上の手順によりスカラー倍計算経
過が漏洩しても秘密情報であるスカラー値に関する情報
が漏洩しないことの根拠は以下の通りである。ある特定
のビットのみ値が異なる二つのスカラー値に対して、そ
れらの計算経過が同一であることを示せば、他の部分は
第一実施例における根拠と同様であるので、スカラー倍
計算経過が漏洩しても秘密情報であるスカラー値に関す
る情報が漏洩しないことが示される。したがって、ある
特定のビットのみ値が異なる二つのスカラー値について
考える。ある特定のビットの値のみが異なるので、計算
経過において特定の回数だけ繰り返した後のステップ4
06でのビット値の判定の後、ステップ407へ行くか
ステップ410へ行くかの違いが生じる。しかしながら
ステップ407へ行ってもステップ410へ行っても、
共にその後で2倍算を行ない、次に加算を行ない、そし
てその結果を点の組として格納するという手順をとり、
ステップ404へと戻る為、計算経過としての差異は存
在しない。ゆえにスカラー倍計算経過によりスカラー値
の情報を引き出すことはできない。
【0048】また、楕円曲線としてモンゴメリ型楕円曲
線を用いると、標準型楕円曲線よりも高速にスカラー倍
計算が実行可能であることも、第1実施例と同様であ
る。
【0049】標数2の有限体上で定義された楕円曲線に
対しても、上記手順において加算及び2倍算の計算に高
速な加算及び2倍算の計算方法を用いることにより、標
数2の有限体上で定義された楕円曲線の通常のスカラー
倍計算と比べて、高速にスカラー倍計算が実行可能であ
ることも、第1実施例と同様である。
【0050】図7は、図11の暗号処理システム110
1における秘密情報を用いた暗号処理において、暗号処
理経過が漏洩しても秘密情報は漏洩しないスカラー倍計
算方法の第3実施例を示す図である。図6は、第3実施
例のスカラー倍計算方法を示すフローチャートである。
図6及び図7を参照して、第3実施例を説明する。
【0051】スカラー倍計算装置701では、点及びス
カラー値707を入力し、以下の手順でスカラー倍70
8を出力する。ステップ601として、繰り返し判定部
706において繰り返すか否かの判定を行なう為に、初
期値として変数Iに1を代入する。ステップ602とし
て、2倍算演算部704により、点Pの2倍点2Pを計
算する。ステップ603として、スカラー倍計算装置7
01に入力された点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(m
P)を同時に行ない、点(2m+1)P及び点2mPを
計算する。その後ステップ609へ行く。ステップ60
9として、ステップ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を計算する。その後ステップ6
12へ行く。ステップ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】また、以上の手順によりスカラー倍計算経
過が漏洩しても秘密情報であるスカラー値に関する情報
が漏洩しないことの根拠は以下の通りである。ある特定
のビットのみ値が異なる二つのスカラー値に対して、そ
れらの計算経過が同一であることを示せば、他の部分は
第一実施例における根拠と同様であるので、スカラー倍
計算経過が漏洩しても秘密情報であるスカラー値に関す
る情報が漏洩しないことが示される。したがって、ある
特定のビットのみ値が異なる二つのスカラー値について
考える。ある特定のビットの値のみが異なるので、計算
経過において特定の回数だけ繰り返した後のステップ6
06でのビット値の判定の後、ステップ607へ行くか
ステップ610へ行くかの違いが生じる。しかしながら
ステップ607へ行ってもステップ610へ行っても、
共にその後で加算及び2倍算を同時に行ない、そしてそ
れらの結果を点の組として格納するという手順をとり、
ステップ604へと戻る為、計算経過としての差異は存
在しない。ゆえにスカラー倍計算経過によりスカラー値
の情報を引き出すことはできない。
【0057】また、楕円曲線としてモンゴメリ型楕円曲
線を用いると、標準型楕円曲線よりも高速にスカラー倍
計算が実行可能であることも、第1実施例と同様であ
る。
【0058】標数2の有限体上で定義された楕円曲線に
対しても、上記手順において加算及び2倍算の計算に高
速な加算及び2倍算の計算方法を用いることにより、標
数2の有限体上で定義された楕円曲線の通常のスカラー
倍計算と比べて、高速にスカラー倍計算が実行可能であ
ることも、第1実施例と同様である。
【0059】図9は、図11の暗号処理システム110
1における秘密情報を用いた暗号処理において、暗号処
理経過が漏洩しても秘密情報は漏洩しないスカラー倍計
算方法の第4実施例を示す図である。図8は、第4実施
例のスカラー倍計算方法を示すフローチャートである。
図8及び図9を参照して、第4実施例を説明する。
【0060】スカラー倍計算装置901では、点及びス
カラー値907を入力し、以下の手順でスカラー倍90
8を出力する。ステップ801として、繰り返し判定部
906において繰り返すか否かの判定を行なう為に、初
期値として変数Iに1を代入する。ステップ802とし
て、2倍算演算部904により、点Pの2倍点2Pを計
算する。ステップ803として、スカラー倍計算装置9
01に入力された点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倍算演算部90
4により、点格納部902に格納されている点の組(m
P,(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】また、以上の手順によりスカラー倍計算経
過が漏洩しても秘密情報であるスカラー値に関する情報
が漏洩しないことの根拠は以下の通りである。ある特定
のビットのみ値が異なる二つのスカラー値に対して、そ
れらの計算経過が同一であることを示せば、他の部分は
第一実施例における根拠と同様であるので、スカラー倍
計算経過が漏洩しても秘密情報であるスカラー値に関す
る情報が漏洩しないことが示される。したがって、ある
特定のビットのみ値が異なる二つのスカラー値について
考える。ある特定のビットの値のみが異なるので、計算
経過において特定の回数だけ繰り返した後のステップ8
07でのビット値の判定の後、ステップ808へ行くか
ステップ811へ行くかの違いが生じる。しかしながら
ステップ808へ行ってもステップ811へ行っても、
共にその後で2倍算を行ない、そしてその結果を加算の
結果とともに点の組として格納するという手順をとり、
ステップ804へと戻る為、計算経過としての差異は存
在しない。ゆえにスカラー倍計算経過によりスカラー値
の情報を引き出すことはできない。
【0065】また、楕円曲線としてモンゴメリ型楕円曲
線を用いると、標準型楕円曲線よりも高速にスカラー倍
計算が実行可能であることも、第1実施例と同様であ
る。
【0066】標数2の有限体上で定義された楕円曲線に
対しても、上記手順において加算及び2倍算の計算に高
速な加算及び2倍算の計算方法を用いることにより、標
数2の有限体上で定義された楕円曲線の通常のスカラー
倍計算と比べて、高速にスカラー倍計算が実行可能であ
ることも、第1実施例と同様である。
【0067】図15は、図11の暗号処理システム11
01における秘密情報を用いた暗号処理において、暗号
処理経過が漏洩しても秘密情報は漏洩しないスカラー倍
計算方法の第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とステップ1
202で求めた点2Pを、点格納部1502に点の組
(P,2P)として格納する。ステップ1204とし
て、繰り返し判定部1506により、変数Iとスカラー
値のビット長とが一致するかどうかを判定し、一致すれ
ばステップ1213へ行く。一致しなければステップ1
205へ行く。ステップ1205として、変数Iを1増
加させる。ステップ1206として、演算ランダム化部
1509により、加算及び2倍算の計算順序をランダム
化する。加算、2倍算の順序で計算を実行する場合はス
テップ1301へ行く。2倍算、加算の順序で計算を実
行する場合はステップ1401へ行く。
【0069】ステップ1301として、ビット値判定部
1505により、スカラー値のI番目のビットの値が0
であるか1であるかを判定する。そのビットの値が0で
あればステップ1302へ行く。そのビットの値が1で
あればステップ1305へ行く。
【0070】ステップ1302として、加算演算部15
03により、点格納部1502に格納されている点の組
(mP,(m+1)P)から点mPと点(m+1)Pの
加算mP+(m+1)Pを行ない、点(2m+1)Pを
計算する。その後ステップ1303へ行く。ステップ1
303として、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として、加算演算部15
03により、点格納部1502に格納されている点の組
(mP,(m+1)P)から点mPと点(m+1)Pの
加算mP+(m+1)Pを行ない、点(2m+1)Pを
計算する。その後ステップ1306へ行く。ステップ1
306として、2倍算演算部1504により、点格納部
1502に格納されている点の組(mP,(m+1)
P)から点(m+1)Pの2倍算2((m+1)P)を
行ない、点(2m+2)Pを計算する。その後ステップ
1307へ行く。ステップ1307として、ステップ1
305で求めた点(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倍算演算部1
504により、点格納部1502に格納されている点の
組(mP,(m+1)P)から点mPの2倍算2(m
P)を行ない、点2mPを計算する。その後ステップ1
403へ行く。ステップ1403として、加算演算部1
503により、点格納部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倍算演算部1
504により、点格納部1502に格納されている点の
組(mP,(m+1)P)から点(m+1)Pの2倍算
2((m+1)P)を行ない、点(2m+2)Pを計算
する。その後ステップ1406へ行く。ステップ140
6として、加算演算部1503により、点格納部150
2に格納されている点の組(mP,(m+1)P)から
点mPと点(m+1)Pの加算mP+(m+1)Pを行
ない、点(2m+1)Pを計算する。その後ステップ1
407へ行く。ステップ1407として、ステップ14
06で求めた点(2m+1)Pとステップ1405で求
めた点(2m+2)Pを点格納部1502に点の組
((2m+1)P,(2m+2)P)として、点の組
(mP,(m+1)P)の代わりに格納する。その後ス
テップ1204へ戻る。
【0075】ステップ1213として、点格納部150
2に格納されている点の組(mP,(m+1)P)か
ら、点mPをスカラー倍1508として出力し、終了す
る。
【0076】以上の手順により出力する値である点mP
が点Pのスカラー値dによるスカラー倍の点dPとなる
ことは、第1実施例の場合と同様に示すことができる。
【0077】また、楕円曲線としてモンゴメリ型楕円曲
線を用いると、加算及び2倍算が高速に実行可能であ
り、通常用いる標準型楕円曲線よりも高速にスカラー倍
計算が実行可能である。
【0078】標数2の有限体上で定義された楕円曲線に
対しても、上記手順において加算及び2倍算の計算に高
速な加算及び2倍算の計算方法を用いることにより、標
数2の有限体上で定義された楕円曲線の通常のスカラー
倍計算と比べて、高速にスカラー倍計算が実行可能であ
る。
【0079】図25は、図11の暗号処理システム11
01における秘密情報を用いた暗号処理において、暗号
処理経過が漏洩しても秘密情報は漏洩しないスカラー倍
計算方法の第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とステップ2
202で求めた点2Pを、点格納部2502に点の組
(P,2P)として格納する。
【0081】ステップ2204として、繰り返し判定部
2506により、変数Iとスカラー値のビット長とが一
致するかどうかを判定し、一致すればステップ2213
へ行く。一致しなければステップ2205へ行く。ステ
ップ2205として、変数Iを1増加させる。ステップ
2206として、ビット値判定部2505により、スカ
ラー値のI番目のビットの値が0であるか1であるかを
判定する。そのビットの値が0であればステップ240
1へ行く。そのビットの値が1であればステップ230
1へ行く。
【0082】ステップ2301として、演算ランダム化
部2509により、加算及び2倍算の計算順序をランダ
ム化する。加算、2倍算の順序で計算を実行する場合は
ステップ2305へ行く。2倍算、加算の順序で計算を
実行する場合はステップ2302へ行く。
【0083】ステップ2302として、2倍算演算部2
504により、点格納部2502に格納されている点の
組(mP,(m+1)P)から点(m+1)Pの2倍算
2((m+1)P)を行ない、点(2m+2)Pを計算
する。その後ステップ2303へ行く。ステップ230
3として、加算演算部2503により、点格納部250
2に格納されている点の組(mP,(m+1)P)から
点mPと点(m+1)Pの加算mP+(m+1)Pを行
ない、点(2m+1)Pを計算する。その後ステップ2
304へ行く。
【0084】ステップ2305として、加算演算部25
03により、点格納部2502に格納されている点の組
(mP,(m+1)P)から点mPと点(m+1)Pの
加算mP+(m+1)Pを行ない、点(2m+1)Pを
計算する。その後ステップ2306へ行く。ステップ2
306として、2倍算演算部2504により、点格納部
2502に格納されている点の組(mP,(m+1)
P)から点(m+1)Pの2倍算2((m+1)P)を
行ない、点(2m+2)Pを計算する。その後ステップ
2304へ行く。
【0085】ステップ2304として、ステップ230
3乃至はステップ2305で求めた点(2m+1)Pと
ステップ2302乃至はステップ2306で求めた点
(2m+2)Pを点格納部2502に点の組((2m+
1)P,(2m+2)P)として、点の組(mP,(m
+1)P)の代わりに格納する。その後ステップ220
4へ戻る。
【0086】ステップ2401として、演算ランダム化
部2509により、加算及び2倍算の計算順序をランダ
ム化する。加算、2倍算の順序で計算を実行する場合は
ステップ2405へ行く。2倍算、加算の順序で計算を
実行する場合はステップ2402へ行く。
【0087】ステップ2402として、2倍算演算部2
504により、点格納部2502に格納されている点の
組(mP,(m+1)P)から点mPの2倍算2(m
P)を行ない、点2mPを計算する。その後ステップ2
403へ行く。ステップ2403として、加算演算部2
503により、点格納部2502に格納されている点の
組(mP,(m+1)P)から点mPと点(m+1)P
の加算mP+(m+1)Pを行ない、点(2m+1)P
を計算する。その後ステップ2404へ行く。
【0088】ステップ2405として、加算演算部25
03により、点格納部2502に格納されている点の組
(mP,(m+1)P)から点mPと点(m+1)Pの
加算mP+(m+1)Pを行ない、点(2m+1)Pを
計算する。その後ステップ2406へ行く。ステップ2
406として、2倍算演算部2504により、点格納部
2502に格納されている点の組(mP,(m+1)
P)から点mPの2倍算2(mP)を行ない、点2mP
を計算する。その後ステップ2404へ行く。
【0089】ステップ2404として、ステップ240
2乃至はステップ2406で求めた点2mPとステップ
2403乃至はステップ2405で求めた点(2m+
1)Pを点格納部2502に点の組(2mP,(2m+
1)P)として、点の組(mP,(m+1)P)の代わ
りに格納する。その後ステップ2204へ戻る。
【0090】ステップ2213として、点格納部250
2に格納されている点の組(mP,(m+1)P)か
ら、点mPをスカラー倍2508として出力し、終了す
る。
【0091】以上の手順により出力する値である点mP
が点Pのスカラー値dによるスカラー倍の点dPとなる
ことは、第1実施例の場合と同様に示すことができる。
【0092】また、楕円曲線としてモンゴメリ型楕円曲
線を用いると、加算及び2倍算が高速に実行可能であ
り、通常用いる標準型楕円曲線よりも高速にスカラー倍
計算が実行可能である。
【0093】標数2の有限体上で定義された楕円曲線に
対しても、上記手順において加算及び2倍算の計算に高
速な加算及び2倍算の計算方法を用いることにより、標
数2の有限体上で定義された楕円曲線の通常のスカラー
倍計算と比べて、高速にスカラー倍計算が実行可能であ
る。
【0094】図27は、図11の暗号処理システム11
01における秘密情報を用いた暗号処理において、暗号
処理経過が漏洩しても秘密情報は漏洩しないスカラー倍
計算方法の第7実施例を示す図である。図26は、第7
実施例のスカラー倍計算方法を示すフローチャートであ
る。図26及び図27を参照して、第7実施例を説明す
る。
【0095】スカラー倍計算装置2701では、点及び
スカラー値2707を入力し、以下の手順でスカラー倍
2708を出力する。ステップ2601として、繰り返
し判定部2706において繰り返すか否かの判定を行な
う為に、初期値として変数Iに1を代入する。ステップ
2614として、ランダム化射影座標変換部2709に
より、乱数kを生成する。ステップ2615として、ラ
ンダム化射影座標変換部2709により、ステップ26
14で生成した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と、ステップ260
2で求めた点2Pを、点格納部2702に点の組(P,
2P)として格納する。
【0096】ステップ2604として、繰り返し判定部
2706により、変数Iとスカラー値のビット長とが一
致するかどうかを判定し、一致すればステップ2613
へ行く。一致しなければステップ2605へ行く。ステ
ップ2605として、変数Iを1増加させる。ステップ
2606として、ビット値判定部2705により、スカ
ラー値のI番目のビットの値が0であるか1であるかを
判定する。そのビットの値が0であればステップ260
7へ行く。そのビットの値が1であればステップ261
0へ行く。
【0097】ステップ2607として、加算演算部27
03により、点格納部2702に格納されている点の組
(mP,(m+1)P)から点mPと点(m+1)Pの
加算mP+(m+1)Pを行ない、点(2m+1)Pを
計算する。その後ステップ2608へ行く。ステップ2
608として、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として、加算演算部27
03により、点格納部2702に格納されている点の組
(mP,(m+1)P)から点mPと点(m+1)Pの
加算mP+(m+1)Pを行ない、点(2m+1)Pを
計算する。その後ステップ2611へ行く。ステップ2
611として、2倍算演算部2704により、点格納部
2702に格納されている点の組(mP,(m+1)
P)から点(m+1)Pの2倍算2((m+1)P)を
行ない、点(2m+2)Pを計算する。その後ステップ
2612へ行く。ステップ2612として、ステップ2
610で求めた点(2m+1)Pとステップ2611で
求めた点(2m+2)Pを点格納部2702に点の組
((2m+1)P,(2m+2)P)として、点の組
(mP,(m+1)P)の代わりに格納する。その後ス
テップ2604へ戻る。
【0099】ステップ2613として、点格納部270
2に格納されている点の組(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として、乱数生成部28
03により、乱数kを生成する。ステップ2904とし
て、射影座標変換部2804により、次のようにして射
影座標で表された与えられた点ををランダム化射影座標
により表す。与えられた点を(x,y,z)とすると、
乱数生成部2803で生成された乱数kを、各座標に乗
じ、(kx,ky,kz)と表し、ランダム化射影座標
で表された点2806として出力する。
【0107】射影座標においては、0以外の任意の数k
により各座標を乗じても、同じ点と見做す。すなわち、
(x,y,z)と(kx,ky,kz)は同じ点を表し
ている。
【0108】また、メモリ等の節約の為、ステップ29
02の(x,y,1)は実際に格納しなくとも、仮想的
に(x,y,1)と表されていると考え、ステップ29
04で(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に応じた楕円曲線上の点を与える(ステップ18
02)。スカラー倍計算部303は、秘密情報格納部3
04より秘密情報であるスカラー値を受け取る(ステッ
プ1803)。スカラー倍計算部303は、受け取った
点とスカラー値より、スカラー倍点を、スカラー倍計算
経過が漏洩しても秘密情報は漏洩しないスカラー倍計算
方法で計算する(ステップ1804)。スカラー倍計算
部303は、計算したスカラー倍点を署名部302に送
る(ステップ1805)。署名部302は、スカラー倍
計算部303より受け取ったスカラー倍点をもとにして
署名作成処理を行なう(ステップ1806)。その結果
を署名が付随したメッセージ306として出力する(ス
テップ1807)。
【0111】上記処理手順を図19のシーケンス図を用
いて説明する。まず、署名部1901(図3の302)
の実行する処理について説明する。署名部1901は、
入力メッセージを受け取る。署名部1901は、入力メ
ッセージをもとに楕円曲線上の点を選び、スカラー倍計
算部1902に楕円曲線上の点を与え、そしてスカラー
倍計算部1902からスカラー倍点を受け取る。署名部
1901は、受け取ったスカラー倍点を用いて署名作成
処理を行ない、その結果を出力メッセージとして出力す
る。
【0112】次にスカラー倍計算部1902(図3の3
03)の実行する処理について説明する。スカラー倍計
算部1902は、署名部1901より楕円曲線上の点を
受け取る。スカラー倍計算部1902は、秘密情報格納
部1903よりスカラー値を受け取る。スカラー倍計算
部1903は、受け取った楕円曲線上の点及びスカラー
値から、スカラー倍計算経過が漏洩しても秘密情報は漏
洩しないスカラー倍計算方法により、スカラー倍点を計
算し、署名部1901にスカラー倍点を送る。
【0113】最後に秘密情報格納部1903(図3の3
04)の実行する処理について説明する。秘密情報格納
部1903は、スカラー倍計算部1902がスカラー倍
を計算できるように、スカラー値をスカラー倍計算部1
902に送る。
【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は、計算したスカラー倍点を復号部1
002に送る(ステップ2005)。復号部1002
は、スカラー倍計算部1003より受け取ったスカラー
倍点をもとにして復号化処理を行なう(ステップ200
6)。その結果を復号化されたメッセージ1006とし
て出力する(ステップ2007)。
【0117】上記処理手順を図21のシーケンス図を用
いて説明する。まず、復号部2101(図10の100
2)の実行する処理について説明する。復号部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 (14)

    【特許請求の範囲】
  1. 【請求項1】楕円曲線暗号においてスカラー値及び楕円
    曲線上の点からスカラー倍点を計算するスカラー倍計算
    方法であって、 前記スカラー値のビットの値を判定するステップと、前
    記判定を行なったビットの値に依存せずに一定の回数及
    び一定の順序で楕円曲線上の演算を実行するステップと
    を含むことを特徴とするスカラー倍計算方法。
  2. 【請求項2】楕円曲線暗号においてスカラー値及び楕円
    曲線上の点からスカラー倍点を計算するスカラー倍計算
    方法であって、 前記スカラー値のビットの値を判定するステップと、楕
    円曲線上の加算及び楕円曲線上の2倍算を、楕円曲線上
    の加算を実行した後、楕円曲線上の2倍算を実行すると
    いう順序で行なうステップとを含むことを特徴とするス
    カラー倍計算方法。
  3. 【請求項3】楕円曲線暗号においてスカラー値及び楕円
    曲線上の点からスカラー倍点を計算するスカラー倍計算
    方法であって、 前記スカラー値のビットの値を判定するステップと、楕
    円曲線上の加算及び楕円曲線上の2倍算を、楕円曲線上
    の2倍算を実行した後、楕円曲線上の加算を実行すると
    いう順序で行なうステップとを含むことを特徴とするス
    カラー倍計算方法。
  4. 【請求項4】楕円曲線暗号においてスカラー値及び楕円
    曲線上の点からスカラー倍点を計算するスカラー倍計算
    方法であって、 前記スカラー値のビットの値を判定するステップと、楕
    円曲線上の加算及び楕円曲線上の2倍算を同時に実行す
    るステップとを含むことを特徴とするスカラー倍計算方
    法。
  5. 【請求項5】楕円曲線暗号においてスカラー値及び楕円
    曲線上の点からスカラー倍点を計算するスカラー倍計算
    方法であって、 楕円曲線上の加算を実行するステップと、前記スカラー
    値のビットの値を判定するステップと、楕円曲線上の2
    倍算を実行するステップとを含むことを特徴とするスカ
    ラー倍計算方法。
  6. 【請求項6】楕円曲線暗号においてスカラー値及び楕円
    曲線上の点からスカラー倍点を計算するスカラー倍計算
    方法であって、 楕円曲線上の加算及び楕円曲線上の2倍算の計算順序を
    ランダム化するステップと、前記スカラー値のビットの
    値を判定するステップと、楕円曲線上の加算及び楕円曲
    線上の2倍算を、前記加算及び2倍算の計算順序をラン
    ダム化するステップによりランダム化された順序で行な
    うステップとを含むことを特徴とするスカラー倍計算方
    法。
  7. 【請求項7】楕円曲線暗号においてスカラー値及び楕円
    曲線上の点からスカラー倍点を計算するスカラー倍計算
    方法であって、 前記スカラー値のビットの値を判定するステップと、楕
    円曲線上の加算及び楕円曲線上の2倍算の計算順序をラ
    ンダム化するステップと、楕円曲線上の加算及び楕円曲
    線上の2倍算を、前記加算及び2倍算の計算順序をラン
    ダム化するステップによりランダム化された順序で行な
    うステップとを含むことを特徴とするスカラー倍計算方
    法。
  8. 【請求項8】第1のデータから第2のデータを生成する
    データ生成方法であって、請求項1から7の何れか1つ
    に記載のスカラー倍計算方法を用いてスカラー倍を計算
    するステップを有することを特徴とするデータ生成方
    法。
  9. 【請求項9】データから署名データを生成する署名生成
    方法であって、請求項1から7の何れか1つに記載のス
    カラー倍計算方法を用いてスカラー倍を計算するステッ
    プを有することを特徴とする署名生成方法。
  10. 【請求項10】暗号化されたデータから復号化されたデ
    ータを生成する復号化方法であって、請求項1から7の
    何れか1つに記載のスカラー倍計算方法を用いてスカラ
    ー倍を計算するステップを有することを特徴とする復号
    化方法。
  11. 【請求項11】楕円曲線暗号においてスカラー値及び楕
    円曲線上の点からスカラー倍点を計算するスカラー倍計
    算装置であって、 前記スカラー値のビットの値を判定するビット値判定手
    段と、楕円曲線上の加算を実行する加算演算手段と、楕
    円曲線上の2倍算を実行する2倍算演算手段とを具備
    し、 前記ビット値判定手段により前記スカラー値のビットの
    値を判定した後、前記加算演算手段及び2倍算演算手段
    により楕円曲線上の加算及び楕円曲線上の2倍算を一定
    の回数及び一定の順序で実行し、スカラー倍点を計算す
    ることを特徴とするスカラー倍計算装置。
  12. 【請求項12】請求項1から7の何れか1つに記載のス
    カラー倍計算方法に係るプログラムを格納したことを特
    徴とする記憶媒体。
  13. 【請求項13】請求項1から7の何れか1つに記載のス
    カラー倍計算方法において、前記楕円曲線としてモンゴ
    メリ型楕円曲線を用いることを特徴とするスカラー倍計
    算方法。
  14. 【請求項14】請求項1から7の何れか1つに記載のス
    カラー倍計算方法において、前記楕円曲線として標数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 true JP2001337599A (ja) 2001-12-07
JP3821631B2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005008955A1 (ja) * 2003-07-22 2005-01-27 Fujitsu Limited 個人鍵を用いた耐タンパ暗号処理
WO2006118092A1 (ja) * 2005-04-27 2006-11-09 Matsushita Electric Industrial Co., Ltd. 情報セキュリティ装置及び楕円曲線演算装置
US7505587B2 (en) 2001-12-10 2009-03-17 Fujitsu Limited Elliptic curve cryptosystem apparatus, storage medium storing elliptic curve cryptosystem program, and elliptic curve cryptosystem arithmetic method

Families Citing this family (27)

* 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
US7555122B2 (en) 2002-12-04 2009-06-30 Wired Communications LLC Method for elliptic curve point multiplication
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
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

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7505587B2 (en) 2001-12-10 2009-03-17 Fujitsu Limited Elliptic curve cryptosystem apparatus, storage medium storing elliptic curve cryptosystem program, and elliptic curve cryptosystem arithmetic method
US7970131B2 (en) 2001-12-10 2011-06-28 Fujitsu Limited Elliptic curve cryptosystem apparatus, storage medium storing elliptic curve cryptosystem program, and elliptic curve cryptosystem arithmetic method
WO2005008955A1 (ja) * 2003-07-22 2005-01-27 Fujitsu Limited 個人鍵を用いた耐タンパ暗号処理
JPWO2005008955A1 (ja) * 2003-07-22 2006-09-07 富士通株式会社 個人鍵を用いた耐タンパ暗号処理
JP4632950B2 (ja) * 2003-07-22 2011-02-16 富士通株式会社 個人鍵を用いた耐タンパ暗号処理
WO2006118092A1 (ja) * 2005-04-27 2006-11-09 Matsushita Electric Industrial Co., Ltd. 情報セキュリティ装置及び楕円曲線演算装置
US7940927B2 (en) 2005-04-27 2011-05-10 Panasonic Corporation Information security device and elliptic curve operating device
JP4825199B2 (ja) * 2005-04-27 2011-11-30 パナソニック株式会社 情報セキュリティ装置及び楕円曲線演算装置

Also Published As

Publication number Publication date
US20010048741A1 (en) 2001-12-06
JP3821631B2 (ja) 2006-09-13
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

Similar Documents

Publication Publication Date Title
JP3821631B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
Coron Resistance against differential power analysis for elliptic curve cryptosystems
US7864951B2 (en) Scalar multiplication method with inherent countermeasures
JP4668931B2 (ja) 電力解析攻撃に対する耐タンパ性を持った暗号化処理装置
CN107040362B (zh) 模乘设备和方法
US20130279692A1 (en) Protecting modular exponentiation in cryptographic operations
EP3596876B1 (en) Elliptic curve point multiplication device and method for signing a message in a white-box context
US9680647B2 (en) Method of using a token in cryptography
US11824986B2 (en) Device and method for protecting execution of a cryptographic operation
JP2010164904A (ja) 楕円曲線演算処理装置、楕円曲線演算処理プログラム及び方法
JP2019515353A (ja) 暗号化べき乗アルゴリズムへのセーフ−エラーフォールトインジェクション攻撃に対する対策
KR100652377B1 (ko) 모듈라 지수승 알고리즘, 기록매체 및 시스템
JP2011510579A (ja) 署名ダイアグラムを用いた非対称暗号方式のための対策方法およびデバイス
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
US6480606B1 (en) Elliptic curve encryption method and system
JP2003098962A (ja) 楕円曲線スカラー倍計算方法及び装置並びに記録媒体
US8014520B2 (en) Exponentiation ladder for cryptography
JP2010068135A (ja) 不正操作検知回路、不正操作検知回路を備えた装置、及び不正操作検知方法
Dubeuf et al. ECDSA passive attacks, leakage sources, and common design mistakes
JP2003255831A (ja) 楕円曲線スカラー倍計算方法及び装置
Cao et al. Two lattice-based differential fault attacks against ECDSA with w NAF algorithm
Joye Basics of side-channel analysis
KR100564599B1 (ko) 역원 계산 회로, 역원계산 방법 및 상기 역원계산 방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수있는 기록매체
Leadbitter et al. Attacking DSA under a repeated bits assumption
JP4502817B2 (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