JP4904981B2 - 公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラム - Google Patents

公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP4904981B2
JP4904981B2 JP2006220987A JP2006220987A JP4904981B2 JP 4904981 B2 JP4904981 B2 JP 4904981B2 JP 2006220987 A JP2006220987 A JP 2006220987A JP 2006220987 A JP2006220987 A JP 2006220987A JP 4904981 B2 JP4904981 B2 JP 4904981B2
Authority
JP
Japan
Prior art keywords
public key
calculation
addition
base point
cryptosystem
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.)
Expired - Fee Related
Application number
JP2006220987A
Other languages
English (en)
Other versions
JP2008046295A (ja
Inventor
一也 神尾
徹 秋下
雅宣 堅木
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 JP2006220987A priority Critical patent/JP4904981B2/ja
Publication of JP2008046295A publication Critical patent/JP2008046295A/ja
Application granted granted Critical
Publication of JP4904981B2 publication Critical patent/JP4904981B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラムに関する。さらに、詳細には、例えば公開鍵暗号において実行される署名検証処理における演算の効率化を実現する公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラムに関する。
昨今、ネットワーク通信、電子商取引の発展に伴い、通信におけるセキュリティ確保が重要な問題となっている。セキュリティ確保の1つの方法が暗号技術である。暗号化方式には、大別して共通鍵方式、公開鍵方式がある。共通鍵方式は、対称暗号方式ともよばれ、発信者、受信者の双方で共通の鍵を保有する。共通鍵方式の代表的な方法として、DES(Data Encryption Standard)がある。DESアルゴリズムの特徴は、暗号化と復号とをほぼ同じアルゴリズムで実行可能なことである。
この共通鍵暗号に対して、発信者と受信者の鍵を異なるものとした構成が公開鍵方式または非対称暗号方式である。公開鍵暗号方式では、暗号化、復号化に共通の鍵を用いる共通鍵暗号方式と異なり、秘密に保つ必要のある秘密鍵は、特定の1人が持てばよいため鍵の管理において有利である。ただし、公開鍵暗号方式は共通鍵暗号方式に比較してデータ処理速度が遅く、一般には、秘密鍵の配送、ディジタル署名等のデータ量の少ない対象に多く用いられている。公開鍵暗号方式の代表的なものにはRSA(Rivest-Shamir-Adleman)暗号がある。これは非常に大きな2つの素数(例えば150桁)の積を用いるものであり、大きな2つの素数(例えば150桁)の積の素因数分解する処理の困難さを利用している。
公開鍵暗号方式としては、上述したRSA方式の他にnが素数の場合の離散対数問題の困難さを利用した離散対数暗号が知られている。米国標準のディジタル署名方式として知られるDSA(Digital Signature Standard)には、この離散対数暗号が用いられている。また、V.Miller, N.Koblitzによって提案された楕円曲線暗号(ECC:Ellipitic Curve Cryptography)が、安全性および高速性の点で昨今注目されている。楕円曲線暗号は、160bitの鍵でRSA1024bitの鍵と同等の強度を持つと言われる。
楕円曲線暗号の応用のひとつとして、署名生成・検証技術が挙げられる。特にAmerican National Standard Institute(ANSI)にて制定された署名生成・検証技術、Elliptic Curve Digital Signature Algorithm(ECDSA)は署名生成・検証処理における標準として広く使用されている。なお、ECDSAについては、例えば非特許文献1に記載されている。
一般に、楕円曲線暗号(ECC)は、素体上の楕円曲線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倍算を用いて構成できることが知られている。
また、モンゴメリ型楕円曲線By=x+Ax+x((A−4)B≠0)を用いて点のスカラー倍算法を高速に行なう手法については、モンゴメリ・ラダー(Montgomery Ladder)と呼ばれ、非特許文献4、非特許文献5、特許文献1にも記載されている。同様に、種数2の超楕円曲線に応用する提案も、Duquesne(非特許文献2)、Gaudry(非特許文献3)によって提案されている。
これらの文献に記載されている手法は、例えば、擬似加算を用いてスカラー倍算を計算することで効率化を図るものである。擬似加算は、有限群上の異なる2点P,Qの加算P+Qを行なう場合点P,Qの情報に加えてP−Qなどの差分データを入力として用いて、加算結果P+Qを算出する処理である。この処理により、高速な加算結果P+Qの算出が可能となる。しかし、このような擬似加算のみでは加算結果を得られない場合がある。暗号プロトコルによっては、このような擬似加算を用いることができない場合があり、実際の加算処理を行なうことが必要となる、その1つの例が、楕円曲線暗号(ECDSA)における署名検証アルゴリズムである。
例えば、楕円曲線暗号(ECDSA)における署名検証アルゴリズムにおいては、スカラー倍点の加算[kP+lQ]を算出する演算ステップが存在する。このスカラー倍点の加算[kP+lQ]ステップは、通常、擬似加算のみの処理では行なえない。従って、kP+lQを算出するための専用の計算アルゴリズムや、加算手法を適用することが必要となっていた。しかし、このような1つの演算ステップの実行のために、専用のアルゴリズムや加算手法を実行するためには、計算コストの増大や、プロトコル実装におけるコスト増大などの問題をもたらすことになる。
特開2002−323852 American National Standards Institute. Public Key Cryptography for the Financial Services Industry: The Elliptic Curve Digital Signature Algorithm(ECDSA),ANSI X9.62−2005,2005 Sylvain Duquensne.Montgomery Scalar Multiplication for Genus 2 Curve.In Duncan Buell,editor,Algorithmic Number Theory,Vol.3076 of Lecture Notes in Computer Science,pp.153−168.Sixth International Symposium, ANTS−VI,SpringerVerlag,2004. P.Gaudry.Fast genus 2 arithmetic based on Theta functions. Cryptology ePrint Archive,July 2005.2005/0314. Peter L. Montgomery.Speeding the Pollard and elliptic curve methods of factorizations.In Mathematics of Computation,Vol 48,Number 177,pp.243−264.American Mathematical Society,January 1987. 秋下徹.Montgomery型楕円曲線における高速なスカラー倍同時計算法.In Technical report,第101巻,pp.97−103.IEICE,ISEC2001−32,2001.
本発明は、上記問題点に鑑みてなされたものであり、暗号処理におけるスカラー倍点の加算[kP+lQ]の算出を、専用の計算アルゴリズムや、加算手法を適用することなしに実現する公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラムを提供することを目的とする。
特に、本発明は、暗号処理におけるスカラー倍点の加算[kP+lQ]の算出処理を擬似加算と2倍算の計算のみで実行することを可能として、例えば、楕円曲線暗号(ECDSA)における署名検証アルゴリズムにおいて必要とされるスカラー倍点の加算[kP+lQ]を専用の計算アルゴリズムや、加算手法を適用することなしに実現する公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラムを提供することを目的とする。
本発明の第1の側面は、
情報処理装置において、公開鍵暗号方式において適用する鍵の生成を行う公開鍵暗号システム構築方法であり、
演算処理部において実行する鍵生成ステップとして、
有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fqとした場合、
秘密鍵dを、d∈Z、
公開鍵を、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rを生成する鍵生成ステップを実行することを特徴とする公開鍵暗号システム構築方法にある。
さらに、本発明の公開鍵暗号システム構築方法の一実施態様において、前記鍵生成ステップは、有限体Fq上定義されるMontgomery型楕円曲線E/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈E/Fqとした場合、
秘密鍵dを、d∈Z、
公開鍵を、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rを生成するステップであることを特徴とする。
さらに、本発明の公開鍵暗号システム構築方法の一実施態様において、前記鍵生成ステップは、有限体Fq上定義されるKummer曲面K/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈K/Fqとした場合、
秘密鍵dを、d∈Z、
公開鍵を、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rを生成するステップであることを特徴とする。
さらに、本発明の第2の側面は、
情報処理装置において、公開鍵暗号方式において規定される公開鍵を適用した演算を実行する暗号演算方法であり、
演算処理部において実行する演算ステップであり、
有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fq、秘密鍵dを、d∈Z、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rが規定された公開鍵暗号方式において、
前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理、すなわち、
kP+lQ
上記演算を、入力として、P,Q,k,lの他、P,Qの差分値を入力とした演算を実行して擬似加算および2倍算の計算のみによって算出する演算ステップを有することを特徴とする暗号演算方法にある。
さらに、本発明の暗号演算方法の一実施態様において、前記演算ステップは、有限体Fq上定義されるMontgomery型楕円曲線E/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈E/Fq、秘密鍵dを、d∈Z、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rが規定された公開鍵暗号方式において、
前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理、すなわち、
kP+lQ
上記演算を、入力として、P,Q,k,lの他、P,Qの差分値を入力とした演算を実行して擬似加算および2倍算の計算のみによって算出するステップであることを特徴とする。
さらに、本発明の暗号演算方法の一実施態様において、前記演算ステップは、有限体Fq上定義されるKummer曲面K/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈K/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈K/Fq、秘密鍵dを、d∈Z、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rが規定された公開鍵暗号方式において、
前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理、すなわち、
kP+lQ
上記演算を、入力として、P,Q,k,lの他、P,Qの差分値を入力とした演算を実行して擬似加算および2倍算の計算のみによって算出するステップであることを特徴とする。
さらに、本発明の暗号演算方法の一実施態様において、前記演算ステップは、公開鍵暗号方式において規定される署名検証処理として実行する演算であり、署名検証処理アルゴリズムで必要となる前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理kP+lQを実行するステップであることを特徴とする。
さらに、本発明の暗号演算方法の一実施態様において、前記暗号演算方法は、さらに、前記演算処理部において、前記演算ステップの入力値として適用する前記P,Qの差分値の算出処理を実行する入力値算出ステップを実行し、前記入力値算出ステップは、入力としてP,Q、およびPとQの差分値Rを入力とした擬似加算VADD(P,Q,R)を実行するステップであることを特徴とする。
さらに、本発明の第3の側面は、
公開鍵暗号方式において適用する鍵の生成を行う情報処理装置であり、
有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fqとした場合、
秘密鍵dを、d∈Z、
公開鍵を、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rを生成する演算処理部、
を有することを特徴とする情報処理装置にある。
さらに、本発明の情報処理装置の一実施態様において、前記演算処理部は、有限体Fq上定義されるMontgomery型楕円曲線E/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈E/Fqとした場合、
秘密鍵dを、d∈Z、
公開鍵を、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rを生成する処理を実行する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記演算処理部は、有限体Fq上定義されるKummer曲面K/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈K/Fqとした場合、
秘密鍵dを、d∈Z、
公開鍵を、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rを生成する処理を実行する構成であることを特徴とする。
さらに、本発明の第4の側面は、
公開鍵暗号方式において規定される公開鍵を適用した演算を実行する情報処理装置であり、
有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fq、秘密鍵dを、d∈Z、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rが規定された公開鍵暗号方式において、
前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理、すなわち、
kP+lQ
上記演算を、入力として、P,Q,k,lの他、P,Qの差分値を入力とした演算を実行して擬似加算および2倍算の計算のみによって算出する演算処理部、
を有することを特徴とする情報処理装置にある。
さらに、本発明の情報処理装置の一実施態様において、前記演算処理部は、有限体Fq上定義されるMontgomery型楕円曲線E/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈E/Fq、秘密鍵dを、d∈Z、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rが規定された公開鍵暗号方式において、
前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理、すなわち、
kP+lQ
上記演算を、入力として、P,Q,k,lの他、P,Qの差分値を入力とした演算を実行して擬似加算および2倍算の計算のみによって算出する処理を実行する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記演算処理部は、有限体Fq上定義されるKummer曲面K/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈K/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈K/Fq、秘密鍵dを、d∈Z、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rが規定された公開鍵暗号方式において、
前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理、すなわち、
kP+lQ
上記演算を、入力として、P,Q,k,lの他、P,Qの差分値を入力とした演算を実行して擬似加算および2倍算の計算のみによって算出する処理を実行する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記演算処理部は、公開鍵暗号方式において規定される署名検証処理に含まれる演算として、署名検証処理アルゴリズムで必要となる前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理kP+lQを実行する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記演算処理部は、前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理kP+lQの演算アルゴリズムにおける入力値として適用するP,Qの差分値の算出処理としての入力値算出処理を実行する構成であり、
前記入力値算出処理を、
入力としてP,Q、およびPとQの差分値Rを入力とした擬似加算VADD(P,Q,R)により実行する構成であることを特徴とする。
さらに、本発明の第5の側面は、
情報処理装置において、公開鍵暗号方式において適用する鍵の生成を行わせるコンピュータ・プログラムであり、
演算処理部において実行させる鍵生成ステップであり、
有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fqとした場合、
秘密鍵dを、d∈Z、
公開鍵を、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rを生成させる鍵生成ステップを実行させることを特徴とするコンピュータ・プログラムにある。
さらに、本発明の第6の側面は、
情報処理装置において、公開鍵暗号方式において規定される公開鍵を適用した演算を実行させるコンピュータ・プログラムであり、
演算処理部において実行させる演算ステップであり、
有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fq、秘密鍵dを、d∈Z、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rが規定された公開鍵暗号方式において、
前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理、すなわち、
kP+lQ
上記演算を、入力として、P,Q,k,lの他、P,Qの差分値を入力とした演算を実行して擬似加算および2倍算の計算のみによって算出させる演算ステップを実行させることを特徴とするコンピュータ・プログラムにある。
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の一実施例の構成によれば、有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fqとした場合、
秘密鍵dを、d∈Z、
公開鍵を、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rを生成し、公開鍵暗号システムにおいて規定される署名検証において、上記の公開鍵を適用した演算処理によって効率的な演算が可能となる。具体的には、署名検証アルゴリズムにおけるスカラー倍点の加算[kP+lQ]の算出を、専用の計算アルゴリズムや、加算手法を適用することなしに、擬似加算と2倍算のみで、実行可能として効率的な演算が実現される。
以下、本発明の公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラムの詳細について説明する。
以下、以下の項目に従って本発明の詳細な説明を行なう。
1.楕円曲線およびKummer曲面上の離散対数問題に基づく暗号系についての説明
(1.1).楕円曲線上の離散対数問題に基づく暗号系についての説明
(1.2).Kummer曲面上の離散対数問題に基づく暗号系についての説明
(1.3)スカラー倍点の加算kP+lQにおける問題点
2.擬似加算と2倍算によりスカラー倍点の加算kP+lQの算出を行なう構成
3.情報処理装置構成例
[1.楕円曲線およびKummer曲面上の離散対数問題に基づく暗号系についての説明]
まず、本発明の具体的な説明の前に、前提となる楕円曲線およびKummer曲面上の離散対数問題に基づく暗号系について説明する。説明は、以下の2つの項目について行なう。
(1.1).楕円曲線上の離散対数問題に基づく暗号系についての説明
(1.2).Kummer曲面上の離散対数問題に基づく暗号系についての説明
(1.1).楕円曲線上の離散対数問題に基づく暗号系についての説明
楕円曲線上の離散対数問題に基づく暗号系(楕円曲線暗号)は、背景技術の欄においても述べたように、MillerとKolblitzがそれぞれ独立に提案した公開暗号系であり、安全性および高速性の点で昨今注目されている。安全性の根拠をDiffie,Hellmanが提案した有限Abel群G上の離散対数問題におき、有限Abel群Gとして楕円曲線の群構造を選択したものであり、同様の拡張で、超楕円曲線暗号などの可換群の構造を持つAbel多様体を適用した公開鍵暗号系がこれまでにも様々に提案されてきた。離散対数問題とは次のように定義される。
*定義1.1(離散対数問題)
離散対数問題は、以下のような問題として定義される。
Gを有限Abel群,x,y∈Gとする。
このとき、
y=nx
を満たす整数nを求めよ。
また、同様に、Gを楕円曲線の群構造とした楕円曲線上の離散対数問題は以下のように定義される。
*定義1.2(楕円曲線上の離散対数問題)
Fqを位数qの有限体、E/FqをFq上定義されるordinaryな楕円曲線とする。
E/Fq上の有理点P,Qに対して、
Q=nP
を満たす整数nを求めよ。
として定義される。
注意深く選択された楕円曲線上の離散対数問題に対して、指数時間以上に有効な攻撃アルゴリズムは現在まで知られていない。この数論に基づく安全性を根拠に暗号系が構築されている。
(1.1.1)Montgomery型楕円曲線を用いた暗号系
ここでは説明の為、有限体の標数を、
charFq≠2
とする。一般にFq上定義される楕円曲線EはWerierstrauss標準型、
E/Fq:y=x+ax+b, ただし、a,b∈Fq
として与えられる。
これに対して、素因数分解の高速化を実現する為のアイデアから導入されたMontgomery型楕円曲線Eが知られている。Montgomery型楕円曲線は、
/Fq:By=x+Ax+x, ただし、A,B∈Fq,(A−4)B≠0
として与えられる。
Montgomery型楕円曲線は暗号系構成要素として必要な点の整数倍演算(スカラー倍算)を事前計算無しに高速に計算できることから注目され、標数2の場合に拡張されたり、ハードウェア(H/W)的な暗号攻撃への耐性の面からも楕円曲線暗号への応用と研究が進んでいる。
Montgomery型楕円曲線の群演算の特徴は、曲線上の2つの有理点の差分点要素の内、x座標が既知ならばy座標の情報を用いることなく加算及び2倍算を導出できることにある。E/Fq上の有理点のアフィン(Affin)座標系表示を(x,y)とするならば、
x=X/Z,
y=Y/Z
によって射影座標系表示(X,Y,Z)を得られる。
このとき、Montgomery型楕円曲線における加算及び2倍算は次の定義のように与えられる。
*定義1.3(Montgomery型楕円曲線おける加法)
Montgomery型楕円曲線おける加法は以下のように定義することができる。
/Fq上の有理点
=(X,Y,Z),
=(X,Y,Z)≠P
とその差分点、
=−P+P=P−P=(X,Y,Z
が与えられた際、P1とP2との加算点
=P+P=(X,Y,Z)は、
=Z((X−Z)(X+Z)+(X+Z)(X−Z))
=X((X−Z)(X+Z)−(X+Z)(X−Z))
として示すことができる。
なお、差分点は、その構造からも理解されるように、P=P−Pでも、P=P−Pでも構わない、以下では、簡単のため差分点P=P−Pの形を代表として説明する。
*定義1.4(Montgomery型楕円曲線おける2倍算)
Montgomery型楕円曲線おける2倍算は以下のように定義することができる。
/Fq上の有理点
=(X,Y,Z
が与えられた際、
その2倍点
=2P=(X,Y,Z)は、
4X=(X+Z−(X−Z
=(X+Z(X−Z
=4X((X−Z+(4X)(A+2)/4)
として示すことができる。
(1.1.2)Montgomery型楕円曲線におけるスカラー倍算
楕円曲線上の離散対数問題に基づく暗号系の重要な要素のひとつとして、楕円曲線上の有理点Pの整数k倍点kPの計算、すなわちスカラー倍算を如何に高速に行うかという問題がある。楕円曲線上のスカラー倍算については、様々な手法が研究、提案されているが、Montgomery型楕円曲線のスカラー倍算についても、前述した加法、2倍算を用いて効率的なスカラー倍算を行なう加法鎖(addition chain)を構成できることが知られている。
この加法鎖(addition chain)はスカラー倍点kPを求めるとき、
=P,V=2P
を初期値として整数kの2進表現、
k=(kt−1・・・t
のkt−1から順に見ていき、
が1ならば、
=Ui+1+Vi+1,V=2Vi+1
とし、
が0ならば、
=2Ui+1,=Ui+1+Vi+1
とする計算を逐次的に行うものであり、UとVの差が常にPとなるのが大きな特徴である。以下、手順を示すが、特徴が分かり易いようにMontgomery型楕円曲線における加法、2倍算を関数の形で定義する。
*定義1.5(MonADD)
Montgomery型楕円曲線における擬似加算(MonADD)を以下のように定義する。
Montgomery型楕円曲線E/Fq上の点P,Pと、
その差分点P=P−P
を入力として、定義1.3で示した計算を実施する関数を、
MonADD=(P,P,P)=P+P
とする。
なお、擬似加算は、PとPとの加算結果P+Pを得る際に、入力として、
(a)PとPと、その差分値であるP=P−P、または、
(b)PとPと、その差分値であるP=P−P
これら(a)または(b)のいずれかを入力とし、
出力として、
とPとの加算結果であるP+P
を得る加算処理である。
なお、上記説明において、擬似加算は、PとPとの加算結果P+Pを得るという説明としたが、例えば、Pと(−P)との加算結果は、[P−P]と表現可能であり、Pと(−P)との加算結果P−Pを算出する場合に、Pと(−P)との差分として、
(a)P=P−(−P、)=P+P、または、
(b)P=P−(−P、)=P+P
をPとPと併せて入力として適用して、
出力として、
と−Pとの加算結果であるP−P
を得る加算処理も擬似加算である。
従って、
MonADD=(P,P,P
として示される擬似加算において、
差分点Pは、P−P,P−P,P+Pのいずれかとして表現可能であり、求める加算点は、P+P,P−P,P−Pのいずれかとして表現可能となる。
*定義1.6(MonDBL)
Montgomery型楕円曲線における2倍算(MonDBL)を以下のように定義する。
Montgomery型楕円曲線E/Fq上の点Pを入力として、定義1.4で示した計算を実施する関数を、
MonDBL(P)=2P
とする。
このとき、Montgomery型楕円曲線におけるスカラー倍算:kPの手順は、以下に示すアルゴリズム1(Algorithm1)となる。
Figure 0004904981
上記アルゴリズム1は、
Montgomery型楕円曲線上の点P、
スカラー量k
を入力として、
出力として、
kP
のスカラー倍算結果を得るアルゴリズムである。
上記アルゴリズムは、上述の
Montgomery型楕円曲線における擬似加算(MonADD)、
Montgomery型楕円曲線における2倍算(MonDBL)、
を利用して、効率的なスカラー倍算を行なう加法鎖(addition chain)を適用した演算を行なうアルゴリズムとして構成されている。
加法鎖(addition chain)を適用した演算の具体例として、スカラー量k=25の場合の手順を示す。
k=25=(11001)
であるから、初期値を、
U=P,
V=2P=MonDBL(P)
として図示すると、図1に示す加法鎖(addition chain)を適用した計算手順が得られる。
Montgomery型楕円曲線における加法鎖(addition chain)は、図1に示すような構成となることから、Montgomery Ladderと呼ばれる。
前述したように、加法鎖(addition chain)はスカラー倍点kPを求めるとき、
=P,V=2P
を初期値として整数kの2進表現、
k=(kt−1・・・t
のkt−1から順に見ていき、
が1ならば、
=Ui+1+Vi+1,V=2Vi+1
とし、
が0ならば、
=2Ui+1,=Ui+1+Vi+1
とする計算を逐次的に行う。
図1において、
k=25=(11001)
であり、
(k,k,k,k,k)=(1,1,0,0,1)
となる。
初期値は、
U=P,
V=2P=MonDBL(P)
となる。
まず、i=3において、
=1であり、
=P,V=2P
であるから、
=U+V=3P
=2V=4P
となる。
次に、i=2において、
=0であり、
=3P,V=4P
であるから、
=2U=6P
=U+V=7P
となる。
次に、i=1において、
=0であり、
=6P,V=7P
であるから、
=2U=12P
=U+V=13P
となる。
次に、i=0において、
=1であり、
=12P,V=13P
であるから、
=U+V=25P
=2V=26P
となる。
この結果、
k=25=(11001)
とした場合のスカラー倍算結果25Pが算出される。このように、スカラー倍点kPを求めるときに、加法鎖(addition chain)を適用した演算とすることで、Montgomery型楕円曲線におけるスカラー倍算において加法鎖(addition chain)を適用した演算が、前述のアルゴリズム1(Algorithm1)に示すアルゴリズムであり、具体的には、
Montgomery型楕円曲線における擬似加算(MonADD)、
Montgomery型楕円曲線における2倍算(MonDBL)、
これらの演算が行なわれることになる。
(1.1.3)ECDSA(楕円曲線署名アルゴリズム)
楕円曲線暗号の応用のひとつとして、署名生成・検証技術が挙げられる。特にAmerican National Standards Institute(ANSI)において制定された署名生成・検証技術、Elliptic Curve Digital Signature Algorithm(ECDSA)は標準として広く使用されている。以下、ECDSAについて簡単に説明する。
前提として、有限体Fq上定義される楕円曲線をE/Fqとし、その位数#E(Fq)は大きな素数nを因数として持つものとする。また位数nとなるベースポイントをPとする。閉区間[1,n−1]より選択した整数を秘密鍵dとし、ベースポイントPのd倍点を公開鍵Qとする。公開鍵の生成方法は具体的に前述のMontgomery型楕円曲線におけるスカラー倍算アルゴリズムであるアルゴリズム1(Algorithm1)を用いて計算する。曲線定義およびベースポイントの定義情報としてのドメインパラメータ、および鍵情報についてまとめると以下のようになる。
ドメインパラメータ:E/Fq,P
公開鍵;Q=dP
秘密鍵:d∈[1,n−1]
である。
(ECDSA署名生成処理)
ECDSA署名生成について説明する。署名生成者は署名を付けるメッセージmに対して、あるハッシュ関数hashを作用させダイジェストを得る。なお、使用するハッシュ関数としては様々なハッシュ関数が適用可能である。このダイジェストはbinary表現として先頭bitをMSBとする整数eとして扱うものとする。
次に署名生成者は閉区間[1,n−1]より整数kをランダムに選択し、ベースポイントの整数倍A=kPを計算する。署名値として楕円曲線上の有理点のx座標要素をなんらかの手順で整数に変換するelt2intによってAのx座標要素aを求める。また、ダイジェストeとaの整数d(署名生成者の秘密鍵)倍の和を作り、kの逆元を掛けたsをZ/nZ上で計算する。署名生成者はaとsの組(a,s)を署名とする。この一連の手順をアルゴリズム2(Algorithm2)として以下に示す。
Figure 0004904981
(ECDSA署名検証処理)
次に、署名検証について説明する。署名検証者は署名(a',s')が付けられたメッセージm'に対してあるハッシュ関数hashを作用させダイジェストを得る。このダイジェストはbinary表現として先頭bitをMSBとする整数e'として扱うものとする。次に署名検証者は署名(a',s')の要素a',s'それぞれが、閉区間[1,n−1]に入っているかどうかを判定する。
閉区間[1,n−1]の範囲外である場合は、署名は不正であるとして破棄される。閉区間[1,n−1]の範囲内であることが確認されたらs'のZ/nZ上での逆元cを求め、e',a'をそれぞれZ/nZ上でc倍した中間値k,lを計算する。得られたk,lとベースポイントP,署名生成者の公開鍵Qより、
B=kP+lQ
を計算する。署名生成時と同様、楕円曲線上の有理点のx座標要素をなんらかの手順で整数に変換するelt2intによってBのx座標要素bを求める。最後にbとa'とを比較し、一致すれば署名(a',s')はメッセージm'に対して正しく付けれたものであると判断する。一致しない場合は、不正であるものとして破棄される。この一連の手順をアルゴリズム3(Algorithm3)として以下に示す。
Figure 0004904981
このアルゴリズム3(Algorithm3)では、ステップ10が、k,lとベースポイントP,署名生成者の公開鍵Qより、
B=kP+lQ
を計算するステップである。この計算ステップは、Montgomery型楕円曲線上の点P,Qそれぞれのスカラー倍算結果kP,lQの加算点を求める処理である。この異なる2点P,Qのスカラー倍算の加算処理は、計算負荷の大きい処理である。この異なる2点P,Qのスカラー倍算の加算処理を高速に実行する手法として、本発明の出願人は、先にスカラー倍同時計算手法を提案している。この手法は、既に特許取得済みである特開2002−323852に記載されている。以下この手法について簡単に説明する。
(1.1.4)Montgomery型楕円曲線におけるスカラー倍同時計算
以下、Montgomery型楕円曲線において、2つのスカラー倍算の和、
kP+lQ
を効率よく計算する方法について説明する。この手法は、スカラー倍同時計算手法として、
特開2002−323852号公報、
秋下徹.Montgomery型楕円曲線における高速なスカラー倍同時計算法.In Technical report,第101巻,pp.97−103.IEICE,ISEC2001−32,2001.
に記載されている。
このスカラー倍同時計算手法は、例えば、前述したECDSA署名検証手順のアルゴリズム3(Algorithm3)のステップ10(step10)の
B=kP+lQ
を計算する場合に有効である。
kP+lQを算出する手順をアルゴリズム4(Algorithm4)=SIMUL1(P,Q,k,l)として以下に示す。
Figure 0004904981
アルゴリズム4(Algorithm4)におけるstep1は、入力P,QからP+Q,Q−Pを計算するステップである。ここで現れる(+)は、点PとQの疑似ではない加算であり、前述の[定義1.3]から明らかなように、疑似加算MonADDではこの値を計算することができない。そのため通常は異なる加算公式を用いて計算することが必要になる。この加算公式については、「Peter L. Montgomery.Speeding the Pollard and elliptic curve methods of factorizations.In Mathematics of Computation,Vol 48,Number 177,pp.243−264.American Mathematical Society,January 1987.」に記載されている。
また、アルゴリズム4(Algorithm4)におけるstep1のP+Q,Q−PはPとQとの差分点という意味で、前述の[定義1.3]でも触れた通り、P+Q,P−Qの形でも成り立つ。
このアルゴリズム4に示すスカラー倍同時計算手法を適用することで、例えばMontgomery型楕円曲線上の点P,Qそれぞれのスカラー倍算結果kP,lQの加算点としての
B=kP+lQ
を高速に算出することができる。
ただし、この手法の問題点としてあるのは、step1において、入力P,QからP+Q,Q−Pを計算するステップが、前述した擬似加算の適用では算出できるものではなく、擬似ではない異なる加算公式を実装することが必要なため、このstep1の計算コストが高いということが問題点である。
この問題点を解決した本発明の手法については、後段の[2.擬似加算と2倍算によりスカラー倍点の加算kP+lQの算出を行なう構成]において詳細に説明する。
(1.2).Kummer曲面上の離散対数問題に基づく暗号系についての説明
次に、Kummer曲面上の離散対数問題に基づく暗号系について説明する。Montgomery型楕円曲線におけるスカラー倍算を高速に行う手法として図1を参照して説明したMontgomery Ladderを種数2の超楕円曲線に応用する提案が、Gaudryや、Duquesneによって、下記文献において、提案されている。
「Sylvain Duquensne.Montgomery Scalar Multiplication for Genus 2 Curve.In Duncan Buell,editor,Algorithmic Number Theory,Vol.3076 of Lecture Notes in Computer Science,pp.153−168.Sixth International Symposium, ANTS−VI,SpringerVerlag,2004.」、「P.Gaudry.Fast genus 2 arithmetic based on Theta functions. Cryptology ePrint Archive,July 2005.2005/0314.」
このアイデアは、超楕円曲線そのものの因子計算にMontgomery Ladderを直接用いることは不可能だが、群構造として同型なKummer曲面(クンマー曲面)上の問題としてスカラー倍を扱うというものである。以下、上記文献「P.Gaudry.Fast genus 2 arithmetic based on Theta functions. Cryptology ePrint Archive,July 2005.2005/0314.」に従って、Kummer曲面の定義と群演算、スカラー倍算について説明する。本来、超楕円曲線とKummer曲面との間にある関係についての事実が学術的に非常に重要ではあるが省略し、本発明に直接的に関連する項目のみ、簡単に触れる。
*定義1.7(Kummer曲面)
Kummer曲面を以下のように定義する。
をSiegel上半平面とし、Ω∈Sをimaginary partが0より大きい2×2複素行列とする。このとき、
φ:C→P(C)
z→(v(2z),v(2z),v(2z),v(2z))
で定義されるφの像の軌跡をΩで関連づけられたKummer曲面という。
ここで、vは基本Theta関数と呼ばれる関数である。詳細は前述の文献を参照されたい。以降、Kummer曲面をTheta関数
a=v(0),b=v(0),c=v(0),d=v(0),
A=Θ(0),B=Θ(0),C=Θ(0),D=Θ(0),
これらを用いてパラメータ化(parametrize)し、
K=Ka,b,c,d
として示す。
(1.2.1)Kummer曲面におけるスカラー倍算
Gaudry等はKummer曲面上の点について2倍算と「疑似」加法の群演算を明示的に与えており、これによりスカラー倍算において、先に図1を参照して説明したMontgomery Ladderタイプのaddition chainが構成できることを示している。
楕円曲線の場合と同様にKummer曲面における2倍算と疑似加法を関数の形で定義する。これらの計算には、以下に与える6つの定数の事前計算を必要とする。
=(a/b),
=(a/c),
=(a/d),
'=(A/B)
'=(A/C)
'=(A/D)
*定義1.8(KummerDBL)
Kummer曲面における2倍算(KummerDBL)を以下のように定義する。
Kummer曲面K上の点、
=(x,y,z,t
を入力として、
の2倍点、
2P=(x,y,z,t
を求める関数を、
KummerDBL(P)=2P
と定義する。この具体的な計算手順をアルゴリズム5(Algorithm5)として示す。
Figure 0004904981
*定義1.9(KummerADD)
Kummer曲面における擬似加算(KummerADD)を以下のように定義する。
Kummer曲面K上の点、
=(x,y,z,t
=(x,y,z,t
と、その差分点、
'=(x',y',z',t')=−P+P=P−P
を入力として、PとPの加算点、
=P+P
を求める疑似加算関数を
KummerADD(P,P,P')=P+P
と定義する。
なお、差分点は、MontgomeryP型楕円曲線の場合と同様、P'=P−Pのみならず、P'=P−Pとして表現することもできる。
上記のPとPの加算点、
=P+P
を求める疑似加算関数KummerADDの具体的な計算手順をアルゴリズム6(Algorithm6)として以下に示す。
Figure 0004904981
Kummer曲面における疑似加算、2倍算を用いて、楕円曲線の場合(Algorithm1)と同様に、Montgomery Ladderタイプのaddition chainを持つスカラー倍算が構成できる。この計算手順は、以下に示すアルゴリズム7(Algorithm7)となる。
Figure 0004904981
このアルゴリズム7は、
Kummer曲面上の点P、
スカラー量k
を入力として、
出力として、
kP
のスカラー倍算結果を得るアルゴリズムである。
上記アルゴリズムは、上述の
Kummer曲面における擬似加算(KummerADD)、
Kummer曲面における2倍算(KummerDBL)、
を利用して、効率的なスカラー倍算を行なう加法鎖(addition chain)を適用した演算を行なうアルゴリズムとして構成されている。
(1.2.2)Kummer曲面上の離散対数問題
Kummer曲面上の点について、疑似加算及び2倍算が定義され、スカラー倍算が構成されたことで、不完全(疑似的)ではあるが加法群の群構造が導入された。この事実はKummer曲面上に離散対数問題が定義できることに他ならない。前述の離散対数問題に習って定義すれば、次のように説明できる。
*定義1.10(Kummer曲面上の離散対数問題)
Kummer曲面上の離散対数問題は、以下の問題として定義される。
Fqを位数qの有限体、
K/FqをFq上定義されるKummer曲面とする。
K/Fq上の点P,Qに対して、
Q=nP
を満たす整数nを求めよ。
K/Fqの群位数は、Gaudryが示した条件下で、
以下の超楕円曲線
Figure 0004904981
のヤコビアンと群位数が等しくなることが知られている。従って、注意深く選択されたKummer曲面では、安全な超楕円曲線暗号と同等の安全性を持つ暗号系を構築できる可能性があることが分かる。
Duquesneが示した内容は、Kummer曲面と関係づけられる超楕円曲線の形や条件が異なるが、スカラー倍算が構成できること、離散対数問題が定義できるという本質は同じものである。
(1.3)スカラー倍点の加算kP+lQにおける問題点
上述したMontgomery型楕円曲線を使った暗号や、Kummer曲面を使った暗号では、前述したように疑似加算を用いてスカラー倍算kPを効率良く計算することができる。しかし、このタイプの暗号では、様々な暗号プロトコルを構成する場合、疑似加算だけでなく、実際の加算が必要な場合もあり、この時に、大きな問題が生じる。
この一つの例が、前述したようにECDSAの署名検証アルゴリズム、すなわち先に説明したアルゴリズム3(Algorithm3)で用いられるステップ10(step10)のスカラー倍点の加算kP+lQの計算である。なお、前述したようにKummer曲面の暗号の場合もMontgomery型楕円曲線と同じ演算性質を持つ。このことからKummer曲面上の点を用いてECDSAの署名検証アルゴリズム(Algorithm3)を一般化することができる。
このように実際、加算アルゴリズムが要求される暗号プロトコルへの対応方法に関して、Montgomery型楕円曲線、Kummer曲面を用いた暗号系それぞれに場合について述べる。
まず、Montgomery型楕円曲線の場合、前述したMonADDとは異なる加法公式を用いることができる。この加法公式については、「Peter L. Montgomery.Speeding the Pollard and elliptic curve methods of factorizations.In Mathematics of Computation,Vol 48,Number 177,pp.243−264.American Mathematical Society,January 1987.」に記載されている。
従って、前述したアルゴリズム4(Algorithm4)を実行することが可能であり、スカラー倍点の加算kP+lQを計算することができる。しかし、このために異なる計算手段を用意しなければいけないことは、暗号プロトコルを実装する者にとって大きなコストと言える。
一方、Kummer曲面暗号の場合、Montgomery型楕円曲線のように点に関して完全な加法群を構成すること、即ち曲面上で通常の点の加算を明示的に与えることは難しい。その為、楕円曲線暗号に比べて、加算をその手順の中に必要とされる暗号プロトコルを実現する上で深刻である。単純な解決方法は、始めにKummer曲面上の点として、それぞれのスカラー倍kP,lQを別々に計算する。次に、それらを加法が定義されている同型な種数2の超楕円曲線のJacobi多様体上の因子へ移す。因子の加算を実行し、Kummer曲面の点に再び引き戻すことでkP+lQを得る。
しかし、この方法はGaudryの論文「P.Gaudry.Fast genus 2 arithmetic based on Theta functions. Cryptology ePrint Archive,July 2005.2005/0314.」に記載されているように、Jacobi多様体上の因子と対応するKummer曲面上の点との間にある対応関係が非常に複雑であり、実施の際に非常に多くの計算量がかかってしまう。
従って、Montgomery型楕円曲線にせよ、Kummer曲面を用いた暗号にせよ、スカラー倍点の加算kP+lQの計算を異なる加算方法を用いること無しに計算することは、実装上、大変有意義であり、且つ解決すべき問題である。
[2.擬似加算と2倍算によりスカラー倍点の加算kP+lQの算出を行なう構成]
次に、擬似加算と2倍算によりスカラー倍点の加算kP+lQの算出を行なう本発明に従った処理について説明する。
本発明の提案する構成の1つは、公開鍵暗号方式における鍵の設定手法であり、本発明に従った鍵の設定手法を適用することで、公開鍵暗号方式における署名検証処理において実行する2つの異なる点P,Qのスカラー倍算:kP,LQの加算点、
KP+lQ
の算出を擬似加算と2倍算により実行することが可能となる。
本発明の提案する公開鍵暗号方式について説明する。
本発明の提案する公開鍵暗号方式は、先に、図1を参照して説明したMontgomery Ladderタイプの加法鎖(addition chain)を持つスカラー倍算が構成可能な有限体Fq上定義される多様体V/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式であり、
ベースポイントをP∈V/Fqとした場合、
秘密鍵:d∈Zとする。
公開鍵は、以下のQ,Rのペアとして設定する。
1つの公開鍵Qは、
ベースポイントPの秘密鍵:d倍の点、
Q=dPとする。
さらに、もう1つの公開鍵Rを、
Qとの差分がPとなる点R、すなわち、
R=(d+1)P、または、R=(d−1)P
上記のいずれかに設定する。
これらQ,Rのペアを公開鍵とする。
このように公開鍵Q,Rを設定することで、例えば、公開鍵暗号方式における署名検証処理において算出する必要のある点P,Qのスカラー倍点,kP,lQの加算点、すなわち、
KP+lQ
の算出を、疑似加算と2倍算のみで計算することが可能となる。なお、この方式では、前述したスカラー倍同時計算が可能であり、スカラー倍同時計算kP+lQにおいて、通常の加算を用いずに疑似加算と2倍算のみで計算が可能となり、高速な演算が実現される。
以下、本発明の処理構成について、詳細に説明する。なお、以下では、先に、図1を参照して説明したMontgomery Ladderタイプの加法鎖(addition chain)を持つスカラー倍算が構成可能な有限体Fq上定義される多様体V/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式として説明する。
ただし、先に説明したように、Montgomery型楕円曲線を用いた暗号とKummer曲面を用いた暗号は疑似加算と2倍算に関して同じ性質を持つものであり、本発明は、Kummer曲面を用いた暗号においても、全く同様に適用可能である。
(2.1)本発明に従った実施例における定義
まず、本発明に従った実施例における定義について説明する。
以下の本発明に従った実施例における公開鍵暗号方式は、Montgomery型楕円曲線を用いた方式であり、多様体V/Fq上で定義可能なMontgomery Ladderタイプの加法鎖(addition chain)を持つスカラー倍算は、V/Fq上の疑似加算及び2倍算から構成されるものとする。
疑似加算は、多様体V/Fq上の点P,Pと、その差分点P=P−Pを入力し、加算点P=P+Pを出力する。
なお、前述たように、差分点はP=P−Pと示すこともでき、以下では、差分点はP=P−Pを代表例として示す。
2倍算は、多様体V/Fq上の点P1を入力し、2倍点P=2Pを出力するものとする。
これら擬似加算とて2倍算は、それぞれ関数の形で、
VADD(P,P,P)=P+P
VDBL(P)=2P
と定義する。
擬似加算VADD(P,P,P)は、前述したように、PとPとの加算結果P+Pを得る際に、入力として、
(a)PとPと、その差分値であるP=P−P、または、
(b)PとPと、その差分値であるP=P−P
これら(a)または(b)のいずれかを入力とし、
出力として、
とPとの加算結果であるP+P
を得る加算処理である。
(2.2)2つの要素Q,Rを公開鍵とする公開鍵暗号系の構成方法について
次に、スカラー倍同時計算kP+lQを通常の加算を用いずに疑似加算と2倍算のみで計算することを可能とした公開鍵方式の実現方法、すなわち、2つの要素Q,Rを公開鍵とする公開鍵暗号系の構成方法について説明する。
まず、Montgomery Ladderタイプの加法鎖(addition chain)を持つスカラー倍算が定義可能な、多様体V/Fq上定義される離散対数問題の困難性に根拠をおく公開鍵暗号方式において、ベースポイントとなる生成元P∈V/Fqを決定する。
次に、ある乱数d∈Zを選択し、このdを暗号系の秘密鍵とする。すなわち、
秘密鍵:d∈Z
とする。
さらに、この秘密鍵d、及びベースポイントPを入力とし、Pのd倍点Q、及びQとの差分がPとなる点、
R=(d+1)P、または、R=(d−1)P
を計算し、
Q,Rのペアを公開鍵とする。
本発明に従った公開鍵暗号構成方法、すなわち鍵生成シーケンスについて、図2を参照して説明する。従来の鍵生成シーケンスと対比するため、図2(a)に従来の鍵生成シーケンス、図2(b)に本発明に従った鍵生成シーケンスを示す。
図2(a)示す従来の鍵生成シーケンスにおいては、まず、ステップS101において、ある乱数d∈Zを選択し、このdを暗号系の秘密鍵とする。すなわち、
秘密鍵:d∈Z
とする。
次に、ステップS102において、先に説明したMontgomery型楕円曲線におけるスカラー倍算のアルゴリズム1(Algorithm1)、または、Kummer曲面におけるスカラー倍算のアルゴリズム7(Algorithm7)を適用して、Pのd倍点としてのQ、
Q=dP
を算出し、ステップS103において、
Q=dPを公開鍵として決定する。
一方、本発明に従った鍵決定シーケンスを図2(b)示す。ステップS201は、従来の鍵生成シーケンスにおけるステップS101と同様であり、ある乱数d∈Zを選択し、このdを暗号系の秘密鍵とする。すなわち、
秘密鍵:d∈Z
とする。
次に、ステップS202では、以下に示すアルゴリズム8(Algorithm8)を適用してPのd倍点Q、及びQとの差分がPとなる点、
R=(d+1)P、または、R=(d−1)P
を計算し、
ステップS203において、Q,Rのペアを公開鍵として公開する。
Figure 0004904981
上記の本発明に従った公開鍵生成アルゴリズムであるアルゴリズム8(Algorithm8)の計算方法は、Montgomery Ladderを適用してスカラー倍算を行なう点は、先に説明したMontgomery型楕円曲線におけるスカラー倍算のアルゴリズム1(Algorithm1)、または、Kummer曲面におけるスカラー倍算のアルゴリズム7(Algorithm7)と同様であるが、アルゴリズム1およびアルゴリズム7では、計算結果に現れる
(d+1)P
つまり、アルゴリズム8におけるRの情報を冗長な情報として捨ててしまうのに対し、本発明に従った公開鍵生成アルゴリズムであるアルゴリズム8(Algorithm8)では、Qとともに、
R=(d+1)P
を公開鍵として扱うことに大きな違いがある。
なお、上記アルゴリズム8では、
公開鍵ペアQ,Rとして
Q=dP
R=(d+1)P
の算出を行なう例であるが、前述したようにRは、
R=(d−1)P
としてもよい。
公開鍵Rとして、ベースポイントPの(d−1)倍点を得るには、アルゴリズム8において、
d'=d−1
として入力に与え、結果として得られた
Q'=(d−1)P,
R'=dP
から、
Q=R',
R=Q'
とすれば良い。
このように、アルゴリズム8によって、本発明に従った公開鍵暗号方式における公開鍵Q,Rを算出する。
(2.3)本発明の公開鍵暗号方式におけるスカラー倍同時計算
次に、上述した鍵の設定とした公開鍵暗号方式において、例えば、署名検証処理において必要となるスカラー倍点の加算点の算出、すなわち、
kP+lQ
の算出処理について説明する。
本発明に従った公開鍵方式においては、スカラー倍同時計算kP+lQを通常の加算を用いずに疑似加算と2倍算のみで計算する。すなわち、従来法では実現できなかった、スカラー倍同時計算kP+lQを通常の加算を用いずに疑似加算と2倍算のみで計算する。
本発明に従った公開鍵方式では、前述した処理によって、
ベースポイントP∈V/Fq、を決定する。
秘密鍵:d∈Z
公開鍵ペア:Q,Rとして、
Q=dP
R=(d+1)P、または、R=(d−1)P
が設定されている。
このような設定において、例えば、署名検証処理において必要となるスカラー倍点の加算点の算出
kP+lQを算出するスカラー倍同時計算のシーケンスについて、図3を参照して説明する。従来の公開鍵暗号方式におけるスカラー倍同時計算シーケンスと対比するため、図3(a)に従来の公開鍵暗号方式におけるスカラー倍同時計算シーケンス、図3(b)に本発明に従った公開鍵暗号方式におけるスカラー倍同時計算シーケンスを示す。
まず、図3(a)に示す従来の公開鍵暗号方式におけるスカラー倍同時計算シーケンスについて説明する。ステップS301において、スカラー倍同時計算kP+lQの計算要素としてのスカラー量k,l、および、ベースポイントP、公開鍵Qを入力する。
ステップS302において、スカラー倍同時計算kP+lQを、先に説明したアルゴリズム4(Algorithm4)に従って実行する。すなわち、SIMUL1(P,Q,k,l)を実行し、ステップS303において、実行結果として、スカラー倍点の加算結果
B=kP+lQ
を得る。
SIMUL1は、先に説明したアルゴリズム4(Algorithm4)で定義される。このアルゴリズム4は、擬似加算のみでは実行することができず、通常の加算なしでは処理することができなかった。すなわち、前述したように、アルゴリズム4(Algorithm4)におけるstep1は、入力P,QからP+Q,Q−Pを計算するステップであり、ここで現れる(+)は、点PとQの疑似ではない通常の加算であり、前述の[定義1.3]から明らかなように、疑似加算MonADDではこの値を計算することができない。そのため特定の別に用意した加算公式を用いて計算することが必要になる。
次に、図3(b)に示す本発明の公開鍵暗号方式におけるスカラー倍同時計算シーケンスでは、通常の加算処理を用いることなく疑似加算と2倍算のみで計算する。
ステップS403において、V/Fq上の点P,Qのスカラー倍点kP,lQを同時に計算するSIMUL2(P,Q,U,V,k,l)を実行する。このSIMUL2は、疑似加算と2倍算のみでスカラー倍同時計算kP+lQを算出するアルゴリズムである。このアルゴリズム9(Algorithm9)を以下に示す。
Figure 0004904981
上記アルゴリズム9(Algorithm9)に示すSIMUL2は、通常の加算を手順から排除するために、あらかじめPとQの差分点、
U=P+Q,
V=Q−P
を入力として与えるように変更を加えたことが従来の同時計算アルゴリズムSIMUL1との違いである。なお、先に説明した例と同様、差分点の形は、U=P+Q,V=P−Qとしてもよい。
図3(b)に示す本発明の公開鍵暗号方式におけるスカラー倍同時計算シーケンスについて説明する。まず、ステップS401において、スカラー倍同時計算kP+lQの計算要素としてのスカラー量k,l、および、ベースポイントP、公開鍵ペアQ,Rを入力する。
ここで公開鍵Q,Rは、先に説明したアルゴリズム8(Algorithm8)を適用して算出されるQ,Rであり、Pのd倍点Q、及びQとの差分がPとなる点、
R=(d+1)P、または、R=(d−1)P
のQ,Rのペアからなる公開鍵のペアである。
なお、ここでは、まず、
Q=dP
R=(d+1)P
この設定の場合について説明する。
ステップS402では、上記アルゴリズム9(Algorithm9)の実行前の処理として、
U=R、
V=VADD(P,Q,R)
としてU,Vを設定する。
すなわち、
Uを公開鍵ペアQ,Rの一方Rとして設定し、
VをベースポイントPと、公開鍵ペアQ,Rの一方の公開鍵Qの加算値を、Rを適用した擬似加算によって算出する。
擬似加算:V=VADD(P,Q,R)
の入力値P,Q,Rは、
P=P
Q=dP
R=(d+1)P
であり、
R=(d+1)P=dP+P=Q+P
であるので、
V=VADD(P,Q,R)は、
P,Q,R=P+Qを入力として、
出力として、
P−Q,Q−Pを算出する擬似加算となる。
このように、ステップS402では、
U=R、
V=VADD(P,Q,R)
としてU,Vを設定する。
このステップS402の処理は、ステップS403におけるスカラー倍同時計算kP+lQの事前処理であり、スカラー倍同時計算kP+lQを行なうための入力値として適用するU,Vを算出する処理である。
U,Vの算出処理をステップS402において実行した後、ステップS403において、上記アルゴリズム9(Algorithm9)に示すSIMUL2(P,Q,U,V,k,l)を実行する。このSIMUL2では、従来方式で必要だった通常加算が不要になり、スカラー倍同時計算kP+lQを加算を用いずに疑似加算と2倍算のみで計算することができる。何故なら、PとQとの差分点として定義されるP+Q,Q−Pはそれぞれ、
P+Q=R
Q−P=VADD(P,Q,R)
で与えられるためである。
すなわち、
P+Q=R
このRは、公開鍵Rとして既知の値であり、
Q−P=VADD(P,Q,R)
として擬似加算によって算出できるからである。
このように、本発明の鍵設定を行った公開鍵暗号方式においては、例えば、署名検証処理において必要となるスカラー倍点の加算点の算出、すなわち、
kP+lQ
の算出処理を、前述のアルゴリズム9(Algorithm9)の適用により、擬似加算および2倍算のみで行なうことが可能となる。
上記、説明は、公開鍵のペアQ,Rの設定を、
Q=dP
R=(d+1)P
とした設定の場合の説明であったが、公開鍵ペアQ,Rを、
Q=dP,
R=(d−1)P
とした設定の場合においても、PとQの差分点P+Q,Q−Pは、
P+Q=VADD(P,Q,R)
Q−P=R
であることから、上記アルゴリズム9(Algorithm9)と全く同じ手順でスカラー倍同時計算kP+lQを、通常の加算を用いずに疑似加算と2倍算のみで計算することができる。
このように、本発明によれば、Montgomery Ladderタイプのスカラー倍算が実行できる暗号、例えば、Montgomery型楕円曲線暗号やKummer曲面を用いた暗号において、
ベースポイントをP、
公開鍵を
Q=dP、および、
Qとの差分がPとなる点、
R=(d+1)P、または
R=(d−1)P
として、Q,Rを公開鍵として設定することで、
スカラー倍点の加算kP+lQを、アルゴリズム9(Algorithm9)を適用したスカラー倍同時計算が可能となり、通常加算を行なうことなく、疑似加算と2倍算を適用した算出処理として実行することが可能となる。
アルゴリズム9(Algorithm9)に示すスカラー倍同時計算を用いて実行するDSA署名検証処理のアルゴリズムについて説明する。
公開鍵Q,Rのペアを、
Q=dP,
R=(d+1)P
として設定した場合、以下に示すアルゴリズム10(Algorithm10)によってDSA署名検証プロトコルを実行することができる。
Figure 0004904981
上記アルゴリズム10のステップ11に示す
B=SIMUL2(P,Q,U,V,k,l)
が、前述のアルゴリズム9、すなわち、擬似加算と、2倍算により
kP+lQ
の算出を実行するステップである。
その事前処理として、アルゴリズム10のステップ10において、
U=R,
V=VADD(P,Q,R)
これらのU,V算出処理利が実行される。このステップ10で算出するU,Vは、ステップ11における、
B=SIMUL2(P,Q,U,V,k,l)
の入力値、すなわち、前述のアルゴリズム9において、楕円曲線上の点P,Qのスカラー倍点の加算
kP+lQ
のスカラー倍同時計算処理のための入力として適用される。この入力を設定して、前述のアルゴリズム9を適用したスカラー倍同時計算を実行することで、擬似加算および2倍算を適用してkP+lQを算出することが可能となる。
なお、公開鍵Q,Rのペアが、
Q=dP,
R=(d−1)P
の場合には、上記アルゴリズム10(Algorithm10)のステップ10を、
10: U=VADD(P,Q,R),V=R
と変更する。
この変更により、次のステップ11において前述のアルゴリズム9を適用したスカラー倍同時計算を擬似加算および2倍算を適用した処理として実行することが可能となる。
Montgomery型楕円曲線暗号の場合、先に説明したアルゴリズム3(Algorithm3)に示されたECDSA署名検証の代わりに上記のアルゴリズム10を実行することで、前述したMonADDとは異なる加法公式が不要になる。すなわち、先に、[(1.3)スカラー倍点の加算kP+lQにおける問題点]の項目において説明したMonADDとは異なる加法公式は不要になる。この加法公式は、先に説明したように、「Peter L. Montgomery.Speeding the Pollard and elliptic curve methods of factorizations.In Mathematics of Computation,Vol 48,Number 177,pp.243−264.American Mathematical Society,January 1987.」に記載されている。
このように本発明に従った公開鍵暗号方式において生成した公開鍵を適用した署名検証処理では、MonADDと異なる特別の加法公式を用意する必要がなくなり、Montgomery型楕円曲線の点P,Qのスカラー倍加算点
kP+lQ
を擬似加算と2倍算を適用して算出することが可能となり、ECDSA署名検証プロトコルの実装コストを削減することができる。
また、Kummer曲面を用いた暗号の場合、先に、[(1.3)スカラー倍点の加算kP+lQにおける問題点]の項目において説明したように、アルゴリズム3(Algorithm3)に示されたECDSA署名検証をKummer曲面に拡張しようとした場合、通常の加算が定義できなかったため、ECDSA署名検証の実現ができないか、あるいは非常に大きな計算コストがかかることになる。しかし、上述の本発明に従った公開鍵を適用した署名検証アルゴリズムであるアルゴリズム10は、ECDSA署名検証をKummer曲面に拡張したDSA署名検証プロトコルとして利用することが可能であり、Kummer曲面の点P,Qのスカラー倍加算点
kP+lQ
を擬似加算と2倍算を適用して算出することが可能となり、DSA署名検証プロトコルの実装コストを削減することができる。
[3.情報処理装置構成例]
次に、上述の実施例で述べた一連の処理を実行する情報処理装置の構成例について説明する。上述の実施例で述べた一連の処理は、ハードウェア、ソフトウェアの組み合わせにより行うことができる。即ち、汎用のコンピュータや、マイクロコンピュータにプログラムを実行させることにより行う構成とすることが可能である。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、例えば汎用のコンピュータや1チップのマイクロコンピュータ等にインストールされる。図4は、上述した一連の処理を実行するプログラムがインストールされる情報処理装置の一実施の形態の構成例を示している。
図4に示す情報処理装置の構成例は1つの例であり、システムは、ここに示すべての機能を必ずしも備えることが要求されるものではない。図4に示すCPU(Central processing Unit)101は、各種アプリケーションプログラムや、OS(Operating System)を実行するプロセッサである。ROM(Read-Only-Memory)102は、CPU101が実行するプログラム、あるいは演算パラメータとしての固定データを格納する。RAM(Random Access Memory)103は、CPU101の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用される。
HDD104はハードディスクの制御を実行し、ハードディスクに対する各種データ、プログラムの格納処理および読み出し処理を実行する。暗号演算処理手段105は、例えば公開鍵暗号システムにおける鍵の生成や、署名検証処理など、上述した実施例において説明した処理を実行する。
暗号演算処理手段105は、例えば、前述の実施例で説明したように、有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fqとした場合、
秘密鍵dを、d∈Z、
公開鍵を、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rを生成する処理を実行する。
例えば、Montgomery型楕円曲線を適用するシステムである場合は、暗号演算処理手段105は、有限体Fq上定義されるMontgomery型楕円曲線E/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈E/Fqとして、上述した秘密鍵d、公開鍵ペアQ,Rを生成する。
また、Kummer曲面を適用するシステムである場合は、有限体Fq上定義されるKummer曲面K/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈K/Fqとして、上述した秘密鍵d、公開鍵ペアQ,Rを生成する。
さらに、暗号演算処理手段105は、例えば、前述の実施例において説明したアルゴリズム9,アルゴリズム10などを適用して、公開鍵暗号システムにおいて規定される署名検証処理に伴う演算を実行する。具体的には、有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fq、秘密鍵dを、d∈Z、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rが規定された公開鍵暗号方式において、ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理、すなわち、
kP+lQ
上記演算を、入力として、P,Q,k,lの他、P,Qの差分値を入力とした演算を実行して擬似加算および2倍算の計算のみによって算出する。
なお、暗号演算処理手段105は、Montgomery型楕円曲線E/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式においては、ベースポイントPを、P∈E/Fqとし、Kummer曲面K/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式においては、ベースポイントPを、P∈K/Fqとして、演算処理を実行して、kP+lQを擬似加算および2倍算の計算のみによって算出する。
なお、暗号演算処理手段105は、前述したように、アルゴリズム9、すなわち、kP+lQの演算アルゴリズムにおける入力値として適用するP,Qの差分値の算出処理として、
U=R、および擬似加算:V=VADD(P,Q,R)を実行する。
なお、ここでは、暗号演算処理手段を個別モジュールとした例を示したが、このような独立した暗号処理モジュールを設けず、例えば暗号処理プログラムをROM102に格納し、CPU101がROM格納プログラムを読み出して実行するように構成してもよい。メモリ(セキュアモジュール)106は例えば耐タンパ構造を持つメモリとして構成され、暗号処理に必要な鍵データなどの格納領域として使用可能である。なお、これらのデータは、他のメモリ領域、記憶媒体に格納することも可能である。
バス121はPCI(Peripheral Component Internet/Interface)バス等により構成され、各モジュール、入出力インタフェース122を介した外部装置とのデータ転送を可能にしている。
入力部111は、例えばキーボード、ポインティングデバイス等によって構成され、CPU101に各種のコマンド、データを入力するためにユーザにより操作される。出力部112は、例えばCRT、液晶ディスプレイ等であり、各種情報をテキストまたはイメージ等により表示する。
通信部113はシステムの接続したエンティテイ、例えば暗号データの通信エンティテイとの通信処理を実行し、CPU101の制御の下に、各記憶部から供給されたデータ、あるいはCPU101によって処理されたデータ、暗号化されたデータ等を送信したり、他エンティテイからのデータを受信する処理を実行する。
ドライブ114は、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体115の記録再生を実行するドライブであり、各リムーバブル記録媒体115からのプログラムまたはデータ再生、リムーバブル記録媒体115に対するプログラムまたはデータ格納を実行する。
各記憶媒体に記録されたプログラムまたはデータを読み出してCPU101において実行または処理を行なう場合は、読み出したプログラム、データはインタフェース122、バス121を介して例えば接続されているRAM103に供給される。
上述の実施例において説明したフロー図やアルゴリズムに従った処理、例えば、鍵生成処理や、スカラー倍点の加算処理kP+lQ、署名検証処理などを実行するためのプログラムは例えばROM102に格納されてCPU101によって処理されるか、あるいはハードディスクに格納されHDD104を介してCPU101に供給されて実行される。
図4に示す暗号演算処理手段105について、機能別に詳細な処理ブロックとして示した図が図5である。図5に示すように、暗号演算処理手段105は、データの暗号化処理、復号処理、署名生成、検証等、各種暗号処理に伴う演算を実行する暗号処理演算部201、楕円曲線やKummer曲面などの暗号処理において適用する曲線や曲面などの暗号の定義生成処理を実行する楕円曲線生成部202、公開鍵暗号方式に適用する公開鍵、秘密鍵の生成処理を実行する公開鍵秘密鍵生成部203、鍵の生成、その他各種演算に用いる乱数を発生する乱数発生部204、暗号処理演算に適用する各種パラメータ等を記憶する記憶部205を有する。
例えば、公開鍵暗号方式に適用する公開鍵、秘密鍵の生成処理を実行する公開鍵秘密鍵生成部203では、前述したように、先に、図1を参照して説明したMontgomery Ladderタイプの加法鎖(addition chain)を持つスカラー倍算が構成可能な有限体Fq上定義される多様体V/Fqおいて、
ベースポイントをP∈V/Fqとし、
秘密鍵を、d∈Z、
公開鍵を、
Q=dPとする。
R=(d+1)P、または、R=(d−1)P
として、Q,Rの公開鍵のペアを生成する。
外部から入力された平文の暗号化、暗号文の復号、または署名の生成、署名の検証処理等を実行する場合は、楕円曲線生成部202でまずMontgomery曲線やKummer曲面を生成し、公開鍵秘密鍵生成部203において生成した鍵を用いて、暗号処理演算部201において各種暗号処理を実行する。
例えば、暗号処理演算部201は、楕円曲線生成部203において定義されたMontgomery曲線やKummer曲面に基づいて、署名生成検証など、前述のスカラー倍点の加算処理kP+lQを伴う署名検証処理など、様々な暗号処理演算を実行する。スカラー倍点の加算処理kP+lQは、上述した実施例に従った処理として実行され、擬似加算および2倍算を適用した演算として実行され署名検証を効率的に行なうことが可能となる。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
上述した本発明の一実施例の構成によれば、有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fqとした場合、
秘密鍵dを、d∈Z、
公開鍵を、2つの公開鍵ペアQ,Rとして、
Q=dP、
R=(d+1)P、または、R=(d−1)P
上記いずれかのRからなる公開鍵ペアQ,Rを生成し、公開鍵暗号システムにおいて規定される署名検証において、上記の公開鍵を適用した演算処理によって効率的な演算が可能となる。具体的には、署名検証アルゴリズムにおけるスカラー倍点の加算[kP+lQ]の算出を、専用の計算アルゴリズムや、加算手法を適用することなしに、擬似加算と2倍算のみで、実行可能として効率的な演算を実現する。
Montgomery型楕円曲線における加法鎖(addition chain)を示す図である。 本発明の一実施例に従った公開鍵暗号構成方法、すなわち鍵生成シーケンスについて、従来の鍵生成シーケンスと比較して説明する図である。 本発明の一実施例に従った公開鍵暗号方式におけるスカラー倍同時計算のシーケンスについて、従来の公開鍵暗号方式におけるスカラー倍同時計算シーケンスと比較して説明する図である。 暗号処理を実行する暗号処理装置構成例を示す図である。 暗号演算処理手段の構成例を示す図である。
符号の説明
101 CPU
102 ROM
103 RAM
104 HDD
105 暗号演算処理手段
106 メモリ
111 入力部
112 出力部
113 通信部
114 リムーバブル記憶媒体
121 バス
122 入出力インタフェース
201 暗号処理演算部
202 楕円曲線生成部
203 公開鍵秘密鍵生成部
204 乱数発生部
205 記憶部

Claims (18)

  1. 情報処理装置において、公開鍵暗号方式において適用する鍵の生成を行う公開鍵暗号システム構築方法であり、
    演算処理部において実行する鍵生成ステップとして、
    有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fqとした場合、
    秘密鍵dを、d∈Z、
    公開鍵を、2つの公開鍵ペアQ,Rとして、
    Q=dP、
    R=(d+1)P、または、R=(d−1)P
    上記いずれかのRからなる公開鍵ペアQ,Rを生成する鍵生成ステップを実行することを特徴とする公開鍵暗号システム構築方法。
  2. 前記鍵生成ステップは、
    有限体Fq上定義されるMontgomery型楕円曲線E/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈E/Fqとした場合、
    秘密鍵dを、d∈Z、
    公開鍵を、2つの公開鍵ペアQ,Rとして、
    Q=dP、
    R=(d+1)P、または、R=(d−1)P
    上記いずれかのRからなる公開鍵ペアQ,Rを生成するステップであることを特徴とする請求項1に記載の公開鍵暗号システム構築方法。
  3. 前記鍵生成ステップは、
    有限体Fq上定義されるKummer曲面K/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈K/Fqとした場合、
    秘密鍵dを、d∈Z、
    公開鍵を、2つの公開鍵ペアQ,Rとして、
    Q=dP、
    R=(d+1)P、または、R=(d−1)P
    上記いずれかのRからなる公開鍵ペアQ,Rを生成するステップであることを特徴とする請求項1に記載の公開鍵暗号システム構築方法。
  4. 情報処理装置において、公開鍵暗号方式において規定される公開鍵を適用した演算を実行する暗号演算方法であり、
    演算処理部において実行する演算ステップであり、
    有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fq、秘密鍵dを、d∈Z、2つの公開鍵ペアQ,Rとして、
    Q=dP、
    R=(d+1)P、または、R=(d−1)P
    上記いずれかのRからなる公開鍵ペアQ,Rが規定された公開鍵暗号方式において、
    前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理、すなわち、
    kP+lQ
    上記演算を、入力として、P,Q,k,lの他、P,Qの差分値を入力とした演算を実行して擬似加算および2倍算の計算のみによって算出する演算ステップを有することを特徴とする暗号演算方法。
  5. 前記演算ステップは、
    有限体Fq上定義されるMontgomery型楕円曲線E/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈E/Fq、秘密鍵dを、d∈Z、2つの公開鍵ペアQ,Rとして、
    Q=dP、
    R=(d+1)P、または、R=(d−1)P
    上記いずれかのRからなる公開鍵ペアQ,Rが規定された公開鍵暗号方式において、
    前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理、すなわち、
    kP+lQ
    上記演算を、入力として、P,Q,k,lの他、P,Qの差分値を入力とした演算を実行して擬似加算および2倍算の計算のみによって算出するステップであることを特徴とする請求項4に記載の暗号演算方法。
  6. 前記演算ステップは、
    有限体Fq上定義されるKummer曲面K/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈K/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈K/Fq、秘密鍵dを、d∈Z、2つの公開鍵ペアQ,Rとして、
    Q=dP、
    R=(d+1)P、または、R=(d−1)P
    上記いずれかのRからなる公開鍵ペアQ,Rが規定された公開鍵暗号方式において、
    前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理、すなわち、
    kP+lQ
    上記演算を、入力として、P,Q,k,lの他、P,Qの差分値を入力とした演算を実行して擬似加算および2倍算の計算のみによって算出するステップであることを特徴とする請求項4に記載の暗号演算方法。
  7. 前記演算ステップは、
    公開鍵暗号方式において規定される署名検証処理として実行する演算であり、署名検証処理アルゴリズムで必要となる前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理kP+lQを実行するステップであることを特徴とする請求項4に記載の暗号演算方法。
  8. 前記暗号演算方法は、さらに、
    前記演算処理部において、前記演算ステップの入力値として適用する前記P,Qの差分値の算出処理を実行する入力値算出ステップを実行し、
    前記入力値算出ステップは、
    入力としてP,Q、およびPとQの差分値Rを入力とした擬似加算VADD(P,Q,R)を実行するステップであることを特徴とする請求項4に記載の暗号演算方法。
  9. 公開鍵暗号方式において適用する鍵の生成を行う情報処理装置であり、
    有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fqとした場合、
    秘密鍵dを、d∈Z、
    公開鍵を、2つの公開鍵ペアQ,Rとして、
    Q=dP、
    R=(d+1)P、または、R=(d−1)P
    上記いずれかのRからなる公開鍵ペアQ,Rを生成する演算処理部、
    を有することを特徴とする情報処理装置。
  10. 前記演算処理部は、
    有限体Fq上定義されるMontgomery型楕円曲線E/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈E/Fqとした場合、
    秘密鍵dを、d∈Z、
    公開鍵を、2つの公開鍵ペアQ,Rとして、
    Q=dP、
    R=(d+1)P、または、R=(d−1)P
    上記いずれかのRからなる公開鍵ペアQ,Rを生成する処理を実行する構成であることを特徴とする請求項9に記載の情報処理装置。
  11. 前記演算処理部は、
    有限体Fq上定義されるKummer曲面K/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈K/Fqとした場合、
    秘密鍵dを、d∈Z、
    公開鍵を、2つの公開鍵ペアQ,Rとして、
    Q=dP、
    R=(d+1)P、または、R=(d−1)P
    上記いずれかのRからなる公開鍵ペアQ,Rを生成する処理を実行する構成であることを特徴とする請求項9に記載の情報処理装置。
  12. 公開鍵暗号方式において規定される公開鍵を適用した演算を実行する情報処理装置であり、
    有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fq、秘密鍵dを、d∈Z、2つの公開鍵ペアQ,Rとして、
    Q=dP、
    R=(d+1)P、または、R=(d−1)P
    上記いずれかのRからなる公開鍵ペアQ,Rが規定された公開鍵暗号方式において、
    前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理、すなわち、
    kP+lQ
    上記演算を、入力として、P,Q,k,lの他、P,Qの差分値を入力とした演算を実行して擬似加算および2倍算の計算のみによって算出する演算処理部、
    を有することを特徴とする情報処理装置。
  13. 前記演算処理部は、
    有限体Fq上定義されるMontgomery型楕円曲線E/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈E/Fq、秘密鍵dを、d∈Z、2つの公開鍵ペアQ,Rとして、
    Q=dP、
    R=(d+1)P、または、R=(d−1)P
    上記いずれかのRからなる公開鍵ペアQ,Rが規定された公開鍵暗号方式において、
    前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理、すなわち、
    kP+lQ
    上記演算を、入力として、P,Q,k,lの他、P,Qの差分値を入力とした演算を実行して擬似加算および2倍算の計算のみによって算出する処理を実行する構成であることを特徴とする請求項12に記載の情報処理装置。
  14. 前記演算処理部は、
    有限体Fq上定義されるKummer曲面K/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈K/Fq上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントPを、P∈K/Fq、秘密鍵dを、d∈Z、2つの公開鍵ペアQ,Rとして、
    Q=dP、
    R=(d+1)P、または、R=(d−1)P
    上記いずれかのRからなる公開鍵ペアQ,Rが規定された公開鍵暗号方式において、
    前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理、すなわち、
    kP+lQ
    上記演算を、入力として、P,Q,k,lの他、P,Qの差分値を入力とした演算を実行して擬似加算および2倍算の計算のみによって算出する処理を実行する構成であることを特徴とする請求項12に記載の情報処理装置。
  15. 前記演算処理部は、
    公開鍵暗号方式において規定される署名検証処理に含まれる演算として、署名検証処理アルゴリズムで必要となる前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理kP+lQを実行する構成であることを特徴とする請求項12に記載の情報処理装置。
  16. 前記演算処理部は、前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理kP+lQの演算アルゴリズムにおける入力値として適用するP,Qの差分値の算出処理としての入力値算出処理を実行する構成であり、
    前記入力値算出処理を、
    入力としてP,Q、およびPとQの差分値Rを入力とした擬似加算VADD(P,Q,R)により実行する構成であることを特徴とする請求項12に記載の情報処理装置。
  17. 情報処理装置において、公開鍵暗号方式において適用する鍵の生成を行わせるコンピュータ・プログラムであり、
    演算処理部において実行させる鍵生成ステップであり、
    有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fqとした場合、
    秘密鍵dを、d∈Z、
    公開鍵を、2つの公開鍵ペアQ,Rとして、
    Q=dP、
    R=(d+1)P、または、R=(d−1)P
    上記いずれかのRからなる公開鍵ペアQ,Rを生成させる鍵生成ステップを実行させることを特徴とするコンピュータ・プログラム。
  18. 情報処理装置において、公開鍵暗号方式において規定される公開鍵を適用した演算を実行させるコンピュータ・プログラムであり、
    演算処理部において実行させる演算ステップであり、
    有限体Fq上定義される多様体V/Fq上においてベースポイントPを、P∈V/Fq、秘密鍵dを、d∈Z、2つの公開鍵ペアQ,Rとして、
    Q=dP、
    R=(d+1)P、または、R=(d−1)P
    上記いずれかのRからなる公開鍵ペアQ,Rが規定された公開鍵暗号方式において、
    前記ベースポイントPと公開鍵Qとのスカラー倍点kP,lQの加算処理、すなわち、
    kP+lQ
    上記演算を、入力として、P,Q,k,lの他、P,Qの差分値を入力とした演算を実行して擬似加算および2倍算の計算のみによって算出させる演算ステップを実行させることを特徴とするコンピュータ・プログラム。
JP2006220987A 2006-08-14 2006-08-14 公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラム Expired - Fee Related JP4904981B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006220987A JP4904981B2 (ja) 2006-08-14 2006-08-14 公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006220987A JP4904981B2 (ja) 2006-08-14 2006-08-14 公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2008046295A JP2008046295A (ja) 2008-02-28
JP4904981B2 true JP4904981B2 (ja) 2012-03-28

Family

ID=39180108

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006220987A Expired - Fee Related JP4904981B2 (ja) 2006-08-14 2006-08-14 公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP4904981B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4282546B2 (ja) * 2004-05-19 2009-06-24 株式会社東芝 暗号装置、復号装置、鍵生成装置、プログラム及び方法

Also Published As

Publication number Publication date
JP2008046295A (ja) 2008-02-28

Similar Documents

Publication Publication Date Title
US8111826B2 (en) Apparatus for generating elliptic curve cryptographic parameter, apparatus for processing elliptic curve cryptograph, program for generating elliptic curve cryptographic parameter, and program for processing elliptic cyptograph
Knezevic et al. Faster interleaved modular multiplication based on Barrett and Montgomery reduction methods
US6876745B1 (en) Method and apparatus for elliptic curve cryptography and recording medium therefore
Khalique et al. Implementation of elliptic curve digital signature algorithm
Robshaw et al. Elliptic curve cryptosystems
EP0952697B1 (en) Elliptic curve encryption method and system
JP2001526416A (ja) 楕円曲線暗号化演算の最適化用変換方法
US8014520B2 (en) Exponentiation ladder for cryptography
JP3820909B2 (ja) 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム
US6609141B1 (en) Method of performing modular inversion
JP2007041461A (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
Shankar et al. Cryptography with elliptic curves
US20240223368A1 (en) A system and a method for performing operations
Stogbauer Efficient Algorithms for pairing-based cryptosystems
JP2003216026A (ja) 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにコンピュータ・プログラム
JP4904981B2 (ja) 公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラム
Sarma et al. Public key cryptosystem based on Pell's equation using the Gnu Mp library
Frey et al. Mathematical background of public key cryptography
CN111614465A (zh) 基于超奇异同源秘钥封装协议的公钥生成方法和装置
US8520841B2 (en) Algorithms for generating parameters for genus 2 hyperelliptic curve cryptography
RU2541938C1 (ru) Способ шифрования с защитой от квантовых атак на основе циклов функций вебера
KR20090090881A (ko) 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체
Banoth et al. Mathematical Foundation for Classical and Modern Cryptography
WO2004070681A2 (ja) 楕円曲線スカラー倍計算方法および装置
Deligiannidis Implementing elliptic curve cryptography

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090724

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: 20111213

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: 20111226

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

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees