説明

効率的な楕円曲線上の点生成方法、装置、及びプログラム

【課題】一般の楕円曲線に適用可能であり、入力に応じて処理性能に大きなばらつきがないような楕円曲線上の点の生成を実現すること。
【解決手段】
有限集合の元から予め定められた有限体GF(q)(q:奇素数pのべき)上定義された二次曲線CのGF(q)有理点を生成し、前記生成した二次曲線CのGF(q)有理点から当該楕円曲線のGF(q)有理点を生成し、
前記楕円曲線EのGF(q)有理点と前記有限集合の元の一部から前記楕円曲線EのGF(q)有理点を生成することを特徴とする楕円曲線上の点生成方法を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュリティ技術に係り、特に楕円曲線上の点を生成する処理技術に関する。
【背景技術】
【0002】
デジタル署名(以下、署名)は電子データに対する印鑑の役割を果たす。署名対象の電子データに対し、署名者は秘密にしている署名鍵を用いて署名データを生成し、もとの電子データと共に検証者に送信する。検証者は上記電子データ、及び、公開されている検証鍵を用い、上記署名データが署名者によって生成されたかどうかを検証する。従って、署名データは署名鍵を保持する者しか生成できず、また有効に生成された署名データは署名検証時に「有効」として受け入れられ、そうでないものは「無効」として拒絶されるような仕組みになっていなければならない。
【0003】
上述の署名方法は1978年にR.Rivest、A.Shamir、L.Adlemanにより公開鍵暗号技術を用いて実現された。その後、署名の安全性を暗号学的に証明する安全性証明理論の構築及び整備、効率性向上の技術のみならず、プライバシ問題を考慮したグループ署名のような特殊機能をもつ署名などが盛んに研究されている。
【0004】
一般に、署名は任意長データを固定長データに圧縮するハッシュ関数と、数学関数を用いた公開鍵暗号プリミティブの組み合わせで構成されている。このような公開鍵暗号プリミティブのうち、有限体上定義された楕円曲線に基づくものは、素因数分解問題の困難性に基づくもの(RSA、Rabinなど)と比較して短い鍵長で同程度の安全性を達成でき、よって高速処理が可能であることから特に注目を集めている。
【0005】
楕円曲線を利用した暗号や署名はN.Koblitz、V.S.Millerにより提案された。一般に有限体GF(q)上で定義された楕円曲線のうちWeierstrass型と呼ばれるものは
=F(x)=x+ax+b,(a、bはともに有限体GF(q)の元) (式1)
の形の定義式で与えられる。上記で定義された楕円曲線に対し、(式1)を満たすGF(q)の元の組(x,y)のことをGF(q)有理点と呼ぶ。
【0006】
近年、楕円曲線を用いた署名では長らく未解決であったtight security reductionを持つものも提案されている(例えば、非特許文献1参照。)。ここで、tight security reductionとは、署名を偽造する困難性と、その署名の構成要素である公開鍵暗号プリミティブが安全性の根拠とする数論問題(例えば、素因数分解問題、有限体の乗法群/有限体上定義された楕円曲線の離散対数問題など)を解くための困難性が同程度(等価)であることを意味する。
【0007】
上述の非特許文献1や非特許文献2などに記載されている署名は、楕円曲線上に値を持つハッシュ関数が利用されている。一般の楕円曲線上に値を持つハッシュ関数が非特許文献3に、特殊な楕円曲線上に値を持つハッシュ関数が非特許文献3、4に、それぞれ記載されている。
【先行技術文献】
【非特許文献】
【0008】
【非特許文献1】B. Chevallier-Mames, “An Efficient CDH-based Signature Scheme With a Tight Security Reduction”, Advances in Cryptology - CRYPTO 2005, LNCS 3621, Springer-Verlag, pp.511−526, 2005.
【非特許文献2】E. J. Goh, S. Jarecki, “A signature Scheme as secure as the Diffie-Hellman Problem”, Advances in Cryptology - EUROCRYPT 2003, LNCS 2656, Springer-Verlag, pp.401-415, 2003.
【非特許文献3】D. Boneh, H. Shacham, and B. Lynn, “Short Signatures from the Weil Pairing”, Advances in Cryptology - ASIACRYPT 2001, LNCS 2248, Springer-Verlag, pp.514-532, 2001.
【非特許文献4】P. S. L. M. Barreto and H. Y. Kim, “Fast Hashing onto Elliptic Curves over Fields of Characteristic 3”, Cryptology ePrint Archive, Report 2001/098, 2001. available from: http://eprint.iacr.org/2001/098
【発明の概要】
【発明が解決しようとする課題】
【0009】
情報化社会の高度化に伴い、電子情報に対する署名や、通信相手や機器を認証する技術は不可欠となってきている。上述のとおり、暗号技術に課せられる要件としては、安全性や効率性などがある。
【0010】
非特許文献3に記載されている一般の楕円曲線に値を持つハッシュ関数は、予め定められた集合の元rから(式1)のx座標の候補を生成し、対応するy座標が定義体に含まれているかどうかを判定し、含まれていなければ、ある決まった方法にてxを取替え、y座標が含まれるまで繰り返す、という方法(以下、これを試行錯誤法と呼ぶ)である。試行錯誤法の場合、Hasseの定理より繰り返しの平均回数は1.5回程度であることが知られているが、回数の分布にはばらつきがあり、実際にはそれを大幅に上回る計算が必要となることもしばしば起こる。y座標が定義体に含まれるか否かを判定するにはある程度の処理が必要で、2、3回程度なら許容できたとしてもそれを超える回数では全体の処理においてボトルネックになる。
【0011】
一方、非特許文献3、4に記載されている特殊な楕円曲線に値を持つハッシュ関数は、予め定められた集合の元rから(式1)のx座標の候補を生成し、対応するy座標を上記特殊な楕円曲線の定義方程式の性質を用いて決定する、という方法(以下、これを特殊曲線法と呼ぶ)であり、上述の一般の楕円曲線に値を持つハッシュ関数で実施する繰り返しを避け、効率性を向上させるために提案された方法である。
【0012】
一般にハッシュ関数は、署名に用いる場合など、高効率性および入力に非依存な処理時間が求められることが多く、上述の試行錯誤法のように入力に応じて処理性能に大きなばらつきがある(繰り返し回数が変わるため)のは望ましくない。また、上述の特殊曲線法は特殊な楕円曲線のみに適用可能であり、一般の楕円曲線では同様の手法を用いることはできない。
【課題を解決するための手段】
【0013】
本発明は、上記課題に鑑みてなされたもので、一般の楕円曲線に適用可能であり、入力に応じて処理性能が大きくばらつくことのない楕円曲線上の点の生成を実現する楕円曲線上の点生成方法および点生成装置を提供する。
【0014】
以上の課題を解決するため、本発明は、楕円曲線の拡大体における有理点を使用する。
【0015】
例えば、本発明は、有限集合の元から予め定められた有限体GF(q)(q:奇素数pのべき)上で定義された二次曲線CのGF(q)有理点を生成するステップと、
前記生成した二次曲線CのGF(q)有理点から当該楕円曲線のGF(q)有理点を生成するステップと、
前記楕円曲線EのGF(q)有理点と前記有限集合の元の一部から前記楕円曲線EのGF(q)有理点を生成するステップと、
を備えることを特徴とする。
【0016】
より具体的な本発明の態様は、要素数が(q+1)/2(qは5以上の素数べき)の集合Sの元と要素数が2の集合Tの元から有限体GF(q)上定義された楕円曲線EのGF(q)有理点を生成する点生成方法であって、
当該楕円曲線上の点生成方法は、
前記集合Sの元から予め定められた前記有限体GF(q)上定義された二次曲線CのGF(q)有理点を生成する第一のステップと、
前記第一のステップで生成した前記二次曲線Cの前記GF(q)有理点から前記楕円曲線EのGF(q)有理点を生成する第二のステップと、
前記第二のステップで生成した前記楕円曲線EのGF(q)有理点と前記集合Tの元から前記楕円曲線EのGF(q)有理点を生成する第三のステップと、
を備えることを特徴とする。
【0017】
上記楕円曲線上の点生成方法において、さらに、
前記集合Sは集合GF(q)/{1,−1}∪{0}、前記集合Tは{1,−1}であって、
前記第一のステップは、前記集合Sの元tから予め定められた2つのGF(q)上の有理関数α、βに対して、α(t)、β(t)を計算し、前記二次曲線CのGF(q)有理点R=(α、β)を生成し、
前記第二のステップは、予め定められた前記有限体GF(q)の前記有限体GF(q)上の基底(ξ,1)、及び前記二次曲線CのGF(q)有理点(α、β)から前記楕円曲線EのGF(q)有理点P=(α+βξ,√(F(α+βξ)))(Fは前記楕円曲線EのWeierstrass型の定義方程式y=x+ax+b=F(x)に対して、F(x)=x+ax+bなる多項式)を生成し、
前記第三のステップは、前記楕円曲線EのGF(q)有理点Pから前記楕円曲線EのFrobenius自己準同型写像σを用いて前記楕円曲線EのGF(q)有理点(P+σ(P))を生成してもよい。
【0018】
また、具体的な本発明の他の態様は、要素数が(q+1)/2(qは5以上の素数べき)の集合Sの元と要素数が2の集合Tの元から有限体GF(q)上定義された楕円曲線EのGF(q)有理点を生成する点生成方法であって、
当該楕円曲線上の点生成方法は、
前記集合Sの元から予め定められた前記有限体GF(q)上定義された二次曲線CのGF(q)有理点を生成する第四のステップと、
前記第四のステップで生成した前記二次曲線Cの前記GF(q)有理点から前記楕円曲線EのGF(q)有理点を生成する第五のステップと、
前記第五のステップで生成した前記楕円曲線EのGF(q)有理点と前記集合Tの元から前記楕円曲線EのGF(q)有理点を生成する第六のステップと、
を備えることを特徴とする。
【0019】
上記楕円曲線上の点生成方法において、さらに、
前記集合Sは集合GF(q/{1,−1}∪{0}、前記集合Tは{1,−1}であって、
前記第四のステップは、前記集合Sの元tから予め定められた2つのGF(q)上の有理関数α、βに対して、α(t)、β(t)を計算し、前記二次曲線CのGF(q)有理点R=(α、β)を生成し、
前記第五のステップは、予め定められた前記有限体GF(q)の前記有限体GF(q)上の基底(ξ,1)、及び前記二次曲線CのGF(q)有理点(α、β)に対して、前記楕円曲線EのGF(q)有理点P=(α+βξ,√(F(α+βξ)))(Fは前記楕円曲線EのWeierstrass型の定義方程式y=x+ax+b=F(x)なる多項式)を生成し、
前記第六のステップは、前記楕円曲線EのGF(q)有理点Pから、前期楕円曲線EのFrobenius自己準同型写像σを用いて前記楕円曲線EのGF(q)有理点P+σ(P)+σ(P)+σ(P)を生成してもよい。
【発明の効果】
【0020】
本発明により、一般の楕円曲線に適用可能であり、入力に応じて処理性能に大きなばらつきがないような楕円曲線上の点の生成が可能となる。これにより、一般の楕円曲線に値を持つハッシュ値の生成も可能となる。
【図面の簡単な説明】
【0021】
【図1】第一の実施形態、及び第二の実施形態である点生成装置の機能構成の概略を例示する図。
【図2】コンピュータのハードウェア構成の概略図。
【図3】点生成装置における楕円曲線上の点生成処理を示すシーケンスを例示する図。
【図4】第一の実施形態における処理部での点生成処理を例示するフローチャート。
【図5】第二の実施形態における処理部での点生成処理を例示するフローチャート。
【発明を実施するための形態】
【0022】
本発明の実施の形態を図面を用いて説明する。
【実施例1】
【0023】
図1は、本発明の第一の実施形態である点生成装置100の機能構成の概略図である。
【0024】
図示するように、点生成装置100は、記憶部111と、処理部120と、入力部131と、出力部132と、通信部133と、を備える。
【0025】
本実施形態では、点生成装置で集合GF(q)/{1,−1}∪{0}の元tと集合{1,−1}の元ιに対する上記有限体GF(q)上定義された楕円曲線E(GF(q))上の点の生成を行う。ここでq=pは素数pのべきである。
【0026】
記憶部111は、有理関数記憶領域112と、基底記憶領域113と、パラメータ記憶部114と、を備える。
【0027】
有理関数記憶領域112は、上記有限体GF(q)から有限体GF(q)上定義された2次曲線Cへの2つの有理関数に関する情報、及び上記2つの有理関数に付随する情報が格納される。ここで、上記有限体GF(q)から有限体GF(q)上定義された2次曲線Cへの2つの有理関数とは、上記有限体GF(q)を係数にもつ1次または2次の多項式φ、ω、ψを用いてφ/ω、ψ/ωと表わされる関数であり、上記有限体GF(q)から有限体GF(q)上定義された2次曲線Cへの2つの有理関数に関する情報とは、例えば、上記φ、ω、ψの各係数である。また、上記有理関数φ/ω、ψ/ωの極(すなわち、ω(z)=0)となる上記有限体GF(q)の元z、及び上記多項式ψの零点(すなわち、ψ(z)=0)となる上記有限体GF(q)の元zである。なお、上記多項式ω、ψの零点となる上記各零点z、zを上記2つの有理関数に付随する情報を格納する理由については後述する。
【0028】
基底記憶領域113には、上記有限体GF(q)の2次拡大GF(q)の基底に関する情報が格納される。例えば、本実施形態においては、ξ∈GF(q)−GF(q)、c=ξ∈GF(q)なる元ξが上記有限体GF(q)の2次拡大GF(q)の基底に関する情報である。また、上記元c∈GF(q)も上記基底に関する情報として格納しておいてもよい。ここで、GF(q)−GF(q)は上記有限体GF(q)の2次拡大GF(q)から上記有限体GF(q)の元を除いた集合を表わす。上記ξ、及び上記有限体GF(q)の乗算に関する単位元1は、上記2次拡大GF(q)の上記有限体GF(q)上の基底である。
【0029】
パラメータ記憶部は、上記有限体GF(q)、及び上記有限体GF(q)上定義された楕円曲線E(GF(q))に関する情報が格納される。例えば、本実施形態においては、上記素数q、及び上記楕円曲線E(GF(q))の定義方程式(式1)の係数a、bである。
【0030】
処理部120は、有理関数計算部121と、有限体演算計算部122と、を備える。
【0031】
例えば、本実施形態では、処理部120は、集合GF(q)/{1,−1}∪{0}の元tと集合{1,−1}の元ιに対する上記楕円曲線E(GF(q))上の点を生成する処理を制御する。ここで、上記集合GF(q)/{1,−1}∪{0}とは、有限体の乗法群GF(p)の元gに対して、g+h=0、またはg−h=0なる同値関係によって上記有限体の乗法群GF(q)を割った集合を表わし、具体的には、q=pの場合は、上記集合GF(p)/{1,−1}={1,2,・・・(p−1)/2}である。
q=p(r>=2)の場合、上記集合GF(q)/{1,−1}は、例えば、有限体の乗法群GF(q)の元u=ar−1γr−1+ar−2γr−2+...+aγ+aであって、a≠0なる最大のiをjとするとき、0<=a<=(q−1)/2を満たす元uからなる集合である。
【0032】
また、上記集合GF(q)/{±1}の構成方法は、実現可能であればその方法は問わない。
上記集合GF(q)/{1,−1}∪{0}の要素数は、(q−1)/2+1=(q+1)/2である。上記素数べきqのビット長|q|=mのとき、q≦2−1だから、(q+1)/2のビット長|(q+1)/2|≦|{(2−1)+1}/2|=|2/2|=2m−1である。
【0033】
例えば、本実施形態では、処理部120は、入力データである上記元tと上記元ιに対して、有理関数記憶領域112に格納されている上記有理関数φ/ω、ψ/ωと、基底記憶領域113に格納されているGF(q)−GF(q)の元ξを取得して、tとともに、有理関数計算部121に送信する。有理関数計算部121は、予め定められたアルゴリズムによる計算を行い、上記有限体GF(q)の2つの元α、βを生成する。そして、有理関数計算部121は、上記α、β、ξ、及び、パラメータ記憶部114に格納されている上記a、bを有限体演算計算部122に送信する。
【0034】
有限体演算計算部122は、予め定められたアルゴリズムによる計算を行い、上記楕円曲線E(GF(q))上の点Qを生成する。有限体演算計算部122は、上記生成した上記楕円曲線E(GF(q))上の点Pを処理部120に出力する。入力部131は、当該点生成装置100の外部から、記憶媒体144や、通信媒体(当該当該点生成装置100に接続されるネットワークまたは当該ネットワークを伝播するデジタル信号や搬送波)を介して、情報の入力を受け付ける。出力部132は、当該点生成装置100の外部へ、記憶媒体144や通信媒体を介して、情報を出力する。通信部133は、記憶部111と、処理部120と、入力部131と、出力部132と、の間の情報の送受信を行う。
【0035】
以上に記載した点生成装置100は、例えば、図2(コンピュータ140の概略図)に示すような、CPU141と、メモリ142と、HDD等の外部記憶装置143と、CD−ROMやDVD−ROM等の可搬性を有する記憶媒体144から情報を読み出す読取装置145と、キーボードやマウスなどの入力装置146と、ディスプレイなどの出力装置147と、通信ネットワークに接続するためのNIC(Network Interface Card)等の通信装置148と、を備えた一般的なコンピュータ140で実現できる。
【0036】
例えば、記憶部111は、CPU141がメモリ142又は外部記憶装置143を利用することにより実現可能であり、処理部120は、外部記憶装置143に記憶されている所定のプログラムをメモリ142にロードしてCPU141で実行することで実現可能であり、入力部131は、CPU141が入力装置146を利用することで実現可能であり、出力部132は、CPU141が出力装置147を利用することで実現可能であり、通信部133は、CPU141が通信装置148を利用することで実現可能である。
【0037】
この所定のプログラムは、読取装置145を介して記憶媒体144から、あるいは、通信装置148を介して通信媒体から、外部記憶装置143にダウンロードされ、それから、メモリ142上にロードされてCPU141により実行されるようにしてもよい。また、読取装置145を介して記憶媒体144から、あるいは、通信装置148を介して通信媒体から、メモリ142上に直接ロードされ、CPU141により実行されるようにしてもよい。
【0038】
図3は、点生成装置100における点生成処理を示すシーケンス図である。
【0039】
まず、点生成装置100の処理部120は、入力部131を介して入力された又はデータ記憶領域131に記憶されている有限体の元t∈GF(q)を取得する(S10)。
【0040】
次に、処理部120は、記憶部123の有理関数記憶領域112に記憶されている2つの有理関数φ/ω、ψ/ωと、基底記憶領域113に記憶されているξ∈GF(q)−GF(q)と、パラメータ記憶領域114に記憶されている上記素数べきq、及び上記楕円曲線E(GF(q))の定義方程式(式1)の係数a、bと、を読み出す(S11)。
【0041】
そして、処理部120は、読み出した2つの有理関数φ/ω、ψ/ω、ξ∈GF(q)−GF(q)、素数べきq、楕円曲線E(GF(q))の定義方程式(式1)の係数a、b及び有限体の元t∈GF(q)を有理関数計算部121に入力する(S12)。
【0042】
有理関数計算部121は、入力された2つの有理関数φ/ω、ψ/ωと、ξ∈GF(q)−GF(q)と、素数べきqと、楕円曲線E(GF(q))の定義方程式(式1)の係数a、bと、有限体の元t∈GF(q)とから、有限体GF(q)の元α、βを計算する(S13)。
【0043】
そして、有理関数計算部121は、計算した有限体GF(q)の元α、βと、ξ∈GF(q)−GF(q)と、素数べきqと、楕円曲線E(GF(q))の定義方程式(式1)の係数a、bを有限体演算計算部122に出力する(S14)。
【0044】
有限体演算計算部122は、受け取った有限体GF(q)の元α、βと、ξ∈GF(q)−GF(q)と、素数べきqと、楕円曲線E(GF(q))の定義方程式(式1)の係数a、bとから、楕円曲線上の点Pを生成する(S15)。
【0045】
有限体演算計算部122は、計算した楕円曲線上の点Pを処理部120に出力する(S16)。
【0046】
なお、ステップS11において2つの有理関数φ/ω、ψ/ω、ξ∈GF(q)−GF(q)、素数べきq、楕円曲線E(GF(q))の定義方程式(式1)の係数a、bの取得タイミングについては、有理関数計算部121へ2つの有理関数φ/ω、ψ/ω、ξ∈GF(q)−GF(q)、素数べきq、楕円曲線E(GF(q))の定義方程式(式1)の係数a、bを出力する前であればよく、例えば、有限体の元t∈GF(q)を取得する(S10)前であってもよい。また、ステップS13の計算では、楕円曲線E(GF(q))の定義方程式(式1)の係数a、bは使用しないため、ステップS11で読み出す必要はなく、ステップS14の前であればよい。
【0047】
楕円曲線E(GF(q))上の点Pを取得した処理部120は、記憶部111に記憶するか、または、出力部132や通信部133を介して、楕円曲線E(GF(q))上の点Pを出力する(S17)。
【0048】
図4は、有理関数計算部121と、有限体演算計算部122での楕円曲線E(GF(q))上の点Pの生成処理を示すフローチャートである。
【0049】
ここで、本実施形態では、Eを、a、bが定義方程式(式1)の係数である有限体GF(q)上定義された楕円曲線、φ、ψ、ωを、有限体GF(q)を係数にもつ1次または2次の多項式とする。
【0050】
以下、集合GF(q)/{1,−1}∪{0}の元tと集合{1,−1}の元ιから上記楕円曲線E(GF(q))上の点Pを生成する方法を具体的に説明する。
【0051】
有理関数計算部121と、有限体演算計算部122での楕円曲線上の点の生成処理は、集合GF(q)/{1,−1}∪{0}の元tと集合{1,−1}の元ιを処理部120より受けることで開始される(S20)。
【0052】
処理部120より上記集合GF(q)/{1,−1}∪{0}の元tと上記集合{1,−1}の元ιを受け取ると、有理関数計算部121は、入力された上記元t∈GF(q)/{1,−1}∪{0}からα=φ(t)/ω(t)を計算する(S21)。
【0053】
そして、有限体演算計算部122は、有理関数計算部121より送信された上記α、上記楕円曲線a、b、及び、上記素数べきqを用いてτ=−8α−2aα+bを計算する(S22)。
【0054】
そして、有限体演算計算部122は、χ(τ)=1であるかどうかを判定する(S23)。そして、χ(τ)=1である場合には(ステップS23においてYes)、ステップS24に進み、χ(τ)=1ではない場合には(ステップS23においてNo)、ステップS25に進む。ここで、χは、s∈(GF(q)ならばχ(s)=1、s∈(GF(q)でないならばχ(s)=−1と定義される上記有限体の乗法群GF(q)から集合{1,−1}への写像であり、2次指標と呼ばれている(さらにχ(0)=0とし、χをGF(q)から{0,1,−1}への写像と拡張することもある。以下、上記χも上述のとおりに定義されるGF(q)から{0,1,−1}への写像とする)。
【0055】
ステップS24では、有限体演算計算部122は、τから√τを計算し、yに代入する(S24)。
【0056】
ステップS25では、有限体演算計算部122は、τから√τ/ξを計算し、zに代入し、zω(t)/ψ(t)を計算してwに代入する(S25)。
【0057】
ステップS26では、有限体演算計算部122は、(−2α,ιy)をPに代入し、上記Pを上記楕円曲線の点として出力する(S26)。
【0058】
ステップS27では、有限体演算計算部122は、(w−2α,ι(w−3α)w)をPに代入し、上記Pを上記楕円曲線の点として出力する(S27)。
【0059】
なお、ステップS24、及びステップS25で実行する有限体における平方根計算については、例えば、H. Cohen, “A Course in Computational Algebraic Number Theory”, Springer-Verlag, GTM 138, 1993. に詳細に記載されている。
【0060】
なお、ステップS26、及びステップS27で出力される上記Pが上記楕円曲線E(GF(q))上の点であることは、上記楕円曲線E(GF(q))の定義方程式(式1)にPを代入することによって容易に確認することができる。
【0061】
また、本実施形態では、上記集合GF(q)/{1,−1}∪{0}の元tと集合{1,−1}の元ιに対して上記楕円曲線E(GF(q))上の点PをWeierstrass型楕円曲線のアフィン座標で生成する方法を説明したが、Weierstrass型楕円曲線の射影座標、Weierstrass型楕円曲線のJacobian座標などWeierstrass型楕円曲線のアフィン座標と異なる座標系で生成したり、Hessian型楕円曲線、Montgomery型楕円曲線、Edwards型楕円曲線上の点を生成することも可能である。この理由を、Weierstrass型楕円曲線のJacobian座標の場合で説明する。
上記Weierstrass型楕円曲線のアフィン座標(X/Z,Y/Z)とWeierstrass型楕円曲線のJacobian座標(X:Y:Z)(Z≠0)は対応している。このとき、本実施形態において、上記集合GF(q)/{1,−1}∪{0}の元tと集合{1,−1}の元ιに対して、ステップS26で出力される上記Weierstrass型楕円曲線のアフィン座標の点(−2α,ιy)に対応する上記Weierstrass型楕円曲線のJacobian座標の点は(−2αω(t):ιyω(t):ω(t))、及び、ステップS27で出力されるWeierstrass型楕円曲線のアフィン座標の点(w−2α,ι(w−3α)w)に対応する上記Weierstrass型楕円曲線のJacobian座標の点は(ξ(τ−2ξαβω(t)):ιξ(τ−3ξαβω(t))×√(ξτ):ξβω(t))であることが容易にわかるからである。ここで、τ=−8αω(t)−2aαω(t)+bω(t)である。したがって、上記集合GF(q)/{1,−1}∪{0}の元tと集合{1,−1}の元ιに対して、Weierstrass型楕円曲線のJacobian座標の点を生成するには、上記ステップS21から上記ステップS27の上記各ステップ(及び、図4の上記ステップS21から上記ステップS27の上記各ステップ)を以下のように変更すればよい:
α=φ(t)、γ=ω(t)を計算する(S21)。
【0062】
τ=−8αγ−2aαγ+bγを計算する(S22)。
【0063】
χ(τ)=1であるかどうかを判定する(S23)。χ(τ)=1である場合には(ステップS23においてYes)、ステップS24に進み、χ(τ)=1ではない場合には(ステップS23においてNo)、ステップS25に進む。
【0064】
√τを計算し、yに代入する(S24)。
【0065】
√(τξ)を計算し、zに代入する(S25)。
【0066】
P=(−2αγ:ιyγ:γ)とし、上記Pを上記楕円曲線の点として出力する(S26)。
【0067】
P=(ξ(τ−2ξαβγ):ιξ(τ−3ξαβγ)×√(ξτ):ξβγ)とし、上記Pを上記楕円曲線の点として出力する(S27)。
【0068】
また、上記多項式ω、ψの零点となる上記各零点z、zを上記2つの有理関数に付随する情報を格納する理由は以下の通りである。上記ステップS21において、α=φ(t)/ω(t)を計算する。t=zならばω(z)=0となるので、αを計算することができない(有理関数φ/ωはt=zで定義されない)からである。さらに、上記ステップS25において、w=zω(t)/ψ(t)を計算する。t=zならばψ(z)=0となるので、wを計算することができない(有理関数zω/ψはt=zで定義されない)からである。
【0069】
そのため、上記z,zに対応する楕円曲線E(GF(q))上の点P,Pを予め定めておき、ステップS20でt=zまたはt=zが入力された場合は上記予め定められた点P,Pを出力してもよいし、t=zまたはt=zが入力された場合、t=t+1とし、t≠zかつt≠zとなるまでt=t+1を繰り返してもよいし、上記集合GF(q)/{1,−1}∪{0}からω(t)=0なる元t∈GF(q)/{1,−1}∪{0}、及びψ(t)=0なる元t∈GF(q)/{1,−1}∪{0}を予め除いておいてもよい。
【0070】
ω(z)=0なる元z∈GF(q)/{1,−1}∪{0}の個数、及びψ(z)=0なる元z∈GF(q)/{1,−1}∪{0}の個数はそれぞれ高々2個であるから、上記t=t+1なる繰り返し回数は高々4回であり、上記t=t+1なる繰り返しの処理時間は、上記ステップS24、または上記ステップS25の平方根計算の処理時間と比べると非常に小さいので、上記ステップS20の入力によって、上記点の生成処理時間は大きくばらつくことはない。
【0071】
上記有理関数φ/ω、ψ/ωは、例えば以下に示す方法で決定することができる。一般に、有限体GF(q)上定義された上記2次曲線C上の点(α,β)を一つ決め、固定する。上記2次曲線Cの上記点(α,β)以外の任意の点(α,β)に対し、上記点(α,β)と上記点(α,β)を結んだ直線とx軸(または、y軸)との交点をtとすることにより、上記2次曲線Cから上記点(α,β)を除いた集合から上記有限体GF(q)への写像が構成できる。この逆写像(t→(φ/ω)(t),(ψ/ω)(t))を上記有理関数とすればよい。
【0072】
また、本実施形態を用いることによって、楕円曲線上に値を持つハッシュ関数を容易に構成することができる理由は以下の通りである。例えば、非特許文献2に記載の署名では、任意長のビット列{0,1}から楕円曲線E(GF(q))へのハッシュ関数H:{0,1}→E(GF(q))を使用する。hを任意長のビット列{0,1}から固定長のビット列{0,1}への暗号学的ハッシュ関数(例えば、SHA−256など)とし、上記素数べきqのビット長|q|=mとする。任意長のビット列M∈{0,1}に対し、上記Mのハッシュ値h(M)を計算し、上位m−1ビットをt、最下位1ビットをιとする。すなわち、M=t||ιである。ここで、||は2つのビット列の結合を表す。
【0073】
上記tを予め定められた方法でGF(q)の元と見なし(例えば、ビット列t=tm−2m−1...tに対し、t=tm−2m−2+tm−1m−1+...+tとする)、上記t∈GF(q)/{1,−1}∪{0}と上記ι∈{1,−1}に対して本実施形態に記載の点生成方法で生成した点Pを上記ビット列Mに対するハッシュ値とすることにより、特許文献2に記載の署名に記載されている任意長のビット列{0,1}から楕円曲線E(GF(q))へのハッシュ関数H:{0,1}→E(GF(q))が構成できる。
【0074】
また、任意長のビット列{0,1}から{GF(q)/{1,−1}∪{0})×{1,−1}へのハッシュ関数の構成方法は、実現可能であればその方法は問わない。さらに、楕円曲線上に値を持つその他のハッシュ関数(例えば、非特許文献1など)も上記ハッシュ関数Hと類似の方法で実現可能である。
【0075】
以上の通り、本実施形態の楕円曲線上の点生成は、一般の楕円曲線に適用可能であり、入力に応じて処理性能に大きなばらつきがないような楕円曲線上の点の生成が可能になる。
【実施例2】
【0076】
次に、第二の実施形態である楕円曲線上の点の生成方法について説明する。
【0077】
第一の実施形態に記載の楕円曲線上の点の生成方法をΦとし、写像
、f、fを、
:GF(q)/{1,−1}∪{0}→C(GF(q)),
t→f(t)=(α=φ(t)/ω(t),β=ψ(t)/ω(t))
(式2)
:C(GF(q))→(1)(GF(q)/GF(q)),
(α,β)→Q=(α+βξ,√F(α+βξ)) (式3)
(1)(GF(q)/GF(q))→(GF(q)),
Q=(α+βξ,√F(α+βξ))→Q+σ(Q) (式4)
とする。ここで、(式2)のφ、ψ、ωは上記有限体GF(q)を係数にもつ1次または2次の多項式であり、(式3)のF(α+βξ)は(式1)の定義方程式の右辺F(x)=x+ax+bよりF(α+βξ)=(α+βξ)+a(α+βξ)+bである。上記楕円曲線E上の点P,Pに対して、P=PまたはP=−Pのとき、P〜Pなる同値関係を定義する。(1)(GF(q)/GF(q))、(GF(q))はそれぞれ集合{(x,y)∈E(GF(q))|x∈GF(q)−GF(q),y∈GF(q)}、集合E((GF(q))を同値関係〜で割った集合である。σはq乗Frobenius写像である。このとき、上記集合GF(q)/{1,−1}∪{0}の元t、及び上記集合{1,−1}の元ιから第一の実施形態に記載の方法で生成した点PはP=f(f(f(t,ι)))に他ならない。
【0078】
第二の実施形態は、第一の実施形態における上記有限体GF(q)を2次拡大体GF(q)、上記有限体GF(q)の乗法群GF(q)を2次拡大体GF(q)の乗法群GF(q、2次拡大体GF(q)を2次拡大体GF(q)の2次拡大(上記有限体GF(q)の4次拡大)GF(q)、として第一の実施形態に記載の方法で楕円曲線EのGF(q)有理点を生成し、さらに上記楕円曲線E(GF(q))上の点から(式9)を用いて上記楕円曲線E(GF(q))上の点を生成する方法である。
【0079】
ここで、本実施形態における点生成装置も、第一の実施形態と同様に、記憶部111と、処理部120と、入力部131と、出力部132と、通信部133と、を備える。
【0080】
本実施形態では、点生成装置で集合GF(q/{1,−1}∪{0}の元tと集合{1,−1}の元ιに対する上記有限体GF(q)上定義された楕円曲線E(GF(q))上の点の生成を行う。
【0081】
記憶部111の機能構成は第一の実施形態と同様である。
【0082】
有理関数記憶領域112は、上記有限体GF(q)から有限体GF(q)上定義された2次曲線Cへの2つの有理関数に関する情報、及び上記2つの有理関数に付随する情報が格納される。ここで、上記有限体GF(q)から有限体GF(q)上定義された2次曲線Cへの2つの有理関数とは、上記有限体GF(q)を係数にもつ1次または2次の多項式φ、ω、ψを用いてφ/ω、ψ/ωと表わされる関数であり、上記有限体GF(q)から有限体GF(q)上定義された2次曲線Cへの2つの有理関数に関する情報とは、例えば、上記φ、ω、ψの各係数である。また、上記有理関数φ/ω、ψ/ωの極(すなわち、ω(z)=0)となる上記有限体GF(q)の元z、及び上記多項式ψの零点(すなわち、ψ(z)=0)となる上記有限体GF(q)の元zである。なお、上記多項式ω、ψの零点となる上記各零点z、zを上記2つの有理関数に付随する情報を格納する理由については後述する。
【0083】
基底記憶領域113には、上記有限体GF(q)の2次拡大GF(q)の基底に関する情報が格納される。例えば、本実施形態においては、ξ∈GF(q)−GF(q)、c=ξ∈GF(q)なる元ξが上記有限体GF(q)の2次拡大GF(q)の基底に関する情報である。また、上記元c∈GF(q)も上記基底に関する情報として格納しておいてもよい。ここで、GF(q)−GF(q)は上記有限体GF(q)の2次拡大GF(q)から上記有限体GF(q)の元を除いた集合を表わす。上記ξ、及び上記有限体GF(q)の乗算に関する単位元1は、上記2次拡大GF(q)の上記有限体GF(q)上の基底である。
【0084】
パラメータ記憶部は、有限体GF(q)、及び上記有限体GF(q)上定義された楕円曲線E(GF(q))に関する情報が格納される。例えば、本実施形態においては、上記素数べきq、及び上記楕円曲線E(GF(q))の定義方程式(式1)の係数a、bである。
【0085】
処理部120の機能構成も第一の実施形態と同様である。
【0086】
例えば、本実施形態では、処理部120は、集合GF(q/{1,−1}∪{0}の元tと集合{1,−1}の元ιに対する上記楕円曲線E(GF(q))上の点を生成する処理を制御する。ここで、上記集合GF(q/{1,−1}∪{0}とは、有限体の乗法群GF(qの元gに対して、g+h=0、またはg−h=0なる同値関係によって上記有限体の乗法群GF(qを割った集合を表わす。
【0087】
例えば、本実施形態では、処理部120は、入力データである上記元tと上記元ιに対して、有理関数記憶領域112に格納されている上記有理関数φ/ω、ψ/ωと、基底記憶領域113に格納されているGF(q)−GF(q)の元ξを取得して、tとともに、有理関数計算部121に送信する。有理関数計算部121は、予め定められたアルゴリズムによる計算を行い、上記有限体GF(q)の2つの元α、βを生成する。そして、有理関数計算部121は、上記α、β、ξ、及び、パラメータ記憶部114に格納されている上記a、bを有限体演算計算部122に送信する。
【0088】
有限体演算計算部122は、予め定められたアルゴリズムによる計算を行い、上記楕円曲線E(GF(q))上の点Pを生成する。有限体演算計算部122は、上記生成した上記楕円曲線E(GF(q))上の点Pを処理部120に出力する。入力部131は、情報の入力を受け付ける。出力部132は、情報を出力する。通信部133は、記憶部111と、処理部120と、入力部131と、出力部132と、の間の情報の送受信を行う。
【0089】
以上に記載した点生成装置100も、第一の実施形態と同様、例えば、図2(コンピュータ140の概略図)に示すような、CPU141と、メモリ142と、HDD等の外部記憶装置143と、CD−ROMやDVD−ROM等の可搬性を有する記憶媒体144から情報を読み出す読取装置145と、キーボードやマウスなどの入力装置146と、ディスプレイなどの出力装置147と、通信ネットワークに接続するためのNIC(Network Interface Card)等の通信装置148と、を備えた一般的なコンピュータ140で実現できる。処理部120が、外部記憶装置143に記憶されている所定のプログラムをメモリ142にロードしてCPU141で実行することで実現可能であることも、第一の実施形態と同様である。
【0090】
本実施形態の点生成装置100における点生成処理を示すシーケンス図も第一の実施形態(図3)と同様である。ただし、ステップS10のtは、GF(q/{1,−1}∪{0}の元、ステップS11、及びステップS12のφ、ω、ψは上記有限体GF(q)を係数にもつ1次または2次の多項式、ステップS11、及びステップ14のξはGF(q)のGF(q)上の上記基底、ステップS13、及びステップS14のα、βは上記有限体GF(q)の元、である。
【0091】
図5は、有理関数計算部121と、有限体演算計算部122での楕円曲線E(GF(q))上の点Pの生成処理を示すフローチャートである。
【0092】
ここで、本実施形態では、Eを、a、bが定義方程式(式1)の係数である有限体GF(q)上定義された楕円曲線、φ、ψ、ωを、上記有限体GF(q)を係数にもつ1次または2次の多項式とする。
【0093】
以下、集合GF(q/{1,−1}∪{0}の元tと集合{1,−1}の元ιから上記楕円曲線E(GF(q))上の点Pを生成する方法を具体的に説明する。
【0094】
有理関数計算部121と、有限体演算計算部122での楕円曲線上の点の生成処理は、集合GF(q/{1,−1}∪{0}の元tと集合{1,−1}の元ιを処理部120より受けることで開始される(S30)。
【0095】
処理部120より上記集合GF(q/{1,−1}∪{0}の元tと上記集合{1,−1}の元ιを受け取ると、有理関数計算部121は、入力された上記元t∈GF(q/{1,−1}∪{0}からα=φ(t)/ω(t)を計算する(S31)。
【0096】
そして、有限体演算計算部122は、有理関数計算部121より送信された上記α、上記楕円曲線a、b、及び、上記素数べきqを用いてτ=−8α−2aα+bを計算する(S32)。
【0097】
そして、有限体演算計算部122は、χ(τ)=1であるかどうかを判定する(S33)。そして、χ(τ)=1である場合には(ステップS33においてYes)、ステップS34に進み、χ(τ)=1ではない場合には(ステップS33においてNo)、ステップS35に進む。ここで、χは、s∈(GF(qならばχ(s)=1、s∈(GF(qでないならばχ(s)=−1と定義される上記有限体の乗法群GF(qから集合{1,−1}への写像である(さらにχ(0)=0とし、χをGF(q)から{0,1,−1}への写像と拡張することもある。以下、上記χも上述のとおりに定義されるGF(q)から{0,1,−1}への写像とする)。
【0098】
ステップS34では、有限体演算計算部122は、τから√τを計算し、yに代入する(S34)。
【0099】
ステップS35では、有限体演算計算部122は、τから√τ/ξを計算し、zに代入し、zω(t)/ψ(t)を計算してwに代入する(S35)。
【0100】
ステップS36では、有限体演算計算部122は、(−2α,ιy)をQに代入する(S36)。
【0101】
ステップS37では、有限体演算計算部122は、(w−2α,ι(w−3α)w)をQに代入する(S37)。
【0102】
ステップS38では、Q+σ(Q)をPに代入し、上記Pを上記楕円曲線の点として出力する(S37)。ここで、σはq乗Frobenius写像である。
なお、ステップS34、ステップS35、及びステップS37(Q+σ(Q)の計算)で実行する有限体における平方根計算については、例えば、H. Cohen, “A Course in Computational Algebraic Number Theory”, Springer-Verlag, GTM 138, 1993. に詳細に記載されている。
【0103】
なお、ステップS37で出力される上記Pが上記楕円曲線E(GF(q))上の点であることも、第一の実施形態と同様、上記楕円曲線E(GF(q))の定義方程式(式1)にPを代入することによって容易に確認することができる。
【0104】
また、本実施形態では、上記集合GF(q)/{1,−1}∪{0}の元tと集合{1,−1}の元ιに対して上記楕円曲線E(GF(q))上の点PをWeierstrass型楕円曲線のアフィン座標で生成する方法を説明したが、Weierstrass型楕円曲線の射影座標、Weierstrass型楕円曲線のJacobian座標などWeierstrass型楕円曲線のアフィン座標と異なる座標系で生成したり、Hessian型楕円曲線、Montgomery型楕円曲線、Edwards型楕円曲線上の点を生成することも可能である。この理由も第一の実施形態と同様である。
【0105】
また、上記多項式ω、ψの零点となる上記各零点z、zを上記2つの有理関数に付随する情報を格納する理由、及び、上記集合GF(q/{1,−1}∪{0}の元tがz、またはzと等しい場合における上記楕円曲線E(GF(q))上の点Pの生成方法も第一の実施形態と同様である。
【0106】
上記有理関数φ/ω、ψ/ωの決定方法も第一の実施形態と同様である。
【0107】
また、本実施形態を用いることによって、楕円曲線上に値を持つハッシュ関数を容易に構成することができる理由は以下の通りである。例えば、非特許文献2に記載の署名では、上述の通り、任意長のビット列{0,1}から楕円曲線E(GF(q))へのハッシュ関数H:{0,1}→E(GF(q))を使用する。hを任意長のビット列{0,1}から固定長のビット列{0,1}2mへの暗号学的ハッシュ関数(例えば、SHA−256など)とし、上記素数べきqのビット長|q|=mとする。任意長のビット列M∈{0,1}に対し、上記Mのハッシュ値h(M)を計算し、上位(m−1)/2ビットをt、次の(m−1)/2ビットをt、最下位2ビットをιとする。すなわち、M=t||t||ιである。ここで、||は2つのビット列の結合を表す。上記t、tを予め定められた方法でGF(q)の元と見なし(例えば、ビット列t=t1,m−21,m−3...t1,0、t=t2,m−22,m−3...t2,0、に対し、t=t1,m−2m−2+t1,m−3m−3+...+t1,0、t=t2,m−2m−2+t2,m−3m−3+...+t2,0とする)、さらに、ι=ι||ι、すなわち、ιの上位1ビットをι、ιの下位1ビットをιとする。上記t=t+tξ∈GF(q/{1,−1}∪{0}と上記ι(または、ι)∈{1,−1}に対して本実施形態に記載の点生成方法で生成した点Pを上記ビット列Mに対するハッシュ値とすることにより、特許文献2に記載の署名に記載されている任意長のビット列{0,1}から楕円曲線E(GF(q))へのハッシュ関数H:{0,1}→E(GF(q))が構成できる。また、任意長のビット列{0,1}から{GF(q/{1,−1}∪{0})×{1,−1}へのハッシュ関数の構成方法は、実現可能であればその方法は問わない。さらに、楕円曲線上に値を持つその他のハッシュ関数(例えば、非特許文献1など)も上記ハッシュ関数Hと類似の方法で実現可能である。
【0108】
以上の通り、本実施形態の楕円曲線上の点生成は、一般の楕円曲線に適用可能であり、入力に応じて処理性能に大きなばらつきがないような楕円曲線上の点の生成が可能になる。
【符号の説明】
【0109】
100:点生成装置、111:記憶部、112:有理関数記憶領域、113:基底記憶領域、114:パラメータ記憶領域、120:処理部、121:有理関数計算部、122:有限体演算計算部、131:入力部、132:出力部、133:通信部。

【特許請求の範囲】
【請求項1】
要素数が(q+1)/2(qは5以上の素数べき)の集合Sの元と要素数が2の集合Tの元から有限体GF(q)上定義された楕円曲線EのGF(q)有理点を生成する点生成方法であって、
前記集合Sの元から予め定められた前記有限体GF(q)上定義された二次曲線CのGF(q)有理点を生成する第一のステップと、
前記第一のステップで生成した前記二次曲線Cの前記GF(q)有理点から前記楕円曲線EのGF(q)有理点を生成する第二のステップと、
前記第二のステップで生成した前記楕円曲線EのGF(q)有理点と前記集合Tの元から前記楕円曲線EのGF(q)有理点を生成する第三のステップと、
を備えることを特徴とする楕円曲線上の点生成方法。
【請求項2】
請求項1に記載の楕円曲線上の点生成方法であって、
前記集合Sは集合GF(q)/{1,−1}∪{0}、前記集合Tは{1,−1}であり、
前記第一のステップは、前記集合Sの元tから予め定められた2つのGF(q)上の有理関数α、βに対して、α(t)、β(t)を計算し、前記二次曲線CのGF(q)有理点R=(α、β)を生成し、
前記第二のステップは、予め定められた前記有限体GF(q)の前記有限体GF(q)上の基底(ξ,1)、及び前記二次曲線CのGF(q)有理点(α、β)から前記楕円曲線EのGF(q)有理点P=(α+βξ,√(F(α+βξ)))(Fは前記楕円曲線EのWeierstrass型の定義方程式y=x+ax+b=F(x)に対して、F(x)=x+ax+bなる多項式)を生成し、
前記第三のステップは、前記楕円曲線EのGF(q)有理点Pから前記楕円曲線EのFrobenius自己準同型写像σを用いて前記楕円曲線EのGF(q)有理点(P+σ(P))を生成すること、
を特徴とする楕円曲線上の点生成方法。
【請求項3】
要素数が(q+1)/2(qは5以上の素数べき)の集合Sの元と要素数が2の集合Tの元から有限体GF(q)上定義された楕円曲線EのGF(q)有理点を生成する点生成方法であって、
前記集合Sの元から予め定められた前記有限体GF(q)上定義された二次曲線CのGF(q)有理点を生成する第一のステップと、
前記第一のステップで生成した前記二次曲線Cの前記GF(q)有理点から前記楕円曲線EのGF(q)有理点を生成する第二のステップと、
前記第二のステップで生成した前記楕円曲線EのGF(q)有理点と前記集合Tの元から前記楕円曲線EのGF(q)有理点を生成する第三のステップと、
を備えることを特徴とする楕円曲線上の点生成方法。
【請求項4】
請求項3に記載の楕円曲線上の点生成方法であって、
前記集合Sは集合GF(q/{1,−1}∪{0}、前記集合Tは{1,−1}であり、
前記第一のステップは、前記集合Sの元tから予め定められた2つのGF(q)上の有理関数α、βに対して、α(t)、β(t)を計算し、前記二次曲線CのGF(q)有理点R=(α、β)を生成し、
前記第二のステップは、予め定められた前記有限体GF(q)の前記有限体GF(q)上の基底(ξ,1)、及び前記二次曲線CのGF(q)有理点(α、β)に対して、前記楕円曲線EのGF(q)有理点P=(α+βξ,√(F(α+βξ)))(Fは前記楕円曲線EのWeierstrass型の定義方程式y=x+ax+b=F(x)なる多項式)を生成し、
前記第三のステップは、前記楕円曲線EのGF(q)有理点Pから、前期楕円曲線EのFrobenius自己準同型写像σを用いて前記楕円曲線EのGF(q)有理点P+σ(P)+σ(P)+σ(P)を生成すること、
を特徴とする楕円曲線上の点生成方法。
【請求項5】
要素数が(q+1)/2(qは5以上の素数べき)の集合Sの元と要素数が2の集合Tの元から有限体GF(q)上定義された楕円曲線EのGF(q)有理点を生成する点生成装置であって、
前記集合Sの元から予め定められた前記有限体GF(q)上定義された二次曲線CのGF(q)有理点を生成する第一の手段と、
前記第一の手段で生成した前記二次曲線Cの前記GF(q)有理点から前記楕円曲線EのGF(q)有理点を生成する第二の手段と、
前記第二の手段で生成した前記楕円曲線EのGF(q)有理点と前記集合Tの元から前記楕円曲線EのGF(q)有理点を生成する第三の手段と、
を備えることを特徴とする楕円曲線上の点生成装置。
【請求項6】
請求項5に記載の楕円曲線上の点生成装置であって、
前記集合Sは集合GF(q)/{1,−1}∪{0}、前記集合Tは{1,−1}であり、
前記第一の手段は、前記集合Sの元tから予め定められた2つのGF(q)上の有理関数α、βに対して、α(t)、β(t)を計算し、前記二次曲線CのGF(q)有理点R=(α、β)を生成し、
前記第二の手段は、予め定められた前記有限体GF(q)の前記有限体GF(q)上の基底(ξ,1)、及び前記二次曲線CのGF(q)有理点(α、β)から前記楕円曲線EのGF(q)有理点P=(α+βξ,√(F(α+βξ)))(Fは前記楕円曲線EのWeierstrass型の定義方程式y=x+ax+b=F(x)に対して、F(x)=x+ax+bなる多項式)を生成し、
前記第三の手段は、前記楕円曲線EのGF(q)有理点Pから前記楕円曲線EのFrobenius自己準同型写像σを用いて前記楕円曲線EのGF(q)有理点(P+σ(P))を生成すること、
を特徴とする楕円曲線上の点生成装置。
【請求項7】
要素数が(q+1)/2(qは5以上の素数べき)の集合Sの元と要素数が2の集合Tの元から有限体GF(q)上定義された楕円曲線EのGF(q)有理点を生成する点生成装置であって、
前記集合Sの元から予め定められた前記有限体GF(q)上定義された二次曲線CのGF(q)有理点を生成する第一の手段と、
前記第一の手段で生成した前記二次曲線Cの前記GF(q)有理点から前記楕円曲線EのGF(q)有理点を生成する第二の手段と、
前記第二の手段で生成した前記楕円曲線EのGF(q)有理点と前記集合Tの元から前記楕円曲線EのGF(q)有理点を生成する第三の手段と、
を備えることを特徴とする楕円曲線上の点生成装置。
【請求項8】
請求項7に記載の楕円曲線上の点生成装置であって、
前記集合Sは集合GF(q/{1,−1}∪{0}、前記集合Tは{1,−1}であり、
前記第一の手段は、前記集合Sの元tから予め定められた2つのGF(q)上の有理関数α、βに対して、α(t)、β(t)を計算し、前記二次曲線CのGF(q)有理点R=(α、β)を生成し、
前記第二の手段は、予め定められた前記有限体GF(q)の前記有限体GF(q)上の基底(ξ,1)、及び前記二次曲線CのGF(q)有理点(α、β)に対して、前記楕円曲線EのGF(q)有理点P=(α+βξ,√(F(α+βξ)))(Fは前記楕円曲線EのWeierstrass型の定義方程式y=x+ax+b=F(x)なる多項式)を生成し、
前記第三の手段は、前記楕円曲線EのGF(q)有理点Pから、前期楕円曲線EのFrobenius自己準同型写像σを用いて前記楕円曲線EのGF(q)有理点P+σ(P)+σ(P)+σ(P)を生成すること、
を特徴とする楕円曲線上の点生成装置。
【請求項9】
コンピュータに、要素数が(q+1)/2(qは5以上の素数べき)の集合Sの元と要素数が2の集合Tの元から有限体GF(q)上定義された楕円曲線EのGF(q)有理点を生成させる点生成プログラムであって、
前記集合Sの元から予め定められた前記有限体GF(q)上定義された二次曲線CのGF(q)有理点を生成する第一のステップと、
前記第一のステップで生成した前記二次曲線Cの前記GF(q)有理点から前記楕円曲線EのGF(q)有理点を生成する第二のステップと、
前記第二のステップで生成した前記楕円曲線EのGF(q)有理点と前記集合Tの元から前記楕円曲線EのGF(q)有理点を生成する第三のステップと、
を備えることを特徴とする点生成プログラム。
【請求項10】
請求項9に記載の点生成プログラムであって、
前記集合Sは集合GF(q)/{1,−1}∪{0}、前記集合Tは{1,−1}であり、
前記第一のステップは、前記集合Sの元tから予め定められた2つのGF(q)上の有理関数α、βに対して、α(t)、β(t)を計算し、前記二次曲線CのGF(q)有理点R=(α、β)を生成し、
前記第二のステップは、予め定められた前記有限体GF(q)の前記有限体GF(q)上の基底(ξ,1)、及び前記二次曲線CのGF(q)有理点(α、β)から前記楕円曲線EのGF(q)有理点P=(α+βξ,√(F(α+βξ)))(Fは前記楕円曲線EのWeierstrass型の定義方程式y=x+ax+b=F(x)に対して、F(x)=x+ax+bなる多項式)を生成し、
前記第三のステップは、前記楕円曲線EのGF(q)有理点Pから前記楕円曲線EのFrobenius自己準同型写像σを用いて前記楕円曲線EのGF(q)有理点(P+σ(P))を生成すること、
を特徴とする点生成プログラム。
【請求項11】
コンピュータに、要素数が(q+1)/2(qは5以上の素数べき)の集合Sの元と要素数が2の集合Tの元から有限体GF(q)上定義された楕円曲線EのGF(q)有理点を生成させる点生成プログラムであって、
前記集合Sの元から予め定められた前記有限体GF(q)上定義された二次曲線CのGF(q)有理点を生成する第一のステップと、
前記第一のステップで生成した前記二次曲線Cの前記GF(q)有理点から前記楕円曲線EのGF(q)有理点を生成する第二のステップと、
前記第二のステップで生成した前記楕円曲線EのGF(q)有理点と前記集合Tの元から前記楕円曲線EのGF(q)有理点を生成する第三のステップと、
を備えることを特徴とする点生成プログラム。
【請求項12】
請求項11に記載の点生成プログラムであって、
前記集合Sは集合GF(q/{1,−1}∪{0}、前記集合Tは{1,−1}であり、
前記第一のステップは、前記集合Sの元tから予め定められた2つのGF(q)上の有理関数α、βに対して、α(t)、β(t)を計算し、前記二次曲線CのGF(q)有理点R=(α、β)を生成し、
前記第二のステップは、予め定められた前記有限体GF(q)の前記有限体GF(q)上の基底(ξ,1)、及び前記二次曲線CのGF(q)有理点(α、β)に対して、前記楕円曲線EのGF(q)有理点P=(α+βξ,√(F(α+βξ)))(Fは前記楕円曲線EのWeierstrass型の定義方程式y=x+ax+b=F(x)なる多項式)を生成し、
前記第三のステップは、前記楕円曲線EのGF(q)有理点Pから、前期楕円曲線EのFrobenius自己準同型写像σを用いて前記楕円曲線EのGF(q)有理点P+σ(P)+σ(P)+σ(P)を生成すること、
を特徴とする点生成プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate