JP2002533787A - 楕円曲線上での暗号操作の速度を高める方法 - Google Patents

楕円曲線上での暗号操作の速度を高める方法

Info

Publication number
JP2002533787A
JP2002533787A JP2000591498A JP2000591498A JP2002533787A JP 2002533787 A JP2002533787 A JP 2002533787A JP 2000591498 A JP2000591498 A JP 2000591498A JP 2000591498 A JP2000591498 A JP 2000591498A JP 2002533787 A JP2002533787 A JP 2002533787A
Authority
JP
Japan
Prior art keywords
point
elliptic curve
calculated
representation
integer
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
JP2000591498A
Other languages
English (en)
Other versions
JP4662577B2 (ja
Inventor
ガラント、ロバート
ランバート、ロバート、ジェイ.
ヴァンストーン、スコット、エー.
Original Assignee
サーティコム コーポレーション
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 サーティコム コーポレーション filed Critical サーティコム コーポレーション
Publication of JP2002533787A publication Critical patent/JP2002533787A/ja
Application granted granted Critical
Publication of JP4662577B2 publication Critical patent/JP4662577B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Feedback Control In General (AREA)

Abstract

(57)【要約】 本発明は、楕円曲線点Q(x, y)とスカラーkとの乗算の速度を高める方法であって、qが、楕円曲線上のすべての点Q(x, y)についてψ(Q) = λ・Qである自己準同型写像ψが存在するような素数べき乗である、有限体Fqの上の楕円曲線を選択するステップと、スカラーkのより小さな表現kiと写像ψの組合せを使用して楕円曲線点Qのスカラー倍数を算出するステップとを含む方法を提供する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
本発明は、楕円曲線を利用して暗号システムで計算を実行する方法に関する。
【0002】
【従来の技術】
公開鍵データ通信システムを使用して一対の通信者の間で情報を転送すること
ができる。交換される情報の少なくとも一部は、送信側により所定の演算によっ
て暗号化され、受信側は、送信側の演算に対して相補的な演算を実行してこの情
報を復号することができる。
【0003】 各通信者は、秘密鍵と、秘密鍵に数学的に関係づけられた公開鍵とを有する。
この関係は、公開鍵の知識から秘密鍵を特定することができないような関係であ
る。各鍵は、転送すべきデータを暗号化するために、あるいはデータが真正であ
ることを検証できるように署名を添付するために、データの転送時に使用される
【0004】 暗号化の場合、一方の通信者は、受信側の公開鍵を使用してメッセージを暗号
化し、受信側に送信する。次いで、受信側は秘密鍵を使用してメッセージを復号
する。
【0005】 一方の当事者の公開鍵を他方の当事者の秘密鍵と組み合わせることによって共
通鍵を生成することもできる。このような場合には通常、各当事者の長期鍵が破
られるのを回避するため、通信セッションごとに新しい秘密鍵およびこれに対応
する公開鍵が生成され、これらの鍵は通常、セッション鍵または短命鍵と呼ばれ
る。
【0006】 したがって、メッセージの交換および公開鍵の生成では、暗号化システムZ*p
において整数mod p(pは素数)の有限体を利用する際に指数演算を伴い、あるい
はシステムが楕円曲線を利用する際に同様な点乗算演算を伴う相当量の計算が行
われる。楕円曲線システムでは、秘密整数kを生成し、シード点Qで点乗算を実
行して短命公開鍵kQを形成することによって、短命鍵対が得られる。同様に、共
通短命セッション鍵を生成する場合は、公開鍵k3Q、すなわち、曲線上の点に他
方の通信者の秘密整数kbを乗じる必要があり、したがって、この場合も点乗算が
必要になる。
【0007】 メッセージに署名する場合にも、送信側が自分の秘密鍵をメッセージに適用す
ることを除いて、同様な手順が使用される。この場合、任意の受信側が、送信側
の公開鍵を使用してメッセージを復元し検証することができる。
【0008】 このような方式を実施するための様々なプロトコルが存在しており、そのうち
のいくつかは広く使用されている。しかし、それぞれの場合に、送信側は転送す
べき情報に署名するために計算を実行する必要があり、受信側は、署名された情
報を検証するために計算を実行する必要がある。
【0009】 典型的な実行形式において、署名成分は以下の形式を有する。 s = ae + k (mod n) 上式で、楕円曲線暗号化システムにおいて、 Pは、基本曲線上の、システムの定義済みパラメータである点であり、 kは、短期秘密鍵またはセッション鍵として選択されたランダム整数であり、 R = kPは、これに対応する短期公開鍵であり、 aは、送信側の長期秘密鍵であり、 Q = aPは、これに対応する送信側の公開鍵であり、 eは、メッセージmおよび短期公開鍵Rの、SHA-1ハッシュ関数などの安全ハッ
シュであり、および nは曲線の次数である。
【0010】 送信側は、m、s、およびRを含むメッセージを受信側に送信し、署名は、R
に対応すべき値R1 = (sP‐eQ)を算出することによって検証される。算出された
値が対応する場合、署名は検証されたことになる。
【発明が解決しようとする課題】
【0011】 検証を実行する場合、点乗算を計算し、それぞれ計算が複雑なsPおよびeQを得
る必要がある。この場合、受信側が適切な計算力を有する場合には、特に問題は
ないが、セキュアトークン・アプリケーションや「スマート・カード」アプリケ
ーションのように受信側の計算力が限られている場合、このような計算によって
検証プロセスに遅延が生じる。
【0012】 したがって、キー生成プロトコルおよび署名プロトコルは、大量の計算を必要
とする場合がある。暗号化が普及するにつれて、より高速であり、スマート・カ
ードや無線装置に見られるように限られた計算力を活用する暗号化システムを実
現する要求が高まっている。
【0013】 楕円曲線暗号化(ECC)は、この計算問題を解決する。ECCでは、鍵および証明
書のサイズを縮小することができ、それによって、必要なメモリが低減し、コス
トが著しく節約される。ECCは、コストを著しく削減することができるだけでな
く、次世代アプリケーションにおけるスマート・カードの普及を促進する。また
、ECCアルゴリズムによって鍵サイズを縮小することができるが、より大きな鍵
を用いる他のアルゴリズムと同じレベルのセキュリティが維持される。
【0014】 しかし、暗号化装置の低い生産コストを維持しながら情報転送速度を高めるた
めに、依然として、鍵に対する計算をより高速に行う必要がある。
【0015】 楕円曲線上の点の倍数を算出することは、楕円曲線暗号化で最も頻繁に実行さ
れる計算の1つである。このような計算の速度を高める1つの方法は、事前計算
された点の倍数のテーブルを使用することである。この技法は、点が事前にわか
っているときにさらに有用である。しかし、未知の点の倍数が必要になる場合が
ある(たとえば、ECDSA検証)。したがって、点乗算を容易にするシステムおよ
び方法が必要である。
【0016】
【課題を解決するための手段】
一般に、本発明は、スカラーkを、成分kiと、基本曲線で自己準同形写像から
導かれる整数λとの組合わせとして表す。
【0017】 この方法は、有限体の上に写像される複素乗算を有する楕円曲線(EC)が与え
られた場合、複素乗算写像と点Qにλを乗じることが等しくなる二次方程式の解
λが存在する、という考えに基づく方法である。λを整数とみなしてEC乗算を実
行するのと比べて、複素乗算写像を介してλQを算出する方がコストが低いこと
が多い。実際には、他のスカラー(λ以外)による点乗算が必要になる。乗算写
像を使用して点の他の倍数を算出できることも示す。
【0018】 本発明によれば、楕円曲線点Q(x, y)にスカラーkを乗じる速度を高める方法
であって、 楕円曲線上のすべての点Q(x, y)についてψ(Q) = λ・Qである自己準同形写像
ψが存在するように、有限体Fの上の楕円曲線を選択するステップと、 スカラーkのより小さな表現kiと写像ψとの組合わせを使用して楕円曲線点Q
のスカラー倍数を算出するステップとを含む方法が提供される。
【0019】 本発明の好ましい実施形態のこれらおよび他の特徴は、添付の図面が参照され
る以下の詳細な説明でより明らかになろう。
【0020】
【発明の実施の形態】
以下の説明では、同じ符号は各図面中の同じ構造物を指す。図1を参照すると
、データ通信システム10は、通信チャネル16によって接続され、送信側12および
受信側14として指定された一対の通信者を含む。各通信者12、14は、デジタル情
報を処理し、この情報を後述のようにチャネル16を通して送信する準備をするこ
とのできる暗号化プロセッサ18、20をそれぞれ含む。プロセッサ18、20は、プロ
セッサに組み込まれた集積回路で実現するか、あるいは汎用プロセッサと共に所
定のプロトコルを実施するようにデータキャリア上に符号化された命令として実
現することができる。図をわかりやすくするために、通信者12は、比較的限られ
た計算力を持つ専用プロセッサ18を有するスマート・カードの形であると仮定す
る。好ましくは、プロセッサ20は、チャネル16によってカードと通信する中央サ
ーバであり、チャネル16は無線通信チャネルである。
【0021】 暗号化プロセッサ18は、ECCの楕円曲線暗号化システムを実現し、また暗号化
プロセッサ18の機能の1つは、整数であるkと、基本楕円曲線上の点であるQと
を暗号化方式における鍵対k、kQとして使用できるように、k・Qの形の点乗算を
実行することである。上記で指摘したように、楕円曲線点とスカラー値の乗算な
どの暗号化計算はコストがかかる。
【0022】 楕円曲線点Q(x, y)のスカラー乗算の速度を高める方法は、図2に示されてお
り、全体的に符号50によって示されている。本発明のアルゴリズムは、プロセッ
サ12がたとえば、特定の種類の楕円曲線に関してメッセージに署名しメッセージ
を検証する速度を高める。この方法は、Fq(qは素数べき乗)として例示された
有限体上の楕円曲線Eに関する以下の一般的な数式が与えられ、 y2 + a1xy + a3y = x3 + a2x2 + a4x + a6 (1) 自己準同形写像ψが存在し、楕円曲線上のすべての点Q(x, y)点についてψ(Q) = λ・Qである場合、点Qと整数kとの乗算は、kのより小さな表現kiと写像ψと
の組合わせを利用することによって速度を高めることができるという考えに基づ
く方法である。写像ψは、kQに関する後の計算で使用できる群要素およびそれら
の組合わせを事前に算出することも可能にする。
【0023】 次に図2を参照すると、楕円曲線上の点乗算の速度を高める一般的な実施形態
のフローチャートが符号50で示されている。まずシステム・パラメータが選択さ
れる。最初のステップとして、ある特性を有する基本楕円曲線Eが選択される。
本発明の第1の実施形態では、一般化された楕円曲線(1)を以下の形式で表す
ことができる。 E: y2 = x3 + b mod p(Pは素数) (2)
【0024】 まず、γ∈Fp(Fpはすべての整数mod pから成るサイズpの体である)であり
、かつγ3 ≡ 1 mod p(1の立方根)である数γが存在するように係数pを求め
ることができる。たとえば、p = 7である場合、23 mod 7 = 1であるので、γ =
2である。このようなγはすべてのpに対して存在するわけではなく、したがっ
て、pの値を選択する際にはこのことを考慮しなければならない。通常、適切な
暗号強度を得るには、選択されるpの長さが少なくとも160ビットであるべきで
ある。
【0025】 曲線Eが選択された後、写像関数ψが求められる。写像関数ψ: (x,y)→(γx,
y)は、曲線上の点のある組を曲線上の点の別の組に写像するに過ぎない。楕円曲
線E上の当該のすべての点Q(x, y)点についてψ(Q) = λ・Qになるような整数λ
が存在する。この整数λは、λ3 ≡ 1 mod nであることに留意することによって
求めることができる。この場合、nは、Fpの上にある楕円曲線E上の点の数、す
なわち、E(Fp)上の点の数である。λ3 ≡ 1のλに複数の解が存在する場合があ
るが、写像関数ψを満たす解は1つだけである。γ3 mod p = 1であるので、Q
とψ(Q)の両方がEに関する数式を満足する。したがって、長い計算を実行して
λによる乗算の結果を求める代わりに、λによる乗算を非常に効率的に実行でき
るように写像関数の結果を使用して非常に効率的にこれを行うことができる。
【0026】 シード点Qが選択され、52に示すように、製造時に、システム・パラメータE
、p、Q、λ、ψ(Q)、およびγが、暗号化プロセッサ18によって使用できるよ
うにカード12に記憶される。暗号化、鍵一致、署名などの暗号化手順を実施する
には、短命秘密鍵kとして使用される整数kを選択し、対応する公開鍵kQを生成
する必要がある。
【0027】 kの値は次式ように表すことができる。 k = (k0 + k1λ) mod n (3)
【0028】 上式で、nはE(Fp)上の点の数であり、k0およびk1は整数である。この場合、
点k・Qは次式のようになる。 k・Q = (k0Q + k1λQ) mod n (4)
【0029】 いくつかの暗号演算の場合、kの値をランダムに選択することができ、このよ
うな場合、kを選択するのではなく、符号ビットを含まない長さ[log2(n)]/2の
、k0およびk1の値をランダムに選択し(すなわち、k1の長さとして、長さkの少
なくとも2分の1の長さが選択される)、次いで数式(3)を使用してkの値を
算出することが可能である。図2に54で示すようにk0、k1の値を選択した後、Me
nezesらによって「Handbook of Applied Cryptography」(HAC)に記載された「
Simultaneous Multiple Exponentiation」(アルゴリズム14.88)に類似してお
り、56に示されているアルゴリズムを使用して数式(4)の右辺を高速に計算す
ることができる。都合上、このアルゴリズムを以下に再現する。加群において、
べき乗が加算に類似しており、したがって、このアルゴリズム内の乗算を加算で
置き換えると以下の手順が得られる。
【0030】アルゴリズム1 同時多重加算 入力:群要素g0, g1, … gl-1および負でないtビット整数e0, e1, … el-1。 出力:g0e0 + g1e1 + … + gl-1el-1。 ステップ1。事前計算。iが0から(2l‐1)に対して、
【数2】 上式で、i = (il-1 . . . i0)2である。 ステップ2。A←0 ステップ3。iが1からtに達するまで、以下のことを実行する。 A←A+A、A←A+Gl ステップ4。(A)を返す。この場合、A = g0e0 + g1e1 + … + gl-1el-1
【0031】 このアルゴリズムを数式(4)に適用すると、2つの群要素g0、g1、すなわち
QおよびλQがあり、したがって、2つの整数e0、e1、すなわちk0、k1があるこ
とがわかる。このアルゴリズムでは、いくつかの値を事前に算出することができ
、最初にGiが算出される。l = 2によってGiを事前に算出した結果をテーブル1
(表1)に示す。
【表1】
【0032】 点加算:(Q + ψ(Q))を実行して点を作成した後、算出済みの要素をテーブ
ル1に記入してテーブル2(表2)を作成することが可能である。図2のステッ
プ58に示すように、これらの要素を事前に算出しメモリに記憶することができる
【表2】 GIiを求め、したがって、60に示すようにI1からItを求めないかぎり、アルゴリ
ズムのステップを実行することはできない。kiの2進表現を使用して概念行列ま
たは組合わせテーブルを作成することができる。たとえば、k0 = 30でありk1 =
10である場合、k0からk1の2進表現内の最大ビット数が5であるのでtは値5を
有する。k0からk1の2進表現で作成された概念行列をテーブル3に示す。Iiは、
第1の行が最下位ビットを含み、第2の行が次の下位ビットを含み、以下同様で
あるi番目の列に表された数によって決定される。したがって、テーブル3(表
3)から、I1 = I2 = (11) = 3、I3 = (01) = 1、I4 = 3、およびI5 = 0である
ことがわかる。
【表3】
【0033】 このアルゴリズムを完了するのに必要なすべての成分を得ることができ、62に
示すようにステップ3の反復が行われる。
【0034】 最初はA←Oであり、iは1に設定される。Ii = I1であり、これはテーブル3
から1に等しい。したがって、GI1はG1であり、これはテーブル2からQである
。したがって、I = 1の場合の反復によるAの値はO + Q = Qである。
【0035】 i = 2である次の反復の場合、Aの初期値はQであり、したがって、A← Q+Q = 2Qであり、テーブル3からIi = I2 = 3である。したがって、GI2はテーブル3
からG3に等しく、すなわち、Q + ψ(Q)である。
【0036】 したがって、A + GIiは2Q + Q +ψQ = 3Q +ψQと算出される。
【0037】 反復は、5回目の反復まで、すなわち、koq = k,λQの値、すなわちkQが算出
されるまで、テーブル4(表4)に記載されたiの値ごとに継続される。
【表4】
【0038】 各反復では、点倍加(A+A)および点加算(A+GIi)が必要である。ただし、場
合によっては、GIiの値はOであり、この場合、計算量が削減される。
【0039】 したがって、この方法では、max{log2(ki)}に等しい数の点倍加と、ほぼ同数
の点加算が必要であることがわかる。点加算の数は、ウィンドウ技法(アルゴリ
ズム14.85 HAC)および指数再符号化技法を使用して削減することができる。i
およびGiの値を事前に算出することができるので、事前に算出された適切な要素
Giをテーブル2から検索することによって点加算を容易に実行することができる
。kPが算出された後、チャネル16を介した暗号化伝送または署名伝送において通
信者12の短命公開鍵としてこのkPを使用することができる。
【0040】 簡単に言えば、暗号化やDH署名などの暗号化演算の場合、整数kが必要であり
、対応する公開鍵kQが算出される。それぞれ、長さnの2分の1の長さを有する
、値k0およびk1がランダムに選択され、適切なアルゴリズムを使用して項k0Q =
k1λQが生成される。kをこのように選択すると、この方法は、k自体をランダ
ムに生成するのと同程度に安全であると思われる。もちろん、効率を向上するた
めにより少ないビット数のkiを選択することが可能である。
【0041】 上記の技法において、k = k0 + k1λを書き込み、同時に組み合わせる方法に
よって、同時多重加算アルゴリズムの速度が高められる。k = k0 + k1λを書き
込む技法は、スカラー乗算技法、すなわち、ワインディング、組合わせなどと共
に使用することもでき有利である。
【0042】 いくつかの写像ψでは、3つ以上の下位要素k(sub k)を使用することも可
能である。いくつかの写像ψでは、k = k0 + k1λ + k2λ2を書き込み、同時多
重加算アルゴリズムを適用することによってkの値を算出することができる。
【0043】 本発明の第2の実施形態では、一般化された楕円曲線式(1)の異なる形式、
すなわち、 y2 = (x3 ‐ ax) mod p (5) が使用される。この場合も、pは少なくとも160ビットを有する素数である。こ
の種の曲線の場合、γに必要な特性が異なる。この場合、γ2 = ‐1 mod pにな
るような値を求める必要がある。γの特性を変更するには、異なる写像関数ψ’
を使用する必要がある。この実施形態では、写像は形式ψ’:(x, y) → (‐x,
γy)をとる。(x, y)が曲線上にある場合はψ’(x, y)も曲線上にある。この場合
、λ4 ≡ 1 mod n(nはこの場合も、E(Fp)上の点である)、したがってλを算
出することができる。写像ψ’(Q) = λ・Qは前述のように実行され、この場合
も、この曲線に対してλによる乗算を非常に効率的に行うことができる。この実
施形態のkに関する数式は、第1の実施形態と同じであり、次式によって表され
る。 k = (k0 + k1λ) mod n (6) この数式は、前の実施形態と同じであり、2つの群要素のみを有する。したがっ
て、アルゴリズム1の群要素QおよびQ+ψ’(Q)を使用して点k・Qを算出するこ
とができる。この計算では、max{log2(ki)}に等しい数の点倍加と、同様な数の
点加算が必要である。前述のように、ウィンドウ技法および指数再符号化技法を
使用して点加算の数を削減することができる。
【0044】 この方法は、効率的に算出できる自己準同形写像ψが存在するかぎり、他の楕
円曲線にも適用することができる。
【0045】 上記の実施形態は、kをランダムに選択することができ、したがって、k0およ
びk1を選択することができるものと仮定し、kを求めている。kを選択すること
が可能な暗号化プロトコルの場合、まず、k = (k0 + k1λ) mod nになるように
kの所与の値から所望の「短い」形式のk0、k1を求める必要がある。場合によっ
ては、3つ以上のkを使用することができ有利である。
【0046】 上述の実施形態でわかるように、事前に点がわかっているときは、テーブルを
作成して乗算の速度を高めることができる。しかし、未知の点の倍数が必要にな
る場合があり(たとえば、これはECDSA検証で起こる可能性がある)、その場合
、与えられたkの値をとり、次いでkiの適切な表現を決定する必要がある。
【0047】 したがって、第3の実施形態では、システム・パラメータおよび値kが与えら
れ、点Q、必要な倍数k、および複素乗算倍数λが既知である。所定のkの値か
ら「短い」kiを求める必要がある。これを行う方法を以下に説明し、図3のフロ
ーチャートに示す。(kを必要としない)事前計算として、aiおよびbiがnより
も小さな数になるような2つの関係を算出する。 a0 + b0λ = 0 mod n a1 + b1λ = 0 mod n aiおよびbiはできるだけ小さいことが好ましいが、本発明の方法は、aiおよびbi が最小限でないときでも有利である。aiおよびbiが共に小さな対aiおよびbiは、
小さなユークリッド長を有するベクトルuiとみなすことができる。通常、後述の
方法では、最初のkのサイズの2分の1の表現を有するk0およびk1が生成される
【0048】 本実施形態では、事前に算出された短いベクトル表現を使用して以下の形式の
数式を得ることによって、kQを効率的に算出することができる。 k0Q + λk1Q
【0049】 これは、事前に算出されたベクトルを使用して、kの知識を必要としない分数
f0およびf1を導くことによって行われる。ベクトルzは、分数f0およびf1とkを
組み合わせることによって生成される。ベクトルzを使用して、v’ = (v0’, v 1 ’)である第2のベクトルv’が算出され、kQの値が、
【数3】 として算出される。この解を得る方法を以下に詳しく説明する。
【0050】 小さなaiおよびbiを作成する場合、L3、すなわち、短い基底ベクトルが直接得
られる格子基底削減アルゴリズム(HAC、118ページ)を利用することが可能であ
る。しかし、この好ましい実施形態では、簡単な拡張ユークリッド・アルゴリズ
ムが対(n, λ)に対して使用される。(n, λ)に対する拡張ユークリッド・ア
ルゴリズムにより、iに応じてriの表現(たとえば、ビット長)が小さくなり、
ciおよびdiの表現が大きくなる線形組合わせcin + diλ = riが作成される。
【0051】 拡張ユークリッド・アルゴリズムを使用した結果として得られた|(di, ri)|の
2つの最小値が保存される。これらのベクトルのサイズが、平方ユークリッド基
準|(di, ri)| = di 2 + ri 2を用いて測定される。これらの最小関係の項は、 および として示され、通常、アルゴリズムの中央で得られる。最小関係が保持されない
場合でも、この方法は、部分最適関係により、依然として点倍数の計算において
有利である。
【0052】 aiおよびbiの値は、すべて事前に算出することのできる および を定義することによって作成することができる。
【0053】 次のタスクは、倍数kの小さな表現を求めることである。
【0054】 a0、b0およびa1, b1の計算が与えられた場合、u0 = (a0, b0)でありu1 = (a1,
b1)であるベクトルu0, u1を指定することが可能である。これらのベクトルはai + biλ = 0 (mod n)を満たす。群要素Qにベクトルv = (v0, v1)を乗じること
は(v0 + v1λ)Qとして定義される。ai + biλ = 0 (mod n)であるので、任意の
群要素Rについてu0R = u1R = 0が成立する。したがって、任意の整数z0およびz 1 のの場合、任意の群要素Rについてv’R = (v ‐ z0u0 ‐ z1u1)Rが成立する。
【0055】 整数z0およびz1としては、ベクトルv’ = v ‐ z0u0 ‐ z1u1ができるだけ小
さな成分を有するような整数が選択される。この場合も、この方法は、v’の成
分が小さい場合に利点を有し、該成分が必ずしも最小限でない場合でも利点を有
する。
【0056】 適切なz0およびz1は、vの基底を正規直交基底{u0, u1}に変換することによっ
て算出される。基底間の変換では行列乗算が行われる。ベクトルv = (v0, v1)を
{u0, u1}基底から標準基底{(1, 0), (0, 1)}に変換する場合、次式が成立する。
【数4】 他方の方向、すなわち、正規直交基底{(1, 0), (0, 1)}から(u0, u1)基底に変換
する場合、乗算は単にMの逆数によって行われる。
【数5】
【0057】 ベクトルv = (k, 0)がゼロ成分を有するので、逆数(M)の下の行は必要とさ
れず、したがって、{u0, u1}に変換する場合に必要なのは次式の分数だけである
【数6】 および
【数7】
【0058】 分数f0およびf1の演算を乗算のみで行うことができるように、これらの分数を
十分な精度に事前に算出しておくことができる。これらの分数をもたらす計算が
kに依存せず、したがって、楕円曲線がシステム・パラメータとして選択される
際にこれらの分数を1度算出することができ、各kごとに再計算する必要はない
。同様に、ベクトルv、u0、およびu1を事前に算出し記憶することができる。
【0059】 kの値が選択されるか、あるいは求められた後、まず、zが(z0, z1) = (roun
d(kf0), round(kf1))として定義されるz = (z0, z1)を計算することによってkQ
の値を算出することができる。zの近傍の他のベクトルも有用であり、したがっ
て、丸めを床関数または天井関数、あるいは何らかの他の近似で置き換えること
ができる。
【0060】 適切なzが求められた後、v’ = (v0’, v1’) = v ‐ z0u0 ‐ z1u1によって
v(k, 0)の効率的な等価物が算出される。「効率的な等価物」の句は、v’P = vP
およびv’が小さな係数を有するようなベクトルv’を意味する。この場合、値kQ
はv0’Q + v1’λQとして算出される。この値は、上述のように同時点加算を使
用して算出することができ、上記で説明し、かつH.A.C.14.7の627ページに記載
されているように非隣接形式(NAF)再符号化を使用することによってより高い
効率を得ることができる。したがって、kが所定の値である場合でも、k0および
k1の値を算出し写像関数と共に使用してkQの値、したがって、鍵対k、kQを得る
ことができる。
【0061】 kを3つの部分k = k0 + k1λ + k2λ2に分離する場合、L3行削減によって
、次式のような小さなベクトルを得ることができる。
【数8】
【0062】 二次元の場合と同様に小ベクトル等価物(三次元行)を得ることができる。
【0063】 これらの方法を使用してk・Qの値を求めると、暗号化プロセッサ12によって必
要とされる処理能力が大幅に低減される。また、このような反復計算が行われる
速度が高められ、それによって、情報を転送するための時間が短縮される。
【0064】 当然のことながら、スカラー倍数kが短縮成分k = k0 + k1λ + k2λ2 + . .
. km-1λm-1で表された後、同時多重加算アルゴリズムの代わりに、あるいはこ
のアルゴリズムと共に、効率的な楕円曲線スカラー乗算を行うための他の方法を
使用することができる。このような方法には、ウィンドウ技法(固定およびスラ
イド)、組合わせ技法、ビット再符号化技法、およびこれらの技法の組合わせが
含まれる。
【0065】 特に有益なある技法では、乗算の一成分、たとえばk0に関して作成されたテー
ブルを他の成分k1などに再使用することができる。これは、必要に応じて写像γ
を適用することにより、算出されたテーブル要素を変換することによって行われ
る。
【0066】 他の例として、kをk = k0 + k1λ + k2λ2として再設定することができ、k
がmビットを有し、kiが約m/3ビットを有する実施形態について以下に説明する
【0067】 成分kiは、求められた後、2進表現から、より少ない非ゼロ・ビットを有する
符号付き2進表現に再符号化することができる。この再符号化は、表現ki内のあ
らゆる1ビットまたは‐1ビットが符号付き2進文字列内で他の非ゼロに隣接し
ないような非隣接形式(NAF)をとることができる。
【0068】 各kiが再符号化された後、kiλiPの計算を助けるためにテーブルを作成するこ
とができる。
【0069】 NAFウィンドウ・テーブルは、λiPのある短ビット長倍数を事前に算出するた
めのテーブルである。このウィンドウの幅によってテーブルのサイズが決定され
る。kiが、隣接する非ゼロを有さないように再符号化されているので、奇数ウィ
ンドウ幅が適切である。3ビット幅NAFウィンドウは以下のものを含む。
【数9】
【0070】 再符号化kiは、このようなウィンドウを連結し、必要に応じてゼロを充填する
ことによって作成される(H.A.C.、616ページ)。
【0071】 あらゆる非ゼロ・ビットではなく、発生するあらゆるウィンドウごとにのみEC
点を加算または減算するだけでよいので、このテーブルを使用することによって
必要な加算数を削減することができる。
【0072】 したがって、まず、この技法はk0Pの計算に適用される。
【0073】 k0Pの計算のために作成されたテーブルは、演算子γを使用してテーブル要素
にψ写像が写像される場合にkiλP計算に適用することができる。同様に、k0P用
に作成されたテーブルを使用するが、テーブル要素にγ2を写像することによっ
て、k2λ2Pの速度を高めることができる。
【0074】 スライド・ウィンドウ技法を該成分に適用する際に、実行する必要があるのは
1組の倍加だけである。
【0075】 好ましい実施形態のこの例を示すために、以下の例を使用する。
【0076】 k = [101101011101]2 + [111010101101]2λである場合、 以下の再符号化を行う。 k = [10-100-10-100-101] + [1000-10-10-10-101]λ = k’0 + k’1λ
【0077】 1・P、[10-1]・P、[101]・Pを含む、Pに関する3ビット・ウィンドウ・テー
ブルが事前に算出される。この場合、2回のEC加算および2回のEC倍加が必要で
ある。
【0078】 この後、テーブルの要素を加算/減算することによって、kPを以下のように算
出することができる。 kP = [10-100-10-100-101]P + [1000-10-10-10-101]・λP これは、累算器Aを使用して以下のように行うことができる。 A←0 ;初期設定 A += ψ(1・P) ;k0’の上位ビットを消費する。 A ← 2A ;Aを倍加する。 A ← 2A A ← [10-1]P ;k0’の上位3ビットを消費する。 A ← 24A A‐= [101]ψP ;k1’の3ビット・ウィンドウを消費する。 A ← 2A ;Aを倍加する。 A‐= [101]P ;k1’の3ビットを消費する。 A ← 24A A‐= [101]ψP ;k1’の3ビットを消費する。 A ← 22A A‐= [10-1]P ;k0’の最後のビットを消費する。 A + =ψP ;kPを生成する。
【0079】 簡単に言えば、前述の技法は以下のとおりである。楕円曲線Eおよび自己準同
形写像ψが与えられた場合、すべての点Q∈EについてλQ = ψ(Q)になるような
対応する整数λが存在する。整数mを選択し、同等な数mの「短基底ベクトル」
b1, b2, . . . , bmを算出する。このような基底ベクトルはそれぞれ整数に対応
し、そのような整数はそれぞれ、点の数n = #E(Fp m)(すなわち、点の数)で除
することができる。次に、整数k(0 < k < n)が与えられた場合、kiとして「
短い」ベクトルが選択されるk = Σki・λiと書くことができる。これは、b1, b 2 , …, bmによって生成された格子内の(kを表す)あるベクトルと近傍のベク
トルとの差を求めることによって行われる。
【0080】 以下の実施形態では、複合体の上に画定された楕円曲線に前述の技法(自己準
同形写像および基底変換および「Shamir’s trick」)を適用することについて
明白に説明する。特に、pが奇素数である曲線E(Fp m)への適用について説明する
。以下の実施形態ではこのような曲線に対する技法を例示する。
【0081】 この技法について、写像ψがフロベニウス写像ψ(x, y) = (xp, yp)であり、A
, B∈FpであるE’A,B(Fp m)が使用される場合において説明する。
【0082】 この場合、フロベニウス写像がψ2 ‐ tψ + p = 0を満たし、t = p + 1‐#E(
Fp m)であることがわかっている。
【0083】 したがって、λ2 ‐ tλ + p = 0 mod nであり、またλ2+i ‐ tλ1+i + pλi = 0 mod nである。
【0084】 以下のベクトルが、ベクトル空間Qn空間のm個の「短」基底ベクトルで構成さ
れている。
【数10】 したがって、このような曲線に対するk・Qを計算する場合、ベクトルb1, b2, …
bmおよび前述の技法を使用することができる。
【0085】 上記の実施形態では、k, λQをψ(kQ)から得ることができ、写像が加算よりも
効率的であることが理解されよう。
【0086】 本発明を特定の実施形態を参照して説明したが、当業者には、添付の請求の範
囲に記載された本発明の趣旨および範囲から逸脱しない本発明の様々な修正形態
が明らかになろう。
【図面の簡単な説明】
【図1】 通信システムの概略図である。
【図2】 本発明の第1の実施形態を実施する各ステップを示すフローチャ
ートである。
【図3】 図2の方法を実施するために必要なパラメータを与えるステップ
を示すフローチャートである。
【手続補正書】
【提出日】平成13年8月10日(2001.8.10)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】発明の詳細な説明
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【0001】
【発明の属する技術分野】 本発明は、楕円曲線を利用して暗号システムで計算を実行する方法に関する。
【0002】
【従来の技術】 公開鍵データ通信システムを使用して一対の通信者の間で情報を転送すること
ができる。交換される情報の少なくとも一部は、送信側により所定の演算によっ
て暗号化され、受信側は、送信側の演算に対して相補的な演算を実行してこの情
報を復号することができる。
【0003】 各通信者は、秘密鍵と、秘密鍵に数学的に関係づけられた公開鍵とを有する。
この関係は、公開鍵の知識から秘密鍵を特定することができないような関係であ
る。各鍵は、転送すべきデータを暗号化するために、あるいはデータが真正であ
ることを検証できるように署名を添付するために、データの転送時に使用される
【0004】 暗号化の場合、一方の通信者は、受信側の公開鍵を使用してメッセージを暗号
化し、受信側に送信する。次いで、受信側は秘密鍵を使用してメッセージを復号
する。
【0005】 一方の当事者の公開鍵を他方の当事者の秘密鍵と組み合わせることによって共
通鍵を生成することもできる。このような場合には通常、各当事者の長期鍵が破
られるのを回避するため、通信セッションごとに新しい秘密鍵およびこれに対応
する公開鍵が生成され、これらの鍵は通常、セッション鍵または短命鍵と呼ばれ
る。
【0006】 したがって、メッセージの交換および公開鍵の生成では、暗号化システムZ*p
において整数mod p(pは素数)の有限体を利用する際に指数演算を伴い、あるい
はシステムが楕円曲線を利用する際に同様な点乗算演算を伴う相当量の計算が行
われる。楕円曲線システムでは、秘密整数kを生成し、シード点Qで点乗算を実
行して短命公開鍵kQを形成することによって、短命鍵対が得られる。同様に、共
通短命セッション鍵を生成する場合は、公開鍵k3Q、すなわち、曲線上の点に他
方の通信者の秘密整数kbを乗じる必要があり、したがって、この場合も点乗算が
必要になる。
【0007】 メッセージに署名する場合にも、送信側が自分の秘密鍵をメッセージに適用す
ることを除いて、同様な手順が使用される。この場合、任意の受信側が、送信側
の公開鍵を使用してメッセージを復元し検証することができる。
【0008】 このような方式を実施するための様々なプロトコルが存在しており、そのうち
のいくつかは広く使用されている。しかし、それぞれの場合に、送信側は転送す
べき情報に署名するために計算を実行する必要があり、受信側は、署名された情
報を検証するために計算を実行する必要がある。
【0009】 典型的な実行形式において、署名成分は以下の形式を有する。 s = ae + k (mod n) 上式で、楕円曲線暗号化システムにおいて、 Pは、基本曲線上の、システムの定義済みパラメータである点であり、 kは、短期秘密鍵またはセッション鍵として選択されたランダム整数であり、 R = kPは、これに対応する短期公開鍵であり、 aは、送信側の長期秘密鍵であり、 Q = aPは、これに対応する送信側の公開鍵であり、 eは、メッセージmおよび短期公開鍵Rの、SHA-1ハッシュ関数などの安全ハッ
シュであり、および nは曲線の次数である。
【0010】 送信側は、m、s、およびRを含むメッセージを受信側に送信し、署名は、R
に対応すべき値R1 = (sP‐eQ)を算出することによって検証される。算出された
値が対応する場合、署名は検証されたことになる。
【発明が解決しようとする課題】
【0011】 検証を実行する場合、点乗算を計算し、それぞれ計算が複雑なsPおよびeQを得
る必要がある。この場合、受信側が適切な計算力を有する場合には、特に問題は
ないが、セキュアトークン・アプリケーションや「スマート・カード」アプリケ
ーションのように受信側の計算力が限られている場合、このような計算によって
検証プロセスに遅延が生じる。
【0012】 したがって、キー生成プロトコルおよび署名プロトコルは、大量の計算を必要
とする場合がある。暗号化が普及するにつれて、より高速であり、スマート・カ
ードや無線装置に見られるように限られた計算力を活用する暗号化システムを実
現する要求が高まっている。
【0013】 楕円曲線暗号化(ECC)は、この計算問題を解決する。ECCでは、鍵および証明
書のサイズを縮小することができ、それによって、必要なメモリが低減し、コス
トが著しく節約される。ECCは、コストを著しく削減することができるだけでな
く、次世代アプリケーションにおけるスマート・カードの普及を促進する。また
、ECCアルゴリズムによって鍵サイズを縮小することができるが、より大きな鍵
を用いる他のアルゴリズムと同じレベルのセキュリティが維持される。
【0014】 しかし、暗号化装置の低い生産コストを維持しながら情報転送速度を高めるた
めに、依然として、鍵に対する計算をより高速に行う必要がある。
【0015】 楕円曲線上の点の倍数を算出することは、楕円曲線暗号化で最も頻繁に実行さ
れる計算の1つである。このような計算の速度を高める1つの方法は、事前計算
された点の倍数のテーブルを使用することである。この技法は、点が事前にわか
っているときにさらに有用である。しかし、未知の点の倍数が必要になる場合が
ある(たとえば、ECDSA検証)。したがって、点乗算を容易にするシステムおよ
び方法が必要である。
【0016】
【課題を解決するための手段】 一般に、本発明は、スカラーkを、成分kiと、基本曲線で自己準同形写像から
導かれる整数λとの組合わせとして表す。
【0017】 この方法は、有限体の上に写像される複素乗算を有する楕円曲線(EC)が与え
られた場合、複素乗算写像と点Qにλを乗じることが等しくなる二次方程式の解
λが存在する、という考えに基づく方法である。λを整数とみなしてEC乗算を実
行するのと比べて、複素乗算写像を介してλQを算出する方がコストが低いこと
が多い。実際には、他のスカラー(λ以外)による点乗算が必要になる。乗算写
像を使用して点の他の倍数を算出できることも示す。
【0018】 本発明によれば、楕円曲線点Q(x, y)にスカラーkを乗じる速度を高める方法
であって、 楕円曲線上のすべての点Q(x, y)についてψ(Q) = λ・Qである自己準同形写像
ψが存在するように、有限体Fの上の楕円曲線を選択するステップと、 スカラーkのより小さな表現kiと写像ψとの組合わせを使用して楕円曲線点Q
のスカラー倍数を算出するステップとを含む方法が提供される。
【0019】 本発明の好ましい実施形態のこれらおよび他の特徴は、添付の図面が参照され
る以下の詳細な説明でより明らかになろう。
【0020】
【発明の実施の形態】 以下の説明では、同じ符号は各図面中の同じ構造物を指す。図1を参照すると
、データ通信システム10は、通信チャネル16によって接続され、送信側12および
受信側14として指定された一対の通信者を含む。各通信者12、14は、デジタル情
報を処理し、この情報を後述のようにチャネル16を通して送信する準備をするこ
とのできる暗号化プロセッサ18、20をそれぞれ含む。プロセッサ18、20は、プロ
セッサに組み込まれた集積回路で実現するか、あるいは汎用プロセッサと共に所
定のプロトコルを実施するようにデータキャリア上に符号化された命令として実
現することができる。図をわかりやすくするために、通信者12は、比較的限られ
た計算力を持つ専用プロセッサ18を有するスマート・カードの形であると仮定す
る。好ましくは、プロセッサ20は、チャネル16によってカードと通信する中央サ
ーバであり、チャネル16は無線通信チャネルである。
【0021】 暗号化プロセッサ18は、ECCの楕円曲線暗号化システムを実現し、また暗号化
プロセッサ18の機能の1つは、整数であるkと、基本楕円曲線上の点であるQと
を暗号化方式における鍵対k、kQとして使用できるように、k・Qの形の点乗算を
実行することである。上記で指摘したように、楕円曲線点とスカラー値の乗算な
どの暗号化計算はコストがかかる。
【0022】 楕円曲線点Q(x, y)のスカラー乗算の速度を高める方法は、図2に示されてお
り、全体的に符号50によって示されている。本発明のアルゴリズムは、プロセッ
サ12がたとえば、特定の種類の楕円曲線に関してメッセージに署名しメッセージ
を検証する速度を高める。この方法は、Fq(qは素数べき乗)として例示された
有限体上の楕円曲線Eに関する以下の一般的な数式が与えられ、 y2 + a1xy + a3y = x3 + a2x2 + a4x + a6 (1) 自己準同形写像ψが存在し、楕円曲線上のすべての点Q(x, y)点についてψ(Q) =
λ・Qである場合、点Qと整数kとの乗算は、kのより小さな表現kiと写像ψと
の組合わせを利用することによって速度を高めることができるという考えに基づ
く方法である。写像ψは、kQに関する後の計算で使用できる群要素およびそれら
の組合わせを事前に算出することも可能にする。
【0023】 次に図2を参照すると、楕円曲線上の点乗算の速度を高める一般的な実施形態
のフローチャートが符号50で示されている。まずシステム・パラメータが選択さ
れる。最初のステップとして、ある特性を有する基本楕円曲線Eが選択される。
本発明の第1の実施形態では、一般化された楕円曲線(1)を以下の形式で表す
ことができる。 E: y2 = x3 + b mod p(Pは素数) (2)
【0024】 まず、γ∈Fp(Fpはすべての整数mod pから成るサイズpの体である)であり
、かつγ3 ≡ 1 mod p(1の立方根)である数γが存在するように係数pを求め
ることができる。たとえば、p = 7である場合、23 mod 7 = 1であるので、γ =
2である。このようなγはすべてのpに対して存在するわけではなく、したがっ
て、pの値を選択する際にはこのことを考慮しなければならない。通常、適切な
暗号強度を得るには、選択されるpの長さが少なくとも160ビットであるべきで
ある。
【0025】 曲線Eが選択された後、写像関数ψが求められる。写像関数ψ: (x,y)→(γx,
y)は、曲線上の点のある組を曲線上の点の別の組に写像するに過ぎない。楕円曲
線E上の当該のすべての点Q(x, y)点についてψ(Q) = λ・Qになるような整数λ
が存在する。この整数λは、λ3 ≡ 1 mod nであることに留意することによって
求めることができる。この場合、nは、Fpの上にある楕円曲線E上の点の数、す
なわち、E(Fp)上の点の数である。λ3 ≡ 1のλに複数の解が存在する場合があ
るが、写像関数ψを満たす解は1つだけである。γ3 mod p = 1であるので、Q
とψ(Q)の両方がEに関する数式を満足する。したがって、長い計算を実行して
λによる乗算の結果を求める代わりに、λによる乗算を非常に効率的に実行でき
るように写像関数の結果を使用して非常に効率的にこれを行うことができる。
【0026】 シード点Qが選択され、52に示すように、製造時に、システム・パラメータE
、p、Q、λ、ψ(Q)、およびγが、暗号化プロセッサ18によって使用できるよ
うにカード12に記憶される。暗号化、鍵一致、署名などの暗号化手順を実施する
には、短命秘密鍵kとして使用される整数kを選択し、対応する公開鍵kQを生成
する必要がある。
【0027】 kの値は次式ように表すことができる。 k = (k0 + k1λ) mod n (3)
【0028】 上式で、nはE(Fp)上の点の数であり、k0およびk1は整数である。この場合、
点k・Qは次式のようになる。 k・Q = (k0Q + k1λQ) mod n (4)
【0029】 いくつかの暗号演算の場合、kの値をランダムに選択することができ、このよ
うな場合、kを選択するのではなく、符号ビットを含まない長さ[log2(n)]/2の
、k0およびk1の値をランダムに選択し(すなわち、k1の長さとして、長さkの少
なくとも2分の1の長さが選択される)、次いで数式(3)を使用してkの値を
算出することが可能である。図2に54で示すようにk0、k1の値を選択した後、Me
nezesらによって「Handbook of Applied Cryptography」(HAC)に記載された「
Simultaneous Multiple Exponentiation」(アルゴリズム14.88)に類似してお
り、56に示されているアルゴリズムを使用して数式(4)の右辺を高速に計算す
ることができる。都合上、このアルゴリズムを以下に再現する。加群において、
べき乗が加算に類似しており、したがって、このアルゴリズム内の乗算を加算で
置き換えると以下の手順が得られる。
【0030】アルゴリズム1 同時多重加算 入力:群要素g0, g1, … gl-1および負でないtビット整数e0, e1, … el-1。 出力:g0e0 + g1e1 + … + gl-1el-1。 ステップ1。事前計算。iが0から(2l‐1)に対して、
【数2】 上式で、i = (il-1 . . . i0)2である。 ステップ2。A←0 ステップ3。iが1からtに達するまで、以下のことを実行する。 A←A+A、A←A+Gl ステップ4。(A)を返す。この場合、A = g0e0 + g1e1 + … + gl-1el-1
【0031】 このアルゴリズムを数式(4)に適用すると、2つの群要素g0、g1、すなわち
QおよびλQがあり、したがって、2つの整数e0、e1、すなわちk0、k1があるこ
とがわかる。このアルゴリズムでは、いくつかの値を事前に算出することができ
、最初にGiが算出される。l = 2によってGiを事前に算出した結果をテーブル1
(表1)に示す。
【表1】
【0032】 点加算:(Q + ψ(Q))を実行して点を作成した後、算出済みの要素をテーブ
ル1に記入してテーブル2(表2)を作成することが可能である。図2のステッ
プ58に示すように、これらの要素を事前に算出しメモリに記憶することができる
【表2】 GIiを求め、したがって、60に示すようにI1からItを求めないかぎり、アルゴリ
ズムのステップを実行することはできない。kiの2進表現を使用して概念行列ま
たは組合わせテーブルを作成することができる。たとえば、k0 = 30でありk1 =
10である場合、k0からk1の2進表現内の最大ビット数が5であるのでtは値5を
有する。k0からk1の2進表現で作成された概念行列をテーブル3に示す。Iiは、
第1の行が最下位ビットを含み、第2の行が次の下位ビットを含み、以下同様で
あるi番目の列に表された数によって決定される。したがって、テーブル3(表
3)から、I1 = I2 = (11) = 3、I3 = (01) = 1、I4 = 3、およびI5 = 0である
ことがわかる。
【表3】
【0033】 このアルゴリズムを完了するのに必要なすべての成分を得ることができ、62に
示すようにステップ3の反復が行われる。
【0034】 最初はA←Oであり、iは1に設定される。Ii = I1であり、これはテーブル3
から1に等しい。したがって、GI1はG1であり、これはテーブル2からQである
。したがって、I = 1の場合の反復によるAの値はO + Q = Qである。
【0035】 i = 2である次の反復の場合、Aの初期値はQであり、したがって、A← Q+Q =
2Qであり、テーブル3からIi = I2 = 3である。したがって、GI2はテーブル3
からG3に等しく、すなわち、Q + ψ(Q)である。
【0036】 したがって、A + GIiは2Q + Q +ψQ = 3Q +ψQと算出される。
【0037】 反復は、5回目の反復まで、すなわち、koq = k,λQの値、すなわちkQが算出
されるまで、テーブル4(表4)に記載されたiの値ごとに継続される。
【表4】
【0038】 各反復では、点倍加(A+A)および点加算(A+GIi)が必要である。ただし、場
合によっては、GIiの値はOであり、この場合、計算量が削減される。
【0039】 したがって、この方法では、max{log2(ki)}に等しい数の点倍加と、ほぼ同数
の点加算が必要であることがわかる。点加算の数は、ウィンドウ技法(アルゴリ
ズム14.85 HAC)および指数再符号化技法を使用して削減することができる。i
およびGiの値を事前に算出することができるので、事前に算出された適切な要素
Giをテーブル2から検索することによって点加算を容易に実行することができる
。kPが算出された後、チャネル16を介した暗号化伝送または署名伝送において通
信者12の短命公開鍵としてこのkPを使用することができる。
【0040】 簡単に言えば、暗号化やDH署名などの暗号化演算の場合、整数kが必要であり
、対応する公開鍵kQが算出される。それぞれ、長さnの2分の1の長さを有する
、値k0およびk1がランダムに選択され、適切なアルゴリズムを使用して項k0Q =
k1λQが生成される。kをこのように選択すると、この方法は、k自体をランダ
ムに生成するのと同程度に安全であると思われる。もちろん、効率を向上するた
めにより少ないビット数のkiを選択することが可能である。
【0041】 上記の技法において、k = k0 + k1λを書き込み、同時に組み合わせる方法に
よって、同時多重加算アルゴリズムの速度が高められる。k = k0 + k1λを書き
込む技法は、スカラー乗算技法、すなわち、ワインディング、組合わせなどと共
に使用することもでき有利である。
【0042】 いくつかの写像ψでは、3つ以上の下位要素k(sub k)を使用することも可
能である。いくつかの写像ψでは、k = k0 + k1λ + k2λ2を書き込み、同時多
重加算アルゴリズムを適用することによってkの値を算出することができる。
【0043】 本発明の第2の実施形態では、一般化された楕円曲線式(1)の異なる形式、
すなわち、 y2 = (x3 ‐ ax) mod p (5) が使用される。この場合も、pは少なくとも160ビットを有する素数である。こ
の種の曲線の場合、γに必要な特性が異なる。この場合、γ2 = ‐1 mod pにな
るような値を求める必要がある。γの特性を変更するには、異なる写像関数ψ’
を使用する必要がある。この実施形態では、写像は形式ψ’:(x, y) → (‐x,
γy)をとる。(x, y)が曲線上にある場合はψ’(x, y)も曲線上にある。この場合
、λ4 ≡ 1 mod n(nはこの場合も、E(Fp)上の点である)、したがってλを算
出することができる。写像ψ’(Q) = λ・Qは前述のように実行され、この場合
も、この曲線に対してλによる乗算を非常に効率的に行うことができる。この実
施形態のkに関する数式は、第1の実施形態と同じであり、次式によって表され
る。 k = (k0 + k1λ) mod n (6) この数式は、前の実施形態と同じであり、2つの群要素のみを有する。したがっ
て、アルゴリズム1の群要素QおよびQ+ψ’(Q)を使用して点k・Qを算出するこ
とができる。この計算では、max{log2(ki)}に等しい数の点倍加と、同様な数の
点加算が必要である。前述のように、ウィンドウ技法および指数再符号化技法を
使用して点加算の数を削減することができる。
【0044】 この方法は、効率的に算出できる自己準同形写像ψが存在するかぎり、他の楕
円曲線にも適用することができる。
【0045】 上記の実施形態は、kをランダムに選択することができ、したがって、k0およ
びk1を選択することができるものと仮定し、kを求めている。kを選択すること
が可能な暗号化プロトコルの場合、まず、k = (k0 + k1λ) mod nになるように
kの所与の値から所望の「短い」形式のk0、k1を求める必要がある。場合によっ
ては、3つ以上のkを使用することができ有利である。
【0046】 上述の実施形態でわかるように、事前に点がわかっているときは、テーブルを
作成して乗算の速度を高めることができる。しかし、未知の点の倍数が必要にな
る場合があり(たとえば、これはECDSA検証で起こる可能性がある)、その場合
、与えられたkの値をとり、次いでkiの適切な表現を決定する必要がある。
【0047】 したがって、第3の実施形態では、システム・パラメータおよび値kが与えら
れ、点Q、必要な倍数k、および複素乗算倍数λが既知である。所定のkの値か
ら「短い」kiを求める必要がある。これを行う方法を以下に説明し、図3のフロ
ーチャートに示す。(kを必要としない)事前計算として、aiおよびbiがnより
も小さな数になるような2つの関係を算出する。 a0 + b0λ = 0 mod n a1 + b1λ = 0 mod n aiおよびbiはできるだけ小さいことが好ましいが、本発明の方法は、aiおよびbi が最小限でないときでも有利である。aiおよびbiが共に小さな対aiおよびbiは、
小さなユークリッド長を有するベクトルuiとみなすことができる。通常、後述の
方法では、最初のkのサイズの2分の1の表現を有するk0およびk1が生成される
【0048】 本実施形態では、事前に算出された短いベクトル表現を使用して以下の形式の
数式を得ることによって、kQを効率的に算出することができる。 k0Q + λk1Q
【0049】 これは、事前に算出されたベクトルを使用して、kの知識を必要としない分数
f0およびf1を導くことによって行われる。ベクトルzは、分数f0およびf1とkを
組み合わせることによって生成される。ベクトルzを使用して、v’ = (v0’, v 1 ’)である第2のベクトルv’が算出され、kQの値が、
【数3】 として算出される。この解を得る方法を以下に詳しく説明する。
【0050】 小さなaiおよびbiを作成する場合、L3、すなわち、短い基底ベクトルが直接得
られる格子基底削減アルゴリズム(HAC、118ページ)を利用することが可能であ
る。しかし、この好ましい実施形態では、簡単な拡張ユークリッド・アルゴリズ
ムが対(n, λ)に対して使用される。(n, λ)に対する拡張ユークリッド・ア
ルゴリズムにより、iに応じてriの表現(たとえば、ビット長)が小さくなり、
ciおよびdiの表現が大きくなる線形組合わせcin + diλ = riが作成される。
【0051】 拡張ユークリッド・アルゴリズムを使用した結果として得られた|(di, ri)|の
2つの最小値が保存される。これらのベクトルのサイズが、平方ユークリッド基
準|(di, ri)| = di 2 + ri 2を用いて測定される。これらの最小関係の項は、 および として示され、通常、アルゴリズムの中央で得られる。最小関係が保持されない
場合でも、この方法は、部分最適関係により、依然として点倍数の計算において
有利である。
【0052】 aiおよびbiの値は、すべて事前に算出することのできる および を定義することによって作成することができる。
【0053】 次のタスクは、倍数kの小さな表現を求めることである。
【0054】 a0、b0およびa1, b1の計算が与えられた場合、u0 = (a0, b0)でありu1 = (a1,
b1)であるベクトルu0, u1を指定することが可能である。これらのベクトルはai + biλ = 0 (mod n)を満たす。群要素Qにベクトルv = (v0, v1)を乗じること
は(v0 + v1λ)Qとして定義される。ai + biλ = 0 (mod n)であるので、任意の
群要素Rについてu0R = u1R = 0が成立する。したがって、任意の整数z0およびz 1 のの場合、任意の群要素Rについてv’R = (v ‐ z0u0 ‐ z1u1)Rが成立する。
【0055】 整数z0およびz1としては、ベクトルv’ = v ‐ z0u0 ‐ z1u1ができるだけ小
さな成分を有するような整数が選択される。この場合も、この方法は、v’の成
分が小さい場合に利点を有し、該成分が必ずしも最小限でない場合でも利点を有
する。
【0056】 適切なz0およびz1は、vの基底を正規直交基底{u0, u1}に変換することによっ
て算出される。基底間の変換では行列乗算が行われる。ベクトルv = (v0, v1)を
{u0, u1}基底から標準基底{(1, 0), (0, 1)}に変換する場合、次式が成立する。
【数4】 他方の方向、すなわち、正規直交基底{(1, 0), (0, 1)}から(u0, u1)基底に変換
する場合、乗算は単にMの逆数によって行われる。
【数5】
【0057】 ベクトルv = (k, 0)がゼロ成分を有するので、逆数(M)の下の行は必要とさ
れず、したがって、{u0, u1}に変換する場合に必要なのは次式の分数だけである
【数6】 および
【数7】
【0058】 分数f0およびf1の演算を乗算のみで行うことができるように、これらの分数を
十分な精度に事前に算出しておくことができる。これらの分数をもたらす計算が
kに依存せず、したがって、楕円曲線がシステム・パラメータとして選択される
際にこれらの分数を1度算出することができ、各kごとに再計算する必要はない
。同様に、ベクトルv、u0、およびu1を事前に算出し記憶することができる。
【0059】 kの値が選択されるか、あるいは求められた後、まず、zが(z0, z1) = (roun
d(kf0), round(kf1))として定義されるz = (z0, z1)を計算することによってkQ
の値を算出することができる。zの近傍の他のベクトルも有用であり、したがっ
て、丸めを床関数または天井関数、あるいは何らかの他の近似で置き換えること
ができる。
【0060】 適切なzが求められた後、v’ = (v0’, v1’) = v ‐ z0u0 ‐ z1u1によって
v(k, 0)の効率的な等価物が算出される。「効率的な等価物」の句は、v’P = vP
およびv’が小さな係数を有するようなベクトルv’を意味する。この場合、値kQ
はv0’Q + v1’λQとして算出される。この値は、上述のように同時点加算を使
用して算出することができ、上記で説明し、かつH.A.C.14.7の627ページに記載
されているように非隣接形式(NAF)再符号化を使用することによってより高い
効率を得ることができる。したがって、kが所定の値である場合でも、k0および
k1の値を算出し写像関数と共に使用してkQの値、したがって、鍵対k、kQを得る
ことができる。
【0061】 kを3つの部分k = k0 + k1λ + k2λ2に分離する場合、L3行削減によって
、次式のような小さなベクトルを得ることができる。
【数8】
【0062】 二次元の場合と同様に小ベクトル等価物(三次元行)を得ることができる。
【0063】 これらの方法を使用してk・Qの値を求めると、暗号化プロセッサ12によって必
要とされる処理能力が大幅に低減される。また、このような反復計算が行われる
速度が高められ、それによって、情報を転送するための時間が短縮される。
【0064】 当然のことながら、スカラー倍数kが短縮成分k = k0 + k1λ + k2λ2 + . .
. km-1λm-1で表された後、同時多重加算アルゴリズムの代わりに、あるいはこ
のアルゴリズムと共に、効率的な楕円曲線スカラー乗算を行うための他の方法を
使用することができる。このような方法には、ウィンドウ技法(固定およびスラ
イド)、組合わせ技法、ビット再符号化技法、およびこれらの技法の組合わせが
含まれる。
【0065】 特に有益なある技法では、乗算の一成分、たとえばk0に関して作成されたテー
ブルを他の成分k1などに再使用することができる。これは、必要に応じて写像γ
を適用することにより、算出されたテーブル要素を変換することによって行われ
る。
【0066】 他の例として、kをk = k0 + k1λ + k2λ2として再設定することができ、k
がmビットを有し、kiが約m/3ビットを有する実施形態について以下に説明する
【0067】 成分kiは、求められた後、2進表現から、より少ない非ゼロ・ビットを有する
符号付き2進表現に再符号化することができる。この再符号化は、表現ki内のあ
らゆる1ビットまたは‐1ビットが符号付き2進文字列内で他の非ゼロに隣接し
ないような非隣接形式(NAF)をとることができる。
【0068】 各kiが再符号化された後、kiλiPの計算を助けるためにテーブルを作成するこ
とができる。
【0069】 NAFウィンドウ・テーブルは、λiPのある短ビット長倍数を事前に算出するた
めのテーブルである。このウィンドウの幅によってテーブルのサイズが決定され
る。kiが、隣接する非ゼロを有さないように再符号化されているので、奇数ウィ
ンドウ幅が適切である。3ビット幅NAFウィンドウは以下のものを含む。
【数9】
【0070】 再符号化kiは、このようなウィンドウを連結し、必要に応じてゼロを充填する
ことによって作成される(H.A.C.、616ページ)。
【0071】 あらゆる非ゼロ・ビットではなく、発生するあらゆるウィンドウごとにのみEC
点を加算または減算するだけでよいので、このテーブルを使用することによって
必要な加算数を削減することができる。
【0072】 したがって、まず、この技法はk0Pの計算に適用される。
【0073】 k0Pの計算のために作成されたテーブルは、演算子γを使用してテーブル要素
にψ写像が写像される場合にkiλP計算に適用することができる。同様に、k0P用
に作成されたテーブルを使用するが、テーブル要素にγ2を写像することによっ
て、k2λ2Pの速度を高めることができる。
【0074】 スライド・ウィンドウ技法を該成分に適用する際に、実行する必要があるのは
1組の倍加だけである。
【0075】 好ましい実施形態のこの例を示すために、以下の例を使用する。
【0076】 k = [101101011101]2 + [111010101101]2λである場合、 以下の再符号化を行う。 k = [10-100-10-100-101] + [1000-10-10-10-101]λ = k’0 + k’1λ
【0077】 1・P、[10-1]・P、[101]・Pを含む、Pに関する3ビット・ウィンドウ・テー
ブルが事前に算出される。この場合、2回のEC加算および2回のEC倍加が必要で
ある。
【0078】 この後、テーブルの要素を加算/減算することによって、kPを以下のように算
出することができる。 kP = [10-100-10-100-101]P + [1000-10-10-10-101]・λP これは、累算器Aを使用して以下のように行うことができる。 A←0 ;初期設定 A += ψ(1・P) ;k0’の上位ビットを消費する。 A ← 2A ;Aを倍加する。 A ← 2A A ← [10-1]P ;k0’の上位3ビットを消費する。 A ← 24A A‐= [101]ψP ;k1’の3ビット・ウィンドウを消費する。 A ← 2A ;Aを倍加する。 A‐= [101]P ;k1’の3ビットを消費する。 A ← 24A A‐= [101]ψP ;k1’の3ビットを消費する。 A ← 22A A‐= [10-1]P ;k0’の最後のビットを消費する。 A + =ψP ;kPを生成する。
【0079】 簡単に言えば、前述の技法は以下のとおりである。楕円曲線Eおよび自己準同
形写像ψが与えられた場合、すべての点Q∈EについてλQ = ψ(Q)になるような
対応する整数λが存在する。整数mを選択し、同等な数mの「短基底ベクトル」
b1, b2, . . . , bmを算出する。このような基底ベクトルはそれぞれ整数に対応
し、そのような整数はそれぞれ、点の数n = #E(Fp m)(すなわち、点の数)で除
することができる。次に、整数k(0 < k < n)が与えられた場合、kiとして「
短い」ベクトルが選択されるk = Σki・λiと書くことができる。これは、b1, b 2 , …, bmによって生成された格子内の(kを表す)あるベクトルと近傍のベク
トルとの差を求めることによって行われる。
【0080】 以下の実施形態では、複合体の上に画定された楕円曲線に前述の技法(自己準
同形写像および基底変換および「Shamir’s trick」)を適用することについて
明白に説明する。特に、pが奇素数である曲線E(Fp m)への適用について説明する
。以下の実施形態ではこのような曲線に対する技法を例示する。
【0081】 この技法について、写像ψがフロベニウス写像ψ(x, y) = (xp, yp)であり、A
, B∈FpであるE’A,B(Fp m)が使用される場合において説明する。
【0082】 この場合、フロベニウス写像がψ2 ‐ tψ + p = 0を満たし、t = p + 1‐#E(
Fp m)であることがわかっている。
【0083】 したがって、λ2 ‐ tλ + p = 0 mod nであり、またλ2+i ‐ tλ1+i + pλi = 0 mod nである。
【0084】 以下のベクトルが、ベクトル空間Qn空間のm個の「短」基底ベクトルで構成さ
れている。
【数10】 したがって、このような曲線に対するk・Qを計算する場合、ベクトルb1, b2, …
bmおよび前述の技法を使用することができる。
【0085】 上記の実施形態では、k, λQをψ(kQ)から得ることができ、写像が加算よりも
効率的であることが理解されよう。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C U,CZ,DE,DK,EE,ES,FI,GB,GD ,GE,GH,GM,HR,HU,ID,IL,IN, IS,JP,KE,KG,KP,KR,KZ,LC,L K,LR,LS,LT,LU,LV,MD,MG,MK ,MN,MW,MX,NO,NZ,PL,PT,RO, RU,SD,SE,SG,SI,SK,SL,TJ,T M,TR,TT,UA,UG,US,UZ,VN,YU ,ZA,ZW (72)発明者 ヴァンストーン、スコット、エー. カナダ国 エル0ピー 1ビー0 オンタ リオ州、キャンプベルヴィル、ピー.オ ー. ボックス 490、パインビュー ト レイル 10140 Fターム(参考) 5J104 AA18 AA25 JA25 NA02 NA16 NA35 NA40

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 楕円曲線点Q(x, y)にスカラーを乗じて点kQを提供する方法
    であって、 a)λを整数として、楕円曲線上のすべての点Q(x, y)についてψ(Q) = λ・Q
    である自己準同形写像ψが存在するように、有限体Fの上の楕円曲線を選択する
    ステップと、 b)前記スカラーkの表現を成分kiと前記整数λの組合わせとして確立するス
    テップと、 c)前記表現と前記点Qを組み合わせてkQに対応する倍数の複合表現を形成す
    るステップと、 d)kQの前記複合表現から前記点kQに対応する値を算出するステップとを含む
    ことを特徴とする方法。
  2. 【請求項2】 前記各成分kiが、前記スカラーkよりも短いことを特徴とす
    る、請求項1に記載の方法。
  3. 【請求項3】 前記成分kiがまず選択され、その後組み合わされて前記スカ
    ラーkが形成されることを特徴とする、請求項1に記載の方法。
  4. 【請求項4】 前記表現が 【数1】 の形式であり、nが楕円曲線上の点の数であることを特徴とする、請求項1に記
    載の方法。
  5. 【請求項5】 前記表現がk0 + k1の形式であることを特徴とする、請求項
    4に記載の方法。
  6. 【請求項6】 前記スカラーkが所定の値および前記成分kを有することを
    特徴とする、請求項1に記載の方法。
  7. 【請求項7】 前記倍数kQの前記値が、同時多重加算を使用して算出される
    ことを特徴とする、請求項3に記載の方法。
  8. 【請求項8】 前記同時多重加算において使用される一群の項G1が事前に算
    出されることを特徴とする、請求項7に記載の方法。
  9. 【請求項9】 体Fの短基底ベクトル(u0, u1)を得て、ベクトルvを(k, 0)
    として指定し、vを正規直交基底から(u0, u1)基底に変換し、ベクトルvを表す
    分数f0, f1を得て、前記分数をkに適用しベクトルzを得て、ベクトルvの効率
    的な等価物v’を算出し、ベクトルv’の成分をkQの複合表現で使用することによ
    って、前記成分kiが得られることを特徴とする、請求項6に記載の方法。
  10. 【請求項10】 Qを曲線上の点として、整数kを有し、秘密鍵および公開鍵
    kQを提供する鍵対を楕円曲線暗号システムにおいて生成する方法であって、 a)楕円曲線上のすべての点Q(x, y)についてψ(Q) = λ・Qであり、λが整数
    である自己準同形写像ψが存在するように、有限体Fの上の楕円曲線を選択する
    ステップと、 b)前記スカラーkの表現を成分kiと前記整数λの組合わせとして確立するス
    テップと、 c)前記表現と前記点Qを組み合わせてkQに対応する倍数の複合表現を形成す
    るステップと、 d)kQの前記複合表現から前記点kQに対応する値を算出するステップとを含む
    ことを特徴とする方法。
  11. 【請求項11】 請求項2から9のいずれか一項に記載の方法を含むことを特
    徴とする、請求項10に記載の方法。
