JP2005258228A - 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム - Google Patents

暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP2005258228A
JP2005258228A JP2004071757A JP2004071757A JP2005258228A JP 2005258228 A JP2005258228 A JP 2005258228A JP 2004071757 A JP2004071757 A JP 2004071757A JP 2004071757 A JP2004071757 A JP 2004071757A JP 2005258228 A JP2005258228 A JP 2005258228A
Authority
JP
Japan
Prior art keywords
factor
genus
processing
base point
weight
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004071757A
Other languages
English (en)
Other versions
JP4599859B2 (ja
Inventor
Masanori Kataki
雅宣 堅木
Toru Akishita
徹 秋下
Izuru Kitamura
出 北村
Takeshi Takagi
剛 高木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004071757A priority Critical patent/JP4599859B2/ja
Priority to US11/065,941 priority patent/US7697683B2/en
Priority to DE602005003252T priority patent/DE602005003252T2/de
Priority to EP05004832A priority patent/EP1578054B1/en
Publication of JP2005258228A publication Critical patent/JP2005258228A/ja
Application granted granted Critical
Publication of JP4599859B2 publication Critical patent/JP4599859B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Algebra (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】 超楕円暗号処理において高速演算を実現する装置および方法を実現する。
【解決手段】 超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)の因子をベースポイントとして生成し、スカラー倍算処理を実行する。本構成により、スカラー倍算処理において実行する演算処理を、種数g=2の超楕円曲線暗号においては、Harley ADDから、演算ステップ数の少ないExHarADD2+1→2の実行ステップに変更し、また、種数g=3の超楕円曲線暗号においては、Harley ADDから演算ステップ数の少ないExHarADD3+2→3、またはExHarADD3+1→3の実行に変更することが可能となり、高速な演算処理が実現される。
【選択図】 図4

Description

本発明は、暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラムに関する。さらに詳細には、超楕円曲線暗号におけるスカラー倍算の高速化を実現する暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラムに関する。
昨今、ネットワーク通信、電子商取引の発展に伴い、通信におけるセキュリティ確保が重要な問題となっている。セキュリティ確保の1つの方法が暗号技術であり、現在、様々な暗号化手法を用いた通信が行なわれている。
例えばICカード等の小型の装置中に暗号処理モジュールを埋め込み、ICカードと、データ読み取り書き込み装置としてのリーダライタとの間でデータ送受信を行ない、認証処理、あるいは送受信データの暗号化、復号化を行なうシステムが実用化されている。
暗号処理を実行する例えばICカードは、例えば駅の改札などの様々なゲート、あるいはショッピングセンターなどで盛んに利用されるようになっており、小型化および処理の迅速化の要求が厳しくなってきている。
暗号化方式には、大別して共通鍵方式、公開鍵方式がある。共通鍵方式は、対称暗号方式ともよばれ、発信者、受信者の双方で共通の鍵を保有する。共通鍵方式の代表的な方法として、DES(Data Encryption Standard)がある。DESアルゴリズムの特徴は、暗号化と復号化とをほぼ同じアルゴリズムで実行可能なことである。
この共通鍵暗号に対して、発信者と受信者の鍵を異なるものとした構成が公開鍵方式または非対称暗号方式である。公開鍵暗号方式では、暗号化、復号化に共通の鍵を用いる共通鍵暗号方式と異なり、秘密に保つ必要のある秘密鍵は、特定の1人が持てばよいため鍵の管理において有利である。ただし、公開鍵暗号方式は共通鍵暗号方式に比較してデータ処理速度が遅く、一般には、秘密鍵の配送、デジタル署名等のデータ量の少ない対象に多く用いられている。公開鍵暗号方式の代表的なものにはRSA(Rivest-Shamir-Adleman)暗号や、楕円曲線暗号(ECC:Elliptic Curve Cryptography)が知られている。
楕円曲線暗号(Elliptic Curve Cryptography)は、素体上の楕円曲線y=x+ax+b(4a+27b≠0)や、2の拡大体上の楕円曲線y+xy=x+ax+b(b≠0)などを用いる。これらの曲線上の点に無限遠点(O)を加えた集合は、加法に関して有限群をなし、無限遠点(O)はその単位元となる。以下、この有限群上の点の加法を+で表す。この有限群上の異なる2点P,Qの加算P+Qを「点の加算」、点Pと点Pの加算P+P=2Pを「点の2倍算」と呼ぶ。また、点Pをk回加算した点P+P+…+P=kPを求める演算を「点のスカラー倍算」と呼ぶ。
点のスカラー倍算は、点の加算、および点の2倍算を用いて構成できることが知られている。素体上の楕円曲線や2の拡大体上の楕円曲線上のアフィン座標系(x,y)や射影座標(X,Y,Z)における点の加算法、点の2倍算法、および点のスカラー倍算法は、IEEE P1363/D13 Standard Specifications for Public Key Cryptographyに記されている。
楕円曲線暗号を一般化した方式として、Koblitz、Cantorによって提案された超楕円曲線暗号(HECC:Hyper Elliptic Curve Cryptography)方式がある。超楕円曲線暗号方式については、例えば非特許文献1、非特許文献2に記載されている。
楕円曲線暗号では有限体Fq上で定義される楕円曲線上の点をPとし、スカラー倍算した点kP(k∈Z)をQとすると、Qからkを求める問題は離散対数問題に帰着できる。一方、超楕円曲線暗号では点の形式的和である因子(divisor)をDとし、スカラー倍算kDで定義される因子をDとすると、Dからkを求める問題は超楕円曲線におけるヤコビ多様体上の離散対数問題として公開鍵暗号として用いることができる。
超楕円曲線では曲線を特徴づける値は種数(genus)gである。pを素数、nを正の整数、q=pとする。このとき有限体Fq上で定義される種数gの超楕円曲線Cは以下の方程式、
+h(x)y=f(x)
で定義される。ここで、h(x),f(x)∈Fq[x],f(x)は、は次数2g+1のmonic多項式である。
超楕円曲線C上の点P=(x、y)に対してoppositeな点−Pは(x、y+h(x))として定義される。P=−Pである点を分岐点(ramification point)と呼ぶ。
超楕円曲線暗号の定義体の演算サイズ(ビット長)は楕円曲線暗号と同等の安全性を仮定した場合、楕円曲線の定義体の演算サイズに比べて1/gに小さくなることが知られている。演算サイズが小さいことは実装上メリットがあり、超楕円曲線暗号の利点の一つして挙げられる。
次に、超楕円曲線暗号の基本事項について説明する。前述したように、超楕円曲線暗号では点の形式的和である因子(divisor)をDとし、スカラー倍算kDで定義される因子をDとすると、Dからkを求める問題は超楕円曲線におけるヤコビ多様体上の離散対数問題として公開鍵暗号として用いることができる。
ここで、因子(divisor)は以下の形式で表現することができる。
Figure 2005258228
但しP=(x、y)かつi≠jに対してP≠Pである。この形式の因子の表現を半被約因子(semi reduced divisor)とよぶ。
また、ΣmをDのウェイト(weight)と呼ぶ。さらにウェイト(weight)が種数g以下である半被約因子を被約因子(reduced divisor)と呼ぶ。
超楕円曲線のヤコビ(Jacobi)多様体上の任意の半被約因子Dは下記の多項式U、V∈Fq[x]を用いてD=(U、V)として表現できる。これをマンホード(Mumford)表現と呼ぶ。なお、マンホード(Mumford)表現については、例えば非特許文献3に記載されている。
Figure 2005258228
種数(genus)2の任意の被約因子Dはマンホード(Mumford)表現を用いると、有限体Fq上の元を係数に持つ2次以下の多項式の組、すなわち、
(U、V)=(x+ux+u、vx+v
として表現することができる。
また、種数(genus)3の任意の被約因子Dはマンホード(Mumford)表現を用いると有限体Fq上の元を係数に持つ3次以下の多項式の組、すなわち、
(U、V)=(x+u+ux+u、v+vx+v
として表現できる。
他の因子の表現として変形Mumford表現、Weighted Coordinateがある。変形Mumford表現はECC(楕円曲線暗号)でいうプロジェクティブ(projective)座標に相当し、Mumford表現(U、V)に定数Z倍し、(U、V、Z)で表現するものである。
Weighted Coordinateも同様にMumford表現に複数の定数(Z1、Z2)をかけることで(U、V、Z1、Z2)で表現する方法である。いずれも下記に述べるHarleyのアルゴリズムの計算量を削減するための手法として用いられている。
以下、超楕円曲線における
[1]加算処理(2倍算を含む)
[2]スカラー倍算処理
[3]ベースポイント生成処理
の各処理について説明する。
なお、以下、本明細書において、因子Dは、特に断りがない限り被約因子(reduced divisor)であるものとする。すなわち、ウェイト(weight)が種数g以下である半被約因子としての被約因子(reduced divisor)であるものとする。
[1]加算処理(2倍算を含む)
まず、超楕円曲線における加算アルゴリズムについて説明する。
因子のスカラー倍算は加算アルゴリズムと呼ばれる因子の加算と2倍算の組み合わせで計算することができる。以下ではこれまでに知られている加算アルゴリズムについて説明する。
最初に提案された実用的なアルゴリズムはCantorのアルゴリズムである。このアルゴリズムについては、例えば非特許文献1、非特許文献2に記載されている。このアルゴリズムはあらゆる種数の超楕円曲線上の因子に対して適用可能なアルゴリズムであるが、楕円曲線に比べてアルゴリズムが複雑で計算量が多いことが欠点である。
Harleyは種数2の超楕円曲線に限定し、因子のweightの場合分けをおこない、それぞれの場合で最適化を行うことでより計算量の少ないアルゴリズムを提案した。この研究を受けて超楕円曲線暗号(HECC)における演算アルゴリズムの改良、拡張の研究が近年盛んになっている。
Harleyのアルゴリズムは定義体を素体、種数2の曲線、因子の表現はMumford表現を用いている。このアルゴリズムの計算量の改善の研究例として、例えば、非特許文献4、非特許文献5、非特許文献6などが挙げられる。さらに、定義体を2の拡大体の場合について拡張した処理例について、非特許文献7、非特許文献8に報告されている。また、種数が3の場合のHarleyのアルゴリズムへの拡張処理については、非特許文献9、非特許文献10に報告されている。また、因子の表現に拡張Mumford表現、Weighted Coordinateを用いることで計算量を削減した研究として非特許文献11、非特許文献12、非特許文献6、非特許文献13がある。
Harleyアルゴリズムの処理について、図1および図2を参照して説明する。図1(A)は、種数2の場合の因子の加算D+Dの処理例を示した図である。なお、因子D、Dは、それぞれD=(U1、)、D=(U、V)とする。まず、因子のウェイト(weight)の値によって場合分けが行われる。すなわち、[D+D]の各ウェイト(weight)の値によって、
(1)weight2+weight2
(2)weight2+weight1
(3)例外処理1
の場合分けが行なわれる。
次にweight2同士の加算、すなわち(1)weight2+weight2の場合、因子D=(U1、)、D=(U、V)について、最大公約数gcd(U、U)=1であれば、2つの因子D=(U1、)、D=(U、V)は、互いに同一またはオポジット(opposite)な点を含まない。この場合、
(1a)HarleyADD、
すなわちハーレーアルゴリズムに従った加算処理を行う。(1a)HarleyADDの処理は例えば非特許文献7に示されているMost Frequent Caseと呼ばれる処理である。このMost Frequent Caseは、種数2の場合の因子の加算D+D処理において、高確率で発生するケースである。
種数2の加算処理におけるMost Frequent Caseで実行するHarleyADDの処理を、以下のテーブル1[Table1]に示す。
Figure 2005258228
この(1a)HarleyADDの処理は、後述するように非常に高い確率でおこる。その他の例外処理の起こる確率は非常に低い。Most Frequent Caseの条件を満たさない場合、すなわち、因子D=(U1、)、D=(U、V)について、最大公約数gcd(U、U)=1を満足しない場合は、
(1b)例外処理2を行う。
(2)weight2+weight1の場合についても同様に、gcd(U、U)=1かどうかをチェックし、gcd(U、U)=1を満足する場合には、
(2a)ExHarADD2+1→2を実行し、
gcd(U、U)=1を満足しない場合には、
(2b)例外処理3を行う。
(2a)ExHarADD2+1→2のアルゴリズムは非特許文献8に示されている。ExHarADD2+1→2の処理を、以下のテーブル3[Table3]に示す。
Figure 2005258228
(3)例外処理1は、weightの場合分けが上記(1),(2)以外の場合である。
種数2の場合の2倍算の流れを図1(B)に示す。2倍算は、D+D=2Dの処理である。加算の場合と同様に因子Dのweightが
(4)weight2、
(5)weight1、
(6)weight0、
によってそれぞれ異なる処理を行う。
(4)weight2の場合、因子が分岐点を含むかどうかをチェックし、含まなければ、(4a)HarleyDBLの処理を行う。因子が分岐点を含む場合は(4b)例外処理6を行う。
(4a)HarleyDBLの処理アルゴリズムは例えば非特許文献7にMost Frequent Caseとして示されている。HarleyDBLの処理アルゴリズムを、以下のテーブル2[Table2]に示す。
Figure 2005258228
次に、種数3の場合における加算、2倍算について、図2を参照して説明する。種数3においても、種数2の場合と基本的な考え方は同じであるが、種数3の場合、因子の最大のweightが3になるため、場合分けの数は種数2に比べて非常に多くなることが特徴である。
図2(A)加算において、因子D、Dは、それぞれD=(U1、)、D=(U、V)とする。まず、因子のウェイト(weight)の値によって場合分けが行われる。すなわち、[D+D]の各ウェイト(weight)の値によって、
(1)weight3+weight3
(2)weight3+weight2
(3)weight3+weight1
(4)例外処理7
の場合分けが行なわれる。
さらに、(1)weight3+weight3の場合において、因子D=(U1、)、D=(U、V)について、最大公約数gcd(U、U)=1を満足する場合は、
(1a)HarleyADD
を実行する。これが種数3の加算処理における最も高確率で発生するケース、すなわち、Most Frequent Caseである。
種数3の加算処理におけるMost Frequent CaseとしてのHarleyADDは例えば非特許文献9,10に示されている。種数3の加算処理におけるMost Frequent CaseとしてのHarleyADDのアルゴリズムを以下のテーブル[Table4]に示す。
Figure 2005258228
同様に、(2)weight3+weight2の場合において、因子D=(U1、)、D=(U、V)について、最大公約数gcd(U、U)=1を満足する場合は、
(2a)ExHarADD3+2→3
を実行する。
最大公約数gcd(U、U)=1を満足しない場合は、
(2b)例外処理9
を実行する。
同様に、(3)weight3+weight1の場合において、因子D=(U1、)、D=(U、V)について、最大公約数gcd(U、U)=1を満足する場合は、
(3a)ExHarADD3+1→3
を実行する。
最大公約数gcd(U、U)=1を満足しない場合は、
(3b)例外処理10
を実行する。
それぞれのアルゴリズムは文献等に明示的に示されていないので、定義体がF の場合の公式を導出した。その結果としてのExHarADD3+1→3、およびExHarADD3+2→3のアルゴリズムを、以下のテーブル[Table6]、[Table7]に示す。
Figure 2005258228
Figure 2005258228
種数3の場合の2倍算の流れを図2(B)に示す。2倍算は、D+D=2Dの処理である。加算の場合と同様に因子Dのweightが
(4)weight3、
(5)weight2、
(6)weight1、
(7)weight0、
によってそれぞれ異なる処理を行う。
(4)weight3の場合、因子が分岐点を含むかどうかをチェックし、含まなければ、(4a)HarleyDBLの処理を行う。因子が分岐点を含む場合は(4b)例外処理11を行う。
(4a)HarleyDBLの処理アルゴリズムは例えば非特許文献9,10にMost Frequent Caseとして示されている。HarleyDBLの処理アルゴリズムを、以下のテーブル5[Table5]に示す。
Figure 2005258228
種数2、3共にHarleyADD、HarleyDBLはmost frequent caseと呼ばれ、ランダムに因子を発生させて加算または2倍算を行うと、非常に高い確率でHarleyADD、HarleyDBLの処理になる。なお、このHarleyADD、HarleyDBLが、most frequent caseとなることの説明は、例えば非特許文献14に説明されている。
非特許文献14によると、このmost frequent caes以外の処理になる確率はO(1/q)である。ここでqは定義体の要素数であり、安全な暗号用途ではqgが160bit程度必要になる大きな数であるので現実的にはHarleyADD、HarleyDBLしか発生しない状況とみなすことができる。
従って超楕円曲線暗号(HECC)の加算アルゴリズムをHarleyアルゴリズムまたはその改良アルゴリズムを使って、例えばICカードなどの暗号処理演算手段として実装する場合、
HarleyADD、
HarleyDBL
だけを実装し、その他の確率的にほとんど起こらない複雑な例外処理についての演算を実行しない実装とする場合も多い。この場合、例外処理については、weightの場合分けが必要のないCantorのアルゴリズムを実行する構成とするなどの方法が適用される。種数が高くなるほど複雑な例外処理の負担は増すため、非特許文献9,10ではこの実装方法について説明している。
[2]スカラー倍算について
次に超楕円曲線暗号(HECC)アルゴリズムにおける因子のスカラー倍算について説明する。
超楕円曲線暗号(HECC)アルゴリズムにおいて、因子のスカラー倍算は、超楕円加算と超楕円2倍算の組み合わせで計算することができる。スカラー倍算のアルゴリズムとして基本的なbinary法とdouble−and−add−always法を例に挙げて説明する。
ここでdの2進数表現を、
(dl−1、・・・・・、d)、dl−1=1、dl−2,・・・,0=1or0とする。
スカラー倍算のアルゴリズムとして基本的なbinary法の演算アルゴリズムを以下に示す。
Figure 2005258228
次に、double−and−add−always法の演算アルゴリズムについて説明する。
暗号技術の実装方法の不具合を利用して秘密情報を知る方法をサイドチャネルアタック(Side Channel Atttack、 SCA)と呼ぶ。SCAにはタイミングアタック(TA:Timing Attack)や、単純電力解析(SPA:Simple Power Analysis)や、差分電力解析(DPA:Differential Power Analysis)といった電力攻撃などがある。タイミングアタック(TA)については非特許文献15、電力攻撃については、非特許文献16に説明がある。
楕円曲線暗号(ECC)、および超楕円曲線暗号(HECC)に対するタイミングアタック(TA)、および電力攻撃(SPA)に対する対策としてdouble−and−add−always法が用いられる。このdouble−and−add−always法についての詳細は、非特許文献17に説明されている。
スカラー倍算のアルゴリズムとして基本的なdouble−and−add−always法の演算アルゴリズムを以下に示す。
Figure 2005258228
[3]ベースポイントの生成
スカラー倍算の計算を暗号技術で用いる場合、入力に必要な因子Dは、
(1)事前に決めた因子の場合、
(2)事前に決められないランダムに発生する因子の場合、
の2つのタイプに分けることができる。
ここで(1)事前に決めた因子の場合、の入力因子をベースポイントと呼ぶことにする。
一般的なベースポイントの生成アルゴリズムを以下に示す。
(a)
定義体F上の元をランダムにg個選び、g個の超楕円曲線上の点P(i=1、…、g)を生成する。
(a1) ランダムに選んだ各元をx座標x(i=1…g)とし、次に超楕円曲線上に乗るようにxに対応するy座標を求める。
(b)
ベースポイントの因子をD=(U(x)、V(x))とする。
(b1)U(x)=(x−x)(x−x)…(x−x
(b2)V(x)=vg−1g−1+vg−2g−2+…+vの係数vを決定する。例えば生成した点が全て異なる場合、V(x)=yよりvを求めることができる。
(c) 上記アルゴリズムにより生成される因子はweight gの因子となる。
スカラー倍算の計算を暗号技術で用いる場合、入力に必要な因子Dの生成、すなわちベースポイントの生成において、事前に決めた因子を適用する場合、上述の処理(a)〜(c)によってweight gのベースポイントに適用する因子を求めることができる。
N.Koblitz. Hyperelliptic curve cryptosystems. J.Cryptology, vol.1,No.3, pp.139-150, 1989. D.G.Cantor. Computing in the Jacobian of hyperelliptic curve. Math. Comp., Vol.48, No. 177, pp.95-101, 1987 「D. Mumford, Tata lectures on theta II, Progress in Mathematics, no. 43, Birkhauser, 1984.」 K.Matsuo, J.Chao, and S.Tsujii. Fast Genus two hyperelliptic curve cryptosystems. Technical Report ISEC2001-31, IEICE Japan, 2001. M.Takahashi. Improving Harley algorithms for Jacobians of genus 2 hyperelliptic curves. SCIS2002. (Japanese). T.Lange. Inversion-free arithmetic on genus 2 hyperelliptic curves. Cryptology ePrint Archive, 2002/147, IACR, 2002. T.Sugizaki, K.Matsuo, J.Chao, and S.Tsujii. An extension of Harley addition algtorithm for hyperelliptic curves over finite fields of characteristic two. ISEC2002-9, IEICE, 2001 T.Lange, Efficient arithmetic on genus 2 hyperelliptic curves over finite fields via explicit formulae. Cryptology ePrint Archive, 2002/121, IACR, 2002. J.Kuroki, M.Gonda, K.Masuo, J.Chao and S.Tsujii. Fast genus three hyperellipitc curve cryptosystems. SCIS2002 J.Pelzl, T.Wollinger, J. Guajardo, and C. Paar. Hyperelliptic curve Cryptosystems: Closing the Performance Gap to Elliptic Curves. Cryptology ePrint Archive, 2003/026, IACR, 2003. Y.Miyamoto, H.Doi, K.Matsuo, J.Chao and S.Tsujii. A fast addition algorithm of genus two hyperelliptic curves. SCIS2002. (Japanese). N.Takahashi, H.Morimoto and A.Miyaji. Efficient exponentiation on genus two hyperelliptic curves (II). ISEC2002-145, IEICE, 2003. (Japanese) T.Lange. Weighed coordinate on genus 2 hyperellipitc curve. Cryptology ePrint Archive, 2002/153, IACR, 2002. N. Nagao. Improving group law algorithms for Jacobians of hyperelliptic curves. ANTS-IV, LNCS 1838, pp.439-448, Springer-Verlag, 2000. C. Kocher, Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems, CRYPTO'96, LNCS 1109, pp.104-113, 1996 C. Kocher, J. Jaffe, and B. Jun, Differential Power Analysis, CRYPTO '99, LNCS 1666, pp.388-397, Springer-Verlag, 1999 J.-S. Coron, Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems, CHES'99, LNCS 1717, pp.292-302, Springer-Verlag, 1999
現在、実用フェーズに入りつつある楕円曲線暗号(ECC)アルゴリズムに対して、その拡張概念である超楕円曲線暗号(HECC)アルゴリズムは、現在、学会レベルで高速アルゴリズムや、その実装方法についての研究が進められている。超楕円曲線暗号(HECC)のスカラー倍算の演算時間は、楕円曲線暗号(ECC)に近づきつつある程度に過ぎず、さらなる高速化が望まれている。
本発明は、このような現状に鑑みてなされたものであり、超楕円曲線暗号(HECC)のスカラー倍算の演算時間を短縮し、高速処理可能な超楕円曲線暗号(HECC)演算処理を実現する暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラムを提供することを目的とする。
本発明は、通常用いられることのない、most frequent case以外の演算処理のうち、計算量の少ない演算処理をスカラー倍算の計算に積極的に利用することで、スカラー倍算を高速化し、高速処理可能な超楕円曲線暗号(HECC)演算処理を実現する暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラムを提供する。
本発明の第1の側面は、
超楕円曲線暗号に基づく暗号処理演算を実行する暗号処理演算方法であり、
超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)の因子をベースポイントとして生成するベースポイント生成ステップと、
前記ベースポイントとしての因子を含む因子のスカラー倍算処理を実行する演算処理ステップと、
を有することを特徴とする暗号処理演算方法にある。
さらに、本発明の暗号処理演算方法の一実施例において、前記ベースポイント生成ステップは、定義体としての有限体F上の元をランダムにg個選び、g個の超楕円曲線上の点P(i=1、…、g)を生成するステップと、
U(x)=(x−x)(x−x)…(x−xg0
V(x)=vg0−1g0−1+vg0−2g0−2+…+vの係数vを決定し、ベースポイントの因子:D=(U(x)、V(x))を決定するステップと、
を含むステップであることを特徴とする。
さらに、本発明の暗号処理演算方法の一実施例において、前記ベースポイント生成ステップは、超楕円曲線の種数g(genus)=2である場合、ウェイト(weight)1となる因子をベースポイントとして生成するステップであり、前記演算処理ステップは、因子の加算処理として、ウェイト(weight)1の因子+ウェイト(weight)2の因子の加算処理を実行するステップであることを特徴とする。
さらに、本発明の暗号処理演算方法の一実施例において、前記演算処理ステップは、加算演算処理アルゴリズム:ExHarADD2+1→2を実行するステップを含むことを特徴とする。
さらに、本発明の暗号処理演算方法の一実施例において、前記ベースポイント生成ステップは、超楕円曲線の種数g(genus)=3である場合、ウェイト(weight)1もしくは2となる因子をベースポイントとして生成するステップであり、前記演算処理ステップは、因子の加算処理として、ウェイト(weight)1の因子+ウェイト(weight)3の因子の加算処理、またはウェイト(weight)2の因子+ウェイト(weight)3の因子の加算処理を実行するステップであることを特徴とする。
さらに、本発明の暗号処理演算方法の一実施例において、前記演算処理ステップは、加算演算処理アルゴリズム:ExHarADD3+2→3、または、加算演算処理アルゴリズム:ExHarADD3+1→3、の少なくともいずれかの加算演算処理アルゴリズムを実行するステップを含むことを特徴とする。
さらに、本発明の暗号処理演算方法の一実施例において、前記ベースポイント生成ステップは、超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)の因子のうち、因子のMumford表現の多項式の係数が少なくとも一つ以上0または1である因子をベースポイントとして生成するステップであることを特徴とする。
さらに、本発明の暗号処理演算方法の一実施例において、前記演算処理ステップは、Harleyのアルゴリズムに従った加算アルゴリズムを含む演算処理を実行するステップであることを特徴とする。
さらに、本発明の暗号処理演算方法の一実施例において、前記演算処理ステップは、binary法またはdouble−and−add−always法の少なくともいずれかのスカラー倍算アルゴリズムに従った演算を実行するステップであることを特徴とする。
さらに、本発明の暗号処理演算方法の一実施例において、前記演算処理ステップは、Cantorのアルゴリズムに従った加算アルゴリズムを含む演算を実行するステップであることを特徴とする。
さらに、本発明の第2の側面は、
超楕円曲線暗号に基づく暗号処理演算を実行する暗号処理装置であり、
超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)の因子をベースポイントとして生成するベースポイント生成手段と、
前記ベースポイントとしての因子を含む因子のスカラー倍算処理を実行する演算処理手段と、
を有することを特徴とする暗号処理装置にある。
さらに、本発明の暗号処理装置の一実施例において、前記ベースポイント生成手段は、定義体としての有限体F上の元をランダムにg個選び、g個の超楕円曲線上の点P(i=1、…、g)を生成し、
U(x)=(x−x)(x−x)…(x−xg0
V(x)=vg0−1g0−1+vg0−2g0−2+…+vの係数vを決定し、ベースポイントの因子:D=(U(x)、V(x))を決定する処理を実行する構成であることを特徴とする。
さらに、本発明の暗号処理装置の一実施例において、前記ベースポイント生成手段は、超楕円曲線の種数g(genus)=2である場合、ウェイト(weight)1となる因子をベースポイントとして生成する構成であり、前記演算処理手段は、因子の加算処理として、ウェイト(weight)1の因子+ウェイト(weight)2の因子の加算処理を実行する構成を有することを特徴とする。
さらに、本発明の暗号処理装置の一実施例において、前記演算処理手段は、加算演算処理アルゴリズム:ExHarADD2+1→2を実行する構成であることを特徴とする。
さらに、本発明の暗号処理装置の一実施例において、前記ベースポイント生成手段は、超楕円曲線の種数g(genus)=3である場合、ウェイト(weight)1もしくは2となる因子をベースポイントとして生成し、前記演算処理手段は、因子の加算処理として、ウェイト(weight)1の因子+ウェイト(weight)3の因子の加算処理、またはウェイト(weight)2の因子+ウェイト(weight)3の因子の加算処理を実行する構成であることを特徴とする。
さらに、本発明の暗号処理装置の一実施例において、前記演算処理手段は、加算演算処理アルゴリズム:ExHarADD3+2→3、または、加算演算処理アルゴリズム:ExHarADD3+1→3、の少なくともいずれかの加算演算処理アルゴリズムを実行する構成であることを特徴とする。
さらに、本発明の暗号処理装置の一実施例において、前記ベースポイント生成手段は、超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)の因子のうち、因子のMumford表現の多項式の係数が少なくとも一つ以上0または1である因子をベースポイントとして生成する処理を実行する構成であることを特徴とする。
さらに、本発明の暗号処理装置の一実施例において、前記演算処理手段は、Harleyのアルゴリズムに従った加算アルゴリズムを含む演算処理を実行する構成であることを特徴とする。
さらに、本発明の暗号処理装置の一実施例において、前記演算処理手段は、binary法またはdouble−and−add−always法の少なくともいずれかのスカラー倍算アルゴリズムに従った演算を実行する構成であることを特徴とする。
さらに、本発明の暗号処理装置の一実施例において、前記演算処理手段は、Cantorのアルゴリズムに従った加算アルゴリズムを含む演算を実行する構成であることを特徴とする。
さらに、本発明の第3の側面は、
超楕円曲線暗号に基づく暗号処理演算を実行するコンピュータ・プログラムであり、
超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)となる因子をベースポイントとして生成するベースポイント生成ステップと、
前記ベースポイントとしての因子を含む因子のスカラー倍算処理を実行する演算処理ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の構成によれば、超楕円曲線暗号に基づく暗号処理において、超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)の因子をベースポイントとして生成し、スカラー倍算処理を実行する構成としたので、スカラー倍算処理において実行する演算処理を、例えば種数g=2の超楕円曲線暗号においては、Harley ADDから、演算ステップ数の少ないExHarADD2+1→2の実行ステップに変更し、また、種数g=3の超楕円曲線暗号においては、Harley ADDから演算ステップ数の少ないExHarADD3+2→3、またはExHarADD3+1→3の実行に変更することが可能となり、超楕円曲線暗号処理における高速な演算処理が実現される。
さらに、本発明の構成によれば、ベースポイント生成において、超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)の因子のうち、因子のMumford表現の多項式の係数が少なくとも一つ以上0または1である因子をベースポイントとして生成することで、さらなる演算ステップの削減が可能となり、超楕円曲線暗号処理における高速な演算処理が実現される。
以下、本発明の暗号処理装置および暗号処理演算方法、並びにコンピュータ・プログラムの詳細について説明する。なお、説明は、以下の項目に従って行なう。
1.本発明の概要について
2.ベースポイント生成アルゴリズムについて
3.演算処理の詳細
4.暗号処理装置の機能構成について
5.電子署名生成および検証アルゴリズムにおける本発明の適用例
6.暗号処理装置のハードウェア構成例
[1.本発明の概要について]
前述したように、楕円曲線暗号を一般化した超楕円曲線暗号(HECC:Hyper Elliptic Curve Cryptography)についての高速化演算手法についての研究が盛んに行なわれている。超楕円曲線では曲線を特徴づける値は種数(genus)gである。pを素数、nを正の整数、q=pとする。このとき有限体Fq上で定義される種数gの超楕円曲線Cは以下の方程式、
+h(x)y=f(x)
で定義される。ここで、h(x),f(x)∈Fq[x],f(x)は、は次数2g+1のmonic多項式である。
超楕円曲線C上の点P=(x、y)に対してoppositeな点−Pは(x、y+h(x))として定義される。P=−Pである点を分岐点(ramification point)と呼ぶ。
超楕円曲線暗号の定義体の演算サイズ(ビット長)は楕円曲線暗号と同等の安全性を仮定した場合、楕円曲線の定義体の演算サイズに比べて1/gに小さくなることが知られている。演算サイズが小さいことは実装上メリットがあり、超楕円曲線暗号の利点の一つして挙げられる。
前述したように、超楕円曲線暗号では点の形式的和である因子(divisor)をDとし、スカラー倍算kDで定義される因子をDとすると、Dからkを求める問題は超楕円曲線におけるヤコビ多様体上の離散対数問題として公開鍵暗号として用いることができる。
因子(divisor)は、前述したように、以下の形式で表現することができる。
Figure 2005258228
但しP=(x、y)かつi≠jに対してP≠Pである。この形式の因子を半被約因子(semi reduced divisor)とよぶ。また、ΣmをDのウェイト(weight)と呼ぶ。さらにウェイト(weight)が種数g以下である半被約因子を被約因子(reduced divisor)と呼ぶ。
超楕円曲線のヤコビ(Jacobi)多様体上の任意の半被約因子Dは下記の多項式U、V∈Fq[x]を用いてD=(U、V)として表現できる。これをマンホード(Mumford)表現と呼ぶ。
Figure 2005258228
種数(genus)2の任意の被約因子Dはマンホード(Mumford)表現を用いると、有限体Fq上の元を係数に持つ2次以下の多項式の組、すなわち、
(U、V)=(x+ux+u、vx+v
として表現することができる。
また、種数(genus)3の任意の被約因子Dはマンホード(Mumford)表現を用いると有限体Fq上の元を係数に持つ3次以下の多項式の組、すなわち、
(U、V)=(x+u+ux+u、v+vx+v
として表現できる。
なお、他の因子の表現として変形Mumford表現、Weighted Coordinateがある。変形Mumford表現はECC(楕円曲線暗号)でいうプロジェクティブ(projective)座標に相当し、Mumford表現(U、V)に定数Z倍し、(U、V、Z)で表現するものである。
Weighted Coordinateも同様にMumford表現に複数の定数(Z1、Z2)をかけることで(U、V、Z1、Z2)で表現する方法である。いずれも下記に述べるHarleyのアルゴリズムの計算量を削減するための手法として用いられている。
前述したように、スカラー倍算の計算を暗号技術で用いる場合、入力に必要な因子Dは、
(1)事前に決めた因子の場合、
(2)事前に決められないランダムに発生する因子の場合、
の2つのタイプに分けることができる。
ここで(1)事前に決めた因子を適用する場合、この入力因子がベースポイントとなる。
なお、以下、本発明の説明において、因子Dは、特に断りがない限り被約因子(reduced divisor)であるものとする。すなわち、ウェイト(weight)が種数g以下である半被約因子としての被約因子(reduced divisor)であるものとする。
前述したように、一般的なベースポイントの生成アルゴリズムは、以下の処理によって実行される。
(a) 定義体F上の元をランダムにg個選び、g個の超楕円曲線上の点P(i=1、…、g)を生成する。
(a1) ランダムに選んだ各元をx座標x(i=1…g)とし、次に超楕円曲線上に乗るようにxに対応するy座標を求める。
(b) ベースポイントの因子をD=(U(x)、V(x))とする。
(b1)U(x)=(x−x)(x−x)…(x−x
(b2)V(x)=vg−1g−1+vg−2g−2+…+vの係数vを決定する。例えば生成した点が全て異なる場合、V(x)=yよりvを求めることができる。
(c) 上記アルゴリズムにより生成される因子はweight gの因子となる。
このように、種数gの超楕円曲線においてベースポイントを生成する従来のアルゴリズム及び装置は通常、ウェイト(weight)=gの因子を生成する。
本発明においては、種数gの超楕円曲線において、gより小さいウェイト(weight)=gの因子を生成して、これをベースポイントとする。
すなわち、種数gの超楕円曲線におけるベースポイントを、
<g
が成立するウェイト(weight)=gの因子に設定する。このベースポイント設定により、超楕円曲線暗号におけるスカラー倍算を高速化させる。
[2.ベースポイント生成アルゴリズムについて]
以下、種数gの超楕円曲線において、ウェイト(weight)がgより小さいウェイト(weight)=gである因子をベースポイントとして生成するアルゴリズムについて説明する。
種数gの超楕円曲線においてウェイト(weight)=gの因子をベースポイントとして生成する従来のアルゴリズムでは、超楕円曲線上の点をg個選ぶ処理を実行するのに対して、本発明のベースポイント生成アルゴリズムでは、超楕円曲線上の点をg個、選択する処理を実行する。但しgは1≦g<gを満たす値である。
本発明に従ったベースポイント生成アルゴリズムを、図3を参照して説明する。本発明に従ったベースポイント生成は、以下の処理手順で実行する。
(ステップS101)
定義体としての有限体F上の元をランダムにg個選び、g個の超楕円曲線上の点P(i=1、…、g)を生成する。
(1)ランダムに選んだ各元をx座標x(i=1…g)とし、次に超楕円曲線上に乗るようにxに対応するy座標を求める。
(ステップS102)
ベースポイントの因子をD=(U(x)、V(x))とする。
(1)U(x)=(x−x)(x−x)…(x−xg0
(2)V(x)=vg0−1g0−1+vg0−2g0−2+…+vの係数vを決定する。例えば生成した点が全て異なる場合、V(x)=y(i=1…g)よりvを求めることができる。
上述のステップの実行により、種数gの超楕円曲線において、ウェイト(weight)がgより小さいウェイト(weight)=gである因子をベースポイントとして生成する。
例えば種数g=3の超楕円曲線の場合、ベースポイントは、従来の手法によれば、通常weight 3の因子を用いるのに対して、本発明に従ったベースポイント設定アルゴリズムを適用した場合、種数g=3より小さいウェイト、すなわちウェイト(weight)=1もしくはウェイト(weight)=2の因子をベースポイントとする。
また、例えば種数g=2の超楕円曲線の場合、ベースポイントは、従来の手法によれば、通常weight 2の因子を用いるのに対して、本発明に従ったベースポイント設定アルゴリズムを適用した場合、種数g=2より小さいウェイト、すなわちウェイト(weight)=1の因子をベースポイントとする。
[3.演算処理の詳細]
図3を参照して説明したアルゴリズムを適用して、種数gの超楕円曲線において、gより小さいウェイト(weight)=gである因子をベースポイントとして生成した場合、この因子を適用して実行するスカラー倍算では、スカラー倍算実行アルゴリズム中で用いる加算公式が、従来の種数gに等しいウェイトを持つベースポイントを適用した場合とは異なってくる。
すなわち、種数gより小さいウェイト(weight)の因子をベースポイントに選んだ場合、スカラー倍算中の加算は、HarleyADDではなくなり、「weight gの因子+gより小さいweightの因子の加算」になる。この「weight gの因子+gより小さいweightの因子の加算」にかかる計算コストは因子を表現する多項式の次数が下がるため、HarleyADDよりも計算量が少なくなり、スカラー倍算の処理時間を短くすることができる。
図4を参照して種数gより小さいウェイト(weight)の因子をベースポイントに選んだ場合のスカラー倍算中の加算処理について説明する。図4(A)は、種数g=2の場合の加算処理を説明する図であり、図4(B)は、種数g=3の場合の加算処理を説明する図である。
図4(A)の、種数g=2の場合の加算処理において、従来の処理では、ベースポイントは、通常weight 2の因子を用いることになり、図4(A)の加算アルゴリズムにおいて、(1)「weight2の因子+weight2の因子の加算」、すなわち、weight2同士の加算となる。このとき、因子D=(U1、)、D=(U、V)について、最大公約数gcd(U、U)=1であれば
(1a)HarleyADD、
に従った加算処理を行う。これが、Most Frequent Caseと呼ばれる処理であり、多くの場合、このアルゴリズムに従った加算処理、すなわち、(1a)HarleyADDが実行されることになる。
しかし、図3を参照して説明したベースポイント選択アルゴリズムに従って、種数gより小さいウェイト(weight)の因子をベースポイントに選んだ場合、「weight gの因子+gより小さいweightの因子の加算」、すなわち、図4(A)において、(2)weight2+weight1の処理が実行される。この処理では、gcd(U、U)=1かどうかをチェックし、gcd(U、U)=1を満足する場合には、
(2a)ExHarADD2+1→2を実行し、
gcd(U、U)=1を満足しない場合には、
(2b)例外処理3を行う。
多くの場合、gcd(U、U)=1が成立することになり、(2a)ExHarADD2+1→2の処理が行なわれることになる。この「weight gの因子+gより小さいweightの因子の加算」にかかる計算コストは因子を表現する多項式の次数が下がるため、HarleyADDよりも計算量が少なくなり、スカラー倍算の処理時間を短くすることができる。
図4(B)の、種数g=3の場合の加算処理においては、従来の処理では、ベースポイントは、通常weight 3の因子を用いることになり、図4(B)の加算アルゴリズムにおいて、(1)「weight3の因子+weight3の因子の加算」、すなわち、weight3同士の加算となる。このとき、因子D=(U1、)、D=(U、V)について、最大公約数gcd(U、U)=1であれば
(1a)HarleyADD、
すなわちハーレーアルゴリズムに従った加算処理を行う。これが、Most Frequent Caseと呼ばれる処理であり、多くの場合、ハーレーアルゴリズムに従った加算処理、すなわち、(1a)HarleyADDが実行されることになる。
しかし、図3を参照して説明したベースポイント選択アルゴリズムに従って、種数gより小さいウェイト(weight)の因子をベースポイントに選んだ場合、「weight gの因子+gより小さいweightの因子の加算」、すなわち、図4(B)において、(2)weight3+weight2の処理、または、(3)weight3+weight1の処理が実行される。これらの処理においても、gcd(U、U)=1かどうかをチェックし、gcd(U、U)=1を満足する場合には、
(2a)ExHarADD3+2→3、または、
(3a)ExHarADD3+1→3を実行し、
gcd(U、U)=1を満足しない場合には、
例外処理9,10を行う。
多くの場合、gcd(U、U)=1が成立することになり、(2a)ExHarADD3+2→3、または(3a)ExHarADD3+1→3の処理が行なわれることになる。この「weight gの因子+gより小さいweightの因子の加算」にかかる計算コストは因子を表現する多項式の次数が下がるため、HarleyADDよりも計算量が少なくなり、スカラー倍算の処理時間を短くすることができる。
研究論文等でよくとりあげられている、種数2、3の超楕円曲線暗号の場合を例にとり、本発明に従ったスカラー倍算の処理について説明する。
種数2の場合の超楕円曲線の場合、g以下のウェイト(weight)の因子として、weight 1の因子をベースポイントに選んでスカラー倍算を行う。スカラー倍算としてbinary法及びdouble−and−add−always法を使った場合のアルゴリズムを以下に示す。
(1)種数2、binary法、weight1のベースポイント
Figure 2005258228
(2)種数2、double−and−add−always法、weight1のベースポイント
Figure 2005258228
いずれの場合も従来法では、加算をHarleyADDで行っていたのに対し、ベースポイントをweight1にすることで加算処理を図4Aの(2)weight1+weight2の処理に置き換えることができる。このweight1+weight2の処理ではweight1の因子とweight2の因子が共通の点を持つ場合と持たない場合において異なる処理を行なうことになる。
すなわち、因子D=(U1、)、D=(U、V)について、最大公約数gcd(U、U)=1であれば、2つの因子D=(U1、)、D=(U、V)は、互いに同一またはオポジット(opposite)な点を含まない。この場合、
(2a)ExHarADD2+1→2を実行し、
gcd(U、U)=1を満足しない場合には、
(2b)例外処理3を行う。
Most Frequent Caseと呼ばれるHarleyADDと同様、因子D=(U1、)、D=(U、V)について、多くの場合、最大公約数gcd(U、U)=1が成立し、高確率で、
(2a)ExHarADD2+1→2を実行することになる。
ExHarADD2+1→2の計算プロセス[Table3]を以下に示す。
Figure 2005258228
標数2の場合、ExHarADD2+1→2の計算量は、1回の逆元算出演算(I:Inversion)と、11回の乗算(M:Multiplication)、すなわち、I+11Mとなる。
一方、HarleyADDの計算プロセス[Table1]を以下に示す。
Figure 2005258228
HarleyADDの計算量は、1回の逆元算出演算(I:Inversion)と、25回の乗算(M:Multiplication)、すなわち、I+25Mとなる。
このように、ExHarADD2+1→2の計算量は、HarleyADDの計算量より少なく、高速にスカラー倍演算を行うことができる。すなわち、種数g以下のウェイト(weight)の因子をベースポイントに選んでスカラー倍算を行うことで、HarleyADDの計算ではなく、計算量の少ないExHarADD2+1→2の計算を実行させることが可能となり、高速にスカラー倍演算を行うことができる。定義体が2の拡大体ではない場合も同様に計算量が削減できる。
具体的な例について説明する。種数2、定義体がF 83の場合、binary法、double−and−add−always法でのスカラー倍算が1bitあたり、従来法に比べてどの程度高速化されるかを見積もった。
binary法における1ビットあたりの演算削減率は、
{1/2(HarleyADDの計算量−ExHarADD2+1→2の計算量)}/(1/2HarleyADDの計算量+HarleyDBLの計算量)
で与えられる。
また、double−and−add−always法における1ビットあたりの演算削減率は、
(HarleyADDの計算量−ExHarADD2+1→2計算量)/(HarleyADDの計算量+HarleyDBLの計算量)
で与えられる。
これらの計算式に基づいて、
ExHarADD2+1→2の計算量=I+11M
HarleyADDの計算量=I+25M
HarleyDBLの計算量=I+27M
の各計算量を代入し演算削減率を求める。
この結果、本発明のベースポイント設定処理、すなわち種数gより小さいウェイトgである因子をベースポイントとして設定した場合、種数gに等しいウェイトgである因子をベースポイントとして設定した従来手法に比較して、binary法で15.3%、double−and−add−always法で23.3%の高速化ができることがわかった。ただし、有限体の乗算Mと、逆元算出としての除算IをI=4.1Mとして見積もっている。
種数3の場合、種数3未満の因子として、weight1の因子をベースポイントに用いる方法とweigh2の因子を用いる方法がある。種数2の場合と同様、binary法、double−and−add−always法の演算処理において、種数3に等しいウェイト同士の因子の加算の際に実行していたHarleyADDが、加算weight1+weight3もしくは加算weight2+weight3に置き換わる。
種数3の場合、スカラー倍算としてbinary法及びdouble−and−add−always法を使った場合のアルゴリズムを以下に示す。
(1)種数3、binary法、weight1のベースポイント
Figure 2005258228
(2)種数3、double−and−add−always法、weight1のベースポイント
Figure 2005258228
(3)種数3、binary法、weight2のベースポイント
Figure 2005258228
(4)種数3、double−and−add−always法、weight2のベースポイント
Figure 2005258228
このように、種数2の場合と同様、binary法、double−and−add−always法の演算処理において、種数3に等しいウェイト同士の因子の加算の際に実行していたHarleyADDが、加算weight1+weight3もしくは加算weight2+weight3に置き換わる。Weight1+weigh3、若しくはweight2+weight3の加算は図4(B)に示すように、因子が共通の点を持つ場合と持たない場合において異なる処理を行なうことになる。
すなわち、因子D=(U1、)、D=(U、V)について、最大公約数gcd(U、U)=1であれば、2つの因子D=(U1、)、D=(U、V)は、互いに同一またはオポジット(opposite)な点を含まない。この場合、
(2a)ExHarADD3+2→3、または、
(3a)ExHarADD3+1→3を実行し、
gcd(U、U)=1を満足しない場合には、
(2b)または(3b)例外処理を行う。
Most Frequent Caseと呼ばれるHarleyADDと同様、因子D=(U1、)、D=(U、V)について、多くの場合、最大公約数gcd(U、U)=1が成立し、高確率で、
(2a)ExHarADD3+2→3、または、
(3a)ExHarADD3+1→3を実行することになる。
ExHarADD3+1→3、ExHarADD3+2→3はそれぞれHarADDに比べて計算量が少ないため、全体のスカラー倍演算を高速化することができる。ExHarADD3+1→3、ExHarADD3+2→3の計算量は論文等に明示的にしめされていないため、独自に各演算における計算量を見積もった。
ExHarADD3+1→3の計算プロセス[Table6]を以下に示す。
Figure 2005258228
ExHarADD3+1→3の計算量は、1回の逆元算出演算(I:Inversion)と、21回の乗算(M:Multiplication)、すなわち、I+21Mとなる。
ExHarADD3+2→3の計算プロセス[Table7]を以下に示す。
Figure 2005258228
ExHarADD3+2→3の計算量は、1回の逆元算出演算(I:Inversion)と、52回の乗算(M:Multiplication)、すなわち、I+52Mとなる。
一方、種数g=3でのHarleyADD、HarleyDBLの計算量は、文献[J.Pelzl, T.Wollinger, J. Guajardo, and C. Paar. Hyperelliptic curve Cryptosystems: Closing the Performance Gap to Elliptic Curves. Cryptology ePrint Archive, 2003/026, IACR, 2003.]による見積もりを参照している。但し、見積もりが正しいかどうか検証するため、実際に実装を行って計算量を確認した結果、HarleyADDでI+78M、HarleyDBLでI+81Mであった。
従って、以下に述べるように種数g=2の場合と同様に計算量の削減、高速化が期待できる。なお、上述したExHarADD3+2→3、ExHarADD3+1→3、HarleyADD、HarleyDBLの計算量は、すべて標数2の場合である。標数が2でない場合も同様に計算量の削減ができる。
具体的な例について説明する。種数3、定義体がF 63の場合、binary法、double−and−add−always法でのスカラー倍算が1bitあたり、従来法に比べてどの程度高速化されるかを見積もった。
種数2の場合と同様に、binary法における1ビットあたりの演算削減率は、
{1/2(HarleyADDの計算量−ExHarADD3+1→3 もしくはExHarADD3+2→3の計算量)}/(1/2HarleyADDの計算量+HarleyDBLの計算量)
で与えられる。
また、double−and−add−always法における1ビットあたりの演算削減率は、
(HarleyADDの計算量−ExHarADD3+1→3もしくはExHarADD3+2→3計算量)/(HarleyADDの計算量+HarleyDBLの計算量)
で与えられる。
これらの計算式に基づいて、
ExHarADD3+1→3の計算量=I+21M
ExHarADD3+2→3の計算量=I+52M
HarleyADDの計算量=I+78M
HarleyDBLの計算量=I+81M
の各計算量を代入し演算削減率を求める。
この結果、weight1の因子をベースポイントとして使った場合、binary法で22.0%、double−and−add−always法で33.2%、Weight2の因子をベースポイントとして使った方法では、binary法で10.0%、double−and−add−always法で15.1%の高速化が期待できる。ただしF 63の乗算Mと除算Iの比率をI=6.4Mとして見積もった。
このように、本発明のベースポイント設定処理、すなわち種数gより小さいウェイトgである因子をベースポイントとして設定した場合、種数gに等しいウェイトgである因子をベースポイントとして設定した従来手法に比較して、binary法、double−and−add−always法とも、演算量が削減され、高速演算が可能となる。
これまでweightがgより小さい任意の因子をベースポイントして使った場合の高速化の方法について述べてきた。そのweightがgより小さい因子のうち、因子のMumford表現の多項式の係数が少なくとも一つ以上0または1である因子を選んだ場合、種数2の場合の加算アルゴリズムにおける図4(A)の
(2a)ExHarADD3+1→3の計算
および、種数3の場合の加算アルゴリズムにおける図4(B)の
(2a)ExHarADD3+2→3の計算
(3a)ExHarADD3+1→3の計算
を適用したベースポイントの加算処理における乗算回数を削減することができるため、さらに高速化することができる。説明を簡単にするために以下g=2の場合を例に挙げて説明する。
g=2の場合、ベースポイントは任意に選んだweight1の因子であり、Mumford表現を使うと以下のように書くことができる。
1.D=(U(x)、V(x))
2.U(x)=x+u、V(x)=v
3.(u0、)は超楕円曲線C上の任意に選んだ点の座標
例えば超楕円曲線C上の点に(0、y)が存在する場合(x座標、y座標は定義体Fの元である)、この点を使ってベースポイントを生成した場合、u=0、v=yとなる。この時、HarADD2+1→2の計算プロセス、これは、先に示した[数16]のExHarADD2+1→2の計算プロセス[Table3]であるが、この計算プロセス中、以下の有限体の乗算を実装する必要がなくなる。
Table3 Step1 (u21+u10)u10 (1M削減)
Table3 Step3 v2110 (1M削減)
Table3 Step6 u1031 (1M削減)
従って通常のHarADD2+1→2の計算量I+11Mに対して3つの乗算(3M)少ないI+8Mで計算を行うことができるため、さらなる高速化をすることができる。
今までHarleyアルゴリズムとその改良アルゴリズムに対する高速化手法として、種数gの超楕円曲線において、gより小さいウェイト(weight)の因子をベースポイントとして使うことで、加算処理における計算量を削減し、スカラー倍算の高速化を実現する構成について説明してきたが、もう1の加算アルゴリズムであるCantorアルゴリズムでも、種数gの超楕円曲線において、gより小さいウェイト(weight)の因子をベースポイントとして使うことで、同様に加算処理における計算量が削減されスカラー倍算の高速化が実現される。
種数gの超楕円曲線暗号(HECC)においてCantorのアルゴリズムを使って加算アルゴリズムを実装した場合、weight gより小さい因子とweight gの因子を使った加算はweight g同士の因子の加算よりも計算量が小さくなる。従って種数 gの加算アルゴリズムにおいて、ベースポイントをgより小さい因子を使うことで、Harleyアルゴリズムと全く同様の高速化ができる。
一般に、超楕円曲線暗号(HECC)の安全性(HECC1とする)はベース因子Dと任意の因子W(=kD)からkを求める離散対数問題(離散対数問題1とする)の困難性に基づいている。同様に、今回提案したweightがgより小さい因子D1をベース因子とするHECCの安全性(HECC2とする)も任意の因子W1(=kD1)からkを求める離散対数問題(離散対数問題2とする)の困難性に基づいている。離散対数問題1は離散対数問題2を2回解くことによって解けることが容易に示される。つまり、今回提案したweightがgより小さい因子D1をベース因子とするHECCの安全性(HECC2)は、一般的な超楕円曲線暗号(HECC)の安全性(HECC1)と同等並の安全性を有することになる。
以上、説明したように、本発明によれば、種数gの超楕円曲線において、gより小さいウェイト(weight)の因子をベースポイントとして使うことで、一般的な超楕円曲線暗号(HECC)の安全性を損なうことなく、加算処理における計算量を削減し、スカラー倍算の高速化が実現され、暗号処理演算を高速に実行することが可能となる。
超楕円曲線上の因子の演算を使う暗号処理演算において、処理の重い演算は因子のスカラー倍算である。提案法によりスカラー倍算を高速化することで超楕円曲線暗号の処理を大幅に改善することができる。
前述したように、超楕円曲線暗号(HECC)は楕円曲線暗号(ECC)を一般化した概念であり、現在、様々な分野で適用されている楕円曲線暗号(ECC)を使った暗号処理、具体的には署名処理、暗号データの生成、復号処理、暗号鍵共有処理、認証処理などに、本発明を適用することが可能である。楕円曲線暗号(ECC)における演算処理中のスカラー倍算の部分を、上述したスカラー倍算に置き換えることで、演算の高速化が可能となる。
楕円曲線暗号(ECC)を使ったアルゴリズムでは、スカラー倍算は大きく分けると事前に決められた点、ベースポイントをスカラー倍算する処理と、ランダムに発生した点をスカラー倍算する処理に分類される。これは、超楕円曲線暗号(HECC)でも同様である。本発明は種数gの曲線において全ての因子のうち、weight gより小さい因子を選びこれをベースポイントとして、因子の加算処理を高速化しているものであり、固定のベースポイントをスカラー倍算する処理において、weight gより小さい因子を選びこれをベースポイントとして演算を行なうことで、高速化が実現される。
[4.暗号処理装置の機能構成について]
図5に、本発明の暗号処理装置の機能構成を示すブロック図を示す。暗号処理装置100は、超楕円曲線暗号に基づく暗号処理演算を実行する暗号処理装置であり、超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)の因子をベースポイントとして生成するベースポイント生成部101と、ベースポイントとしての因子を含む因子のスカラー倍算処理を実行する演算処理部102とによって構成される。
ベースポイント生成部101は、定義体としての有限体F上の元をランダムにg個選び、g個の超楕円曲線上の点P(i=1、…、g)を生成し、
U(x)=(x−x)(x−x)…(x−xg0
V(x)=vg0−1g0−1+vg0−2g0−2+…+vの係数vを決定し、ベースポイントの因子:D=(U(x)、V(x))を決定する処理を実行する構成である。
ベースポイント生成部101は、例えば、超楕円曲線の種数g(genus)=2である場合には、ウェイト(weight)1となる因子をベースポイントとして生成する。演算処理部102は、種数g(genus)=2である場合、因子の加算処理として、ウェイト(weight)1の因子+ウェイト(weight)2の因子の加算処理を実行する。このとき、演算処理部102は、加算演算処理アルゴリズム:ExHarADD2+1→2を実行する。
また、ベースポイント生成部101は、超楕円曲線の種数g(genus)=3である場合には、ウェイト(weight)1もしくは2となる因子をベースポイントとして生成する。演算処理部102は、因子の加算処理として、ウェイト(weight)1の因子+ウェイト(weight)3の因子の加算処理、またはウェイト(weight)2の因子+ウェイト(weight)3の因子の加算処理を実行する。このとき、演算処理部102は、加算演算処理アルゴリズム:ExHarADD3+2→3、または、加算演算処理アルゴリズム:ExHarADD3+1→3、の少なくともいずれかの加算演算処理アルゴリズムを実行する。
なお、演算処理部102は、Harleyのアルゴリズムに従った加算アルゴリズムを含む演算処理を実行し、binary法またはdouble−and−add−always法の少なくともいずれかのスカラー倍算アルゴリズムに従った演算を実行する。あるいは、演算処理部102は、Cantorのアルゴリズムに従った加算アルゴリズムを含む演算を実行する構成としてもよい。
また、前述したように、ベースポイント生成部101は、超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)の因子のうち、因子のMumford表現の多項式の係数が少なくとも一つ以上0または1である因子をベースポイントとして生成する処理を実行する構成してもよく、このベースポイント生成処理により更なる演算の高速化が実現される。
[5.電子署名生成および検証アルゴリズムにおける本発明の適用例]
以下に本発明の処理を適用可能な具体的な暗号処理アルゴリズムの例として、楕円曲線暗号を適用した電子署名生成および検証アルゴリズムであるECDSA(EC−Digital Signature Algorithm)のスカラー倍算に本発明の演算手法を適用した場合について説明する。IEEE1363によるとECDSAによる署名生成、検証は以下のシーケンスによって実行される。
(1)入力
(1−1)楕円曲線のドメインパラメータ及びベースポイントG(位数r)
(1−2)署名者の秘密鍵s
(1−3)平文M
(2)鍵生成
(2−1)秘密鍵sに対してW=sGを公開鍵とする
(3)署名生成
(3−1)ランダムな整数0<u<rを生成
(3−2)V=uG=(x、y)を計算
(3−3)xを整数に変換し、iとする
(3−4)c=i mod rを計算。c=0ならstep3−1へ
(3−5)f=h(M)、hはhash関数
(3−6)d=u−1(f+sc)mod rを計算。d=0ならstep3−1へ
(3−7)(c、d)を平文Mに対する署名にする。
(4)署名検証
(4−1)0<c<r、0<d<rをチェック。該当しない場合invalidを出力
(4−2)h=d−1mod r、h=fh mod r、h=ch mod rを計算。
(4−3)P=(x、y)=hG+hWを計算。P=Oならばinvalidを出力
(4−4)xを整数に変換し、iとする。
(4−5)c'=i mod rを計算する。
(4−6)c'=cならばvalidを出力。そうでないならばinvalidを出力。
上記アルゴリズムにおいて下記の処理が超楕円曲線を用いた本提案法が適用できる箇所である。
(2−1)秘密鍵sに対してW=sGを公開鍵とする
(3−2)V=uG=(x、y)を計算
(4−3)P=(x、y)=hG+hWを計算。P=Oならばinvalidを出力
これらの各ステップ(2−1),(3−2),(4−3)における演算処理、W=sG、V=uG、P=(x、y)=hG+hWにおけるhGの演算処理は、因子のスカラー倍算処理であり、本発明の適用による高速化が可能となる。
[6.暗号処理装置のハードウェア構成例]
最後に、上述の暗号処理を実行するデバイスとしてのICモジュール200の構成例を図6に示す。上述の処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図6に示すICモジュール200は、これら様々な機器に構成することが可能である。
図6に示すCPU(Central processing Unit)201は、暗号処理の開始や、終了、データの送受信の制御、各構成部間のデータ転送制御、その他の各種プログラムを実行するプロセッサである。メモリ202は、CPU201が実行するプログラム、あるいは演算パラメータとしての固定データを格納するROM(Read-Only-Memory)、CPU201の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるRAM(Random Access Memory)等からなる。
なお、メモリ202に格納する演算実行プログラムは、上述したベースポイントの設定処理、スカラー倍算としての加算、2倍算の実行シーケンスを含むプログラムとして設定される。また、メモリ202は暗号処理に必要な鍵データ等の格納領域として使用可能である。データ等の格納領域は、耐タンパ構造を持つメモリとして構成されることが好ましい。
暗号処理手部203は、上述したスカラー倍算処理を含む暗号処理、復号処理等を実行する。なお、ここでは、暗号処理手段を個別モジュールとした例を示したが、このような独立した暗号処理モジュールを設けず、例えば暗号処理プログラムをROMに格納し、CPU201がROM格納プログラムを読み出して実行するように構成してもよい。
乱数発生器204は、暗号処理に必要となる鍵の生成などにおいて必要となる乱数の発生処理を実行する。
送受信部205は、外部とのデータ通信を実行するデータ通信処理部であり、例えばリーダライタ等、ICモジュールとのデータ通信を実行し、ICモジュール内で生成した暗号文の出力、あるいは外部のリーダライタ等の機器からのデータ入力などを実行する。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の構成によれば、超楕円曲線暗号に基づく暗号処理において、超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)の因子をベースポイントとして生成し、スカラー倍算処理を実行する構成としたので、スカラー倍算処理において実行する演算処理を、例えば種数g=2の超楕円曲線暗号においては、Harley ADDから、演算ステップ数の少ないExHarADD2+1→2の実行ステップに変更し、また、種数g=3の超楕円曲線暗号においては、Harley ADDから演算ステップ数の少ないExHarADD3+2→3、またはExHarADD3+1→3の実行に変更することが可能となり、超楕円曲線暗号処理における高速な演算処理が実現される。
さらに、本発明の構成によれば、ベースポイント生成において、超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)の因子のうち、因子のMumford表現の多項式の係数が少なくとも一つ以上0または1である因子をベースポイントとして生成することで、さらなる演算ステップの削減が可能となり、超楕円曲線暗号処理における高速な演算処理が実現される。
種数2の超楕円曲線暗号のスカラー倍算における加算処理、2倍算処理のアルゴリズムについて説明する図である。 種数3の超楕円曲線暗号のスカラー倍算における加算処理、2倍算処理のアルゴリズムについて説明する図である。 本発明の超楕円曲線暗号演算処理におけるベースポイント設定処理の手順を説明するフローチャートである。 本発明の超楕円曲線暗号のスカラー倍算における加算処理のアルゴリズムについて説明する図である。 本発明の暗号処理装置の機能構成を示すブロック図である。 本発明の暗号処理演算を実行する暗号処理実行デバイス例としてのICモジュールの構成例を示す図である。
符号の説明
100 暗号処理装置
101 ベースポイント生成部
102 演算処理部
200 ICモジュール
201 CPU(Central processing Unit)
202 メモリ
203 暗号処理部
204 乱数発生器
205 送受信部

Claims (21)

  1. 超楕円曲線暗号に基づく暗号処理演算を実行する暗号処理演算方法であり、
    超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)の因子をベースポイントとして生成するベースポイント生成ステップと、
    前記ベースポイントとしての因子を含む因子のスカラー倍算処理を実行する演算処理ステップと、
    を有することを特徴とする暗号処理演算方法。
  2. 前記ベースポイント生成ステップは、
    定義体としての有限体F上の元をランダムにg個選び、g個の超楕円曲線上の点P(i=1、…、g)を生成するステップと、
    U(x)=(x−x)(x−x)…(x−xg0
    V(x)=vg0−1g0−1+vg0−2g0−2+…+vの係数vを決定し、ベースポイントの因子:D=(U(x)、V(x))を決定するステップと、
    を含むステップであることを特徴とする請求項1に記載の暗号処理演算方法。
  3. 前記ベースポイント生成ステップは、
    超楕円曲線の種数g(genus)=2である場合、ウェイト(weight)1となる因子をベースポイントとして生成するステップであり、
    前記演算処理ステップは、
    因子の加算処理として、ウェイト(weight)1の因子+ウェイト(weight)2の因子の加算処理を実行するステップであることを特徴とする請求項1に記載の暗号処理演算方法。
  4. 前記演算処理ステップは、
    加算演算処理アルゴリズム:ExHarADD2+1→2を実行するステップを含むことを特徴とする請求項3に記載の暗号処理演算方法。
  5. 前記ベースポイント生成ステップは、
    超楕円曲線の種数g(genus)=3である場合、ウェイト(weight)1もしくは2となる因子をベースポイントとして生成するステップであり、
    前記演算処理ステップは、
    因子の加算処理として、ウェイト(weight)1の因子+ウェイト(weight)3の因子の加算処理、またはウェイト(weight)2の因子+ウェイト(weight)3の因子の加算処理を実行するステップであることを特徴とする請求項1に記載の暗号処理演算方法。
  6. 前記演算処理ステップは、
    加算演算処理アルゴリズム:ExHarADD3+2→3、または、加算演算処理アルゴリズム:ExHarADD3+1→3、の少なくともいずれかの加算演算処理アルゴリズムを実行するステップを含むことを特徴とする請求項5に記載の暗号処理演算方法。
  7. 前記ベースポイント生成ステップは、
    超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)の因子のうち、因子のMumford表現の多項式の係数が少なくとも一つ以上0または1である因子をベースポイントとして生成するステップであることを特徴とする請求項1に記載の暗号処理演算方法。
  8. 前記演算処理ステップは、
    Harleyのアルゴリズムに従った加算アルゴリズムを含む演算処理を実行するステップであることを特徴とする請求項1に記載の暗号処理演算方法。
  9. 前記演算処理ステップは、
    binary法またはdouble−and−add−always法の少なくともいずれかのスカラー倍算アルゴリズムに従った演算を実行するステップであることを特徴とする請求項1に記載の暗号処理演算方法。
  10. 前記演算処理ステップは、
    Cantorのアルゴリズムに従った加算アルゴリズムを含む演算を実行するステップであることを特徴とする請求項1に記載の暗号処理演算方法。
  11. 超楕円曲線暗号に基づく暗号処理演算を実行する暗号処理装置であり、
    超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)の因子をベースポイントとして生成するベースポイント生成手段と、
    前記ベースポイントとしての因子を含む因子のスカラー倍算処理を実行する演算処理手段と、
    を有することを特徴とする暗号処理装置。
  12. 前記ベースポイント生成手段は、
    定義体としての有限体F上の元をランダムにg個選び、g個の超楕円曲線上の点P(i=1、…、g)を生成し、
    U(x)=(x−x)(x−x)…(x−xg0
    V(x)=vg0−1g0−1+vg0−2g0−2+…+vの係数vを決定し、ベースポイントの因子:D=(U(x)、V(x))を決定する処理を実行する構成であることを特徴とする請求項11に記載の暗号処理装置。
  13. 前記ベースポイント生成手段は、
    超楕円曲線の種数g(genus)=2である場合、ウェイト(weight)1となる因子をベースポイントとして生成する構成であり、
    前記演算処理手段は、
    因子の加算処理として、ウェイト(weight)1の因子+ウェイト(weight)2の因子の加算処理を実行する構成を有することを特徴とする請求項11に記載の暗号処理装置。
  14. 前記演算処理手段は、
    加算演算処理アルゴリズム:ExHarADD2+1→2を実行する構成であることを特徴とする請求項13に記載の暗号処理装置。
  15. 前記ベースポイント生成手段は、
    超楕円曲線の種数g(genus)=3である場合、ウェイト(weight)1もしくは2となる因子をベースポイントとして生成し、
    前記演算処理手段は、
    因子の加算処理として、ウェイト(weight)1の因子+ウェイト(weight)3の因子の加算処理、またはウェイト(weight)2の因子+ウェイト(weight)3の因子の加算処理を実行する構成であることを特徴とする請求項11に記載の暗号処理装置。
  16. 前記演算処理手段は、
    加算演算処理アルゴリズム:ExHarADD3+2→3、または、加算演算処理アルゴリズム:ExHarADD3+1→3、の少なくともいずれかの加算演算処理アルゴリズムを実行する構成であることを特徴とする請求項15に記載の暗号処理装置。
  17. 前記ベースポイント生成手段は、
    超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)の因子のうち、因子のMumford表現の多項式の係数が少なくとも一つ以上0または1である因子をベースポイントとして生成する処理を実行する構成であることを特徴とする請求項11に記載の暗号処理装置。
  18. 前記演算処理手段は、
    Harleyのアルゴリズムに従った加算アルゴリズムを含む演算処理を実行する構成であることを特徴とする請求項11に記載の暗号処理装置。
  19. 前記演算処理手段は、
    binary法またはdouble−and−add−always法の少なくともいずれかのスカラー倍算アルゴリズムに従った演算を実行する構成であることを特徴とする請求項11に記載の暗号処理装置。
  20. 前記演算処理手段は、
    Cantorのアルゴリズムに従った加算アルゴリズムを含む演算を実行する構成であることを特徴とする請求項11に記載の暗号処理装置。
  21. 超楕円曲線暗号に基づく暗号処理演算を実行するコンピュータ・プログラムであり、
    超楕円曲線の種数g(genus)より小さいウェイト(weight)g(ただし、1≦g<g)となる因子をベースポイントとして生成するベースポイント生成ステップと、
    前記ベースポイントとしての因子を含む因子のスカラー倍算処理を実行する演算処理ステップと、
    を有することを特徴とするコンピュータ・プログラム。
JP2004071757A 2004-03-12 2004-03-12 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム Expired - Fee Related JP4599859B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004071757A JP4599859B2 (ja) 2004-03-12 2004-03-12 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
US11/065,941 US7697683B2 (en) 2004-03-12 2005-02-25 Cryptography-processing method, cryptography-processing apparatus and computer program
DE602005003252T DE602005003252T2 (de) 2004-03-12 2005-03-04 Einrichtung, Verfahren und Computerprogramm zur kryptographischen Verarbeitung
EP05004832A EP1578054B1 (en) 2004-03-12 2005-03-04 Cryptography-processing method, cryptography-processing apparatus and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004071757A JP4599859B2 (ja) 2004-03-12 2004-03-12 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2005258228A true JP2005258228A (ja) 2005-09-22
JP4599859B2 JP4599859B2 (ja) 2010-12-15

Family

ID=34836481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004071757A Expired - Fee Related JP4599859B2 (ja) 2004-03-12 2004-03-12 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム

Country Status (4)

Country Link
US (1) US7697683B2 (ja)
EP (1) EP1578054B1 (ja)
JP (1) JP4599859B2 (ja)
DE (1) DE602005003252T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007080825A1 (ja) 2006-01-16 2007-07-19 Sony Corporation 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2007187958A (ja) * 2006-01-16 2007-07-26 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007048430A1 (en) * 2005-10-28 2007-05-03 Telecom Italia S.P.A. A method for scalar multiplication in elliptic curve groups over binary polynomial fields for side-channel attack-resistant cryptosystems
CN101911582B (zh) * 2008-01-18 2012-09-05 三菱电机株式会社 密码参数设定装置、密钥生成装置、密码系统、密码参数设定方法和密钥生成方法
US8520841B2 (en) * 2008-05-22 2013-08-27 Microsoft Corporation Algorithms for generating parameters for genus 2 hyperelliptic curve cryptography

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003216028A (ja) * 2002-01-24 2003-07-30 Hitachi Ltd 超楕円曲線暗号のための演算装置
JP2006145945A (ja) * 2004-11-22 2006-06-08 Sony Corp 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003216028A (ja) * 2002-01-24 2003-07-30 Hitachi Ltd 超楕円曲線暗号のための演算装置
JP2006145945A (ja) * 2004-11-22 2006-06-08 Sony Corp 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007080825A1 (ja) 2006-01-16 2007-07-19 Sony Corporation 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2007187957A (ja) * 2006-01-16 2007-07-26 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2007187958A (ja) * 2006-01-16 2007-07-26 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4513752B2 (ja) * 2006-01-16 2010-07-28 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN101371285B (zh) * 2006-01-16 2010-09-08 索尼株式会社 加密处理装置、加密处理方法
JP4682852B2 (ja) * 2006-01-16 2011-05-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
DE602005003252T2 (de) 2008-09-11
US20050201553A1 (en) 2005-09-15
EP1578054A1 (en) 2005-09-21
DE602005003252D1 (de) 2007-12-27
EP1578054B1 (en) 2007-11-14
US7697683B2 (en) 2010-04-13
JP4599859B2 (ja) 2010-12-15

