説明

高速モンゴメリ電力ラダーアルゴリズムを利用する欠陥検出動作を具現するための素数有限領域におけるポイント加算方法及び加算演算装置

【課題】高速モンゴメリ電力ラダーアルゴリズムを利用する欠陥検出動作を具現するための素数有限領域におけるポイント加算方法及び加算演算装置を提供する。
【解決手段】楕円曲線上の基本ポイントを利用して設定された第1ポイント及び第2ポイントについての素数有限領域における加算演算を行って、加算演算の結果の第1座標値を算出するステップと、第1ポイント及び第2ポイントについての素数有限領域における加算演算を行って、加算演算の結果の第2座標値を算出するステップと、を含む素数有限領域におけるポイント加算演算方法である。第1ポイント及び第2ポイントについての素数有限領域における加算演算は、第1ポイント及び第2ポイントの第1座標値及び第2座標値の差を反映する。これにより、高速モンゴメリ電力ラダーアルゴリズムを利用する暗号化システムで正確な欠陥検出動作を行える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化方法に係り、特に高速モンゴメリ電力ラダーアルゴリズムを利用する欠陥検出動作を具現するための素数有限領域におけるポイント加算方法に関する。
【背景技術】
【0002】
情報化社会の到来による情報伝送媒体の発達と共に、情報の安全性を保証するための暗号化及び復号化方案も多角的に摸索されている。そのうち、RSA(Rivest Shamir Adleman)暗号化システム及び楕円曲線暗号化(ECC:Elliptic Curve Cryptography)システムのような公開キー形式の暗号化方式が広く使われている。整数除算(integer division)に対するアルゴリズムが定義されないので、十分に大きい整数を公開キーとして使用することによって、公開キー形式の暗号化方式は、システムの安全性を保証しうる。
【0003】
特に、ECCシステムは、比較的に短いキーサイズでも高い安全性が確保でき、スマートカード及び電子署名に広く使われている。ECCシステムは、楕円曲線と呼ばれる数式によって定義される特殊な加算法を基盤として暗号化/復号化する暗号化方式である。
具体的に、ECC方法は、任意の楕円曲線Eと楕円曲線E上の一点Pとをシステムパラメータとして使用する。暗号化通信を所望するユーザ1は、ランダムに整数kを生成し、kとPとを乗算してQ(=kxP)を生成する。ユーザ1は、Qを公開キーとして公開し、kをユーザ1の秘密キーとして安全に保存する。
【0004】
逆に、ユーザ1にメッセージMを秘密裏に伝送しようとするユーザ2は、まずランダムに整数dを生成し、システムパラメータのうち一つであるPと整数dとを乗算してA(=dxP)を生成する。ユーザ1が提供した公開キーQと伝送しようとするメッセージMとを使用してB(=M+dxQ)を生成する。最後に、ユーザ2は、最終結果暗号文A,Bをユーザ1に伝送する。
ユーザ2から暗号文A,Bを伝達されたユーザ1は、自身の秘密キーkを使用してkxAを計算した後、次の数式(1)のような演算を行ってメッセージMを復元する。
【0005】
【数1】

【0006】
このようなECCシステムを攻略するための方案として、演算されている変数値の差を利用して暗号システムの秘密キーを探し出す差分欠陥分析(Differential Fault Analysis:DFA)が広く知られている。DFAは、欠陥を暗号システムに投入し、投入された欠陥に対応する演算結果を分析し、暗号システムの秘密キーを探す方法である。
【0007】
暗号システムは、所定の演算を行う時にレジスターに保存された値を参照するが、レジスターに保存される値または保存された値は、欠陥によって変更される。したがって、暗号システムの演算結果に、欠陥によって変更された値に対応するエラーが含まれる。
エラーを含んで出力される演算結果を解釈することによって、秘密キーについての情報は露出される。したがって、DFAに対応するために、ECCシステムで使われる色々な方法が提案されている。
【0008】
図1は、DFAに対応するCT&C(Calculate Twice and Check)方法を示すフローチャートである。
CT&C方法100は、まず、楕円曲線のうち任意の一点Pを選択した後(110)、Pに任意の整数kを乗算して第1比較値Q1を求め(120)、Pに整数kを乗算して第2比較値Q2を求める(130)。このとき、所定の整数kは、秘密キーを意味する。
【0009】
次いで、第1比較値Q1と第2比較値Q2との大きさを比較し(140)、第1比較値Q1と第2比較値Q2とが同一ならば、乗算演算にいかなる欠陥も発生されていないと判断して、第1比較値Q1及び第2比較値Q2のうち一つが演算結果Qとして出力される(150)。一方、第1比較値Q1と第2比較値Q2とが同一でなければ、乗算演算に欠陥が発生されたと判断して、演算結果Qの代わりに警告信号が出力される(160)。
【0010】
図2は、DFAに対応するCOP(Check the Output Point)方法を示すフローチャートである。
COP方法200は、まず楕円曲線のうち任意の一点Pを選択し(210)、Pに所定の整数kを乗算して比較値Qを求める(220)。このとき、所定の整数kは、秘密キーを意味する。
【0011】
次いで、比較値Qが楕円曲線Eの一点であるか否かを判断して(230)、比較値Qが楕円曲線Eの一点ならば、乗算演算にいかなる欠陥も発生されていないと判断して、比較値Qが出力される(240)。一方、比較値Qが楕円曲線Eの一点でなければ、乗算演算中に欠陥が発生されたケースに該当すると判断して、比較値Qの代わりに警告信号が出力される(250)。
【0012】
しかし、図1のCT&C方法100は、同じ乗算計算を2回もしなければならないという短所があり、図2のCOP方法200は、図1のCT&C方法100に比べて計算が簡単であるという長所があるが、その適用範囲が制限的であるだけでなく、符号の変わる欠陥を利用した攻撃に対応する場合には、システムの実行能力が非常に低下するという短所がある。したがって、モンゴメリ電力ラダーアルゴリズム(MPLA:Montgomery Power Ladder Algorithm)または高速MPLA(FMPLA:Fast Montgomery Power Ladder Algorithm)を利用して、DFAに対応する方案が摸索されている。
【0013】
前述したECC方法を参照すれば、P及びQ値を通じてkを求めるためには、離散対数演算が行われねばならない。離散対数演算は、有限フィールドに楕円曲線の特性を適用して行われ、暗号プロトコルの秘密性の基礎となる。簡単には、離散対数演算とは、Q=kxPで、QとPとからkを求める演算である。
【0014】
したがって、ECC方法でスカラー積演算は、重要な演算のうちの一つであるということが分かる。MPLAとは、有限フィールドにおけるスカラー積演算を行う方法のうちの一つである。以下では、MPLAについてさらに詳細に説明する。
一般的なMPLAでは、まず、2個の変数を次の数式(2)のように定義する。
【0015】
【数2】

