説明

楕円曲線上の新しいトラップドア1方向性関数と、その、より短い署名及び非対称暗号化への応用

【課題】新しいトラップドア1方向性関数を提供すること。
【解決手段】一般的意味において、何らかの二次代数的整数zが使用される。曲線Eと、E上の[z]を定める有理マップとを見出す。有理マップ[z]はトラップドア1方向性関数である。zの賢明な選択は、[z]が効率よく計算され得ること、それを反転させるのが困難であること、[z]により定められる有理関数から[z]を決定することが困難であること、zを知れば楕円曲線点の一定の集合上で[z]を反転させることが可能になること、を保証する。全ての有理マップは、平行移動と自己準同形写像との結合である。平行移動は反転させやすいので、有理マップの最も安全な部分は自己準同形写像である。もし自己準同形写像を、従って[z]を反転させる問題がEにおける離散値対数問題と同じく難しければ、暗号群のサイズはRSAトラップドア1方向性関数のために使われる群より小さくなり得る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、トラップドア1方向性暗号化関数と、その様な関数を利用する暗号システムとに関する。
【背景技術】
【0002】
トラップドア1方向性関数(trapdoor one−way function(TOWF))は、公然と計算可能な関数であり、これを1つのエンティティーのみが反転することができる。TOWFの逆数を計算するためには秘密鍵と称される特別の秘密が必要とされる。
【0003】
TOWFの古典的な例は、Med≡M(modN)という関係に基くRSA関数である。公開RSA関数wは次のように計算される:W(x)=xmodN。数e及びNは公開の値である。数Nは、2つの秘密の別個の素数p及びqの積であるように選ばれる。秘密鍵演算wでRSA関数を反転させることは次のように行われ得る:W−1(y)=ymodN。ここでd=(1/e)mod(p−1)(q−1)であって秘密鍵である。
【0004】
秘密鍵無しでRSA関数を反転させることは難しい問題であると考えられている。Nを因数分解して素数p及びqを得ることはNの大きな値については計算に関して実行不可能であり、従って秘密鍵w=(p−1)(q−)も秘密性を維持する。実際、現在行われているオンライン・バンキングの多くの安全性は、秘密鍵無しでRSA関数を反転させることが難しいことによっている。換言すれば、世界は一般にRSA関数がTOWFであると考えている。
【0005】
TOWFとして,RSA関数は、デジタル署名及び公開鍵暗号化の両方を実行する暗号システムの基礎として使用され得る。トラップドア1方向性関数WでメッセージMにデジタル署名するためには、秘密鍵演算W−1と公開ハッシュ関数Hとを用いてS=W−1(H(M))を計算する。ハッシュ関数には2つの目的:すなわちMをW−1が取り扱えるダイジェストのサイズに圧縮すること、及び1メッセージの署名を関連はあるが無権限のメッセージの署名に変換することを含む何らかの潜在的攻撃を防止すること、がある。メッセージMの署名Sをトラップドア1方向性関数で確かめるために、H(M)=W(S)であることを確認する。
【0006】
TOWFでの公開鍵暗号化は、署名とは或る程度逆である。ハッシュ法の代わりに、符号化方式Eが用いられる。メッセージMを暗号化するために、暗号文C=W(E(M))を計算する。暗号文Cを復号化するために、M=E−1(W−1(C))を計算する。符号化関数は、適用されるべきWに必要とされるサイズにMを適合させるために役立ち、また或る種の関連メッセージ攻撃を防止するのにも役立つ。
【0007】
1つの代わりの暗号システムは、離散値対数問題(discrete log problem)の難しさに基く。離散値対数問題にそのセキュリティの基礎を置く特に強靭な暗号システムは、楕円曲線を利用し、RSA TWOF暗号システムと比べて減少した帯域幅の利点を有する。
【0008】
楕円曲線暗号システムはRSA TOWFと比べて帯域幅を減少させるが、既存システムの望ましい属性を維持しながら帯域幅を最小にする必要が依然として存在する。更に、TOWFは、乱数発生器に依拠していないので、場合によっては所要の帯域幅が大きくても実行しやすいかもしれない。
【0009】
従って、本発明の目的は、上記欠点を除去又は軽減するTOWF暗号システムを提供することである。
【0010】
本発明の基礎をなす原理の理解を容易にするために、これらの原理の数学的基礎の概観が以下に記載される。
【0011】
楕円曲線Eは、楕円曲線の定義方程式を満たす点(x,y)の集合である。定義方程式は、yに関しては二次式でxに関しては三次式であり、非特異である。座標x及びyは1つの体の元であり、それは加え、減じ、乗じ、割ることのできる要素の集合である(割り算についてのゼロを除く)。体の例は、有理数と実数とを含む。有限体もあり、それらは暗号法で最も頻繁に使われる体である。有限体の例は、素数qを法とする整数の集合である。
【0012】
一般性を失うこと無く、楕円曲線の定義方程式はワイエルシュトラス形であり得る。体Fが素数q>3を法とする整数から得られるとき、ワイエルシュトラス方程式はy=x+ax+bの形をとり、ここでa及びbは体Fの元である。
【0013】
楕円曲線Eは、全て定義方程式の解である点(x,y)と、もう1つの点、すなわち無限遠の点Oと、を含む。楕円曲線は群構造も有し、それは、その曲線上の2つの点P及びQを加え合わせて第3の点P+Qを形成できることを意味する。点Oはその群の単位元であり、全ての点PについてP+O=O+P=Pであることを意味する。全ての点P,Q及びRについて、加法は結合性であって、P+(Q+R)=(P+Q)+Rであり、また可換性であって、P+Q=Q+Rである。各点Pは負の点−Pを有し、P+(−P)=Oである。曲線方程式がy=x+ax+bの形のワイエルシュトラス方程式であるとき、P=(x,y)の反数は−P=(x,−y)として容易に決定される。点P及びQをその座標に関して加え合わせるための式は、その上でEが定義されている体における少数の体演算を含んでいて適度に複雑であるに過ぎない。
【0014】
体上の2つの変数の有理関数(x、y)は、各々同じ体上の2つの変数の2つの多項式の比である。従ってr(x、y)=p(x,y)/q(x,y)であり、ここでq及びqはx及びyの多項式である。x及びyの多項式はaxの形の項の和であり、ここでaは体の元(場合によってはm及びnに依存する)であり、m及びnは負でない整数である。例えば、xy−3y+1はx及びyの多項式である。任意の有理関数r(x,y)及び体の元u及びvについて、点(u,v)における有理関数r(x,y)の値が存在する。その値は体の元であるか又は無限遠に存する点であって、r(u,v)と書かれる。値r(u,v)は、各々の変数xに体の元uを代入すると共に各yにvを代入して、乗法、加法及び除法のような体演算の全ての数値を求めることによって簡単に得られる。時折ゼロによる除法が生じるが、それは一般に値r(u,v)が実際には無限大であることを示し、それは、その値が体の中に存在しないので例外と見なされる。従って、曲線上の点(x、y)についてr(x、y)の値を求めることが可能である。また、点Oにおけるr(x、y)の値を定義することも可能であり、これは曲線上の各点でのrの値を求めることを可能にする。
【0015】
楕円曲線E上の有理マップ(rational map)は、もし(u,v)がE上の点であるならば(t、w)=(r(u,v),s(u,v))もE上の点であるような有理関数r(x,y)及びs(x,y)の対である。より一般的には、これは、(u,v)がOと置換されても、更に(t、w)がOであることが容認できても成り立たねばならないが、これはt及びwが共に無限大であることに対応する。
【0016】
楕円曲線上の有理マップは、実際にはその曲線上の点とちょうど同じように加え合わされ得る。加法規則は、体の元での演算の代わりに有理関数で、すなわちx及びyの記号関数で演算を行う点を除いて、同様である。
【0017】
E上の有理マップ(r、s)は、もしE上の有理関数としてrがr’と同等でsがs’と同等であれば、他の有理マップ(r’、s’)と同等であると見なされる。
【0018】
1つの特別の種類の有理マップは、自己準同形写像である。自己準同形写像eは、加法特性を有する有理マップe=(r,s)である、すなわち任意の2つの点P及びQについてe(P+Q)=e(P)+e(Q)である。楕円曲線に関する1つの重要な定理は、もしeがe(O)=Oという性質を有する有理マップであるならばeは自己準同形写像でもあると述べている。この定理は、所与の有理マップが自己準同形写像であるか否かの判断を相当簡単にする。
【0019】
自己準同形写像の重要な例は、e(P)=mPすなわち点Pのm個のコピーの和により定義されるe=[m]である。曲線Eについての加法則は有理関数により定義されるので、Pのm個のコピーである反復和mPもそうである。なぜならば、これらの有理関数は反復され得るからである。従ってe(P)は有理マップである。曲線E上の加法演算は結合性(associative)であるので、e=[m]についてe(P+Q)=m(P+Q)=m(P)+m(Q)=e(P)+e(Q)である。従って、eは、加法特性を有するので、自己準同形写像である。
【0020】
もし[m]と異なる自己準同形写像があれば、Eは虚数乗法を有すると言われる。有限体上で定義された楕円曲線は常に虚数乗法を有する。換言すれば、それらは、全ての整数mについて[m]と異なる自己準同形写像eを有する。
【0021】
楕円曲線理論の1つの有力な定理は、任意の自己準同形写像eは(r(x)、cyr’(x))の形の唯一の有理マップと同等であると述べており、ここでr(x)は単一変数の有理関数であり、cは一定の体の元であり、r’(x)はr(x)の導関数である。この結果は少しも明白ではないけれども、もしeが(f(x、y)、g(x,y))の形であれば、以下で概説されるようにr(x)を決定することは難しすぎるということはない。
【0022】
説明のために、f(x,y)の中の各々のyを、yに関して一次又は定数である多項式と置き換える。例えば、曲線の定義方程式がy=x+ax+bであるならば、各々のyをx+ax+bと置き換えることができ、これはyに関して定数である。分子及び分母が1より高いyの累乗を持たないように、換言すればそれらがyに関して一次であるように、これを必要な回数適用する。改変されたf(x、y)は(a(x)+b(x)y)/(c(x)+d(x)y)の形を持ち、ここでa,b,c及びdは多項式関数であって、これらの変数の前の使用方法と混同されるべきでない。yは上と下に(c(x)−d(x)y)を乗じることによって消去され得、これは下にc(x)−d(x)=c(x)−d(x)(x3+ax+b)を与える。分子の中のyも消去され得る。これはg(x)+h(x)yの形を与え、ここでg(x)とh(x)とはxの有理関数である。h(x)=0であることを証明することができる。なぜならば、eは自己準同形写像であるのでe(−P)=−e(P)であり、従ってe(x,−y)=−e(x,y)であり、従って曲線上のすべての(x、y)についてg(x)+h(x)y=g(x)−h(x)yだからである。そこで、r(x)がg(x)であることが分かった。この様にして見出されたr(x)が唯一であることは明らかである。
【0023】
同様に、有理関数g(x,y)は一次関数h(x)+yk(x)として表示され得、ここでh(x)及びk(x)はxの有理関数であり、同様の理由によりh(x)=0であることを示すことができる。これはk(x)を決定できることを意味し、それは(r(x)、cyr’(x))の形における定数cを見出すための手段を提供する。代わりに、r(x)を微分し、次にcについて解くために何らかの点Pでのeの値を求めることによってcを見出すことができる。
【0024】
全ての自己準同形写像が、二次代数的整数に対応する楕円曲線群に対する1つの作用(action)を有する。二次代数的整数zは、或る整数u及びvについてz+uz+v=0であるような複素数である。もしe+[u]z+[v]=[0]であるならば自己準同形写像eはこの代数的整数に対応し、ここにおける加法は、上で説明されたように、有理マップの加法である。この場合、e=[z]と書くことができ、ここで[]は有理整数に対応する有理マップを示す。
【0025】
全ての実数整数は二次代数的整数であり、自己準同形写像[m]は整数mに対応する。実数整数でない二次代数的整数は−1の平方根である複素数iであり、これは二次方程式i+1=0を満たす。実数整数でない各々の二次代数的整数については、自己準同形写像としての[z]を有する楕円曲線の有限の集合が存在するに過ぎない。既知の結果は、その様な曲線を決定するための理論的手続きと、有理マップとしての[z]を決定する方法とを与えている。
【0026】
一般に、自己準同形写像eの次数はe(P)=0であるような点Pの数である。より正確には、これはeの分離次数と呼ばれる。実際の次数は分離次数と非分離次数と呼ばれる別のものとの積である。eがその標準形において(r(x)、cyr’(x))と表示されるとき、r(x)の分子の次数はeの次数であり、r(x)の分母の次数は1小さい。(ここでは、r(x)の分子及び分母は互いに素であると仮定する)更に、e=[z]について、一般にeの次数を|z|として有する。従って例えば自己準同形写像[m]の次数は|m|=mである。
【0027】
在来の楕円曲線暗号法では、自己準同形写像[m]の値が頻繁に求められる。数mは秘密鍵を表し、[m]P=mPは公開鍵を表す。関数[m]は、mの大きな値についても、[m]についてのr(x)の分子及び分母の完全に展開された多項式形に現れるm項を加え合わせるより遥かに速く効率よく計算され得る。ここで非常に重要な所見は、大次数の自己準同形写像を効率よく計算できることである。
【0028】
次の例は、任意の楕円曲線上の次数2の全ての可能な自己準同形写像を列挙している。このリストは有理マップ及び楕円曲線の同等性に至るまで完全である。これらはシルバーマン(Silverman)の“算術楕円曲線に関する先進的話題”(Advance Topics in the Arithmetic Elliptic Curves)(シルバーマン)から取られたものである。
【0029】
第1は、曲線E上で定義されたe=[z]=[1+i]である:
=x+x、
e(x,y)=((x+1)/(zx),(y(x−1))/(z))として。
zはeの作用を定義する有理関数として現れているので、eはzに対応する値を含む体F上でEが定義されるときにのみ定義されるということに注意すること。(このコメントは以下の2つの自己準同形写像eにも当てはまる)
【0030】
第2は、E上で定義されたe=[z]=[√(−2)]である:
=x+4x+2x、
e(x、y)=((x+4x+2)/(zx),(y(x−2))/(z))として。
【0031】
第3は、E上で定義されたe=[z]=[(1+√(−7))/2]である:
=x−35x+98、
e(x,y)=((x+x(z−2)−7(1−z))/(z(x+z−2)),(y((x+z−2)+7(1−z)))/(z(x+z−2)))として。
【発明の概要】
【課題を解決するための手段】
【0032】
発明者たちは、帯域幅の減少した強靭な暗号システムを提供するTOWFを得るために楕円曲線暗号システムの属性を使用し得ることを認識した。
【0033】
一側面において、本発明は、位数nの楕円曲線E上で動作する暗号システムを提供する。この暗号システムは、z+uz+v=0の形を有する二次代数的整数zに対応する自己準同形写像[z]と(ここでu及びvは秘密の整数であり、vはnと互いに素である)、自己準同形写像[z]を暗号データxに適用して改変済みデータx’を得る公開鍵操作と、データxを得るために改変済みデータx’に[−w][u]+[z]を適用する秘密鍵操作とを有する(wは、整数であり,wv=1 mod nである)。
【0034】
本発明は、他の面において、位数nの楕円曲線E上で動作する暗号システムにおいて暗号操作を実行するための方法を提供する。この方法は、z+uz+v=0の形を有する二次代数的整数zに対応する自己準同形写像[z]を導出するステップであって、u及びvが秘密の整数であり、vがnと互いに素であるステップと、自己準同形写像[z]を用いる公開鍵操作を暗号データxに適用して改変済みデータx’を得るステップと、データxを得るために[−w][u]+[z]を用いる秘密鍵操作を改変済みデータx’に適用するステップであって、wが整数であり,wv=1 mod nであるステップとを含む。
例えば、本発明は以下の項目を提供する
(項目1)
位数nの楕円曲線E上で動作する暗号システムであって、前記暗号システムは、z+uz+v=0の形を有する二次代数的整数zに対応する自己準同形写像[z]であって、u及びvが秘密の整数であり、vとnとが互いに素である自己準同形写像と、前記自己準同形写像[z]を暗号データxに適用して改変済みデータx’を得る公開鍵操作と、前記データxを得るために前記改変済みデータx’に[−w][u]+[z]を適用する秘密鍵操作であって、wが整数であり、wv=1 mod nである秘密鍵操作とを有することを特徴とする暗号システム。
(項目2)
前記整数zは、実数成分及び虚数成分を有する複素数であることを特徴とする項目1に記載の暗号システム。
(項目3)
前記自己準同形写像[z]は、有理マップとして表されることを特徴とする項目1に記載の暗号システム。
(項目4)
前記暗号データxは、メッセージmを含み、前記公開鍵操作は、暗号化されたメッセージm’を得るために前記メッセージmを暗号化するように作用し、前記秘密鍵操作は、前記メッセージmを得るために前記暗号化されたメッセージm’を復号化する様に作用し、前記公開鍵操作は第1エンティティーにより実行され前記秘密鍵操作は第2エンティティーにより実行され、前記第1エンティティー及び前記第2エンティティーは前記暗号システムの部分であることを特徴とする項目1に記載の暗号システム。
(項目5)
前記データx’は、前記暗号システムの第1エンティティーにより署名されるメッセージmを含み、前記秘密鍵操作は署名sを得るために前記メッセージmに作用し、前記公開鍵操作は前記署名を検証するために前記暗号システムの第2エンティティーによって前記署名sに作用し、前記メッセージmは、当初、前記第2エンティティーによって生成されることを特徴とする項目1に記載の暗号システム。
(項目6)
前記メッセージmは、当初のメッセージMに適用されるハッシュ関数から生成されることを特徴とする項目5に記載の暗号システム。
(項目7)
前記暗号データxは、前記暗号システムの第1エンティティーによる署名を受ける複数のメッセージを含み、前記秘密鍵操作は前記署名を得るために前記複数のメッセージの組み合わせに作用し、前記公開鍵操作は前記署名を検証することにより前記複数のメッセージの各々を検証するために前記暗号システムの第2エンティティーによって使用されることを特徴とする項目1に記載の暗号システム。
(項目8)
位数nの楕円曲線E上で動作する暗号システムにおいて暗号操作を実行するための方法であって、前記方法は、z+uz+v=0の形を有する二次代数的整数zに対応する自己準同形写像[z]を導出するステップであって、u及びvが秘密の整数であり、vとnとが互いに素であるステップと、前記自己準同形写像[z]を使用する公開鍵操作を暗号データxに適用して改変済みデータx’を得るステップと、前記データxを得るために[−w][u]+[z]を使用する秘密鍵操作を前記改変済みデータx’に適用するステップであって、wが整数であり、wv=1 mod nであるステップとを含むことを特徴とする方法。
(項目9)
前記整数zは、実数成分及び虚数成分を有する複素数であることを特徴とする項目8に記載の方法。
(項目10)
前記自己準同形写像[z]は、有理マップとして表されることを特徴とする項目8に記載の方法。
(項目11)
前記暗号データxは、メッセージmを含み、前記公開鍵操作の適用は、暗号化されたメッセージm’を得るために前記メッセージmを暗号化し、前記秘密鍵操作の適用は、前記暗号化されたメッセージm’から前記メッセージmを復号化することを特徴とする項目8に記載の方法。
(項目12)
前記データx’は、署名されるメッセージmを含み、前記秘密鍵操作は、署名sを得るために前記メッセージmに作用し、前記公開鍵操作はそれを検証するために前記署名に作用することを特徴とする項目8に記載の方法。
(項目13)
前記メッセージmは、当初のメッセージMに適用されるハッシュ関数から生成されることを特徴とする項目12に記載の方法。
(項目14)
前記暗号データxは、署名を受ける複数のメッセージを含み、前記秘密鍵操作は、前記署名を得るために前記複数のメッセージの組み合わせに作用し、前記公開鍵操作は、前記署名を検証することにより前記複数のメッセージの各々を検証するために前記署名に作用することを特徴とする項目8に記載の方法。
(項目15)
前記データxは、複数の署名者により署名されるべきメッセージを含み、前記秘密鍵操作は、各前記署名者に対応する複数の操作を含み、前記秘密鍵操作は、署名を得るために前記メッセージに連続的に適用され、前記公開鍵操作は、各前記署名者に対応する複数の操作を含み、前記公開鍵操作は、前記署名を検証するために前記秘密鍵操作とは反対の順序で連続的に適用されることを特徴とする項目8に記載の方法。
【0035】
次に添付図面を参照して本発明の実施態様を単に例として説明する。
【図面の簡単な説明】
【0036】
【図1】暗号交換シナリオの略図である。
【図2】トラップドア1方向性関数の使用を示す略図である。
【図3】暗号化のための図2のトラップドア1方向性関数の使用を示す略図である。
【図4】デジタル署名のための図2のトラップドア1方向性関数の使用を示す略図である。
【図5】集合署名(aggregated signatures)のための図2のトラップドア1方向性関数の使用を示す略図である。
【図6】単一のメッセージを有する集合署名のための図2のトラップドア1方向性関数と複数の署名者のための複数のトラップドア1方向性関数との使用を示す略図である。
【発明を実施するための形態】
【0037】
従って図1を参照すると、暗号システム10は、通信チャネル16を介して通信する第1エンティティー12と第2エンティティー14とを有する。第1エンティティー12と第2エンティティー14とは、両方のエンティティー12,14にとって使用可能な公開鍵関数又は秘密鍵関数18を適用する暗号モジュール15を各々有する。各エンティティー12,14は、上記のように暗号化/復号化又は署名/検証を得るためにTOWFと共に鍵関数18を利用する。
【0038】
このようなシステムを実現するためには、対応する公開鍵関数及び秘密鍵関数で適切なTOWFを決定する必要がある。発明者たちは、二次代数的整数zの使用によって適切なTOWFが得られることを認識した。次に曲線Eと、E上の[z]を定義する有理マップとを見出す。その有理マップ[z]はTOWFである。zの賢明な選択は、それが所要の暗号属性を有することを保証する、すなわち:
(a) [z]が効率的に計算され得ること、
(b) [z]を反転させることが困難であること、
(c) [z]を定義する有理関数からのzの決定が困難であること、
(d) zを知れば楕円曲線点の一定の集合上で[z]を反転させうること、を保証する。
【0039】
より一般的には、2つの異なる曲線E及びE’間の有理マップrを使用することができる。その有理マップはTOWFとして使用され得る。しかし、実現を容易にするためには、E=E’を使用するのが好都合である。EからEへの有理マップが好ましい実現形態である。
【0040】
有理マップ(すなわちEからEへの)は、全て、平行移動(translation)と自己準同形写像との結合であり、平行移動は決定しやすく且つ反転させやすいので、有理マップの最も安全な部分は自己準同形写像である。従って自己準同形写像は有理マップの好ましい実現形態である。
【0041】
発明者等は、zを反転させるためにトラップドア逆数を計算する1つの有望な方法はzについて二次方程式z+uz+v=0を使用することであることを認識した。ここでu及びvは整数である。この方程式をvzで割ると(z+u)/v+(1/z)=0が与えられる。従って(1/z)=−(z+u)/vである。(1/z)は一般には二次代数的整数ではない。より精密には、もしzが1より大きな次数を有するならば、(1/z)は二次代数的整数ではない。従って、[z]を反転させる自己準同形写像は無い。その代わりに二元自己準同形写像[z’]=[−(z+u)]があり、これは[z][z’]=[v]を満たす。特定の体Fでは、楕円曲線Eの位数nは時にはvと互いに素であり得、このことはwv=1 mod nとなるような整数wが存在することを意味する。これは、F上で定義されたEの点について[w]が[v]の逆関数として作用することを意味する。
【0042】
この場合、E(F)に対する[z]の作用は自己準同形写像[w][z’]=[−w(z+u)]により反転可能である。もし[z]が効率よく発見され得るならば、[−w(z+u)]も同様でありそうである。これについての代わりの式は[−w]([u]+[z])である。
【0043】
従って、自己準同形写像[z]を公開鍵操作として利用し、[−w][w]+[z]という関係を秘密鍵操作として利用することが可能である。
【0044】
整数u,vは秘密に保たれて、秘密鍵機能を実行するエンティティーだけが利用可能である。
【0045】
これが体Fに特有であって他の体F’上で定義されたEについては当てはまらないということが理解されるであろう。F上で定義されたEの点は、Fの外側の座標を有する点が考慮されていないことを強調するために、時にはE(F)と表示される。
【0046】
[z]がトラップドア1方向性関数であるためには、[z]の公開定義からu及びvを決定することが計算上不可能であるべきであり、さもなければE(F)におけるその逆数が[−w]([u]+[z])として効率よく計算可能である。従って、[z]は、u及びvの容易な決定を許さない形で与えられなければならない。
【0047】
[z]を1対の有理関数として与えることにより,u及びvを容易に決定することはできないと考えられる。通例、第1の座標はxだけの関数であるので、[z]は或る程度は基底形式(r(x)、g(x、y))であり、たとえr(x)を2つの多項式の比として完全に展開することが項の数の多さの故に実行不可能であったとしてもr(x)を見積もるための記述がr(x)の分子の次数をもしかすると明らかにするかもしれない。[z]の次数はvであるので、[z]の記述がvを暴露してしまう可能性がある。従って、[z]が1方向性トラップドアであることを確実にするためには、uも暴露されないことを保証することが重要であり、さもなければ上記のように[z]が反転され得る。
【0048】
シルバーマンによれば、一般的楕円曲線の自己準同形写像リングを決定することは自明の問題ではない。v及びuは整数因数に至るまで自己準同形写像リングを本質的に決定するので、楕円曲線についての記述だけからv及びuを決定することは一般には不可能である。従って、単一の複素自己準同形写像の記述からは、自己準同形写像リングを決定することは依然として自明の問題ではなさそうである。特に、このことは、uを[z]の記述から1対の有理関数として決定することが依然として自明の問題ではなさそうであることを意味する。
【0049】
従って、zの次数は、適度に大きな位数を有するように選択されるべきである。これは、u<4vという関係を使ってuの全ての可能な値を調べ尽くすことができないことを確実にするのに役立つ。これは上記のことから言えることである。なぜならば、zは虚数複素数(an imaginary complex number)でなければならないからである。
【0050】
[z]についての1つの可能な組み立ては、次の所見に基く。上記のように、もしe=[z]=(r(x),cyr’(x))が次数mを有するならば、r(x)=p(x)/q(x)であり、ここでp及びqは夫々次数m及びm−1の多項式である。eのカーネルは、1からmまでのjについてe(Z)=Oであるようなm個の点楕円(m points elliptic)O=Z,Z,...,Zの集合である。もし2からmまでのjについてZ=(z,y)ならば、q(x)=(x−z)(x−z)...(x−z)であると仮定することができる。更に、mZ=Oである。なぜならば、[z’][z]=[m]であり、ここでz’はmZ=[m]Z=[z’][z]Z=[z’]O=Oとして上で決定されたzの共役(the conjugate)だからである。更に、eのカーネルは、必ずしもE(F)の一部としてではないけれども、楕円曲線Eにおける位数mの部分群である。楕円曲線は、全体として、一般には少なくともm+1個のこのような部分群を有する。
【0051】
次に、点B=(0,√b)を含む楕円曲線を考察する。[z]W=Bであるような点Wが存在すると仮定する。1からmまでのjについてW=W+Zとする。(W=W+Z=W+O=Wであることに留意)1からmまでのjについてWj=(wj,uj)であると仮定する。すると、何らかの定数dについてp(x)=d(x−w)(x−w)...(x−w)となる。
【0052】
p(x)=d(x−w)u(x)であることに注意する。ここでu(x)の根は本質的にq(x)の根の有理関数である。2つの多項式の根がこのような単純な関係を有するときには、該多項式の係数の変換則(a transformation)が存在する。例えばu(x)の根がq(x)の根の平方であるならばu(x)=q(√x)q(−√x)(−1)deg q(x)である。この様に、q(x)を数的に表現する能力は、u(x)を数的に表現する手段を与えることが分かる。
【0053】
上記の所見を用いて、その有限x座標が低ハミング・ウェイト(a low Hamming Weight)多項式q(x)の零点である何らかの楕円曲線Eにおける位数mの部分群を捜し求めることができる。低ハミング・ウェイト多項式q(x)を持つことは望ましいことである。なぜならば、それらの数値を効率よく求められるからである。次に、上記のように点Wを見出し、それは上で概説されたように分子p(x)を効率よく計算することを可能にする。p(x)及びq(x)の値を求めることができれば、r(x)の値を求めることができる。
【0054】
そのような多項式p(x)、q(x)を見出す方法についての1つの説明は次のとおりである。もしZが[z]のカーネルであれば−Zもそうであり、従ってzはq(x)の二重根として現れることができる。q(x)が素数である次数mを有すると仮定する。更にmがエルキース素数(an Elkies prime)であると仮定するが、その正確な意味は以下の議論においては問題ではない。これは、次数(m−1)/2の多項式s(x)についてq(x)=s(x)であることを意味し、それはm番目の除算多項式(the mth division polynomial)の1つの因数である。楕円曲線E(F)上の点を数えるためのスクーフ−エルキース−アトキン(Schoof−Elkies−Atkin(SEA))アルゴリズムは、s(x)の形の多項式が見出されるステップを含む。多項式v(x)の係数は再帰方程式(a recursion equation)により見出される。従って、そのような多項式を組み立てるための方法が知られている。SEAアルゴリズムでは、そのようなs(x)がmの割合に小さな値について見出されるが、本目的のためにはmを大きくするのが有利である。
【0055】
もう一つの可能なアプローチは低ハミング・ウェイトの既約多項式s(x)を選ぶことである。zをその根のうちの1つであるとし、ここでzは楕円曲線E上の或る点のx座標である。その点は有限の位数mを有することができる。この有限位数は、ガロア自己同形写像を適用することにより、s(x)の任意の根zについて当てはまる。s(x)の根から生じるこれらの点が下に閉じられているということ、すなわちそれらがEの部分群を形成するということも事実であるならば、s(x)は望ましい形を有する。そうであるためには、基本的に、g(P)=2Pであるようなガロアの自己同形写像gとE上の点Pとを必要とする。これが可能になるようにg,P,及びEを探すことにより、所望の形の多項式s(x)を見出せるかもしれない。実際問題としては、y座標は、2つの値のうちの一方をとり得るに過ぎないので、無視できる。
【0056】
もし自己準同形写像のカーネルが点Oにおいてのみ群E(F)と交差するならば、自己準同形写像eの群E(F)に対する作用は反転可能である。この場合、自己準同形写像eは群E(F)の自己同形写像である。一般に群E(F)は巡回性(cyclic)であり、以下の議論においてはE(F)は巡回性であると仮定する。もしeが位数nの巡回群の自己同形写像であれば、発明者たちにより実現されたアルゴリズムはe(G)=dGとなるように整数dを決定し、ここではその群について加法表示法を使用する。このアルゴリズムのコストは、n−1の因数分解による。nのランダムな値が一般に約n1/3である因数fを有するということが知られている。このサイズの因数が与えられると、該アルゴリズムはfの一定倍数のステップでdを決定することができる。これは、dGが与えられた場合にdを見出す一般的アルゴリズムよりかなり速い。これらの一般的アルゴリズムはn1/2ステップを必要とする。
【0057】
従って、n−1がn1/3に近い因数fを持たないような位数nを群E(F)が持つことが望ましい。nをこの様に選ぶことの代わりは、考慮される敵対者にとってn1/3の攻撃のコストが高すぎるように、単にnを僅かに大きく選ぶことである。例えば、80ビットのセキュリティ・レベルでは、そのような大きなnをnが約2240であるように選ぶことができ、128ビットのセキュリティ・レベルではnが約2384であるようにnを選ぶことができる。しかし、効率上の理由からより小さなnを用いるのが好都合であり、従ってn−1がn1/3と同様のサイズを持つことを保証するために必要な特別の作業が行われると想定される。
【0058】
自己準同形写像eが使用される方法が一般的に図2に示されている。第1エンティティー12は1つのxの値をとる。それは、2つの対応するyの値のうちの一方を任意に選ぶことができる。それは次に公開鍵関数[z]を有利マップe=(r(x),g(x,y))として適用し、何らかの値(x’、y’)に到達するためにe(x,y)の値を求める。これは基本的公開鍵操作であろう。第2エンティティー14は、メッセージ(x’、y’)を受け取って、値(x,y)を得るためにe−1を適用する。これは基本的秘密鍵操作[−w][u]+[z]であろう。yが−yに変更されればy’は−y’に変化するけれども、x’及びxは影響を受けない。従って全ての実際的目的のためにyをおおむね無視することができる。
【0059】
図3に示されている暗号化にこれを適用するために、第1エンティティー12は公開鍵関数[z]の使用によりxを平文にセットし、x’を暗号文にセットする。公開鍵暗号化への既知の精巧なアプローチは一般に、特に同じ平文の繰り返し暗号化が別々の暗号文を与えるように、何らかのランダム化されたパディングを平文xに対して適用する。第2エンティティー14は、平文xを得るために秘密鍵関数を用いて暗号文x’を復号化する。
【0060】
これを図4に示されているように署名に適用するために、第2エンティティー14は、署名されるべきメッセージになるようにx’をセットし、秘密鍵関数の適用によってxを署名として計算する。一般に長いメッセージからx’を生成するために何らかのハッシングが使用され、それはデジタル署名のための標準的手法である。第1エンティティー12は、e(x,y)=(x’,y’)であることを確かめるために公開鍵操作eを用いる。ハッシュ関数は1方向性であるので、第1エンティティーは(x,y)から出発してeを適用して(x’、y’)を得ることによって署名を偽造することはできない。なぜならば、次のステップはx’=Hash(M)であるようにメッセージMを見出すことであり、これは1方向性ハッシュ関数に関しては実行不可能であると考えられるからである。
【0061】
もし[z]を反転させる問題がEにおける離散値対数問題と同じく難しければ、暗号群のサイズはRSA TOWFのために使われる群より小さくなり得る。例えば、3072ビットRSA係数は、256ビット体上で定義された楕円曲線とおおよそ同程度に安全であると考えられる。これら両者のセキュリティ・レベルは128ビットであると考えられ、これは、オンライン・バンキング用などにインターネットで今日非常に広く用いられている商業級セキュリティ・レベルである。楕円曲線トラップドア1方向性関数[z]、署名x又は基本暗号文x’のサイズは256ビットであり、これに対してRSAについてはサイズは3072ビットである。
【0062】
在来の楕円曲線暗号法(ECC)と比べると、256ビット楕円曲線についての署名の長さは約512ビットであり、これは楕円曲線TOWFについての署名のサイズの2倍である。同様の節約が暗号化のために可能である。
【0063】
本発明のもう一つの実施態様及び応用においてはTOWFは署名又は暗号文の集合に対して応用される。以下は署名について説明されるけれども、暗号文についての詳細が全く同様であることが理解されるであろう。
【0064】
署名の集合は、単一の署名が単一の署名者により署名された多数のメッセージ、又は多数の署名者により署名された単一のメッセージ、又は多数の署名者により署名された多数のメッセージを表すことを意味する。
【0065】
次に図5を参照すると、t個のメッセージm,m,...,mに署名するために署名者(例えば第1エンティティー12)は各メッセージをハッシュし、各ハッシュを楕円曲線点に変換してt個の点P,...Pを生じさせ、これらは加え合わされて点P=P+...+Pを生じさせる。署名者は、その後、逆関数e−1を適用して署名S=e−1(P)を得、これは多数のメッセージのための単一のメッセージである。次に、他のエンティティー(例えば第2エンティティー14)による検証は、該メッセージをハッシュし、各ハッシュを1つの点に変換し、合計してトータルPとし、次にe(S)=Pであるか否か検査することにより公開鍵18操作eをSに適用することから成る。これを反復して該メッセージを単に連結することの利点は、署名操作が加法型であるので、メッセージの部分を変更することを望む署名者のために大きな融通性を達成することである。
【0066】
上記の手続きは、個々のメッセージ・コンポーネントに署名する順序を課さない、すなわち、署名検証は、同じエンティティーにより署名された署名の(非順序)集合に関連する。しかし、個々のスカラー倍(’重み’)が検証をするエンティティーによって取り出され或いは導出され得るとすれば、この手続きが個々の署名コンポーネントS,...,Sの和にではなくて個々の署名の加重和に向けて容易に一般化され得ることに留意するべきである。これは、重みを適用可能な順序付けに依存させることによって、これらのt個のメッセージの署名プロセスにおける順序付けの実行を可能にする。
【0067】
次に図6を参照して、もしt個の異なる署名者(例えば、全体として第1エンティティー12)が同じ楕円曲線群を使用すると共に別々のTOWFe,...,eを有するならば、それらは次のように単一のメッセージの集合署名を形成することができる。メッセージmに署名するために、第1エンティティー12の第1署名者はそのメッセージのハッシュを計算し、そのハッシュを楕円曲線点Pに変換する。その後、それらは共に(すなわち、第1エンティティー12の全署名者が)、自分たちの秘密鍵操作を各々適用することによってe−1(et−1−1(...(e−1(P))))を計算し、ここで署名はエンティティー1,2,...,tによって順に行われる。検証(例えば第2エンティティー14による)は、対応する公開鍵18操作の各々を逆順に適用し、得られた点Pが署名されたメッセージmのハッシュ値に対応するか否かを調べることから成る。
【0068】
一般に、楕円曲線自己準同形写像は交換可能であるので、多数のエンティティーによる単一のメッセージの署名順序は重要でないと思われる。しかし、例えば署名プロセスにおいて順序付けを実行するために、この手続きは容易に一般化され得るということに留意するべきである。これは、例えば、下記のように、各々の署名をするエンティティーに、計算される署名に対してオフセットを使用させることによって、実現され得る。
【0069】
点Pでのエンティティーiによる個々の署名がe−1(P+A)であり、ここで楕円曲線点Aがエンティティーiについて唯一であると仮定する。すると、エンティティー1,2,...,tによるメッセージm上の順序付き集合書名は、mをハッシュしてこれを楕円曲線点Pに変換し(前のように)、その後に、署名をするエンティティーの各々に、得られた値に対して自分自身の署名操作を適用させることによって、得られる。これはS=e−1(P+A),S=e−1(S+A),...,S=e−1(St−1+A)、をもたらし、ここでSは、得られた集合署名である。署名検証は、個々のオフセットA,...,Aが検証を行うエンティティーによって取り出され或いは導出され得るのであれば、いまや上記手続きの些細な改変であって、シーケンスSt−1=e(S)−A,St−2=e(St−1)−At−1,...,S=e(S)−A,P=e(S)−Aを計算すると共に楕円曲線点Pが署名されているメッセージmのハッシュ値に対応するか否かを調べることに依存する。
【0070】
上では、元の方式の改変は、署名をするエンティティーの各々について独特のオフセットAを用いて署名プロセスの順序付けを実施するように記載されている。S=e−1(P+A)ではなくてS=e−1(f(P,i))を定義するような改変が可能であることが分かり、ここでfは、f(P,i)と署名するエンティティーiに関連する公開情報とからPを効率よく再計算できるという特性を有するEにおけるマッピングである。多数のエンティティーによる単一のメッセージの順序付けられた署名は、多数の書名が必要とされると共に、関係する権限を授けられた当事者によりプロジェクトが特定の階層順に(例えば、ボトムアップ)署名の上で放棄される必要のある場合に、例えば大規模な組織でプロジェクトを署名の上で放棄するために有益であり得る。
【0071】
本発明は或る特定の実施態様に関連して説明されたけれども、その種々の改変は、本書に添付されている項目で概説されている発明の範囲から逸脱すること無く当業者にとっては明らかであろう。上で列挙された全ての参考文献の開示内容全体が参照により本書に組み込まれる。
【符号の説明】
【0072】
10 暗号システム
12 第1エンティティー
14 第2エンティティー
15 暗号モジュール
16 通信チャネル
18 鍵

【特許請求の範囲】
【請求項1】
位数nの楕円曲線E上で動作する暗号システムであって、
前記暗号システムは、
第1の通信相手であって、第2の通信相手に対するデータを暗号処理する第1の通信相手
を含み、
前記第1の通信相手は、メモリ及び第1の暗号プロセッサを含み、前記第1の暗号プロセッサは、
前記第1のメモリ内に、1つの群から別の群に対する自己準同形写像[z]を格納することであって、前記自己準同形写像[z]は、z+uz+v=0を満たす二次代数的整数zに対応し、u及びvは秘密の整数であり、vはnに対して互いに素である、ことと、
対応する秘密鍵操作[−w]([u]+[z])を有する公開鍵操作として前記自己準同形写像[z]を識別することであって、wは整数であり、wv=1 mod nであり、[−w]は−wに対応する自己準同形写像であり、[u]はuに対応する自己準同形写像である、ことと、
暗号処理されるべきデータxを獲得することと、
前記公開鍵操作を前記データxに適用することにより、改変済みデータx’を獲得することと、
前記改変済みデータx’を前記暗号システム内の前記第2の通信相手に提供することにより、前記第2の通信相手における第2の暗号プロセッサが、前記改変済みデータx’に対して秘密鍵操作を実行することを可能にすることと
を実行するように構成されている、暗号システム。
【請求項2】
前記暗号データxは、メッセージmを含み、前記第1の暗号プロセッサによる前記公開鍵操作は、前記メッセージmを暗号化して、暗号化されたメッセージm’を獲得するように作用し、前記第2の暗号プロセッサによる前記秘密鍵操作の適用は、前記暗号化されたメッセージm’を復号化して、前記メッセージmを獲得する、請求項1に記載の暗号システム。
【請求項3】
第1の通信相手が、位数nの楕円曲線E上で動作する暗号システムにおいて、第2の通信相手に対するデータを暗号処理する方法であって、
前記方法は、
前記第1の通信相手において、第1の暗号プロセッサが、メモリ内に、1つの群から別の群に対する自己準同形写像[z]を格納することであって、前記自己準同形写像[z]は、z+uz+v=0を満たす二次代数的整数zに対応し、u及びvは秘密の整数であり、vはnに対して互いに素である、ことと、
前記第1の暗号プロセッサが、対応する秘密鍵操作[−w]([u]+[z])を有する公開鍵操作として前記自己準同形写像[z]を識別することであって、wは整数であり、wv=1 mod nであり、[−w]は−wに対応する自己準同形写像であり、[u]はuに対応する自己準同形写像である、ことと、
前記第1の暗号プロセッサが、暗号処理されるべきデータxを獲得することと、
前記第1の暗号プロセッサが、前記公開鍵操作を前記データxに適用することにより、改変済みデータx’を獲得することと、
前記第1の暗号プロセッサが、前記改変済みデータx’を前記暗号システム内の前記第2の通信相手に提供することにより、前記第2の通信相手における第2の暗号プロセッサが、前記改変済みデータx’に対して秘密鍵操作を実行することを可能にすることと
を含む、方法。
【請求項4】
前記暗号データxは、メッセージmを含み、前記第1の暗号プロセッサによる前記公開鍵操作の適用は、前記メッセージmを暗号化して、暗号化されたメッセージm’を獲得し、前記第2の暗号プロセッサによる前記秘密鍵操作の適用は、前記暗号化されたメッセージm’から前記メッセージmを獲得する、請求項3に記載の暗号システム。
【請求項5】
位数nの楕円曲線E上で動作する暗号システムであって、
前記暗号システムは、
第1の通信相手であって、第2の通信相手に対するデータを暗号処理する第1の通信相手
を含み、
前記第1の通信相手は、メモリ及び第1の暗号プロセッサを含み、前記第1の暗号プロセッサは、
対応する公開鍵操作[z]を有する秘密鍵操作[−w]([u]+[z])を決定することであって、wは整数であり、wv=1 mod nであり、[z]は1つの群から別の群に対する自己準同形写像であり、前記自己準同形写像[z]は、z+uz+v=0を満たす二次代数的整数zに対応し、u及びvは秘密の整数であり、vはnに対して互いに素であり、[−w]は−wに対応する自己準同形写像であり、[u]はuに対応する自己準同形写像である、ことと、
暗号処理されるべきデータxを獲得することと、
前記秘密鍵操作を前記データxに適用することにより、改変済みデータx’を獲得することと、
前記改変済みデータx’を前記暗号システム内の前記第2の通信相手に提供することにより、前記第2の通信相手における第2の暗号プロセッサが、前記改変済みデータx’に対して公開鍵操作を実行することを可能にすることと
を実行するように構成されている、暗号システム。
【請求項6】
前記データxは、署名されるべきメッセージmを含み、前記第1の暗号プロセッサは、前記メッセージmに対して前記秘密鍵操作を適用して、署名sを獲得し、前記公開鍵操作は、前記署名を検証する、請求項5に記載の暗号システム。
【請求項7】
前記メッセージmは、前記第2の通信相手によって提供される当初のメッセージMに適用されるハッシュ関数から生成される、請求項6に記載の暗号システム。
【請求項8】
前記暗号データxは、前記第1の通信相手によって署名を受ける複数のメッセージを含み、前記第1の通信相手は、前記複数のメッセージの組み合わせに前記秘密鍵操作を適用して、前記署名を獲得し、前記公開鍵操作は、前記第2の通信相手によって用いられて、前記署名を検証し、これにより、前記複数のメッセージのそれぞれを検証する、請求項5に記載の暗号システム。
【請求項9】
第1の通信相手が、位数nの楕円曲線E上で動作する暗号システムにおいて、第2の通信相手に対するデータを暗号処理する方法であって、
前記方法は、
前記第1の通信相手において、第1の暗号プロセッサが、対応する公開鍵操作[z]を有する秘密鍵操作[−w]([u]+[z])を決定することであって、wは整数であり、wv=1 mod nであり、[z]は1つの群から別の群に対する自己準同形写像であり、前記自己準同形写像[z]は、z+uz+v=0を満たす二次代数的整数zに対応し、u及びvは秘密の整数であり、vはnに対して互いに素であり、[−w]は−wに対応する自己準同形写像であり、[u]はuに対応する自己準同形写像である、ことと、
前記第1の暗号プロセッサが、暗号処理されるべきデータxを獲得することと、
前記第1の暗号プロセッサが、前記秘密鍵操作を前記データxに適用することにより、改変済みデータx’を獲得することと、
前記第1の暗号プロセッサが、前記改変済みデータx’を前記暗号システム内の前記第2の通信相手に提供することにより、前記第2の通信相手における第2の暗号プロセッサが、前記改変済みデータx’に対して公開鍵操作を実行することを可能にすることと
を含む、方法。
【請求項10】
前記データxは、署名されるべきメッセージmを含み、前記方法は、前記第1の暗号プロセッサが、前記秘密鍵操作を適用して前記メッセージmに作用することにより、署名sを獲得することを含み、前記公開鍵操作は、前記署名sを検証する、請求項9に記載の方法。
【請求項11】
前記メッセージmは、前記第2の通信相手によって当初のメッセージMに適用されるハッシュ関数から生成される、請求項10に記載の方法。
【請求項12】
前記暗号データxは、署名を受ける複数のメッセージを含み、前記秘密鍵操作は、前記複数のメッセージの組み合わせに作用して、前記署名を獲得し、前記公開鍵操作は、前記署名を検証し、これにより、前記複数のメッセージのそれぞれを検証する、請求項9に記載の方法。
【請求項13】
前記データxは、複数の署名者により署名されるべきメッセージを含み、前記秘密鍵操作は、前記複数の署名者のそれぞれに対応する複数の操作を含み、前記複数の操作は、前記メッセージに連続的に適用されて、署名を獲得し、前記公開鍵操作は、前記複数の署名者のそれぞれに対応する複数の対応する操作を含み、前記対応する操作は、前記複数の署名者のそれぞれに対応する前記複数の操作とは反対の順序で連続的に適用されて、前記署名を検証する、請求項9に記載の方法。
【請求項14】
位数nの楕円曲線E上で動作する暗号システムであって、
前記暗号システムは、
第1の通信相手であって、第2の通信相手から受信されたデータを暗号処理する第1の通信相手
を含み、
前記第1の通信相手は、メモリ及び第1の暗号プロセッサを含み、前記第1の暗号プロセッサは、
前記第1のメモリ内に、1つの群から別の群に対する自己準同形写像[z]を格納することであって、前記自己準同形写像[z]は、z+uz+v=0を満たす二次代数的整数zに対応し、u及びvは秘密の整数であり、vはnに対して互いに素である、ことと、
対応する秘密鍵操作[−w]([u]+[z])を有する公開鍵操作として前記自己準同形写像[z]を識別することであって、wは整数であり、wv=1 mod nであり、[−w]は−wに対応する自己準同形写像であり、[u]はuに対応する自己準同形写像である、ことと、
前記第2の通信相手から改変済みデータx’を受信することであって、前記第2の通信相手は、前記改変済みデータx’を生成する際に前記秘密鍵操作を適用することによって暗号処理されたデータxを有する、ことと、
前記改変済みデータx’に対して前記公開鍵操作を実行することによって、前記改変済みデータx’を暗号処理することと
を実行するように構成されている、暗号システム。
【請求項15】
前記改変済みデータx’は、前記秘密鍵操作を用いて前記第2の通信相手によって署名されるメッセージmに対する署名sを含み、前記公開鍵操作は、前記署名を検証する、請求項14に記載の暗号システム。
【請求項16】
前記メッセージmは、前記第1の通信相手によって前記第2の通信相手に提供される当初のメッセージMに適用されるハッシュ関数から生成される、請求項15に記載の暗号システム。
【請求項17】
前記改変済みデータx’は、前記秘密鍵操作を用いて前記第2の通信相手によって署名される複数のメッセージに対する署名を含み、前記公開鍵操作は、前記署名を検証し、これにより、前記複数のメッセージのそれぞれを検証する、請求項14に記載の暗号システム。
【請求項18】
第1の通信相手が、位数nの楕円曲線E上で動作する暗号システムにおいて、第2の通信相手から受信されたデータを暗号処理する方法であって、
前記方法は、
前記第1の通信相手において、第1の暗号プロセッサが、メモリ内に、1つの群から別の群に対する自己準同形写像[z]を格納することであって、前記自己準同形写像[z]は、z+uz+v=0を満たす二次代数的整数zに対応し、u及びvは秘密の整数であり、vはnに対して互いに素である、ことと、
前記第1の暗号プロセッサが、対応する秘密鍵操作[−w]([u]+[z])を有する公開鍵操作として前記自己準同形写像[z]を識別することであって、wは整数であり、wv=1 mod nであり、[−w]は−wに対応する自己準同形写像であり、[u]はuに対応する自己準同形写像である、ことと、
前記第1の暗号プロセッサが、前記第2の通信相手から改変済みデータx’を受信することであって、前記第2の通信相手は、前記改変済みデータx’を生成する際に前記秘密鍵操作を適用することによって暗号処理されたデータxを有する、ことと、
前記第1の暗号プロセッサが、前記改変済みデータx’に対して前記公開鍵操作を実行することによって、前記改変済みデータx’を暗号処理することと
を含む、方法。
【請求項19】
前記改変済みデータx’は、前記秘密鍵操作を用いて前記第2の通信相手によって署名されるメッセージmに対する署名sを含み、前記公開鍵操作は、前記署名を検証する、請求項18に記載の方法。
【請求項20】
前記メッセージmは、前記第1の通信相手によって前記第2の通信相手に提供される当初のメッセージMに適用されるハッシュ関数から生成される、請求項19に記載の方法。
【請求項21】
前記改変済みデータx’は、前記秘密鍵操作を用いて前記第2の通信相手によって署名される複数のメッセージに対する署名を含み、前記公開鍵操作は、前記署名を検証し、これにより、前記複数のメッセージのそれぞれを検証する、請求項18に記載の方法。
【請求項22】
位数nの楕円曲線E上で動作する暗号システムであって、
前記暗号システムは、
第1の通信相手であって、第2の通信相手から受信されたデータを暗号処理する第1の通信相手
を含み、
前記第1の通信相手は、メモリ及び第1の暗号プロセッサを含み、前記第1の暗号プロセッサは、
対応する公開鍵操作[z]を有する秘密鍵操作[−w]([u]+[z])を決定することであって、wは整数であり、wv=1 mod nであり、[z]は1つの群から別の群に対する自己準同形写像であり、前記自己準同形写像[z]は、z+uz+v=0を満たす二次代数的整数zに対応し、u及びvは秘密の整数であり、vはnに対して互いに素であり、[−w]は−wに対応する自己準同形写像であり、[u]はuに対応する自己準同形写像である、ことと、
前記第2の通信相手から改変済みデータx’を受信することであって、前記第2の通信相手は、前記改変済みデータx’を生成する際に前記公開鍵操作を適用することによって暗号処理されたデータxを有する、ことと、
前記改変済みデータx’に対して前記秘密鍵操作を実行することによって、前記改変済みデータx’を暗号処理することと
を実行するように構成されている、暗号システム。
【請求項23】
前記整数zは、実数成分および虚数成分を含む複素数である、請求項1、5、14、22のいずれか一項に記載の暗号システム。
【請求項24】
前記自己準同形写像[z]は、有理マップとして表される、請求項1、5、14、22のいずれか一項に記載の暗号システム。
【請求項25】
前記改変済みデータx’は、暗号化されたメッセージm’を含み、前記暗号化されたメッセージm’は、前記第2の通信相手によって前記公開鍵操作を用いてメッセージmを暗号化することにより生成され、前記第1の暗号プロセッサによる前記秘密鍵操作の適用は、前記暗号化されたメッセージm’を復号化して、前記メッセージmを獲得する、請求項22に記載の暗号システム。
【請求項26】
第1の通信相手が、位数nの楕円曲線E上で動作する暗号システムにおいて、第2の通信相手から受信されたデータを暗号処理する方法であって、
前記方法は、
前記第1の通信相手において、第1の暗号プロセッサが、対応する公開鍵操作[z]を有する秘密鍵操作[−w]([u]+[z])を決定することであって、wは整数であり、wv=1 mod nであり、[z]は1つの群から別の群に対する自己準同形写像であり、前記自己準同形写像[z]は、z+uz+v=0を満たす二次代数的整数zに対応し、u及びvは秘密の整数であり、vはnに対して互いに素であり、[−w]は−wに対応する自己準同形写像であり、[u]はuに対応する自己準同形写像である、ことと、
前記第1の暗号プロセッサが、前記第2の通信相手から改変済みデータx’を受信することであって、前記第2の通信相手は、前記改変済みデータx’を生成する際に前記公開鍵操作を適用することによって暗号処理されたデータxを有する、ことと、
前記第1の暗号プロセッサが、前記改変済みデータx’に対して前記秘密鍵操作を実行することによって、前記改変済みデータx’を暗号処理することと
を含む、方法。
【請求項27】
前記整数zは、実数成分および虚数成分を含む複素数である、請求項3、9、18、26のいずれか一項に記載の方法。
【請求項28】
前記自己準同形写像[z]は、有理マップとして表される、請求項3、9、18、26のいずれか一項に記載の方法。
【請求項29】
前記改変済みデータx’は、暗号化されたメッセージm’を含み、前記暗号化されたメッセージm’は、前記第2の通信相手によって前記公開鍵操作を用いてメッセージmを暗号化することにより生成され、前記第1の暗号プロセッサによる前記秘密鍵操作の適用は、前記暗号化されたメッセージm’を復号化して、前記メッセージmを獲得する、請求項26に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図3】
image rotate


【公開番号】特開2011−232782(P2011−232782A)
【公開日】平成23年11月17日(2011.11.17)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−179245(P2011−179245)
【出願日】平成23年8月18日(2011.8.18)
【分割の表示】特願2007−540466(P2007−540466)の分割
【原出願日】平成17年11月14日(2005.11.14)
【出願人】(397071791)サーティコム コーポレーション (38)
【Fターム(参考)】