JP2000591498A 1998-12-24 1999-12-23 楕円曲線上での暗号操作の速度を高める方法 Expired - Lifetime JP4662577B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CA2,257,008 1998-12-24
CA002257008A CA2257008C (en) 1998-12-24 1998-12-24 A method for accelerating cryptographic operations on elliptic curves
PCT/CA1999/001222 WO2000039668A1 (en) 1998-12-24 1999-12-23 A method for accelerating cryptographic operations on elliptic curves

Publications (2)

Publication Number Publication Date
JP2002533787A true JP2002533787A (ja) 2002-10-08
JP4662577B2 JP4662577B2 (ja) 2011-03-30

Family

ID=4163124

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000591498A Expired - Lifetime JP4662577B2 (ja) 1998-12-24 1999-12-23 楕円曲線上での暗号操作の速度を高める方法

Country Status (6)

Country Link
US (1) US7110538B2 (ja)
EP (1) EP1141820B1 (ja)
JP (1) JP4662577B2 (ja)
CA (1) CA2257008C (ja)
DE (1) DE69903854T2 (ja)
WO (1) WO2000039668A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005173301A (ja) * 2003-12-12 2005-06-30 Mitsubishi Electric Corp ベクトル演算装置及び分割値演算装置及び楕円曲線スカラー倍演算装置及び楕円暗号演算装置及びベクトル演算方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US7142668B1 (en) 1999-04-09 2006-11-28 Fujitsu Limited Apparatus and method for generating expression data for finite field operation
JP2008519994A (ja) * 2004-11-11 2008-06-12 サーティコム コーポレーション 楕円曲線上の新しいトラップドア1方向性関数と、その、より短い署名及び非対称暗号化への応用
JPWO2007080633A1 (ja) * 2006-01-11 2009-06-11 三菱電機株式会社 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号演算装置及び楕円曲線暗号パラメータ生成プログラム及び楕円曲線暗号演算プログラム

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020057796A1 (en) 1998-12-24 2002-05-16 Lambert Robert J. Method for accelerating cryptographic operations on elliptic curves
US7996670B1 (en) 1999-07-08 2011-08-09 Broadcom Corporation Classification engine in a cryptography acceleration chip
FR2807898B1 (fr) * 2000-04-18 2002-06-28 Gemplus Card Int Procede de cryptographie sur courbes elliptiques
US6826586B2 (en) * 2000-12-15 2004-11-30 Sun Microsystems, Inc. Method for efficient computation of point doubling operation of elliptic curve point scalar multiplication over finite fields F(2m)
US7209555B2 (en) * 2001-10-25 2007-04-24 Matsushita Electric Industrial Co., Ltd. Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device
CA2369540C (en) * 2001-12-31 2013-10-01 Certicom Corp. Method and apparatus for computing a shared secret key
US7508936B2 (en) * 2002-05-01 2009-03-24 Sun Microsystems, Inc. Hardware accelerator for elliptic curve cryptography
US7139396B2 (en) * 2002-06-27 2006-11-21 Microsoft Corporation Koblitz exponentiation with bucketing
US20040123123A1 (en) * 2002-12-18 2004-06-24 Buer Mark L. Methods and apparatus for accessing security association information in a cryptography accelerator
US7191341B2 (en) * 2002-12-18 2007-03-13 Broadcom Corporation Methods and apparatus for ordering data in a cryptography accelerator
US7434043B2 (en) 2002-12-18 2008-10-07 Broadcom Corporation Cryptography accelerator data routing unit
US7568110B2 (en) * 2002-12-18 2009-07-28 Broadcom Corporation Cryptography accelerator interface decoupling from cryptography processing cores
US20040123120A1 (en) * 2002-12-18 2004-06-24 Broadcom Corporation Cryptography accelerator input interface data handling
JP4363086B2 (ja) * 2003-05-29 2009-11-11 ソニー株式会社 情報送信装置及び方法、情報受信装置及び方法、並びに情報提供システム
US8194855B2 (en) * 2003-06-30 2012-06-05 Oracle America, Inc. Method and apparatus for implementing processor instructions for accelerating public-key cryptography
US7650374B1 (en) 2004-03-02 2010-01-19 Sun Microsystems, Inc. Hybrid multi-precision multiplication
US7646872B2 (en) * 2004-04-02 2010-01-12 Research In Motion Limited Systems and methods to securely generate shared keys
US20060136717A1 (en) 2004-12-20 2006-06-22 Mark Buer System and method for authentication via a proximate device
US8295484B2 (en) 2004-12-21 2012-10-23 Broadcom Corporation System and method for securing data from a remote input device
EP1675299B1 (en) 2004-12-23 2018-08-01 Hewlett-Packard Development Company, L.P. Authentication method using bilinear mappings
WO2006076800A1 (en) 2005-01-18 2006-07-27 Certicom Corp. Accelerated verification of digital signatures and public keys
US8467535B2 (en) * 2005-01-18 2013-06-18 Certicom Corp. Accelerated verification of digital signatures and public keys
US8396213B2 (en) * 2005-01-21 2013-03-12 Certicom Corp. Elliptic curve random number generation
KR101194837B1 (ko) * 2005-07-12 2012-10-25 삼성전자주식회사 멱지수를 숨기는 dpa 대책의 고속 계산을 위한 암호화장치 및 방법
EP1775880A1 (en) * 2005-10-11 2007-04-18 STMicroelectronics S.r.l. Method of processing information to be confidentially transmitted
US7677975B2 (en) * 2005-10-14 2010-03-16 Leviathan Entertainment, Llc Video game with registration of funding sources
US20090016523A1 (en) * 2007-07-12 2009-01-15 Atmel Corporation Masking and Additive Decomposition Techniques for Cryptographic Field Operations
WO2009009868A1 (en) 2007-07-17 2009-01-22 Certicom Corp. Method of compressing a cryptographic value
US8559625B2 (en) * 2007-08-07 2013-10-15 Inside Secure Elliptic curve point transformations
US7991162B2 (en) * 2007-09-14 2011-08-02 University Of Ottawa Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields
CN101925942B (zh) 2008-02-20 2013-11-27 三菱电机株式会社 验证装置
JP4521503B2 (ja) * 2008-02-25 2010-08-11 国立大学法人 岡山大学 スカラー倍算の演算プログラム及びべき乗算の演算プログラム
US20090234866A1 (en) * 2008-03-17 2009-09-17 Paul Caprioli Floating Point Unit and Cryptographic Unit Having a Shared Multiplier Tree
EP2124382A1 (de) * 2008-05-20 2009-11-25 Siemens Aktiengesellschaft Verfahren zum verschlüsselten Datenaustausch und Kommunikationssystem
US20110176676A1 (en) * 2008-09-29 2011-07-21 Nokia Corporation Method, apparatus and computer program product for efficient elliptic curve cryptography
US8345864B1 (en) 2008-12-12 2013-01-01 Emc Corporation Elliptic curve cryptography scalar multiplication with on demand acceleration table generation
US8356185B2 (en) * 2009-10-08 2013-01-15 Oracle America, Inc. Apparatus and method for local operand bypassing for cryptographic instructions
US8745376B2 (en) * 2011-10-14 2014-06-03 Certicom Corp. Verifying implicit certificates and digital signatures
US9800411B1 (en) * 2016-05-05 2017-10-24 ISARA Corporation Using a secret generator in an elliptic curve cryptography (ECC) digital signature scheme
US10320565B2 (en) * 2017-02-28 2019-06-11 Certicom Corp. Generating an elliptic curve point in an elliptic curve cryptographic system
CN109040076B (zh) * 2018-08-09 2020-07-24 腾讯科技(深圳)有限公司 一种数据处理方法、系统、装置、设备及介质
KR102460248B1 (ko) * 2019-02-21 2022-10-31 한국전자통신연구원 유한체 나눗셈 연산기 및 그것을 갖는 타원곡선 암호 시스템 및 그것의 동작 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000276046A (ja) * 1998-09-03 2000-10-06 Nippon Telegr & Teleph Corp <Ntt> 楕円曲線演算装置、演算方法及びその方法を実施するプログラムを記録した記録媒体

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999626A (en) * 1996-04-16 1999-12-07 Certicom Corp. Digital signatures on a smartcard
US6243467B1 (en) * 1998-07-23 2001-06-05 The United States Of America As Represented By The National Security Agency Method of elliptic curve cryptographic digital signature generation and verification using reduced base tau expansion in non-adjacent form

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000276046A (ja) * 1998-09-03 2000-10-06 Nippon Telegr & Teleph Corp <Ntt> 楕円曲線演算装置、演算方法及びその方法を実施するプログラムを記録した記録媒体

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7142668B1 (en) 1999-04-09 2006-11-28 Fujitsu Limited Apparatus and method for generating expression data for finite field operation
JP2005173301A (ja) * 2003-12-12 2005-06-30 Mitsubishi Electric Corp ベクトル演算装置及び分割値演算装置及び楕円曲線スカラー倍演算装置及び楕円暗号演算装置及びベクトル演算方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4629972B2 (ja) * 2003-12-12 2011-02-09 三菱電機株式会社 ベクトル演算装置及び分割値演算装置及び楕円曲線スカラー倍演算装置及び楕円暗号演算装置及びベクトル演算方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2008519994A (ja) * 2004-11-11 2008-06-12 サーティコム コーポレーション 楕円曲線上の新しいトラップドア1方向性関数と、その、より短い署名及び非対称暗号化への応用
JP2011232782A (ja) * 2004-11-11 2011-11-17 Certicom Corp 楕円曲線上の新しいトラップドア1方向性関数と、その、より短い署名及び非対称暗号化への応用
JP4842276B2 (ja) * 2004-11-11 2011-12-21 サーティコム コーポレーション 楕円曲線上の新しいトラップドア1方向性関数と、その、より短い署名及び非対称暗号化への応用
US8213605B2 (en) 2004-11-11 2012-07-03 Certicom Corp. Trapdoor one-way functions on elliptic curves and their application to shorter signatures and asymmetric encryption
US8782400B2 (en) 2004-11-11 2014-07-15 Certicom Corp. Trapdoor one-way functions on elliptic curves and their application to shorter signatures and asymmetric encryption
JPWO2007080633A1 (ja) * 2006-01-11 2009-06-11 三菱電機株式会社 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号演算装置及び楕円曲線暗号パラメータ生成プログラム及び楕円曲線暗号演算プログラム
JP4688886B2 (ja) * 2006-01-11 2011-05-25 三菱電機株式会社 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号システム及び楕円曲線暗号パラメータ生成プログラム
US8111826B2 (en) 2006-01-11 2012-02-07 Mitsubishi Electric Corporation Apparatus for generating elliptic curve cryptographic parameter, apparatus for processing elliptic curve cryptograph, program for generating elliptic curve cryptographic parameter, and program for processing elliptic cyptograph

