JP2005283674A - 楕円曲線暗号化向け曲線パラメータ生成装置、楕円曲線パラメータ生成方法及びそのプログラム - Google Patents

楕円曲線暗号化向け曲線パラメータ生成装置、楕円曲線パラメータ生成方法及びそのプログラム Download PDF

Info

Publication number
JP2005283674A
JP2005283674A JP2004093687A JP2004093687A JP2005283674A JP 2005283674 A JP2005283674 A JP 2005283674A JP 2004093687 A JP2004093687 A JP 2004093687A JP 2004093687 A JP2004093687 A JP 2004093687A JP 2005283674 A JP2005283674 A JP 2005283674A
Authority
JP
Japan
Prior art keywords
elliptic curve
curve
parameter generation
elliptic
prime number
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.)
Pending
Application number
JP2004093687A
Other languages
English (en)
Inventor
Takuto Okuno
琢人 奥野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2004093687A priority Critical patent/JP2005283674A/ja
Publication of JP2005283674A publication Critical patent/JP2005283674A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 暗号に使用可能な楕円曲線パラメータを高速に生成することができる楕円曲線暗号化向けの曲線パラメータ生成方法を提供する。
【解決手段】 素数qと楕円曲線の位数rを先に定めることにより、素数qを法とする有限体上GF(q)での楕円曲線E:y=x+ax+bに対する楕円曲線パラメータ生成全体の処理を容易にし、暗号化向け曲線パラメータの生成処理を高速化する。
【選択図】 図3

Description

本発明は、暗号技術分野の楕円曲線暗号で利用するための、曲線パラメータを生成する楕円曲線暗号化向け曲線パラメータ生成装置、楕円曲線パラメータ生成方法に関し、特に、暗号に使用可能な楕円曲線パラメータの高速な生成を可能とする楕円曲線暗号化向け曲線パラメータ生成装置、楕円曲線パラメータ生成方法に関する。
従来、暗号技術分野における、安全な離散問題を構成する楕円曲線のパラメータを決定する方法は、楕円曲線のパラメータをランダムに生成することにより、パラメータを持つ楕円曲線について安全性を確かめる方法と、安全基準を満たすようにパラメータを計算する方法の2種類がある。
楕円曲線のパラメータを決定する方法としての例が、特開2002−23632号公報(特許文献1)、特開2000−284690公報(特許文献2)、特開平11−212457号公報(特許文献3)に記載されている。
特許文献1には、楕円曲線上の離散対数問題に対する解読であるFR−帰着法に対して安全な楕円曲線をシステマティックに容易にかつ高速に構成することにより,安全な楕円曲線上の離散対数に基づく鍵共有、暗号、署名方法が提案されており、(1)正整数dの設定、(2)正整数pの設定、(3)(p,p−2)の素数判定、(4)Hilbelt Class polynomial Pd(X)の計算(5)Pd(X)≡0(mod p)となる根j0∈Fpの決定、(6)j不変数j0となる楕円曲線{Ej0}の作成、(7)(Ej0)∋Eで元の個数が#E(Fp)=p-2ことなるEの選択(CM法)、(8)安全な楕円曲線の出力、といったプロセスにより、安全な楕円曲線の容易かつ高速な作成方法を開示する。
特許文献2には、少ない計算量により、楕円曲線上の点の演算ができる楕円曲線演算装置、楕円曲線の位数計算ができる楕円曲線位数計算装置及び安全性の高い楕円曲線を構成することができる楕円曲線構成装置が提案されており、乱数tを生成し、楕円曲線E:y=x−3x+tを選択し、有理数体上の楕円曲線EQを素数p1、p2を法として還元した楕円曲線Ep1、Ep2の位数m1、m2が互いに素であるか判定し、楕円曲線Eの位数を計算する。上記プロセスにより、計算された位数を用いて、楕円曲線Eの安全性を判定する。特許文献2の方法では、(1)乱数の生成S01を行い、Y=X-3X+Tの式のTを乱数により決定、(2)Y=X-3X+Tの式を生成、(3)以下の式1による位数m1、m2の算出、
Figure 2005283674

