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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
- G06F7/725—Finite 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
Description
ができる。交換される情報の少なくとも一部は、送信側により所定の演算によっ
て暗号化され、受信側は、送信側の演算に対して相補的な演算を実行してこの情
報を復号することができる。
この関係は、公開鍵の知識から秘密鍵を特定することができないような関係であ
る。各鍵は、転送すべきデータを暗号化するために、あるいはデータが真正であ
ることを検証できるように署名を添付するために、データの転送時に使用される
。
化し、受信側に送信する。次いで、受信側は秘密鍵を使用してメッセージを復号
する。
通鍵を生成することもできる。このような場合には通常、各当事者の長期鍵が破
られるのを回避するため、通信セッションごとに新しい秘密鍵およびこれに対応
する公開鍵が生成され、これらの鍵は通常、セッション鍵または短命鍵と呼ばれ
る。
において整数mod p(pは素数)の有限体を利用する際に指数演算を伴い、あるい
はシステムが楕円曲線を利用する際に同様な点乗算演算を伴う相当量の計算が行
われる。楕円曲線システムでは、秘密整数kを生成し、シード点Qで点乗算を実
行して短命公開鍵kQを形成することによって、短命鍵対が得られる。同様に、共
通短命セッション鍵を生成する場合は、公開鍵k3Q、すなわち、曲線上の点に他
方の通信者の秘密整数kbを乗じる必要があり、したがって、この場合も点乗算が
必要になる。
ることを除いて、同様な手順が使用される。この場合、任意の受信側が、送信側
の公開鍵を使用してメッセージを復元し検証することができる。
のいくつかは広く使用されている。しかし、それぞれの場合に、送信側は転送す
べき情報に署名するために計算を実行する必要があり、受信側は、署名された情
報を検証するために計算を実行する必要がある。
シュであり、および nは曲線の次数である。
に対応すべき値R1 = (sP‐eQ)を算出することによって検証される。算出された
値が対応する場合、署名は検証されたことになる。
る必要がある。この場合、受信側が適切な計算力を有する場合には、特に問題は
ないが、セキュアトークン・アプリケーションや「スマート・カード」アプリケ
ーションのように受信側の計算力が限られている場合、このような計算によって
検証プロセスに遅延が生じる。
とする場合がある。暗号化が普及するにつれて、より高速であり、スマート・カ
ードや無線装置に見られるように限られた計算力を活用する暗号化システムを実
現する要求が高まっている。
書のサイズを縮小することができ、それによって、必要なメモリが低減し、コス
トが著しく節約される。ECCは、コストを著しく削減することができるだけでな
く、次世代アプリケーションにおけるスマート・カードの普及を促進する。また
、ECCアルゴリズムによって鍵サイズを縮小することができるが、より大きな鍵
を用いる他のアルゴリズムと同じレベルのセキュリティが維持される。
めに、依然として、鍵に対する計算をより高速に行う必要がある。
れる計算の1つである。このような計算の速度を高める1つの方法は、事前計算
された点の倍数のテーブルを使用することである。この技法は、点が事前にわか
っているときにさらに有用である。しかし、未知の点の倍数が必要になる場合が
ある(たとえば、ECDSA検証)。したがって、点乗算を容易にするシステムおよ
び方法が必要である。
導かれる整数λとの組合わせとして表す。
られた場合、複素乗算写像と点Qにλを乗じることが等しくなる二次方程式の解
λが存在する、という考えに基づく方法である。λを整数とみなしてEC乗算を実
行するのと比べて、複素乗算写像を介してλQを算出する方がコストが低いこと
が多い。実際には、他のスカラー(λ以外)による点乗算が必要になる。乗算写
像を使用して点の他の倍数を算出できることも示す。
であって、 楕円曲線上のすべての点Q(x, y)についてψ(Q) = λ・Qである自己準同形写像
ψが存在するように、有限体Fの上の楕円曲線を選択するステップと、 スカラーkのより小さな表現kiと写像ψとの組合わせを使用して楕円曲線点Q
のスカラー倍数を算出するステップとを含む方法が提供される。
る以下の詳細な説明でより明らかになろう。
、データ通信システム10は、通信チャネル16によって接続され、送信側12および
受信側14として指定された一対の通信者を含む。各通信者12、14は、デジタル情
報を処理し、この情報を後述のようにチャネル16を通して送信する準備をするこ
とのできる暗号化プロセッサ18、20をそれぞれ含む。プロセッサ18、20は、プロ
セッサに組み込まれた集積回路で実現するか、あるいは汎用プロセッサと共に所
定のプロトコルを実施するようにデータキャリア上に符号化された命令として実
現することができる。図をわかりやすくするために、通信者12は、比較的限られ
た計算力を持つ専用プロセッサ18を有するスマート・カードの形であると仮定す
る。好ましくは、プロセッサ20は、チャネル16によってカードと通信する中央サ
ーバであり、チャネル16は無線通信チャネルである。
プロセッサ18の機能の1つは、整数であるkと、基本楕円曲線上の点であるQと
を暗号化方式における鍵対k、kQとして使用できるように、k・Qの形の点乗算を
実行することである。上記で指摘したように、楕円曲線点とスカラー値の乗算な
どの暗号化計算はコストがかかる。
り、全体的に符号50によって示されている。本発明のアルゴリズムは、プロセッ
サ12がたとえば、特定の種類の楕円曲線に関してメッセージに署名しメッセージ
を検証する速度を高める。この方法は、Fq(qは素数べき乗)として例示された
有限体上の楕円曲線Eに関する以下の一般的な数式が与えられ、 y2 + a1xy + a3y = x3 + a2x2 + a4x + a6 (1) 自己準同形写像ψが存在し、楕円曲線上のすべての点Q(x, y)点についてψ(Q) = λ・Qである場合、点Qと整数kとの乗算は、kのより小さな表現kiと写像ψと
の組合わせを利用することによって速度を高めることができるという考えに基づ
く方法である。写像ψは、kQに関する後の計算で使用できる群要素およびそれら
の組合わせを事前に算出することも可能にする。
のフローチャートが符号50で示されている。まずシステム・パラメータが選択さ
れる。最初のステップとして、ある特性を有する基本楕円曲線Eが選択される。
本発明の第1の実施形態では、一般化された楕円曲線(1)を以下の形式で表す
ことができる。 E: y2 = x3 + b mod p(Pは素数) (2)
、かつγ3 ≡ 1 mod p(1の立方根)である数γが存在するように係数pを求め
ることができる。たとえば、p = 7である場合、23 mod 7 = 1であるので、γ =
2である。このようなγはすべてのpに対して存在するわけではなく、したがっ
て、pの値を選択する際にはこのことを考慮しなければならない。通常、適切な
暗号強度を得るには、選択されるpの長さが少なくとも160ビットであるべきで
ある。
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に関する数式を満足する。したがって、長い計算を実行して
λによる乗算の結果を求める代わりに、λによる乗算を非常に効率的に実行でき
るように写像関数の結果を使用して非常に効率的にこれを行うことができる。
、p、Q、λ、ψ(Q)、およびγが、暗号化プロセッサ18によって使用できるよ
うにカード12に記憶される。暗号化、鍵一致、署名などの暗号化手順を実施する
には、短命秘密鍵kとして使用される整数kを選択し、対応する公開鍵kQを生成
する必要がある。
点k・Qは次式のようになる。 k・Q = (k0Q + k1λQ) mod n (4)
うな場合、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)の右辺を高速に計算す
ることができる。都合上、このアルゴリズムを以下に再現する。加群において、
べき乗が加算に類似しており、したがって、このアルゴリズム内の乗算を加算で
置き換えると以下の手順が得られる。
QおよびλQがあり、したがって、2つの整数e0、e1、すなわちk0、k1があるこ
とがわかる。このアルゴリズムでは、いくつかの値を事前に算出することができ
、最初にGiが算出される。l = 2によってGiを事前に算出した結果をテーブル1
(表1)に示す。
ル1に記入してテーブル2(表2)を作成することが可能である。図2のステッ
プ58に示すように、これらの要素を事前に算出しメモリに記憶することができる
。
ズムのステップを実行することはできない。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の反復が行われる。
から1に等しい。したがって、GI1はG1であり、これはテーブル2からQである
。したがって、I = 1の場合の反復によるAの値はO + Q = Qである。
からG3に等しく、すなわち、Q + ψ(Q)である。
されるまで、テーブル4(表4)に記載されたiの値ごとに継続される。
合によっては、GIiの値はOであり、この場合、計算量が削減される。
の点加算が必要であることがわかる。点加算の数は、ウィンドウ技法(アルゴリ
ズム14.85 HAC)および指数再符号化技法を使用して削減することができる。i
およびGiの値を事前に算出することができるので、事前に算出された適切な要素
Giをテーブル2から検索することによって点加算を容易に実行することができる
。kPが算出された後、チャネル16を介した暗号化伝送または署名伝送において通
信者12の短命公開鍵としてこのkPを使用することができる。
、対応する公開鍵kQが算出される。それぞれ、長さnの2分の1の長さを有する
、値k0およびk1がランダムに選択され、適切なアルゴリズムを使用して項k0Q =
k1λQが生成される。kをこのように選択すると、この方法は、k自体をランダ
ムに生成するのと同程度に安全であると思われる。もちろん、効率を向上するた
めにより少ないビット数のkiを選択することが可能である。
よって、同時多重加算アルゴリズムの速度が高められる。k = k0 + k1λを書き
込む技法は、スカラー乗算技法、すなわち、ワインディング、組合わせなどと共
に使用することもでき有利である。
能である。いくつかの写像ψでは、k = k0 + k1λ + k2λ2を書き込み、同時多
重加算アルゴリズムを適用することによってkの値を算出することができる。
すなわち、 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)}に等しい数の点倍加と、同様な数の
点加算が必要である。前述のように、ウィンドウ技法および指数再符号化技法を
使用して点加算の数を削減することができる。
円曲線にも適用することができる。
びk1を選択することができるものと仮定し、kを求めている。kを選択すること
が可能な暗号化プロトコルの場合、まず、k = (k0 + k1λ) mod nになるように
kの所与の値から所望の「短い」形式のk0、k1を求める必要がある。場合によっ
ては、3つ以上のkを使用することができ有利である。
作成して乗算の速度を高めることができる。しかし、未知の点の倍数が必要にな
る場合があり(たとえば、これはECDSA検証で起こる可能性がある)、その場合
、与えられたkの値をとり、次いでkiの適切な表現を決定する必要がある。
れ、点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が生成される
。
数式を得ることによって、kQを効率的に算出することができる。 k0Q + λk1Q
f0およびf1を導くことによって行われる。ベクトルzは、分数f0およびf1とkを
組み合わせることによって生成される。ベクトルzを使用して、v’ = (v0’, v 1 ’)である第2のベクトルv’が算出され、kQの値が、
られる格子基底削減アルゴリズム(HAC、118ページ)を利用することが可能であ
る。しかし、この好ましい実施形態では、簡単な拡張ユークリッド・アルゴリズ
ムが対(n, λ)に対して使用される。(n, λ)に対する拡張ユークリッド・ア
ルゴリズムにより、iに応じてriの表現(たとえば、ビット長)が小さくなり、
ciおよびdiの表現が大きくなる線形組合わせcin + diλ = riが作成される。
2つの最小値が保存される。これらのベクトルのサイズが、平方ユークリッド基
準|(di, ri)| = di 2 + ri 2を用いて測定される。これらの最小関係の項は、 および として示され、通常、アルゴリズムの中央で得られる。最小関係が保持されない
場合でも、この方法は、部分最適関係により、依然として点倍数の計算において
有利である。
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が成立する。
さな成分を有するような整数が選択される。この場合も、この方法は、v’の成
分が小さい場合に利点を有し、該成分が必ずしも最小限でない場合でも利点を有
する。
て算出される。基底間の変換では行列乗算が行われる。ベクトルv = (v0, v1)を
{u0, u1}基底から標準基底{(1, 0), (0, 1)}に変換する場合、次式が成立する。
する場合、乗算は単にMの逆数によって行われる。
れず、したがって、{u0, u1}に変換する場合に必要なのは次式の分数だけである
。
十分な精度に事前に算出しておくことができる。これらの分数をもたらす計算が
kに依存せず、したがって、楕円曲線がシステム・パラメータとして選択される
際にこれらの分数を1度算出することができ、各kごとに再計算する必要はない
。同様に、ベクトルv、u0、およびu1を事前に算出し記憶することができる。
d(kf0), round(kf1))として定義されるz = (z0, z1)を計算することによってkQ
の値を算出することができる。zの近傍の他のベクトルも有用であり、したがっ
て、丸めを床関数または天井関数、あるいは何らかの他の近似で置き換えること
ができる。
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を得る
ことができる。
、次式のような小さなベクトルを得ることができる。
要とされる処理能力が大幅に低減される。また、このような反復計算が行われる
速度が高められ、それによって、情報を転送するための時間が短縮される。
. km-1λm-1で表された後、同時多重加算アルゴリズムの代わりに、あるいはこ
のアルゴリズムと共に、効率的な楕円曲線スカラー乗算を行うための他の方法を
使用することができる。このような方法には、ウィンドウ技法(固定およびスラ
イド)、組合わせ技法、ビット再符号化技法、およびこれらの技法の組合わせが
含まれる。
ブルを他の成分k1などに再使用することができる。これは、必要に応じて写像γ
を適用することにより、算出されたテーブル要素を変換することによって行われ
る。
がmビットを有し、kiが約m/3ビットを有する実施形態について以下に説明する
。
符号付き2進表現に再符号化することができる。この再符号化は、表現ki内のあ
らゆる1ビットまたは‐1ビットが符号付き2進文字列内で他の非ゼロに隣接し
ないような非隣接形式(NAF)をとることができる。
とができる。
めのテーブルである。このウィンドウの幅によってテーブルのサイズが決定され
る。kiが、隣接する非ゼロを有さないように再符号化されているので、奇数ウィ
ンドウ幅が適切である。3ビット幅NAFウィンドウは以下のものを含む。
ことによって作成される(H.A.C.、616ページ)。
点を加算または減算するだけでよいので、このテーブルを使用することによって
必要な加算数を削減することができる。
にψ写像が写像される場合にkiλP計算に適用することができる。同様に、k0P用
に作成されたテーブルを使用するが、テーブル要素にγ2を写像することによっ
て、k2λ2Pの速度を高めることができる。
1組の倍加だけである。
ブルが事前に算出される。この場合、2回のEC加算および2回のEC倍加が必要で
ある。
出することができる。 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を生成する。
形写像ψが与えられた場合、すべての点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を表す)あるベクトルと近傍のベク
トルとの差を求めることによって行われる。
同形写像および基底変換および「Shamir’s trick」)を適用することについて
明白に説明する。特に、pが奇素数である曲線E(Fp m)への適用について説明する
。以下の実施形態ではこのような曲線に対する技法を例示する。
, B∈FpであるE’A,B(Fp m)が使用される場合において説明する。
Fp m)であることがわかっている。
れている。
bmおよび前述の技法を使用することができる。
効率的であることが理解されよう。
囲に記載された本発明の趣旨および範囲から逸脱しない本発明の様々な修正形態
が明らかになろう。
ートである。
を示すフローチャートである。
ができる。交換される情報の少なくとも一部は、送信側により所定の演算によっ
て暗号化され、受信側は、送信側の演算に対して相補的な演算を実行してこの情
報を復号することができる。
この関係は、公開鍵の知識から秘密鍵を特定することができないような関係であ
る。各鍵は、転送すべきデータを暗号化するために、あるいはデータが真正であ
ることを検証できるように署名を添付するために、データの転送時に使用される
。
化し、受信側に送信する。次いで、受信側は秘密鍵を使用してメッセージを復号
する。
通鍵を生成することもできる。このような場合には通常、各当事者の長期鍵が破
られるのを回避するため、通信セッションごとに新しい秘密鍵およびこれに対応
する公開鍵が生成され、これらの鍵は通常、セッション鍵または短命鍵と呼ばれ
る。
において整数mod p(pは素数)の有限体を利用する際に指数演算を伴い、あるい
はシステムが楕円曲線を利用する際に同様な点乗算演算を伴う相当量の計算が行
われる。楕円曲線システムでは、秘密整数kを生成し、シード点Qで点乗算を実
行して短命公開鍵kQを形成することによって、短命鍵対が得られる。同様に、共
通短命セッション鍵を生成する場合は、公開鍵k3Q、すなわち、曲線上の点に他
方の通信者の秘密整数kbを乗じる必要があり、したがって、この場合も点乗算が
必要になる。
ることを除いて、同様な手順が使用される。この場合、任意の受信側が、送信側
の公開鍵を使用してメッセージを復元し検証することができる。
のいくつかは広く使用されている。しかし、それぞれの場合に、送信側は転送す
べき情報に署名するために計算を実行する必要があり、受信側は、署名された情
報を検証するために計算を実行する必要がある。
シュであり、および nは曲線の次数である。
に対応すべき値R1 = (sP‐eQ)を算出することによって検証される。算出された
値が対応する場合、署名は検証されたことになる。
る必要がある。この場合、受信側が適切な計算力を有する場合には、特に問題は
ないが、セキュアトークン・アプリケーションや「スマート・カード」アプリケ
ーションのように受信側の計算力が限られている場合、このような計算によって
検証プロセスに遅延が生じる。
とする場合がある。暗号化が普及するにつれて、より高速であり、スマート・カ
ードや無線装置に見られるように限られた計算力を活用する暗号化システムを実
現する要求が高まっている。
書のサイズを縮小することができ、それによって、必要なメモリが低減し、コス
トが著しく節約される。ECCは、コストを著しく削減することができるだけでな
く、次世代アプリケーションにおけるスマート・カードの普及を促進する。また
、ECCアルゴリズムによって鍵サイズを縮小することができるが、より大きな鍵
を用いる他のアルゴリズムと同じレベルのセキュリティが維持される。
めに、依然として、鍵に対する計算をより高速に行う必要がある。
れる計算の1つである。このような計算の速度を高める1つの方法は、事前計算
された点の倍数のテーブルを使用することである。この技法は、点が事前にわか
っているときにさらに有用である。しかし、未知の点の倍数が必要になる場合が
ある(たとえば、ECDSA検証)。したがって、点乗算を容易にするシステムおよ
び方法が必要である。
導かれる整数λとの組合わせとして表す。
られた場合、複素乗算写像と点Qにλを乗じることが等しくなる二次方程式の解
λが存在する、という考えに基づく方法である。λを整数とみなしてEC乗算を実
行するのと比べて、複素乗算写像を介してλQを算出する方がコストが低いこと
が多い。実際には、他のスカラー(λ以外)による点乗算が必要になる。乗算写
像を使用して点の他の倍数を算出できることも示す。
であって、 楕円曲線上のすべての点Q(x, y)についてψ(Q) = λ・Qである自己準同形写像
ψが存在するように、有限体Fの上の楕円曲線を選択するステップと、 スカラーkのより小さな表現kiと写像ψとの組合わせを使用して楕円曲線点Q
のスカラー倍数を算出するステップとを含む方法が提供される。
る以下の詳細な説明でより明らかになろう。
、データ通信システム10は、通信チャネル16によって接続され、送信側12および
受信側14として指定された一対の通信者を含む。各通信者12、14は、デジタル情
報を処理し、この情報を後述のようにチャネル16を通して送信する準備をするこ
とのできる暗号化プロセッサ18、20をそれぞれ含む。プロセッサ18、20は、プロ
セッサに組み込まれた集積回路で実現するか、あるいは汎用プロセッサと共に所
定のプロトコルを実施するようにデータキャリア上に符号化された命令として実
現することができる。図をわかりやすくするために、通信者12は、比較的限られ
た計算力を持つ専用プロセッサ18を有するスマート・カードの形であると仮定す
る。好ましくは、プロセッサ20は、チャネル16によってカードと通信する中央サ
ーバであり、チャネル16は無線通信チャネルである。
プロセッサ18の機能の1つは、整数であるkと、基本楕円曲線上の点であるQと
を暗号化方式における鍵対k、kQとして使用できるように、k・Qの形の点乗算を
実行することである。上記で指摘したように、楕円曲線点とスカラー値の乗算な
どの暗号化計算はコストがかかる。
り、全体的に符号50によって示されている。本発明のアルゴリズムは、プロセッ
サ12がたとえば、特定の種類の楕円曲線に関してメッセージに署名しメッセージ
を検証する速度を高める。この方法は、Fq(qは素数べき乗)として例示された
有限体上の楕円曲線Eに関する以下の一般的な数式が与えられ、 y2 + a1xy + a3y = x3 + a2x2 + a4x + a6 (1) 自己準同形写像ψが存在し、楕円曲線上のすべての点Q(x, y)点についてψ(Q) =
λ・Qである場合、点Qと整数kとの乗算は、kのより小さな表現kiと写像ψと
の組合わせを利用することによって速度を高めることができるという考えに基づ
く方法である。写像ψは、kQに関する後の計算で使用できる群要素およびそれら
の組合わせを事前に算出することも可能にする。
のフローチャートが符号50で示されている。まずシステム・パラメータが選択さ
れる。最初のステップとして、ある特性を有する基本楕円曲線Eが選択される。
本発明の第1の実施形態では、一般化された楕円曲線(1)を以下の形式で表す
ことができる。 E: y2 = x3 + b mod p(Pは素数) (2)
、かつγ3 ≡ 1 mod p(1の立方根)である数γが存在するように係数pを求め
ることができる。たとえば、p = 7である場合、23 mod 7 = 1であるので、γ =
2である。このようなγはすべてのpに対して存在するわけではなく、したがっ
て、pの値を選択する際にはこのことを考慮しなければならない。通常、適切な
暗号強度を得るには、選択されるpの長さが少なくとも160ビットであるべきで
ある。
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に関する数式を満足する。したがって、長い計算を実行して
λによる乗算の結果を求める代わりに、λによる乗算を非常に効率的に実行でき
るように写像関数の結果を使用して非常に効率的にこれを行うことができる。
、p、Q、λ、ψ(Q)、およびγが、暗号化プロセッサ18によって使用できるよ
うにカード12に記憶される。暗号化、鍵一致、署名などの暗号化手順を実施する
には、短命秘密鍵kとして使用される整数kを選択し、対応する公開鍵kQを生成
する必要がある。
点k・Qは次式のようになる。 k・Q = (k0Q + k1λQ) mod n (4)
うな場合、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)の右辺を高速に計算す
ることができる。都合上、このアルゴリズムを以下に再現する。加群において、
べき乗が加算に類似しており、したがって、このアルゴリズム内の乗算を加算で
置き換えると以下の手順が得られる。
QおよびλQがあり、したがって、2つの整数e0、e1、すなわちk0、k1があるこ
とがわかる。このアルゴリズムでは、いくつかの値を事前に算出することができ
、最初にGiが算出される。l = 2によってGiを事前に算出した結果をテーブル1
(表1)に示す。
ル1に記入してテーブル2(表2)を作成することが可能である。図2のステッ
プ58に示すように、これらの要素を事前に算出しメモリに記憶することができる
。
ズムのステップを実行することはできない。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の反復が行われる。
から1に等しい。したがって、GI1はG1であり、これはテーブル2からQである
。したがって、I = 1の場合の反復によるAの値はO + Q = Qである。
2Qであり、テーブル3からIi = I2 = 3である。したがって、GI2はテーブル3
からG3に等しく、すなわち、Q + ψ(Q)である。
されるまで、テーブル4(表4)に記載されたiの値ごとに継続される。
合によっては、GIiの値はOであり、この場合、計算量が削減される。
の点加算が必要であることがわかる。点加算の数は、ウィンドウ技法(アルゴリ
ズム14.85 HAC)および指数再符号化技法を使用して削減することができる。i
およびGiの値を事前に算出することができるので、事前に算出された適切な要素
Giをテーブル2から検索することによって点加算を容易に実行することができる
。kPが算出された後、チャネル16を介した暗号化伝送または署名伝送において通
信者12の短命公開鍵としてこのkPを使用することができる。
、対応する公開鍵kQが算出される。それぞれ、長さnの2分の1の長さを有する
、値k0およびk1がランダムに選択され、適切なアルゴリズムを使用して項k0Q =
k1λQが生成される。kをこのように選択すると、この方法は、k自体をランダ
ムに生成するのと同程度に安全であると思われる。もちろん、効率を向上するた
めにより少ないビット数のkiを選択することが可能である。
よって、同時多重加算アルゴリズムの速度が高められる。k = k0 + k1λを書き
込む技法は、スカラー乗算技法、すなわち、ワインディング、組合わせなどと共
に使用することもでき有利である。
能である。いくつかの写像ψでは、k = k0 + k1λ + k2λ2を書き込み、同時多
重加算アルゴリズムを適用することによってkの値を算出することができる。
すなわち、 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)}に等しい数の点倍加と、同様な数の
点加算が必要である。前述のように、ウィンドウ技法および指数再符号化技法を
使用して点加算の数を削減することができる。
円曲線にも適用することができる。
びk1を選択することができるものと仮定し、kを求めている。kを選択すること
が可能な暗号化プロトコルの場合、まず、k = (k0 + k1λ) mod nになるように
kの所与の値から所望の「短い」形式のk0、k1を求める必要がある。場合によっ
ては、3つ以上のkを使用することができ有利である。
作成して乗算の速度を高めることができる。しかし、未知の点の倍数が必要にな
る場合があり(たとえば、これはECDSA検証で起こる可能性がある)、その場合
、与えられたkの値をとり、次いでkiの適切な表現を決定する必要がある。
れ、点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が生成される
。
数式を得ることによって、kQを効率的に算出することができる。 k0Q + λk1Q
f0およびf1を導くことによって行われる。ベクトルzは、分数f0およびf1とkを
組み合わせることによって生成される。ベクトルzを使用して、v’ = (v0’, v 1 ’)である第2のベクトルv’が算出され、kQの値が、
られる格子基底削減アルゴリズム(HAC、118ページ)を利用することが可能であ
る。しかし、この好ましい実施形態では、簡単な拡張ユークリッド・アルゴリズ
ムが対(n, λ)に対して使用される。(n, λ)に対する拡張ユークリッド・ア
ルゴリズムにより、iに応じてriの表現(たとえば、ビット長)が小さくなり、
ciおよびdiの表現が大きくなる線形組合わせcin + diλ = riが作成される。
2つの最小値が保存される。これらのベクトルのサイズが、平方ユークリッド基
準|(di, ri)| = di 2 + ri 2を用いて測定される。これらの最小関係の項は、 および として示され、通常、アルゴリズムの中央で得られる。最小関係が保持されない
場合でも、この方法は、部分最適関係により、依然として点倍数の計算において
有利である。
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が成立する。
さな成分を有するような整数が選択される。この場合も、この方法は、v’の成
分が小さい場合に利点を有し、該成分が必ずしも最小限でない場合でも利点を有
する。
て算出される。基底間の変換では行列乗算が行われる。ベクトルv = (v0, v1)を
{u0, u1}基底から標準基底{(1, 0), (0, 1)}に変換する場合、次式が成立する。
する場合、乗算は単にMの逆数によって行われる。
れず、したがって、{u0, u1}に変換する場合に必要なのは次式の分数だけである
。
十分な精度に事前に算出しておくことができる。これらの分数をもたらす計算が
kに依存せず、したがって、楕円曲線がシステム・パラメータとして選択される
際にこれらの分数を1度算出することができ、各kごとに再計算する必要はない
。同様に、ベクトルv、u0、およびu1を事前に算出し記憶することができる。
d(kf0), round(kf1))として定義されるz = (z0, z1)を計算することによってkQ
の値を算出することができる。zの近傍の他のベクトルも有用であり、したがっ
て、丸めを床関数または天井関数、あるいは何らかの他の近似で置き換えること
ができる。
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を得る
ことができる。
、次式のような小さなベクトルを得ることができる。
要とされる処理能力が大幅に低減される。また、このような反復計算が行われる
速度が高められ、それによって、情報を転送するための時間が短縮される。
. km-1λm-1で表された後、同時多重加算アルゴリズムの代わりに、あるいはこ
のアルゴリズムと共に、効率的な楕円曲線スカラー乗算を行うための他の方法を
使用することができる。このような方法には、ウィンドウ技法(固定およびスラ
イド)、組合わせ技法、ビット再符号化技法、およびこれらの技法の組合わせが
含まれる。
ブルを他の成分k1などに再使用することができる。これは、必要に応じて写像γ
を適用することにより、算出されたテーブル要素を変換することによって行われ
る。
がmビットを有し、kiが約m/3ビットを有する実施形態について以下に説明する
。
符号付き2進表現に再符号化することができる。この再符号化は、表現ki内のあ
らゆる1ビットまたは‐1ビットが符号付き2進文字列内で他の非ゼロに隣接し
ないような非隣接形式(NAF)をとることができる。
とができる。
めのテーブルである。このウィンドウの幅によってテーブルのサイズが決定され
る。kiが、隣接する非ゼロを有さないように再符号化されているので、奇数ウィ
ンドウ幅が適切である。3ビット幅NAFウィンドウは以下のものを含む。
ことによって作成される(H.A.C.、616ページ)。
点を加算または減算するだけでよいので、このテーブルを使用することによって
必要な加算数を削減することができる。
にψ写像が写像される場合にkiλP計算に適用することができる。同様に、k0P用
に作成されたテーブルを使用するが、テーブル要素にγ2を写像することによっ
て、k2λ2Pの速度を高めることができる。
1組の倍加だけである。
ブルが事前に算出される。この場合、2回のEC加算および2回のEC倍加が必要で
ある。
出することができる。 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を生成する。
形写像ψが与えられた場合、すべての点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を表す)あるベクトルと近傍のベク
トルとの差を求めることによって行われる。
同形写像および基底変換および「Shamir’s trick」)を適用することについて
明白に説明する。特に、pが奇素数である曲線E(Fp m)への適用について説明する
。以下の実施形態ではこのような曲線に対する技法を例示する。
, B∈FpであるE’A,B(Fp m)が使用される場合において説明する。
Fp m)であることがわかっている。
れている。
bmおよび前述の技法を使用することができる。
効率的であることが理解されよう。
Claims (11)
- 【請求項1】 楕円曲線点Q(x, y)にスカラーを乗じて点kQを提供する方法
であって、 a)λを整数として、楕円曲線上のすべての点Q(x, y)についてψ(Q) = λ・Q
である自己準同形写像ψが存在するように、有限体Fの上の楕円曲線を選択する
ステップと、 b)前記スカラーkの表現を成分kiと前記整数λの組合わせとして確立するス
テップと、 c)前記表現と前記点Qを組み合わせてkQに対応する倍数の複合表現を形成す
るステップと、 d)kQの前記複合表現から前記点kQに対応する値を算出するステップとを含む
ことを特徴とする方法。 - 【請求項2】 前記各成分kiが、前記スカラーkよりも短いことを特徴とす
る、請求項1に記載の方法。 - 【請求項3】 前記成分kiがまず選択され、その後組み合わされて前記スカ
ラーkが形成されることを特徴とする、請求項1に記載の方法。 - 【請求項4】 前記表現が 【数1】 の形式であり、nが楕円曲線上の点の数であることを特徴とする、請求項1に記
載の方法。 - 【請求項5】 前記表現がk0 + k1の形式であることを特徴とする、請求項
4に記載の方法。 - 【請求項6】 前記スカラーkが所定の値および前記成分kを有することを
特徴とする、請求項1に記載の方法。 - 【請求項7】 前記倍数kQの前記値が、同時多重加算を使用して算出される
ことを特徴とする、請求項3に記載の方法。 - 【請求項8】 前記同時多重加算において使用される一群の項G1が事前に算
出されることを特徴とする、請求項7に記載の方法。 - 【請求項9】 体Fの短基底ベクトル(u0, u1)を得て、ベクトルvを(k, 0)
として指定し、vを正規直交基底から(u0, u1)基底に変換し、ベクトルvを表す
分数f0, f1を得て、前記分数をkに適用しベクトルzを得て、ベクトルvの効率
的な等価物v’を算出し、ベクトルv’の成分をkQの複合表現で使用することによ
って、前記成分kiが得られることを特徴とする、請求項6に記載の方法。 - 【請求項10】 Qを曲線上の点として、整数kを有し、秘密鍵および公開鍵
kQを提供する鍵対を楕円曲線暗号システムにおいて生成する方法であって、 a)楕円曲線上のすべての点Q(x, y)についてψ(Q) = λ・Qであり、λが整数
である自己準同形写像ψが存在するように、有限体Fの上の楕円曲線を選択する
ステップと、 b)前記スカラーkの表現を成分kiと前記整数λの組合わせとして確立するス
テップと、 c)前記表現と前記点Qを組み合わせてkQに対応する倍数の複合表現を形成す
るステップと、 d)kQの前記複合表現から前記点kQに対応する値を算出するステップとを含む
ことを特徴とする方法。 - 【請求項11】 請求項2から9のいずれか一項に記載の方法を含むことを特
徴とする、請求項10に記載の方法。
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)
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)
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)
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)
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 |
-
1998
- 1998-12-24 CA CA002257008A patent/CA2257008C/en not_active Expired - Lifetime
-
1999
- 1999-12-23 JP JP2000591498A patent/JP4662577B2/ja not_active Expired - Lifetime
- 1999-12-23 EP EP99962006A patent/EP1141820B1/en not_active Expired - Lifetime
- 1999-12-23 WO PCT/CA1999/001222 patent/WO2000039668A1/en active IP Right Grant
- 1999-12-23 DE DE69903854T patent/DE69903854T2/de not_active Expired - Lifetime
-
2001
- 2001-06-22 US US09/885,959 patent/US7110538B2/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000276046A (ja) * | 1998-09-03 | 2000-10-06 | Nippon Telegr & Teleph Corp <Ntt> | 楕円曲線演算装置、演算方法及びその方法を実施するプログラムを記録した記録媒体 |
Cited By (11)
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 ("XTR") | |
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 |