JP2001510912A - 直接埋め込み方式による高速楕円曲線暗号化の方法と装置 - Google Patents
直接埋め込み方式による高速楕円曲線暗号化の方法と装置Info
- Publication number
- JP2001510912A JP2001510912A JP2000503629A JP2000503629A JP2001510912A JP 2001510912 A JP2001510912 A JP 2001510912A JP 2000503629 A JP2000503629 A JP 2000503629A JP 2000503629 A JP2000503629 A JP 2000503629A JP 2001510912 A JP2001510912 A JP 2001510912A
- Authority
- JP
- Japan
- Prior art keywords
- computer
- clue
- program code
- text
- elliptic
- 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/727—Modulo N arithmetic, with N being either (2**n)-1,2**n or (2**n)+1, e.g. mod 3, mod 4 or mod 5
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
米国特許第5159632号として発行されている)の継続出願である1992
年10月2日出願の米国特許出願第955479号(現在は米国特許第5271
061号として発行されている)の継続出願である1993年12月14日出願
の米国特許出願第167408号の一部継続出願である米国特許出願第4842
64号(現在は米国特許第5581616号として発行されている)の継続出願
である米国特許出願第758688号の一部継続出願である。
システムであって、メッセージが「安全」である、つまり対象となる受信側のみ
がメッセージを復元できるような媒体を使用する。暗号化システムは、「平文」
と呼ばれるメッセージを「暗号文」と呼ばれる暗号化形式に変換する。暗号化は
、「暗号鍵」つまり鍵を使用してメッセージを操作または変換することにより実
行される。受信側は、暗号鍵または鍵を使用して操作または変換プロセスを反転
することにより、メッセージを「復号化」する、つまり暗号文から平文に変換す
る。送信側と受信側のみが暗号鍵を知っている限り、このような暗号化された送
信は安全である。
ができる暗号システムである。セキュリティのために、古典的暗号システムでは
暗号化鍵を秘匿し、安全なチャネル上でシステムのユーザに送る必要がある。秘
密宅配便、盗聴防止機能付き電話伝送回線などの安全チャネルは多くの場合、非
実用的で、高価である。
と呼んでいる。定義により、公開鍵暗号システムは、メッセージを暗号化する方
法を知っているだけでは計算に法外に長い時間をかけないと暗号化鍵を使用して
復号化鍵を見つけられないという特性を持つ。暗号化機能としては、暗号化鍵が
判明したら、暗号化機能を比較的容易に計算できるようなものを選択する。ただ
し、暗号化変換機能の逆の計算は困難であるか、または計算上実行不可能である
。このような機能を「一方向機能」または「トラップドア機能」と呼ぶ。公開鍵
暗号システムでは、鍵に関するある種の情報は公開される。この情報は、安全で
ない方法で公開または送信されることがあり、またそうされることが多い。さら
に、鍵に関するある種の情報は秘密にされる。この情報は、プライバシー保護の
ため安全なチャネル上で配布することができる(あるいは、プライバシー確保の
ためローカル・ユーザが作成することもできる)。
ックで表される送信側が、平文メッセージPtxtを、破線115内のブロック
図で表される受信側に送信する。平文メッセージは、暗号文メッセージCに暗号
化され、何らかの送信媒体上で送信され、受信側115によって復号化され、平
文メッセージPtxtが再現される。
鍵ソース103を備える。鍵ソース103は、回線104を介して安全鍵ジェネ
レータ102に接続されている。安全鍵ジェネレータ102は、回線105を介
して暗号化デバイス101に結合されている。暗号化デバイスは、回線106上
に暗号文出力Cを送る。安全鍵ジェネレータ102は、回線107上に鍵出力を
出す。この出力は、暗号文メッセージ106とともに、送受信機109に送られ
る。送受信機109は、たとえば、モデムなどのコンピュータ送信デバイスや、
無線周波送信信号を送信するためのデバイスであってもよい。送受信機109は
安全でないチャネル110上で安全鍵と暗号文メッセージを受信側の送受信機1
11に出力する。
鍵ソース118を備える。鍵ソース118は、回線119上で安全鍵ジェネレー
タ117に結合されている。安全鍵ジェネレータ117は、回線120上で暗号
化デバイス116に結合されている。暗号化デバイス116は、回線121を介
して送受信機111に結合されている。安全鍵ジェネレータ117は、回線12
2および123上で送受信機111に結合されている。
tがある。送信側100と受信側115は両方とも、それぞれ、同じ暗号化方式
を使用する暗号化デバイス101と116を備える。暗号化デバイスに実装でき
る適当な暗号システムがいくつかある。たとえば、データ暗号化標準(DES)
や他の適当な暗号化方式を実装することができる。
を備える。これらの安全鍵ジェネレータは、複数のよく知られている公開鍵交換
方式のうちの1つを実装している。後述するこれらの方式は、Diffie−H
ellman方式、RAS方式、Massey−Omura方式、およびElg
amal方式を含む。
スは乱数ジェネレータであってよい。秘密鍵が安全鍵ジェネレータ102に提供
され、これを使用して暗号化鍵eKを生成する。暗号化鍵eKは回線105上で暗
号化デバイスに送信され、これを使用して、平文メッセージPtxtを暗号化し
、回線106上に用意される暗号文メッセージCを生成して送受信機109に送
る。安全鍵ジェネレータ102はさらに、安全鍵を鍵ソース103から暗号化鍵
eK に変換するために使用される情報も送信する。この情報は、秘密鍵を知らず
にこの情報から暗号化鍵を再現するのは実際上不可能なので、安全でないチャネ
ル上で送信することができる。
成する。この秘密鍵119は、復号化鍵DK を生成するために送信側100によ
って用意される鍵生成情報とともに安全鍵ジェネレータ117で使用される。こ
の復号化鍵DK は、回線120上で暗号化デバイス116に送られ、そこで、こ
れを使用して暗号文メッセージを復号化し、元の平文メッセージを再現する。
Cryptography」、IEEE Trans.Inform.The
ory、vol.IT−22、pp.644−654、1976年11月(「D
H」方式)で公開鍵交換の方式が述べられている。DH方式では、離散指数およ
び対数関数に基づく公開鍵システムを記述している。「q」を素数、「a」を原
始元とすると、1≦X、Y≦(q−1)の範囲のXとYについて1対1の関係が
あり、有限体上でY=aX mod q、かつX=loga Yを満たす。第1の 離散指数関数は与えられたaおよびXについて容易に評価できるため、公開鍵Y
の計算に使用される。Diffie−Hellmanシステムのセキュリティは
、与えられたXおよびYについて離散対数関数X=logaYを解く汎用の高速 アルゴリズムが知られていないという事実に依っている。
れるか、もしくは何らかの手段で一般に利用できるようにされる。与えられた公
開鍵はユーザにしか知られていない関連付けられた秘密鍵に依存している。しか
し、公開鍵から秘密鍵を決定することは実質的に不可能である。たとえば、送信
側が「myPub」という公開鍵を持つとする。受信側は「theirPub」
という公開鍵を持つとする。送信側はさらに、「myPri」という秘密鍵を持
つ。同様に、受信側も、「theirPri」という秘密鍵を持つ。
manシステムの場合には、これらの要素は、素数pと原始元gを含む。pとg
は両方とも、公に知られている。公開鍵を生成するには、(mod p)に関し てgに秘密鍵指数を累乗する。たとえば、送信側の公開鍵myPubは次の式で
生成される。 myPub=gmyPri(mod p) 式(1)
る。前記のように、公開鍵は一般の人々が容易に入手することができる。つまり
、公開され、配布されている。さらに、安全でないチャネル上で送信することも
できる。公開鍵が知られていても、離散対数問題を解くのは困難であるため、逆
関数によって秘密鍵を計算することは非常に難しい。
れ図である。ステップ201で、素数pを選択している。この素数pは、公開さ
れている。次に、ステップ202で、原始根gを選択している。この数gも公に
知られている。ステップ203で、暗号化鍵eKを生成し、受信側の公開鍵(t heirPub)を底、送信側の秘密鍵(myPri)を指数とするべき乗を計
算する。つまり、次のようになる。 (theirPub)myPri(mod p) 式(3)
る。したがって、式(3)は次の式で求められる。 (gtheirPri)myPri(mod p) 式(4)
用される暗号化鍵eKである。メッセージを暗号文にする、あるいは暗号化する 特定の方法は、よく知られているいくつかの方法のうちの1つであってよい。ど
の暗号化メッセージを使用するにせよ、暗号鍵は式4で計算した値である。その
後ステップ204で、暗号文メッセージが受信側に送信される。
秘密鍵(theirPri)を指数とするべき乗を計算して次のように復号化鍵
DKを生成する。 DK=(myPub)theirPri(mod p) 式(5)
。これらの鍵を「一回の暗号パット」と呼ぶ。一回の暗号パットは、メッセージ
の暗号化および復号化に使用される鍵である。
使用して変換アルゴリズムまたは暗号化方式の逆を実行するだけである。送信側
と受信側の両方が暗号化鍵の生成にその秘密鍵を使用しなければならないため、
他のユーザは暗号文メッセージを読んだり、復号化したりできない。ステップ2
05はステップ201〜204よりも前またはそれと同時に実行できることに注
意されたい。
ital Signatures and Public Key Crypt
osystems」,Commum.Ass.Comput.Mach.,vo
l.21,pp.120−126,Feb.1978(「RSA」方式)では他
の公開鍵暗号システムを提案している。RSA方式は、非常に大きな2つの素数
を生成し、それらを掛け合わせることが簡単にできるという事実に基づいている
が、その結果を因数分解する、つまりその積から非常に大きな素数を求めること
はきわめて困難である。したがって積は、復号化鍵を効果的に構成する素数を損
なうことなく暗号化鍵の一部として公開することができる。
を選択し、それらを掛け合わせてn=pqを求める。数pおよびqは、数百桁の
長さになりうる。次に、Eulerの関数をφ(n)=(p−1)(q−1)と
して計算する(φ(n)は、1からnまでの範囲の整数値で、nと公約数を持た
ない)。φ(n)は0からn−1までの範囲の任意の整数aと、整数kについて
、akφ(n)+1=a(mod n)となる特性を持つ。
る。乱数Eは、暗号化鍵であり、公開されている。そこで、2つの数の最大公約
数を計算するEuclidのアルゴリズムの拡張バージョンを使用してD=E-1 (mod φ(n))を簡単に計算できる。Dは復号化鍵であり、秘密にしてお
く。
文メッセージを暗号文メッセージに次のように変換する。まずメッセージをそれ
ぞれ0からn−1までの範囲の整数列として表す。Pをそのような整数とする。
次に、関係式C=PE(mod n)により対応する暗号文整数を与える。情報 (D,n)を復号化鍵として使用し、P=CD(mod n)を介して暗号文か ら平文を復元する。これらは、CD=PED=pkφ(n)+1=Pなので、逆変換であ る。
述されている。Massey暗号システムでは、有限体Fqを選択する。体Fqは
固定であり、公に知られている体である。送信側と受信側はそれぞれ最大公約数
G.C.D.(e,q−1)=1となるような0からq−1の範囲の乱数整数e
を選択する。次に、ユーザはEuclidアルゴリズムを使用してその逆D=e -1 (mod q−1)を計算する。したがって、De=1(mod q−1)と
なる。
つのメッセージを送信する必要がある。送信者Aは受信者BにメッセージPを送
信する。送信者Aは乱数eAを計算し、受信者Bは乱数eBを計算する。送信者は
まず、受信者に要素Pe Aを送信する。受信側はeA を知らないのでPを復元でき
ない。その代わりに、受信側はその要素を底、自分の秘密鍵eB を指数とするべ
き乗を計算し、第2のメッセージPe A e Bを送信側に返信する。次に、送信側はそ
の要素を底、DA-thを指数とするべき乗を計算してeAの効果を除去し、Pe B を
受信者Bに返信する。受信者Bは、その要素を底、DB-thを指数とするべき乗を
計算してこのメッセージを読むことができる。
要素gを使用する。それぞれのユーザは0>a>q−1の範囲の整数aを無作為
に選択する。整数aは秘密復号化鍵である。公開暗号化鍵はF* qの要素ga であ
る。Pで表されているメッセージをユーザAに送信するために、整数Kを無作為
に選択している。Fqの要素のペア、つまり(gK,PgaK)がAに送信される。
平文メッセージPtxtが鍵gaKによって暗号化される。値gK は平文メッセー
ジPtxtを決定するための受信側の「手がかり」である。しかし、この手がか
りは安全な復号化鍵「a」を知っている人しか使用できない。受信者Aは、「a
」を知っており、第1の要素gKを底、aを指数とするべき乗を計算して、(gK )aを求め、その結果を第2の要素に除算することにより、このペアからメッセ ージPを復元する。
線暗号システムは、有限体F上で定義された楕円曲線Eの点に基づいている。楕
円曲線暗号システムは、セキュリティに関して、離散対数問題を解くのが困難で
あるという事実に依存している。楕円曲線暗号システムの利点は、有限体を選択
するよりも楕円曲線を選択するほうが自由度が高いという点である。しかしなが
ら、楕円曲線暗号システムは、多量の計算を必要とすることからコンピュータ・
ベースの公開鍵交換システムでは広く使用されるにいたっていない。コンピュー
タ・ベースの楕円曲線暗号システムは、他のコンピュータ公開鍵交換システムに
比べて低速である。楕円曲線暗号システムは、「A Course in Nu
mber Theory and Cryptography」(Koblit
z著、1987年、Springer−Verlag、New York)に記
述がある。
円曲線代数を暗号化方式自体として使用するにあたって適当な方式が提案されて
いない。
である。このような楕円曲線代数を使用する直接埋め込み法では、いわゆるDE
S段などの中間暗号生成器段を回避している。本発明で埋め込みが容易になるの
は、pをp=2q−C=3(mod 4)となる素数としたときに、有限体Fp上
の楕円曲線パラメータ化を選択した結果である。整数qとCの選択では、pを素
数とし、高速な算術演算を実行できるようにC(負の場合もある)を十分小さく
とっている。
p=3(mod 4)となるように素数pを選択したからである。平文点を含む
曲線を選択するプロセスのことをここでは、「直接埋め込み」と呼ぶ。直接埋め
込みを使用すると、通常であれば込み入ったプロセスとなるKoblitz他の
非決定論的アルゴリズムを回避できる。
使用される。E+および捻れE-と表記された2つの楕円曲線、これらの曲線P1 + とP1 -上の初期点、それぞれ初期点と秘密鍵theirPriおよびourPr
iから楕円乗算で導かれるtheirPub+、theirPub-とourPu
b+、ourPub-の両方に対する公開鍵点があると仮定する。0からp−1ま
での範囲の1パーセルの平文xtextを選択する。E+またはE-にx座標xtextの
点が含まれているかどうかを調べる。乱数rを選択し、これを使用して、適切な
公開点theirPub-の楕円曲線乗算によりその曲線上に新しい座標xqを生
成する。楕円曲線上の2点の加算と減算の両方のx座標を計算できるが、どの結
果がどの演算に対応しているかを区別しないelliptic_add演算を仮
定する。点xtextとxqのelliptic_add演算を実行し、2つの結果 のうちの1つを選択して、暗号化メッセージ点xm(たとえば、xmはxtext+x q またはxtext−xqのいずれか)を生成する。xtextとxqに対してellip tic_addの逆演算を実行し、結果のどれにより演算が逆になるか(xm+ xqまたはxm−xqからxtextが明らかになる)を判別し、選択をgと表す。手 がかりxcを乱数rの楕円乗算と適切な初期公開点P±により構成する。3つ組 (xm ,g,xc)を受信側に送信する。受信側はxcとtheirPriの楕円
乗算によりxq を計算し、さらにxmとxqに対してelliptic_addを
計算し、gを使用して結果xmを選択する。xmのx座標は平文の元のパーセルで
ある。
送信することにより送信者と受信者との間に同期乱数ジェネレータを設定してそ
れぞれの暗号化されたパーセルのサイズを縮小することができる。第1の同期し
ている手がかりは、送信側ではtheirPub± とourPriおよびrと の連続楕円乗算、受信側ではourPubとtheirPri± およびrとの 連続楕円乗算によって構成される。連続する手がかりxcluenは、手がかりxclu en-1 に対するelliptic_add演算の第1の結果と初期点P1 ±とsの 楕円乗算で構成される点を選択することで構成される。次に、第1にどの曲線に
点xtextが含まれているかを判別し、xtextとxcluen のelliptic_a
ddの第1の結果でxmを構成し、さらにxmおよびxcluen に対するellip
tic_addの結果におけるxm の位置をgと記することで平文のそれぞれの
パーセルを暗号化する。ペア(xm ,g)が受信側に送信される。受信側はどの
曲線がxmに属し、xmおよびxcluen に対してelliptic_addを実行
するかを判別し、gを使用して2つの結果から元のメッセージ・パーセルxm を
選択する。
できるように、ビット数、実行時間など多くの具体的内容を詳細に取りあげてい
る。しかし、本発明は、こうした具体的内容を示さなくても実施可能であること
は当業者には明白なことであろう。他に、本発明をわかりにくくするのを避ける
ため、よく知られている機能については詳細に説明しなかった。
によるコンピュータ実装暗号化方式に比べて満足な速度を達成できないという点
である。従来技術による楕円曲線暗号システムで必要なモジュロ演算と楕円曲線
代数演算は、除算の実行を必要とする。除算があると、コンピュータのCPU(
中央処理装置)の計算オーバーヘッドが増大する。CPUは、除算よりも、加算
と乗算を高速に、しかも少ない処理ステップで実行できる。したがって、従来技
術による楕円曲線暗号システムは、これまで、Diffie−Hellmanお
よびRSA方式などの他の従来技術による暗号システムに比べて実用的あるいは
望ましいものとなっていなかった。
実装する方法と装置を提供する。本発明の好ましい実施形態の利点は、数の高速
クラス、逆変換のないパラメータ化、FFT乗算剰余演算(multiply mod operat
ion)を実装することにより実現できる。
使用し、 上の式でc=0とした、 ±y2=x3+ax+b 式(7d) は、Weierstrassパラメータ化と呼ばれるもので、これもまた後で説
明のため使用する。
定し、 ourPri、theirPriεZ と表記する。
おりである。 p=2q−Cが高速クラス数(qは「ビット深さ」)となるようなq。値qは 、公に知られている値である。 Fpkが体となるpとk。素数pと整数kは公に知られている数である。 公に知られている、初期x座標である(x1,y1)εFpk。 すべて公に知られている、整数曲線定義パラメータである(a,b,c)εF p k。
楕円乗算の演算は文献でもよく知られており、本特許で、次のように式7dのW
eierstrassパラメータ化を使用して説明する。Montgomery
パラメータ化などの他のパラメータ化についても類似の規則が得られる。
n°(X1,Y1)は、加算および2倍の規則と呼ばれる、次の関係式により求め
られる点(Xn,Yn)を表す。 Xn+1=((Yn−Y1)/(Xn−X1))2−X1−Xn 式(8) Yn+1=−Y1+((Yn−Y1)/(Xn−X1))(X1−Xn+1) 式(9)
る。送信側と受信側は共に、楕円曲線上の特定のx座標として共有暗号パッドを
生成する。
手」および「相手側」という用語で受信側を示す。この規約を使用するのは、本
発明の鍵交換は1人または複数の送信者と1人または複数の受信者との間で実行
可能だからである。そのため、「自分」および「自分側」と「相手」および「相
手側」はそれぞれ1人または複数の送信者と受信者を指している。
したがってすべてのユーザに知られる。
°(theirPri)°(x1,y1) 式(14)
Pri)°(ourPri)°(x1,y1) 式(15)
たがって、式14と15の演算の順序は、式の結果に影響を与えることなく入れ
替えることができる。したがって、 ourPad=(ourPri)°(theirPri)°(x1,y1)=(
theirPri)°(ourPri)°(x1,y1)=theirPad
式(16)
号化したメッセージを受信側で復号化することができる。(ステップ305はス
テップ301−304のどれかよりも前または同時に実行できることに注意され
たい)。
tを暗号化し、暗号文メッセージCを受信側に送信する。ステップ307で、受
信側はtheirPadを使用して、暗号文メッセージCを復号化し、平文メッ
セージPtxtを復元する。
パッドなどのある種のパラメータを決定する。モジュロ演算は、式の結果の中の
ビット数を一定の数に制限し、セキュリティを実現するという2つの目的に使用
される。離散対数問題は、モジュロ演算を使用しているため一部非対称である。
モジュロ演算の欠点は、除算を実行する必要があるという点である。モジュロ演
算の解は、数値を一定の数で除算したときの余りである。たとえば、12 mo
d 5は2に等しい。(12を5で2回割ると余りは2になり、余り2が解とな
る)。したがって、モジュロ演算では除算が必要である。
号化で必要なモジュロ演算を最適化している。本発明で使用するクラスの数は一
般に、Cを奇数で、比較的小さな値とし(たとえば、コンピュータのワード長以
下)、C=1(mod 4)とした場合の2q−Cという形式で記述される。
のみを使い、除算を使わずに、実行することができる。この高速クラスの一群に
、Mersenne数と呼ばれる数があり、2q −1という形式である。本発明
で使用できる他のクラスは、Fermat数と呼ばれるもので、2q +1という
形式であり、qは2m に等しい。Fermat数は、本発明では素数でも素数で
なくてもよい。
で、かつpは高速クラス数である。式p=2q −CによってqとCのすべての値
について素数が得られるわけではないことに注意されたい。たとえば、qが4に
等しく、Cが1に等しい場合、2q−Cは15に等しいが、これは素数ではない 。しかし、qの値が2、3、または5で、C=1であれば、式2q −Cは素数3
、7、および31を生成する。
、高速クラスの数の要素である。データの2進表現を使用してコンピュータ上で
実行する場合、高速クラスの数を使用することでシフト演算と加算のみにより(
mod p)演算を実現できる。それとは対照的に、「低速な」数を使用した場
合には、時間のかかる除算を実行して(mod p)演算を実行する必要がある
。以下の例では、高速クラスの(mod p)演算の利点を示している。
11100110101(基数10では、この数値は3,991,652,14
9である)を考える。
127は除算では次のように計算できる。
od p)を考え、nは3,991,652,149で、pは127であるとす
る。pが127であれば、p=2q−1からqは7に等しい。127=27−1=
128−1=127である。
0111100011100110101を使用して実行できる。図5では、ま
ずnのq個の下位ビット(LSB)501、つまり0110101をラッチして
シフト演算と加算を実行する。残りの桁のq個のLSB 502つまり、000
1110をq個の桁501に加算し、和503(1000011)を得る。nの
次のq個のLSB 504(0101111)を和503に加算して、和505
(1110010)を生成する。nのビット506(1101111)を和50
5に加算し、和507(11100001)を得る。
に加算して、和509(11101111)を生成する。この和のビット数はq
よりも多い。したがって、第1のqビット510(1101111)と次のqビ
ット511との和をとり(この場合単一ビット1)、和512(1110000
)を生成する。この和は、ビット数がq以下であり、n(mod p)の解であ
る。1110000=26+25+24=64+32+16=112。
楕円曲線を使用する場合にシフト演算と加算のみで決定される。Mersenn
e数を楕円曲線暗号システムで使用すると、明示的な除算が不要になる。
演算は、除算を使用せずに、シフト演算、加算、および減算(負の加算)のみで
実行できる。再びn(mod p)を考え、nを3,991,652,149、
pを今度は257とする。pが257だと、qはp=2q+1から8に等しく、 257=28+1=256+1=257となる。
0111100011100110101を使用して実行できる。図6では、シ
フト演算と加算はまずq(8)個の下位ビット(LSB)601(001101
01)をラッチすることで実行される。残りの桁の次のq個のLSB602、つ
まり11000111をq桁601から減算する。これを実行するために、ビッ
ト602の1の補数を生成し、1をMSB側に加算して、負数とし、ビット60
2’(100111000)を得る。この負数602’をビット601に加算し
て、結果603(101101101)を生成する。nの次のq個のLSB60
4(11101011)を和603に加算して、結果605(10010110
00)を生成する。nのビット606(11101101)を結果605から減
算する。したがって、ビット606の1の補数が生成され、1の負の符号ビット
がMSB側に加算され、ビット606’(100010010)が生成される。
ビット606’が結果605に加算されて、和607(1101101010)
を生成する。
101010)としてラッチされる。次のqビット(この場合、2ビットのみ、
11)をビット608に加算し、和610(01101101)を生成する。こ
の和は、ビット数が9以下であり、n(mod p)の解である。011011
01=26+25+23+22+20=64+32+8+4+1=109。
値(たとえば、2進ワードの長さ以下)の場合、(mod p)演算は、除算な
しでシフト演算と加算のみを使用して実行できる。再びn(mod p)を考え
、nが685、pが13であるとする。pが13のとき、p=2q −Cから、q
は4に等しく、Cは3に等しい。13=24−3=16−3=13である。
して実行できる。図7において、まずnのq(4)個の下位ビット(LSB)7
01、つまり1101をラッチしてシフト演算と加算を実行する。残りのビット
702(101010)にC(3)を掛けると、積703(1111110)が
生成される。積703をビット701に加算して、和704(10001011
)を生成する。和704のq個の下位ビット705(1011)をラッチする。
残りのビット706(1000)にCを掛けて、積707(11000)を生成
する。積707をビット705に加算して、和708(100011)を生成す
る。和708のq個の下位ビット709(0011)をラッチする。残りのビッ
ト710(10)にCを掛けて、積711(110)を生成する。積711をビ
ット709に加算して、和712(1001)を生成する。和712は、ビット
数がq以下であり、n(mod p)の解である。1001=23+20=8+1
=9である。685を13で割ると、余りは9となる。この高速クラス算術演算
では、シフト演算、加算、および乗算のみを使用して解を求めることができる。
現できる。p=2q−1の場合、 x=(x&p)+(x>>q) 式(17) を数回使用して、0からp−1までの区間で正のxを適切な剰余値にすることが
できる。この手順では、シフト演算と加算のみが必要である。それとは別に、数
値x(mod p)を、 x=a+b2(q+1)/2=(a,b) 式(18) で表すことができる。
なシフト−加算の演算が必要になる場合がある。
は、古典的な拡張GCD手順の2進数形式を使用するものである。もう1つは、
関係簡約方式を使用するものである。関係簡約方式は次のように動作する。
−z); 7)Go to(2).
[a/b]2により、明示的な除算を使用せずに実行できる。
。本発明を実施するためのコンピュータ・システムの一実施形態を図4に示す。
キーボード410およびマウス411が双方向システム・バス419に結合され
ている。キーボードとマウスは、ユーザ入力をコンピュータ・システムに送り、
そのユーザ入力をCPU413に伝達するためのものである。図4のコンピュー
タ・システムは、さらに、ビデオ・メモリ414、メイン・メモリ415、およ
び大容量記憶装置412を備えており、すべてキーボード410、マウス411
、およびCPU413とともに双方向システム・バス419に結合されている。
大容量記憶装置412は、磁気、光、または光磁気記憶装置システムや他の利用
可能な大容量記憶装置技術などの固定媒体と取り外し可能媒体の両方を備えるこ
ともできる。大容量記憶装置は、ネットワークで共有したり、専用大容量記憶装
置とすることもできる。バス419には、たとえば、ビデオ・メモリ414やメ
イン・メモリ415をアドレス指定するために32本のアドレス線を備えること
ができる。システム・バス419も、たとえば、CPU413、メイン・メモリ
415、ビデオ・メモリ414、および大容量記憶装置412などの構成要素間
でデータをやり取りするための32ビット・データ・バスを備える。それとは別
に、データ線とアドレス線を別々にする代わりに、データ線とアドレス線を多重
化することもできる。
どの、Motorola社製の32ビット・マイクロプロセッサである。ただし
、他の適当なマイクロプロセッサやマイクロコンピュータでもかまわない。Mo
torola社製マイクロプロセッサとその命令セット、バス構造および制御線
については、アリゾナ州フェニックスのMotorola Inc.で出版して
いる『MC68030 User’s Manual』および『MC68040
User’s Manual』で説明されている。
AM)で構成されており、本発明の好ましい実施形態では、8メガバイトのメモ
リ構成である。本発明の範囲を逸脱することなく、メモリ容量を増減することが
できる。ビデオ・メモリ414はデュアル・ポート・ビデオ・ランダム・アクセ
ス・メモリであり、本発明では、たとえば、256Kバイトのメモリ構成である
。ただし、これもまたビデオ・メモリの増減が可能である。
6に結合されており、さらにビデオ増幅器417に結合されている。ビデオ増幅
器417を使用して、陰極線管(CRT)ラスタ・モニタ418を駆動する。ビ
デオ多重化シフタ回路416およびビデオ増幅器417はよく知られている技術
であり、適当な手段で実装が可能である。この回路は、ビデオ・メモリ414に
格納されているピクセル・データをモニタ418で使用するのに適したラスタ信
号に変換する。モニタ418は、グラフィック画像を表示するのに適した種類の
モニタであり、本発明の好ましい実施形態では、解像度が約1020×832と
なっている。他の解像度のモニタも本発明では使用可能である。
は、どのような種類のコンピュータ・システムあるいはプログラミングまたは処
理環境であっても実装できる。
されている送信側が、平文メッセージPtxtを暗号文メッセージCに暗号化す
る。このメッセージCは、破線802で囲まれた構成要素で表される受信側に送
信される。受信側802は、暗号文メッセージCを復号化して、平文メッセージ
Ptxtを復元する。
ス807がある。暗号化/復号化手段803は、回線809を介して楕円乗算器
805に結合されている。楕円乗算器805は、回線811を介して秘密鍵ソー
ス807に結合されている。
806に結合されている。楕円乗算器806は、回線812を介して秘密鍵ソー
ス808に結合されている。
urPri」が含まれる。秘密鍵ソース807は、コンピュータ・システム内の
記憶レジスタ、メッセージが送信されると送信側から暗号システムに送られるパ
スワード、あるいはメッセージが送信されたり、取り出されたりしたときに図8
の暗号システムによって読み取られる符号化された物理的な鍵であってよい。同
様に、受信側802の秘密鍵ソース808は、受信側の安全な秘密パスワード、
つまり「theirPri」を含む。
b」および「theirPub」、初期点(X1、Y1)、体Fpk、および曲線 パラメータa、b、cなどの公知の情報が格納される。この情報源は、コンピュ
ータ・システムによって使用されるオンライン・ソースである、公開されている
ディレクトリであってもよく、また安全でない送信媒体上で送信側と受信側との
間で送信することもできる。公開ソース813は図では、回線815を介して送
信側801に、また回線814を介して受信側802に記号的に結ばれている。
るため共有の暗号パッドを生成する。送信側の秘密鍵ourPriが、送信側の
公開鍵theirPubとともに楕円乗算器805へ送られる。楕円乗算器80
5は、暗号化鍵eKを(ourPri)°(theirPub)(mod p) から計算する。暗号化鍵は、平文メッセージPtxtとともに暗号化/復号化手
段803に送られる。暗号化鍵は、暗号文メッセージCを生成するために、DE
S方式や本発明の楕円曲線方式などの暗号化方式で使用される。暗号文メッセー
ジを安全でないチャネル816上で受信側802に送信する。
成する。theirPriは、送信側の(公開ソース813からの)公開鍵ou
rPubとともに秘密鍵ソース808から楕円乗算器804に送られる。復号化
鍵DK は、(theirPri)°(ourPub)(mod p)から生成さ
れる。復号化鍵DKは、楕円乗算機能の可換であるという性質から暗号化鍵eKに
等しい。したがって、受信側802は、復号化鍵DK を使用して、暗号化方式を
逆にし、暗号文メッセージCから平文メッセージPtxtを復元する。
ム・ステップとして実装し、マイクロプロセッサで実行させることができる。
かし、上の式13−16に示されているように、楕円乗算「°」は、除算を何回
か実行する必要がある。本発明を使用すると、逆変換なしにする初期パラメータ
化を選択することで、楕円乗算に必要な除算の回数を減らすことができる。これ
は、「Y」項が不要になるように初期点を選択することで実現される。
有の暗号パッドを生成する。初期点(X1,Y1)を適切に選択することにより、
乗算n°(X1,Y1)を設定するプロセスから除算をなくすことができる。次の
ステップでは、整数nについて、 n°(Xm/Zm) 式(20) は、座標(Xn+m/Zn+m)を表している。x=X/Zについて、Xn/Znとして
の乗算n(x,y)のx座標は、乗算剰余演算を必要とする加算−2倍規則にし
たがって「2進はしご」法を使用して計算する。Montgomeryパラメー
タ化(式7c)では、これらの規則は、 If i≠j: Xi+j=Zi-j(XiXj−ZiZj)2 式(21) Zi+j=Xi-j(XiZj−ZiXj)2 式(22) である。
たときに計算が簡略化される。これは、「逆変換なしのパラメータ化」と呼ばれ
(除算がないので)、Montgomery,P.著『Speeding th
e Pollard and Elliptic Curve Methods of Factorization』(Math.Comp.、48(243
−264)、1987年)に記載されている。体が単なるFp であった場合、こ
の方式により、乗算、加算、(高速)Mersenne mod演算を使用して
複数のnxを計算することができる。これはさらに、体がFp 2の場合にも、成立
する。任意のMersenne数pについてp=3(mod 4)なので、Xi またはZi を複素整数として表し、複素数算術演算を実行して、乗算後の実部と
虚部の両方を(mod p)で素早く簡約することができる。さらに、Z1 =1
も選択し、曲線上の初期点が、yが不要になる場合に(X1 /1,y)となるよ
うにする。
の方法を使用する公開鍵交換を次のように実行できる。次の例では、素数はMe
rsenne数である。ただし、ここで説明するどの高速クラス数を代替するこ
ともできる。
する。ourPubεFpkXFpk (X/Z)=ourPri°(X1/1) ourPub=XZ-1 2)「相手」側で、曲線パラメータ(a,b,c)を使用して、公開鍵を計算
する。theirPubεFpkXFpk (X/Z)=theirPri°(X1/1) theirPub=XZ-1 3)2つの公開鍵ourPubとtheirPubは公開されており、従って
知られている。 4)共有の暗号パッドを計算する。ourPadεFpkXFpk (X/Z)=ourPri°(theirPub/1) ourPad=XZ-1 5)共有の暗号パッドを計算する。theirPadεFpkXFpk (X/Z)=theirPri°(ourPub/1) theirPad=XZ-1
パッドに従って進む。
を使って乗算を実行すると都合がよい。FFT乗算は、p=2q −1がq=220 (約100万)ビット以下の場合に汎用演算xy(mod p)について、たと
えば、68040ベースのNeXTstation上で正確に動作する。さらに
、Mersenne数pについても、2進ビットの位数qの巡回たたみ込みが乗
算(mod 2q −1)に等価であることが観察されたときにさらに無駄を省け
る。FFT乗算手法を使用すると、q2 ではなく、qlogqにおおよそ比例す
る時間で乗算−modを実行することができる。
するものと同じである。次に、式21−24から座標を計算することができる。
たとえば、Xi+j を計算するには、5つの適切な変換(X i 、X j 、Z i 、Z j 、お
よびZ i-j )(一部は、すでに格納されている)を使用して、次の変換を作成で
きる。 X i+j=Zi-j(X i X j−Z i Z j)2
FT方式に対してFFTは11個になることに注意されたい)。比7/11では
、固有の方法の無駄がかなり省かれる。pがMersenne数で、誤りのない
数論的変換も利用できるような場合には、過去からのスペクトルを確保し、長時
間の計算でスペクトル空間にとどまることができ、この方法により、時間がいっ
そう短縮する。
の本発明の動作を示す流れ図を図9に掲載した。ステップ901で、高速クラス
数pは、p=2q −Cとなるように選択する。項qは、暗号化方式のビット深さ
である。ビット数が多ければ多いほど、セキュリティは高くなる。大きな値のq
について、FFT乗算を使用してpを計算する。項pを公開して使用できるよう
にする。
、楕円曲線上の初期点(X1/Z)を選択する。初期点を逆変換なしになるよう
に選択することにより、コストのかかる除算を避ける。初期点を公開する。ステ
ップ904で曲線パラメータaを選択し、公開する。
ourPri°(X1 /1)を計算する。送信側の公開鍵が、ourPub=(
XZ-1)(mod p)で生成される。受信側の公開鍵theirPub=(X
Z-1)(mod p)はステップ906で生成される。
X/Z=(ourPri)°(theirPub/1)。ourPud=(XZ -1 )(mod p)。ステップ908で、受信側の1回限りの暗号パッドthe
irPadを生成する。X/Z=(theirPri)°(ourPub/1)
。theirPud=(XZ-1)(mod p)。ourPadとtheirP
adの計算で、FFT乗算を使用して、逆変換Z-1を不要にする。ステップ90
9で、送信側はourPadを使用して平文メッセージPtxtを暗号文メッセ
ージCに変換する。暗号文メッセージCは受信側に送信される。ステップ910
で、受信側は、theirPadを使用して暗号文メッセージCを復号化して平
文メッセージPtxtを復元する。
e数である代数的因数M89=289−1が発生する。これは、M445=2445−1の
因数分解を実行しようとして示された。つまり、乱数パラメータc(a=0,b
=1としてMontgomeryパラメータ化を使用する)について、p=M89 としたFp 上の楕円曲線の出現k(X1/1=0は統計的に、M445のM89を見つ
ける時間がO(exp(√(2log p log log p))であるという漸
近的推定と統計的に一致していた。そこで、これらの観察から、Mersenn
e数については乱数cパラメータを仮定した場合にFp 上の群の位数を見つける
のが「偶然にも」あまり容易でないということが示唆された。
ックするために、特定のcパラメータについて、束縛されている整数の集合では
、 (pN−1)(X1/1)≠0 が成立することを検証できる。
けるためである。不等号が成立しないというのは非常にまれであり、実際、この
時点ではq>89なる数について自明でない実例が知られている。
どの因数分解方式を特徴とする。本発明は、少ないビットと高速な演算でありな
がら、同じセキュリティを実現できる。それとは別に、本発明のシステムでは同
じビット数にして、セキュリティを高めることもできる。
RSAなどの従来技術の方式では、秘密鍵を作成するために大きな素数を生成す
る必要がある。本発明では、秘密鍵を素数にする必要はない。したがって、ユー
ザは、正しい公知のパラメータを使用して公開鍵が生成され公開される場合に限
り、自分の秘密鍵を生成することができる。ユーザは、RSAシステムで自分の
秘密鍵を生成することはできない。
署名を作成し認証する改良された方法を提示する。送信側は暗号化メッセージ「
暗号文」を作成済みである。このメッセージを前記のように暗号化するか、また
は他の暗号化方式を使用して暗号化することができる。送信側は、次に、電子署
名を作成して、メッセージの「署名」の手段としてメッセージに添付する。好ま
しい実施形態の署名方式について以下の段で説明し、その後、計算を減らす方法
を説明する。
さらに、開始点は楕円曲線上で位数Nであると仮定する。送信側の公開鍵our
Pubを複数のourPri°(X1 /1)として生成するが、ここでourP
riは自分の秘密鍵(整数)、°は楕円曲線上の乗算である。電子署名は次のよ
うに作成される。 1)約qビットの乱数整数mを選択する。 2)点を P=m°(X1/1) を計算する。 3)メッセージ・ダイジェスト関数Mを使用して、整数 u=(m+ourPri*M(暗号文,P))(mod N) を計算する。ただし、暗号文は送信する暗号化されたメッセージである。 4)暗号文とともに、電子署名をペア(u,P)として送信する。uは約2q ビットの整数であるが、Pは曲線上の点であることに注意されたい。
スト関数Mを電子署名の生成の一部として使用する。ただし、本発明は他のダイ
ジェスト関数を使用したり、適当なハッシュ関数を使用しても、実装できる。
点のペアを生成して電子署名の一致を調べることにより署名を認証しようとする
。受信側は、次のステップで署名を検証する。 1)署名のu部分を使用して、点 Q=u°(X1/1) を計算する。 2)点Qと点 R=P+M(暗号文,P)°ourPub を計算する。
まり、署名が信頼のあるものであれば、次の式が成立しなければならない。 u°(X1/1)=P+M(暗号文,P)°ourPub
)°ourPub または m°(X1/1)+(ourPri*M(暗号文,P))°(X1/1)=P+ M(暗号文,P)°ourPub となる。
(ciphertext,P)°ourPri°(X1/1) となる。
る式を使用して計算される。送信された点uからのQを計算し、さらに送信され
たP、暗号文メッセージ、および意図されている送信側の公開鍵からRを計算す
ることにより、QとRが一致すれば電子署名が認証されたと仮定する。
忘れると、ペア(u,P)と式 u°(X1/1)=P+M(暗号文,P)°ourPub を満たす暗号文を見つけなければならなくなる。
またはハッシュ関数Mを破る必要がある。
PとM(暗号文,P)°ourPubを加えてRを求め、その和を点Qと比較す
る必要がある。各ステップで指定されたy座標を使用して楕円加算を実行するこ
ともできる。本発明の方式では、注目している要素の2つの点のそれぞれのx座
標のみを使用して、2つの点の和のx座標の可能な値を小さくする方法を実現す
る。点QとP+M(暗号文,P)°ourPubが同一のx座標を持つかどうか
をチェックする必要があるが、この方法を使用して、そのチェックを高速に実行
することができる。
ば、Montgomeryパラメータ化を使用し、曲線を y2=x3+cx2+x とする。
線上の3つの点とし、x1≠x2とする。このとき、 x(C−x)=B2 の場合、かつその場合に限り、 P1+P2=Q が成立する。 ただし、 B=(x1x2−1)/(x1−x2) C=2((x1x2+1)(x1+x2+2c)−2c)/(x1−x2)2 とする。
ついて、2つの形式(x1,y1)±(x2,y2)のそれぞれのx座標(e、fと
呼ぶ)であることに注意されたい。前記のように、 ef=B2 e+f=C をMontgomeryの場合のように計算できる。xはe、fのうちの一方ま
たは他方なので、定理の2次方程式が成り立つには、(x−e)(x−f)=0
である必要がある。
を満たす2つの解を持つ可能性がある。したがって、偽物の署名から一方の可能
な解が生成される。ただし、(x−e)(x−f)=0を満たすときに、文字通
り何100万もの解があるので、署名は信頼できると仮定しても安全である。
た点Pを表す。P2 は、式M(暗号文,P)°ourPubを表す。もちろん、
Qはu°(X1/1)を表す。P1+P2はRを表し、Qと比較される。
プ1001で、送信側は乱数整数mを選択する。この乱数整数は、マイクロプロ
セッサで使用する適当な乱数生成器を使用して生成できる。ステップ1002で
は、mを使用して点Pを計算する。前記のように、本発明の好ましい実施形態で
は、この点は関係式P=m°(X1 /1)を使用して生成される。ただし、本発
明の範囲を逸脱することなく点Pを生成するために他の方式を使用することもで
きる。
ッセージを使用して計算する。本発明の好ましい実施形態では、これは、関係式
u=m+ourPri*M(暗号文,P) を使用して生成する。前記のように、
ダイジェスト関数MD2およびMD5以外のハッシュ関数を使用することもでき
る。さらに、uを計算するために、他の関係式を使用することもできる。他の関
係式を使用する場合には、そのm、P、ourPri、および暗号文メッセージ
を使用するようお勧めする。ステップ1004で、計算で求めたペア(u,P)
を電子署名として送信する。
1で、メッセージの受信者は電子署名(u,P)と暗号文メッセージを受信する
。ステップ1102で、点uを使用して、点Qを生成する。好ましい実施形態で
は、関係式Q=u°(X1/1)を使用してQを生成する。送信側がu、Pを計 算するのにどのような関係式を使用したかに応じて他の関係式を使用することも
できる。
してP2を生成する。送信側がu、Pを計算するのにどのような関係式を使用し たかに応じて他の関係式を使用することもできる。
にeとfを決定する。これにより、P1とP2の和の可能な2つのx値が得られる
。決定ブロック1105で、引数「e,f=x?」を付けて、P1+P2=Qの等
式を可能なx値のいずれかが満たすかどうかを判断する。計算で求めたx値のい
ずれも方程式を満たさない場合、つまり、決定ブロック1105での引数が偽で
あれば、署名は信頼できるものではなく、ブロック1106で指示される。x値
のうちの1つが方程式を満たす場合、つまり決定ブロック1105での引数が真
であれば、有効な署名であると仮定され、ブロック1107で指示される。
が図8の要素と共通である場合には、同じ要素番号を使用する。楕円乗算を使用
する暗号化方式で使用する署名方式を取りあげているが、これは例として取りあ
げただけである。本発明は、どのような種類の暗号化方式とも使用することがで
きる。
ジPtxtを暗号文メッセージCに暗号化し、署名(u,P)を生成する。この
メッセージCと署名(u,P)は、破線1202で囲まれている構成要素で表さ
れている受信側に送信される。受信側1202は、暗号文メッセージCを復号化
して、平文メッセージを復元し、署名(u,P)を認証する。
成器1205、ハッシュ生成器1207、および秘密鍵ソース807を備えてい
る。暗号化/復号化手段1203は、回線809を介して楕円乗算器805に結
合されている。楕円乗算器805は、回線811を介して秘密鍵ソース807に
結合されている。乱数生成器1205は、回線1209上で乱数mを楕円乗算器
805とハッシュ生成器1207に送る。楕円乗算器805は、回線1211を
介して安全でないチャネル816に数値uを送る。暗号化されている暗号文Cが
回線1213を介してハッシュ生成器1207に送られる。ハッシュ生成器12
07は、回線1215を介して点Pを安全でないチャネル816に送る。
算器806に結合されている。楕円乗算器806は、回線812を介して秘密鍵
ソース808に結合されている。数値uは、回線1212を介して安全でないチ
ャネル816から楕円乗算器806に送られる。楕円乗算器806は、点Qを生
成し、回線1216を介して比較器1208に送られる。ハッシュ生成器120
6は、回線1210を介して安全でないチャネル816から暗号文メッセージC
および点Pを受信し、さらに回線1218を介してソース813からourPu
bを受信する。ハッシュ生成器1206は、回線1214を介して点Rを比較器
1208に出力する。
rPri」を含む。秘密鍵ソース807は、コンピュータ・システム内の記憶レ
ジスタ、メッセージが送信されたときに送信側が暗号システムに送るパスワード
、さらにはメッセージを送信または受信したときに図12の暗号システムによっ
て読み取られる符号化された物理的鍵であってもよい。同様に、受信側802の
秘密鍵ソース808は受信側の安全な秘密パスワード「theirPri」を含
む。
b」および「theirPub」、初期点(x1,y1)、体Fpk、曲線パラメ ータa、b、cなどの公知の情報を格納する。この情報源は、コンピュータ・シ
ステムによって使用されるオンライン・ソースである、公開されているディレク
トリであってもよく、また安全でない送信媒体上で送信側と受信側との間で送信
することもできる。公開ソース813は図では、回線815を介して送信側12
01に、また回線814と1218を介してそれぞれ受信側1202とハッシュ
生成器1206に記号的に結ばれている。
として使用するため1回限りの共通の暗号パッドを生成する。暗号化鍵を、平文
メッセージとともに暗号化/復号化手段1203に送る。DES方式や本発明の
楕円曲線方式などの暗号化方式とともに暗号化鍵を使用して、暗号文メッセージ
Cを生成する。乱数生成器1205は、乱数mを生成し、楕円乗算器805に送
る。楕円乗算器805は、数値uを生成し、安全でないチャネル816を介して
受信側に送る。暗号文メッセージCは、乱数mとourPriとともにハッシュ
生成器1207に送られる。ハッシュ生成器1207は、点Pを生成し、安全で
ないチャネル816に送る。暗号文メッセージは、署名(u,P)とともに、安
全でないチャネル816上で受信側1202に送信される。
13からの)とともに、秘密鍵ソース808から楕円乗算器806に送られる。
復号化鍵DK は、(theirPri)°(ourPub)(mod p)から
生成される。復号化鍵DKは、楕円乗算機能の可換性のため、暗号化鍵eKに等し
い。したがって、受信側1202は、復号化鍵DK を使用して暗号化方式を逆に
し、暗号文メッセージCから平文メッセージを復元する。
を受信する。楕円乗算器806は、点Qを生成し、比較器1208に送る。ハッ
シュ生成器は、安全でないチャネル816から暗号文メッセージCと点P、ソー
ス813から意図されている送信側の公開鍵ourPubを受信して、点Rを生
成し、点Rを比較器1208に送る。比較器1208は、点QとRを比較し、一
致している場合には、署名は有効であると仮定する。本発明では、前記のx値を
使用して最適化されている方式により点QとRの比較を実行する。
、プログラム・ステップとして実装し、マイクロプロセッサ上で実行させること
ができる。
できるという事実を利用している。受信側の公開鍵を使用し、送信側はメッセー
ジ座標、手がかりの値および符号を生成し、3つ組として受信者側に送信する。
手がかりと受信側の秘密鍵を使用して、メッセージ座標からテキスト・パーセル
を復号化することができる。展開できない形では、送信側と受信側は自分の共有
の暗号パッドを使用して、共有の手がかりを計算し、それぞれのメッセージ座標
が1ビットの符号とともに送信されるようにする。
り、密に定義されている)であり、平文の任意のパーセルが直接埋め込まれ、当
然、可能な2つの曲線のうちの1つに埋め込まれる。この曲線を「+」曲線およ
び「−」曲線と呼んでいる。
より暗号化されているパーセルのサイズを縮小することができる。これは、送信
側と受信側との間で同期をとる際に手がかりを生成する手段を設定することによ
り実現される。たとえば、前記の直接埋め込みの方法を使用して、送信側から受
信側に2つの乱数r、sを安全に送信することができる。送信側は、第1の手が
かりを clue1=r°ourPri°theirPub として計算し、同様に、受信側は同じ手がかりを clue1=r°theirPri°ourPub として計算する。
。 cluen+1=cluen+s°P ただし、Pは曲線上の初期点である。
し、ただ1つのペア(message,g)として送信される。
で復号化できるようにどの曲線を使用するかを識別する。
ものである。点Ptextを暗号化する平文のパーセルを含む曲線の点とする。前記
の高速楕円曲線代数を使用することで、点のペアと単一ビットgからなる3つ組
を送信することができる。 (Ptext+r°theirPub,r°P1,g) (実際、本来の曲線点のペアと1ビットではなく、送信するx座標のペアと1ビ
ットだけが送信される)。ただし、rは乱数整数である。この送信を (メッセージ、手がかり、パリティ) として定性的に考える。
heirPri」を使用して、「メッセージ」から平文を推論する。パリティ・
ビットは、曲線の曖昧さと2次式の符号曖昧さに応じて全体的な符号の結果とな
る。
れる。
無限遠点」Oとともに曲線の符号sは+1または−1、およびc≠2のいずれか
に制限される。実際の曲線点には太字を使用していることに注意されたい。つま
り、ここまでの記法は、 x、yは両方とも整数(mod p)である 曲線上の点Pはペア(x,y)である または抽象的な「無限遠点」Oの場合もある Eは、すべてのPの集合である。
り点Pの総数は
Oは加法的な単位要素であるが、加法の群の公理は次のように働く。2つのOで
ない点 P1=(x1,y1) P2=(x2,y2) について、曲線の加法を P3=P1+P2=(x3,y3) で定義し、減法を P4=P1−P2=(x4,y4) で定義し、その際にMontgomeryパラメータ化a=1、b=0の関係式
数は別に
変換のないパラメータ化を使用して、高速楕円曲線乗算を実行する。いくつかの
点P=(X1,y)について、Pのn回乗算をPのn個のコピーの楕円和として 定義し、n°Pと表す。(整数n=0の時、0°Pを抽象点0と解釈する。)そ
こで、Z1 =1がわかっているとして、複数のn°Pのx座標をXn/Znと表す
。整数Xn、Znは、いくつかの加算−2倍規則に従って2進はしご法により評価
することができる。これらの規則は前記の基本的な加法/減法の法則から導くこ
とができ、上の式21、22、23、および24の形式をとる。
これらの演算は、効率化することができる。さらに、鍵または暗号パッドを解決
するために必要な単一の逆変換Z-1も高速に実行できる。いずれにせよ、すべて
の算術演算は乗算、シフト演算、加算で実行することができ、そのため除算を使
用しないシステムができあがる。
て説明したように実行できる。逆(mod p)は、上述のように式19に従っ
て計算することができる。
際に、ある小さな整数mについてO(qlogmq) の時間がかかる。逆変換の
時間は、上述のような累積FFT乗算手法と競合する。
つの高速楕円曲線 E±:±y2=xQ(x) の1つに存在するある点の有効なx座標である。 pはMersenne数で、したがって=3(mod 4)なので、整数s=
xQ(x)は平方またはその負の値であることに注意されたい。
と仮定する。このとき、x3は、次の式を満たさなければならない。 x1≠x2の場合:2次関係式x3(G(x1,x2)−x3)=F(x1,x2)2 a x1=x2の場合:関係式x3=(x1 2−1)2/4x1Q(x1))
する。 P3=P1+P2=(x3,y3) P4=P1−P2=(x4,y4) このとき、x3は次の2つの値のうちの1つである。 (x1Q(x2)+x2Q(x1)±2(x1Q(x1)x2Q(x2))(p+1)/4)/ ((x1−x2)2) ただし、x4は他の値である。
スまたはマイナスa(P+1)/4(mod p)である。
たは−が次の式で成立するいずれかの符号により与えられる。 (xQ(x))(P+1)/2=±xQ(x)(mod p) xQ(x)が0であれば、+曲線が使用される。
が得られる。 2つの点 P1 +=(X1 +,?) P1 -=(X1 -、?) が曲線E±上にそれぞれ存在するような2つの公開されている初期x座標X1±
。y座標(「?」で表されている)は、高速楕円代数を使用する場合には無視で
きる。 公開鍵のペアが存在している。theriPub±は (theirPub±、?)=theirPri°P1 ± に従って、単一の秘密鍵theirPriから生成される。 平文を、それぞれqビット以下のパーセルに分ける。つまり、パーセルは値
(mod p)である。 符号sを使用して上の定理4からまたはまれなケースであるx1=x2の場合
は定理3から、x3またはx4のうちの1つを計算する関数elliptic_a
dd(x1,x2,s)が存在すること。
いずれかを決定する。前記曲線を符号s=±1で表す。 2.乱数rを選択し、前記のはしご算術演算を使用して(xq,?):=r° (theirPub±,?)を計算する。 3.メッセージ座標xm:=elliptic_add(xtext,xq,+1)
を計算する。 4.乱数rを使用して手がかりxcを計算し、公開点を(xc,?):=r°P 1 ± として計算する。 5.elliptic_add(xm,xq,±1)=xtext内で有効な符号を
決定し、これを符号gとする。 6.メッセージ座標の3つ組、手がかり、および符号を送信側に(xm,xc,
g)として送信する。
添付した。実際の実施では、乱数整数楕円乗算(rによる)は定期的にしか実行
しないので、実行時間が短縮する。事実、rの乗算は、たとえば定理4で具現化
されているべき乗以上に実際にコストがかかることがわかっている。
。ステップ1301で、平文をそれぞれqビット以下のパーセルに分割する。各
パーセルxtextについて、ステップ1302で、2つの曲線E±のうちのどれに
対してパーセルが有効なx座標であるかを決定する。これは、前記の定理5を使
用して実行できる。ステップ1303で、しかるべき曲線を符号=±1で表す。
して実行できる。ステップ1306で、メッセージ座標xmを計算する。これは 、xm:=elliptic_add(xtext,xq,+1)または他の適当な方
法により実行できる。ステップ1307で、手がかりを計算する。これは、(x c ,?):=r°P1 ±で実行できる。
は、elliptic_add(xm,xq,+1)がxtextに等しいかどうかを
テストして決定することができる。ステップ1309で、メッセージ座標、手が
かり、および符号を3つ組として(xm,xc,g)という形式で受信側に送信す
る。
ップ1401で、送信側から3つ組(xm,xc,g)を受信する。ステップ14
02で、(xq,?):=theirPri°(xc,?)からx座標xqを計算 する。次にステップ1403で、xtext:=elliptic_add(xm, xc,g)により平文を復元することができる。
効な点か(またはxtextiが有効な座標であるものはどれか)を決定する。 4.正しい曲線点を使用して、メッセージ座標 mi:=elliptic_add(xtexti,cluei,+1) を計算する。 5.elliptic_add(mi,cluei,±1)のどの符号でxtexti を復元するかを決定し、この符号をgとする。 6.ペア(mi,g)を送信する。 7.後のパーセルについて、 cluei+1=elliptic_add(r°cluei,s,+1) を計算し、ステップ3−6を繰り返す。
れ図である。ステップ1500で、平文をそれぞれqビット以下のパーセルに分
割する。ステップ1501で2つの乱数rとsを選択し、ステップ1502で受
信側に送信する。ステップ1503で、乱数rとsを使用して両方の曲線につい
て初期手がかりclueとsを決定する。
が有効なx座標になるのは2つの曲線E±のうちどちらであるかを決定する。ス
テップ1505で、mi:=elliptic_add(xtexti,cluei, +1)を使用してメッセージ座標を計算する。ステップ1506で、送信側は、
elliptic_add(mi,cluei,±1)内のどの符号でxtextiを 復元するかを決定し、この符号をgとする。
と乱数rとsを使用してステップ1508で次の手がかりを計算する。ステップ
1508の後で、プロセスはステップ1504に戻り、次のパーセルを暗号化す
る。
ステップ1600で、受信側は、受信側によって送信された乱数rとsを復元し
、ステップ1601で、乱数rとsを使用して、初期手がかりを決定する。ステ
ップ1602で、受信側は送信側が送信したペア(m,g)を復元する。現在の
ペア(m、g)について、ステップ1603で、受信側はどの楕円曲線に点mが
あるかを決定する。決定された曲線の点を使用して、ステップ1604でell
iptic_add(clue、m,g)を使って平文パーセルを復元する。ス
テップ1605で、前の手がかりおよび乱数rとsに基づいて次の手がかりを計
算する。ステップ1605の後で、プロセスはステップ1602に戻り、次のパ
ーセルに取りかかる。
ticaを使って書いたコード例を以下に示す。
示す。
ができる。以下は、本発明の暗号化/復号化の実装に適したプログラム・インタ
フェース(.hファイル)とテスト・プログラム(.cファイル)の例である。
算を説明する図である。
。
。
Claims (34)
- 【請求項1】 送信側コンピュータ・システム内で平文メッセージを暗号化
する方法であって、 平文xtextのパーセルを選択するステップと、 2つの楕円曲線E+とE-のどちらについて平文xtextが有効な座標であるかを
決定するステップと、 乱数r、公開鍵/秘密鍵ペアからの公開鍵、および平文xtextを使用してメッ
セージ座標xmを生成するステップと、 手がかり値xcを生成するステップと、 符号値gを生成するステップと、 前記の暗号化されたメッセージを、前記メッセージ座標、前記手がかり、およ
び前記符号で表すステップ を含む方法。 - 【請求項2】 前記メッセージ座標、前記手がかり、および前記符号が受信
者に送信されることを特徴とする請求項1に記載の方法。 - 【請求項3】 前記公開鍵が前記受信側の公開鍵であることを特徴とする請
求項2に記載の方法。 - 【請求項4】 2つの曲線のうちどれについてxtextが有効な座標であるか
を決定する前記のステップを q、a=0、b=±1、c≠2を仮定して、2つの可能な楕円曲線E±を得る
ステップと、 2つの点P1 +およびP1 -がそれぞれ曲線E+とE-上にあるような2つの公開座
標x1±を仮定するステップと、 xtextが有効な座標となる曲線の符号を、 (xtextQ(xtext))(p+1)/2=±xtextQ(xtext)(mod p) p=3(mod 4) によって決定するステップにより実行することを特徴とする請求項1に記載の方
法。 - 【請求項5】 メッセージ座標を生成するステップを、 乱数rを選択し、(xq,?):=r°(theirPub±,?)を計算す るステップと、 メッセージ座標xm:=elliptic_add(xtext,xq,+1)を計
算するステップにより実行することを特徴とする請求項4に記載の方法。 - 【請求項6】 手がかりxcを生成する前記ステップを(xc,?):=r°
P1 ±で実行することを特徴とする請求項5に記載の方法。 - 【請求項7】 前記符号gを決定する前記ステップを、どの符号がelli
ptic_add(xm,xq,+1)=xtext内で成立するかを決定することで
実行することを特徴とする請求項6に記載の方法。 - 【請求項8】 さらに、 前記受信側で、前記手がかりxcからxqを生成するステップと、 xtext:=elliptic_add(xm,xc,g)で平文を復元するステ
ップを含むことを特徴とする請求項7に記載の方法。 - 【請求項9】 楕円曲線代数を使用して平文メッセージを暗号化するために
コンピュータ読み取り可能なプログラム・コードが埋め込まれているコンピュー
タ使用可能媒体を含む製品であって、前記製造品内のコンピュータ可読プログラ
ム・コードが、 コンピュータに1パーセルの平文xtextを選択させるように構成されたコンピ
ュータ読み取り可能なプログラム・コードと、 コンピュータに2つの楕円曲線E+とE-のうちどちらについてxtextが有効な
座標であるかを決定させるように構成されたコンピュータ読み取り可能なプログ
ラム・コードと、 コンピュータに乱数r、公開鍵/秘密鍵ペアからの公開鍵、およびxtextを使
用してメッセージ座標xm を生成させるように構成されたコンピュータ読み取り
可能なプログラム・コードと、 コンピュータに手がかり値xcを生成させるように構成されたコンピュータ読 み取り可能なプログラム・コードと、 コンピュータに符号値gを生成させるように構成されたコンピュータ読み取り
可能なプログラム・コードと、 コンピュータに前記メッセージ座標、前記手がかり、および前記符号によって
前記の暗号化されたメッセージを表現させるように構成されたコンピュータ・プ
ログラム読み取り可能なプログラム・コードと を含むことを特徴とする製品。 - 【請求項10】 前記メッセージ座標、前記手がかり、および前記符号を受
信側に送信することを特徴とする請求項9に記載の製造品。 - 【請求項11】 前記公開鍵が前記受信側の公開鍵であることを特徴とする
請求項10に記載の製造品。 - 【請求項12】 コンピュータに2つの曲線のうちどちらについてxtextが
有効な座標であるかを決定させるように構成された前記のコンピュータ読み取り
可能なプログラム・コードが、コンピュータに q、a=0、b=±1、c≠2と仮定して、2つの可能な楕円曲線E± を得 るステップと、 2つの点P1 +とP1 -がそれぞれ曲線E+とE-上にあるような2つの公開座標x 1 ± を仮定するステップと、 xtextが有効な座標である曲線の符号を、 (xtextQ(xtext))(p+1)/2=±xtextQ(xtext)(mod p) p=3(mod 4) により決定するステップを実行させるように構成されたコンピュータ読み取り可
能なプログラム・コードを含むことを特徴とする請求項9に記載の製造品。 - 【請求項13】 コンピュータにメッセージ座標を生成させるように構成さ
れたコンピュータ読み取り可能なプログラム・コードが コンピュータに乱数rを選択し、(xq,?):=r°(theirPub± ,?)を計算させるように構成されたコンピュータ読み取り可能なプログラム・
コードと、 コンピュータにメッセージ座標xm:=elliptic_add(xtext, xq,+1)を計算させるように構成されたコンピュータ読み取り可能なプログ ラム・コードを含むことを特徴とする請求項12に記載の製造品。 - 【請求項14】 コンピュータに手がかりxc を生成させるように構成され
た前記のコンピュータ読み取り可能なプログラム・コードが、コンピュータに(
xc,?):=r°P1 ± を計算させるように構成されたコンピュータ読み取り 可能なプログラム・コードを含むことを特徴とする請求項13に記載の製造品。 - 【請求項15】 コンピュータに前記符号gを決定させるように構成された
前記のコンピュータ読み取り可能なプログラム・コードが、コンピュータにel
liptic_add(xm,xq,+1)=xtextでどの符号が成立するかを決
定させるように構成されたコンピュータ読み取り可能なプログラム・コードを含
むことを特徴とする請求項14に記載の製造品。 - 【請求項16】 コンピュータに前記受信側で、前記手がかりxcからxqを
生成させるように構成されたコンピュータ読み取り可能なプログラム・コードと
、 コンピュータに前記受信側で、xtext:=elliptic_add(xm, xc,g)によって平文を復元させるように構成されたコンピュータ読み取り可 能なプログラム・コードを含むことを特徴とする請求項15に記載の製造品。 - 【請求項17】 平文メッセージを暗号化する方法であって、 2つの乱数rとsを選択するステップと、 前記乱数r、第1の公開鍵/秘密鍵ペアからの公開鍵、第2の公開鍵/秘密鍵
ペアからの秘密鍵を使用して初期手がかりclue0を生成するステップと、 1パーセルの平文xtextiを選択するステップと、 2つの楕円曲線E+とE-のうちどちらについてxtextiが有効な座標であるか を決定するステップと、 xtextiと現在の手がかりclueiを使用してメッセージ座標miを生成する ステップと、 符号値gを生成するステップと、 ペア(mi,g)で前記の暗号化されたメッセージを表すステップと、 後続のパーセルについて、前記の現在の手がかりcluei および前記の乱数
rとsを使用して後続の手がかりcluei+1を生成するステップ を含む方法。 - 【請求項18】 さらに、送信側から受信側に前記乱数rとsを送信するス
テップと、 前記送信側から前記受信側に前記の暗号化されたメッセージを送信するステッ
プを含む請求項17に記載の方法。 - 【請求項19】 前記公開鍵が前記受信側の公開鍵であり、前記秘密鍵が前
記送信側の秘密鍵であることを特徴とする請求項18に記載の方法。 - 【請求項20】 前記の初期手がかりclue0を生成する前記ステップが clue0=r°ourPri°theirPub± を計算するステップを含み、ourPriが前記秘密鍵を含み、theirPu
b±が前記公開鍵を含むことを特徴とする請求項17に記載の方法。 - 【請求項21】 2つの楕円曲線E+とE-のうちどちらについてxtextiが 有効な座標であるかを決定する前記ステップが q、a=0、b=±1、c≠2を仮定して、2つの可能な楕円曲線E±を得る
ステップと、 2つの点P1 +とP1 -がそれぞれ曲線E+およびE-上にあるような2つの公開座
標x1 ±を仮定するステップと、 xtextiが有効な点である曲線の符号を (xtextiQ(xtexti))(p+1)/2=±xtextiQ(xtexti)(mod p) p=3(mod 4) により決定するステップを含むことを特徴とする請求項17に記載の方法。 - 【請求項22】 前記メッセージ座標を生成するステップが mi:=elliptic_add(xtexti,cluei,+1) を計算するステップを含むことを特徴とする請求項17に記載の方法。
- 【請求項23】 前記符号gを生成する前記ステップが、elliptic
_add(mi,cluei,±1)の計算時にどの符号でxtextiを復元するか を決定するステップを含むことを特徴とする請求項17に記載の方法。 - 【請求項24】 前記の後続の手がかりcluei+1を生成する前記ステッ プが、 s=s°P±を計算するステップと、 cluei+1=elliptic_add(r°cluei,s,+1)を計算
するステップを含むことを特徴とする請求項17に記載の方法。 - 【請求項25】 前記受信側で実行される、 前記乱数r、前記の第1の公開鍵/秘密鍵ペアの秘密鍵、前記の第2の公開鍵
/秘密鍵の公開鍵から初期手がかりclue0を決定するステップと、 どの楕円曲線に点miが含まれるかを決定するステップと、 xtextiを決定するためにelliptic_add(cluei,mi,g) を計算するステップと、 現在の手がかりclueiと前記乱数rおよびsを使用して後続の手がかりc luei+1を計算するステップを含むことを特徴とする請求項18に記載の方法 。 - 【請求項26】 コンピュータに楕円曲線代数を使用して平文メッセージを
暗号化させるためのコンピュータ読み取り可能なプログラム・コードが埋め込ま
れているコンピュータ使用可能媒体を含む製造品であって、前記コンピュータ可
読プログラム・コードが、 コンピュータに2つの乱数rとsを選択させるように構成されたコンピュータ
読み取り可能なプログラム・コードと コンピュータに前記乱数r、第1の公開鍵/秘密鍵ペアからの公開鍵、および
第2の公開鍵/秘密鍵ペアからの秘密鍵を使用して初期手がかりclue0 を生
成させるように構成されたコンピュータ読み取り可能なプログラム・コードと、 コンピュータに1パーセルの平文xtexti を選択させるように構成されたコン
ピュータ読み取り可能なプログラム・コードと、 コンピュータに2つの楕円曲線E+とE-のうちどちらについてxtexti が有効
な座標であるかを決定させるように構成されたコンピュータ読み取り可能なプロ
グラム・コードと、 コンピュータにxtextiと現在の手がかりclueiを使用してメッセージ座標
mi を生成させるように構成されたコンピュータ読み取り可能なプログラム・コ
ードと、 コンピュータに符号値gを生成させるように構成されたコンピュータ読み取り
可能なプログラム・コードと、 コンピュータにペア(mi ,g)で前記の暗号化されているメッセージを表現
させるように構成されたコンピュータ・プログラム読み取り可能なプログラム・
コードと、 コンピュータに後続のパーセルについて、前記の現在の手がかりcluei お
よび前記乱数rとsを使用して後続の手がかりcluei+1 を生成させるように
構成されたコンピュータ読み取り可能なプログラム・コードを含むコンピュータ
読み取り可能なプログラム・コードを特徴とする製造品。 - 【請求項27】 さらに、コンピュータに送信側から受信側に前記乱数rと
sを送信させるように構成されたコンピュータ読み取り可能なプログラム・コー
ドと、 コンピュータに前記送信側から前記受信側に前記の暗号化されたメッセージを
送信させるように構成されたコンピュータ読み取り可能なプログラム・コードを
特徴とする請求項26に記載の製造品。 - 【請求項28】 前記公開鍵が、前記受信側の公開鍵であり、前記秘密鍵が
前記送信側の秘密鍵であることを特徴とする請求項27に記載の製造品。 - 【請求項29】 コンピュータに前記初期手がかりclue0 を生成させる
ように構成されたコンピュータ読み取り可能なプログラム・コードが、 clue0=r°ourPri°theirPub± をコンピュータに計算させるように構成されたコンピュータ読み取り可能なプロ
グラム・コードを含み、ourPriに前記秘密鍵が含まれ、theirPub
±には公開鍵が含まれることを特徴とする請求項26に記載の製造品。 - 【請求項30】 コンピュータに2つの楕円曲線E+とE-のうちどちらにつ
いてxtexti が有効な座標であるかを決定させるように構成された前記のコンピ
ュータ読み取り可能なプログラム・コードが、コンピュータに q、a=0、b=±1、c≠2と仮定して、2つの可能な楕円曲線E±を得、 2つの点P1 +とP1 -がそれぞれ曲線E+およびE-上にあるような2つの公開座
標x1 ±を仮定し、 xtextiが有効な座標である曲線の符号を (xtextiQ(xtexti))(p+1)/2=±xtextiQ(xtexti)(mod p) p=3(mod 4) により決定させるように構成されたコンピュータ読み取り可能なプログラム・コ
ードを含むことを特徴とする請求項26に記載の製造品。 - 【請求項31】 コンピュータに前記メッセージ座標を生成させるように構
成された前記のコンピュータ読み取り可能なプログラム・コードが、コンピュー
タにmi:=elliptic_add(xtexti,cluei ,+1)を計算さ
せるように構成されたコンピュータ読み取り可能なプログラム・コードを含むこ
とを特徴とする請求項26に記載の製造品。 - 【請求項32】 コンピュータに前記符号gを生成させるように構成された
前記のコンピュータ読み取り可能なプログラム・コードが、elliptic_
add(mi,cluei ,±1)の計算時にコンピュータにどの符号でxtexti を復元するかどうかを決定させるように構成されたコンピュータ読み取り可能な
プログラム・コードを含むことを特徴とする請求項26に記載の製造品。 - 【請求項33】 コンピュータに前記の後続の手がかりcluei+1 を生成
させるように構成された前記のコンピュータ読み取り可能なプログラム・コード
が コンピュータにs=s°P± を計算させるように構成されたコンピュータ読 み取り可能なプログラム・コードと、 コンピュータにcluei+1 =elliptic_add(r°cluei ,
s,+1)を計算させるように構成されたコンピュータ読み取り可能なプログラ
ム・コードを含むことを特徴とする請求項26に記載の製造品。 - 【請求項34】 さらに、前記受信側のコンピュータに 前記乱数r、前記の第1の公開鍵/秘密鍵ペアの秘密鍵、および前記の第2の
公開鍵/秘密鍵ペアの公開鍵から前記の初期手がかりclue0を決定するステ ップと、 どの楕円曲線に点miが含まれるかを決定するステップと、 elliptic_add(cluei,mi,g)を計算して、xtextiを決 定するステップと、 現在の手がかりcluei と前記の乱数rおよびsを使用して後続の手がかり
cluei+1 を計算するステップを実行させるように構成されたコンピュータ読
み取り可能なプログラム・コードを含む請求項27に記載の製造品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/896,993 US6307935B1 (en) | 1991-09-17 | 1997-07-18 | Method and apparatus for fast elliptic encryption with direct embedding |
US08/896,993 | 1997-07-18 | ||
PCT/US1998/014892 WO1999004531A1 (en) | 1997-07-18 | 1998-07-17 | Method and apparatus for fast elliptical encryption with direct embedding |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001510912A true JP2001510912A (ja) | 2001-08-07 |
JP3862500B2 JP3862500B2 (ja) | 2006-12-27 |
Family
ID=25407187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000503629A Expired - Lifetime JP3862500B2 (ja) | 1997-07-18 | 1998-07-17 | 直接埋め込み方式による高速楕円曲線暗号化の方法と装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6307935B1 (ja) |
EP (1) | EP0997016B1 (ja) |
JP (1) | JP3862500B2 (ja) |
CA (1) | CA2297059A1 (ja) |
DE (1) | DE69829967T2 (ja) |
WO (1) | WO1999004531A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8301886B2 (en) | 2001-08-24 | 2012-10-30 | Zih Corp. | Method and apparatus for article authentication |
USRE44220E1 (en) | 1998-06-18 | 2013-05-14 | Zih Corp. | Electronic identification system and method with source authenticity |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5271061A (en) * | 1991-09-17 | 1993-12-14 | Next Computer, Inc. | Method and apparatus for public key exchange in a cryptographic system |
EP0917047B1 (en) * | 1997-11-04 | 2004-10-13 | Nippon Telegraph and Telephone Corporation | Apparatus for modular inversion for information security |
JPH11242434A (ja) * | 1998-02-26 | 1999-09-07 | Hitachi Ltd | 楕円曲線暗号実行方法及び暗号処理システム |
JP3796993B2 (ja) * | 1998-12-22 | 2006-07-12 | 株式会社日立製作所 | 楕円曲線暗号実行方法及び装置並びに記録媒体 |
US6611597B1 (en) * | 1999-01-25 | 2003-08-26 | Matsushita Electric Industrial Co., Ltd. | Method and device for constructing elliptic curves |
FR2791497B1 (fr) * | 1999-03-26 | 2001-05-18 | Gemplus Card Int | Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique |
US20020038420A1 (en) * | 2000-04-13 | 2002-03-28 | Collins Timothy S. | Method for efficient public key based certification for mobile and desktop environments |
EP1410555A4 (en) * | 2000-09-11 | 2004-12-22 | Jinglong F Zhang | METHOD AND DEVICE, THE OR THE SINGLE-SIDED TRANSFORMATIONS USED |
JP3794266B2 (ja) * | 2000-11-08 | 2006-07-05 | 株式会社日立製作所 | 楕円曲線スカラー倍計算方法及び装置並びに記憶媒体 |
WO2003017559A2 (en) * | 2001-08-13 | 2003-02-27 | Board Of Trustees Of The Leland Stanford Junior University | Systems and methods for identity-based encryption and related cryptographic techniques |
JP4067818B2 (ja) | 2001-12-10 | 2008-03-26 | 富士通株式会社 | 楕円曲線暗号装置、楕円曲線暗号プログラム及び楕円曲線暗号の演算方法 |
US7228417B2 (en) * | 2002-02-26 | 2007-06-05 | America Online, Inc. | Simple secure login with multiple-authentication providers |
US20080144834A1 (en) * | 2004-04-30 | 2008-06-19 | Steven Barnett Rakoff | Security System Communications Including Encryption |
US20060013387A1 (en) * | 2004-07-14 | 2006-01-19 | Ruei-Shiang Suen | Method and system for implementing KASUMI algorithm for accelerating cryptography in GSM/GPRS/EDGE compliant handsets |
US7483533B2 (en) * | 2004-08-05 | 2009-01-27 | King Fahd University Of Petroleum | Elliptic polynomial cryptography with multi x-coordinates embedding |
US7483534B2 (en) * | 2004-08-05 | 2009-01-27 | King Fahd University Of Petroleum | Elliptic polynomial cryptography with multi y-coordinates embedding |
US7607019B2 (en) * | 2005-02-03 | 2009-10-20 | Apple Inc. | Small memory footprint fast elliptic encryption |
WO2006076800A1 (en) * | 2005-01-18 | 2006-07-27 | Certicom Corp. | Accelerated verification of digital signatures and public keys |
CA2594670C (en) | 2005-01-21 | 2014-12-23 | Certicom Corp. | Elliptic curve random number generation |
TWI305548B (en) * | 2005-05-09 | 2009-01-21 | Nippon Steel Corp | Low core loss grain-oriented electrical steel sheet and method for producing the same |
US7587047B2 (en) * | 2005-06-22 | 2009-09-08 | Apple Inc. | Chaos generator for accumulation of stream entropy |
US7664258B2 (en) * | 2005-12-28 | 2010-02-16 | Microsoft Corporation | Randomized sparse formats for efficient and secure computation on elliptic curves |
US8160245B2 (en) * | 2007-03-07 | 2012-04-17 | Research In Motion Limited | Methods and apparatus for performing an elliptic curve scalar multiplication operation using splitting |
US20080273695A1 (en) * | 2007-05-02 | 2008-11-06 | Al-Gahtani Theeb A | Method for elliptic curve scalar multiplication using parameterized projective coordinates |
US8102998B2 (en) * | 2007-05-02 | 2012-01-24 | King Fahd University Of Petroleum And Minerals | Method for elliptic curve scalar multiplication using parameterized projective coordinates |
DE102008061483A1 (de) * | 2008-12-10 | 2010-06-24 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Verarbeiten von Daten |
US8184803B2 (en) * | 2008-12-29 | 2012-05-22 | King Fahd University Of Petroleum And Minerals | Hash functions using elliptic curve cryptography |
US20100169658A1 (en) * | 2008-12-30 | 2010-07-01 | Lahouari Ghouti | Elliptic curve-based message authentication code |
US8705740B2 (en) | 2008-12-30 | 2014-04-22 | King Fahd University Of Petroleum And Minerals | Elliptic curve-based message authentication code system and method |
US8165287B2 (en) * | 2008-12-30 | 2012-04-24 | King Fahd University Of Petroleum & Minerals | Cryptographic hash functions using elliptic polynomial cryptography |
FR2947404B1 (fr) * | 2009-06-30 | 2011-12-16 | Sagem Securite | Cryptographie par parametrisation sur une courbe elliptique |
US8385541B2 (en) * | 2010-02-18 | 2013-02-26 | King Fahd University Of Petroleum And Minerals | Method of performing elliptic polynomial cryptography with elliptic polynomial hopping |
IT1401937B1 (it) * | 2010-09-16 | 2013-08-28 | St Microelectronics Srl | Metodo di generazione di una firma digitale |
US8954749B2 (en) | 2012-04-06 | 2015-02-10 | At&T Intellectual Property I, L.P. | Methods, systems, and product for hashing using twisted tabulation |
US10148285B1 (en) | 2012-07-25 | 2018-12-04 | Erich Schmitt | Abstraction and de-abstraction of a digital data stream |
US9366396B2 (en) | 2013-01-30 | 2016-06-14 | Cree, Inc. | Optical waveguide and lamp including same |
US9690029B2 (en) | 2013-01-30 | 2017-06-27 | Cree, Inc. | Optical waveguides and luminaires incorporating same |
US9519095B2 (en) | 2013-01-30 | 2016-12-13 | Cree, Inc. | Optical waveguides |
US9442243B2 (en) | 2013-01-30 | 2016-09-13 | Cree, Inc. | Waveguide bodies including redirection features and methods of producing same |
US9291320B2 (en) | 2013-01-30 | 2016-03-22 | Cree, Inc. | Consolidated troffer |
US9869432B2 (en) | 2013-01-30 | 2018-01-16 | Cree, Inc. | Luminaires using waveguide bodies and optical elements |
US9625638B2 (en) | 2013-03-15 | 2017-04-18 | Cree, Inc. | Optical waveguide body |
DE102013002184A1 (de) | 2013-02-06 | 2014-08-07 | Florian Thie | Computerimplementiertes Verfahren zum Verschlüsseln von Daten |
US9920901B2 (en) | 2013-03-15 | 2018-03-20 | Cree, Inc. | LED lensing arrangement |
US10400984B2 (en) | 2013-03-15 | 2019-09-03 | Cree, Inc. | LED light fixture and unitary optic member therefor |
US10436970B2 (en) | 2013-03-15 | 2019-10-08 | Ideal Industries Lighting Llc | Shaped optical waveguide bodies |
US10209429B2 (en) | 2013-03-15 | 2019-02-19 | Cree, Inc. | Luminaire with selectable luminous intensity pattern |
US9366799B2 (en) | 2013-03-15 | 2016-06-14 | Cree, Inc. | Optical waveguide bodies and luminaires utilizing same |
US10795858B1 (en) | 2014-02-18 | 2020-10-06 | Erich Schmitt | Universal abstraction and de-abstraction of a digital data stream |
US10416377B2 (en) | 2016-05-06 | 2019-09-17 | Cree, Inc. | Luminaire with controllable light emission |
US11719882B2 (en) | 2016-05-06 | 2023-08-08 | Ideal Industries Lighting Llc | Waveguide-based light sources with dynamic beam shaping |
US20180063095A1 (en) * | 2016-09-01 | 2018-03-01 | AtCipher.com Limited | Data encipherment prior to recipient selection |
US10484173B2 (en) * | 2017-01-03 | 2019-11-19 | Nxp B.V. | X-only generic mapping function for PACE protocol |
US11146397B2 (en) * | 2017-10-31 | 2021-10-12 | Micro Focus Llc | Encoding abelian variety-based ciphertext with metadata |
CN108446101A (zh) * | 2018-06-06 | 2018-08-24 | 北京信任度科技有限公司 | 多物理噪声源的随机数产生方法及产生系统 |
CN110348229B (zh) * | 2019-06-11 | 2021-09-21 | 北京思源理想控股集团有限公司 | 数据的加密方法及装置、数据的解密方法及装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69113245D1 (de) * | 1991-03-14 | 1995-10-26 | Omnisec Ag Regensdorf | Verschlüsselungssystem mit öffentlichem Schlüssel unter Verwendung elliptischer Kurven über Ringe. |
US5351297A (en) * | 1991-06-28 | 1994-09-27 | Matsushita Electric Industrial Co., Ltd. | Method of privacy communication using elliptic curves |
US5272755A (en) * | 1991-06-28 | 1993-12-21 | Matsushita Electric Industrial Co., Ltd. | Public key cryptosystem with an elliptic curve |
US5159632A (en) * | 1991-09-17 | 1992-10-27 | Next Computer, Inc. | Method and apparatus for public key exchange in a cryptographic system |
US5271061A (en) * | 1991-09-17 | 1993-12-14 | Next Computer, Inc. | Method and apparatus for public key exchange in a cryptographic system |
US5442707A (en) * | 1992-09-28 | 1995-08-15 | Matsushita Electric Industrial Co., Ltd. | Method for generating and verifying electronic signatures and privacy communication using elliptic curves |
CA2150683C (en) * | 1992-12-22 | 1999-09-07 | Nicholas Demytko | A cryptographic method |
US5497423A (en) | 1993-06-18 | 1996-03-05 | Matsushita Electric Industrial Co., Ltd. | Method of implementing elliptic curve cryptosystems in digital signatures or verification and privacy communication |
CA2129203C (en) * | 1994-07-29 | 2010-01-12 | Gordon B. Agnew | Public key cryptography utilizing elliptic curves |
US5737424A (en) * | 1996-06-04 | 1998-04-07 | Software Security, Inc. | Method and system for secure distribution of protected data using elliptic curve systems |
JP2001526416A (ja) * | 1997-12-05 | 2001-12-18 | シキュアード インフォメイション テクノロジー、 インコーポレイテッド | 楕円曲線暗号化演算の最適化用変換方法 |
CN100380860C (zh) * | 1998-02-18 | 2008-04-09 | 因芬尼昻技术股份公司 | 用于在计算机上借助于椭圆曲线加密处理的方法和装置 |
CN1235446A (zh) * | 1998-03-05 | 1999-11-17 | 松下电器产业株式会社 | 椭圆曲线变换装置、利用装置和利用系统 |
-
1997
- 1997-07-18 US US08/896,993 patent/US6307935B1/en not_active Expired - Lifetime
-
1998
- 1998-07-17 WO PCT/US1998/014892 patent/WO1999004531A1/en active IP Right Grant
- 1998-07-17 JP JP2000503629A patent/JP3862500B2/ja not_active Expired - Lifetime
- 1998-07-17 EP EP98935787A patent/EP0997016B1/en not_active Expired - Lifetime
- 1998-07-17 DE DE69829967T patent/DE69829967T2/de not_active Expired - Lifetime
- 1998-07-17 CA CA002297059A patent/CA2297059A1/en not_active Abandoned
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE44220E1 (en) | 1998-06-18 | 2013-05-14 | Zih Corp. | Electronic identification system and method with source authenticity |
US8301886B2 (en) | 2001-08-24 | 2012-10-30 | Zih Corp. | Method and apparatus for article authentication |
US8667276B2 (en) | 2001-08-24 | 2014-03-04 | Zih Corp. | Method and apparatus for article authentication |
Also Published As
Publication number | Publication date |
---|---|
WO1999004531A1 (en) | 1999-01-28 |
DE69829967D1 (de) | 2005-06-02 |
EP0997016A1 (en) | 2000-05-03 |
JP3862500B2 (ja) | 2006-12-27 |
DE69829967T2 (de) | 2006-04-27 |
US6307935B1 (en) | 2001-10-23 |
CA2297059A1 (en) | 1999-01-28 |
EP0997016B1 (en) | 2005-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3862500B2 (ja) | 直接埋め込み方式による高速楕円曲線暗号化の方法と装置 | |
US5805703A (en) | Method and apparatus for digital signature authentication | |
US5159632A (en) | Method and apparatus for public key exchange in a cryptographic system | |
US6490352B1 (en) | Cryptographic elliptic curve apparatus and method | |
CN109039640B (zh) | 一种基于rsa密码算法的加解密硬件系统及方法 | |
JPS5950068B2 (ja) | 公開キ−式の暗号装置 | |
KR20000071078A (ko) | 유한 필드상의 이산 대수 암호시스템의 원분 다항식 구조 | |
Vanstone et al. | Elliptic curve cryptosystems using curves of smooth order over the ring Z/sub n | |
KR19990077606A (ko) | 타원곡선변환장치,이용장치및이용시스템 | |
US6480606B1 (en) | Elliptic curve encryption method and system | |
Jeng et al. | An ECC-based blind signature scheme | |
CN111865555A (zh) | 一种基于k-Lin假设的同态加密方法 | |
Zhang et al. | An Improved Public Key Cryptographic Algorithm Based on Chebyshev Polynomials and RSA | |
JP2004246350A (ja) | 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法 | |
JP4502817B2 (ja) | 楕円曲線スカラー倍計算方法および装置 | |
JP3278790B2 (ja) | 公開鍵暗号方法及び公開鍵暗号システム | |
JP3050313B2 (ja) | 楕円曲線変換装置、利用装置及び利用システム | |
JPH0798563A (ja) | 楕円曲線による署名、認証及び秘密通信方式 | |
JP3240723B2 (ja) | 通信方法、秘密通信方法及び署名通信方法 | |
Ghadi | Improving the Robustness of RSA Encryption Through Input-Based Key Generation. | |
KR100368204B1 (ko) | 정규 기저를 이용한 역원 계산 알고리즘 | |
Diko et al. | RSA & EXTENDED EUCLIDEAN ALGORITHM WITH EXAMPLES OF EXPONENTIAL RSA CIPHERS, RSA EXAMPLE SOLUTION WITH EXTENDED EUCLIDEAN ALGORITHM | |
Alsheikhy et al. | Parallelized Multi-Key Multi-Stage Cryptography | |
KR20030043448A (ko) | 엔티알유 암/복호화 장치 | |
Satpathy | Some cryptographic algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050817 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20051117 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20051125 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060627 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060808 |
|
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: 20060829 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060926 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091006 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091006 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091006 Year of fee payment: 3 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091006 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101006 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111006 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121006 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131006 Year of fee payment: 7 |
|
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 |