(57)【要約】【課題】暗号のセキュリティ強度を比較的容易に認識することができる楕円曲線暗号装置を得る。【解決手段】入力データＤＩの入力後に座標点認証処理ＰＳ１が実行される。ステップＳＴ３において、パラメータ部に格納されたいずれかのドメインパラメータで規定される楕円曲線に入力座標点Ｐ(X,Y)が合致した場合、合致したドメインパラメータを演算対象パラメータとして認定し、演算対象パラメータから暗号のセキュリティ強度を認識する。この場合、入力データＤＩの認証判定は「良好」と判定され、その後、スカラー倍算処理ＰＳ２が実行される。一方、パラメータ部２に格納した全てのドメインパラメータで規定された楕円曲線に入力座標点Ｐ(X,Y)は合致しない場合（ステップＳＴ４のＮＯ）、座標点認証処理ＰＳ１の認証結果は「不良」と判定され、スカラー倍算処理ＰＳ２は実行されない。【選択図】図３
2014178506.tif 000002
【特許請求の範囲】
【請求項１】
入力座標点とスカラー倍数値を含む入力データを受け、
前記入力データに対し楕円曲線上のスカラー倍算処理を行って出力座標点である出力データを得る楕円曲線暗号装置であって、
前記スカラー倍算処理前に前記入力データに基づき楕円曲線暗号のセキュリティ強度を認識することを特徴とする、
楕円曲線暗号装置。
【請求項２】
請求項１記載の楕円曲線暗号装置であって、
前記スカラー倍算処理を含む楕円曲線暗号処理を実行するスカラー倍算部を備え、
前記楕円曲線暗号処理は、
(a) 前記入力データにおける前記入力座標点に合致する楕円曲線を規定したドメインパラメータを演算対象パラメータとして検出するとともに、前記演算対象パラメータに基づき前記セキュリティ強度を認識するステップと、
(b) 前記演算対象パラメータを用いて、前記入力データに基づく前記スカラー倍算処理を実行して前記出力データを得るステップとを有する、
楕円曲線暗号装置。
【請求項３】
請求項２記載の楕円曲線暗号装置であって、
複数のドメインパラメータを格納したパラメータ部をさらに備え、
前記ステップ(a) は、
前記パラメータ部に格納された前記複数のドメインパラメータのうち、前記入力座標点に合致するドメインパラメータを前記演算対象パラメータとして検出するステップを含む、
楕円曲線暗号装置。
【請求項４】
請求項３記載の楕円曲線暗号装置であって、
前記複数のドメインパラメータは互いの定義体が異なる少なくとも２つのドメインパラメータを含む、
楕円曲線暗号装置。
【請求項５】
請求項３または請求項４に記載の楕円曲線暗号装置であって、
前記出力座標点は前記スカラー倍数値を秘密鍵として得られる公開鍵であり、
前記複数のドメインパラメータはそれぞれ秘密鍵の一部として機能するパラメータを有する、
楕円曲線暗号装置。
【請求項６】
請求項２〜請求項５のうち、いずれか１項に記載の楕円曲線暗号装置であって、
前記ステップ(a) は、
前記入力座標点に合致する楕円曲線を規定したドメインパラメータの存在の有無に基づき、前記入力データの正当性を検証するステップを含む、
楕円曲線暗号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、楕円曲線暗号装置に関し、特に楕円曲線暗号のセキュリティ強度の認識技術に関する。
【背景技術】
【０００２】
公開鍵暗号ではＲＳＡ暗号がデファクトスタンダードとして広く利用されている。ＲＳＡ暗号は素因数分解の困難性を安全性の根拠とするものであるが、入力データそのものでセキュリティ強度(セキュリティビット)を判定することはできない。一方、楕円曲線暗号は楕円曲線上の離散対数問題を安全性の根拠としており、正規の入力データ(座標点)は必ず楕円曲線上の点であるという特徴がある。
【０００３】
セキュリティ強度が変更可能である楕円曲線暗号装置は例えば特許文献１〜特許文献３で提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００８／０１３１５４号パンフレット
【特許文献２】特開２００７−３６４４８号公報
【特許文献３】特開２００４−７８０５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１〜特許文献３に開示された楕円曲線暗号装置では入力データに加え、セキュリティ強度を指示する情報（入力データのビット幅等）を付加する必要があり、楕円曲線暗号装置側のインターフェースが煩雑になる問題点があった。
【０００６】
この発明は上記問題点を解決するためになされたもので、暗号のセキュリティ強度を比較的容易に認識することができる楕円曲線暗号装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係る請求項１記載の楕円曲線暗号装置は、入力座標点とスカラー倍数値を含む入力データを受け、前記入力データに対し楕円曲線上のスカラー倍算処理を行って出力座標点である出力データを得る楕円曲線暗号装置であって、前記スカラー倍算処理前に前記入力データに基づき楕円曲線暗号のセキュリティ強度を認識することを特徴とする。
【０００８】
請求項２の発明は、請求項１記載の楕円曲線暗号装置であって、前記スカラー倍算処理を含む楕円曲線暗号処理を実行するスカラー倍算部を備え、前記楕円曲線暗号処理は、(a) 前記入力データにおける前記入力座標点に合致する楕円曲線を規定したドメインパラメータを演算対象パラメータとして検出するとともに、前記演算対象パラメータに基づき前記セキュリティ強度を認識するステップと、(b) 前記演算対象パラメータを用いて、前記入力データに基づく前記スカラー倍算処理を実行して前記出力データを得るステップとを有する。
【０００９】
請求項３の発明は、請求項２記載の楕円曲線暗号装置であって、複数のドメインパラメータを格納したパラメータ部をさらに備え、前記ステップ(a) は、前記パラメータ部に格納された前記複数のドメインパラメータのうち、前記入力座標点に合致するドメインパラメータを前記演算対象パラメータとして検出するステップを含む。
【００１０】
請求項４の発明は、請求項３記載の楕円曲線暗号装置であって、前記複数のドメインパラメータは互いの定義体が異なる少なくとも２つのドメインパラメータを含む。
【００１１】
請求項５の発明は、請求項３または請求項４に記載の楕円曲線暗号装置であって、前記出力座標点は前記スカラー倍数値を秘密鍵として得られる公開鍵であり、前記複数のドメインパラメータはそれぞれ秘密鍵の一部として機能するパラメータを有する。
【００１２】
請求項６の発明は、請求項２〜請求項５のうち、いずれか１項に記載の楕円曲線暗号装置であって、前記ステップ(a) は、前記入力座標点に合致する楕円曲線を規定したドメインパラメータの存在の有無に基づき、前記入力データの正当性を検証するステップを含む。
【発明の効果】
【００１３】
この発明においては、スカラー倍算処理前に入力データに基づき暗号のセキュリティ強度を認識することができるため、暗号のセキュリティ強度に関する情報を別途付加することなく、暗号のセキュリティ強度を比較的容易に認識することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の楕円曲線暗号装置の動作概念を示す説明図である。
【図２】この発明の実施の形態１である楕円曲線暗号装置の構成を示すブロック図である。
【図３】実施の形態１の楕円曲線暗号装置による楕円曲線暗号処理を示すフローチャートである。
【図４】実施の形態１において正規アクセス時の楕円曲線暗号処理を示すフローチャートである。
【図５】実施の形態１において不正アクセス時の楕円曲線暗号処理を示すフローチャートである。
【図６】この発明の実施の形態２である楕円曲線暗号装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
＜原理＞
任意の座標点が楕円曲線上の点であるかどうかは、その楕円曲線の定義方程式に座標点を代入することによって容易に確認することができる。本発明ではこの性質を利用し、楕円曲線暗号処理に関し、入力データにおける入力座標点の正当性を認証する座標点認証処理を追加し、この座標点認証処理をスカラー倍算処理の開始に先がけて実行する。
【００１６】
上記座標点認証処理は、具体的には、楕円曲線の係数等、楕円曲線を規定するドメインパラメータを複数個準備し、入力データにおける入力座標点が、複数のドメインパラメータのうち、どのドメインパラメータによって規定される（に属する）楕円曲線上の点であるかを検出することにより実行される。
【００１７】
ドメインパラメータは、定義体が素体(例：P-256)の場合、素体の法ｐ、係数ａ、係数ｂ、ベースポイントＧｘ、ベースポイントＧｙ、位数ｎ、コファクタｈ、ＳＨＡ−１のシード入力ＳＥＥＤ、ＳＨＡ-1の出力ｃにより構成される。なお、ドメインパラメータの詳細については、例えば、非特許文献である「NIST FIPS PUB 186-3」に開示されている。
【００１８】
その結果、複数のドメインパラメータのうちいずれかのドメインパラメータによって規定される楕円曲線上の点であると検出された場合は、検出されたドメインパラメータである演算対象パラメータ（で規定される楕円曲線）から楕円曲線暗号のセキュリティ強度を認識する。このように、演算対象パラメータが得られた場合は、認証結果が「良好」と判定する。
【００１９】
そして、上記座標点認証処理による認証結果が「良好」と判定された後、はじめて検出された楕円曲線のドメインパラメータ（演算対象パラメータ）を用いたスカラー倍算処理を開始する。
【００２０】
逆に、入力データにおける入力座標点が、準備した複数のドメインパラメータで規定されるいずれの楕円曲線上の点にも該当しなかった場合は、認証結果は「不良」と判定する。そして、座標点認証処理で「不良」と認識した場合、スカラー倍算処理を行わないようにする。
【００２１】
一般に有限体GF(p)上で定義された楕円曲線のうちWeierstrass型と呼ばれるものは、以下の形の定義式で与えられる。
【００２２】
【数１】
2014178506.tif 000003
【００２３】
式(1)で定義された楕円曲線Ｅ（係数ａ，係数ｂ）に対し、式(1)を満たす有限体GF(p)の元の組(X,Y)のことを楕円曲線ＥのGF(p)有理点と呼ぶ。本発明では、前述したように、座標点Ｐが楕円曲線ＥのGF(p)有理点かどうかを認証（検出）する「座標点認証処理」をスカラー倍算演算用のシーケンサが実行する楕円曲線暗号処理に追加する。
【００２４】
座標点認証処理では入力座標点Ｐを式(1)等の楕円曲線の定義方程式に代入し、これを満たすかどうかを確認する。座標点Ｐ(X,Y)が、複数のドメインパラメータで規定される楕円曲線のいずれかのGF(p)有理点である場合に認証結果は「良好」と判定し、座標点Ｐ(X,Y)がどの楕円曲線のGF(p)有理点でもなかった場合に認証結果は「不良」と判定する。
【００２５】
このように、本発明ではスカラー倍算処理の実行に先がけて、座標点Ｐ(X,Y)が、複数のドメインパラメータで規定される楕円曲線のいずれかのGF(p)有理点であるか否かを認証する座標点認証処理を実行することを特徴としている。
【００２６】
図１は本発明の楕円曲線暗号装置の動作概念を示す説明図である。同図に示すように、データ入力ステートＳ１において、新たなデータ入力（座標点Ｐ(X,Y)を含む）が行われると座標点認証処理を実行する座標点認証ステートＳ２に移行する。
【００２７】
座標点認証ステートＳ２では、上述した座標点認証処理を実行し、座標点Ｐ(X,Y)が、複数のドメインパラメータで規定される楕円曲線のいずれかのGF(p)有理点である場合（Ｔ２Ｓ）は、スカラー倍算ステートＳ１１に移行し、そうでない場合（Ｔ２Ｂ）はデータ入力ステートＳ１に戻る。
【００２８】
スカラー倍算ステートＳ１１に移行すると、スカラー倍算ステートＳ１１〜Ｓ１３が繰り返され、スカラー倍算処理が完了すると（Ｔ１１Ｅ）、データ出力ステートＳ３に移行し、スカラー倍算処理で得た出力データを出力した後、データ入力ステートＳ１に戻る。
【００２９】
このように、楕円曲線暗号処理の実行の際、スカラー倍算処理に先がけて、座標点認証処理を行うようにしたのが本願発明の楕円曲線暗号装置である。
【００３０】
＜実施の形態１＞
図２はこの発明の実施の形態１である楕円曲線暗号装置の構成を示すブロック図である。同図に示すように、ホスト１０から、スカラー倍数値Ｋ及び入力座標点Ｐ(X,Y)（座標データ）を有する入力データＤＩが実施の形態１の楕円曲線暗号装置１１に付与される。
【００３１】
実施の形態１の楕円曲線暗号装置１１はホスト１０より入力データＤＩを受け、演算対象パラメータに基づき楕円曲線暗号処理を実行して、出力座標点Ｑ＝Ｋ・Ｐ(X,Y)である出力データＤＯをホスト１０に出力する。この出力データＤＯは公開鍵等に利用される。
【００３２】
楕円曲線暗号装置１１は、パラメータ部２、スカラー倍算部３、ＳＲＡＭ４及びＳＲＡＭ５から構成される。
【００３３】
スカラー倍算部３はシーケンサ部３１及び演算処理部３３から構成される。シーケンサ部３１は、スカラー倍算処理(スカラー倍数値の展開、ＥＣＤＢＬ(Elliptic Curve Doubling）演算、ＥＣＡＤＤ(Elliptic Curve Addition）演算、アフィン変換)及び上述した座標点認証処理のアルゴリズムからなる楕円曲線暗号処理を実行するシーケンサであり、種々の演算実行に際して演算処理部３３におけるプリミティブ演算器(剰余乗算器３５、加算器３６及び減算器３７)を適宜選択して演算処理を実行させる。
【００３４】
演算処理部３３は各アルゴリズム（スカラー倍算処理及び座標点認証処理）で使用するプリミティブ演算器である、剰余乗算器３５、加算器３６及び減算器３７から構成され、シーケンサ部３１により選択された演算器が演算を実行する。
【００３５】
パラメータ部２は、パラメータ記憶部２０とセレクタ２２とから構成され、パラメータ記憶部２０は楕円曲線Ｅ１パラメータＰ１及び楕円曲線Ｅ２パラメータＰ２を格納する。楕円曲線Ｅ１パラメータＰ１及び楕円曲線Ｅ２パラメータＰ２はそれぞれ定義体を素体とした楕円曲線を規定するドメインパラメータである。
【００３６】
セレクタ２２は、シーケンサ部３１より得られる選択情報Ｉ３１に基づき、楕円曲線Ｅ１パラメータＰ１及び楕円曲線Ｅ２パラメータＰ２のうち一方を選択楕円曲線パラメータＳＰとしてスカラー倍算部３のシーケンサ部３１及び演算処理部３３に付与する。
【００３７】
ＳＲＡＭ４及びＳＲＡＭ５は、スカラー倍算部３が楕円曲線暗号処理時における中間データ、入力座標点Ｐ、スカラー倍数値Ｋ等を一時的に格納し、スカラー倍算部３による座標点認証処理及びスカラー倍算処理の作業領域として使用される。
【００３８】
図３は実施の形態１の楕円曲線暗号装置１１による楕円曲線暗号処理を示すフローチャートである。
【００３９】
上記楕円曲線暗号処理は、予めメモリ等に記憶された座標点認証処理及びスカラー倍算処理用のアルゴリズムに従って動作するシーケンサ部３１の制御下で、必要に応じて演算処理部３３を用いた演算処理を適宜実行させることにより行われる。
【００４０】
図３を参照して、まず、ステップＳＴ１において、ホスト１０よりスカラー倍数値Ｋ及び入力座標点Ｐ(X,Y)を有する入力データＤＩが楕円曲線暗号装置１１に入力され、スカラー倍算部３は入力データＤＩをＳＲＡＭ４（５）に格納する。
【００４１】
次に、スカラー倍算部３は座標点認証処理ＰＳ１（ＳＴ２〜ＳＴ４）を実行する。まず、ステップＳＴ２において、シーケンサ部３１は、選択情報Ｉ３１によって選択した選択楕円曲線パラメータＳＰを取り込む（仮に、選択楕円曲線パラメータＳＰとして最初に選択されたドメインパラメータを、「楕円曲線Ｅ１パラメータＰ１」とする）。そして、シーケンサ部３１は、選択楕円曲線パラメータＳＰで規定される楕円曲線の定義式（式(1)相当）に、入力座標点Ｐ(X,Y)を代入し、両辺の値を計算した計算結果をＳＲＡＭ４に格納する。このように、ステップＳＴ２として、選択楕円曲線パラメータＳＰの取り込み処理、及び定義式への入力座標点Ｐ(X,Y)の代入処理からなる座標点演算処理が実行される。
【００４２】
その後、ステップＳＴ３において、シーケンサ部３１は、ステップＳＴ２で格納した定義式の両辺の値を読み出し、両者の一致の有無を判定して、一致しておれば(YES)、入力座標点Ｐ(X,Y)に合致する楕円曲線Ｅ１パラメータＰ１を演算対象パラメータとして認定し、ステップＳＴ５以降のスカラー倍算処理ＰＳ２に移行し、一致してなければ(NO)、ステップＳＴ４に移行する。
【００４３】
ステップＳＴ３でＹＥＳになることは、入力データＤＩの認証判定が「良好」であったことを意味する。したがって、ステップＳＴ３でＹＥＳとなった後に、シーケンサ部３１は選択情報Ｉ３１及び選択楕円曲線パラメータＳＰの値を固定する。その結果、固定後の選択楕円曲線パラメータＳＰが演算対象パラメータとなり、シーケンサ部３１はこの演算対象パラメータ（選択楕円曲線パラメータＳＰ）で規定される楕円曲線からセキュリティ強度を容易に認識することができる。
【００４４】
ステップＳＴ４において、シーケンサ部３１は、他に未認証の楕円曲線（を規定するドメインパラメータ）の有無をチェックし、存在すれば(YES)、新たに選択したドメインパラメータ（仮に「楕円曲線Ｅ２パラメータＰ２」とする）によって、再びステップＳＴ２，ＳＴ３を実行する。
【００４５】
一方、ステップＳＴ４において、シーケンサ部３１は、他に未認証の楕円曲線が存在しなければ(NO)、パラメータ部２に格納した全てのドメインパラメータで規定された楕円曲線に入力座標点Ｐ(X,Y)は合致しないため、座標点認証処理ＰＳ１の認証結果として「不良」と判定し、スカラー倍算処理ＰＳ２を実行することなく処理を終了する。
【００４６】
以下、ステップＳＴ３でＹＥＳの場合に実行される、ステップＳＴ５〜ＳＴ１４からなるスカラー倍算処理ＰＳ２について説明する。この際、スカラー倍算処理ＰＳ２を実行すべく、選択楕円曲線パラメータＳＰがシーケンサ部３１及び演算処理部３３に付与されている。
【００４７】
まず、ステップＳＴ５において、シーケンサ部３１は、ＳＲＡＭ４から読み出したスカラー倍数値Ｋの最上位ビットからビット値“１”を検出する初期鍵判定処理を実行する。初期鍵判定処理で検出されたビット位置がスカラー倍数値Ｋの初期ビット位置となる。
【００４８】
その後、ステップＳＴ６において、シーケンサ部３１は、アフィン座標である入力座標点Ｐ(X,Y)をヤコビアン座標(X,Y,Z)形式に変換する座標変換処理を行う。
【００４９】
次に、ステップＳ７において、シーケンサ部３１は演算処理部３３を利用して変換座標点(X,Y,Z)の各成分と演算パラメータの剰余乗算処理を行う。
【００５０】
そして、ステップＳＴ８において、シーケンサ部３１は、スカラー倍数値Ｋの全てのビットに対し、ステップＳＴ１０の鍵判定を行ったか否かをチェックし、全てのビットで終了した場合(YES)、ステップＳＴ１２に移行し、一部のビットが終了していない場合(NO)、スカラー倍数値Ｋのビット位置を変更し、次のステップＳＴ９に移行する。なお、スカラー倍数値Ｋのビット位置の変更は、初期ビット位置から順次１ビット下位に変更することにより行われる。
【００５１】
ステップＳＴ８でＮＯの場合に実行されるステップＳＴ９において、シーケンサ部３１は演算処理部３３を利用してＥＣＤＢＬ演算を実行し、ステップＳＴ１０の鍵判定処理に移行する。
【００５２】
ステップＳＴ１０において、シーケンサ部３１は、スカラー倍数値Ｋの現在のビット位置におけるビット値が“１”の場合(YES)、ステップＳＴ１１に移行し、“０”の場合(NO)、ステップＳＴ１１をスキップしてステップＳＴ８に戻る。
【００５３】
ステップＳＴ１０でＹＥＳの場合に実行されるステップＳ１１において、シーケンサ部３１は演算処理部３３を利用してＥＣＡＤＤ演算を実行し、ステップＳＴ８に戻る。以降、ステップＳＴ８でＹＥＳとなるまで、ステップＳＴ８〜ＳＴ１１が繰り返される。
【００５４】
ステップＳＴ８でＹＥＳの場合に実行されるステップＳＴ１２において、シーケンサ部３１は、演算処理部３３を利用してスカラー倍数点Ｋ・Ｐ(X,Y,Z)のＺ成分と演算パラメータの剰余乗算を実行する。
【００５５】
次に、ステップＳＴ１３において、シーケンサ部３１は演算処理部３３を利用して、拡張ユークリッド互除法にて、逆元計算を行い、スカラー倍数点Ｋ・Ｐ(X,Y,Z)をヤコビアン座標からアフィン座標に変換する。
【００５６】
そして、ステップＳＴ１４において、アフィン座標形式のスカラー倍数点Ｋ・Ｐ(X,Y)である出力座標点Ｑを出力データＤＯとして出力する。
【００５７】
なお、上述したスカラー倍算処理ＰＳ２において、ステップＳＴ７及びＳＴ１２は剰余乗算器３５を利用して実行され、ステップＳＴ９、ステップＳＴ１１，及びＳＴ１３は剰余乗算器３５、加算器３６及び減算器３７を利用して実行され、他のステップＳＴは主としてシーケンサ部３１の単独動作で実行される。
【００５８】
（効果等）
このように、実施の形態１の楕円曲線暗号装置１１は、座標点認証処理ＰＳ１において、入力データＤＩに含まれる入力座標点Ｐ(X,Y)に合致するドメインパラメータを演算対象パラメータ（固定された選択楕円曲線パラメータＳＰ）とし、演算対象パラメータ（で規定される楕円曲線）から楕円曲線暗号のセキュリティ強度を比較的容易に認識することができる。
【００５９】
その結果、入力データＤＩとは別に暗号のセキュリティ強度に関する情報を付加することなく、上述した座標点認証処理ＰＳ１を実行することにより楕円曲線暗号処理による暗号のセキュリティ強度を自動的に認識することができる。
【００６０】
そして、演算対象パラメータの候補として、暗号のセキュリティ強度が異なる複数のドメインパラメータ（Ｐ１，Ｐ２）をパラメータ部２に予め格納しておくことにより、複数のドメインパラメータから選択される演算対象パラメータから暗号のセキュリティ強度を自動的に認識することができる。
【００６１】
（複数のドメインパラメータの態様（その１：公開鍵の一部））
複数のドメインパラメータの内容を公開している場合、複数のドメインパラメータはそれぞれ公開鍵の一部として機能することになる。以下のこの点を詳述する。
【００６２】
スカラー倍算の計算式は、｛Ｑ（出力座標点）＝Ｋ（スカラー倍数値）・Ｐ（入力座標点）｝であり、出力座標点Ｑはスカラー倍数値Ｋを秘密鍵として得られる公開鍵となる。そして、各ドメインパラメータに含まれる「法ｐ」「係数ａ」「係数ｂ」等は、上記スカラー倍算の計算式における計算用パラメータとしてスカラー倍算処理中に用いられ、複数のドメインパラメータは公開されている場合、スカラー倍算処理で使用する計算用パラメータも公開されていることになる。
【００６３】
したがって、複数のドメインパラメータは公開されている場合、複数のドメインパラメータはそれぞれ上記計算用パラメータを有しているため、上記計算用パラメータが公開鍵の一部として機能すると考えることができる。
【００６４】
すなわち、楕円曲線暗号の秘密鍵として、スカラー倍数値Ｋが存在し、公開鍵として、法ｐ、係数ａ、係数ｂ、出力座標点Ｑが存在することになるため、複数のドメインパラメータはそれぞれ公開鍵の一部として機能するパラメータ（計算用パラメータ）を有する。
【００６５】
このように、複数のドメインパラメータそれぞれを公開鍵の一部として機能するパラメータを有する構成にすることにより、公開鍵となる数値情報（法ｐ、係数ａ、係数ｂ、出力座標点Ｑ等）が比較的多く存在するため、暗号化し易くなる分、楕円曲線暗号装置１１は不特定多数の相手と暗号通信を行い易い通信環境を提供することができる。
【００６６】
加えて、パラメータ部２に格納される複数のドメインパラメータが公開された状態となった場合、入力データＤＩ内の入力座標点Ｐ(X,Y)によって複数のドメインパラメータのいずれかを選択することにより、楕円曲線暗号装置１１はセキュリティ強度を比較的容易に選択することができる。
【００６７】
（複数のドメインパラメータの態様（その２：秘密鍵の一部））
複数のドメインパラメータの内容を外部から秘匿して非公開としている場合、複数のドメインパラメータはそれぞれ秘密鍵の一部として機能することになる。以下のこの点を詳述する。
【００６８】
上述したように、各ドメインパラメータに含まれる「法ｐ」「係数ａ」「係数ｂ」等は、計算用パラメータとしてスカラー倍算処理中に用いられる。そして、複数のドメインパラメータは外部から秘匿（非公開）されている場合、スカラー倍算処理で使用する計算用パラメータも外部から秘匿されていることになる。
【００６９】
したがって、複数のドメインパラメータは外部から秘匿されている場合、複数のドメインパラメータはそれぞれ上記計算用パラメータを有しているため、上記計算用パラメータが秘密鍵の一部として機能すると考えることができる。
【００７０】
すなわち、楕円曲線暗号の秘密鍵として、スカラー倍数値Ｋ、法ｐ、係数ａ、係数ｂ、が存在し、公開鍵として、出力座標点Ｑが存在することになるため、複数のドメインパラメータはそれぞれ秘密鍵の一部として機能するパラメータ（計算用パラメータ）を有する。
【００７１】
このように、複数のドメインパラメータそれぞれを秘密鍵の一部として機能するパラメータを有する構成にすることにより、秘密鍵となる数値情報（スカラー倍数値Ｋ、法ｐ、係数ａ、係数ｂ等）が比較的多く存在するため、楕円曲線暗号のセキュリティ強度が高くなり、楕円曲線暗号装置１１は特定の相手との間でセキュリティ強度の高い通信環境を提供することができる。
【００７２】
一方、パラメータ部２に格納される複数のドメインパラメータが公開された状態となっても、入力データＤＩ内の入力座標点Ｐ(X,Y)によって複数のドメインパラメータのいずれかを選択することにより、セキュリティ強度を比較的容易に選択することができる。
【００７３】
さらに、パスワード等を別途設けることなく入力データＤＩに含まれる入力座標点Ｐ(X,Y)によって、入力データＤＩを付与する楕円曲線暗号装置１１へのアクセスが正規であるか否かの入力データＤＩの正当性を検証することができる。
【００７４】
図４は正規アクセス時の楕円曲線暗号処理を示すフローチャートであり、図５は不正アクセス時の楕円曲線暗号処理を示すフローチャートである。
【００７５】
図４の実線部に示すように、正規の入力データＤＩが付与された場合、入力座標点Ｐ(X,Y)は必ずパラメータ部２に格納された複数のドメインパラメータ（のGF(p)有理点）のいずれかに合致するため、座標点認証処理ＰＳ１の認証結果が「良好」と判定された（ステップＳＴ３でＹＥＳ）後、続いて、スカラー倍算処理ＰＳ２が実行される。
【００７６】
一方、図５の実線部に示すように、非正規の入力データＤＩが付与された場合、入力座標点Ｐ(X,Y)はパラメータ部２に格納された複数のドメインパラメータのいずれとも合致しないため、必ず、座標点認証処理ＰＳ１で認証結果が「不良」と判定がなされ（ステップＳＴ４でＮＯ）、スカラー倍算処理ＰＳ２が実行されることなく処理が終了する。その結果、実施の形態１の楕円曲線暗号装置１１への不正アクセスを自動的に検出し、出力データＤＯを出力することなく強制終了することができる。
【００７７】
＜実施の形態２＞
図６はこの発明の実施の形態２である楕円曲線暗号装置の構成を示すブロック図である。以下、実施の形態２の楕円曲線暗号装置１２において、実施の形態１の楕円曲線暗号装置１１と異なる点を中心に述べ、楕円曲線暗号装置１１と同様な構成及び動作は同一符号を附し、説明を適宜省略する。
【００７８】
スカラー倍算部３はシーケンサ部３２及び演算処理部３４から構成される。シーケンサ部３２は、実施の形態１のシーケンサ部３１と同様の、スカラー倍算処理及び座標点認証処理からなる楕円曲線暗号処理を実行するシーケンサであり、種々の演算実行に際して演算処理部３４におけるプリミティブ演算器(剰余乗算器４５、加算器４６及び減算器３７、桁上がり制御部３８)を適宜選択して演算処理を実行させる。
【００７９】
演算処理部３４は各アルゴリズム（スカラー倍算処理及び座標点認証処理）で使用するプリミティブ演算器である、剰余乗算器４５、加算器４６、減算器３７及び桁上がり制御部３８から構成され、シーケンサ部３２で選択された演算器が演算を実行する。剰余乗算器４５及び加算器４６は桁上がり制御部３８の制御下で桁上がり（演算）機能の有効／無効の設定がなされる。
【００８０】
演算処理部３４は選択楕円曲線パラメータＳＰに加えて、シーケンサ部３２からの選択情報Ｉ３２を桁上がり制御部３８に入力する。そして、桁上がり制御部３８は選択情報Ｉ３２が楕円曲線（素体）パラメータＰ３を指示している場合に桁上がり機能を有効とする制御を行うため、剰余乗算器４５及び加算器４６は桁上がり機能付演算を行う。一方、桁上がり制御部３８は選択情報Ｉ３２が楕円曲線（拡大体）パラメータＰ４を指示している場合に桁上がり機能を無効とする制御を行うため、剰余乗算器４５及び加算器４６は桁上がり機能無しの演算を行う。また、減算器３７は定義体が拡大体の楕円曲線については用いられることはない。
【００８１】
パラメータ部２は、パラメータ記憶部２１とセレクタ２２とから構成され、パラメータ記憶部２１は楕円曲線（素体）パラメータＰ３及び楕円曲線（拡大体）パラメータＰ４を格納する。楕円曲線（素体）パラメータＰ３は定義体を素体とした楕円曲線の規定するドメインパラメータであり、楕円曲線（拡大体）パラメータＰ４は定義体を拡大体とした楕円曲線の規定するドメインパラメータである。
【００８２】
なお、定義体を拡大体としたドメインパラメータは、例えば(B-233)、拡大体の法ｐ（ｔ）、係数ａ、係数ｂ、ベースポイントＧｘ、ベースポイントＧｙ、位数ｎ、コファクタｈにより構成される。
【００８３】
セレクタ２２は選択情報Ｉ３２に基づき、楕円曲線（素体）パラメータＰ３及び楕円曲線（拡大体）パラメータＰ４のうち一方を選択楕円曲線パラメータＳＰとしてスカラー倍算部３のシーケンサ部３２に付与する。
【００８４】
実施の形態２の楕円曲線暗号装置による楕円曲線暗号処理を示すフローチャートは、実質的に図３で示した実施の形態１の処理と同様である。但し、以下の点が異なる。
【００８５】
座標点認証処理ＰＳ１において、入力座標点Ｐ(X,Y)に合致する選択楕円曲線パラメータＳＰから、定義体内容（素体ｏｒ拡大体）をさらに認識することができる。
【００８６】
スカラー倍算処理ＰＳ２において、選択情報Ｉ３２が楕円曲線（拡大体）パラメータＰ４を指示する場合、ステップＳＴ９のＥＣＤＢＬ演算処理時やステップＳＴ１１のＥＣＡＤＤ演算処理時に桁上がり制御部３８の制御下で剰余乗算器４５及び加算器４６は桁上がり機能の無い演算を行ったり、減算器３７を用いなくしたりする等の変更により、定義体が拡大体の楕円曲線に対するスカラー倍算を行うことができる。
【００８７】
したがって、実施の形態２の楕円曲線暗号装置１２は、実施の形態１の楕円曲線暗号装置１１と同様の効果を奏し、加えて、入力データＤＩに基づく定義体の自動認識を含むセキュリティ強度の認識、及び定義体が異なる複数種の楕円曲線による楕円曲線暗号処理の実行を可能とした効果をさらに奏する。
【００８８】
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略したりすることが可能である。
【符号の説明】
【００８９】
２  パラメータ部
３  スカラー倍算部
１１，１２  楕円曲線暗号装置
２０，２１  パラメータ記憶部
２２  セレクタ
３１，３２  シーケンサ部
３３，３４  演算処理部
【図１】
2014178506.tif 000004
【図２】
2014178506.tif 000005
【図３】
2014178506.tif 000006
【図４】
2014178506.tif 000007
【図５】
2014178506.tif 000008
【図６】
2014178506.tif 000009