JP2003255831A - 楕円曲線スカラー倍計算方法及び装置 - Google Patents

楕円曲線スカラー倍計算方法及び装置

Info

Publication number
JP2003255831A
JP2003255831A JP2002052897A JP2002052897A JP2003255831A JP 2003255831 A JP2003255831 A JP 2003255831A JP 2002052897 A JP2002052897 A JP 2002052897A JP 2002052897 A JP2002052897 A JP 2002052897A JP 2003255831 A JP2003255831 A JP 2003255831A
Authority
JP
Japan
Prior art keywords
elliptic curve
point
scalar
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.)
Pending
Application number
JP2002052897A
Other languages
English (en)
Inventor
Katsuyuki Okeya
勝幸 桶屋
Hideyuki Tanaka
英幸 田中
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 JP2002052897A priority Critical patent/JP2003255831A/ja
Publication of JP2003255831A publication Critical patent/JP2003255831A/ja
Pending 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

Landscapes

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

Abstract

(57)【要約】 【課題】 サイドチャネル攻撃及びフォールト攻撃を防
ぐことができる楕円曲線スカラー倍計算方法を提供する
こと。 【解決手段】 スカラー値及び楕円曲線上の点からスカ
ラー倍点を計算するスカラー倍計算方法において、与え
られた点をランダム化し、スカラー値のビットごとにビ
ットの値とは独立の楕円曲線演算を行うことにより、サ
イドチャネル攻撃を防ぐ。またフォールト攻撃について
は、スカラー倍点のY座標を復元し、スカラー倍点が定
義方程式をみたすか否かを判定することにより、フォー
ルト攻撃をも防ぐ。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、セキュリティ技術
に係り、特に楕円曲線演算を用いたメッセージ処理方法
に関する。
【0002】
【従来の技術】楕円曲線暗号は、N.Koblitz, V.S.Mille
rにより提案された公開鍵暗号の一種である。公開鍵暗
号には、公開鍵と呼ばれる一般に公開してよい情報と、
秘密鍵と呼ばれる秘匿しなければならない秘密情報があ
る。与えられたメッセージの暗号化や署名の検証には公
開鍵を用い、与えられたメッセージの復号化や署名の作
成には秘密鍵を用いる。
【0003】楕円曲線暗号における秘密鍵は、スカラー
値が担っている。また楕円曲線暗号の安全性は楕円曲線
上の離散対数問題の求解が困難であることに由来してい
る。楕円曲線上の離散対数問題とは、楕円曲線上のある
点Pとそのスカラー倍の点dPが与えられた時、スカラー
値dを求める問題である。
【0004】楕円曲線上の点とは、楕円曲線の定義方程
式をみたす数の組をいい、楕円曲線上の点全体には、無
限遠点という仮想的な点を単位元とした演算、すなわち
楕円曲線上の加法(乃至は加算)が定義される。そして
同じ点同士による楕円曲線上の加法のことを、特に楕円
曲線上の2倍算という。
【0005】楕円曲線上の2点の加法は次のようにして
計算される。2点を通る直線を引くとその直線は楕円曲
線と他の点において交わる。その交わった点とx軸に関
して対称な点を、加法を行った結果の点とする。例えば
モンゴメリ型楕円曲線の場合には、点(x1,y1)と点(x2,y
2)の加算(x3,y3)=(x1,y1)+(x2,y2)は、 x3=B((y2-y1)/(x2-x1))2-A-x1-x2 (式1) y3=((y2-y1)/(x2-x1))(x1-x3)-y1 (式2) を計算することにより得られる。ここでA,Bはモンゴメ
リ型楕円曲線の定義式 By2=x3+Ax2+x (式3) の係数である。
【0006】楕円曲線上の点の2倍算は次のようにして
計算される。楕円曲線上の点における接線をひくと、そ
の接線は楕円曲線上の他の点において交わる。その交わ
った点とx座標に関して対称な点を、2倍算を行った結
果の点とする。ある点に対し特定の回数だけ加法を行う
ことをスカラー倍といい、その結果をスカラー倍点、そ
の回数のことをスカラー値という。
【0007】楕円曲線上の離散対数問題の求解の困難性
が理論的に確立されてきている一方で、実際の実装にお
いては秘密鍵等の秘密情報に関連する情報(計算時間や
電力消費量など)が暗号処理において漏洩する場合があ
り、その漏洩情報をもとに秘密情報を復元するといった
サイドチャネル攻撃という攻撃法が提案されている。
【0008】楕円曲線暗号に対するサイドチャネル攻撃
が 文献1:J.Coron, Resistance against Differential P
ower Analysis for Elliptic Curve Cryptosystems, Cr
yptographic Hardware and Embedded Systems: Proceed
ings of CHES'99, LNCS 1717, Springer-Verlag, (199
9) pp.292-302. に記載されている。
【0009】また暗号処理実行中にメモリ等に保持され
ている値が不正な値となることや、CPUでの計算中に
計算間違いが発生すること、乃至は悪意ある攻撃者によ
り故意にエラーを引き起こさせられることなどにより、
エラーが発生した際の出力結果から秘密情報を推定する
といったフォールト攻撃という攻撃法が提案されてい
る。
【0010】楕円曲線暗号に対するフォールト攻撃が 文献2:I.Biehl, B.Meyer, V.Mueller, Differential
Fault Attacks on Elliptic Curve Cryptosystems, Adv
ances in Cryptology CRYPTO 2000, LNCS 1880,Spring
er-Verlag, (2000) pp.131-146. に記載されている。
【0011】楕円曲線暗号においては、与えられたメッ
セージの暗号化、復号化、署名の作成またはその検証
は、楕円曲線演算を用いて行う必要がある。特に楕円曲
線上のスカラー倍の計算は、秘密情報であるスカラー値
を用いた暗号処理において用いられる。
【0012】楕円曲線暗号に対するサイドチャネル攻撃
の防御法が、 文献3:K.Okeya, K.Sakurai, Power Analysis Breaks
Elliptic Curve Cryptosystems even Secure Against t
he Timing Attack, Progress in Cryptology - INDOCRY
PT 2000, LNCS 1977, Springer-Verlag, (2000), pp.17
8-190. に記載されている。
【0013】モンゴメリ型楕円曲線を用いて行う楕円曲
線上のスカラー倍計算において、与えられた楕円曲線上
の点をランダム化することにより、サイドチャネル攻撃
を防ぐという方法が提案されている。
【0014】
【発明が解決しようとする課題】情報通信ネットワーク
の進展と共に電子情報に対する秘匿や認証のために暗号
技術は不可欠な要素となってきている。スマートカード
上で暗号技術を実装する場合、電力は外部より供給され
るため攻撃者が電力消費量を観測することができるの
で、サイドチャネル攻撃を防ぐ必要性がある。しかしな
がら磁力や電力により攻撃者が故意にエラーを発生させ
ることが可能なスマートカードや、大量の暗号処理を扱
うため暗号処理中にエラーの発生する確率が高くなると
想定されるサーバ等においては、フォールト攻撃につい
てもその攻撃にさらされる環境下にある。それゆえにサ
イドチャネル攻撃に加えフォールト攻撃をも防ぐ必要が
ある。
【0015】上記技術は、サイドチャネル攻撃を防ぐ方
法としては有効であるが、フォールト攻撃を防ぐという
点は考慮されていない。
【0016】本発明の目的は、サイドチャネル攻撃及び
フォールト攻撃を防ぐことができる楕円曲線演算方法を
提供することにある。
【0017】本発明の他の目的は、上記楕円曲線演算方
法を用いた暗号化処理方法、復号化処理方法、署名作成
方法、署名検証方法を提供することにある。
【0018】
【課題を解決するための手段】本発明は、楕円曲線演算
において、スカラー値と楕円曲線上の点からスカラー倍
点を計算するスカラー倍計算方法であって、楕円曲線上
の点が所定の定義方程式を満たすか否かを判定する第1
のステップと、楕円曲線上の点をランダム化する第2の
ステップと、スカラー値のビットの値を判定する第3の
ステップと、スカラー値のビットごとにそのビット値に
よらない同一種別の演算を行う第4のステップと、スカ
ラー値のすべてのビットについて第3のステップ及び第
4のステップを終了したとき、その演算の結果に基づい
て楕円曲線上の点の座標値を計算する第5のステップ
と、計算された座標値が上記の所定の定義方程式を満た
すか否かを判定する第6のステップとを有するスカラー
倍計算方法を特徴とする。
【0019】
【発明の実施の形態】以下、本発明の実施例について図
面により説明する。
【0020】図1は、ネットワーク142によって接続さ
れた本発明による楕円曲線演算方法を適用したコンピュ
ータA101、コンピュータB121がネットワーク142によ
り接続されたシステム構成を示すものである。
【0021】図1の暗号通信システムにおけるコンピュ
ータA101でメッセ―ジの暗号化を行うには、Pm+k(aQ)
及びkQを計算して出力し、コンピュータB121で暗号文
の復号化を行うには、秘密鍵a及びkQより-a(kQ)を計算
し、 (Pm+k(aQ))-a(kQ) (式4) を計算して出力すればよい。ここでPmはメッセージ、k
は乱数(整数)、aは秘密鍵を示す定数(整数)、Qは定
点、aQは公開鍵を示す点である。
【0022】ネットワーク142には、Pm+k(aQ),kQのみ送
信され、メッセージPmを復元するためには、kaQ、すな
わちkQのa倍を計算する必要がある。ところが秘密鍵aは
ネットワーク142には送信されないため、秘密鍵aを保持
しているものだけが、Pmを復元できることになる。
【0023】図1において、コンピュータA101は、C
PU113やコプロセッサ114などの演算装置、RAM10
3、ROM106や外部記憶装置107などの記憶装置、コン
ピュータ外部とのデータ入出力を行う入出力インタフェ
ース110を装備しており、外部にはコンピュータA101を
ユーザが操作するためのディスプレイ108、キーボード1
09、可搬型記憶媒体の読み書き装置などが接続されてい
る。
【0024】更にコンピュータA101は、RAM103、R
OM106や外部記憶装置107などの記憶装置によって記憶
部102を実現し、CPU113やコプロセッサ114などの演
算装置が記憶部102に格納されたプログラムを実行する
ことによりデータ処理部112及びスカラー倍計算部115を
実現する。データ処理部112は、本実施形態においては
暗号化処理部として機能し、入力されたメッセージの暗
号化を行う。スカラー倍計算部115は、データ処理部112
で暗号化を行うのに必要なパラメタを計算する。記憶部
102は、定数103(例えば楕円曲線の定義式や楕円曲線上
の定点である)、秘密情報105(例えば秘密鍵である)
などを記憶している。
【0025】コンピュータB121は、コンピュータA101
と同様のハードウェア構成を備える。更にコンピュータ
B121は、RAM103、ROM106や外部記憶装置107など
の記憶装置によって記憶部122を実現し、CPU113やコ
プロセッサ114などの演算装置が記憶部122に格納された
プログラムを実行することにより、データ処理部132及
びスカラー倍計算部135を実現する。
【0026】データ処理部132は、本実施形態において
は復号化処理部として機能し、暗号化されたメッセージ
である暗号文141の復号化を行う。スカラー倍計算部135
は、データ処理部132で復号化を行うのに必要なパラメ
ータを計算する。記憶部122は、定数124(例えば楕円曲
線の定義式や楕円曲線上の定点である)、秘密情報125
(例えば秘密鍵である)などを記憶している。
【0027】図2は、コンピュータA101の各処理部及
び記憶部が行う情報の受け渡しの様子を示したものであ
る。まずコンピュータA101が、入力されたメッセージ
を暗号化する場合の動作について説明する。メッセージ
はディジタル化されたデータであれば良く、テキスト、
画像、映像、音などの種類は問わない。データ処理部11
2は、入出力インタフェース110を介して平文の入力メッ
セージ204を受け取ると、入力された平文メッセージの
ビット長が予め定めたビット長か否かを判断する。予め
定めたビット長より長い場合には、予め定めたビット長
となるように平文メッセージを区切る。以下、所定のビ
ット長に区切られている部分メッセージ(単にメッセー
ジともいう)について説明する。
【0028】次にデータ処理部112は、メッセージのビ
ット列によって表される数値をx座標(x1)にもつ楕円曲
線上の点Pmのy座標の値(y1)を計算する。例えばモンゴ
メリ型楕円曲線は、B,Aはそれぞれ定数とするとき、 By1 2=x1 3+Ax1 2+x1 (式5) で表されるので、これよりy座標の値を求めることがで
きる。次にデータ処理部112は、乱数kを生成する。そし
て記憶部102に格納されている定数104から読み出した
(図2の205)公開鍵aQとQのx座標と、求めたy座標の値と
乱数kとをスカラー倍計算部115へ送る(図2の206)。
【0029】スカラー倍計算部115は、Qのx座標、y座標
の値、乱数kによるスカラー倍点(xd 1,yd1)=kQと、公開
鍵aQのx座標、y座標の値、乱数kによるスカラー倍点(x
d2,yd2)=k(aQ)とを計算し、計算されたスカラー倍点を
データ処理部112へ送る(図2の208)。もし計算中にエラ
ーが発生した場合は、「不正」を示す信号をデータ処理
部112へ送る(図2の207)。データ処理部112は、スカラ
ー倍計算部115より「不正」信号が送られてきた場合、
必要であれば記憶部102に格納されている定数104を再び
読み出し、再度公開鍵aQとQのx座標、y座標の値と乱数k
とをスカラー倍計算部115へ送る(図2の206)。
【0030】データ処理部112は、スカラー倍計算部115
よりスカラー倍点が送られてきた場合、送られたスカラ
ー倍点を用いて暗号化処理を行う。例えばモンゴメリ型
の楕円曲線については、Pm+k(aQ)とkQを計算する。すな
わち、 xe1=B((yd1-y1)/(xd1-x1))2-A-x1-xd1, (式6) xe2=xd2 (式7) を計算し、暗号化されたメッセージxe1,xe2を得る。
【0031】コンピュータA101は、データ処理部112で
暗号化された1つ以上の部分メッセージから暗号化され
た出力メッセージ209を組み立てる。コンピュータA101
は、暗号化された出力メッセージ209をデータ141として
入出力インタフェース110より出力し、ネットワーク142
を介してコンピュータB121へ転送する。
【0032】なお図2の記憶部102からの情報読み出し
は、スカラー計算部115へこの情報を送る前であれば入
力メッセージを受け付ける前であっても良い。
【0033】次にコンピュータB121が暗号化されたメ
ッセージ141を復号化する場合の動作について、図2を
参照しつつ説明する。ただしデータ処理部112をデータ
処理部132、スカラー計算部115をスカラー倍計算部13
5、記憶部102を記憶部122と読み替えるものとする。ま
た符号205では公開鍵の代わりに秘密鍵を読み出すもの
とする。
【0034】データ処理部132は、入出力インタフェー
ス110を介して暗号化されたデータ141(図2の入力メッ
セージ204)が入力されると、入力された暗号化された
データ141のビット長が予め定めたビット長か否かを判
断する。予め定めたビット長より長い場合には、予め定
めたビット長となるように暗号化されたデータを区切
る。以下、所定のビット長に区切られている部分データ
(単にデータともいう)について説明する。
【0035】データ141のビット列によって表される数
値をx座標にもつ楕円曲線上のy座標の値を計算する。暗
号化されたメッセージがxe1,xe2のビット列であり、モ
ンゴメリ型楕円曲線の場合、y座標の値(ye1)は Bye1 2=xe1 3+Axe1 2+xe1 (式8) から得ることができる(ただし、B,Aはそれぞれ定数で
ある)。
【0036】データ処理部132は、記憶部122に格納され
ている秘密情報125から読み出した(図2の205)秘密鍵a
と、x座標、y座標の値(xe1,ye1)を、スカラー倍計算部1
35へ送る(図2の206)。
【0037】スカラー倍計算部135は、x座標、y座標の
値、秘密情報125からスカラー倍点(x d3,yd3)=a(xe2,
ye2)を計算する。スカラー倍計算部135は、計算された
スカラー倍点をデータ処理部132へ送る(図2の207)。デ
ータ処理部132は、送られたスカラー倍点を用いて復号
化処理を行う。
【0038】例えば暗号化されたメッセージがxe1,xe2
のビット列であり、モンゴメリ型の楕円曲線の場合は、 (Pm+k(aQ))-a(kQ)=(xe1,ye1)-(xd3,yd3) を計算することにより達成する。すなわち、 xf1=B((ye1+yd3)/(xe1-xd3))2-A-xe1-xd3 (式9) を計算し、暗号化される前の部分メッセージx1に相当す
るxf1を得る。
【0039】コンピュータB121は、データ処理部132で
復号化された部分メッセージから平文メッセージを組み
立て、入出力インタフェース110を介してディスプレイ1
08などへ出力する。
【0040】次にコンピュータB121が復号化処理を行
う場合のスカラー倍計算部135の処理を詳細に説明す
る。図3は、スカラー倍計算部135の機能ブロックを示
したものである。スカラー倍計算部135は、ランダム化
部302、加算部303、2倍算部304、ビット値判定部305、
繰り返し判定部306、定義方程式判定部307およびY座標
復元部308からなる。
【0041】図4及び図5を用いてスカラー倍計算部13
5がスカラー値d及びモンゴメリ型楕円曲線上の点Pから
モンゴメリ型楕円曲線におけるスカラー倍点dPを計算す
る方法(第1の計算方法という)を説明する。スカラー倍
計算部135がデータ処理部132からスカラー値dと楕円曲
線上の点Pを受け取ると、定義方程式判定部307は、入力
された点Pが楕円曲線上にあるか否かを判定する。これ
は入力された点Pが楕円曲線の定義式(式3)を満たすか
どうかで判定する。満たす場合はステップ402へ、満た
さない場合はステップ524へ行く(401)。
【0042】ステップ401で満たす場合、ランダム化部3
02は、入力された楕円曲線上の点Pのランダム化を行
う。これはランダム化部302が次のような処理を行うこ
とにより達成される。乱数rを生成し(402)、点P=(x,
y)を射影座標においてランダム化された点をP=(rx,ry,
r)と表す(403)。次に変数Iに初期値1を代入する(40
4)。
【0043】2倍算部304は、ランダム化された点Pの2
倍点2Pを、モンゴメリ型楕円曲線の射影座標における2
倍算の公式を用いて計算する(405)。モンゴメリ型楕
円曲線の射影座標における2倍算の公式は、 4X1Z1=(X1+Z1)2-(X1-Z1)2 (式10) X2=(X1+Z1)2(X1-Z1)2 (式11) Z2=(4X1Z1)((X1-Z1)2+((A+2)/4)(4X1Z1)) (式12) であり、Aは定数、X1,Z1,X2,Z2はそれぞれ点PのX座標、
Z座標、点2PのX座標、Z座標である。ランダム化された
点Pとステップ405で求めた点2Pからなる点の組(P,2P)を
m=1の点の組(mP,(m+1)P)として(mは自然数)、記憶部122
に一時的に格納する(406)。
【0044】繰り返し判定部306は、変数Iと記憶部122
から読み出したスカラー値dのビット長とが一致するか
どうかを判定する(411)。一致すればステップ521へ行
く。一致しなければステップ412へ行く。ステップ411で
一致しなかった場合は、変数Iを1増加させる(412)。
ビット値判定部305は、スカラー値dのI番目のビットの
値が0であるか1であるかを判定し、0であればステップ4
14へ、1であればステップ417へ行く(413)。
【0045】ステップ413でビットの値が0であった場
合、加算部303は、射影座標により表された点の組(mP,
(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを、ランダ
ム化されていない点P=(x,y)を利用して行い、点(2m+1)P
を計算する(414)。これは、 X2m+1=[(Xm-Zm)(Xm+1+Zm+1)+(Xm+Zm)(Xm+1-Zm+1)]2, (式13) Z2m+1=x[(Xm-Zm)(Xm+1+Zm+1)-(Xm+Zm)(Xm+1-Zm+1)]2 (式14) を計算することにより達成される。ここでXm,Zm,Xm+1,Z
m+1,X2m+1,Z2m+1はそれぞれ点mPのX座標、Z座標、点(m+
1)PのX座標、Z座標、点(2m+1)PのX座標、Z座標である。
【0046】2倍算部304は、射影座標で表された点の
組(mP,(m+1)P)から点mPの2倍算2(mP)を行い、点2mPを計
算する(415)。これは、 4XmZm=(Xm+Zm)2-(Xm-Zm)2 (式15) X2m=(Xm+Zm)2(Xm-Zm)2 (式16) Z2m=(4XmZm)((Xm-Zm)2+((A+2)/4)(4XmZm)) (式17) を計算することにより達成される。ここでAは定数、Xm,
Zm,X2m,Z2mはそれぞれ点mPのX座標、Z座標、点2mPのX座
標、Z座標である。ステップ415で求めた点2mPとステッ
プ414で求めた点(2m+1)Pからなる点の組(2mP,(2m+1)P)
を点の組(mP,(m+1)P)と置き換え、mに2mを代入し、ステ
ップ411へ戻る(416)。
【0047】ステップ413でビットの値が1であった場
合、加算部303は、射影座標により表された点の組(mP,
(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pをランダム
化されていない点P=(x,y)を利用して行い、点(2m+1)Pを
計算する(417)。
【0048】これは、 X2m+1=[(Xm-Zm)(Xm+1+Zm+1)+(Xm+Zm)(Xm+1-Zm+1)]2, (式18) Z2m+1=x[(Xm-Zm)(Xm+1+Zm+1)-(Xm+Zm)(Xm+1-Zm+1)]2 (式19) を計算することにより達成される。
【0049】2倍算部304は、射影座標で表された点の
組(mP,(m+1)P)から点(m+1)Pの2倍算2((m+1)P)を行い、
点(2m+2)Pを計算する(418)。これは、 4Xm+1Zm+1=(Xm+1+Zm+1)2-(Xm+1-Zm+1)2 (式20) X2m+2=(Xm+1+Zm+1)2(Xm+1-Zm+1)2 (式21) Z2m+2=(4Xm+1Zm+1)((Xm+1-Zm+1)2+((A+2)/4)(4Xm+1Zm+1)) (式22) を計算することにより達成される。ここでAは定数、X
m+1,Zm+1,X2m+2,Z2m+2はそれぞれ点(m+1)PのX座標、Z座
標、点(2m+2)PのX座標、Z座標である。ステップ417で求
めた点(2m+1)Pとステップ418で求めた点(2m+2)Pからな
る点の組((2m+1)P,(2m+2)P)を、点の組(mP,(m+1)P)と置
き換え、mに2m+1を代入し、ステップ411へ戻る(41
9)。ここでステップ417〜419は、通常のアルゴリズム
とは異なり、ステップ414〜416と同一種別の演算を行っ
ている。
【0050】ステップ411で変数Iとスカラー値dのビッ
ト長とが一致した場合、Y座標復元部308は、点mPのY座
標Ymを復元する(521)。Y座標復元方法については、 文献4:K.Okeya, K.Sakurai, Efficient Elliptic Cur
ve Cryptosystems from a Scalar Multiplication Algo
rithm with Recovery of the y-Coordinate ona Montgo
mery-Form Elliptic Curve, Cryptographic Hardware a
nd Embedded Systems: Proceedings of CHES 2001, LNC
S 2162, Springer-Verlag, (2001) pp.126-141. に記載されている。
【0051】定義方程式判定部307は、点mPが楕円曲線
上にあるかを判定する。これは点mPが楕円曲線の定義式
(式3)を満たすかどうかで判定する。満たす場合はステ
ップ523へ、満たさない場合はステップ524へ行く(52
2)。ステップ522で満たす場合、射影座標で表された点
の組(mP,(m+1)P)から射影座標で表された点mP=(Xm,Ym,
Zm)をスカラー倍点dPとして復号化処理部132へ出力する
(523)。
【0052】ステップ401で満たさない場合、もしくは
ステップ522でみたさない場合、「不正」を示す信号を
復号化処理部132へ出力する(524)。
【0053】ここでスカラー倍点dPをアフィン座標等へ
座標を変換して出力してもよい。またワイエルシュトラ
ス型楕円曲線における座標に変換して出力してもよい。
【0054】また上記手順により、mとスカラー値dはビ
ット長が等しくさらにそのビットのパターンも同じとな
るため等しくなる。そのため上記手順によりスカラー倍
dPが計算できていることになる。
【0055】なおスカラー倍計算部135に入力される楕
円曲線上の点をモンゴメリ型楕円曲線上の点としたが、
ワイエルシュトラス型楕円曲線上の点であってもよい。
この場合は、ワイエルシュトラス型楕円曲線上の点をモ
ンゴメリ型楕円曲線上の点に変換して用いればよい。
【0056】上記方法は、サイドチャネル攻撃に対する
防御に関しても有効である。この理由は次の通りであ
る。ステップ403においてランダム化した点Pをそれ以降
のステップで用いている。ステップ414及びステップ417
はランダム化されていない点Pを用いるが、ステップ414
及びステップ417では、ランダム化された点Pから導出さ
れた点mP及び(m+1)Pと、ランダム化されていない点Pと
を用いて、演算を行い点(2m+1)Pを計算する。ステップ4
02の乱数生成で別の値が生成され、ステップ403でラン
ダム化された点Pの座標の値が異なれば、ステップ414及
びステップ417での点mP及び点(m+1)Pの座標の値が異な
り、それらの値を用いて計算される点(2m+1)Pの座標の
値も異なる。すなわち、同じスカラー値d及び点Pを与え
ても、その都度点(2m+1)Pの座標の値が変化する。
【0057】さらにステップ413でのビットの値の判定
結果にかかわらず同一の計算手順を踏むため、計算の実
行順序とビットの値との間に依存関係がないことが分か
る。
【0058】この計算方法を実装する際には、ステップ
413以降の処理について同じプログラムまたは処理回路
をビット値に係わらず共有するように作成しても構わな
い。
【0059】以上の通り、上記第1の計算方法は、サイ
ドチャネル攻撃に有用な情報を与えないので、サイドチ
ャネル攻撃に対して耐性がある。また用いている楕円曲
線の性質により、高速に計算できるという特徴がある。
【0060】また上記方法は、フォールト攻撃に対する
防御に関しても有効である。この理由は次の通りであ
る。まずスカラー倍計算部202に入力される楕円曲線上
の点Pとして不正な値が与えられたとすると、ステップ4
01において点Pが楕円曲線の定義式(式3)をみたさない
と判定され、その結果ステップ524で「不正」を出力す
る。次に計算途中に楕円曲線上の任意の点の値が不正な
値となった場合、ステップ524で「不正」を出力する。
このことを示す。
【0061】ステップ402-419で点mPもしくは(m+1)Pの
値が不正な値になったとする。その場合、次にくるステ
ップ411で点mPもしくは点(m+1)Pの値が不正となる。ス
テップ411で点mPもしくは点(m+1)Pの値が不正であり、I
とスカラー値のビット長が等しくないと判定される場
合、その次にくるステップ411でも点mPもしくは点(m+1)
Pの値も不正となる。ステップ411で点mPの値が不正であ
り、Iとスカラー値のビット長が等しいと判定される場
合、ステップ522で点mPは定義方程式(式3)を満たさな
いと判定され、ステップ524で「不正」を出力する。今
度はステップ411で点mPの値が正しく、点(m+1)Pの値が
不正であり、Iとスカラー値のビット長が等しいと判定
される場合について考察する。ステップ521で点mPのY座
標復元を行う。その際点(m+1)Pの値を用いるので、復元
されたY座標の値は不正な値となる。したがってステッ
プ522で点mPは定義方程式(式3)を満たさないと判定さ
れ、ステップ524で「不正」を出力する。
【0062】最後に点Pとして正しい値が入力され、計
算途中で不正な値となることが起こらなかった場合、す
なわち常に正しい値であった場合、ステップ522で点mP
は定義方程式(式3)を満たす。
【0063】以上の通り、上記第1の計算方法は、フォ
ールト攻撃に有用な情報を与えないので、フォールト攻
撃に対して耐性がある。
【0064】なお第1の計算方法では楕円曲線として、
モンゴメリ型楕円曲線を用いたが、標数2の有限体上定
義された楕円曲線を用いてもよいし、OEF(Optimal E
xtension Field)上で定義された楕円曲線を用いてもよ
い。OEFについては、 文献5:D.V.Bailey, C.Paar, Optimal Extension Fiel
ds for Fast Arithmeticin Public-Key Algorithms, Ad
vances in Cryptology CRYPTO '98, LNCS 1462, Sprin
ger-Verlag, (1998), pp.472-485. に記載されている。
【0065】以上、コンピュータB121が暗号化された
データ141を復号化する場合のスカラー倍計算部135の動
作を説明したが、コンピュータA101が入力メッセージ
を暗号化する場合も同様である。
【0066】その場合には、コンピュータA101のスカ
ラー倍計算部115は、既に説明した楕円曲線上の点Q、乱
数kによるスカラー倍点kQと、公開鍵aQと乱数kによるス
カラー倍点k(aQ)を出力する。このとき第1の計算方法
で説明したスカラー値dを乱数k、楕円曲線上の点Pを楕
円曲線上の点Q、公開鍵aQとして同様の処理を行うこと
により、それぞれのスカラー倍点を求めることができ
る。
【0067】次に図6を用いて、スカラー倍計算部135
が実ビット長Lのスカラー値d及びモンゴメリ型楕円曲線
上の点Pから、モンゴメリ型楕円曲線におけるスカラー
倍点dPを計算する方法(第2の計算方法という)を説明す
る。ここで実ビット長とは、スカラー値dの格納されて
いる領域(メモリ、レジスタなど)のビット数であり、実
ビット長≧スカラー値のビット長である。そのため最上
位ビットは1でなくてもよい。
【0068】この方法では、計算ステップと掛かる時間
とがスカラー値dにかかわらず一定になるように構成し
ている。これにより上記攻撃法に対して有用な情報を与
えず、耐性を備えるようにしている。
【0069】スカラー倍計算部135がデータ処理部132か
ら楕円曲線上の点Pとスカラー値dを受け取ると、スカラ
ー値dが0であるかどうかを判定し、0であれば無限遠点
を出力し終了する。スカラー値dが0でなければ、処理を
続ける(601)。定義方程式判定部307は、入力された点
Pが楕円曲線上にあるかを判定する。これは入力された
点Pが楕円曲線の定義式(式3)を満たすかどうかで判定
する。満たす場合はステップ603へ、満たさない場合は
ステップ617へ行く(602)。ランダム化部302は、入力
された楕円曲線上の点Pのランダム化を行う。すなわち
乱数rを生成し(603)、ランダム化した点Pを射影座標
において、(rx,ry,r)と表す(604)。
【0070】次に楕円曲線上の不定点T0,0,T0,1,T1,0,T
1,1の初期化を行う。T0,0にはステップ604でランダム化
された点Pを、T1,0にはT0,0を、T0,1にはステップ604で
ランダム化された点Pの2倍点2Pを、T1,1にはT0,1を、
それぞれ代入する。ランダム化された点Pの2倍点2Pの
計算には、モンゴメリ型楕円曲線の射影座標における2
倍算の公式(式10、式11、式12)を用いて計算す
る(605)。
【0071】次に変数sに初期値0を代入する(606)。
変数iに初期値L-1を代入する(607)。繰り返し判定部3
06は、変数iが0以上であるかどうかを判定する。0以上
のときはステップ609へ、0未満のときはステップ614へ
行く(608)。楕円曲線上の不定点Tに点Ts,diを代入す
る(609)。diは、スカラー値dをd=Σdj2j,dj∈d{0,1},j
は0からL-1を動く、と表した時の、j=iの時のビットdi
である。2倍算部304は、射影座標で表された点Tの2倍
算2(T)を行い、点2Tを点Ts,diに格納する(610)。加算
部303は射影座標により表された点Tと射影座標により表
された点Ts,1-diとの加算をランダム化されていない点T
=(x,y)を用いて行い、その結果を点Ts,1-diに格納する
(611)。次にsとdiとの論理和をとり、その結果をsに
格納する(612)。次に変数iを1減少させる(613)。
【0072】ステップ608でi<0の場合、Y座標復元部308
は、点T0,0及び点T1,0のY座標を復元する(614)。Y座
標復元方法については、文献4に記載されている。定義
方程式判定部307は、点T0,0及び点T1,0が楕円曲線上に
あるかを判定する。これは点T 0,0及び点T1,0が楕円曲線
上の定義式(式3)を満たすかどうかで判定する。ともに
満たす場合はステップ616へ、いずれか一方が満たさな
い場合はステップ617へ行く(615)。ステップ615でと
もに満たす場合、射影座標で表された点T1,0をスカラー
倍点dPとして復号化処理部132へ出力する(616)。ここ
でアフィン座標等へ座標を変換して出力してもよい。ま
たワイエルシュトラス型楕円曲線における座標に変換し
て出力してもよい。ステップ602で満たさない場合、も
しくはステップ615でいずれか一方が満たさない場合、
「不正」を示す信号をデータ処理部132へ出力する(61
7)。
【0073】なおスカラー倍計算部202に入力される楕
円曲線上の点をモンゴメリ型楕円曲線上の点としたが、
ワイエルシュトラス型楕円曲線上の点であってもよい。
この場合は、ワイエルシュトラス型楕円曲線上の点をモ
ンゴメリ型楕円曲線上の点に変換して用いればよい。
【0074】上記第2の計算方法も、サイドチャネル攻
撃に対する防御に関して有効である。この理由は次の通
りである。ステップ604においてランダム化した点Pをそ
れ以降のステップで用いている。ステップ611はランダ
ム化されていない点Pを用いるが、ステップ611では、ラ
ンダム化された点Pから導出された点T及び点Ts,1-di
ランダム化されてない点Pを用いてT+Ts,1-diを計算す
る。ステップ603の乱数生成で別の値が生成され、ステ
ップ604でランダム化された点Pの座標の値が異なれば、
ステップ611でのT及びTs,1-diの座標の値が異なり、そ
れらの値を用いて計算されるT+Ts,1-diの座標の値も異
なる。すなわち同じスカラー値d及び点Pを与えても、そ
のつどT+Ts,1-diの座標の値が変化する。さらに各ビッ
トdiの値にかかわらず、同一の計算手順を踏むため、計
算の実行順序とビットの値との間に依存関係がない。そ
のうえステップ608〜ステップ613の繰り返し回数はdの
ビット長に依存せずに、必ずL回となるため、dのビット
長にも依存しない。
【0075】なおステップ606において、sにビットdL-1
を代入し、ステップ607において、IにL-2を代入しても
よい。これによりスカラー値dの最上位ビットdL-1が1で
ある場合にダミー演算が発生しない。すなわち、s=0, i
=L-1 の時に行っていたステップ608〜613の最初の繰り
返しを行わなくてもよくなり、さらなる高速化が可能に
なる。
【0076】以上の通り、上記の第2の計算方法は、サ
イドチャネル攻撃に有用な情報を与えないので、サイド
チャネル攻撃に対して耐性がある。
【0077】また上記第2の計算方法も、フォールト攻
撃に対する防御に関しても有効である。この理由は次の
通りである。まずスカラー倍計算部202に入力される楕
円曲線上の点Pとして不正な値が与えられたとすると、
ステップ602において点Pが楕円曲線の定義式(式3)を満
たさないと判定され、その結果ステップ617で「不正」
を出力する。
【0078】次に計算途中に楕円曲線上の任意の点の値
が不正な値となった場合、ステップ617で「不正」を出
力する。このことを示す。ステップ603-613で点T0,0, T
0,1,T1,0, T1,1のいずれかの値が不正な値になったとす
る。その場合、次にくるステップ608で点T0,0, T0,1, T
1,0, T1,1のいずれかの値が不正となる。ステップ608で
点T0,0, T0,1, T1,0, T1,1のいずれかの値が不正であ
り、Iとスカラー値のビット長が等しくないと判定され
る場合、その次にくるステップ608でも点T0,0, T 0,1, T
1,0, T1,1のいずれかの値も不正となる。ステップ608で
点T0,0乃至は点T1 ,0の値が不正であり、Iとスカラー値
のビット長が等しいと判定される場合、ステップ615で
点T0,0乃至は点T1,0は定義方程式(式3)を満たさないと
判定され、ステップ617で「不正」を出力する。今度は
ステップ608で点T0,0, T1,0, T1,1の値が正しく、点T
0,1の値が不正であり、Iとスカラー値のビット長が等し
いと判定される場合について考察する。ステップ614で
点T0,0のY座標復元を行う。その際点T0,1の値を用いる
ので、復元されたY座標の値は不正な値となる。したが
ってステップ615で点T0,0は定義方程式(式3)をみたさ
ないと判定され、ステップ617で「不正」を出力する。
ステップ608で点T0,0, T0,1, T1,0の値が正しく、点T
1,1の値が不正であり、Iとスカラー値のビット長が等し
いと判定される場合についても同様である。
【0079】最後に点Pとして正しい値が入力され、計
算途中で不正な値となることが起こらなかった場合、す
なわち常に正しい値であった場合、ステップ615で点T
0,0及び点T1,0は定義方程式(式3)を満たす。
【0080】以上の通り、上記第2の計算方法は、フォ
ールト攻撃に有用な情報を与えないので、フォールト攻
撃に対して耐性がある。
【0081】なお第2の計算方法では楕円曲線として、
モンゴメリ型楕円曲線を用いたが、標数2の有限体上定
義された楕円曲線を用いてもよいし、OEF(Optimal E
xtension Field)上定義された楕円曲線を用いてもよ
い。OEFについては、文献5に記載されている。
【0082】次に本発明を署名検証システムに適用する
例について図7と図2を用いて説明する。図7の署名検
証システムは、スマートカード701と署名検証処理を行
うコンピュータ721とから成る。
【0083】スマートカード701は、機能としてはコン
ピュータA101と類似の構成を備え、CPU713やコプロ
セッサ714などの演算装置を備えているが、記憶部702に
格納されているプログラムによってデータ処理部112で
はなく署名生成処理部712を実現する。また外部記憶装
置、ディスプレイおよびキーボードを備えない。
【0084】コンピュータ721は、コンピュータB121と
同様の構成を備えるが、記憶部722に格納されるプログ
ラムによってデータ処理部112ではなく署名検証処理部7
32を実現する。
【0085】スカラー倍計算部715と735は、各々図1に
示すスカラー倍計算部115または135と同様の機能を備え
る。図6の署名検証システムにおける署名作成と署名検
証動作について図2を参照して説明する。ただしデータ
処理部112を署名生成処理部712、スカラー計算部115を
スカラー倍計算部715、記憶部102を記憶部702と読み替
えるものとする。また符号205では公開鍵はない。また
コンピュータ721にあっては、データ処理部112を署名検
証処理部732、スカラー計算部115をスカラー倍計算部73
5、記憶部102を記憶部722と読み替えるものとする。
【0086】コンピュータ721は、ランダムに選んだ数
値をチャレンジコード743として、インタフェース742を
介してスマートカード701に転送する。署名生成処理部7
12は、チャレンジコード743を入力メッセージ204として
受け付け、チャレンジコード743のハッシュ値をとり、
所定のビット長の数値fに変換する。次に署名生成処理
部712は、乱数uを生成し、記憶部702(図2の203)に格納
されている定数704から読み出した(図2の205)楕円曲線
上の定点Qとともにスカラー倍計算部715(図2の202)へ
送る(図2の206)。
【0087】スカラー倍計算部715は、定点Q、乱数uに
よるスカラー倍点(xu,yu)を計算し、計算されたスカラ
ー倍点を署名生成処理部712へ送る(図2の208)。署名生
成処理部712は、送られたスカラー倍点を用いて署名の
生成を行う。例えばECDSA署名であれば、 s = xu mod q (式23) t = u-1(f+ds) mod q (式24) を計算することによりチャレンジコード743に対応する
署名(s,t)を得る。
【0088】ここでqは定点Qの位数、すなわち定点Qのq
倍点qQが無限遠点になり、qより小さな数値mに対する定
点Qのm倍点mQは無限遠点にはならない、というような数
値のことである。またu-1は法qにおける逆数、すなわち
uu-1 =1mod qとなる数である。またdは秘密鍵を示す定
数である。
【0089】ECDSA署名については、 文献6:ANSI X9.62 Public Key Cryptography for the
Financial Services Industry, The Elliptic Curve D
igital Signature Algorithm (ECDSA), (1998) に記載されている。
【0090】スマートカード701は、署名生成処理部712
で作成した署名741を入出力インタフェース710より出力
メッセージ209として出力し、インタフェース742を介し
てコンピュータ721へ転送する。コンピュータ721の署名
検証処理部732は、署名741が入力される(図2の204)
と、署名741の数値s,tが適切な範囲内すなわち1≦s, t<
qであるかを調べる。数値s, tが上記範囲内になければ
チャレンジコード743に対する署名の検証結果として
「無効」を出力し、スマートカード701を拒絶する。数
値s, tが上記範囲内にあれば、署名検証処理部732は、 h = t-1 mod q (式25) h1 = fh mod q (式26) h2 = sh mod q (式27) を計算する。そして記憶部722に格納されている定数724
から読み出した(図2の205)公開鍵aQ及び定点Qと計算し
たh1,h2をスカラー倍計算部735へ送る(図2の206)。
【0091】スカラー倍計算部735は、定点Qとh1による
スカラー倍点h1Qと、公開鍵aQとh2によるスカラー倍点h
2aQとを計算し、計算されたスカラー倍点を署名検証処
理部732へ送る(図2の208)。
【0092】署名検証処理部732は、送られたスカラー
倍点を用いて署名検証処理を行う。例えば点R R=h1Q+h2aQ (式28) を計算し、そのx座標をxRとしたとき、 s' = xR mod q (式29) を計算し、s'=sであればチャレンジコード743に対する
署名の検証結果として「有効」を出力し、スマートカー
ド701を認証し、受け入れる。s'=sでなければ「無効」
を出力し、スマートカードを拒絶する。
【0093】上記実施形態のスカラー倍計算部715、735
は、図1のスカラー倍計算部115または135と同様の機能
を備えるので、サイドチャネル攻撃及びフォールト攻撃
を防ぐスカラー倍計算を実行できる。そのためスマート
カード701は署名作成処理を行う際に、コンピュータ721
は署名検証処理を行う際に、サイドチャネル攻撃及びフ
ォールト攻撃を防いだ実行ができる。
【0094】次に本発明を鍵交換システムに適用する例
を説明する。本実施形態においては、図1のシステム構
成が応用できる。図1のデータ処理部112、132は、本実
施形態においては、それぞれ鍵交換処理部として機能す
る。鍵交換システムのコンピュータA101が入力された
データ143から共有情報の導出を行う場合の動作につい
て図1、図2を参照して説明する。ただしコンピュータ
B121にあってはデータ処理部112をデータ処理部132、
スカラー計算部115をスカラー倍計算部135、記憶部102
を記憶部122と読み替えるものとする。また両コンピュ
ータA101、コンピュータB121において符号205では公
開鍵の代わりに秘密鍵を読み出すものとする。
【0095】コンピュータB121のデータ処理部132は、
記憶部122の秘密情報125から秘密鍵bを読み出しコンピ
ュータB121の公開鍵bQを計算する。そしてネットワー
ク142を介して公開鍵bQをデータ143としてコンピュータ
A101に転送する。
【0096】コンピュータA101のデータ処理部112は、
コンピュータB121の公開鍵bQの入力を入力メッセージ2
04として受け付けると、データ処理部112は、記憶部102
から読み出した(図2の205)秘密情報105であるコンピュ
ータA101の秘密鍵aと、コンピュータB121の公開鍵bQ
とをスカラー倍計算部115へ送る(図2の206)。
【0097】スカラー倍計算部115は、秘密鍵aと公開鍵
bQによるスカラー倍点abQを計算し、計算されたスカラ
ー倍点をデータ処理部112へ送る(図2の208)。データ処
理部112は、送られたスカラー倍点を用いて共有情報の
導出を行い、記憶部102に秘密情報105として格納する。
例えばスカラー倍点abQのx座標を、共有情報とする。
【0098】次にコンピュータ121が、入力されたデー
タ141から共有情報の導出を行う場合の動作について説
明する。コンピュータA101のデータ処理部112は、記憶
部102の秘密情報105から秘密鍵aを読み出しコンピュー
タA101の公開鍵aQを計算する。そしてネットワーク142
を介して公開鍵aQをデータ141としてコンピュータB121
に転送する。
【0099】コンピュータB121のデータ処理部132はコ
ンピュータA101の公開鍵aQの入力を入力メッセージ204
として受け付けると、データ処理部132は、記憶部122の
秘密情報125から読み出したコンピュータB121の秘密鍵
bと、コンピュータA101の公開鍵aQとをスカラー倍計算
部135へ送る(図2の206)。
【0100】スカラー倍計算部135は、秘密鍵bと公開鍵
aQによるスカラー倍点baQを計算し、計算されたスカラ
ー倍点をデータ処理部132へ送る(図2の208)。
【0101】データ処理部132は、送られたスカラー倍
点を用いて共有情報の導出を行い、記憶部122に秘密情
報125として格納する。例えばスカラー倍点baQのx座標
を共有情報とする。ここで数abと数baは数値として同じ
なので点abQと点baQは同じ点となり、同じ情報が導出さ
れたことになる。
【0102】ネットワーク142には、点aQと点bQが送信
されるが、点abQ(もしくは点baQ)を計算するには秘密鍵
aもしくは秘密鍵bを用いなければならない。すなわち秘
密鍵aもしくは秘密鍵bを知らなければ、共有情報を得る
ことができない。このようにして得られた共有情報は、
共通鍵暗号の秘密鍵として利用できる。
【0103】本実施形態においても、スカラー倍計算部
115、135は上述の特徴を備えるので、サイドチャネル攻
撃及びフォールト攻撃を防ぐ鍵交換処理が可能になる。
【0104】また上記説明における暗号化処理部、復号
化処理部、署名作成部、署名検証部および鍵交換処理部
は、専用のハードウェアを用いて行ってもよい。またス
カラー倍計算部をコプロセッサまたはそれ以外の専用ハ
ードウェアで実現しても良い。
【0105】またデータ処理部は、上記暗号化処理、復
号化処理、署名作成処理、署名検証処理、鍵交換処理の
うち、任意の一つ以上の処理を行えるように構成しても
よい。
【0106】
【発明の効果】以上述べたように本発明によれば、サイ
ドチャネル攻撃及びフォールト攻撃に対してより安全な
楕円曲線演算を用いたメッセージ処理が可能になる
【図面の簡単な説明】
【図1】実施形態におけるシステム構成図である。
【図2】各実施形態における情報の受け渡しを示すシー
ケンス図である。
【図3】実施形態におけるスカラー倍計算部の構成図で
ある。
【図4】第1実施例のスカラー倍計算方法を示すフロー
チャート図である。
【図5】第1実施例のスカラー倍計算方法を示すフロー
チャート図(続き)である。
【図6】第2実施例のスカラー倍計算方法を示すフロー
チャート図である。
【図7】実施形態における署名検証システムの構成図で
ある。
【符号の説明】
101,121,721:コンピュータ、701:スマートカード、
115,135,715,735:スカラー倍計算部、112:データ
処理部、132:復号化処理部、712:署名生成処理部、73
2:署名検証処理部、104,124,704,724:定数、105,
125,705,725:秘密情報、301:スカラー倍計算装置

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】楕円曲線暗号における楕円曲線についてス
    カラー値及び楕円曲線上の点からスカラー倍点を計算す
    る方法であって、 前記楕円曲線上の点が所定の定義方程式を満たすか否か
    を判定する第1のステップと、 前記楕円曲線上の点をランダム化する第2のステップ
    と、 前記スカラー値のビットの値を判定する第3のステップ
    と、 前記スカラー値のビットごとにそのビット値によらない
    同一種別の演算を行う第4のステップと、 前記スカラー値のすべてのビットについて前記第3のス
    テップ及び前記第4のステップを終了したとき、前記演
    算の結果に基づいて前記楕円曲線上の点の座標値を計算
    する第5のステップと、 計算された前記座標値が前記所定の定義方程式を満たす
    か否かを判定する第6のステップとを有することを特徴
    とするスカラー倍計算方法。
  2. 【請求項2】前記第4のステップは、前記ランダム化し
    た点より導出された値と前記楕円曲線上の点をランダム
    化せずに導出された値との演算を実行するステップを含
    むことを特徴とする請求項1記載のスカラー倍計算方
    法。
  3. 【請求項3】前記スカラー値のすべてのビットについて
    前記第3のステップ及び前記第4のステップを実行する
    代わりに、前記スカラー値を格納し前記スカラー値のビ
    ット数より大きいビット数を備える記憶領域のすべての
    ビットについて前記第3のステップ及び前記第4のステ
    ップを実行することを特徴とする請求項1記載のスカラ
    ー倍計算方法。
  4. 【請求項4】前記楕円曲線としてモンゴメリ型楕円曲線
    を用いることを特徴とする請求項1記載のスカラー倍計
    算方法。
  5. 【請求項5】前記楕円曲線としてワイエルシュトラス型
    楕円曲線を用いることを特徴とする請求項1記載のスカ
    ラー倍計算方法。
  6. 【請求項6】前記楕円曲線として標数2の有限体上に定
    義された楕円曲線を用いることを特徴とする請求項1記
    載のスカラー倍計算方法。
  7. 【請求項7】前記楕円曲線としてOEF上に定義された
    楕円曲線を用いることを特徴とする請求項1記載のスカ
    ラー倍計算方法。
  8. 【請求項8】暗号化されたデータから復号データを生成
    する復号化方法であって、請求項1記載のスカラー倍計
    算方法を用いるステップを有することを特徴とする復号
    化方法。
  9. 【請求項9】署名データの正当性を検証する署名検証方
    法であって、請求項1記載のスカラー倍計算方法を用い
    るステップを有することを特徴とする署名検証方法。
  10. 【請求項10】前記スカラー値は秘密鍵を示し、前記楕
    円曲線上の点は公開鍵を示すことを特徴とする請求項1
    記載のスカラー倍計算方法。
  11. 【請求項11】楕円曲線暗号における楕円曲線について
    スカラー値及び楕円曲線上の点からスカラー倍点を計算
    する装置であって、 前記楕円曲線上の点が所定の定義方程式を満たすか否か
    を判定する第1の処理手段と、 前記楕円曲線上の点をランダム化する第2の処理手段
    と、 前記スカラー値のビットの値を判定する第3の処理手段
    と、 前記スカラー値のビットごとにそのビット値によらない
    同一種別の演算を行う第4の処理手段と、 前記スカラー値のすべてのビットについて前記第3の処
    理手段及び前記第4の処理手段による処理を終了したと
    き、前記演算の結果に基づいて前記楕円曲線上の点の座
    標値を計算する第5の処理手段と、 計算された前記座標値が前記所定の定義方程式を満たす
    か否かを判定する第6の処理手段とを有することを特徴
    とするスカラー倍計算装置。
  12. 【請求項12】前記第4の処理手段は、前記ランダム化
    した点より導出された値と前記楕円曲線上の点をランダ
    ム化せずに導出された値との演算を実行する処理手段を
    含むことを特徴とする請求項11記載のスカラー倍計算
    装置。
  13. 【請求項13】前記スカラー値のすべてのビットについ
    て前記第3の処理手段及び前記第4の処理手段を実行す
    る代わりに、前記スカラー値を格納し前記スカラー値の
    ビット数より大きいビット数を備える記憶領域のすべて
    のビットについて前記第3の処理手段及び前記第4の処
    理手段を実行することを特徴とする請求項11記載のス
    カラー倍計算装置。
  14. 【請求項14】前記楕円曲線としてモンゴメリ型楕円曲
    線を用いることを特徴とする請求項11記載のスカラー
    倍計算装置。
  15. 【請求項15】前記楕円曲線としてワイエルシュトラス
    型楕円曲線を用いることを特徴とする請求項11記載の
    スカラー倍計算装置。
  16. 【請求項16】前記楕円曲線として標数2の有限体上に
    定義された楕円曲線を用いることを特徴とする請求項1
    1記載のスカラー倍計算装置。
  17. 【請求項17】前記楕円曲線としてOEF上に定義され
    た楕円曲線を用いることを特徴とする請求項11記載の
    スカラー倍計算装置。
  18. 【請求項18】暗号化されたデータから復号データを生
    成する復号化装置であって、請求項11記載のスカラー
    倍計算装置を含むことを特徴とする復号化装置。
  19. 【請求項19】請求項11記載のスカラー倍計算装置を
    含むことを特徴とするICカード。
  20. 【請求項20】署名データの正当性を検証する署名検証
    装置であって、請求項11記載のスカラー倍計算装置を
    含むことを特徴とする署名検証装置。
JP2002052897A 2002-02-28 2002-02-28 楕円曲線スカラー倍計算方法及び装置 Pending JP2003255831A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002052897A JP2003255831A (ja) 2002-02-28 2002-02-28 楕円曲線スカラー倍計算方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002052897A JP2003255831A (ja) 2002-02-28 2002-02-28 楕円曲線スカラー倍計算方法及び装置

Publications (1)

Publication Number Publication Date
JP2003255831A true JP2003255831A (ja) 2003-09-10

Family

ID=28664468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002052897A Pending JP2003255831A (ja) 2002-02-28 2002-02-28 楕円曲線スカラー倍計算方法及び装置

Country Status (1)

Country Link
JP (1) JP2003255831A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004252433A (ja) * 2003-01-28 2004-09-09 Matsushita Electric Ind Co Ltd 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置
JP2008042908A (ja) * 2006-08-04 2008-02-21 Samsung Electronics Co Ltd 高速モンゴメリパワーラダーアルゴリズムを利用する欠陥検出動作を具現するための二進有限領域におけるポイント加算方法及び加算演算装置
US7388957B2 (en) 2003-01-28 2008-06-17 Matsushita Electric Industrial Co., Ltd. Elliptic curve exponentiation apparatus that can counter differential fault attack, and information security apparatus
JP2009531726A (ja) * 2006-03-23 2009-09-03 シーメンス アクチエンゲゼルシヤフト 楕円曲線による暗号化方法
JP2010148036A (ja) * 2008-12-22 2010-07-01 Fujitsu Ltd 楕円曲線演算装置、方法及びプログラム
JP2010226402A (ja) * 2009-03-24 2010-10-07 Fujitsu Ltd 楕円曲線暗号を用いた認証処理に対する故障利用攻撃を検知する認証用媒体
US7916860B2 (en) 2005-03-19 2011-03-29 Samsung Electronics Co. Ltd. Scalar multiplication apparatus and method
US8379842B2 (en) 2006-03-04 2013-02-19 Samsung Electronics Co., Ltd. Cryptographic methods including Montgomery power ladder algorithms
WO2018168251A1 (ja) 2017-03-16 2018-09-20 株式会社デンソー 制御装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004252433A (ja) * 2003-01-28 2004-09-09 Matsushita Electric Ind Co Ltd 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置
US7388957B2 (en) 2003-01-28 2008-06-17 Matsushita Electric Industrial Co., Ltd. Elliptic curve exponentiation apparatus that can counter differential fault attack, and information security apparatus
JP4634046B2 (ja) * 2003-01-28 2011-02-16 パナソニック株式会社 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置
US7916860B2 (en) 2005-03-19 2011-03-29 Samsung Electronics Co. Ltd. Scalar multiplication apparatus and method
US8379842B2 (en) 2006-03-04 2013-02-19 Samsung Electronics Co., Ltd. Cryptographic methods including Montgomery power ladder algorithms
JP2009531726A (ja) * 2006-03-23 2009-09-03 シーメンス アクチエンゲゼルシヤフト 楕円曲線による暗号化方法
US8582761B2 (en) 2006-03-23 2013-11-12 Siemens Aktiengesellschaft Cryptographic method with elliptical curves
JP2008042908A (ja) * 2006-08-04 2008-02-21 Samsung Electronics Co Ltd 高速モンゴメリパワーラダーアルゴリズムを利用する欠陥検出動作を具現するための二進有限領域におけるポイント加算方法及び加算演算装置
JP2010148036A (ja) * 2008-12-22 2010-07-01 Fujitsu Ltd 楕円曲線演算装置、方法及びプログラム
JP2010226402A (ja) * 2009-03-24 2010-10-07 Fujitsu Ltd 楕円曲線暗号を用いた認証処理に対する故障利用攻撃を検知する認証用媒体
WO2018168251A1 (ja) 2017-03-16 2018-09-20 株式会社デンソー 制御装置
US11036846B2 (en) 2017-03-16 2021-06-15 Denso Corporation Control device

Similar Documents

Publication Publication Date Title
US7308096B2 (en) Elliptic scalar multiplication system
US7961873B2 (en) Password protocols using XZ-elliptic curve cryptography
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
US7864951B2 (en) Scalar multiplication method with inherent countermeasures
EP1729442B1 (en) An authentication system executing an elliptic curve digital signature cryptographic process
JP4671571B2 (ja) 秘密情報の処理装置および秘密情報の処理プログラムを格納するメモリ
US7856101B2 (en) Method for elliptic curve scalar multiplication
JP3821631B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
US7764785B2 (en) Method for communicating securely over an insecure communication channel
US7483533B2 (en) Elliptic polynomial cryptography with multi x-coordinates embedding
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
US20050195973A1 (en) Method for XZ-elliptic curve cryptography
US8102998B2 (en) Method for elliptic curve scalar multiplication using parameterized projective coordinates
US20060029221A1 (en) Elliptic polynomial cryptography with multi y-coordinates embedding
US11824986B2 (en) Device and method for protecting execution of a cryptographic operation
US20080273695A1 (en) Method for elliptic curve scalar multiplication using parameterized projective coordinates
EP1296224B1 (en) Elliptic scalar multiplication system
JP2010164904A (ja) 楕円曲線演算処理装置、楕円曲線演算処理プログラム及び方法
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
EP0952697B1 (en) Elliptic curve encryption method and system
KR100699836B1 (ko) 스칼라 곱에서 dfa 대책을 위한 장치 및 방법
JP2003255831A (ja) 楕円曲線スカラー倍計算方法及び装置
US7983415B2 (en) Method for performing iterative scalar multiplication which is protected against address bit attack
JP2005020735A (ja) データ処理装置におけるサイドチャネル攻撃防止
JP4423900B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム