JP3706398B2 - 楕円曲線による署名、認証及び秘密通信方式 - Google Patents
楕円曲線による署名、認証及び秘密通信方式 Download PDFInfo
- Publication number
- JP3706398B2 JP3706398B2 JP13433994A JP13433994A JP3706398B2 JP 3706398 B2 JP3706398 B2 JP 3706398B2 JP 13433994 A JP13433994 A JP 13433994A JP 13433994 A JP13433994 A JP 13433994A JP 3706398 B2 JP3706398 B2 JP 3706398B2
- Authority
- JP
- Japan
- Prior art keywords
- elliptic curve
- user
- communication
- secret
- user device
- 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.)
- Expired - Lifetime
Links
Images
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)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
Description
【産業上の利用分野】
本発明は情報セキュリテイ技術としての暗号技術に関し、特に、楕円曲線を用いた暗号技術に関する。
【0002】
【従来の技術】
近年、一般に公開されたディジタル通信回線網を使用して相互に通信を行ったり、有料で放送番組を提供したりすることがさかんになってきている。ところで、一般に公開された通信回線網を使用する場合、第三者による盗聴や詐称、あるいは送信者による送信先の間違いを完全に防止することは困難である。このため、秘密通信方式並びに署名及び認証方式と呼ばれる通信方式が重要なものとなっている。ここに、秘密通信方式とは、特定の通信相手以外に通信内容を漏らすことなく通信を行う方式である。また署名及び認証通信方式とは、通信相手に通信内容の正当性を示したり、本人であることを証明する通信方式である。この署名、認証及び秘密通信方式には公開鍵暗号とよばれる通信方式がある。公開鍵暗号は通信相手が多数のとき、通信相手ごとに異なる暗号鍵を容易に管理するための方式であり、多数の通信相手と通信を行うのに不可欠な基盤技術である。以下、これについて、歴史的な経緯もふまえて本発明に関係する原理と手順とを簡単に説明する。なお、この秘密通信方式等の一般技術については、池野信一,小山謙二著「現代暗号理論」 電子通信学会発行 1986年に詳しい。
(1)有限体上の離散対数問題を使用した秘密通信方式。
(原理)
pを素数、gをその一の原始根、uを任意の自然数、αをgのu乗のpを法とする剰余とする。すなわち、gu ≡α(mod p)とする。この場合、gとpとuを与えられたときにαを求めるのは容易である。しかし、pが140桁程度の素数となると、大型計算機の発達した今日でも、gとpとαからuを求めるのは困難である。これは丁度、2つの素数rとsがあるときrとsからその積を求めるのは容易であるが、rとsが各140桁程度となれば、積は280桁となるため、これから素因数分解によりrとsを求めるのは困難なことに似る。
【0003】
次に、vを他の任意の自然数とし、βをgのv乗のpを法とする剰余とする。すなわち、gv ≡β(mod p)とする。この場合、αのv乗のpを法とする剰余とβのu乗のpを法とする剰余とは等しい。
すなわち、αv ≡(gu )v ≡(gv )u ≡βu (mod p)である。
(手順)
以下、図2を参照しつつ、この原理を利用した有限体上の離散対数問題(整数論では法と剰余と原始根から指数を求めることの困難性であるが、通信分野では通常このように言われる。)を使用した秘密通信方式の手順の一例として、共有鍵暗号方式といわれているものを示す。
【0004】
通信網の提供者により、pとgが与えられ、各ユーザに通知される。
ユーザUは、任意の自然数uを選択し、gu ≡α(mod p)の演算によりαを計算する。
ユーザVは、同じくvを選択し、gv ≡β(mod p)の演算によりβを計算する。
【0005】
ユーザUは、uは秘密に保持した上でαを公開通信網を使用してユーザBに通知し、一方ユーザVはvを秘密に保持した上でβを公開通信網を使用してユーザUに通知する。
両者は、guvのpを法とする剰余kuvを計算し、これを両者の共有鍵とし、また第三者には秘密にしておく。
【0006】
ここに kuv≡guv(mod p)である。
以上の手順を、理解の便宜のため小さな素数を例にとって具体的に示す。
p=11、g=2とする。今、ユーザUがuとして4をとったとする。この場合、gu =24 =16であり、16の11を法とする剰余は5であるため、α=5となる。同じく、ユーザVがvとして8をとったとする。この場合、gv =28 =256であり、256の11を法とする剰余は3であるため、β=3となる。更に、αv =58 、βu =34 とも11を法とする剰余は4(mod 11)であるため、kuv=4となる。
【0007】
ユーザUが通信文をユーザVに送信する場合、ビット情報たる通信文をある定まった個数毎に区切った上で、各区切れたビット情報毎にkuvと演算を行って秘密化する。
送信文を(010)とする。kuv=4、これは2進数で(100)となる。このため、今演算を排他的論理和とするならば、秘密化された送信文は{(010)XOR(100)=}(110)となる。
【0008】
この上で、ユーザVに送信する。
一方、これを受信したユーザVは、kuvを使用して復号することにより本来の通信文を入手する。
もし、受信した暗号文が(110)ならば、復号後の通信文は{(110)XOR(100)=}(010)となる。
【0009】
勿論、上記演算はこの他、2進数とみなしての加算や引算、各対応するビットごとの他の論理演算等としてもよい。
本方式は、たとえ第三者がユーザUとユーザVが公開通信網を使用してαとβを相互に知らせあう際に、これらを盗聴等により知得しえても、u若しくはvを知らない限りkuvを知ることは困難であることを秘密性の根拠としている。
【0010】
また、上記通信方法においては、受信したユーザVは、Kuvを知っているのはユーザUのみであるため、復号した受信文が意味のある内容であるならば、確かにユーザUから送られてきたものであるという確認も得られることとなる。
また、ユーザW,X等は各任意の自然数w,x,…を選定し、例えばユーザUとユーザWとはgu ・ w のpを法とする剰余を共有鍵として使用する等多数のユーザに柔軟に対処しえるという利点がある。
【0011】
更に、各ユーザU,V,W,…は、秘密に保持する自然数u,v,w,…等を定期的に他の自然数u’,v’,w’,…等に変更したり、特定のユーザUが通信相手によって更に他の自然数u1 ,u2 ,…等を使いわけたりもしえる。このため、企業等の組織体で使用する場合には、組織変更に柔軟に対応しえる。
なお、実際の暗号通信に際しては、素数pのかわりに複数の充分大きな素数p,q,r,…の積やpの2乗や3乗を使用したり、また原始根gに換えて充分に位数の大きな自然数が使用されたりすることもある。
【0012】
しかしながら、近年の大型計算機の発達を背景にして、数学の理論(類体論の高次相互律、分解法則等)は、gとpとαとから比較的少ない計算量でuを求める方法を種々開発しつつある。
その対策の一としては、素数pを140桁程度のものでなく200桁等充分に大きいものとすることがあげられる。ただし、この場合には、桁数が大きいだけに各種の必要な計算の絶対量が多くなる等の不都合が生じえる。
【0013】
これらのため、楕円曲線を使用した秘密通信方式が開発された。
以下これについて説明する。
(2)楕円曲線上の離散対数問題を使用した秘密通信方式。
以下、楕円曲線上の離散対数問題について説明する。なお、これはニール コブリッツ著「整数論と暗号表記法の解説(意訳)」スプリンガー書店 1987年,(Neal koblitz , " A Course in Number Theory and Cryptography ",Springer-Verlag,1987)に詳しく述べられている。また、楕円曲線の理論そのものは、日本語文献では、志村五郎,谷山豊著「近代的整数論」 共立出版 1957年をあげられる。
(楕円曲線そのものとその上での演算)
楕円曲線とは、1次元アーベル(Abel)多様体、あるいは既約で非特異な種数1の射影代線曲線をいい、例えばY2 =X3 +aX+b等の形で表される。
【0014】
さて、楕円曲線上の2点をBP1 ,BP2 としたとき、演算BP1 +BP2 は、以下のようにして定義される。
BP1 とBP2 を結ぶ直線がこの楕円曲線と交わる第三の点BP3 のX軸に対して線対称な点をBP3 ’とする。このBP3 ’がBP1 +BP2 である。図3にこの演算の内容を示す。なお、BP1 =BP2 であるならば、BP1 とBP2 を結ぶ直線とは、BP1 における接線をいう。
【0015】
ところで、この楕円曲線をEとしたとき、暗号化に使用されるのはE{GF(q)}である。ここに、qは素数べきであり、GF(q)は有限体(Galois Field)とし、楕円曲線EのGF(q)上の元で生成される群がE{GF(q)}である。
このE{GF(q)}の簡単な例としては、Eがy2 =x3 +3x+2という楕円曲線であり、q=5の場合に、その元として(1,1)、(1,−1)、(2,1)、(2,−1)及び無限遠点という5つの元からなる集合を挙げられる。
(原理)
次にE{GF(q)}の性質、すなわち秘密通信の根拠の原理について説明する。
【0016】
E{GF(q)}の位数が大きな素数で割れる元BPをベースポイント、dは任意の自然数とする。このとき、BPとdとからd・BPを計算する(BPをd回加える)のは容易である。しかし、E{GF(q)}の与えられた元QとBPに対して、
Q=d・BP
となる自然数dが存在するならばdを求めよという問題は、計算機の発達した今日でもBPやq等が30桁程度の自然数となるならば困難である。なお、ここにBPは、pを法とする有限体GF(p)上でのgに相当する役を担うものである。
(手順)
前記有限体上の場合と基本的には異ならない。
【0017】
すなわち、前記pに相当するのがE{GF(q)}であり、gに相当するのがBPであり、uやvに相当するのがdであり、またpを法とするgのu乗の剰余を求める等のGF(p)での演算がE{GF(q)}での演算となる。
ただし、楕円曲線上の点は、x軸とy軸の二次元座標で与えられ、この一方、通信文は一次元である。このため、二次元座標値のうち、あらかじめのユーザ同志の取極めでx座標値とy座標値のいずれか一方のみ使用するものとし、通信毎に任意に選択したいずれか一方のみ使用し併せて別途いずれを使用したかを判別可能とするためのデータを送る等の手順が加わる点が異なる。
(3)現時点における楕円曲線を使用した秘密通信方式の発展の方向。
【0018】
ところで、この楕円曲線上の離散対数問題も、1991年に楕円曲線上の離散対数問題を有限体上の離散対数問題に帰着させて比較的容易に解く解法が考案された。ただし、これをのぞくとpの桁数に比較して、その対数程度の計算で解きえるサブイクスポーネンシャルといわれている解法は存在しない。サブイクスポーネンシャルな解法を用いると100ビット程度の大きさの定義体上での通常の楕円曲線の離散対数問題は比較的容易に解法される。1991年に考案されたこの解法はMOV帰着法と呼ばれ、ア・メネゼス,エス・ヴァンストン,ティー・岡本著「楕円曲線における離散対数問題を有限体における離散対数問題に帰着させる方法(意訳)」STOC 1991年,(A.Menezes,S.Vanstone and T. Okamoto,"Reducing Elliptic Curve Logarithm to Logarithms in a Finite Field",STOC 91)に詳しく述べられている。MOV帰着法では、qを素数べきとし、有限体GF(q)上定義された楕円曲線をEとし、EのGF(q)上の元で構成される群をE{GF(q)}とする。このときE(GF(q))∋BPをベースとする楕円曲線上の離散対数問題は、BPの位数とqが互いに素なときには、有限体GF(q)のある拡大体GF(qr )上の離散対数問題に帰着させて解くものである。特にEがスーパーシンギュラと呼ばれる楕円曲線の場合には、有限体GF(q)の高々6次拡大体GF(q6 )上の離散対数問題に帰着して解くことができる。
【0019】
そこで、上記MOV帰着法による解法を避けるように楕円曲線を構成する研究が行われるようになった。この方法は種々あるが、例えば、ティー・ベス,エス・シャッファー「公開鍵暗号システムにおける非スーパーシンギュラーな楕円曲線(意訳)」エウロクリプト91,1991年(T.Beth,F.Schaefer "Non Supersingular Elliptic Curves for Public Key Cryptosystems",Eurocrypt 91,1991 )或いは宮地充子著「普通の楕円曲線上の暗号システム(意訳)」アジアクリプトの要約91,1991年("On ordinary elliptic curve cryptosystems", Asiacrypt'91,1991 )等に詳しく解説されている。これらの方法を用いて構成すると、現時点ではサブイクスポーネンシャルなアルゴリズム(ある目的達成のための論理演算等の規則)を与える解法がないため、有限体上の離散対数問題と同程度の安全性ならばはるかに小さな定義体で構成することができる。
【0020】
ところが楕円曲線の場合、楕円曲線上の一加算に12、3回の乗算を要求する。
すなわち、楕円曲線上のBP1 (x1,y1)、BP2 (x2,y2)とした場合
一般には、
BP1 +BP2 ={f1 (x1, y1, x2, y2),f2 (x1, y , x2, y2)},
もしもBP1 =BP2 ならば、
2BP1 ={g1(x1,y1), g2(x ,y ) }
と表わされるが、このときf1,f2,g1,g2はGF(p)上の12.3回の演算のみの関数となる。このため、定義体の大きさが小さくなってもあまり処理速度が速くならない。そこでMOV帰着法を避けることと共に、さらに処理速度を速くするための研究が行われるようになった。以下、後者の研究について説明する。
(4)楕円曲線を用いた暗号の処理速度を速くする従来の技術。
【0021】
その一は、エヌ・コブリッツ著「秘密性の良好なCM−曲線(意訳)」Crypto'91,1991年(N. Koblitz, "CM-curves with good cryptographic properties", Crypto'91, 1991 )に詳しく解説されている。
図4は、従来例における署名、認証及び秘密通信方式の処理速度を高速にする楕円曲線の構成の手順の概略を示すものである。
【0022】
以下、同図を参照しながら従来例の手順を説明する。
(S1)楕円曲線の候補の決定
次の二つのGF(2)を定義体にもつアノマラス(anomalous )楕円曲線を考える。
E1:y2+xy=x3+x2+1
E2:y2+xy=x3+1
楕円曲線EのGF(2m )上の元で構成される群E{GF(2m }とは次のような群である。
【0023】
E1{GF( 2 m ) }={x,y ∈GF(2m ) |y2+xy=x3+x2+1}∪{∞}
E2{GF( 2 m ) }={x,y ∈GF(2m ) |y2+xy=x3+1}∪{∞}
ここで∞は無限遠点を表わす。
(S2)適当な拡大次数mの決定
既述のごとく、公開鍵暗号の安全性の根拠となる上述の楕円曲線の離散対数問題は、ベースポイントである元BPの位数が大きな素因数を持たなければ簡単に解けることが知られている。
【0024】
位数が大きな素因数を持つ元BPが存在するための必要十分条件はE{GF(q)}の元の個数が大きな素因数を持つことである。
そこで、(S1)に述べた楕円曲線Ei についてその元の個数#Ei {GF(2m )}が大きな素因数で割り切れるようにmを求める。(ここに、i=1、2)
なお、E{GF(2m )}等における各種楕円曲線の元の個数は、m等が具体的に与えられればハッセ(Hasse)やデュー(Deu)等の研究により正確に計算可能となっている。例えば、上記#Ei {GF(2m )}では、大よそ2m のオーダーである。
(S3)実際の楕円曲線の構成
30桁以上の素因数を持つということより、mは大よそ〔30 log2 10〕となる。ここに〔 〕は、ガウス(Gauss)の記号であり、記号内の数以下の最大の整数を意味する。以下、基本的には試行錯誤によりかかるmをいくつかとって、#Ei {GF(2m )}を与える公式をもとに30桁以上の素因数を有するか否か判断する。
【0025】
楕円曲線Ei {GF(2m )}上の元で構成される群Ei {GF(2m )}の元の個数を求め、その素因数分解を行った結果
m=101のとき、#E1 {GF(2n )}=2×素数p1
m=131のとき、#E2 {GF(2m )}=4×素数p2
となることがわかった。また、MOV帰着法により埋め込まれる有限体が十分大きくなることも確かめられる。
【0026】
従ってE2 {GF(2 131)}上の位数が素数p2 となる元をベースポイントBPとする楕円曲線上の離散対数問題若しくはE1 {GF(2101 )}上の位数が素数p1 となる元をベースポイントBPとする楕円曲線上の離散対数問題を安全性の根拠にした公開鍵暗号を構成すればよいことが結論づけられる。
さて、アノマラスではTをE(x,y)からE(x2 ,y2 )への写像とするとき〔2〕(2倍)=T−T2 となる。なお、これについては、ジェイ・エッチ・シルバーマン著「楕円曲線の数学(意訳)」スプリンガー書店 1986年(J. H.Silverman, " The arithmetic of elliptic curves",Springer-Verlag,1986)に述べられている。つまり、BP=(x,y)とするとき、2BP=(T−T2 )(x,y)=(x,y)−(x2 ,y2 )となる。このため、このように構成した楕円曲線は、2i BP={BP=(x,y);i =1、2、3、4}の計算が次のように求められる。
【0027】
(ここに、上添え字中の^の意味であるが、2^3は23 を意味する。他も同様である。)
一方GF(2)の拡大体上の演算は、基底として正規基底を用いると2乗の計算が巡回シフトでなされるのでハードウエアで行なうときには、処理速度は無視できる。よって、2i BP(i =1、2、3、4)の計算が2回の楕円曲線の足し算で実行できることになり、高速化が望める。また特にE2 では定義体GF(2131 )上の正規基底は最適な正規基底となり、一回の乗算に必要となる論理積及び排他的論理和の回数が最小になるので、基本演算(有限体の乗算)の高速化が望める。なお、ここに最適な正規基底とは、乗法関数の項数が2m−1となるものをいう。これは、アール・シー・ムリン他3名著「GF(p)における最適な正規基底(意訳)」ディスクリート アプライド マシマテックス22 149〜161頁(R. C. Mullin他3名“Optimal normal bases in GF(p a )”Discrete Applied Mathematics 22 P149〜161 )等に詳しい。
【0028】
しかし上記従来例においては、楕円曲線の一回の加法が高速になるというわけではない。このため、より高速にするには、演算を高速にする条件{最適な正規基底をもつ有限体GF(2m )}と安全で2i 倍点(i=1、2、3、4)が簡単になる楕円曲線の条件(アノラマス楕円曲線でかつ元の個数が大きな素数で割れる)の両方の条件を満たす楕円曲線を見つける必要がある。しかし両者の条件は包含関係にあるわけではないので、両者を満たす楕円曲線の数は少なくなる。(6)楕円曲線の高速化を図る他の技術
(加法鎖)
楕円曲線のkBPの計算を高速にする方法の一つに加法鎖の研究がある。加法鎖とは、例えば7BPを求めるのに単にBPを7回足すのではなく、2{2(2BP)}−BPとして、1回の足算と3回の2倍算とするがごとく、足し方を工夫するものであり、有限体のgi の計算の加法鎖の研究と平行してなされる。これは、予備計算テーブルの持ち方及び計算の順序の工夫を行う研究である。これについては、M. J. Coster, "Some algorithms on addition chains and their complexity", Center for Mathematics and Computer Science Report CS-R9024 に詳しい。この方法を用いたk ・ BPの計算と、上述の2i 倍点(i=1、2、3、4)が簡単になる方法を用いたk ・ BPの計算では、加法鎖を用いたほうが高速に実現される。
(有限体について)
参考までに有限体を用いた暗号方式について記すならば、これも様々な高速化の手法が提案されている。しかし、有限体を用いるが故に解読防止の面から秘密通信に使用する定義体が大きくなるという問題がある。これについては、ディー・エム・ゴードン「数体のふるい法を使用した有限体GF(p)の離散対数問題(意訳)」離散数学のSIAM内の雑誌(D.M.Gordon, " Discrete logarithms in GF(p) using the number field sieve", to appear in SIAM Journal on Discrete Math. )を参照されたい。
【0029】
【発明が解決しようとする課題】
しかしながら、上記楕円曲線上の離散対数問題を安全性の根拠にした公開鍵暗号は、高速な処理が求められる。従来例1のように特定の自然数cに対しcBPが高速になるという方法の場合、一般の自然数kに対しkBPを高速にする際、加法鎖の方法と組み合わせて高速にするのが困難である。また、特定のcに対してcBPが高速になるということからくる条件と基本演算が高速になる条件の両方を満たす楕円曲線を構成すると定義体が大きくなる。このため、定義体が小さく、一般の自然数に対してkBPの演算が高速にしえ、加法鎖と組み合わせることが容易、かつ基本演算が高速な楕円曲線を使用して署名、認証及び秘密通信を行うことが望まれている。
【0030】
また暗号システムの安全性を高めるためには、一システムの安全性が損なわれた際に秘密通信を前提として成り立っている取引等の全システムの安全性が損なわれてしまう危険性あるいは一システムの安全性がたまたま損なわれる確率を下げる必要性がある。このため、通信相手、通信目的等のシステム毎にもしくは同じシステムであっても定期的に暗号のパラメータを変えることが望ましい。またこの際、変更量を最小限に抑えること及びシステム性能(速度、メモリサイズ等)が変わらないようにすることが要求される。これは、有限体でいうならば、既述のごとく、pを定期的に変更するようなものである。
【0031】
しかし上記従来例においては、GF(2)上の楕円曲線をGF(2m )上に持ち上げる方法のため、システム性能を変えない楕円曲線を構成するのは困難である。このため、システム毎に若しくは同じシステムであっても必要な時期毎に暗号のパラメータを変更可能かつこの際必要なメモリサイズ等の変更量が必要最小限、しかも高速演算が可能な楕円曲線を使用しての署名、認証及び秘密通信を行うことが望まれている。
【0032】
更に、これらの場合に、楕円曲線にはMOV帰着法が適用できないという条件がつくのは勿論である。
【0033】
【課題を解決するための手段】
本発明は、以上の目的を達成するべくなされたものである。このため、本発明においては、以下の手順からなる秘密通信方式としている。
(1)秘密通信網の提供者は、秘密通信に使用するE{GF(p)}と、そのベースポイントBPを通信網の使用者たる各ユーザに提供する。
(2)E{GF(p)}とベースポイントBPの提供を受けた各ユーザは、任意の自然数を秘密鍵として選定し、この自然数回前記ベースポイントBPをE{GF(p)}上で加算した値を求める。
(3)各ユーザは自分が任意に選択した自然数は秘密に保持し、この一方、前記自然数回、BPをE{GF(p)}上で加算した値は自己の公開鍵として通信を希望する相手方のユーザに例えば通信網により相互に通知する。
(4)相互に通信を行う2人のユーザは、相手方ユーザから通知されてきた公開鍵を各自が秘密に保持している自分が選定した自然数回E{GF(p)}上で加算した値を求め、これを両者の共有鍵とする。
(5)相互に通信を行う2人のユーザは、共有鍵を使用してビット情報たる通信文(含,映像、音響情報)を暗号化及び復号するに際して、共有鍵と通信文の秘密化、復号に使用する演算の内容、例えば足し算、排他的論理和等を取極める。
(6)一方のユーザが通信文を共有鍵を使用してその取極めに従って秘密化した上で他方のユーザに公開通信網を使用して送信する。
(7)秘密化された通信文を受信した他方のユーザは、取極めに従って共有鍵を使用して復号する。
【0034】
ここにE{GF(p)}は以下のものである。
正整数dを、虚二次体Q{(−d)1/2 }の類数が小さくなるようにとる。
素数pを、ある整数aに対して4×p−a 2 がd×平方数となりかつp+1−aあるいはp+1+aの一方が30桁以上の大きい素数で割れかつ、正整数t及び小さい正整数αに対して2t ±αと表せる素数とする。
【0035】
楕円曲線Eはdにより定まる類多項式Hd (x)=0のpを法とした解をj不変数にもつ有限体GF(p)を定義体にもつ。
本発明においては、以下のようにしている。前記楕円曲線Eは有限体GF(p)を定義体にもつ楕円曲線EのGF(p)上の元で構成される群をE{GF(p)}とするとき、E{GF(p)}の元の個数が30桁以上の大きな素数で割れる。
【0036】
本発明においては、正整数αは、2進数表記で2t/3ビット以下の大きさである。
本発明においては、pを素数、rを正整数とし、有限体GF(pr )を定義体にもつ楕円曲線EのGF(pr )上の元で構成される群をE{GF(pr )}とするとき、有限体GF(pr )を定義体に持つ楕円曲線E1 ,E2 ,・・・,En を、互いに同型ではないが元の個数が等しくなるように構成し、各システムごと、各通信相手ごと、1システムかつ同一通信相手で例えば1年等の一定時期経過後ごとの少なくも一により使用する楕円曲線を変えるようにしている。
【0037】
本発明においては、楕円曲線Eは、dにより定まる類多項式Hd (x)=0の次数をnとし、pを法とした解をj1 、…、jn とするとき、これらの根をj不変数にもつ有限体GF(p)を定義体にもつ楕円曲線E1 、…、En である。
本発明においては、通信文を共有鍵を使用して取極めに従って秘密化する際及び復号する際の演算において、2t ≡α(mod p)若しくは2t ≡−α(mod p)という性質及び加法鎖を使用するものとしている。
【0038】
本発明においては、以下の手順からなる秘密通信方式としている。
(1)秘密通信網の提供者は、秘密通信に使用するE{GF(p)}とそのベースポイントBPを各ユーザに提供する。
(2)E{GF(p)}とベースポイントBPの提供を受けた各ユーザは、任意の自然数を選定し、この自然数回、前記ベースポイントBPをE{GF(p)}上で加算した値を求める。
(3)各ユーザは自分が任意に選択した自然数は秘密に保持し、この一方、前記自然数回、BPをE{GF(p)}上で加算した値は自己の公開鍵として通信を希望する相手方のユーザに通知する。
(4)2人のユーザは、通知された公開鍵と乱数を使用しての通信文を暗号化及び復号するに際して、公開鍵と乱数とを使用しての通信文の演算の内容の方法を取極める。
(5)公開鍵の通知を受けた他のユーザは、自分が所定の手順で選定した乱数と相手方ユーザから通知されてきた公開鍵をもとに、取極めに従って通信文をハード若しくはソフト的な手段で暗号化する。
(6)ユーザは暗号化した通信文を、公開鍵を知らせてきたユーザに送信する。
(7)受信した他方のユーザは、取極めに従って秘密化された通信文を、ハード的若しくはソフト的な手段で復号する。この際、自分が選定し秘密に保持している整数を使用する。
【0039】
ここにE{GF(p)}は以下のものである。
正整数dを、虚二次体Q{(−d)1/2 }の類数が小さくなるようにとる。
素数pを、ある整数aに対して4×p−a 2 がd×平方数となりかつ、p+1−aあるいはp+1+aが30桁以上の大きい素数で割れかつ、正整数t及び小さい正整数αに対して2t ±αと表せる素数とする。
【0040】
楕円曲線Eは、dにより定まる類多項式Hd (x)=0のpを法とした解をj不変数にもつ有限体GF(p)を定義体にもつ。
本発明においては更に、前記楕円曲線Eは有限体GF(p)を定義体にもつ楕円曲線EのGF(p)上の元で構成される群をE{GF(p)}とするとき、E{GF(p)}の元の個数が30桁以上の大きな素数で割れるようにしている。
【0041】
本発明においては、正整数αは、2t/3ビット以下の大きさとする。
本発明においては、pを素数、rを正整数とし、有限体GF(pr)を定義体にもつ楕円曲線EのGF(pr )上の元で構成される群をE{GF(pr )}とするとき、有限体GF(pr )を定義体に持つ楕円曲線E1,E2 ,・・・,En を、互いに同型ではないが元の個数が等しくなるように構成し、発注、購入、純粋な通信等の各システムごと、客、官庁、本社等の各通信相手ごと、1システムかつ同一通信相手で一定時期経過後ごとの少なくも一により使用する楕円曲線を変えるようにしている。
【0042】
本発明においては、楕円曲線Eは、dにより定まる類多項式Hd (x)=0の次数をnとし、pを法とした解をj1 、…、jn とするとき、これらの根をj不変数にもつ有限体GF(p)を定義体にもつ楕円曲線E1 、…、Enである。
本発明においては、通信文を共有鍵を使用して取極めに従って秘密化する際及び復号する際の演算において、2t ≡α(mod n)若しくは2t ≡−α(mod p)という性質及び加法鎖を使用するものとしている。
【0043】
【作用】
上記構成により本発明においては、以下の手順で秘密通信がなされる。
(1)秘密通信網の提供者は、秘密通信に使用するE{GF(p)}とそのベースポイントBPを各ユーザに公開通信網や郵送により提供する。
(2)E{GF(p)}とベースポイントBPの提供を受けた各ユーザは、任意の自然数を選定し、この自然数回前記ベースポイントBPをE{GF(p)}上で加算した値を求める。
(3)各ユーザは自分が任意に選択した自然数は秘密に保持し、この一方、前記自然数回、BPをE{GF(p)}上で加算した値は自己の公開鍵として通信を希望する相手方のユーザに相互に通知する。
(4)相互に通信を行う2人のユーザは、相手方ユーザから通知されてきた公開鍵を各自が秘密に保持している自分が選定した自然数回E{GF(p)}上で加算した値を求め、これを両者の共有鍵とする。
(5)相互に通信を行う2人のユーザは、共有鍵を使用して通信文を暗号化及び復号するに際して、共有鍵と通信文の演算の内容を別途取極める。
(6)一方のユーザが通信文を共有鍵を使用して取極めに従って演算をすることにより秘密化した上で他方のユーザに送信する。
(7)受信した他方のユーザは、取極めに従って共有鍵を使用して逆演算、排他的論理和なら再度排他的論理和等して復号する。
【0044】
ここにE{GF(p)}は以下のものである。
正整数dを、虚二次体Q{(−d)1/2 }の類数が小さくなるようにとる。
素数pを、ある整数aに対して4×p−a 2 がd×平方数となりかつp+1−aあるいはp+1+aが30桁以上の大きい素数で割れかつ、正整数t及び小さい正整数αに対して2t ±αと表せる素数とする。
【0045】
楕円曲線Eはdにより定まる類多項式Hd (x)=0のpを法とした解をj不変数にもつ有限体GF(p)を定義体にもつ。
本発明においては、前記楕円曲線Eは有限体GF(p)を定義体にもつ楕円曲線EのGF(p)上の元で構成される群をE{GF(p)}とするとき、E{GF(p)}の元の個数が30桁以上の大きな素数で割れるものとされている。
【0046】
本発明においては、正整数αは、2t/3ビット以下の大きさであるものとされている。
本発明においては、pを素数、rを正整数とし、有限体GF(pr )を定義体にもつ楕円曲線EのGF(pr )上の元で構成される群をE{GF(pr )}とするとき、有限体GF(pr )を定義体に持つ楕円曲線E1 ,E2 ,・・・,En を、互いに同型ではないが元の個数が等しくなるように構成し、各システムごと、各通信相手ごと、1システムかつ同一通信相手で一定時期経過後ごとの少なくも一により使用する楕円曲線が変更される。
【0047】
本発明においては、楕円曲線Eは、dにより定まる類多項式Hd (x)=0の次数をnとし、pを法とした解をj1 、…、jn とするとき、これらの根をj不変数にもつ有限体GF(p)を定義体にもつ楕円曲線E1 、…、En であるものとしている。
本発明においては、通信文を共有鍵を使用して取極めに従って秘密化する際及び復号する際の演算において、2t ≡α(mod p)若しくは2t ≡−α(mod p)という性質及び加法鎖を使用することにより、秘密化と復号の際の信号処理が高速になされる。
【0048】
本発明においては、以下の手順にて秘密通信がなされる。
(1)秘密通信網の提供者は、秘密通信に使用するE{GF(p)}とそのベースポイントBPを各ユーザに提供する。
(2)E{GF(p)}とベースポイントBPの提供を受けた各ユーザは、任意の自然数を選定し、この自然数回、前記ベースポイントBPをE{GF(p)}上で加算した値を求める。
(3)各ユーザは自分が任意に選択した自然数は秘密に保持し、この一方、前記自然数回、BPをE{GF(p)}上で加算した値は自己の公開鍵として通信を希望する相手方のユーザに通知する。
(4)2人のユーザは、通知された公開鍵と乱数を使用しての通信文を暗号化及び復号するに際して、公開鍵と乱数を使用しての通信文の演算の内容の方法例えば通信文のブロック分割方法等を取極める。
(5)公開鍵の通知を受けた他のユーザは、自分が別途のプログラム等により選定した乱数と相手方ユーザから通知されてきた公開鍵をもとに、取極めに従って送信すべき通信文を暗号化する。
(6)ユーザは暗号化した通信文を、公開鍵を知らせてきたユーザに送信する。
(7)受信した他方のユーザは、取極めに従って秘密化された通信文をハード的若しくはソフト的に復号する。この際、自分が選定し秘密に保持している整数を使用する。
【0049】
ここにE{GF(p)}は以下のものである。
正整数dを、虚二次体Q{(−d)1/2 }の類数が小さくなるようにとる。
素数pを、ある整数aに対して4×p−a 2 がd×平方数となりかつ、p+1−aあるいはp+1+aが30桁以上の大きい素数で割れかつ、正整数t及び小さい正整数αに対して2t ±αと表せる素数とする。
【0050】
楕円曲線Eは、dにより定まる類多項式Hd (x)=0のpを法とした解をj不変数にもつ有限体GF(p)を定義体にもつ。
本発明においては、前記楕円曲線Eは有限体GF(p)を定義体にもつ楕円曲線EのGF(p)上の元で構成される群をE{GF(p)}とするとき、E{GF(p)}の元の個数が30桁以上の大きな素数で割れるようにされている。
【0051】
本発明においては、正整数αは、2t/3ビット以下の大きさとされている。
本発明においては、pを素数、rを正整数とし、有限体GF(pr)を定義体にもつ楕円曲線EのGF(pr )上の元で構成される群をE{GF(pr )}とするとき、有限体GF(pr )を定義体に持つ楕円曲線E1,E2 ,・・・,En を、互いに同型ではないが元の個数が等しくなるように構成し、各システムごと、各通信相手ごと、1システムかつ同一通信相手で一定時期経過後ごとの少なくも一により使用する楕円曲線を変えるものとしている。
【0052】
本発明においては、楕円曲線Eは、dにより定まる類多項式Hd (x)=0の次数をnとし、pを法とした解をj1 、…、jn とするとき、これらの根をj不変数にもつ有限体GF(p)を定義体にもつ楕円曲線E1 、…、Enであるものとしている。
本発明においては、通信文を共有鍵を使用して取極めに従って秘密化する際及び復号する際の演算において、2t ≡α(mod n)若しくは2t ≡−α(mod p)という性質及び加法鎖を使用するものとしている。
【0053】
【実施例】
以下、楕円曲線の作成とこの作成した楕円曲線での信号処理並びに署名、認証及び秘密通信の手順とに分けて本発明の実施例を説明する。
(第1実施例)
図1に、本発明の署名、認証及び秘密通信方式に使用する楕円曲線の作成手順の概略を示す。本図のうち、Aは全体の基本的な流れを示し、Bはそのうちの一部、具体的には素数pの決定のステップの詳細を示す。
【0054】
以下、本図を参照しながら実施例の手順を説明する。
(a1)自然数dの決定
自然数dを、虚二次体Q{(−d)1/2 }の類数が小さくなるようにとる。ここではd=3とする。ここに、d=3としたのは、後に示すHd(x)=0のpを法とした根を求める計算が楽なことによる。なお虚二次体Q{(−d)1/2 }及び類数については、前提のSilverman に詳しく述べられている。
(a2)素数pの生成
素数pを、aとbを自然数としたとき4p−a2 =d×b2 となりかつ、p+1−aあるいはp+1+aが大きな素数で割れかつ、自然数t及び小さい自然数αに対し2t −αと表されるようにとる。
【0055】
この選定手順は試行錯誤法によるが、これを本図のBを参照しつつ説明する。
なお、この前に、本手順の実現可能性に関係のある数学の理論について概略紹介しておく。
(1)4p=a2 +d×b2 という形の方程式は、Pell方程式といわれているものの特殊なものであり、pが与えられた場合に、これを充たすaとbは連分数展開で容易に求められる。
【0056】
(2)素数定理により、ある自然数nのあたりには、ほぼlogn個に1個のわりで素数が存在しているのが証明されている。
このため、2t −αという形で表される30桁程度の自然数は、ほぼ100個に1個が素数であるのがわかる。更に、2、3、5等小さな素数の倍数は比較的容易に排除しえるため、これらを排除すると素数である確率はうんと高くなる。従って2、3、5等の小さな素数の倍数でない2t −αという自然数が素数か否かは、現在の計算機と数学の理論(Miller,Cohen,Lenstra)で一層容易に確かめられる。
【0057】
(3)ほとんどの自然数は、log logn個程度の素因数を有する(Hardy-Ramanujan )。このため、pが30桁程度の数ならば、p+1−a、p+1+aの素因数の個数は多くの場合、4〜7個である。従って、p+1−aあるいはp+1+aが充分大きい素因数を有するか否かは、多くの場合容易に判定できる。勿論、その自然数自身が素数であるのを確かめたりもできる。
【0058】
次に、具体的なp,a,α,tの選定順序を図4のBをもとに説明する。
まず、tを選定した上で初期設定としてi=0、α=〔2t/3〕とする(b1)。
次いで、αをα−iとする(b2)。
p=2t −αを計算する(b3)。4pが、a2 +3b2 という形に表しえるか否かを判定する(b4)。もし、表しえないならば、i=i+1とし(b5)、ステップb2へもどる。
【0059】
4pが、a2 +3b2 という形に表しえるならば、pが素数か否かを判定する(b6)。素数でないならば、ステップb5へもどる。
pが素数であるならば、p+1+a、p+1−aの一方は大きい素因数を有するか否かを判別する(b7)。有しなければステップb5へもどる。
大きな素数で割り切れば、終了する。
【0060】
ここでは
p=2t −α
t=107
α=1
a=24 38789 23037 40815
ととる。
【0061】
このとき、p+1+aは100ビットの素数で割れる。
(a3)楕円曲線Eの決定
Eは、類多項式H3 (X)=Xのpを法とした根j=0をもとにもとめられる。なお、この数学的な面については、前記Silverman の本に掲載されている。
さて、有限体GF(p)を定義体にもち、元の個数が丁度p+1+a個になる楕円曲線Eのj不変数は0になるので、Eは次で与えられる。
【0062】
E:y2 =x3 +B
B=625
このとき、#E{GF(p)}=p+1+aである。なお、これは前記Silverman の本に示されている。このため、安全で高速な楕円曲線暗号が構成できる。上記のようにして構成された楕円曲線Eを従来例2の楕円曲線上の署名、認証及び秘密通信方式に用いると、ベースポイントBPの位数が大きな素数で割れ、かつMOV帰着法を避けることができるので安全な方式が実現される。
【0063】
さらに方式の実現に要求される基本演算のひとつであるGF(p)上の乗法は、2t =αと置き換えることによりpによる剰余を求めることなく次のように実現できる。
【0064】
i=0 i=0
ここに、si とsi+tは1又は0である。
また従来例のように特定の自然数cに対してのみc・BPの計算が速くなるというものではない。このため、一般の自然数kに対してk・BPの計算を高速にする手法である加算鎖の方法と組み合わせることにより、一層の高速化が可能になる。またデータ量についても、定義体のデータとして信号処理用のスマートカードにpを覚える代わりにtとαを覚えさせることができ、この場合tのビット数は無視でき、αは〔2t/3〕ビット以下であるため、定義体のデータ量が削減できる。また、演算の高速化にも寄与する。
【0065】
なお、上述の実施例は自然数dを3として行ったが、これは素数pを求める計算が楽なことと虚二次体Q{(−d)1/2 }の類数が小さく、この場合1となることによるものであり、他の虚二次体Q{(−d)1/2 }の類数が小さくなるような自然数なら何でもよい。また、虚二次体Q{(−d1/2 )}の類数が小さいのは、楕円曲線を求める演算が楽なことによるものであり、類数は1に限定されるものではない。なお、d<1000ならば、演算が実用上充分可能である。参考までに記すならば、類数が1の虚二次体をつくるdとしては、必ずしも全てが本発明の実施に適当とは限らないが、他に1、2、7、11、19、43、67、163の8個があり、同じく類数が2の虚二次体をつくるdとしては、10、15、26、30等がある。また、dに対して条件を満たす素数pは上述の実施例だけに限定されるのでなく、本実施例に示したpに関する条件を満たす素数なら何でもよい。蛇足ながら、pが30桁以上であるならば、近い将来においても、充分な安全性、すなわち逆演算の困難性が維持されるであろう。
(第2実施例)
本発明の署名、認証及び秘密通信方式に使用する楕円曲線の他の作成手順の実施例を示す。本実施例の作成手順も、基本的には図4に示すのと同じである。以下、同図のAを流用しながら実施例の手順を説明する。
(a1)自然数dの決定
自然数dを、虚二次体Q{(−d)1/2 }の類数が小さくなるようにとる。ここではd=24とする。
(a2)素数pの生成
素数pを、a,bを自然数としたとき4p−a2 =24×b2 となりかつ、p+1−aあるいはp+1+aが大きな素数で割れかつ、自然数t及び小さい自然数αに対し2t −αと表されるようにとる。
【0066】
ここでは
p=2t −α
t=127
α=1
a=10671 93179 31455 45219
ととる。このとき、p+1−aは124ビットの素数で割れる。
【0067】
なお、この際の詳細な手順も基本的には図4のBに示すのと同じである。
(a3)楕円曲線Eの決定
類多項式H24(X)=X2 ー4834944X+14670139392のpを法とした根は
j1 =3 14934 62074 25766 39325 56096
j2 =1701 41183 46043 77382 69613 04605 19563 84575
である。有限体GF(p)を定義体にもち、元の個数が丁度p+1−a個になる楕円曲線Eのj不変数はj1 とj2 で与えられる。よってそれぞれをj不変数にもつ楕円曲線は次で与えられる。
【0068】
E1 :y2 =x3 +A1 x+B1
A1 =915 03150 65123 53429 89289 36723 21130 54488
B1 =1177 15828 25431 33059 03422 01272 67034 04901
E2 :y2 =x3 +A2 x+B2
A2 =1400 68970 50479 08325 24538 34292 93927 22673
B2 =366 65585 84970 41444 39129 79404 76337 79873
このとき、#E1 {GF(p)}=#E2 {GF(p)}=p+1−aであるが、j不変数が異なるので互いに同型でない。このためE1 による暗号方式が解読されたところでE2 による暗号方式が解読されることはない。
【0069】
暗号システムをより強固なものにするには、システム毎にもしくは同じシステムでも定期的に暗号方式のパラメータを変更することが望ましい。この際、基本演算(定義体のpと楕円曲線の元の個数Nを法とした演算)は同一である方が変更を容易にする。上記のように構成された楕円曲線E1 及びE2 は、基本演算は同じであるが同型でない暗号方式、すなわち異なる暗号を提供できる。よってE1 とE2 を2つのシステムで別々に用いる、あるいは一つのシステムにおいてE1 からE2 に変更することにより容易に暗号システムを強固にできる。さらに方式の実現に要求される基本演算の一つであるGF(p)上の乗法は、p=2t ±αという形から一般の有限体上の乗法に比較して高速に実現できる。また従来例のように特定の自然数cのみに対しc・BPの計算が速くなるというものではない。このため、一般の自然数kに対してk・BPの計算を高速にする手法である加算鎖の方法と容易に組み合わせることにより高速化が可能になる。またデータ量についても、定義体のデータとしてpを記憶する代わりにtとαを記憶するだけでよいので、定義体のデータ量は小さくなる。
【0070】
なお、本実施例は正整数dを24として行ったが、これは勿論他の虚二次体Q{(−d)1/2 }の類数が小さくなるような正整数なら何でもよい。また、dに対して条件を満たす素数pは上述の実施例だけに限定されるのでなく先に示したpに関する条件を満たす素数なら何でもよい。そして、これらのことは先の実施例と同じである。
【0071】
次に、上記第1実施例、第2実施例で示した手順で作成した楕円曲線を使用した離散対数問題を根拠とする署名、認証及び秘密通信方式の実施例を説明する。
(第3実施例)
本実施例は、先の第1実施例の楕円曲線を使用した共有鍵暗号方式であり、図2に示す従来技術の離散対数問題の困難性に基づくものと基本的な手順は同じで
ある。
【0072】
すなわち、通信網の提供者がE{GF(p)}とBPを全ユーザに公開し、各ユーザU,V,W,…は、各々任意の自然数u,v,w,…を選定し、これは秘密に保持する。この上で、各ユーザU,V,W,…は各々u・BP,v・BP,w・BP…を相互に知らせあう。
任意の二人のユーザは、自分の秘密に保持する自然数と通信相手から知らされた値との積を計算し、これを両者の共有鍵とする。例えばユーザUとVならばユーザUは、自分の秘密に保持するuとVから知らされたv・BPとの積u・v・BPを計算する。同様に、ユーザVは、vとu・BPとからv・u・BPを計算する。ここに、当然u・v・BP=v・u・BPである。この上で、両者は、u・v・BPを秘密に保持する。
【0073】
さて、この場合、通信文は1次元の数値であり、u・v・BPはx座標値とy座標値を有する2次元の数値であるため、通信文の暗号化及び復号にはx座標値若しくはy座標値のいずれか一方のみ使用され、いずれを使用したかを知らすため、別途1ビットのデータC(u・v・BP)を知らせるものとする。この際、第1実施例の楕円曲線ではp≡3(mod 4)であるため、以下の性質を利用している。
【0074】
(x3 +Ax+B)p-1 =1 (フェルマーの定理)
y4=(x3 +Ax+B)2=(x3 +Ax+B)4S+2*(x3 +Ax+B)2
ここに、S=(p−3)/4
故に、y=±(x3+Ax+B)S+1
このため、C(u・v・Bp)=1のとき、y=−(x3+Ax+B)、
C(u・v・Bp)=−1のとき、y=(x3+Ax+B)とあらかじめ取極めておく。
(第4実施例)
本実施例では、第3実施例と同じ原理の秘密通信を行なうものであるが、ユーザUとユーザVとの間に証人の役を担う仲介者Wが存在するものである。
【0075】
最初、仲介者Wは、第2実施例にて示した2つの楕円曲線E1 とE2 をもとに秘密通信に使用するE1 {GF(p)}及びそのベースポイントBPu 並びにE2 {GF(p)}及びそのベースポイントBPV をもとめる。
この上で、ユーザWは、ユーザUに対してはE1 {GF(p)}と自己が選択したベースポイントBPu を知らせる。ここにBPu はE1 {GF(p)}の零元でない元である。勿論ユーザVに対してはE1 {GF(p)}もBPu も秘密にしておく。
【0076】
ユーザVに対してはE2 {GF(p)}と自己が選定したベースポイントBPV を知らせる。ここにBPV はE2 {GF(p)}の零元でない元である。勿論ユーザUに対してはE2 {GF(p)}もBPV も秘密にしておく。
しかる後、ユーザUは任意の整数du を秘密に選定し、ユーザWに対する自分の識別情報Yu を式Yu =du ・BPu により計算する。
【0077】
ユーザWは任意の整数duwを秘密に選定し、ユーザUに対する自分の識別情報Yuwを式Yuw=duw・BPu により計算する。
この上で、ユーザUとユーザWとは相互にYu とYuwとを通知しあい、Kuw=du ・Yuw=duw・Yu を両者の共有鍵とする。この上でユーザUからユーザWへ共有鍵Kuwを暗号化鍵及び復号化鍵とする秘密鍵暗号通信方式により署名を希望する平文Mを送信する。この場合の演算は例えば平文Mと共有鍵との排他的論理和(暗号化時)及びその逆演算(復号時)とすることができる。
【0078】
尚、前記Yu 、Yuw及びKuwはユーザVは勿論のこと、第三者にも秘密に保持される。
次に、ユーザWは任意の整数dv を秘密に選定し、ユーザVに対する自分の識別情報Yv を式Yv =dv ・BPv により計算する。
ユーザWは任意の整数dvwを秘密に選定し、ユーザVに対する自分の識別情報Yvw=dvw・BPv により計算する。
【0079】
この上でユーザVとユーザWは相互にYv とYvwを通知しあい、Kvw=dvw・Yv =dv ・BPv を両者の共有鍵とする。更に、ユーザVとユーザWとの通信においては、この共有鍵Kvwを使用しての通信文の秘密化の演算は排他的論理和ではなく、EXCLUSTIVE-NORが採用される。この場合にも、Yv 、Yvw及びKvwはユーザUは勿論のこと第三者にも秘密に保持される。
【0080】
ここで、ユーザUとユーザW及びユーザVとユーザWとで採用する楕円曲線を変更しているのは、ユーザUとユーザWの通信文の内容をユーザVに知得されることとユーザVとユーザWの通信文の内容をユーアUに知得されることとを少しでも防ぐためである。
また秘密化そして復号の演算を変更しているのは、ユーザWの過誤に対して少しでも安全性を増すためであり、またその演算の具体的例として排他的論理和(EXCLUSIVE-OR)、排他的論理和の反転(EXCLUSIVE-NOR )を採用しているのは、秘密化と復号の処理に要する時間がほぼ同じであるため通信効率がよいことによる。
【0081】
以上のもとで、ユーザUとユーザVとの通信はユーザWを介在してなされることになる。この場合、ユーザWは一方のユーザ(U又はV)から他方のユーザ(V又はU)への通信文を介在する場合に、認証した旨の証明文とその受付日時、発信日時等をも付加する。これにより、ユーザUとユーザVとの秘密通信はユーザWにより認証されたこととなる。
【0082】
この場合、秘密性の向上のため異なる楕円曲線E1 ,E2 を使用するが、定義体のpと楕円曲線の元の個数Nを法とした演算が同じであるため、仲介者Wの処理も剰余演算ルーチンを共通化できる等種々便利となる。
(第5実施例)
本実施例は第1実施例の楕円曲線を署名、認証通信に使用したものである。図5は、その手順を示したものである。
【0083】
網提供者は、E{GF(p)}とBPとを全ユーザに公開する。
一方、秘密通信を希望するユーザUとユーザVとは、任意の整数u、vを秘密に作成し(ステップ3)、網提供者から得た元BPを用いて、E{GF(p)}上でYu =u・BP、Yv =v・BPを計算する。そして、このYu 、Yv を公開通信網を使用して相互に通知する。
【0084】
次に、ユーザUからユーザVに平文Mを送る場合であると、
Uは秘密に整数である乱数ru を選び、自分だけが知っているこの乱数ru とVの公開鍵Yv を用いて次の2組の通信文C1 、C2 を作成する。
C1 =ru ・BP …〔2〕
C2 =M+ru ・Yv …〔3〕
そしてUはVにC1 、C2 を送る。
【0085】
通信文C1 、C2 を受け取ったユーザVは自分だけが知っているvを用いて次式を計算してMを得る。
M=C2 −v・C1 …〔4〕
この場合、もしユーザUが通信先を誤って第三者である他のユーザWに送信したとしても、このWはvを知り得ないため、通信文の復号をなしえない。
(第6実施例)
次に、通信文の信号処理について説明する。
【0086】
発生させた乱数及び通信文の秘密化と復号に通信毎にC1 =ru ・BP1 ,C2 =M+x(ru ・Yv )等の演算が必要とされる。
この場合、例えば乱数ru をとるならば、これは2進数では1と0とのみからなり、これが10進数で15ならば2進数では23 +22 +2+1と表記される。この際、E{GF(p)}上でのru ・BP1 の演算にはあらかじめ求めていた23 BP1 ,22 BP1 ,2BP1 を使用するのにかえて24 BP1 −BP1 が採用される。
【0087】
更に、24 BP−BPの計算は、GF(p)上の乗算を用いてできるので、
2t ≡α(mod p)又は2t ≡−α(mod p)という性質を利用する。
この他、値の如何によりRelated Artsで説明した加法鎖も採用されるのは勿論である。
以上、本発明を実施例にもとづいて説明してきたが、本発明は何も上記実施例に限定されるものではないのは勿論である。すなわち、例えば
(1)自然数dや類数は、素数や楕円曲線を求めるプログラムや計算そのものの便宜のため、比較的小さな数としたものとしている。しかしながら、外交、金融等秘密の要請が高い場合には、計算費用は多少かかろうがより桁数の高い値、例えば10000、50000、100000前後等としてもよい。
(2)通信文の楕円曲線上でのBPとの演算を使用しての暗号化等は、実施例では桁数が増加しないように論理演算としたものであり、これに限定されない。具体的には、送信者と受信者の取極めで乱数を併用したり、通信文をブロック分割し、この分割したブロックの入れ換えに使用する等してもよい。なお、これらの場合には別途使用した乱数の通知やブロック分割の仕方や入れ換え等についての取極めがなされるのは勿論である。また、これらについては、前揚の「現代暗号理論」に詳しい。
(3)楕円曲線E{GF(p)}上の点のx座標、y座標の両方を交互にあるいは偶数日か奇数日かに応じて使いわける等して通信文の暗号化に使用する。
【0088】
【発明の効果】
以上説明してきたように、本発明では、各種解法の存在しない、しかも比較的小さな楕円曲線上の有限体を使用することにより秘密性の高いしかも信号処理の迅速な署名、認証及び秘密通信方式を提供しえる。
更に、この際、加法錠等の高速演算の併用も容易である。
【0089】
また、IC回路等に記憶させることが必要な情報量も少なくてすむ。
また秘密性向上のため定期的に楕円曲線を変更する際にも、必要なハード等の変更は最小限ですむ。
【図面の簡単な説明】
【図1】本発明における署名、認証及び秘密通信方式に使用する楕円曲線を作成するフローチャートである。
【図2】有限体上での離散対数問題の困難性に根拠をおく秘密通信方式の手順の内容を示した図である。
【図3】楕円曲線の演算の内容を示す図である。
【図4】従来の楕円曲線を見出す手順のフローチャートである。
【図5】本発明における署名、認証及び秘密通信方式に使用する楕円曲線を使用しての秘密送信の際の通信文の暗号化と復号の手順の一例を示した図である。
Claims (8)
- 提供者装置、第1及び第2ユーザ装置から構成され、第1ユーザ装置と第2ユーザ装置との間で秘密の通信を行う秘密通信方式であって、
(1)秘密通信網における提供者装置は、秘密通信に使用する楕円曲線E{GF(p)}を設定し、E{GF(p)}とそのベースポイントBPを前記第1及び第2ユーザ装置へ送信し、
(2)前記第1及び第2ユーザ装置は、それぞれ、E{GF(p)}とベースポイントBPとを受信し、任意の自然数を選定し、この自然数回、前記ベースポイントBPをE{GF(p)}上で加算した値を求め、
(3)前記第1及び第2ユーザ装置は、それぞれ、自分が任意に選択した自然数を秘密に保持し、この一方、前記自然数回、BPをE{GF(p)}上で加算した値を自己の公開鍵として通信を希望する相手方の前記ユーザ装置に相互に送信し、
(4)相互に通信を行う前記第1及び第2ユーザ装置は、各自が秘密に保持している自分が選定した自然数回、相手方の前記ユーザ装置から通知されてきた公開鍵をE{GF(p)}上で加算した値を求め、これを両者の共有鍵とし、
(5)相互に通信を行う前記第1及び第2ユーザ装置は、それぞれ、共有鍵を使用して通信文を暗号化及び復号するに際して、共有鍵と通信文の演算の内容を取極め、
(6)第1ユーザ装置は、通信文を共有鍵を使用して取極めに従って秘密化した上で第2ユーザ装置に送信し、
(7)第2ユーザ装置は、取極めに従って共有鍵を使用して復号し、
前記提供者装置は、
正整数t及び[2t/3]ビット以下の大きさの正整数αを記憶している記憶部と、
虚二次体Q{(−d) 1/2 }の類数が小さくなるように、正整数d=3と設定する正整数設定部と、
素数pを、ある整数aに対して4×p−a2 がd×平方数となりかつp+1−aあるいはp+1+aが30桁以上の大きい素数で割れかつ、前記記憶部に記憶されている正整数t及び正整数αに対して2t ±αと表せる素数となるように設定する素数設定部と、
dにより定まる類多項式Hd (x)=0のpを法とした解をj不変数にもつ有限体GF(p)を定義体に持つように、楕円曲線E{GF(p)}を設定する楕円曲線設定部から構成される楕円曲線設定手段を含む
ことを特徴とする秘密通信方式。 - 前記楕円曲線設定手段は、有限体GF(p)を定義体にもつ楕円曲線EのGF(p)上の元で構成される群をE{GF(p)}とするとき、E{GF(p)}の元の個数が30桁以上の大きな素数で割れるように、前記楕円曲線Eを設定する
ことを特徴とする請求項1に記載の秘密通信方式。 - 前記楕円曲線設定手段は、楕円曲線Eとして、dにより定まる類多項式Hd (x)=0の次数をnとし、pを法とした解をj1 、…、jn とするとき、これらの根をj不変数にもつ有限体GF(p)を定義体にもつ楕円曲線E1 、…、En を設定する
ことを特徴とする請求項1及び請求項2のいずれかに記載の秘密通信方式。 - 前記第1及び第2ユーザ装置は、それぞれ通信文を共有鍵を使用して取極めに従って秘密化する際及び復号する際の演算において、2t ≡α(mod p)若しくは2t ≡−α(mod p)という性質及び加法鎖を使用する
ことを特徴とする請求項1〜請求項3のいずれかに記載の秘密通信方式。 - 提供者装置、第1及び第2ユーザ装置から構成され、第1ユーザ装置と第2ユーザ装置との間で秘密の通信を行う秘密通信方式であって、
(1)秘密通信網における提供者装置は、秘密通信に使用する楕円曲線E{GF(p)}を設定し、E{GF(p)}とそのベースポイントBPを前記第1及び第2ユーザ装置へ送信し、
(2)前記第1及び第2ユーザ装置は、E{GF(p)}とベースポイントBPとを受信し、前記第1ユーザ装置は、任意の自然数を選定し、この自然数回、前記ベースポイントBPをE{GF(p)}上で加算した値を求め、
(3)前記第1ユーザ装置は、自分が任意に選択した自然数を秘密に保持し、この一方、前記自然数回、BPをE{GF(p)}上で加算した値を、自己の公開鍵として、前記第2ユーザ装置に通知し、
(4)前記第1及び第2ユーザ装置は、通知された公開鍵と乱数を使用しての通信文を暗号化及び復号するに際して、公開鍵と乱数と通信文の演算の内容の方法を取極め、
(5)公開鍵の通知を受けた前記第2ユーザ装置は、自分が選定した乱数と、前記第1ユーザ装置から通知されてきた公開鍵をもとに、取極めに従って通信文を暗号化し、
(6)前記第2ユーザ装置は、暗号化した通信文を、公開鍵を知らせてきた前記第1ユーザ装置に送信し、
(7)受信した前記第1ユーザ装置は、自分が選定し秘密に保持している整数を使用して、取極めに従って秘密化された通信文を復号し、
前記提供者装置は、
正整数t及び[2t/3]ビット以下の大きさの正整数αを記憶している記憶部と、
虚二次体Q{(−d) 1/2 }の類数が小さくなるように、正整数d=3と設定する正整数設定部と、
素数pを、ある整数aに対して4×p−a2 がd×平方数となりかつp+1−aあるいはp+1+aが30桁以上の大きい素数で割れかつ、前記記憶部に記憶されている正整数t及び正整数αに対して2t ±αと表せる素数となるように設定する素数設定部と、
dにより定まる類多項式Hd (x)=0のpを法とした解をj不変数にもつ有限体GF(p)を定義体に持つように、楕円曲線E{GF(p)}を設定する楕円曲線設定部から構成される楕円曲線設定手段を含む
ことを特徴とする秘密通信方式。 - 前記楕円曲線設定手段は、有限体GF(p)を定義体にもつ楕円曲線EのGF(p)上の元で構成される群をE{GF(p)}とするとき、E{GF(p)}の元の個数が30桁以上の大きな素数で割れるるように、前記楕円曲線Eを設定する
ことを特徴とする請求項5に記載の秘密通信方式。 - 前記楕円曲線設定手段は、楕円曲線Eとして、dにより定まる類多項式Hd (x)=0の次数をnとし、pを法とした解をj1 、…、jn とするとき、これらの根をj不変数にもつ有限体GF(p)を定義体にもつ楕円曲線E1 、…、En を設定する
ことを特徴とする請求項5及び請求項6のいずれかに記載の秘密通信方式。 - 前記第1及び第2ユーザ装置は、それぞれ、通信文を共有鍵を使用して取極めに従って秘密化する際及び復号する際の演算において、2t ≡α(mod n)若しくは2t ≡−α(mod p)という性質及び加法鎖を使用する
ことを特徴とする請求項5〜請求項7のいずれかに記載の秘密通信方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13433994A JP3706398B2 (ja) | 1993-06-18 | 1994-06-16 | 楕円曲線による署名、認証及び秘密通信方式 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14733493 | 1993-06-18 | ||
JP5-147334 | 1993-06-18 | ||
JP13433994A JP3706398B2 (ja) | 1993-06-18 | 1994-06-16 | 楕円曲線による署名、認証及び秘密通信方式 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003426428A Division JP2004139125A (ja) | 1993-06-18 | 2003-12-24 | 楕円曲線による署名、認証及び秘密通信方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0798563A JPH0798563A (ja) | 1995-04-11 |
JP3706398B2 true JP3706398B2 (ja) | 2005-10-12 |
Family
ID=26468471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13433994A Expired - Lifetime JP3706398B2 (ja) | 1993-06-18 | 1994-06-16 | 楕円曲線による署名、認証及び秘密通信方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3706398B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4546120B2 (ja) | 2004-03-17 | 2010-09-15 | 三機工業株式会社 | ベルトジャンクションコンベヤ |
JP2005284111A (ja) * | 2004-03-30 | 2005-10-13 | Japan Science & Technology Agency | 楕円曲線暗号の高速演算処理方法および装置 |
US8510558B2 (en) * | 2009-02-17 | 2013-08-13 | Alcatel Lucent | Identity based authenticated key agreement protocol |
JP5578553B2 (ja) * | 2010-06-02 | 2014-08-27 | 独立行政法人産業技術総合研究所 | 公開鍵暗号技術におけるドメインパラメータの生成 |
-
1994
- 1994-06-16 JP JP13433994A patent/JP3706398B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0798563A (ja) | 1995-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5497423A (en) | Method of implementing elliptic curve cryptosystems in digital signatures or verification and privacy communication | |
US8189775B2 (en) | Method of performing cipher block chaining using elliptic polynomial cryptography | |
KR101098701B1 (ko) | 암호체계의 설계를 위한 아이소지니의 사용 | |
Keerthi et al. | Elliptic curve cryptography for secured text encryption | |
US20100020964A1 (en) | Key generation method using quadratic-hyperbolic curve group | |
US20080165955A1 (en) | Password protocols using xz-elliptic curve cryptography | |
KR20000071078A (ko) | 유한 필드상의 이산 대수 암호시스템의 원분 다항식 구조 | |
US20040010689A1 (en) | Method and apparatus for performing elliptic curve arithmetic | |
US8331558B2 (en) | Method of cipher block chaining using elliptic curve cryptography | |
US20110200187A1 (en) | Elliptic polynomial cryptography with secret key embedding | |
Vanstone et al. | Elliptic curve cryptosystems using curves of smooth order over the ring Z/sub n | |
US20120237030A1 (en) | Elliptic curve-based message authentication code system and method | |
Jeng et al. | An ECC-based blind signature scheme | |
Mohapatra | Public key cryptography | |
JP3706398B2 (ja) | 楕円曲線による署名、認証及び秘密通信方式 | |
Ahirwal et al. | Signcryption scheme that utilizes elliptic curve for both encryption and signature generation | |
Lizama-Perez | Non-invertible key exchange protocol | |
Mohapatra | Signcryption schemes with forward secrecy based on elliptic curve cryptography | |
JP2004139125A (ja) | 楕円曲線による署名、認証及び秘密通信方式 | |
Ghadi | Improving the Robustness of RSA Encryption Through Input-Based Key Generation. | |
CN113872757B (zh) | 一种基于sm2公钥加密算法的广播加密方法 | |
JP2004341563A (ja) | 楕円曲線による署名、認証及び秘密通信方式 | |
Biswas | A mathematical model for ascertaining same ciphertext generated from distinct plaintext in Michael O. Rabin Cryptosystem | |
Bashir et al. | Cryptanalysis and improvement of an encryption scheme that uses elliptic curves over finite fields | |
Krishna | A randomized cloud library security environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20031224 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040128 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20040319 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050622 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050729 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080805 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090805 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090805 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100805 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110805 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110805 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120805 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130805 Year of fee payment: 8 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |