(57)【要約】【課題】トレース多項式ｔ（ｘ）が３次以上の多項式となるペアリングに適した楕円曲線のファミリを構成すること。【解決手段】前記多項式ω（ｘ）の係数ａ０，ａ１，…，ａφ（ｋ）−１として、それぞれ、生成した乱数を設定する乱数設定手段（Ｃ１B1）と、乱数が設定された前記係数ａ０，ａ１，…，ａφ（ｋ）−１と、前記多項式ｕ（ｘ）が前記多項式ω（ｘ）を使用してｕ（ω（ｘ））で表現されることと、ｕ（ｘ）＝ζｋとに基づいて、前記多項式ｕ（ｘ）の係数ｕ０，ｕ１，…，ｕφ（ｋ）−１を演算する多項式係数演算手段（Ｃ１B3）と、拡張パラメタ演算手段（Ｃ１B4a〜Ｃ１B4c）と、ファミリ構成条件判別手段（Ｃ１B4d）と、定義パラメタ演算手段（Ｃ１Ｂ，Ｃ１Ｄ）と、鍵生成手段（Ｃ１Ｃ，Ｃ１D1，Ｃ２Ｂ）とを備えたことを特徴とする楕円曲線暗号通信用の鍵生成装置（ＣＳ）。【選択図】図２
2008216493.tif 000002
【特許請求の範囲】
【請求項１】
素数ｑを位数とする有限体である定義体をＦｑとし、前記定義体Ｆｑ上で定義される楕円曲線をＥ／Ｆｑとし、前記楕円曲線Ｅ／Ｆｑの有理点により構成される群をＥ（Ｆｑ）とし、前記群Ｅ（Ｆｑ）の元である有理点の中で素数ｒでｒ倍すると無限遠点となるｒ捩点の集合である部分群をＥ［ｒ］とし、前記楕円曲線Ｅ／Ｆｑのトレースをｔとし、前記位数ｑ、部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを自然数ｘを変数として拡張した多項式をそれぞれ拡張位数ｑ（ｘ）、拡張部分群位数ｒ（ｘ）、拡張トレースｔ（ｘ）とし、オイラーのφ関数をφ（ｋ）とし、前記φ関数φ（ｋ）≧４を満足する自然数ｋに対する１の原始ｋ乗根をζｋとし、前記原始ｋ乗根ζｋの多項式表現をｕ（ｘ）とし、前記原始ｋ乗根ζｋと共役な原始ｋ乗根の多項式表現をω（ｘ）とし、前記多項式ｕ（ｘ）をｕ（ｘ）＝ｕ０＋ｕ１・ｘ＋ｕ２・ｘ２＋…＋ｕφ（ｋ）−１・ｘφ（ｋ）−１とし、前記多項式ω（ｘ）をω（ｘ）＝ａ０＋ａ１・ｘ＋ａ２・ｘ２＋…＋ａφ（ｋ）−１・ｘφ（ｋ）−１とした場合に、
前記多項式ω（ｘ）の係数ａ０，ａ１，…，ａφ（ｋ）−１として、それぞれ、生成した乱数を設定する乱数設定手段と、
乱数が設定された前記係数ａ０，ａ１，…，ａφ（ｋ）−１と、前記多項式ｕ（ｘ）が前記多項式ω（ｘ）を使用してｕ（ω（ｘ））で表現されることと、ｕ（ｘ）＝ζｋとに基づいて、前記多項式ｕ（ｘ）の係数ｕ０，ｕ１，…，ｕφ（ｋ）−１を演算する多項式係数演算手段と、
前記係数ｕ０，ｕ１，…，ｕφ（ｋ）−１が演算された多項式ｕ（ｘ）から前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）を演算する拡張パラメタ演算手段と、
前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）が、ペアリングに適した楕円曲線Ｅ／Ｆｑを生成できる組み合わせであるファミリを構成するための条件であるファミリ構成条件を満足するか否かを判別するファミリ構成条件判別手段と、
前記ファミリ構成条件を満足する前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）に基づいて、前記位数ｑ、前記部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを含む前記楕円曲線Ｅ／Ｆｑを定義する定義パラメタを演算する定義パラメタ演算手段と、
前記定義パラメタに基づいて、楕円曲線を利用した暗号通信である楕円曲線暗号通信で使用される鍵を生成する鍵生成手段と、
を備えたことを特徴とする楕円曲線暗号通信用の鍵生成装置。
【請求項２】
管理者装置の秘密鍵としての乱数を生成する管理者装置秘密鍵生成手段と、
前記生成された管理者装置の秘密鍵と、前記定義パラメタとに基づいて、前記鍵としての前記管理者装置の公開鍵を生成する前記鍵生成手段と、
を備えたことを特徴とする請求項１に記載の楕円曲線暗号通信用の鍵生成装置。
【請求項３】
利用者の識別情報を公開鍵とし、前記公開鍵と、前記管理者装置の秘密鍵と、前記定義パラメタとに基づいて、前記鍵としての前記利用者の秘密鍵を生成する前記鍵生成手段、
を備えたことを特徴とする請求項２に記載の楕円曲線暗号通信用の鍵生成装置。
【請求項４】
下記の構成要件（Ａ01）〜（Ａ03）を備えたことを特徴とする楕円曲線暗号通信システム、
（Ａ01）素数ｑを位数とする有限体である定義体をＦｑとし、前記定義体Ｆｑ上で定義される楕円曲線をＥ／Ｆｑとし、前記楕円曲線Ｅ／Ｆｑの有理点により構成される群をＥ（Ｆｑ）とし、前記群Ｅ（Ｆｑ）の元である有理点の中で素数ｒでｒ倍すると無限遠点となるｒ捩点の集合である部分群をＥ［ｒ］とし、前記楕円曲線Ｅ／Ｆｑのトレースをｔとし、前記位数ｑ、部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを自然数ｘを変数として拡張した多項式をそれぞれ拡張位数ｑ（ｘ）、拡張部分群位数ｒ（ｘ）、拡張トレースｔ（ｘ）とし、オイラーのφ関数をφ（ｋ）とし、前記φ関数φ（ｋ）≧４を満足する自然数ｋに対する１の原始ｋ乗根をζｋとし、前記原始ｋ乗根ζｋの多項式表現をｕ（ｘ）とし、前記原始ｋ乗根ζｋと共役な原始ｋ乗根の多項式表現をω（ｘ）とし、前記多項式ｕ（ｘ）をｕ（ｘ）＝ｕ０＋ｕ１・ｘ＋ｕ２・ｘ２＋…＋ｕφ（ｋ）−１・ｘφ（ｋ）−１とし、前記多項式ω（ｘ）をω（ｘ）＝ａ０＋ａ１・ｘ＋ａ２・ｘ２＋…＋ａφ（ｋ）−１・ｘφ（ｋ）−１とした場合に、
前記多項式ω（ｘ）の係数ａ０，ａ１，…，ａφ（ｋ）−１として、それぞれ、生成した乱数を設定する乱数設定手段と、
乱数が設定された前記係数ａ０，ａ１，…，ａφ（ｋ）−１と、前記多項式ｕ（ｘ）が前記多項式ω（ｘ）を使用してｕ（ω（ｘ））で表現されることと、ｕ（ｘ）＝ζｋとに基づいて、前記多項式ｕ（ｘ）の係数ｕ０，ｕ１，…，ｕφ（ｋ）−１を演算する多項式係数演算手段と、
前記係数ｕ０，ｕ１，…，ｕφ（ｋ）−１が演算された多項式ｕ（ｘ）から前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）を演算する拡張パラメタ演算手段と、
前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）が、ペアリングに適した楕円曲線Ｅ／Ｆｑを生成できる組み合わせであるファミリを構成するための条件であるファミリ構成条件を満足するか否かを判別するファミリ構成条件判別手段と、
前記ファミリ構成条件を満足する前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）に基づいて、前記位数ｑ、前記部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを含む前記楕円曲線Ｅ／Ｆｑを定義する定義パラメタを演算する定義パラメタ演算手段と、
前記定義パラメタに基づいて、楕円曲線を利用した暗号通信である楕円曲線暗号通信で使用される鍵を生成する鍵生成手段であって、利用者の識別情報により構成された公開鍵と前記定義パラメタとに基づいて秘密鍵を生成する前記鍵生成手段と、
を有する楕円曲線暗号通信用の鍵生成装置、
（Ａ02）第１の利用者の識別情報により構成された第１の公開鍵と、前記第１の公開鍵に基づいて前記鍵生成装置で生成された第１の秘密鍵と、を記憶する鍵記憶手段と、
通信回線で接続された第２の端末に情報を送信する場合に、第２の端末に記憶された第２の公開鍵を使用して情報を暗号化して送信する暗号化送信手段と、
前記第１の公開鍵で暗号化されて通信回線で接続された第２の端末から送信された情報を受信した場合に、暗号化された情報を前記第１の秘密鍵を使用して復号化する復号化手段と、
を有する第１の端末、
（Ａ03）第２の利用者の識別情報により構成された第２の公開鍵と、前記第２の公開鍵に基づいて前記鍵生成装置で生成された第２の秘密鍵と、を記憶する鍵記憶手段と、
通信回線で接続された前記第１の端末に情報を送信する場合に、前記第１の端末に記憶された第１の公開鍵を使用して情報を暗号化して送信する暗号化送信手段と、
前記第２の公開鍵で暗号化されて通信回線で接続された前記第１の端末から送信された情報を受信した場合に、暗号化された情報を前記第２の秘密鍵を使用して復号化する復号化手段と、
を有する第２の端末。
【請求項５】
素数ｑを位数とする有限体である定義体をＦｑとし、前記定義体Ｆｑ上で定義される楕円曲線をＥ／Ｆｑとし、前記楕円曲線Ｅ／Ｆｑの有理点により構成される群をＥ（Ｆｑ）とし、前記群Ｅ（Ｆｑ）の元である有理点の中で素数ｒでｒ倍すると無限遠点となるｒ捩点の集合である部分群をＥ［ｒ］とし、前記楕円曲線Ｅ／Ｆｑのトレースをｔとし、前記位数ｑ、部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを自然数ｘを変数として拡張した多項式をそれぞれ拡張位数ｑ（ｘ）、拡張部分群位数ｒ（ｘ）、拡張トレースｔ（ｘ）とし、オイラーのφ関数をφ（ｋ）とし、前記φ関数φ（ｋ）≧４を満足する自然数ｋに対する１の原始ｋ乗根をζｋとし、前記原始ｋ乗根ζｋの多項式表現をｕ（ｘ）とし、前記原始ｋ乗根ζｋと共役な原始ｋ乗根の多項式表現をω（ｘ）とし、前記多項式ｕ（ｘ）をｕ（ｘ）＝ｕ０＋ｕ１・ｘ＋ｕ２・ｘ２＋…＋ｕφ（ｋ）−１・ｘφ（ｋ）−１とし、前記多項式ω（ｘ）をω（ｘ）＝ａ０＋ａ１・ｘ＋ａ２・ｘ２＋…＋ａφ（ｋ）−１・ｘφ（ｋ）−１とした場合に、
コンピュータを、
前記多項式ω（ｘ）の係数ａ０，ａ１，…，ａφ（ｋ）−１として、それぞれ、生成した乱数を設定する乱数設定手段、
乱数が設定された前記係数ａ０，ａ１，…，ａφ（ｋ）−１と、前記多項式ｕ（ｘ）が前記多項式ω（ｘ）を使用してｕ（ω（ｘ））で表現されることと、ｕ（ｘ）＝ζｋとに基づいて、前記多項式ｕ（ｘ）の係数ｕ０，ｕ１，…，ｕφ（ｋ）−１を演算する多項式係数演算手段、
前記係数ｕ０，ｕ１，…，ｕφ（ｋ）−１が演算された多項式ｕ（ｘ）から前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）を演算する拡張パラメタ演算手段、
前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）が、ペアリングに適した楕円曲線Ｅ／Ｆｑを生成できる組み合わせであるファミリを構成するための条件であるファミリ構成条件を満足するか否かを判別するファミリ構成条件判別手段、
前記ファミリ構成条件を満足する前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）に基づいて、前記位数ｑ、前記部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを含む前記楕円曲線Ｅ／Ｆｑを定義する定義パラメタを演算する定義パラメタ演算手段、
前記定義パラメタに基づいて、楕円曲線を利用した暗号通信である楕円曲線暗号通信で使用される鍵を生成する鍵生成手段、
として機能させるための楕円曲線暗号通信用の鍵生成プログラム。
【請求項６】
素数ｑを位数とする有限体である定義体をＦｑとし、前記定義体Ｆｑ上で定義される楕円曲線をＥ／Ｆｑとし、前記楕円曲線Ｅ／Ｆｑの有理点により構成される群をＥ（Ｆｑ）とし、前記群Ｅ（Ｆｑ）の元である有理点の中で素数ｒでｒ倍すると無限遠点となるｒ捩点の集合である部分群をＥ［ｒ］とし、前記楕円曲線Ｅ／Ｆｑのトレースをｔとし、前記位数ｑ、部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを自然数ｘを変数として拡張した多項式をそれぞれ拡張位数ｑ（ｘ）、拡張部分群位数ｒ（ｘ）、拡張トレースｔ（ｘ）とし、オイラーのφ関数をφ（ｋ）とし、前記φ関数φ（ｋ）≧４を満足する自然数ｋに対する１の原始ｋ乗根をζｋとし、前記原始ｋ乗根ζｋの多項式表現をｕ（ｘ）とし、前記原始ｋ乗根ζｋと共役な原始ｋ乗根の多項式表現をω（ｘ）とし、前記多項式ｕ（ｘ）をｕ（ｘ）＝ｕ０＋ｕ１・ｘ＋ｕ２・ｘ２＋…＋ｕφ（ｋ）−１・ｘφ（ｋ）−１とし、前記多項式ω（ｘ）をω（ｘ）＝ａ０＋ａ１・ｘ＋ａ２・ｘ２＋…＋ａφ（ｋ）−１・ｘφ（ｋ）−１とした場合に、
前記多項式ω（ｘ）の係数ａ０，ａ１，…，ａφ（ｋ）−１として、それぞれ、生成した乱数を設定する乱数設定ステップ、
乱数が設定された前記係数ａ０，ａ１，…，ａφ（ｋ）−１と、前記多項式ｕ（ｘ）が前記多項式ω（ｘ）を使用してｕ（ω（ｘ））で表現されることと、ｕ（ｘ）＝ζｋとに基づいて、前記多項式ｕ（ｘ）の係数ｕ０，ｕ１，…，ｕφ（ｋ）−１を演算する多項式係数演算ステップ、
前記係数ｕ０，ｕ１，…，ｕφ（ｋ）−１が演算された多項式ｕ（ｘ）から前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）を演算する拡張パラメタ演算ステップ、
前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）が、ペアリングに適した楕円曲線Ｅ／Ｆｑを生成できる組み合わせであるファミリを構成するための条件であるファミリ構成条件を満足するか否かを判別するファミリ構成条件判別ステップ、
前記ファミリ構成条件を満足する前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）に基づいて、前記位数ｑ、前記部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを含む前記楕円曲線Ｅ／Ｆｑを定義する定義パラメタを演算する定義パラメタ演算ステップ、
前記定義パラメタに基づいて、楕円曲線を利用した暗号通信である楕円曲線暗号通信で使用される鍵を生成する鍵生成ステップ、
を実行する楕円曲線暗号通信用の鍵生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報セキュリティ技術としての暗号技術に関し、特に、楕円曲線を用いた暗号技術に関する。
【背景技術】
【０００２】
従来より、一般に公開されたインターネット等のディジタル通信回線網を使用して相互に通信を行ったり、有料で放送番組等を提供したりすることが行われている。前記通信回線網を使用する場合、第三者による盗聴や詐称、あるいは送信者による送信先の間違い等を防止するために、暗号理論を利用した通信技術、特に公開鍵暗号方式を利用した秘密通信、ディジタル署名、認証等の技術が重要となる。
現代の暗号理論では、数論的な問題等を用いて、計算量的な問題解決の困難さを安全性の論拠とする公開鍵暗号を構築する。すなわち、前記公開鍵暗号は、計算量が多くなるほど第３者が解読困難であり安全であるとされる。従来公知の公開鍵暗号では、例えば、離散対数問題（ＤＬＰ（Discrete Logarithm Problem））と呼ばれる数論の一問題を安全性の論拠としている。
【０００３】
（離散対数問題）
演算（・）で定義された群Ｈに含まれる元が有限個（ｑ個）である場合に、ある元ｇについて、ｑ回の演算（ｇ・ｇ・…・ｇ）を簡単にｇｑとする時に、ｇｑ＝ｅ（ｅは単位元）が成り立つ自然数ｑが存在する場合、前記群Ｈは有限巡回群といい、Ｈ＝＜ｇ＞で示される。なお、前記自然数ｑのうち最小の値は有限巡回群Ｈの位数といい、＃Ｈ＝ｑで示される。また、前記元ｇのことを特に生成元といい、前記有限巡回群Ｈの全ての元は、ｇｍ（ｍ＝０，１，…，ｑ−１）で示すことができる。例えば、Ｈの全ての元を、ｅ，ｇ１，ｇ２，ｇ３，…，ｇｑ−１とし、ｇ１２＝ｇ１・ｇ１＝ｇ２，ｇ１３＝ｇ３，…，ｇ１ｑ−１＝ｇｑ−１とした場合に、ｇ１ｑ＝ｅ，ｇ１ｑ＋１＝ｇ１が成立する。
前記離散対数問題とは、前記有限巡回群Ｈに含まれる任意の元ｙが与えられた時に、ｙ＝ｇｍとなる整数ｍを求める問題である。すなわち、前記有限巡回群Ｈが乗法群（前記演算（・）が乗法（×）で定義された群）ならばｙ＝ｇｍとなる整数ｍを、前記有限巡回群Ｈが加法群（前記演算（・）が加法（＋）で定義された群）ならばｙ＝ｍｇとなる整数ｍを求める問題である。前記有限巡回群Ｈについて、前記位数＃Ｈが小さい場合、離散対数問題を解くことは容易であるが、前記位数＃Ｈが大きい場合、一般に効率的に離散対数を求めることは難しいと考えられている。
【０００４】
前記離散対数問題を解くことの難しさを利用した代表的なプロトコルとしては、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎの鍵配送がある。これは、盗聴の可能性のある危険な通信路でも安全に秘密情報（例えば、秘密鍵暗号系の秘密鍵）を共有するための方法である。なお、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎの鍵配送については、非特許文献１に記載されている。
また、前記離散対数問題を解くアルゴリズムでよく知られているものとして、Ｓｈａｎｋｓによるｂａｂｙ−ｓｔｅｐ−ｇｉａｎｔ−ｓｔｅｐ法、Ｐｏｈｌｉｇ−Ｈｅｌｌｍａｎ法、Ｐｏｌｌａｒｄ−ρ法などがある。これらの解法は、いずれも前記有限巡回群Ｈのサイズ、すなわち、位数＃Ｈの最大素因数に対して指数時間オーダーの計算量になることが知られている。なお、計算量が指数時間オーダーである場合、前記サイズが大きければ現在の計算機の処理能力では現実的時間内に計算できず、解法アルゴリズムとしては有用でないとされている。
【０００５】
また、前記有限巡回群Ｈが特別な場合、指数計算法（index calculus method）と呼ばれるアルゴリズムが存在する。
ここで、群の中でも前記演算（・）として加法（＋）と乗法（×）の両方について定義できるものは体と呼ばれ、前記体の位数がｑである場合、前記体を有限体Ｆｑとする。また、前記有限体Ｆｑにおいて、乗法（×）に関して逆元（ある元ｇに対してｇ×ｇ−１＝ｅとなるｇ−１）を有する元全体の集合を前記有限体Ｆｑの乗法群Ｆｑ＊とする。
前記有限巡回群Ｈが前記乗法群Ｆｑ＊である場合、前記指数計算法が適用でき、計算量は、前記有限巡回群Ｈのサイズに対して準指数時間オーダーとなることが知られている。なお、これらの解法アルゴリズムについても、非特許文献１に記載されている。
【０００６】
ここで、現実的時間内に計算可能であり、前記離散対数問題の解法アルゴリズムとして有用であるとされるのは、前記計算量が多項式時間オーダーとなるアルゴリズムである。しかし、前記離散対数問題について、前記有限巡回群Ｈのサイズに対する多項式時間オーダーで解けるようなアルゴリズムは現在も知られていない。この結果、前記離散対数問題を解くアルゴリズムの研究や、前記離散対数問題の解決の困難さを論拠とした公開鍵暗号の研究が活発に行われている。
【０００７】
（楕円曲線暗号）
前記公開鍵暗号への応用例として、１９８５年にＫｏｂｌｉｔｚとＭｉｌｌｅｒによってそれぞれ独自に提案された楕円曲線暗号（ＥＣＣ（Elliptic Curve Cryptosystem））がある。前記楕円曲線暗号では、以下の＜定義１＞で定義される楕円曲線離散対数問題（ＥＣＤＬＰ（Elliptic Curve Discrete Logarithm Problem））が暗号の安全性の拠り所となる。
＜定義１＞
楕円曲線離散対数問題（ＥＣＤＬＰ）：
楕円曲線Ｅ／Ｆｑ上の有理点をＰ，Ｑとし、前記楕円曲線Ｅ／Ｆｑ上の元（有理点）で構成される群（有限巡回群）をＧとする（Ｐ，Ｑ∈Ｇ）。さらに、前記群Ｇの位数をｒとする。このとき、ｘＰ＝Ｑとなる最小の非負整数ｘを求めよ。
【０００８】
ここで、前記楕円曲線Ｅ／Ｆｑとは、有限体Ｆｑで定義される楕円曲線を指す。例えば、定数ａ，ｂ∈Ｆｑ，有理点（ｘ，ｙ）∈（Ｆｑ）２，位数ｑ＞３とした場合に、０＜ｘ＜ｑ−１、且つ、ｙが方程式Ｅ：Ｙ２＝ｘ３＋ａｘ＋ｂを満たすＹをｑで割った剰余である場合（ｙ＝Ｙ  ｍｏｄ（ｑ））を満足する（ｘ，ｙ）全て、すなわち、（ｘ，ｙ）で示される有理点全体の集合に、（∞，∞）で表現可能な仮想的な点である無限遠点Οを追加した集合である。ただし、ａ，ｂについては、判別式Ｄ＝４ａ３＋２７ｂ２≠０を満たす値でなければならない。また、楕円曲線Ｅ／Ｆｑを定義する前記有限体Ｆｑは定義体と呼ばれることがある。
ここで、前記楕円曲線Ｅ／Ｆｑの簡単な例として、方程式ＥがＹ２＝ｘ３＋３ｘ＋２、ｑ＝５の場合に、その元として、（１，１）、（１，−１），（２，１），（２，−１）および（∞，∞）という５つの元からなる集合が挙げられる。
【０００９】
一般的に、前記楕円曲線離散対数問題は、その解法として、前記指数計算法のアルゴリズムを直接利用できず、群（Ｇ）の位数（ｒ）に対する指数時間オーダーのアルゴリズムを利用した計算を行わなければならないと考えられていた。すなわち、群（Ｇ）の位数（ｒ）に対して準指数時間オーダーのアルゴリズムさえ知られていないため、効率的に楕円曲線離散対数問題を解くことが困難であり、安全性が高いと考えられていた。また、計算量的に定義体（Ｆｑ）は唯一であることに対し、定義体（Ｆｑ）上定義される楕円曲線（Ｅ／Ｆｑ）は数多く存在するため、楕円曲線暗号系に用いる楕円曲線（Ｅ／Ｆｑ）を取り替えるだけで違うシステムを作ることが容易であることも安全性を確保するためには有用である。
【００１０】
さらに、前記楕円曲線暗号では、およそ１６０ビットの暗号鍵を用意すれば１０２４ビットのＲＳＡ暗号と同等の暗号強度、すなわち、暗号の安全性を有すると考えられており、ＲＳＡ暗号等の従来公知の公開鍵暗号に比べ、暗号鍵のビット長（ビット数）を短くできるという利点がある。ここで、ＲＳＡ暗号とは、Ｒｉｖｅｓｔ、Ｓｈａｍｉｒ、Ａｄｌｅｍａｎによって開発された、桁数が大きい数の素因数分解問題が困難であることを安全性の根拠とした公開鍵暗号である。なお、前記楕円曲線暗号や前記ＲＳＡ暗号についても非特許文献１に記載されている。
【００１１】
このため、前記楕円曲線暗号は、従来公知の公開鍵暗号系と比べて有望であり、応用等の研究が盛んになった。例えば、前記楕円曲線暗号の計算に適した楕円曲線（Ｅ／Ｆｑ）の研究された結果、前記楕円曲線（Ｅ／Ｆｑ）の構築に必要な前記位数（ｒ）の計算が容易であり、且つ、２倍点（ある有理点Ｐに対して２Ｐ＝Ｑとなる有理点Ｑ）の計算が容易である超特異楕円曲線（supersingular elliptic curve）が考案された。前記超特異楕円曲線は、実用に耐えうる計算時間の楕円曲線として従来公知の楕円曲線暗号に広く用いられるようになった。なお、前記超特異楕円曲線についても非特許文献１に記載されている。
【００１２】
しかし、１９９１年に、Ｍｅｎｅｚｅｓ、岡本、Ｖａｎｓｔｏｎｅによって、ＭＯＶ帰着（MOV-reduction）と呼ばれるアルゴリズムが提案された。前記ＭＯＶ帰着を適用することにより、前記超特異楕円曲線の楕円曲線離散対数問題を、前記超特異楕円曲線の定義体（Ｆｑ）の高々６次の拡大体（（Ｆｑ）６＝Ｆｗ（ｗ＝ｑ６））上の離散対数問題に帰着させることができるようになった。ここで、拡大体の例として、実数体（実数全体の集合）は、有理数体（有理数全体の集合）の拡大体である。すなわち、ｋ1およびＫ１が体である場合、ｋ1がＫ１に集合として含まれれば、Ｋ１はｋ1の拡大体であるとし、ｋ1はＫ１の部分体であるとする。このとき、Ｋ１はｋ1のベクトル空間になる。すなわち、ａｋ，ｂｋ∈ｋ1およびｘＫ，ｙＫ∈Ｋ１が成立する場合、ａｋｘＫ＋ｂｋｙＫ∈Ｋ１となり、加法とｋ1の元によるスカラー倍が定義できる。なお、Ｋ１のｋ1上のベクトル空間としての次元が６の場合、Ｋ１をｋ1の６次拡大体という。
【００１３】
したがって、前記超特異楕円曲線を用いた楕円曲線暗号には、前記指数計算法のアルゴリズムを適用できるようになり、前記拡大体（（Ｆｑ）６）の位数に対する準指数時間オーダーの計算量で解けることになった。この結果、前記超特異楕円曲線を用いた楕円曲線暗号は、帰着先の離散対数問題が解けない程度に定義体（Ｆｑ）を十分大きくせざるを得なくなった。また、他方では、前記ＭＯＶ帰着により楕円曲線離散対数問題を効率のよい離散対数問題に帰着できない、すなわち、前記超特異楕円曲線ではない楕円曲線（ordinary elliptic curve）を構築することが新たな課題となった。例えば、拡大体の次数が６次より大きくなる楕円曲線の構築法が研究されることとなった。
【００１４】
なお、前記ＭＯＶ帰着は、楕円曲線上定義されるＷｅｉｌペアリングを利用している。
（Ｗｅｉｌペアリング）
まず、ｑを素数ｐの素数冪とし（ｑ＝ｐｗ）、有限体（定義体）Ｆｑ上定義された楕円曲線をＥ／Ｆｑ、前記楕円曲線Ｅ／Ｆｑ上の元（有理点）で構成される群（有限巡回群）をＥ（Ｆｑ）とする。なお、前記素数ｐは、有限体Ｆｑの標数である。
ここで、前記標数とは、例えば、ある体の乗法における単位元をｅとすると、ｅのｐ回の加算が零元となる最小の数をいう。また、ｅを何回加算しても零元とならない場合、前記標数は０であると定義されている。前記有限体Ｆｑは、体Ｆｐ（Ｆｐ＝｛０，１，…，ｐ−１｝）のｗ次拡大体であり、前記体Ｆｐのベクトル空間である。また、前記体Ｆｐでは、単位元は１、零元は０であり、１をｐ回加算した結果が０となる（１＋１＋…＋１＝０）ため、前記標数はｐとなる。よって、有限体Ｆｑについて、部分体たる前記体Ｆｐにおいて単位元のｐ回演算が零元となるため、有限体Ｆｑの前記標数もｐとなる。
【００１５】
また、前記標数ｐと互いに素である素数をｒ（ｇｃｄ（ｐ，ｒ）＝１）とした場合、前記群Ｅ（Ｆｑ）の元（有理点）のうち、ｒ倍すると無限遠点Οとなる点をｒ捩点といい、全ての前記ｒ捩点の集合は、前記群Ｅ（Ｆｑ）の部分群であり、Ｅ［ｒ］で示される（Ｅ［ｒ］＝｛Ｐ∈Ｅ（Ｆｑ）｜ｒＰ＝Ο｝）。
このとき、Ｗｅｉｌペアリングは、前記群Ｅ［ｒ］から定義体Ｆｑの拡大体の乗法群への写像として定義できる。すなわち、前記拡大体をＬとし、前記拡大体Ｌの乗法群をＬ＊とした場合、ｅｒ：Ｅ［ｒ］×Ｅ［ｒ］→Ｌ＊と示すことができる。また、前記ｒ捩点をＰ，Ｑとした場合（Ｐ，Ｑ∈Ｅ［ｒ］）、Ｗｅｉｌペアリングは、ｅｒ（Ｐ，Ｑ）と示される。なお、Ｗｅｉｌペアリングについては、非特許文献１に記載されており、公知である。
【００１６】
なお、前記Ｗｅｉｌペアリングは、以下の性質（１）〜（３）を持つことが知られている。
（１）双線型性（bilinear）：
前記ｒ捩点がＰ，Ｐ１，Ｐ２，Ｑ，Ｑ１，Ｑ２，である場合（Ｐ，Ｐ１，Ｐ２，Ｑ，Ｑ１，Ｑ２∈Ｅ［ｒ］）、
ｅｒ（Ｐ１＋Ｐ２，Ｑ）＝ｅｒ（Ｐ１，Ｑ）ｅｒ（Ｐ２，Ｑ）
および
ｅｒ（Ｐ，Ｑ１＋Ｑ２）＝ｅｒ（Ｐ，Ｑ１）ｅｒ（Ｐ，Ｑ２）
が成立する。
（２）対称性（alternating）
前記ｒ捩点がＰ，Ｑである場合（Ｐ，Ｑ∈Ｅ［ｒ］）、
ｅｒ（Ｐ，Ｑ）＝ｅｒ（Ｑ，Ｐ）−１
および
ｅｒ（Ｐ，Ｐ）＝１
が成立する。
（３）非退化（non-degenerate）
前記ｒ捩点をＰとする場合（Ｐ∈Ｅ［ｒ］）、全てのＰに対して、ｅｒ（Ｐ，Ｔ）＝１であるならば、Ｔ＝Ο（無限遠点）である。
【００１７】
（楕円曲線上のペアリングを使用した公開鍵暗号について）
前記ＭＯＶ帰着が提案された結果、前記Ｗｅｉｌペアリングは前記楕円曲線離散対数問題を解くために有効な手段として注目されることとなった。現在でも、前記ＭＯＶ帰着や、前記Ｗｅｉｌペアリングと同様の楕円曲線上のペアリングであるＴａｔｅペアリングを利用したＦＲ帰着等のアルゴリズムを使用し、前記楕円曲線離散対数問題を解くための応用等の研究は広く行われている。
なお、他方では、前記楕円曲線上のペアリングを使用して、新たな公開鍵暗号を生み出す研究も行われた。その結果、１９８４年にＳｈａｍｉｒが提案した従来公知であるＩＤベース暗号（ＩＢＥ（Identity-Based Encryption））のアイデアに、前記楕円曲線上のペアリングを利用して実現された新たな公開鍵暗号のアルゴリズムが、２００１年にＢｏｎｅｈ、Ｆｒａｎｋｌｉｎによって提案された。
【００１８】
（ＩＤベース暗号）
まず、Ｓｈａｍｉｒが提示した、ＩＤベース暗号に必要な機能を以下の（１）〜（４）に示す。
（１）準備：
公開鍵暗号システムにおいて、複数のユーザ（使用者、ユーザＡ（第１の使用者）、ユーザＢ（第２の使用者）、…）の鍵の生成等を行うセンタ（管理者、管理人）は、後述する（３）暗号化および（４）複合化に必要であって全ユーザに公開される公開パラメタと、前記センタが管理するマスターキーとを生成する。
（２）展開（鍵生成）：
前記ユーザＡのＩＤ（識別情報、例えば、ｅ−ｍａｉｌアドレス）を前記ユーザＡの公開鍵とした場合、前記センタは、前記ＩＤ（ユーザＡの公開鍵、利用者の公開鍵）と前記マスターキーとから前記ユーザＡの秘密鍵（利用者の秘密鍵）を生成し、前記ユーザＡに配布する。また、その他の各ユーザについても、各ユーザの秘密鍵を同様に生成して配布する。
（３）暗号化：
前記ユーザＢが前記ユーザＡにメッセージを暗号化して送信したい場合、前記ユーザＢは、前記ＩＤ（ユーザＡの公開鍵）と前記公開パラメタとを用いて前記メッセージを暗号化した暗号文を生成し、前記暗号文を前記ユーザＡに送信する。
（４）復号化：
前記暗号文を受信した前記ユーザＡは、前記暗号文に前記ユーザＡの秘密鍵と前記パラメタとを用いて複合化し、前記メッセージを生成する。
【００１９】
なお、Ｂｏｎｅｈ、Ｆｒａｎｋｌｉｎによって提案されたＩＤベース暗号のアルゴリズムでは、楕円曲線上のペアリングに利用する楕円曲線は、（１）準備の段階で生成し、前記ペアリングは、前記公開パラメタの１つとして用いられる。このとき、前記ペアリングは暗号的ペアリングと呼ばれ、以下の＜定義２＞のように定義される。
【００２０】
＜定義２＞
暗号的ペアリング：
Ｇ１，Ｇ２，ＧＴを十分大きな素数ｒを位数とする有限巡回群とする。前記双線型性を有する双線型写像を、ｅ：Ｇ１×Ｇ２→ＧＴで定義する。前記双線型写像ｅが以下の（１）〜（３）の条件を全て満たす場合、前記双線型写像ｅは暗号的ペアリングである。
（１）双線型性
任意のＰ∈Ｇ１、Ｑ∈Ｇ２、ａｚ，ｂｚ∈Ｚ（整数全体の集合）に対して、
ｅ（ａｚＰ，ｂｚＱ）＝ｅ（Ｐ，Ｑ）ａｚｂｚ
を満たす。
（２）非退化
任意のＱ∈Ｇ２に対して、ｅ（Ｐ，Ｑ）＝１ならば、ＰはＧ１の単位元である。また、逆に任意のＰ∈Ｇ１に対して、ｅ（Ｐ，Ｑ）＝１ならば、ＱはＧ２の単位元である。
（３）計算可能
任意のＰ∈Ｇ１，Ｑ∈Ｇ２に対して、ｅ（Ｐ，Ｑ）を効率よく計算できる。すなわち、ｅ（Ｐ，Ｑ）を効率よく計算可能なアルゴリズムが知られている。
【００２１】
よって、前記ＩＤベース暗号では、特定の前記Ｗｅｉｌペアリングを前記暗号的ペアリングとして利用できる。ここで、前記ＩＤベース暗号のアルゴリズムを以下に例示する。
【００２２】
（ＩＤベース暗号のアルゴリズム）
（１）準備：
まず、前記センタは、素数ｒ、位数が前記素数ｒの２つの有限巡回群Ｇ１，Ｇ２、暗号的ペアリングｅ（ｅ：Ｇ１×Ｇ１→Ｇ２）、前記有限巡回群Ｇ１の生成元Ｐ（Ｇ１＝＜Ｐ＞）を生成する。
また、前記センタは、任意のビット列（｛０，０｝＊）から前記有限巡回群Ｇ１の乗法群Ｇ１＊への写像としてのハッシュ関数Ｈ１（Ｈ１：｛０，１｝＊→Ｇ１＊）と、前記有限巡回群Ｇ２からｎ桁のビット列（｛０，１｝ｎ）への写像としてのハッシュ関数Ｈ２（Ｈ２：Ｇ２→｛０，１｝ｎ）とを用意する。ここで、ハッシュ関数とは、与えられたデータから固定長の疑似乱数のデータ（ハッシュ値）を生成する関数であり、逆変換ができない一方向関数である。なお、ハッシュ関数Ｈとした場合、ある値ｗのハッシュ値は、Ｈ（ｗ）で示される。
そして、前記センタは、乱数としての整数Ｋｓ（０≦Ｋｓ＜ｒ）を生成し、Ｓ＝Ｋｓ×Ｐを計算する。ここで、Ｓをセンタの公開鍵（管理者装置の公開鍵）、Ｋｓをセンタの秘密鍵（管理者装置の秘密鍵）とする。
このとき、前記公開パラメタは、前記素数ｒ、前記有限巡回群Ｇ１，Ｇ２、前記暗号的ペアリングｅ、前記整数ｎ、前記生成元Ｐ、前記センタの公開鍵Ｓ、前記ハッシュ関数Ｈ１，Ｈ２によって構成され、全ユーザに公開される。また、前記マスターキーは、前記センタの秘密鍵Ｋｓである。
【００２３】
（２）展開（ユーザＡの鍵生成）：
前記センタは、前記ユーザＡの公開鍵となるＩＤ（例えば、ｅ−ｍａｉｌのアドレス等）をＩＤａとした場合、前記ユーザＡの秘密鍵ＫａをＫａ＝Ｋｓ×Ｈ１（ＩＤａ）を計算することにより生成し、前記秘密鍵ＫａをユーザＡに配布する。また、その他の各ユーザについても、各ユーザの秘密鍵を同様に生成して配布する。
（３）暗号化
前記ユーザＢが前記ユーザＡにメッセージを暗号化して送信したい場合、まず、前記ユーザＢは、乱数として整数Ｒｂ（０≦Ｒｂ＜ｒ）を生成する。また、前記ユーザＢは、前記ユーザＡの公開鍵ＩＤａ、前記公開パラメタ、前記乱数Ｒｂを用いてメッセージＭを暗号化し、暗号文Ｃを前記ユーザＡに送信する。すなわち、前記ユーザＢは、Ｃ１＝Ｒｂ×Ｐと、Ｃ２＝ＸＯＲ（Ｍ，Ｈ２（ｅ（Ｓ，Ｈ１（ＩＤａ））Ｒｂ））とを計算し、Ｃ１，Ｃ２を前記暗号文Ｃとして前記ユーザＡに送信する。すなわち、
Ｃ＝［Ｃ１，Ｃ２］＝［Ｒｂ×Ｐ，ＸＯＲ（Ｍ，Ｈ２（ｅ（Ｓ，Ｈ１（ＩＤａ））Ｒｂ））］とする。
【００２４】
ここで、ＸＯＲ（ｍ１，ｍ２）は、ある値ｍ１とｍ２とのビットごとの排他的論理和のことであり、各桁のビットについて、ＸＯＲ（１，１）＝ＸＯＲ（０，０）＝０およびＸＯＲ（１，０）＝ＸＯＲ（０，１）＝１が成立するものとする。例えば、４ビットの値を２進数表記した２つの値、‘０１１０’および‘１１１１’についての排他的論理和は‘１００１’となる（ＸＯＲ（‘０１１０’，‘１１１１’）＝‘１００１’）。また、２つの値が同じ場合、例えば、‘０１１０’および‘０１１０’についての排他的論理和は‘００００’となる（ＸＯＲ（‘０１１０’，‘０１１０’）＝‘００００’）。
【００２５】
（４）復号化
前記暗号文Ｃ（Ｃ＝［Ｃ１，Ｃ２］）を受信した前記ユーザＡは、前記公開パラメタおよび前記ユーザＡの秘密鍵Ｋａを用いて前記暗号文Ｃを復号化し、前記メッセージＭを生成する。すなわち、前記ユーザＡは、前記メッセージＭを、Ｍ＝ＸＯＲ（Ｈ２（ｅ（Ｃ１，Ｋａ）），Ｃ２）を計算することにより、前記メッセージＭを生成できる。
なお、ｅ（Ｃ１，Ｋａ）については、
ｅ（Ｃ１，Ｋａ）
＝ｅ（Ｒｂ×Ｐ，Ｋｓ×Ｈ１（ＩＤａ））
＝ｅ（Ｐ，Ｈ１（ＩＤａ））Ｒｂ×Ｋｓ
＝ｅ（Ｋｓ×Ｐ，Ｈ１（ＩＤａ））Ｒｂ
＝ｅ（Ｓ，Ｈ１（ＩＤａ））Ｒｂ
が成立する。よって、前記メッセージＭについて、
Ｍ＝ＸＯＲ（Ｈ２（ｅ（Ｓ，Ｈ１（ＩＤａ））Ｒｂ），Ｃ２）
＝ＸＯＲ（Ｈ２（ｅ（Ｓ，Ｈ１（ＩＤａ）Ｒｂ），ＸＯＲ（Ｍ，Ｈ２（ｅ（Ｓ，Ｈ１（ＩＤａ））Ｒｂ）））
が成立するため、メッセージＭに同じ値の排他的論理和を２回繰り返すことになり、元のメッセージＭに戻ることは明らかである。
なお、ＩＤベース暗号については、特許文献１や非特許文献１等に記載されており、公知である。
【００２６】
（暗号的ペアリングに適した楕円曲線構成問題）
ここで、前記楕円曲線Ｅ／Ｆｑの定義体（有限体）Ｆｑの代数的閉包をＦｑ′とした場合、前記Ｗｅｉｌペアリング（ｅｒ）で計算された像は、前記有限体Ｆｑの代数的閉包Ｆｑ′よりも小さな拡大体（Ｌ）に含まれることが知られている。
ここで、ある体（Ｆｑ）の代数的閉包（Ｆｑ′）とは、前記体（Ｆｑ）の拡大体（Ｆｑ′）が代数的閉体であるものをいう。また、ある体Ｆが代数的閉体であるとは、前記体Ｆ上の全ての代数方程式ｆ（ｘ）について、ｆ（ｘ）＝０を満たす全ての解が体Ｆに含まれることをいう。
【００２７】
例えば、ｆ（ｘ）がｎ次多項式の場合、すなわち、
ｆ（ｘ）＝ｄｎｘｎ＋ｄｎ−１ｘｎ−１＋…＋ｄ１ｘ＋ｄ０（ｄ０，ｄ１，…，ｄｎ−１，ｄｎ∈Ｆ）
について、ｆ（ｘ）＝０のｎ個の解をｆ１，ｆ２，…，ｆｎとすると、これらは必ず体Ｆの元である（ｆ１，ｆ２，…，ｆｎ∈Ｆ）。簡単な例として、有理数体（有理数全体の集合）および実数体（実数全体の集合）は多項式の解が複素数になる場合があるため代数的閉体ではなく、複素数体（複素数全体の集合）は代数的閉体である。また、前記複素数体は、前記有理数体や前記実数体の代数的閉包であることがいえる。
したがって、前記有限体Ｆｑの代数的閉包Ｆｑ′とは、Ｆｑ′の任意の多項式がＦｑ′上で１次式に分解でき、Ｆｑ′の任意の元が有限体Ｆｑ上の多項式の解となる前記有限体Ｆｑの拡大体であるといえる。
【００２８】
また、このとき、前記拡大体（Ｌ）の最小の拡大次数（拡大体の次数）は、埋め込み次数（embedding degree）と呼ばれる。前記埋め込み次数は以下の＜定義３＞のように定義される。
＜定義３＞
埋め込み次数：
楕円曲線の定義体をＫ２、前記定義体Ｋ２上で定義される楕円曲線をＥ／Ｋ２、前記楕円曲線Ｅ／Ｋ２の位数ｒの部分群Ｅ［ｒ］で定義されるＷｅｉｌペアリングをｅｒ、前記Ｗｅｉｌペアリングｅｒの像をμｒとし、２以上の任意の位数ｒに関して、前記像μｒを含むような定義体Ｋ２の拡大体をＬとし、拡大体Ｌは、拡大次数が最小の体とする。このとき、前記拡大体Ｌの拡大次数をｋとし（ｋ＝［Ｌ：Ｋ２］と表現する）、前記拡大次数ｋを、前記楕円曲線Ｅ／Ｋ２の前記位数ｒに関する埋め込み次数という。ここで、前記像μｒは、前記定義体Ｋ２の代数的閉包Ｋ２′上の乗法単位元１のｒ乗根による乗法群とする。
【００２９】
なお、任意のペアリングに対しても、＜定義３＞と同様に埋め込み次数を定義できる。
この場合、前記超特異楕円曲線では、前記埋め込み次数ｋが高々６であるため、前記超特異楕円曲線の定義体（Ｆｑ）の高々６次の拡大体（（Ｆｑ）６＝Ｆｗ（ｗ＝ｑ６））上の離散対数問題に帰着させることができる。これにより、前記埋め込み次数（ｋ）が６より大きく、前記ＭＯＶ帰着により、楕円曲線離散対数問題が定義体（Ｆｑ）の６次より大きい拡大体（（Ｆｑ）ｋ＝Ｆｗ（ｗ＝ｑｋ，ｋ＞６））の離散対数問題となるような楕円曲線を生成するという研究が行われ、既にいくつもの楕円曲線の構成法が提案されている。
【００３０】
（楕円曲線上のペアリングを利用した公開鍵暗号についての問題）
その一方で、ＢａｌａｓｕｂｒａｍａｎｉａｎとＫｏｂｌｉｔｚにより、前記楕円曲線Ｅ／Ｆｑを一定の条件を付けずに、すなわち、ランダムに生成した場合、前記群Ｅ（Ｆｑ）の部分群（Ｅ［ｒ］）の位数ｒに関する埋め込み次数ｋが、底を２とするｑの対数ｌｇｑ（ｌｇｑ＝ｌｏｇ２ｑ）より小さくなるのは非常に稀であり、大抵の場合、前記埋め込み次数ｋはｒとほぼ等しいと評価された（ｋ≒ｒ）。なお、埋め込み次数ｋが前記対数ｌｇｑより小さくなる場合（ｋ＜ｌｇｑ）、ＭＯＶ帰着等によって楕円曲線離散対数問題が準指数時間オーダーで解けることが知られている（非特許文献１参照）。
【００３１】
また、前記埋め込み次数ｋについては、前記定義体Ｋ２についてＫ２＝Ｆｑが成立し、前記位数ｒが前記標数ｐと互いに素である素数であり、且つ、前記群Ｅ（Ｆｑ）の位数＃Ｅ（Ｆｑ）を割り切る場合（ｒ｜＃Ｅ（Ｆｑ））、ｒがｑｋ−１を割り切り（ｒ｜ｑｋ−１）、且つ、ｋより小さい自然数ｉ（１≦ｉ＜ｋ）についてはｒがｑｉ−１を割り切れないことが知られている（非特許文献２参照）。この場合、前記位数ｒは、前記群Ｅ（Ｆｑ）の位数＃Ｅ（Ｆｑ）を割り切る（ｒ｜＃Ｅ（Ｆｑ））値の中での最大値が定義体Ｆｑの位数ｑとほぼ等しくなると考えることができる（ｒ≒ｑ）。
【００３２】
ここで、前記位数ｒは、ペアリング（ｅｒ）の計算を行うための前記部分群（Ｅ［ｒ］）の位数であるため、前記楕円曲線上のペアリングを利用した公開鍵暗号（ＩＤベース暗号等）では、前記楕円曲線離散対数問題を容易に解かれないよう、できるだけ大きな値とすべきである。
しかし、前記楕円曲線Ｅ／Ｆｑをランダムに生成した場合、前記位数ｒを大きくすると、前記拡大体Ｌの位数＃Ｌ、すなわち、定義体Ｆｑのｋ次拡大体（（Ｆｑ）ｋ＝Ｆｗ（ｗ＝ｑｋ））の位数ｑｋ（＃Ｌ＝ｑｋ）が最大でｒｒとなってしまう（ｋ≒ｒ，ｒ≒ｑの場合、ｑｋ≒ｒｒとなる）。この結果、ペアリングの像（μｒ）が爆発的な大きさの前記拡大体Ｌに含まれることになり、前記ペアリング（ｅｒ）の計算が困難となってしまう。
【００３３】
したがって、前記ペアリングを利用した公開鍵暗号に適した楕円曲線、すなわち、ペアリングに適した（pairing friendly）楕円曲線とは、大きな素数位数ｒの部分群Ｅ［ｒ］を持っており、且つ、前記ペアリングｅｒの計算が可能な程度に小さな埋め込み次数ｋを持つ楕円曲線Ｅ／Ｆｑであるとすることができる。特に、前記素数位数ｒは、前記群Ｅ（Ｆｑ）の位数＃Ｅ（Ｆｑ）を割り切る（ｒ｜＃Ｅ（Ｆｑ））ことから、ｒ＝＃Ｅ（Ｆｑ）を満たす楕円曲線を生成できれば、前記ペアリングを利用した公開鍵暗号にとって最適な楕円曲線の生成法（構成法）であるとされている。
前記条件を満たす最適な楕円曲線の構成法は、既にいくつか存在するが、ごく限られた埋め込み次数（ｋ）についてのみである。したがって、より多くの埋め込み次数（ｋ）に対して最適な（理想的な）楕円曲線を生成する方法（構成法）については研究の余地があり、現在も研究が行われている。
【００３４】
（ペアリングに適した楕円曲線の構成法についての準備）
ここで、ある体をＫ３、前記体Ｋ３の代数的閉包をＫ３′とし、前記体Ｋ３を定義体として定義される楕円曲線をＥ／Ｋ３とした場合、楕円曲線Ｅ／Ｋ３上の点（有理点も含む全ての点）のなす群をＥ（Ｋ３′）として示すことができ、前記ｒ捩点のなす群Ｅ［ｒ］を、前記群Ｅ（Ｋ３′）の部分集合とし、Ｅ［ｒ］⊂Ｅ（Ｋ３′）で示すことができる。また、Ｋ３＝Ｆｑが成立する場合、定義体Ｆｑは、前記標数ｐの有限体（ｐは素数、ｑ＝ｐｗ（ｗは自然数））である。また、楕円曲線Ｅ／Ｆｑ上の有理点の群Ｅ（Ｆｑ）の位数を＃Ｅ（Ｆｑ）とすると、前記位数＃Ｅ（Ｆｑ）は、整数ｔを用いて、＃Ｅ（Ｆｑ）＝ｑ＋１−ｔで示すことができる。このとき、前記整数ｔは、楕円曲線Ｅ／Ｆｑのトレース（跡、trace）と呼ばれる。
【００３５】
ここで、前記ペアリングに適した楕円曲線は、Ｆｒｅｅｍａｎ、Ｓｃｏｔｔ、Ｔｅｓｋｅにより、以下の＜定義４＞のように厳密に定義されている。
＜定義４＞
ペアリングに適した楕円曲線：
前記楕円曲線Ｅ／Ｆｑについて、以下の（１），（２）の条件を全て満たす場合、前記楕円曲線Ｅ／Ｆｑはペアリングに適した楕円曲線であるという。
（１）前記素数ｒがｑの平方根（ｑ１／２）以上であり（ｒ≧ｑ１／２）、且つ、前記群Ｅ（Ｆｑ）の位数＃Ｅ（Ｆｑ）を割り切る（ｒ｜＃Ｅ（Ｆｑ））。
（２）前記埋め込み次数ｋは、底を２とする前記素数ｒの対数ｌｇｒを８で割った値（ｌｇｒ）／８より小さい（ｋ＜（ｌｇｒ）／８，ｌｇｒ＝ｌｏｇ２ｒ）。
【００３６】
なお、埋め込み次数（ｋ）は、ペアリングの像（μｒ）の集合（Ｌ）の離散対数問題の難易度を定める指標であるということもできる。また、ここで新たな指標としてρ値（ρ-value）を、以下の＜定義５＞で定義する、
＜定義５＞
ρ値：
前記定義体Ｆｑの位数ｑ、前記ｒ捩点の群Ｅ［ｒ］の素数位数ｒについて、ρ（Ｅ）＝ｌｏｇｑ／ｌｏｇｒを前記楕円曲線Ｅ／Ｆｑのρ値と定義する。なお、対数ｌｏｇｑおよびｌｏｇｒの底については、同じ値であれば任意の値でよいため、簡単のため省略する。
【００３７】
ここで、例えば、前記素数位数ｒを固定した場合、前記ρ値が大きくなるほど、前記定義体Ｆｑの位数ｑは大きくなる。すなわち、前記楕円曲線（Ｅ／Ｆｑ）の定義体（Ｆｑ）が肥大化することになる。したがって、前記ρ値は、前記楕円曲線Ｅ／Ｆｑの計算時間の指標とすることができる。
なお、前記ρ値の範囲は、１以上２以下である（１≦ρ（Ｅ）≦２）。すなわち、ペアリングに適した楕円曲線Ｅ／Ｆｑでは、前記素数位数ｒの最大値が前記位数ｑと等しいとすることができるため（ｑ＝ｒ）、前記ρ値は１以上であり（ρ（Ｅ）＝ｌｏｇｒ／ｌｏｇｒ＝１）、且つ、＜定義４＞により、前記位数ｑの最大値が前記素数位数ｒの２乗（ｒ２）となるため（ｑ１／２≦ｒより、ｑ≦ｒ２）、前記ρ値は２以下である（ρ（Ｅ）＝ｌｏｇｒ２／ｌｏｇｒ＝２）。
【００３８】
この結果、前記ペアリングに適した楕円曲線とするためには、前記楕円曲線Ｅ／Ｆｑの計算時間を可能な限り低減する必要があるため、前記ρ値を可能な限り１に近づけることが必要となる（ρ（Ｅ）≒１）。
また、他方で、前記部分群Ｅ［ｒ］は、楕円曲線離散対数問題を容易に解かれない程度にする必要があるため、前記素数位数ｒを大きい値にしなければならないという問題がある。この問題については、前記素数位数ｒのビット長（ビット数）をどの程度長くすれば、前記ペアリングを利用した公開鍵暗号が現在実用化されている共通鍵暗号（Symmetric key encryption scheme）と同等の強度（安全性）を得ることができるかを示すセキュリティ評価が知られており、前記セキュリティ評価に応じて前記素数位数ｒのビット数を決定することで一応の解決とすることができる。
【００３９】
なお、共通鍵暗号とは、暗号化と復号化とに用いる暗号鍵が同一である暗号をいい、後述する表１に示されたアルゴリズム（実用暗号系）が代表例である。また、前記共通鍵暗号の鍵（暗号鍵）は、前記公開鍵暗号の鍵（公開鍵、秘密鍵）と比べ、短いビット長で安全性を確保できることが知られている。
ここで、前記セキュリティ評価について、セキュリティレベルの対象となる共通鍵暗号のアルゴリズム（実用暗号系）、前記素数位数ｒのビット数（ｌｇｒ（ｌｏｇ２ｒ））、前記拡大体（Ｌ＝（Ｆｑ）ｋ）の位数ｑｋのビット数（ｌｇｑｋ＝ｋ×ｌｇｑ（ｌｏｇ２ｑ））、および前記埋め込み次数ｋについて（ρ値が１とほぼ等しい場合、又は、２とほぼ等しい場合）の対応関係を示す表を表１に示す。
【００４０】
【表１】
2008216493.tif 000003
【００４１】
したがって、前記素数位数ｒは、表１により、前記暗号鍵のビット数が８０ビットの共通鍵暗号のアルゴリズムであるＳＫＩＰＪＡＣＫと同等以上の安全性を確保するためには、少なくとも１６０ビット以上の素数を選ぶ必要があると考えられている。
なお、表１の前記埋め込み次数ｋは、＜定義４＞に基づいて算出されており、厳密に算出されている値ではない。しかし、前記埋め込み次数ｋは、表１により、前記暗号鍵のビット数が２５６ビットの共通鍵暗号のアルゴリズムであるＡＥＳ（Advanced Encryption Standard）と同等の安全性を確保し、且つ、ρ値を１に近づけるためには、最大でも３６程度に抑える必要があると考えることができる。なお、ＡＥＳは、暗号鍵のビット数を１２８ビット（ＡＥＳ−Ｓｍａｌｌ）、１９２ビット（ＡＥＳ−Ｍｅｄｉｕｍ）、２５６ビット（ＡＥＳ−Ｌａｒｇｅ）として使用することができるアルゴリズムである。
この結果、前記ペアリングに適した楕円曲線を生成するためには、前記埋め込み次数ｋを少なくとも４０より小さい値とし（ｋ＜４０）、前記楕円曲線Ｅ／Ｆｑを計算可能な程度とする必要があると考えられている。なお、前記埋め込み次数、前記ρ値、前記セキュリティ評価等については、非特許文献３に記載されており、公知である。
【００４２】
（楕円曲線の構成法（ＣＭ法））
ここで、前記超特異楕円曲線ではない前記楕円曲線Ｅ／Ｆｑ（以降、ordinaryな前記楕円曲線Ｅ／Ｆｑと記す）は、虚数乗法（ＣＭ（Complex Multiplication））を持つことが知られており、従来公知の楕円曲線の構成法であるＣＭ法（CM Method）によって生成することができる。
なお、虚数乗法については、例えば、ある楕円曲線Ｅ／Ｋ３（Ｅ：ｙ２＝ｘ３−ｘ）について考える。（ｘ，ｙ）∈Ｅならば、（−ｘ，ｉｙ）∈Ｅであり（ｉは虚数単位）、（ｘ，ｙ）|→（−ｘ，ｉｙ），Ｅ→Ｅで定義される写像は、自己準同型写像になる。すなわち、ＥからＥへの楕円曲線としての準同型写像になる。また、この自己準同型写像（（ｘ，ｙ）|→（−ｘ，ｉｙ），Ｅ→Ｅ）は、整数倍写像（例えば、整数ｎでｎ倍された写像）ではなく、複素数倍写像（例えば、複素数αでα倍された写像）である。前記楕円曲線Ｅ／Ｋ３が自己準同型写像として複素数倍写像を持つ場合、前記楕円曲線Ｅ／Ｋ３は、虚数乗法を持つという。なお、ある写像ｆが準同型写像であるとは、前記写像ｆについて、群をＧとし、前記群Ｇの元をｘ，ｙとし（ｘ，ｙ∈Ｇ）、前記写像ｆによる元ｘ，ｙの写像をｆ（ｘ），ｆ（ｙ）、とした場合、前記写像ｆによる元ｘ・ｙ（ｘ・ｙ∈Ｇ）の写像をｆ（ｘ・ｙ）＝ｆ（ｘ）・ｆ（ｙ）で示すことができることをいう。
【００４３】
また、Ｄを自然数とし（Ｄを１以上の整数とし）、有理数体をＱとし、前記有理数体Ｑ上で純虚数（−Ｄ）１／２（（−Ｄ）１／２＝ｉ×Ｄ１／２）により生成される拡大体をＱ（（−Ｄ）１／２）とした場合、前記拡大体Ｑ（（−Ｄ）１／２）を虚２次体という。すなわち、前記虚２次体Ｑ（（−Ｄ）１／２）は、前記有理数体Ｑの２次拡大体で、実数でない元を持つものをいい、例えば、ａｑ，ｂｑ∈Ｑとした場合に、ａｑ＋ｂｑ×（−Ｄ）１／２∈Ｑ（（−Ｄ）１／２）で示される。
前記虚２次体Ｑ（（−Ｄ）１／２）には、整数係数の多項式である類多項式ＰＤ（ｘ）が一意的に構成される。前記類多項式には、性質が同様であるＨｉｌｂｅｒｔ類多項式（Hilbert class polynomial）や、Ｗｅｂｅｒ類多項式（Weber class polynomial）がある。例えば、前記自然数Ｄを１９とし（Ｄ＝１９）、その前記Ｈｉｌｂｅｒｔ類多項式をＰ１９（ｘ）とした場合、Ｐ１９（ｘ）＝ｘ＋８８４７３６の様に一意に示すことができる。
従来公知の前記ＣＭ法は、前記Ｈｉｌｂｅｒｔ類多項式（ＰＤ（ｘ））を用いて楕円曲線を生成することができる。ここで、素数ｑを位数とする定義体Ｆｑ上定義される楕円曲線Ｅ／Ｆｑであり、且つ、前記楕円曲線Ｅ／Ｆｑ上の有理点の群Ｅ（Ｆｑ）の位数＃Ｅ（Ｆｑ）がＮとなる楕円曲線Ｅ／Ｆｑを生成する前記ＣＭ法のアルゴリズムを以下に例示する。
【００４４】
（ＣＭ法のアルゴリズム）
（１）素数ｑ、前記位数（元（有理点）の個数）Ｎ、前記トレースをｔとした場合、前記素数ｑおよび前記位数Ｎを選択し、ｔ＝ｑ＋１−Ｎを求める。
（２）２乗される数である平方数をｙ（ただし、ｙ＞０とする）、自然数をＤとした場合、４ｑ−ｔ２＝Ｄｙ２となる前記自然数Ｄおよび前記平方数ｙを求める。前記自然数Ｄおよび前記平方数ｙが見つからなければ（１）に戻り、前記素数ｑおよび前記位数Ｎを選択し直す。
（３）前記自然数Ｄに応じた前記Ｈｉｌｂｅｒｔ類多項式ＰＤ（ｘ）＝０の前記定義体Ｆｑ（Ｆｑ＝｛０，１，…，ｑ−１｝）上での解ｊ０（ｊ０∈Ｆｑ）を求める。すなわち、ＰＤ（ｘ）＝０の解ｘを前記素数ｑで割った剰余ｊ０を求める（ＰＤ（ｘ）≡０  （ｍｏｄｑ））。
【００４５】
（４）前記解ｊ０がｊ−不変量として得られる１個以上の楕円曲線Ｅ／Ｆｑ（Ｅ：ｙ２＝ｘ３＋ａｘ＋ｂ）のうち、前記位数＃Ｅ（Ｆｑ）＝Ｎとなる前記楕円曲線Ｅ／Ｆｑ（Ｅ：ｙ２＝ｘ３＋ａｘ＋ｂ）を出力する（生成する）。なお、ｊ−不変量とは、前記楕円曲線Ｅ／Ｆｑ（Ｅ：ｙ２＝ｘ３＋ａｘ＋ｂ）とした場合、前記判別式Ｄ１＝４ａ３＋２７ｂ２を用いて、
ｊ＝（１７２８×４ａ３）／Ｄ１
＝（１７２８×４ａ３）／（４ａ３＋２７ｂ２）
で定義される前記楕円曲線Ｅ／Ｆｑの一意的な値である。
したがって、ｊ０＝（１７２８×４ａ３）／（４ａ３＋２７ｂ２）を満たす前記楕円曲線Ｅ／Ｆｑの係数ａ，ｂ（ａ，ｂ∈Ｆｑ）を選択して得られた前記楕円曲線Ｅ／Ｆｑが前記位数＃Ｅ（Ｆｑ）＝Ｎ＝ｑ＋１−ｔであるか否かを判別すればよい。なお、前記ＣＭ法については、非特許文献１等に記載されており、公知である。
【００４６】
ここで、前記ＣＭ法の計算量は、Ｄ１／２の大きさに依存するため、実際に楕円曲線を生成する場合、前記自然数Ｄは、１０５以下に抑える必要があるとされている（Ｄ≦１０５）。
また、前記ＣＭ法における前記自然数Ｄは、ＣＭ判別式（虚数乗法判別式）といい、以下の＜定義６＞で定義される。なお、前記ＣＭ判別式Ｄについての定義は、文献等によっては、−ＤをＣＭ判別式としたりする等、多少の相違点を有する場合がある。
＜定義６＞
ＣＭ判別式：
位数ｑの定義体をＦｑ、前記定義体Ｆｑ上定義される楕円曲線をＥ／Ｆｑ、トレースをｔ、非負整数の定数４ｑ−ｔ２の平方因子（平方数の２乗）をｙ２、無平方因子（平方数でない方の数）をＤとした場合（Ｄｙ２＝４ｑ−ｔ２）、前記無平方因子Ｄを楕円曲線Ｅ／ＦｑのＣＭ判別式という。また、Ｄｙ２＝４ｑ−ｔ２を特にＣＭ方程式という。
【００４７】
（ペアリングに適した楕円曲線のパラメタの条件について）
したがって、表１に示されるような、埋め込み次数（ｋ）が６より大きく（前記超特異楕円曲線ではなく）、安全性が高い前記ordinaryな楕円曲線（Ｅ／Ｆｑ）を生成する場合、前記ordinaryな楕円曲線（Ｅ／Ｆｑ）が虚数乗法を持つことを利用した前記ＣＭ法が有用である。この結果、＜定義４＞で定義された前記ペアリングに適した楕円曲線の条件に、前記ＣＭ法で生成可能とするための条件を新たに加えることができる。
ここで、前記ペアリングに適した楕円曲線（ordinaryな楕円曲線）に必要なパラメタが、前記定義体Ｆｑの位数ｑ、前記群Ｅ［ｒ］の位数ｒ、前記トレースｔ、前記埋め込み次数ｋにより構成されるものとすると、前記パラメタの条件は、以下の＜定義７＞のように定義される。
【００４８】
＜定義７＞
ペアリングに適した楕円曲線のパラメタの条件：
前記定義体Ｆｑ上で定義された楕円曲線Ｅ／Ｆｑの有理点により構成される群をＥ（Ｆｑ）、前記群Ｅ（Ｆｑ）の位数を＃Ｅ（Ｆｑ）（＃Ｅ（Ｆｑ）＝ｑ＋１−ｔ）、前記ＣＭ判別式Ｄ、前記平方数としての自然数をｙとした場合、前記定義体Ｆｑの位数ｑ、前記部分群Ｅ［ｒ］の位数ｒ、前記トレースｔ、前記埋め込み次数ｋについて、以下の条件（１）〜（５）が成立する。
（１）前記定義体Ｆｑの位数ｑは、素数または素数冪（ｑ＝ｐｗ）である。
（２）前記部分群Ｅ［ｒ］の位数ｒは、素数である。
（３）前記部分群Ｅ［ｒ］の位数ｒは、前記群Ｅ（Ｆｑ）の位数＃Ｅ（Ｆｑ）を割り切る（ｒ｜＃Ｅ（Ｆｑ）、すなわち、ｒ｜ｑ＋１−ｔ）
（４）前記群Ｅ［ｒ］の位数ｒは、ｑｋ−１を割り切り（ｒ｜ｑｋ−１）、且つ、ｋより小さい自然数ｉ（１≦ｉ＜ｋ）についてはｒがｑｉ−１を割り切れない。
（５）前記定義体Ｆｑの位数ｑおよび前記トレースｔは、特定の自然数ｙおよび十分に小さい前記ＣＭ判別式Ｄ（Ｄ≦１０５）に対して、前記ＣＭ方程式が成立する。すなわち、Ｄｙ２＝４ｑ−ｔ２が成立する。
【００４９】
なお、＜定義７＞の条件（１）は、定義体が有限体であるための条件であり、条件（２），（３）は、前記ペアリングｅｒを計算可能とするために、前記楕円曲線Ｅ／Ｆｑが前記部分群Ｅ［ｒ］を有するための条件であり、条件（４）は、前記ペアリングｅｒの計算結果である前記像μｒが含まれる前記拡大体Ｌについて、前記拡大体Ｌの拡大次数が最小であるための条件であり、条件（５）は、ＣＭ法を使用可能とするための条件である。
なお、条件（５）における前記ＣＭ方程式については、条件（３）の条件を用いて、別の表現で示すことができる。すなわち、前記位数ｒは、前記位数＃Ｅ（Ｆｑ）を割り切るため（ｒ｜＃Ｅ（Ｆｑ））、前記位数＃Ｅ（Ｆｑ）は、ある整数ｈを用いて、前記位数ｒと前記整数ｈの積で示すことができる（ｈ×ｒ＝＃Ｅ（Ｆｑ）＝ｑ＋１−ｔ）。この結果、前記位数ｑは、ｑ＝ｔ−１−ｈ×ｒで示すことができ、前記ＣＭ方程式に代入することで、前記ＣＭ方程式は、Ｄｙ２＝４ｈ×ｒ−（ｔ−２）２と表現できる。すなわち、
Ｄｙ２＝４ｈ×ｒ−（ｔ−２）２
＝４（ｑ＋１−ｔ）−（ｔ２−４ｔ＋４）
＝４ｑ−ｔ２
が成立する。ここで、前記整数ｈをペアリングに適した楕円曲線の余因子（cofactor）と呼ぶこととする。
【００５０】
（円周ｋ等分多項式）
また、＜定義７＞の条件（４）は、円分体および円分多項式を用いてより簡潔に表現できる。
ここで、円分体とは、前記有理数体Ｑ上で１の原始冪根をζとした場合、前記１の原始冪根ζにより生成される前記有理数体Ｑの拡大体（２次拡大体）Ｑ（ζ）のことをいう。なお、１の原始冪根とは、任意の自然数ｎに対し、自然数ｎより小さい自然数ｉでｉ乗しても決して１にならず、ｎ乗して初めて１になるような１のｎ乗根のことである。また、前記自然数ｎを特定した場合、このような１のｎ乗根を１の原始ｎ乗根という。例えば、１の４乗根は１，−１，ｉ，−ｉと４個あるが、１の原始４乗根は、ｉ，−ｉの２個である。なお、前記有理数体Ｑ上で１の原始ｎ乗根をζｎとした場合、前記１の原始ｎ乗根ζｎにより生成される前記有理数体Ｑの拡大体Ｑ（ζｎ）をｎ次円分体という。
【００５１】
また、円分多項式とは、円周等分多項式とも呼ばれる１の冪根の最小多項式のことである。なお、前記１の原始ｎ乗根ζｎについて、ｘ−ζｎを全て乗算したものをｎ次の円周等分多項式（円周ｎ等分多項式）といい、Φｎ（ｘ）で表現される。
ここで、１の原始ｋ乗根ζｋについて考える。前記１の原始ｋ乗根ζｋの乗数をａとし（ａは１からｋの整数）、ａがｋの約数ではない、すなわち、ａとｋと互いに素な場合（ｇｃｄ（ａ，ｋ）＝１）、前記１の原始ｋ乗根ζｋのａｋ乗の値ζｋａも１の原始ｋ乗根であることが知られている。したがって、円周ｋ等分多項式をΦｋ（ｘ）とした場合、円周ｋ等分多項式Φｋ（ｘ）は以下の数１で与えられる。
【００５２】
【数１】
2008216493.tif 000004
【００５３】
ここで、＜定義７＞の条件（３）、すなわち、前記位数＃Ｅ（Ｆｑ）が前記余因子ｈと前記位数ｒの積で示すことができ（＃Ｅ（Ｆｑ）＝ｈ×ｒ）、且つ、前記位数ｒが前記埋め込み次数ｋを割り切れないとした場合、前記楕円曲線Ｅ／Ｆｑが前記位数ｒに関する前記埋め込み次数ｋを持つことと、合同式Φｋ（ｔ−１）≡０（ｍｏｄｒ）を満たすこと、すなわち、円周ｋ等分多項式Φｋ（ｘ）に、ｘ＝ｔ−１を代入した値、Φｋ（ｔ−１）を前記位数ｒで割った剰余が０であることは同値であることが知られている（非特許文献３参照）。
したがって、＜定義７＞の条件（４）は、以下の条件（４′）に置き換えることができる。
（４′）前記群Ｅ［ｒ］の位数ｒは、円周ｋ等分多項式Φｋ（ｘ）に、ｘ＝ｔ−１を代入した値、Φｋ（ｔ−１）を割り切る（ｒ｜Φｋ（ｔ−１））。
【００５４】
（ペアリングに適した楕円曲線のファミリについて）
＜定義７＞により、前記ペアリングに適した楕円曲線のパラメタの条件が整理されたが、実際に前記ordinaryな楕円曲線（Ｅ／Ｆｑ）を生成する場合、表１の前記セキュリティ評価に応じて、安全性の高さ（セキュリティレベルの高さ）、すなわち、前記パラメタのうち、前記定義体Ｆｑの位数ｑ、前記部分群Ｅ［ｒ］の位数ｒのビット数を、ある程度調節できるようにしたほうが都合がよい。これに関しては、前記パラメタのうち、前記定義体Ｆｑの位数ｑ、前記部分群Ｅ［ｒ］の位数ｒ、前記トレースｔについて、自然数の変数をｘとして前記変数ｘの多項式として取り扱うことで解決する。すなわち、前記定義体Ｆｑの位数ｑの多項式である定義体位数多項式（拡張位数）ｑ（ｘ）、前記部分群Ｅ［ｒ］の位数ｒの多項式である部分群位数多項式（拡張部分群位数）ｒ（ｘ）、前記トレースｔの多項式であるトレース多項式（拡張トレース）ｔ（ｘ）と表現し、変数ｘを変化させて所定のビット数となるよう調節できるようにすることができる。なお、この方法については、宮地、中林、高野による方法、Ｂａｒｒｅｔｏ，Ｌｙｎｎ，Ｓｃｏｔｔによる方法、ＳｃｏｔｔとＢａｒｒｅｔｏによる方法、ＢｒｅｚｉｎｇとＷｅｎｇによる方法（Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法）等が提案されており、公知である（非特許文献３参照）。
【００５５】
なお、前記多項式ｑ（ｘ），ｒ（ｘ），ｔ（ｘ）は、前記ペアリングに適した楕円曲線のファミリ（family of pairing-friendly elliptic curves）と呼ばれる。前記ファミリの構成に関しては、＜定義７＞を満たす前記パラメタを望んだビット数で生成できるか否かという問題がある。したがって、前記多項式ｑ（ｘ），ｒ（ｘ）については、共に無数の素数を生成できることが要求される。
ここで、素数の生成に関しては、ＢｏｕｎｉａｋｏｗｓｋｉとＳｃｈｉｎｚｅｌらにより、ある有名が予想が提案されている（非特許文献３参照）。すなわち、整数体をＺとし、前記整数体Ｚ上の既約多項式（整数体Ｚ上ではそれ以上因数分解できない多項式）をｐｚ（ｘ）とした場合（ｐｚ（ｘ）∈Ｚ［ｘ］で表現される）、前記既約多項式ｐｚ（ｘ）に任意のｘ（ｘ∈Ｚ）を与えたときの全ての値が互いに素であれば（ｇｃｄ（｛ｐｚ（ｘ）｜ｘ∈Ｚ｝）＝１で表現される）、前記既約多項式ｐｚ（ｘ）は無数の素数を生成できるという予想がある。この予想を利用して素数を生成するための素数生成系を、以下の＜定義８＞のように定義する。
【００５６】
＜定義８＞
素数生成系：
整数の変数をｘ（ｘ∈Ｚ）、有理数体Ｑ上の多項式をｐｑ（ｘ）とし、ｐｑ（ｘ）∈Ｑ［ｘ］で表現される場合、以下の（１）〜（３）の条件を全て満たす場合、多項式ｐｑ（ｘ）は、素数生成系である。
（１）ｐｑ（ｘ）は、前記有理数体Ｑ上で既約である。すなわち、前記有理数体Ｑ上の既約多項式である。
（２）任意の変数ｘにおいて（ｘ∈Ｚ）、ｐｑ（ｘ）が整数となる（ｐｑ（ｘ）∈Ｚ）。
（３）前記既約多項式ｐｑ（ｘ）に任意の前記変数ｘを与えたときの全ての値が互いに素である（ｇｃｄ（｛ｐｑ（ｘ）｜ｘ∈Ｚ｝）＝１）。
【００５７】
また、＜定義８＞に基づいて、前記ペアリングに適した楕円曲線のファミリ（多項式ｑ（ｘ），ｒ（ｘ），ｔ（ｘ））は、以下の＜定義９＞で定義される。
＜定義９＞
ペアリングに適した楕円曲線のファミリ（ファミリ構成条件）：
前記多項式ｑ（ｘ），ｒ（ｘ），ｔ（ｘ）を前記有理数体Ｑ上の多項式とした場合（ｑ（ｘ），ｒ（ｘ），ｔ（ｘ）∈Ｑ［ｘ］）、埋め込み次数ｋと前記ＣＭ判別式（非平方因子で正の整数）Ｄとが与えられ、以下に示す（１）〜（５）の条件を全て満たすならば、前記多項式ｑ（ｘ），ｒ（ｘ），ｔ（ｘ）は、埋め込み次数ｋと前記ＣＭ判別式Ｄを持つペアリングに適した楕円曲線のファミリである。
（１）前記定義体位数多項式ｑ（ｘ）は、素数生成系である。
（２）前記部分群位数多項式ｒ（ｘ）は、素数生成系である。
（３）前記部分群位数多項式ｒ（ｘ）は、ｑ（ｘ）＋１−ｔ（ｘ）を割り切る、すなわち、因数分解できる（ｒ（ｘ）｜ｑ（ｘ）＋１−ｔ（ｘ））。
（４）前記部分群位数多項式ｒ（ｘ）は、Φｋ（ｔ（ｘ）−１）を割り切る（ｒ｜Φｋ（ｔ（ｘ）−１））。なお、Φｋ（ｔ（ｘ）−１）は、円周ｋ等分多項式をΦｋ（Ｘ）とした場合、Ｘ＝ｔ（ｘ）−１を代入した多項式である。
（５）前記ＣＭ方程式を拡張した方程式をＤｙ２＝４ｑ（ｘ）−（ｔ（ｘ））２とした場合、Ｄｙ２＝４ｑ（ｘ）−（ｔ（ｘ））２には、無限の正整数の解（ｘ，ｙ）を有する（（ｘ，ｙ）∈Ｚ×Ｚ）。
【００５８】
なお、ペアリングに適した楕円曲線のファミリは、完全なファミリ（complete family）、sparseなファミリ（sparse family）、潜在的なファミリ（potential family）のいずれかに大別される。前記完全なファミリ、前記潜在的なファミリ、前記sparseなファミリについては、以下の＜定義１０＞で定義される。なお、これらのファミリについては、非特許文献３に記載されており、公知である。
＜定義１０＞
完全なファミリ、sparseなファミリ、潜在的なファミリ：
（１）＜定義９＞の条件（１）〜（５）を全て満たすファミリは、完全なファミリであり、それ以外は、全てsparseなファミリである。
（２）＜定義９＞の条件（１）以外、すなわち、条件（２）〜（５）を全て満たすファミリは、潜在的なファミリである。
【００５９】
なお、前記ペアリングに適した楕円曲線のファミリについて問題となるのは、＜定義１０＞の条件（１）、すなわち、前記完全なファミリであるか否かについての問題であり、この問題を緩和するため、＜定義１０＞の条件（２）、すなわち、前記潜在的なファミリが定義されている。ここで、前記楕円曲線（Ｅ／Ｆｑ）を生成するためには、＜定義７＞の条件（１）、すなわち、前記定義体Ｆｑの位数ｑは、素数または素数冪（ｑ＝ｐｗ（ｐは素数））であることが必要である。したがって、＜定義９＞の条件（１），（２）、すなわち、前記定義体位数多項式ｑ（ｘ）が素数となり、且つ、前記部分群位数多項式ｒ（ｘ）が素数となる前記変数ｘ（ｘ∈Ｚ）が無数に存在すればよいが、実際にこの条件を達成しているか否かについては、別途確認する必要がある。
【００６０】
また、＜定義９＞の条件（３）、すなわち、前記部分群位数多項式ｒ（ｘ）は、前記群Ｅ（Ｆｑ）の位数＃Ｅ（Ｆｑ）を割り切る（ｒ（ｘ）｜＃Ｅ（Ｆｑ））という条件において、仮に、ｒ（ｘ）＝ｑ（ｘ）＋１−ｔ（ｘ）となる前記多項式ｑ（ｘ），ｒ（ｘ）が生成可能な前記変数ｘが存在すれば、前記ρ値が限りなく１に近い値であり（ρ（Ｅ）≒１）、前記ペアリングに最適な楕円曲線を生成したということになるが、そのような前記変数ｘが特定できることは極めて稀である。
ここで、前記ρ値の評価に関連して、前記ファミリの評価についての便宜を図るために、前記ρ値を拡大解釈した前記ファミリにおけるρ値を、以下の＜定義１１＞で定義する。
【００６１】
＜定義１１＞
ペアリングに適した楕円曲線のファミリにおけるρ値：
前記ペアリングに適した楕円曲線のファミリにおけるρ値をρ（ｔ，ｒ，ｑ）とした場合、前記ペアリングに適した楕円曲線のファミリにおけるρ値は以下の数２、すなわち、前記定義体位数多項式ｑ（ｘ）の次数（ｄｅｇ（ｑ（ｘ）））を前記部分群位数多項式ｒ（ｘ）の次数（ｄｅｇ（ｒ（ｘ）））で割ったときの剰余で与えられる。
【００６２】
【数２】
2008216493.tif 000005
【００６３】
なお、＜定義１１＞で定義された前記ペアリングに適した楕円曲線のファミリにおけるρ値（ρ（ｔ，ｒ，ｑ））は、＜定義５＞で定義された前記ρ値（ρ（Ｅ））とは異なる。すなわち、ρ（Ｅ）＝１の場合には、必ず前記群Ｅ（Ｆｑ）の位数＃Ｅ（Ｆｑ）が素数となり（ｑ＝ｒ）、前記ペアリングに最適な楕円曲線を生成できることになるが、ρ（ｔ，ｒ，ｑ）＝１の場合には、前記位数＃Ｅ（Ｆｑ）が（＃Ｅ（Ｆｑ）＝ｈ×ｒ）、ｈ≠１でない前記余因子ｈを持つ可能性があり、前記ペアリングに最適な楕円曲線を常に生成できる訳ではない。
【００６４】
（ＢｒｅｚｉｎｇとＷｅｎｇによるペアリングに適したファミリの構成法について）
前記完全なファミリを構成するためには、＜定義９＞の条件（１）〜（５）を全て満たさなければならない。すなわち、Ｄｙ２＝４ｑ（ｘ）−（ｔ（ｘ））２を満たす多項式ｔ（ｘ），ｒ（ｘ），ｑ（ｘ）および前記ＣＭ判別式Ｄを得ることができた場合、無限の正整数の解（ｘ，ｙ）を有するか否かを確認する必要がある。
ここで、前記完全なファミリの構成法として、従来公知の前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法がある。前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法は、前記平方数ｙを前記変数ｘの多項式として表現した平方数多項式ｙ（ｘ）として扱い、任意の変数ｘに対して、前記平方数多項式ｙ（ｘ）の値が計算可能であることを、無限の正整数の解（ｘ，ｙ）を有する根拠として前記完全なファミリを構成する。
【００６５】
前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法において、前記多項式ｒ（ｘ），ｔ（ｘ），ｑ（ｘ），ｙ（ｘ）は、以下の（１）〜（４）で示すように選択される。ここで、前記余因子ｈを前記変数ｘの多項式として表現した余因子多項式ｈ（ｘ）とし、＜定義９＞の条件（５）の拡張されたＣＭ方程式を、Ｄ（ｙ（ｘ））２＝４ｑ（ｘ）−（ｔ（ｘ））２＝４ｈ（ｘ）ｒ（ｘ）−（ｔ（ｘ）−２）２として考える。
（１）部分群位数多項式ｒ（ｘ）について：
まず、前記埋め込み次数ｋおよび前記ＣＭ判別式（非平方因子）Ｄの各値を固定する。次に、前記有理数体Ｑの代数的閉法をＱ′とし、前記代数的閉包Ｑ′上の１の原始ｋ乗根をζｋとし（ｋは埋め込み次数を固定したときの値）、前記１の原始ｋ乗根ζｋを含む代数体をＫとする。この場合、前記部分群位数多項式ｒ（ｘ）は、前記代数体Ｋが（−Ｄ）１／２を元として含み、且つ、前記代数体Ｋを以下の数３で与えられることが可能な多項式が選択される。なお、前記部分群位数多項式ｒ（ｘ）は、整数係数の多項式である（ｒ（ｘ）∈Ｚ［ｘ］⊂Ｑ［ｘ］）。
【００６６】
【数３】
2008216493.tif 000006
【００６７】
ここで、代数体とは、ある体をＦとし、前記体Ｆの代数的閉包をＦ′とした場合、前記代数的閉包をＦ′の部分体であり、且つ、前記体Ｆの有限次代数拡大体（有限の値を次数とする代数拡大体）のことをいう。また、代数拡大体とは、前記体Ｆの元を係数とする代数方程式ｆ（ｘ）について、ｆ（ｘ）＝０を満たす全ての解が元として含まれる前記体Ｆの拡大体のことをいう。
したがって、前記代数体Ｋは、前記有理数体Ｑ上の全ての多項式（Ｑ［ｘ］）のうち、前記部分群位数多項式ｒ（ｘ）で因数分解された多項式の全ての解と、前記１の原始ｋ乗根ζｋと、（−Ｄ）１／２とを元として含む前記有理数体Ｑの拡大体であるといえる（ζｋ，（−Ｄ）１／２∈Ｋ）。
【００６８】
（２）トレース多項式ｔ（ｘ）について：
前記トレース多項式ｔ（ｘ）は、＜定義９＞の条件（４）および数１から、ｔ（ｘ）|→ζｋ＋１と表現できる（ｔ（ｘ）∈Ｑ［ｘ］）。すなわち、前記円周ｋ等分多項式Φｋ（Ｘ）にＸ＝ｔ（ｘ）−１を代入した値Φｋ（ｔ（ｘ）−１）は、前記部分群位数多項式ｒ（ｘ）によって因数分解可能であり（ｒ（ｘ）｜Φｋ（ｔ（ｘ）−１））、前記値Φｋ（ｔ（ｘ）−１）についての合同式として、Φｋ（ｔ（ｘ）−１）≡０  （ｍｏｄｒ（ｘ））が表現できる。なお、前記埋め込み次数ｋと互いに素な自然数をａ，ｂ等（ａ＜ｋ，ｂ＜ｋ，…）とした場合（ｇｃｄ（ａ，ｋ）＝ｇｃｄ（ｂ，ｋ）＝１，…）、
Φｋ（ｔ（ｘ）−１）
＝（ｔ（ｘ）−１−ζｋ）（ｔ（ｘ）−１−ζｋａ）…（ｔ（ｘ）−１−ζｋｂ）
が成立する。ここで、代数体Ｋに含まれる元は前記１の原始ｋ乗根ζｋであるため、ｔ（ｘ）−１−ζｋは代数体Ｋ上の多項式である。また、前記合同式Φｋ（ｔ（ｘ）−１）≡０  （ｍｏｄｒ（ｘ））が成立するため、前記代数体Ｋ上でｔ（ｘ）−１−ζｋ＝０、すなわち、ｔ（ｘ）＝ζｋ＋１（ｔ（ｘ）|→ζｋ＋１）となることは明らかである。この結果、前記トレース多項式ｔ（ｘ）は、ζｋ＋１についての代数体Ｋ上の多項式表現として選択される。
【００６９】
（３）前記平方数多項式ｙ（ｘ）について：
前記代数体Ｋは、（−Ｄ）１／２を元として含むため、＜定義９＞の条件（５）の拡張されたＣＭ方程式、すなわち、
Ｄ（ｙ（ｘ））２＝４ｑ（ｘ）−（ｔ（ｘ））２
＝４ｈ（ｘ）ｒ（ｘ）−（ｔ（ｘ）−２）２
は、前記代数体Ｋ上で因数分解可能である。すなわち、
Ｄ（ｙ（ｘ））２＝４ｈ（ｘ）ｒ（ｘ）−（ｔ（ｘ）−２）２より、
（ｔ（ｘ）−２）２＋Ｄ（ｙ（ｘ））２＝４ｈ（ｘ）ｒ（ｘ）、
（ｔ（ｘ）−２＋ｙ（ｘ）×（−Ｄ）１／２）（ｔ（ｘ）−２−ｙ（ｘ）×（−Ｄ）１／２）＝４ｈ（ｘ）ｒ（ｘ）
が成立する。また、Ｋ上ではｒ（ｘ）＝０であるため、前記多項式ｔ（ｘ），ｙ（ｘ）についての合同式として、
（ｔ（ｘ）−２＋ｙ（ｘ）×（−Ｄ）１／２）（ｔ（ｘ）−２−ｙ（ｘ）×（−Ｄ）１／２）≡０  （ｍｏｄｒ（ｘ））
が表現できる。
【００７０】
ここで、ｔ（ｘ）|→ζｋ＋１であることを利用し、ｔ（ｘ）＝ζｋ＋１を代入すると、前記合同式は、
（ζｋ＋１−２＋ｙ（ｘ）×（−Ｄ）１／２）（ζｋ＋１−２−ｙ（ｘ）×（−Ｄ）１／２）≡０  （ｍｏｄｒ（ｘ））
と表現できる。したがって、ｙ（ｘ）＝±（ζｋ＋１−２）／（−Ｄ）１／２であれば、合同式
（ζｋ＋１−２＋ｙ（ｘ）×（−Ｄ）１／２）（ζｋ＋１−２−ｙ（ｘ）×（−Ｄ）１／２）≡０  （ｍｏｄｒ（ｘ））
が成立する。この結果、前記平方数多項式ｙ（ｘ）は、（ζｋ＋１−２）／（−Ｄ）１／２についての代数体Ｋ上の多項式表現として選択される（ｙ（ｘ）∈Ｑ［ｘ］）。
（４）定義体位数多項式ｑ（ｘ）について：
前記定義体位数多項式ｑ（ｘ）は、＜定義９＞の条件（５）の拡張されたＣＭ方程式、すなわち、Ｄ（ｙ（ｘ））２＝４ｑ（ｘ）−（ｔ（ｘ））２から、
ｑ（ｘ）＝（（ｔ（ｘ））２＋Ｄ（ｙ（ｘ））２）／４
が選択される（ｑ（ｘ）∈Ｑ［ｘ］）。
【００７１】
なお、（１）〜（４）の前記多項式ｒ（ｘ），ｔ（ｘ），ｙ（ｘ），ｑ（ｘ）を選択する方法は、ＣｏｃｋｓとＰｉｎｃｈによって考案されたＣｏｃｋｓ−Ｐｉｎｃｈ法（非特許文献３参照）を前記ファミリの構成法として拡張した方法である。また、Ｂａｒｒｅｔｏ，Ｌｙｎｎ，Ｓｃｏｔｔによる方法も、前記Ｃｏｃｋｓ−Ｐｉｎｃｈ法を拡張した方法として提案されているが（非特許文献３参照）、ＢｒｅｚｉｎｇとＷｅｎｇとが前記完全なファミリの構成法としてアルゴリズムの原型まで提案していたため、前記Ｃｏｃｋｓ−Ｐｉｎｃｈ法を拡張した方法は一般的にＢｒｅｚｉｎｇ−Ｗｅｎｇ法と呼ばれることになった。また、これにより、前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法は、拡張Ｃｏｃｋｓ−Ｐｉｎｃｈ法と呼ばれることがある。
ここで、前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムの原型を以下の（１）〜（５）で示す。
【００７２】
（Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズム）
（１）前記１の原始ｋ乗根ζｋおよび（−Ｄ）１／２（ＤはＣＭ判別式）とを元に持つ前記代数体Ｋを選択する。
（２）前記代数体Ｋが数３となる条件を満たす前記部分群位数多項式（既約多項式）ｒ（ｘ）を選択する（ｒ（ｘ）∈Ｚ［ｘ］）。なお、前記既約多項式ｒ（ｘ）は、モニック（多項式の最高次の係数が１）である必要はない。
（３）前記代数体Ｋの元であるζｋ＋１（ζｋ＋１∈Ｋ）に対応する多項式として、前記トレース多項式ｔ（ｘ）を選択する（ｔ（ｘ）∈Ｑ［ｘ］）。
【００７３】
（４）（ζｋ＋１）／（−Ｄ）１／２に対応する多項式として、前記平方数多項式ｙ（ｘ）を計算する（ｙ（ｘ）∈Ｑ［ｘ］）。なお、（−Ｄ）１／２に対応する多項式をｓ（ｘ）とした場合、仮に前記多項式ｓ（ｘ）が計算されていれば、
ｙ（ｘ）≡（ｔ（ｘ）−２）×ｓ（ｘ）／Ｄ  （ｍｏｄｒ（ｘ））
を満たす多項式ｙ（ｘ）を選択する。
なお、
ｙ（ｘ）≡（ｔ（ｘ）−２）×ｓ（ｘ）／Ｄ  （ｍｏｄｒ（ｘ））
および、
ｓ（ｘ）|→（−Ｄ）１／２（ｓ（ｘ）＝（−Ｄ）１／２）
が成立する場合、
ｙ（ｘ）≡（ｔ（ｘ）−２）×（−Ｄ）１／２／（−（−Ｄ）１／２×２）
≡−（ｔ（ｘ）−２）／（−Ｄ）１／２）  （ｍｏｄｒ（ｘ））
が成立する。したがって、前記代数体Ｋ上で
ｙ（ｘ）＝−（ζｋ＋１−２）／（−Ｄ）１／２
となり、
（ζｋ＋１−２＋ｙ（ｘ）×（−Ｄ）１／２）（ζｋ＋１−２−ｙ（ｘ）×（−Ｄ）１／２）≡０  （ｍｏｄｒ（ｘ））
が成立するため、前記多項式ｓ（ｘ），ｔ（ｘ）から前記平方数多項式ｙ（ｘ）が選択可能であることは明らかである。
（５）定義体位数多項式ｑ（ｘ）を（（ｔ（ｘ））２＋Ｄ（ｙ（ｘ））２）／４から計算する（ｑ（ｘ）∈Ｑ［ｘ］）。
【００７４】
前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムで得られた前記多項式ｑ（ｘ），ｒ（ｘ）が共に素数生成系であれば、前記多項式ｔ（ｘ），ｒ（ｘ），ｑ（ｘ）は、前記埋め込み次数ｋ、前記ＣＭ判別式Ｄを持つ前記完全なファミリである。
なお、前記完全なファミリにおけるρ値（ρ（ｔ，ｒ，ｑ））は、前記トレース多項式ｔ（ｘ）の次数（ｄｅｇ（ｔ（ｘ）））と前記平方数多項式ｙ（ｘ）の次数（ｄｅｇ（ｙ（ｘ）））のうちの最大値を２倍した値、すなわち、
２×ｍａｘ｛ｄｅｇ（ｔ（ｘ）），ｄｅｇ（ｙ（ｘ））｝
を、前記部分群位数多項式（既約多項式）ｒ（ｘ）の次数（ｄｅｇ（ｒ（ｘ）））で割ったときの剰余で与えられることが知られている。すなわち、
ρ（ｔ，ｒ，ｑ）＝２×ｍａｘ｛ｄｅｇ（ｔ（ｘ）），ｄｅｇ（ｙ（ｘ））｝／ｄｅｇ（ｒ（ｘ））
が成立する。また、前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムで得られた前記完全なファミリにおける前記ρ値（ρ（ｔ，ｒ，ｑ））は、１より大きく２より小さくなる場合がほとんどであるが、前記ρ値が１となる場合も極めて稀に存在する（ρ（ｔ，ｒ，ｑ）＝１）。
【００７５】
（代数体Ｋを定義する既約多項式ｒ（ｘ）を選択する方法について）
前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムで前記完全なファミリを構成するためには、選択された前記部分群位数多項式ｒ（ｘ）により、前記代数体Ｋが元ζｋ，（−Ｄ）１／２を有する（ζｋ，（−Ｄ）１／２∈Ｋ）ことが必要となる（ζｋ，（−Ｄ）１／２∈Ｋ）。すなわち、ζｋ，（−Ｄ）１／２∈Ｋを満たす前記既約多項式ｒ（ｘ）を選択しなければならないという問題がある。この問題について、ＢｒｅｚｉｎｇとＷｅｎｇは、あるアイデアを提供している。まず、前記埋め込み次数ｋ、１の原始ｋ乗根をζｋ、前記有理数体Ｑのｋ次円分体Ｑ（ζｋ）、円周ｋ等分多項式をΦｋ（Ｘ）とする。ここで、前記代数体Ｋが前記ｋ次円分体Ｑ（ζｋ）を含む拡大体（代数拡大体）であれば（Ｑ（ζｋ）⊆Ｋ）、前記代数体Ｋが前記１の原始ｋ乗根ζｋを元として含むことになる（ζｍｗ＝ζｋ）。また、前記代数体Ｋが前記ｍ次円分体Ｑ（ζｍ）を含む場合、前記代数体Ｋは、以下の数４の条件で純虚数（例えば（−１）１／２）を元として含むことが知られている。
【００７６】
【数４】
2008216493.tif 000007
【００７７】
なお、奇素数とは２以外の素数である。また、平方剰余記号については、例えば、素数（奇素数）をｐ、前記素数ｐと互いに素な整数をａ（ｇｃｄ（ａ，ｐ）＝１）とした場合を考える。ある変数をｘとし、ｘ２≡ａ  （ｍｏｄｐ）で示された合同式について、前記変数ｘの平方数に前記素数ｐで割った剰余がａとなる前記変数ｘが存在すれば（合同式に解があれば）、前記整数ａを前記素数ｐの平方剰余といい、 存在しなければ（合同式に解がなければ）、前記整数ａを前記素数ｐの平方非剰余という。また、この場合、前記平方剰余記号を（ａ／ｐ）とすると、前記平方剰余記号（ａ／ｐ）は、前記整数ａが平方剰余ならば＋１となり（（ａ／ｐ）＝＋１）、前記整数ａが平方剰余ならば−１となる値のことをいう（（ａ／ｐ）＝−１）。なお、仮に前記素数ｐと前記整数ａとが等しい場合（ｐ＝ａ）、前記平方剰余記号（ａ／ｐ）の値は０となる（（ａ／ｐ）＝０）。
【００７８】
ここで、前記１の原始ｋ乗根ζｋの前記代数体Ｋ上での多項式表現をｕ（ｘ）とし、前記円周ｋ等分多項式Φｋ（Ｘ）について、Ｘ＝ｕ（ｘ）の代入を行った多項式をΦｋ（ｕ（ｘ））とした場合、＜定義９＞の条件（４）より、ｒ（ｘ）は、前記多項式Φｋ（ｕ（ｘ））を因数分解可能でなければならない。
したがって、例えば、ある既約多項式をｒ１（ｘ），ｒ２（ｘ）とし、前記多項式Φｋ（ｕ（ｘ））を、Φｋ（ｕ（ｘ））＝ｒ１（ｘ），ｒ２（ｘ）で表現できる場合、前記部分群位数多項式ｒ（ｘ）は、既約多項式ｒ１（ｘ），ｒ２（ｘ）のいずれかを選択でき、前記トレース多項式ｔ（ｘ）は、例えば、ｔ（ｘ）＝ｕ（ｘ）＋１として得ることができる。すなわち、前記多項式ｒ（ｘ），ｔ（ｘ）が同時に選択できる。この結果、因数分解可能な前記多項式Φｋ（ｕ（ｘ））が生成できれば、前記多項式ｒ（ｘ），ｔ（ｘ）を選択でき、他の多項式ｙ（ｘ），ｑ（ｘ）を前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムで計算できる。なお、前記多項式ｕ（ｘ）は、前記トレース多項式ｔ（ｘ）と同一視することができ、前記トレース多項式ｔ（ｘ）の代理的に使用されているため（ｔ（ｘ）＝ｕ（ｘ）＋１）、トレース代理多項式と呼ぶこととする。
【００７９】
しかしながら、因数分解可能な前記多項式Φｋ（ｕ（ｘ））は、実際には稀にしか存在しない。この結果、この方法によって得られた前記完全なファミリを、前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法上の散在的（sporadic）なファミリと呼ばれている。
なお、前記散在的なファミリについて、Ｇａｌｂｒａｉｔｈ、Ｍｃｋｅｅ、Ｖａｌｅｎcａは、前記円周ｋ等分多項式Φｋ（Ｘ）を４次多項式、前記トレース代理多項式ｕ（ｘ）を２次多項式、前記多項式Φｋ（ｕ（ｘ））を８次多項式として因数分解可能な前記多項式Φｋ（ｕ（ｘ））が存在するか否かを解析した。
ここで、前記円周ｎ等分多項式をΦｎ（ｘ）とし、ｎの約数である整数をｗとした場合（ｗ｜ｎ）、前記円周ｎ等分多項式Φｎ（ｘ）は、ｎが１ならば（ｎ＝１）、Φ１（ｘ）＝ｘ−１であり、ｎが２以上ならば（ｎ≧２）、以下の数５によって帰納的に得られる多項式である。
【００８０】
【数５】
2008216493.tif 000008
【００８１】
したがって、前記円周ｎ等分多項式は、ｎが２以上の場合、Φ２（ｘ）＝ｘ＋１、Φ３（ｘ）＝ｘ２＋ｘ＋１、…と順番に求めてゆくことで計算できる。また、前記円周ｎ等分多項式Φｎ（ｘ）の次数は、オイラー関数φ（ｎ）により得られることが知られている。
ここで、オイラー関数（Ｅｕｌｅｒのφ関数とも呼ばれる）φ（ｎ）とは、１からｎまでの正整数のうち互いに素な値の個数をいう。例えば、ｎが６の場合（ｎ＝６）、１から６までの正整数で互いに素なのは１と５のみであるため、φ（６）＝２である。
したがって、前記円周ｋ等分多項式Φｋ（Ｘ）が４次多項式となるのは、φ（ｋ）＝４となるｎ＝５，８，１０，１２の場合である。すなわち、
Φ５（Ｘ）＝Φ１０（Ｘ）＝Ｘ４＋Ｘ３＋Ｘ２＋Ｘ＋１，
Φ８（Ｘ）＝Ｘ４＋１，
Φ１２（Ｘ）＝Ｘ４−Ｘ２＋１
が成立する。
【００８２】
Ｇａｌｂｒａｉｔｈらの解析の結果、因数分解可能な前記多項式Φｋ（ｕ（ｘ））が得られる前記トレース代理多項式ｕ（ｘ）は、ｋ＝８の場合には存在せず、ｋ＝５，１０，１２の場合には存在することが判明した。特に、ｋ＝１２の場合には、前記代数体Ｋの元として（−１）１／２，（−３）１／２を有し（（−１）１／２，（−３）１／２∈Ｑ（ζ１２）、Ｑ（ζ１２）⊆Ｋ）、且つ、多項式Φ１２（ｕ（ｘ））が因数分解可能な前記トレース代理多項式ｕ（ｘ）が存在し、前記トレース代理多項式ｕ（ｘ）を実際に得ることができた。
なお、ｋ＝５，１０の場合には、多項式Φ５（ｕ（ｘ）），Φ１０（ｕ（ｘ））が因数分解可能な前記トレース代理多項式ｕ（ｘ）が存在しないことは明らかである。すなわち、Φ５（Ｘ）＝Φ１０（Ｘ）であるため、５次円分体Ｑ（ζ５）と１０次円分体Ｑ（ζ１０）とが等しく（Ｑ（ζ５）＝Ｑ（ζ１０））、且つ、数４から前記円分体Ｑ（ζ５），Ｑ（ζ１０）が共に前記虚２次体（Ｑ（（−Ｄ）１／２））を部分体として含まない、すなわち、代数体Ｋが（−Ｄ）１／２となる元を含まないことが明らかであるためである。
【００８３】
さらに、前記多項式Φ１２（ｕ（ｘ））が因数分解可能な前記トレース代理多項式ｕ（ｘ）のうち、ｕ（ｘ）＝６ｘ２については、ＢａｒｒｅｔｏとＮａｅｈｒｉｇにより、前記埋め込み次数ｋが１２、前記ＣＭ判別式Ｄが３の場合、前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法上の散在的なファミリを構成することに成功した。このとき、得られたファミリの前記ρ値（ρ（ｔ，ｒ，ｑ））は、１であった（ρ（ｔ，ｒ，ｑ）＝１）。この結果、前記散在的なファミリは、前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法で生成可能であり、且つ、前記ρ値が１に近い値を持つ有力なファミリとなると考えられるようになった。なお、Ｇａｌｂｒａｉｔｈ、Ｍｃｋｅｅ、Ｖａｌｅｎcａの解析、ＢａｒｒｅｔｏとＮａｅｈｒｉｇの前記散在的なファミリの構成については、非特許文献３に記載されており、公知である。
【００８４】
【特許文献１】特開２００６−１７８１２５号公報（「０００２」〜「０００９」
【非特許文献１】宮地充子、菊池浩明編著、「情報セキュリティ」、オーム社、２００３年１０月、ｐ．３９−４５，５７−６２，８７−１０２
【非特許文献２】R.Balasubramanian、N.Koblitz著、「The Improbability That an Elliptic Curve Has Subexponential Discrete Log Problem under the Menezes-Okamoto-Vanstone Algorithm」、「Journal of Cryptology」、１９９８年、第１１巻、第２号、ｐ．１４１−１４５
【非特許文献３】D.Freeman,M.Scott、E.Teske著、「A taxonomy of pairing-friendly elliptic curves」、２００６年、インターネット＜ＵＲＬ：http://math.berkeley.edu/~dfreeman/papers/taxonomy.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【００８５】
（従来技術の問題点）
前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法上の散在的なファミリを構成するためには、前記トレース代理多項式ｕ（ｘ）（ｕ（ｘ）∈Ｑ［ｘ］）に対して、前記円周ｋ等分多項式Φｋ（Ｘ）に前記多項式を代入した多項式Φｋ（ｕ（ｘ））が前記有理数体Ｑ上で分解を持てばよい。すなわち、前記部分群位数多項式ｒ（ｘ）により因数分解可能であればよい。この条件に対して、Ｇａｌｂｒａｉｔｈ、Ｍｃｋｅｅ、Ｖａｌｅｎcａによる解析の中で、重要な補題（補助定理）が示されており、前記補題により、Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法の拡張アルゴリズムを考えることができる。これを拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法と呼ぶこととする。前記拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムを以下の（１）〜（３）に示す。
【００８６】
（拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズム）
（１）前記トレース代理多項式ｕ（ｘ）による前記ｋ次円分体Ｑ（ζｋ）上の方程式をｕ（ｘ）＝ζｋとし、前記方程式ｕ（ｘ）＝ζｋの根（解）をωとして１つ定め、前記根ωの前記１の原始ｋ乗根ζｋによる表現の係数から生成される線型方程式を解き、前記トレース代理多項式ｕ（ｘ）の係数を決定する。
（２）前記トレース代理多項式ｕ（ｘ）の代入による前記円周ｋ等分多項式Φｋ（ｕ（ｘ））を分解し、分解された多項式の一方を前記部分群位数多項式ｒ（ｘ）とする。この場合、前記代数体Ｋは元として（−１）１／２と前記１の原始ｋ乗根ζｋとを有し（（−１）１／２，ζｋ∈Ｋ）、前記トレース代理多項式ｕ（ｘ）がζｋの多項式表現であることを用いて（ｕ（ｘ）|→ζｋ）、ｔ（ｘ）を選択する（ｔ（ｘ）＝ｕ（ｘ）＋１）。
（３）前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法によって、前記多項式ｒ（ｘ），ｔ（ｘ）から前記多項式ｙ（ｘ），ｑ（ｘ）を計算する。また、得られたファミリ（多項式ｒ（ｘ），ｔ（ｘ），ｑ（ｘ））が、前記ペアリングに適した楕円曲線のファミリであるか否かを、＜定義９＞の条件（１）〜（５）を満たすか否かによって確認する。
【００８７】
しかし、Ｇａｌｂｒａｉｔｈらは、前記補題（拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズム）に基づいて、前記トレース代理多項式ｕ（ｘ）が２次多項式（ｄｅｇ（ｕ（ｘ））＝２）の場合のみ解析を行なっただけである。したがって、前記トレース代理多項式ｕ（ｘ）が３次以上の多項式の場合には、前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法上の散在的なファミリを構成できるか否かは解析されていない。なお、前記トレース代理多項式ｕ（ｘ）が３次以上の多項式で検出することができれば、さらに多くの前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法上の散在的なファミリを構成できる可能性がある。
したがって、従来公知の拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムでは、前記トレース代理多項式ｕ（ｘ）を２次多項式（ｄｅｇ（ｕ（ｘ））＝２）に限定する、すなわち、前記トレース多項式ｔ（ｘ）を２次多項式（ｄｅｇ（ｔ（ｘ））＝ｄｅｇ（ｕ（ｘ）＋１）＝２）に限定するため、限定的な種類の前記散在的なファミリしか得ることができないという問題があった。
【００８８】
本発明は、前述の事情に鑑み、次の記載内容（Ｏ01）を技術的課題とする。
（Ｏ01）トレース多項式ｔ（ｘ）が３次以上の多項式となるペアリングに適した楕円曲線のファミリを構成すること。
【課題を解決するための手段】
【００８９】
次に、前記課題を解決した本発明を説明するが、本発明の構成要素と後述の実施例の構成要素との対応を容易に理解できるようにするため、本発明の構成要素の直後に実施例の構成要素の符号をカッコ（）で囲んで付記する。
なお、本発明を後述の実施例の符号と対応させて説明する理由は、本発明の理解を容易にするためであり、本発明の範囲を実施例に限定するものではない。
【００９０】
（第１発明）
前記技術的課題を解決するために、第１発明の楕円曲線暗号通信用の鍵生成装置（ＣＳ）は、
素数ｑを位数とする有限体である定義体をＦｑとし、前記定義体Ｆｑ上で定義される楕円曲線をＥ／Ｆｑとし、前記楕円曲線Ｅ／Ｆｑの有理点により構成される群をＥ（Ｆｑ）とし、前記群Ｅ（Ｆｑ）の元である有理点の中で素数ｒでｒ倍すると無限遠点（Ｏ）となるｒ捩点の集合である部分群をＥ［ｒ］とし、前記楕円曲線Ｅ／Ｆｑのトレースをｔとし、前記位数ｑ、部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを自然数ｘを変数として拡張した多項式をそれぞれ拡張位数ｑ（ｘ）、拡張部分群位数ｒ（ｘ）、拡張トレースｔ（ｘ）とし、オイラーのφ関数をφ（ｋ）とし、前記φ関数φ（ｋ）≧４を満足する自然数ｋに対する１の原始ｋ乗根をζｋとし、前記原始ｋ乗根ζｋの多項式表現をｕ（ｘ）とし、前記原始ｋ乗根ζｋと共役な原始ｋ乗根の多項式表現をω（ｘ）とし、前記多項式ｕ（ｘ）をｕ（ｘ）＝ｕ０＋ｕ１・ｘ＋ｕ２・ｘ２＋…＋ｕφ（ｋ）−１・ｘφ（ｋ）−１とし、前記多項式ω（ｘ）をω（ｘ）＝ａ０＋ａ１・ｘ＋ａ２・ｘ２＋…＋ａφ（ｋ）−１・ｘφ（ｋ）−１とした場合に、
前記多項式ω（ｘ）の係数ａ０，ａ１，…，ａφ（ｋ）−１として、それぞれ、生成した乱数を設定する乱数設定手段（Ｃ１B1）と、
乱数が設定された前記係数ａ０，ａ１，…，ａφ（ｋ）−１と、前記多項式ｕ（ｘ）が前記多項式ω（ｘ）を使用してｕ（ω（ｘ））で表現されることと、ｕ（ｘ）＝ζｋとに基づいて、前記多項式ｕ（ｘ）の係数ｕ０，ｕ１，…，ｕφ（ｋ）−１を演算する多項式係数演算手段（Ｃ１B3）と、
前記係数ｕ０，ｕ１，…，ｕφ（ｋ）−１が演算された多項式ｕ（ｘ）から前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）を演算する拡張パラメタ演算手段（Ｃ１B4a〜Ｃ１B4c）と、
前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）が、ペアリングに適した楕円曲線Ｅ／Ｆｑを生成できる組み合わせであるファミリを構成するための条件であるファミリ構成条件を満足するか否かを判別するファミリ構成条件判別手段（Ｃ１B4d）と、
前記ファミリ構成条件を満足する前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）に基づいて、前記位数ｑ、前記部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを含む前記楕円曲線Ｅ／Ｆｑを定義する定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）を演算する定義パラメタ演算手段（Ｃ１Ｂ，Ｃ１Ｄ）と、
前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）に基づいて、楕円曲線を利用した暗号通信である楕円曲線暗号通信で使用される鍵（Ｋｓ，Ｓ，Ｋａ，Ｋｂ）を生成する鍵生成手段（Ｃ１Ｃ，Ｃ１D1，Ｃ２Ｂ）と、
を備えたことを特徴とする。
【００９１】
（第１発明の作用）
前記構成要件を備えた第１発明の楕円曲線暗号通信用の鍵生成装置（ＣＳ）では、乱数設定手段（Ｃ１B1）は、前記多項式ω（ｘ）の係数ａ０，ａ１，…，ａφ（ｋ）−１として、それぞれ、生成した乱数を設定する。多項式係数演算手段（Ｃ１B3）は、乱数が設定された前記係数ａ０，ａ１，…，ａφ（ｋ）−１と、前記多項式ｕ（ｘ）が前記多項式ω（ｘ）を使用してｕ（ω（ｘ））で表現されることと、ｕ（ｘ）＝ζｋとに基づいて、前記多項式ｕ（ｘ）の係数ｕ０，ｕ１，…，ｕφ（ｋ）−１を演算する。拡張パラメタ演算手段（Ｃ１B4a〜Ｃ１B4c）は、前記係数ｕ０，ｕ１，…，ｕφ（ｋ）−１が演算された多項式ｕ（ｘ）から前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）を演算する。
【００９２】
ファミリ構成条件判別手段（Ｃ１B4d）は、前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）が、ペアリング（ｅ，ｅｒ）に適した楕円曲線Ｅ／Ｆｑを生成できる組み合わせであるファミリを構成するための条件であるファミリ構成条件を満足するか否かを判別する。定義パラメタ演算手段（Ｃ１Ｂ，Ｃ１Ｄ）は、前記ファミリ構成条件を満足する前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）に基づいて、前記位数ｑ、前記部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを含む前記楕円曲線Ｅ／Ｆｑを定義する定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）を演算する。鍵生成手段（Ｃ１Ｃ，Ｃ１D1，Ｃ２Ｂ）は、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）に基づいて、楕円曲線を利用した暗号通信である楕円曲線暗号通信で使用される鍵（Ｋｓ，Ｓ，Ｋａ，Ｋｂ）を生成する。
【００９３】
したがって、第１発明の楕円曲線暗号通信用の鍵生成装置（ＣＳ）は、前記φ関数φ（ｋ）が４以上の場合に得られる３次以上の前記多項式ｕ（ｘ）（ｕ（ｘ）＝ｕ０＋ｕ１・ｘ＋ｕ２・ｘ２＋…＋ｕφ（ｋ）−１・ｘφ（ｋ）−１）から、前記拡張トレースｔ（ｘ）を３次以上の多項式として演算できる。この結果、前記拡張トレースｔ（ｘ）が３次以上の多項式となるペアリング（ｅ，ｅｒ）に適した楕円曲線のファミリを構成でき、前記ペアリング（ｅ，ｅｒ）に適した楕円曲線Ｅ／Ｆｑを生成できる。よって、従来公知の拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムのように、前記多項式ｕ（ｘ）を２次多項式に限定する必要がないため、前記拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムと比べて、より多くの種類のペアリング（ｅ，ｅｒ）に適した楕円曲線Ｅ／Ｆｑを生成できる。
【００９４】
また、第１発明の楕円曲線暗号通信用の鍵生成装置（ＣＳ）は、生成された前記楕円曲線Ｅ／Ｆｑを利用した暗号通信である楕円曲線暗号通信で使用される鍵（Ｋｓ，Ｓ，Ｋａ，Ｋｂ）を生成することができる。この場合、前記楕円曲線Ｅ／Ｆｑは、前記φ関数φ（ｋ）が４以上で生成されているため、前記自然数（埋め込み次数）ｋについて、ｋ＞６が成立する。したがって、前記楕円曲線Ｅ／Ｆｑは、ｋが高々６である従来公知の前記超特異楕円曲線と比べて、より大きな次数の拡大体（Ｌ）の離散対数問題に帰着される。よって、前記楕円曲線Ｅ／Ｆｑの楕円曲線離散対数問題は、前記超特異楕円曲線の楕円曲線離散対数問題と比べて、より困難にできる。この結果、前記楕円曲線Ｅ／Ｆｑを利用した前記楕円曲線暗号通信は、前記超特異楕円曲線を利用した場合と比べて、安全性を高くできる。また、前記楕円曲線Ｅ／Ｆｑを前記超特異楕円曲線と同等の安全性とした場合、前記鍵生成装置（ＣＳ）は、前記超特異楕円曲線の場合と比べて、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）のビット長を短くできる。この結果、前記鍵生成装置（ＣＳ）は、例えば、前記楕円曲線Ｅ／Ｆｑで、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）を生成したり、鍵（Ｋｓ，Ｓ，Ｋａ，Ｋｂ）を生成したりする場合、前記超特異楕円曲線と比べて、これらの演算を高速化することができる。
【００９５】
（第１発明の形態１）
第１発明の形態１の楕円曲線暗号通信用の鍵生成装置（ＣＳ）は、前記第１発明において、
管理者装置（ＣＳ）の秘密鍵（Ｋｓ）としての乱数（Ｋｓ）を生成する管理者装置秘密鍵生成手段と（Ｃ１Ｃ）、
前記生成された管理者装置（ＣＳ）の秘密鍵（Ｋｓ）と、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）とに基づいて、前記鍵（Ｓ）としての前記管理者装置（ＣＳ）の公開鍵（Ｓ）を生成する前記鍵生成手段（Ｃ１D1）と、
を備えたことを特徴とする。
【００９６】
（第１発明の形態１の作用）
前記構成要件を備えた第１発明の形態１の楕円曲線暗号通信用の鍵生成装置（ＣＳ）では、管理者装置秘密鍵生成手段（Ｃ１Ｃ）は、管理者装置（ＣＳ）の秘密鍵（Ｋｓ）としての乱数（Ｋｓ）を生成する。前記鍵生成手段（Ｃ１D1）は、前記生成された管理者装置（ＣＳ）の秘密鍵（Ｋｓ）と、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）とに基づいて、前記鍵（Ｓ）としての前記管理者装置（ＣＳ）の公開鍵（Ｓ）を生成する。
したがって、第１発明の形態１の楕円曲線暗号通信用の鍵生成装置（ＣＳ）は、前記管理者装置（ＣＳ）の秘密鍵（Ｋｓ）と、前記管理者装置（ＣＳ）の公開鍵（Ｓ）とを生成できる。
【００９７】
（第１発明の形態２）
第１発明の形態２の楕円曲線暗号通信用の鍵生成装置（ＣＳ）は、前記第１発明の形態１において、
利用者（Ａ，Ｂ）の識別情報（ＩＤａ，ＩＤｂ）を公開鍵（ＩＤａ，ＩＤｂ）とし、前記公開鍵（ＩＤａ，ＩＤｂ）と、前記管理者装置（ＣＳ）の秘密鍵（Ｋｓ）と、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）とに基づいて、前記鍵（Ｋａ，Ｋｂ）としての前記利用者（Ａ，Ｂ）の秘密鍵（Ｋａ，Ｋｂ）を生成する前記鍵生成手段（Ｃ２Ｂ）、
を備えたことを特徴とする。
【００９８】
（第１発明の形態２の作用）
前記構成要件を備えた第１発明の形態２の楕円曲線暗号通信用の鍵生成装置（ＣＳ）では、前記鍵生成手段（Ｃ２Ｂ）は、利用者（Ａ，Ｂ）の識別情報（ＩＤａ，ＩＤｂ）を公開鍵（ＩＤａ，ＩＤｂ）とし、前記公開鍵（ＩＤａ，ＩＤｂ）と、前記管理者装置（ＣＳ）の秘密鍵（Ｋｓ）と、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）とに基づいて、前記鍵（Ｋａ，Ｋｂ）としての前記利用者（Ａ，Ｂ）の秘密鍵（Ｋａ，Ｋｂ）を生成する。
したがって、第１発明の形態２の楕円曲線暗号通信用の鍵生成装置（ＣＳ）は、前記利用者（Ａ，Ｂ）の識別情報（ＩＤａ，ＩＤｂ）から、前記利用者（Ａ，Ｂ）の公開鍵（ＩＤａ，ＩＤｂ）と、前記利用者（Ａ，Ｂ）の秘密鍵（Ｋａ，Ｋｂ）を生成することができる。この結果、前記利用者間において、前記利用者（Ａ，Ｂ）の識別情報（ＩＤａ，ＩＤｂ）を前記利用者（Ａ，Ｂ）の公開鍵（ＩＤａ，ＩＤｂ）とした前記楕円曲線暗号通信、いわゆる、ＩＤベース暗号を実施することができる。
【００９９】
（第２発明）
前記技術的課題を解決するために、第２発明の楕円曲線暗号通信システム（ＩＤＳ）は、下記の構成要件（Ａ01）〜（Ａ03）を備えたことを特徴とする。
（Ａ01）素数ｑを位数とする有限体である定義体をＦｑとし、前記定義体Ｆｑ上で定義される楕円曲線をＥ／Ｆｑとし、前記楕円曲線Ｅ／Ｆｑの有理点により構成される群をＥ（Ｆｑ）とし、前記群Ｅ（Ｆｑ）の元である有理点の中で素数ｒでｒ倍すると無限遠点（Ｏ）となるｒ捩点の集合である部分群をＥ［ｒ］とし、前記楕円曲線Ｅ／Ｆｑのトレースをｔとし、前記位数ｑ、部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを自然数ｘを変数として拡張した多項式をそれぞれ拡張位数ｑ（ｘ）、拡張部分群位数ｒ（ｘ）、拡張トレースｔ（ｘ）とし、オイラーのφ関数をφ（ｋ）とし、前記φ関数φ（ｋ）≧４を満足する自然数ｋに対する１の原始ｋ乗根をζｋとし、前記原始ｋ乗根ζｋの多項式表現をｕ（ｘ）とし、前記原始ｋ乗根ζｋと共役な原始ｋ乗根の多項式表現をω（ｘ）とし、前記多項式ｕ（ｘ）をｕ（ｘ）＝ｕ０＋ｕ１・ｘ＋ｕ２・ｘ２＋…＋ｕφ（ｋ）−１・ｘφ（ｋ）−１とし、前記多項式ω（ｘ）をω（ｘ）＝ａ０＋ａ１・ｘ＋ａ２・ｘ２＋…＋ａφ（ｋ）−１・ｘφ（ｋ）−１とした場合に、
前記多項式ω（ｘ）の係数ａ０，ａ１，…，ａφ（ｋ）−１として、それぞれ、生成した乱数を設定する乱数設定手段（Ｃ１B1）と、
乱数が設定された前記係数ａ０，ａ１，…，ａφ（ｋ）−１と、前記多項式ｕ（ｘ）が前記多項式ω（ｘ）を使用してｕ（ω（ｘ））で表現されることと、ｕ（ｘ）＝ζｋとに基づいて、前記多項式ｕ（ｘ）の係数ｕ０，ｕ１，…，ｕφ（ｋ）−１を演算する多項式係数演算手段（Ｃ１B3）と、
前記係数ｕ０，ｕ１，…，ｕφ（ｋ）−１が演算された多項式ｕ（ｘ）から前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）を演算する拡張パラメタ演算手段（Ｃ１B4a〜Ｃ１B4c）と、
前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）が、ペアリングに適した楕円曲線Ｅ／Ｆｑを生成できる組み合わせであるファミリを構成するための条件であるファミリ構成条件を満足するか否かを判別するファミリ構成条件判別手段（Ｃ１B4d）と、
前記ファミリ構成条件を満足する前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）に基づいて、前記位数ｑ、前記部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを含む前記楕円曲線Ｅ／Ｆｑを定義する定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）を演算する定義パラメタ演算手段（Ｃ１Ｂ，Ｃ１Ｄ）と、
前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）に基づいて、楕円曲線を利用した暗号通信である楕円曲線暗号通信で使用される鍵（Ｋａ，Ｋｂ）を生成する鍵生成手段（Ｃ２Ｂ）であって、利用者（Ａ，Ｂ）の識別情報（ＩＤａ，ＩＤｂ）により構成された公開鍵（ＩＤａ，ＩＤｂ）と前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）とに基づいて秘密鍵（Ｋａ，Ｋｂ）を生成する前記鍵生成手段（Ｃ２Ｂ）と、
を有する楕円曲線暗号通信用の鍵生成装置（ＣＳ）、
【０１００】
（Ａ02）第１の利用者（Ａ）の識別情報（ＩＤａ）により構成された第１の公開鍵（ＩＤａ）と、前記第１の公開鍵（ＩＤａ）に基づいて前記鍵生成装置（ＣＳ）で生成された第１の秘密鍵（Ｋａ）と、を記憶する鍵記憶手段（Ｃ１０１＋Ｃ１０４）と、
通信回線（１）で接続された第２の端末（ＰＣｂ）に情報（Ｍ′）を送信する場合に、第２の端末（ＰＣｂ）に記憶された第２の公開鍵（ＩＤｂ）を使用して情報（Ｍ′）を暗号化して送信する暗号化送信手段（Ｃ１０６＋Ｃ１０７）と、
前記第１の公開鍵（ＩＤａ）で暗号化されて通信回線（１）で接続された第２の端末（ＰＣｂ）から送信された情報（Ｃ）を受信した場合に、暗号化された情報（Ｃ）を前記第１の秘密鍵（Ｋａ）を使用して復号化する復号化手段（Ｃ１０９）と、
を有する第１の端末（ＰＣａ）、
【０１０１】
（Ａ03）第２の利用者（Ｂ）の識別情報（ＩＤｂ）により構成された第２の公開鍵（ＩＤｂ）と、前記第２の公開鍵（ＩＤｂ）に基づいて前記鍵生成装置（ＣＳ）で生成された第２の秘密鍵（Ｋｂ）と、を記憶する鍵記憶手段（Ｃ１０１＋Ｃ１０４）と、
通信回線（１）で接続された前記第１の端末（ＰＣａ）に情報（Ｍ）を送信する場合に、前記第１の端末（ＰＣａ）に記憶された第１の公開鍵（ＩＤａ）を使用して情報（Ｍ）を暗号化して送信する暗号化送信手段（Ｃ１０６＋Ｃ１０７）と、
前記第２の公開鍵（ＩＤｂ）で暗号化されて通信回線（１）で接続された前記第１の端末（ＰＣａ）から送信された情報（Ｃ′）を受信した場合に、暗号化された情報（Ｍ′）を前記第２の秘密鍵（Ｋｂ）を使用して復号化する復号化手段（Ｃ１０９）と、
を有する第２の端末（ＰＣｂ）。
【０１０２】
（第２発明の作用）
前記構成要件を備えた第２発明の楕円曲線暗号通信システム（ＩＤＳ）では、楕円曲線暗号通信用の鍵生成装置（ＣＳ）の乱数設定手段（Ｃ１B1）は、前記多項式ω（ｘ）の係数ａ０，ａ１，…，ａφ（ｋ）−１として、それぞれ、生成した乱数を設定する。前記楕円曲線暗号通信用の鍵生成装置（ＣＳ）の多項式係数演算手段（Ｃ１B3）は、乱数が設定された前記係数ａ０，ａ１，…，ａφ（ｋ）−１と、前記多項式ｕ（ｘ）が前記多項式ω（ｘ）を使用してｕ（ω（ｘ））で表現されることと、ｕ（ｘ）＝ζｋとに基づいて、前記多項式ｕ（ｘ）の係数ｕ０，ｕ１，…，ｕφ（ｋ）−１を演算する。前記楕円曲線暗号通信用の鍵生成装置（ＣＳ）の拡張パラメタ演算手段（Ｃ１B4a〜Ｃ１B4c）は、前記係数ｕ０，ｕ１，…，ｕφ（ｋ）−１が演算された多項式ｕ（ｘ）から前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）を演算する。
【０１０３】
前記楕円曲線暗号通信用の鍵生成装置（ＣＳ）のファミリ構成条件判別手段（Ｃ１B4d）は、前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）が、ペアリングに適した楕円曲線Ｅ／Ｆｑを生成できる組み合わせであるファミリを構成するための条件であるファミリ構成条件を満足するか否かを判別する。前記楕円曲線暗号通信用の鍵生成装置（ＣＳ）の定義パラメタ演算手段（Ｃ１Ｂ，Ｃ１Ｄ）は、前記ファミリ構成条件を満足する前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）に基づいて、前記位数ｑ、前記部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを含む前記楕円曲線Ｅ／Ｆｑを定義する定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）を演算する。前記楕円曲線暗号通信用の鍵生成装置（ＣＳ）の前記鍵生成手段（Ｃ１Ｃ＋Ｃ１D1＋Ｃ２Ｂ）は、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）に基づいて、楕円曲線を利用した暗号通信である楕円曲線暗号通信で使用される鍵（Ｋｓ，Ｓ，Ｋａ，Ｋｂ）を生成する鍵生成手段（Ｃ１Ｃ＋Ｃ１D1＋Ｃ２Ｂ）であって、利用者（Ａ，Ｂ）の識別情報（ＩＤａ，ＩＤｂ）により構成された公開鍵（ＩＤａ，ＩＤｂ）と前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）とに基づいて秘密鍵（Ｋａ，Ｋｂ）を生成する。
【０１０４】
第１の端末（ＰＣａ）の鍵記憶手段（Ｃ１０１＋Ｃ１０４）は、第１の利用者（Ａ）の識別情報（ＩＤａ）により構成された第１の公開鍵（ＩＤａ）と、前記第１の公開鍵（ＩＤａ）に基づいて前記鍵生成装置（ＣＳ）で生成された第１の秘密鍵（Ｋａ）と、を記憶する。前記第１の端末（ＰＣａ）の暗号化送信手段（Ｃ１０６＋Ｃ１０７）は、通信回線（１）で接続された第２の端末（ＰＣｂ）に情報（Ｍ′）を送信する場合に、第２の端末（ＰＣｂ）に記憶された第２の公開鍵（ＩＤｂ）を使用して情報（Ｍ′）を暗号化して送信する。前記第１の端末（ＰＣａ）の復号化手段（Ｃ１０９）は、前記第１の公開鍵（ＩＤａ）で暗号化されて通信回線（１）で接続された第２の端末（ＰＣｂ）から送信された情報（Ｃ）を受信した場合に、暗号化された情報（Ｃ）を前記第１の秘密鍵（Ｋａ）を使用して復号化する。
【０１０５】
第２の端末（ＰＣｂ）の鍵記憶手段（Ｃ１０１＋Ｃ１０４）は、第２の利用者（Ｂ）の識別情報（ＩＤｂ）により構成された第２の公開鍵（ＩＤｂ）と、前記第２の公開鍵（ＩＤｂ）に基づいて前記鍵生成装置（ＣＳ）で生成された第２の秘密鍵（Ｋｂ）と、を記憶する。前記第２の端末（ＰＣｂ）の暗号化送信手段（Ｃ１０６＋Ｃ１０７）は、通信回線（１）で接続された前記第１の端末（ＰＣａ）に情報（Ｍ）を送信する場合に、前記第１の端末（ＰＣａ）に記憶された第１の公開鍵（ＩＤａ）を使用して情報（Ｍ）を暗号化して送信する。前記第２の端末（ＰＣｂ）の復号化手段（Ｃ１０９）は、前記第２の公開鍵（ＩＤｂ）で暗号化されて通信回線（１）で接続された前記第１の端末（ＰＣａ）から送信された情報（Ｃ′）を受信した場合に、暗号化された情報（Ｍ′）を前記第２の秘密鍵（Ｋｂ）を使用して復号化する。
【０１０６】
したがって、第２発明の楕円曲線暗号通信システム（ＩＤＳ）では、前記楕円曲線暗号通信用の鍵生成装置（ＣＳ）は、前記φ関数φ（ｋ）が４以上の場合に得られる３次以上の前記多項式ｕ（ｘ）（ｕ（ｘ）＝ｕ０＋ｕ１・ｘ＋ｕ２・ｘ２＋…＋ｕφ（ｋ）−１・ｘφ（ｋ）−１）から、前記拡張トレースｔ（ｘ）を３次以上の多項式として演算できる。この結果、前記拡張トレースｔ（ｘ）が３次以上の多項式となるペアリング（ｅ，ｅｒ）に適した楕円曲線のファミリを構成でき、前記ペアリング（ｅ，ｅｒ）に適した楕円曲線Ｅ／Ｆｑを生成できる。よって、従来公知の拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムのように、前記多項式ｕ（ｘ）を２次多項式に限定する必要がないため、前記拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムと比べて、より多くの種類のペアリング（ｅ，ｅｒ）に適した楕円曲線Ｅ／Ｆｑを生成できる。
【０１０７】
また、前記楕円曲線暗号通信用の鍵生成装置（ＣＳ）は、利用者（Ａ，Ｂ）の識別情報（ＩＤａ，ＩＤｂ）により構成された公開鍵（ＩＤａ，ＩＤｂ）と前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）とに基づいて前記第１の利用者（Ａ）の秘密鍵（Ｋａ）と、前記第２の利用者（Ｂ）の秘密鍵（Ｋｂ）と、を生成することができる。したがって、前記通信回線（１）で接続された前記第１の端末（ＰＣａ）と、前記第２の端末（ＰＣｂ）との間で前記楕円曲線暗号通信を行うことができる。
なお、この場合、前記楕円曲線Ｅ／Ｆｑは、前記φ関数φ（ｋ）が４以上で生成されているため、前記自然数（埋め込み次数）ｋについて、ｋ＞６が成立する。したがって、前記楕円曲線Ｅ／Ｆｑは、ｋが高々６である従来公知の前記超特異楕円曲線と比べて、より大きな次数の拡大体（Ｌ）の離散対数問題に帰着される。
【０１０８】
よって、前記楕円曲線Ｅ／Ｆｑの楕円曲線離散対数問題は、前記超特異楕円曲線の楕円曲線離散対数問題と比べて、より困難にできる。この結果、前記楕円曲線Ｅ／Ｆｑを利用した前記楕円曲線暗号通信は、前記超特異楕円曲線を利用した場合と比べて、安全性を高くできる。また、前記楕円曲線Ｅ／Ｆｑを前記超特異楕円曲線と同等の安全性とした場合、前記鍵生成装置（ＣＳ）は、前記超特異楕円曲線の場合と比べて、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）のビット長を短くできる。この結果、前記鍵生成装置（ＣＳ）は、例えば、前記楕円曲線Ｅ／Ｆｑで、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）を生成したり、鍵（Ｋｓ，Ｓ，Ｋａ，Ｋｂ）を生成したり、前記第１の端末（ＰＣａ）と、第２の端末（ＰＣｂ）との間で前記楕円曲線暗号通信を行う場合に、前記情報（Ｍ，Ｍ′）を暗号化したり、暗号化された前記情報（Ｃ，Ｃ′）を復号化したりする場合、前記超特異楕円曲線と比べて、これらの演算を高速化することができる。
【０１０９】
（第３発明）
前記技術的課題を解決するために、第３発明の技術文献解析情報表示プログラム（ＡＰ１）は、
素数ｑを位数とする有限体である定義体をＦｑとし、前記定義体Ｆｑ上で定義される楕円曲線をＥ／Ｆｑとし、前記楕円曲線Ｅ／Ｆｑの有理点により構成される群をＥ（Ｆｑ）とし、前記群Ｅ（Ｆｑ）の元である有理点の中で素数ｒでｒ倍すると無限遠点（Ｏ）となるｒ捩点の集合である部分群をＥ［ｒ］とし、前記楕円曲線Ｅ／Ｆｑのトレースをｔとし、前記位数ｑ、部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを自然数ｘを変数として拡張した多項式をそれぞれ拡張位数ｑ（ｘ）、拡張部分群位数ｒ（ｘ）、拡張トレースｔ（ｘ）とし、オイラーのφ関数をφ（ｋ）とし、前記φ関数φ（ｋ）≧４を満足する自然数ｋに対する１の原始ｋ乗根をζｋとし、前記原始ｋ乗根ζｋの多項式表現をｕ（ｘ）とし、前記原始ｋ乗根ζｋと共役な原始ｋ乗根の多項式表現をω（ｘ）とし、前記多項式ｕ（ｘ）をｕ（ｘ）＝ｕ０＋ｕ１・ｘ＋ｕ２・ｘ２＋…＋ｕφ（ｋ）−１・ｘφ（ｋ）−１とし、前記多項式ω（ｘ）をω（ｘ）＝ａ０＋ａ１・ｘ＋ａ２・ｘ２＋…＋ａφ（ｋ）−１・ｘφ（ｋ）−１とした場合に、
コンピュータを、
前記多項式ω（ｘ）の係数ａ０，ａ１，…，ａφ（ｋ）−１として、それぞれ、生成した乱数を設定する乱数設定手段（Ｃ１B1）、
乱数が設定された前記係数ａ０，ａ１，…，ａφ（ｋ）−１と、前記多項式ｕ（ｘ）が前記多項式ω（ｘ）を使用してｕ（ω（ｘ））で表現されることと、ｕ（ｘ）＝ζｋとに基づいて、前記多項式ｕ（ｘ）の係数ｕ０，ｕ１，…，ｕφ（ｋ）−１を演算する多項式係数演算手段（Ｃ１B3）、
前記係数ｕ０，ｕ１，…，ｕφ（ｋ）−１が演算された多項式ｕ（ｘ）から前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）を演算する拡張パラメタ演算手段（Ｃ１B4a〜Ｃ１B4c）、
前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）が、ペアリングに適した楕円曲線Ｅ／Ｆｑを生成できる組み合わせであるファミリを構成するための条件であるファミリ構成条件を満足するか否かを判別するファミリ構成条件判別手段（Ｃ１B4d）、
前記ファミリ構成条件を満足する前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）に基づいて、前記位数ｑ、前記部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを含む前記楕円曲線Ｅ／Ｆｑを定義する定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）を演算する定義パラメタ演算手段（Ｃ１Ｂ，Ｃ１Ｄ）、
前記定義パラメタｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）に基づいて、楕円曲線を利用した暗号通信である楕円曲線暗号通信で使用される鍵（Ｋｓ，Ｓ，Ｋａ，Ｋｂ）を生成する鍵生成手段（Ｃ１Ｃ，Ｃ１D1，Ｃ２Ｂ）、
として機能させる。
【０１１０】
（第３発明の作用）
前記構成要件を備えた第３発明の楕円曲線暗号通信用の鍵生成プログラム（ＡＰ１）では、乱数設定手段（Ｃ１B1）は、前記多項式ω（ｘ）の係数ａ０，ａ１，…，ａφ（ｋ）−１として、それぞれ、生成した乱数を設定する。多項式係数演算手段（Ｃ１B3）は、乱数が設定された前記係数ａ０，ａ１，…，ａφ（ｋ）−１と、前記多項式ｕ（ｘ）が前記多項式ω（ｘ）を使用してｕ（ω（ｘ））で表現されることと、ｕ（ｘ）＝ζｋとに基づいて、前記多項式ｕ（ｘ）の係数ｕ０，ｕ１，…，ｕφ（ｋ）−１を演算する。拡張パラメタ演算手段（Ｃ１B4a〜Ｃ１B4c）は、前記係数ｕ０，ｕ１，…，ｕφ（ｋ）−１が演算された多項式ｕ（ｘ）から前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）を演算する。
【０１１１】
ファミリ構成条件判別手段（Ｃ１B4d）は、前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）が、ペアリング（ｅ，ｅｒ）に適した楕円曲線Ｅ／Ｆｑを生成できる組み合わせであるファミリを構成するための条件であるファミリ構成条件を満足するか否かを判別する。定義パラメタ演算手段（Ｃ１Ｂ，Ｃ１Ｄ）は、前記ファミリ構成条件を満足する前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）に基づいて、前記位数ｑ、前記部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを含む前記楕円曲線Ｅ／Ｆｑを定義する定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）を演算する。鍵生成手段（Ｃ１Ｃ，Ｃ１D1，Ｃ２Ｂ）は、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）に基づいて、楕円曲線を利用した暗号通信である楕円曲線暗号通信で使用される鍵（Ｋｓ，Ｓ，Ｋａ，Ｋｂ）を生成する。
【０１１２】
したがって、第３発明の楕円曲線暗号通信用の鍵生成プログラム（ＡＰ１）は、前記φ関数φ（ｋ）が４以上の場合に得られる３次以上の前記多項式ｕ（ｘ）（ｕ（ｘ）＝ｕ０＋ｕ１・ｘ＋ｕ２・ｘ２＋…＋ｕφ（ｋ）−１・ｘφ（ｋ）−１）から、前記拡張トレースｔ（ｘ）を３次以上の多項式として演算できる。この結果、前記拡張トレースｔ（ｘ）が３次以上の多項式となるペアリング（ｅ，ｅｒ）に適した楕円曲線のファミリを構成でき、前記ペアリング（ｅ，ｅｒ）に適した楕円曲線Ｅ／Ｆｑを生成できる。よって、従来公知の拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムのように、前記多項式ｕ（ｘ）を２次多項式に限定する必要がないため、前記拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムと比べて、より多くの種類のペアリング（ｅ，ｅｒ）に適した楕円曲線Ｅ／Ｆｑを生成できる。
【０１１３】
また、第３発明の楕円曲線暗号通信用の鍵生成プログラム（ＡＰ１）は、生成された前記楕円曲線Ｅ／Ｆｑを利用した暗号通信である楕円曲線暗号通信で使用される鍵（Ｋｓ，Ｓ，Ｋａ，Ｋｂ）を生成することができる。この場合、前記楕円曲線Ｅ／Ｆｑは、前記φ関数φ（ｋ）が４以上で生成されているため、前記自然数（埋め込み次数）ｋについて、ｋ＞６が成立する。したがって、前記楕円曲線Ｅ／Ｆｑは、ｋが高々６である従来公知の前記超特異楕円曲線と比べて、より大きな次数の拡大体（Ｌ）の離散対数問題に帰着される。よって、前記楕円曲線Ｅ／Ｆｑの楕円曲線離散対数問題は、前記超特異楕円曲線の楕円曲線離散対数問題と比べて、より困難にできる。この結果、前記楕円曲線Ｅ／Ｆｑを利用した前記楕円曲線暗号通信は、前記超特異楕円曲線を利用した場合と比べて、安全性を高くできる。また、前記楕円曲線Ｅ／Ｆｑを前記超特異楕円曲線と同等の安全性とした場合、前記鍵生成装置（ＣＳ）は、前記超特異楕円曲線の場合と比べて、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）のビット長を短くできる。この結果、前記鍵生成装置（ＣＳ）は、例えば、前記楕円曲線Ｅ／Ｆｑで、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）を生成したり、鍵（Ｋｓ，Ｓ，Ｋａ，Ｋｂ）を生成したりする場合、前記超特異楕円曲線と比べて、これらの演算を高速化することができる。
【０１１４】
（第４発明）
前記技術的課題を解決するために、第４発明の楕円曲線暗号通信用の鍵生成方法は、下記のステップを実行することを特徴とする。
素数ｑを位数とする有限体である定義体をＦｑとし、前記定義体Ｆｑ上で定義される楕円曲線をＥ／Ｆｑとし、前記楕円曲線Ｅ／Ｆｑの有理点により構成される群をＥ（Ｆｑ）とし、前記群Ｅ（Ｆｑ）の元である有理点の中で素数ｒでｒ倍すると無限遠点（Ｏ）となるｒ捩点の集合である部分群をＥ［ｒ］とし、前記楕円曲線Ｅ／Ｆｑのトレースをｔとし、前記位数ｑ、部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを自然数ｘを変数として拡張した多項式をそれぞれ拡張位数ｑ（ｘ）、拡張部分群位数ｒ（ｘ）、拡張トレースｔ（ｘ）とし、オイラーのφ関数をφ（ｋ）とし、前記φ関数φ（ｋ）≧４を満足する自然数ｋに対する１の原始ｋ乗根をζｋとし、前記原始ｋ乗根ζｋの多項式表現をｕ（ｘ）とし、前記原始ｋ乗根ζｋと共役な原始ｋ乗根の多項式表現をω（ｘ）とし、前記多項式ｕ（ｘ）をｕ（ｘ）＝ｕ０＋ｕ１・ｘ＋ｕ２・ｘ２＋…＋ｕφ（ｋ）−１・ｘφ（ｋ）−１とし、前記多項式ω（ｘ）をω（ｘ）＝ａ０＋ａ１・ｘ＋ａ２・ｘ２＋…＋ａφ（ｋ）−１・ｘφ（ｋ）−１とした場合に、
前記多項式ω（ｘ）の係数ａ０，ａ１，…，ａφ（ｋ）−１として、それぞれ、生成した乱数を設定する乱数設定ステップ、
乱数が設定された前記係数ａ０，ａ１，…，ａφ（ｋ）−１と、前記多項式ｕ（ｘ）が前記多項式ω（ｘ）を使用してｕ（ω（ｘ））で表現されることと、ｕ（ｘ）＝ζｋとに基づいて、前記多項式ｕ（ｘ）の係数ｕ０，ｕ１，…，ｕφ（ｋ）−１を演算する多項式係数演算ステップ、
前記係数ｕ０，ｕ１，…，ｕφ（ｋ）−１が演算された多項式ｕ（ｘ）から前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）を演算する拡張パラメタ演算ステップ、
前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）が、ペアリングに適した楕円曲線Ｅ／Ｆｑを生成できる組み合わせであるファミリを構成するための条件であるファミリ構成条件を満足するか否かを判別するファミリ構成条件判別ステップ、
前記ファミリ構成条件を満足する前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）に基づいて、前記位数ｑ、前記部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを含む前記楕円曲線Ｅ／Ｆｑを定義する定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）を演算する定義パラメタ演算ステップ、
前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）に基づいて、楕円曲線を利用した暗号通信である楕円曲線暗号通信で使用される鍵（Ｋｓ，Ｓ，Ｋａ，Ｋｂ）を生成する鍵生成ステップ、
【０１１５】
（第４発明の作用）
前記ステップを実行する第４発明の楕円曲線暗号通信用の鍵生成方法では、乱数設定ステップにおいて、前記多項式ω（ｘ）の係数ａ０，ａ１，…，ａφ（ｋ）−１として、それぞれ、生成した乱数が設定される。多項式係数演算ステップにおいて、乱数が設定された前記係数ａ０，ａ１，…，ａφ（ｋ）−１と、前記多項式ｕ（ｘ）が前記多項式ω（ｘ）を使用してｕ（ω（ｘ））で表現されることと、ｕ（ｘ）＝ζｋとに基づいて、前記多項式ｕ（ｘ）の係数ｕ０，ｕ１，…，ｕφ（ｋ）−１が演算される。拡張パラメタ演算ステップにおいて、前記係数ｕ０，ｕ１，…，ｕφ（ｋ）−１が演算された多項式ｕ（ｘ）から前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）が演算される。
【０１１６】
ファミリ構成条件判別ステップにおいて、前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）が、ペアリングに適した楕円曲線Ｅ／Ｆｑを生成できる組み合わせであるファミリを構成するための条件であるファミリ構成条件を満足するか否かを判別される。定義パラメタ演算ステップにおいて、前記ファミリ構成条件を満足する前記拡張トレースｔ（ｘ）、拡張部分群位数ｒ（ｘ）および拡張位数ｑ（ｘ）に基づいて、前記位数ｑ、前記部分群Ｅ［ｒ］の位数ｒおよび前記トレースｔを含む前記楕円曲線Ｅ／Ｆｑを定義する定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）が演算される。鍵生成ステップにおいて、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）に基づいて、楕円曲線を利用した暗号通信である楕円曲線暗号通信で使用される鍵（Ｋｓ，Ｓ，Ｋａ，Ｋｂ）が生成される。
【０１１７】
したがって、第４発明の楕円曲線暗号通信用の鍵生成方法は、前記φ関数φ（ｋ）が４以上の場合に得られる３次以上の前記多項式ｕ（ｘ）（ｕ（ｘ）＝ｕ０＋ｕ１・ｘ＋ｕ２・ｘ２＋…＋ｕφ（ｋ）−１・ｘφ（ｋ）−１）から、前記拡張トレースｔ（ｘ）を３次以上の多項式として演算できる。この結果、前記拡張トレースｔ（ｘ）が３次以上の多項式となるペアリング（ｅ，ｅｒ）に適した楕円曲線のファミリを構成でき、前記ペアリング（ｅ，ｅｒ）に適した楕円曲線Ｅ／Ｆｑを生成できる。よって、従来公知の拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムのように、前記多項式ｕ（ｘ）を２次多項式に限定する必要がないため、前記拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムと比べて、より多くの種類のペアリング（ｅ，ｅｒ）に適した楕円曲線Ｅ／Ｆｑを生成できる。
【０１１８】
また、第４発明の楕円曲線暗号通信用の鍵生成方法は、生成された前記楕円曲線Ｅ／Ｆｑを利用した暗号通信である楕円曲線暗号通信で使用される鍵（Ｋｓ，Ｓ，Ｋａ，Ｋｂ）を生成することができる。この場合、前記楕円曲線Ｅ／Ｆｑは、前記φ関数φ（ｋ）が４以上で生成されているため、前記自然数（埋め込み次数）ｋについて、ｋ＞６が成立する。したがって、前記楕円曲線Ｅ／Ｆｑは、ｋが高々６である従来公知の前記超特異楕円曲線と比べて、より大きな次数の拡大体（Ｌ）の離散対数問題に帰着される。よって、前記楕円曲線Ｅ／Ｆｑの楕円曲線離散対数問題は、前記超特異楕円曲線の楕円曲線離散対数問題と比べて、より困難にできる。この結果、前記楕円曲線Ｅ／Ｆｑを利用した前記楕円曲線暗号通信は、前記超特異楕円曲線を利用した場合と比べて、安全性を高くできる。また、前記楕円曲線Ｅ／Ｆｑを前記超特異楕円曲線と同等の安全性とした場合、前記鍵生成装置（ＣＳ）は、前記超特異楕円曲線の場合と比べて、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）のビット長を短くできる。この結果、前記鍵生成装置（ＣＳ）は、例えば、前記楕円曲線Ｅ／Ｆｑで、前記定義パラメタ（ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２）を生成したり、鍵（Ｋｓ，Ｓ，Ｋａ，Ｋｂ）を生成したりする場合、前記超特異楕円曲線と比べて、これらの演算を高速化することができる。
【発明の効果】
【０１１９】
前述の本発明の後処理装置は、下記の効果（Ｅ01）を奏する。
（Ｅ01）トレース多項式ｔ（ｘ）が３次以上の多項式となるペアリングに適した楕円曲線のファミリを構成することができる。
【発明を実施するための最良の形態】
【０１２０】
次に図面を参照しながら、本発明の実施の形態の具体例（実施例）を説明するが、本発明は以下の実施例に限定されるものではない。
【実施例１】
【０１２１】
（実施例１）
本発明では、Ｇａｌｂｒａｉｔｈらが証明した前記補題（拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズム参照）を前記多項式ｕ（ｘ），ｔ（ｘ）が３次以上の多項式でも利用できるよう拡張する。本発明の拡張された補題である拡張補題およびその証明を以下に示す。
（拡張補題）
前記トレース代理多項式ｕ（ｘ）を２次以上の多項式とする（ｕ（ｘ）∈Ｑ［ｘ］，ｄｅｇ（ｕ（ｘ））＞１）。また、前記有理体Ｑの代数的平方Ｑ′上の１の原始ｋ乗根をζｋ、前記円周ｋ等分多項式をΦｋ（Ｘ）、前記トレース代理多項式ｕ（ｘ）を代入した前記円周ｋ等分多項式をΦｋ（ｕ（ｘ））（Ｘ＝ｕ（ｘ））、前記埋め込み次数のオイラー関数をφ（ｋ）、前記ｋ次円分体をＱ（ζｋ）とした場合、前記多項式Φｋ（ｕ（ｘ））が前記有理数体Ｑ上で解を持ち、そのうち一つの既約多項式の次数が前記オイラー関数φ（ｋ）ならば、方程式ｕ（ｘ）＝ζｋは、前記ｋ次円分体Ｑ（ζｋ）上で解を持つ。
【０１２２】
（拡張補題の証明）
前記多項式Φｋ（ｕ（ｘ））が０となる場合の方程式、Φｋ（ｕ（ｘ））＝０の一つの根をθ、前記トレース代理多項式ｕ（ｘ）に前記根θを代入した値をωｋとする（ｕ（θ）＝ωｋ）。このとき、前記有理数Ｑの前記根θによる２次拡大体をＱ（θ）とすると、前記値ωｋは、前記根θによる２次拡大体Ｑ（θ）上の１の原始ｋ乗根である（ωｋ∈Ｑ（θ））。
また、前記根θが前記方程式Φｋ（ｕ（ｘ））＝０の根であるため、前記根θの前記有理体Ｑ上の最小多項式（最小の次数で表現できる多項式）の次数は、前記オイラー関数φ（ｋ）の正の整数倍で表現できる。ここで、前記最小多項式の次数が前記オイラー関数φ（ｋ）ならば、前記有理数Ｑの前記値ωｋによる２次拡大体をＱ（ωｋ）とした場合、前記根θは、前記値ωｋによる２次拡大体をＱ（ωｋ）の元である（θ∈Ｑ（ωｋ））。
【０１２３】
ここで、ｕ（ｘ）＝ωｋを方程式と考える。前記方程式ｕ（ｘ）＝ωｋがこのような前記根θを持っていた場合、前記方程式ｕ（ｘ）＝ωｋは、前記値ωｋの２次拡大体Ｑ（ωｋ）上で解を持ち、その根の一つは前記根θである。さらに、前記値ωｋの２次拡大体Ｑ（ωｋ）は、ｋ次円分体であるため、ガロア共役を考えて、前記方程式ｕ（ｘ）＝ζｋは、前記ｋ次円分体Ｑ（ζｋ）上で解を持つことがいえる。□（証明おわり、Q.E.D（Quod Erat Demonstrandum））。
なお、ガロア共役とは、ガロア群（複素数体内の変換の中で、実数は動かさない変換の集合）の元のうちの一つである共役のことである。また、共役とは、例えば、ある整数をａ，ｂとし、ｉを虚数とした場合、ａ＋ｂｉをａ−ｂｉに移す変換のことである。
【０１２４】
前記拡張補題は、前記トレース代理多項式ｕ（ｘ）が３次多項式の場合に極めて有効に作用する。すなわち、次数が前記オイラー関数φ（ｋ）となる前記既約多項式（ｒ（ｘ））を必ず生成することができる。なお、前記トレース代理多項式ｕ（ｘ）が４次以上の多項式であった場合には、前記多項式Φｋ（ｕ（ｘ））の分解が存在するときに、前記トレース代理多項式ｕ（ｘ）が３次多項式までであった場合とは異なり、次数が前記オイラー関数φ（ｋ）となる前記既約多項式（ｒ（ｘ））を必ず生成することができるとは限らない。しなしながら、前記拡張補題を前記トレース代理多項式ｕ（ｘ）が４次以上の多項式の場合に適用しても、前記トレース代理多項式ｕ（ｘ）が２次多項式の場合のみ適用できる従来公知の前記補題（拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズム）と比べれば有効であることは明らかである。
【０１２５】
したがって、本発明における前記拡張補題を利用したアルゴリズムと、従来公知の前記拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムとを組み合わせることにより、より多くのペアリングに適した楕円曲線のファミリを構成することができる。
ここで、前記多項式ｕ（ｘ），ｔ（ｘ）を３次多項式として、前記拡張補題を有効活用できる前記埋め込み次数ｋについて考える。まず、前記オイラー関数φ（ｋ）が２の場合（φ（ｋ）＝２）、すなわち、前記埋め込み次数ｋが３，４，６の場合を考える（ｋ＝３，４，６）。この場合、生成される前記部分群位数多項式ｒ（ｘ）の次数が２であるため、前記トレース代理多項式ｕ（ｘ）は、１次多項式まで引き下げられてしまい、適当ではない。
【０１２６】
次に、前記オイラー関数φ（ｋ）が４の場合（φ（ｋ）＝４）、すなわち、前記埋め込み次数ｋが５，８，１０，１２の場合を考える（ｋ＝５，８，１０，１２）。この場合、前記ＣＭ判別式Ｄが選択できない前記埋め込み次数ｋが５，１０の場合が除外され、前記埋め込み次数ｋが８，１２のいずれかで考える必要がある。
ここで、前記埋め込み次数ｋが１２の場合には（ｋ＝１２）、ＢａｒｒｅｔｏとＮａｅｈｒｉｇにより、前記ρ値（ρ（ｔ，ｒ，ｑ））が１となる（ρ（ｔ，ｒ，ｑ）＝１）前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法上の散在的なファミリ、すなわち、前記ペアリングに最適な楕円曲線のファミリが構成されているため、前記ρ値（ρ（ｔ，ｒ，ｑ））が１となる前記散在的なファミリが構成できない場合、前記拡張補題を利用することの有効性に疑問が生じることになる。
【０１２７】
しかし、前記埋め込み次数ｋが８の場合には（ｋ＝８）、従来公知の前記拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムでは構成できなかった前記ペアリングに適した楕円曲線のファミリが構成可能となるため、前記拡張補題を利用することの有効性を示すことができる。したがって、本発明の実施例１では、前記埋め込み次数ｋが８（ｋ＝８）の場合に、前記ρ値（ρ（ｔ，ｒ，ｑ））が１に近い値となる（ρ（ｔ，ｒ，ｑ）＝１）前記散在的なファミリを構成できることを示すことが適当であると判断した。
【０１２８】
（３次多項式ｕ（ｘ）が代入された円周８等分多項式Φ８（ｕ（ｘ））の因数分解法）
ここで、前記埋め込み次数が８の場合、円周８等分多項式をΦ８（ｘ）、前記円周８等分多項式Φ８（ｘ）に前記トレース代理多項式ｕ（ｘ）を代入した多項式をΦ８（ｕ（ｘ））として、前記多項式Φ８（ｕ（ｘ））の因数分解について考える。
まず、３次多項式の前記トレース代理多項式ｕ（ｘ）（ｕ（ｘ）∈Ｑ［ｘ］）の係数をｕ０，ｕ１，ｕ２，ｕ３（ｕ０，ｕ１，ｕ２，ｕ３∈Ｑ）とした場合、前記トレース代理多項式ｕ（ｘ）を、
ｕ（ｘ）＝ｕ３ｘ３＋ｕ２ｘ２＋ｕ１ｘ＋ｕ０
で示すこととする。また、前記１の原始８乗根をζ８、前記８次円分体をＱ（ζ８）、前記方程式ｕ（ｘ）＝ζ８の根をω、前記有理数体Ｑ上の元をａ０，ａ１，ａ２，ａ３（ａ０，ａ１，ａ２，ａ３∈Ｑ）とした場合、前記根ωは、前記８次円分体Ｑ（ζ８）の元であり（ω∈Ｑ（ζ８））、前記１の原始８乗根ζ８と前記元ａ０，ａ１，ａ２，ａ３とを用いて、
ω＝ａ３ζ８３＋ａ２ζ８２＋ａ１ζ８＋ａ０
で一意的に表現できる。
【０１２９】
ここで、前記１の原始８乗根ζ８を共役である別の１の原始８乗根に置き換える操作を考えるため、前記１の原始８乗根ζ８と前記変数ｘとを置き換え、前記根ωを前記根ωの多項式である根多項式ω（ｘ）として考える。すなわち、
ω（ｘ）＝ａ３ｘ３＋ａ２ｘ２＋ａ１ｘ＋ａ０（ω（ｘ）∈Ｑ［ｘ］）
が成立するものとして考える。
また、前記根多項式ω（ｘ）を代入した前記トレース代理多項式をｕ（ω（ｘ））とした場合について考える。ここで、前記円周８等分多項式Φ８（ｘ）に、ｘ＝ζ８を代入した値Φ８（ζ８）が０となる（Φ８（ζ８）＝０）ため、前記円周８等分多項式Φ８（ｘ）を法として、前記多項式ｕ（ω（ｘ））と合同な多項式が得られることが考えられる。すなわち、前記多項式ｕ（ω（ｘ））は、前記円周８等分多項式Φ８（ｘ）で因数分解可能である場合が考えられる。
【０１３０】
この場合、前記多項式ｕ（ω（ｘ））と合同な多項式を合同多項式ν（ｘ）とし、ν（ｘ）≡ｕ（ω（ｘ））  （ｍｏｄΦ８（ｘ））と表現できる。また、前記円周８等分多項式Φ８（ｘ）は４次多項式であるため（ｄｅｇ（Φ８（ｘ））＝φ（８）＝４）、前記合同多項式ν（ｘ）は、高々３次の多項式である。このように生成された前記合同多項式ν（ｘ）に対して、元の方程式ｕ（ｘ）＝ζ８は、
ν（ｘ）＝ｘ
と表現できる。
したがって、前記係数ｕ０，ｕ１，ｕ２，ｕ３，ａ０，ａ１，ａ２，ａ３を用いて、前記合同多項式ν（ｘ）を計算し、前記方程式ν（ｘ）＝ｘの右辺と左辺の係数を比較すれば、前記トレース代理多項式ｕ（ｘ）の係数ｕ０，ｕ１，ｕ２，ｕ３を求めることができる。なお、この場合、前記合同多項式ν（ｘ）の係数は、前記トレース代理多項式ｕ（ｘ）の係数ｕ０，ｕ１，ｕ２，ｕ３の一次表現で表現されている。この結果、前記トレース代理多項式ｕ（ｘ）の係数ｕ０，ｕ１，ｕ２，ｕ３を求めることは、以下の数６の線型方程式系（同時に成立する複数の線型方程式（一次方程式）の組）を解くことに帰着できる。
【０１３１】
【数６】
2008216493.tif 000009
【０１３２】
なお、数６の前記線型方程式系を得るためには、前記円周８等分多項式Φ８（ｘ）が、Φ８（ｘ）＝ｘ４＋１（数５参照）で示すことができることを利用して、９次多項式となる前記多項式ｕ（ω（ｘ））について（ｄｅｇ（ｕ（ω（ｘ）））＝ｄｅｇ（ｕ（ｘ））×ｄｅｇ（ω（ｘ））＝３×３＝９）、４次の項（ｘ４の項）と８次の項（ｘ８の項）とを定数項（０次の項）、５次の項（ｘ５の項）と９次の項（ｘ９の項）とを１次の項（ｘの項）、６次の項（ｘ６の項）を２次の項（ｘ２の項）、７次の項（ｘ７の項）を３次の項（ｘ３の項）、９次の項（ｘ９の項）を定数項（ｘ３の項）に引き下げる計算を行う。例えば、ある整数の係数をｍとし、５次の項（ｘ５の項）が、ｍｘ５で表現できるとした場合、
ｍｘ５≡ｍｘ（ｘ４＋１）−ｍｘ≡−ｍｘ  （ｍｏｄΦ８（ｘ））
を計算することにより、５次の項を１次の項まで引き下げることができる。また、９次の項（ｘ９の項）が、ｍｘ９で表現できるとした場合、
ｍｘ９≡ｍｘ５（ｘ４＋１）−ｍｘ５≡−ｍｘ５
≡−ｍｘ（ｘ４＋１）＋ｍｘ≡ｍｘ  （ｍｏｄΦ８（ｘ））
を計算することにより、５次の項と同様に、９次の項を１次の項まで引き下げることができる。この結果、３次多項式である前記合同多項式ν（ｘ）の各項の係数を計算でき、前記方程式ν（ｘ）＝ｘの右辺と左辺の係数を比較した前記線型方程式系を得ることができる。
【０１３３】
ここで、前記線型方程式系を計算する前に、前記根ωから計算される不変量をｄ，ν０，ν１，ν２，ν３とした場合に、前記不変量ｄ，ν０，ν１，ν２，ν３を、
ｄ＝（ａ１２＋ａ３２）｛（ａ１−ａ３）２＋２ａ２２｝｛（ａ１＋ａ３）２−２ａ２２｝，
ν０＝−ａ２（５ａ１４ａ３−５ａ１３ａ２２＋５ａ１ａ２２ａ３２−２ａ２４ａ３＋３ａ３５），
ν１＝ａ１５−４ａ１３ａ３２＋９ａ１２ａ２２ａ３＋ａ１（２ａ２４＋３ａ３４）＋３ａ２２ａ３３，ν２＝ａ３３−ａ１２ａ３＋２ａ１ａ２２，
ν３＝ａ３３−ａ１２ａ３＋２ａ１ａ２２，
として計算する。
【０１３４】
この場合、前記不変量ｄ，ν０，ν１，ν２，ν３について、ｄ≠０であれば、前記線型方程式系を解くことができる。すなわち、前記線型方程式系の解である前記トレース代理多項式ｕ（ｘ）の係数ｕ０，ｕ１，ｕ２，ｕ３は、
ｕ０＝−（ν３ａ０３＋ν２ａ０２＋ν１ａ０−ν０）／ｄ、
ｕ１＝（３ν３ａ０２＋２ν２ａ０＋ν１）／ｄ、
ｕ２＝−（３ν３ａ０＋ν２）／ｄ、
ｕ３＝−ν３／ｄ
として計算できる。
【０１３５】
ここで、前記トレース代理多項式ｕ（ｘ）の３次の係数ｕ３が、ｕ３＝−ν３／ｄであることに着目すると、以下の＜定理１＞を示すことができる。
＜定理１＞
３次多項式である前記トレース代理多項式ｕ（ｘ）（ｕ（ｘ）∈Ｑ［ｘ］））が、ｕ（ｘ）＝ｕ３ｘ３＋ｕ２ｘ２＋ｕ１ｘ＋ｕ０で与えられ、前記埋め込み次数ｋが８（ｋ＝８）の前記方程式ｕ（ｘ）＝ζ８の根の一つである前記根ωが、前記１の原始８乗根ζ８による一意表現（ω＝ａ３ζ８３＋ａ２ζ８２＋ａ１ζ８＋ａ０）を持っているとする。この場合、前記トレース代理多項式ｕ（ｘ）が代入された前記円周８等分多項式Φ８（ｕ（ｘ））が既約な４次多項式の分解を持つならば、ｄ≠０、且つ、ν３≠０である。但し、ｄ，ν３は、前記根ωから計算可能な不変量とする。
【０１３６】
なお、＜定理１＞について、前記根ωが前記８次円分体Ｑ（ζ８）の真部分体（８次円分体Ｑ（ζ８）の真部分集合が体となっているもの）に属している場合には、ｄ＝０が常に成立することになる。
【０１３７】
（トレース代理多項式ｕ（ｘ）の採用条件について）
＜定理１＞により、前記方程式ｕ（ｘ）＝ζ８の根ωの一意表現（ω＝ａ３ζ８３＋ａ２ζ８２＋ａ１ζ８＋ａ０）から計算される数６に示された前記不変量ｄ，ν０，ν１，ν２，ν３を計算することで、３次多項式である前記トレース代理多項式ｕ（ｘ）が決定できる。また、選択された前記根ωに適切な変換を行えば、すなわち、選択された係数ａ０，ａ１，ａ２，ａ３に適切な前記有理数体Ｑ上の線型変換（例えば、ある整数ｗ（ｗ∈Ｑ）でｗ倍する等）を行えば、前記トレース代理多項式ｕ（ｘ）は、整数係数の多項式とすることができる（ｕ（ｘ）∈Ｚ［ｘ］）。
【０１３８】
また、前記拡張補題によって、前記トレース代理多項式ｕ（ｘ）が代入された前記円周８等分多項式Φ８（ｕ（ｘ））が既約な４次多項式の分解を持つ場合、前記トレース代理多項式ｕ（ｘ）から得られる多項式（−ｕ（ｘ），ｕ（−ｘ））が代入された前記円周８等分多項式Φ８（−ｕ（ｘ）），Φ８（ｕ（−ｘ））も既約な４次多項式の分解を持つことは明らかである。ここで、前記多項式（−ｕ（ｘ），ｕ（−ｘ））は、元の方程式ｕ（ｘ）＝ζ８のガロア共役にそれぞれ対応することから、前記トレース代理多項式ｕ（ｘ）の共役な多項式（−ｕ（ｘ），ｕ（−ｘ））と呼ぶこととする。
【０１３９】
この場合、３次多項式である前記トレース代理多項式ｕ（ｘ）は、前記共役な多項式（−ｕ（ｘ），ｕ（−ｘ））と、選択された前記係数ａ０，ａ１，ａ２，ａ３に対する前記有理数体Ｑ上の線型変換とを考えて、前記トレース代理多項式ｕ（ｘ）の係数ｕ０，ｕ１，ｕ２，ｕ３を決定することができる。ここで、前記係数ｕ０，ｕ１，ｕ２，ｕ３を成分とするベクトルの形式的なユークリッド距離（ピタゴラスの定理を基にして定義される距離）を（ｕ０２＋ｕ１２＋ｕ２２＋ｕ３２）１／２として考えると、前記ユークリッド距離（（ｕ０２＋ｕ１２＋ｕ２２＋ｕ３２）１／２）は、可能な限り小さい値である程、前記トレース代理多項式ｕ（ｘ）に関する高速に計算できるがなることは明らかである。特に、前記トレース代理多項式ｕ（ｘ）の最高次係数（leading coefficient）ｕ３は、実際に計算を行うためには、ビット数が小さい必要がある。なお、前記トレース代理多項式ｕ（ｘ）の最高次係数は、ｌｃ（ｕ）で表現される場合がある（ｌｃ（ｕ）＝ｕ３）。
【０１４０】
したがって、本発明の実施例１では、前記トレース代理多項式ｕ（ｘ）の係数ｕ０，ｕ１，ｕ２，ｕ３は、以下の（１）〜（３）の条件を満たすものが採用される。
（１）共役と線型変換が行われて全て非負の正整数である（ｕ０，ｕ１，ｕ２，ｕ３∈Ｚ）
（２）前記ユークリッド距離（（ｕ０２＋ｕ１２＋ｕ２２＋ｕ３２）１／２）が最小となるような前記線型変換が行われている。
（３）前記トレース代理多項式ｕ（ｘ）の最高次係数ｕ３（ｌｃ（ｕ）＝ｕ３）のビット数がなるべく小さいこと。
この結果、前記トレース代理多項式ｕ（ｘ）は、条件（１）〜（３）を満たすものを選択することにより、＜定理１＞の条件（ｄ≠０、且つ、ν３≠０）を満たす無数の３次多項式の中から、実際の計算に適したものを選択することができる。
【０１４１】
（本発明のペアリングに適した楕円曲線のファミリを構成するアルゴリズムについて）
＜定理１＞によって、前記多項式Φ８（ｕ（ｘ））が因数分解可能である３次多項式の前記トレース代理多項式ｕ（ｘ）を得ることができる。この結果、前記拡張補題を利用したアルゴリズムと、従来公知の前記拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムとを組み合わせることにより、より多くのペアリングに適した楕円曲線のファミリを構成することができる。
【０１４２】
ここで、本発明のペアリングに適した楕円曲線のファミリを構成するアルゴリズムを以下の（１）〜（７）に示す。
（１）前記埋め込み次数ｋを８、前記ＣＭ判別式Ｄを１とする（ｋ＝８，Ｄ＝１）
（２）前記係数ａ０，ａ１，ａ２，ａ３を選択し、前記根ω（ω∈Ｑ（ζ８））を、前記１の原始８乗根ζ８による一意表現（ω＝ａ３ζ８３＋ａ２ζ８２＋ａ１ζ８＋ａ０）とする。
（３）前記不変量ｄ，ν０，ν１，ν２，ν３を計算し、ｄ＝０またはν３＝０であれば（２）に戻る。
（４）前記不変量ｄ，ν０，ν１，ν２，ν３を用いて、前記トレース代理多項式ｕ（ｘ）の係数ｕ０，ｕ１，ｕ２，ｕ３を計算し、前記トレース代理多項式ｕ（ｘ）をｕ（ｘ）＝ｕ３ｘ３＋ｕ２ｘ２＋ｕ１ｘ＋ｕ０とする。
【０１４３】
（５）前記トレース代理多項式ｕ（ｘ）が代入された前記円周８等分多項式Φ８（ｕ（ｘ））を分解し、分解された多項式の一つを前記部分群位数多項式ｒ（ｘ）とする。この場合、前記代数体Ｋ（数３参照）が、前記１の原始ｋ乗根ζｋと、（−１）１／２とを元として含むため（ζｋ，（−１）１／２∈Ｋ）、前記トレース代理多項式ｕ（ｘ）を前記１の原始ｋ乗根ζｋの前記代数体Ｋ上の多項式表現とすることができる。よって、前記トレース多項式ｔ（ｘ）を、前記トレース代理多項式ｕ（ｘ）および前記トレース代理多項式ｕ（ｘ）の共役な多項式（−ｕ（ｘ），ｕ（−ｘ））から一つを選択して＋１を加算した多項式とする（ｔ（ｘ）＝±ｕ（±ｘ）＋１）。
【０１４４】
（６）前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムの（４），（５）によって前記多項式ｙ（ｘ），ｑ（ｘ）を計算する。ここで、前記Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムの（４）において、前記（−Ｄ）１／２に対応する多項式ｓ（ｘ）については、前記トレース多項式ｔ（ｘ）を用いて計算することができる。すなわち、前記ＣＭ多項式Ｄが１に固定され（（−１）１／２）、且つ、前記１の原始８乗根ζ８の２乗ζ８２が−（−１）１／２であるため（−ζ８２＝（−１）１／２）、（−１）１／２に対応する多項式ｓ（ｘ）は、ｓ（ｘ）＝−（ｔ（ｘ）−１）２で表現できる。したがって、前記平方数多項式ｙ（ｘ）は、
ｙ（ｘ）≡（ｔ（ｘ）−２）×ｓ（ｘ）／Ｄ
≡−（ｔ（ｘ）−２）（ｔ（ｘ）−２）２  （ｍｏｄｒ（ｘ））
で計算できる。
（７）前記多項式ｒ（ｘ），ｔ（ｘ），ｑ（ｘ）が前記ペアリングに適した楕円曲線のファミリ（散在的なファミリ、完全なファミリ）か否かを、＜定義９＞の条件（１）〜（４）を全て満たすか否かにより確認する。なお、＜定義９＞の条件（５）を満たすことは、前記定義体位数多項式ｑ（ｘ）を計算した過程で、前記平方数多項式ｙ（ｘ）が得られるため、明らかである。前記ペアリングに適した楕円曲線のファミリである場合は前記多項式ｒ（ｘ），ｔ（ｘ），ｑ（ｘ）を出力して終了し、前記ペアリングに適した楕円曲線のファミリでない場合は、（２）に戻る。
【０１４５】
したがって、前記ペアリングに適した楕円曲線のファミリを構成するアルゴリズムを用いれば、前記ペアリングに適した前記楕円曲線（Ｅ／Ｆｑ）を生成することができる。
この結果、前記楕円曲線（Ｅ／Ｆｑ）上の前記ペアリングを前記暗号的ペアリング（ｅ）として利用した前記ＩＤベース暗号を用いたＩＤベース暗号システムを構築できる。本発明の実施例１のＩＤベース暗号システム（楕円曲線暗号通信システム）ＩＤＳを以下に示す。
【０１４６】
図１は、本発明の実施例１のＩＤベース暗号システムの全体説明図である。
図１において、実施例１のＩＤベース暗号システムＩＤＳは、前記ユーザＡ，Ｂが操作可能な端末としてのクライアントパソコン（第１の端末、第２の端末）ＰＣａ，ＰＣｂを有する。
前記クライアントパソコンＰＣａ，ＰＣｂは、インターネット（通信回線）１を介して、前記センタのＩＤベース暗号鍵提供サーバ（鍵生成装置、管理者装置）ＣＳに接続されている。
前記クライアントパソコンＰＣａ，ＰＣｂおよび前記ＩＤベース暗号鍵提供サーバＣＳは、コンピュータ本体Ｈ１、ディスプレイＨ２、入力装置であるキーボードＨ３、マウスＨ４、図示しないハードディスクドライブ、ＤＶＤ（Digital Versatile Disc）ドライブ等により構成されている。
【０１４７】
（実施例１の制御部の説明）
図２は、本発明の実施例１のＩＤベース暗号システムを構成する各装置の機能をブロック図（機能ブロック図）で示した図である。
（ＩＤベース暗号鍵提供サーバＣＳの制御部の説明）
図２において、前記ＩＤベース暗号鍵提供サーバＣＳのコンピュータ本体Ｈ１は、外部との信号の入出力および入出力信号レベルの調節等を行うＩ／Ｏ（入出力インターフェース）、必要な起動処理を行うためのプログラムおよびデータ等が記憶されたＲＯＭ（リードオンリーメモリ、記録媒体）、必要なデータ及びプログラムを一時的に記憶するためのＲＡＭ（ランダムアクセスメモリ、記録媒体）、ＲＯＭ等に記憶された起動プログラムに応じた処理を行うＣＰＵ（中央演算処理装置）、ならびにクロック発振器等を有しており、前記ＲＯＭ及びＲＡＭ等に記憶されたプログラムを実行することにより種々の機能を実現することができる。
【０１４８】
前記ＩＤベース暗号鍵提供サーバＣＳの前記ハードディスクドライブには、キーボードＨ３やマウスＨ４等からの入力に応じて処理を行い、ディスプレイＨ２に表示を行うオペレーティングシステム（基本ソフトウェア）ＯＳやＩＤベース暗号鍵提供プログラム（アプリケーションソフトウェア、鍵生成プログラム）ＡＰ１、その他の図示しないアプリケーションプログラムが記録されている。
前記ＩＤベース暗号鍵提供プログラムＡＰ１は、次の各機能実現手段（プログラムモジュール）を有している。
【０１４９】
前記ＩＤベース暗号鍵提供プログラムＡＰ１は、ＩＤベース暗号準備手段Ｃ１と、ＩＤベース暗号展開手段Ｃ２とを有し、前記ＩＤベース暗号のアルゴリズムの（１）準備および（２）展開を実行する。
Ｃ１：ＩＤベース暗号準備手段
ＩＤベース暗号準備手段Ｃ１は、準備開始判別手段Ｃ１Ａと、楕円曲線生成手段Ｃ１Ｂと、センタ鍵生成手段Ｃ１Ｃと、公開パラメタ生成手段Ｃ１Ｄと、センタ鍵記憶手段Ｃ１Ｅと、公開パラメタ記憶手段Ｃ１Ｆと、乱数係数再設定フラグＦＬとを有し、前記ＩＤベース暗号のアルゴリズムの（１）準備を実行する。
【０１５０】
Ｃ１Ａ：準備開始判別手段
準備開始判別手段Ｃ１Ａは、ＩＤベース暗号システムＩＤＳの準備、すなわち、前記センタ鍵（センタの秘密鍵、マスターキー）Ｋｓおよび前記公開パラメタ（素数ｒ、有限巡回群Ｇ１，Ｇ２、暗号的ペアリングｅ、整数ｎ、有限巡回群Ｇ１の生成元Ｐ、センタの公開鍵Ｓ、ハッシュ関数Ｈ１，Ｈ２）の生成を開始する入力がされたか否かを判別する。実施例１のＩＤベース暗号準備手段Ｃ１では、前記ＩＤベース暗号鍵提供サーバＣＳのユーザ、すなわち、センタの管理人の入力により、前記センタ鍵Ｋｓおよび前記公開パラメタｒ＋Ｇ１＋Ｇ２＋ｅ＋ｎ＋Ｐ＋Ｓ＋Ｈ１＋Ｈ２の生成が開始される。
【０１５１】
Ｃ１Ｂ：楕円曲線生成手段（定義パラメタ演算手段）
楕円曲線生成手段Ｃ１Ｂは、乱数係数設定手段Ｃ１B1と、３次多項式判別手段Ｃ１B2と、トレース代理多項式設定手段Ｃ１B3と、ファミリ構成手段Ｃ１B4とを有し、前記ペアリングに適した楕円曲線Ｅ／Ｆｑを生成する。
Ｃ１B1：乱数係数設定手段（乱数設定手段）
乱数係数設定手段Ｃ１B1は、乱数を発生させて、前記根多項式ω（ｘ）の係数ａ０，ａ１，ａ２，ａ３を設定する。実施例１の前記乱数係数設定手段Ｃ１B1では、前記センタの管理人により乱数の最大値ｒｍａｘが入力され、０から前記乱数の最大値ｒｍａｘまでのいずれかの整数値で係数ａ０，ａ１，ａ２，ａ３が設定される（ａ０，ａ１，ａ２，ａ３∈Ｚ）。
【０１５２】
Ｃ１B2：３次多項式判別手段
３次多項式判別手段Ｃ１B2は、判別用不変量計算手段Ｃ１B2aを有し、前記トレース代理多項式ｕ（ｘ）が３次多項式となるか否かを判別する。実施例１の３次多項式判別手段Ｃ１B2は、前記不変量ｄ，ν０，ν１，ν２，ν３のうち、３次多項式か否かを判別するための判別用不変量ｄ，ν３が、ｄ≠０、且つ、ν３≠０が成立するか否かを判別することにより、前記トレース代理多項式ｕ（ｘ）が３次多項式となるか否かを判別する。
Ｃ１B2a：判別用不変量計算手段
判別用不変量計算手段Ｃ１B2aは、前記判別用不変量ｄ，ν３を計算する。すなわち、ｄ＝（ａ１２＋ａ３２）｛（ａ１−ａ３）２＋２ａ２２｝｛（ａ１＋ａ３）２−２ａ２２｝，
ν３＝ａ３３−ａ１２ａ３＋２ａ１ａ２２
を計算する。
なお、実施例１の前記３次多項式判別手段Ｃ１B2は、前記判別用不変量ｄを、
ｄ０＝ａ１２＋ａ３２，
ｄ１＝（ａ１−ａ３）２＋２ａ２２，
ｄ２＝（ａ１＋ａ３）２−２ａ２２
に分けて（ｄ＝ｄ０×ｄ１×ｄ２）、前記判別用不変量ｄが０でないか否かを（ｄ≠０）、判別用不変量ｄ０，ｄ１，ｄ２のそれぞれが０でないか否かにより判別する（ｄ０≠０，ｄ１≠０，ｄ２≠０）。
【０１５３】
Ｃ１B3：トレース代理多項式設定手段（多項式係数演算手段）
トレース代理多項式設定手段Ｃ１B3は、設定用不変量計算手段Ｃ１B3aと、トレース係数計算手段Ｃ１B3bとを有し、前記トレース代理多項式ｕ（ｘ）の係数ｕ０，ｕ１，ｕ２，ｕ３を計算し、前記トレース代理多項式ｕ（ｘ）を設定する（ｕ（ｘ）＝ｕ３ｘ３＋ｕ２ｘ２＋ｕ１ｘ＋ｕ０）。
Ｃ１B3a：設定用不変量計算手段
設定用不変量計算手段Ｃ１B3aは、前記トレース代理多項式ｕ（ｘ）を設定するための前記不変量ν０，ν１，ν２を計算する。すなわち、
ν０＝−ａ２（５ａ１４ａ３−５ａ１３ａ２２＋５ａ１ａ２２ａ３２−２ａ２４ａ３＋３ａ３５），
ν１＝ａ１５−４ａ１３ａ３２＋９ａ１２ａ２２ａ３＋ａ１（２ａ２４＋３ａ３４）＋３ａ２２ａ３３，ν２＝ａ３３−ａ１２ａ３＋２ａ１ａ２２
を計算する。
【０１５４】
Ｃ１B3b：トレース係数計算手段
トレース係数計算手段Ｃ１B3bは、前記トレース代理多項式ｕ（ｘ）の係数ｕ０，ｕ１，ｕ２，ｕ３を計算する。すなわち、
ｕ０＝−（ν３ａ０３＋ν２ａ０２＋ν１ａ０−ν０）／ｄ，
ｕ１＝（３ν３ａ０２＋２ν２ａ０＋ν１）／ｄ，
ｕ２＝−（３ν３ａ０＋ν２）／ｄ，
ｕ３＝−ν３／ｄ
を計算する。
Ｃ１B4：ファミリ構成手段
ファミリ構成手段Ｃ１B4は、多項式分解手段Ｃ１B4aと、多項式選択手段Ｃ１B4bと、多項式計算手段Ｃ１B4cと、ファミリ判別手段Ｃ１B4dとを有し、前記ペアリングに適した楕円曲線のファミリ、すなわち、前記多項式ｒ（ｘ），ｔ（ｘ），ｑ（ｘ）を構成する。
【０１５５】
Ｃ１B4a：多項式分解手段（拡張パラメタ演算手段）
多項式分解手段Ｃ１B4aは、前記トレース代理多項式ｕ（ｘ）が代入された前記円周８等分多項式Φ８（ｕ（ｘ））を分解する（因数分解する）。実施例１の前記多項式分解手段Ｃ１B4aでは、因数分解された既約多項式は最大で３つであるため、前記既約多項式をｒ１（ｘ），ｒ２（ｘ），ｒ３（ｘ）を用意する。したがって、前記多項式分解手段Ｃ１B4aでは、因数分解の結果、
Φ８（ｕ（ｘ））＝ｒ１（ｘ）ｒ２（ｘ）ｒ３（ｘ）
となるｒ１（ｘ），ｒ２（ｘ），ｒ３（ｘ）が得られる。
Ｃ１B4b：多項式選択手段（拡張パラメタ演算手段）
多項式選択手段Ｃ１B4bは、前記多項式ｒ（ｘ），ｔ（ｘ）を選択する。実施例１の前記多項式選択手段Ｃ１B4bは、前記既約多項式ｒ１（ｘ），ｒ２（ｘ），ｒ３（ｘ）のうち、１でない多項式が前記部分群位数多項式ｒ（ｘ）として選択される（例えば、ｒ（ｘ）＝ｒ１（ｘ），ｒ１（ｘ）≠１）。また、前記多項式選択手段Ｃ１B4bは、前記トレース多項式ｔ（ｘ）を、前記トレース代理多項式ｕ（ｘ）および前記トレース代理多項式ｕ（ｘ）の共役な多項式（−ｕ（ｘ），ｕ（−ｘ））から、係数ｕ０，ｕ１，ｕ２，ｕ３が全て正整数となる一つに＋１を加算した多項式が選択される（ｔ（ｘ）＝±ｕ（±ｘ）＋１）。
【０１５６】
Ｃ１B4c：多項式計算手段（拡張パラメタ演算手段）
多項式計算手段Ｃ１B4cは、前記多項式ｙ（ｘ），ｑ（ｘ）を計算する。すなわち、
ｙ（ｘ）＝−（ｔ（ｘ）−２）（ｔ（ｘ）−２）２  （ｍｏｄｒ（ｘ）），
ｑ（ｘ）＝（ｔ（ｘ）２＋ｙ（ｘ）２）／４
を計算する。
Ｃ１B4d：ファミリ判別手段（ファミリ構成条件判別手段）
ファミリ判別手段Ｃ１B4dは、前記多項式ｒ（ｘ），ｔ（ｘ），ｑ（ｘ）が前記ペアリングに適した楕円曲線のファミリ（散在的なファミリ、完全なファミリ）であるか否かを判別する。実施例１の前記ファミリ判別手段Ｃ１B4dは、前記多項式ｒ（ｘ），ｔ（ｘ），ｑ（ｘ）が、＜定義９＞の条件（１）〜（４）を全て満たすか否かにより、前記ペアリングに適した楕円曲線のファミリであるか否かを判別する。
ＦＬ：乱数係数再設定フラグ
乱数係数再設定フラグＦＬは、初期値が「０」であり、前記３次多項式判別手段Ｃ１B2により前記トレース代理多項式ｕ（ｘ）が３次多項式とならないと判別した場合に「１」となり、前記ファミリ判別手段Ｃ１B4dにより前記多項式ｒ（ｘ），ｔ（ｘ），ｑ（ｘ）が前記ペアリングに適した楕円曲線のファミリでないと判別した場合に「１」となる。
【０１５７】
Ｃ１Ｃ：センタ鍵生成手段（鍵生成手段、管理者装置鍵生成手段）
センタ鍵生成手段Ｃ１Ｃは、前記センタ鍵（センタの秘密鍵、マスターキー）Ｋｓを生成する（０≦Ｋｓ＜ｒ）。実施例１の前記センタ鍵生成手段Ｃ１Ｃは、前記楕円曲線生成手段Ｃ１Ｂで生成された前記ペアリングに適した楕円曲線Ｅ／Ｆｑから、前記部分群Ｅ［ｒ］の位数ｒ、すなわち、前記部分群位数多項式ｒ（ｘ）に特定の変数ｘが代入された素数位数ｒを使用し、０からｒ−１までの正整数の乱数を発生させて、前記センタ鍵Ｋｓを生成する（０≦Ｋｓ＜ｒ）。
Ｃ１Ｄ：公開パラメタ生成手段（定義パラメタ演算手段）
公開パラメタ生成手段Ｃ１Ｄは、公開鍵生成手段Ｃ１D1を有し、前記公開パラメタｒ＋Ｇ１＋Ｇ２＋ｅ＋ｎ＋Ｐ＋Ｓ＋Ｈ１＋Ｈ２を生成する。実施例１の前記公開パラメタ生成手段Ｃ１Ｄは、前記センタ鍵Ｋｓと、予め設定された前記整数ｎと、前記楕円曲線生成手段Ｃ１Ｂで生成された前記楕円曲線Ｅ／Ｆｑとを使用して前記公開パラメタｒ＋Ｇ１＋Ｇ２＋ｅ＋ｎ＋Ｐ＋Ｓ＋Ｈ１＋Ｈ２を生成する。
【０１５８】
具体的には、前記公開パラメタ生成手段Ｃ１Ｄは、前記整数ｎおよび前記楕円曲線Ｅ／Ｆｑから、前記部分群Ｅ［ｒ］の位数ｒ、前記位数ｒの前記部分群Ｅ［ｒ］である前記有限巡回群Ｇ１（Ｇ１＝Ｅ［ｒ］）、前記有限巡回群Ｇ１の前記生成元Ｐ、前記拡大体Ｌの乗法群Ｌ＊である前記有限巡回群Ｇ２（Ｇ２＝Ｌ＊）、前記Ｗｅｉｌペアリングｅｒである前記暗号的ペアリングｅ（ｅ＝ｅｒ）、任意のビット列（｛０，０｝＊）から前記有限巡回群Ｇ１の乗法群Ｇ１＊への写像としてのハッシュ関数Ｈ１（Ｈ１：｛０，１｝＊→Ｇ１＊）、前記有限巡回群Ｇ２からｎ桁のビット列（｛０，１｝ｎ）への写像としてのハッシュ関数Ｈ２（Ｈ２：Ｇ２→｛０，１｝ｎ）とを生成する。また、前記公開パラメタ生成手段Ｃ１Ｄは、前記センタ鍵Ｋｓおよび前記楕円曲線Ｅ／Ｆｑから、前記公開鍵生成手段Ｃ１D1によって前記センタの公開鍵Ｓを生成する。
なお、前記部分群Ｅ［ｒ］の位数ｒ、前記定義体の位数ｑ、前記トレースｔ、特定された前記多項式ｒ（ｘ），ｔ（ｘ），ｑ（ｘ）の前記変数ｘ、前記平方数ｙ、生成された前記楕円曲線Ｅ／Ｆｑ（Ｅ：Ｙ２＝Ｘ２＋ａＸ＋ｂ）の係数ａ，ｂ、前記群Ｅ（Ｆｑ）の位数Ｎ（Ｎ＝＃Ｅ（Ｆｑ）＝ｑ＋１−ｔ）、前記有限巡回群Ｇ１，Ｇ２、前記暗号的ペアリングｅ、前記生成元Ｐ、前記ハッシュ関数Ｈ１，Ｈ２等により、実施例１の定義パラメタが構成されている。
【０１５９】
Ｃ１D1：公開鍵生成手段（鍵生成手段）
公開鍵生成手段Ｃ１D1は、前記センタの公開鍵Ｓを生成する。実施例１の前記公開鍵生成手段Ｃ１D1は、前記生成元ＰのＫｓ倍点を計算することで、前記センタの公開鍵Ｓを生成する（Ｓ＝Ｋｓ×Ｐ（Ｐ，Ｓ∈Ｇ１））。
センタ鍵記憶手段Ｃ１Ｅ
センタ鍵記憶手段Ｃ１Ｅは、前記センタ鍵生成手段Ｃ１Ｃで生成された前記センタ鍵Ｋｓを記憶する。
Ｃ１Ｆ：公開パラメタ記憶手段
公開パラメタ記憶手段Ｃ１Ｆは、前記整数ｎを予め記憶し、前記公開パラメタ生成手段Ｃ１Ｄで生成されたその他の公開パラメタｒ＋Ｇ１，Ｇ２＋ｅ＋Ｐ＋Ｓ＋Ｈ１＋Ｈ２を記憶する。
【０１６０】
Ｃ２：ＩＤベース暗号展開手段
ＩＤベース暗号展開手段Ｃ２は、ユーザ鍵・公開パラメタ送信要求受信手段Ｃ２Ａと、ユーザ鍵生成手段Ｃ２Ｂと、ユーザ鍵・公開パラメタ送信手段Ｃ２Ｃとを有し、前記ＩＤベース暗号のアルゴリズムの（２）展開を実行する。なお、実施例１の前記ＩＤベース暗号展開手段Ｃ２は、前記クライアントパソコンＰＣａ，ＰＣｂとデータの送受信を行う場合、従来公知のＳＳＬ（Secure Socket Layer）の技術を使用して前記データを暗号化することで安全に送受信したり、第３者によるなりすまし等の不正を防止したりする。なお、前記ＳＳＬを用いてデータを送受信する技術については、特開２００６−２７０５９７号公報等に記載されており、公知である。また、実施例１の前記ＩＤベース暗号展開手段Ｃ２では、安全な送受信のために前記ＳＳＬを使用するが、これに限定されず、その他の技術によって前記データを安全に送受信することも可能である。
【０１６１】
Ｃ２Ａ：ユーザ鍵・公開パラメタ送信要求受信手段
ユーザ鍵・公開パラメタ送信要求受信手段Ｃ２Ａは、前記クライアントパソコンＰＣａ，ＰＣｂから送信されたユーザ鍵（ユーザＡ，Ｂの秘密鍵Ｋａ，Ｋｂ）および前記公開パラメタｒ＋Ｇ１＋Ｇ２＋ｅ＋ｎ＋Ｐ＋Ｓ＋Ｈ１＋Ｈ２の送信を要求するユーザ鍵・公開パラメタ送信要求信号を受信する。なお、実施例１の前記ユーザ鍵・公開パラメタ送信要求信号は、前記クライアントパソコン（第１の端末）ＰＣａから送信された場合、前記ユーザＡのＩＤである公開鍵ＩＤａのデータを含んでおり、前記クライアントパソコンＰＣａから送信された場合、前記ユーザＢのＩＤである公開鍵ＩＤｂのデータを含んでいる。
Ｃ２Ｂ：ユーザ鍵生成手段（鍵生成手段）
ユーザ鍵生成手段Ｃ２Ｂは、前記ユーザ鍵・公開パラメタ送信要求信号を受信した場合に、前記公開鍵ＩＤａ，ＩＤｂから前記ユーザ鍵Ｋａ，Ｋｂを生成する。実施例１の前記ユーザ鍵生成手段Ｃ２Ｂは、前記クライアントパソコンＰＣａから前記ユーザ鍵・公開パラメタ送信要求信号を受信した場合、Ｋａ＝Ｋｓ×Ｈ１（ＩＤａ）を計算することにより前記ユーザＡのユーザ鍵Ｋａを生成し、前記クライアントパソコン（第２の端末）ＰＣｂから前記ユーザ鍵・公開パラメタ送信要求信号を受信した場合、Ｋｂ＝Ｋｓ×Ｈ１（ＩＤｂ）を計算することにより前記ユーザＢのユーザ鍵Ｋｂを生成する。
【０１６２】
Ｃ２Ｃ：ユーザ鍵・公開パラメタ送信手段
ユーザ鍵・公開パラメタ送信手段Ｃ２Ｃは、前記公開パラメタ記憶手段Ｃ１Ｆに記憶された前記公開パラメタｒ＋Ｇ１＋Ｇ２＋ｅ＋ｎ＋Ｐ＋Ｓ＋Ｈ１＋Ｈ２と、前記ユーザ鍵生成手段Ｃ２Ｂで生成された前記ユーザＡ，Ｂのユーザ鍵Ｋａ，Ｋｂとを前記クライアントパソコンＰＣａ，ＰＣｂに送信する。実施例１の前記ユーザ鍵・公開パラメタ送信手段Ｃ２Ｃは、前記クライアントパソコンＰＣａから前記ユーザ鍵・公開パラメタ送信要求信号を受信した場合、前記公開パラメタｒ＋Ｇ１＋Ｇ２＋ｅ＋ｎ＋Ｐ＋Ｓ＋Ｈ１＋Ｈ２と、前記ユーザＡのユーザ鍵Ｋａとを前記クライアントパソコンＰＣａに送信する。また、前記ユーザ鍵・公開パラメタ送信手段Ｃ２Ｃは、前記クライアントパソコンＰＣｂから前記ユーザ鍵・公開パラメタ送信要求信号を受信した場合、前記公開パラメタｒ＋Ｇ１＋Ｇ２＋ｅ＋ｎ＋Ｐ＋Ｓ＋Ｈ１＋Ｈ２と、前記ユーザＢのユーザ鍵Ｋｂとを前記クライアントパソコンＰＣａに送信する。
【０１６３】
（クライアントパソコンＰＣａ，ＰＣｂの制御部の説明）
次に、実施例１の前記クライアントパソコンＰＣａ，ＰＣｂの制御部について説明する。なお、前記クライアントパソコンＰＣｂについては、前記クライアントパソコンＰＣａと同様に構成されているため、詳細な説明を省略する。
図２において、前記クライアントパソコンＰＣａのコンピュータ本体Ｈ１は、外部との信号の入出力および入出力信号レベルの調節等を行うＩ／Ｏ（入出力インターフェース）、必要な処理を行うためのプログラムおよびデータ等が記憶されたＲＯＭ（リードオンリーメモリ、記録媒体）、必要なデータを一時的に記憶するためのＲＡＭ（ランダムアクセスメモリ、記録媒体）、ＲＯＭ等に記憶されたプログラムに応じた処理を行うＣＰＵ（中央演算処理装置）、ならびにクロック発振器等を有しており、前記ＲＯＭ等に記憶されたプログラムを実行することにより種々の機能を実現することができる。
【０１６４】
前記クライアントパソコンＰＣａの前記ハードディスクドライブには、キーボードＨ３やマウスＨ４等からの入力に応じて処理を行い、ディスプレイＨ２に表示を行うオペレーティングシステム（基本ソフトウェア）ＯＳやＩＤベース暗号秘密通信プログラム（アプリケーションソフトウェア）ＡＰ２、その他の図示しないアプリケーションプログラムが記録されている。
前記ＩＤベース暗号秘密通信プログラムＡＰ２は、次の各機能実現手段（プログラムモジュール）を有している。
【０１６５】
前記ＩＤベース暗号秘密通信プログラムＡＰ２は、ＩＤ記憶手段Ｃ１０１と、ユーザ鍵・公開パラメタ送信要求手段Ｃ１０２と、ユーザ鍵・公開パラメタ受信手段Ｃ１０３と、ユーザ鍵記憶手段Ｃ１０４と、公開パラメタ記憶手段Ｃ１０５と、メッセージ暗号化手段Ｃ１０６と、暗号文送信手段Ｃ１０７と、暗号文受信手段Ｃ１０８と、メッセージ復号化手段Ｃ１０９とを有し、前記ＩＤベース暗号のアルゴリズムの（３）暗号化および（３）復号化を実行する。
Ｃ１０１：ＩＤ記憶手段
ＩＤ記憶手段Ｃ１０１は、前記ユーザＡのＩＤである公開鍵ＩＤａを記憶する。
Ｃ１０２：ユーザ鍵・公開パラメタ送信要求手段
ユーザ鍵・公開パラメタ送信要求手段Ｃ１０２は、前記公開鍵ＩＤａをデータとして含む前記ユーザ鍵・公開パラメタ送信要求信号を前記ＩＤベース暗号鍵提供サーバＣＳに送信する。
【０１６６】
Ｃ１０３：ユーザ鍵・公開パラメタ受信手段
ユーザ鍵・公開パラメタ受信手段Ｃ１０３は、前記ユーザ鍵・公開パラメタ送信要求信号に応じて前記ＩＤベース暗号鍵提供サーバＣＳから送信された前記ユーザＡのユーザ鍵（秘密鍵）Ｋａと、前記公開パラメタｒ＋Ｇ１＋Ｇ２＋ｅ＋ｎ＋Ｐ＋Ｓ＋Ｈ１＋Ｈ２とを受信する。
なお、前記ユーザ鍵・公開パラメタ送信要求手段Ｃ１０２および前記ユーザ鍵・公開パラメタ受信手段Ｃ１０３では、前記ＩＤベース暗号鍵提供サーバＣＳと前記データ、すなわち、前記ユーザ鍵・公開パラメタ送信要求信号、前記ユーザＡのユーザ鍵（秘密鍵）Ｋａ、前記公開パラメタｒ＋Ｇ１＋Ｇ２＋ｅ＋ｎ＋Ｐ＋Ｓ＋Ｈ１＋Ｈ２を送受信する場合、安全な送受信のために前記ＳＳＬの技術が使用される。
Ｃ１０４：ユーザ鍵記憶手段
ユーザ鍵記憶手段Ｃ１０４は、前記ユーザ鍵・公開パラメタ受信手段で受信した、前記ユーザＡのユーザ鍵Ｋａを記憶する。
Ｃ１０５：公開パラメタ記憶手段
公開パラメタ記憶手段Ｃ１０５は、前記ユーザ鍵・公開パラメタ受信手段で受信した、前記公開パラメタｒ＋Ｇ１＋Ｇ２＋ｅ＋ｎ＋Ｐ＋Ｓ＋Ｈ１＋Ｈ２を記憶する。
【０１６７】
Ｃ１０６：メッセージ暗号化手段（暗号化送信手段）
メッセージ暗号化手段Ｃ１０６は、メッセージを暗号化する。実施例１の前記メッセージ暗号化手段Ｃ１０６は、前記ユーザＡが前記ユーザＢにメッセージＭ′を送信したい場合、乱数として整数Ｒａを生成し（０≦Ｒａ＜ｒ）、Ｃ１′＝Ｒａ×Ｐと、Ｃ２′＝ＸＯＲ（Ｍ′，Ｈ２（ｅ（Ｓ，Ｈ１（ＩＤｂ））Ｒａ））とを計算し、前記ユーザＡの暗号文Ｃ′を、Ｃ１′，Ｃ２′とする（Ｃ′＝［Ｃ１′，Ｃ２′］）。
Ｃ１０７：暗号文送信手段（暗号化送信手段）
暗号文送信手段Ｃ１０７は、前記暗号文Ｃ′を前記クライアントパソコンＰＣｂに送信する。
Ｃ１０８：暗号文受信手段
暗号文受信手段Ｃ１０８は、前記クライアントパソコンＰＣｂから、前記ユーザＢの前記暗号文Ｃを受信する（Ｃ＝［Ｃ１，Ｃ２］＝［Ｒｂ×Ｐ，ＸＯＲ（Ｍ，Ｈ２（ｅ（Ｓ，Ｈ１（ＩＤａ））Ｒｂ））］）。
Ｃ１０９：メッセージ復号化手段（復号化手段）
メッセージ復号化手段Ｃ１０９は、前記暗号文Ｃから、元の前記メッセージＭに復号化する。すなわち、Ｍ＝ＸＯＲ（Ｈ２（ｅ（Ｃ１，Ｋａ）），Ｃ２）を計算する。
【０１６８】
（実施例１のフローチャートの説明）
次に、実施例１のＩＤベース暗号システムＩＤＳの処理の流れをフローチャートを使用して説明する。なお、前記ＩＤベース暗号鍵提供サーバＣＳの前記ＩＤベース暗号鍵提供プログラムＡＰ１のＩＤベース暗号展開手段Ｃ２の各処理については、前記ＩＤベース暗号のアルゴリズムの（３）展開を実行するだけであるため、フローチャートによる図示及び詳細な説明を省略する。また、前記クライアントパソコンＰＣａ，ＰＣｂの前記ＩＤベース暗号秘密通信プログラムＡＰ２については、前記ＩＤベース暗号のアルゴリズムの（３）暗号化および（３）復号化を実行するだけであるため、フローチャートによる図示及び詳細な説明を省略する。
【０１６９】
（ＩＤベース暗号準備処理のフローチャートの説明）
図３は本発明の実施例１のＩＤベース暗号システムのＩＤベース暗号鍵提供サーバのＩＤベース暗号準備処理のフローチャートである。
図３のフローチャートの各ＳＴ（ステップ）の処理は、ＩＤベース暗号鍵提供サーバＣＳのＩＤベース暗号鍵提供プログラムＡＰ１に従って行われる。また、この処理はＩＤベース暗号鍵提供サーバＣＳの他の各種処理と並行して実行される。
図３に示すフローチャートはＩＤベース暗号鍵提供プログラムＡＰ１の起動により開始される。
【０１７０】
図３のＳＴ１において、ＩＤベース暗号システムＩＤＳの準備、すなわち、前記センタ鍵Ｋｓおよび前記公開パラメタｒ＋Ｇ１＋Ｇ２＋ｅ＋ｎ＋Ｐ＋Ｓ＋Ｈ１＋Ｈ２の生成を開始する入力がされたか否かを判別する。イエス（Ｙ）の場合はＳＴ２に移り、ノー（Ｎ）の場合はＳＴ１を繰り返す。
ＳＴ２において、前記ペアリングに適した楕円曲線Ｅ／Ｆｑを生成する楕円曲線生成処理（後述する図４のサブルーチン参照）を実行する。そして、ＳＴ３に移る。
ＳＴ３において、生成された前記楕円曲線Ｅ／Ｆｑおよび前記整数ｎから、前記部分群Ｅ［ｒ］の位数ｒ、前記有限巡回群Ｇ１（Ｇ１＝Ｅ［ｒ］）、前記有限巡回群Ｇ１の前記生成元Ｐ、前記有限巡回群Ｇ２（Ｇ２＝Ｌ＊）、前記暗号ペアリングｅ（ｅ＝ｅｒ）、前記ハッシュ関数Ｈ１（Ｈ１：｛０，１｝＊→Ｇ１＊）、前記ハッシュ関数Ｈ２（Ｈ２：Ｇ２→｛０，１｝ｎ）を生成する（取得する）。そして、ＳＴ４に移る。
ＳＴ４において、前記素数位数ｒを使用し、０からｒ−１までの正整数の乱数を発生させて、前記センタ鍵Ｋｓを生成する（０≦Ｋｓ＜ｒ）。そして、ＳＴ５に移る。
ＳＴ５において、前記生成元ＰのＫｓ倍点を計算することで、前記センタの公開鍵Ｓを生成する（Ｓ＝Ｋｓ×Ｐ（Ｐ，Ｓ∈Ｇ１））。そして、ＳＴ１に戻る。
【０１７１】
（楕円曲線生成処理のフローチャートの説明）
図４は楕円曲線生成処理のフローチャートであり、図３のＳＴ２のサブルーチンの説明図である。
図４のＳＴ１０１において、以下の（１）〜（５）の処理を実行し、ＳＴ１０２に移る。
（１）埋め込み次数ｋを８にセットする（ｋ＝８）。
（２）ＣＭ判別式Ｄを１にセットする（Ｄ＝１）。
（３）根多項式ω（ｘ）の係数ａ０，ａ１，ａ２，ａ３、トレース代理多項式ｕ（ｘ）の係数ｕ０，ｕ１，ｕ２，ｕ３、不変量ｄ，ｄ０，ｄ１，ｄ２，ν０，ν１，ν２，ν３を０にセットする。すなわち、
ａ０＝ａ１＝ａ２＝ａ３＝ｕ０＝ｕ１＝ｕ２＝ｕ３＝ｄ＝ｄ０＝ｄ１＝ｄ２＝ν０＝ν１＝ν２＝ν３＝０
とする。
（４）多項式ｕ（ｘ），Φ８（ｕ（ｘ）），ｒ１（ｘ），ｒ２（ｘ），ｒ３（ｘ），ｒ（ｘ），ｔ（ｘ），ｙ（ｘ），ｑ（ｘ）を０にセットする。すなわち、
ｕ（ｘ）＝Φ８（ｕ（ｘ））＝ｒ１（ｘ）＝ｒ２（ｘ）＝ｒ３（ｘ）＝ｒ（ｘ）＝ｔ（ｘ）＝ｙ（ｘ）＝ｑ（ｘ）＝０
とする。
（５）乱数係数再設定フラグＦＬを「０」にセットする（ＦＬ＝「０」）
【０１７２】
ＳＴ１０２において、乱数を発生させて、前記根多項式ω（ｘ）の係数ａ０，ａ１，ａ２，ａ３を設定する乱数係数設定処理（後述する図５のサブルーチン参照）を実行する。そして、ＳＴ１０３に移る。
ＳＴ１０３において、前記トレース代理多項式ｕ（ｘ）が３次多項式となるか否かを判別する３次多項式判別処理（後述する図６のサブルーチン参照）を実行する。そして、ＳＴ１０４に移る。
ＳＴ１０４において、前記乱数係数再設定フラグＦＬが「１」であるか否かを判別することにより、前記乱数係数設定処理を再度実行する必要があるか否かを判別する。ノー（Ｎ）の場合はＳＴ１０５に移り、イエス（Ｙ）の場合はＳＴ１０９に移る。
ＳＴ１０５において、前記トレース代理多項式ｕ（ｘ）の係数ｕ０，ｕ１，ｕ２，ｕ３を計算し、前記トレース代理多項式ｕ（ｘ）を設定するトレース代理多項式設定処理（後述する図７のサブルーチン参照）を実行する。そして、ＳＴ１０６に移る。
【０１７３】
ＳＴ１０６において、前記ペアリングに適した楕円曲線のファミリである前記多項式ｒ（ｘ），ｔ（ｘ），ｑ（ｘ）を構成するファミリ構成処理（後述する図８のサブルーチン参照）を実行する。そして、ＳＴ１０７に移る。
ＳＴ１０７において、前記乱数係数再設定フラグＦＬが「１」であるか否かを判別することにより、前記乱数係数設定処理を再度実行する必要があるか否かを判別する。ノー（Ｎ）の場合はＳＴ１０８に移り、イエス（Ｙ）の場合はＳＴ１０９に移る。
ＳＴ１０８において、得られた前記多項式ｒ（ｘ），ｔ（ｘ），ｑ（ｘ）を前記ペアリングに適した楕円曲線のファミリとし、適切な前記変数ｘを特定して前記楕円曲線Ｅ／Ｆｑを出力する。そして、前記楕円曲線生成処理を終了して、図３のＩＤベース暗号準備処理に戻る。
ＳＴ１０９において、前記乱数係数再設定フラグＦＬを「０」にセットする（ＦＬ＝「０」）。そして、ＳＴ１０２に戻る。
【０１７４】
（乱数係数設定処理のフローチャートの説明）
図５は乱数係数設定処理のフローチャートであり、図４のＳＴ１０２のサブルーチンの説明図である。
図５のＳＴ２０１において、カウンタｃｎｔを０にセットする（ｃｎｔ＝０）。そして、ＳＴ２０２に移る。
ＳＴ２０２において、係数ａｃｎｔに０から前記乱数の最大値ｒｍａｘまでの整数値で乱数を発生させて得られた値をセットする（０≦ａｃｎｔ≦ｒｍａｘ）。ここで、ａｃｎｔはカウンタｃｎｔの値によってａ０，ａ１，ａ２，ａ３となる値である。そして、ＳＴ２０３に移る。
ＳＴ２０３において、前記カウンタｃｎｔに＋１を加算する（ｃｎｔ＝ｃｎｔ＋１）。そして、ＳＴ２０４に移る。
ＳＴ２０４において、前記カウンタｃｎｔが４であるか否かを判別する。ノー（Ｎ）の場合はＳＴ２０２に戻り、イエス（Ｙ）の場合は前記乱数係数設定処理を終了して、図４の楕円曲線生成処理に戻る。
【０１７５】
（３次多項式判別処理のフローチャートの説明）
図６は３次多項式判別処理のフローチャートであり、図４のＳＴ１０３のサブルーチンの説明図である。
図６のＳＴ３０１において、判別用不変量ｄ０について、ｄ０＝（ａ１２＋ａ３２）を計算する。そして、ＳＴ３０２に移る。
ＳＴ３０２において、前記判別用不変量ｄ０が０であるか否かを判別する。ノー（Ｎ）の場合はＳＴ３０３に移り、イエス（Ｙ）の場合はＳＴ３１０に移る。
ＳＴ３０３において、判別用不変量ｄ１について、ｄ１＝（ａ１−ａ３）２＋２ａ２２を計算する。そして、ＳＴ３０４に移る。
ＳＴ３０４において、前記判別用不変量ｄ１が０であるか否かを判別する。ノー（Ｎ）の場合はＳＴ３０５に移り、イエス（Ｙ）の場合はＳＴ３１０に移る。
【０１７６】
ＳＴ３０５において、判別用不変量ｄ２について、ｄ２＝（ａ１＋ａ３）２−２ａ２２を計算する。そして、ＳＴ３０６に移る。
ＳＴ３０６において、前記判別用不変量ｄ２が０であるか否かを判別する。ノー（Ｎ）の場合はＳＴ３０７に移り、イエス（Ｙ）の場合はＳＴ３１０に移る。
ＳＴ３０７において、判別用不変量ｄについて、ｄ＝ｄ０×ｄ１×ｄ２を計算する。そして、ＳＴ３０８に移る。
ＳＴ３０８において、判別用不変量ν３について、ν３＝ａ３３−ａ１２ａ３＋２ａ１ａ２２を計算する。そして、ＳＴ３０９に移る。
ＳＴ３０９において、前記判別用不変量ν３が０であるか否かを判別する。イエス（Ｙ）の場合はＳＴ３１０に移り、ノー（Ｎ）の場合は前記３次多項式判別処理を終了して、図４の楕円曲線生成処理に戻る。
ＳＴ３１０において、前記乱数係数再設定フラグＦＬを「１」にセットする（ＦＬ＝「１」）。そして、前記３次多項式判別処理を終了して、図４の楕円曲線生成処理に戻る。
【０１７７】
（トレース代理多項式設定処理のフローチャートの説明）
図７はトレース代理多項式設定処理のフローチャートであり、図４のＳＴ１０５のサブルーチンの説明図である。
図７のＳＴ４０１において、判別用不変量ν０，ν１，ν２について、
ν０＝−ａ２（５ａ１４ａ３−５ａ１３ａ２２＋５ａ１ａ２２ａ３２−２ａ２４ａ３＋３ａ３５），
ν１＝ａ１５−４ａ１３ａ３２＋９ａ１２ａ２２ａ３＋ａ１（２ａ２４＋３ａ３４）＋３ａ２２ａ３３，ν２＝ａ３３−ａ１２ａ３＋２ａ１ａ２２
を計算する。そして、ＳＴ４０２に移る。
ＳＴ４０２において、前記トレース代理多項式ｕ（ｘ）の係数ｕ０，ｕ１，ｕ２，ｕ３について、
ｕ０＝−（ν３ａ０３＋ν２ａ０２＋ν１ａ０−ν０）／ｄ，
ｕ１＝（３ν３ａ０２＋２ν２ａ０＋ν１）／ｄ，
ｕ２＝−（３ν３ａ０＋ν２）／ｄ，
ｕ３＝−ν３／ｄ
を計算する。そして、ＳＴ４０３に移る。
ＳＴ４０３において、前記トレース代理多項式ｕ（ｘ）を設定する（ｕ（ｘ）＝ｕ３ｘ３＋ｕ２ｘ２＋ｕ１ｘ＋ｕ０）。そして、前記トレース代理多項式設定処理を終了して、図４の楕円曲線生成処理に戻る。
【０１７８】
（ファミリ構成処理のフローチャートの説明）
図８はファミリ構成処理のフローチャートであり、図４のＳＴ１０６のサブルーチンの説明図である。
図８のＳＴ５０１において、前記カウンタｃｎｔを１にセットする（ｃｎｔ＝１）。そして、ＳＴ５０２に移る。
ＳＴ５０２において、前記トレース代理多項式ｕ（ｘ）が代入された前記円周８等分多項式Φ８（ｕ（ｘ））を因数分解し、
Φ８（ｕ（ｘ））＝ｒ１（ｘ）ｒ２（ｘ）ｒ３（ｘ）
となる前記既約多項式ｒ１（ｘ），ｒ２（ｘ），ｒ３（ｘ）を設定する。そして、ＳＴ５０３に移る。
ＳＴ５０３において、前記部分群位数多項式ｒ（ｘ）として、ｒｃｎｔ（ｘ）を設定する。ここで、ｒｃｎｔ（ｘ）は、カウンタｃｎｔの値によってｒ１（ｘ），ｒ２（ｘ），ｒ３（ｘ）となる多項式である。そして、ＳＴ５０４に移る。
ＳＴ５０４において、前記部分群位数多項式ｒ（ｘ）が１であるか否かを判別することにより、前記部分群位数多項式ｒ（ｘ）が既約多項式であるか否かを判別する。ノー（Ｎ）の場合はＳＴ５０５に移り、イエス（Ｙ）の場合はＳＴ５０９に移る。
【０１７９】
ＳＴ５０５において、前記トレース多項式ｔ（ｘ）を、前記トレース代理多項式ｕ（ｘ）および前記トレース代理多項式ｕ（ｘ）の共役な多項式（−ｕ（ｘ），ｕ（−ｘ））から、係数ｕ０，ｕ１，ｕ２，ｕ３が全て正整数となる一つに＋１を加算した多項式として設定する（ｔ（ｘ）＝±ｕ（±ｘ）＋１）。そして、ＳＴ５０６に移る。
ＳＴ５０６において、前記平方数多項式ｙ（ｘ）を計算する。すなわち、
ｙ（ｘ）＝−（ｔ（ｘ）−２）（ｔ（ｘ）−２）２  （ｍｏｄｒ（ｘ））
を計算する。そして、ＳＴ５０７に移る。
ＳＴ５０７において、前記定義体位数多項式ｑ（ｘ）を計算する。すなわち、
ｑ（ｘ）＝（ｔ（ｘ）２＋ｙ（ｘ）２）／４
を計算する。そして、ＳＴ５０８に移る。
ＳＴ５０８において、前記多項式ｒ（ｘ），ｔ（ｘ），ｑ（ｘ）が、＜定義９＞の条件（１）〜（４）を全て満たすか否かにより、前記ペアリングに適した楕円曲線のファミリであるか否かを判別する。ノー（Ｎ）の場合はＳＴ５０９に移り、イエス（Ｙ）の場合は前記ファミリ構成処理を終了して、図４の楕円曲線生成処理に戻る。
ＳＴ５０９において、前記カウンタｃｎｔが３であるか否かを判別する。ノー（Ｎ）の場合はＳＴ５１０に移り、イエス（Ｙ）の場合はＳＴ５１１に移る。
ＳＴ５１０において、前記カウンタｃｎｔに＋１を加算する（ｃｎｔ＝ｃｎｔ＋１）。そして、ＳＴ５０３に戻る。
ＳＴ５１１において、前記乱数係数再設定フラグＦＬを「１」にセットする（ＦＬ＝「１」）。そして、前記ファミリ構成処理を終了して、図４の楕円曲線生成処理に戻る。
【０１８０】
（実施例１の作用）
前記構成を備えた実施例１のＩＤベース暗号システムＩＤＳにおいて、前記ＩＤベース暗号鍵提供サーバＣＳは、前記楕円曲線生成処理（図３〜図８参照）を実行することにより、本発明のペアリングに適した楕円曲線のファミリを構成するアルゴリズムの（１）〜（７）が実行できる。すなわち、＜定理１＞により、前記多項式Φ８（ｕ（ｘ））が因数分解可能な３次多項式の前記トレース代理多項式ｕ（ｘ）を得ることができ（図６、図７参照）、且つ、前記拡張補題を利用したアルゴリズムと、従来公知の前記拡張Ｂｒｅｚｉｎｇ−Ｗｅｎｇ法のアルゴリズムとを組み合わせることにより、前記ペアリングに適した楕円曲線のファミリを構成することができる（図８参照）。
【０１８１】
（実験例）
ここで、前記ＩＤベース暗号鍵提供サーバＣＳが、前記楕円曲線生成処理により、実際に前記ペアリングに適した楕円曲線Ｅ／Ｆｑを生成できるか否かを調べるために、以下の条件で実験を行った。
【０１８２】
（実験条件）
前記根多項式ω（ｘ）の係数ａ０，ａ１，ａ２，ａ３について、各係数の範囲を１から３００（ｒｍａｘ＝３００、図５のＳＴ２０２参照）とし、前記係数ａ０，ａ１，ａ２，ａ３の全ての組合せについて、次の（１）〜（４）の処理を実行した。なお、各係数の範囲を１から３００とした場合、前記係数ａ０，ａ１，ａ２，ａ３の組合せは、８．１×１０９通りとなる（３００４＝８．１×１０９）。
（１）前記係数ａ０，ａ１，ａ２，ａ３の組合せを設定し、前記３次多項式判別処理（図６のＳＴ３０１〜ＳＴ３１０参照）および前記トレース代理多項式設定処理（図７参照のＳＴ４０１〜ＳＴ４０３参照）を実行する。この結果、前記トレース代理多項式ｕ（ｘ）（ｕ（ｘ）∈Ｚ［ｘ］）が得られた場合は（２）に進み、得られない場合は次の前記係数ａ０，ａ１，ａ２，ａ３の組合せで（１）を再試行する（図３のＳＴ１０４参照）。
（２）前記トレース代理多項式ｕ（ｘ）の最高次係数ｌｃ（ｕ）が１０２３より小さくなるか否かを判別する（ｌｃ（ｕ）＜１０２３，ｌｃ（ｕ）＝ｕ３）。前記最高次係数ｌｃ（ｕ）が１０２３より小さくなる場合は（３）に進み、１０２３以上の場合は（１）に戻る。
【０１８３】
（３）前記トレース代理多項式ｕ（ｘ）が代入された前記円周８等分多項式Φ８（ｕ（ｘ））を因数分解する（図８のＳＴ５０２参照）。因数分解した結果、前記部分群位数多項式ｒ（ｘ）が４次多項式の場合は前記定義体位数多項式ｑ（ｘ）を計算して（図８のＳＴ５０３〜ＳＴ５０７参照）（４）に進み、４次多項式以外の場合はその旨を出力して（１）に戻る。
（４）前記多項式ｒ（ｘ），ｔ（ｘ），ｑ（ｘ）が前記ペアリングに適した楕円曲線Ｅ／Ｆｑのファミリであるか否かを判定する（図８のＳＴ５０８参照）。ファミリの場合には、前記多項式ｒ（ｘ），ｔ（ｘ），ｑ（ｘ）および前記ρ値（ρ（ｔ，ｒ，ｑ）＝２×ｍａｘ｛ｄｅｇ（ｔ（ｘ）），ｄｅｇ（ｙ（ｘ））｝／ｄｅｇ（ｒ（ｘ）））を出力して（１）に戻り、ファミリでない場合はその理由を出力して（１）に戻る。
【０１８４】
（実験結果）
なお、前記実験例では、前記ＩＤベース暗号鍵提供サーバＣＳとして、ＣＰＵがＡＭＤ社製のＯｐｔｅｒｏｎ２４６の計算機を独占して使用した。その結果、約５日間で８．１×１０９通りの全ての計算を終了することができた。
図９は実験例の実験結果の説明図であり、トレース代理多項式の最高次係数が１０２３より小さい場合にペアリングに適した楕円曲線のファミリを計算した結果を纏めた説明図である。
図９に示すように、前記トレース代理多項式ｕ（ｘ）の最高次係数ｌｃ（ｕ）（ｌｃ（ｕ）＝ｕ３）が８２、６２６、７３８の場合（ｌｃ（ｕ）＝８２，６２６，７３８）、前記多項式ｒ（ｘ），ｑ（ｘ）が整数係数の既約多項式であり（ｒ（ｘ），ｑ（ｘ）∈Ｚ［ｘ］）、且つ、特定の変数ｘを代入した場合に共に素数となる場合があることが判明した。
【０１８５】
（埋め込み次数８のペアリングに適した楕円曲線のファミリの計算について）
ここで、前記トレース代理多項式ｕ（ｘ）の最高次係数ｌｃ（ｕ）が８２の場合について考える（ｌｃ（ｕ）＝８２）。前記トレース代理多項式ｕ（ｘ）の最高次係数ｌｃ（ｕ）が８２の場合には、以下の＜定理２＞を示すことができる。
＜定理２＞
前記トレース代理多項式ｕ（ｘ）の最高次係数ｌｃ（ｕ）が８２の場合、前記多項式ｔ（ｘ），ｒ（ｘ），ｑ（ｘ）は、
ｔ（ｘ）＝−８２ｘ３−１０８ｘ２−５４ｘ−８，
ｒ（ｘ）＝８２ｘ４＋１０８ｘ３＋５４ｘ２＋１２ｘ＋１，
ｑ（ｘ）＝３７９９０６ｘ６＋７９９００８ｘ５＋７０５３４６ｘ４＋３３３６１４ｘ３＋８８９４５ｘ２＋１２６３６ｘ＋７４５
で表現できる。この場合、前記多項式ｔ（ｘ），ｒ（ｘ），ｑ（ｘ）は、前記埋め込み次数ｋが８（ｋ＝８）、前記ＣＭ判別式Ｄが１（Ｄ＝１）となる前記ペアリングに適した楕円曲線Ｅ／Ｆｑのファミリを構成し、前記多項式ｔ（ｘ），ｒ（ｘ），ｑ（ｘ）から計算された前記ペアリングに適した楕円曲線Ｅ／Ｆｑのパラメタｔ，ｒ，ｑ（＜定義７＞参照）を生成できる。
【０１８６】
＜定理２＞の証明は、ｘ＝１０４の場合に、＜定義７＞の条件（１）〜（５）を全て満たす前記ペアリングに適した楕円曲線Ｅ／Ｆｑのパラメタｔ，ｒ，ｑ，ｋ，Ｄが得られるため、明らかである。
また、実際に前記ＩＤベース暗号に利用するような前記ペアリングに適した楕円曲線Ｅ／Ｆｑを生成するためには、前記多項式ｒ（ｘ），ｑ（ｘ）について、前記部分群Ｅ［ｒ］の位数ｒと、前記定義体Ｆｑの位数ｑとが大きな素数となる前記変数ｘを特定する必要がある。この問題については、次の＜定理３＞を与えることにより解決できる。
＜定理３＞
＜定理２＞で与えられた前記定義体位数多項式ｑ（ｘ）（ｑ（ｘ）＝３７９９０６ｘ６＋７９９００８ｘ５＋７０５３４６ｘ４＋３３３６１４ｘ３＋８８９４５ｘ２＋１２６３６ｘ＋７４５）に特定の変数ｘを代入した値が素数となる場合、前記変数ｘを３０で割った剰余が１４と２４のいずれかとなる（ｘ≡１４，２４  （ｍｏｄ３０））
【０１８７】
（＜定理３＞の証明）
前記定義体位数多項式ｑ（ｘ）の係数から、前記変数ｘが奇数の場合、前記定義体位数多項式ｑ（ｘ）が偶数となることは明らかである。すなわち、奇数の冪乗は必ず奇数であるため、各係数の加算の結果が偶数であれば、前記変数ｘが任意の奇数の場合、前記定義体位数多項式ｑ（ｘ）に前記変数ｘを代入した値が常に偶数となる。例えば、前記変数ｘが１の場合、
ｑ（１）＝３７９９０６＋７９９００８＋７０５３４６＋３３３６１４＋８８９４５＋１２６３６＋７４５＝２３２０２００
となり、前記変数ｘが任意の奇数の場合には、前記定義体位数多項式ｑ（ｘ）が常に偶数であることがいえる。すなわち、前記変数ｘが奇数の場合（ｘ≡１  （ｍｏｄ２））、ｑ（ｘ）≡０  （ｍｏｄ２）が成立する。
また、定数項である７４５が５の倍数であることに着目すると、ｑ（ｘ）を５で割った剰余（ｑ（ｘ）  （ｍｏｄ５））は、
ｑ（ｘ）≡ｘ６＋３ｘ５＋ｘ４＋４ｘ３＋ｘ  （ｍｏｄ５）
で表現できる。この場合、前記変数ｘを５で割った剰余が４以外、すなわち、ｘ≡０，１，２，３  （ｍｏｄ５）の場合、ｑ（ｘ）≡０  （ｍｏｄ５）となることがわかる。
さらに、ｑ（ｘ）を３で割った剰余（ｑ（ｘ）  （ｍｏｄ３））は、
ｑ（ｘ）≡ｘ６＋ｘ４＋２ｘ３＋ｘ２＋１  （ｍｏｄ３）
で表現できる。この場合、前記変数ｘを３で割った剰余が１の場合のみ（ｘ＝１  （ｍｏｄ３））、ｑ（ｘ）≡０  （ｍｏｄ５）となることがわかる。
【０１８８】
ここで、これらの結果について、中国剰余定理を適用する。なお、前記中国剰余定理とは、変数をｘ、与えられたｗ個の整数をｍ１，ｍ２，…，ｍｗ、任意に与えられるｗ個の整数をｎ１，ｎ２，…，ｎｗとした場合、
ｘ≡ｎ１  （ｍｏｄｍ１），ｘ≡ｎ２  （ｍｏｄｍ２），…，ｘ≡ｎｗ  （ｍｏｄｍｗ）
を全て満たす前記変数ｘが、前記整数ｍ１，ｍ２，…，ｍｗの積ｍ１×ｍ２×…×ｍｗの範囲で必ず得られるという公知の定理である。
したがって、前記中国剰余定理を適用した結果、前記定義体位数多項式ｑ（ｘ）に特定の変数ｘを代入した値が素因数２，３，５を持つ場合、前記変数ｘを３０で割った剰余が（３０＝２×３×５）、ｘ≡１  （ｍｏｄ２），ｘ≡０，１，２，３  （ｍｏｄ５），ｘ＝１  （ｍｏｄ３）を全て満たすことになる。すなわち、前記変数ｘを３０で割った剰余が１４、２４以外の場合は全てこの条件を全て満たすことになる。
よって、前記定義体位数多項式ｑ（ｘ）に特定の変数ｘを代入した値が素因数２，３，５を持たない場合、前記変数ｘを３０で割った剰余が１４、２４になるといえる（ｘ≡１４，２４  （ｍｏｄ３０））。□（証明おわり、Q.E.D）
【０１８９】
したがって、＜定理３＞を利用すれば、前記変数ｘを大きくした場合でも、前記部分群Ｅ［ｒ］の位数ｒと、前記定義体Ｆｑの位数ｑとが共に素数となる前記変数ｘを容易に特定できる。この結果、実際に前記ＩＤベース暗号に使用するような大きな値の素数ｒ，ｑを得ることができ、前記楕円曲線Ｅ／Ｆｑを構成することができる。すなわち、前記ＣＭ法のアルゴリズム（１）〜（４）で使用されるパラメタｔ，ｒ，ｑ，ｋ，Ｄ，ｙを全て揃えることができる。
（楕円曲線Ｅ／Ｆｑの生成例について）
ここで、前記楕円曲線Ｅ／Ｆｑの定数をａ、前記楕円曲線Ｅ／ＦｑをＥ：Ｙ２≡Ｘ３＋ａＸ  （ｍｏｄｑ）（ａ≠０）とし、前記楕円曲線Ｅ／Ｆｑを、＜定理２＞および＜定理３＞に基づいて実際に生成した。なお、前記楕円曲線Ｅ／ＦｑをＥ：Ｙ２≡Ｘ３＋ａＸ  （ｍｏｄｑ）（ａ≠０）とした場合、すなわち、定数項（ｂ）が存在しない場合、前記トレースｔが４で割り切れる値であることから（４｜ｔ）、前記ＣＭ法のアルゴリズムの（１）〜（４）で使用されるパラメタｔ，ｒ，ｑ，Ｄ，ｙ，Ｎ（Ｎ＝＃Ｅ（Ｆｑ）＝ｑ＋１−ｔ）は、前記ＣＭ方程式Ｄｙ２＝４ｑ−ｔ２を計算し易く（ＣＭ法のアルゴリズム（２）参照）、前記定数ａを高速に計算できる（ＣＭ法のアルゴリズム（３），（４）参照）。また、この場合、前記群Ｅ（Ｆｑ）の２倍点の計算を高速化できることが知られている。
【０１９０】
まず、前記変数ｘを、ｘ＝２４００００００００００１０３９４とした場合に、前記楕円曲線Ｅ／Ｆｑ（ＦｑをＥ：Ｙ２≡Ｘ３＋ａＸ  （ｍｏｄｑ）（ａ≠０））の生成に成功した。前記楕円曲線Ｅ／Ｆｑを生成した結果、得られた前記パラメタｑ，ｒ，ｔ，Ｎ，ａ（ｋ＝８，Ｄ＝１）を、以下の数７で示す。
【０１９１】
【数７】
2008216493.tif 000010
【０１９２】
この場合、前記変数ｘのビット数（ｌｇｘ＝ｌｏｇ２ｘ）は、約５５ビット（ｌｇｘ≒５４．４）となる。また、前記部分群Ｅ［ｒ］の位数ｒのビット数（ｌｇｒ＝ｌｏｇ２ｒ）は、約２２４ビット（ｌｇｒ≒２２４．０）、前記定義体Ｆｑの位数ｑのビット数（ｌｇｑ＝ｌｏｇ２ｑ）は、約３４５ビット（ｌｇｑ≒３４５．０，ｋ×ｌｇｑ≒８×３４５．０＝２７６０．０）となる。したがって、数１の前記セキュリティ評価から、前記暗号鍵のビット数が１１２ビットの共通鍵暗号のアルゴリズムであるＴｒｉｐｌｅＤＥＳと同等の安全性を確保できる楕円曲線Ｅ／Ｆｑが生成できたことになる。なお、この場合、前記ρ値（ρ（Ｅ）＝ｌｏｇｑ／ｌｏｇｒ）は、約１．５４であった（ρ（Ｅ）＝ｌｇｑ／ｌｇｒ≒３４５／２２４≒１．５４）。
次に、前記変数ｘを、ｘ＝６１３０４０００００００００２９６３４とした場合に、前記楕円曲線Ｅ／Ｆｑ（ＦｑをＥ：Ｙ２≡Ｘ３＋ａＸ  （ｍｏｄｑ）（ａ≠０））の生成に成功した。前記楕円曲線Ｅ／Ｆｑを生成した結果、得られた前記パラメタｑ，ｒ，ｔ，Ｎ，ａ（ｋ＝８，Ｄ＝１）を、以下の数８で示す。
【０１９３】
【数８】
2008216493.tif 000011
【０１９４】
この場合、前記変数ｘのビット数（ｌｇｘ＝ｌｏｇ２ｘ）は、約６３ビット（ｌｇｘ≒６２．４）となる。また、前記部分群Ｅ［ｒ］の位数ｒのビット数（ｌｇｒ＝ｌｏｇ２ｒ）は、約２５６ビット（ｌｇｒ≒２５６．０）、前記定義体Ｆｑの位数ｑのビット数（ｌｇｑ＝ｌｏｇ２ｑ）は、約３９３ビット（ｌｇｑ≒３９３．０，ｋ×ｌｇｑ≒８×３９３．０＝３１４４．０）となる。したがって、数１の前記セキュリティ評価から、前記暗号鍵のビット数が１１２ビットの前記共通鍵暗号のアルゴリズムであるＡＥＳ−Ｓｍａｌｌと同等の安全性を確保できる楕円曲線Ｅ／Ｆｑが生成できたことになる。なお、この場合、前記ρ値（ρ（Ｅ）＝ｌｏｇｑ／ｌｏｇｒ）は、約１．５４であった（ρ（Ｅ）＝ｌｇｑ／ｌｇｒ≒３９３／２５６≒１．５４）。
【０１９５】
したがって、実施例１の前記ＩＤベース暗号鍵提供サーバＣＳは、前記変数ｘのビット数を調節することで、前記部分群Ｅ［ｒ］の位数ｒのビット数（ｌｇｒ＝ｌｏｇ２ｒ）と、前記定義体Ｆｑの位数ｑのビット数とを調節できるため、前記ペアリングに適した楕円曲線Ｅ／Ｆｑの安全性の高さを調節して生成することができる。ここで、前記ＩＤベース暗号鍵提供サーバＣＳが生成する前記楕円曲線Ｅ／Ｆｑは、前記埋め込み次数ｋが８である（ｋ＝８）。すなわち、前記Ｗｅｉｌペアリングｅｒ（ｅｒ＝ｅ）の写像である前記各大体Ｌが、前記定義体Ｆｑの８次拡大体（Ｆｑ）８（（Ｆｑ）８＝Ｌ）になるため、従来公知の超特異楕円曲線と比べて、安全性が高くなる。この結果、前記超特異楕円曲線と同等の安全性で使用する場合には、前記パラメタｒ，ｑ等のビット長（ビット数）を短くできるため、前記楕円曲線Ｅ／Ｆｑの生成や、前記群Ｅ（Ｆｑ）上の有理点の計算、前記Ｗｅｉｌペアリングｅｒの計算等を高速化できる。
【０１９６】
さらに、実施例１の前記ＩＤベース暗号鍵提供サーバＣＳは、生成された前記楕円曲線Ｅ／Ｆｑから、前記ＩＤベース暗号の前記公開パラメタｒ＋Ｇ１＋Ｇ２＋ｅ＋ｎ＋Ｐ＋Ｓ＋Ｈ１＋Ｈ２を生成することができる（図３のＳＴ３参照）。特に、前記ＩＤベース暗号鍵提供サーバＣＳは、乱数である前記センタ鍵Ｋｓと前記有限巡回群Ｇ１（Ｇ１＝Ｅ［ｒ］）の生成元Ｐとを用いて、前記センタの公開鍵Ｓを生成できる。すなわち、前記ＩＤベース暗号鍵提供サーバＣＳは、前記有限巡回群Ｇ１上の前記生成元ＰのＫｓ倍点を求めることにより前記センタの公開鍵Ｓを計算することができる（図３のＳＴ４，ＳＴ５参照）。この結果、前記ＩＤベース暗号鍵提供サーバＣＳは、生成された前記楕円曲線Ｅ／Ｆｑによって、前記ＩＤベース暗号のアルゴリズムの（１）準備を実現することができる。
【産業上の利用可能性】
【０１９７】
（変更例）
以上、本発明の実施例を詳述したが、本発明は、前記実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内で、種々の変更を行うことが可能である。本発明の変更例（Ｈ01）〜（Ｈ03）を下記に例示する。
（Ｈ01）本発明の実施例１では、前記楕円曲線生成処理（図３〜図８参照）で生成された楕円曲線Ｅ／Ｆｑは、前記ＩＤベース暗号のアルゴリズムに使用したが、これに限定されず、例えば、前記楕円曲線暗号（公開鍵暗号）のアルゴリズムに前記楕円曲線Ｅ／Ｆｑを利用したり、前記Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎの鍵配送のアルゴリズムに暗号的ペアリングｅを利用したりする場合にも使用できる。また、生成した秘密鍵や公開鍵を利用して、一般的な、公開鍵暗号およびディジタル署名等の技術に適用することも可能である。
【０１９８】
（Ｈ02）本発明の実施例１では、前記埋め込み次数ｋを８に固定したが（ｋ＝８）、これに限定されず、例えば、ｋ＝１２の場合も同様に３次多項式の前記トレース代理多項式ｕ（ｘ）を得ることができ、前記ペアリングに適した前記楕円曲線Ｅ／Ｆｑを得ることが可能である。また、前記オイラー関数φ（ｋ）が４より大きい場合、例えば、前記オイラー関数φ（ｋ）＝６の場合、すなわち、ｋ＝７，９，１４，１８の場合にも、３次多項式の前記トレース代理多項式ｕ（ｘ）を同様に得ることができる可能性がある。さらに、前記オイラー関数φ（ｋ）が４より大きい場合、前記トレース代理多項式ｕ（ｘ）は、３次多項式に限定されず、４次以上の多項式に拡張して生成できる可能性がある。この場合、前記トレース代理多項式ｕ（ｘ）が代入された前記円周８等分多項式Φ８（ｕ（ｘ））は、より多くの分解を考えることが可能であり、より多くの前記多項式ｒ（ｘ），ｔ（ｘ），ｑ（ｘ）を得られる可能性がある。すなわち、より多くの前記楕円曲線Ｅ／Ｆｑを得ることができる可能性がある。
【０１９９】
（Ｈ03）本発明の実施例１では、前記トレース代理多項式ｕ（ｘ）の最高次係数ｌｃ（ｕ）が８２の場合に、前記変数ｘを２４００００００００００１０３９４と６１３０４０００００００００２９６３４として前記楕円曲線Ｅ／Ｆｑを生成したが、これに限定されず、その他の前記変数ｘ（ｘ≡１４，２４  （ｍｏｄ３０））の場合も前記楕円曲線Ｅ／Ｆｑを生成することが可能である。また、実施例１では、前記最高次係数ｌｃ（ｕ）が８２の場合のみ前記楕円曲線Ｅ／Ｆｑを生成したが、これに限定されず、前記最高次係数ｌｃ（ｕ）が６２６，７３８の場合や、最高次係数ｌｃ（ｕ）が１０２３以上の場合も前記楕円曲線Ｅ／Ｆｑを生成することが可能である。
【図面の簡単な説明】
【０２００】
【図１】図１は、本発明の実施例１のＩＤベース暗号システムの全体説明図である。
【図２】図２は、本発明の実施例１のＩＤベース暗号システムを構成する各装置の機能をブロック図（機能ブロック図）で示した図である。
【図３】図３は本発明の実施例１のＩＤベース暗号システムのＩＤベース暗号鍵提供サーバのＩＤベース暗号準備処理のフローチャートである。
【図４】図４は楕円曲線生成処理のフローチャートであり、図３のＳＴ２のサブルーチンの説明図である。
【図５】図５は乱数係数設定処理のフローチャートであり、図４のＳＴ１０２のサブルーチンの説明図である。
【図６】図６は３次多項式判別処理のフローチャートであり、図４のＳＴ１０３のサブルーチンの説明図である。
【図７】図７はトレース代理多項式設定処理のフローチャートであり、図４のＳＴ１０５のサブルーチンの説明図である。
【図８】図８はファミリ構成処理のフローチャートであり、図４のＳＴ１０６のサブルーチンの説明図である。
【図９】図９は実験例の実験結果の説明図であり、トレース代理多項式の最高次係数が１０２３より小さい場合にペアリングに適した楕円曲線のファミリを計算した結果を纏めた説明図である。
【符号の説明】
【０２０１】
ζｋ…１の原始ｋ乗根、φ（ｋ）…オイラーのφ関数、ω（ｘ）…１の原始ｋ乗根ζｋと共役な原始ｋ乗根の多項式表現、多項式、Ａ，Ｂ…利用者、Ａ…第１の利用者、ａ０，ａ１，…，ａφ（ｋ）−１…多項式ω（ｘ）の係数、Ｂ…第２の利用者、Ｃ，Ｃ′…暗号化された情報、Ｃ１Ｂ，Ｃ１Ｄ…定義パラメタ演算手段、Ｃ１B1…乱数設定手段、Ｃ１B3…多項式係数演算手段、Ｃ１B4a〜Ｃ１B4c…拡張パラメタ演算手段、Ｃ１B4d…ファミリ構成条件判別手段、Ｃ１Ｃ，Ｃ１D1，Ｃ２Ｂ…鍵生成手段、Ｃ１Ｃ…管理者装置秘密鍵生成手段、Ｃ１０６＋Ｃ１０７…暗号化送信手段、Ｃ１０９…復号化手段、ＣＳ…鍵生成装置、管理者装置、Ｅ／Ｆｑ…楕円曲線、Ｅ（Ｆｑ）…群、Ｅ［ｒ］…部分群、Ｆｑ…有限体、定義体、ＩＤａ，ＩＤｂ…利用者の識別情報、利用者の公開鍵、ＩＤａ…第１の利用者の識別情報、第１の公開鍵、ＩＤｂ…第２の利用者の識別情報、第２の公開鍵、ＩＤＳ…楕円曲線暗号通信システム、Ｋａ…第１の秘密鍵、Ｋｂ…第２の秘密鍵、Ｋｓ，Ｓ，Ｋａ，Ｋｂ…鍵、Ｋｓ…管理者装置の秘密鍵、乱数、ｋ…自然数、Ｍ，Ｍ′…情報、ＰＣａ…第１の端末、ＰＣｂ…第２の端末、ｑ…素数、位数、ｑ（ｘ）…拡張位数、ｒ…部分群Ｅ［ｒ］の位数、ｒ（ｘ）…拡張部分群位数、ｒ，ｑ，ｔ，ｘ，ｙ，ａ，ｂ，Ｎ，Ｇ１，Ｇ２，ｅ，Ｐ，Ｈ１，Ｈ２…定義パラメタ、Ｓ…管理者装置の公開鍵、ｔ…トレース、ｔ（ｘ）…拡張トレース、ｕ（ｘ）…１の原始ｋ乗根ζｋの多項式表現、多項式、ｕ０，ｕ１，…，ｕφ（ｋ）−１…多項式ｕ（ｘ）の係数、ｘ…自然数、変数、１…通信回線。
【図１】
2008216493.tif 000012
【図２】
2008216493.tif 000013
【図３】
2008216493.tif 000014
【図４】
2008216493.tif 000015
【図５】
2008216493.tif 000016
【図６】
2008216493.tif 000017
【図７】
2008216493.tif 000018
【図８】
2008216493.tif 000019
【図９】
2008216493.tif 000020