Similar Documents

Publication Publication Date Title
KR101154695B1 (ko) 암호 처리 연산 장치
JP4752313B2 (ja) 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
Naehrig et al. New software speed records for cryptographic pairings
Naehrig et al. Dual isogenies and their application to public-key compression for isogeny-based cryptography
Koziel et al. Low-resource and fast binary edwards curves cryptography
US7835517B2 (en) Encryption processing apparatus, encryption processing method, and computer program
JP4513752B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
Subramanya Rao Three dimensional Montgomery ladder, differential point tripling on Montgomery curves and point quintupling on Weierstrass’ and Edwards curves
WO2009118795A1 (ja) サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法
EP1578054B1 (en) Cryptography-processing method, cryptography-processing apparatus and computer program
US7177422B2 (en) Elliptic curve encryption processing method, elliptic curve encryption processing apparatus, and program
KR101223498B1 (ko) 타원 곡선 암호 방식에서 공개키를 생성하는 방법 및 상기방법을 수행하는 시스템
JP2004163687A (ja) 楕円曲線暗号装置、楕円曲線暗号プログラム
Clancy et al. FPGA-based hyperelliptic curve cryptosystems
Al-Somani Overlapped parallel computations of scalar multiplication with resistance against Side Channel Attacks
Al-Somani et al. High performance elliptic curve scalar multiplication with resistance against power analysis attacks
JP2003228285A (ja) 楕円曲線スカラ倍演算装置
Al-Somani Performance Evaluation of Elliptic Curve Projective Coordinates with Parallel GF (p) Field Operations and Side-Channel Atomicity.
JP2008020757A (ja) 暗号処理装置、および暗号処理演算方法、並びにコンピュータ・プログラム
JP2011085750A (ja) 楕円曲線スカラー倍算装置
Gebotys et al. Elliptic Curve Protocols
JP2005043637A (ja) 暗号処理装置、および暗号処理演算方法、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070305

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100811

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100831

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100913

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees