JP2002207424A - 楕円曲線スカラー倍計算方法及び装置並びに記憶媒体 - Google Patents

楕円曲線スカラー倍計算方法及び装置並びに記憶媒体

Info

Publication number
JP2002207424A
JP2002207424A JP2000393279A JP2000393279A JP2002207424A JP 2002207424 A JP2002207424 A JP 2002207424A JP 2000393279 A JP2000393279 A JP 2000393279A JP 2000393279 A JP2000393279 A JP 2000393279A JP 2002207424 A JP2002207424 A JP 2002207424A
Authority
JP
Japan
Prior art keywords
point
elliptic curve
scalar
coordinates
montgomery
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
JP2000393279A
Other languages
English (en)
Other versions
JP3794266B2 (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 JP2000393279A priority Critical patent/JP3794266B2/ja
Priority to US10/049,264 priority patent/US20030156714A1/en
Priority to EP01982747A priority patent/EP1445891A4/en
Priority to PCT/JP2001/009781 priority patent/WO2002039664A2/ja
Publication of JP2002207424A publication Critical patent/JP2002207424A/ja
Application granted granted Critical
Publication of JP3794266B2 publication Critical patent/JP3794266B2/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

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

Abstract

(57)【要約】 【課題】高速であり且つスカラー倍点の座標を完全に与
える事のできるスカラー倍計算方法を提供すること。 【解決手段】高速なスカラー倍計算方法において与えら
れたスカラー倍点の部分情報から完全なスカラー倍点の
座標を復元する方法を与える。これにより、標数5以上
の有限体上定義された楕円曲線におけるスカラー倍点の
計算の際に、まず高速なスカラー倍計算方法を用いてス
カラー倍点の部分情報を与え、その結果からスカラー倍
点の完全な座標を復元し、出力することにより、高速で
あり且つ完全な座標を与えることができる。

Description

【発明の詳細な説明】 【0001】 【発明の属する技術分野】本発明はコンピュータネット
ワークにおけるセキュリティ技術に係り、特に楕円曲線
暗号における暗号処理実行方法に関する。 【0002】 【従来の技術】楕円曲線暗号はN.Koblitz, V.S.Miller
により提案された公開鍵暗号の一種である。公開鍵暗号
には、公開鍵と呼ばれる一般に公開してよい情報と、秘
密鍵と呼ばれる秘匿しなければならない秘密情報があ
る。与えられたメッセージの暗号化や署名の検証には公
開鍵を用い、与えられたメッセージの復号化や署名の作
成には秘密鍵を用いる。楕円曲線暗号における秘密鍵
は、スカラー値が担っている。また、楕円曲線暗号の安
全性は楕円曲線上の離散対数問題の求解が困難であるこ
とに由来している。ここで楕円曲線上の離散対数問題と
は、楕円曲線上のある点Pとそのスカラー倍の点dPが与
えられた時、スカラー値dを求める問題である。ここに
おいて、楕円曲線上の点とは、楕円曲線の定義方程式を
みたす数の組をいい、楕円曲線上の点全体には、無限遠
点という仮想的な点を単位元とした演算、すなわち楕円
曲線上の加法(乃至は加算)が定義される。そして、同
じ点同士の楕円曲線上の加法のことを、特に楕円曲線上
の2倍算という。楕円曲線上の2点の加法は次のように
して計算される。2点を通る直線を引くとその直線は楕
円曲線と他の点において交わる。その交わった点とx軸
に関して対称な点を加法を行なった結果の点とする。楕
円曲線上の点の2倍算は次のようにして計算される。楕
円曲線上の点における接線をひくと、その接線は楕円曲
線上の他の点において交わる。その交わった点とx座標
に関して対称な点を2倍算を行なった結果の点とする。
ある点に対し、特定の回数だけ加法を行なうことをスカ
ラー倍といい、その結果をスカラー倍点、その回数のこ
とをスカラー値という。 【0003】情報通信ネットワークの進展と共に電子情
報に対する秘匿や認証の為に暗号技術は不可欠な要素と
なってきている。そこでは暗号技術の安全性とともに高
速化が望まれている。楕円曲線上の離散対数問題が非常
に困難である為に、素因数分解の困難性を安全性の根拠
にしているRSA暗号と比べて、楕円曲線暗号は鍵長を
比較的短くすることができる。そのため比較的高速な暗
号処理が可能である。しかしながら、処理能力の制限さ
れているスマートカードや大量の暗号処理を行なう必要
のあるサーバ等においては、必ずしも満足できる程高速
であるとは限らない。それゆえに暗号のさらなる高速化
が必要となる。 【0004】楕円曲線暗号には、ワイエルシュトラス型
楕円曲線と呼ばれる楕円曲線が通常用いられている。A.
Miyaji, T.Ono, H.Cohen, Efficient elliptic curve e
xponentiation using mixed coordinates, Advances in
Cryptology Proceedings of ASIACRYPT'98, LNCS 151
4, Springer-Verlag, (1998) pp.51-65 には、ワイエル
シュトラス型楕円曲線において、ウィンドウ法を用いて
ヤコビアン座標を中心とした混合座標系を用いたスカラ
ー倍計算方法は高速なスカラー倍計算方法として記載さ
れている。この計算方法は、スカラー倍点の座標を、省
略することなく正確に表示している。すなわち、アフィ
ン座標系であれば、x座標及びy座標、射影座標乃至は
ヤコビアン座標であれば、X座標、Y座標及びZ座標の
値を全て与えている。 【0005】一方でモンゴメリ型楕円曲線BY=X
+AX+X(A,B∈F)を用いるとワイエルシュ
トラス型楕円曲線よりも高速に演算を実行できることが
P.L.Montgomery, Speeding the Pollard and Elliptic
Curve Methods of Factorization, Math. Comp. 48 (19
87) pp.243-264. に記載されている。これは、スカラー
値の特定のビットの値に依存して、楕円曲線上の点の組
(mP,(m+1)P)から点の組(2mP,(2m+1)P)乃至は点の組((2m
+1)P,(2m+2)P)を繰り返し計算するスカラー倍計算方法
において、モンゴメリ型楕円曲線を利用することによ
り、加算及び2倍算の計算時間が短縮されることに由来
する。このスカラー倍計算法は、ワイエルシュトラス型
楕円曲線における、ウィンドウ法を用いてヤコビアン座
標を中心とした混合座標系を用いた場合よりも、高速に
計算することができる。しかしながら、この方法は楕円
曲線上の点のy座標の値は計算しない。多くの暗号処理
においては、本質的にy座標を用いないので、この事は
問題にはならないが、一部の暗号処理を実行する又は完
全な形で標準に準拠しようとすれば、y座標の値も必要
となる。 【0006】以上は楕円曲線の定義体の標数が5以上の
素数の場合であるが、他方、標数2の有限体上定義され
た楕円曲線に対しては、スカラー倍点の完全な座標を与
え且つ高速なスカラー倍計算方法が J.Lopez, R.Dahab,
Fast Multiplication on Elliptic Curves over GF
(2m) without Precomputation, Cryptographics Hardwa
re and Embedded Systems: Proceedings of CHES'99, L
NCS 1717, Springer-Verlag, (1999) pp.316-327. に記
載されている。 【0007】 【発明が解決しようとする課題】上記従来技術により、
標数が5以上の有限体上定義された楕円曲線を用いて楕
円曲線暗号を構成した場合、ワイエルシュトラス型楕円
曲線においてウィンドウ法及び混合座標系を用いると、
スカラー倍点の座標を完全に計算することができるが、
モンゴメリ型楕円曲線のスカラー倍計算方法を用いた場
合程高速に計算することはできない。モンゴメリ型楕円
曲線におけるスカラー倍計算方法を用いると、ワイエル
シュトラス型楕円曲線においてウィンドウ法及び混合座
標系を用いた場合より高速に計算することが可能である
が、スカラー倍点の座標を完全に与えること、すなわち
y座標を与えることができない。したがって、スカラー
倍計算方法として、高速化を計ろうとするとスカラー倍
点の座標を完全に与えることができず、スカラー倍点の
座標を完全に与えようとすると高速に計算ができないと
いう状態にあった。 【0008】本発明の目的は、標数が5以上の有限体上
定義された楕円曲線において、モンゴメリ型楕円曲線に
おけるスカラー倍演算と同程度の高速さで、スカラー倍
点の座標を完全に与えることができるスカラー倍計算方
法を提供することにある。 【0009】 【課題を解決するための手段】上記目的を達する一手段
として、楕円曲線暗号における標数5以上の有限体上定
義された楕円曲線において、スカラー値及び楕円曲線上
の点からスカラー倍点を計算するスカラー倍計算方法で
あって、前記スカラー倍点の部分情報を計算するステッ
プと、前記スカラー倍点の部分情報から完全な座標を復
元するステップとを有することを特徴とする。 【0010】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義された楕円
曲線において、スカラー値及び楕円曲線上の点からスカ
ラー倍点を計算するスカラー倍計算方法であって、前記
スカラー倍点の部分情報を計算するステップと、前記ス
カラー倍点の部分情報からアフィン座標において完全な
座標を復元するステップとを有することを特徴とする。 【0011】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義された楕円
曲線において、スカラー値及び楕円曲線上の点からスカ
ラー倍点を計算するスカラー倍計算方法であって、前記
スカラー倍点の部分情報を計算するステップと、前記ス
カラー倍点の部分情報から射影座標において完全な座標
を復元するステップとを有することを特徴とする。 【0012】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたモン
ゴメリ型楕円曲線において、スカラー値及びモンゴメリ
型楕円曲線上の点からスカラー倍点を計算するスカラー
倍計算方法であって、前記スカラー倍点の部分情報を計
算するステップと、前記スカラー倍点の部分情報から完
全な座標を復元するステップとを有することを特徴とす
る。 【0013】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたワイ
エルシュトラス型楕円曲線において、スカラー値及びワ
イエルシュトラス型楕円曲線上の点からスカラー倍点を
計算するスカラー倍計算方法であって、前記スカラー倍
点の部分情報を計算するステップと、前記スカラー倍点
の部分情報から完全な座標を復元するステップとを有す
ることを特徴とする。 【0014】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたモン
ゴメリ型楕円曲線において、スカラー値及びモンゴメリ
型楕円曲線上の点からスカラー倍点を計算するスカラー
倍計算方法であって、前記スカラー倍点の部分情報を計
算するステップと、前記スカラー倍点の部分情報として
射影座標で与えられた前記スカラー倍点のX座標及びZ
座標並びに前記スカラー倍点と前記モンゴメリ型楕円曲
線上の点を加算した点の射影座標におけるX座標及びZ
座標を与え、アフィン座標において完全な座標を復元す
るステップとを有することを特徴とする。 【0015】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたモン
ゴメリ型楕円曲線において、スカラー値及びモンゴメリ
型楕円曲線上の点からスカラー倍点を計算するスカラー
倍計算方法であって、前記スカラー倍点の部分情報を計
算するステップと、前記スカラー倍点の部分情報として
射影座標で与えられた前記スカラー倍点のX座標及びZ
座標並びに前記スカラー倍点と前記モンゴメリ型楕円曲
線上の点を加算した点の射影座標におけるX座標及びZ
座標を与え、射影座標において完全な座標を復元するス
テップとを有することを特徴とする。 【0016】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたモン
ゴメリ型楕円曲線において、スカラー値及びモンゴメリ
型楕円曲線上の点からスカラー倍点を計算するスカラー
倍計算方法であって、前記スカラー倍点の部分情報を計
算するステップと、前記スカラー倍点の部分情報として
射影座標で与えられた前記スカラー倍点のX座標及びZ
座標、前記スカラー倍点と前記モンゴメリ型楕円曲線上
の点を加算した点の射影座標におけるX座標及びZ座標
並びに前記スカラー倍点と前記モンゴメリ型楕円曲線上
の点を減算した点の射影座標におけるX座標及びZ座標
を与え、アフィン座標において完全な座標を復元するス
テップとを有することを特徴とする。 【0017】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたモン
ゴメリ型楕円曲線において、スカラー値及びモンゴメリ
型楕円曲線上の点からスカラー倍点を計算するスカラー
倍計算方法であって、前記スカラー倍点の部分情報を計
算するステップと、前記スカラー倍点の部分情報として
射影座標で与えられた前記スカラー倍点のX座標及びZ
座標、前記スカラー倍点と前記モンゴメリ型楕円曲線上
の点を加算した点の射影座標におけるX座標及びZ座標
並びに前記スカラー倍点と前記モンゴメリ型楕円曲線上
の点を減算した点の射影座標におけるX座標及びZ座標
を与え、射影座標において完全な座標を復元するステッ
プとを有することを特徴とする。 【0018】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたモン
ゴメリ型楕円曲線において、スカラー値及びモンゴメリ
型楕円曲線上の点からスカラー倍点を計算するスカラー
倍計算方法であって、前記スカラー倍点の部分情報を計
算するステップと、前記スカラー倍点の部分情報として
アフィン座標で与えられた前記スカラー倍点のx座標、
前記スカラー倍点と前記モンゴメリ型楕円曲線上の点を
加算した点のアフィン座標におけるx座標並びに前記ス
カラー倍点と前記モンゴメリ型楕円曲線上の点を減算し
た点のアフィン座標におけるx座標を与え、アフィン座
標において完全な座標を復元するステップとを有するこ
とを特徴とする。 【0019】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたワイ
エルシュトラス型楕円曲線において、スカラー値及びワ
イエルシュトラス型楕円曲線上の点からスカラー倍点を
計算するスカラー倍計算方法であって、前記スカラー倍
点の部分情報を計算するステップと、前記スカラー倍点
の部分情報として射影座標で与えられた前記スカラー倍
点のX座標及びZ座標、前記スカラー倍点と前記ワイエ
ルシュトラス型楕円曲線上の点を加算した点の射影座標
におけるX座標及びZ座標並びに前記スカラー倍点と前
記ワイエルシュトラス型楕円曲線上の点を減算した点の
射影座標におけるX座標及びZ座標を与え、アフィン座
標において完全な座標を復元するステップとを有するこ
とを特徴とする。 【0020】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたワイ
エルシュトラス型楕円曲線において、スカラー値及びワ
イエルシュトラス型楕円曲線上の点からスカラー倍点を
計算するスカラー倍計算方法であって、前記スカラー倍
点の部分情報を計算するステップと、前記スカラー倍点
の部分情報として射影座標で与えられた前記スカラー倍
点のX座標及びZ座標、前記スカラー倍点と前記ワイエ
ルシュトラス型楕円曲線上の点を加算した点の射影座標
におけるX座標及びZ座標並びに前記スカラー倍点と前
記ワイエルシュトラス型楕円曲線上の点を減算した点の
射影座標におけるX座標及びZ座標を与え、射影座標に
おいて完全な座標を復元するステップとを有することを
特徴とする。 【0021】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたワイ
エルシュトラス型楕円曲線において、スカラー値及びワ
イエルシュトラス型楕円曲線上の点からスカラー倍点を
計算するスカラー倍計算方法であって、前記スカラー倍
点の部分情報を計算するステップと、前記スカラー倍点
の部分情報としてアフィン座標で与えられた前記スカラ
ー倍点のx座標、前記スカラー倍点と前記ワイエルシュ
トラス型楕円曲線上の点を加算した点のアフィン座標に
おけるx座標並びに前記スカラー倍点と前記ワイエルシ
ュトラス型楕円曲線上の点を減算した点のアフィン座標
におけるx座標を与え、アフィン座標において完全な座
標を復元するステップとを有することを特徴とする。 【0022】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたワイ
エルシュトラス型楕円曲線において、スカラー値及びワ
イエルシュトラス型楕円曲線上の点からスカラー倍点を
計算するスカラー倍計算方法であって、前記ワイエルシ
ュトラス型楕円曲線をモンゴメリ型楕円曲線に変換する
ステップと、モンゴメリ型楕円曲線におけるスカラー倍
点の部分情報を計算するステップと、前記モンゴメリ型
楕円曲線におけるスカラー倍点の部分情報からワイエル
シュトラス型楕円曲線において完全な座標を復元するス
テップとを有することを特徴とする。 【0023】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたワイ
エルシュトラス型楕円曲線において、スカラー値及びワ
イエルシュトラス型楕円曲線上の点からスカラー倍点を
計算するスカラー倍計算方法であって、前記ワイエルシ
ュトラス型楕円曲線をモンゴメリ型楕円曲線に変換する
ステップと、モンゴメリ型楕円曲線におけるスカラー倍
点の部分情報を計算するステップと、前記モンゴメリ型
楕円曲線におけるスカラー倍点の部分情報からモンゴメ
リ型楕円曲線において完全な座標を復元するステップ
と、前記モンゴメリ型楕円曲線において完全な座標が復
元されたスカラー倍点からワイエルシュトラス型楕円曲
線におけるスカラー倍点を計算するステップとを有する
ことを特徴とする。 【0024】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたワイ
エルシュトラス型楕円曲線において、スカラー値及びワ
イエルシュトラス型楕円曲線上の点からスカラー倍点を
計算するスカラー倍計算方法であって、前記ワイエルシ
ュトラス型楕円曲線をモンゴメリ型楕円曲線に変換する
ステップと、モンゴメリ型楕円曲線におけるスカラー倍
点の部分情報を計算するステップと、前記モンゴメリ型
楕円曲線におけるスカラー倍点の部分情報としてモンゴ
メリ型楕円曲線において射影座標で与えられたスカラー
倍点のX座標及びZ座標並びに前記スカラー倍点とモン
ゴメリ型楕円曲線上の点を加算した点の射影座標におけ
るX座標及びZ座標を与え、ワイエルシュトラス型楕円
曲線においてアフィン座標における完全な座標を復元す
るステップとを有することを特徴とする。 【0025】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたワイ
エルシュトラス型楕円曲線において、スカラー値及びワ
イエルシュトラス型楕円曲線上の点からスカラー倍点を
計算するスカラー倍計算方法であって、前記ワイエルシ
ュトラス型楕円曲線をモンゴメリ型楕円曲線に変換する
ステップと、モンゴメリ型楕円曲線におけるスカラー倍
点の部分情報を計算するステップと、前記モンゴメリ型
楕円曲線におけるスカラー倍点の部分情報としてモンゴ
メリ型楕円曲線において射影座標で与えられたスカラー
倍点のX座標及びZ座標並びに前記スカラー倍点とモン
ゴメリ型楕円曲線上の点を加算した点の射影座標におけ
るX座標及びZ座標を与え、ワイエルシュトラス型楕円
曲線において射影座標における完全な座標を復元するス
テップとを有することを特徴とする。 【0026】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたワイ
エルシュトラス型楕円曲線において、スカラー値及びワ
イエルシュトラス型楕円曲線上の点からスカラー倍点を
計算するスカラー倍計算方法であって、前記ワイエルシ
ュトラス型楕円曲線をモンゴメリ型楕円曲線に変換する
ステップと、モンゴメリ型楕円曲線におけるスカラー倍
点の部分情報を計算するステップと、前記モンゴメリ型
楕円曲線におけるスカラー倍点の部分情報としてモンゴ
メリ型楕円曲線において射影座標で与えられたスカラー
倍点のX座標及びZ座標、前記スカラー倍点とモンゴメ
リ型楕円曲線上の点を加算した点の射影座標におけるX
座標及びZ座標並びに前記スカラー倍点とモンゴメリ型
楕円曲線上の点を減算した点の射影座標におけるX座標
及びZ座標を与え、ワイエルシュトラス型楕円曲線にお
いてアフィン座標における完全な座標を復元するステッ
プとを含むことを特徴とする。 【0027】また本発明は、楕円曲線暗号における標数
5以上の有限体上定義されたワイエルシュトラス型楕円
曲線において、スカラー値及びワイエルシュトラス型楕
円曲線上の点からスカラー倍点を計算するスカラー倍計
算方法であって、前記ワイエルシュトラス型楕円曲線を
モンゴメリ型楕円曲線に変換するステップと、モンゴメ
リ型楕円曲線におけるスカラー倍点の部分情報を計算す
るステップと、前記モンゴメリ型楕円曲線におけるスカ
ラー倍点の部分情報としてモンゴメリ型楕円曲線におい
て射影座標で与えられたスカラー倍点のX座標及びZ座
標、前記スカラー倍点とモンゴメリ型楕円曲線上の点を
加算した点の射影座標におけるX座標及びZ座標並びに
前記スカラー倍点とモンゴメリ型楕円曲線上の点を減算
した点の射影座標におけるX座標及びZ座標を与え、ワ
イエルシュトラス型楕円曲線において射影座標における
完全な座標を復元するステップとを有することを特徴と
する。 【0028】また上記目的を達する一手段として、楕円
曲線暗号における標数5以上の有限体上定義されたワイ
エルシュトラス型楕円曲線において、スカラー値及びワ
イエルシュトラス型楕円曲線上の点からスカラー倍点を
計算するスカラー倍計算方法であって、前記ワイエルシ
ュトラス型楕円曲線をモンゴメリ型楕円曲線に変換する
ステップと、モンゴメリ型楕円曲線におけるスカラー倍
点の部分情報を計算するステップと、前記モンゴメリ型
楕円曲線におけるスカラー倍点の部分情報としてモンゴ
メリ型楕円曲線においてアフィン座標で与えられたスカ
ラー倍点のx座標、前記スカラー倍点とモンゴメリ型楕
円曲線上の点を加算した点のアフィン座標におけるx座
標並びに前記スカラー倍点とモンゴメリ型楕円曲線上の
点を減算した点のアフィン座標におけるx座標を与え、
ワイエルシュトラス型楕円曲線においてアフィン座標に
おける完全な座標を復元するステップとを有することを
特徴とする。 【0029】 【発明の実施の形態】以下、本発明の実施例を図面によ
り説明する。 【0030】図1は暗号/復号処理装置の構成を示した
ものである。この暗号/復号処理装置101は、入力さ
れたメッセージの暗号化、暗号化されたメッセージの復
号化のいずれも行えるようにしたものである。尚、ここ
で扱う楕円曲線は標数5以上の楕円曲線とする。 【0031】入力されたメッセージを暗号化し、暗号化
されたメッセージを復号化する場合、一般に次の数1が
成立する。 【0032】 【数1】 Pm+k(aQ)−a(kQ)=Pm …数1 ここで、Pはメッセージであり、kは乱数、aは秘密
鍵を示す定数、Qは定点である。この式のPm+k(a
Q)のaQは、公開鍵を示しており、入力されたメッセ
ージを公開鍵によって暗号化することを示している。a
(kQ)のaは秘密鍵を示しており、秘密鍵により復号
化することを示している。 【0033】従って、図1に示した暗号/復号処理装置
101をメッセージの暗号化だけに用いる場合には、P
m+k(aQ)及びkQを計算して出力し、復号化だけ
に用いる場合には、秘密鍵a及びkQより−a(kQ)
を計算し、(Pm+k(aQ))−a(kQ)を計算し
て出力するようにすればよい。 【0034】図1に示した暗号/復号処理装置101
は、処理部110と、記憶部120、レジスタ部130
とを有している。処理部120は、暗号化処理に必要な
処理を機能ブロックで示しており、入力されたメッセー
ジの暗号化や暗号化されたメッセージの復号化を行う暗
号/復号処理部102、暗号/復号処理部102で暗号化
や復号化を行うのに必要なパラメータを演算するスカラ
ー倍計算部103とを有している。記憶部120は、定
数、秘密情報(例えば、秘密鍵である。)などを記憶し
ている。レジスタ部130は、暗号化又は復号化処理に
おいて演算の結果や、記憶部120に記憶された情報を
一次的に記憶する。尚、処理部110、レジスタ部13
0は以下に説明する処理を行う専用の演算装置やCPU
などにより実現することができ、記憶部120は、RA
M、ROMなどによって実現することができる。 【0035】次に、図1に示した暗号/復号処理装置1
01の動作について説明する。図3は、暗号/復号処理
装置101において暗号化、復号化を行う場合の各部の
情報の伝達を示したものである。 【0036】まず、図30により入力されたメッセージ
を暗号化する場合の動作について説明する。 【0037】暗号/復号処理部102へメッセージが入
力されると(3001)、入力されたメッセージのビッ
ト長が予め定めたビット長か否かを判断する。予め定め
たビット長より長い場合には、予め定めたビット長とな
るようにメッセージを区切る(以下、メッセージは所定
のビット長に区切られているものとして説明する。)。
次に、暗号/復号処理部102は、メッセージのビット
列によって表される数値をx座標(x1)にもつ楕円曲
線上のy座標の値(y1)を計算する。例えば、モンゴ
メリ型楕円曲線は、By1=x1+Ax1+x1で表
されるので、これよりy座標の値を求めることができ
る。尚、B、Aはそれぞれ定数である。暗号化処理部1
20は、公開鍵aQ及びQのx座標、y座標の値をスカ
ラー倍計算部103へ送る。このとき、暗号化処理部1
20は乱数を生成し、これをスカラー倍計算部103へ
送る(3002)。スカラー倍計算部103は、Qのx
座標、y座標の値、乱数によるスカラー倍点(xd1、y
d1)と、公開鍵aQのx座標、y座標の値、乱数による
スカラー倍点(xd2、yd2)とを計算し(3003)、
計算されたスカラー倍点を暗号化処理部102へ送る
(3004)。暗号化処理部102は、送られたスカラ
ー倍点を用いて、暗号化処理を行う(3005)。例え
ば、モンゴメリ型の楕円曲線については、次式により暗
号化されたメッセージxe1、xe2を得る。 【0038】 【数2】 xe1=B((yd1−y1)/(xd1−x1))−A−x1−xd1 …数2 【0039】 【数3】 xe2=xd2 …数3 暗号/復号処理装置101は暗号/復号処理部102で暗
号化されたメッセージを出力する。 【0040】次に、図32により暗号化されたメッセー
ジを復号化する場合の動作について説明する。 【0041】暗号/復号処理部102へ暗号化されたメ
ッセージが入力されると(3201)、暗号化されたメ
ッセージのビット列によって表される数値をx座標にも
つ楕円曲線上のy座標の値を計算する。ここで、暗号化
されたメッセージがxe1、xe2のビット列であり、モン
ゴメリ型楕円曲線の場合、y座標の値(ye1)はBye1
=xe1+Axe1+xe1から得られる。尚、B、A
はそれぞれ定数である。暗号化処理部120は、x座
標、y座標の値(xe1、ye1)をスカラー倍計算部10
3へ送る(3202)。スカラー倍計算部103は記憶
部120から秘密情報を読み出し(3203)、x座
標、y座標の値、秘密情報からスカラー倍点(xd3、y
d3)を計算し(3204)、計算されたスカラー倍点を
暗号/復号処理部102へ送る(3205)。暗号化処
理部102は、送られたスカラー倍点を用いて、復号化
処理を行う(3206)。例えば、暗号化されたメッセ
ージが、xe1、xe2のビット列であり、モンゴメリ型の
楕円曲線の場合は、次式によりxf1を得る。 【0042】 【数4】 xf1=B((ye2+yd3)/(xe2-xd3))2-A-xe2-xd3 …数4 このxf1は、暗号化される前のメッセージx1に相当す
るものである。 【0043】以上のようにして、暗号/復号処理部10
2により暗号化、または復号化処理が行われる。 【0044】次に、暗号化処理装置101のスカラー倍
計算部103の処理について説明する。ここでは、暗号
化処理装置101が、復号化処理を行う場合を例に以
下、説明する。 【0045】図2は、スカラー倍計算部103の機能ブ
ロックを示したものである。図25は、スカラー倍計算
部103の動作を示したものである。 【0046】高速スカラー倍計算部202が、秘密情報
であるスカラー値及び暗号化されたメッセージと、暗号
化されたメッセージがX座標となる楕円曲線上のY座標の
値である楕円曲線上の点を受け取る(ステップ250
1)と、高速スカラー倍計算部202は受け取ったスカ
ラー値と楕円曲線上の点からスカラー倍点の座標の一部
の値を計算し(ステップ2502)、その情報を座標復
元部203に与える(ステップ2503)。座標復元部
203は与えられたスカラー倍点の情報及び入力された
楕円曲線上の点よりスカラー倍点の座標の復元を行なう
(ステップ2504)。スカラー倍計算装置201は完
全に座標が与えられたスカラー倍点を計算結果として出
力する(ステップ2505)。ここで、完全に座標が与
えられたスカラー倍点とは、y座標が計算されて出力さ
れることを意味する(以下、同じ。)。 【0047】以下、スカラー倍計算部103の高速スカ
ラー倍計算部202、座標復元部203についていくつ
かの実施例を説明する。 【0048】第1の実施例は、スカラー倍計算装置10
3がスカラー値d及びモンゴメリ型楕円曲線上の点Pか
ら、モンゴメリ型楕円曲線におけるアフィン座標の点と
して完全な座標が与えられたスカラー倍点(xd,yd
を計算し出力するものである。スカラー値d及びモンゴ
メリ型楕円曲線上の点Pをスカラー倍計算装置103に
入力すると高速スカラー倍計算部202がそれを受け取
る。高速スカラー倍計算部202は受け取ったスカラー
値dと与えられたモンゴメリ型楕円曲線上の点Pからモ
ンゴメリ型楕円曲線において射影座標で表されたスカラ
ー倍点dP=(Xd,Yd,Zd)の座標のうちXd及びZd、射影座標
で表されたモンゴメリ型楕円曲線上の点(d+1)P=(Xd+1,
Yd+1,Zd+1) の座標のうちXd+1及びZd+1を計算し、アフ
ィン座標で表された入力されたモンゴメリ型楕円曲線上
の点P=(x,y)と共にその情報を座標復元部203に与
える。座標復元部203は与えられた座標の値Xd、Zd
Xd+1、Zd+1、x及びyよりモンゴメリ型楕円曲線におい
てアフィン座標で表されたスカラー倍点dP=(xd,yd)の
座標xd及びydの復元を行なう。スカラー倍計算装置1
03はアフィン座標において完全に座標が与えられたス
カラー倍点(xd,yd)を計算結果として出力する。 【0049】次に図11により、座標x,y,Xd,Zd,Xd+1,Z
d+1が与えられた場合にxd,ydを出力する座標復元部の処
理について説明する。 【0050】座標復元部203では、モンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,
Yd,Zd)の座標うちXd及びZd、射影座標で表されたモンゴ
メリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座標
のうちXd+1及びZd+1、スカラー倍計算装置103に入力
されたモンゴメリ型楕円曲線上の点Pをアフィン座標で
表した(x,y)を入力し、以下の手順でアフィン座標おい
て完全な座標が与えられたスカラー倍点(xd,yd)を出力
する。ここで入力されたモンゴメリ型楕円曲線上の点P
のアフィン座標を(x,y)で、射影座標を(X,Y,Z)で
それぞれ表す。入力されたスカラー値をdとしてモンゴ
メリ型楕円曲線におけるスカラー倍点dPのアフィン座標
を(xd,yd)で、射影座標を(Xd,Yd,Zd)でそれぞれ表す。
モンゴメリ型楕円曲線上の点(d-1)Pのアフィン座標を(x
d-1,yd-1)で、射影座標を(Xd-1,Yd-1,Zd-1)でそれぞれ
表す。モンゴメリ型楕円曲線上の点(d+1)Pのアフィン座
標を(xd+1,yd+1)で、射影座標を(Xd+1,Yd+1,Zd+1)でそ
れぞれ表す。 【0051】ステップ1101においてXd×xが計算さ
れ、レジスタT1に格納される。ステップ1102にお
いてT1-Zdが計算される。ここでレジスタT1にはXdxが
格納されており、したがってXdx-Zd が計算される。そ
の結果がレジスタT1に格納される。ステップ1103
においてZd×xが計算され、レジスタT2に格納される。
ステップ1104においてXd-T2が計算される。ここで
レジスタT2にはZdxが格納されており、したがってXd-x
Zdが計算される。その結果がレジスタT2に格納され
る。ステップ1105においてXd+1×T2が計算され
る。ここでレジスタT2にはXd-xZdが格納されており、
したがってXd+1(Xd-xZd)が計算される。その結果がレジ
スタT3に格納される。ステップ1106においてT2
2乗が計算される。ここでレジスタT2には(Xd-xZd)が
格納されており、したがって(Xd-xZd)2が計算される。
その結果がレジスタT2に格納される。ステップ110
7においてT2×Xd+1が計算される。ここでレジスタT2
には(Xd-xZd)2が格納されており、したがってXd+1(Xd-x
Zd)2が計算される。その結果がレジスタT2に格納され
る。ステップ1108においてT2×Zd+1が計算され
る。ここでレジスタT2にはXd+1(Xd-xZd)2が格納されて
おり、したがってZd+1Xd+1(Xd-xZd)2が計算される。そ
の結果がレジスタT2に格納される。ステップ1109
においてT2×yが計算される。ここでレジスタT2にはZ
d+1Xd+1(Xd-xZd)2が格納されており、したがってyZd+1X
d+1(Xd-xZd)2が計算される。その結果がレジスタT2
格納される。ステップ1110においてT2×Bが計算さ
れる。ここでレジスタT2にはyZd+1Xd+1(Xd-xZd)2が格
納されており、したがってByZd+1Xd+1(Xd-xZd)2が計算
される。その結果がレジスタT2に格納される。ステッ
プ1111においてT2×Zdが計算される。ここでレジ
スタT2にはByZd+1Xd+1(Xd-xZd)2が格納されており、し
たがってByZd+1Xd+1(Xd-xZd)2Zdが計算される。その結
果がレジスタT2に格納される。ステップ1112にお
いてT2×Xdが計算される。ここでレジスタT2にはByZ
d+1Xd+1(Xd-xZd)2Zdが格納されており、したがってByZ
d+1Xd+1(Xd-xZd)2ZdXdが計算される。その結果がレジス
タT4に格納される。ステップ1113においてT2×Zd
が計算される。ここでレジスタT2にはByZd+1Xd+1(Xd-x
Zd)2Zdが格納されており、したがってByZd+1Xd+1(Xd-xZ
d)2Zdが計算される。その結果がレジスタT2に格納され
る。ステップ1114においてレジスタT2の逆元が計
算される。ここでレジスタT2にはByZd+1Xd+1(Xd-xZd)2
Zd 2が格納されており、したがって1/ByZd+1Xd+1(Xd-x
Zd)2Zd 2が計算される。その結果がレジスタT2に格納さ
れる。ステップ1115においてT2×Tが計算され
る。ここでレジスタT2には1/ByZd+1Xd+1(Xd-xZd)2Zd 2
がレジスタTにはByZd+1Xd+1(Xd-xZd)2ZdXdがそれぞ
れ格納されており、したがって(ByZd+1Xd+1(Xd-xZd)2Zd
Xd)/(ByZd+1Xd+1(Xd-xZd)2Zd 2)(=Xd/Zd)が計算され
る。その結果がレジスタxdに格納される。ステップ1
116においてT1×Zd+1が計算される。ここでレジス
タT1にはXdx-Zdが格納されており、したがってZd+1(Xd
x-Zd)が計算される。その結果がレジスタT4に格納され
る。ステップ1117においてレジスタT1の2乗が計
算される。ここでレジスタT1には(Xdx-Zd)が格納され
ており、したがって(Xdx-Zd)2が計算される。その結果
がレジスタT1に格納される。ステップ1118におい
てT1×Tが計算される。ここでレジスタT1には(Xdx
-Zd)2がレジスタTには1/ByZd+1Xd+1(Xd-xZd)2がそれ
ぞれ格納されており、したがって(Xdx-Zd)2/ByZd+1Xd+1
(Xd-xZd)2Zd 2 が計算される。その結果がレジスタT2
格納される。ステップ1119においてT3+T4が計算
される。ここでレジスタT3にはXd+1(Xd-xZd) がレジス
タT4にはZd+1 (Xdx-Zd)がそれぞれ格納されており、し
たがってXd+1(Xd-xZd)+Zd+1(Xdx-Zd)が計算される。そ
の結果がレジスタT1に格納される。ステップ1120
においてT3-T4が計算される。ここでレジスタT3には
Xd+1(Xd-xZd)がレジスタT4にはZd+1(Xdx-Zd)がそれぞ
れ格納されており、したがってXd+1(Xd-xZd)-Zd+1(Xdx-
Zd)が計算される。その結果がレジスタT3に格納され
る。ステップ1121においてT1×T3が計算される。
ここでレジスタT1にはXd+1(Xd-xZd)+Zd+1(Xdx-Zd)がレ
ジスタT3にはXd+1(Xd-xZd)-Zd+1(Xdx-Zd)がそれぞれ格
納されており、したがって{Xd+1(Xd-xZd)+Zd+1(Xdx-
Zd)}{Xd+1(Xd-xZd)-Zd+1(Xdx-Zd)}が計算される。その
結果がレジスタT1に格納される。ステップ1122に
おいてT1×T2が計算される。ここでレジスタT1には
{Xd+1(Xd-xZd)+Zd+1(Xdx-Zd)}{Xd+1(Xd-xZd)-Zd+1(Xdx-
Zd)}がレジスタT2には(Xdx-Zd)2/ByZd+1Xd+1(Xd-xZd)2
Zd 2がそれぞれ格納されており、したがって 【0052】 【数5】 【0053】が計算される。その結果がydに格納され
る。xdにはステップ1115において(ByZd+1Xd+1(Xd-
xZd)2 ZdXd)/(ByZd+1Xd+1(Xd-xZd) 2 Xd 2)が格納され、
その後更新が行なわれないので、その値が保持されてい
る。 【0054】上記手順により座標復元部203へ与えら
れたx、y、Xd、Zd、Xd+1、Zd+1からモンゴメリ型楕円
曲線におけるスカラー倍点のアフィン座標(xd,yd)に
おける値が全て復元される理由は以下の通りである。
尚、点(d+1)Pは点dPに点Pを加算した点であり、点(d-1)
Pは点dPから点Pを減算した点である。モンゴメリ型楕円
曲線のアフィン座標における加算公式に代入すると、次
の式を得る。 【0055】 【数6】 【0056】 【数7】 【0057】両辺を各々減算することにより、 【0058】 【数8】 【0059】を得る。したがって、 【0060】 【数9】 【0061】となる。ここでxd=Xd/Zd、xd+1=Xd+1/
Zd+1、xd-1=Xd-1/Zd-1であり、この値を代入すること
により射影座標の値へと変換すると、次の式を得る。 【0062】 【数10】 【0063】モンゴメリ型楕円曲線の射影座標での加算
公式は 【0064】 【数11】 【0065】 【数12】 【0066】である。ここでXm及びZmはモンゴメリ型楕
円曲線上の点Pのm倍点mPの射影座標におけるX座標及び
Z座標、Xn及びZnはモンゴメリ型楕円曲線上の点Pのn倍
点nPの射影座標におけるX座標及びZ座標、Xm-n及びZm-n
はモンゴメリ型楕円曲線上の点Pの(m-n)倍点(m-n)Pの射
影座標におけるX座標及びZ座標、Xm+n及びZm+nはモンゴ
メリ型楕円曲線上の点Pの(m+n)倍点(m+n)Pの射影座標に
おけるX座標及びZ座標であり、m,nはm>nをみたす
正整数である。この式はXm/Zm=xm、Xn/Zn=xn、Xm-n
/Zm-n=xm-nが不変のとき、Xm+n/Zm+n=xm+nも不変と
なるので、射影座標での公式としてうまく働いている。
他方、 【0067】 【数13】 【0068】 【数14】 【0069】とおくと、この式でXm/Zm=xm、Xn/Zn
n、Xm+n/Zm+n=xm+nが不変のとき、X'm-n/Z'm-nも不
変となる。また、X'm-n/Z'm-n=Xm-n/Zm-nをみたすの
で、xm-nの射影座標としてX'm-n,Z'm-nをとってよい。
m=d、n=1として上記公式を用いてydの式よりXd-1
びZd-1を消去し、X1=x,Z1=1とおくことにより、次の
式を得る。 【0070】 【数15】 【0071】xd=Xd/Zdであるが、逆元演算の回数を減
らす目的でydの分母と通分することにより、 【0072】 【数16】 【0073】となる。ここで、xd,ydは図11の処理に
より与えられている。したがって、アフィン座標(xd,
yd)の値が全て復元されていることになる。 【0074】上記手順はステップ1101、ステップ1
103、ステップ1105、ステップ1107、ステッ
プ1108、ステップ1109、ステップ1110、ス
テップ1111、ステップ1112、ステップ111
3、ステップ1115、ステップ1116、ステップ1
118、ステップ1121及びステップ1122におい
て有限体上の乗算の計算量を必要とする。また、ステッ
プ1106及びステップ1117において有限体上の2
乗算の計算量を必要とする。また、ステップ1114に
おいて有限体上の逆元演算の計算量を必要とする。有限
体上の加算及び減算の計算量は、有限体上の乗算の計算
量、2乗算の計算量及び逆元演算の計算量と比べて比較
的小さいので無視してもよい。有限体上の乗算の計算量
をM、有限体上の2乗算の計算量をS及び有限体上の逆
元演算の計算量をIとすると、上記手順は15M+2S
+Iの計算量を必要とする。これは高速スカラー倍計算
の計算量と比べてはるかに小さい。例えばスカラー値d
が160ビットであれば、高速スカラー倍計算の計算量
はおおよそ1500M弱と見積もられる。S=0.8
M、I=40Mと仮定すると座標復元の計算量は56.
6Mであり、高速スカラー倍計算の計算量と比べてはる
かに小さい。したがって効率的に座標を復元できている
ことが示された。 【0075】尚、上記手順をとらなくても、上記計算式
により与えられたxd,ydの値が計算できればxd,yd
値が復元できる。その場合においては一般的に復元に必
要となる計算量が増大する。また、楕円曲線のパラメタ
であるBの値を小さくとることにより、ステップ111
0における乗算の計算量を削減することができる。 【0076】次に図4により、スカラー値d及びモンゴ
メリ型楕円曲線上の点Pから、Xd,Zd,Xd+1,Zd+1を出力す
る高速スカラー倍計算部の処理を説明する。 【0077】高速スカラー倍計算部202では、スカラ
ー倍計算装置103に入力されたモンゴメリ型楕円曲線
上の点Pを入力し、以下の手順によりモンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,
Yd,Zd)のうちXd及びZd、射影座標で表されたモンゴメリ
型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)のうちXd+1
及びZd+1を出力する。ステップ401として、変数Iに
初期値1を代入する。ステップ402として、点Pの2
倍点2Pを計算する。ここで点Pは射影座標において(x,
y,1)として表し、モンゴメリ型楕円曲線の射影座標に
おける2倍算の公式を用いて2倍点2Pを計算する。ステ
ップ403として、スカラー倍計算装置103に入力さ
れた楕円曲線上の点Pとステップ402で求めた点2P
を、点の組(P,2P)として格納する。ここで点P及び点2P
は射影座標で表されている。ステップ404として、変
数Iとスカラー値dのビット長とが一致するかどうかを
判定し、一致すればステップ413へ行く。一致しなけ
ればステップ405へ行く。ステップ405として、変
数Iを1増加させる。ステップ406として、スカラー
値のI番目のビットの値が0であるか1であるかを判定
する。そのビットの値が0であればステップ406へ行
く。そのビットの値が1であればステップ410へ行
く。ステップ407として、射影座標により表された点
の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを
行ない、点(2m+1)Pを計算する。その後ステップ408
へ行く。ここで、加算mP+(m+1)Pは、モンゴメリ型楕円
曲線の射影座標における加算公式を用いて計算される。
ステップ408として、射影座標により表された点の組
(mP,(m+1)P)から点mPの2倍算2(mP)を行ない、点2mPを
計算する。その後ステップ409へ行く。ここで、2倍
算2(mP)は、モンゴメリ型楕円曲線の射影座標における
2倍算の公式を用いて計算される。ステップ409とし
て、ステップ408で求めた点2mPとステップ407で
求めた点(2m+1)Pを点の組(2mP, (2m+1)P)として、点
の組(mP, (m+1)P)の代わりに格納する。その後ステッ
プ404へ戻る。ここで、点2mP、点(2m+1)P、点mP
及び点(m+1)Pは全て射影座標において表されている。
ステップ410として、射影座標により表された点の組
(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを
行ない、点(2m+1)Pを計算する。その後ステップ411
へ行く。ここで、加算mP+(m+1)Pは、モンゴメリ型楕円
曲線の射影座標における加算公式を用いて計算される。
ステップ411として、射影座標により表された点の組
(mP,(m+1)P)から点(m+1)Pの2倍算2((m+1)P)を行な
い、点(2m+2)Pを計算する。その後ステップ412へ行
く。ここで、2倍算2((m+1)P)は、モンゴメリ型楕円曲
線の射影座標における2倍算の公式を用いて計算され
る。ステップ411として、ステップ410で求めた点
(2m+1)Pとステップ411で求めた点(2m+2)Pを点の組
((2m+1)P,(2m+2)P)として、点の組(mP,(m+1)P)の代わり
に格納する。その後ステップ404へ戻る。ここで、点
(2m+1)P、点(2m+2)P、点mP及び点(m+1)Pは全て射影座標
において表されている。ステップ413として、射影座
標で表された点の組(mP,(m+1)P)から、射影座標で表さ
れた点mP=(Xm,Ym,Zm)よりXm及びZmをそれぞれXd及びZd
として、射影座標で表された点(m+1)P=(Xm+1,Ym+1,Z
m+1)よりXm+1及びZm+1をそれぞれXd+1及びZd+1として、
出力する。ここで、Ym及びYm+1は、モンゴメリ型楕円曲
線の射影座標における加算公式及び2倍算の公式ではY
座標を求める事ができないので、求まっていない。また
上記手順により、mとスカラー値dはビット長が等しく
さらにそのビットのパターンも同じとなる為、等しくな
る。 【0078】モンゴメリ型楕円曲線の射影座標における
加算公式の計算量は、Z1=1ととることにより3M+2
Sとなる。ここでMは有限体上の乗算の計算量、Sは有
限体上の2乗算の計算量である。モンゴメリ型楕円曲線
の射影座標における2倍算の公式の計算量は、3M+2
Sである。スカラー値のI番目のビットの値が0であれ
ば、ステップ407において加算の計算量、ステップ4
08において2倍算の計算量が必要となる。すなわち6
M+4Sの計算量が必要となる。スカラー値のI番目の
ビットの値が1であれば、ステップ410において加算
の計算量、ステップ411において2倍算の計算量が必
要となる。すなわち6M+4Sの計算量が必要である。
いずれの場合においても6M+4Sの計算量が必要であ
る。ステップ404、ステップ405、ステップ40
6、ステップ407、ステップ408、ステップ409
乃至はステップ404、ステップ405、ステップ40
6、ステップ410、ステップ411、ステップ412
の繰り返しの回数は、(スカラー値dのビット長)―1
回となるので、ステップ402での2倍算の計算量を考
慮に入れると、全体の計算量は(6M+4S)(k―
1)+3M+2Sとなる。ここでkはスカラー値dのビ
ット長である。一般的には、計算量Sは、S=0.8M
程度と見積もられるので、全体の計算量はおおよそ
(9.2k―4.6)Mとなる。例えばスカラー値dが
160ビット(k=160)であれば、上記手順のアル
ゴリズムの計算量はおおよそ1467Mとなる。スカラ
ー値dのビットあたりの計算量としてはおよそ9.2M
となる。A.Miyaji, T.Ono, H.Cohen, Efficient ellipt
ic curve exponentiation using mixed coordinates, A
dvancesin Cryptology Proceedings of ASIACRYPT'98,
LNCS 1514 (1998) pp.51-65 には、ワイエルシュトラ
ス型楕円曲線において、ウィンドウ法を用いてヤコビア
ン座標を中心とした混合座標系を用いたスカラー倍計算
方法は高速なスカラー倍計算方法として記載されてい
る。この場合においては、スカラー値のビットあたりの
計算量はおおよそ10Mと見積もられる。例えばスカラ
ー値dが160ビット(k=160)であれば、このス
カラー倍計算方法の計算量はおおよそ1600Mとな
る。したがって、上記手順のアルゴリズムの方が計算量
が少なく高速といえる。 【0079】尚、高速スカラー倍計算部202において
上記手順のアルゴリズムを用いなくても、スカラー値d
及びモンゴメリ型楕円曲線上の点Pから、Xd,Yd
Xd+1,Zd+1を出力するアルゴリズムであり且つ高速であ
れば、他のアルゴリズムを用いていもよい。 【0080】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は15M+2S+
Iであり、これは高速スカラー倍計算部202の高速ス
カラー倍計算に必要な計算量の(9.2k―4.6)M
とに比べてはるかに小さい。したがって、スカラー倍計
算装置103のスカラー倍計算に必要な計算量は、高速
スカラー倍計算部の高速スカラー倍計算に必要な計算量
とほぼ同等である。I=40M、S=0.8Mと仮定す
ると、この計算量はおおよそ(9.2k+52)Mと見
積もることができる。例えばスカラー値dが160ビッ
ト(k=160)であれば、このスカラー倍計算に必要
な計算量は1524Mとなる。楕円曲線としてワイエル
シュトラス型楕円曲線を使用し、ウィンドウ法を用いて
ヤコビアン座標を中心とした混合座標系を用いたスカラ
ー倍計算方法を用いて、スカラー倍点をアフィン座標と
して出力する場合に必要となる計算量はおおよそ164
0Mであり、これと比べて必要となる計算量は削減され
ている。 【0081】第2の実施例は、スカラー倍計算部103
がスカラー値d及びモンゴメリ型楕円曲線上の点Pから、
モンゴメリ型楕円曲線における射影座標の点として完全
な座標が与えられたスカラー倍点(Xd,Yd,Zd)を計算し出
力するものである。スカラー値d及びモンゴメリ型楕円
曲線上の点Pをスカラー倍計算装置103に入力すると
高速スカラー倍計算部202がそれを受け取る。高速ス
カラー倍計算部202は受け取ったスカラー値dと与え
られたモンゴメリ型楕円曲線上の点Pからモンゴメリ型
楕円曲線において射影座標で表されたスカラー倍点dP=
(Xd,Yd,Zd)の座標のうちXd及びZd、射影座標で表された
モンゴメリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)
の座標のうちXd+1及びZd+1を計算し、アフィン座標で表
された入力されたモンゴメリ型楕円曲線上の点P=(x,y)
と共にその情報を座標復元部203に与える。座標復元
部203は与えられた座標の値Xd、Zd、Xd+1、Zd+1、x
及びyよりモンゴメリ型楕円曲線において射影座標で表
されたスカラー倍点dP=(Xd,Yd,Zd)の座標Xd,Yd及びZd
の復元を行なう。スカラー倍計算装置103は射影座標
において完全に座標が与えられたスカラー倍点(Xd,Yd,Z
d)を計算結果として出力する。 【0082】次に図9により、座標x、y Xd、Zd
Xd+1、Zd+1が与えられた場合にXd、Yd、Zdを出力する座
標復元部の処理について説明する。 【0083】座標復元部203では、モンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,
Yd,Zd)の座標のうちXd及びZd、射影座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座
標のうちXd+1及びZd+1、スカラー倍計算装置103に入
力されたモンゴメリ型楕円曲線上の点Pをアフィン座標
で表した(x,y)を入力し、以下の手順で射影座標おいて
完全な座標が与えられたスカラー倍点(Xd,Yd,Zd)を出力
する。ここで入力されたモンゴメリ型楕円曲線上の点P
のアフィン座標を(x,y)で、射影座標を(X1,Y1,Z1)でそ
れぞれ表す。入力されたスカラー値をdとしてモンゴメ
リ型楕円曲線におけるスカラー倍点dPのアフィン座標を
(xd,yd)で、射影座標を(Xd,Yd,Zd)でそれぞれ表す。モ
ンゴメリ型楕円曲線上の点(d-1)Pのアフィン座標を(x
d-1,yd-1)で、射影座標を(Xd-1,Yd-1,Zd-1)でそれぞれ
表す。モンゴメリ型楕円曲線上の点(d+1)Pのアフィン座
標を(xd+1,yd+1)で、射影座標を(Xd+1,Yd+1,Zd+1)でそ
れぞれ表す。 【0084】ステップ901においてXd×xが計算さ
れ、レジスタT1に格納される。ステップ902におい
てT1−Zdが計算される。ここでレジスタT1にはXdxが
格納されており、したがってXdx−Zdが計算される。そ
の結果がレジスタT1に格納される。ステップ903に
おいてZd×xが計算され、レジスタT2に格納される。ス
テップ904においてXd−T2が計算される。ここでレ
ジスタT2にはZdxが格納されており、したがってXd−xZ
dが計算される。その結果がレジスタT2に格納される。
ステップ905においてZd+1×T1が計算される。ここ
でレジスタT1にはXdx−Zdが格納されており、したがっ
てZd+1(Xdx−Zd)が計算される。その結果がレジスタT3
に格納される。ステップ906においてXd+1×T2が計
算される。ここでレジスタT2にはXd−xZdが格納されて
おり、したがってXd+1(Xd−xZd)が計算される。その結
果がレジスタT4に格納される。ステップ907におい
てT1の2乗が計算される。ここでレジスタT1にはXdx
−Zdが格納されており、したがって(Xdx−Zd)2が計算さ
れる。その結果がレジスタT1に格納される。ステップ
908においてT2の2乗が計算される。ここでレジス
タT2にはXd−xZdが格納されており、したがって(Xd−x
Zd)2が計算される。その結果がレジスタT2に格納され
る。ステップ909においてT2×Zdが計算される。こ
こでレジスタT2には(Xd−xZd)2が格納されており、し
たがってZd (Xd−xZd)2が計算される。その結果がレジ
スタT2に格納される。ステップ910においてT2×X
d+1が計算される。ここでレジスタT2にはZd (Xd−xZd)
2が格納されており、したがってXd+1Zd(Xd−xZd)2が計
算される。その結果がレジスタT2に格納される。ステ
ップ911においてT2×Zd+1が計算される。ここでレ
ジスタT2にXd+1Zd(Xd−xZd)2が格納されており、した
がってZd+1Xd+1Zd(Xd−xZd)2が計算される。その結果が
レジスタT2に格納される。ステップ912においてT2
×yが計算される。ここでレジスタT2にはZd+1Xd+1Zd(X
d−xZd)2が格納されており、したがってyZd+1Xd+1Zd(Xd
−xZd)2が計算される。その結果がレジスタT2に格納さ
れる。ステップ913においてT2×Bが計算される。こ
こでレジスタT2にはyZd+1Xd+1Zd(Xd−xZd)2が格納され
ており、したがってByZd+1Xd+1Zd(Xd−xZd)2が計算され
る。その結果がレジスタT2に格納される。ステップ9
14においてT2×Xdが計算される。ここでレジスタT2
にはByZd+1Xd+1Zd(Xd−xZd)2が格納されており、したが
ってByZd+1Xd+1Zd(Xd−xZd)2Xdが計算される。その結果
がXdに格納される。ステップ915においてT2×Zd
計算される。ここでレジスタT2にはByZd+1Xd+1Zd(Xd
xZd)2が格納されており、したがってByZd+1Xd+1Zd(Xd
xZd)2Zdが計算される。その結果がレジスタZdに格納さ
れる。ステップ916においてT3+T4が計算される。
ここでレジスタT3にはZd+1(Xdx−Zd)がレジスタT4
はXd+1(Xd−xZd)が格納されており、したがってZd+1(Xd
x−Zd)+Xd+1(Xd−xZd)が計算される。その結果がレジ
スタT2に格納される。ステップ917においてT3−T
4が計算される。ここでレジスタT3にはZd+1(Xdx−Zd)
がレジスタT4にはXd+1(Xd−xZd)が格納されており、し
たがってZd+1(Xdx−Zd)−Xd+1(Xd−xZd)が計算される。
その結果がレジスタT3に格納される。ステップ918
においてT1×T2が計算される。ここでレジスタT1
は(Xdx−Zd)2がレジスタT2にはZd+1(Xdx−Zd)+Xd+1(X
d−xZd)が格納されており、したがって{Zd+1(Xdx−Zd)
+Xd+1(Xd−xZd)}(Xdx−Zd)2が計算される。その結果が
レジスタT1に格納される。ステップ919においてT1
×T3が計算される。ここでレジスタT1には{Zd+1(Xdx
−Zd)+Xd+1(Xd−xZd)}(Xdx−Zd)2がレジスタT3にはZ
d+1(Xdx−Zd)−Xd+1(Xd−xZd)が格納されており、した
がって{Zd+1(Xdx−Zd)+Xd+1(Xd−xZd)}{Zd+1(Xdx−Zd)
−Xd+1(Xd−xZd)}(Xdx−Zd)2が計算される。その結果が
レジスタYdに格納される。したがってレジスタYdには{Z
d+1(Xdx−Zd)+Xd+1(Xd−xZd)}{Zd+1(Xdx−Zd)−Xd+1(X
d−xZd)}(Xdx−Zd)2が格納されている。レジスタXdには
ステップ914においてByZd+1Xd+1Zd+1(Xd−xZd)2Xd
格納され、その後更新が行われないので、その値が保持
されている。レジスタZdにはステップ915においてBy
Zd+1Xd+1Zd+1(Xd−xZd)2Zdが格納され、その後更新が
行われないので、その値が保持されている。 【0085】上記手順により与えられたx、y、Xd、Zd
Xd+1、Zd+1からスカラー倍点の射影座標(Xd,Yd,Zd)にお
ける値が全て復元される理由は以下の通りである。点(d
+1)Pは点dPに点Pを加算した点であり、点(d-1)Pは点dP
から点Pを減算した点である。モンゴメリ型楕円曲線の
アフィン座標における加算公式に代入すると、次の数
6、数7を得る。両辺を各々減算することにより、数8
を得る。したがって、数9となる。ここでxd=Xd/Zd
d+1=Xd+1/Zd+1、xd-1=Xd-1/Zd-1であり、この値を
代入することにより射影座標の値へと変換すると、数1
0を得る。 【0086】モンゴメリ型楕円曲線の射影座標での加算
公式は数11、数12である。ここでXm及びZmはモンゴ
メリ型楕円曲線上の点Pのm倍点mPの射影座標におけるX
座標及びZ座標、Xn及びZnはモンゴメリ型楕円曲線上の
点Pのn倍点nPの射影座標におけるX座標及びZ座標、X
m-n及びZm-nはモンゴメリ型楕円曲線上の点Pの(m-n)倍
点(m-n)Pの射影座標におけるX座標及びZ座標、Xm+n及び
Zm+nはモンゴメリ型楕円曲線上の点Pの(m+n)倍点(m+n)P
の射影座標におけるX座標及びZ座標であり、m,nはm
>nをみたす正整数である。この式はXm/Zm=xm、Xn/Z
n=xn、Xm-n/Zm-n=xm-nが不変のとき、Xm+n/Zm+n
m+nも不変となるので、射影座標での公式としてうま
く働いている。他方、数14、数15とおくと、この式
でXm/Zm=xm、Xn/Zn=xn、Xm+n/Zm+n=xm+nが不変の
とき、X'm-n/Z'm-nも不変となる。また、X'm-n/Z'm-n
Xm-n/Zm-n=xm-nをみたすので、xm-nの射影座標とし
てX'm-n,Z'm-nをとってよい。m=d、n=1として上記公
式を用いてydの式よりXd-1及びZd-1を消去し、X1=x,Z
1=1とおくことにより、数15を得る。xd=Xd/Zdであ
るが、ydの分母と通分することにより、数16とな
る。 【0087】その結果として、 【0088】 【数17】 【0089】とし、Xd及びZdをそれぞれ 【0090】 【数18】 【0091】 【数19】 【0092】により更新すればよい。ここで、Xd,Yd
Zdは図9の処理により与えられている。したがって、射
影座標(Xd,Yd,Zd)の値が全て復元されていることにな
る。 【0093】上記手順はステップ901、ステップ90
3、ステップ905、ステップ906、ステップ90
9、ステップ910、ステップ911、ステップ91
2、ステップ913、ステップ914、ステップ91
5、ステップ918及びステップ919において有限体
上の乗算の計算量を必要とする。また、ステップ907
及びステップ908において有限体上の2乗算の計算量
を必要とする。有限体上の加算及び減算の計算量は、有
限体上の乗算の計算量、2乗算の計算量と比べて比較的
小さいので無視してもよい。有限体上の乗算の計算量を
M、有限体上の2乗算の計算量をSとすると、上記手順
は13M+2Sの計算量を必要とする。これは高速スカ
ラー倍計算の計算量と比べてはるかに小さい。例えばス
カラー値dが160ビットであれば、高速スカラー倍計
算の計算量はおおよそ1500M弱と見積もられる。S
=0.8Mと仮定すると座標復元の計算量は14.6M
であり、高速スカラー倍計算の計算量と比べてはるかに
小さい。したがって効率的に座標を復元できていること
が示された。 【0094】尚、上記手順をとらなくても、上記計算式
により与えられたXd、Yd、Zdの値が計算できればXd
Yd、Zdの値が復元できる。また、xd、ydが上記計算式に
より与えられる値を取るようにXd、Yd、Zdの値を選択
し、その値が計算できればXd、Yd、Zdが復元できる。そ
れらの場合においては一般的に復元に必要となる計算量
が増大する。また、楕円曲線のパラメタであるBの値を
小さくとることにより、ステップ913における乗算の
計算量を削減することができる。 【0095】次に、スカラー値d及びモンゴメリ型楕円
曲線上の点Pから、Xd,Zd,Xd+1,Zd+1を出力するアル
ゴリズムについて説明する。 【0096】第2実施例の高速スカラー倍計算部202
の高速スカラー倍計算方法として、第1実施例の高速ス
カラー倍計算方法を用いる。これにより、スカラー値d
及びモンゴメリ型楕円曲線上の点Pから、Xd,Zd
Xd+1,Zd+1を出力するアルゴリズムとして、高速である
アルゴリズムが達成される。尚、高速スカラー倍計算部
202において上記アルゴリズムを用いなくても、スカ
ラー値d及びモンゴメリ型楕円曲線上の点Pから、Xd
Zd,Xd+1,Zd+1を出力するアルゴリズムであり且つ高速
であれば、他のアルゴリズムを用いていもよい。 【0097】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は13M+2Sで
あり、これは高速スカラー倍計算部202の高速スカラ
ー倍計算に必要な計算量の(9.2k―4.6)Mとに
比べてはるかに小さい。したがって、スカラー倍計算装
置103のスカラー倍計算に必要な計算量は、高速スカ
ラー倍計算部の高速スカラー倍計算に必要な計算量とほ
ぼ同等である。S=0.8Mと仮定すると、この計算量
はおおよそ(9.2k+10)Mと見積もることができ
る。例えばスカラー値dが160ビット(k=160)
であれば、このスカラー倍計算に必要な計算量は148
2Mとなる。楕円曲線としてワイエルシュトラス型楕円
曲線を使用し、ウィンドウ法を用いてヤコビアン座標を
中心とした混合座標系を用いたスカラー倍計算方法を用
いて、スカラー倍点をヤコビアン座標として出力する場
合に必要となる計算量はおおよそ1600Mであり、こ
れと比べて必要となる計算量は削減されている。 【0098】第3の実施例は、スカラー倍計算装置10
3がスカラー値d及びモンゴメリ型楕円曲線上の点Pか
ら、モンゴメリ型楕円曲線におけるアフィン座標の点と
して完全な座標が与えられたスカラー倍点(xd,yd)を計
算し出力するものである。スカラー値d及びモンゴメリ
型楕円曲線上の点Pをスカラー倍計算装置103に入力
すると高速スカラー倍計算部202がそれを受け取る。
高速スカラー倍計算部202は受け取ったスカラー値d
と与えられたモンゴメリ型楕円曲線上の点Pからモンゴ
メリ型楕円曲線において射影座標で表されたスカラー倍
点dP=(Xd,Yd,Zd)の座標のうちXd及びZd、射影座標で表
されたモンゴメリ型楕円曲線上の点(d+1)P=(Xd+1,
Yd+1,Zd+1)の座標のうちXd+1及びZd+1、射影座標で表さ
れたモンゴメリ型楕円曲線上の点(d−1)P=(Xd-1,Yd-1,
Zd-1)の座標のうちXd-1及びZd-1を計算し、アフィン座
標で表された入力されたモンゴメリ型楕円曲線上の点P=
(x,y)と共にその情報を座標復元部203に与える。座
標復元部203は与えられた座標の値値Xd、Zd、Xd+1
Zd+1、Xd-1、Zd-1、x及びyよりモンゴメリ型楕円曲線
においてアフィン座標で表されたスカラー倍点dP=(xd,
yd)の座標xd及びydの復元を行なう。スカラー倍計算
装置103はアフィン座標において完全に座標が与えら
れたスカラー倍点(xd,yd)を計算結果として出力する。 【0099】次に図12により、座標x、y、Xd、Zd、X
d+1、Zd+1、Xd-1、Zd-1が与えられた場合にxd、ydを出
力する座標復元部の処理について説明する。 【0100】座標復元部203では、モンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,
Yd,Zd)の座標うちXd及びZd、射影座標で表されたモンゴ
メリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座標
のうちXd+1及びZd+1、射影座標で表されたモンゴメリ型
楕円曲線上の点(d-1)P=(Xd-1,Yd-1,Zd-1)の座標のうち
Xd-1及びZd-1、スカラー倍計算装置103に入力された
モンゴメリ型楕円曲線上の点Pをアフィン座標で表した
(x,y)を入力し、以下の手順でアフィン座標おいて完全
な座標が与えられたスカラー倍点(xd,yd)を出力する。
ここで入力されたモンゴメリ型楕円曲線上の点Pのアフ
ィン座標を(x,y)で、射影座標を(X,Y,Z)でそれぞ
れ表す。入力されたスカラー値をdとしてモンゴメリ型
楕円曲線におけるスカラー倍点dPのアフィン座標を(xd,
yd)で、射影座標を(Xd,Yd,Zd)でそれぞれ表す。モンゴ
メリ型楕円曲線上の点(d-1)Pのアフィン座標を(xd-1,y
d-1)で、射影座標を(Xd-1,Yd-1,Zd-1)でそれぞれ表す。
モンゴメリ型楕円曲線上の点(d+1)Pのアフィン座標を(x
d+1,yd+1)で、射影座標を(Xd+1,Yd+1,Zd+1)でそれぞれ
表す。 【0101】ステップ1201においてXd-1×Zd+1が計
算され、レジスタT1に格納される。ステップ1202
においてZd-1×Xd+1が計算され、レジスタTに格納さ
れる。ステップ1203においてT1−Tが計算され
る。ここでレジスタT1にはXd-1Zd+1がレジスタT
はZd-1Xd+1がそれぞれ格納されており、したがってXd-1
Zd+1-Zd-1Xd+1が計算される。その結果がレジスタT1
格納される。ステップ1204においてZd×xが計算さ
れ、レジスタTに格納される。ステップ1205にお
いてXd-Tが計算さる。ここでレジスタTにはZdxが
格納されており、したがってXd-xZdが計算される。その
結果がレジスタTに格納される。ステップ1206に
おいてTの2乗が計算される。ここでレジスタT
はXd-xZdが格納されており、したがって(Xd-xZd)2が計
算される。その結果がレジスタTに格納される。ステ
ップ1207においてT1×Tが計算される。ここで
レジスタT1にはXd-1Zd+1-Zd-1Xd+1がレジスタTには
(Xd-xZd)2がそれぞれ格納されており、したがって(Xd-x
Zd)2(Xd-1Zd+1-Zd-1Xd+1)が計算される。その結果がレ
ジスタT1に格納される。ステップ1208において4×
Byが計算される。その結果がレジスタTに格納され
る。ステップ1209においてT×Zd+1が計算され
る。ここでレジスタTには4Byが格納されており、し
たがって4ByZd+1が計算される。その結果がレジスタT
に格納される。ステップ1210においてT×Zd-1
が計算される。ここでレジスタTには4ByZd+1が格納
されており、したがって4ByZd-1Zd+1が計算される。そ
の結果がレジスタTに格納される。ステップ1211
においてT×Zdが計算される。ここでレジスタT
は4ByZd+1Zd-1が格納されており、したがって4ByZd+1Z
d-1Zdが計算される。その結果がレジスタTに格納さ
れる。ステップ1212においてT×Xdが計算され
る。ここでレジスタTには4ByZd-1Zd+1Zdが格納され
ており、したがって4ByZd+1Zd-1ZdXdが計算される。そ
の結果がレジスタT3に格納される。ステップ1213
においてT×Zdが計算される。ここでレジスタT
は4ByZd+1Zd-1Zdが格納されており、したがって4ByZd+1
Zd-1ZdZdが計算される。その結果がレジスタTに格納
される。ステップ1214においてレジスタTの逆元
が計算される。ここでレジスタTには4ByZd+1Zd-1ZdZ
dが格納されており、したがって1/4ByZd+1Zd-1ZdZdが計
算される。その結果がレジスタTに格納される。ステ
ップ1215においてT×T3が計算される。ここで
レジスタTには1/4ByZd+1Zd-1ZdZdがレジスタT3には
4ByZd+1Zd-1ZdXd がそれぞれ格納されており、したがっ
て(4ByZd+1Zd-1ZdXd)/(4ByZd+1Zd-1ZdZd)が計算され
る。その結果がレジスタxdに格納される。ステップ12
16においてT1×Tが計算される。ここでレジスタ
1には(Xd-xZd)2(Xd-1Zd+1-Zd-1Xd+1)がレジスタT
には1/4ByZd+1Zd-1ZdZdがそれぞれ格納されており、し
たがって(Xd-1Zd+1-Zd-1Xd+1)(Xd-Zdx)2/4ByZd-1Zd+1Zd
2が計算される。その結果がレジスタydに格納される。
したがってレジスタydには(Xd-1Zd+1-Zd-1Xd+1)(Xd-Z
dx)2/4ByZd-1Zd+1Zd 2が格納されている。レジスタxd
はステップ1215において(4ByZd+1Zd-1ZdXd)/(4ByZ
d+1Zd-1ZdZd)が格納され、その後更新が行なわれないの
で、その値が保持されている。 【0102】上記手順により与えられたx、y、Xd
Zd、Xd+1、Zd+1、Xd-1、Zd-1からモンゴメリ型楕円曲線
におけるスカラー倍点のアフィン座標(xd,yd)におけ
る値が全て復元される理由は以下の通りである。点(d+
1)Pは点dPに点Pを加算した点であり、点(d-1)Pは点dPか
ら点Pを減算した点である。 【0103】モンゴメリ型楕円曲線のアフィン座標にお
ける加算公式に代入すると、数6、数7を得る。
両辺を各々減算することにより、数8を得る。したがっ
て、数9となる。ここでxd=Xd/Zd、xd+1=Xd+1/
Zd+1、xd-1=Xd-1/Zd-1であり、この値を代入すること
により射影座標の値へと変換すると、数10を得る。 【0104】xd=Xd/Zdであるが、逆元演算の回数を減
らす目的でydの分母と通分することにより、 【0105】 【数20】 【0106】となる。このxd,ydは図12で示した処理
により与えられ、したがってアフィン座標(xd,yd)の値
が全て復元されていることになる。 【0107】上記手順はステップ1201、ステップ1
202、ステップ1204、ステップ1207、ステッ
プ1208、ステップ1209、ステップ1210、ス
テップ1211、ステップ1212、ステップ121
3、ステップ1215及びステップ1216において有
限体上の乗算の計算量を必要とする。また、ステップ1
206において有限体上の2乗算の計算量を必要とす
る。また、ステップ1214において有限体上の逆元演
算の計算量を必要とする。有限体上の加算及び減算の計
算量は、有限体上の乗算の計算量、2乗算の計算量及び
逆元演算の計算量と比べて比較的小さいので無視しても
よい。有限体上の乗算の計算量をM、有限体上の2乗算
の計算量をS及び有限体上の逆元演算の計算量をIとす
ると、上記手順は12M+S+Iの計算量を必要とす
る。これは高速スカラー倍計算の計算量と比べてはるか
に小さい。例えばスカラー値dが160ビットであれ
ば、高速スカラー倍計算の計算量はおおよそ1500M
弱と見積もられる。S=0.8M、I=40Mと仮定す
ると座標復元の計算量は52.8Mであり、高速スカラ
ー倍計算の計算量と比べてはるかに小さい。したがって
効率的に座標を復元できていることが示された。 【0108】尚、上記手順をとらなくても、上記計算式
により与えられたxd,ydの値が計算できればxd,yd
値が復元できる。その場合においては一般的に復元に必
要となる計算量が増大する。また、楕円曲線のパラメタ
であるBの値を小さくとることにより、ステップ120
8における乗算の計算量を削減することができる。 【0109】次に図5により、スカラー値d及びモンゴ
メリ型楕円曲線上の点PからXd,Zd,Xd+1,Zd+1,Xd-1,Zd-1
を出力する高速スカラー倍計算部の処理について説明す
る。 【0110】高速スカラー倍計算部202では、スカラ
ー倍計算装置103に入力されたモンゴメリ型楕円曲線
上の点Pを入力し、以下の手順によりモンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,
Yd,Zd)のうちXd及びZd、射影座標で表されたモンゴメリ
型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)のうちXd+1
及びZd+1、射影座標で表されたモンゴメリ型楕円曲線上
の点(d-1)P=(Xd-1,Yd-1,Zd-1)のうちXd-1及びZd-1を出
力する。ステップ501として、変数Iに初期値1を代
入する。ステップ502として、点Pの2倍点2Pを計算
する。ここで点Pは射影座標において(x,y,1)として表
し、モンゴメリ型楕円曲線の射影座標における2倍算の
公式を用いて2倍点2Pを計算する。ステップ503とし
て、スカラー倍計算装置103に入力された楕円曲線上
の点Pとステップ502で求めた点2Pを、点の組(P,2P)
として格納する。ここで点P及び点2Pは射影座標で表さ
れている。ステップ504として、変数Iとスカラー値
dのビット長とが一致するかどうかを判定し、一致すれ
ばステップ514へ行く。一致しなければステップ50
5へ行く。ステップ505として、変数Iを1増加させ
る。ステップ506として、スカラー値のI番目のビッ
トの値が0であるか1であるかを判定する。そのビット
の値が0であればステップ506へ行く。そのビットの
値が1であればステップ510へ行く。ステップ507
として、射影座標により表された点の組(mP,(m+1)P)か
ら点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)P
を計算する。その後ステップ508へ行く。ここで、加
算mP+(m+1)Pは、モンゴメリ型楕円曲線の射影座標にお
ける加算公式を用いて計算される。ステップ508とし
て、射影座標により表された点の組(mP,(m+1)P)から点m
Pの2倍算2(mP)を行ない、点2mPを計算する。その後ス
テップ509へ行く。ここで、2倍算2(mP)は、モンゴ
メリ型楕円曲線の射影座標における2倍算の公式を用い
て計算される。ステップ509として、ステップ508
で求めた点2mPとステップ507で求めた点(2m+1)Pを
点の組(2mP, (2m+1)P)として、点の組(mP, (m+1)P)の
代わりに格納する。その後ステップ504へ戻る。ここ
で、点2mP、点(2m+1)P、点mP及び点(m+1)Pは全て射
影座標において表されている。ステップ510として、
射影座標により表された点の組(mP,(m+1)P)から点mPと
点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計
算する。その後ステップ511へ行く。ここで、加算mP
+(m+1)Pは、モンゴメリ型楕円曲線の射影座標における
加算公式を用いて計算される。ステップ511として、
射影座標により表された点の組(mP,(m+1)P)から点(m+
1)Pの2倍算2((m+1)P)を行ない、点(2m+2)Pを計算す
る。その後ステップ512へ行く。ここで、2倍算2((m
+1)P)は、モンゴメリ型楕円曲線の射影座標における2
倍算の公式を用いて計算される。ステップ511とし
て、ステップ510で求めた点(2m+1)Pとステップ51
1で求めた点(2m+2)Pを点の組((2m+1)P,(2m+2)P)とし
て、点の組(mP,(m+1)P)の代わりに格納する。その後ス
テップ504へ戻る。ここで、点(2m+1)P、点(2m+2)P、
点mP及び点(m+1)Pは全て射影座標において表されてい
る。ステップ514として、射影座標で表された点の組
(mP, (m+1)P)から、点(m-1)Pの射影座標におけるX座標X
m-1及びZ座標Zm-1を求め、それぞれXd-1及びZd-1とす
る。その後ステップ513へ行く。ステップ513とし
て、射影座標で表された点mP=(Xm,Ym,Zm)よりXm及びZm
をそれぞれXd及びZdとして、射影座標で表された点(m+
1)P=(Xm+1,Ym+1,Zm+1)よりXm+1及びZm+1をそれぞれX
d+1及びZd+1として、Xd-1及びZd-1と共に出力する。こ
こで、Ym及びYm+1は、モンゴメリ型楕円曲線の射影座標
における加算公式及び2倍算の公式ではY座標を求める
事ができないので、求まっていない。また上記手順によ
り、mとスカラー値dはビット長が等しくさらにそのビ
ットのパターンも同じとなる為、等しくなる。またステ
ップ514において(m-1)Pを求める際に、数10、数1
1の公式により求めてもよいし、mが奇数であれば、
((m-1)/2)Pの値をステップ512の段階で別に保持して
おき、その値からモンゴメリ型楕円曲線の2倍算の公式
より、(m-1)Pを求めてもよい。 【0111】モンゴメリ型楕円曲線の射影座標における
加算公式の計算量は、Z1=1ととることにより3M+2
Sとなる。ここでMは有限体上の乗算の計算量、Sは有
限体上の2乗算の計算量である。モンゴメリ型楕円曲線
の射影座標における2倍算の公式の計算量は、3M+2
Sである。スカラー値のI番目のビットの値が0であれ
ば、ステップ507において加算の計算量、ステップ5
08において2倍算の計算量が必要となる。すなわち6
M+4Sの計算量が必要となる。スカラー値のI番目の
ビットの値が1であれば、ステップ510において加算
の計算量、ステップ511において2倍算の計算量が必
要となる。すなわち6M+4Sの計算量が必要である。
いずれの場合においても6M+4Sの計算量が必要であ
る。ステップ504、ステップ505、ステップ50
6、ステップ507、ステップ508、ステップ509
乃至はステップ504、ステップ505、ステップ50
6、ステップ510、ステップ511、ステップ512
の繰り返しの回数は、(スカラー値dのビット長)―1
回となるので、ステップ502での2倍算の計算量とス
テップ514での(m-1)Pの計算に必要な計算量を考慮に
入れると、全体の計算量は(6M+4S)k+Mとな
る。ここでkはスカラー値dのビット長である。一般的
には、計算量Sは、S=0.8M程度と見積もられるの
で、全体の計算量はおおよそ(9.2k+1)Mとな
る。例えばスカラー値dが160ビット(k=160)
であれば、上記手順のアルゴリズムの計算量はおおよそ
1473Mとなる。スカラー値dのビットあたりの計算
量としてはおよそ9.2Mとなる。A.Miyaji, T.Ono,
H.Cohen, Efficient elliptic curve exponentiation u
sing mixed coordinates, Advances in Cryptology Pr
oceedings of ASIACRYPT'98, LNCS 1514 (1998) pp.51-
65 には、ワイエルシュトラス型楕円曲線において、ウ
ィンドウ法を用いてヤコビアン座標を中心とした混合座
標系を用いたスカラー倍計算方法は高速なスカラー倍計
算方法として記載されている。この場合においては、ス
カラー値のビットあたりの計算量はおおよそ10Mと見
積もられる。例えばスカラー値dが160ビット(k=
160)であれば、このスカラー倍計算方法の計算量は
おおよそ1600Mとなる。したがって、上記手順のア
ルゴリズムの方が計算量が少なく高速といえる。 【0112】尚、高速スカラー倍計算部202において
上記手順のアルゴリズムを用いなくても、スカラー値d
及びモンゴメリ型楕円曲線上の点Pから、Xd, Zd ,Xd+1,
Zd+1を出力するアルゴリズムであり且つ高速であれ
ば、他のアルゴリズムを用いていもよい。 【0113】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は12M+S+I
であり、これは高速スカラー倍計算部202の高速スカ
ラー倍計算に必要な計算量の(9.2k+1)Mとに比
べてはるかに小さい。したがって、スカラー倍計算装置
103のスカラー倍計算に必要な計算量は、高速スカラ
ー倍計算部の高速スカラー倍計算に必要な計算量とほぼ
同等である。I=40M、S=0.8Mと仮定すると、
この計算量はおおよそ(9.2k+53.8)Mと見積
もることができる。例えばスカラー値dが160ビット
(k=160)であれば、このスカラー倍計算に必要な
計算量はおおよそ1526Mとなる。楕円曲線としてワ
イエルシュトラス型楕円曲線を使用し、ウィンドウ法を
用いてヤコビアン座標を中心とした混合座標系を用いた
スカラー倍計算方法を用いて、スカラー倍点をアフィン
座標として出力する場合に必要となる計算量はおおよそ
1640Mであり、これと比べて必要となる計算量は削
減されている。 【0114】第4の実施例は、スカラー倍計算部103
がスカラー値d及びモンゴメリ型楕円曲線上の点Pから、
モンゴメリ型楕円曲線における射影座標の点として完全
な座標が与えられたスカラー倍点(Xd,Yd,Zd)を計算し出
力する。スカラー値d及びモンゴメリ型楕円曲線上の点P
をスカラー倍計算装置103に入力すると高速スカラー
倍計算部202がそれを受け取る。高速スカラー倍計算
部202は受け取ったスカラー値dと与えられたモンゴ
メリ型楕円曲線上の点Pからモンゴメリ型楕円曲線にお
いて射影座標で表されたスカラー倍点dP=(Xd,Yd,Zd)の
座標のうちXd及びZd、射影座標で表されたモンゴメリ型
楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座標のうち
Xd+1及びZd+1、射影座標で表されたモンゴメリ型楕円曲
線上の点(d-1)P=(Xd-1,Yd-1,Zd-1)を計算し、アフィン
座標で表された入力されたモンゴメリ型楕円曲線上の点
P=(x,y)と共にその情報を座標復元部203に与える。
座標復元部203は与えられた座標の値Xd、Zd、Xd+1
Zd+1、Xd-1、Zd-1、x及びyよりモンゴメリ型楕円曲線に
おいて射影座標で表されたスカラー倍点dP=(Xd,Yd,Zd)
の座標Xd,Yd及びZdの復元を行なう。スカラー倍計算装
置103は射影座標において完全に座標が与えられたス
カラー倍点(Xd,Yd,Zd)を計算結果として出力する。 【0115】次に図13により、座標x、y Xd、Zd、X
d+1、Zd+1、Xd-1、Zd-1が与えられた場合にXd、Yd、Zd
を出力する座標復元部の処理について説明する。 【0116】座標復元部203では、モンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,
Yd,Zd)の座標のうちXd及びZd、射影座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座
標のうちXd+1及びZd+1、射影座標で表されたモンゴメリ
型楕円曲線上の点(d-1)P=(Xd-1,Yd-1,Zd-1)の座標のう
ちXd-1及びZd-1、スカラー倍計算装置103に入力され
たモンゴメリ型楕円曲線上の点Pをアフィン座標で表し
た(x,y)を入力し、以下の手順で射影座標おいて完全な
座標が与えられたスカラー倍点(Xd,Yd,Zd)を出力する。
ここで入力されたモンゴメリ型楕円曲線上の点Pのアフ
ィン座標を(x,y)で、射影座標を(X1,Y1,Z1)でそれぞれ
表す。入力されたスカラー値をdとしてモンゴメリ型楕
円曲線におけるスカラー倍点dPのアフィン座標を(xd,
yd)で、射影座標を(Xd,Yd,Zd)でそれぞれ表す。モンゴ
メリ型楕円曲線上の点(d-1)Pのアフィン座標を(xd-1,y
d-1)で、射影座標を(Xd-1,Yd-1,Zd-1)でそれぞれ表す。
モンゴメリ型楕円曲線上の点(d+1)Pのアフィン座標を(x
d+1,yd+1)で、射影座標を(Xd+1,Yd+1,Zd+1)でそれぞれ
表す。 【0117】ステップ1301においてXd-1×Zd+1が計
算され、レジスタT1に格納される。ステップ1302
においてZd-1×Xd+1が計算され、レジスタTに格納さ
れる。ステップ1303においてT1−Tが計算され
る。ここでレジスタT1にはXd-1Zd+1がレジスタT
はZd-1Xd+1がそれぞれ格納されており、したがってXd-1
Zd+1-Zd-1Xd+1が計算される。その結果がレジスタT1
格納される。ステップ1304においてZd×xが計算さ
れ、レジスタTに格納される。ステップ1305にお
いてXd-Tが計算さる。ここでレジスタTにはZdxが
格納されており、したがってXd-xZdが計算される。その
結果がレジスタTに格納される。ステップ1306に
おいてTの2乗が計算される。ここでレジスタT
はXd-xZdが格納されており、したがって(Xd-xZd)2が計
算される。その結果がレジスタTに格納される。ステ
ップ1307においてT1×Tが計算される。ここで
レジスタT1にはXd-1Zd+1-Zd-1Xd+1がレジスタTには
(Xd-xZd)2がそれぞれ格納されており、したがって(Xd-x
Zd)2(Xd-1Zd+1-Zd-1Xd+1)が計算される。その結果がレ
ジスタYdに格納される。ステップ1308において4×B
yが計算される。その結果がレジスタTに格納され
る。ステップ1309においてT×Zd+1が計算され
る。ここでレジスタTには4Byが格納されており、し
たがって4ByZd+1が計算される。その結果がレジスタT
に格納される。ステップ1310においてT×Zd-1
が計算される。ここでレジスタTには4ByZd+1が格納
されており、したがって4ByZd+1Zd-1が計算される。そ
の結果がレジスタTに格納される。ステップ1311
においてT×Zdが計算される。ここでレジスタT
は4ByZd+1Zd-1が格納されており、したがって4ByZd+1Z
d-1Zdが計算される。その結果がレジスタTに格納さ
れる。ステップ1312においてT×Xdが計算され
る。ここでレジスタTには4ByZd+1Zd-1Zdが格納され
ており、したがって4ByZd+1Zd-1ZdXdが計算される。そ
の結果がレジスタXdに格納される。ステップ1313に
おいてT×Zdが計算される。ここでレジスタTには
4ByZd+1Zd-1Zdが格納されており、したがって4ByZd+1Z
d-1ZdZdが計算される。その結果がZdに格納される。し
たがってZdには4ByZd+1Zd-1ZdZdが格納されている。レ
ジスタYdにはステップ1307において(Xd-xZd)2(Xd-1
Zd+1-Zd-1Xd+1)が格納され、その後更新が行われないの
で、その値が保持されている。 【0118】上記手順により与えられたx、y、Xd
Zd、Xd+1、Zd+1、Xd-1、Zd-1からスカラー倍点の射影座
標(Xd,Yd,Zd)における値が全て復元される理由は以下の
通りである。点(d+1)Pは点dPに点Pを加算した点であ
る。点(d-1)Pは点dPから点Pを減算した点である。これ
より、先に述べた数7を得ることができる。座標復元部
203はスカラー倍点の射影座標で表された完全な座標
として(Xd,Yd,Zd)を出力する。 【0119】上記手順により与えられたx、y Xd、Zd、X
d+1、Zd+1、Xd-1、Zd-1からスカラー倍点の射影座標
(Xd,Yd,Zd)における値が全て復元される理由は以下の通
りである。点(d+1)Pは点dPに点Pを加算した点である。
点(d-1)Pは点dPから点Pを減算した点である。モンゴメ
リ型楕円曲線のアフィン座標における加算公式に代入す
ると、数6、数7を得る。
両辺を各々減算することにより、数8を得る。したがっ
て、数9となる。ここでxd=Xd/Zd、xd+1=Xd+1/
Zd+1、xd-1=Xd-1/Zd-1であり、この値を代入すること
により射影座標の値へと変換すると、数7を得る。 【0120】xd=Xd/Zdであるが、ydの分母と通分す
ることにより、数20となる。その結果として、数1
7、 【0121】 【数21】 【0122】とし、Xd及びZdをそれぞれ 【0123】 【数22】 【0124】 【数23】 【0125】により更新すればよい。ここで示したXd
Yd,Zd,は図13で示した処理により与えられている。
したがって、射影座標の値(Xd,Yd,Zd)が全て復元されて
いることになる。 【0126】上記手順はステップ1301、ステップ1
302、ステップ1304、ステップ1307、ステッ
プ1308、ステップ1309、ステップ1310、ス
テップ1311、ステップ1312及びステップ131
3において有限体上の乗算の計算量を必要とする。ま
た、ステップ1306において有限体上の2乗算の計算
量を必要とする。有限体上の減算の計算量は、有限体上
の乗算の計算量、2乗算の計算量と比べて比較的小さい
ので無視してもよい。有限体上の乗算の計算量をM、有
限体上の2乗算の計算量をSとすると、上記手順は10
M+Sの計算量を必要とする。これは高速スカラー倍計
算の計算量と比べてはるかに小さい。例えばスカラー値
dが160ビットであれば、高速スカラー倍計算の計算
量はおおよそ1500M弱と見積もられる。S=0.8
Mと仮定すると座標復元の計算量は10.8Mであり、
高速スカラー倍計算の計算量と比べてはるかに小さい。
したがって効率的に座標を復元できていることが示され
た。 【0127】尚、上記手順をとらなくても、上記計算式
により与えられたXd,Yd,Zdの値が計算できればXd,Yd,Zd
の値が復元できる。また、xd,ydが上記計算式により与
えられる値を取るようにXd,Yd,Zdの値を選択し、その値
が計算できればXd,Yd,Zdが復元できる。それらの場合に
おいては一般的に復元に必要となる計算量が増大する。
また、楕円曲線のパラメタであるBの値を小さくとるこ
とにより、ステップ1308における乗算の計算量を削
減することができる。 【0128】次に、スカラー値d及びモンゴメリ型楕円
曲線上の点Pから、Xd,Zd,Xd+1,Zd+1,Xd-1,Zd-1
出力するアルゴリズムについて説明する。 【0129】第4実施例の高速スカラー倍計算部202
の高速スカラー倍計算方法として、第3実施例の高速ス
カラー倍計算方法を用いる。これにより、スカラー値d
及びモンゴメリ型楕円曲線上の点Pから、Xd,Zd
Xd+1,Zd+1,Xd-1,Zd-1を出力するアルゴリズムとし
て、高速であるアルゴリズムが達成される。尚、高速ス
カラー倍計算部202において上記手順のアルゴリズム
を用いなくても、スカラー値d及びモンゴメリ型楕円曲
線上の点Pから、Xd,Zd,Xd+1,Zd+1,Xd-1,Zd-1を出
力するアルゴリズムであり且つ高速であれば、他のアル
ゴリズムを用いていもよい。 【0130】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は10M+Sであ
り、これは高速スカラー倍計算部202の高速スカラー
倍計算に必要な計算量の(9.2k+1)Mとに比べて
はるかに小さい。したがって、スカラー倍計算装置10
3のスカラー倍計算に必要な計算量は、高速スカラー倍
計算部の高速スカラー倍計算に必要な計算量とほぼ同等
である。S=0.8Mと仮定すると、この計算量はおお
よそ(9.2k+11.8)Mと見積もることができ
る。例えばスカラー値dが160ビット(k=160)
であれば、このスカラー倍計算に必要な計算量はおおよ
そ1484Mとなる。楕円曲線としてワイエルシュトラ
ス型楕円曲線を使用し、ウィンドウ法を用いてヤコビア
ン座標を中心とした混合座標系を用いたスカラー倍計算
方法を用いて、スカラー倍点をヤコビアン座標として出
力する場合に必要となる計算量はおおよそ1600Mで
あり、これと比べて必要となる計算量は削減されてい
る。 【0131】第5の実施例は、スカラー倍計算装置10
3がスカラー値d及びモンゴメリ型楕円曲線上の点Pか
ら、モンゴメリ型楕円曲線におけるアフィン座標の点と
して完全な座標が与えられたスカラー倍点(xd,yd)を計
算し出力する。スカラー値d及びモンゴメリ型楕円曲線
上の点Pをスカラー倍計算装置103に入力すると高速
スカラー倍計算部202がそれを受け取る。高速スカラ
ー倍計算部202は受け取ったスカラー値dと与えられ
たモンゴメリ型楕円曲線上の点Pからモンゴメリ型楕円
曲線においてアフィン座標で表されたスカラー倍点dP=
(xd,yd)の座標のうちxd、アフィン座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(xd+1,yd+1)の座標の
うちxd+1、アフィン座標で表されたモンゴメリ型楕円曲
線上の点(d-1)P=(xd-1,yd-1)の座標のうちxd-1を計算
し、アフィン座標で表された入力されたモンゴメリ型楕
円曲線上の点P=(x,y)と共にその情報を座標復元部20
3に与える。座標復元部203は与えられた座標の値
xd、xd+1、xd-1、x及びyよりモンゴメリ型楕円曲線にお
いてアフィン座標で表されたスカラー倍点dP=(xd,yd)
の座標ydの復元を行なう。スカラー倍計算装置103は
アフィン座標において完全に座標が与えられたスカラー
倍点(xd,yd)を計算結果として出力する。 【0132】次に図26により、座標x、y、xd、xd+1
xd-1が与えられた場合に、xd、ydを出力する座標復元部
の処理について説明する。 【0133】座標復元部203では、モンゴメリ型楕円
曲線においてアフィン座標で表されたスカラー倍点dP=
(xd,yd)の座標のうちxd、アフィン座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(xd+1,yd+1)の座標の
うちxd+1、アフィン座標で表されたモンゴメリ型楕円曲
線上の点(d-1)P=(xd-1,yd-1)の座標のうちxd-1、スカ
ラー倍計算装置103に入力されたモンゴメリ型楕円曲
線上の点Pをアフィン座標で表した(x,y)を入力し、以下
の手順でアフィン座標において完全な座標が与えられた
スカラー倍点(xd,yd)を出力する。 【0134】ステップ2601においてxd−xが計算さ
れ、レジスタT1に格納される。ステップ2602にお
いてT1の2乗すなわち(xd−x)2が計算され、レジスタ
1に格納される。ステップ2603においてxd-1−x
d+1が計算され、レジスタT2に格納される。ステップ2
604においてT1×T2が計算される。ここでレジスタ
1には(xd−x)2がレジスタT2にはxd-1−xd+1がそれぞ
れ格納されており、したがって(xd−x)2(xd-1−xd+1)が
計算される。その結果がレジスタT1に格納される。ス
テップ2605において4B×yが計算され、レジスタT2
に格納される。ステップ2606においてT2の逆元が
計算される。ここでレジスタT2には4Byが格納されてお
り、したがって1/4Byが計算される。その結果がレジス
タT2に格納される。ステップ2607においてT1×T
2が計算される。ここでレジスタT1には(xd−x)2(xd-1
−xd+1)がレジスタT2には1/4Byがそれぞれ格納されて
おり、したがって(xd−x)2(xd-1−xd+1)/4Byが計算され
る。その結果がレジスタydに格納される。したがってレ
ジスタydには(xd−x)2(xd-1−xd+1)/4Byが格納されてい
る。レジスタxdは全く更新されないので入力された値が
保持されている。 【0135】上記手順によりスカラー倍点のy座標yd
復元される理由は以下の通りである。尚、点(d+1)Pは点
dPに点Pを加算した点であり、点(d-1)Pは点dPから点Pを
減算した点である。モンゴメリ型楕円曲線のアフィン座
標における加算公式に代入すると、数6、数7を得る。 【0136】両辺を各々減算することにより、数8を得
る。したがって、数9となる。 【0137】ここで、xd,ydは図26の処理により与え
られる。したがって、アフィン座標(xd,yd)の値は全て
復元されたことになる。 【0138】上記手順はステップ2604、ステップ2
605及びステップ2607において有限体上の乗算の
計算量を必要とする。また、ステップ2602において
有限体上の2乗算の計算量を必要とする。さらにステッ
プ2606において有限体上の逆元演算の計算量を必要
とする。有限体上の減算の計算量は、有限体上の乗算の
計算量、2乗算の計算量、逆元演算の計算量と比べて比
較的小さいので無視してもよい。有限体上の乗算の計算
量をM、有限体上の2乗算の計算量をS、有限体上の逆
元演算の計算量をIとすると、上記手順は3M+S+I
の計算量を必要とする。これは高速スカラー倍計算の計
算量と比べてはるかに小さい。例えばスカラー値dが1
60ビットであれば、高速スカラー倍計算の計算量はお
およそ1500M弱と見積もられる。S=0.8M及び
I=40Mと仮定すると座標復元の計算量は43.8M
であり、高速スカラー倍計算の計算量と比べてはるかに
小さい。したがって効率的に座標を復元できていること
が示された。 【0139】尚、上記手順をとらなくても、上記等式の
右辺の値が計算できればydの値が復元できる。その場合
は一般的に復元に必要となる計算量が増大する。また、
楕円曲線のパラメタであるBの値を小さくとることによ
り、ステップ2605における乗算の計算量を削減する
ことができる。 【0140】次に図6により、スカラー値d及びモンゴ
メリ型楕円曲線上の点Pから、xd、xd+1、xd-1を出力す
る高速スカラー倍計算部の処理について説明する。 【0141】高速スカラー倍計算部202では、スカラ
ー倍計算装置103に入力されたモンゴメリ型楕円曲線
上の点Pを入力し、以下の手順によりモンゴメリ型楕円
曲線においてアフィン座標で表されたスカラー倍点dP=
(xd,yd)のうちxd、アフィン座標で表されたモンゴメリ
型楕円曲線上の点(d+1)P=(xd+1,yd+1)のうちxd+1、ア
フィン座標で表されたモンゴメリ型楕円曲線上の点(d-
1)P=(xd-1,yd-1)のうちxd-1を出力する。ステップ60
1として、変数Iに初期値1を代入する。ステップ60
2として、点Pの2倍点2Pを計算する。ここで点Pは射
影座標において(x,y,1)として表し、モンゴメリ型楕
円曲線の射影座標における2倍算の公式を用いて2倍点
2Pを計算する。ステップ603として、スカラー倍計算
装置103に入力された楕円曲線上の点Pとステップ6
02で求めた点2Pを、点の組(P,2P)として格納する。こ
こで点P及び点2Pは射影座標で表されている。ステップ
604として、変数Iとスカラー値dのビット長とが一
致するかどうかを判定し、一致すればステップ614へ
行く。一致しなければステップ605へ行く。ステップ
605として、変数Iを1増加させる。ステップ606
として、スカラー値のI番目のビットの値が0であるか
1であるかを判定する。そのビットの値が0であればス
テップ606へ行く。そのビットの値が1であればステ
ップ610へ行く。ステップ607として、射影座標に
より表された点の組(mP,(m+1)P)から点mPと点(m+1)Pの
加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後
ステップ608へ行く。ここで、加算mP+(m+1)Pは、モ
ンゴメリ型楕円曲線の射影座標における加算公式を用い
て計算される。ステップ608として、射影座標により
表された点の組(mP,(m+1)P)から点mPの2倍算2(mP)を
行ない、点2mPを計算する。その後ステップ609へ行
く。ここで、2倍算2(mP)は、モンゴメリ型楕円曲線の
射影座標における2倍算の公式を用いて計算される。ス
テップ609として、ステップ608で求めた点2mPと
ステップ607で求めた点(2m+1)Pを点の組(2mP, (2m+
1)P)として、点の組(mP, (m+1)P)の代わりに格納す
る。その後ステップ604へ戻る。ここで、点2mP、点
(2m+1)P、点mP及び点(m+1)Pは全て射影座標において
表されている。ステップ610として、射影座標により
表された点の組(mP,(m+1)P)から点mPと点(m+1)Pの加
算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後
ステップ611へ行く。ここで、加算mP+(m+1)Pは、モ
ンゴメリ型楕円曲線の射影座標における加算公式を用い
て計算される。ステップ611として、射影座標により
表された点の組(mP,(m+1)P)から点(m+1)Pの2倍算2
((m+1)P)を行ない、点(2m+2)Pを計算する。その後ステ
ップ612へ行く。ここで、2倍算2((m+1)P)は、モン
ゴメリ型楕円曲線の射影座標における2倍算の公式を用
いて計算される。ステップ611として、ステップ61
0で求めた点(2m+1)Pとステップ611で求めた点(2m+
2)Pを点の組((2m+1)P,(2m+2)P)として、点の組(mP,(m+
1)P)の代わりに格納する。その後ステップ604へ戻
る。ここで、点(2m+1)P、点(2m+2)P、点mP及び点(m+1)P
は全て射影座標において表されている。ステップ614
として、射影座標で表された点の組(mP,(m+1)P)から、
点(m-1)Pの射影座標におけるX座標Xm-1及びZ座標Zm-1
求め、それぞれXd-1及びZd-1とする。その後ステップ6
15へ行く。ステップ615として、射影座標で表され
た点mP=(Xm,Ym,Zm)よりXm及びZmをそれぞれXd及びZd
し、射影座標で表された点(m+1)P=(Xm+1,Ym+1,Zm+1)よ
りXm+1及びZm+1をそれぞれXd+1及びZd+1とする。ここ
で、Ym及びYm+1は、モンゴメリ型楕円曲線の射影座標に
おける加算公式及び2倍算の公式ではY座標を求める事
ができないので、求まっていない。Xd-1,Zd-1,Xd
Zd,Xd+1,Zd+1より、 【0142】 【数24】 【0143】 【数25】 【0144】 【数26】 【0145】としてxd-1,xd,xd+1を求める。その後ス
テップ613へ行く。ステップ613として、xd-1
xd,xd+1を出力する。上記手順により、mとスカラー値
dはビット長が等しくさらにそのビットのパターンも同
じとなる為、等しくなる。またステップ614において
(m-1)Pを求める際に、数13、数14の公式により求め
てもよいし、mが奇数であれば、((m-1)/2)Pの値をステ
ップ612の段階で別に保持しておき、その値からモン
ゴメリ型楕円曲線の2倍算の公式より、(m-1)Pを求めて
もよい。 【0146】モンゴメリ型楕円曲線の射影座標における
加算公式の計算量は、Z1=1ととることにより3M+2
Sとなる。ここでMは有限体上の乗算の計算量、Sは有
限体上の2乗算の計算量である。モンゴメリ型楕円曲線
の射影座標における2倍算の公式の計算量は、3M+2
Sである。スカラー値のI番目のビットの値が0であれ
ば、ステップ607において加算の計算量、ステップ6
08において2倍算の計算量が必要となる。すなわち6
M+4Sの計算量が必要となる。スカラー値のI番目の
ビットの値が1であれば、ステップ610において加算
の計算量、ステップ611において2倍算の計算量が必
要となる。すなわち6M+4Sの計算量が必要である。
いずれの場合においても6M+4Sの計算量が必要であ
る。ステップ604、ステップ605、ステップ60
6、ステップ607、ステップ608、ステップ609
乃至はステップ604、ステップ605、ステップ60
6、ステップ610、ステップ611、ステップ612
の繰り返しの回数は、(スカラー値dのビット長)―1
回となるので、ステップ602での2倍算の計算量及び
ステップ614での(m-1)Pの計算に必要な計算量及びア
フィン座標への変換の計算量を考慮に入れると、全体の
計算量は(6M+4S)k+11M+Iとなる。ここで
kはスカラー値dのビット長である。一般的には、計算
量Sは、S=0.8M程度、計算量IはI=40M程度
と見積もられるので、全体の計算量はおおよそ(9.2
k+51)Mとなる。例えばスカラー値dが160ビッ
ト(k=160)であれば、上記手順のアルゴリズムの
計算量はおおよそ1523Mとなる。スカラー値dのビ
ットあたりの計算量としてはおよそ9.2Mとなる。A.
Miyaji, T.Ono, H.Cohen, Efficient elliptic curve e
xponentiation using mixedcoordinates, Advances in
Cryptology Proceedings of ASIACRYPT'98, LNCS1514
(1998) pp.51-65 には、ワイエルシュトラス型楕円曲線
において、ウィンドウ法を用いてヤコビアン座標を中心
とした混合座標系を用いたスカラー倍計算方法は高速な
スカラー倍計算方法として記載されている。この場合に
おいては、スカラー値のビットあたりの計算量はおおよ
そ10Mと見積もられ、これ以外にアフィン座標への変
換の計算量が必要となる。例えばスカラー値dが160
ビット(k=160)であれば、このスカラー倍計算方
法の計算量はおおよそ1640Mとなる。したがって、
上記手順のアルゴリズムの方が計算量が少なく高速とい
える。 【0147】尚、高速スカラー倍計算部202において
上記手順のアルゴリズムを用いなくても、スカラー値d
及びモンゴメリ型楕円曲線上の点Pから、xd、xd+1、x
d-1を出力するアルゴリズムであり且つ高速であれば、
他のアルゴリズムを用いていもよい。 【0148】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は3M+S+Iで
あり、これは高速スカラー倍計算部202の高速スカラ
ー倍計算に必要な計算量の(9.2k+51)Mとに比
べてはるかに小さい。したがって、スカラー倍計算装置
103のスカラー倍計算に必要な計算量は、高速スカラ
ー倍計算部の高速スカラー倍計算に必要な計算量とほぼ
同等である。S=0.8M及びI=40Mと仮定する
と、この計算量はおおよそ(9.2k+94.8)Mと
見積もることができる。例えばスカラー値dが160ビ
ット(k=160)であれば、このスカラー倍計算に必
要な計算量はおおよそ1567Mとなる。楕円曲線とし
てワイエルシュトラス型楕円曲線を使用し、ウィンドウ
法を用いてヤコビアン座標を中心とした混合座標系を用
いたスカラー倍計算方法を用いて、スカラー倍点をアフ
ィン座標として出力する場合に必要となる計算量はおお
よそ1640Mであり、これと比べて必要となる計算量
は削減されている。 【0149】第6の実施例は、楕円曲線としてワイエル
シュトラス型楕円曲線を用いたものである。すなわち、
スカラー倍計算装置103の入出力に用いる楕円曲線は
ワイエルシュトラス型楕円曲線である。ただし、スカラ
ー倍計算装置103の内部の計算で使用する楕円曲線と
して、与えられたワイエルシュトラス型楕円曲線から変
換可能であるようなモンゴメリ型楕円曲線を用いてもよ
い。スカラー倍計算装置103がスカラー値d及びワイ
エルシュトラス型楕円曲線上の点Pから、ワイエルシュ
トラス型楕円曲線におけるアフィン座標の点として完全
な座標が与えられたスカラー倍点(xd,yd)を計算し出力
するものである。スカラー値d及びワイエルシュトラス
型楕円曲線上の点Pをスカラー倍計算装置103に入力
すると高速スカラー倍計算部202がそれを受け取る。
高速スカラー倍計算部202は受け取ったスカラー値d
と与えられたワイエルシュトラス型楕円曲線上の点Pか
らワイエルシュトラス型楕円曲線において射影座標で表
されたスカラー倍点dP=(Xd,Yd,Zd)の座標のうちXd及び
Zd、射影座標で表されたワイエルシュトラス型楕円曲線
上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座標のうちXd+1及び
Zd+1、射影座標で表されたワイエルシュトラス型楕円曲
線上の点(d−1)P=(Xd-1,Yd-1,Zd-1)の座標のうちXd-1
及びZd-1を計算し、アフィン座標で表された入力された
ワイエルシュトラス型楕円曲線上の点P=(x,y)と共にそ
の情報を座標復元部203に与える。座標復元部203
は与えられた座標の値値Xd、Zd、Xd+1、Zd+1、Xd-1、Z
d-1、x及びyよりワイエルシュトラス型楕円曲線にお
いてアフィン座標で表されたスカラー倍点dP=(xd,yd)
の座標xd及びydの復元を行なう。スカラー倍計算装置
103はアフィン座標において完全に座標が与えられた
スカラー倍点(xd,yd)を計算結果として出力する。 【0150】次に図14により、座標x、y、Xd、Zd、X
d+1、Zd+1、Xd-1、Zd-1が与えられた場合にxd、ydを出
力する座標復元部の処理について説明する。 【0151】座標復元部203では、ワイエルシュトラ
ス型楕円曲線において射影座標で表されたスカラー倍点
dP=(Xd,Yd,Zd)の座標うちXd及びZd、射影座標で表され
たワイエルシュトラス型楕円曲線上の点(d+1)P=(Xd+1,
Yd+1,Zd+1)の座標のうちXd+1及びZd+1、射影座標で表さ
れたワイエルシュトラス型楕円曲線上の点(d-1)P=(X
d-1,Yd-1,Zd-1)の座標のうちXd-1及びZd-1、スカラー倍
計算装置103に入力されたワイエルシュトラス型楕円
曲線上の点Pをアフィン座標で表した(x,y)を入力し、以
下の手順でアフィン座標おいて完全な座標が与えられた
スカラー倍点(xd,yd)を出力する。ここで入力されたワ
イエルシュトラス型楕円曲線上の点Pのアフィン座標を
(x,y)で、射影座標を(X,Y,Z)でそれぞれ表す。入
力されたスカラー値をdとしてワイエルシュトラス型楕
円曲線におけるスカラー倍点dPのアフィン座標を(xd,
yd)で、射影座標を(Xd,Yd,Zd)でそれぞれ表す。ワイエ
ルシュトラス型楕円曲線上の点(d-1)Pのアフィン座標を
(xd-1,yd-1)で、射影座標を(Xd-1,Yd-1,Zd-1)でそれぞ
れ表す。ワイエルシュトラス型楕円曲線上の点(d+1)Pの
アフィン座標を(xd+1,yd+1)で、射影座標を(Xd+1,Yd+1,
Zd+1)でそれぞれ表す。 【0152】ステップ1401においてXd-1×Zd+1が計
算され、レジスタT1に格納される。ステップ1402
においてZd-1×Xd+1が計算され、レジスタTに格納さ
れる。ステップ1403においてT1−Tが計算され
る。ここでレジスタT1にはXd-1Zd+1がレジスタT
はZd-1Xd+1がそれぞれ格納されており、したがってXd-1
Zd+1-Zd-1Xd+1が計算される。その結果がレジスタT1
格納される。ステップ1404においてZd×xが計算さ
れ、レジスタTに格納される。ステップ1405にお
いてXd-Tが計算さる。ここでレジスタTにはZdxが
格納されており、したがってXd-xZdが計算される。その
結果がレジスタTに格納される。ステップ1406に
おいてTの2乗が計算される。ここでレジスタT
はXd-xZdが格納されており、したがって(Xd-xZd)2が計
算される。その結果がレジスタTに格納される。ステ
ップ1407においてT1×Tが計算される。ここで
レジスタT1にはXd-1Zd+1-Zd-1Xd+1がレジスタTには
(Xd-xZd)2がそれぞれ格納されており、したがって(Xd-x
Zd)2(Xd-1Zd+1-Zd-1Xd+1)が計算される。その結果がレ
ジスタT1に格納される。ステップ1408において4×
yが計算される。その結果がレジスタTに格納され
る。ステップ1409においてT×Zd+1が計算され
る。ここでレジスタTには4yが格納されており、した
がって4yZd+1が計算される。その結果がレジスタT
格納される。ステップ1410においてT×Zd-1が計
算される。ここでレジスタTには4yZd+1が格納されて
おり、したがって4yZd+1Zd-1が計算される。その結果が
レジスタTに格納される。ステップ1411において
×Zdが計算される。ここでレジスタTには4yZd+1
Zd-1が格納されており、したがって4yZd+1Zd-1Zdが計算
される。その結果がレジスタTに格納される。ステッ
プ1412においてT×Xdが計算される。ここでレジ
スタTには4yZd+1Zd-1Zdが格納されており、したがっ
て4yZd+1Zd-1ZdXdが計算される。その結果がレジスタT
3に格納される。ステップ1413においてT×Zd
計算される。ここでレジスタTには4yZd-1Zd+1Zdが格
納されており、したがって4yZd+1Zd-1ZdZdが計算され
る。その結果がレジスタTに格納される。ステップ1
414においてレジスタTの逆元が計算される。ここ
でレジスタTには4yZd+1Zd-1ZdZdが格納されており、
したがって1/4yZd+1Zd-1ZdZdが計算される。その結果が
レジスタTに格納される。ステップ1415において
×T3が計算される。ここでレジスタTには1/4yZ
d+1Zd-1ZdZdがレジスタT3には4yZd-1Zd+1ZdXd がそれ
ぞれ格納されており、したがって(4yZd+1Zd-1ZdXd)/(4y
Z d+1Zd-1ZdZd)が計算される。その結果がxdに格納され
る。ステップ1416においてT1×Tが計算され
る。ここでレジスタT1には(Xd-xZd)2(Xd-1Zd+1-Zd-1X
d+1)がレジスタTには1/4yZd+1Zd-1ZdZdがそれぞれ格
納されており、したがって(Xd-1Zd+1-Zd-1Xd+1)(Xd-Z
dx)2/4y Zd+1Zd-1Zd 2が計算される。その結果がレジス
タydに格納される。したがってレジスタydには(Xd-1Z
d+1-Zd-1Xd+1)(Xd-Zdx)2/4yZd-1Zd+1Zd 2が格納されてい
る。レジスタxdにはステップ1415において(4yZd-1Z
d+1ZdXd)/(4yZd-1Zd+1ZdZd)が格納され、その後更新が
行なわれないので、その値が保持されている。 【0153】上記手順により与えられたx、y、Xd
Zd、Xd+1、Zd+1、Xd-1、Zd-1からワイエルシュトラス型
楕円曲線におけるスカラー倍点のアフィン座標(xd,
d)における値が全て復元される理由は以下の通りであ
る。点(d+1)Pは点dPに点Pを加算した点である。点(d-1)
Pは点dPから点Pを減算した点である。ワイエルシュトラ
ス型楕円曲線のアフィン座標における加算公式に代入す
ると、次の式を得る。 【0154】 【数27】 【0155】 【数28】 【0156】両辺を各々減算することにより、 【0157】 【数29】 【0158】 を得る。したがって、 【0159】 【数30】 【0160】となる。ここでxd=Xd/Zd、xd+1=Xd+1/
Zd+1、xd=1=Xd=1/Zd=1であり、この値を代入すること
により射影座標の値へと変換すると、次の式を得る。 【0161】 【数31】 【0162】d=Xd/Zdであるが、逆元演算の回数を減
らす目的でydの分母と通分することにより、 【0163】 【数32】 【0164】となる。ここで、xd,ydは図14で示し
た処理により与えられる。したがって、アフィン座標(x
d,yd)の値が全て復元されていることになる。 【0165】 上記手順はステップ1401、ステップ1
402、ステップ1404、ステップ1407、ステッ
プ1409、ステップ1410、ステップ1411、ス
テップ1412、ステップ1413、ステップ1415
及びステップ1416において有限体上の乗算の計算量
を必要とする。ただし、ステップ1408の乗算は、被
乗数の値が4と小さいので、その計算量は通常の乗算の
計算量と比べて小さい 為無視してよい。また、ステップ
1406において有限体上の2乗算の計算量を必要とす
る。また、ステップ1414において有限体上の逆元演
算の計算量を必要とする。有限体上の減算の計算量は、
有限体上の乗算の計算量、2乗算の計算量及び逆元演算
の計算量と比べて比較的小さいので無視してもよい。有
限体上の乗算の計算量をM、有限体上の2乗算の計算量
をS及び有限体上の逆元演算の計算量をIとすると、上
記手順は11M+S+Iの計算量を必要とする。これは
高速スカラー倍計算の計算量と比べてはるかに小さい。
例えばスカラー値dが160ビットであれば、高速スカ
ラー倍計算の計算量はおおよそ1500M弱と見積もら
れる。S=0.8M、I=40Mと仮定すると座標復元
の計算量は51.8Mであり、高速スカラー倍計算の計
算量と比べてはるかに小さい。したがって効率的に座標
を復元できていることが示された。 【0166】 尚、上記手順をとらなくても、上記計算式
により与えられたxd,ydの値が計算できればxd,yd
値が復元できる。その場合においては一般的に復元に必
要となる計算量が増大する。 【0167】 次に図7により、スカラー値d及びワイエ
ルシュトラス型楕円曲線上の点Pから、Xd,Zd,Xd+1,
Zd+1,Xd-1,Zd-1を出力する高速スカラー倍計算部の処理
について説明する。 【0168】 高速スカラー倍計算部202では、スカラ
ー倍計算装置103に入力されたワイエルシュトラス型
楕円曲線上の点Pを入力し、以下の手順によりワイエル
シュトラス型楕円曲線において射影座標で表されたスカ
ラー倍点dP=(Xd,Yd,Zd)のうちXd及びZd、射影座標で表
されたワイエルシュトラス型楕円曲線上の点(d+1)P=(X
d+1,Yd+1,Zd+1)のうちXd+1及びZd+1、射影座標で表され
たワイエルシュトラス型楕円曲線上の点(d-1)P=(Xd-1,
Yd-1,Zd-1)のうちXd-1及びZd-1を出力する。ステップ7
16として、与えられたワイエルシュトラス型楕円曲線
上の点Pをモンゴメリ型楕円曲線上で射影座標により表
された点に変換する。この点をあらためて点Pとする。
ステップ701として、変数Iに初期値1を代入する。
ステップ 702として、点Pの2倍点2Pを計算する。こ
こで点Pは射影座標において(x,y,1)として表し、モン
ゴメリ型楕円曲線の射影座標における2倍算の公式を用
いて2倍点2Pを計算する。ステップ703として、スカ
ラー倍計算装置103に入力された楕円曲線上の点Pと
ステップ702で求めた点2Pを、点の組(P,2P)として格
納する。ここで点P及び点2Pは射影座標で表されてい
る。ステップ704として、変数Iとスカラー値dのビ
ット長とが一致するかどうかを判定し、一致すればステ
ップ714へ行く。一致しなければステップ705へ行
く。ステップ705として、変数Iを1増加させる。ス
テップ706として、スカラー値のI番目のビットの値
が0であるか1であるかを判定する。そのビットの値が
0であればステップ706へ行く。そのビットの値が1
であればステップ710へ行く。ステップ707とし
て、射影座標により表された点の組(mP,(m+1)P)から点m
Pと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計
算する。その後ステップ708へ行く。ここで、加算mP
+(m+1)Pは、モンゴメリ型楕円曲線の射影座標における
加算公式を用いて計算される。ステップ708として、
射影座標により表された点の組(mP,(m+1)P)から点mPの
2倍算2(mP)を行ない、点2mPを計算する。その後ステ
ップ709へ行く。ここで、2倍算2(mP)は、モンゴメ
リ型楕円曲線の射影座標における2倍算の公式を用いて
計算される。ステップ709として、ステップ708で
求めた点2mPとステップ707で求めた点(2m+1)Pを点
の組(2mP,(2m+1)P)として、点の組(mP, (m+1)P)の代
わりに格納する。その後ステップ704へ戻る。ここ
で、点2mP、点(2m+1)P、点mP及び点(m+1)Pは全て射
影座標において表されている。ステップ710として、
射影座標により表された点の組(mP,(m+1)P)から点mPと
点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計
算する。その後ステップ711へ行く。ここで、加算mP
+(m+1)Pは、モンゴメリ型楕円曲線の射影座標における
加算公式を用いて計算される。ステップ711として、
射影座標により表された点の組(mP,(m+1)P)から点(m+
1)Pの2倍算2((m+1)P)を行ない、点(2m+2)Pを計算す
る。その後ステップ712へ行く。ここで、2倍算2((m
+1)P)は、モンゴメリ型楕円曲線の射影座標における2
倍算の公式を用いて計算される。ステップ711とし
て、ステップ710で求めた点(2m+1)Pとステップ71
1で求めた点(2m+2)Pを点の組((2m+1)P,(2m+2)P)とし
て、点の 組(mP,(m+1)P)の代わりに格納する。その後ス
テップ704へ戻る。ここで、点(2m+1)P、点(2m+2)P、
点mP及び点(m+1)Pは全て射影座標において表されてい
る。ステップ714として、射影座標で表された点の組
(mP,(m+1)P)から、点(m-1)Pの射影座標におけるX座標
Xm-1及びZ座標Zm-1を求める。その後ステップ715へ
行く。ステップ715として、モンゴメリ型楕円曲線に
おける点(m-1)Pを、ワイエルシュトラス型楕円曲線上で
射影座標により表された点に変換する。その点のX座標
及びZ座標をそれぞれあらためてXm-1及びZm-1とおく。
また、モンゴメリ型楕円曲線において射影座標で表され
た点の組(mP,(m+1)P)に対して、点mP及び点(m+1)Pをワ
イエルシュトラス型楕円曲線上で射影座標で表された点
に変換し、それぞれmP=(Xm,Ym,Zm)及び(m+1)P=(X
m+1,Ym+1,Zm+1)とあらためて置き直す。ここで、Ym
びYm+1は、モンゴメリ型楕円曲線の射影座標における加
算公式及び2倍算の公式ではY座標を求める事ができな
いので、求まっていない。ステップ713として、ワイ
エルシュトラス型楕円曲線上で射影座標で表された点(m
-1)PのX座標Xm-1及びZ座標Zm-1をそれぞれXd-1及びZd-1
として、ワイエルシュトラス型楕円曲線上で射影座標で
表された点mP=(Xm,Ym,Zm)よりXm及びZmをそれぞれXd
及びZとして、ワイエルシュトラス型楕円曲線上で射
影座標で表された点(m+1)P=(Xm+1,Ym+1,Zm+1)よりX
m+1及びZm+1をそれぞれXd+1及びZd+1として、出力す
る。また上記手順により、mとスカラー値dはビット長
が等しくさらにそのビットのパターンも同じとなる為、
等しくなる。またステップ714において(m-1)Pを求め
る際に、数13、数14の公式により求めてもよいし、
mが奇数であれば、((m-1)/2)Pの値をステップ712の
段階で別に保持しておき、その値からモンゴメリ型楕円
曲線の2倍算の公式より、(m-1)Pを求めてもよい。 【0169】 モンゴメリ型楕円曲線の射影座標における
加算公式の計算量は、Z1=1ととることにより3M+2S
となる。ここでMは有限体上の乗算の計算量、Sは有限
体上の2乗算の計算量である。モンゴメリ型楕円曲線の
射影座標における2倍算の公式の計算量は、3M+2S
である。スカラー値のI番目のビットの値が0であれ
ば、ステップ707において加算の計算量、ステップ7
08において2倍算の計算量が必要となる。すなわち6
M+4Sの計算量が必要となる。スカラー値のI 番目の
ビットの値が1であれば、ステップ710において加算
の計算量、ステップ711において2倍算の計算量が必
要となる。すなわち6M+4Sの計算量が必要である。
いずれの場合においても6M+4Sの計算量が必要であ
る。ステップ704、ステップ705、ステップ70
6、ステップ707、ステップ708、ステップ709
乃至はステップ704、ステップ705、ステップ70
6、ステップ710、ステップ711、ステップ712
の繰り返しの回数は、(スカラー値dのビット長)―1
回となるので、ステップ702での2倍算の計算量とス
テップ716でのモンゴメリ型楕円曲線上の点への変換
に必要な計算量及びステップ715でのワイエルシュト
ラス型楕円曲線上の点への変換に必要な計算量を考慮に
入れると、全体の計算量は(6M+4S)k+4Mとな
る。ここでkはスカラー値dのビット長である。一般的
には、計算量Sは、S=0.8M程度と見積もられるの
で、全体の計算量はおおよそ(9.2k+4)Mとな
る。例えばスカラー値dが160ビット(k=160)
であれば、上記手順のアルゴリズムの計算量はおおよそ
1476Mとなる。スカラー値dのビットあたりの計算
量としてはおよそ9.2Mとなる。A.Miyaji, T.Ono,
H.Cohen, Efficient elliptic curve exponentiation u
sing mixed coordinates, Advances in Cryptology Pr
oceedings of ASIACRYPT'98, LNCS 1514 (1998) pp.51-
65 には、ワイエルシュトラス型楕円曲線において、ウ
ィンドウ法を用いてヤコビアン座標を中心とした混合座
標系を用いたスカラー倍計算方法は高速なスカラー倍計
算方法として記載されている。この場合においては、ス
カラー値のビットあたりの計算量はおおよそ10Mと見
積もられる。例えばスカラー値dが160ビット(k=
160)であれば、このスカラー倍計算方法の計算量は
おおよそ1600Mとなる。したがって、上記手順のア
ルゴリズムの方が計算量が少なく高速といえる。 【0170】 尚、高速スカラー倍計算部202において
上記手順のアルゴリズムを用いなくても、スカラー値d
及びワイエルシュトラス型楕円曲線上の点Pから、Xd、Z
d、Xd+1、Zd+1、Xd-1、Zd-1を出力するアルゴリズムで
あり且つ高速であれば、他のアルゴリズムを用いていも
よい。 【0171】 スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は11M+S+I
であり、これは高速スカラー倍計算部202の高速スカ
ラー倍計算に必要な計算量の(9.2k+4)Mとに比
べてはるかに小さい。したがって、スカラー倍計算装置
103のスカラー倍計算に必要な計算量は、高速スカラ
ー倍計算部の高速スカラー倍計算に必要な計算量とほぼ
同等である。I=40M、S=0.8Mと仮定すると、
この計算量はおおよそ(9.2k+55.8)Mと見積
もることができる。例えばスカラー値dが160ビット
(k=160)であれば、このスカラー倍計算に必要な
計算量はおおよそ1528Mとなる。楕円曲線としてワ
イエルシュトラス型楕円曲線を使用し、ウィンドウ法を
用いてヤコビアン座標を中心とした混合座標系を用いた
スカラー倍計算方法を用いて、スカラー倍点をアフィン
座標として出力する場合に必要となる計算量はおおよそ
1640Mであり、これと比べて必要となる計算量は削
減されている。 【0172】 第7の実施例は楕円曲線としてワイエルシ
ュトラス型楕円曲線を用いたものである。すなわち、ス
カラー倍計算装置103の入出力に用いる楕円曲線はワ
イエルシュトラス型楕円曲線である。ただし、スカラー
倍計算装置103の内部の計算で使用する楕円曲線とし
て、与えられたワイエルシュトラス型楕円曲線から変換
可能であるようなモンゴメリ型楕円曲線を用いてもよ
い。スカラー倍計算部103がスカラー値d及びワイエ
ルシュトラス型楕円曲線上の点Pから、ワイエルシュト
ラス型楕円曲線における射影座標の点として完全な座標
が与えられたスカラー倍点(Xd,Yd,Zd)を計算し出力す
る。スカラー値d及びワイエルシュトラス型楕円曲線上
の点Pをスカラー倍計算装置103に入力すると高速ス
カラー倍計算部202がそれを受け取る。高速スカラー
倍計算部202は受け取ったスカラー値dと与えられた
ワイエルシュトラス型楕円曲線上の点Pからワイエルシ
ュトラス型楕円曲線において射影座標で表されたスカラ
ー倍点dP=(Xd,Yd,Zd)の座標のうちXd及びZd、射影座標
で表されたワイエルシュトラス型楕円曲線上の点(d+1)P
=(Xd+1,Yd+1,Zd+1)の座標のうちXd+1及びZd+1、射影座
標で表されたワイエルシュトラス型楕円曲線上の点(d-
1)P=(Xd-1,Yd-1,Zd-1)の座標のうちXd-1及びZd-1を計
算し、アフィン座標で表された入力されたワイエルシュ
トラス型楕円曲線上の点P=(x,y)と共にその情報を座標
復元部203に与える。座標復元部203は与えられた
座標の値Xd、Zd、Xd+1、Zd+1、Xd-1、Zd-1、x及びyより
ワイエルシュトラス型楕円曲線において射影座標で表さ
れたスカラー倍点dP=(Xd,Yd,Zd)の座標Xd,Yd及びZd
復元を行なう。スカラー倍計算装置103は射影座標に
おいて完全に座標が与えられたスカラー倍点(Xd,Yd,Zd)
を計算結果として出力する。 【0173】 次に図15により、座標x、y Xd、Zd、X
d+1、Zd+1、Xd-1、Zd-1が与えられた場合にXd、Yd、Zd
を出力する座標復元部の処理について説明する。 【0174】 座標復元部203では、ワイエルシュトラ
ス型楕円曲線において射影座標で表されたスカラー倍点
dP=(Xd,Yd,Zd)の座標のうちXd及びZd、射影座標で表さ
れたワイエルシュトラス型楕円曲線上の点(d+1)P=(X
d+1,Yd+1,Zd+1)の座標のうちXd+1及びZd+1、射影座標で
表されたワイエルシュトラス型楕円曲線上の点(d-1)P=
(Xd-1,Yd-1,Zd-1)の座標のうちXd-1及びZd-1、スカラー
倍計算装置103に入力されたワイエルシュトラス型楕
円曲線上の点Pをアフィン座標で表した(x,y)を入力し、
以下の手順で射影座標おいて完全な座標が与えられたス
カラー倍点(Xd,Yd,Zd)を出力する。ここで入力されたワ
イエルシュトラス型楕円曲線上の点Pのアフィン座標を
(x,y)で、射影座標を(X1,Y1,Z1)でそれぞれ表す。入力
されたスカラー値をdとしてワイエルシュトラス型楕円
曲線におけるスカラー倍点dPのアフィン座標を(xd,yd)
で、射影座標を(Xd,Yd,Zd)でそれぞれ表す。ワイエルシ
ュトラス型楕円曲線上の点(d-1)Pのアフィン座標を(x
d-1,yd-1)で、射影座標を(Xd-1,Yd-1,Zd-1)でそれぞれ
表す。ワイエルシュトラス型楕円曲線上の点(d+1)Pのア
フィン座標を(xd+1,yd+1)で、射影座標を(Xd+1,Yd+1,Z
d+1)でそれぞれ表す。 【0175】 ステップ1501においてXd-1×Zd+1が計
算され、T1に格納される。ステップ1502においてZ
d-1×Xd+1が計算され、Tに格納される。ステップ1
503においてT1−Tが計算される。ここでT1には
Xd-1Zd+1がTにはZd-1Xd+1がそれぞれ格納されてお
り、したがってXd-1Zd+1-Zd-1Xd+1が計算される。その
結果がT1に格納される。ステップ1504においてZd
×xが計算され、Tに格納される。ステップ1505
においてXd-Tが計算さる。ここでTにはZdxが格納
されており、したがってXd-xZdが計算される。その結果
がTに格納される。ステップ1506においてT
2乗が計算される。ここでTにはXd-xZdが格納されて
おり、したがって(Xd-xZd)2が計算される。その結果が
に格納される。ステップ1507においてT1×T
が計算される。ここでT1にはXd-1Zd+1-Zd-1Xd+1がT
には(Xd-xZd)2がそれぞれ格納されており、したがっ
て(Xd-xZd)2(Xd-1Zd+1-Zd-1Xd+1)が計算される。その結
果がレジスタYdに格納される。ステップ1508におい
て4×yが計算される。その結果がTに格納される。ス
テップ1509においてT×Zd+1が計算される。ここ
でTには4yが格納されており、したがって4yZd+1が計
算される。その結果がTに格納される。ステップ15
10においてT×Zd-1が計算される。ここでTには
4yZd+1が格納されており、したがって4yZd+1Zd-1が計算
される。その結果がTに格納される。ステップ151
1においてT×Zdが計算される。ここでTには4yZ
d+1Zd-1が格納されており、したがって4yZd+1Zd-1Zd
計算される。その結果がTに格納される。ステップ1
512においてT×Xdが計算される。ここでTには
4yZd+1Zd -1Zdが格納されており、したがって4yZd+1Zd-1
ZdXdが計算される。その結果がレジスタXdに格納され
る。ステップ1513においてT×Zdが計算される。
ここでTには4yZd+1Zd-1Zdが格納されており、したが
って4yZd+1Zd-1ZdZdが計算される。その結果がレジスタ
Zdに格納される。したがってレジスタZdには4y Zd+1Z
d-1ZdZdが格納されている。レジスタYdにはステップ1
507において(Xd-xZd)2(Xd-1Zd+1-Zd-1Xd+1)が格納さ
れ、その後更新が行われないので、その値が保持されて
いる。レジスタXdにはステップ1512において4yZd+1
Zd-1ZdXdが格納され、その後更新が行われないので、そ
の値が保持されている。 【0176】上記手順により与えられたx、y、Xd
Zd、Xd+1、Zd+1、Xd-1、Zd-1からワイエルシュトラス型
楕円曲線におけるスカラー倍点の射影座標(Xd,Yd,Zd)に
おける値が全て復元される理由は以下の通りである。点
(d+1)Pは点dPに点Pを加算した点である。点(d-1)Pは点d
Pから点Pを減算した点である。ワイエルシュトラス型楕
円曲線のアフィン座標における加算公式に代入すると、
数27、数28を得る。
両辺を各々減算することにより、数29を得る。したが
って、数30となる。ここでxd=Xd/Zd、xd+1=Xd+1/
Zd+1、xd-1=Xd-1/Zd-1であり、この値を代入すること
により射影座標の値へと変換すると、数31を得る。x
d=Xd/Zdであるが、ydの分母と通分することにより、数
32となる。 【0177】その結果として 【0178】 【数33】 【0179】とし、Xd及びZdをそれぞれ 【0180】 【数34】 【0181】 【数35】 【0182】により更新すればよい。 【0183】ここで、Xd,Yd,Zdは図15で示した処理
により与えられる。したがって、射影座標(Xd,Yd,Zd)の
値は全て復元されたことになる。 【0184】上記手順はステップ1501、ステップ1
505、ステップ1504、ステップ1507、ステッ
プ1509、ステップ1510、ステップ1511、ス
テップ1512及びステップ1513において有限体上
の乗算の計算量を必要とする。 【0185】ただし、ステップ1508の乗算は、被乗
数の値が4と小さいので、その計算量は通常の乗算の計
算量と比べて小さい為無視してよい。また、ステップ1
506において有限体上の2乗算の計算量を必要とす
る。有限体上の減算の計算量は、有限体上の乗算の計算
量、2乗算の計算量と比べて比較的小さいので無視して
もよい。有限体上の乗算の計算量をM、有限体上の2乗
算の計算量をSとすると、上記手順は9M+Sの計算量
を必要とする。これは高速スカラー倍計算の計算量と比
べてはるかに小さい。例えばスカラー値dが160ビッ
トであれば、高速スカラー倍計算の計算量はおおよそ1
500M弱と見積もられる。S=0.8Mと仮定すると
座標復元の計算量は9.8Mであり、高速スカラー倍計
算の計算量と比べてはるかに小さい。したがって効率的
に座標を復元できていることが示された。 【0186】尚、上記手順をとらなくても、上記計算式
により与えられたXd,Yd,Zdの値が計算できればXd,Yd,Zd
の値が復元できる。また、xd,ydが上記計算式により与
えられる値を取るようにXd,Yd,Zdの値を選択し、その値
が計算できればXd,Yd,Zdが復元できる。それらの場合に
おいては一般的に復元に必要となる計算量が増大する。 【0187】次に、スカラー値d及びワイエルシュトラ
ス型楕円曲線上の点Pから、Xd,Zd,Xd+1,Zd+1
Xd-1,Zd-1を出力するアルゴリズムについて説明する。 【0188】第7実施例の高速スカラー倍計算部202
の高速スカラー倍計算方法として、第6実施例の高速ス
カラー倍計算方法を用いる。これにより、スカラー値d
及びワイエルシュトラス型楕円曲線上の点Pから、Xd,Z
d,Xd+1,Zd+1,Xd-1,Zd-1を出力するアルゴリズムと
して、高速であるアルゴリズムが達成される。尚、高速
スカラー倍計算部202において上記手順のアルゴリズ
ムを用いなくても、スカラー値d及びワイエルシュトラ
ス型楕円曲線上の点Pから、Xd,Zd,Xd+1,Zd+1,Xd-1
Zd-1を出力するアルゴリズムであり且つ高速であれば、
他のアルゴリズムを用いていもよい。 【0189】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は9M+Sであ
り、これは高速スカラー倍計算部202の高速スカラー
倍計算に必要な計算量の(9.2k+4)Mとに比べて
はるかに小さい。したがって、スカラー倍計算装置10
3のスカラー倍計算に必要な計算量は、高速スカラー倍
計算部の高速スカラー倍計算に必要な計算量とほぼ同等
である。S=0.8Mと仮定すると、この計算量はおお
よそ(9.2k+13.8)Mと見積もることができ
る。例えばスカラー値dが160ビット(k=160)
であれば、このスカラー倍計算に必要な計算量はおおよ
そ1486Mとなる。楕円曲線としてワイエルシュトラ
ス型楕円曲線を使用し、ウィンドウ法を用いてヤコビア
ン座標を中心とした混合座標系を用いたスカラー倍計算
方法を用いて、スカラー倍点をヤコビアン座標として出
力する場合に必要となる計算量はおおよそ1600Mで
あり、これと比べて必要となる計算量は削減されてい
る。 【0190】第8の実施例は楕円曲線としてワイエルシ
ュトラス型楕円曲線を用いたものである。すなわち、ス
カラー倍計算装置103の入出力に用いる楕円曲線はワ
イエルシュトラス型楕円曲線である。ただし、スカラー
倍計算装置103の内部の計算で使用する楕円曲線とし
て、与えられたワイエルシュトラス型楕円曲線から変換
可能であるようなモンゴメリ型楕円曲線を用いてもよ
い。スカラー倍計算装置103がスカラー値d及びワイ
エルシュトラス型楕円曲線上の点Pから、ワイエルシュ
トラス型楕円曲線におけるアフィン座標の点として完全
な座標が与えられたスカラー倍点(xd,yd)を計算し出力
する。スカラー値d及びワイエルシュトラス型楕円曲線
上の点Pをスカラー倍計算装置103に入力すると高速
スカラー倍計算部202がそれを受け取る。高速スカラ
ー倍計算部202は受け取ったスカラー値dと与えられ
たワイエルシュトラス型楕円曲線上の点Pからワイエル
シュトラス型楕円曲線においてアフィン座標で表された
スカラー倍点dP=(xd,yd)の座標のうちxd、アフィン座
標で表されたワイエルシュトラス型楕円曲線上の点(d+
1)P=(xd+1,yd+1)の座標のうちxd+1、アフィン座標で表
されたワイエルシュトラス型楕円曲線上の点(d-1)P=(x
d-1,yd-1)の座標のうちxd-1を計算し、アフィン座標で
表された入力されたワイエルシュトラス型楕円曲線上の
点P=(x,y)と共にその情報を座標復元部203に与え
る。座標復元部203は与えられた座標の値xd、xd+1
xd-1、x及びyよりワイエルシュトラス型楕円曲線におい
てアフィン座標で表されたスカラー倍点dP=(xd,yd)の
座標ydの復元を行なう。スカラー倍計算装置103はア
フィン座標において完全に座標が与えられたスカラー倍
点(xd,yd)を計算結果として出力する。 【0191】次に図16により、座標x、y、xd、xd+1
xd-1が与えられた場合に、xd、ydを出力する座標復元部
の処理について説明する。 【0192】座標復元部203では、ワイエルシュトラ
ス型楕円曲線においてアフィン座標で表されたスカラー
倍点dP=(xd,yd)の座標のうちxd、アフィン座標で表さ
れたワイエルシュトラス型楕円曲線上の点(d+1)P=(x
d+1,yd+1)の座標のうちxd+1、アフィン座標で表された
ワイエルシュトラス型楕円曲線上の点(d-1)P=(xd-1,y
d-1)の座標のうちxd-1、スカラー倍計算装置103に入
力されたワイエルシュトラス型楕円曲線上の点Pをアフ
ィン座標で表した(x,y)を入力し、以下の手順でアフィ
ン座標において完全な座標が与えられたスカラー倍点(x
d,yd)を出力する。 【0193】ステップ1601においてxd−xが計算さ
れ、T1に格納される。ステップ1602においてT1
2乗すなわち(xd−x)2が計算され、T1に格納される。
ステップ1603においてxd-1−xd+1が計算され、T2
に格納される。ステップ1604においてT1×T2が計
算される。ここでT1には(xd−x)2がT2にはxd-1−xd+1
がそれぞれ格納されており、したがって(xd−x)2(xd-1
−xd+1)が計算される。その結果がT1に格納される。ス
テップ1605において4×yが計算され、T2に格納さ
れる。ステップ1606においてT2の逆元が計算され
る。ここでT2には4yが格納されており、したがって1/4
yが計算される。その結果がT2に格納される。ステップ
1607においてT1×T2が計算される。ここでT1
は(xd−x)2(xd -1−xd+1)がT2には1/4yがそれぞれ格納
されており、したがって(xd−x)2(xd-1−xd+1)/4yが計
算される。その結果がレジスタydに格納される。したが
ってレジスタydには(xd−x)2(xd-1−xd+1)/4yが格納さ
れている。レジスタxdは全く更新されないので入力され
た値が保持されている。 【0194】上記手順によりスカラー倍点のy座標yd
復元される理由は以下の通りである。点(d+1)Pは点dPに
点Pを加算した点である。点(d-1)Pは点dPから点Pを減算
した点である。ワイエルシュトラス型楕円曲線のアフィ
ン座標における加算公式に代入すると、数27、数28
を得る。
両辺を各々減算することにより、数29を得る。したが
って、数30となる。ここでxd,ydは図16の処理によ
って与えられる。したがって、アフィン座標(xd,yd)の
値を全て復元していることになる。 【0195】上記手順はステップ1604、ステップ1
607において有限体上の乗算の計算量を必要とする。
ただし、ステップ1605の乗算は、被乗数の値が4と
小さいので、その計算量は通常の乗算の計算量と比べて
小さい為無視してよい。また、ステップ1602におい
て有限体上の2乗算の計算量を必要とする。さらにステ
ップ1606において有限体上の逆元演算の計算量を必
要とする。有限体上の減算の計算量は、有限体上の乗算
の計算量、2乗算の計算量、逆元演算の計算量と比べて
比較的小さいので無視してもよい。有限体上の乗算の計
算量をM、有限体上の2乗算の計算量をS、有限体上の
逆元演算の計算量をIとすると、上記手順は2M+S+
Iの計算量を必要とする。これは高速スカラー倍計算の
計算量と比べてはるかに小さい。例えばスカラー値dが
160ビットであれば、高速スカラー倍計算の計算量は
おおよそ1500M弱と見積もられる。S=0.8M及
びI=40Mと仮定すると座標復元の計算量は42.8
Mであり、高速スカラー倍計算の計算量と比べてはるか
に小さい。したがって効率的に座標を復元できているこ
とが示された。 【0196】尚、上記手順をとらなくても、上記等式の
右辺の値が計算できればydの値が復元できる。その場合
は一般的に復元に必要となる計算量が増大する。 【0197】次に図7により、スカラー値d及びワイエ
ルシュトラス型楕円曲線上の点Pから、xd、xd+1、xd-1
を出力するアルゴリズムについて説明する。 【0198】高速スカラー倍計算部202では、スカラ
ー倍計算装置103に入力されたワイエルシュトラス型
楕円曲線上の点Pを入力し、以下の手順によりワイエル
シュトラス型楕円曲線においてアフィン座標で表された
スカラー倍点dP=(xd,yd)のうちxd、アフィン座標で表
されたワイエルシュトラス型楕円曲線上の点(d+1)P=(x
d+1,yd+1)のうちxd+1、アフィン座標で表されたワイエ
ルシュトラス型楕円曲線上の点(d-1)P=(xd-1,yd-1)の
うちxd-1を出力する。ステップ716として、与えられ
たワイエルシュトラス型楕円曲線上の点Pをモンゴメリ
型楕円曲線上で射影座標により表された点に変換する。
この点をあらためて点Pとする。ステップ701とし
て、変数Iに初期値1を代入する。ステップ702とし
て、点Pの2倍点2Pを計算する。ここで点Pは射影座標
において(x,y,1)として表し、モンゴメリ型楕円曲線
の射影座標における2倍算の公式を用いて2倍点2Pを計
算する。ステップ703として、スカラー倍計算装置1
03に入力された楕円曲線上の点Pとステップ702で
求めた点2Pを、点の組(P,2P)として格納する。ここで点
P及び点2Pは射影座標で表されている。ステップ704
として、変数Iとスカラー値dのビット長とが一致する
かどうかを判定し、一致すればステップ714へ行く。
一致しなければステップ705へ行く。ステップ705
として、変数Iを1増加させる。ステップ706とし
て、スカラー値のI番目のビットの値が0であるか1で
あるかを判定する。そのビットの値が0であればステッ
プ706へ行く。そのビットの値が1であればステップ
710へ行く。ステップ707として、射影座標により
表された点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算m
P+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステ
ップ708へ行く。ここで、加算mP+(m+1)Pは、モンゴ
メリ型楕円曲線の射影座標における加算公式を用いて計
算される。ステップ708として、射影座標により表さ
れた点の組(mP,(m+1)P)から点mPの2倍算2(mP)を行な
い、点2mPを計算する。その後ステップ709へ行く。
ここで、2倍算2(mP)は、モンゴメリ型楕円曲線の射影
座標における2倍算の公式を用いて計算される。ステッ
プ709として、ステップ708で求めた点2mPとステ
ップ707で求めた点(2m+1)Pを点の組(2mP, (2m+1)
P)として、点の組(mP, (m+1)P)の代わりに格納する。
その後ステップ704へ戻る。ここで、点2mP、点(2m
+1)P、点mP及び点(m+1)Pは全て射影座標において表さ
れている。ステップ710として、射影座標により表さ
れた点の組(mP, (m+1)P)から点mPと点(m+1)Pの加算mP
+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステ
ップ711へ行く。ここで、加算mP+(m+1)Pは、モンゴ
メリ型楕円曲線の射影座標における加算公式を用いて計
算される。ステップ711として、射影座標により表さ
れた点の組(mP, (m+1)P)から点(m+1)Pの2倍算2((m+
1)P)を行ない、点(2m+2)Pを計算する。その後ステップ
712へ行く。ここで、2倍算2((m+1)P)は、モンゴメ
リ型楕円曲線の射影座標における2倍算の公式を用いて
計算される。ステップ711として、ステップ710で
求めた点(2m+1)Pとステップ711で求めた点(2m+2)P
を点の組((2m+1)P, (2m+2)P)として、点の組(mP, (m+1)
P)の代わりに格納する。その後ステップ704へ戻る。
ここで、点(2m+1)P、点(2m+2)P、点mP及び点(m+1)Pは全
て射影座標において表されている。ステップ714とし
て、射影座標で表された点の組(mP,(m+1)P)から、点(m-
1)Pの射影座標におけるX座標Xm-1及びZ座標Zm-1を求め
る。その後ステップ715へ行く。ステップ715とし
て、モンゴメリ型楕円曲線における点(m-1)Pを、ワイエ
ルシュトラス型楕円曲線上でアフィン座標により表され
た点に変換する。その点のx座標をそれぞれあらためてx
m-1とおく。また、モンゴメリ型楕円曲線において射影
座標で表された点の組(mP,(m+1)P)に対して、点mP及び
点(m+1)Pをワイエルシュトラス型楕円曲線上でアフィン
座標で表された点に変換し、それぞれmP=(xm,ym)及
び(m+1)P=(xm+1,ym+1)とあらためて置き直す。ここ
で、ym及びym+1は、モンゴメリ型楕円曲線の射影座標に
おける加算公式及び2倍算の公式ではY座標を求める事
ができないので、求まっていない。その後ステップ71
3へ行く。ステップ713として、ワイエルシュトラス
型楕円曲線上でアフィン座標で表された点(m-1)Pのx座
標xm-1をxd-1として、ワイエルシュトラス型楕円曲線上
で射影座標で表された点mP=(xm,ym)よりxmをxdとし
て、ワイエルシュトラス型楕円曲線上でアフィン座標で
表された点(m+1)P=(xm+1,ym+1)よりxm+1をxd+1とし
て、出力する。また上記手順により、mとスカラー値d
はビット長が等しくさらにそのビットのパターンも同じ
となる為、等しくなる。またステップ714において(m
-1)Pを求める際に、数13、数14の公式により求めて
もよいし、mが奇数であれば、((m-1)/2)Pの値をステッ
プ712の段階で別に保持しておき、その値からモンゴ
メリ型楕円曲線の2倍算の公式より、(m-1)Pを求めても
よい。 【0199】モンゴメリ型楕円曲線の射影座標における
加算公式の計算量は、Z1=1ととることにより3M+2
Sとなる。ここでMは有限体上の乗算の計算量、Sは有
限体上の2乗算の計算量である。モンゴメリ型楕円曲線
の射影座標における2倍算の公式の計算量は、3M+2
Sである。スカラー値のI番目のビットの値が0であれ
ば、ステップ707において加算の計算量、ステップ7
08において2倍算の計算量が必要となる。すなわち6
M+4Sの計算量が必要となる。スカラー値のI番目の
ビットの値が1であれば、ステップ710において加算
の計算量、ステップ711において2倍算の計算量が必
要となる。すなわち6M+4Sの計算量が必要である。
いずれの場合においても6M+4Sの計算量が必要であ
る。ステップ704、ステップ705、ステップ70
6、ステップ707、ステップ708、ステップ709
乃至はステップ704、ステップ705、ステップ70
6、ステップ710、ステップ711、ステップ712
の繰り返しの回数は、(スカラー値dのビット長)―1
回となるので、ステップ702での2倍算の計算量とス
テップ716でのモンゴメリ型楕円曲線上への点への変
換に必要な計算量及びステップ715でのワイエルシュ
トラス型楕円曲線上の点への必要な計算量を考慮に入れ
ると、全体の計算量は(6M+4S)k+15M+Iと
なる。ここでkはスカラー値dのビット長である。一般
的には、計算量Sは、S=0.8M程度、計算量Iは、
I=40M程度と見積もられるので、全体の計算量はお
およそ(9.2k+55)Mとなる。例えばスカラー値
dが160ビット(k=160)であれば、上記手順の
アルゴリズムの計算量はおおよそ1527Mとなる。ス
カラー値dのビットあたりの計算量としてはおよそ9.
2Mとなる。A.Miyaji, T.Ono, H.Cohen, Efficient el
liptic curve exponentiation using mixed coordinate
s, Advances in Cryptology Proceedings of ASIACRYP
T'98, LNCS 1514 (1998) pp.51-65 には、ワイエルシュ
トラス型楕円曲線において、ウィンドウ法を用いてヤコ
ビアン座標を中心とした混合座標系を用いたスカラー倍
計算方法は高速なスカラー倍計算方法として記載されて
いる。この場合においては、スカラー値のビットあたり
の計算量はおおよそ10Mと見積もられる。例えばスカ
ラー値dが160ビット(k=160)であれば、この
スカラー倍計算方法の計算量はおおよそ1640Mとな
る。したがって、上記手順のアルゴリズムの方が計算量
が少なく高速といえる。 【0200】尚、高速スカラー倍計算部202において
上記手順のアルゴリズムを用いなくても、スカラー値d
及びワイエルシュトラス型楕円曲線上の点Pから、xd, x
d+1,xd=1を出力するアルゴリズムであり且つ高速であれ
ば、他のアルゴリズムを用いていもよい。 【0201】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は2M+S+Iで
あり、これは高速スカラー倍計算部202の高速スカラ
ー倍計算に必要な計算量の(9.2k+55)Mとに比
べてはるかに小さい。したがって、スカラー倍計算装置
103のスカラー倍計算に必要な計算量は、高速スカラ
ー倍計算部の高速スカラー倍計算に必要な計算量とほぼ
同等である。I=40M、S=0.8Mと仮定すると、
この計算量はおおよそ(9.2k+97.8)Mと見積
もることができる。例えばスカラー値dが160ビット
(k=160)であれば、このスカラー倍計算に必要な
計算量は1570Mとなる。楕円曲線としてワイエルシ
ュトラス型楕円曲線を使用し、ウィンドウ法を用いてヤ
コビアン座標を中心とした混合座標系を用いたスカラー
倍計算方法を用いて、スカラー倍点をアフィン座標とし
て出力する場合に必要となる計算量はおおよそ1640
Mであり、これと比べて必要となる計算量は削減されて
いる。 【0202】第9の実施例は、入出力用の楕円曲線とし
てワイエルシュトラス型楕円曲線を、内部の計算用には
与えられたワイエルシュトラス型楕円曲線から変換可能
であるモンゴメリ型楕円曲線を用いたものである。スカ
ラー倍計算装置103がスカラー値d及びワイエルシュ
トラス型楕円曲線上の点Pから、ワイエルシュトラス型
楕円曲線におけるアフィン座標の点として完全な座標が
与えられたスカラー倍点(xd,yd)を計算し出力する
ものである。スカラー値d及びワイエルシュトラス型楕
円曲線上の点Pをスカラー倍計算装置103に入力する
と高速スカラー倍計算部202がそれを受け取る。高速
スカラー倍計算部202は受け取ったスカラー値dと与
えられたワイエルシュトラス型楕円曲線上の点Pからモ
ンゴメリ型楕円曲線において射影座標で表されたスカラ
ー倍点dP=(Xd,Yd,Zd)の座標のうちXd及びZd、射影座標
で表されたモンゴメリ型楕円曲線上の点(d+1)P=(Xd+1,
Yd+1,Zd+1) の座標のうちXd+1及びZd+1を計算する。ま
た、入力されたワイエルシュトラス型楕円曲線上の点P
を、与えられたワイエルシュトラス型楕円曲線から変換
可能であるモンゴメリ型楕円曲線上の点に変換し、その
点を新たにP=(x,y)とおく。高速スカラー倍計算部20
2は、Xd、Zd、Xd+1、Zd+1、x及びyを座標復元部20
3に与える。座標復元部203は与えられた座標の値
Xd、Zd、Xd+1、Zd+1、x及びyよりワイエルシュトラス
型楕円曲線においてアフィン座標で表されたスカラー倍
点dP=(xd,yd)の座標xd及びydの復元を行なう。スカ
ラー倍計算装置103はアフィン座標において完全に座
標が与えられたスカラー倍点(xd,yd)を計算結果として
出力する。 【0203】次に図17により、座標x,y,Xd,Zd,Xd+1,Z
d+1が与えられた場合にxd,ydを出力する座標復元部の処
理について説明する。 【0204】座標復元部203では、モンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,
Yd,Zd)の座標うちXd及びZd、射影座標で表されたモンゴ
メリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座標
のうちXd+1及びZd+1、スカラー倍計算装置103に入力
されたモンゴメリ型楕円曲線上の点Pをアフィン座標で
表した(x,y)を入力し、以下の手順でアフィン座標おい
て完全な座標が与えられたスカラー倍点(xd,yd)を出力
する。ここで入力されたモンゴメリ型楕円曲線上の点P
のアフィン座標を(x,y)で、射影座標を(X,Y,Z)で
それぞれ表す。入力されたスカラー値をdとしてモンゴ
メリ型楕円曲線におけるスカラー倍点dPのアフィン座
標を(x Mon,y Mon)で、射影座標を(Xd,
Yd,Zd)でそれぞれ表す。モンゴメリ型楕円曲線上の点(d
-1)Pのアフィン座標を(xd-1,yd-1)で、射影座標を
(Xd-1,Yd-1,Zd-1)でそれぞれ表す。モンゴメリ型楕円曲
線上の点(d+1)Pのアフィン座標を(xd+1,yd+1)で、射影
座標を(Xd+1,Yd+1,Zd+1)でそれぞれ表す。 【0205】ステップ1701においてXd×xが計算さ
れ、レジスタT1に格納される。ステップ1702にお
いてT1-Zdが計算される。ここでレジスタT1にはXdxが
格納されており、したがってXdx-Zd が計算される。そ
の結果がレジスタT1に格納される。ステップ1703
においてZd×xが計算され、レジスタT2に格納される。
ステップ1104においてXd-T2が計算される。ここで
レジスタT2にはZdxが格納されており、したがってXd-x
Zdが計算される。その結果がレジスタT2に格納され
る。ステップ1705においてXd+1×T2が計算され
る。ここでレジスタT2にはXd-xZdが格納されており、
したがってXd+1(Xd-xZd)が計算される。その結果がレジ
スタT3に格納される。ステップ1706においてT2
2乗が計算される。ここでレジスタT2には(Xd-xZd)が
格納されており、したがって(Xd-xZd)2が計算される。
その結果がレジスタT2に格納される。ステップ110
7においてT2×Xd+1が計算される。ここでレジスタT2
には(Xd-xZd)2が格納されており、したがってXd+1(Xd-x
Zd)2が計算される。その結果がレジスタT2に格納され
る。ステップ1708においてT2×Zd+1が計算され
る。ここでレジスタT2にはXd+1(Xd-xZd)2が格納されて
おり、したがってZd+1Xd+1(Xd-xZd)2が計算される。そ
の結果がレジスタT2に格納される。ステップ1709
においてT2×yが計算される。ここでレジスタT2にはZ
d+1Xd+1(Xd-xZd)2が格納されており、したがってyZd+1X
d+1(Xd-xZd)2が計算される。その結果がレジスタT2
格納される。ステップ1710においてT2×Bが計算さ
れる。ここでレジスタT2にはyZd+1Xd+1(Xd-xZd)2が格
納されており、したがってByZd+1Xd+1(Xd-xZd)2が計算
される。その結果がレジスタT2に格納される。ステッ
プ1711においてT2×Zdが計算される。ここでレジ
スタT2にはByZd+1Xd+1(Xd-xZd)2が格納されており、し
たがってByZd+1Xd+1(Xd-xZd)2Zdが計算される。その結
果がレジスタT2に格納される。ステップ1712にお
いてT2×Xdが計算される。ここでレジスタT2にはByZ
d+1Xd+1(Xd-xZd)2Zdが格納されており、したがってByZ
d+1Xd+1(Xd-xZd)2ZdXdが計算される。その結果がレジス
タT4に格納される。ステップ1713においてT2×Zd
が計算される。ここでレジスタT2にはByZd+1Xd+1(Xd-x
Zd)2Zdが格納されており、したがってByZd+1Xd+1(Xd-xZ
d)2Zdが計算される。その結果がレジスタT2に格納され
る。ステップ1714においてレジスタT2×sが計算さ
れる。ここでレジスタT2にはByZd+1Xd+1(Xd-xZd)2Zd 2
が格納されており、したがってsByZd+1Xd+1(Xd-xZd)2Zd
2が計算される。その結果がレジスタT2に格納される。
ステップ1715においてT2の逆元が計算される。こ
こで、T2にはsByZd+1Xd+1(Xd-xZd)2Zd 2が格納されてお
り、したがって1/ sByZd+1Xd+1(Xd-xZd)2Zd 2が計算され
る。その結果がT2に格納される。ステップ1716に
おいてT2×Tが計算される。ここでレジスタT2には
1/sByZd+1Xd+1(Xd-xZd)2Zd 2がレジスタTにはByZd+1X
d+1(Xd-xZd)2ZdXdがそれぞれ格納されており、したがっ
て(ByZd+1Xd+1(Xd-xZd)2ZdXd)/(sByZd+1Xd+1(Xd-xZd)2Z
d 2)が計算される。その結果がレジスタTに格納され
る。ステップ1717においてT+αが計算される。
ここでレジスタTには(ByZd+1Xd+1(Xd-xZd)2ZdXd)/(s
ByZd+1Xd+1(Xd-xZd)2Zd 2) が格納されており、従って、
数36が計算される。 【0206】 【数36】 【0207】その結果が、レジスタxdに格納される。ス
テップ1718においてT1×Zd+1が計算される。ここ
でレジスタT1にはXdx-Zdが格納されており、したがっ
てZd+1(Xdx-Zd)が計算される。その結果がレジスタT4
に格納される。ステップ1719においてレジスタT1
の2乗が計算される。ここでレジスタT1には(Xdx-Zd)
が格納されており、したがって(Xdx-Zd)2が計算され
る。その結果がレジスタT1に格納される。ステップ1
720においてT1×Tが計算される。ここでレジス
タT1には(Xdx-Zd)2がレジスタTには1/sByZd+1X
d+1(Xd-xZd)2Zd 2がそれぞれ格納されており、したがっ
て(Xdx-Zd)2/sByZd+1Xd+1(Xd-xZd)2 Zd 2が計算される。
その結果がレジスタT2に格納される。ステップ172
1においてT3+T4が計算される。ここでレジスタT3
はXd+1(Xd-xZd) がレジスタT4にはZd+1 (Xdx-Zd)がそ
れぞれ格納されており、したがってXd+1(Xd-xZd)+Zd+1
(Xdx-Zd)が計算される。その結果がレジスタT1に格納
される。ステップ1722においてT3-T4が計算され
る。ここでレジスタT3にはXd+1(Xd-xZd)がレジスタT4
にはZd+1(Xdx-Zd)がそれぞれ格納されており、したがっ
てXd+1(Xd-xZd)-Zd+1(Xdx-Zd)が計算される。その結果
がレジスタT3に格納される。ステップ1723におい
てT1×T3が計算される。ここでレジスタT1にはX
d+1(Xd-xZd)+Zd+1(Xdx-Zd)がレジスタT3にはXd+1(Xd-x
Zd)-Zd+1(Xdx-Zd)がそれぞれ格納されており、したがっ
て{Xd+1(Xd-xZd)+Zd+1(Xdx-Zd)}{Xd+1(Xd-xZd)-Zd+1(Xd
x-Zd)}が計算される。その結果がレジスタT1に格納さ
れる。ステップ1724においてT1×T2が計算され
る。ここでレジスタT1には{Xd+1(Xd-xZd)+Zd+1(Xdx-
Zd)}{Xd+1(Xd-xZd)-Zd+1(Xdx-Zd)}がレジスタT2には(X
dx-Zd)2/sByZd+1Xd+1(Xd-xZd)2Zd 2がそれぞれ格納され
ており、したがって 【0208】 【数37】 【0209】が計算される。その結果がレジスタyd
格納される。したがってレジスタydには数37の値が
格納されている。レジスタxdにはステップ1717に
おいて数36の値が格納され、その後更新が行なわれな
いので、その値が保持されている。その結果として、ワ
イエルシュトラス型楕円曲線におけるアフィン座標
(xd,yd)の値が全て復元されている。 【0210】上記手順により与えられたx、y、Xd
Zd、Xd+1、Zd+1からワイエルシュトラス型楕円曲線にお
けるスカラー倍点のアフィン座標(xd,yd)における値
が全て復元される理由は以下の通りである。点(d+1)Pは
点dPに点Pを加算した点である。点(d-1)Pは点dPから点P
を減算した点である。モンゴメリ型楕円曲線のアフィン
座標における加算公式に代入すると、次の式を得る。 【0211】 【数38】 【0212】 【数39】 【0213】両辺を各々減算することにより、 【0214】 【数40】 【0215】を得る。したがって、 【0216】 【数41】 【0217】となる。ここでxd Mon=Xd/Zd、xd+1=X
d+1/Zd+1、xd-1=Xd-1/Zd-1であり、この値を代入する
ことにより射影座標の値へと変換すると、次の式を得
る。 【0218】 【数42】 【0219】モンゴメリ型楕円曲線の射影座標での加算
公式は既に示した数11、数12である。ここでXm及び
Zmはモンゴメリ型楕円曲線上の点Pのm倍点mPの射影座
標におけるX座標及びZ座標、Xn及びZnはモンゴメリ型楕
円曲線上の点Pのn倍点nPの射影座標におけるX座標及び
Z座標、Xm-n及びZm-nはモンゴメリ型楕円曲線上の点Pの
(m-n)倍点(m-n)Pの射影座標におけるX座標及びZ座標、X
m+n及びZm+nはモンゴメリ型楕円曲線上の点Pの(m+n)倍
点(m+n)Pの射影座標におけるX座標及びZ座標であり、
m,nはm>nをみたす正整数である。この式はXm/Zm
=xm、Xn/Zn=xn、Xm-n/Zm-n=xm-nが不変のとき、X
m+n/Zm+n=xm+nも不変となるので、射影座標での公式
としてうまく働いている。他方、数13、数14とおく
と、この式もXm/Zm=xm、Xn/Zn=xn、Xm-n/Zm-n=x
m-nが不変のとき、Xm+n/Zm+n=xm-nも不変となる。ま
た、X'm-n/Z'm-n=Xm-n/Zm-n=xm-nをみたすので、x
m-nの射影座標としてX'm-n,Z'm-nをとってよい。m=d、
n=1として上記公式を用いてyd Monの式よりXd-1及びZ
d-1を消去し、X1=x,Z1=1とおくことにより、次の式を
得る。 【0220】 【数43】 【0221】xd Mon=Xd/Zdであるが、逆元演算の回数
を減らす目的でyd Modの分母と通分することにより、 【0222】 【数44】 【0223】となる。モンゴメリ型楕円曲線上の点とワ
イエルシュトラス型楕円曲線上の点との対応関係につい
ては、K.Okeya, H.Kurumatani, K.Sakurai, Elliptic C
urveswith the Montgomery-Form and Their Cryptograp
hic Applications, Public Key Cryptography, LNCS 17
51 (2000) pp.238-257 に記載されている。それによる
と、変換パラメタをs,αとして、yd=s-1yd Mon及びxd=s
-1xd Mon+αの関係がある。結果として数45、数46を
得る。 【0224】 【数45】 【0225】 【数46】 【0226】ここで、xd,ydは図17より与えられる。
したがって、ワイエルシュトラス型楕円曲線におけるア
フィン座標(xd,yd)の値が全て復元されていることにな
る。 【0227】上記手順はステップ1701、ステップ1
703、ステップ1705、ステップ1707、ステッ
プ1708、ステップ1709、ステップ1710、ス
テップ1711、ステップ1712、ステップ171
3、ステップ1714、ステップ1716、ステップ1
718、ステップ1720、ステップ1723及びステ
ップ1724において有限体上の乗算の計算量を必要と
する。また、ステップ1706及びステップ1719に
おいて有限体上の2乗算の計算量を必要とする。また、
ステップ1115において有限体上の逆元演算の計算量
を必要とする。有限体上の加算及び減算の計算量は、有
限体上の乗算の計算量、2乗算の計算量及び逆元演算の
計算量と比べて比較的小さいので無視してもよい。有限
体上の乗算の計算量をM、有限体上の2乗算の計算量を
S及び有限体上の逆元演算の計算量をIとすると、上記
手順は16M+2S+Iの計算量を必要とする。これは
高速スカラー倍計算の計算量と比べてはるかに小さい。
例えばスカラー値dが160ビットであれば、高速スカ
ラー倍計算の計算量はおおよそ1500M弱と見積もら
れる。S=0.8M、I=40Mと仮定すると座標復元
の計算量は57.6Mであり、高速スカラー倍計算の計
算量と比べてはるかに小さい。したがって効率的に座標
を復元できていることが示された。 【0228】尚、上記手順をとらなくても、上記計算式
により与えられたxd,ydの値が計算できればxd,ydの値
が復元できる。その場合においては一般的に復元に必要
となる計算量が増大する。また、モンゴメリ型楕円曲線
のパラメタであるBの値やモンゴメリ型楕円曲線への変
換パラメタであるsを小さくとることにより、ステップ
1710における乗算の計算量やステップ1714にお
ける乗算の計算量を削減することができる。 【0229】次に図8により、スカラー値d及びワイエ
ルシュトラス型楕円曲線上の点Pから、Xd,Zd,Xd+1,Z
d+1を出力する高速スカラー倍計算部の処理について説
明する。 【0230】高速スカラー倍計算部202では、スカラ
ー倍計算装置103に入力されたワイエルシュトラス型
楕円曲線上の点Pを入力し、以下の手順によりモンゴメ
リ型楕円曲線において射影座標で表されたスカラー倍点
dP=(Xd,Yd,Zd)のうちXd及びZd、射影座標で表されたモ
ンゴメリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の
うちXd+1及びZd+1を出力する。ステップ816として、
与えられたワイエルシュトラス型楕円曲線上の点Pをモ
ンゴメリ型楕円曲線上で射影座標により表された点に変
換する。この点をあらためて点Pとする。ステップ80
1として、変数Iに初期値1を代入する。ステップ80
2として、点Pの2倍点2Pを計算する。ここで点Pは射影
座標において(x,y,1)として表し、モンゴメリ型楕円曲
線の射影座標における2倍算の公式を用いて2倍点2Pを
計算する。ステップ803として、スカラー倍計算装置
103に入力された楕円曲線上の点Pとステップ802
で求めた点2Pを、点の組(P,2P)として格納する。ここで
点P及び点2Pは射影座標で表されている。ステップ80
4として、変数Iとスカラー値dのビット長とが一致す
るかどうかを判定し、一致すればステップ813へ行
く。一致しなければステップ805へ行く。ステップ8
05として、変数Iを1増加させる。ステップ806と
して、スカラー値のI番目のビットの値が0であるか1
であるかを判定する。そのビットの値が0であればステ
ップ806へ行く。そのビットの値が1であればステッ
プ810へ行く。ステップ807として、射影座標によ
り表された点の組(mP,(m+1)P)から点mPと点(m+1)Pの加
算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後ス
テップ808へ行く。ここで、加算mP+(m+1)Pは、モン
ゴメリ型楕円曲線の射影座標における加算公式を用いて
計算される。ステップ808として、射影座標により表
された点の組(mP,(m+1)P)から点mPの2倍算2(mP)を行な
い、点2mPを計算する。その後ステップ809へ行く。
ここで、2倍算2(mP)は、モンゴメリ型楕円曲線の射影
座標における2倍算の公式を用いて計算される。ステッ
プ809として、ステップ808で求めた点2mPとステ
ップ807で求めた点(2m+1)Pを点の組(2mP,(2m+1)P)と
して、点の組(mP,(m+1)P)の代わりに格納する。その後
ステップ804へ戻る。ここで、点2mP、点(2m+1)、点
mP及び点(m+1)Pは全て射影座標において表されている。
ステップ810として、射影座標により表された点の組
(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行な
い、点(2m+1)を計算する。その後ステップ811へ行
く。ここで、加算mP+(m+1)Pは、モンゴメリ型楕円曲線
の射影座標における加算公式を用いて計算される。ステ
ップ811として、射影座標により表された点の組(mP,
(m+1)P)から点(m+1)Pの2倍算2((m+1)P)を行ない、点(2
m+2)Pを計算する。その後ステップ812へ行く。ここ
で、2倍算2((m+1)P)は、モンゴメリ型楕円曲線の射影
座標における2倍算の公式を用いて計算される。ステッ
プ811として、ステップ810で求めた点(2m+1)Pと
ステップ811で求めた点(2m+2)Pを点の組((2m+1)P,(2
m+2)P)として、点の組(mP,(m+1)P)の代わりに格納す
る。その後ステップ804へ戻る。ここで、点(2m+1)
P、点(2m+2)、点mP及び点(m+1)Pは全て射影座標におい
て表されている。ステップ813として、射影座標で表
された点の組(mP,(m+1)P)から、射影座標で表された点m
P=(Xm,Ym,Zm)よりXm及びZmをそれぞれXd及びZdとして、
射影座標で表された点(m+1)P=(Xm+1,Ym+1,Zm+1)よりX
m+1及びZm+1をそれぞれXd+1及びZd+1として、出力す
る。ここで、Ym及びYm+1は、モンゴメリ型楕円曲線の射
影座標における加算公式及び2倍算の公式ではY座標を
求める事ができないので、求まっていない。また上記手
順により、mとスカラー値dはビット長が等しくさらに
そのビットのパターンも同じとなる為、等しくなる。 【0231】モンゴメリ型楕円曲線の射影座標における
加算公式の計算量は、Z1=1ととることにより3M+2S
となる。ここでMは有限体上の乗算の計算量、Sは有限
体上の2乗算の計算量である。モンゴメリ型楕円曲線の
射影座標における2倍算の公式の計算量は、3M+2S
である。スカラー値のI番目のビットの値が0であれ
ば、ステップ807において加算の計算量、ステップ8
08において2倍算の計算量が必要となる。すなわち6
M+4Sの計算量が必要となる。スカラー値のI番目の
ビットの値が1であれば、ステップ810において加算
の計算量、ステップ811において2倍算の計算量が必
要となる。すなわち6M+4Sの計算量が必要である。
いずれの場合においても6M+4Sの計算量が必要であ
る。ステップ804、ステップ805、ステップ80
6、ステップ807、ステップ808、ステップ809
乃至はステップ804、ステップ805、ステップ80
6、ステップ810、ステップ811、ステップ812
の繰り返しの回数は、(スカラー値dのビット長)―1
回となるので、ステップ802での2倍算の計算量及び
ステップ816でのモンゴメリ型楕円曲線上の点への変
換の計算量を考慮に入れると、全体の計算量は(6M+
4S)(k―1)+4M+2Sとなる。ここでkはスカ
ラー値dのビット長である。一般的には、計算量Sは、
S=0.8M程度と見積もられるので、全体の計算量は
おおよそ(9.2k―3.6)Mとなる。例えばスカラ
ー値dが160ビット(k=160)であれば、上記手
順のアルゴリズムの計算量はおおよそ1468Mとな
る。スカラー値dのビットあたりの計算量としてはおよ
そ9.2Mとなる。A.Miyaji, T.Ono, H.Cohen, Effici
ent elliptic curve exponentiation using mixed coor
dinates, Advances in Cryptology Proceedings of AS
IACRYPT'98, LNCS 1514 (1998) pp.51-65 には、ワイエ
ルシュトラス型楕円曲線において、ウィンドウ法を用い
てヤコビアン座標を中心とした混合座標系を用いたスカ
ラー倍計算方法は高速なスカラー倍計算方法として記載
されている。この場合においては、スカラー値のビット
あたりの計算量はおおよそ10Mと見積もられる。例え
ばスカラー値dが160ビット(k=160)であれ
ば、このスカラー倍計算方法の計算量はおおよそ160
0Mとなる。したがって、上記手順のアルゴリズムの方
が計算量が少なく高速といえる。 【0232】尚、高速スカラー倍計算部202において
上記手順のアルゴリズムを用いなくても、スカラー値d
及びワイエルシュトラス型楕円曲線上の点Pから、Xd,Z
d,Xd+1,Zd+1を出力するアルゴリズムであり且つ高速
であれば、他のアルゴリズムを用いていもよい。 【0233】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は16M+2S+
Iであり、これは高速スカラー倍計算部202の高速ス
カラー倍計算に必要な計算量の(9.2k―3.6)M
とに比べてはるかに小さい。したがって、スカラー倍計
算装置103のスカラー倍計算に必要な計算量は、高速
スカラー倍計算部の高速スカラー倍計算に必要な計算量
とほぼ同等である。I=40M、S=0.8Mと仮定す
ると、この計算量はおおよそ(9.2k+54)Mと見
積もることができる。例えばスカラー値dが160ビッ
ト(k=160)であれば、このスカラー倍計算に必要
な計算量は1526Mとなる。楕円曲線としてワイエル
シュトラス型楕円曲線を使用し、ウィンドウ法を用いて
ヤコビアン座標を中心とした混合座標系を用いたスカラ
ー倍計算方法を用いて、スカラー倍点をアフィン座標と
して出力する場合に必要となる計算量はおおよそ164
0Mであり、これと比べて必要となる計算量は削減され
ている。 【0234】第10の実施例は入出力用の楕円曲線とし
てワイエルシュトラス型楕円曲線を、内部の計算用には
与えられたワイエルシュトラス型楕円曲線から変換可能
であるモンゴメリ型楕円曲線を用いたものである。スカ
ラー倍計算装置103がスカラー値d及びワイエルシュ
トラス型楕円曲線上の点Pから、ワイエルシュトラス型
楕円曲線における射影座標の点として完全な座標が与え
られたスカラー倍点,(Xd W,Yd W,Zd W)を計算し出力する。
スカラー値d及びワイエルシュトラス型楕円曲線上の点P
をスカラー倍計算装置103に入力すると高速スカラー
倍計算部202がそれを受け取る。高速スカラー倍計算
部202は受け取ったスカラー値dと与えられたワイエ
ルシュトラス型楕円曲線上の点Pからモンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,Y
d,Zd)の座標のうちXd及びZd、射影座標で表されたモン
ゴメリ型楕円曲線上の点d(d+1)P=(Xd+1,Yd+1,Zd+1)の座
標のうちXd+1及びZd+1を計算する。また、入力されたワ
イエルシュトラス型楕円曲線上の点Pを、与えられたワ
イエルシュトラス型楕円曲線から変換可能であるモンゴ
メリ型楕円曲線上の点に変換し、その点を新たにP=(x,
y)とおく。高速スカラー倍計算部202は、Xd,Zd,X
d+1,Zd+1,x及びyを座標復元部203に与える。座標
復元部203は与えられた座標の値Xd,Zd,Xd+1
Zd+1,x及びyよりワイエルシュトラス型楕円曲線におい
て射影座標で表されたスカラー倍点dP=(Xd W,Yd W,Zd W)の
座標Xd W、Yd W及びZd Wの復元を行なう。スカラー倍計算
装置103は射影座標において完全に座標が与えられた
スカラー倍点(Xd W,Yd W,Zd W)を計算結果として出力す
る。 【0235】次に図18により、座標x,y,Xd,Zd,X
d+1,Zd+1が与えられた場合にXd W、Yd W、Zd Wを出力する
座標復元部の処理について説明する。 【0236】座標復元部203では、モンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,Y
d,Zd)の座標のうちXd及びZd、射影座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座
標のうちXd+1及びZd+1、スカラー倍計算装置103に入
力されたモンゴメリ型楕円曲線上の点Pをアフィン座標
で表した(x,y)を入力し、以下の手順でワイエルシュト
ラス型楕円曲線上で射影座標おいて完全な座標が与えら
れたスカラー倍点(Xd W,Yd W,Zd W)を出力する。ここで入
力されたモンゴメリ型楕円曲線上の点Pのアフィン座標
を(x,y)で、射影座標を(X1,Y1,Z1)でそれぞれ表す。入
力されたスカラー値をdとしてモンゴメリ型楕円曲線に
おけるスカラー倍点dPのアフィン座標を(xd,yd)で、射
影座標を(Xd,Yd,Zd)でそれぞれ表す。モンゴメリ型楕円
曲線上の点(d-1)Pのアフィン座標を(xd-1,yd-1)で、射
影座標を(Xd-1,Yd-1,Zd-1)でそれぞれ表す。モンゴメリ
型楕円曲線上の点(d+1)Pのアフィン座標を(xd+1,yd+1)
で、射影座標を(Xd+1,Yd+1,Zd+1)でそれぞれ表す。 【0237】ステップ1801においてXd×xが計算さ
れ、レジスタT1に格納される。ステップ1802にお
いてT1-Zdが計算される。ここでレジスタT1にはXdxが
格納されており、したがってXdx-Zdが計算される。その
結果がレジスタT1に格納される。ステップ1803に
おいてZd×xが計算され、レジスタT2に格納される。ス
テップ1804においてXd-T2が計算される。ここでレ
ジスタT2にはZdxが格納されており、したがってXd-xZd
が計算される。その結果がレジスタT2に格納される。
ステップ1805においてZd+1×T1が計算される。こ
こでレジスタT1にはXdx-Zdが格納されており、したが
ってZd+1(Xdx-Zd)が計算される。その結果がレジスタT
3に格納される。ステップ1806においてXd+1×T2
計算される。ここでレジスタT2にはXd-xZdが格納され
ており、したがってXd+1(Xd-xZd)が計算される。その結
果がレジスタT4に格納される。ステップ1807にお
いてT1の2乗が計算される。ここでレジスタT1にはXd
x-Zdが格納されており、したがって(Xdx-Zd)2が計算さ
れる。その結果がレジスタT1に格納される。ステップ
1808においてT2の2乗が計算される。ここでレジ
スタT2にはXd-xZdが格納されており、したがって(Xd-x
Zd)2が計算される。その結果がレジスタT2に格納され
る。ステップ1809においてT2×Zdが計算される。
ここでレジスタT2には(Xd-xZd)2が格納されており、し
たがってZd(Xd-xZd)2が計算される。その結果がレジス
タT2に格納される。ステップ1810においてT2×X
d+1が計算される。ここでレジスタT2にはZd(Xd-xZd)2
が格納されており、したがってXd+1Zd(Xd-xZd)2が計算
される。その結果がレジスタT2に格納される。ステッ
プ1811においてT2×Zd+1が計算される。ここでレ
ジスタT2にはXd+1Zd(Xd-xZd)2が格納されており、した
がってZd+1Xd+1Zd(Xd-xZd)2が計算される。その結果が
レジスタT2に格納される。ステップ1812において
2×yが計算される。ここでレジスタT2にはZd+1Xd+1Z
d(Xd-xZd)2が格納されており、したがってyZd+1Xd+1Z
d(Xd-xZd)2が計算される。その結果がレジスタT2に格
納される。ステップ1813においてT2×Bが計算され
る。ここでレジスタT2にはyZd+1Xd+1Zd(Xd-xZd)2が格
納されており、したがってByZd+1Xd+1Zd(Xd-xZd)2が計
算される。その結果がレジスタT2に格納される。ステ
ップ1814においてT2×Xdが計算される。ここでレ
ジスタT2にはByZd+1Xd+1Zd(Xd-xZd)2が格納されてお
り、したがってByZd+1Xd+1Zd(Xd-xZd)2Xdが計算され
る。その結果がレジスタT5に格納される。ステップ1
815においてT2×Zdが計算される。ここでレジスタ
2にはByZd+1Xd+1Zd(Xd-xZd)2が格納されており、した
がってByZd+1Xd+1Zd(Xd-xZd)2Zdが計算される。その結
果がレジスタT2に格納される。ステップ1816にお
いてT2×sが計算される。ここでレジスタT2にはByZ
d+1Xd+1Zd(Xd-xZd)2Zdが格納されており、したがってsB
yZd+1Xd+1Zd(Xd-xZd)2Zdが計算される。その結果がZd
に格納される。ステップ1817においてα×Zd が計
算される。ここでZd にはsByZd+1Xd+1Zd(Xd-xZd)2Zd
格納されており、したがってαsByZd+1Xd+1Zd(Xd-xZd)2
Zdが計算される。その結果がレジスタT2に格納され
る。ステップ1818においてT2+T5が計算される。
ここでレジスタT2にはαsByZd+1Xd+1Zd(Xd-xZd)2Zd
レジスタT5にはByZd+1Xd+1Zd(Xd-xZd)2Xdがそれぞれ格
納されており、したがってαsByZd+1Xd+1Zd(Xd-xZd)2Zd
+ByZd+1Xd+1Zd(Xd-xZd)2Xdが計算される。その結果がXd
に格納される。ステップ1819においてT3+T4
計算される。ここでレジスタT3にはZd+1(Xdx-Zd)がレ
ジスタT4にはXd+1(Xd-xZd)が格納されており、したが
ってZd+1(Xdx-Zd)+Xd+1(Xd-xZd)が計算される。その結
果がレジスタT2に格納される。ステップ1820にお
いてT3-T4が計算される。ここでレジスタT3にはZd+1
(Xdx-Zd)がレジスタT4にはXd+1(Xd-xZd)が格納されて
おり、したがってZd+1(Xdx-Zd)- Xd+1(Xd-xZd)が計算さ
れる。その結果がレジスタT3に格納される。ステップ
1821においてT1×T2が計算される。ここでレジス
タT1には(Xdx-Zd)2がレジスタT2にはZd+1(Xdx-Zd)+X
d+1(Xd-xZd)が格納されており、したがって{Zd+1(Xdx-Z
d)+Xd+1(Xd-xZd)}(Xdx-Zd)2が計算される。その結果が
レジスタT1に格納される。ステップ1822において
1×T3が計算される。ここでレジスタT1には{Zd+1(X
dx-Zd)+Xd+1(Xd-xZd)}(Xdx-Zd)2がレジスタT3にはZd+1
(Xdx-Zd)- Xd+1(Xd-xZd)が格納されており、したがって
{Zd+1(Xdx-Zd)+Xd+1(Xd-xZd)}{Zd+1(Xdx-Zd)-Xd+1(Xd-x
Zd)}(Xdx-Zd)2が計算される。その結果がYd に格納さ
れる。したがってYd には{Zd+1(Xdx-Zd)+Xd+1(Xd-x
Zd)}{Zd+1(Xdx-Zd)-Xd+1(Xd-xZd)}(Xdx-Zd)2が格納され
ている。Xd にはステップ1818においてByZd+1Xd+1
Zd(Xd-xZd)2Xd+αsByZd+1Xd+1Zd(Xd-xZd)2Zdが格納さ
れ、その後更新が行われないので、その値が保持されて
いる。Xd にはステップ1816においてsByZd+1Xd+1Z
d(Xd-xZd)2Zdが格納され、その後更新が行われないの
で、その値が保持されている。その結果として、ワイエ
ルシュトラス型楕円曲線における射影座標(Xd W,Yd W,
Zd W)の値が全て復元されている。 【0238】上記手順により与えられたx、y、Xd、Zd
Xd+1、Zd+1からワイエルシュトラス型楕円曲線における
スカラー倍点の射影座標(Xd W,Yd W,Zd W)における値が全
て復元される理由は以下の通りである。点(d+1)Pは点dP
に点Pを加算した点である。点(d-1)Pは点dPから点Pを減
算した点である。モンゴメリ型楕円曲線のアフィン座標
における加算公式に代入すると、数6、数7を得る。
数6、数7の両辺を各々減算することにより、数8を得
る。したがって、数9のようになる。ここでxd=Xd/Zd
xd+1=Xd+1/Zd+1、xd-1=Xd-1/Zd-1であり、この値を代入
することにより射影座標の値へと変換すると、数10を
得る。モンゴメリ型楕円曲線の射影座標での加算公式は
数11、数12である。ここでXm及びZmはモンゴメリ型
楕円曲線上の点Pのm倍点mPの射影座標におけるX座標及
びZ座標、Xn及びZnはモンゴメリ型楕円曲線上の点Pのn
倍点nPの射影座標におけるX座標及びZ座標、Xm-n及びZ
m-nはモンゴメリ型楕円曲線上の点Pの(m-n)倍点(m-n)P
の射影座標におけるX座標及びZ座標、Xm+n及びZm+nはモ
ンゴメリ型楕円曲線上の点Pの(m+n)倍点(m+n)Pの射影座
標におけるX座標及びZ座標であり、m,nはm>nをみ
たす正整数である。この式はXm/Zm=xm、Xn/Zn=xn、Xm-n
/Zm-n=xm-nが不変のとき、Xm+n/Zm+n=xm+nも不変となる
ので、射影座標での公式としてうまく働いている。他
方、数13、数14とおくと、この式もXm/Zm=xm、Xn/Z
n=xn、Xm-n/Zm-n=xm-nが不変のとき、Xm+n/Zm+n=xm+n
不変となる。また、X'm-n/Z'm-n=Xm-n/Zm-n=xm-nをみた
すので、xm-nの射影座標としてX'm-n,Z'm-nをとってよ
い。m=d,n=1として上記公式を用いてydの式よりXd-1
びZd-1を消去し、X1=x,Z1=1とおくことにより、数15
を得る。xd=Xd/Zdであるが、ydの分母と通分することに
より、数16となる。その結果として、 【0239】 【数47】 【0240】とし、 【0241】 【数48】 【0242】 【数49】 【0243】とすると(X'd,Y'd,Z'd)=(Xd,Yd,Zd)とな
る。モンゴメリ型楕円曲線上の点とワイエルシュトラス
型楕円曲線上の点との対応関係については、K.Okeya,
H.Kurumatani, K.Sakurai, Elliptic Curves with the
Montgomery-Form and Their Cryptographic Applicatio
ns, Public Key Cryptography, LNCS 1751 (2000) pp.2
38-257 に記載されている。それによると、変換パラメ
タをsαとして、Yd W=Y'd、Xd W=X'd+αZd W、及びZd W=sZ'
dという関係がある。結果として次の式を得る。 【0244】 【数50】 【0245】 【数51】 【0246】 【数52】 【0247】により更新すればよい。ここで、Xd W,Yd W,
Zd Wは図18の処理により与えられている。したがっ
て、ワイエルシュトラス型楕円曲線における射影座標(X
d W,Yd W,Zd W)の値が全て復元されていることになる。 【0248】上記手順はステップ1801、ステップ1
803、ステップ1805、ステップ1806、ステッ
プ1809、ステップ1810、ステップ1811、ス
テップ1812、ステップ1813、ステップ181
4、ステップ1815、ステップ1816、ステップ1
817、ステップ1821及びステップ1822におい
て有限体上の乗算の計算量を必要とする。また、ステッ
プ1807及びステップ1808において有限体上の2
乗算の計算量を必要とする。有限体上の加算及び減算の
計算量は、有限体上の乗算の計算量、2乗算の計算量と
比べて比較的小さいので無視してもよい。有限体上の乗
算の計算量をM、有限体上の2乗算の計算量をSとする
と、上記手順は15M+2Sの計算量を必要とする。こ
れは高速スカラー倍計算の計算量と比べてはるかに小さ
い。例えばスカラー値dが160ビットであれば、高速
スカラー倍計算の計算量はおおよそ1500M弱と見積
もられる。S=0.8Mと仮定すると座標復元の計算量
は16.6Mであり、高速スカラー倍計算の計算量と比
べてはるかに小さい。したがって効率的に座標を復元で
きていることが示された。 【0249】尚、上記手順をとらなくても、上記計算式
により与えられたXd W、Yd W、Zd Wの値が計算できれば
Xd W、Yd W、Zd Wの値が復元できる。また、ワイエルシュ
トラス型楕円曲線においてアフィン座標におけるスカラ
ー倍点dPをdP=(xd W,yd W)とすると、xd W、yd Wが上記計算
式により与えられる値を取るようにXd W、Yd W、Zd Wの値
を選択し、その値が計算できればXd W、Yd W、Zd Wが復元
できる。それらの場合においては一般的に復元に必要と
なる計算量が増大する。また、モンゴメリ型楕円曲線の
パラメタであるBの値やモンゴメリ型楕円曲線への変換
パラメタsの値を小さくとることにより、ステップ18
13乃至はステップ1816における乗算の計算量を削
減することができる。 【0250】次に、スカラー値d及びワイエルシュトラ
ス型楕円曲線上の点Pから、Xd,Zd,Xd+1,Zd+1を出力
するアルゴリズムについて説明する。 【0251】第10実施例の高速スカラー倍計算部20
2の高速スカラー倍計算方法として、第9実施例の高速
スカラー倍計算方法を用いる。これにより、スカラー値
d及びワイエルシュトラス型楕円曲線上の点Pから、Xd
Zd,Xd+1,Zd+1を出力するアルゴリズムとして、高速で
あるアルゴリズムが達成される。尚、高速スカラー倍計
算部202において上記アルゴリズムを用いなくても、
スカラー値d及びワイエルシュトラス型楕円曲線上の点P
から、Xd,Zd,Xd+1,Zd+1を出力するアルゴリズムであ
り且つ高速であれば、他のアルゴリズムを用いていもよ
い。 【0252】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は15M+2Sで
あり、これは高速スカラー倍計算部202の高速スカラ
ー倍計算に必要な計算量の(9.2k―3.6)Mとに
比べてはるかに小さい。したがって、スカラー倍計算装
置103のスカラー倍計算に必要な計算量は、高速スカ
ラー倍計算部の高速スカラー倍計算に必要な計算量とほ
ぼ同等である。S=0.8Mと仮定すると、この計算量
はおおよそ(9.2k+13)Mと見積もることができ
る。例えばスカラー値dが160ビット(k=160)
であれば、このスカラー倍計算に必要な計算量は148
5Mとなる。楕円曲線としてワイエルシュトラス型楕円
曲線を使用し、ウィンドウ法を用いてヤコビアン座標を
中心とした混合座標系を用いたスカラー倍計算方法を用
いて、スカラー倍点をヤコビアン座標として出力する場
合に必要となる計算量はおおよそ1600Mであり、こ
れと比べて必要となる計算量は削減されている。 【0253】第11実施例は入出力用の楕円曲線として
ワイエルシュトラス型楕円曲線を、内部の計算用には与
えられたワイエルシュトラス型楕円曲線から変換可能で
あるモンゴメリ型楕円曲線を用いたものである。スカラ
ー倍計算装置103が、スカラー値d及びワイエルシュ
トラス型楕円曲線上の点Pから、ワイエルシュトラス型
楕円曲線におけるアフィン座標の点として完全な座標が
与えられたスカラー倍点(xd,yd)を計算し出力する。ス
カラー値d及びワイエルシュトラス型楕円曲線上の点Pを
スカラー倍計算装置103に入力すると高速スカラー倍
計算部202がそれを受け取る。高速スカラー倍計算部
202は受け取ったスカラー値dと与えられたワイエル
シュトラス型楕円曲線上の点Pからモンゴメリ型楕円曲
線において射影座標で表されたスカラー倍点dP=(Xd,Yd,
Zd)の座標のうちXd及びZd、射影座標で表されたモンゴ
メリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座標
のうちXd+1及びZd+1、射影座標で表されたモンゴメリ型
楕円曲線上の点(d-1)P=(Xd-1,Yd-1,Zd-1)の座標のうちX
d-1及びZd-1を計算する。また、入力されたワイエルシ
ュトラス型楕円曲線上の点Pを、与えられたワイエルシ
ュトラス型楕円曲線から変換可能であるモンゴメリ型楕
円曲線上の点に変換し、その点を新たにP=(x,y)とお
く。高速スカラー倍計算部202は、Xd,Zd,Xd+1,Z
d+1,Xd-1,Zd-1,x及びyを座標復元部203に与え
る。座標復元部203は与えられた座標の値Xd,Zd,X
d+1,Zd+1,Xd-1,Zd-1,x及びyよりワイエルシュトラ
ス型楕円曲線においてアフィン座標で表されたスカラー
倍点dP=(xd,yd)の座標xd及びydの復元を行なう。スカラ
ー倍計算装置103はワイエルシュトラス型楕円曲線上
でアフィン座標において完全に座標が与えられたスカラ
ー倍点(xd,yd)を計算結果として出力する。 【0254】次に図19により、座標x,y,Xd,Zd,X
d+1,Zd+1,Xd-1,Zd-1が与えられた場合にxd、ydを出
力する座標復元部の処理について説明する。 【0255】座標復元部203では、モンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,
Yd,Zd)の座標うちXd及びZd、射影座標で表されたモンゴ
メリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座標
のうちXd+1及びZd+1、射影座標で表されたモンゴメリ型
楕円曲線上の点(d-1)P=(Xd-1,Yd-1,Zd-1)の座標のうち
Xd-1及びZd-1、スカラー倍計算装置103に入力された
モンゴメリ型楕円曲線上の点Pをアフィン座標で表した
(x,y)を入力し、以下の手順でワイエルシュトラス型楕
円曲線上でアフィン座標おいて完全な座標が与えられた
スカラー倍点(xd,yd)を出力する。ここで入力されたモ
ンゴメリ型楕円曲線上の点Pのアフィン座標を(x,y)で、
射影座標を(X,Y,Z)でそれぞれ表す。入力された
スカラー値をdとしてモンゴメリ型楕円曲線におけるス
カラー倍点dPのアフィン座標を(xd Mon,yd Mon)で、射影
座標を(Xd,Yd,Zd)でそれぞれ表す。モンゴメリ型楕円曲
線上の点(d-1)Pのアフィン座標を(xd-1,yd-1)で、射影
座標を(Xd-1,Yd-1,Zd-1)でそれぞれ表す。モンゴメリ型
楕円曲線上の点(d+1)Pのアフィン座標を(xd+1,yd+1)
で、射影座標を(Xd+1,Yd+1,Zd+1)でそれぞれ表す。 【0256】ステップ1901においてXd-1×Zd+1が計
算され、レジスタT1に格納される。ステップ1902
においてZd-1×Xd+1が計算され、レジスタTに格納さ
れる。ステップ1903においてT1−Tが計算され
る。ここでレジスタT1にはXd-1Zd+1がレジスタT
はZd-1Xd+1がそれぞれ格納されており、したがってXd-1
Zd+1-Zd-1Xd+1が計算される。その結果がレジスタT1
格納される。ステップ1904においてZd×xが計算さ
れ、レジスタTに格納される。ステップ1905にお
いてXd-Tが計算さる。ここでレジスタTにはZdxが
格納されており、したがってXd-xZdが計算される。その
結果がレジスタTに格納される。ステップ1906に
おいてTの2乗が計算される。ここでレジスタT
はXd-xZdが格納されており、したがって(Xd-xZd)2が計
算される。その結果がレジスタTに格納される。ステ
ップ1907においてT1×Tが計算される。ここで
レジスタT1にはXd-1Zd+1-Zd-1Xd+1がレジスタTには
(Xd-xZd)2がそれぞれ格納されており、したがって(Xd-x
Zd)2(Xd-1Zd+1-Zd-1Xd+1)が計算される。その結果がレ
ジスタT1に格納される。ステップ1908において4B
×yが計算される。その結果がレジスタTに格納され
る。ステップ1909においてT×Zd+1が計算され
る。ここでレジスタTには4Byが格納されており、し
たがって4ByZd+1が計算される。その結果がレジスタT
に格納される。ステップ1910においてT×Zd-1
が計算される。ここでレジスタTには4ByZd+1が格納
されており、したがって4ByZd-1Zd+1が計算される。そ
の結果がレジスタTに格納される。ステップ1911
においてT×Zdが計算される。ここでレジスタT
は4ByZd-1Zd+1が格納されており、したがって4ByZd-1Z
d+1Zdが計算される。その結果がレジスタTに格納さ
れる。ステップ1912においてT×Xdが計算され
る。ここでレジスタTには4ByZd-1Zd+1Zdが格納され
ており、したがって4ByZd-1Zd+1ZdXdが計算される。そ
の結果がレジスタT3に格納される。ステップ1913
においてT×Zdが計算される。ここでレジスタT
は4ByZd-1Zd+1Zdが格納されており、したがって4ByZd-1
Zd+1ZdZdが計算される。その結果がレジスタTに格納
される。ステップ1914において、T×sが計算さ
れる。ここでレジスタTには4ByZd-1Zd+1ZdZdが格納
されており、したがって4sByZd-1Zd+1ZdZdが計算され
る。その結果がレジスタTに格納される。ステップ1
915においてレジスタTの逆元が計算される。ここ
でレジスタTには4sByZd-1Zd+1ZdZdが格納されてお
り、したがって1/4sByZd-1Zd+1ZdZdが計算される。その
結果がレジスタTに格納される。ステップ1416に
おいてT×T3が計算される。ここでレジスタT
は1/4sByZd-1Zd+1ZdZdがレジスタT3には4ByZd-1Zd+1Zd
Xdがそれぞれ格納されており、したがって(4ByZd-1Zd+1
ZdXd)/(4sByZd-1Zd+1ZdZd)が計算される。その結果がレ
ジスタT3に格納される。ステップ1917においてT3
+αが計算される。ここでレジスタT3には(4ByZd-1Z
d+1ZdXd)/(4sByZd-1Zd+1ZdZd)が格納されており、した
がって(4ByZd−1d+1)/(4sB
yZd−1d+1)+αが計算される。その
結果がレジスタxに格納される。ステップ1918に
おいてレジスタT1×Tが計算される。ここでレジス
タT1には(Xd-xZd)2(Xd-1Zd+1-Zd-1Xd+1)がレジスタT
には1/4sByZd-1Zd+1ZdZdがそれぞれ格納されており、
したがって(Xd-1Zd+1-Zd-1Xd+1)(Xd-Zdx)2/4sByZd-1Z
d+1Zd 2が計算される。その結果がレジスタydに格納され
る。したがってレジスタydには(Xd-1Zd+1-Zd-1Xd+1)(Xd
-Zdx)2/4sByZd-1Zd+1Zd 2が格納されている。レジスタxd
にはステップ1917において(4ByZd-1Zd+1ZdXd)/(4sB
yZd-1Zd+1ZdZd)+αが格納され、その後更新が行なわれ
ないので、その値が保持されている。 【0257】上記手順により与えられたx、y、Xd
Zd、Xd+1、Zd+1、Xd-1、Zd-1からワイエルシュトラス型
楕円曲線におけるスカラー倍点のアフィン座標(xd,
d)における値が全て復元される理由は以下の通りであ
る。点(d+1)Pは点dPに点Pを加算した点である。点(d-1)
Pは点dPから点Pを減算した点である。モンゴメリ型楕円
曲線のアフィン座標における加算公式に代入すると、数
38、数39を得る。
両辺を各々減算することにより、数40を得る。したが
って、数41となる。ここでxd Mon=Xd/Zd、xd+1=X
d+1/Zd+1、xd=1=Xd=1/Zd=1であり、この値を代入する
ことにより射影座標の値へと変換すると、数42を得
る。 【0258】xd Mon=Xd/Zdであるが、逆元演算の回数
を減らす目的でyd Monの分母と通分することにより、数
53となる。 【0259】 【数53】 【0260】モンゴメリ型楕円曲線上の点とワイエルシ
ュトラス型楕円曲線上の点との対応関係については、K.
Okeya, H.Kurumatani, K.Sakurai, Elliptic Curves wi
th theMontgomery-Form and Their Cryptographic Appl
ications, Public Key Cryptography, LNCS 1751 (200
0) pp.238-257 に記載されている。それによると、変換
パラメタをs,αとして、yd=s-1yd Mon及びxd=s-1xd Mon+
αの関係がある。結果として次の式を得る。 【0261】 【数54】 【0262】 【数55】 【0263】ここで、xd,ydは図19により与えられ
る。したがって、ワイエルシュトラス型楕円曲線におけ
るスカラー倍点のアフィン座標(xd,yd)における値が
全て復元されることになる。 【0264】上記手順はステップ1901、ステップ1
902、ステップ1904、ステップ1907、ステッ
プ1908、ステップ1909、ステップ1910、ス
テップ1911、ステップ1912、ステップ191
3、ステップ1914、ステップ1916及びステップ
1918において有限体上の乗算の計算量を必要とす
る。また、ステップ1906において有限体上の2乗算
の計算量を必要とする。また、ステップ1914におい
て有限体上の逆元演算の計算量を必要とする。有限体上
の加算及び減算の計算量は、有限体上の乗算の計算量、
2乗算の計算量及び逆元演算の計算量と比べて比較的小
さいので無視してもよい。有限体上の乗算の計算量を
M、有限体上の2乗算の計算量をS及び有限体上の逆元
演算の計算量をIとすると、上記手順は13M+S+I
の計算量を必要とする。これは高速スカラー倍計算の計
算量と比べてはるかに小さい。例えばスカラー値dが1
60ビットであれば、高速スカラー倍計算の計算量はお
およそ1500M弱と見積もられる。S=0.8M、I
=40Mと仮定すると座標復元の計算量は53.8Mで
あり、高速スカラー倍計算の計算量と比べてはるかに小
さい。したがって効率的に座標を復元できていることが
示された。 【0265】尚、上記手順をとらなくても、上記計算式
により与えられたxd,ydの値が計算できればxd,ydの値
が復元できる。その場合においては一般的に復元に必要
となる計算量が増大する。また、モンゴメリ型楕円曲線
のパラメタであるBの値乃至はモンゴメリ型楕円曲線へ
の変換パラメタであるsの値をを小さくとることによ
り、ステップ1908乃至はステップ1914における
乗算の計算量を削減することができる。 【0266】次に図10により、スカラー値d及びワイ
エルシュトラス型楕円曲線上の点Pから、Xd,Zd
Xd+1,Zd+1,Xd+1,Zd-1を出力する高速スカラー倍計算
部の処理について説明する。 【0267】高速スカラー倍計算部202では、スカラ
ー倍計算装置103に入力されたワイエルシュトラス型
楕円曲線上の点Pを入力し、以下の手順によりモンゴメ
リ型楕円曲線において射影座標で表されたスカラー倍点
dP=(Xd,Yd,Zd)のうちXd及びZd、射影座標で表されたモ
ンゴメリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の
うちXd+1及びZd+1、射影座標で表されたモンゴメリ型楕
円曲線上の点(d-1)P=(Xd-1,Yd-1,Zd-1)のうちXd-1及びZ
d-1を出力する。ステップ1016として、与えられた
ワイエルシュトラス型楕円曲線上の点Pをモンゴメリ型
楕円曲線上で射影座標により表された点に変換する。こ
の点をあらためて点Pとする。ステップ1001とし
て、変数Iに初期値1を代入する。ステップ1002と
して、点Pの2倍点2Pを計算する。ここで点Pは射影座
標において(x,y,1)として表し、モンゴメリ型楕円曲
線の射影座標における2倍算の公式を用いて2倍点2Pを
計算する。ステップ1003として、スカラー倍計算装
置103に入力された楕円曲線上の点Pとステップ10
02で求めた点2Pを、点の組(P,2P)として格納する。こ
こで点P及び点2Pは射影座標で表されている。ステップ
1004として、変数Iとスカラー値dのビット長とが
一致するかどうかを判定し、一致すればステップ101
4へ行く。一致しなければステップ1005へ行く。ス
テップ1005として、変数Iを1増加させる。ステッ
プ1006として、スカラー値のI番目のビットの値が
0であるか1であるかを判定する。そのビットの値が0
であればステップ1006へ行く。そのビットの値が1
であればステップ1010へ行く。ステップ1007と
して、射影座標により表された点の組(mP,(m+1)P)から
点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを
計算する。その後ステップ1008へ行く。ここで、加
算mP+(m+1)Pは、モンゴメリ型楕円曲線の射影座標にお
ける加算公式を用いて計算される。ステップ1008と
して、射影座標により表された点の組(mP,(m+1)P)から
点mPの2倍算2(mP)を行ない、点2mPを計算する。その
後ステップ1009へ行く。ここで、2倍算2(mP)は、
モンゴメリ型楕円曲線の射影座標における2倍算の公式
を用いて計算される。ステップ1009として、ステッ
プ1008で求めた点2mPとステップ1007で求めた
点(2m+1)Pを点の組(2mP, (2m+1)P)として、点の組(m
P, (m+1)P)の代わりに格納する。その後ステップ10
04へ戻る。ここで、点2mP、点(2m+1)P、点mP及び
点(m+1)Pは全て射影座標において表されている。ステ
ップ1010として、射影座標により表された点の組(m
P, (m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行
ない、点(2m+1)Pを計算する。その後ステップ1011
へ行く。ここで、加算mP+(m+1)Pは、モンゴメリ型楕円
曲線の射影座標における加算公式を用いて計算される。
ステップ1011として、射影座標により表された点の
組(mP, (m+1)P)から点(m+1)Pの2倍算2((m+1)P)を行
ない、点(2m+2)Pを計算する。その後ステップ1012
へ行く。ここで、2倍算2((m+1)P)は、モンゴメリ型楕
円曲線の射影座標における2倍算の公式を用いて計算さ
れる。ステップ1011として、ステップ1010で求
めた点(2m+1)Pとステップ1011で求めた点(2m+2)P
を点の組((2m+1)P, (2m+2)P)として、点の組(mP, (m+1)
P)の代わりに格納する。その後ステップ1004へ戻
る。ここで、点(2m+1)P、点(2m+2)P、点mP及び点(m+1)P
は全て射影座標において表されている。ステップ101
4として、射影座標で表された点の組(mP,(m+1)P)か
ら、点(m-1)Pの射影座標におけるX座標Xm-1及びZ座標を
Zm-1求め、それぞれXd-1及びZd-1とする。その後ステッ
プ1013へ行く。ステップ1013として、射影座標
で表された点mP=(Xm,Ym,Zm)よりXm及びZmをそれぞれXd
及びZdとして、射影座標で表された点(m+1)P=(Xm+1,Y
m+1,Zm+1)よりXm +1及びZm+1をそれぞれXd+1及びZd+1
して、Xd-1及びZd-1と共に出力する。ここで、Ym及びY
m+1は、モンゴメリ型楕円曲線の射影座標における加算
公式及び2倍算の公式ではY座標を求める事ができない
ので、求まっていない。また上記手順により、mとスカ
ラー値dはビット長が等しくさらにそのビットのパター
ンも同じとなる為、等しくなる。 【0268】また、ステップ1014において(m-1)Pを
求める際に、数13、数14の公式より求めてもよい
し、mが奇数であれば、((m-1)/2)Pの値をステップ10
12の段階で別に保持しておき、その値からモンゴメリ
型楕円曲線の2倍の公式より、(m-1)Pを求めてもよい。 【0269】モンゴメリ型楕円曲線の射影座標における
加算公式の計算量は、Z1=1ととることにより3M+2S
となる。ここでMは有限体上の乗算の計算量、Sは有限
体上の2乗算の計算量である。モンゴメリ型楕円曲線の
射影座標における2倍算の公式の計算量は、3M+2S
である。スカラー値のI番目のビットの値が0であれ
ば、ステップ1007において加算の計算量、ステップ
1008において2倍算の計算量が必要となる。すなわ
ち6M+4Sの計算量が必要となる。スカラー値のI番
目のビットの値が1であれば、ステップ1010におい
て加算の計算量、ステップ1011において2倍算の計
算量が必要となる。すなわち6M+4Sの計算量が必要
である。いずれの場合においても6M+4Sの計算量が
必要である。ステップ1004、ステップ1005、ス
テップ1006、ステップ1007、ステップ100
8、ステップ1009乃至はステップ1004、ステッ
プ1005、ステップ1006、ステップ1010、ス
テップ1011、ステップ1012の繰り返しの回数
は、(スカラー値dのビット長)―1回となるので、ス
テップ1002での2倍算の計算量とステップ1014
での(m-1)Pの計算に必要な計算量を考慮に入れると、全
体の計算量は(6M+4S)k+Mとなる。ここでkは
スカラー値dのビット長である。一般的には、計算量S
は、S=0.8M程度と見積もられるので、全体の計算
量はおおよそ(9.2k+3)Mとなる。例えばスカラ
ー値dが160ビット(k=160)であれば、上記手
順のアルゴリズムの計算量はおおよそ1475Mとな
る。スカラー値dのビットあたりの計算量としてはおよ
そ9.2Mとなる。A.Miyaji, T.Ono, H.Cohen, Effici
ent elliptic curve exponentiation using mixed coor
dinates, Advances in Cryptology Proceedings of AS
IACRYPT'98, LNCS 1514 (1998) pp.51-65 には、ワイエ
ルシュトラス型楕円曲線において、ウィンドウ法を用い
てヤコビアン座標を中心とした混合座標系を用いたスカ
ラー倍計算方法は高速なスカラー倍計算方法として記載
されている。この場合においては、スカラー値のビット
あたりの計算量はおおよそ10Mと見積もられる。例え
ばスカラー値dが160ビット(k=160)であれ
ば、このスカラー倍計算方法の計算量はおおよそ160
0Mとなる。したがって、上記手順のアルゴリズムの方
が計算量が少なく高速といえる。 【0270】尚、高速スカラー倍計算部202において
上記手順のアルゴリズムを用いなくても、スカラー値d
及びワイエルシュトラス型楕円曲線上の点Pから、Xd,Y
d,Xd+1,Zd+1を出力するアルゴリズムであり且つ高速
であれば、他のアルゴリズムを用いていもよい。 【0271】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は13M+S+I
であり、これは高速スカラー倍計算部202の高速スカ
ラー倍計算に必要な計算量の(9.2k+1)Mとに比
べてはるかに小さい。したがって、スカラー倍計算装置
103のスカラー倍計算に必要な計算量は、高速スカラ
ー倍計算部の高速スカラー倍計算に必要な計算量とほぼ
同等である。I=40M、S=0.8Mと仮定すると、
この計算量はおおよそ(9.2k+56.8)Mと見積
もることができる。例えばスカラー値dが160ビット
(k=160)であれば、このスカラー倍計算に必要な
計算量はおおよそ1529Mとなる。楕円曲線としてワ
イエルシュトラス型楕円曲線を使用し、ウィンドウ法を
用いてヤコビアン座標を中心とした混合座標系を用いた
スカラー倍計算方法を用いて、スカラー倍点をアフィン
座標として出力する場合に必要となる計算量はおおよそ
1640Mであり、これと比べて必要となる計算量は削
減されている。 【0272】第12実施例は入出力用の楕円曲線として
ワイエルシュトラス型楕円曲線を、内部の計算用には与
えられたワイエルシュトラス型楕円曲線から変換可能で
あるモンゴメリ型楕円曲線を用いる。スカラー倍計算装
置103がスカラー値d及びワイエルシュトラス型楕円
曲線上の点Pから、ワイエルシュトラス型楕円曲線にお
ける射影座標の点として完全な座標が与えられたスカラ
ー倍点(Xd W,Yd W,Zd W)を計算し出力する。スカラー値d及
びワイエルシュトラス型楕円曲線上の点Pをスカラー倍
計算装置103に入力すると高速スカラー倍計算部20
2がそれを受け取る。高速スカラー倍計算部202は受
け取ったスカラー値dと与えられたワイエルシュトラス
型楕円曲線上の点Pからモンゴメリ型楕円曲線において
射影座標で表されたスカラー倍点dP=(Xd,Yd,Zd)の座標
のうちXd及びZd、射影座標で表されたモンゴメリ型楕円
曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座標のうちXd+1
及びZd+1、射影座標で表されたモンゴメリ型楕円曲線上
の点(d-1)P=(Xd-1,Yd-1,Zd-1)の座標のうちXd=1及びZ
d-1を計算し、射影座標で表された入力されたワイエル
シュトラス型楕円曲線上の点P=(x,y)と共にその情報を
座標復元部203に与える。座標変換部203は与えら
れた座標の値Xd,Zd,Xd+1,Zd+1,Xd-1,Zd-1,x及びy
よりワイエルシュトラス型楕円曲線において射影座標で
表されたスカラー倍点dP=(Xd W,Yd W,Zd W)の座標Xd W、Yd W
及びZd Wの復元を行なう。スカラー倍計算装置103は
ワイエルシュトラス型楕円曲線上で座標射影座標におい
て完全に座標が与えられたスカラー倍点(Xd W,Yd W,Zd W)
を計算結果として出力する。 【0273】次に図13により、座標x,y,Xd,Zd,X
d+1,Zd+1,Xd-1,Zd-1が与えられた場合にXd W、Yd W、Z
d Wを出力する座標復元部の処理について説明する。 【0274】座標復元部203では、モンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,Y
d,Zd)の座標のうちXd及びZd、射影座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座
標のうちXd+1及びZd+1、射影座標で表されたモンゴメリ
型楕円曲線上の点(d-1)P=(Xd-1,Yd-1,Zd-1)の座標のう
ちXd-1及びZd-1、スカラー倍計算装置103に入力され
たワイエルシュトラス型楕円曲線上の点Pを射影座標で
表した(x,y)を入力し、以下の手順でワイエルシュトラ
ス型楕円曲線上で射影座標おいて完全な座標が与えられ
たスカラー倍点(Xd W,Yd W,Zd W)を出力する。ここで入力
されたモンゴメリ型楕円曲線上の点Pのアフィン座標を
(x,y)で、射影座標を(X1,Y1,Z1)でそれぞれ表す。入力
されたスカラー値をdとしてモンゴメリ型楕円曲線にお
けるスカラー倍点dPのアフィン座標を(xd,yd)で、射影
座標を(Xd,Yd,Zd)でそれぞれ表す。モンゴメリ型楕円曲
線上の点(d-1)Pのアフィン座標を(xd-1,yd-1)で、射影
座標を(Xd-1,Yd-1,Zd-1)でそれぞれ表す。モンゴメリ型
楕円曲線上の点(d+1)Pのアフィン座標を(xd+1,yd+1)
で、射影座標を(Xd+1,Yd+1,Zd+1)でそれぞれ表す。 【0275】ステップ2001においてXd-1×Zd+1が計
算され、レジスタT1に格納される。ステップ2002
においてZd-1×Xd+1が計算され、レジスタTに格納さ
れる。ステップ2003においてT1−Tが計算され
る。ここでレジスタT1にはXd-1Zd+1がレジスタT
はZd-1Xd+1がそれぞれ格納されており、したがってXd-1
Zd+1-Zd-1Xd+1が計算される。その結果がレジスタT1
格納される。ステップ2004においてZd×xが計算さ
れ、レジスタTに格納される。ステップ2005にお
いてXd-Tが計算さる。ここでレジスタTにはZdxが
格納されており、したがってXd-xZdが計算される。その
結果がレジスタTに格納される。ステップ2006に
おいてTの2乗が計算される。ここでレジスタT
はXd-xZdが格納されており、したがって(Xd-xZd)2が計
算される。その結果がレジスタTに格納される。ステ
ップ2007においてT1×Tが計算される。ここで
レジスタT1にはXd-1Zd+1-Zd-1Xd+1がレジスタTには
(Xd-xZd)2がそれぞれ格納されており、したがって(Xd-x
Zd)2(Xd-1Zd+1-Zd-1Xd+1)が計算される。その結果がYd W
に格納される。ステップ2008において4B×yが計算
される。その結果がレジスタTに格納される。ステッ
プ2009においてT×Zd+1が計算される。ここでレ
ジスタTには4Byが格納されており、したがって4ByZ
d+1が計算される。その結果がレジスタTに格納され
る。ステップ2010においてT×Zd-1が計算され
る。ここでレジスタTには4ByZd+1が格納されてお
り、したがって4ByZd+1Zd-1が計算される。その結果が
レジスタTに格納される。ステップ2011において
×Zdが計算される。ここでレジスタTには4yZd+1
Zd-1が格納されており、したがって4ByZd+1Zd-1Zdが計
算される。その結果がレジスタTに格納される。ステ
ップ2012においてT×Xdが計算される。ここでレ
ジスタTには4ByZd+1Zd-1Zdが格納されており、した
がって4ByZd+1Zd-1ZdXdが計算される。その結果がレジ
スタT1に格納される。ステップ2013においてT
×Zdが計算される。ここでレジスタTには4ByZd+1Z
d-1Zdが格納されており、したがって4ByZd+1Zd-1ZdZd
計算される。その結果がレジスタT2に格納される。ス
テップ2014においてT2×sが計算される。ここでレ
ジスタT2には4ByZd+1Zd-1ZdZdが格納されており、した
がって4sByZd+1Zd-1ZdZdが計算される。その結果がレジ
スタZd W格納される。ステップ2015においてα×Zd W
が計算される。ここでレジスタZd Wには4sByZd+1Zd-1ZdZ
dが格納されており、したがって4αsByZd+1Zd-1ZdZd
計算される。その結果がレジスタT2に格納される。ス
テップ2016においてT1+T2が計算される。ここで
レジスタT1には4ByZd+1Zd-1ZdXdがレジスタT2には4α
sByZd+1Zd-1ZdZdがそれぞれ格納されており、したがっ
て4ByZd+1Zd-1ZdXd+4αsByZd+1Zd-1ZdZdが計算される。
その結果がレジスタXd Wに格納される。したがってレジ
スタXd Wには4ByZd+1Zd-1ZdXd+4αsByZd+1Zd-1ZdZdが格
納されている。レジスタYd Wにはステップ2007にお
いて(Xd-xZd)2(Xd-1Zd+1-Zd-1Xd+1)が格納され、その後
更新が行なわれないので、その値が保持されている。レ
ジスタZd Wにはステップ2014において4sByZd+1Zd-1Z
dZdが格納され、その後更新が行なわれないので、その
値が保持されている。 【0276】上記手順により与えられたx、y、Xd
Zd、Xd+1、Zd+1、Xd-1、Zd-1からワイエルシュトラス型
楕円曲線におけるスカラー倍点の射影座標(Xd W, Yd W, Z
d W)における値が全て復元される理由は以下の通りであ
る。尚、点(d+1)Pは点dPに点Pを加算した点であり、点
(d-1)Pは点dPから点Pを減算した点である。モンゴメリ
型楕円曲線のアフィン座標における加算公式に代入する
と、数6、数7を得る。
両辺を各々減算することにより、数8を得る。したがっ
て、数9となる。ここでxd=Xd/Zd、xd+1=Xd+1/
Zd+1、xd-1=Xd-1/Zd-1であり、この値を代入すること
により射影座標の値へと変換すると、数10を得る。 【0277】xd=Xd/Zdであるが、ydの分母と通分す
ることにより、数20となる。その結果として、 【0278】 【数56】 【0279】とし、 【0280】 【数57】 【0281】 【数58】 【0282】とすると(X'd, Y'd, Z'd)=(Xd, Xd, Xd)と
なる。モンゴメリ型楕円曲線上の点とワイエルシュトラ
ス型楕円曲線上の点との対応関係については、K.Okeya,
H.Kurumatani, K.Sakurai, Elliptic Curves with the
Montgomery-Form and Their Cryptographic Applicati
ons, Public Key Cryptography, LNCS 1751 (2000) pp.
238-257 に記載されている。それによると、変換パラメ
タをs,αとして、Yd W =Y'd、Xd W=X'd+αZd W及びZd W=s
Z'dの関係がある。結果として次の式を得る。 【0283】 【数59】 【0284】 【数60】 【0285】 【数61】 【0286】となる。ここで、Xd W, Yd W, Zd Wは図20
により与えられる。したがって、ワイエルシュトラス型
楕円曲線における射影座標(Xd W, Yd W, Zd W)の値が全て
復元されていることになる。 【0287】上記手順はステップ2001、ステップ2
002、ステップ2004、ステップ2007、ステッ
プ2008、ステップ2009、ステップ2010、ス
テップ2011、ステップ2012、ステップ201
3、ステップ2014及びステップ2015において有
限体上の乗算の計算量を必要とする。また、ステップ2
006において有限体上の2乗算の計算量を必要とす
る。有限体上の加算及び減算の計算量は、有限体上の乗
算の計算量、2乗算の計算量と比べて比較的小さいので
無視してもよい。有限体上の乗算の計算量をM、有限体
上の2乗算の計算量をSとすると、上記手順は12M+
Sの計算量を必要とする。これは高速スカラー倍計算の
計算量と比べてはるかに小さい。例えばスカラー値dが
160ビットであれば、高速スカラー倍計算の計算量は
おおよそ1500M弱と見積もられる。S=0.8Mと
仮定すると座標復元の計算量は12.8Mであり、高速
スカラー倍計算の計算量と比べてはるかに小さい。した
がって効率的に座標を復元できていることが示された。 【0288】尚、上記手順をとらなくても、上記計算式
により与えられたXd W、Yd W、Zd Wの値が計算できれば
Xd W、Yd W、Zd Wの値が復元できる。また、ワイエルシュ
トラス型楕円曲線においてアフィン座標におけるスカラ
ー倍点dPをdP=(xd W、,yd W)とすると、xd W、yd Wが上記計
算式により与えられる値を取るようにXd W、Yd W、Zd W
値を選択し、その値が計算できればXd W、Yd W、Zd Wが復
元できる。それらの場合においては一般的に復元に必要
となる計算量が増大する。また、楕円曲線のパラメタで
あるBやモンゴメリ型楕円曲線への変換パラメタである
sの値を小さくとることにより、ステップ2008乃至
はステップ2014における乗算の計算量を削減するこ
とができる。 【0289】次に、スカラー値d及びワイエルシュトラ
ス型楕円曲線上の点Pから、Xd,Zd,Xd+1,Zd+1
Xd-1,Zd-1を出力するアルゴリズムについて説明する。 【0290】第12実施例の高速スカラー倍計算部20
2の高速スカラー倍計算方法として、第11実施例の高
速スカラー倍計算方法を用いる。これにより、スカラー
値d及びワイエルシュトラス型楕円曲線上の点Pから、
Xd,Zd,Xd+1,Zd+1,Xd-1,Zd-1を出力するアルゴリズ
ムとして、高速であるアルゴリズムが達成される。尚、
高速スカラー倍計算部202において上記手順のアルゴ
リズムを用いなくても、スカラー値d及びワイエルシュ
トラス型楕円曲線上の点Pから、Xd,Zd,Xd+1,Zd+1,X
d-1,Zd-1を出力するアルゴリズムであり且つ高速であ
れば、他のアルゴリズムを用いていもよい。 【0291】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は12M+Sであ
り、これは高速スカラー倍計算部202の高速スカラー
倍計算に必要な計算量の(9.2k+1)Mとに比べて
はるかに小さい。したがって、スカラー倍計算装置10
3のスカラー倍計算に必要な計算量は、高速スカラー倍
計算部の高速スカラー倍計算に必要な計算量とほぼ同等
である。S=0.8Mと仮定すると、この計算量はおお
よそ(9.2k+13.8)Mと見積もることができ
る。例えばスカラー値dが160ビット(k=160)
であれば、このスカラー倍計算に必要な計算量はおおよ
そ1486Mとなる。楕円曲線としてワイエルシュトラ
ス型楕円曲線を使用し、ウィンドウ法を用いてヤコビア
ン座標を中心とした混合座標系を用いたスカラー倍計算
方法を用いて、スカラー倍点をヤコビアン座標として出
力する場合に必要となる計算量はおおよそ1600Mで
あり、これと比べて必要となる計算量は削減されてい
る。 【0292】第13実施例は入出力用の楕円曲線として
ワイエルシュトラス型楕円曲線を、内部の計算用には与
えられたワイエルシュトラス型楕円曲線から変換可能で
あるモンゴメリ型楕円曲線を用いたものである。スカラ
ー倍計算装置103が、スカラー値d及びワイエルシュ
トラス型楕円曲線上の点Pから、ワイエルシュトラス型
楕円曲線におけるアフィン座標の点として完全な座標が
与えられたスカラー倍点(xd W,yd W)を計算し出力する。
スカラー値d及びワイエルシュトラス型楕円曲線上の点P
をスカラー倍計算装置103に入力すると高速スカラー
倍計算部202がそれを受け取る。高速スカラー倍計算
部202は受け取ったスカラー値dと与えられたワイエ
ルシュトラス型楕円曲線上の点Pからモンゴメリ型楕円
曲線においてアフィン座標で表されたスカラー倍点dP=
(xd,yd)の座標のうちxd、アフィン座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(xd+1,yd+1)の座標の
うちxd+1、アフィン座標で表されたモンゴメリ型楕円曲
線上の点(d-1)P=(xd-1,yd-1)の座標のうちxd-1を計算
し、アフィン座標で表された入力されたモンゴメリ型楕
円曲線上の点P=(x,y)と共にその情報を座標復元部20
3に与える。座標復元部203は与えられた座標の値
xd、xd+1、xd-1、x及びyよりワイエルシュトラス型楕円
曲線においてアフィン座標で表されたスカラー倍点dP=
(xd W,yd W)の座標yd Wの復元を行なう。スカラー倍計算装
置103はワイエルシュトラス型楕円曲線上でアフィン
座標において完全に座標が与えられたスカラー倍点
(xd W,yd W)を計算結果として出力する。 【0293】次に図21により、座標x、y、xd、xd+1
xd-1が与えられた場合に、xd W、yd Wを出力する座標復元
部の処理について説明する。 【0294】座標復元部203では、モンゴメリ型楕円
曲線においてアフィン座標で表されたスカラー倍点dP=
(xd,yd)の座標のうちxd、アフィン座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(xd+1,yd+1)の座標の
うちxd+1、アフィン座標で表されたモンゴメリ型楕円曲
線上の点(d-1)P=(xd-1,yd-1)の座標のうちxd-1、スカ
ラー倍計算装置103に入力されたモンゴメリ型楕円曲
線上の点Pをアフィン座標で表した(x,y)を入力し、以下
の手順でアフィン座標において完全な座標が与えられた
スカラー倍点(xd W,yd W)を出力する。 【0295】ステップ2101においてxd−xが計算さ
れ、レジスタT1に格納される。ステップ2102にお
いてT1の2乗すなわち(xd−x)2が計算され、レジスタ
1に格納される。ステップ2103においてxd-1−x
d+1が計算され、レジスタT2に格納される。ステップ2
104においてT1×T2が計算される。ここでレジスタ
1には(xd−x)2がレジスタT2にはxd-1−xd+1がそれぞ
れ格納されており、したがって(xd−x)2(xd-1−xd+1)が
計算される。その結果がレジスタT1に格納される。ス
テップ2105において4B×yが計算され、レジスタT2
に格納される。ステップ2106においてT2の逆元が
計算される。ここでレジスタT2には4Byが格納されてお
り、したがって1/4Byが計算される。その結果がレジス
タT2に格納される。ステップ2107においてT1×T
2が計算される。ここでレジスタT1には(xd−x)2(xd-1
−xd+1)がレジスタT2には1/4Byがそれぞれ格納されて
おり、したがって(xd−x)2(xd-1−xd+1)/4Byが計算され
る。その結果がレジスタT1に格納される。ステップ2
108においてT1×s-1が計算される。ここでレジスタ
1には(xd−x)2(xd-1−xd+1)/4Byが格納されており、
したがって(xd−x)2(xd-1−xd+1)/4sByが計算される。
その結果がレジスタyd Wに格納される。尚、sはあらかじ
め与えられている値であり、したがってあらかじめs-1
を計算できる。ステップ2109においてxd×s-1が計
算される。その結果がレジスタT1に格納される。ステ
ップ2110においてT1+αが計算される。ここでレジ
スタT1にはs-1xdが格納されており、したがってs-1xd+
αが計算される。その結果がレジスタxd Wに格納され
る。したがってレジスタxd Wにはs-1xd+αが格納されて
いる。レジスタyd Wはステップ2108において(xd−x)
2(xd-1−xd+1)/4sByが格納され、その後更新されないの
で、その値が保持されている。 【0296】上記手順によりスカラー倍点のy座標yd
復元される理由は以下の通りである。点(d+1)Pは点dPに
点Pを加算した点である。点(d-1)Pは点dPから点Pを減算
した点である。モンゴメリ型楕円曲線のアフィン座標に
おける加算公式に代入すると、数6、数7を得る。
両辺を各々減算することにより、数8を得る。したがっ
て、数9となる。モンゴメリ型楕円曲線上の点とワイエ
ルシュトラス型楕円曲線上の点との対応関係について
は、K.Okeya, H.Kurumatani, K.Sakurai, Elliptic Cur
ves with the Montgomery-Form and Their Cryptograph
ic Applications, Public Key Cryptography, LNCS 175
1 (2000) pp.238-257 に記載されている。それによる
と、変換パラメタをs,αとして、yd W=s-1yd及びxd W=s-1
xd+αの関係がある。結果として次の式を得る。 【0297】 【数62】 【0298】 【数63】 【0299】ここで、xd W,yd Wは図21により与えられ
る。したがって、アフィン座標(xd W, yd W)の値は全て復
元されていることになる。 【0300】上記手順はステップ2104、ステップ2
105、ステップ2107、ステップ2108及びステ
ップ2109において有限体上の乗算の計算量を必要と
する。また、ステップ2102において有限体上の2乗
算の計算量を必要とする。さらにステップ2106にお
いて有限体上の逆元演算の計算量を必要とする。有限体
上の加算及び減算の計算量は、有限体上の乗算の計算
量、2乗算の計算量、逆元演算の計算量と比べて比較的
小さいので無視してもよい。有限体上の乗算の計算量を
M、有限体上の2乗算の計算量をS、有限体上の逆元演
算の計算量をIとすると、上記手順は5M+S+Iの計
算量を必要とする。これは高速スカラー倍計算の計算量
と比べてはるかに小さい。例えばスカラー値dが160
ビットであれば、高速スカラー倍計算の計算量はおおよ
そ1500M弱と見積もられる。S=0.8M及びI=
40Mと仮定すると座標復元の計算量は45.8Mであ
り、高速スカラー倍計算の計算量と比べてはるかに小さ
い。したがって効率的に座標を復元できていることが示
された。 【0301】尚、上記手順をとらなくても、上記等式の
右辺の値が計算できればyd Wの値が復元できる。その場
合は一般的に復元に必要となる計算量が増大する。ま
た、楕円曲線のパラメタであるBやモンゴメリ型楕円曲
線への変換パラメタsの値を小さくとることにより、ス
テップ2105、ステップ2108乃至はステップ21
09における乗算の計算量を削減することができる。 【0302】次に図24により、スカラー値d及びワイ
エルシュトラス型楕円曲線上の点Pから、xd,xd+1,x
d=1を出力する高速スカラー倍計算部の処理について説
明する。 【0303】高速スカラー倍計算部202では、スカラ
ー倍計算装置103に入力されたワイエルシュトラス型
楕円曲線上の点Pを入力し、以下の手順によりモンゴメ
リ型楕円曲線においてアフィン座標で表されたスカラー
倍点dP=(xd,yd)のうちxd、アフィン座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(xd+1,yd+1)のうち
xd+1、アフィン座標で表されたモンゴメリ型楕円曲線上
の点(d-1)P=(xd-1,yd-1)のうちxd-1を出力する。ステッ
プ2416として、与えられたワイエルシュトラス型楕
円曲線上の点Pをモンゴメリ型楕円曲線上で射影座標に
より表された点に変換する。この点をあらためて点Pと
する。ステップ2401として、変数Iに初期値1を代
入する。ステップ2402として、点Pの2倍点2Pを計
算する。ここで点Pは射影座標において(x,y,1)として
表し、モンゴメリ型楕円曲線の射影座標における2倍算
の公式を用いて2倍点2Pを計算する。ステップ2403
として、スカラー倍計算装置103に入力された楕円曲
線上の点Pとステップ2402で求めた点2Pを、点の組
(P,2P)として格納する。ここで点P及び点2Pは射影座標
で表されている。ステップ2404として、変数Iとス
カラー値dのビット長とが一致するかどうかを判定し、
一致すればステップ2414へ行く。一致しなければス
テップ2405へ行く。ステップ2405として、変数
Iを1増加させる。ステップ2406として、スカラー
値のI番目のビットの値が0であるか1であるかを判定
する。そのビットの値が0であればステップ2406へ
行く。そのビットの値が1であればステップ2410へ
行く。ステップ2407として、射影座標により表され
た点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+
1)Pを行ない、点(2m+1)Pを計算する。その後ステップ2
408へ行く。ここで、加算mP+(m+1)Pは、モンゴメリ
型楕円曲線の射影座標における加算公式を用いて計算さ
れる。ステップ2408として、射影座標により表され
た点の組(mP,(m+1)P)から点mPの2倍算2(mP)を行ない、
点2mPを計算する。その後ステップ2409へ行く。こ
こで、2倍算2(mP)は、モンゴメリ型楕円曲線の射影座
標における2倍算の公式を用いて計算される。ステップ
2409として、ステップ2408で求めた点2mPとス
テップ2407で求めた点(2m+1)Pを点の組(2mP,(2m+
1)P)として、点の組(mP,(m+1)P)の代わりに格納す
る。その後ステップ2404へ戻る。ここで、点2mP、
点(2m+1)P、点mP及び点(m+1)Pは全て射影座標において
表されている。ステップ2410として、射影座標によ
り表された点の組(mP, (m+1)P)から点mPと点(m+1)Pの
加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。その後
ステップ2411へ行く。ここで、加算mP+(m+1)Pは、
モンゴメリ型楕円曲線の射影座標における加算公式を用
いて計算される。ステップ2411として、射影座標に
より表された点の組(mP,(m+1)P)から点(m+1)Pの2倍
算2((m+1)P)を行ない、点(2m+2)Pを計算する。その後
ステップ2412へ行く。ここで、2倍算2((m+1)P)
は、モンゴメリ型楕円曲線の射影座標における2倍算の
公式を用いて計算される。ステップ2411として、ス
テップ2410で求めた点(2m+1)Pとステップ2411
で求めた点(2m+2)Pを点の組((2m+1)P, (2m+2)P)とし
て、点の組(mP,(m+1)Pの代わりに格納する。その後ステ
ップ2404へ戻る。ここで、点(2m+1)P、点(2m+2)
P、点mP及び点(m+1)Pは全て射影座標において表されて
いる。ステップ2414として、射影座標で表された点
の組(mP,(m+1)P)から、点(m−1)Pの射影座標にお
けるX座標Xm-1及びZ座標Zm-1を求め、それぞれXd-1
びZd-1とする。その後ステップ2415へ行く。ステッ
プ2415として、射影座標で表された点mP=(Xm,Ym,
Zm)よりXm及びZmをそれぞれXd及びZdとし、射影座標で
表された点(m+1)P=(Xm+1,Ym+1,Zm+1)よりXm+1及びZm+1
をそれぞれXd+1及びZd+1とする。ここで、Ym及びY
m+1は、モンゴメリ型楕円曲線の射影座標における加算
公式及び2倍算の公式ではY座標を求める事ができない
ので、求まっていない。Xd-1,Zd+1,X d,Z d
X d+1,Z d+1より、数24、数25、数26として
xd-1,xd,xd+1を求める。その後ステップ2413へ行
く。ステップ2413として、xd-1,xd,xd+1を出力す
る。上記手順により、mとスカラー値dはビット長が等
しくさらにそのビットのパターンも同じとなる為、等し
くなる。またステップ2414において(m-1)Pを求める
際に、数13、数14の公式により求めてもよいし、m
が奇数であれば、((m-1)/2)Pの値をステップ2412の
段階で別に保持しておき、その値からモンゴメリ型楕円
曲線の2倍算の公式より、(m-1)Pを求めてもよい。 【0304】モンゴメリ型楕円曲線の射影座標における
加算公式の計算量は、Z1=1ととることにより3M+2S
となる。ここでMは有限体上の乗算の計算量、Sは有限
体上の2乗算の計算量である。モンゴメリ型楕円曲線の
射影座標における2倍算の公式の計算量は、3M+2S
である。スカラー値のI番目のビットの値が0であれ
ば、ステップ2407において加算の計算量、ステップ
2408において2倍算の計算量が必要となる。すなわ
ち6M+4Sの計算量が必要となる。スカラー値のI番
目のビットの値が1であれば、ステップ2410におい
て加算の計算量、ステップ2411において2倍算の計
算量が必要となる。すなわち6M+4Sの計算量が必要
である。いずれの場合においても6M+4Sの計算量が
必要である。ステップ2404、ステップ2405、ス
テップ2406、ステップ2407、ステップ240
8、ステップ2409乃至はステップ2404、ステッ
プ2405、ステップ2406、ステップ2410、ス
テップ2411、ステップ2412の繰り返しの回数
は、(スカラー値dのビット長)―1回となるので、ス
テップ2402での2倍算の計算量、ステップ2414
での(m-1)Pの計算に必要な計算量及びステップ2415
でのアフィン座標への変換の計算量を考慮に入れると、
全体の計算量は(6M+4S)k+11M+Iとなる。
ここでkはスカラー値dのビット長である。一般的に
は、計算量Sは、S=0.8M程度、計算量IはI=4
0M程度と見積もられるので、全体の計算量はおおよそ
(9.2k+51)Mとなる。例えばスカラー値dが1
60ビット(k=160)であれば、上記手順のアルゴ
リズムの計算量はおおよそ1523Mとなる。スカラー
値dのビットあたりの計算量としてはおよそ9.2Mと
なる。A.Miyaji, T.Ono, H.Cohen, Efficient elliptic
curve exponentiation using mixed coordinates, Adv
ances in Cryptology Proceedings of ASIACRYPT'98,
LNCS 1514 (1998) pp.51-65 には、ワイエルシュトラス
型楕円曲線において、ウィンドウ法を用いてヤコビアン
座標を中心とした混合座標系を用いたスカラー倍計算方
法は高速なスカラー倍計算方法として記載されている。
この場合においては、スカラー値のビットあたりの計算
量はおおよそ10Mと見積もられ、これ以外にアフィン
座標への変換の計算量が必要となる。例えばスカラー値
dが160ビット(k=160)であれば、このスカラ
ー倍計算方法の計算量はおおよそ1640Mとなる。し
たがって、上記手順のアルゴリズムの方が計算量が少な
く高速といえる。 【0305】尚、高速スカラー倍計算部202において
上記手順のアルゴリズムを用いなくても、スカラー値d
及びワイエルシュトラス型楕円曲線上の点Pから、
xd-1,xd,xd+1を出力するアルゴリズムであり且つ高速
であれば、他のアルゴリズムを用いていもよい。 【0306】第14の実施例は、スカラー倍計算装置1
03がスカラー値d及びモンゴメリ型楕円曲線上の点P
から、モンゴメリ型楕円曲線におけるアフィン座標の点
として完全な座標が与えられたスカラー倍点(xd,
d)を計算し出力するものである。スカラー値d及びモ
ンゴメリ型楕円曲線上の点Pをスカラー倍計算装置10
3に入力すると高速スカラー倍計算部202がそれを受
け取る。高速スカラー倍計算部202は受け取ったスカ
ラー値dと与えられたモンゴメリ型楕円曲線上の点Pか
らモンゴメリ型楕円曲線において射影座標で表されたス
カラー倍点dP=(Xd,Yd,Zd)の座標のうちXd及びZd、射影
座標で表されたモンゴメリ型楕円曲線上の点(d+1)P=(X
d+1,Yd+1,Zd+1) の座標のうちXd+1及びZd+1を計算し、
アフィン座標で表された入力されたモンゴメリ型楕円曲
線上の点P=(x,y)と共にその情報を座標復元部203
に与える。座標復元部203は与えられた座標の値Xd
Zd、Xd+1、Zd+1、x及びyよりモンゴメリ型楕円曲線に
おいてアフィン座標で表されたスカラー倍点dP=(xd,
yd)の座標xd及びydの復元を行なう。スカラー倍計算
装置103はアフィン座標において完全に座標が与えら
れたスカラー倍点(xd,yd)を計算結果として出力する。 【0307】次に図34により、座標x,y,Xd,Zd,Xd+1,Z
d+1が与えられた場合にxd,ydを出力する座標復元部の処
理について説明する。 【0308】座標復元部203では、モンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,
Yd,Zd)の座標うちXd及びZd、射影座標で表されたモンゴ
メリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座標
のうちXd+1及びZd+1、スカラー倍計算装置103に入力
されたモンゴメリ型楕円曲線上の点Pをアフィン座標で
表した(x,y)を入力し、以下の手順でアフィン座標おい
て完全な座標が与えられたスカラー倍点(xd,yd)を出力
する。ここで入力されたモンゴメリ型楕円曲線上の点P
のアフィン座標を(x,y)で、射影座標を(X,Y,Z)で
それぞれ表す。入力されたスカラー値をdとしてモンゴ
メリ型楕円曲線におけるスカラー倍点dPのアフィン座標
を(xd,yd)で、射影座標を(Xd,Yd,Zd)でそれぞれ表す。
モンゴメリ型楕円曲線上の点(d+1)Pのアフィン座標を(x
d+1,yd+1)で、射影座標を(Xd+1,Yd+1,Zd+1)でそれぞれ
表す。 【0309】ステップ3401においてx×Zdが計算さ
れ、レジスタT1に格納される。ステップ3402にお
いてXd+T1が計算される。ここでレジスタT1にはxZd
が格納されており、したがってxZd+Xdが計算される。そ
の結果がレジスタT2に格納される。ステップ3403
においてXd-T1が計算され、ここでレジスタT1にはxZd
が格納されており、したがってxZd-Xdが計算される。そ
の結果がレジスタT3に格納される。ステップ3404
においてレジスタT3の2乗が計算される。ここでレジ
スタT3にはxZd-Xd が格納されており、したがって(Xd-
xZd)2が計算される。その結果がレジスタT3に格納され
る。ステップ3405においてT3×Xd+1が計算され
る。ここでレジスタT3には(Xd-xZd)2が格納されてお
り、したがってXd+1(Xd-xZd)2が計算される。その結果
がレジスタT3に格納される。ステップ3406におい
て2A×Zdが計算され、レジスタT1に格納される。ステ
ップ3407においてT2+T1が計算される。ここでレ
ジスタT2にはxZd+XdがレジスタT1には2AZdがそれぞれ
格納されており、したがってxZd+Xd+2AZdが計算され
る。その結果がレジスタT2に格納される。ステップ3
408においてx×Xdが計算され、レジスタT4に格納さ
れる。ステップ3409においてT4+Zdが計算される。
ここでレジスタT4にはxXdが格納されており、したがっ
てxXd+Zdが計算される。その結果がレジスタT4に格納
される。ステップ3410においてT2×T4が計算され
る。ここでレジスタT2にはxZd+Xd+2AZdがレジスタT4
にはxXd+Zdがそれぞれ格納されており、したがって(xZd
+Xd+2AZd)(xXd+Zd)が計算される。その結果がレジスタ
2に格納される。ステップ3411においてT1×Zd
計算される。ここでレジスタT1には2AZdが格納されて
おり、したがって2AZd 2が計算される。その結果がレジ
スタT1に格納される。ステップ3412においてT2-
1が計算される。ここでレジスタT2には(xZd+Xd+2A
Zd)(xXd+Zd)がここでレジスタT1には2AZd 2がそれぞれ
格納されており、したがって(xZd+Xd+2AZd)(xXd+Zd)-2A
Zd 2が計算される。その結果がレジスタT2に格納され
る。ステップ3413においてT2×Zd+1が計算され
る。ここでレジスタT2には(xZd+Xd+2AZd)(xXd+Zd)-2AZ
d 2が格納されており、したがってZd+1((xZd+Xd+2AZd)(x
Xd+Zd)-2AZd 2)が計算される。その結果がレジスタT2
格納される。ステップ3414においてT2-T3が計算
される。ここでレジスタT2にはZd+1((xZd+Xd+2AZd)(xX
d+Zd)-2AZd 2)がレジスタT3にはXd+1(Xd-xZd)2がそれぞ
れ格納されており、したがってZd+1((xZd+Xd+2AZd) (xX
d+Zd)-2AZd 2)-Xd+1(Xd-xZd)2が計算される。その結果が
レジスタT2に格納される。ステップ3415において2
B×yが計算され、レジスタT1に格納される。ステップ
3416においてT1×Zdが計算される。ここでレジス
タT1には2Byが格納されており、したがって2ByZdが計
算される。その結果がレジスタT 1に格納される。ステ
ップ3417においてT1×Zd+1が計算される。ここで
レジスタT1には2ByZdが格納されており、したがって2B
yZdZd+1が計算される。その結果がレジスタT1に格納さ
れる。ステップ3418においてT1×Zdが計算され
る。ここでレジスタT1には2ByZdZd+1が格納されてお
り、したがって2ByZdZd+1Zdが計算される。その結果が
レジスタT3に格納される。ステップ3419において
レジスタT3の逆元が計算される。ここでレジスタT3
は2ByZdZd+1Zdが格納されており、したがって1/2ByZdZ
d+1Zdが計算される。その結果がレジスタT3に格納され
る。ステップ3420においてT2×T3が計算される。
ここでレジスタT2にはZd+1((xZd+Xd+2AZd)(xXd+Zd)-2A
Zd 2)-Xd+1(Xd-xZd)2がレジスタT3には1/2ByZdZd+1Zd
それぞれ格納されており、したがって{Zd+1 ((xZd+Xd+2
AZd)(xXd+Zd)-2AZd 2)-Xd+1(Xd-xZd)2}/2ByZdZd+1 Zd
計算される。その結果がレジスタydに格納される。ステ
ップ3421においてT1×Xdが計算される。ここでレ
ジスタT1には2ByZdZd+1が格納されており、したがって
2ByZd Zd+1Xdが計算される。その結果がレジスタT1
格納される。ステップ3422においてT1×T3が計算
される。ここでレジスタT1には2ByZdZd+1Xdがレジスタ
3には1/2ByZdZd+1Zdがそれぞれ格納されており、した
がって2ByZdZd+1Xd /2ByZdZd+1Zd(=Xd/Zd)が計算され
る。その結果がxdに格納される。ydにはステップ342
0において{Zd+1((xZd+Xd+2AZd)(xXd+Zd)-2AZd 2)-X
d+1(Xd-xZd)2}/2By ZdZd+1Zdが格納され、その後更新が
行なわれないので、その値が保持されている。 【0310】上記手順により座標復元部203へ与えら
れたx、y、Xd、Zd、Xd+1、Zd+1からモンゴメリ型楕円
曲線におけるスカラー倍点のアフィン座標(xd,yd)に
おける値が全て復元される理由は以下の通りである。
尚、点(d+1)Pは点dPに点Pを加算した点である。モンゴ
メリ型楕円曲線のアフィン座標における加算公式に代入
すると、数6を得る。点P及び点dPはモンゴメリ型楕円
曲線上の点であるので、Byd 2=xd 3+Axd 2+xd及びBy2=x3+A
x2+xをみたす。数6に代入し、Byd 2及びBy2を消去し、
式を整理すると、 【0311】 【数64】 【0312】を得る。ここでxd=Xd/Zd、xd+1=Xd+1/
Zd+1であり、この値を代入することにより射影座標の値
へと変換すると、次の式を得る。 【0313】 【数65】 【0314】xd=Xd/Zdであるが、逆元演算の回数を減
らす目的でydの分母と通分することにより、 【0315】 【数66】 【0316】となる。ここで、xd,ydは図34の処理に
より与えられている。したがって、アフィン座標(xd,
yd)の値が全て復元されていることになる。 【0317】上記手順はステップ3401、ステップ3
405、ステップ3406、ステップ3408、ステッ
プ3410、ステップ3411、ステップ3413、ス
テップ3415、ステップ3416、ステップ341
7、ステップ3418、ステップ3420、ステップ3
421及びステップ3422において有限体上の乗算の
計算量を必要とする。また、ステップ3404において
有限体上の2乗算の計算量を必要とする。また、ステッ
プ3419において有限体上の逆元演算の計算量を必要
とする。有限体上の加算及び減算の計算量は、有限体上
の乗算の計算量、2乗算の計算量及び逆元演算の計算量
と比べて比較的小さいので無視してもよい。有限体上の
乗算の計算量をM、有限体上の2乗算の計算量をS及び
有限体上の逆元演算の計算量をIとすると、上記手順は
14M+S+Iの計算量を必要とする。これは高速スカ
ラー倍計算の計算量と比べてはるかに小さい。例えばス
カラー値dが160ビットであれば、高速スカラー倍計
算の計算量はおおよそ1500M弱と見積もられる。S
=0.8M、I=40Mと仮定すると座標復元の計算量
は54.8Mであり、高速スカラー倍計算の計算量と比
べてはるかに小さい。したがって効率的に座標を復元で
きていることが示された。 【0318】尚、上記手順をとらなくても、上記計算式
により与えられたxd,ydの値が計算できればxd,yd
値が復元できる。その場合においては一般的に復元に必
要となる計算量が増大する。また、楕円曲線のパラメタ
であるA乃至はBの値を小さくとることにより、ステップ
3406乃至はステップ3415における乗算の計算量
を削減することができる。 【0319】次にスカラー値d及びモンゴメリ型楕円曲
線上の点Pから、Xd,Zd,Xd+1,Zd+1を出力する高速スカラ
ー倍計算部の処理を説明する。 【0320】第14実施例の高速スカラー倍計算部20
2の高速スカラー倍計算方法として、第1実施例の高速
スカラー倍計算方法を用いる。これにより、スカラー値
d及びモンゴメリ型楕円曲線上の点Pから、Xd,Zd
Xd+1,Zd+1を出力するアルゴリズムとして、高速である
アルゴリズムが達成される。尚、高速スカラー倍計算部
202において上記アルゴリズムを用いなくても、スカ
ラー値d及びモンゴメリ型楕円曲線上の点Pから、Xd
Zd,Xd+1,Zd+1を出力するアルゴリズムであり且つ高速
であれば、他のアルゴリズムを用いていもよい。 【0321】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は14M+S+I
であり、これは高速スカラー倍計算部202の高速スカ
ラー倍計算に必要な計算量の(9.2k―4.6)Mと
に比べてはるかに小さい。したがって、スカラー倍計算
装置103のスカラー倍計算に必要な計算量は、高速ス
カラー倍計算部の高速スカラー倍計算に必要な計算量と
ほぼ同等である。I=40M、S=0.8Mと仮定する
と、この計算量はおおよそ(9.2k+50)Mと見積
もることができる。例えばスカラー値dが160ビット
(k=160)であれば、このスカラー倍計算に必要な
計算量は1522Mとなる。楕円曲線としてワイエルシ
ュトラス型楕円曲線を使用し、ウィンドウ法を用いてヤ
コビアン座標を中心とした混合座標系を用いたスカラー
倍計算方法を用いて、スカラー倍点をアフィン座標とし
て出力する場合に必要となる計算量はおおよそ1640
Mであり、これと比べて必要となる計算量は削減されて
いる。 【0322】第15の実施例は、スカラー倍計算部10
3がスカラー値d及びモンゴメリ型楕円曲線上の点Pか
ら、モンゴメリ型楕円曲線における射影座標の点として
完全な座標が与えられたスカラー倍点(Xd,Yd,Zd)を計算
し出力するものである。スカラー値d及びモンゴメリ型
楕円曲線上の点Pをスカラー倍計算装置103に入力す
ると高速スカラー倍計算部202がそれを受け取る。高
速スカラー倍計算部202は受け取ったスカラー値dと
与えられたモンゴメリ型楕円曲線上の点Pからモンゴメ
リ型楕円曲線において射影座標で表されたスカラー倍点
dP=(Xd,Yd,Zd)の座標のうちXd及びZd、射影座標で表さ
れたモンゴメリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Z
d+1)の座標のうちXd+1及びZd+1を計算し、アフィン座標
で表された入力されたモンゴメリ型楕円曲線上の点P=
(x,y)と共にその情報を座標復元部203に与える。座
標復元部203は与えられた座標の値Xd、Zd、Xd+1、Z
d+1、x及びyよりモンゴメリ型楕円曲線において射影座
標で表されたスカラー倍点dP=(Xd,Yd,Zd)の座標Xd,Yd
及びZdの復元を行なう。スカラー倍計算装置103は射
影座標において完全に座標が与えられたスカラー倍点(X
d,Yd,Zd)を計算結果として出力する。 【0323】次に図35により、座標x、y Xd、Zd、X
d+1、Zd+1が与えられた場合にXd、Yd、Zdを出力する座
標復元部の処理について説明する。 【0324】座標復元部203では、モンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,
Yd,Zd)の座標のうちXd及びZd、射影座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座
標のうちXd+1及びZd+1、スカラー倍計算装置103に入
力されたモンゴメリ型楕円曲線上の点Pをアフィン座標
で表した(x,y)を入力し、以下の手順で射影座標おいて
完全な座標が与えられたスカラー倍点(Xd,Yd,Zd)を出力
する。ここで入力されたモンゴメリ型楕円曲線上の点P
のアフィン座標を(x,y)で、射影座標を(X1,Y1,Z1)でそ
れぞれ表す。入力されたスカラー値をdとしてモンゴメ
リ型楕円曲線におけるスカラー倍点dPのアフィン座標を
(xd,yd)で、射影座標を(Xd,Yd,Zd)でそれぞれ表す。モ
ンゴメリ型楕円曲線上の点(d+1)Pのアフィン座標を(x
d+1,yd+1)で、射影座標を(Xd+1,Yd+1,Zd+1)でそれぞれ
表す。 【0325】ステップ3501においてx×Zdが計算さ
れ、レジスタT1に格納される。ステップ3502にお
いてXd+T1が計算される。ここでレジスタT1にはxZd
が格納されており、したがってxZd+Xdが計算される。そ
の結果がレジスタT2に格納される。ステップ3503
においてXd-T1が計算され、ここでレジスタT1にはxZd
が格納されており、したがってxZd-Xdが計算される。そ
の結果がレジスタT3に格納される。ステップ3504
においてレジスタT3の2乗が計算される。ここでレジ
スタT3にはxZd-Xd が格納されており、したがって(Xd-
xZd)2が計算される。その結果がレジスタT3に格納され
る。ステップ3505においてT3×Xd+1が計算され
る。ここでレジスタT3には(Xd-xZd)2が格納されてお
り、したがってXd+1(Xd-xZd)2が計算される。その結果
がレジスタT3に格納される。ステップ3506におい
て2A×Zdが計算され、レジスタT1に格納される。ステ
ップ3507においてT2+T1が計算される。ここでレ
ジスタT2にはxZd+XdがレジスタT1には2AZdがそれぞれ
格納されており、したがってxZd+Xd+2AZdが計算され
る。その結果がレジスタT2に格納される。ステップ3
508においてx×Xdが計算され、レジスタT4に格納さ
れる。ステップ3509においてT4+Zdが計算される。
ここでレジスタT4にはxXdが格納されており、したがっ
てxXd+Zdが計算される。その結果がレジスタT4に格納
される。ステップ3510においてT2×T4が計算され
る。ここでレジスタT2にはxZd+Xd+2AZdがレジスタT4
にはxXd+Zdがそれぞれ格納されており、したがって(xZd
+Xd+2AZd)(xXd+Zd)が計算される。その結果がレジスタ
2に格納される。ステップ3511においてT1×Zd
計算される。ここでレジスタT1には2AZdが格納されて
おり、したがって2AZd 2が計算される。その結果がレジ
スタT1に格納される。ステップ3512においてT2-
1が計算される。ここでレジスタT2には(xZd+Xd+2A
Zd)(xXd+Zd)がここでレジスタT1には2AZd 2がそれぞれ
格納されており、したがって(xZd+Xd+2AZd)(xXd+Zd)-2A
Zd 2が計算される。その結果がレジスタT2に格納され
る。ステップ3513においてT2×Zd+1が計算され
る。ここでレジスタT2には(xZd+Xd+2AZd)(xXd+Zd)-2AZ
d 2が格納されており、したがってZd+1((xZd+Xd+2AZd)(x
Xd+Zd)-2AZd 2)が計算される。その結果がレジスタT2
格納される。ステップ3514においてT2-T3が計算
される。ここでレジスタT2にはZd+1((xZd+Xd+2AZd)(xX
d+Zd)-2AZd 2)がレジスタT3にはXd+1(Xd-xZd)2がそれぞ
れ格納されており、したがってZd+1((xZd+Xd+2AZd)(xXd
+Zd)-2AZd 2)-Xd+1(Xd-xZd)2が計算される。その結果が
レジスタYdに格納される。ステップ3515において2B
×yが計算され、レジスタT1に格納される。ステップ3
516においてT1×Zdが計算される。ここでレジスタ
1には2Byが格納されており、したがって2ByZdが計算
される。その結果がレジスタT1に格納される。ステッ
プ3517においてT1×Zd+1が計算される。ここでレ
ジスタT1には2ByZdが格納されており、したがって2ByZ
dZd+1が計算される。その結果がレジスタT1に格納され
る。ステップ3518においてT1×Xdが計算される。
ここでレジスタT1には2ByZdZd+1が格納されており、し
たがって2ByZdZd+1Xdが計算される。その結果がレジス
タXdに格納される。ステップ3519においてT1×Zd
が計算される。ここでレジスタT1には2ByZdZd+1が格納
されており、したがって2ByZdZd+1Zdが計算される。そ
の結果がレジスタZdに格納される。Xdにはステップ35
18において2ByZdZd+1Xdが格納され、その後更新が行
なわれないので、その値が保持されている。Ydにはステ
ップ3514においてZd+1((xZd+Xd+2AZd)(xXd+Zd)-2AZ
d 2)-Xd+1(Xd-xZd)2が格納され、その後更新が行なわれ
ないので、その値が保持されている。 【0326】上記手順により与えられたx、y、Xd、Zd
Xd+1、Zd+1からスカラー倍点の射影座標(Xd,Yd,Zd)にお
ける値が全て復元される理由は以下の通りである。点(d
+1)Pは点dPに点Pを加算した点である。モンゴメリ型楕
円曲線のアフィン座標における加算公式に代入すると、
次の数6を得る。点P及び点dPはモンゴメリ型楕円曲線
上の点であるので、Byd 2=xd 3+Axd 2+xd及びBy2=x3+Ax2+x
をみたす。数6に代入し、Byd 2及びBy2を消去し、式を
整理すると、数64を得る。ここでxd=Xd/Zd、xd+1
=Xd+1/Zd+1であり、この値を代入することにより射影
座標の値へと変換すると、数65を得る。xd=Xd/Zd
あるが、逆元演算の回数を減らす目的でydの分母と通
分することにより、数66となる。その結果として、 【0327】 【数67】 【0328】とし、Xd及びZdをそれぞれ 【0329】 【数68】 【0330】 【数69】 【0331】により更新すればよい。ここで、Xd,Yd
Zdは図35の処理により与えられている。したがって、
射影座標(Xd,Yd,Zd)の値が全て復元されていることにな
る。 【0332】上記手順はステップ3501、ステップ3
505、ステップ3506、ステップ3508、ステッ
プ3510、ステップ3511、ステップ3513、ス
テップ3515、ステップ3516、ステップ351
7、ステップ3518及びステップ3519において有
限体上の乗算の計算量を必要とする。また、ステップ3
504において有限体上の2乗算の計算量を必要とす
る。有限体上の加算及び減算の計算量は、有限体上の乗
算の計算量、2乗算の計算量と比べて比較的小さいので
無視してもよい。有限体上の乗算の計算量をM、有限体
上の2乗算の計算量をSとすると、上記手順は12M+
Sの計算量を必要とする。これは高速スカラー倍計算の
計算量と比べてはるかに小さい。例えばスカラー値dが
160ビットであれば、高速スカラー倍計算の計算量は
おおよそ1500M弱と見積もられる。S=0.8Mと
仮定すると座標復元の計算量は12.8Mであり、高速
スカラー倍計算の計算量と比べてはるかに小さい。した
がって効率的に座標を復元できていることが示された。 【0333】尚、上記手順をとらなくても、上記計算式
により与えられたXd、Yd、Zdの値が計算できればXd
Yd、Zdの値が復元できる。また、xd、ydが上記計算式に
より与えられる値を取るようにXd、Yd、Zdの値を選択
し、その値が計算できればXd、Yd、Zdが復元できる。そ
れらの場合においては一般的に復元に必要となる計算量
が増大する。また、楕円曲線のパラメタであるA乃至はB
の値を小さくとることにより、ステップ3506乃至は
ステップ3515における乗算の計算量を削減すること
ができる。 【0334】次に、スカラー値d及びモンゴメリ型楕円
曲線上の点Pから、Xd,Zd,Xd+1,Zd+1を出力するアル
ゴリズムについて説明する。 【0335】第15実施例の高速スカラー倍計算部20
2の高速スカラー倍計算方法として、第1実施例の高速
スカラー倍計算方法を用いる。これにより、スカラー値
d及びモンゴメリ型楕円曲線上の点Pから、Xd,Zd
Xd+1,Zd+1を出力するアルゴリズムとして、高速である
アルゴリズムが達成される。尚、高速スカラー倍計算部
202において上記アルゴリズムを用いなくても、スカ
ラー値d及びモンゴメリ型楕円曲線上の点Pから、Xd
Zd,Xd+1,Zd+1を出力するアルゴリズムであり且つ高速
であれば、他のアルゴリズムを用いていもよい。 【0336】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は12M+Sであ
り、これは高速スカラー倍計算部202の高速スカラー
倍計算に必要な計算量の(9.2k―4.6)Mとに比
べてはるかに小さい。したがって、スカラー倍計算装置
103のスカラー倍計算に必要な計算量は、高速スカラ
ー倍計算部の高速スカラー倍計算に必要な計算量とほぼ
同等である。S=0.8Mと仮定すると、この計算量は
おおよそ(9.2k+8)Mと見積もることができる。
例えばスカラー値dが160ビット(k=160)であ
れば、このスカラー倍計算に必要な計算量は1480M
となる。楕円曲線としてワイエルシュトラス型楕円曲線
を使用し、ウィンドウ法を用いてヤコビアン座標を中心
とした混合座標系を用いたスカラー倍計算方法を用い
て、スカラー倍点をヤコビアン座標として出力する場合
に必要となる計算量はおおよそ1600Mであり、これ
と比べて必要となる計算量は削減されている。 【0337】第16の実施例は、スカラー倍計算装置1
03がスカラー値d及びモンゴメリ型楕円曲線上の点Pか
ら、モンゴメリ型楕円曲線におけるアフィン座標の点と
して完全な座標が与えられたスカラー倍点(xd,yd)を計
算し出力する。スカラー値d及びモンゴメリ型楕円曲線
上の点Pをスカラー倍計算装置103に入力すると高速
スカラー倍計算部202がそれを受け取る。高速スカラ
ー倍計算部202は受け取ったスカラー値dと与えられ
たモンゴメリ型楕円曲線上の点Pからモンゴメリ型楕円
曲線においてアフィン座標で表されたスカラー倍点dP=
(xd,yd)の座標のうちxd、アフィン座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(xd+1,yd+1)の座標の
うちxd+1を計算し、アフィン座標で表された入力された
モンゴメリ型楕円曲線上の点P=(x,y)と共にその情報を
座標復元部203に与える。座標復元部203は与えら
れた座標の値xd、xd+1、x及びyよりモンゴメリ型楕円曲
線においてアフィン座標で表されたスカラー倍点dP=(x
d,yd)の座標ydの復元を行なう。スカラー倍計算装置1
03はアフィン座標において完全に座標が与えられたス
カラー倍点(xd,yd)を計算結果として出力する。 【0338】次に図36により、座標x、y、xd、xd+1
与えられた場合に、xd、ydを出力する座標復元部の処理
について説明する。 【0339】座標復元部203では、モンゴメリ型楕円
曲線においてアフィン座標で表されたスカラー倍点dP=
(xd,yd)の座標のうちxd、アフィン座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(xd+1,yd+1)の座標の
うちxd+1、スカラー倍計算装置103に入力されたモン
ゴメリ型楕円曲線上の点Pをアフィン座標で表した(x,y)
を入力し、以下の手順でアフィン座標において完全な座
標が与えられたスカラー倍点(xd,yd)を出力する。 【0340】ステップ3601においてxd×xが計算さ
れ、レジスタT1に格納される。ステップ3602にお
いてT1+1が計算される。ここでレジスタT1にはxdxが
格納されており、したがってxdx+1が計算される。その
結果がレジスタT1に格納される。ステップ3603に
おいてxd+xが計算され、レジスタT2に格納される。ス
テップ3604においてT2+2Aが計算される。ここでレ
ジスタT2にはxd+xが格納されており、したがってxd+x+
2Aが計算される。その結果がレジスタT2に格納され
る。ステップ3605においてT1×T2が計算される。
ここでレジスタT1にはxdx+1がレジスタT2にはxd+x+2A
がそれぞれ格納されており、したがって(xdx+1)(xd+x+2
A)が計算される。その結果がレジスタT1に格納され
る。ステップ3606においてT1-2Aが計算される。こ
こでレジスタT1には(xdx+1)(xd+x+2A)が格納されてお
り、したがって(xdx+1)(xd+x+2A)-2Aが計算される。そ
の結果がレジスタT1に格納される。ステップ3607
においてxd-xが計算され、レジスタT2に格納される。
ステップ3608においてT2の2乗が計算される。こ
こでレジスタT2にはxd-xが格納されており、したがっ
て(xd−x)2が計算される。その結果がレジスタT2に格
納される。ステップ3609においてT2×xd+1が計算
される。ここでレジスタT2には(xd−x)2が格納されて
おり、したがって(xd−x)2xd+1が計算される。その結果
がレジスタT2に格納される。ステップ3610におい
てT1-T2が計算される。ここでレジスタT1には(xdx+
1)(xd+x+2A)-2AがレジスタT2には(xd−x)2xd+1がそれ
ぞれ格納されており、したがって(xdx+1)(xd+x+2A)-2A-
(xd−x)2xd+1が計算される。その結果がレジスタT1
格納される。ステップ3611において2B×yが計算さ
れ、レジスタT2に格納される。ステップ3612にお
いてT2の逆元が計算される。ここでレジスタT2には2B
yが格納されており、したがって1/2Byが計算される。そ
の結果がレジスタT2に格納される。ステップ3613
においてT1×T2が計算される。ここでレジスタT1
は(xdx+1)(xd+x+2A)-2A-(xd−x)2xd+1がレジスタT2
は1/2Byがそれぞれ格納されており、したがって(xdx+1)
(xd+x+2A)-2A-(xd−x)2xd+1/2Byが計算される。その結
果がレジスタydに格納される。したがってレジスタyd
は(xdx+1)(xd+x+2A)-2A-(xd−x)2xd+1/2Byが格納されて
いる。レジスタxdは全く更新されないので入力された値
が保持されている。 【0341】上記手順によりスカラー倍点のy座標yd
復元される理由は以下の通りである。尚、点(d+1)Pは点
dPに点Pを加算した点である。モンゴメリ型楕円曲線の
アフィン座標における加算公式に代入すると、数6を得
る。点P及び点dPはモンゴメリ型楕円曲線上の点である
ので、Byd 2=xd 3+Axd 2 +xd及びBy2=x3+Ax2+xをみたす。
数6に代入し、Byd 2及びBy2を消去し、式を整理する
と、数64を得る。ここで、xd,ydは図36の処理によ
り与えられる。したがって、アフィン座標(xd,yd)の値
は全て復元されたことになる。 【0342】上記手順はステップ3601、ステップ3
605、ステップ3609、ステップ3611及びステ
ップ3613において有限体上の乗算の計算量を必要と
する。また、ステップ3608において有限体上の2乗
算の計算量を必要とする。さらにステップ3612にお
いて有限体上の逆元演算の計算量を必要とする。有限体
上の減算の計算量は、有限体上の乗算の計算量、2乗算
の計算量、逆元演算の計算量と比べて比較的小さいので
無視してもよい。有限体上の乗算の計算量をM、有限体
上の2乗算の計算量をS、有限体上の逆元演算の計算量
をIとすると、上記手順は5M+S+Iの計算量を必要
とする。これは高速スカラー倍計算の計算量と比べては
るかに小さい。例えばスカラー値dが160ビットであ
れば、高速スカラー倍計算の計算量はおおよそ1500
M弱と見積もられる。S=0.8M及びI=40Mと仮
定すると座標復元の計算量は45.8Mであり、高速ス
カラー倍計算の計算量と比べてはるかに小さい。したが
って効率的に座標を復元できていることが示された。 【0343】尚、上記手順をとらなくても、上記等式の
右辺の値が計算できればydの値が復元できる。その場合
は一般的に復元に必要となる計算量が増大する。また、
楕円曲線のパラメタであるBの値を小さくとることによ
り、ステップ2605における乗算の計算量を削減する
ことができる。 【0344】次に図43により、スカラー値d及びモン
ゴメリ型楕円曲線上の点Pから、xd、xd+1を出力する高
速スカラー倍計算部の処理について説明する。 【0345】高速スカラー倍計算部202では、スカラ
ー倍計算装置103に入力されたモンゴメリ型楕円曲線
上の点Pを入力し、以下の手順によりモンゴメリ型楕円
曲線においてアフィン座標で表されたスカラー倍点dP=
(xd,yd)のうちxd、アフィン座標で表されたモンゴメリ
型楕円曲線上の点(d+1)P=(xd+1,yd+1)のうちxd+1を出
力する。ステップ4301として、変数Iに初期値1を
代入する。ステップ4302として、点Pの2倍点2Pを
計算する。ここで点Pは射影座標において(x,y,1)とし
て表し、モンゴメリ型楕円曲線の射影座標における2倍
算の公式を用いて2倍点2Pを計算する。ステップ430
3として、スカラー倍計算装置103に入力された楕円
曲線上の点Pとステップ4302で求めた点2Pを、点の
組(P,2P)として格納する。ここで点P及び点2Pは射影座
標で表されている。ステップ4304として、変数Iと
スカラー値dのビット長とが一致するかどうかを判定
し、一致すればステップ4315へ行く。一致しなけれ
ばステップ4305へ行く。ステップ4305として、
変数Iを1増加させる。ステップ4306として、スカ
ラー値のI番目のビットの値が0であるか1であるかを
判定する。そのビットの値が0であればステップ430
6へ行く。そのビットの値が1であればステップ431
0へ行く。ステップ4307として、射影座標により表
された点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+
(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステッ
プ4308へ行く。ここで、加算mP+(m+1)Pは、モンゴ
メリ型楕円曲線の射影座標における加算公式を用いて計
算される。ステップ4308として、射影座標により表
された点の組(mP,(m+1)P)から点mPの2倍算2(mP)を行
ない、点2mPを計算する。その後ステップ4309へ行
く。ここで、2倍算2(mP)は、モンゴメリ型楕円曲線の
射影座標における2倍算の公式を用いて計算される。ス
テップ4309として、ステップ4308で求めた点2m
Pとステップ4307で求めた点(2m+1)Pを点の組(2mP,
(2m+1)P)として、点の組(mP, (m+1)P)の代わりに格
納する。その後ステップ4304へ戻る。ここで、点2
mP、点(2m+1)P、点mP及び点(m+1)Pは全て射影座標に
おいて表されている。ステップ4310として、射影座
標により表された点の組(mP,(m+1)P)から点mPと点(m+
1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算す
る。その後ステップ4311へ行く。ここで、加算mP+
(m+1)Pは、モンゴメリ型楕円曲線の射影座標における
加算公式を用いて計算される。ステップ4311とし
て、射影座標により表された点の組(mP,(m+1)P)から点
(m+1)Pの2倍算2((m+1)P)を行ない、点(2m+2)Pを計算
する。その後ステップ4312へ行く。ここで、2倍算
2((m+1)P)は、モンゴメリ型楕円曲線の射影座標におけ
る2倍算の公式を用いて計算される。ステップ4311
として、ステップ4310で求めた点(2m+1)Pとステッ
プ4311で求めた点(2m+2)Pを点の組((2m+1)P,(2m+2)
P)として、点の組(mP,(m+1)P)の代わりに格納する。そ
の後ステップ4304へ戻る。ここで、点(2m+1)P、点
(2m+2)P、点mP及び点(m+1)Pは全て射影座標において表
されている。ステップ615として、射影座標で表され
た点mP=(Xm,Ym,Zm)よりXm及びZmをそれぞれXd及びZd
し、射影座標で表された点(m+1)P=(Xm+1,Ym+1,Zm+1)よ
りXm+1及びZm+1をそれぞれXd+1及びZd+1とする。ここ
で、Ym及びYm+1は、モンゴメリ型楕円曲線の射影座標に
おける加算公式及び2倍算の公式ではY座標を求める事
ができないので、求まっていない。Xd,Zd,Xd+1,Zd+1
より、xd=XdZd+1/ZdZd+1, xd+1=ZdXd+1/Zd Zd+1としてx
d,xd+1を求める。その後ステップ4313へ行く。ス
テップ4313として、xd,xd+1を出力する。上記手順
により、mとスカラー値dはビット長が等しくさらにそ
のビットのパターンも同じとなる為、等しくなる。 【0346】モンゴメリ型楕円曲線の射影座標における
加算公式の計算量は、Z1=1ととることにより3M+2
Sとなる。ここでMは有限体上の乗算の計算量、Sは有
限体上の2乗算の計算量である。モンゴメリ型楕円曲線
の射影座標における2倍算の公式の計算量は、3M+2
Sである。スカラー値のI番目のビットの値が0であれ
ば、ステップ4307において加算の計算量、ステップ
4308において2倍算の計算量が必要となる。すなわ
ち6M+4Sの計算量が必要となる。スカラー値のI番
目のビットの値が1であれば、ステップ4310におい
て加算の計算量、ステップ4311において2倍算の計
算量が必要となる。すなわち6M+4Sの計算量が必要
である。いずれの場合においても6M+4Sの計算量が
必要である。ステップ4304、ステップ4305、ス
テップ4306、ステップ4307、ステップ430
8、ステップ4309乃至はステップ4304、ステッ
プ4305、ステップ4306、ステップ4310、ス
テップ4311、ステップ4312の繰り返しの回数
は、(スカラー値dのビット長)―1回となるので、ス
テップ4302での2倍算の計算量及びアフィン座標へ
の変換の計算量を考慮に入れると、全体の計算量は(6
M+4S)k+2M―2S+Iとなる。ここでkはスカ
ラー値dのビット長である。一般的には、計算量Sは、
S=0.8M程度、計算量IはI=40M程度と見積も
られるので、全体の計算量はおおよそ(9.2k+4
0.4)Mとなる。例えばスカラー値dが160ビット
(k=160)であれば、上記手順のアルゴリズムの計
算量はおおよそ1512Mとなる。スカラー値dのビッ
トあたりの計算量としてはおよそ9.2Mとなる。A.Mi
yaji, T.Ono, H.Cohen, Efficient elliptic curve exp
onentiation using mixed coordinates, Advances in C
ryptology Proceedings of ASIACRYPT'98, LNCS 1514
(1998) pp.51-65 には、ワイエルシュトラス型楕円曲線
において、ウィンドウ法を用いてヤコビアン座標を中心
とした混合座標系を用いたスカラー倍計算方法は高速な
スカラー倍計算方法として記載されている。この場合に
おいては、スカラー値のビットあたりの計算量はおおよ
そ10Mと見積もられ、これ以外にアフィン座標への変
換の計算量が必要となる。例えばスカラー値dが160
ビット(k=160)であれば、このスカラー倍計算方
法の計算量はおおよそ1640Mとなる。したがって、
上記手順のアルゴリズムの方が計算量が少なく高速とい
える。 【0347】尚、高速スカラー倍計算部202において
上記手順のアルゴリズムを用いなくても、スカラー値d
及びモンゴメリ型楕円曲線上の点Pから、xd、xd+1を出
力するアルゴリズムであり且つ高速であれば、他のアル
ゴリズムを用いていもよい。 【0348】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は5M+S+Iで
あり、これは高速スカラー倍計算部202の高速スカラ
ー倍計算に必要な計算量の(9.2k+40.4)Mと
に比べてはるかに小さい。したがって、スカラー倍計算
装置103のスカラー倍計算に必要な計算量は、高速ス
カラー倍計算部の高速スカラー倍計算に必要な計算量と
ほぼ同等である。S=0.8M及びI=40Mと仮定す
ると、この計算量はおおよそ(9.2k+86.2)M
と見積もることができる。例えばスカラー値dが160
ビット(k=160)であれば、このスカラー倍計算に
必要な計算量はおおよそ1558Mとなる。楕円曲線と
してワイエルシュトラス型楕円曲線を使用し、ウィンド
ウ法を用いてヤコビアン座標を中心とした混合座標系を
用いたスカラー倍計算方法を用いて、スカラー倍点をア
フィン座標として出力する場合に必要となる計算量はお
およそ1640Mであり、これと比べて必要となる計算
量は削減されている。 【0349】第17の実施例は、楕円曲線としてワイエ
ルシュトラス型楕円曲線を用いたものである。すなわ
ち、スカラー倍計算装置103の入出力に用いる楕円曲
線はワイエルシュトラス型楕円曲線である。ただし、ス
カラー倍計算装置103の内部の計算で使用する楕円曲
線として、与えられたワイエルシュトラス型楕円曲線か
ら変換可能であるようなモンゴメリ型楕円曲線を用いて
もよい。スカラー倍計算装置103がスカラー値d及び
ワイエルシュトラス型楕円曲線上の点Pから、ワイエル
シュトラス型楕円曲線におけるアフィン座標の点として
完全な座標が与えられたスカラー倍点(xd,yd)を計算し
出力するものである。スカラー値d及びワイエルシュト
ラス型楕円曲線上の点Pをスカラー倍計算装置103に
入力すると高速スカラー倍計算部202がそれを受け取
る。高速スカラー倍計算部202は受け取ったスカラー
値dと与えられたワイエルシュトラス型楕円曲線上の点P
からワイエルシュトラス型楕円曲線において射影座標で
表されたスカラー倍点dP=(Xd,Yd,Zd)の座標のうちXd
びZd、射影座標で表されたワイエルシュトラス型楕円曲
線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座標のうちXd+1
びZd+1を計算し、アフィン座標で表された入力されたワ
イエルシュトラス型楕円曲線上の点P=(x,y)と共にその
情報を座標復元部203に与える。座標復元部203は
与えられた座標の値値Xd、Zd、Xd+1、Zd+1、x及びyよ
りワイエルシュトラス型楕円曲線においてアフィン座標
で表されたスカラー倍点dP=(xd,yd)の座標xd及びyd
の復元を行なう。スカラー倍計算装置103はアフィン
座標において完全に座標が与えられたスカラー倍点(xd,
yd)を計算結果として出力する。 【0350】次に図37により、座標x、y、Xd、Zd、X
d+1、Zd+1が与えられた場合にxd、ydを出力する座標復
元部の処理について説明する。 【0351】座標復元部203では、ワイエルシュトラ
ス型楕円曲線において射影座標で表されたスカラー倍点
dP=(Xd,Yd,Zd)の座標うちXd及びZd、射影座標で表され
たワイエルシュトラス型楕円曲線上の点(d+1)P=(Xd+1,
Yd+1,Zd+1)の座標のうちXd+1及びZd+1、スカラー倍計算
装置103に入力されたワイエルシュトラス型楕円曲線
上の点Pをアフィン座標で表した(x,y)を入力し、以下の
手順でアフィン座標おいて完全な座標が与えられたスカ
ラー倍点(xd,yd)を出力する。ここで入力されたワイエ
ルシュトラス型楕円曲線上の点Pのアフィン座標を(x,y)
で、射影座標を(X,Y,Z)でそれぞれ表す。入力さ
れたスカラー値をdとしてワイエルシュトラス型楕円曲
線におけるスカラー倍点dPのアフィン座標を(xd,yd)
で、射影座標を(Xd,Yd,Zd)でそれぞれ表す。ワイエルシ
ュトラス型楕円曲線上の点(d+1)Pのアフィン座標を(x
d+1,yd+1)で、射影座標を(Xd+1,Yd+1,Zd+1)でそれぞれ
表す。 【0352】ステップ3701においてx×Zdが計算さ
れ、レジスタT1に格納される。ステップ3702にお
いてXd+T1が計算される。ここでレジスタT1にはxZd
が格納されており、したがってxZd+Xdが計算される。そ
の結果がレジスタT2に格納される。ステップ3703
においてXd-T1が計算され、ここでレジスタT1にはxZd
が格納されており、したがってxZd-Xdが計算される。そ
の結果がレジスタT3に格納される。ステップ3704
においてレジスタT3の2乗が計算される。ここでレジ
スタT3にはxZd-Xd が格納されており、したがって(Xd-
xZd)2が計算される。その結果がレジスタT3に格納され
る。ステップ3705においてT3×Xd+1が計算され
る。ここでレジスタT3には(Xd-xZd)2が格納されてお
り、したがってXd+1(Xd-xZd)2が計算される。その結果
がレジスタT3に格納される。ステップ3706におい
てx×Xdが計算され、レジスタT1に格納される。ステッ
プ3707においてa×Zdが計算され、レジスタT4に格
納される。ステップ3708においてT1+T4が計算さ
れる。ここでレジスタT1にはxXdがレジスタT4にはaZd
がそれぞれ格納されており、したがってxXd+aZdが計算
される。その結果がレジスタT1に格納される。ステッ
プ3709においてT1×T2が計算される。ここでレジ
スタT1にはxXd+aZdがレジスタT2にはxZd+Xdがそれぞ
れ格納されており、したがって(xXd+aZd)(xZd+Xd)が計
算される。その結果がレジスタT1に格納される。ステ
ップ3710においてレジスタZdの2乗が計算され、レ
ジスタT2に格納される。ステップ3711においてT2
×2bが計算される。ここでレジスタT2にはZd 2が格納さ
れており、したがって2bZd 2が計算される。その結果が
レジスタT2に格納される。ステップ3712において
1+T2が計算される。ここでレジスタT1には(xXd+a
Zd)(xZd+Xd)がレジスタT2には2bZd 2がそれぞれ格納さ
れており、したがって(xXd+aZd)(xZd+Xd)+2bZd 2が計算
される。その結果がレジスタT1に格納される。ステッ
プ3713においてT1×Zd+1が計算される。ここでレ
ジスタT1には(xXd+aZd)(xZd+Xd)+2bZd 2が格納されてお
り、したがってZd+1((xXd+aZd) (xZd+Xd)+2bZd 2)が計算
される。その結果がレジスタT1に格納される。ステッ
プ3714においてT1-T3が計算される。ここでレジ
スタT1にはZd+1((xXd+aZd)(xZd+Xd)+2bZd 2)がレジスタ
3にはXd+1(Xd-xZd)2がそれぞれ格納されており、した
がってZd+1((xXd+aZd)(xZd+Xd)+2bZd 2)-Xd+1(Xd-xZd)2
が計算される。その結果がレジスタT1に格納される。
ステップ3715において2y×Zdが計算され、レジスタ
2に格納される。ステップ3716においてT2×Zd+1
が計算される。ここでレジスタT2には2yZdが格納され
ており、したがって2yZdZd+1が計算される。その結果が
レジスタT2に格納される。ステップ3717において
2×Zdが計算される。ここでレジスタT2には2yZdZd+1
が格納されており、したがって2yZdZd+1Zdが計算され
る。その結果がレジスタT3に格納される。ステップ3
718においてレジスタT3の逆元が計算される。ここ
でレジスタT3には2yZdZd+1Zdが格納されており、した
がって1/2yZdZd+1Zd が計算される。その結果がレジス
タT3に格納される。ステップ3719においてT1×T
3が計算される。ここでレジスタT1にはZd+1((xXd+aZd)
(xZd+Xd)+2bZd 2) -Xd+1(Xd-xZd)2がレジスタT3には1/2
yZdZd+1Zdがそれぞれ格納されており、したがって(Zd+1
((xXd+aZd)(xZd+Xd)+2bZd 2)-Xd+1(Xd-xZd)2)/2yZdZd+1Z
dが計算される。その結果がレジスタydに格納される。
ステップ3720においてT2×Xdが計算される。ここ
でレジスタT2には2yZdZd+1が格納されており、したが
って2yZdZd+1Xdが計算される。その結果がレジスタT2
に格納される。ステップ3721においてT2×T3が計
算される。ここでレジスタT2には2yZdZd+1Xdがレジス
タT3には1/2yZdZd+1Zdがそれぞれ格納されており、し
たがって2yZdZd+1 Xd/2yZdZd+1Zdが計算される。その結
果がレジスタxdに格納される。したがってレジスタxd
は2yZdZd+1Xd/2yZdZd+1Zdが格納されている。レジスタy
dにはステップ3719において(Zd+1((xXd+aZd)(xZd+X
d)+2bZd 2)-Xd+1(Xd-xZd)2)/2yZdZd+1 Zdが格納され、そ
の後更新が行なわれないので、その値が保持されてい
る。 【0353】上記手順により、与えられたx、y、Xd
Zd、Xd+1、Zd+1からワイエルシュトラス型楕円曲線にお
けるスカラー倍点のアフィン座標(xd,yd)における値が
全て復元される理由は以下の通りである。点(d+1)Pは点
dPに点Pを加算した点である。ワイエルシュトラス型楕
円曲線のアフィン座標における加算公式に代入すると、
数27を得る。点P及び点dPはワイエルシュトラス型楕
円曲線上の点であるので、yd 2=xd 3+axd+b及びy2=x3+ax+
bをみたす。数27に代入し、yd 2及びy2を消去し、式を
整理すると、 【0354】 【数70】 【0355】を得る。ここでxd=Xd/Zd、xd+1=Xd+1/
Zd+1であり、この値を代入することにより射影座標の値
へと変換すると、次の式を得る。 【0356】 【数71】 【0357】xd=Xd/Zdであるが、逆元演算の回数を減
らす目的でydの分母と通分することにより、 【0358】 【数72】 【0359】となる。ここで、xd,ydは図37で示し
た処理により与えられる。したがって、アフィン座標(x
d,yd)の値が全て復元されていることになる。 【0360】上記手順はステップ3701、ステップ3
705、ステップ3706、ステップ3707、ステッ
プ3709、ステップ3710、ステップ3711、ス
テップ3713、ステップ3715、ステップ371
6、ステップ3717、ステップ3719、ステップ3
720及びステップ3721において有限体上の乗算の
計算量を必要とする。また、ステップ3704において
有限体上の2乗算の計算量を必要とする。また、ステッ
プ3718において有限体上の逆元演算の計算量を必要
とする。有限体上の加算及び減算の計算量は、有限体上
の乗算の計算量、2乗算の計算量及び逆元演算の計算量
と比べて比較的小さいので無視してもよい。有限体上の
乗算の計算量をM、有限体上の2乗算の計算量をS及び
有限体上の逆元演算の計算量をIとすると、上記手順は
14M+S+Iの計算量を必要とする。これは高速スカ
ラー倍計算の計算量と比べてはるかに小さい。例えばス
カラー値dが160ビットであれば、高速スカラー倍計
算の計算量はおおよそ1500M弱と見積もられる。S
=0.8M、I=40Mと仮定すると座標復元の計算量
は54.8Mであり、高速スカラー倍計算の計算量と比
べてはるかに小さい。したがって効率的に座標を復元で
きていることが示された。 【0361】尚、上記手順をとらなくても、上記計算式
により与えられたxd,ydの値が計算できればxd,yd
値が復元できる。その場合においては一般的に復元に必
要となる計算量が増大する。 【0362】次に図44により、スカラー値d及びワイ
エルシュトラス型楕円曲線上の点Pから、Xd,Zd,Xd+1,Z
d+1を出力する高速スカラー倍計算部の処理について説
明する。 【0363】高速スカラー倍計算部202では、スカラ
ー倍計算装置103に入力されたワイエルシュトラス型
楕円曲線上の点Pを入力し、以下の手順によりワイエル
シュトラス型楕円曲線において射影座標で表されたスカ
ラー倍点dP=(Xd,Yd,Zd)のうちXd及びZd、射影座標で表
されたワイエルシュトラス型楕円曲線上の点(d+1)P=(X
d+1,Yd+1,Zd+1)のうちXd+1及びZd+1を出力する。ステッ
プ4416として、与えられたワイエルシュトラス型楕
円曲線上の点Pをモンゴメリ型楕円曲線上で射影座標に
より表された点に変換する。この点をあらためて点Pと
する。ステップ4401として、変数Iに初期値1を代
入する。ステップ4402として、点Pの2倍点2Pを計
算する。ここで点Pは射影座標において(x,y,1)として
表し、モンゴメリ型楕円曲線の射影座標における2倍算
の公式を用いて2倍点2Pを計算する。ステップ4403
として、スカラー倍計算装置103に入力された楕円曲
線上の点Pとステップ4402で求めた点2Pを、点の組
(P,2P)として格納する。ここで点P及び点2Pは射影座標
で表されている。ステップ4404として、変数Iとス
カラー値dのビット長とが一致するかどうかを判定し、
一致すればステップ4415へ行く。一致しなければス
テップ4405へ行く。ステップ4405として、変数
Iを1増加させる。ステップ4406として、スカラー
値のI番目のビットの値が0であるか1であるかを判定
する。そのビットの値が0であればステップ4406へ
行く。そのビットの値が1であればステップ4410へ
行く。ステップ4407として、射影座標により表され
た点の組(mP,(m+1)P)から点mPと点(m+1)Pの加算mP+(m+
1)Pを行ない、点(2m+1)Pを計算する。その後ステップ4
408へ行く。ここで、加算mP+(m+1)Pは、モンゴメリ
型楕円曲線の射影座標における加算公式を用いて計算さ
れる。ステップ4408として、射影座標により表され
た点の組(mP,(m+1)P)から点mPの2倍算2(mP)を行な
い、点2mPを計算する。その後ステップ4409へ行
く。ここで、2倍算2(mP)は、モンゴメリ型楕円曲線の
射影座標における2倍算の公式を用いて計算される。ス
テップ4409として、ステップ4408で求めた点2m
Pとステップ4407で求めた点(2m+1)Pを点の組(2mP,
(2m+1)P)として、点の組(mP, (m+1)P)の代わりに格
納する。その後ステップ4404へ戻る。ここで、点2
mP、点(2m+1)P、点mP及び点(m+1)Pは全て射影座標に
おいて表されている。ステップ4410として、射影座
標により表された点の組(mP,(m+1)P)から点mPと点(m+
1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算す
る。その後ステップ4411へ行く。ここで、加算mP+
(m+1)Pは、モンゴメリ型楕円曲線の射影座標における
加算公式を用いて計算される。ステップ4411とし
て、射影座標により表された点の組(mP,(m+1)P)から点
(m+1)Pの2倍算2((m+1)P)を行ない、点(2m+2)Pを計算
する。その後ステップ4412へ行く。ここで、2倍算
2((m+1)P)は、モンゴメリ型楕円曲線の射影座標におけ
る2倍算の公式を用いて計算される。ステップ4411
として、ステップ4410で求めた点(2m+1)Pとステッ
プ4411で求めた点(2m+2)Pを点の組((2m+1)P,(2m+2)
P)として、点の組(mP,(m+1)P)の代わりに格納する。そ
の後ステップ4404へ戻る。ここで、点(2m+1)P、点
(2m+2)P、点mP及び点(m+1)Pは全て射影座標において表
されている。ステップ4415として、モンゴメリ型楕
円曲線における点(m-1)Pを、ワイエルシュトラス型楕円
曲線上で射影座標により表された点に変換する。その点
のX座標及びZ座標をそれぞれあらためてXm-1及びZm-1
おく。また、モンゴメリ型楕円曲線において射影座標で
表された点の組(mP,(m+1)P)に対して、点mP及び点(m+1)
Pをワイエルシュトラス型楕円曲線上で射影座標で表さ
れた点に変換し、それぞれmP=(Xm,Ym,Zm)及び(m+1)P
=(Xm+1,Ym+1,Zm+1)とあらためて置き直す。ここで、
Ym及びYm+1は、モンゴメリ型楕円曲線の射影座標におけ
る加算公式及び2倍算の公式ではY座標を求める事がで
きないので、求まっていない。ステップ4413とし
て、ワイエルシュトラス型楕円曲線上で射影座標で表さ
れた点mP=(Xm,Ym,Zm)よりXm及びZmをそれぞれXd及び
Zとして、ワイエルシュトラス型楕円曲線上で射影座
標で表された点(m+1)P=(Xm+1,Ym+1,Zm+1)よりXm+1
びZm+1をそれぞれXd+1及びZd+1として、出力する。また
上記手順により、mとスカラー値dはビット長が等しく
さらにそのビットのパターンも同じとなる為、等しくな
る。 【0364】モンゴメリ型楕円曲線の射影座標における
加算公式の計算量は、Z1=1ととることにより3M+2S
となる。ここでMは有限体上の乗算の計算量、Sは有限
体上の2乗算の計算量である。モンゴメリ型楕円曲線の
射影座標における2倍算の公式の計算量は、3M+2S
である。スカラー値のI番目のビットの値が0であれ
ば、ステップ4407において加算の計算量、ステップ
4408において2倍算の計算量が必要となる。すなわ
ち6M+4Sの計算量が必要となる。スカラー値のI番
目のビットの値が1であれば、ステップ4410におい
て加算の計算量、ステップ4411において2倍算の計
算量が必要となる。すなわち6M+4Sの計算量が必要
である。いずれの場合においても6M+4Sの計算量が
必要である。ステップ4404、ステップ4405、ス
テップ4406、ステップ4407、ステップ440
8、ステップ4409乃至はステップ4404、ステッ
プ4405、ステップ4406、ステップ4410、ス
テップ4411、ステップ4412の繰り返しの回数
は、(スカラー値dのビット長)―1回となるので、ス
テップ4402での2倍算の計算量とステップ4416
でのモンゴメリ型楕円曲線上の点への変換に必要な計算
量及びステップ4415でのワイエルシュトラス型楕円
曲線上の点への変換に必要な計算量を考慮に入れると、
全体の計算量は(6M+4S)k+2M―2Sとなる。
ここでkはスカラー値dのビット長である。一般的に
は、計算量Sは、S=0.8M程度と見積もられるの
で、全体の計算量はおおよそ(9.2k+0.4)Mと
なる。例えばスカラー値dが160ビット(k=16
0)であれば、上記手順のアルゴリズムの計算量はおお
よそ1472Mとなる。スカラー値dのビットあたりの
計算量としてはおよそ9.2Mとなる。A.Miyaji, T.On
o, H.Cohen, Efficient elliptic curve exponentiatio
n using mixed coordinates, Advances in Cryptology
Proceedings of ASIACRYPT'98, LNCS 1514 (1998) pp.
51-65 には、ワイエルシュトラス型楕円曲線において、
ウィンドウ法を用いてヤコビアン座標を中心とした混合
座標系を用いたスカラー倍計算方法は高速なスカラー倍
計算方法として記載されている。この場合においては、
スカラー値のビットあたりの計算量はおおよそ10Mと
見積もられる。例えばスカラー値dが160ビット(k
=160)であれば、このスカラー倍計算方法の計算量
はおおよそ1600Mとなる。したがって、上記手順の
アルゴリズムの方が計算量が少なく高速といえる。 【0365】尚、高速スカラー倍計算部202において
上記手順のアルゴリズムを用いなくても、スカラー値d
及びワイエルシュトラス型楕円曲線上の点Pから、Xd、Z
d、Xd+1、Zd+1を出力するアルゴリズムであり且つ高速
であれば、他のアルゴリズムを用いていもよい。 【0366】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は14M+S+I
であり、これは高速スカラー倍計算部202の高速スカ
ラー倍計算に必要な計算量の(9.2k+0.4)Mと
に比べてはるかに小さい。したがって、スカラー倍計算
装置103のスカラー倍計算に必要な計算量は、高速ス
カラー倍計算部の高速スカラー倍計算に必要な計算量と
ほぼ同等である。I=40M、S=0.8Mと仮定する
と、この計算量はおおよそ(9.2k+55.2)Mと
見積もることができる。例えばスカラー値dが160ビ
ット(k=160)であれば、このスカラー倍計算に必
要な計算量はおおよそ1527Mとなる。楕円曲線とし
てワイエルシュトラス型楕円曲線を使用し、ウィンドウ
法を用いてヤコビアン座標を中心とした混合座標系を用
いたスカラー倍計算方法を用いて、スカラー倍点をアフ
ィン座標として出力する場合に必要となる計算量はおお
よそ1640Mであり、これと比べて必要となる計算量
は削減されている。 【0367】第18の実施例は楕円曲線としてワイエル
シュトラス型楕円曲線を用いたものである。すなわち、
スカラー倍計算装置103の入出力に用いる楕円曲線は
ワイエルシュトラス型楕円曲線である。ただし、スカラ
ー倍計算装置103の内部の計算で使用する楕円曲線と
して、与えられたワイエルシュトラス型楕円曲線から変
換可能であるようなモンゴメリ型楕円曲線を用いてもよ
い。スカラー倍計算部103がスカラー値d及びワイエ
ルシュトラス型楕円曲線上の点Pから、ワイエルシュト
ラス型楕円曲線における射影座標の点として完全な座標
が与えられたスカラー倍点(Xd,Yd,Zd)を計算し出力す
る。スカラー値d及びワイエルシュトラス型楕円曲線上
の点Pをスカラー倍計算装置103に入力すると高速ス
カラー倍計算部202がそれを受け取る。高速スカラー
倍計算部202は受け取ったスカラー値dと与えられた
ワイエルシュトラス型楕円曲線上の点Pからワイエルシ
ュトラス型楕円曲線において射影座標で表されたスカラ
ー倍点dP=(Xd,Yd,Zd)の座標のうちXd及びZd、射影座標
で表されたワイエルシュトラス型楕円曲線上の点(d+1)P
=(Xd+1,Yd+1,Zd+1)の座標のうちXd+1及びZd+1を計算
し、アフィン座標で表された入力されたワイエルシュト
ラス型楕円曲線上の点P=(x,y)と共にその情報を座標復
元部203に与える。座標復元部203は与えられた座
標の値Xd、Zd、Xd+1、Zd+1、x及びyよりワイエルシュト
ラス型楕円曲線において射影座標で表されたスカラー倍
点dP=(Xd,Yd,Zd)の座標Xd,Yd及びZdの復元を行なう。
スカラー倍計算装置103は射影座標において完全に座
標が与えられたスカラー倍点(Xd,Yd,Zd)を計算結果とし
て出力する。 【0368】次に図38により、座標x、y Xd、Zd、X
d+1、Zd+1が与えられた場合にXd、Yd、Zdを出力する座
標復元部の処理について説明する。 【0369】座標復元部203では、ワイエルシュトラ
ス型楕円曲線において射影座標で表されたスカラー倍点
dP=(Xd,Yd,Zd)の座標のうちXd及びZd、射影座標で表さ
れたワイエルシュトラス型楕円曲線上の点(d+1)P=(X
d+1,Yd+1,Zd+1)の座標のうちXd+1及びZd+1、スカラー倍
計算装置103に入力されたワイエルシュトラス型楕円
曲線上の点Pをアフィン座標で表した(x,y)を入力し、以
下の手順で射影座標おいて完全な座標が与えられたスカ
ラー倍点(Xd,Yd,Zd)を出力する。ここで入力されたワイ
エルシュトラス型楕円曲線上の点Pのアフィン座標を(x,
y)で、射影座標を(X1,Y1,Z1)でそれぞれ表す。入力され
たスカラー値をdとしてワイエルシュトラス型楕円曲線
におけるスカラー倍点dPのアフィン座標を(xd,yd)で、
射影座標を(Xd,Yd,Zd)でそれぞれ表す。ワイエルシュト
ラス型楕円曲線上の点(d+1)Pのアフィン座標を(xd+1,y
d+1)で、射影座標を(Xd+1,Yd+1,Zd+1)でそれぞれ表す。 【0370】ステップ3801においてx×Zdが計算さ
れ、レジスタT1に格納される。ステップ3802にお
いてXd+T1が計算される。ここでレジスタT1にはxZd
が格納されており、したがってxZd+Xdが計算される。そ
の結果がレジスタT2に格納される。ステップ3803
においてXd-T1が計算され、ここでレジスタT1にはxZd
が格納されており、したがってxZd-Xdが計算される。そ
の結果がレジスタT3に格納される。ステップ3804
においてレジスタT3の2乗が計算される。ここでレジ
スタT3にはxZd-Xd が格納されており、したがって(Xd-
xZd)2が計算される。その結果がレジスタT3に格納され
る。ステップ3805においてT3×Xd+1が計算され
る。ここでレジスタT3には(Xd-xZd)2が格納されてお
り、したがってXd+1(Xd-xZd)2が計算される。その結果
がレジスタT3に格納される。ステップ3806におい
てx×Xdが計算され、レジスタT1に格納される。ステッ
プ3807においてa×Zdが計算され、レジスタT4に格
納される。ステップ3808においてT1+T4が計算さ
れる。ここでレジスタT1にはxXdがレジスタT4にはaZd
がそれぞれ格納されており、したがってxXd+aZdが計算
される。その結果がレジスタT1に格納される。ステッ
プ3809においてT1×T2が計算される。ここでレジ
スタT1にはxXd+aZdがレジスタT2にはxZd+Xdがそれぞ
れ格納されており、したがって(xXd+aZd)(xZd+Xd)が計
算される。その結果がレジスタT1に格納される。ステ
ップ3810においてレジスタZdの2乗が計算され、レ
ジスタT2に格納される。ステップ3811においてT2
×2bが計算される。ここでレジスタT2にはZd 2が格納さ
れており、したがって2bZd 2が計算される。その結果が
レジスタT2に格納される。ステップ3812において
1+T2が計算される。ここでレジスタT1には(xXd+a
Zd)(xZd+Xd)がレジスタT2には2bZd 2がそれぞれ格納さ
れており、したがって(xXd+aZd)(xZd+Xd)+2bZd 2が計算
される。その結果がレジスタT1に格納される。ステッ
プ3813においてT1×Zd+1が計算される。ここでレ
ジスタT1には(xXd+aZd)(xZd+Xd)+2bZd 2が格納されてお
り、したがってZd+1((xXd+aZd) (xZd+Xd)+2bZd 2)が計算
される。その結果がレジスタT1に格納される。ステッ
プ3814においてT1-T3が計算される。ここでレジ
スタT1にはZd+1((xXd+aZd)(xZd+Xd)+2bZd 2)がレジスタ
3にはXd+1(Xd-xZd)2がそれぞれ格納されており、した
がってZd+1((xXd+aZd)(xZd+Xd)+2bZd 2)-Xd+1(Xd-xZd)2
が計算される。その結果がレジスタYdに格納される。ス
テップ3815において2y×Zdが計算され、レジスタT
2に格納される。ステップ3816においてT2×Zd+1
計算される。ここでレジスタT2には2yZdが格納されて
おり、したがって2yZdZd+1が計算される。その結果がレ
ジスタT2に格納される。ステップ3817においてT2
×Xdが計算される。ここでレジスタT2には2yZdZd+1
格納されており、したがって2yZdZd+1Xdが計算される。
その結果がレジスタXdに格納される。ステップ3819
においてT2×Zdが計算される。ここでレジスタT2には
2yZdZd+1が格納されており、したがって2yZdZd+1Zdが計
算される。その結果がレジスタZdに格納される。したが
ってレジスタZdには2yZdZd+1Zdが格納されている。レジ
スタYdにはステップ3814においてZd+1((xXd+aZd)(x
Zd+Xd) +2bZd 2)+Xd+1(Xd-xZd)2が格納され、その後更
新が行なわれないので、その値が保持されている。レジ
スタXdにはステップ3817において2yZdZd+1Xdが格納
され、その後更新が行なわれないので、その値が保持さ
れている。 【0371】上記手順により与えられたx、y、Xd
Zd、Xd+1、Zd+1からワイエルシュトラス型楕円曲線にお
けるスカラー倍点の射影座標(Xd,Yd,Zd)における値が全
て復元される理由は以下の通りである。点(d+1)Pは点dP
に点Pを加算した点である。ワイエルシュトラス型楕円
曲線のアフィン座標における加算公式に代入すると、数
27を得る。点P及び点dPはワイエルシュトラス型楕円
曲線上の点であるので、yd 2=xd 3+axd+b及びy2=x3+ax+b
をみたす。数27に代入し、yd 2及びy2を消去し、式を
整理すると、数70を得る。ここでxd=Xd/Zd、xd+1
=Xd+1/Zd+1であり、この値を代入することにより射影
座標の値へと変換すると、数71を得る。xd=Xd/Zd
あるが、逆元演算の回数を減らす目的でydの分母と通
分することにより、数72となる。その結果として 【0372】 【数73】 【0373】とし、Xd及びZdをそれぞれ 【0374】 【数74】 【0375】 【数75】 【0376】により更新すればよい。ここで、Xd,Yd
Zdは図38で示した処理により与えられる。したがっ
て、射影座標(Xd,Yd,Zd)の値は全て復元されたことにな
る。 【0377】上記手順はステップ3801、ステップ3
805、ステップ3806、ステップ3807、ステッ
プ3809、ステップ3811、ステップ3813、ス
テップ3815、ステップ3816、ステップ3817
及びステップ3818において有限体上の乗算の計算量
を必要とする。また、ステップ3804およびステップ
3810において有限体上の2乗算の計算量を必要とす
る。有限体上の加算及び減算の計算量は、有限体上の乗
算の計算量、2乗算の計算量と比べて比較的小さいので
無視してもよい。有限体上の乗算の計算量をM、有限体
上の2乗算の計算量をSとすると、上記手順は11M+
2Sの計算量を必要とする。これは高速スカラー倍計算
の計算量と比べてはるかに小さい。例えばスカラー値d
が160ビットであれば、高速スカラー倍計算の計算量
はおおよそ1500M弱と見積もられる。S=0.8M
と仮定すると座標復元の計算量は12.6Mであり、高
速スカラー倍計算の計算量と比べてはるかに小さい。し
たがって効率的に座標を復元できていることが示され
た。 【0378】尚、上記手順をとらなくても、上記計算式
により与えられたXd,Yd,Zdの値が計算できればXd,Yd,Zd
の値が復元できる。また、xd,ydが上記計算式により与
えられる値を取るようにXd,Yd,Zdの値を選択し、その値
が計算できればXd,Yd,Zdが復元できる。それらの場合に
おいては一般的に復元に必要となる計算量が増大する。 【0379】次に、スカラー値d及びワイエルシュトラ
ス型楕円曲線上の点Pから、Xd,Zd,Xd+1,Zd+1を出力
するアルゴリズムについて説明する。 【0380】第18実施例の高速スカラー倍計算部20
2の高速スカラー倍計算方法として、第17実施例の高
速スカラー倍計算方法を用いる。これにより、スカラー
値d及びワイエルシュトラス型楕円曲線上の点Pから、
Xd,Zd,Xd+1,Zd+1を出力するアルゴリズムとして、高
速であるアルゴリズムが達成される。尚、高速スカラー
倍計算部202において上記手順のアルゴリズムを用い
なくても、スカラー値d及びワイエルシュトラス型楕円
曲線上の点Pから、Xd,Zd,Xd+1,Zd+1を出力するアル
ゴリズムであり且つ高速であれば、他のアルゴリズムを
用いていもよい。 【0381】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は11M+2Sで
あり、これは高速スカラー倍計算部202の高速スカラ
ー倍計算に必要な計算量の(9.2k+0.4)Mとに
比べてはるかに小さい。したがって、スカラー倍計算装
置103のスカラー倍計算に必要な計算量は、高速スカ
ラー倍計算部の高速スカラー倍計算に必要な計算量とほ
ぼ同等である。S=0.8Mと仮定すると、この計算量
はおおよそ(9.2k+13)Mと見積もることができ
る。例えばスカラー値dが160ビット(k=160)
であれば、このスカラー倍計算に必要な計算量はおおよ
そ1485Mとなる。楕円曲線としてワイエルシュトラ
ス型楕円曲線を使用し、ウィンドウ法を用いてヤコビア
ン座標を中心とした混合座標系を用いたスカラー倍計算
方法を用いて、スカラー倍点をヤコビアン座標として出
力する場合に必要となる計算量はおおよそ1600Mで
あり、これと比べて必要となる計算量は削減されてい
る。 【0382】第19の実施例は楕円曲線としてワイエル
シュトラス型楕円曲線を用いたものである。すなわち、
スカラー倍計算装置103の入出力に用いる楕円曲線は
ワイエルシュトラス型楕円曲線である。ただし、スカラ
ー倍計算装置103の内部の計算で使用する楕円曲線と
して、与えられたワイエルシュトラス型楕円曲線から変
換可能であるようなモンゴメリ型楕円曲線を用いてもよ
い。スカラー倍計算装置103がスカラー値d及びワイ
エルシュトラス型楕円曲線上の点Pから、ワイエルシュ
トラス型楕円曲線におけるアフィン座標の点として完全
な座標が与えられたスカラー倍点(xd,yd)を計算し出力
する。スカラー値d及びワイエルシュトラス型楕円曲線
上の点Pをスカラー倍計算装置103に入力すると高速
スカラー倍計算部202がそれを受け取る。高速スカラ
ー倍計算部202は受け取ったスカラー値dと与えられ
たワイエルシュトラス型楕円曲線上の点Pからワイエル
シュトラス型楕円曲線においてアフィン座標で表された
スカラー倍点dP=(xd,yd)の座標のうちxd、アフィン座
標で表されたワイエルシュトラス型楕円曲線上の点(d+
1)P=(xd+1,yd+1)の座標のうちxd+1、アフィン座標で表
されたワイエルシュトラス型楕円曲線上の点(d-1)P=(x
d-1,yd-1)の座標のうちxd-1を計算し、アフィン座標で
表された入力されたワイエルシュトラス型楕円曲線上の
点P=(x,y)と共にその情報を座標復元部203に与え
る。座標復元部203は与えられた座標の値xd、xd+1、x
d-1、x及びyよりワイエルシュトラス型楕円曲線におい
てアフィン座標で表されたスカラー倍点dP=(xd,yd)の
座標ydの復元を行なう。スカラー倍計算装置103はア
フィン座標において完全に座標が与えられたスカラー倍
点(xd,yd)を計算結果として出力する。 【0383】次に図39により、座標x、y、xd、xd+1
与えられた場合に、xd、ydを出力する座標復元部の処理
について説明する。 【0384】座標復元部203では、ワイエルシュトラ
ス型楕円曲線においてアフィン座標で表されたスカラー
倍点dP=(xd,yd)の座標のうちxd、アフィン座標で表さ
れたワイエルシュトラス型楕円曲線上の点(d+1)P=(x
d+1,yd+1)の座標のうちxd+1、スカラー倍計算装置10
3に入力されたワイエルシュトラス型楕円曲線上の点P
をアフィン座標で表した(x,y)を入力し、以下の手順で
アフィン座標において完全な座標が与えられたスカラー
倍点(xd,yd)を出力する。 【0385】ステップ3901においてxd×xが計算さ
れ、レジスタT1に格納される。ステップ3902にお
いてT1+aが計算される。ここでレジスタT1にはxdxが
格納されており、したがってxdx+aが計算される。その
結果がレジスタT1に格納される。ステップ3903に
おいてxd+xが計算され、レジスタT2に格納される。ス
テップ3904においてT1×T2が計算される。ここで
レジスタT1にはxdx+aがレジスタT2にはxd+xがそれぞ
れ格納されており、したがって(xdx+a)(xd+x)が計算さ
れる。その結果がレジスタT1に格納される。ステップ
3905においてT1+2bが計算される。ここでレジスタ
1には(xdx+a)(xd+x)が格納されており、したがって(x
dx+a)(xd+x)+2bが計算される。その結果がレジスタT1
に格納される。ステップ3906においてxd-xが計算さ
れ、レジスタT2に格納される。ステップ3907にお
いてT2の2乗が計算される。ここでレジスタT2にはxd
-xが格納されており、したがって(xd−x)2が計算され
る。その結果がレジスタT2に格納される。ステップ3
908においてT2×x2d+1が計算される。ここでレジス
タT2には(xd−x)2が格納されており、したがってx
d+1(xd−x)2が計算される。その結果がレジスタT2に格
納される。ステップ3909においてT1-T2が計算さ
れる。ここでレジスタT1には(xdx+a)(xd+x)+2bがレジ
スタT2にはxd+1(xd−x)2がそれぞれ格納されており、
したがって(xdx+a)(xd+x)+2b-xd+1(xd−x)2が計算され
る。その結果がレジスタT1に格納される。ステップ3
910において2yの逆元が計算され、レジスタT2に格
納される。ステップ3911においてT1×T2が計算さ
れる。ここでレジスタT1には(xdx+a)(xd+x)+2b-xd+1(x
d−x)2がレジスタT2には1/2yがそれぞれ格納されてお
り、したがって((xdx+a)(xd+x)+2b-xd+1(xd−x)2)/2yが
計算される。その結果がレジスタydに格納される。した
がってレジスタydには((xdx+a)(xd+x)+2b-xd+1(xd
x)2)/2yが格納されている。レジスタxdは全く更新され
ないので入力された値が保持されている。 【0386】上記手順によりスカラー倍点のy座標yd
復元される理由は以下の通りである。点(d+1)Pは点dPに
点Pを加算した点である。ワイエルシュトラス型楕円曲
線のアフィン座標における加算公式に代入すると、数2
7を得る。点P及び点dPはワイエルシュトラス型楕円曲
線上の点であるので、yd 2=xd 3+axd+b及びy2=x3+ax+bを
みたす。数27に代入し、yd 2及びy2を消去し、式を整
理すると、数70を得る。ここでxd,ydは図39の処理
によって与えられる。したがって、アフィン座標(xd,
yd)の値を全て復元していることになる。 【0387】上記手順はステップ3901、ステップ3
904、ステップ3908及びステップ3911におい
て有限体上の乗算の計算量を必要とする。また、ステッ
プ3907において有限体上の2乗算の計算量を必要と
する。さらにステップ3910において有限体上の逆元
演算の計算量を必要とする。有限体上の加算及び減算の
計算量は、有限体上の乗算の計算量、2乗算の計算量、
逆元演算の計算量と比べて比較的小さいので無視しても
よい。有限体上の乗算の計算量をM、有限体上の2乗算
の計算量をS、有限体上の逆元演算の計算量をIとする
と、上記手順は4M+S+Iの計算量を必要とする。こ
れは高速スカラー倍計算の計算量と比べてはるかに小さ
い。例えばスカラー値dが160ビットであれば、高速
スカラー倍計算の計算量はおおよそ1500M弱と見積
もられる。S=0.8M及びI=40Mと仮定すると座
標復元の計算量は44.8Mであり、高速スカラー倍計
算の計算量と比べてはるかに小さい。したがって効率的
に座標を復元できていることが示された。 【0388】尚、上記手順をとらなくても、上記等式の
右辺の値が計算できればydの値が復元できる。その場合
は一般的に復元に必要となる計算量が増大する。 【0389】次に図44により、スカラー値d及びワイ
エルシュトラス型楕円曲線上の点Pから、xd、xd+1を出
力するアルゴリズムについて説明する。 【0390】高速スカラー倍計算部202では、スカラ
ー倍計算装置103に入力されたワイエルシュトラス型
楕円曲線上の点Pを入力し、以下の手順によりワイエル
シュトラス型楕円曲線においてアフィン座標で表された
スカラー倍点dP=(xd,yd)のうちxd、アフィン座標で表
されたワイエルシュトラス型楕円曲線上の点(d+1)P=(x
d+1,yd+1)のうちxd+1を出力する。ステップ4416と
して、与えられたワイエルシュトラス型楕円曲線上の点
Pをモンゴメリ型楕円曲線上で射影座標により表された
点に変換する。この点をあらためて点Pとする。ステッ
プ4401として、変数Iに初期値1を代入する。ステ
ップ4402として、点Pの2倍点2Pを計算する。ここ
で点Pは射影座標において(x,y,1)として表し、モンゴ
メリ型楕円曲線の射影座標における2倍算の公式を用い
て2倍点2Pを計算する。ステップ4403として、スカ
ラー倍計算装置103に入力された楕円曲線上の点Pと
ステップ4402で求めた点2Pを、点の組(P,2P)として
格納する。ここで点P及び点2Pは射影座標で表されてい
る。ステップ4404として、変数Iとスカラー値dの
ビット長とが一致するかどうかを判定し、一致すればス
テップ4415へ行く。一致しなければステップ440
5へ行く。ステップ4405として、変数Iを1増加さ
せる。ステップ4406として、スカラー値のI番目の
ビットの値が0であるか1であるかを判定する。そのビ
ットの値が0であればステップ4406へ行く。そのビ
ットの値が1であればステップ4410へ行く。ステッ
プ4407として、射影座標により表された点の組(mP,
(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを行ない、
点(2m+1)Pを計算する。その後ステップ4408へ行
く。ここで、加算mP+(m+1)Pは、モンゴメリ型楕円曲線
の射影座標における加算公式を用いて計算される。ステ
ップ4408として、射影座標により表された点の組(m
P,(m+1)P)から点mPの2倍算2(mP)を行ない、点2mPを計
算する。その後ステップ4409へ行く。ここで、2倍
算2(mP)は、モンゴメリ型楕円曲線の射影座標における
2倍算の公式を用いて計算される。ステップ4409と
して、ステップ4408で求めた点2mPとステップ44
07で求めた点(2m+1)Pを点の組(2mP,(2m+1)P)とし
て、点の組(mP, (m+1)P)の代わりに格納する。その後
ステップ4404へ戻る。ここで、点2mP、点(2m+1)
P、点mP及び点(m+1)Pは全て射影座標において表されて
いる。ステップ4410として、射影座標により表され
た点の組(mP, (m+1)P)から点mPと点(m+1)Pの加算mP+
(m+1)Pを行ない、点(2m+1)Pを計算する。その後ステ
ップ4411へ行く。ここで、加算mP+(m+1)Pは、モン
ゴメリ型楕円曲線の射影座標における加算公式を用いて
計算される。ステップ4411として、射影座標により
表された点の組(mP, (m+1)P)から点(m+1)Pの2倍算2
((m+1)P)を行ない、点(2m+2)Pを計算する。その後ステ
ップ4412へ行く。ここで、2倍算2((m+1)P)は、モ
ンゴメリ型楕円曲線の射影座標における2倍算の公式を
用いて計算される。ステップ4411として、ステップ
4410で求めた点(2m+1)Pとステップ4411で求め
た点(2m+2)Pを点の組((2m+1)P, (2m+2)P)として、点の
組(mP, (m+1)P)の代わりに格納する。その後ステップ4
404へ戻る。ここで、点(2m+1)P、点(2m+2)P、点mP及
び点(m+1)Pは全て射影座標において表されている。ステ
ップ4415として、モンゴメリ型楕円曲線において射
影座標で表された点の組(mP,(m+1)P)に対して、点mP及
び点(m+1)Pをワイエルシュトラス型楕円曲線上でアフィ
ン座標で表された点に変換し、それぞれmP=(xm,ym
及び(m+1)P=(xm+1,ym+1)とあらためて置き直す。こ
こで、ym及びym+1は、モンゴメリ型楕円曲線の射影座標
における加算公式及び2倍算の公式ではY座標を求める
事ができないので、求まっていない。その後ステップ4
413へ行く。ステップ4413として、ワイエルシュ
トラス型楕円曲線上で射影座標で表された点mP=(xm,y
m)よりxmをxdとして、ワイエルシュトラス型楕円曲線
上でアフィン座標で表された点(m+1)P=(xm+1,ym+1
よりxm+1をxd+1として、出力する。また上記手順によ
り、mとスカラー値dはビット長が等しくさらにそのビ
ットのパターンも同じとなる為、等しくなる。 【0391】モンゴメリ型楕円曲線の射影座標における
加算公式の計算量は、Z1=1ととることにより3M+2
Sとなる。ここでMは有限体上の乗算の計算量、Sは有
限体上の2乗算の計算量である。モンゴメリ型楕円曲線
の射影座標における2倍算の公式の計算量は、3M+2
Sである。スカラー値のI番目のビットの値が0であれ
ば、ステップ4407において加算の計算量、ステップ
4408において2倍算の計算量が必要となる。すなわ
ち6M+4Sの計算量が必要となる。スカラー値のI番
目のビットの値が1であれば、ステップ4410におい
て加算の計算量、ステップ4411において2倍算の計
算量が必要となる。すなわち6M+4Sの計算量が必要
である。いずれの場合においても6M+4Sの計算量が
必要である。ステップ4404、ステップ4405、ス
テップ4406、ステップ4407、ステップ440
8、ステップ4409乃至はステップ4404、ステッ
プ4405、ステップ4406、ステップ4410、ス
テップ4411、ステップ4412の繰り返しの回数
は、(スカラー値dのビット長)―1回となるので、ス
テップ4402での2倍算の計算量とステップ4416
でのモンゴメリ型楕円曲線上への点への変換に必要な計
算量及びステップ4415でのワイエルシュトラス型楕
円曲線上の点への必要な計算量を考慮に入れると、全体
の計算量は(6M+4S)k+4M―2S+Iとなる。
ここでkはスカラー値dのビット長である。一般的に
は、計算量Sは、S=0.8M程度、計算量Iは、I=
40M程度と見積もられるので、全体の計算量はおおよ
そ(9.2k+42.4)Mとなる。例えばスカラー値
dが160ビット(k=160)であれば、上記手順の
アルゴリズムの計算量はおおよそ1514Mとなる。ス
カラー値dのビットあたりの計算量としてはおよそ9.
2Mとなる。A.Miyaji, T.Ono, H.Cohen, Efficient el
liptic curve exponentiation using mixed coordinate
s, Advances in Cryptology Proceedings of ASIACRYP
T'98, LNCS 1514 (1998) pp.51-65 には、ワイエルシュ
トラス型楕円曲線において、ウィンドウ法を用いてヤコ
ビアン座標を中心とした混合座標系を用いたスカラー倍
計算方法は高速なスカラー倍計算方法として記載されて
いる。この場合においては、スカラー値のビットあたり
の計算量はおおよそ10Mと見積もられる。例えばスカ
ラー値dが160ビット(k=160)であれば、この
スカラー倍計算方法の計算量はおおよそ1640Mとな
る。したがって、上記手順のアルゴリズムの方が計算量
が少なく高速といえる。 【0392】尚、高速スカラー倍計算部202において
上記手順のアルゴリズムを用いなくても、スカラー値d
及びワイエルシュトラス型楕円曲線上の点Pから、xd, x
d+1,xd=1を出力するアルゴリズムであり且つ高速であれ
ば、他のアルゴリズムを用いていもよい。 【0393】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は4M+S+Iで
あり、これは高速スカラー倍計算部202の高速スカラ
ー倍計算に必要な計算量の(9.2k+42.4)Mと
に比べてはるかに小さい。したがって、スカラー倍計算
装置103のスカラー倍計算に必要な計算量は、高速ス
カラー倍計算部の高速スカラー倍計算に必要な計算量と
ほぼ同等である。I=40M、S=0.8Mと仮定する
と、この計算量はおおよそ(9.2k+87.2)Mと
見積もることができる。例えばスカラー値dが160ビ
ット(k=160)であれば、このスカラー倍計算に必
要な計算量は1559Mとなる。楕円曲線としてワイエ
ルシュトラス型楕円曲線を使用し、ウィンドウ法を用い
てヤコビアン座標を中心とした混合座標系を用いたスカ
ラー倍計算方法を用いて、スカラー倍点をアフィン座標
として出力する場合に必要となる計算量はおおよそ16
40Mであり、これと比べて必要となる計算量は削減さ
れている。 【0394】第20の実施例は、入出力用の楕円曲線と
してワイエルシュトラス型楕円曲線を、内部の計算用に
は与えられたワイエルシュトラス型楕円曲線から変換可
能であるモンゴメリ型楕円曲線を用いたものである。ス
カラー倍計算装置103がスカラー値d及びワイエルシ
ュトラス型楕円曲線上の点Pから、ワイエルシュトラス
型楕円曲線におけるアフィン座標の点として完全な座標
が与えられたスカラー倍点(xd,yd)を計算し出力す
るものである。スカラー値d及びワイエルシュトラス型
楕円曲線上の点Pをスカラー倍計算装置103に入力す
ると高速スカラー倍計算部202がそれを受け取る。高
速スカラー倍計算部202は受け取ったスカラー値dと
与えられたワイエルシュトラス型楕円曲線上の点Pから
モンゴメリ型楕円曲線において射影座標で表されたスカ
ラー倍点dP=(Xd,Yd,Zd)の座標のうちXd及びZd、射影座
標で表されたモンゴメリ型楕円曲線上の点(d+1)P=(X
d+1,Yd+1,Zd+1) の座標のうちXd+1及びZd+1を計算す
る。また、入力されたワイエルシュトラス型楕円曲線上
の点Pを、与えられたワイエルシュトラス型楕円曲線か
ら変換可能であるモンゴメリ型楕円曲線上の点に変換
し、その点を新たにP=(x,y)とおく。高速スカラー倍計
算部202は、Xd、Zd、Xd+1、Zd+1、x及びyを座標復
元部203に与える。座標復元部203は与えられた座
標の値Xd、Zd、Xd+1、Zd+1、x及びyよりワイエルシュ
トラス型楕円曲線においてアフィン座標で表されたスカ
ラー倍点dP=(xd,yd)の座標xd及びydの復元を行な
う。スカラー倍計算装置103はアフィン座標において
完全に座標が与えられたスカラー倍点(xd,yd)を計算結
果として出力する。 【0395】次に図40により、座標x,y,Xd,Zd,Xd+1,Z
d+1が与えられた場合にxd,ydを出力する座標復元部の処
理について説明する。 【0396】座標復元部203では、モンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,
Yd,Zd)の座標うちXd及びZd、射影座標で表されたモンゴ
メリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座標
のうちXd+1及びZd+1、スカラー倍計算装置103に入力
されたモンゴメリ型楕円曲線上の点Pをアフィン座標で
表した(x,y)を入力し、以下の手順でアフィン座標おい
て完全な座標が与えられたスカラー倍点(xd,yd)を出力
する。ここで入力されたモンゴメリ型楕円曲線上の点P
のアフィン座標を(x,y)で、射影座標を(X,Y,Z)で
それぞれ表す。入力されたスカラー値をdとしてモンゴ
メリ型楕円曲線におけるスカラー倍点dPのアフィン座標
を(xd Mon,yd Mon)で、射影座標を(Xd,Yd,Zd)でそれぞれ
表す。モンゴメリ型楕円曲線上の点(d+1)Pのアフィン座
標を(xd+1,yd+1)で、射影座標を(Xd+1,Yd+1,Zd+1)でそ
れぞれ表す。 【0397】ステップ4001においてx×Zdが計算さ
れ、レジスタT1に格納される。ステップ4002にお
いてXd+T1が計算される。ここでレジスタT1にはxZd
が格納されており、したがってxZd+Xdが計算される。そ
の結果がレジスタT2に格納される。ステップ4003
においてXd-T1が計算され、ここでレジスタT1にはxZd
が格納されており、したがってxZd-Xdが計算される。そ
の結果がレジスタT3に格納される。ステップ4004
においてレジスタT3の2乗が計算される。ここでレジ
スタT3にはxZd-Xd が格納されており、したがって(Xd-
xZd)2が計算される。その結果がレジスタT3に格納され
る。ステップ4005においてT3×Xd+1が計算され
る。ここでレジスタT3には(Xd-xZd)2が格納されてお
り、したがってXd+1(Xd-xZd)2が計算される。その結果
がレジスタT3に格納される。ステップ4006におい
て2A×Zdが計算され、レジスタT1に格納される。ステ
ップ4007においてT2+T1が計算される。ここでレ
ジスタT2にはxZd+XdがレジスタT1には2AZdがそれぞれ
格納されており、したがってxZd+Xd+2AZdが計算され
る。その結果がレジスタT2に格納される。ステップ4
008においてx×Xdが計算され、レジスタT4に格納さ
れる。ステップ4009においてT4+Zdが計算される。
ここでレジスタT4にはxXdが格納されており、したがっ
てxXd+Zdが計算される。その結果がレジスタT4に格納
される。ステップ4010においてT2×T4が計算され
る。ここでレジスタT2にはxZd+Xd+2AZdがレジスタT4
にはxXd+Zdがそれぞれ格納されており、したがって(xZd
+Xd+2AZd)(xXd+Zd)が計算される。その結果がレジスタ
2に格納される。ステップ4011においてT1×Zd
計算される。ここでレジスタT1には2AZdが格納されて
おり、したがって2AZd 2が計算される。その結果がレジ
スタT1に格納される。ステップ4012においてT2-
1が計算される。ここでレジスタT2には(xZd+Xd+2A
Zd)(xXd+Zd)がここでレジスタT1には2AZd 2がそれぞれ
格納されており、したがって(xZd+Xd+2AZd)(xXd+Zd)-2A
Zd 2が計算される。その結果がレジスタT2に格納され
る。ステップ4013においてT2×Zd+1が計算され
る。ここでレジスタT2には(xZd+Xd+2AZd)(xXd+Zd)-2AZ
d 2が格納されており、したがってZd+1((xZd+Xd+2AZd)(x
Xd+Zd)-2AZd 2)が計算される。その結果がレジスタT2
格納される。ステップ4014においてT2-T3が計算
される。ここでレジスタT2にはZd+1((xZd+Xd+2AZd)(xX
d+Zd)-2AZd 2)がレジスタT3にはXd+1(Xd-xZd)2がそれぞ
れ格納されており、したがってZd+1((xZd+Xd+2AZd) (xX
d+Zd)-2AZd 2)-Xd+1(Xd-xZd)2が計算される。その結果が
レジスタT2に格納される。ステップ4015において2
B×yが計算され、レジスタT1に格納される。ステップ
4016においてT1×Zdが計算される。ここでレジス
タT1には2Byが格納されており、したがって2ByZdが計
算される。その結果がレジスタT1に格納される。ステ
ップ4017においてT1×Zd+1が計算される。ここで
レジスタT1には2ByZdが格納されており、したがって2B
yZdZd+1が計算される。その結果がレジスタT1に格納さ
れる。ステップ4018においてT1×Zdが計算され
る。ここでレジスタT1には2ByZdZd+1が格納されてお
り、したがって2ByZdZd+1Zdが計算される。その結果が
レジスタT3に格納される。ステップ4019において
3×sが計算される。ここでレジスタT3には2ByZdZd+1
Zdが格納されており、したがって2ByZdZd+1Zdsが計算さ
れる。その結果がレジスタT3に格納される。ステップ
4020においてレジスタT3の逆元が計算される。こ
こでレジスタT3には2ByZdZd+1Zdsが格納されており、
したがって1/2ByZdZd+1 Zdsが計算される。その結果が
レジスタT3に格納される。ステップ4021において
2×T3が計算される。ここでレジスタT2にはZd+1((x
Zd+Xd+2AZd) (xXd+Zd)-2AZd 2)-Xd+1(Xd-xZd)2がレジス
タT3には1/2ByZdZd+1Zdsがそれぞれ格納されており、
したがって{Zd+1((xZd+Xd+2AZd)(xXd+Zd)-2AZd 2)-X
d+1(Xd-xZd)2} /2ByZdZd+1Zdsが計算される。その結果
がレジスタydに格納される。ステップ4022において
1×Xdが計算される。ここでレジスタT1には2ByZdZ
d+1が格納されており、したがって2ByZdZd+1Xdが計算さ
れる。その結果がレジスタT1に格納される。ステップ
4023においてT1×T3が計算される。ここでレジス
タT1には2ByZdZd+1XdがレジスタT3には1/2ByZdZd+1Zd
sがそれぞれ格納されており、したがって2ByZdZd+1Xd/2
ByZdZd+1Zds(=Xd/Zds)が計算される。その結果がT1
格納される。ステップ4024においてT1+αが計算さ
れる。ここでレジスタT1にはXd/Zdsが格納されてお
り、したがって(Xd/Zds)+αが計算される。その結果がx
dに格納される。したがってレジスタxdには(Xd/Zds)+α
の値が格納されている。ydにはステップ4021におい
て{Zd+1((xZd+Xd+2AZd) (xXd+Zd)-2AZd 2)-Xd+1(Xd-xZd)
2}/2ByZdZd+1Zdsが格納され、その後更新が行なわれな
いので、その値が保持されている。その結果として、ワ
イエルシュトラス型楕円曲線におけるアフィン座標
(xd,yd)の値が全て復元されている。 【0398】上記手順により与えられたx、y、Xd
Zd、Xd+1、Zd+1からワイエルシュトラス型楕円曲線にお
けるスカラー倍点のアフィン座標(xd,yd)における値
が全て復元される理由は以下の通りである。点(d+1)Pは
点dPに点Pを加算した点である。モンゴメリ型楕円曲線
のアフィン座標における加算公式に代入すると、数38
を得る。点P及び点dPはモンゴメリ型楕円曲線上の点で
あるので、Byd Mon 2=xd Mon 3+Axd Mon 2+xd Mon及びBy2=x
3+Ax2+xをみたす。 数38に代入し、Byd Mon 2及びBy2
を消去し、式を整理すると、 【0399】 【数76】 【0400】を得る。ここでxd Mon=Xd/Zd、xd+1=X
d+1/Zd+1であり、この値を代入することにより射影座標
の値へと変換すると、次の式を得る。 【0401】 【数77】 【0402】xd Mon=Xd/Zdであるが、逆元演算の回数
を減らす目的でyd Monの分母と通分することにより、 【0403】 【数78】 【0404】となる。モンゴメリ型楕円曲線上の点とワ
イエルシュトラス型楕円曲線上の点との対応関係につい
ては、K.Okeya, H.Kurumatani, K.Sakurai, Elliptic C
urveswith the Montgomery-Form and Their Cryptograp
hic Applications, Public Key Cryptography, LNCS 17
51 (2000) pp.238-257 に記載されている。それによる
と、変換パラメタをs,αとして、yd=s-1yd Mon及びxd=s
-1xd Mon+αの関係がある。結果として数79、数80を
得る。 【0405】 【数79】 【0406】 【数80】 【0407】ここで、xd,ydは図40より与えられる。
したがって、ワイエルシュトラス型楕円曲線におけるア
フィン座標(xd,yd)の値が全て復元されていることにな
る。 【0408】上記手順はステップ4001、ステップ4
005、ステップ4006、ステップ4008、ステッ
プ4010、ステップ4011、ステップ4013、ス
テップ4015、ステップ4016、ステップ401
7、ステップ4018、ステップ4019、ステップ4
021、ステップ4022及びステップ4023におい
て有限体上の乗算の計算量を必要とする。また、ステッ
プ4004において有限体上の2乗算の計算量を必要と
する。また、ステップ4020において有限体上の逆元
演算の計算量を必要とする。有限体上の加算及び減算の
計算量は、有限体上の乗算の計算量、2乗算の計算量及
び逆元演算の計算量と比べて比較的小さいので無視して
もよい。有限体上の乗算の計算量をM、有限体上の2乗
算の計算量をS及び有限体上の逆元演算の計算量をIと
すると、上記手順は15M+S+Iの計算量を必要とす
る。これは高速スカラー倍計算の計算量と比べてはるか
に小さい。例えばスカラー値dが160ビットであれ
ば、高速スカラー倍計算の計算量はおおよそ1500M
弱と見積もられる。S=0.8M、I=40Mと仮定す
ると座標復元の計算量は55.8Mであり、高速スカラ
ー倍計算の計算量と比べてはるかに小さい。したがって
効率的に座標を復元できていることが示された。 【0409】尚、上記手順をとらなくても、上記計算式
により与えられたxd,ydの値が計算できればxd,ydの値
が復元できる。その場合においては一般的に復元に必要
となる計算量が増大する。また、モンゴメリ型楕円曲線
のパラメタであるA乃至はBの値やモンゴメリ型楕円曲線
への変換パラメタであるsを小さくとることにより、ス
テップ4006乃至はステップ4015における乗算の
計算量やステップ4019における乗算の計算量を削減
することができる。 【0410】次に図8により、スカラー値d及びワイエ
ルシュトラス型楕円曲線上の点Pから、Xd,Zd,Xd+1,Z
d+1を出力する高速スカラー倍計算部の処理について説
明する。 【0411】第20実施例の高速スカラー倍計算部20
2の高速スカラー倍計算方法として、第9実施例の高速
スカラー倍計算方法を用いる。これにより、スカラー値
d及びワイエルシュトラス型楕円曲線上の点Pから、Xd
Zd,Xd+1,Zd+1を出力するアルゴリズムとして、高速で
あるアルゴリズムが達成される。尚、高速スカラー倍計
算部202において上記アルゴリズムを用いなくても、
スカラー値d及びワイエルシュトラス型楕円曲線上の点P
から、Xd,Zd,Xd+1,Zd+1を出力するアルゴリズムであ
り且つ高速であれば、他のアルゴリズムを用いていもよ
い。 【0412】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は15M+S+I
であり、これは高速スカラー倍計算部202の高速スカ
ラー倍計算に必要な計算量の(9.2k―3.6)Mと
に比べてはるかに小さい。したがって、スカラー倍計算
装置103のスカラー倍計算に必要な計算量は、高速ス
カラー倍計算部の高速スカラー倍計算に必要な計算量と
ほぼ同等である。I=40M、S=0.8Mと仮定する
と、この計算量はおおよそ(9.2k+52.2)Mと
見積もることができる。例えばスカラー値dが160ビ
ット(k=160)であれば、このスカラー倍計算に必
要な計算量は1524Mとなる。楕円曲線としてワイエ
ルシュトラス型楕円曲線を使用し、ウィンドウ法を用い
てヤコビアン座標を中心とした混合座標系を用いたスカ
ラー倍計算方法を用いて、スカラー倍点をアフィン座標
として出力する場合に必要となる計算量はおおよそ16
40Mであり、これと比べて必要となる計算量は削減さ
れている。 【0413】第21の実施例は入出力用の楕円曲線とし
てワイエルシュトラス型楕円曲線を、内部の計算用には
与えられたワイエルシュトラス型楕円曲線から変換可能
であるモンゴメリ型楕円曲線を用いたものである。スカ
ラー倍計算装置103がスカラー値d及びワイエルシュ
トラス型楕円曲線上の点Pから、ワイエルシュトラス型
楕円曲線における射影座標の点として完全な座標が与え
られたスカラー倍点,(Xd W,Yd W,Zd W)を計算し出力する。
スカラー値d及びワイエルシュトラス型楕円曲線上の点P
をスカラー倍計算装置103に入力すると高速スカラー
倍計算部202がそれを受け取る。高速スカラー倍計算
部202は受け取ったスカラー値dと与えられたワイエ
ルシュトラス型楕円曲線上の点Pからモンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,Y
d,Zd)の座標のうちXd及びZd、射影座標で表されたモン
ゴメリ型楕円曲線上の点d(d+1)P=(Xd+1,Yd+1,Zd+1)の座
標のうちXd+1及びZd+1を計算する。また、入力されたワ
イエルシュトラス型楕円曲線上の点Pを、与えられたワ
イエルシュトラス型楕円曲線から変換可能であるモンゴ
メリ型楕円曲線上の点に変換し、その点を新たにP=(x,
y)とおく。高速スカラー倍計算部202は、Xd,Zd,X
d+1,Zd+1,x及びyを座標復元部203に与える。座標
復元部203は与えられた座標の値Xd,Zd,Xd+1
Zd+1,x及びyよりワイエルシュトラス型楕円曲線におい
て射影座標で表されたスカラー倍点dP=(Xd W,Yd W,Zd W)の
座標Xd W、Yd W及びZd Wの復元を行なう。スカラー倍計算
装置103は射影座標において完全に座標が与えられた
スカラー倍点(Xd W,Yd W,Zd W)を計算結果として出力す
る。 【0414】次に図41により、座標x,y,Xd,Zd,X
d+1,Zd+1が与えられた場合にXd W、Yd W、Zd Wを出力する
座標復元部の処理について説明する。 【0415】座標復元部203では、モンゴメリ型楕円
曲線において射影座標で表されたスカラー倍点dP=(Xd,Y
d,Zd)の座標のうちXd及びZd、射影座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(Xd+1,Yd+1,Zd+1)の座
標のうちXd+1及びZd+1、スカラー倍計算装置103に入
力されたモンゴメリ型楕円曲線上の点Pをアフィン座標
で表した(x,y)を入力し、以下の手順でワイエルシュト
ラス型楕円曲線上で射影座標おいて完全な座標が与えら
れたスカラー倍点(Xd W,Yd W,Zd W)を出力する。ここで入
力されたモンゴメリ型楕円曲線上の点Pのアフィン座標
を(x,y)で、射影座標を(X1,Y1,Z1)でそれぞれ表す。入
力されたスカラー値をdとしてモンゴメリ型楕円曲線に
おけるスカラー倍点dPのアフィン座標を(xd,yd)で、射
影座標を(Xd,Yd,Zd)でそれぞれ表す。モンゴメリ型楕円
曲線上の点(d+1)Pのアフィン座標を(xd+1,yd+1)で、射
影座標を(Xd+1,Yd+1,Zd+1)でそれぞれ表す。 【0416】ステップ4101においてx×Zdが計算さ
れ、レジスタT1に格納される。ステップ4102にお
いてXd+T1が計算される。ここでレジスタT1にはxZd
が格納されており、したがってxZd+Xdが計算される。そ
の結果がレジスタT2に格納される。ステップ4103
においてXd-T1が計算され、ここでレジスタT1にはxZd
が格納されており、したがってxZd-Xdが計算される。そ
の結果がレジスタT3に格納される。ステップ4104
においてレジスタT3の2乗が計算される。ここでレジ
スタT3にはxZd-Xd が格納されており、したがって(Xd-
xZd)2が計算される。その結果がレジスタT3に格納され
る。ステップ4105においてT3×Xd+1が計算さ
れる。ここでレジスタTには(Xd-xZd)2が格納されて
おり、したがってXd+1(Xd-xZd)2が計算される。その結
果がレジスタT3に格納される。ステップ4106にお
いて2A×Zdが計算され、レジスタT1に格納される。ス
テップ4107においてT2+T1が計算される。ここで
レジスタT2にはxZd+XdがレジスタT1には2AZdがそれぞ
れ格納されており、したがってxZd+Xd+2AZdが計算され
る。その結果がレジスタT2に格納される。ステップ4
108においてx×Xdが計算され、レジスタT4に格納さ
れる。ステップ4109においてT4+Zdが計算される。
ここでレジスタT4にはxXdが格納されており、したがっ
てxXd+Zdが計算される。その結果がレジスタT4に格納
される。ステップ4110においてT2×T4が計算され
る。ここでレジスタT2にはxZd+Xd+2AZdがレジスタT4
にはxXd+Zdがそれぞれ格納されており、したがって(xZd
+Xd+2AZd)(xXd+Zd)が計算される。その結果がレジスタ
2に格納される。ステップ4111においてT1×Zd
計算される。ここでレジスタT1には2AZdが格納されて
おり、したがって2AZd 2が計算される。その結果がレジ
スタT1に格納される。ステップ4112においてT2-
1が計算される。ここでレジスタT2には(xZd+Xd+2A
Zd)(xXd+Zd)がここでレジスタT1には2AZd 2がそれぞれ
格納されており、したがって(xZd+Xd+2AZd)(xXd+Zd)-2A
Zd 2が計算される。その結果がレジスタT2に格納され
る。ステップ4113においてT2×Zd+1が計算され
る。ここでレジスタT2には(xZd+Xd+2AZd)(xXd+Zd)-2AZ
d 2が格納されており、したがってZd+1((xZd+Xd+2AZd)(x
Xd+Zd)-2AZd 2)が計算される。その結果がレジスタT2
格納される。ステップ4114においてT2-T3が計算
される。ここでレジスタT2にはZd+1((xZd+Xd+2AZd)(xX
d+Zd)-2AZd 2)がレジスタT3にはXd+1(Xd-xZd)2がそれぞ
れ格納されており、したがってZd+1((xZd+Xd+2AZd) (xX
d+Zd)-2AZd 2)-Xd+1(Xd-xZd)2が計算される。その結果が
レジスタYd Wに格納される。ステップ4115において2
B×yが計算され、レジスタT1に格納される。ステップ
4116においてT1×Zdが計算される。ここでレジス
タT1には2Byが格納されており、したがって2ByZdが計
算される。その結果がレジスタT1に格納される。ステ
ップ4117においてT1×Zd+1が計算される。ここで
レジスタT1には2ByZdが格納されており、したがって2B
yZdZd+1が計算される。その結果がレジスタT1に格納さ
れる。ステップ4118においてT1×Zdが計算され
る。ここでレジスタT1には2ByZdZd+1が格納されてお
り、したがって2ByZdZd+1Zdが計算される。その結果が
レジスタT3に格納される。ステップ4119において
3×sが計算される。ここでレジスタT3には2ByZdZd+1
Zdが格納されており、したがって2ByZdZd+1Zdsが計算さ
れる。その結果がレジスタZd Wに格納される。ステップ
4120においてT1×Xdが計算される。ここでレジス
タT1には2ByZdZd+1が格納されており、したがって2ByZ
dZd+1Xdが計算される。その結果がレジスタT1に格納さ
れる。ステップ4121においてZd W×αが計算され
る。ここでレジスタZd Wには2ByZdZd+1Zdsが格納されて
おり、したがって2ByZdZd+1Zdsαが計算される。その結
果がT3に格納される。ステップ4122においてT1+
3が計算される。ここでレジスタT1には2ByZdZd+1Xd
がレジスタT3には2ByZdZd+1Zdsαがそれぞれ格納され
ており、したがって2ByZdZd+1Xd +2ByZdZd+1Zdsαが計
算される。その結果がXd W に格納される。したがってレ
ジスタxdには2ByZdZd+1Xd+2ByZdZd+1Zdsαの値が格納さ
れている。Yd Wにはステップ4114においてZd+1((xZd
+Xd+2AZd)(xXd+Zd)-2AZd 2)-Xd+1(Xd-xZd)2が格納され、
その後更新が行なわれないので、その値が保持されてい
る。Zd Wにはステップ4119において2ByZdZd+1Zdsが
格納され、その後更新が行なわれないので、その値が保
持されている。その結果として、ワイエルシュトラス型
楕円曲線における射影座標(Xd W,Yd W,Zd W)の値が全て復
元されている。 【0417】上記手順により与えられたx、y、Xd、Zd
Xd+1、Zd+1からワイエルシュトラス型楕円曲線における
スカラー倍点の射影座標(Xd W,Yd W,Zd W)における値が全
て復元される理由は以下の通りである。点(d+1)Pは点dP
に点Pを加算した点である。モンゴメリ型楕円曲線のア
フィン座標における加算公式に代入すると、数6を得
る。点P及び点dPはモンゴメリ型楕円曲線上の点である
ので、Byd 2=xd 3+Axd 2+xd及びBy2=x3+Ax2+xをみたす。
数6に代入し、Byd 2及びBy2を消去し、式を整理する
と、数64をを得る。ここでxd=Xd/Zd、xd+1=Xd+1/
Zd+1であり、この値を代入することにより射影座標の値
へと変換すると、数65を得る。xd=Xd/Zdであるが、
逆元演算の回数を減らす目的でydの分母と通分するこ
とにより、数66となる。その結果として、 【0418】 【数81】 【0419】とし、 【0420】 【数82】 【0421】 【数83】 【0422】とすると(X'd,Y'd,Z'd)=(Xd,Yd,Zd)とな
る。モンゴメリ型楕円曲線上の点とワイエルシュトラス
型楕円曲線上の点との対応関係については、K.Okeya,
H.Kurumatani, K.Sakurai, Elliptic Curves with the
Montgomery-Form and Their Cryptographic Applicatio
ns, Public Key Cryptography, LNCS 1751 (2000) pp.2
38-257 に記載されている。それによると、変換パラメ
タをsαとして、Yd W=Y'd、Xd W=X'd+αZd W、及びZd W=sZ'
dという関係がある。結果として次の式を得る。 【0423】 【数84】 【0424】 【数85】 【0425】 【数86】 【0426】により更新すればよい。ここで、Xd W,Yd W,
Zd Wは図41の処理により与えられている。したがっ
て、ワイエルシュトラス型楕円曲線における射影座標(X
d W,Yd W,Zd W)の値が全て復元されていることになる。 【0427】上記手順はステップ4101、ステップ4
105、ステップ4106、ステップ4108、ステッ
プ4110、ステップ4111、ステップ4113、ス
テップ4115、ステップ4116、ステップ411
7、ステップ4118、ステップ4119、ステップ4
120及びステップ4121において有限体上の乗算の
計算量を必要とする。また、ステップ4104において
有限体上の2乗算の計算量を必要とする。有限体上の加
算及び減算の計算量は、有限体上の乗算の計算量、2乗
算の計算量と比べて比較的小さいので無視してもよい。
有限体上の乗算の計算量をM、有限体上の2乗算の計算
量をSとすると、上記手順は14M+Sの計算量を必要
とする。これは高速スカラー倍計算の計算量と比べては
るかに小さい。例えばスカラー値dが160ビットであ
れば、高速スカラー倍計算の計算量はおおよそ1500
M弱と見積もられる。S=0.8Mと仮定すると座標復
元の計算量は14.8Mであり、高速スカラー倍計算の
計算量と比べてはるかに小さい。したがって効率的に座
標を復元できていることが示された。 【0428】尚、上記手順をとらなくても、上記計算式
により与えられたXd W、Yd W、Zd Wの値が計算できれば
Xd W、Yd W、Zd Wの値が復元できる。また、ワイエルシュ
トラス型楕円曲線においてアフィン座標におけるスカラ
ー倍点dPをdP=(xd W,yd W)とすると、xd W、yd Wが上記計算
式により与えられる値を取るようにXd W、Yd W、Zd Wの値
を選択し、その値が計算できればXd W、Yd W、Zd Wが復元
できる。それらの場合においては一般的に復元に必要と
なる計算量が増大する。また、モンゴメリ型楕円曲線の
パラメタであるA乃至はBの値やモンゴメリ型楕円曲線へ
の変換パラメタsの値を小さくとることにより、ステッ
プ4106、ステップ4115乃至はステップ4119
における乗算の計算量を削減することができる。 【0429】次に、スカラー値d及びワイエルシュトラ
ス型楕円曲線上の点Pから、Xd,Zd,Xd+1,Zd+1を出力
するアルゴリズムについて説明する。 【0430】第21実施例の高速スカラー倍計算部20
2の高速スカラー倍計算方法として、第9実施例の高速
スカラー倍計算方法を用いる。これにより、スカラー値
d及びワイエルシュトラス型楕円曲線上の点Pから、Xd
Zd,Xd+1,Zd+1を出力するアルゴリズムとして、高速で
あるアルゴリズムが達成される。尚、高速スカラー倍計
算部202において上記アルゴリズムを用いなくても、
スカラー値d及びワイエルシュトラス型楕円曲線上の点P
から、Xd,Zd,Xd+1,Zd+1を出力するアルゴリズムであ
り且つ高速であれば、他のアルゴリズムを用いていもよ
い。 【0431】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は14M+Sであ
り、これは高速スカラー倍計算部202の高速スカラー
倍計算に必要な計算量の(9.2k―3.6)Mとに比
べてはるかに小さい。したがって、スカラー倍計算装置
103のスカラー倍計算に必要な計算量は、高速スカラ
ー倍計算部の高速スカラー倍計算に必要な計算量とほぼ
同等である。S=0.8Mと仮定すると、この計算量は
おおよそ(9.2k+11.2)Mと見積もることがで
きる。例えばスカラー値dが160ビット(k=16
0)であれば、このスカラー倍計算に必要な計算量は1
483Mとなる。楕円曲線としてワイエルシュトラス型
楕円曲線を使用し、ウィンドウ法を用いてヤコビアン座
標を中心とした混合座標系を用いたスカラー倍計算方法
を用いて、スカラー倍点をヤコビアン座標として出力す
る場合に必要となる計算量はおおよそ1600Mであ
り、これと比べて必要となる計算量は削減されている。 【0432】第22実施例は入出力用の楕円曲線として
ワイエルシュトラス型楕円曲線を、内部の計算用には与
えられたワイエルシュトラス型楕円曲線から変換可能で
あるモンゴメリ型楕円曲線を用いたものである。スカラ
ー倍計算装置103が、スカラー値d及びワイエルシュ
トラス型楕円曲線上の点Pから、ワイエルシュトラス型
楕円曲線におけるアフィン座標の点として完全な座標が
与えられたスカラー倍点(xd W,yd W)を計算し出力する。
スカラー値d及びワイエルシュトラス型楕円曲線上の点P
をスカラー倍計算装置103に入力すると高速スカラー
倍計算部202がそれを受け取る。高速スカラー倍計算
部202は受け取ったスカラー値dと与えられたワイエ
ルシュトラス型楕円曲線上の点Pからモンゴメリ型楕円
曲線においてアフィン座標で表されたスカラー倍点dP=
(xd,yd)の座標のうちxd、アフィン座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(xd+1,yd+1)の座標の
うちxd+1を計算し、アフィン座標で表された入力された
モンゴメリ型楕円曲線上の点P=(x,y)と共にその情報を
座標復元部203に与える。座標復元部203は与えら
れた座標の値xd、xd+1、x及びyよりワイエルシュトラス
型楕円曲線においてアフィン座標で表されたスカラー倍
点dP=(xd W,yd W)の座標yd Wの復元を行なう。スカラー倍
計算装置103はワイエルシュトラス型楕円曲線上でア
フィン座標において完全に座標が与えられたスカラー倍
点(xd W,yd W)を計算結果として出力する。 【0433】次に図42により、座標x、y、xd、xd+1
与えられた場合に、xd W、yd Wを出力する座標復元部の処
理について説明する。 【0434】座標復元部203では、モンゴメリ型楕円
曲線においてアフィン座標で表されたスカラー倍点dP=
(xd,yd)の座標のうちxd、アフィン座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(xd+1,yd+1)の座標の
うちxd+1、スカラー倍計算装置103に入力されたモン
ゴメリ型楕円曲線上の点Pをアフィン座標で表した(x,y)
を入力し、以下の手順でアフィン座標において完全な座
標が与えられたスカラー倍点(xd W,yd W)を出力する。 【0435】ステップ4201においてxd×xが計算さ
れ、レジスタT1に格納される。ステップ4202にお
いてT1+1が計算される。ここでレジスタT1にはxdxが
格納されており、したがってxdx+1が計算される。その
結果がレジスタT1に格納される。ステップ4203に
おいてxd+xが計算され、レジスタT2に格納される。ス
テップ4204においてT2+2Aが計算される。ここでレ
ジスタT2にはxd+xが格納されており、したがってxd+x+
2Aが計算される。その結果がレジスタT2に格納され
る。ステップ4205においてT1×T2が計算される。
ここでレジスタT1にはxdx+1がレジスタT2にはxd+x+2A
がそれぞれ格納されており、したがって(xdx+1)(xd+x+2
A)が計算される。その結果がレジスタT1に格納され
る。ステップ4206においてT1-2Aが計算される。こ
こでレジスタT1には(xdx+1)(xd+x+2A)が格納されてお
り、したがって(xdx+1)(xd+x+2A)-2Aが計算される。そ
の結果がレジスタT1に格納される。ステップ4207
においてxd-xが計算され、レジスタT2に格納される。
ステップ4208においてT2の2乗が計算される。こ
こでレジスタT2にはxd-xが格納されており、したがっ
て(xd−x)2が計算される。その結果がレジスタT2に格
納される。ステップ4209においてT2×xd+1が計算
される。ここでレジスタT2には(xd−x)2が格納されて
おり、したがって(xd−x)2xd+1が計算される。その結果
がレジスタT2に格納される。ステップ4210におい
てT1-T2が計算される。ここでレジスタT1には(xdx+
1)(xd+x+2A)-2AがレジスタT2には(xd−x)2xd+1がそれ
ぞれ格納されており、したがって(xdx+1)(xd+x+2A)-2A-
(xd−x)2xd+1が計算される。その結果がレジスタT1
格納される。ステップ4211において2B×yが計算さ
れ、レジスタT2に格納される。ステップ4212にお
いてT2の逆元が計算される。ここでレジスタT2には2B
yが格納されており、したがって1/2Byが計算される。そ
の結果がレジスタT2に格納される。ステップ4213
においてT1×T2が計算される。ここでレジスタT1
は(xdx+1)(xd+x+2A)-2A-(xd−x)2xd+1がレジスタT2
は1/2Byがそれぞれ格納されており、したがって{(xdx+
1)(xd+x+2A)-2A-(xd−x)2xd+1}/2Byが計算される。その
結果がレジスタT1に格納される。ステップ4214にお
いてT1×(1/s)が計算される。ここでレジスタT1には
{(xdx+1)(xd+x+2A)-2A-(xd−x)2xd+1}/2Byが格納されて
おり、したがって{(xdx+1)(xd+x+2A)-2A-(xd−x)2xd+1}
/2Bysが計算される。その結果がレジスタyd Wに格納され
る。ステップ4215においてxd×(1/s)が計算され、
レジスタT1に格納される。ステップ4216においてT
1+αが計算される。ここでレジスタT1にはxd/sが格納
されており、したがって(xd/s)+αが計算される。その
結果がレジスタxd Wに格納される。したがってレジスタx
d Wには(xd/s)+αが格納されている。レジスタyd Wはステ
ップ4214において{(xdx+1)(xd+x+2A)-2A-(xd−x)2x
d+1}/2Bysが格納され、その後更新されないので、その
値が保持されている。 【0436】上記手順によりスカラー倍点のy座標yd
復元される理由は以下の通りである。点(d+1)Pは点dPに
点Pを加算した点である。モンゴメリ型楕円曲線のアフ
ィン座標における加算公式に代入すると、数6を得る。
点P及び点dPはモンゴメリ型楕円曲線上の点であるの
で、Byd 2=xd 3+Axd 2+xd及びBy2=x3+Ax2+xをみたす。 数
6に代入し、Byd 2及びBy2を消去し、式を整理すると、
数64を得る。モンゴメリ型楕円曲線上の点とワイエル
シュトラス型楕円曲線上の点との対応関係については、
K.Okeya, H.Kurumatani, K.Sakurai, Elliptic Curves
with the Montgomery-Form and Their Cryptographic A
pplications, Public Key Cryptography,LNCS 1751 (20
00) pp.238-257 に記載されている。それによると、変
換パラメタをs,αとして、yd W=s-1yd及びxd W=s-1xd
の関係がある。結果として数87、数63を得る。 【0437】 【数87】 【0438】ここで、xd W,yd Wは図42により与えられ
る。したがって、アフィン座標(xd W, yd W)の値は全て復
元されていることになる。 【0439】上記手順はステップ4201、ステップ4
205、ステップ4209、ステップ4211、ステッ
プ4213、ステップ4214及びステップ4215に
おいて有限体上の乗算の計算量を必要とする。また、ス
テップ4208において有限体上の2乗算の計算量を必
要とする。さらにステップ4212において有限体上の
逆元演算の計算量を必要とする。有限体上の加算及び減
算の計算量は、有限体上の乗算の計算量、2乗算の計算
量、逆元演算の計算量と比べて比較的小さいので無視し
てもよい。有限体上の乗算の計算量をM、有限体上の2
乗算の計算量をS、有限体上の逆元演算の計算量をIと
すると、上記手順は7M+S+Iの計算量を必要とす
る。これは高速スカラー倍計算の計算量と比べてはるか
に小さい。例えばスカラー値dが160ビットであれ
ば、高速スカラー倍計算の計算量はおおよそ1500M
弱と見積もられる。S=0.8M及びI=40Mと仮定
すると座標復元の計算量は47.8Mであり、高速スカ
ラー倍計算の計算量と比べてはるかに小さい。したがっ
て効率的に座標を復元できていることが示された。 【0440】尚、上記手順をとらなくても、上記等式の
右辺の値が計算できればyd Wの値が復元できる。その場
合は一般的に復元に必要となる計算量が増大する。ま
た、楕円曲線のパラメタであるA乃至はBやモンゴメリ型
楕円曲線への変換パラメタsの値を小さくとることによ
り、ステップ4206、ステップ4211、ステップ4
214乃至はステップ4215における乗算の計算量を
削減することができる。 【0441】次に図45により、スカラー値d及びワイ
エルシュトラス型楕円曲線上の点Pから、xd,xd+1を出
力する高速スカラー倍計算部の処理について説明する。 【0442】高速スカラー倍計算部202では、スカラ
ー倍計算装置103に入力されたワイエルシュトラス型
楕円曲線上の点Pを入力し、以下の手順によりモンゴメ
リ型楕円曲線においてアフィン座標で表されたスカラー
倍点dP=(xd,yd)のうちxd、アフィン座標で表されたモン
ゴメリ型楕円曲線上の点(d+1)P=(xd+1,yd+1)のうちxd+1
を出力する。ステップ4516として、与えられたワイ
エルシュトラス型楕円曲線上の点Pをモンゴメリ型楕円
曲線上で射影座標により表された点に変換する。この点
をあらためて点Pとする。ステップ4501として、変
数Iに初期値1を代入する。ステップ4502として、
点Pの2倍点2Pを計算する。ここで点Pは射影座標におい
て(x,y,1)として表し、モンゴメリ型楕円曲線の射影座
標における2倍算の公式を用いて2倍点2Pを計算する。
ステップ4503として、スカラー倍計算装置103に
入力された楕円曲線上の点Pとステップ4502で求め
た点2Pを、点の組(P,2P)として格納する。ここで点P及
び点2Pは射影座標で表されている。ステップ4504と
して、変数Iとスカラー値dのビット長とが一致するか
どうかを判定し、一致すればステップ4515へ行く。
一致しなければステップ4505へ行く。ステップ45
05として、変数Iを1増加させる。ステップ4506
として、スカラー値のI番目のビットの値が0であるか
1であるかを判定する。そのビットの値が0であればス
テップ4506へ行く。そのビットの値が1であればス
テップ4510へ行く。ステップ4507として、射影
座標により表された点の組(mP,(m+1)P)から点mPと点(m+
1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算する。
その後ステップ4508へ行く。ここで、加算mP+(m+1)
Pは、モンゴメリ型楕円曲線の射影座標における加算公
式を用いて計算される。ステップ4508として、射影
座標により表された点の組(mP,(m+1)P)から点mPの2倍
算2(mP)を行ない、点2mPを計算する。その後ステップ4
509へ行く。ここで、2倍算2(mP)は、モンゴメリ型
楕円曲線の射影座標における2倍算の公式を用いて計算
される。ステップ4509として、ステップ4508で
求めた点2mPとステップ4507で求めた点(2m+1)Pを
点の組(2mP,(2m+1)P)として、点の組(mP,(m+1)P)の代
わりに格納する。その後ステップ4504へ戻る。ここ
で、点2mP、点(2m+1)P、点mP及び点(m+1)Pは全て射影座
標において表されている。ステップ4510として、射
影座標により表された点の組(mP, (m+1)P)から点mPと
点(m+1)Pの加算mP+(m+1)Pを行ない、点(2m+1)Pを計算す
る。その後ステップ4511へ行く。ここで、加算mP+
(m+1)Pは、モンゴメリ型楕円曲線の射影座標における加
算公式を用いて計算される。ステップ4511として、
射影座標により表された点の組(mP,(m+1)P)から点(m+
1)Pの2倍算2((m+1)P)を行ない、点(2m+2)Pを計算す
る。その後ステップ4512へ行く。ここで、2倍算2
((m+1)P)は、モンゴメリ型楕円曲線の射影座標におけ
る2倍算の公式を用いて計算される。ステップ4511
として、ステップ4510で求めた点(2m+1)Pとステッ
プ4511で求めた点(2m+2)Pを点の組((2m+1)P, (2m+
2)P)として、点の組(mP,(m+1)Pの代わりに格納する。そ
の後ステップ4504へ戻る。ここで、点(2m+1)P、点
(2m+2)P、点mP及び点(m+1)Pは全て射影座標において表
されている。ステップ4515として、射影座標で表さ
れた点mP=(Xm,Ym,Zm)よりXm及びZmをそれぞれXd及びZd
とし、射影座標で表された点(m+1)P=(Xm+1,Ym+1,Zm+1)
よりXm+1及びZm+1をそれぞれXd+1及びZd+1とする。ここ
で、Ym及びYm+1は、モンゴメリ型楕円曲線の射影座標に
おける加算公式及び2倍算の公式ではY座標を求める事
ができないので、求まっていない。X d,Z d,X d+1,Z
d+1より、xd=XdZd+1/ZdZd+1, xd+1=ZdXd+1/ZdZd+1とし
てxd,xd+1を求める。その後ステップ4513へ行く。
ステップ4513として、xd,xd+1を出力する。上記手
順により、mとスカラー値dはビット長が等しくさらに
そのビットのパターンも同じとなる為、等しくなる。 【0443】モンゴメリ型楕円曲線の射影座標における
加算公式の計算量は、Z1=1ととることにより3M+2S
となる。ここでMは有限体上の乗算の計算量、Sは有限
体上の2乗算の計算量である。モンゴメリ型楕円曲線の
射影座標における2倍算の公式の計算量は、3M+2S
である。スカラー値のI番目のビットの値が0であれ
ば、ステップ4507において加算の計算量、ステップ
4508において2倍算の計算量が必要となる。すなわ
ち6M+4Sの計算量が必要となる。スカラー値のI番
目のビットの値が1であれば、ステップ4510におい
て加算の計算量、ステップ4511において2倍算の計
算量が必要となる。すなわち6M+4Sの計算量が必要
である。いずれの場合においても6M+4Sの計算量が
必要である。ステップ4504、ステップ4505、ス
テップ4506、ステップ4507、ステップ450
8、ステップ4509乃至はステップ4504、ステッ
プ4505、ステップ4506、ステップ4510、ス
テップ4511、ステップ4512の繰り返しの回数
は、(スカラー値dのビット長)―1回となるので、ス
テップ4502での2倍算の計算量及びステップ451
5でのアフィン座標への変換の計算量を考慮に入れる
と、全体の計算量は(6M+4S)k+3M―2S+I
となる。ここでkはスカラー値dのビット長である。一
般的には、計算量Sは、S=0.8M程度、計算量Iは
I=40M程度と見積もられるので、全体の計算量はお
およそ(9.2k+41.4)Mとなる。例えばスカラ
ー値dが160ビット(k=160)であれば、上記手
順のアルゴリズムの計算量はおおよそ1513Mとな
る。スカラー値dのビットあたりの計算量としてはおよ
そ9.2Mとなる。A.Miyaji, T.Ono, H.Cohen, Effici
ent elliptic curve exponentiation using mixed coor
dinates, Advances in Cryptology Proceedings of AS
IACRYPT'98, LNCS 1514 (1998) pp.51-65 には、ワイエ
ルシュトラス型楕円曲線において、ウィンドウ法を用い
てヤコビアン座標を中心とした混合座標系を用いたスカ
ラー倍計算方法は高速なスカラー倍計算方法として記載
されている。この場合においては、スカラー値のビット
あたりの計算量はおおよそ10Mと見積もられ、これ以
外にアフィン座標への変換の計算量が必要となる。例え
ばスカラー値dが160ビット(k=160)であれ
ば、このスカラー倍計算方法の計算量はおおよそ164
0Mとなる。したがって、上記手順のアルゴリズムの方
が計算量が少なく高速といえる。 【0444】尚、高速スカラー倍計算部202において
上記手順のアルゴリズムを用いなくても、スカラー値d
及びワイエルシュトラス型楕円曲線上の点Pから、xd,x
d+1を出力するアルゴリズムであり且つ高速であれば、
他のアルゴリズムを用いていもよい。 【0445】スカラー倍計算装置103における座標復
元部203の座標復元に必要な計算量は7M+S+Iで
あり、これは高速スカラー倍計算部202の高速スカラ
ー倍計算に必要な計算量の(9.2k+41.4)Mと
に比べてはるかに小さい。したがって、スカラー倍計算
装置103のスカラー倍計算に必要な計算量は、高速ス
カラー倍計算部の高速スカラー倍計算に必要な計算量と
ほぼ同等である。I=40M、S=0.8Mと仮定する
と、この計算量はおおよそ(9.2k+89.2)Mと
見積もることができる。例えばスカラー値dが160ビ
ット(k=160)であれば、このスカラー倍計算に必
要な計算量は1561Mとなる。楕円曲線としてワイエ
ルシュトラス型楕円曲線を使用し、ウィンドウ法を用い
てヤコビアン座標を中心とした混合座標系を用いたスカ
ラー倍計算方法を用いて、スカラー倍点をアフィン座標
として出力する場合に必要となる計算量はおおよそ16
40Mであり、これと比べて必要となる計算量は削減さ
れている。 【0446】以上、図1に示した暗号/復号処理装置を
復号化処理を行う装置として第1から第22の実施例を
説明したが、同様に暗号化処理を行う装置としても利用
できる。その場合には、既に説明したように暗号/復号
処理装置のスカラー倍計算部103は、既に説明した楕
円曲線上の点Q、乱数kによるスカラー倍点と、公開鍵
aQと乱数kによるスカラー倍点を出力する。このと
き、実施例1から22で説明したスカラー値dを乱数
k、楕円曲線上の点Pを楕円曲線上の点Q、公開鍵aQ
として同様の処理を行うことにより、それぞれのスカラ
ー倍点を求めることができる。 【0447】尚、図1に示した暗号/復号処理装置は、
暗号化、復号化の両方を行えるように示したが、暗号化
の処理のみ、あるいは復号化の処理のみを行えるように
構成してもよい。 【0448】また、第1から第22の実施例で説明した
処理については、コンピュータ読み取り可能な記憶媒体
に格納されたプログラムであってもよい。この場合は、
そのプログラムを図1の記憶部へ読み込み、処理部であ
るCPUなどの演算装置がこのプログラムに従って、処
理を行う。 【0449】図27は、図1の暗号処理システムにおけ
る秘密情報を用いた暗号処理において、スカラー倍点の
完全な座標を与え且つ高速なスカラー倍計算方法の実施
例を示す図である。図33は、図27のスカラー倍計算
方法の実施例における処理の流れを示すフローチャート
である。 【0450】図33において、図27のスカラー倍計算
装置2701は以下のようにして、スカラー値及びワイ
エルシュトラス型楕円曲線上の点から、ワイエルシュト
ラス型楕円曲線上で完全な座標が与えられたスカラー倍
点を計算し出力する。スカラー値及びワイエルシュトラ
ス型楕円曲線上の点をスカラー倍計算装置2701に入
力すると、楕円曲線変換部2704がワイエルシュトラ
ス型楕円曲線上の点をモンゴメリ型楕円曲線上の点に変
換する。(ステップ3301)。高速スカラー倍計算部
2702はスカラー倍計算装置2701に入力されたス
カラー値及び楕円曲線変換部2704が変換したモンゴ
メリ型楕円曲線上の点を受け取る(ステップ330
2)。高速スカラー倍計算部3302は受け取ったスカ
ラー値とモンゴメリ型楕円曲線上の点からモンゴメリ型
楕円曲線上のスカラー倍点の座標の一部の値を計算し
(ステップ3303)、その情報を座標復元部2703
に与える(ステップ3304)。座標復元部2703は
与えられたモンゴメリ型楕円曲線上のスカラー倍点の情
報及び楕円曲線変換部2704により変換されたモンゴ
メリ型楕円曲線上の点よりモンゴメリ型楕円曲線上のス
カラー倍点の座標の復元を行なう(ステップ330
5)。楕円曲線逆変換部2705は、座標復元部270
3により復元されたモンゴメリ型楕円曲線上のスカラー
倍点をワイエルシュトラス型楕円曲線上のスカラー倍点
に変換する(ステップ3306)。スカラー倍計算装置
2701はワイエルシュトラス型楕円曲線上で完全に座
標が与えられたスカラー倍点を計算結果として出力す
る。(ステップ3307)。 【0451】スカラー倍計算装置2701における高速
スカラー倍計算部2702及び座標復元部2703が実
行するモンゴメリ型楕円曲線上のスカラー倍計算は、上
述した第1〜第5及び第14〜第16実施例で説明した
モンゴメリ型楕円曲線上におけるスカラー倍計算方法が
そのまま適応される。したがってこのスカラー倍計算
は、スカラー倍点の完全な座標を与え且つ高速なスカラ
ー倍計算方法である。 【0452】図22は、図1の本実施形態の暗号処理シ
ステムを署名作成装置として利用する場合の構成を示
す。図1の暗号処理部102は、図22の署名作成装置
2201では署名部2202になる。図28は、図22
の署名作成装置における処理の流れを示すフローチャー
トである。図29は、図22の署名作成装置における処
理の流れを示すシーケンス図である。 【0453】図28において、署名作成装置2201は
以下のようにして、与えられたメッセージ2205から
署名が付随しているメッセージ2206を出力する。メ
ッセージ2205を署名作成装置2201に入力すると
署名部2202がそれを受け取る(ステップ280
1)。署名部2202はスカラー倍計算部2203に受
け取ったメッセージ2205に応じて楕円曲線上の点を
与える(ステップ2802)。スカラー倍計算部220
3は秘密情報格納部2204より秘密情報であるスカラ
ー値を受け取る(ステップ2803)。スカラー倍計算
部2203は受け取った楕円曲線上の点とスカラー値よ
りスカラー倍点を計算し(ステップ2804)、そのス
カラー倍点を署名部2202に送る(ステップ280
5)。署名部2202はスカラー倍計算部2203より
受け取ったスカラー倍点をもとにして署名作成処理を行
なう(ステップ2806)。その結果を署名が付随した
メッセージ2206として出力する(ステップ280
7)。 【0454】上記処理手順を図29のシーケンス図を用
いて説明する。まず、署名部2901(図22の220
2)の実行する処理について説明する。署名部2901
は、入力メッセージを受け取る。署名部2901は、入
力メッセージをもとに楕円曲線上の点を選び、スカラー
倍計算部2902に楕円曲線上の点を与え、そしてスカ
ラー倍計算部2902からスカラー倍点を受け取る。署
名部2901は、受け取ったスカラー倍点を用いて署名
作成処理を行ない、その結果を出力メッセージとして出
力する。 【0455】次にスカラー倍計算部2902(図22の
2203)の実行する処理について説明する。スカラー
倍計算部2902は、署名部2901より楕円曲線上の
点を受け取る。スカラー倍計算部2902は、秘密情報
格納部2903よりスカラー値を受け取る。スカラー倍
計算部2902は、受け取った楕円曲線上の点及びスカ
ラー値から、完全な座標を与え且つ高速なスカラー倍計
算方法により、スカラー倍点を計算し、署名部2901
にスカラー倍点を送る。 【0456】最後に秘密情報格納部2903(図22の
2204)の実行する処理について説明する。秘密情報
格納部2903は、スカラー倍計算部2902がスカラ
ー倍を計算できるように、スカラー値をスカラー倍計算
部2902に送る。 【0457】スカラー倍計算部2203が実行するスカ
ラー倍計算は、上述した第1〜第22実施例で説明した
ものがそのまま適応される。したがってこのスカラー倍
計算は、スカラー倍点の完全な座標を与え且つ高速なス
カラー倍計算方法である。そのため署名部2202にお
いて、署名作成処理を行なう際に、スカラー倍点の完全
な座標を用いることができ、その上高速に実行できる。 【0458】図23は、図1の本実施形態の暗号処理シ
ステムを復号化装置として利用する場合の構成を示す。
図1の暗号処理部102は、図23の復号化装置230
1では復号部2302になる。図30は、図23の復号
化装置における処理の流れを示すフローチャートであ
る。図31は、図23の復号化装置における処理の流れ
を示すシーケンス図である。 【0459】図30において、復号装置2301は以下
のようにして、与えられたメッセージ2305から復号
化されたメッセージ2306を出力する。メッセージ2
305を復号装置2301に入力すると復号部2302
がそれを受け取る(ステップ3001)。復号部230
2はスカラー倍計算部2303に受け取ったメッセージ
2305に応じて楕円曲線上の点を与える(ステップ3
002)。スカラー倍計算部2303は秘密情報格納部
2304より秘密情報であるスカラー値を受け取る(ス
テップ3003)。スカラー倍計算部2303は受け取
った楕円曲線上の点とスカラー値よりスカラー倍点を計
算し(ステップ3004)、そのスカラー倍点を復号部
2302に送る(ステップ3005)。復号部2302
はスカラー倍計算部2303より受け取ったスカラー倍
点をもとにして復号化処理を行なう(ステップ300
6)。その結果を復号化されたメッセージ2306とし
て出力する(ステップ3007)。 【0460】上記処理手順を図31のシーケンス図を用
いて説明する。まず、復号化部3101(図23の23
02)の実行する処理について説明する。復号化部31
01は、入力メッセージを受け取る。復号化部3101
は、入力メッセージをもとに楕円曲線上の点を選び、ス
カラー倍計算部3102に楕円曲線上の点を与え、そし
てスカラー倍計算部3102からスカラー倍点を受け取
る。復号化部3101は、受け取ったスカラー倍点を用
いて復号化処理を行ない、その結果を出力メッセージと
して出力する。 【0461】次にスカラー倍計算部3102(図23の
2303)の実行する処理について説明する。スカラー
倍計算部3102は、復号化部3101より楕円曲線上
の点を受け取る。スカラー倍計算部3102は、秘密情
報格納部3103よりスカラー値を受け取る。スカラー
倍計算部3102は、受け取った楕円曲線上の点及びス
カラー値から、完全な座標を与え且つ高速なスカラー倍
計算方法により、スカラー倍点を計算し、復号化部31
01にスカラー倍点を送る。 【0462】最後に秘密情報格納部3103(図23の
2304)の実行する処理について説明する。秘密情報
格納部3103は、スカラー倍計算部3102がスカラ
ー倍を計算できるように、スカラー値をスカラー倍計算
部3102に送る。 【0463】スカラー倍計算部2303が実行するスカ
ラー倍計算は、上述した第1〜第22実施例で説明した
ものがそのまま適応される。したがってこのスカラー倍
計算は、スカラー倍点の完全な座標を与え且つ高速なス
カラー倍計算方法である。そのため復号部2302にお
いて、復号化処理を行なう際に、スカラー倍点の完全な
座標を用いることができ、その上高速に実行できる。 【0464】 【発明の効果】以上述べたように本発明によれば、暗号
処理システムにおける秘密情報を用いた暗号処理におい
て用いられるスカラー倍計算が高速化されており、暗号
処理の高速化が計れる。また、スカラー倍点の座標を完
全に与えることができるので、全ての暗号処理を行なう
ことができる。
【図面の簡単な説明】
【図1】本発明の暗号処理システムの構成図である。
【図2】本発明の実施例におけるスカラー倍計算方法及
び装置における処理の流れを示す図である。
【図3】図1の暗号処理システムでの処理の流れを示す
シーケンス図である。
【図4】本発明の第1、第2、第14及び第15実施例
のスカラー倍計算方法における高速スカラー倍計算方法
を示すフローチャート図である。
【図5】本発明の第3及び第4実施例のスカラー倍計算
方法における高速スカラー倍計算方法を示すフローチャ
ート図である。
【図6】本発明の第5実施例のスカラー倍計算方法にお
ける高速スカラー倍計算方法を示すフローチャート図で
ある。
【図7】本発明の第6、第7及び第8実施例のスカラー
倍計算方法における高速スカラー倍計算方法を示すフロ
ーチャート図である。
【図8】本発明の第9、第10、第20及び第21実施
例のスカラー倍計算方法における高速スカラー倍計算方
法を示すフローチャート図である。
【図9】本発明の第2実施例のスカラー倍計算方法にお
ける座標復元方法を示すフローチャート図である。
【図10】本発明の第11及び第12実施例のスカラー
倍計算方法における高速スカラー倍計算方法を示すフロ
ーチャート図である。
【図11】本発明の第1実施例のスカラー倍計算方法に
おける座標復元方法を示すフローチャート図である。
【図12】本発明の第3実施例のスカラー倍計算方法に
おける座標復元方法を示すフローチャート図である。
【図13】本発明の第4実施例のスカラー倍計算方法に
おける座標復元方法を示すフローチャート図である。
【図14】本発明の第6実施例のスカラー倍計算方法に
おける座標復元方法を示すフローチャート図である。
【図15】本発明の第7実施例のスカラー倍計算方法に
おける座標復元方法を示すフローチャート図である。
【図16】本発明の第8実施例のスカラー倍計算方法に
おける座標復元方法を示すフローチャート図である。
【図17】本発明の第9実施例のスカラー倍計算方法に
おける座標復元方法を示すフローチャート図である。
【図18】本発明の第10実施例のスカラー倍計算方法
における座標復元方法を示すフローチャート図である。
【図19】本発明の第11実施例のスカラー倍計算方法
における座標復元方法を示すフローチャート図である。
【図20】本発明の第12実施例のスカラー倍計算方法
における座標復元方法を示すフローチャート図である。
【図21】本発明の第13実施例のスカラー倍計算方法
における座標復元方法を示すフローチャート図である。
【図22】本発明の実施の形態に係る署名作成装置の構
成図である。
【図23】本発明の実施の形態に係る復号化装置の構成
図である。
【図24】本発明の第13実施例のスカラー倍計算方法
における高速スカラー倍計算方法を示すフローチャート
図である。
【図25】図2のスカラー倍計算装置におけるスカラー
倍計算方法を示すフローチャートである。
【図26】本発明の第5実施例のスカラー倍計算方法に
おける座標復元方法を示すフローチャート図である。
【図27】本発明の実施例におけるスカラー倍計算方法
及び装置における処理の流れを示す図である。
【図28】図22の署名作成装置における署名作成方法
を示すフローチャートである。
【図29】図22の署名作成装置における処理の流れを
示すシーケンス図である。
【図30】図23の復号化装置における復号化方法を示
すフローチャートである。
【図31】図23の復号化装置における処理の流れを示
すシーケンス図である。
【図32】図1の暗号処理システムにおける暗号処理方
法を示すフローチャートである。
【図33】図27のスカラー倍計算装置におけるスカラ
ー倍計算方法を示すフローチャートである。
【図34】本発明の第14実施例のスカラー倍計算方法
における座標復元方法を示すフローチャート図である。
【図35】本発明の第15実施例のスカラー倍計算方法
における座標復元方法を示すフローチャート図である。
【図36】本発明の第16実施例のスカラー倍計算方法
における座標復元方法を示すフローチャート図である。
【図37】本発明の第17実施例のスカラー倍計算方法
における座標復元方法を示すフローチャート図である。
【図38】本発明の第18実施例のスカラー倍計算方法
における座標復元方法を示すフローチャート図である。
【図39】本発明の第19実施例のスカラー倍計算方法
における座標復元方法を示すフローチャート図である。
【図40】本発明の第20実施例のスカラー倍計算方法
における座標復元方法を示すフローチャート図である。
【図41】本発明の第21実施例のスカラー倍計算方法
における座標復元方法を示すフローチャート図である。
【図42】本発明の第22実施例のスカラー倍計算方法
における座標復元方法を示すフローチャート図である。
【図43】本発明の第16実施例のスカラー倍計算方法
における高速スカラー倍計算方法を示すフローチャート
図である。
【図44】本発明の第17、第18及び第19実施例の
スカラー倍計算方法における高速スカラー倍計算方法を
示すフローチャート図である。
【図45】本発明の第22実施例のスカラー倍計算方法
における高速スカラー倍計算方法を示すフローチャート
図である。
【符号の説明】
101 暗号処理システム 102 暗号処理部 103 スカラー倍計算部 104 秘密情報格納部 105 入力メッセージ 106 出力メッセージ 201 スカラー倍計算装置 202 高速スカラー倍計算部 203 座標復元部 2201 署名作成装置 2202 署名部 2203 スカラー倍計算部 2204 秘密情報格納部 2205 入力メッセージ 2206 出力メッセージ 2301 復号化装置 2302 復号部 2303 スカラー倍計算部 2304 秘密情報格納部 2305 入力メッセージ 2306 出力メッセージ 2701 スカラー倍計算装置 2702 高速スカラー倍計算部 2703 座標復元部 2704 楕円曲線変換部 2705 楕円曲線逆変換部

Claims (30)

    【特許請求の範囲】
  1. 【請求項1】楕円曲線暗号における標数5以上の有限体
    上定義された楕円曲線において、スカラー値及び楕円曲
    線上の点からスカラー倍点を計算するスカラー倍計算方
    法であって、 前記スカラー倍点の部分情報を計算するステップと、前
    記スカラー倍点の部分情報から完全な座標を復元するス
    テップとを有するスカラー倍計算方法。
  2. 【請求項2】楕円曲線暗号における標数5以上の有限体
    上定義された楕円曲線において、スカラー値及び楕円曲
    線上の点からスカラー倍点を計算するスカラー倍計算方
    法であって、 前記スカラー倍点の部分情報を計算するステップと、前
    記スカラー倍点の部分情報からアフィン座標において完
    全な座標を復元するステップとを有するスカラー倍計算
    方法。
  3. 【請求項3】楕円曲線暗号における標数5以上の有限体
    上定義された楕円曲線において、スカラー値及び楕円曲
    線上の点からスカラー倍点を計算するスカラー倍計算方
    法であって、 前記スカラー倍点の部分情報を計算するステップと、前
    記スカラー倍点の部分情報から射影座標において完全な
    座標を復元するステップとを有するスカラー倍計算方
    法。
  4. 【請求項4】楕円曲線暗号における標数5以上の有限体
    上定義されたモンゴメリ型楕円曲線において、スカラー
    値及びモンゴメリ型楕円曲線上の点からスカラー倍点を
    計算するスカラー倍計算方法であって、 前記スカラー倍点の部分情報を計算するステップと、前
    記スカラー倍点の部分情報から完全な座標を復元するス
    テップとを有するスカラー倍計算方法。
  5. 【請求項5】楕円曲線暗号における標数5以上の有限体
    上定義されたワイエルシュトラス型楕円曲線において、
    スカラー値及びワイエルシュトラス型楕円曲線上の点か
    らスカラー倍点を計算するスカラー倍計算方法であっ
    て、 前記スカラー倍点の部分情報を計算するステップと、前
    記スカラー倍点の部分情報から完全な座標を復元するス
    テップとを有するスカラー倍計算方法。
  6. 【請求項6】楕円曲線暗号における標数5以上の有限体
    上定義されたモンゴメリ型楕円曲線において、スカラー
    値及びモンゴメリ型楕円曲線上の点からスカラー倍点を
    計算するスカラー倍計算方法であって、 前記スカラー倍点の部分情報を計算するステップと、前
    記スカラー倍点の部分情報として射影座標で与えられた
    前記スカラー倍点のX座標及びZ座標並びに前記スカラ
    ー倍点と前記モンゴメリ型楕円曲線上の点を加算した点
    の射影座標におけるX座標及びZ座標を与え、アフィン
    座標において完全な座標を復元するステップとを有する
    スカラー倍計算方法。
  7. 【請求項7】楕円曲線暗号における標数5以上の有限体
    上定義されたモンゴメリ型楕円曲線において、スカラー
    値及びモンゴメリ型楕円曲線上の点からスカラー倍点を
    計算するスカラー倍計算方法であって、 前記スカラー倍点の部分情報を計算するステップと、前
    記スカラー倍点の部分情報として射影座標で与えられた
    前記スカラー倍点のX座標及びZ座標並びに前記スカラ
    ー倍点と前記モンゴメリ型楕円曲線上の点を加算した点
    の射影座標におけるX座標及びZ座標を与え、射影座標
    において完全な座標を復元するステップとを有するスカ
    ラー倍計算方法。
  8. 【請求項8】楕円曲線暗号における標数5以上の有限体
    上定義されたモンゴメリ型楕円曲線において、スカラー
    値及びモンゴメリ型楕円曲線上の点からスカラー倍点を
    計算するスカラー倍計算方法であって、 前記スカラー倍点の部分情報を計算するステップと、前
    記スカラー倍点の部分情報として射影座標で与えられた
    前記スカラー倍点のX座標及びZ座標、前記スカラー倍
    点と前記モンゴメリ型楕円曲線上の点を加算した点の射
    影座標におけるX座標及びZ座標並びに前記スカラー倍
    点と前記モンゴメリ型楕円曲線上の点を減算した点の射
    影座標におけるX座標及びZ座標を与え、アフィン座標
    において完全な座標を復元するステップとを有するスカ
    ラー倍計算方法。
  9. 【請求項9】楕円曲線暗号における標数5以上の有限体
    上定義されたモンゴメリ型楕円曲線において、スカラー
    値及びモンゴメリ型楕円曲線上の点からスカラー倍点を
    計算するスカラー倍計算方法であって、 前記スカラー倍点の部分情報を計算するステップと、前
    記スカラー倍点の部分情報として射影座標で与えられた
    前記スカラー倍点のX座標及びZ座標、前記スカラー倍
    点と前記モンゴメリ型楕円曲線上の点を加算した点の射
    影座標におけるX座標及びZ座標並びに前記スカラー倍
    点と前記モンゴメリ型楕円曲線上の点を減算した点の射
    影座標におけるX座標及びZ座標を与え、射影座標にお
    いて完全な座標を復元するステップとを有するスカラー
    倍計算方法。
  10. 【請求項10】楕円曲線暗号における標数5以上の有限
    体上定義されたモンゴメリ型楕円曲線において、スカラ
    ー値及びモンゴメリ型楕円曲線上の点からスカラー倍点
    を計算するスカラー倍計算方法であって、 前記スカラー倍点の部分情報を計算するステップと、前
    記スカラー倍点の部分情報としてアフィン座標で与えら
    れた前記スカラー倍点のx座標、前記スカラー倍点と前
    記モンゴメリ型楕円曲線上の点を加算した点のアフィン
    座標におけるx座標並びに前記スカラー倍点と前記モン
    ゴメリ型楕円曲線上の点を減算した点のアフィン座標に
    おけるx座標を与え、アフィン座標において完全な座標
    を復元するステップとを有するスカラー倍計算方法。
  11. 【請求項11】楕円曲線暗号における標数5以上の有限
    体上定義されたワイエルシュトラス型楕円曲線におい
    て、スカラー値及びワイエルシュトラス型楕円曲線上の
    点からスカラー倍点を計算するスカラー倍計算方法であ
    って、 前記スカラー倍点の部分情報を計算するステップと、前
    記スカラー倍点の部分情報として射影座標で与えられた
    前記スカラー倍点のX座標及びZ座標、前記スカラー倍
    点と前記ワイエルシュトラス型楕円曲線上の点を加算し
    た点の射影座標におけるX座標及びZ座標並びに前記ス
    カラー倍点と前記ワイエルシュトラス型楕円曲線上の点
    を減算した点の射影座標におけるX座標及びZ座標を与
    え、アフィン座標において完全な座標を復元するステッ
    プとを有するスカラー倍計算方法。
  12. 【請求項12】楕円曲線暗号における標数5以上の有限
    体上定義されたワイエルシュトラス型楕円曲線におい
    て、スカラー値及びワイエルシュトラス型楕円曲線上の
    点からスカラー倍点を計算するスカラー倍計算方法であ
    って、 前記スカラー倍点の部分情報を計算するステップと、前
    記スカラー倍点の部分情報として射影座標で与えられた
    前記スカラー倍点のX座標及びZ座標、前記スカラー倍
    点と前記ワイエルシュトラス型楕円曲線上の点を加算し
    た点の射影座標におけるX座標及びZ座標並びに前記ス
    カラー倍点と前記ワイエルシュトラス型楕円曲線上の点
    を減算した点の射影座標におけるX座標及びZ座標を与
    え、射影座標において完全な座標を復元するステップと
    を有するスカラー倍計算方法。
  13. 【請求項13】楕円曲線暗号における標数5以上の有限
    体上定義されたワイエルシュトラス型楕円曲線におい
    て、スカラー値及びワイエルシュトラス型楕円曲線上の
    点からスカラー倍点を計算するスカラー倍計算方法であ
    って、 前記スカラー倍点の部分情報を計算するステップと、前
    記スカラー倍点の部分情報としてアフィン座標で与えら
    れた前記スカラー倍点のx座標、前記スカラー倍点と前
    記ワイエルシュトラス型楕円曲線上の点を加算した点の
    アフィン座標におけるx座標並びに前記スカラー倍点と
    前記ワイエルシュトラス型楕円曲線上の点を減算した点
    のアフィン座標におけるx座標を与え、アフィン座標に
    おいて完全な座標を復元するステップとを有するスカラ
    ー倍計算方法。
  14. 【請求項14】楕円曲線暗号における標数5以上の有限
    体上定義されたワイエルシュトラス型楕円曲線におい
    て、スカラー値及びワイエルシュトラス型楕円曲線上の
    点からスカラー倍点を計算するスカラー倍計算方法であ
    って、 前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円
    曲線に変換するステップと、モンゴメリ型楕円曲線にお
    けるスカラー倍点の部分情報を計算するステップと、前
    記モンゴメリ型楕円曲線におけるスカラー倍点の部分情
    報からワイエルシュトラス型楕円曲線において完全な座
    標を復元するステップとを有するスカラー倍計算方法。
  15. 【請求項15】楕円曲線暗号における標数5以上の有限
    体上定義されたワイエルシュトラス型楕円曲線におい
    て、スカラー値及びワイエルシュトラス型楕円曲線上の
    点からスカラー倍点を計算するスカラー倍計算方法であ
    って、 前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円
    曲線に変換するステップと、モンゴメリ型楕円曲線にお
    けるスカラー倍点の部分情報を計算するステップと、前
    記モンゴメリ型楕円曲線におけるスカラー倍点の部分情
    報からモンゴメリ型楕円曲線において完全な座標を復元
    するステップと、前記モンゴメリ型楕円曲線において完
    全な座標が復元されたスカラー倍点からワイエルシュト
    ラス型楕円曲線におけるスカラー倍点を計算するステッ
    プとを有するスカラー倍計算方法。
  16. 【請求項16】楕円曲線暗号における標数5以上の有限
    体上定義されたワイエルシュトラス型楕円曲線におい
    て、スカラー値及びワイエルシュトラス型楕円曲線上の
    点からスカラー倍点を計算するスカラー倍計算方法であ
    って、 前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円
    曲線に変換するステップと、モンゴメリ型楕円曲線にお
    けるスカラー倍点の部分情報を計算するステップと、前
    記モンゴメリ型楕円曲線におけるスカラー倍点の部分情
    報としてモンゴメリ型楕円曲線において射影座標で与え
    られたスカラー倍点のX座標及びZ座標並びに前記スカ
    ラー倍点とモンゴメリ型楕円曲線上の点を加算した点の
    射影座標におけるX座標及びZ座標を与え、ワイエルシ
    ュトラス型楕円曲線においてアフィン座標における完全
    な座標を復元するステップとを有するスカラー倍計算方
    法。
  17. 【請求項17】楕円曲線暗号における標数5以上の有限
    体上定義されたワイエルシュトラス型楕円曲線におい
    て、スカラー値及びワイエルシュトラス型楕円曲線上の
    点からスカラー倍点を計算するスカラー倍計算方法であ
    って、 前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円
    曲線に変換するステップと、モンゴメリ型楕円曲線にお
    けるスカラー倍点の部分情報を計算するステップと、前
    記モンゴメリ型楕円曲線におけるスカラー倍点の部分情
    報としてモンゴメリ型楕円曲線において射影座標で与え
    られたスカラー倍点のX座標及びZ座標並びに前記スカ
    ラー倍点とモンゴメリ型楕円曲線上の点を加算した点の
    射影座標におけるX座標及びZ座標を与え、ワイエルシ
    ュトラス型楕円曲線において射影座標における完全な座
    標を復元するステップとを有するスカラー倍計算方法。
  18. 【請求項18】楕円曲線暗号における標数5以上の有限
    体上定義されたワイエルシュトラス型楕円曲線におい
    て、スカラー値及びワイエルシュトラス型楕円曲線上の
    点からスカラー倍点を計算するスカラー倍計算方法であ
    って、 前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円
    曲線に変換するステップと、モンゴメリ型楕円曲線にお
    けるスカラー倍点の部分情報を計算するステップと、前
    記モンゴメリ型楕円曲線におけるスカラー倍点の部分情
    報としてモンゴメリ型楕円曲線において射影座標で与え
    られたスカラー倍点のX座標及びZ座標、前記スカラー
    倍点とモンゴメリ型楕円曲線上の点を加算した点の射影
    座標におけるX座標及びZ座標並びに前記スカラー倍点
    とモンゴメリ型楕円曲線上の点を減算した点の射影座標
    におけるX座標及びZ座標を与え、ワイエルシュトラス
    型楕円曲線においてアフィン座標における完全な座標を
    復元するステップとを有するスカラー倍計算方法。
  19. 【請求項19】楕円曲線暗号における標数5以上の有限
    体上定義されたワイエルシュトラス型楕円曲線におい
    て、スカラー値及びワイエルシュトラス型楕円曲線上の
    点からスカラー倍点を計算するスカラー倍計算方法であ
    って、 前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円
    曲線に変換するステップと、モンゴメリ型楕円曲線にお
    けるスカラー倍点の部分情報を計算するステップと、前
    記モンゴメリ型楕円曲線におけるスカラー倍点の部分情
    報としてモンゴメリ型楕円曲線において射影座標で与え
    られたスカラー倍点のX座標及びZ座標、前記スカラー
    倍点とモンゴメリ型楕円曲線上の点を加算した点の射影
    座標におけるX座標及びZ座標並びに前記スカラー倍点
    とモンゴメリ型楕円曲線上の点を減算した点の射影座標
    におけるX座標及びZ座標を与え、ワイエルシュトラス
    型楕円曲線において射影座標における完全な座標を復元
    するステップとを有するスカラー倍計算方法。
  20. 【請求項20】楕円曲線暗号における標数5以上の有限
    体上定義されたワイエルシュトラス型楕円曲線におい
    て、スカラー値及びワイエルシュトラス型楕円曲線上の
    点からスカラー倍点を計算するスカラー倍計算方法であ
    って、 前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円
    曲線に変換するステップと、モンゴメリ型楕円曲線にお
    けるスカラー倍点の部分情報を計算するステップと、前
    記モンゴメリ型楕円曲線におけるスカラー倍点の部分情
    報としてモンゴメリ型楕円曲線においてアフィン座標で
    与えられたスカラー倍点のx座標、前記スカラー倍点と
    モンゴメリ型楕円曲線上の点を加算した点のアフィン座
    標におけるx座標並びに前記スカラー倍点とモンゴメリ
    型楕円曲線上の点を減算した点のアフィン座標における
    x座標を与え、ワイエルシュトラス型楕円曲線において
    アフィン座標における完全な座標を復元するステップと
    を有するスカラー倍計算方法。
  21. 【請求項21】第1のデータから第2のデータを生成す
    るデータ生成方法であって、請求項1から20の何れか
    一つに記載のスカラー倍計算方法を用いてスカラー倍を
    計算するステップを有することを特徴とするデータ生成
    方法。
  22. 【請求項22】データから署名データを生成する署名生
    成方法であって、請求項1から20の何れか一つに記載
    のスカラー倍計算方法を用いてスカラー倍を計算するス
    テップを有することを特徴とする署名生成方法。
  23. 【請求項23】暗号化されたデータから復号化されたデ
    ータを生成する復号化方法であって、請求項1から20
    の何れか一つに記載のスカラー倍計算方法を用いてスカ
    ラー倍を計算するステップを有することを特徴とする復
    号化方法。
  24. 【請求項24】楕円曲線暗号における標数5以上の有限
    体上定義された楕円曲線において、スカラー値及び楕円
    曲線上の点からスカラー倍点を計算するスカラー倍計算
    装置であって、 前記スカラー倍点の部分情報を計算する高速スカラー倍
    計算部と、前記スカラー倍点の部分情報から完全な座標
    を復元する座標復元部とを有し、 前記スカラー倍計算装置は、高速スカラー倍計算部によ
    り前記スカラー倍点の部分情報を計算した後、座標復元
    部により前記スカラー倍点の部分情報から完全な座標を
    復元し、スカラー倍点を計算することを特徴とする。
  25. 【請求項25】楕円曲線暗号における標数5以上の有限
    体上定義された楕円曲線において、スカラー値及びワイ
    エルシュトラス型楕円曲線上の点からスカラー倍点を計
    算するスカラー倍計算装置であって、 前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円
    曲線に変換する楕円曲線変換部と、前記スカラー倍点の
    部分情報を計算する高速スカラー倍計算部と、前記スカ
    ラー倍点の部分情報から完全な座標を復元する座標復元
    部と、モンゴメリ型楕円曲線をワイエルシュトラス型楕
    円曲線に変換する楕円曲線逆変換部とを有し、 前記スカラー倍計算装置は、楕円曲線変換部により前記
    ワイエルシュトラス型楕円曲線をモンゴメリ型楕円曲線
    に変換し、高速スカラー倍計算部によりモンゴメリ型楕
    円曲線におけるスカラー倍点の部分情報を計算し、座標
    復元部により前記モンゴメリ型楕円曲線におけるスカラ
    ー倍点の部分情報からモンゴメリ型楕円曲線において完
    全な座標を復元し、楕円曲線逆変換部によりモンゴメリ
    型楕円曲線において完全な座標が復元されたスカラー倍
    点からワイエルシュトラス型楕円曲線におけるスカラー
    倍点を計算し、スカラー倍点を計算することを特徴とす
    る。
  26. 【請求項26】請求項1から20の何れか一つに記載の
    スカラー倍計算方法に係るプログラムを格納したことを
    特徴とする記憶媒体。
  27. 【請求項27】楕円曲線暗号における標数5以上の有限
    体上定義された楕円曲線において、不完全な座標で与え
    られた楕円曲線上の点から完全な座標を復元する座標復
    元方法であって、 前記不完全な座標を持つ点及び前記不完全な座標を持つ
    点と完全な座標を持つ点との加算及び減算によって得ら
    れる点により、前記不完全な座標を持つ点の座標を計算
    するステップを有する座標復元方法。
  28. 【請求項28】楕円曲線暗号における標数5以上の有限
    体上定義された楕円曲線において、不完全な座標で与え
    られた楕円曲線上の点から完全な座標を復元する座標復
    元方法であって、 前記不完全な座標を持つ点及び前記不完全な座標を持つ
    点と完全な座標を持つ点との加算によって得られる点か
    ら、前記不完全な座標を持つ点と完全な座標を持つ点と
    の減算によって得られる点を計算するステップと、前記
    不完全な座標を持つ点の座標を計算するステップを有す
    る座標復元方法。
  29. 【請求項29】楕円曲線暗号における標数5以上の有限
    体上定義されたモンゴメリ型楕円曲線において、不完全
    な座標で与えられたモンゴメリ型楕円曲線上の点からワ
    イエルシュトラス型楕円曲線において完全な座標を復元
    する座標復元方法であって、 前記モンゴメリ型楕円曲線において不完全な座標を持つ
    点及び前記モンゴメリ型楕円曲線において不完全な座標
    を持つ点と完全な座標を持つ点との加算及び減算によっ
    て得られる点から、前記モンゴメリ型楕円曲線において
    不完全な座標を持つ点の座標を計算するステップと、前
    記完全な座標が計算されたモンゴメリ型楕円曲線の点を
    ワイエルシュトラス型楕円曲線の点に変換するステップ
    とを有する座標復元方法。
  30. 【請求項30】楕円曲線暗号における標数5以上の有限
    体上定義されたモンゴメリ型楕円曲線において、不完全
    な座標で与えられたモンゴメリ型楕円曲線上の点からワ
    イエルシュトラス型楕円曲線において完全な座標を復元
    する座標復元方法であって、 前記モンゴメリ型楕円曲線において不完全な座標を持つ
    点及び前記モンゴメリ型楕円曲線において不完全な座標
    を持つ点と完全な座標を持つ点との加算によって得られ
    る点から、前記モンゴメリ型楕円曲線において不完全な
    座標を持つ点と完全な座標を持つ点との減算によって得
    られる点を計算するステップと、前記モンゴメリ型楕円
    曲線において不完全な座標を持つ点の座標を計算するス
    テップと、前記完全な座標が計算されたモンゴメリ型楕
    円曲線の点をワイエルシュトラス型楕円曲線の点に変換
    するステップとを有する座標復元方法。
JP2000393279A 2000-11-08 2000-12-21 楕円曲線スカラー倍計算方法及び装置並びに記憶媒体 Expired - Fee Related JP3794266B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2000393279A JP3794266B2 (ja) 2000-11-08 2000-12-21 楕円曲線スカラー倍計算方法及び装置並びに記憶媒体
US10/049,264 US20030156714A1 (en) 2000-11-08 2001-11-08 Elliptic curve scalar multiplication method and device, and storage medium
EP01982747A EP1445891A4 (en) 2000-11-08 2001-11-08 METHOD AND APPARATUS FOR MULTIPLE CALCULATION AND SCALING OF ELLIPTICAL CURVE, AND STORAGE DEVICE
PCT/JP2001/009781 WO2002039664A2 (fr) 2000-11-08 2001-11-08 Procede et dispositif de calcul multiple et scalaire de courbe elliptique, et dispositif de stockage

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000-345457 2000-11-08
JP2000345457 2000-11-08
JP2000393279A JP3794266B2 (ja) 2000-11-08 2000-12-21 楕円曲線スカラー倍計算方法及び装置並びに記憶媒体

Publications (2)

Publication Number Publication Date
JP2002207424A true JP2002207424A (ja) 2002-07-26
JP3794266B2 JP3794266B2 (ja) 2006-07-05

Family

ID=26603869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000393279A Expired - Fee Related JP3794266B2 (ja) 2000-11-08 2000-12-21 楕円曲線スカラー倍計算方法及び装置並びに記憶媒体

Country Status (4)

Country Link
US (1) US20030156714A1 (ja)
EP (1) EP1445891A4 (ja)
JP (1) JP3794266B2 (ja)
WO (1) WO2002039664A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7486789B2 (en) 2002-01-28 2009-02-03 Panasonic Corporation Device and method for calculation on elliptic curve

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003304629A1 (en) * 2003-07-22 2005-02-04 Fujitsu Limited Tamper-resistant encryption using individual key
US7853790B2 (en) * 2004-03-19 2010-12-14 Microsoft Corporation Enhancement to volume license keys
US8396213B2 (en) * 2005-01-21 2013-03-12 Certicom Corp. Elliptic curve random number generation
US8913739B2 (en) * 2005-10-18 2014-12-16 Telecom Italia S.P.A. Method for scalar multiplication in elliptic curve groups over prime fields for side-channel attack resistant cryptosystems
US7499552B2 (en) * 2006-01-11 2009-03-03 International Business Machines Corporation Cipher method and system for verifying a decryption of an encrypted user data key
DE102007001070B3 (de) * 2006-09-29 2008-04-30 Siemens Ag Verfahren zum verschlüsselten Datenausgleich eines Systems mit mindestens einem Datenträger und einem Lesegerät
CN101169776B (zh) * 2006-10-27 2012-01-25 松下电器产业株式会社 提升中央处理单元运算效能的数据加密方法及加密装置
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
US8619977B2 (en) * 2008-01-15 2013-12-31 Inside Secure Representation change of a point on an elliptic curve
EP2124382A1 (de) * 2008-05-20 2009-11-25 Siemens Aktiengesellschaft Verfahren zum verschlüsselten Datenaustausch und Kommunikationssystem
US8369517B2 (en) * 2008-08-12 2013-02-05 Inside Secure Fast scalar multiplication for elliptic curve cryptosystems over prime fields
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

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307935B1 (en) * 1991-09-17 2001-10-23 Apple Computer, Inc. Method and apparatus for fast elliptic encryption with direct embedding
EP0874307B2 (en) * 1997-03-25 2016-12-28 Certicom Corp. Accelerated finite field operations on an elliptic curve
JP3796993B2 (ja) * 1998-12-22 2006-07-12 株式会社日立製作所 楕円曲線暗号実行方法及び装置並びに記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7486789B2 (en) 2002-01-28 2009-02-03 Panasonic Corporation Device and method for calculation on elliptic curve

Also Published As

Publication number Publication date
EP1445891A4 (en) 2006-07-26
JP3794266B2 (ja) 2006-07-05
EP1445891A1 (en) 2004-08-11
US20030156714A1 (en) 2003-08-21
WO2002039664A2 (fr) 2002-05-16

Similar Documents

Publication Publication Date Title
Koc et al. Montgomery multiplication in GF (2k)
US7308096B2 (en) Elliptic scalar multiplication system
US6466668B1 (en) IC card equipped with elliptical curve encryption processing facility
EP1306750A2 (en) Multi-scalar multiplication computation in elliptic curve signature verification
US7904498B2 (en) Modular multiplication processing apparatus
JP2002207424A (ja) 楕円曲線スカラー倍計算方法及び装置並びに記憶媒体
EP0952697B1 (en) Elliptic curve encryption method and system
JP2001526416A (ja) 楕円曲線暗号化演算の最適化用変換方法
CN101371285A (zh) 加密处理装置、加密处理方法及计算机程序
JP2003098962A (ja) 楕円曲線スカラー倍計算方法及び装置並びに記録媒体
US7177422B2 (en) Elliptic curve encryption processing method, elliptic curve encryption processing apparatus, and program
US20070053506A1 (en) Elliptic curve encryption processor, processing method of the processor using elliptic curves, and program for causing a computer to execute point scalar multiplication on elliptic curves
JP4423900B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
Nedjah et al. Efficient parallel modular exponentiation algorithm
CN102104482A (zh) 椭圆曲线密码体制中无穷远点在仿射坐标系下的表示方法
JP2000137436A (ja) 素体上楕円曲線上の点の演算方法およびその装置
JP4502817B2 (ja) 楕円曲線スカラー倍計算方法および装置
KR100423810B1 (ko) 타원곡선 암호화 장치
KR20020086005A (ko) 타원곡선 암호 시스템을 위한 역원 연산기
JP3626315B2 (ja) 剰余算装置、情報処理装置及び剰余算方法
JP2005316038A (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびプログラム
KR20090090881A (ko) 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체
JP2007212768A (ja) 楕円曲線暗号における事前計算テーブル作成装置
JP2004205870A (ja) 超楕円曲線スカラー倍演算方法及び装置
KR100400198B1 (ko) 공개키 암호시스템을 위한 특정 빅인티저에 대한 고속나머지 연산 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050809

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051007

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060404

LAPS Cancellation because of no payment of annual fees