【0016】
数式(2)の二変数間の関係に対する他の数学的表現は、次の数式(3)の通りである。任意の整数kは、複数の2進ビット(k=(kt−1,...,k,k、tは、整数、以下、同一)で表現され、kは、反復媒介変数i(iは、整数、以下、同一)に対応するビットの値を表す。このとき、kt−1は、常に“1”の値を有する。数式(2)に表現された二変数間の関係は、次の数式(3)のように再整理されうる。
【0017】
【数3】

【0018】
数式(3)に表示された二変数間の関係を変数j値によって異ならせて表現すれば、次の数式(4)のように表現しうる。
【0019】
【数4】

【0020】
数式(4)の誘導過程は、本発明の属する技術分野の当業者に広く知られた事項であるところ、それについての詳細な説明は省略する。LとHとは、後述する図3及びアルゴリズム1で、ECCシステムにおける楕円曲線上の2ポイントであるP及びPにマッピングされる。
【0021】
図3は、MPLAを利用してECC方法におけるスカラー積演算を行う方法を示すフローチャートである。
図3を参照すれば、MPLAを利用したスカラー積演算方法300は、まず、基本ポイントPとスカラーk(kは、整数、以下、同一)とを受信する(S301)。次いで、スカラー積を反復演算するための変数が設定される(S303)。
【0022】
kは、数式(2)で前述したように設定される。また、第1変数Pは、基本ポイントPに、そして、第2変数Pは、基本ポイントPの2倍、すなわち2xPに設定される。反復媒介変数iは、t−1に初期化される。
【0023】
変数が設定された後には、反復演算によってスカラー積Q=kxPが計算される。すなわち、反復媒介変数iを0まで減少させつつ(S305、S313)、それぞれの2進ビットkによって(S307)、第1及び第2変数を再設定(S310、S311)する過程を反復し、iが0まで減少した場合(S313)の第1変数Pをスカラー積Q=kxPとして出力する(S315)。
【0024】
このとき、“P←2P”及び“P←2P”は、楕円曲線ポイントの2倍演算(例えば、2を乗算すること)を意味し、“P←P+P”及び“P←P+P”は、楕円曲線ポイントの加算演算を意味する。ところが、図3の一般的なMPLAは、それぞれの反復演算で加算演算と2倍演算とが行われるので、性能において、大きい劣化を発生させる。このような劣化を防止するために、Y座標形態の計算が除外されたループ計算を行った後、Y座標を再定義するFMPLAを利用したスカラー積演算方法が提案された。
【0025】
FMPLAを通じて楕円曲線上の2ポイント(P(X,Z)、P(X,Z))の2倍演算及び加算演算を行うための、素数有限フィールド(prime finit field)における2倍演算及び加算演算は、それぞれ次の数式(5)及び数式(6)で定義される。
【0026】
【数5】

【0027】
【数6】

【0028】
数式(5)及び数式(6)を参照すれば、計算中にY座標が含まれないということが分かる。
ところが、数式(6)の加算演算は、2ポイント(P(X,Z)、P(X,Z))のZ座標の差(Z=Z−Z)が“1”であることを前提している。しかし、FMPLAを利用した欠陥検索方法は、2ポイントの差を利用して欠陥の発生如何を検出する。
【0029】
したがって、数式(6)の加算演算を、FMPLAを利用する欠陥検出方法に使用する場合、ECCシステムは、誤った欠陥発生分析結果を導出する恐れがある。欠陥分析のエラーは、暗号化システムを無力化させて深刻な問題をもたらす。
【発明の開示】
【発明が解決しようとする課題】
【0030】
本発明が解決しようとする技術的課題は、FMPLAを利用する欠陥検出動作で、エラーなしに欠陥を検出するための素数有限領域におけるポイント加算方法を提供することである。
本発明が解決しようとする他の技術的課題は、FMPLAを利用する欠陥検出動作で、エラーなしに欠陥を検出するための素数有限領域におけるポイント加算演算装置を提供することである。
【課題を解決するための手段】
【0031】
前記課題を達成するための本発明の実施形態による素数有限領域におけるポイント加算演算方法は、所定の楕円曲線上の基本ポイントを利用して設定された第1ポイント及び第2ポイントについての素数有限領域における加算演算を行って、前記加算演算の結果の第1座標値を算出するステップと、前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算を行って、前記加算演算の結果の第2座標値を算出するステップと、を含む。
【0032】
前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算は、前記第1ポイント及び前記第2ポイントの第1座標値と第2座標値との差を反映する。
前記FMPLAを利用する欠陥検出動作は、ECCシステムに適用される。前記第1座標値は、“X”座標値であり、前記第2座標値は、“Z”座標値である。
【0033】
前記第1ポイントをP(X,Z)、前記第2ポイントをP(X,Z)とし、前記前記第1ポイント及び前記第2ポイントのX座標値の差(X−X)とZ座標値の差(Z−Z)とをそれぞれX及びZとするとき、前記第1ポイント及び前記第2ポイントについての加算演算の結果であるP(X,Z)は、次の通りである。
【0034】
【数7】

【0035】
前記課題を達成するための本発明の他の実施形態によるFMPLAを利用する欠陥検出動作を具現するための素数有限領域におけるポイント加算方法で、前記第2ポイントの前記第2座標値は、所定数に固定される。前記第2ポイントの第2座標値は、“1”である。
前記第1ポイントをP(X,Z)、前記第2ポイントをP(X,1)とし、前記前記第1ポイント及び前記第2ポイントのX座標値の差(X−X)とZ座標値の差(1−Z)とをそれぞれX及びZとするとき、前記第1ポイント及び前記第2ポイントについての加算演算の結果であるP(X,Z)は、次の通りである。
【0036】
【数8】

【0037】
前記他の課題を達成するための本発明の実施形態によるFMPLAを利用する欠陥検出動作を具現するための素数有限領域におけるポイント加算演算装置は、第1座標算出部及び第2座標算出部を備える。
【0038】
第1座標算出部は、所定の楕円曲線上の基本ポイントを利用して設定された第1ポイント及び第2ポイントについての素数有限領域における加算演算を行って、前記加算演算の結果の第1座標値を算出する。第2座標算出部は、前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算を行って、前記加算演算の結果の第2座標値を算出する。
【0039】
前記第1座標算出部及び前記第2座標算出部は、前記第1ポイント及び前記第2ポイントの第2座標値の差を反映して、前記第1座標値及び前記第2座標値を算出する。前記第1座標値は、“X”座標値であり、前記第2座標値は、“Z”座標値である。
【0040】
前記第1座標算出部は、第1ないし第7乗算器、第1ないし第4加算器、第1及び第2算出手段及び第1減算器を備える。前記第2座標算出部は、第21ないし第23乗算器、第21減算器及び第21自乗器を備える。
【0041】
前記他の課題を達成するための本発明の他の実施形態によるFMPLAを利用する欠陥検出動作を具現するための素数有限領域におけるポイント加算演算装置は、前記第2ポイントの第2座標値が“1”である場合についての素数有限領域におけるポイト加算演算を行う。
【発明の効果】
【0042】
本発明による素数有限領域におけるポイント加算方法及び加算演算装置によれば、FMPLAを利用する暗号化システムで正確な欠陥検出動作を行える。
【発明を実施するための最良の形態】
【0043】
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の望ましい実施形態を例示する添付図面及び図面に記載された内容を参照せねばならない。
以下、添付した図面を参照して本発明の望ましい実施形態を説明することによって、本発明を詳細に説明する。各図面に提示された同じ参照符号は、同じ部材を表す。
【0044】
本発明の実施形態によるFMPLAを利用する欠陥検出動作を具現するための素数有限領域におけるポイント加算方法を説明する前に、FMPLAを利用する欠陥検出方法についてさらに詳細に説明する。
FMPLAを利用する欠陥検出方法を具現するために、まず数式(2)及び数式(3)から次の数式(7)が誘導される。
【0045】
【数9】

次いで、数式(7)から次の数式(8)が誘導される。
【0046】
【数10】

【0047】
=L+1は、数式(2)で表した。
以前計算で欠陥がなかったということを確認するために、判断を行う間に、計算にHとL値とが含まれねばならない。Y座標を含まず、二点であるHとLとの和をX座標で計算するモンゴメリ方法は、これらの二点の差に関する情報に基づく。
【0048】
このような特徴は、次のような欠陥チェック動作を誘導するために使われ、これを可能にするために、かつパワートラック分析による分別不可能性(indistinguishability)の動作平衡(operation equilibrium)を満足するために、次のように、k=0とk=1との2つを考慮せねばならない。
まず、k=1の場合、欠陥チェック動作は、次の順序によって行われる。
1.次の数式(9)を利用して2倍演算によってL−1を計算する。
【0049】
【数11】

【0050】
2.1での結果から、加算演算によってL+1を計算する。
3.L+1=Hであるかをチェックする。ここで、Hは、以前に計算された値である。
【0051】
次いで、K=0である場合、欠陥チェック動作は、次の順序によって行われる。
1.次の数式(10)を利用して、2倍演算によって2Hj+1を計算する。
【0052】
【数12】

【0053】
2.Lを考慮して、加算演算によってH+1を計算する。
3.H+1=2Hj+1であるかを確認する。ここで、2H+1は、以前に計算された値である。
【0054】
欠陥が発生されていない場合、LとHとの差は、常に“1”である。したがって、前記のような演算過程で欠陥が発生されていないならば、L+1=HまたはH+1=2Hj+1である。また、二つの場合で何れもHとLとがチェック過程に含まれ、これは、計算された二ポイントで何れも欠陥が存在するか否かチェックされたということを意味する。
【0055】
以下では、前述したFMPLAを利用した新たな方式の欠陥チェック方法が適用される多様な実施形態が提案される。これは、欠陥チェックの実行ステップによって分けられる。すなわち、スカラー積演算中に欠陥の発生如何が判断される定期チェックとランダムチェック、そしてスカラー積演算が完了した後に演算結果が出力される前に欠陥の発生如何が判断される最終チェック方法が提案される。
【0056】
さらに具体的に説明すれば、定期チェック方法は、欠陥が発生されたか否かがスカラー積演算が反復される度に行われる。ランダムチェック方法は、スカラー積演算が反復される度に行われず、ランダムに選択されるスカラー積演算に対して、スカラー積演算が行われた後に行われる。
【0057】
図4は、定期チェック方法が適用されたFMPLAを利用した新たな方式の欠陥チェック動作を示すフローチャートである。
図4を参照すれば、定期チェック方法が適用された欠陥チェック方法400は、スカラー積演算が行われる反復区間ごとに定期的にチェック動作が行われる方法である。欠陥チェック方法400は、基本ポイントPとスカラーkとを受信して(S401)、スカラー積Q(=kxP)を出力する(S429)。
【0058】
ここで、基本ポイントPは、所定の楕円曲線上のポイントであって、ハードウェア具現時にEPROMに保存される。スカラーkは、数式(2)で説明した通りである。欠陥チェック方法400は、基本ポイントPとスカラーkとを受信した後(S401)、暗号化のためのパラメータまたはポイントを初期化するか、または設定する(S403)。スカラーkの2進ビットkによる反復的な演算のために、本発明では、変数が使われて、変数は、所定の規則によって初期化されるか、または設定される(S403またはS407)。
【0059】
まず、基本ポイントPを利用して第1ポイントPと第2ポイントPとが初期化される。具体的に、第1ポイントPは、基本ポイントPに初期化され、第2ポイントPは、基本ポイントPの2倍に初期化される。暗号化方法400に使われるパラメータまたはポイントが初期化された後には、反復的な演算を行ってスカラー積Qを計算する(S405ないしS413及びS427)。
【0060】
2進ビットで表現されるスカラーkの全てのビットについての反復演算のために、本発明の実施形態では、反復演算変数iを0まで減少させつつ(S405)、2進ビット値kについての反復演算が行われる。
【0061】
図4の欠陥チェック方法400では、再設定するステップが完了する度に欠陥が発生されたか否かチェックされるので、欠陥が発生されたか否が定期的にチェックされる。以下では、欠陥が発生されたか否かをチェックする動作について説明する(S415ないしS423)。
【0062】
まず、2進ビットkが“1”であるか否かが決定される(S415)。2進ビットkが“1”であれば、第1変数Tの2倍を第1変数Tに再設定し、第1変数Tに応答して決定される第1ポイントPと基本ポイントPとの和を第1変数Tに再設定する(S417)。次いで、第2ポイントPと再設定された第1変数Tが同一であるか否かを検査し、同一ならば、欠陥が発生されていないと判断し、そうではなければ、欠陥が発生されたと判断する(S419)。
【0063】
一方、2進ビットkが“1”でなければ、第2変数Tの2倍を第2変数Tに再設定し、第1変数Tに応答して決定される第2ポイントPと基本ポイントPとの和を第1変数Tに再設定する(S421)。次いで、再設定された第2変数Tと再設定された第1変数Tとが同一か否かを検査して、同一ならば、欠陥が発生されていないと判断し、そうではなければ、欠陥が発生されたと判断する(S423)。
【0064】
欠陥チェック方法400で欠陥が発生されていないと判断する場合、反復媒介変数iが0より小さいか否かを判断して(S427)、小さくなければ、iを減少させつつ、スカラー積演算と欠陥発生如何のチェック演算とを反復的に行う。しかし、反復媒介変数iが0より小さければ、そのときのP値をスカラー積Qとして出力する(S429)。一方、欠陥チェック方法400で欠陥が発生されたと判断する場合には、警告信号を出力する。
図5は、最終チェック方法が適用されたFMPLAを利用した新たな方式の欠陥チェック動作を示すフローチャートである。
【0065】
図5を参照すれば、欠陥チェック方法500は、反復されるスカラー積が何れも行われた後にチェック動作が行われる方法である。すなわち、図4の欠陥チェック方法400のように、2進ビットkに応答して第1ポイントと第2ポイントとが再設定された後(S511及びS513)、直ぐ欠陥流入如何をチェックせず、反復媒介変数iが1より小さいか否かを判断して(S515)、スカラー積演算を反復するか否かについてまず判断した後、欠陥の流入如何が検査される。
図5の他の動作は、図4と同一であるので、具体的な説明は省略する。
【0066】
図6は、ランダムチェック方法が適用されたFMPLAを利用した新たな方式の欠陥チェック動作を示すフローチャートである。
図6を参照すれば、欠陥チェック方法600は、スカラー積演算が反復的に行われる時に、任意のスカラー積演算を行った後に欠陥が発生されたか否かを検査する。すなわち、2進ビットkに応答して第1ポイントPと第2ポイントPとが再設定された後(S613及びS615)、欠陥発生如何をチェックするか否かを決定する。
【0067】
このとき、所定のチェック値CHECKがチェックレートRATE以下であるか否かを決定し(S617)、チェック値CHECKがチェックレートRATE以下である場合に、欠陥が発生されたか否かをチェックする。チェックレートRATEは、欠陥発生如何をチェックする頻度を決定する値であって、図6を参照すれば、チェックレートRATEは、暗号化方法で使われる媒介変数が初期化されるか、または設定されるステップで共に設定されうる(S603)。一方、チェック値CHECKは、ランダム定数である。
【0068】
例えば、チェック値CHECKとチェックレートRATEとが何れも0〜100の値を有し、チェックレートRATEが70に設定されれば、ランダムに発生するチェック値CHECKが70以下であれば、欠陥発生如何をチェックし、チェック値CHECKが70より大きければ、欠陥発生如何をチェックしない。
【0069】
図4ないし図6のFMPLAを使用する欠陥チェック方法は、第1ポイントP及び第2ポイントPの再設定において、楕円曲線ポイントの2倍演算及び加算演算を行う。しかし、前述したように、数式(6)の加算演算を図4ないし図6の加算演算に使用する場合、正確な欠陥発生如何がチェックできないという問題が発生する。
【0070】
図7は、本発明の実施形態によるFMPLAを利用する欠陥検出動作を具現するための素数有限領域におけるポイント加算演算方法を示すフローチャートである。
図7を参照すれば、本発明の実施形態によるFMPLAを利用する欠陥検出動作を具現するためのポイント加算演算方法700は、楕円曲線上の基本ポイントを利用して設定された第1ポイント及び第2ポイントについての素数有限領域における加算演算を行って、前記加算演算の結果の第1座標値を算出するS720と、前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算を行って、前記加算演算の結果の第2座標値を算出するS740と、を含む。
【0071】
前記FMPLAを利用する欠陥検出動作は、ECCシステムに適用されうる。以下の第1ポイント及び第2ポイントは、図4ないし図6の欠陥チェック動作の第1ポイントP及び第2ポイントPと同一であるので、同じ符号として説明される。
【0072】
第1ポイントP及び第2ポイントPについての素数有限領域における加算演算は、第1ポイントP及び第2ポイントPの第1座標値と第2座標値との差を反映する。このとき、第1座標値は、“X”座標値であり、前記第2座標値は、“Z”座標値である。
【0073】
すなわち、前記第1ポイントをP(X,Z)、前記第2ポイントをP(X,Z)とし、前記第1ポイントP1及び第2ポイントP2のX座標値の差(X−X)とZ座標値の差(Z−Z)とをそれぞれX及びZとするとき、第1ポイントP及び第2ポイントPの第1座標値及び第2座標値の差が第1ポイントP及び第2ポイントPについての素数有限領域における加算演算の結果であるP(X,Z)に反映される。
したがって、第1ポイントP及び第2ポイントPについての素数有限領域における加算演算の結果であるP(X,Z)は、次の数式(11)の通りである。
【0074】
【数13】

【0075】
a及びbは、加算演算に使われる定数であって、本発明が属する技術分野の当業者が容易に理解できる事項であるところ、これについてのさらに詳細な説明は省略する。このとき、基本ポイントPは、アフィン座標上のポイントであるので、第2ポイントPの前記第2座標値を“1”に代替しうる。
この場合、第1ポイントP及び第2ポイントPについての素数有限領域における加算演算の結果であるP(X,Z)は、次の数式(12)のように表現されうる。
【0076】
【数14】

【0077】
数式(11)及び数式(12)のように、第1ポイントP及び第2ポイントPの第2座標値の差であるZ値を二ポイントの素数有限領域における加算演算式に反映することによって、正確なモンゴメリアルゴリズムを利用した欠陥検出動作を行える。
【0078】
図8は、本発明の実施形態によるFMPLAを利用する欠陥検出動作を具現するための素数有限領域におけるポイント加算演算装置を示す図面である。
図8を参照すれば、本発明の実施形態による素数有限領域におけるポイント加算演算装置800は、第1座標算出部及び第2座標算出部を備える。第1座標算出部は、楕円曲線上の基本ポイントを利用して設定された第1ポイントP及び第2ポイントPについての素数有限領域における加算演算を行って、前記加算演算の結果の第1座標値Xを算出する。第2座標算出部は、第1ポイントP及び第2ポイントPの第2座標値についての素数有限領域における加算演算を行って、前記加算演算の結果の第2座標値Zを算出する。
【0079】
このとき、前記第1座標算出部及び前記第2座標算出部は、第1ポイントP及び第2ポイントPの第2座標値の差を反映して、前記第1座標値及び前記第2座標値を算出する。
前記第1座標算出部は、第1ないし第7乗算器X1〜X7、第1ないし第4加算器+1〜+4、第1及び第2算出手段C11,C12及び第1減算器−1を備える。
【0080】
第1乗算器X1は、前記Xと前記Zとを乗算して、第1乗算値(XxZ)として算出する。第2乗算器X2は、前記Xと前記Zとを乗算して、第2乗算値(XxZ)として算出する。第1加算器+1は、前記第1乗算値と前記第2乗算値とを加算して、第1加算値(XxZ+XxZ)として算出する。
【0081】
第3乗算器X3は、前記Xと前記Xとを乗算して、第3乗算値(XxX)として算出する。第4乗算器X4は、前記Zと前記Zとを乗算して、第4乗算値(ZxZ)として算出する。
【0082】
第5乗算器X5は、前記第4乗算値に第1所定数である前記aを乗算して、第5乗算値(axZxZ)として算出する。第2加算器+2は、前記第3乗算値と前記第5乗算値とを加算して、第2加算値(XxX+axZxZ)として算出する。
【0083】
第6乗算器X6は、前記第1加算値と前記第2加算値とを乗算して、第6乗算値((XxZ+XxZ)x(XxX+axZxZ))として算出する。第3加算器+3は、前記第6乗算値同士加算して、前記第6乗算値の2倍である第3加算値(2x(XxZ+XxZ)x(XxX+axZxZ))として算出する。
【0084】
第1算出手段C11は、前記第4乗算値を2倍にして自乗した結果に第2所定数である前記bを乗算して、第1算出値(4xbxZxZ)として算出する。第1算出手段C11は、第11加算器+11、第11自乗器S11及び第11乗算器X11を備える。第11加算器+11は、前記第4乗算値同士加算して、前記第4乗算値の2倍である第11加算値(2xZxZ)として算出する。第11自乗器S11は、前記第11加算値を自乗して、第11自乗値(4xZxZ)として算出する。第11乗算器X11は、前記第11自乗値に前記bを乗算して、前記第1算出値として算出する。
【0085】
第4加算器+4は、前記第3加算値と前記第1算出値とを加算して、第4加算値(2x(XxZ+XxZ)x(XxX+axZxZ)+4xbxZxZ)として算出する。第7乗算器X7は、前記第4加算値に前記Zを乗算して、第7乗算値(Zx[2x(XxZ+XxZ)x(XxX+axZxZ)+4xbxZxZ])として算出する。
【0086】
第2算出手段C12は、前記第1乗算値から前記第2乗算値を減算して自乗した結果に前記Xを乗算して、第2算出値(Xx(XxZ−XxZ)として算出する。第2算出手段C12は、第12減算器−12、第12自乗器S12及び第12乗算器X12を備える。第12減算器−12は、前記第1乗算値から前記第2乗算値を減算して、第12減算値(XxZ−XxZ)として算出する。第12自乗器S12は、前記第12減算値を自乗して、第12自乗値((XxZ−XxZ)として算出する。第12乗算器X21は、前記第12自乗値と前記Xとを乗算して、前記第2算出値として算出する。
【0087】
第1減算器−1は、前記第7乗算値から前記第2算出値を減算して、前記第1ポイント及び前記第2ポイントについての加算演算の結果のX座標値(X)として算出する。
第2座標算出部C22は、第21ないし第23乗算器X21,X22,X23、第21減算器−21及び第21自乗器S21を備えることである。
【0088】
第21乗算器X21は、前記Xと前記Zとを乗算して、第21乗算値(XxZ)として算出する。第22乗算器X22は、前記Xと前記Zとを乗算して、第22乗算値(XxZ)として算出する。第21減算器−21は、前記第21乗算値から前記第22乗算値を減算して、第21減算値(XxZ−XxZ)として算出する。
【0089】
前記第21自乗器S21は、前記第21減算値を自乗して、第21自乗値((XxZ−XxZ)として算出する。第23乗算器X23は、前記第21自乗値に前記Zを乗算して、前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算の結果のZ座標値(Z)として算出する。
【0090】
第21乗算器X21及び第22乗算器X22は、前記第1座標算出部の第1乗算器X1及び第2乗算器X2でありうる。また、第21減算器−21及び第21自乗器S21は、第2算出手段C12の第12減算器−12及び第12自乗器S12でありうる。
【0091】
図8の素数有限領域におけるポイント加算演算装置によって、前述した数式(11)が具現されうる。数式(12)は、次の図9の素数有限領域におけるポイント加算演算装置によって具現されうる。
【0092】
図9は、本発明の他の実施形態によるFMPLAを利用する欠陥検出動作を具現するための素数有限領域におけるポイント加算演算装置を示す図面である。
図9を参照すれば、本発明の実施形態による素数有限領域におけるポイント加算演算装置900は、図8のポイント加算演算装置800と同じ動作を行う。但し、図9のポイント加算演算装置900は、第2ポイントP2の第2座標値(Z座標値)が“1”である場合についてのポイント加算結果を算出する。したがって、図9のポイント加算演算装置900は、図8のポイント加算演算装置800と類似した構成を有するが、さらに少ない数の乗算器で具現されうる。
【0093】
図9のポイント加算演算装置900の第1座標算出部及び第2座標算出部は、図8のポイント加算演算装置800の説明から容易に分かるので、これについてのさらに詳細な説明は省略する。
【0094】
図10は、図8及び図9の自乗器をさらに詳細に示す図面である。
図10を参照すれば、自乗器Sは、同じ入力I1同士乗算Xする。このとき、自乗器Sは、図8及び図9の第11自乗器S11及び第12自乗器S12を表す。このように、同じ入力I1同士乗算Xするように自乗器Sを設計することによって、ポイント加算演算装置800,900のレイアウト面積を減らせるという長所がある。
【0095】
以上、図面及び明細書で最適の実施形態が開示された。ここで、特定の用語が使用されたが、これは、単に本発明を説明するための目的で使われたものであり、意味限定や特許請求の範囲に記載された本発明の範囲を制限するために使われたものではない。したがって、当業者ならば、これから多様な変形及び均等な他の実施形態が可能であるという点が分かるであろう。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想によって決定されねばならない。
【産業上の利用可能性】
【0096】
本発明は、暗号化方法関連の技術分野に適用可能である。
【図面の簡単な説明】
【0097】
【図1】DFAに対応するCT&C方法を示すフローチャートである。
【図2】DFAに対応するCOP方法を示すフローチャートである。
【図3】MPLAを利用してECC方法におけるスカラー積演算を行う方法を示すフローチャートである。
【図4】定期チェック方法が適用されたFMPLAを利用した新たな方式の欠陥チェック動作を示すフローチャートである。
【図5】最終チェック方法が適用されたFMPLAを利用した新たな方式の欠陥チェック動作を示すフローチャートである。
【図6】ランダムチェック方法が適用されたFMPLAを利用した新たな方式の欠陥チェック動作を示すフローチャートである。
【図7】本発明の実施形態によるFMPLAを利用する欠陥検出動作を具現するための素数有限領域におけるポイント加算演算方法を示すフローチャートである。
【図8】本発明の実施形態によるFMPLAを利用する欠陥検出動作を具現するための素数有限領域におけるポイント加算演算装置を示す図面である。
【図9】本発明の他の実施形態によるFMPLAを利用する欠陥検出動作を具現するための素数有限領域におけるポイント加算演算装置を示す図面である。
【図10】図8及び図9の自乗器をさらに詳細に示す図面である。
【符号の説明】
【0098】
800 ポイント加算演算装置
C11 第1算出手段
C12 第2算出手段
X1〜X7 第1ないし第7乗算器
+1〜+4 第1ないし第4加算器
−1 第1減算器
S11 第11自乗器
S12 第12自乗器
+11 第11加算器
−12 第12減算器

【特許請求の範囲】
【請求項1】
高速モンゴメリ電力ラダーアルゴリズムを利用する欠陥検出動作を具現するためのポイント加算演算方法において、
所定の楕円曲線上の基本ポイントを利用して設定された第1ポイント及び第2ポイントについての素数有限領域における加算演算を行って、前記加算演算の結果の第1座標値を算出するステップと、
前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算を行って、前記加算演算の結果の第2座標値を算出するステップと、を含み、
前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算は、
前記第1ポイント及び前記第2ポイントの第1座標値と第2座標値との差を反映することを特徴とする素数有限領域におけるポイント加算方法。
【請求項2】
前記高速モンゴメリ電力ラダーアルゴリズムを利用する欠陥検出動作は、
楕円曲線暗号化システムに適用されることを特徴とする請求項1に記載の素数有限領域におけるポイント加算方法。
【請求項3】
前記第1座標値は、“X”座標値であり、前記第2座標値は、“Z”座標値であることを特徴とする請求項1に記載の素数有限領域におけるポイント加算方法。
【請求項4】
前記第1ポイントをP(X,Z)、前記第2ポイントをP(X,Z)とし、前記前記第1ポイント及び前記第2ポイントのX座標値の差(X−X)とZ座標値の差(Z−Z)とをそれぞれX及びZとするとき、前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算の結果であるP(X,Z)は、
【数1】

であることを特徴とする請求項3に記載の素数有限領域におけるポイント加算方法。
【請求項5】
前記第2ポイントの前記第2座標値は、
“1”であることを特徴とする請求項4に記載の素数有限領域におけるポイント加算方法。
【請求項6】
高速モンゴメリ電力ラダーアルゴリズムを利用する欠陥検出動作を具現するためのポイント加算演算方法において、
所定の楕円曲線上の基本ポイントを利用して設定された第1ポイント及び第2ポイントについての素数有限領域における加算演算を行って、前記加算演算の結果の第1座標値を算出するステップと、
前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算を行って、前記加算演算の結果の第2座標値を算出するステップと、を含み、
前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算は、
前記第1ポイント及び前記第2ポイントの第1座標値と第2座標値との差を反映し、
前記第2ポイントの前記第2座標値は、
所定数に固定されることを特徴とする素数有限領域におけるポイント加算方法。
【請求項7】
前記高速モンゴメリ電力ラダーアルゴリズムを利用する欠陥検出動作は、
楕円曲線暗号化システムに適用されることを特徴とする請求項6に記載の素数有限領域におけるポイント加算方法。
【請求項8】
前記第1座標値は、“X”座標値であり、前記第2座標値は、“Z”座標値であることを特徴とする請求項6に記載の素数有限領域におけるポイント加算方法。
【請求項9】
前記第2ポイントのZ座標値は、
“1”であることを特徴とする請求項8に記載の素数有限領域におけるポイント加算方法。
【請求項10】
前記第1ポイントを P(X,Z)、前記第2ポイントをP(X,1)とし、前記前記第1ポイント及び前記第2ポイントのX座標値の差(X−X)とZ座標値の差(1−Z)とをそれぞれX及びZとするとき、前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算の結果であるP(X,Z)は、
【数2】

であることを特徴とする請求項9に記載の素数有限領域におけるポイント加算方法。
【請求項11】
高速モンゴメリ電力ラダーアルゴリズムを利用する欠陥検出動作を具現するためのポイント加算演算装置において、
所定の楕円曲線上の基本ポイントを利用して設定された第1ポイント及び第2ポイントについての素数有限領域における加算演算を行って、前記加算演算の結果の第1座標値を算出する第1座標算出部と、
前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算を行って、前記加算演算の結果の第2座標値を算出する第2座標算出部と、を備え、
前記第1座標算出部及び前記第2座標算出部は、
前記第1ポイント及び前記第2ポイントの第2座標値の差を反映して前記第1座標値及び前記第2座標値を算出することを特徴とする素数有限領域におけるポイント加算演算装置。
【請求項12】
前記高速モンゴメリ電力ラダーアルゴリズムを利用する欠陥検出動作は、
楕円曲線暗号化システムに適用されることを特徴とする請求項11に記載の素数有限領域におけるポイント加算演算装置。
【請求項13】
前記第1座標値は、“X”座標値であり、前記第2座標値は、“Z”座標値であることを特徴とする請求項11に記載の素数有限領域におけるポイント加算演算装置。
【請求項14】
前記第1ポイントをP(X,Z)、前記第2ポイントをP(X,Z)とし、前記前記第1ポイント及び前記第2ポイントのX座標値の差(X−X)とZ座標値の差(Z−Z)とをそれぞれX及びZとするとき、前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算の結果であるP(X,Z)は、
【数3】

であることを特徴とする請求項13に記載の素数有限領域におけるポイント加算演算装置。
【請求項15】
前記第1座標算出部は、
前記Xと前記Zとを乗算して、第1乗算値(XxZ)として算出する第1乗算器と、
前記Xと前記Zとを乗算して、第2乗算値(XxZ)として算出する第2乗算器と、
前記第1乗算値と前記第2乗算値とを加算して、第1加算値(XxZ+XxZ)として算出する第1加算器と、
前記Xと前記Xとを乗算して、第3乗算値(XxX)として算出する第3乗算器と、
前記Zと前記Zとを乗算して、第4乗算値(ZxZ)として算出する第4乗算器と、
前記第4乗算値に第1所定数である前記aを乗算して、第5乗算値(axZxZ)として算出する第5乗算器と、
前記第3乗算値と前記第5乗算値とを加算して、第2加算値(XxX+axZxZ)として算出する第2加算器と、
前記第1加算値と前記第2加算値とを乗算して、第6乗算値((XxZ+XxZ)x(XxX+axZxZ))として算出する第6乗算器と、
前記第6乗算値同士加算して、前記第6乗算値の2倍である第3加算値(2x(XxZ+XxZ)x(XxX+axZxZ))として算出する第3加算器と、
前記第4乗算値を2倍にして自乗した結果に第2所定数である前記bを乗算し、第1算出値(4xbxZxZ)として算出する第1算出手段と、
前記第3加算値と前記第1算出値とを加算して、第4加算値(2x(XxZ+XxZ)x(XxX+axZxZ)+4xbxZxZ)として算出する第4加算器と、
前記第4加算値に前記Zを乗算して、第7乗算値(Zx[2x(XxZ+XxZ)x(XxX+axZxZ)+4xbxZxZ])として算出する第7乗算器と、
前記第1乗算値から前記第2乗算値を減算して自乗した結果に前記Xを乗算して、第2算出値(Xx(XxZ−XxZ)として算出する第2算出手段と、
前記第7乗算値から前記第2算出値を減算して、前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算の結果のX座標値(X)として算出する第1減算器と、を備えることを特徴とする請求項14に記載の素数有限領域におけるポイント加算演算装置。
【請求項16】
前記第1算出手段は、
前記第4乗算値同士加算して、前記第4乗算値の2倍である第11加算値(2xZxZ)として算出する第11加算器と、
前記第11加算値を自乗して、第11自乗値(4xZxZ)として算出する第11自乗器と、
前記第11自乗値に前記bを乗算して、前記第1算出値として算出する第11乗算器と、を備えることを特徴とする請求項15に記載の素数有限領域におけるポイント加算演算装置。
【請求項17】
前記第11自乗器は、
前記第11加算値同士乗算することを特徴とする請求項16に記載の素数有限領域におけるポイント加算演算装置。
【請求項18】
前記第2算出手段は、
前記第1乗算値から前記第2乗算値を減算して、第12減算値(XxZ−XxZ)として算出する第21減算器と、
前記第12減算値を自乗して、第12自乗値((XxZ−XxZ)として算出する第12自乗器と、
前記第12自乗値と前記Xとを乗算して、前記第2算出値として算出する第12乗算器と、を備えることを特徴とする請求項15に記載の素数有限領域におけるポイント加算演算装置。
【請求項19】
前記第12自乗器は、
前記第12減算値同士乗算することを特徴とする請求項18に記載の素数有限領域におけるポイント加算演算装置。
【請求項20】
前記第2座標算出部は、
前記Xと前記Zとを乗算して、第21乗算値(XxZ)として算出する第21乗算器と、
前記Xと前記Zとを乗算して、第22乗算値(XxZ)として算出する第22乗算器と、
前記第21乗算値から前記第22乗算値を減算して、第21減算値(XxZ−XxZ)として算出する第21減算器と、
前記第21減算値を自乗して、第21自乗値((XxZ−XxZ)として算出する第21自乗器と、
前記第21自乗値に前記Zを乗算して、前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算の結果のZ座標値(Z)として算出する第23乗算器と、を備えることを特徴とする請求項14に記載の素数有限領域におけるポイント加算演算装置。
【請求項21】
高速モンゴメリ電力ラダーアルゴリズムを利用する欠陥検出動作を具現するためのポイント加算演算装置において、
所定の楕円曲線上の基本ポイントを利用して設定された第1ポイント及び第2ポイントについての素数有限領域における加算演算を行って、前記加算演算の結果の第1座標値を算出する第1座標算出部と、
前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算を行って、前記加算演算の結果の第2座標値を算出する第2座標算出部と、を備え、
前記第1座標算出部及び前記第2座標算出部は、
前記第1ポイント及び前記第2ポイントの第2座標値の差を反映して前記第1座標値及び前記第2座標値を算出して、
前記第2ポイントの第2座標値は、
所定数に固定されることを特徴とする素数有限領域におけるポイント加算演算装置。
【請求項22】
前記高速モンゴメリ電力ラダーアルゴリズムを利用する欠陥検出動作は、
楕円曲線暗号化システムに適用されることを特徴とする請求項21に記載の素数有限領域におけるポイント加算演算装置。
【請求項23】
前記第1座標値は、“X”座標値であり、前記第2座標値は、“Z”座標値であることを特徴とする請求項22に記載の素数有限領域におけるポイント加算演算装置。
【請求項24】
前記第2ポイントのZ座標値は、
“1”であることを特徴とする請求項23に記載の素数有限領域におけるポイント加算演算装置。
【請求項25】
前記第1ポイントをP(X,Z)、前記第2ポイントをP(X,1)とし、前記前記第1ポイント及び前記第2ポイントのX座標値の差(X−X)とZ座標値の差(1−Z)とをそれぞれX及びZとするとき、前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算の結果であるP(X,Z)は、
【数4】

であることを特徴とする請求項24に記載の素数有限領域におけるポイント加算演算装置。
【請求項26】
前記第1座標算出部は、
前記Xと前記Zとを乗算して、第1乗算値(XxZ)として算出する第1乗算器と、
前記第1乗算値と前記Xとを加算して、第1加算値(X+XxZ)として算出する第1加算器と、
前記Xと前記Xとを乗算して、第2乗算値(XxX)として算出する第2乗算器と、
前記Zに第1所定数であるaを乗算して、第3乗算値(axZ)として算出する第3乗算器と、
前記第2乗算値と前記第3乗算値とを加算して、第2加算値(XxX+axZ)として算出する第2加算器と、
前記第1加算値と前記第2加算値とを乗算して、第4乗算値((X+XxZ)x(XxX+axZ))として算出する第4乗算器と、
前記第4乗算値同士加算して、前記第4乗算値の2倍である第3加算値(2x(X+XxZ)x(XxX+axZ))として算出する第3加算器と、
前記Zを2倍にして自乗した結果に第2所定数である前記bを乗算して、第1算出値(4xbxZ)として算出する第1算出手段と、
前記第3加算値と前記第1算出値とを加算して、第4加算値(2x(X+XxZ)x(XxX+axZ)+4xbxZ)として算出する第4加算器と、
前記第4加算値に前記Zを乗算して、第5乗算値(Zx[2x(X+XxZ)x(XxX+axZ)+4xbxZ])として算出する第5乗算器と、
前記Xから前記第1乗算値を減算して自乗した結果に前記Xを乗算して、第2算出値(Xx(X−ZxZ)として算出する第2算出手段と、
前記第5乗算値から前記第2算出値を減算して、前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算の結果のX座標値(X)として算出する第1減算器と、を備えることを特徴とする請求項25に記載の素数有限領域におけるポイント加算演算装置。
【請求項27】
前記第1算出手段は、
前記Z同士加算して、前記Zの2倍である第11加算値(2xZ)として算出する第11加算器と、
前記第11加算値を自乗して、第11自乗値(4xZ)として算出する第11自乗器と、
前記第11自乗値に前記bを乗算して、前記第1算出値として算出する第11乗算器と、を備えることを特徴とする請求項26に記載の素数有限領域におけるポイント加算演算装置。
【請求項28】
前記第11自乗器は、
前記第11加算値同士乗算することを特徴とする請求項27に記載の素数有限領域におけるポイント加算演算装置。
【請求項29】
前記第2算出手段は、
前記Xから前記第1乗算値を減算して、第12減算値(X−XxZ)として算出する第12減算器と、
前記第12減算値を自乗して、第12自乗値((X−XxZ)として算出する第12自乗器と、
前記第12自乗値と前記Xとを乗算して、前記第2算出値として算出する第12乗算器と、を備えることを特徴とする請求項26に記載の素数有限領域におけるポイント加算演算装置。
【請求項30】
前記第12自乗器は、
前記第12減算値同士乗算することを特徴とする請求項29に記載の素数有限領域におけるポイント加算演算装置。
【請求項31】
前記第2座標算出部は、
前記Xと前記Zとを乗算して、第21乗算値(XxZ)として算出する第21乗算器と、
前記第21乗算値から前記Xを減算して、第21減算値(X−XxZ)として算出する第21減算器と、
前記第21減算値を自乗して、第21自乗値((X−XxZ)として算出する第21自乗器と、
前記第21自乗値に前記Zを乗算して、前記第1ポイント及び前記第2ポイントについての素数有限領域における加算演算の結果のZ座標値(Z)として算出する第22乗算器と、を備えることを特徴とする請求項25に記載の素数有限領域におけるポイント加算演算装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2008−42905(P2008−42905A)
【公開日】平成20年2月21日(2008.2.21)
【国際特許分類】
【出願番号】特願2007−196269(P2007−196269)
【出願日】平成19年7月27日(2007.7.27)
【出願人】(390019839)三星電子株式会社 (8,520)
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【Fターム(参考)】