JPWO2006030496A1 - 楕円曲線暗号演算装置、楕円曲線を用いた演算装置の演算方法および楕円曲線上の点のスカラー倍演算をコンピュータに実行させるプログラム - Google Patents
楕円曲線暗号演算装置、楕円曲線を用いた演算装置の演算方法および楕円曲線上の点のスカラー倍演算をコンピュータに実行させるプログラム Download PDFInfo
- Publication number
- JPWO2006030496A1 JPWO2006030496A1 JP2006534980A JP2006534980A JPWO2006030496A1 JP WO2006030496 A1 JPWO2006030496 A1 JP WO2006030496A1 JP 2006534980 A JP2006534980 A JP 2006534980A JP 2006534980 A JP2006534980 A JP 2006534980A JP WO2006030496 A1 JPWO2006030496 A1 JP WO2006030496A1
- Authority
- JP
- Japan
- Prior art keywords
- curve
- point
- elliptic curve
- mapping
- algebraic
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
- H04L9/3073—Public 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 involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
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)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
より広い範囲の楕円曲線に、従来技術であるGLV型スカラー倍演算を適用することを可能にすることを目的とする。楕円曲線暗号演算装置は、楕円曲線Eを示す情報と楕円曲線E上の点Pと演算値Kとを入力する入力部2と、楕円曲線E上の点Pを、その楕円曲線Eに対応する代数曲線のヤコビ多様体へ写像して楕円曲線E上の点Pに対応する代数曲線のヤコビ多様体上の点を埋め込み点Dとして求める埋め込み演算部3と、代数曲線のヤコビ多様体の準同型写像による写像をして写像点εDを求める準同型写像演算部4と、楕円曲線Eへ写像して楕円曲線の射影点P’を求める射影演算部5と、演算値Kと射影点P’とを用いて計算を行う計算処理部6とを備えることとした。
Description
この発明は、楕円曲線暗号のスカラー倍演算を行う楕円曲線暗号演算装置と、楕円曲線暗号演算装置での楕円曲線暗号のスカラー倍の演算方法と、楕円曲線暗号のスカラー倍演算をコンピュータに実行させるプログラムとに関する。
楕円曲線暗号の演算を高速に行うためには、その中で頻繁に実行されるスカラー倍演算を高速化することが必須となる。これまでに、様々なスカラー倍演算の高速化手法が提案されてきた。近年の研究によって、効率的に計算可能な自己準同型写像である特殊準同型写像φを用いて、スカラー倍数KをK=k1+k2φ(又はk1+k2λ、λは点群上でφが与えるスカラー倍数)と表現し、スカラー倍数Kによるスカラー倍演算を、k1とk2とのスカラー倍演算に分割することで演算速度を高速化する方法が開発されている(非特許文献1を参照)。このように特殊準同型写像を用いて高速化したスカラー倍演算を提案者の頭文字をとって、GLV型スカラー倍演算と呼ぶ。
また、非特許文献2には超楕円曲線に上記の方法を拡張した場合の結果が示されている(非特許文献2を参照)。
また、非特許文献4には楕円曲線Eの積E×Eと種数2超楕円曲線Cのヤコビ多様体との間の準同型写像が記述されている(非特許文献4を参照)。
R.P.Gallant,J.L.Lambert and S.A.Vanstone,"Faster point multiplication on elliptic curves with efficient endomorphisms",Crypto 2001, Springer Verlag,(2001),190−200. F.Sica,M.Ciet,J.−J.Quisquater,"Analysis of the Gallant−Lambert−Vanstone method based on efficient endomorphisms :elliptic and hyperelliptic curves",SAC 2002,Springer Verlag,(2002),21−36. M.Ciet,T.Lange,F.Sica,J.−J.Quisquater,"Improved Algorithms for Efficient Arithmetic on Elliptic Curves using Fast Endomorphisms",EUROCRYPT 2003,Springer Verlag,(2003),388−400. P.R.Bending,"Curves of genus 2 with √2 Multiplication",http://www.math.uiuc.edu/Algebraic−Number−Theory/
R.P.Gallant,J.L.Lambert and S.A.Vanstone,"Faster point multiplication on elliptic curves with efficient endomorphisms",Crypto 2001, Springer Verlag,(2001),190−200. F.Sica,M.Ciet,J.−J.Quisquater,"Analysis of the Gallant−Lambert−Vanstone method based on efficient endomorphisms :elliptic and hyperelliptic curves",SAC 2002,Springer Verlag,(2002),21−36. M.Ciet,T.Lange,F.Sica,J.−J.Quisquater,"Improved Algorithms for Efficient Arithmetic on Elliptic Curves using Fast Endomorphisms",EUROCRYPT 2003,Springer Verlag,(2003),388−400. P.R.Bending,"Curves of genus 2 with √2 Multiplication",http://www.math.uiuc.edu/Algebraic−Number−Theory/
近年の高度情報通信技術の実用化に伴い、楕円曲線暗号を含む公開鍵暗号も既に実用化段階に入っている。そのため、クロック周波数の低いCPU(Central Processing Unit)しか搭載していない、あるいはCPUを搭載することができないICカード上での暗号演算の実行や、ユビキタス環境での情報セキュリティを確保するために、計算リソースが制限された環境での楕円曲線暗号の使用も必要なものとなってきている。その結果、楕円曲線暗号の演算速度の向上が切に望まれている。
しかしながら、上記した従来技術であるGLV型スカラー倍演算が適用できる楕円曲線は特殊なものに限られていた。現在、楕円曲線暗号に用いる楕円曲線はランダムに選択するのが一般的であり、それにより、楕円曲線暗号の安全性が保証されている。そのため、上記したGLV型スカラー倍演算を用いて楕円曲線暗号の演算速度を高速化できても、楕円曲線をランダムに選択することができないため、上記ICカード上での暗号演算実行や、ユビキタス環境において使用するには安全性が問題とされてきた。
そこで、より広い範囲の楕円曲線に、上記した従来技術であるGLV型スカラー倍演算を適用することを可能にすることを目的とする。
楕円曲線暗号演算装置は、楕円曲線Eを示す情報と楕円曲線E上の点Pと演算値Kとを入力して記憶部に記憶する入力部と、記憶部に記憶された楕円曲線E上の点Pを読み込んで、楕円曲線E上の点Pを、その楕円曲線Eに対応する代数曲線のヤコビ多様体へ写像して楕円曲線E上の点Pに対応する代数曲線のヤコビ多様体上の点を埋め込み点Dとして求め、埋め込み点Dを記憶部に記憶する埋め込み演算部と、記憶部に記憶された埋め込み点Dを読み込んで、代数曲線のヤコビ多様体の準同型写像による写像をして写像点εDを求め、写像点εDを記憶部に記憶する準同型写像演算部と、記憶部に記憶された写像点εDを読み込んで、楕円曲線Eへ写像して楕円曲線の射影点P’を求め、射影点P’を記憶部に記憶する射影演算部と、記憶部に記憶された演算値Kと射影点P’とを読み込んで、演算値Kと射影点P’とを用いて計算を行い、計算結果を記憶部に記憶する計算処理部とを備えることとした。
楕円曲線暗号演算装置は、楕円曲線Eを示す情報と楕円曲線E上の点Pと演算値Kとを入力して記憶部に記憶する入力部と、記憶部に記憶された楕円曲線E上の点Pを読み込んで、楕円曲線E上の点Pを、その楕円曲線Eに対応する代数曲線のヤコビ多様体へ写像して楕円曲線E上の点Pに対応する代数曲線のヤコビ多様体上の点を埋め込み点Dとして求め、埋め込み点Dを記憶部に記憶する埋め込み演算部と、記憶部に記憶された埋め込み点Dを読み込んで、代数曲線のヤコビ多様体の準同型写像による写像をして写像点εDを求め、写像点εDを記憶部に記憶する準同型写像演算部と、記憶部に記憶された写像点εDを読み込んで、楕円曲線Eへ写像して楕円曲線の射影点P’を求め、射影点P’を記憶部に記憶する射影演算部と、記憶部に記憶された演算値Kと射影点P’とを読み込んで、演算値Kと射影点P’とを用いて計算を行い、計算結果を記憶部に記憶する計算処理部とを備えることができる。
ここでは、楕円曲線暗号演算装置においてスカラー倍演算の高速化を実現する実施の形態について説明する。なお、この実施の形態では、代数曲線として種数2超楕円曲線Cを用い、準同型写像として効率的に演算可能な準同型写像である√2倍演算を用いた場合について説明する。
まず、公開鍵暗号、離散対数問題、楕円曲線暗号および超楕円曲線暗号について簡単に説明する。
公開鍵暗号を用いた通信においては、利用者ごとに秘密鍵xと公開鍵yの組が用意され、秘密鍵xは、各利用者が秘密に保持しておく。公開鍵yは利用者自身以外の一般に公開する。利用者Bが利用者Aに秘密にデータを送りたい時は、利用者Bは利用者Aの公開鍵yを用いてデータを暗号化する。利用者Aは、自分だけしか知らない秘密鍵xを用いて暗号化したデータを復号する。この暗号文は、秘密鍵xを知る利用者Aにしか復号できない。
公開鍵暗号を用いた通信においては、利用者ごとに秘密鍵xと公開鍵yの組が用意され、秘密鍵xは、各利用者が秘密に保持しておく。公開鍵yは利用者自身以外の一般に公開する。利用者Bが利用者Aに秘密にデータを送りたい時は、利用者Bは利用者Aの公開鍵yを用いてデータを暗号化する。利用者Aは、自分だけしか知らない秘密鍵xを用いて暗号化したデータを復号する。この暗号文は、秘密鍵xを知る利用者Aにしか復号できない。
離散対数問題とは代数群G(加法が定義されているものとする)の2つの要素g1,g2に対して、g1=mg2を満たすようなmを求める問題である。代数群Gの要素の数が大きい場合、多くの離散対数問題を解くことは、計算量的に非常に困難になることが知られている。この事実を利用して公開鍵暗号を設計することができる。
離散対数型公開鍵暗号は多く、代数群Gを定める式とg2を公開鍵暗号パラメータとし、g1をその公開鍵、mをその秘密鍵とする。
有限体GF(qn)(qは素数pのべき乗)上の種数g超楕円曲線Cとは、y2+h(x)y=f(x)(h(x),f(x)はそれぞれGF(qn)係数の高々g次および、2g+1次多項式、かつ、f(x)は最高次の係数が1)と表される方程式である。また、超楕円曲線Cのヤコビ多様体(ヤコビアン)の有理点集合には加法が定義され、群となる。特に、種数gが1の時の超楕円曲線を楕円曲線といい、その場合は、楕円曲線自体に加法が定義されている。これらの群を利用した公開鍵暗号を超楕円曲線暗号(g=1の時は、楕円曲線暗号)という。
つまり、楕円曲線暗号の場合には、方程式y2+h(x)y=f(x)の係数とその上の点(x0,y0)が楕円曲線暗号パラメータとなり、楕円曲線上の加算に従って計算される(x1,y1)((x1,y1)は、(x1,y1)=m・(x0,y0)を満たす)がその公開鍵、mがその秘密鍵となる。
また、種数gの超楕円曲線暗号の場合は、方程式y2+h(x)y=f(x)の係数がその暗号パラメータの一部であることは同様であるが、その他に、暗号パラメータとして、その曲線のヤコビアン上の点(その曲線上の因子類)D1が必要であり、ヤコビアン上の加算に従って計算されるD2(D2は、D2=m・D1を満たす)がその公開鍵、mがその秘密鍵となる。
楕円曲線上の点(x0,y0)のスカラー倍数Kでのスカラー倍演算K・(x0,y0)を計算する時に、スカラー倍数Kの値が大きいと、計算に時間がかかってしまう。例えば、楕円曲線暗号の場合、スカラー倍数Kに2進数で160ビットの値を用いる。ここで、160ビットの各位のビット値を順に楕円曲線暗号パラメータに加算していった場合に、相当な時間を要することになる。
GLV型スカラー倍演算では、スカラー倍数KをK=k1+k2φ(又はk1+k2λ、λは点群上でφが与えるスカラー倍数)と表現し、スカラー倍数Kによるスカラー倍演算を、k1とk2とのスカラー倍演算に分割することで、k1あるいはk2のビット数の計算量で済むことになる。
例えば、楕円曲線暗号パラメータである楕円曲線上の点をPとすれば、スカラー倍演算は、KP=k1・P+k2・λPとなる。予め、P+λP=Sとすると、所定の位のビット値がk1=1、k2=0であれば、Pを用いた計算となり、k1=0、k2=1であれば、λPを用いた計算となり、k1=1、k2=1であれば、Sを用いた計算となり、k1=0、k2=0であれば、計算が不要となる。したがって、各位について、Pまたは、λPまたは、Sを用いた計算となり、しかも、k1あるいはk2のビット数の計算量で済むことになる。例えば、スカラーKが楕円曲線有理点群の位数nと同等なビット数を有するとした場合、k1とk2とのビット数が概ね√n近くに小さくなる。すなわち、それだけ、演算回数が減り、演算速度を高速化させることができる。
以上を踏まえた上で、この実施の形態における楕円曲線暗号演算装置の構成を図1を用いて説明する。
楕円曲線暗号演算装置は、楕円曲線Eを示す情報と楕円曲線E上の点Pと演算値Kとを入力して記憶部1に記憶する入力部2と、記憶部1に記憶された楕円曲線E上の点Pを読み込んで、楕円曲線E上の点Pを、その楕円曲線Eに対応する代数曲線のヤコビ多様体へ写像して楕円曲線E上の点Pに対応する代数曲線のヤコビ多様体上の点を埋め込み点Dとして求め、埋め込み点Dを記憶部1に記憶する埋め込み演算部3と、記憶部1に記憶された埋め込み点Dを読み込んで、代数曲線のヤコビ多様体の準同型写像による写像をして写像点εDを求め、写像点εDを記憶部1に記憶する準同型写像演算部4と、記憶部1に記憶された写像点εDを読み込んで、楕円曲線Eへ写像して楕円曲線の射影点P’を求め、射影点P’を記憶部1に記憶する射影演算部5と、記憶部1に記憶された演算値Kと射影点P’とを読み込んで、演算値Kと射影点P’とを用いて計算を行い、計算結果を記憶部1に記憶する計算処理部6とを備える。
楕円曲線暗号演算装置は、楕円曲線Eを示す情報と楕円曲線E上の点Pと演算値Kとを入力して記憶部1に記憶する入力部2と、記憶部1に記憶された楕円曲線E上の点Pを読み込んで、楕円曲線E上の点Pを、その楕円曲線Eに対応する代数曲線のヤコビ多様体へ写像して楕円曲線E上の点Pに対応する代数曲線のヤコビ多様体上の点を埋め込み点Dとして求め、埋め込み点Dを記憶部1に記憶する埋め込み演算部3と、記憶部1に記憶された埋め込み点Dを読み込んで、代数曲線のヤコビ多様体の準同型写像による写像をして写像点εDを求め、写像点εDを記憶部1に記憶する準同型写像演算部4と、記憶部1に記憶された写像点εDを読み込んで、楕円曲線Eへ写像して楕円曲線の射影点P’を求め、射影点P’を記憶部1に記憶する射影演算部5と、記憶部1に記憶された演算値Kと射影点P’とを読み込んで、演算値Kと射影点P’とを用いて計算を行い、計算結果を記憶部1に記憶する計算処理部6とを備える。
また、楕円曲線暗号演算装置は、さらに、代数曲線を選択して記憶部1に設定するとともに、楕円曲線E上の点Pを、代数曲線のヤコビ多様体へ写像するためのパラメータを記憶部1に設定する初期設定部7を備える。また、楕円曲線暗号演算装置は、スカラー倍演算した結果を出力する出力部8とスカラー倍演算を制御するCPU(Central Processing Unit)9とを備える。
ここで、演算値Kはスカラー倍数Kのことである。以後、同様にスカラー倍数Kを演算値Kと記載することもある。また、ここでは代数曲線には種数2超楕円曲線を用いる。この楕円曲線暗号演算装置では、入力部2から入力したスカラー倍数Kのスカラー倍演算を行う。その際、種数2超楕円曲線Cのヤコビ多様体上の演算を利用する。また、楕円曲線暗号演算装置の準同型写像演算部4では、種数2超楕円曲線Cのヤコビ多様体の点を√2倍する演算を行う。
記憶部1は、楕円曲線暗号演算装置がスカラー倍演算を行う過程で利用する各値を記憶する。
入力部2は、楕円曲線Eの式とその式を規定するパラメータとを入力する。また、楕円曲線E上の点P(z、t)とスカラー倍数Kとを入力する。
入力部2からは、楕円曲線Eを示す情報として2捩れ点を有する楕円曲線を示す情報を入力するか、または、楕円曲線Eを示す情報として位数が素数になっている位数素数の楕円曲線を示す情報を入力することができる。
しかし、ここでは入力する楕円曲線Eの式とその式を規定するパラメータを以下のように定める。
楕円曲線Eは、位数2の有理点を含む楕円曲線を(1)式で示される楕円曲線(非特許文献4を参照)に変換することにより定められる。
楕円曲線Eは、位数2の有理点を含む楕円曲線を(1)式で示される楕円曲線(非特許文献4を参照)に変換することにより定められる。
ここで、TとαとUとは楕円曲線を規定するパラメータである。
(1)式で示される楕円曲線は、2捩れ点(−1,0)を任意の素体に対して有するものである。
位数2の有理点を含む楕円曲線は、有限体GF(q)の要素δ、a、bによって決まる楕円曲線T2=(Z−δ)(Z2+aZ+b)について、s=(7δ2+3aδ−a2+3b)/(δ2+aδ+b)としたときに決まる新しい楕円曲線T2=Z3+sZ2+sZ+1である。
この新しい楕円曲線T2=Z3+sZ2+sZ+1と、(1)式とが一致するようにU、α、Δ、Wの値を定める。このU、α、Δ、Wが楕円曲線Eのパラメータであり、これらの値で定まる(1)式が楕円曲線暗号演算装置で用いる楕円曲線Eとなる。よって、入力部2から、楕円曲線の式である(1)式と(1)式のパラメータであるU、α、Δ、Wとを楕円曲線Eを示す情報として入力する。
初期設定部7は、代数曲線として、超楕円曲線を選択することができ、例えば、楕円曲線暗号演算装置の初期設定部7は、代数曲線として、種数2超楕円曲線Cを選択することができる。
ここでは、初期設定部7は、代数曲線として種数2超楕円曲線Cを選択するものとする。
埋め込み演算部3は、楕円曲線Eから種数2超楕円曲線Cのヤコビ多様体への埋め込みを行う。具体的には、楕円曲線E上の点Pを、その楕円曲線Eに対応する種数2超楕円曲線Cのヤコビ多様体へ写像して、楕円曲線E上の点Pに対応する種数2超楕円曲線Cのヤコビ多様体上の点を埋め込み点Dとして求める。
準同型写像演算部4は、埋め込み点Dから種数2超楕円曲線Cのヤコビ多様体の準同型写像による写像をして写像点εDを求める。
射影演算部5は、種数2超楕円曲線Cのヤコビ多様体から楕円曲線への写像を行う。具体的には、写像点εDを楕円曲線Eへ写像して楕円曲線の射影点P’を求める。
計算処理部6は、スカラー倍数Kと射影点P’とからGLV型スカラー倍演算を用いてスカラー倍演算を行う。
次に、楕円曲線暗号演算装置でスカラー倍演算を行う動作について説明する。
楕円曲線を用いた演算装置の演算方法は、楕円曲線Eを示す情報と楕円曲線E上の点Pと演算値Kとを入力して記憶部1に記憶し、記憶部1に記憶された楕円曲線E上の点Pを読み込んで、楕円曲線E上の点Pを、その楕円曲線Eに対応する代数曲線のヤコビ多様体へ写像して楕円曲線E上の点Pに対応する代数曲線のヤコビ多様体上の点を埋め込み点Dとして求め、埋め込み点Dを記憶部1に記憶し、記憶部1に記憶された埋め込み点Dを読み込んで、代数曲線のヤコビ多様体の準同型写像による写像をして写像点εDを求め、写像点εDを記憶部1に記憶し、記憶部1に記憶された写像点εDを読み込んで、楕円曲線Eへ写像して楕円曲線E上の射影点P’を求め、射影点P’を記憶部1に記憶し、記憶部1に記憶された演算値Kと射影点P’とを読み込んで、演算値Kと射影点P’とを用いて計算を行い、計算結果を記憶部1に記憶する。
楕円曲線を用いた演算装置の演算方法は、楕円曲線Eを示す情報と楕円曲線E上の点Pと演算値Kとを入力して記憶部1に記憶し、記憶部1に記憶された楕円曲線E上の点Pを読み込んで、楕円曲線E上の点Pを、その楕円曲線Eに対応する代数曲線のヤコビ多様体へ写像して楕円曲線E上の点Pに対応する代数曲線のヤコビ多様体上の点を埋め込み点Dとして求め、埋め込み点Dを記憶部1に記憶し、記憶部1に記憶された埋め込み点Dを読み込んで、代数曲線のヤコビ多様体の準同型写像による写像をして写像点εDを求め、写像点εDを記憶部1に記憶し、記憶部1に記憶された写像点εDを読み込んで、楕円曲線Eへ写像して楕円曲線E上の射影点P’を求め、射影点P’を記憶部1に記憶し、記憶部1に記憶された演算値Kと射影点P’とを読み込んで、演算値Kと射影点P’とを用いて計算を行い、計算結果を記憶部1に記憶する。
楕円曲線暗号演算装置でのスカラー倍演算の動作を図2に示すフローチャートを用いて説明する。
まず、入力部2は楕円曲線Eの式を設定し、その式のパラメータであるU、α、Δ、Wを入力する。また、楕円曲線E上の点P(z、t)とスカラー倍数Kとを入力する。入力した楕円曲線Eの式とパラメータU、α、Δ、Wと楕円曲線E上の点P(z、t)とスカラー倍数Kは、記憶部1に記憶される(ステップS100)。
まず、入力部2は楕円曲線Eの式を設定し、その式のパラメータであるU、α、Δ、Wを入力する。また、楕円曲線E上の点P(z、t)とスカラー倍数Kとを入力する。入力した楕円曲線Eの式とパラメータU、α、Δ、Wと楕円曲線E上の点P(z、t)とスカラー倍数Kは、記憶部1に記憶される(ステップS100)。
次に、初期設定部7は、記憶部1から楕円曲線Eを読み出し、以下に示す(2)式で定まる種数2超楕円曲線Cのヤコビ多様体に埋め込む処理を行う(ステップS101)。
ここで、α1、α2はXの2次方程式X2+((W(U−2)(U+2)+32)/(4U))X+W=0の2根である。また、TとαとUとは楕円曲線を規定するパラメータ、XとYは変数である。
初期設定部7による楕円曲線Eの種数2超楕円曲線Cのヤコビ多様体への埋め込みは、楕円曲線Eを種数2超楕円曲線Cのヤコビ多様体へ写像するパラメータを設定することにより行われる。このパラメータは、用いる楕円曲線Eを変更しない限り、楕円曲線暗号演算装置に一度設定すれば、演算を行う都度設定する必要がなく、継続して利用することができる。したがって、ステップS101は、次回から実行されなくてもよい。
次に、埋め込み演算部3は、楕円曲線E上の点P=(z、t)を種数2超楕円曲線Cのヤコビ多様体の点Dに写像する演算(埋め込み演算)を行う(ステップS102)。
ここでは埋め込み演算部3は、楕円曲線E上の点P(z、t)から代数曲線のヤコビ多様体の埋め込み点D(x、y)を求める楕円曲線Eが埋め込まれた代数曲線のヤコビ多様体への写像を(3)式と(4)式の関係式で定める。
ここで、xは種数2超楕円曲線Cのヤコビ多様体の点のx座標、yは種数2超楕円曲線Cのヤコビ多様体の点のy座標、zは楕円曲線E上の点Pのx座標、tは楕円曲線E上の点Pのy座標、αとUとは楕円曲線Eを規定するパラメータである。
埋め込み演算部3の動作を図3に示すフローチャートを用いて説明する。
埋め込み演算部3は、記憶部1から楕円曲線E上の点P=(z、t)を読み出す(ステップS300)。次に、楕円曲線E上の点Pのx座標であるzの有限体GF(q)内での平方根をrとし、(2(r2、t)、2(1/r2、t/r3))を楕円曲線の積E×E上の点として、その楕円曲線の積E×E上の点に種数2超楕円曲線Cのヤコビ多様体の点D=(x、y)−(x、−y)を対応させる(ステップS301)。ここで、x、yは(5)式と(6)式で定める。
埋め込み演算部3は、記憶部1から楕円曲線E上の点P=(z、t)を読み出す(ステップS300)。次に、楕円曲線E上の点Pのx座標であるzの有限体GF(q)内での平方根をrとし、(2(r2、t)、2(1/r2、t/r3))を楕円曲線の積E×E上の点として、その楕円曲線の積E×E上の点に種数2超楕円曲線Cのヤコビ多様体の点D=(x、y)−(x、−y)を対応させる(ステップS301)。ここで、x、yは(5)式と(6)式で定める。
ここで、αとUとは楕円曲線Eを規定するパラメータである。
次に、点D=(x、y)−(x、−y)を2次多項式U(x)と1次多項式V(x)の対として表し、U(x)とV(x)の対を記憶部1に記憶する(ステップS302)。
以上、ステップS300からステップS302までが埋め込み演算部3での動作である。
図2に戻って楕円曲線暗号演算装置におけるスカラー倍演算の動作の説明を続ける。
次に、準同型写像演算部4は、代数曲線である種数2超楕円曲線Cのヤコビ多様体の点Dを√2倍して写像点εDを求める。
次に、準同型写像演算部4は、代数曲線である種数2超楕円曲線Cのヤコビ多様体の点Dを√2倍して写像点εDを求める。
つまり、準同型写像演算部4は、代数曲線として種数2超楕円曲線Cを用い、種数2超楕円曲線Cのヤコビ多様体の点Dを√2倍する演算を行い写像点εDを得る(ステップS103)。
準同型写像演算部4は、代数曲線のヤコビ多様体の準同型写像として、代数曲線のヤコビ多様体から代数曲線のRichelot双対曲線のヤコビ多様体への準同型写像と、代数曲線のRichelot双対曲線のヤコビ多様体から代数曲線のヤコビ多様体への準同型写像との合成で決まる代数曲線のヤコビ多様体上の自己準同型写像を用いる。
前者の代数曲線のヤコビ多様体から代数曲線のRichelot双対曲線のヤコビ多様体への準同型写像は、代数曲線が種数2超楕円曲線Cである場合、(7)式と(8)式で定まる。
G1(x)H1(z)+G2(x)H2(z)=0 (7)
ytk=ΔG1(x)H1(zk)(x−zk) (8)
ただし、k=1、2
ただし、k=1、2
ここで、xは種数2超楕円曲線Cのヤコビ多様体の点のx座標、yは種数2超楕円曲線Cのヤコビ多様体の点のy座標、zは代数曲線のヤコビ多様体の点のx座標、G1とG2とは種数2超楕円曲線Cを定義する関数、H1とH2とは種数2超楕円曲線CのRichelot双対曲線を定義する関数、zkはzに関する(1)式の零点、tkは各zkについて(2)式により定まる値、ΔG1はtkを定義する関数である。
また、後者の代数曲線のRichelot双対曲線のヤコビ多様体から代数曲線のヤコビ多様体への準同型写像は、代数曲線が種数2超楕円曲線Cである場合、(9)式で定める。
(x、y)→(2/x、(4y)/x3) (9)
ここで、xは種数2超楕円曲線Cのヤコビ多様体の点のx座標、yは種数2超楕円曲線Cのヤコビ多様体の点のy座標、→は写像を示す記号である。
準同型写像演算部4で用いる準同型写像について具体的に説明する。
種数2超楕円曲線CをY2=ΔG0(X)G1(X)G2(X)と2次式の積で表し、Gi(X)=Σgi,jXj(i=0,1,2)とした時、(10)式により種数2超楕円曲線CのRichelot双対曲線が定義される。
種数2超楕円曲線CをY2=ΔG0(X)G1(X)G2(X)と2次式の積で表し、Gi(X)=Σgi,jXj(i=0,1,2)とした時、(10)式により種数2超楕円曲線CのRichelot双対曲線が定義される。
det(gi,j)T2=ΔH0(Z)H1(Z)H2(Z) (10)
ここで、Hi(Z)=G’i+1(Z)Gi+2(Z)−G’i+2(Z)Gi+1(Z)とする。また、G’は多項式GをZで微分した多項式を表す。
これにより、種数2超楕円曲線Cのヤコビ多様体から種数2超楕円曲線CのRichelot双対曲線のヤコビ多様体への準同型写像ρは、(11)式のように定められる。
[(x、y)−P0]→[(z1、t1)−(z2、−t2)] (11)
ここで、P0はG0の零点をx座標とし、y座標は0である種数2超楕円曲線C上の点である。zk(k=1,2)はzに関する(12)式で示される2次多項式の零点とする。
G1(x)H1(z)+G2(x)H2(z) (12)
各zkに対してtkをtk=(ΔG1(x)H1(zk)(x−zk))/yで定める。
以上、前者の種数2超楕円曲線Cのヤコビ多様体から種数2超楕円曲線CのRichelot双対曲線のヤコビ多様体への準同型写像について説明した。
また、この時、種数2超楕円曲線Cの√2乗法写像εは±ι−1ρで与えられる。ここでιは、(9)式で定義される種数2超楕円曲線Cから種数2超楕円曲線CのRichelot双対曲線への同型写像であり、ι−1が、後者の種数2超楕円曲線CのRichelot双対曲線のヤコビ多様体から種数2超楕円曲線Cのヤコビ多様体への準同型写像となる。
準同型写像演算部4での動作を図4に示すフローチャートを用いて説明する。
まず、準同型写像演算部4は記憶部1から埋め込み演算部3が生成したU(x)とV(x)の対を読み出し、これを種数2超楕円曲線C上の0次因子の点D=(x、y)−(x’、y’)とする(ステップS200)。
まず、準同型写像演算部4は記憶部1から埋め込み演算部3が生成したU(x)とV(x)の対を読み出し、これを種数2超楕円曲線C上の0次因子の点D=(x、y)−(x’、y’)とする(ステップS200)。
次に、準同型写像演算部4は、(x、y)から、G1(x)H1(z)+G2(x)H2(z)=0を満たすzk(k=1,2)について、tk=ΔG1(x)H1(zk)(x−zk)となるtkを定める。同様に、(x’、y’)から、G1(x)H1(z)+G2(x)H2(z)=0を満たすz’k(k=1,2)について、t’k=ΔG1(x)H1(zk)(x−zk)となるt’kを定める(ステップS201)。
次に、準同型写像演算部4は、((z1、t1)+(z2、t2))−((z’1、t’1)+(z’2、t’2))という0次因子を表す2次多項式U0(z)と1次多項式V0(z)とを計算する(ステップS202)。これがRichelot双対曲線上の因子となる。
次に、準同型写像演算部4は、Richelot双対曲線からCへの写像である(x、y)→(2/x、(4y)/x3)から決まるヤコビ多様体間の写像によって、U0(z)、V0(z)をU(z)、V(z)に変換し(ステップS203)、U(z)、V(z)を記憶部1に記憶する(ステップS204)。
以上、ステップS200からステップS204までが準同型写像演算部4での動作である。
図2に戻って楕円曲線暗号演算装置におけるスカラー倍演算の動作の説明を続ける。
次に、射影演算部5は、種数2超楕円曲線Cのヤコビ多様体の点εD=(x、y)−(x’、y’)を楕円曲線上の点P’に写像する演算(射影演算)を行う(ステップS104)。
次に、射影演算部5は、種数2超楕円曲線Cのヤコビ多様体の点εD=(x、y)−(x’、y’)を楕円曲線上の点P’に写像する演算(射影演算)を行う(ステップS104)。
射影演算部5は、射影点εD=(x、y)−(x’、y’)から楕円曲線E上の射影点P’(z、t)を求める楕円曲線Eへの写像を(13)式と(14)式との関係式で定める。
ここで、xは種数2超楕円曲線Cのヤコビ多様体の点のx座標、yは種数2超楕円曲線Cのヤコビ多様体の点のy座標、zは楕円曲線E上の点Pのx座標、tは楕円曲線E上の点Pのy座標、αとUとは楕円曲線Eを規定するパラメータである。
同様に、射影演算部5では、z’、t’を以下に示す(15)式と(16)式との関係式で定める。
ここで、x’は種数2超楕円曲線Cのヤコビ多様体の点のx座標、y’は種数2超楕円曲線Cのヤコビ多様体の点のy座標、z’は楕円曲線E上の点Pのx座標、t’は楕円曲線E上の点Pのy座標、αとUとは楕円曲線Eを規定するパラメータである。
そして、(z2、t)−(z’2、t’)で与えられる楕円曲線E上の点P’を対応させる。
射影演算部5での動作を図5に示すフローチャートを用いて説明する。
射影演算部5は、準同型写像演算部4で生成したU(z)、V(z)を記憶部1から読み出し、種数2超楕円曲線Cのヤコビ多様体の点(x、y)−(x’、y’)とする(ステップS400)。
射影演算部5は、準同型写像演算部4で生成したU(z)、V(z)を記憶部1から読み出し、種数2超楕円曲線Cのヤコビ多様体の点(x、y)−(x’、y’)とする(ステップS400)。
次に、射影演算部5は、z、t、z’、t’を上記した(14)式〜(17)式で求め、(z2、t)−(z’2、t’)で与えられる楕円曲線E上の点P’を得る(ステップS401)。
次に、射影演算部5は、得られた楕円曲線E上の点P’を記憶部1に記憶する(ステップS402)。
以上、ステップS400からステップS402までが射影演算部5での動作である。
図2に戻って楕円曲線暗号演算装置におけるスカラー倍演算の動作の説明を続ける。
計算処理部6は、ステップS100からステップS104を行った後、記憶部1から楕円曲線E上の点P’を読み出し、上記したGLV型スカラー倍演算を用いて、楕円曲線E上の点P’のスカラー倍数Kでのスカラー倍演算を行い、KP’を得る(ステップS105)。そして、計算により得たKP’を出力する(ステップS106)。
計算処理部6は、ステップS100からステップS104を行った後、記憶部1から楕円曲線E上の点P’を読み出し、上記したGLV型スカラー倍演算を用いて、楕円曲線E上の点P’のスカラー倍数Kでのスカラー倍演算を行い、KP’を得る(ステップS105)。そして、計算により得たKP’を出力する(ステップS106)。
以上、この実施形態における楕円曲線暗号演算装置でのスカラー倍演算の方法をまとめる。まず、埋め込み演算部3により、楕円曲線E上の点Pを種数2超楕円曲線Cのヤコビ多様体の点Dに変換する。次に、準同型写像演算部4により、√2乗法写像εを用いてεDを計算し、射影演算部5により、εDから楕円曲線E上の点を得る。ここでは、その点をφ(P)と書くことにする。最後に、φ(P)を特殊準同型に用いてGLV型スカラー倍演算を行うことにより、スカラー倍数Kでのスカラー倍演算を実現できる。
上記したスカラー倍演算は、その方法をプログラムで記述することによりコンピュータに実行させることができる。
具体的には、楕円曲線E上の点Pのスカラー倍(K倍)演算をコンピュータに実行させるプログラムは、楕円曲線E上の点Pを種数2超楕円曲線Cのヤコビ多様体上の点Dに変換し、点Dに対して、種数2超楕円曲線Cのヤコビ多様体の準同型写像による写像をして写像点εDを求め、写像点εDを楕円曲線E上へ写像して楕円曲線の射影点P’を求め、
演算値Kと射影点P’とを読み込んで、射影点P’をK倍する計算を行い、計算結果を出力する。
具体的には、楕円曲線E上の点Pのスカラー倍(K倍)演算をコンピュータに実行させるプログラムは、楕円曲線E上の点Pを種数2超楕円曲線Cのヤコビ多様体上の点Dに変換し、点Dに対して、種数2超楕円曲線Cのヤコビ多様体の準同型写像による写像をして写像点εDを求め、写像点εDを楕円曲線E上へ写像して楕円曲線の射影点P’を求め、
演算値Kと射影点P’とを読み込んで、射影点P’をK倍する計算を行い、計算結果を出力する。
この実施の形態によれば楕円曲線暗号演算装置は、楕円曲線Eを示す情報と楕円曲線E上の点Pと演算値Kとを入力して記憶部に記憶する入力部と、記憶部に記憶された楕円曲線E上の点Pを読み込んで、楕円曲線E上の点Pを、その楕円曲線Eに対応する代数曲線のヤコビ多様体へ写像して楕円曲線E上の点Pに対応する代数曲線のヤコビ多様体上の点を埋め込み点Dとして求め、埋め込み点Dを記憶部に記憶する埋め込み演算部と、記憶部に記憶された埋め込み点Dを読み込んで、代数曲線のヤコビ多様体の準同型写像による写像をして写像点εDを求め、写像点εDを記憶部に記憶する準同型写像演算部と、記憶部に記憶された写像点εDを読み込んで、楕円曲線Eへ写像して楕円曲線の射影点P’を求め、射影点P’を記憶部に記憶する射影演算部と、記憶部に記憶された演算値Kと射影点P’とを読み込んで、演算値Kと射影点P’とを用いて計算を行い、計算結果を記憶部に記憶する計算処理部とを備えるので、楕円曲線暗号で行うスカラー倍演算を従来より速い処理速度で実行することが可能となる。
この実施の形態によれば楕円曲線暗号演算装置は、さらに、代数曲線を選択して記憶部に設定するとともに、楕円曲線E上の点Pを、代数曲線のヤコビ多様体へ写像するためのパラメータを記憶部に設定する初期設定部を備えるので、用いる楕円曲線を変更することができ、多様な楕円曲線で楕円曲線暗号を実行することが可能となる。その結果、楕円曲線暗号演算装置で実行する楕円曲線暗号の安全性を向上させることができる。
この実施の形態によれば楕円曲線暗号演算装置の初期設定部は、代数曲線として超楕円曲線を選択し、さらに、代数曲線として種数2超楕円曲線Cを選択するので、楕円曲線E上の点Pの種数2超楕円曲線Cのヤコビ多様体への写像を行うことにより、従来より速い処理速度で楕円曲線暗号で行うスカラー倍演算を実行することが可能となる。
この実施の形態によれば楕円曲線暗号演算装置の準同型写像演算部は、代数曲線のヤコビ多様体の点Dを√2倍して写像点εDを求めるので、√2倍して写像を行う効率的に計算可能な準同型写像を利用することが可能となる。
この実施の形態によれば楕円曲線暗号演算装置の入力部は、楕円曲線Eを示す情報として2捩れ点を有する楕円曲線を示す情報を入力するので、または、位数が素数になっている位数素数の楕円曲線を示す情報を入力するので、楕円曲線E上の点Pの種数2超楕円曲線Cのヤコビ多様体への写像を利用した従来より速い処理の速いスカラー倍演算を実行することが可能となる。
この実施の形態によれば楕円曲線暗号演算装置の準同型写像演算部は、代数曲線のヤコビ多様体の準同型写像として、代数曲線のヤコビ多様体から代数曲線のRichelot双対曲線のヤコビ多様体への準同型写像と、代数曲線のRichelot双対曲線のヤコビ多様体から代数曲線のヤコビ多様体への準同型写像との合成で決まる代数曲線のヤコビ多様体上の自己準同型写像を用いるので、この代数曲線のヤコビ多様体上の自己準同型写像をスカラー倍演算を効率的に計算することが可能な準同型写像として用いることができる。
この実施の形態によれば楕円曲線暗号演算装置の準同型写像演算部で用いる代数曲線のヤコビ多様体から代数曲線のRichelot双対曲線のヤコビ多様体への準同型写像は、代数曲線が種数2超楕円曲線Cである場合、上記した(7)式と(8)式とで定まり、また、楕円曲線暗号演算装置の準同型写像演算部で用いる代数曲線のRichelot双対曲線のヤコビ多様体から代数曲線のヤコビ多様体への準同型写像は、代数曲線が種数2超楕円曲線Cである場合、上記した(9)式で定まるので、これらを合成した写像である代数曲線のヤコビ多様体上の自己準同型写像をスカラー倍演算を効率的に計算することが可能な準同型写像として用いることができる。
この実施の形態によれば楕円曲線暗号演算装置の埋め込み演算部は、楕円曲線E上の点P(z、t)から代数曲線のヤコビ多様体の埋め込み点D(x、y)を求める楕円曲線Eが埋め込まれた代数曲線のヤコビ多様体への写像を上記した(3)式と(4)式との関係式で定めるので、楕円曲線E上の点Pを代数曲線のヤコビ多様体の点Dへ写像することができる。
この実施の形態によれば楕円曲線暗号演算装置の射影演算部は、射影点εD(x、y)から楕円曲線E上の射影点P’(z、t)を求める楕円曲線Eへの写像を上記した(13)式〜(16)式との関係式で定めるので、代数曲線のヤコビ多様体の点εDを楕円曲線上の点P’に写像することができる。
この実施の形態によれば楕円曲線を用いた演算装置の演算方法として、楕円曲線Eを示す情報と楕円曲線E上の点Pと演算値Kとを入力して記憶部に記憶し、記憶部に記憶された楕円曲線E上の点Pを読み込んで、楕円曲線E上の点Pを、その楕円曲線Eに対応する代数曲線のヤコビ多様体へ写像して楕円曲線E上の点Pに対応する代数曲線のヤコビ多様体上の点を埋め込み点Dとして求め、埋め込み点Dを記憶部に記憶し、記憶部に記憶された埋め込み点Dを読み込んで、代数曲線のヤコビ多様体の準同型写像による写像をして写像点εDを求め、写像点εDを記憶部に記憶し、記憶部に記憶された写像点εDを読み込んで、楕円曲線Eへ写像して楕円曲線E上の射影点P’を求め、射影点P’を記憶部に記憶し、記憶部に記憶された演算値Kと射影点P’とを読み込んで、演算値Kと射影点P’とを用いて計算を行い、計算結果を記憶部に記憶するので、楕円曲線暗号で行うスカラー倍演算を従来より速い処理速度で実行することが可能となる。
この実施の形態によれば楕円曲線E上の点Pを種数2超楕円曲線Cのヤコビ多様体上の点Dに変換し、点Dに対して、種数2超楕円曲線Cのヤコビ多様体の準同型写像による写像をして写像点εDを求め、写像点εDを楕円曲線E上へ写像して楕円曲線の射影点P’を求め、演算値Kと射影点P’とを読み込んで、射影点P’をK倍する計算を行い、計算結果を出力することをプログラムに記載するので、楕円曲線E上の点Pのスカラー倍(K倍)演算をコンピュータに実行させることができる。
この実施の形態によれば、従来の方法では、かなり特殊なタイプの楕円曲線Eにしか適用することができなかった楕円曲線暗号でのスカラー倍演算の高速化手法であるGLV型スカラー倍演算を、かなり一般な楕円曲線Eに適用することができるようになり、これにより楕円曲線暗号の安全性を実用上十分に保証されるようにした。
以上、実施の形態について説明した。
なお、楕円曲線暗号演算装置は、楕円曲線をある種数2超楕円曲線Cのヤコビ多様体に埋め込む演算部と、楕円曲線上の点を種数2超楕円曲線Cのヤコビ多様体の点に写像する演算(埋め込み演算)を行う演算部と、種数2超楕円曲線Cのヤコビ多様体の点を√2倍する演算を行う演算部と、種数2超楕円曲線Cのヤコビ多様体の点を楕円曲線上の点に写像する演算(射影演算)を行う演算部とを備えたことを特徴とする。ここで、√2倍演算とは、非特許文献4で記述された2度行うと2倍写像になる演算である。
なお、楕円曲線暗号演算装置は、楕円曲線をある種数2超楕円曲線Cのヤコビ多様体に埋め込む演算部と、楕円曲線上の点を種数2超楕円曲線Cのヤコビ多様体の点に写像する演算(埋め込み演算)を行う演算部と、種数2超楕円曲線Cのヤコビ多様体の点を√2倍する演算を行う演算部と、種数2超楕円曲線Cのヤコビ多様体の点を楕円曲線上の点に写像する演算(射影演算)を行う演算部とを備えたことを特徴とする。ここで、√2倍演算とは、非特許文献4で記述された2度行うと2倍写像になる演算である。
また、楕円曲線暗号演算装置は、特殊準同型写像φとして、次式で定まるCのヤコビ多様体からCのRichelot双対曲線のヤコビ多様体への準同型写像と、
G1(x)H1(z)+G2(x)H2(z)=0、ytk=ΔG1(x)H1(zk)(x−zk)
次式で定まるCのRichelot双対曲線のヤコビ多様体からCのヤコビ多様体への準同型写像と、
(x、y)→(2/x、(4y)/x3)
の合成で決まる種数2超楕円曲線Cのヤコビ多様体上の自己準同型写像を用いることを特徴とする。
G1(x)H1(z)+G2(x)H2(z)=0、ytk=ΔG1(x)H1(zk)(x−zk)
次式で定まるCのRichelot双対曲線のヤコビ多様体からCのヤコビ多様体への準同型写像と、
(x、y)→(2/x、(4y)/x3)
の合成で決まる種数2超楕円曲線Cのヤコビ多様体上の自己準同型写像を用いることを特徴とする。
楕円曲線暗号演算装置では、楕円曲線Eから種数2超楕円曲線Cのヤコビ多様体への写像、種数2超楕円曲線Cのヤコビ多様体から楕円曲線Eへの写像が、楕円曲線上の点(z、t)と種数2超楕円曲線Cの点(x、y)の間の以下に示す関係式から定まることを特徴とする。
z=(x−α−1)/(αx+α−1)
t=32y(U3−8U2+4U+32+α(U−4)(U2+4U−20))/((U−2)(αx+α−1))3
z=(x−α−1)/(αx+α−1)
t=32y(U3−8U2+4U+32+α(U−4)(U2+4U−20))/((U−2)(αx+α−1))3
また、プログラムにより楕円曲線暗号演算装置の楕円曲線をある種数2超楕円曲線Cのヤコビ多様体に埋め込む演算部と、楕円曲線上の点を種数2超楕円曲線Cのヤコビ多様体の点に写像する演算(埋め込み演算)を行う演算部と、種数2超楕円曲線Cのヤコビ多様体の点を√2倍する演算を行う演算部と、種数2超楕円曲線Cのヤコビ多様体の点を楕円曲線上の点に写像する演算(射影演算)を行う演算部とを用いる演算処理をコンピュータに実行させる。ここで、√2倍演算とは、非特許文献4で記述された2度行うと2倍写像になる演算である。
また、プログラムにより楕円曲線暗号演算装置の特殊準同型写像φとして、次式で定まるCのヤコビ多様体からCのRichelot双対曲線のヤコビ多様体への準同型写像と、
G1(x)H1(z)+G2(x)H2(z)=0
ytk=ΔG1(x)H1(zk)(x−zk)
次式で定まるCのRichelot双対曲線のヤコビ多様体からCのヤコビ多様体への準同型写像、
(x、y)→(2/x、(4y)/x3)
の合成で決まる種数2超楕円曲線Cのヤコビ多様体上の自己準同型写像を用いる演算処理をコンピュータに実行させる。
G1(x)H1(z)+G2(x)H2(z)=0
ytk=ΔG1(x)H1(zk)(x−zk)
次式で定まるCのRichelot双対曲線のヤコビ多様体からCのヤコビ多様体への準同型写像、
(x、y)→(2/x、(4y)/x3)
の合成で決まる種数2超楕円曲線Cのヤコビ多様体上の自己準同型写像を用いる演算処理をコンピュータに実行させる。
また、プログラムにより楕円曲線暗号演算装置の楕円曲線Eから種数2超楕円曲線Cのヤコビ多様体への写像、種数2超楕円曲線Cのヤコビ多様体から楕円曲線Eへの写像が、楕円曲線上の点(z、t)と種数2超楕円曲線Cの点(x、y)の間の以下に示す関係式から定まる演算処理をコンピュータに実行させる。
z=(x−α−1)/(αx+α−1)
t=32y(U3−8U2+4U+32+α(U−4)(U2+4U−20))/((U−2)(αx+α−1))3
z=(x−α−1)/(αx+α−1)
t=32y(U3−8U2+4U+32+α(U−4)(U2+4U−20))/((U−2)(αx+α−1))3
以上、実施の形態において述べた楕円曲線暗号演算装置は、コンピュータにより実現することができる。図6は、実施の形態における楕円曲線暗号演算装置をコンピュータにより実現した場合のハードウェア構成を示す図である。
図6において楕円曲線暗号演算装置は、プログラムを実行するCPU(Central Processing Unit)911を備えている。CPU911は、バス912を介してROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード(K/B)902、マウス903、FDD(Flexible Disk Drive)904、磁気ディスク装置920、CDD(Compact Disk Drive)905、プリンタ装置906、スキャナ装置907と接続されている。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920、光ディスク装置は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
磁気ディスク装置920には、オペレーティングシステム(OS)921、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923は、CPU911、OS921、ウィンドウシステム922により実行される。
プログラム群923には、上記した実施の形態の説明において「〜部」として説明した機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
上記した実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータの入出力を示し、そのデータの入出力のためにデータは、磁気ディスク装置920、FD(Flexible Disk)、光ディスク、CD(Compact Disk)、MD(Mini Disk)、DVD(Digital Versatile Disk)等のその他の記録媒体に記録される。あるいは、信号線やその他の伝送媒体により伝送される。
上記した実施の形態の説明において「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアのみ、あるいは、ハードウェアのみ、あるいは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
上記した実施の形態を実施するプログラムは、また、磁気ディスク装置920、FD(Flexible Disk)、光ディスク、CD(Compact Disk)、MD(Mini Disk)、DVD(Digital Versatile Disk)等のその他の記録媒体による記録装置を用いて記憶されても構わない。
1 記憶部、2 入力部、3 埋め込み演算部、4 準同型写像演算部、5 射影演算部、6 計算処理部、7 初期設定部、901 表示装置、902 キーボード(K/B)、903 マウス、904 FDD、905 CDD、906 プリンタ装置、907 スキャナ装置、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 OS、922 ウィンドウシステム、923 プログラム群、924 ファイル群。
Claims (14)
- 楕円曲線Eを示す情報と楕円曲線E上の点Pと演算値Kとを入力して記憶部に記憶する入力部と、
記憶部に記憶された楕円曲線E上の点Pを読み込んで、楕円曲線E上の点Pを、その楕円曲線Eに対応する代数曲線のヤコビ多様体へ写像して楕円曲線E上の点Pに対応する代数曲線のヤコビ多様体上の点を埋め込み点Dとして求め、埋め込み点Dを記憶部に記憶する埋め込み演算部と、
記憶部に記憶された埋め込み点Dを読み込んで、代数曲線のヤコビ多様体の準同型写像による写像をして写像点εDを求め、写像点εDを記憶部に記憶する準同型写像演算部と、
記憶部に記憶された写像点εDを読み込んで、楕円曲線Eへ写像して楕円曲線の射影点P’を求め、射影点P’を記憶部に記憶する射影演算部と、
記憶部に記憶された演算値Kと射影点P’とを読み込んで、演算値Kと射影点P’とを用いて計算を行い、計算結果を記憶部に記憶する計算処理部と
を備えたことを特徴とする楕円曲線暗号演算装置。 - 上記楕円曲線暗号演算装置は、さらに、
代数曲線を選択して記憶部に設定するとともに、楕円曲線E上の点Pを、代数曲線のヤコビ多様体へ写像するためのパラメータを記憶部に設定する初期設定部を備えたこと
を特徴とする請求項1記載の楕円曲線暗号演算装置。 - 上記初期設定部は、
代数曲線として、超楕円曲線を選択すること
を特徴とする請求項2記載の楕円曲線暗号演算装置。 - 上記初期設定部は、
代数曲線として、種数2超楕円曲線Cを選択すること
を特徴とする請求項2記載の楕円曲線暗号演算装置。 - 上記準同型写像演算部は、
代数曲線のヤコビ多様体の点Dを√2倍して写像点εDを求めること
を特徴とする請求項1記載の楕円曲線暗号演算装置。 - 上記入力部は、
楕円曲線Eを示す情報として2捩れ点を有する楕円曲線を示す情報を入力すること
を特徴とする請求項1記載の楕円曲線暗号演算装置。 - 上記入力部は、
楕円曲線Eを示す情報として、位数が素数になっている位数素数の楕円曲線を示す情報を入力すること
を特徴とする請求項1記載の楕円曲線暗号演算装置。 - 上記準同型写像演算部は、
上記代数曲線のヤコビ多様体の準同型写像として、
代数曲線のヤコビ多様体から代数曲線のRichelot双対曲線のヤコビ多様体への準同型写像と、代数曲線のRichelot双対曲線のヤコビ多様体から代数曲線のヤコビ多様体への準同型写像との合成で決まる代数曲線のヤコビ多様体上の自己準同型写像を用いること
を特徴とする請求項1記載の楕円曲線暗号演算装置。 - 上記代数曲線のヤコビ多様体から代数曲線のRichelot双対曲線のヤコビ多様体への準同型写像は、上記代数曲線が種数2超楕円曲線Cである場合、
G1(x)H1(z)+G2(x)H2(z)=0 (1)
ytk=ΔG1(x)H1(zk)(x−zk) (2)
ただし、k=1、2
(ここで、xは種数2超楕円曲線Cのヤコビ多様体の点のx座標、yは種数2超楕円曲線Cのヤコビ多様体の点のy座標、zは代数曲線のヤコビ多様体の点のx座標、G1とG2とは種数2超楕円曲線Cを定義する関数、H1とH2とは種数2超楕円曲線CのRichelot双対曲線を定義する関数、zkはzに関する(1)式の零点、tkは各zkについて(2)式により定まる値、ΔG1はtkを定義する関数である。)
で定まること
を特徴とする請求項8記載の楕円曲線暗号演算装置。 - 上記代数曲線のRichelot双対曲線のヤコビ多様体から代数曲線のヤコビ多様体への準同型写像は、上記代数曲線が種数2超楕円曲線Cである場合、
(x、y)→(2/x、(4y)/x3)
(ここで、xは種数2超楕円曲線Cのヤコビ多様体の点のx座標、yは種数2超楕円曲線Cのヤコビ多様体の点のy座標、→は写像を示す記号である。)
で定まること
を特徴とする請求項8記載の楕円曲線暗号演算装置。 - 楕円曲線を用いた演算装置の演算方法において、
楕円曲線Eを示す情報と楕円曲線E上の点Pと演算値Kとを入力して記憶部に記憶し、
記憶部に記憶された楕円曲線E上の点Pを読み込んで、楕円曲線E上の点Pを、その楕円曲線Eに対応する代数曲線のヤコビ多様体へ写像して楕円曲線E上の点Pに対応する代数曲線のヤコビ多様体上の点を埋め込み点Dとして求め、埋め込み点Dを記憶部に記憶し、
記憶部に記憶された埋め込み点Dを読み込んで、代数曲線のヤコビ多様体の準同型写像による写像をして写像点εDを求め、写像点εDを記憶部に記憶し、
記憶部に記憶された写像点εDを読み込んで、楕円曲線Eへ写像して楕円曲線E上の射影点P’を求め、射影点P’を記憶部に記憶し、
記憶部に記憶された演算値Kと射影点P’とを読み込んで、演算値Kと射影点P’とを用いて計算を行い、計算結果を記憶部に記憶することを特徴とする演算方法。 - 楕円曲線E上の点Pのスカラー倍(K倍)演算をコンピュータに実行させるプログラムにおいて、
楕円曲線E上の点Pを種数2超楕円曲線Cのヤコビ多様体上の点Dに変換し、
点Dに対して、種数2超楕円曲線Cのヤコビ多様体の準同型写像による写像をして写像点εDを求め、
写像点εDを楕円曲線E上へ写像して楕円曲線の射影点P’を求め、
演算値Kと射影点P’とを読み込んで、射影点P’をK倍する計算を行い、計算結果を出力する
ことを特徴とするプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2004/013409 WO2006030496A1 (ja) | 2004-09-15 | 楕円曲線暗号演算装置、楕円曲線を用いた演算装置の演算方法および楕円曲線上の点のスカラー倍演算をコンピュータに実行させるプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2006030496A1 true JPWO2006030496A1 (ja) | 2008-05-08 |
Family
ID=36060429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006534980A Withdrawn JPWO2006030496A1 (ja) | 2004-09-15 | 2004-09-15 | 楕円曲線暗号演算装置、楕円曲線を用いた演算装置の演算方法および楕円曲線上の点のスカラー倍演算をコンピュータに実行させるプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20070053506A1 (ja) |
JP (1) | JPWO2006030496A1 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7961873B2 (en) * | 2004-03-03 | 2011-06-14 | King Fahd University Of Petroleum And Minerals | Password protocols using XZ-elliptic curve cryptography |
US7961874B2 (en) * | 2004-03-03 | 2011-06-14 | King Fahd University Of Petroleum & Minerals | XZ-elliptic curve cryptography with secret key embedding |
DE102005030031B4 (de) * | 2005-06-27 | 2007-08-02 | Nec Europe Ltd. | Verfahren zum Datenmanagement in einem Sensornetzwerk |
US8913739B2 (en) * | 2005-10-18 | 2014-12-16 | Telecom Italia S.P.A. | Method for scalar multiplication in elliptic curve groups over prime fields for side-channel attack resistant cryptosystems |
DE102007001070B3 (de) * | 2006-09-29 | 2008-04-30 | Siemens Ag | Verfahren zum verschlüsselten Datenausgleich eines Systems mit mindestens einem Datenträger und einem Lesegerät |
CN101911582B (zh) * | 2008-01-18 | 2012-09-05 | 三菱电机株式会社 | 密码参数设定装置、密钥生成装置、密码系统、密码参数设定方法和密钥生成方法 |
EP2124382A1 (de) * | 2008-05-20 | 2009-11-25 | Siemens Aktiengesellschaft | Verfahren zum verschlüsselten Datenaustausch und Kommunikationssystem |
US8520841B2 (en) * | 2008-05-22 | 2013-08-27 | Microsoft Corporation | Algorithms for generating parameters for genus 2 hyperelliptic curve cryptography |
CN101782845B (zh) * | 2009-01-20 | 2014-11-26 | 北京华大信安科技有限公司 | 一种椭圆曲线密码的高速运算装置和方法 |
US8457305B2 (en) * | 2009-11-13 | 2013-06-04 | Microsoft Corporation | Generating genus 2 curves from invariants |
US8731187B2 (en) * | 2010-12-21 | 2014-05-20 | Microsoft Corporation | Computing genus-2 curves using general isogenies |
US9425952B2 (en) * | 2014-03-27 | 2016-08-23 | Samsung Israel Research Corporation | Algebraic manipulation detection codes from algebraic curves |
KR102251697B1 (ko) * | 2014-04-23 | 2021-05-14 | 삼성전자주식회사 | 암호화 장치, 암호화 방법 및 컴퓨터 판독가능 기록매체 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE119726T1 (de) * | 1990-10-24 | 1995-03-15 | Omnisec Ag | Geheimübertragungssystem mit möglichkeit zur verschlüsselten kommunikation zwischen benutzern mit gesichertem schlüssel, welcher ohne benutzereinwirkung bestimmt wird. |
GB9610154D0 (en) * | 1996-05-15 | 1996-07-24 | Certicom Corp | Tool kit protocol |
US6440750B1 (en) * | 1997-06-10 | 2002-08-27 | Agere Systems Guardian Corporation | Method of making integrated circuit having a micromagnetic device |
JP2000206879A (ja) * | 1999-01-14 | 2000-07-28 | Internatl Business Mach Corp <Ibm> | 標数2のガロア体上で定義される超楕円曲線のヤコビ多様体の群演算を実施する装置及び方法 |
JP4671571B2 (ja) * | 1999-09-29 | 2011-04-20 | 株式会社日立製作所 | 秘密情報の処理装置および秘密情報の処理プログラムを格納するメモリ |
US7043015B2 (en) * | 2002-10-31 | 2006-05-09 | Microsoft Corporation | Methods for point compression for Jacobians of hyperelliptic curves |
GB2400699B (en) * | 2003-04-17 | 2006-07-05 | Hewlett Packard Development Co | Security data provision method and apparatus and data recovery method and system |
US20050018850A1 (en) * | 2003-06-26 | 2005-01-27 | Micorsoft Corporation | Methods and apparatuses for providing short digital signatures using curve-based cryptography |
-
2004
- 2004-09-15 JP JP2006534980A patent/JPWO2006030496A1/ja not_active Withdrawn
- 2004-09-15 US US10/572,500 patent/US20070053506A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2006030496A2 (ja) | 2006-03-23 |
US20070053506A1 (en) | 2007-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4575283B2 (ja) | 暗号装置、復号装置、プログラム及び方法 | |
US7904498B2 (en) | Modular multiplication processing apparatus | |
JP4752313B2 (ja) | 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム | |
JP4197710B2 (ja) | 暗号装置、復号装置、プログラム及び方法 | |
JP4682852B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JPWO2006030496A1 (ja) | 楕円曲線暗号演算装置、楕円曲線を用いた演算装置の演算方法および楕円曲線上の点のスカラー倍演算をコンピュータに実行させるプログラム | |
JP5929905B2 (ja) | 順序保存暗号化システム、装置、方法及びプログラム | |
US11190340B2 (en) | Efficient unified hardware implementation of multiple ciphers | |
JP5852518B2 (ja) | 認証暗号化装置、認証復号装置、およびプログラム | |
JP2007041461A (ja) | 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置 | |
JP5300373B2 (ja) | 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム | |
JP2005316267A (ja) | 楕円曲線ペアリング演算装置 | |
JP5354994B2 (ja) | 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム | |
JP4692022B2 (ja) | 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム | |
CN114868175A (zh) | 最终幂计算装置、配对运算装置、加密处理装置、最终幂计算方法和最终幂计算程序 | |
JP2017223822A (ja) | 暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法 | |
JP5038868B2 (ja) | 鍵共有方法、第1装置、第2装置、及びそれらのプログラム | |
JP5554357B2 (ja) | 演算装置 | |
JP4629972B2 (ja) | ベクトル演算装置及び分割値演算装置及び楕円曲線スカラー倍演算装置及び楕円暗号演算装置及びベクトル演算方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP4193176B2 (ja) | 楕円曲線整数倍演算装置、ならびにその装置を利用可能な鍵生成装置、暗号化装置および復号装置 | |
WO2022009384A1 (ja) | 最終べき計算装置、ペアリング演算装置、暗号処理装置、最終べき計算方法及び最終べき計算プログラム | |
JP2022117083A (ja) | 演算システム、演算方法およびプログラム | |
KR100400198B1 (ko) | 공개키 암호시스템을 위한 특정 빅인티저에 대한 고속나머지 연산 방법 | |
JP2003228285A (ja) | 楕円曲線スカラ倍演算装置 | |
JP2007212768A (ja) | 楕円曲線暗号における事前計算テーブル作成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20080717 |