(4)ここで出力されるm1、m2は、n個ずつ存在し、まだ固定化されていないため位数m1、m2の素数であるかの判定、(5)SEAアルゴリズムによる位数の算出(SEA法)、(6)t mod(L^n) (ただしn=1,2,3 …)によりm1、m2の固定化、(7)ユーザよりの楕円曲線の棄却情報があるかを判定、(8)位数m1、m2が素数でありかつ位数m1、m2 not= qである条件を満たす判定、(9)楕円曲線によるパラメータを出力、といったプロセスにより安全な楕円曲線の容易かつ高速な作成方法を開示する。
特許文献3は、楕円曲線上の離散問題としてのパラメータの安全性の高速判定装置および記録媒体に関し、楕円曲線上の離散問題としてのパラメータの安全性において、スクープ法に沿って最適な計算方式を選択し計算を行い、楕円曲線のパラメータの安全性を高速に判定することを目的とする。特許文献3の方法では、(1)パラメータの入力、(2)位数条件の入力、(3)MulMAX、SchoofMAXの計算(スクープ法)、(4)それまでの位数に関する情報を得た素数lまたは素数の巾lkの積の計算、(5)4√q<Πli kiにより判定、(6)上記の条件が該る場合では、計算方法の選択(S、AE、I、VA、VIより)して位数を算出、(7)候補からの位数の決定、(8)ユーザ条件に、素数判定の有無、(9)Miller-Rabin法、Jacobi和法、小さな素数の試し割、(10)その他の判定条件(有限体の位数qと異なる方が良いため、その条件を付加するなど。)、(11)安全な[a1,a2,a3,a4,a5,a6]の決定、といったプロセスにより、安全な楕円曲線の容易かつ高速な作成方法を開示する。
安全性を満たすように楕円曲線を作成する特許文献1のように、CM法(虚数乗法)をベースとして曲線の安全性を満たすような位数を先に決定してパラメータを導出し、高速に安全な楕円曲線を生成する。
後に安全性を確認する、特許文献2、特許文献3のように先にランダムなパラメータを持つ楕円曲線を作成し、スクープ法やそれを改良したSEA法によって曲線の位数を計算することで、安全な楕円曲線を生成する。
特開2002−23632号公報 特開2000−284690公報 特開平11−212457号公報
上記説明した従来の方法においては、以下に述べるような問題点があった。
第1に、暗号に使用可能な楕円曲線の生成に時間がかかるという問題があった。
その理由は、以下の通りである。
暗号系に使用できる楕円曲線を生成する上で問題となるのは、曲線の安全性であり、素数または素数に近い(大きな素因数を含む)十分に大きな位数(点の環群の構成数)を持たなくてはならないことである。
位数とは、素数qを法とする有限体上GF(q)における楕円曲線Eの底点G(x,y)をk倍算し、点{G,A0,…An,0}で環群を構成するような場合では、環群の要素数である。
楕円曲線を暗号用途に利用するためには、この位数rが大きく、なおかつ素数または素数に近い(大きな素因数を含む)数でなければならない。
スクープ法やSEA法(Hasseの定理による誤差項を直接決定する方法)といった手法では、先にGF(q)上のランダムな曲線を作成し、その曲線が十分に大きな位数を持つか計算する。このため、多大な位数計算を繰り返し行う必要がある。
その理由は、従来のスクープ法やSEA法におけるパラメータ生成では、ランダムに楕円曲線パラメータa,bを定め、その楕円曲線E:y=x+ax+bにおける位数rを計算する必要があり、この処理に大変な時間がかかっていた。
こうした条件を満たす位数rを持つ曲線を見つけるまで、繰り返し計算を行うのに非常に時間がかかっていた。
第2に、暗号に使用する安全性(ランダム性)高い暗号に使用可能な楕円曲線を簡単に生成することができないという問題があった。
その理由は、以下の通りである。
楕円曲線暗号を構成する場合では、楕円離散対数問題とよばれる数学的問題をベースに暗号系が構成される。この問題は曲線上の点Y,Gと任意の数k∈#E(楕円曲線の位数)が、Y=kGという式を満たしている時、Y,Gからkを求める問題であり、基本的にはkGを順に計算してYとなるか調べることとなる。
また、拡大体を構成することで楕円離散対数問題を離散対数問題へと帰着して、より効果的に攻撃を行う手法もある。
例えば、FR帰着と呼ばれる方法では、素数qを法とする有限体上GF(q)にて位数をrとし、q≡1(mod r)、1≦x<log(q)の条件を満たす場合では、楕円離散対数問題を離散対数問題へと帰着することにより、攻撃を行うこともある。
特許文献1のCM法の曲線パラメータの生成では、既存の帰着問題から安全なパラメータを生成するために、楕円曲線におけるトレースtの値を狭めていたり、底点G(x、y)を関連する数式により求めることにより、曲線のランダム性をなくしていた。
パラメータの条件を狭めることで曲線のランダム性が無くなるため、新しい攻撃法が発見された場合には、再度曲線の安全性を検証する必要があった。
上述した特許文献2、特許文献3に開示される手法では、パラメータを自由に選択できることから、特許文献1の手法よりランダム性が高く安全なパラメータを生成できるけれども、位数の計算に時間がかかり、高速にパラメータを生成できないといった欠点を有する。
本発明の目的は、暗号に使用可能な楕円曲線パラメータを高速に生成することができる、楕円曲線暗号化向け曲線パラメータ生成装置、楕円曲線パラメータ生成方法、及びプログラムを提供することにある。
本発明の第2の目的は、安全性の高い暗号に使用可能な楕円曲線パラメータを生成することができる、楕円曲線暗号化向け曲線パラメータ生成装置、楕円曲線パラメータ生成方法、及びプログラムを提供することにある。
上記目的を達成する本発明は、楕円曲線暗号化向けの曲線パラメータの生成を行う楕円曲線暗号化向けの曲線パラメータ生成方法であって、素数を法とする有限体上での楕円曲線の楕円曲線パラメータに対して、一定の条件を満たす有限体と位数を先に定めることにより、楕円曲線暗号に利用できるパラメータの組み合わせを高速に検索することを特徴とする。
請求項2の本発明の楕円曲線暗号化向けの曲線パラメータ生成方法は、前記素数を法とする有限体上での楕円曲線にて、底点をランダムに定め、無限遠点を計算することで素数または素数に近い位数を持つ安全な底点を高速に検索することを特徴とする。
請求項3の本発明の楕円曲線暗号化向けの曲線パラメータ生成方法は、CM法による数学的手法を利用して楕円曲線の位数と楕円曲線パラメータを関係付けることにより、パラメータ生成に必要な変数や定数を絞り込むことを特徴とする。
請求項4の本発明の楕円曲線暗号化向けの曲線パラメータ生成方法は、定められた素数をqとし、先に選択した定数をDとし、ランダムな変数をcとし、Dに対応する定数をj0とする場合、
a = 3*c*j0 / (1728 - j0) (mod q)、
b = 2*c*j0 / (1728 - j0) (mod q)
の関係式を使用することで、ランダム性が高く柔軟性のある楕円曲線パラメータa、bを出力することを特徴とする。
請求項5の本発明の楕円曲線暗号化向けの曲線パラメータ生成方法は、定数Dと定数j0の間に1:1の関係が成り立つように、前記定数j0を算出することを特徴とする。
請求項6の本発明の楕円曲線暗号化向けの曲線パラメータ生成方法は、素数をqとし、位数をrとし、ランダム数をWとし、ランダム数をVとし、定数をDとする場合、
4q = W + DV
r = q + 1 - W
の関係式が成り立つ場合に、パラメータを一意に定めるための定数Dと、ランダムな変数であるW、Vを先に定めることで、素数qと、位数rを定めることを特徴とする。
請求項7の本発明の楕円曲線暗号化向けの曲線パラメータ生成方法は、定められた楕円曲線上で無限遠点となる底点を繰り返し検索することで、底点を生成することを特徴とする。
請求項8の本発明は、コンピュータ装置上で実行され、楕円曲線暗号化向けの曲線パラメータの生成を行う楕円曲線暗号化向けの曲線パラメータ生成プログラムであって、素数を法とする有限体上での楕円曲線の楕円曲線パラメータに対して、一定の条件を満たす有限体と位数を先に定めることにより、楕円曲線暗号に利用できるパラメータの組み合わせを高速に検索する機能を有することを特徴とする。
請求項9の本発明の楕円曲線暗号化向けの曲線パラメータ生成プログラムは、前記素数を法とする有限体上での楕円曲線にて、底点をランダムに定め、無限遠点を計算することで素数または素数に近い位数を持つ安全な底点を高速に検索する機能を有することを特徴とする。
請求項10の本発明の楕円曲線暗号化向けの曲線パラメータ生成プログラムは、CM法による数学的手法を利用して楕円曲線の位数と楕円曲線パラメータを関係付けることにより、パラメータ生成に必要な変数や定数を絞り込む機能を有することを特徴とする。
請求項11の本発明の楕円曲線暗号化向けの曲線パラメータ生成プログラムは、定められた素数をqとし、先に選択した定数をDとし、ランダムな変数をcとし、Dに対応する定数をj0とする場合、
a = 3*c*j0 / (1728 - j0) (mod q)、
b = 2*c*j0 / (1728 - j0) (mod q)
の関係式を使用することで、ランダム性が高く柔軟性のある楕円曲線パラメータa、bを出力する機能を有することを特徴とする。
請求項12の本発明の楕円曲線暗号化向けの曲線パラメータ生成プログラムは、定数Dと定数j0の間に1:1の関係が成り立つように、前記定数j0を算出する機能を有することを特徴とする。
請求項13の本発明の楕円曲線暗号化向けの曲線パラメータ生成プログラムは、素数をqとし、位数をrとし、ランダム数をWとし、ランダム数をVとし、定数をDとする場合、
4q = W + DV
r = q + 1 - W
の関係式が成り立つ場合に、パラメータを一意に定めるための定数Dと、ランダムな変数であるW、Vを先に定めることで、素数qと、位数rを定める機能を有することを特徴とする。
請求項14の本発明の楕円曲線暗号化向けの曲線パラメータ生成プログラムは、定められた楕円曲線上で無限遠点となる底点を繰り返し検索することで、底点を生成する機能を有することを特徴とする。
請求項15の本発明は、楕円曲線暗号化向けの曲線パラメータの生成を行う楕円曲線暗号化向けの曲線パラメータ生成装置であって、素数を法とする有限体上での楕円曲線の楕円曲線パラメータに対して、一定の条件を満たす有限体と位数を先に定めることにより、楕円曲線暗号に利用できるパラメータの組み合わせを高速に検索する手段を備えることを特徴とする。
請求項16の本発明の楕円曲線暗号化向けの曲線パラメータ生成装置は、前記素数を法とする有限体上での楕円曲線にて、底点をランダムに定め、無限遠点を計算することで素数または素数に近い位数を持つ安全な底点を高速に検索する手段を備えることを特徴とする。
請求項17の本発明の楕円曲線暗号化向けの曲線パラメータ生成装置は、CM法による数学的手法を利用して楕円曲線の位数と楕円曲線パラメータを関係付けることにより、パラメータ生成に必要な変数や定数を絞り込む手段を備えることを特徴とする。
本発明によれば、以下に述べるような効果が達成される。
第1に、素数qを法とする有限体上GF(q)での楕円曲線E:y = x + ax + bに対するパラメータ生成全体の処理速度を高速化することができる。
その理由は、素数qと楕円曲線の位数rを先に定めることで、楕円曲線の位数を計算する必要がなく、素数生成や底点のk倍算などの時間のかかる処理を必要最小限にとどめることが可能なためである。
第2に、暗号系に使用できる安全な楕円曲線Eを高速に生成することができる。
その理由は、底点Gの位数rまたはr’(r = r' * h) は十分に大きな素数であり、これにより全検索攻撃やWeilペアリングに対する安全性が確保されるためである。
また、パラメータa,bの生成に関しても、1つのランダムな数値c∈GF(q)を定めて計算できるためランダム性が高く柔軟かつ安全にパラメータを生成できる。底点Gに関しても、rG=0(無限遠点)となる点Gをランダムに選択するため、その安全性を高めている。
また、全検索攻撃やWailペアリングなどの攻撃に強い安全な楕円曲線を構成することができる。
また、楕円曲線のパラメータ生成処理が軽減されるため、RSA暗号化などの処理効率を高くすることができる。
さらに、楕円曲線のパラメータ生成処理が軽減されるため、携帯端末(携帯電話、PADなど)に、暗号化処理機能を持たせることができる。
まず、本発明による楕円曲線暗号化向け曲線パラメータの生成手法についてその概要を説明する。
本発明は、CM法と呼ばれる数学的手法を応用する。この手法は、楕円曲線の位数と楕円曲線パラメータを関係付けることができるため、本発明ではこの性質を応用してパラメータ生成に必要な変数や定数を絞り込みつつ、適度なランダム性を持ち安全な楕円曲線を高速に生成することを可能にした。
すなわち、素数qと位数rには、関係式が成り立っており、パラメータを一意に定めるための定数Dとランダムな変数であるW,Vを先に定めることで、素数qと位数rを定めることができる。このとき、位数rは必ずq≠rとなり、かつ、素数又は素数に近い、十分大きな整数値にすることで、全検索攻撃やWailペアリングなどの攻撃に強い安全な楕円曲線を構成することができる。次に、定められた素数qと先に選択した定数D、ランダムな変数cにより、楕円曲線パラメータを出力することが可能である。このとき、定数Dと定数j0には1:1の関係ができ、パラメータ生成を高速化している。また、定められた楕円曲線上で無限遠点となる底点を検索する手段を有する。
以下、本発明の実施例について図面を参照して詳細に説明する。図1は本発明の実施例による楕円曲線暗号化向け曲線パラメータ生成装置100の構成を示す構成図である。
暗号化に必要な素数パラメータを算出する式y=x+ax+bを決定するための楕円曲線暗号化向け曲線パラメータ生成装置100は、楕円曲線生成に必要なパラメータを生成する楕円曲線パラメータ生成装置10と、パラメータ生成時に行う計算を実行する暗号演算装置11により構成される。
楕円曲線パラメータ生成装置10は、パラメータを生成するために必要な制御を行うパラメータ生成部101と、パラメータの検証を行うパラメータ検証部102により構成されている。
暗号演算装置11は、楕円曲線パラメータを生成するための楕円曲線の素数となる点の演算を行う楕円曲線演算部111と、パラメータを計算するための巨大数演算部112により構成されている。
パラメータ生成部101は、楕円曲線の生成に場合には、暗号演算装置11を制御できる手段であって、楕円曲線パラメータ生成装置10に組み込まれたコンピュータ装置(CPU)により実現する。
パラメータ検証部102は、曲線の機能、安全性の検証の手段であって、IEEE P1363(公開かぎ暗号の標準仕様)に定義されている、楕円曲線パラメータ生成装置10に組み込まれたコンピュータ装置(CPU)により実現する。
楕円曲線演算部111は、点の加算、減算、k倍算の機能により楕円曲線のパラメータ生成が可能となる手段であって、楕円曲線パラメータ生成装置10に組み込まれたコンピュータ装置(CPU)により実現する。
巨大数演算部112は、2048ビット以下の数値であれば四則演算、GF(q)上の累乗演算や平方根演算、素数生成などの手段であって、楕円曲線パラメータ生成装置10に組み込まれたコンピュータ装置(CPU)により実現する。
次に、本発明の実施の形態について図面を参照して詳細に説明する。
図2は、楕円曲線パラメータと、底点を生成するフローチャートである。素数qと位数rを計算(ステップS201)と楕円曲線パラメータa,bと底点G(x,y)を計算(ステップS202)により構成される。
素数qと位数rの計算(ステップS201)をフローチャート図3を参照して詳細に説明する。
素数qと位数rの計算(ステップS201)では、素数qのビット長を入力することにより、素数q,位数rと選択したDを出力する。
素数qと位数rを計算ステップS201において、素数qのビット長を入力する(ステップS301)。
変数Vをランダムに決定する(ステップS302)。変数Vが、二乗してもsビットを越えないように十分小さい値を選択する必要がある。(s/4ビット程度の大きさが適当)
定数Dを選択する(ステップS303)。定数Dは、あらかじめ定められた値11,19,43のうちのどれかとなる。
位数rと素数qの関係には、r=#E(GF(q))はHasse Boundの条件式によって、以下の式を満たす。
k = L(√q + 1) / r
このとき、整数Dは素数qとkの値により条件付けされる。
q≡3(mod 8)ならばD≡2,3,7(mod 8)
q≡5(mod 8)ならばDは奇数
q≡7(mod 8)ならばD≡3,6,7(mod 8)
k=1ならばD≡3(mod 8)
k=2,3ならばD≠7(mod 8)
すなわち、q≡3,5,7(mod 8)、D≡3(mod 8)と任意のkの値により、CM法の条件を満たすことになる(ステップS304)。
ただし、パラメータ生成式の計算(ステップS201)における考慮として
a = 3*c*j0 / (1728 - j0) (mod q)
b = 2*c*j0 / (1728 - j0) (mod q)
のj0を一意の値に定められる定数Dで、j0が小さく計算を行いやすいDの値は11,19,43となる。
変数Wをランダムに決定する(ステップS305)。このとき、二乗してもsビットを越えないように十分小さい値を選択する必要がある。(s/2ビット程度の大きさが適当)
このビット長をsとすると 4q = W + DV を満たすように各変数を判定する(ステップS306)。満たさない場合では、定数Dの選択(ステップS303)から処理をやり直す。
(W + DV)は4で割り切れるか判定をする(ステップS307)。割り切れない場合では、定数Dの選択(ステップS303)からやり直す。
q≡3,5,7(mod 8)を満たすか判定をする(ステップS308)。これ以外の値であった場合では、定数Dの選択(ステップS303)からやり直す。
qが、素数か判定をする(ステップS309)。素数でない場合では、定数Dの選択(ステップS303)からやり直す。
r = q + 1 - W により位数rを計算(プロセスにより、位数rは、必ずq≠rとなる。)し、この値が、素数または、素数に近い値 (r = r' * h) であるかを判定する(ステップS310)。大きな数の合成数(素数ではない)と判定された場合では、定数Dの選択(ステップS303)からやり直す。
上記判定(ステップS306)から(ステップS310)には、各条件を満たす場合では、素数q、位数r、選択した定数Dを出力する(ステップS311)。
楕円曲線パラメータa、bと底点G(x,y)の計算(ステップS202)をフローチャート図4を参照して詳細に説明する。
楕円曲線パラメータa、bと底点G(x,y)の計算(ステップS202)では、q,r,Dを入力して楕円曲線パラメータa,bと底点G(x,y)を生成する。楕円曲線E:y=x+ax+bの楕円曲線パラメータa,bは次の式により導出される。
ステップS201より計算された、q、r、Dを入力する(ステップS401)。
変数cをランダムに決定する(ステップS402)。
導出式を使用して、楕円曲線パラメータa,bを計算する(ステップS403)。
a = 3*c*j0 / (1728 - j0) (mod q)
b = 2*c*j0 / (1728 - j0) (mod q)
このとき、j0 の値は以下のように与えられる。
D=11ならば j0 = (-2)
D=19ならば j0 = (-2 * 3)
D=43ならば j0 = (-2 * 3 * 5)
よって、ランダムなcの値を与えることにより柔軟かつ容易に楕円曲線パラメータa,bを出力することができる。
ランダムに変数c∈GF(q)を定める。最終的に素数qにて剰余を取るため、適度な大きさの数値を選択する。(s/2ビット程度の大きさが適当)
ランダムに変数x∈GF(q)を定め、楕円曲線の式に従いy∈GF(q)を計算して、底点G(x,y)を求める(ステップS404)。
rG=0(無限遠点)となるか計算を行い、r=r’*hだった場合では、hGを先に計算しこれを底点としてr’(hG)=0計算(ステップS405)しなおすことで、素数位数の点を定義することができる。
rGの計算によって無限遠点rG=0が出力された場合では、条件を満たしているため楕円曲線パラメータa,bと底点G(x,y)を出力する(ステップS408)。そうでない場合では、ランダムに底点G(x,y)を決定(ステップS404)からやり直す(ステップS406)。
また、ランダムに底点G(x,y)を決定(ステップS404)へのループを数回繰り返しても無限遠点が導出されない場合では、変数cをランダムに決定(ステップS402)からやり直す(ステップS407)。
また、変数cをランダムに決定(ステップS402)へのループを数回繰り返しても無限遠点が導出されない場合では、図2に示した素数qと位数rの計算(ステップS201)からやり直す。
楕円曲線パラメータa,bと底点G(x,y)を出力する(ステップS408)。
上記のプロセスにより選ばれた値を使用することにより、例えば、SAR暗号化における、暗証キーパラメータの公開キーと秘密キーの生成が可能となる。
以上説明したように、本実施例によれば、素数qと楕円曲線の位数rを先に定めることにより、素数qを法とする有限体上GF(q)での楕円曲線E:y=x+ax+bに対する楕円曲線パラメータ生成全体の処理を容易にし、暗号化向け曲線パラメータの生成処理を高速化できる。
また、CM法の応用により楕円曲線パラメータa、bの生成に関しても1つのランダムな数値c∈GF(q)を定めて計算できること、位数rまたはr’(r = r' * h) は十分に大きな素数であること、GF(q)と十分に大きな位数r=#E(GF(q))を先に定めること、rG=0(無限遠点)となる点Gをランダムに選択することにより、ランダム性が高く柔軟かつ安全に暗号化向け曲線パラメータを生成できる。
また、全検索攻撃やWailペアリングなどの攻撃に強い安全な楕円曲線を構成することができる。
また、楕円曲線のパラメータ生成処理が軽減されるため、RSA暗号化などの処理効率を高くすることができる。
さらに、楕円曲線のパラメータ生成処理が軽減されるため、携帯端末(携帯電話、PADなど)に、暗号化処理機能を持たせることができる。
なお、本発明は上述した実施例に限定されるものではなく、その技術思想の範囲内において様々に変形して実施することができる。
本発明の実施例による楕円曲線暗号化向け曲線パラメータ生成装置の構成を示すブロック図である。 本発明の実施例による楕円曲線暗号化向け曲線パラメータ生成装置実施の動作を説明するフローチャートである。 本発明の実施例における、素数と、位数の計算における処理内容を説明するフローチャートである。 本発明の実施例における、楕円曲線パラメータと、底点の計算の処理内容を説明するフローチャートである。
符号の説明
100:楕円曲線暗号化向け曲線パラメータ生成装置
10:楕円曲線パラメータ生成装置
101:パラメータ生成部
102:パラメータ検証部
11:暗号演算装置
111:楕円曲線演算部
112:巨大数演算部

Claims (17)

  1. 楕円曲線暗号化向けの曲線パラメータの生成を行う楕円曲線暗号化向けの曲線パラメータ生成方法であって、
    素数を法とする有限体上での楕円曲線の楕円曲線パラメータに対して、一定の条件を満たす有限体と位数を先に定めることにより、楕円曲線暗号に利用できるパラメータの組み合わせを高速に検索することを特徴とする楕円曲線暗号化向けの曲線パラメータ生成方法。
  2. 前記素数を法とする有限体上での楕円曲線にて、底点をランダムに定め、無限遠点を計算することで素数または素数に近い位数を持つ安全な底点を高速に検索することを特徴とする請求項1に記載の楕円曲線暗号化向けの曲線パラメータ生成方法。
  3. CM法による数学的手法を利用して楕円曲線の位数と楕円曲線パラメータを関係付けることにより、パラメータ生成に必要な変数や定数を絞り込むことを特徴とする請求項1に記載の楕円曲線暗号化向けの曲線パラメータ生成方法。
  4. 定められた素数をqとし、先に選択した定数をDとし、ランダムな変数をcとし、Dに対応する定数をj0とする場合、
    a = 3*c*j0 / (1728 - j0) (mod q)、
    b = 2*c*j0 / (1728 - j0) (mod q)
    の関係式を使用することで、ランダム性が高く柔軟性のある楕円曲線パラメータa、bを出力することを特徴とする請求項1に記載の楕円曲線暗号化向けの曲線パラメータ生成方法。
  5. 定数Dと定数j0の間に1:1の関係が成り立つように、前記定数j0を算出することを特徴とする請求項1に記載の楕円曲線暗号化向けの曲線パラメータ生成方法。
  6. 素数をqとし、位数をrとし、ランダム数をWとし、ランダム数をVとし、定数をDとする場合、
    4q = W + DV
    r = q + 1 - W
    の関係式が成り立つ場合に、パラメータを一意に定めるための定数Dと、ランダムな変数であるW、Vを先に定めることで、素数qと、位数rを定めることを特徴とする請求項1に記載の楕円曲線暗号化向けの曲線パラメータ生成方法。
  7. 定められた楕円曲線上で無限遠点となる底点を繰り返し検索することで、底点を生成することを特徴とする請求項1に記載の楕円曲線暗号化向けの曲線パラメータ生成方法。
  8. コンピュータ装置上で実行され、楕円曲線暗号化向けの曲線パラメータの生成を行う楕円曲線暗号化向けの曲線パラメータ生成プログラムであって、
    素数を法とする有限体上での楕円曲線の楕円曲線パラメータに対して、一定の条件を満たす有限体と位数を先に定めることにより、楕円曲線暗号に利用できるパラメータの組み合わせを高速に検索する機能を有することを特徴とする楕円曲線暗号化向けの曲線パラメータ生成プログラム。
  9. 前記素数を法とする有限体上での楕円曲線にて、底点をランダムに定め、無限遠点を計算することで素数または素数に近い位数を持つ安全な底点を高速に検索する機能を有することを特徴とする請求項8に記載の楕円曲線暗号化向けの曲線パラメータ生成プログラム。
  10. CM法による数学的手法を利用して楕円曲線の位数と楕円曲線パラメータを関係付けることにより、パラメータ生成に必要な変数や定数を絞り込む機能を有することを特徴とする請求項8に記載の楕円曲線暗号化向けの曲線パラメータ生成プログラム。
  11. 定められた素数をqとし、先に選択した定数をDとし、ランダムな変数をcとし、Dに対応する定数をj0とする場合、
    a = 3*c*j0 / (1728 - j0) (mod q)、
    b = 2*c*j0 / (1728 - j0) (mod q)
    の関係式を使用することで、ランダム性が高く柔軟性のある楕円曲線パラメータa、bを出力する機能を有することを特徴とする請求項8に記載の楕円曲線暗号化向けの曲線パラメータ生成プログラム。
  12. 定数Dと定数j0の間に1:1の関係が成り立つように、前記定数j0を算出する機能を有することを特徴とする請求項8に記載の楕円曲線暗号化向けの曲線パラメータ生成プログラム。
  13. 素数をqとし、位数をrとし、ランダム数をWとし、ランダム数をVとし、定数をDとする場合、
    4q = W + DV
    r = q + 1 - W
    の関係式が成り立つ場合に、パラメータを一意に定めるための定数Dと、ランダムな変数であるW、Vを先に定めることで、素数qと、位数rを定める機能を有することを特徴とする請求項8に記載の楕円曲線暗号化向けの曲線パラメータ生成プログラム。
  14. 定められた楕円曲線上で無限遠点となる底点を繰り返し検索することで、底点を生成する機能を有することを特徴とする請求項8に記載の楕円曲線暗号化向けの曲線パラメータ生成プログラム。
  15. 楕円曲線暗号化向けの曲線パラメータの生成を行う楕円曲線暗号化向けの曲線パラメータ生成装置であって、
    素数を法とする有限体上での楕円曲線の楕円曲線パラメータに対して、一定の条件を満たす有限体と位数を先に定めることにより、楕円曲線暗号に利用できるパラメータの組み合わせを高速に検索する手段を備えることを特徴とする楕円曲線暗号化向けの曲線パラメータ生成装置。
  16. 前記素数を法とする有限体上での楕円曲線にて、底点をランダムに定め、無限遠点を計算することで素数または素数に近い位数を持つ安全な底点を高速に検索する手段を備えることを特徴とする請求項15に記載の楕円曲線暗号化向けの曲線パラメータ生成装置。
  17. CM法による数学的手法を利用して楕円曲線の位数と楕円曲線パラメータを関係付けることにより、パラメータ生成に必要な変数や定数を絞り込む手段を備えることを特徴とする請求項15に記載の楕円曲線暗号化向けの曲線パラメータ生成装置。
JP2004093687A 2004-03-26 2004-03-26 楕円曲線暗号化向け曲線パラメータ生成装置、楕円曲線パラメータ生成方法及びそのプログラム Pending JP2005283674A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004093687A JP2005283674A (ja) 2004-03-26 2004-03-26 楕円曲線暗号化向け曲線パラメータ生成装置、楕円曲線パラメータ生成方法及びそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004093687A JP2005283674A (ja) 2004-03-26 2004-03-26 楕円曲線暗号化向け曲線パラメータ生成装置、楕円曲線パラメータ生成方法及びそのプログラム

Publications (1)

Publication Number Publication Date
JP2005283674A true JP2005283674A (ja) 2005-10-13

Family

ID=35182158

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004093687A Pending JP2005283674A (ja) 2004-03-26 2004-03-26 楕円曲線暗号化向け曲線パラメータ生成装置、楕円曲線パラメータ生成方法及びそのプログラム

Country Status (1)

Country Link
JP (1) JP2005283674A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2007080633A1 (ja) * 2006-01-11 2009-06-11 三菱電機株式会社 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号演算装置及び楕円曲線暗号パラメータ生成プログラム及び楕円曲線暗号演算プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2007080633A1 (ja) * 2006-01-11 2009-06-11 三菱電機株式会社 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号演算装置及び楕円曲線暗号パラメータ生成プログラム及び楕円曲線暗号演算プログラム
JP4688886B2 (ja) * 2006-01-11 2011-05-25 三菱電機株式会社 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号システム及び楕円曲線暗号パラメータ生成プログラム
US8111826B2 (en) 2006-01-11 2012-02-07 Mitsubishi Electric Corporation Apparatus for generating elliptic curve cryptographic parameter, apparatus for processing elliptic curve cryptograph, program for generating elliptic curve cryptographic parameter, and program for processing elliptic cyptograph

Similar Documents

Publication Publication Date Title
CN111492616B (zh) 用于基于晶格的密码学的可配置设备
JP4086503B2 (ja) 暗号演算装置及び方法並びにプログラム
US20110038478A1 (en) Digital signature generation apparatus, digital signature verification apparatus, and key generation apparatus
JP2008203548A (ja) 二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置。
US7218735B2 (en) Cryptography method on elliptic curves
JP5449576B2 (ja) 演算装置、演算装置の楕円スカラー倍算方法、楕円スカラー倍算プログラム、演算装置の剰余演算方法および剰余演算プログラム
JPWO2013065241A1 (ja) インクリメンタルmacタグ生成装置、方法及びプログラム並びにメッセージ認証装置
WO2015004065A1 (en) Electronic signature system
US6480606B1 (en) Elliptic curve encryption method and system
Nguyen et al. Lattice-based fault attacks on signatures
JP4988448B2 (ja) 一括検証装置、プログラム及び一括検証方法
CN101296076A (zh) 一种基于ecc的数字签名方案
US9419789B2 (en) Method and apparatus for scalar multiplication secure against differential power attacks
US10826696B2 (en) Cryptographic method on binary edwards elliptic curves
JP2008042908A (ja) 高速モンゴメリパワーラダーアルゴリズムを利用する欠陥検出動作を具現するための二進有限領域におけるポイント加算方法及び加算演算装置
KR101990861B1 (ko) 논-모듈러 승산기, 논-모듈러 승산 방법 및 계산 장치
US11616994B2 (en) Embedding information in elliptic curve base point
JP2005283674A (ja) 楕円曲線暗号化向け曲線パラメータ生成装置、楕円曲線パラメータ生成方法及びそのプログラム
KR20090004625A (ko) 공개 키 암호화 연산의 순서 변경 방법
US20240205006A1 (en) Encryption device, decryption device, key generation device, encryption method, decryption method, key generation method, computer program product for encryption, computer program product for decryption, and computer program product for key generation
Jacobson Jr et al. Comparison of scalar multiplication on real hyperelliptic curves.
KR101805840B1 (ko) 암호 계산을 위한 방법, 장치 및 비일시적이고 컴퓨터로 독출가능한 매체
RU2369974C1 (ru) Способ формирования и проверки подлинности электронной цифровой подписи, заверяющей электронный документ
Wang et al. A Holistic Secure Communication Mechanism Using a Multilayered Cryptographic Protocol to Enhanced Security.
Gnanamalar et al. Elliptic Public Key Cryptosystem Using DHK and Partial Reduction Modulo Techniques

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Effective date: 20080318

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080708