Also Published As

Publication number Publication date
JP4662577B2 (ja) 2011-03-30
DE69903854D1 (de) 2002-12-12
EP1141820B1 (en) 2002-11-06
EP1141820A1 (en) 2001-10-10
CA2257008C (en) 2007-12-11
DE69903854T2 (de) 2003-07-31
US20020044649A1 (en) 2002-04-18
US7110538B2 (en) 2006-09-19
CA2257008A1 (en) 2000-06-24
WO2000039668A1 (en) 2000-07-06

Similar Documents

Publication Publication Date Title
JP2002533787A (ja) 楕円曲線上での暗号操作の速度を高める方法
US7995752B2 (en) Method for accelerating cryptographic operations on elliptic curves
US8832438B2 (en) Digital signature generation apparatus, digital signature verification apparatus, and key generation apparatus
US7127063B2 (en) Method and apparatus for computing a shared secret key
US8549299B2 (en) Accelerated key agreement with assisted computations
EP1675300B1 (en) Improvements in the use of bilinear mappings in cryptographic applications
US6202076B1 (en) Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
US6898284B2 (en) Cryptographic identification and digital signature method using efficient elliptic curve
US20050213758A1 (en) Efficient and compact subgroup trace representation (&#34;XTR&#34;)
EP2493112B1 (en) Accelerated key agreement with assisted computations
JP2007041461A (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
CN110752931B (zh) 一种sm2椭圆曲线公钥密码体制优化方法
Manajaih Modular arithmetic in RSA cryptography
JP4598269B2 (ja) 楕円曲線上の高速有限体演算
US7505585B2 (en) Method of generating cryptographic key using elliptic curve and expansion in joint sparse form and using same
US8135131B2 (en) Method for calculating compressed RSA moduli
Raharinirina Use of Signed Permutations in Cryptography
CA2353395C (en) A method for accelerating cryptographic operations on elliptic curves
Sun et al. Batch blind signatures on elliptic curves
JP2003084666A (ja) 楕円曲線暗号の処理方法および装置
JPH06295154A (ja) 楕円曲線を用いた署名、認証及び秘密通信方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061221

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100121

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100421

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100811

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101111

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101231

R150 Certificate of patent or registration of utility model

Ref document number: 4662577

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140114

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term