JP4688886B2 - 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号システム及び楕円曲線暗号パラメータ生成プログラム - Google Patents
楕円曲線暗号パラメータ生成装置及び楕円曲線暗号システム及び楕円曲線暗号パラメータ生成プログラム Download PDFInfo
- Publication number
- JP4688886B2 JP4688886B2 JP2007553794A JP2007553794A JP4688886B2 JP 4688886 B2 JP4688886 B2 JP 4688886B2 JP 2007553794 A JP2007553794 A JP 2007553794A JP 2007553794 A JP2007553794 A JP 2007553794A JP 4688886 B2 JP4688886 B2 JP 4688886B2
- Authority
- JP
- Japan
- Prior art keywords
- elliptic curve
- unit
- pairing
- integer
- prime
- 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.)
- Active
Links
- 239000000654 additive Substances 0.000 claims description 56
- 230000000996 additive effect Effects 0.000 claims description 56
- 108010014172 Factor V Proteins 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 description 539
- 238000000034 method Methods 0.000 description 201
- 230000008569 process Effects 0.000 description 98
- 230000008859 change Effects 0.000 description 38
- 238000013507 mapping Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 22
- 230000000694 effects Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 125000004122 cyclic group Chemical group 0.000 description 6
- 238000010187 selection method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 241000269319 Squalius cephalus Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 238000007873 sieving Methods 0.000 description 2
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000002620 method output Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7204—Prime number generation or prime number testing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Description
一方、楕円曲線上のペアリング演算を、コンピュータなどの演算装置を用いて行う場合、その計算量が多く、演算能力の低い演算装置を用いて、いかに速くペアリング演算を行うかが課題となっている。この課題を解決する方法として、非特許文献1や非特許文献2が提案されている。
また、これらの暗号技術の安全性は、現存するコンピュータなどの演算装置の演算能力によれば、暗号を解読するのに膨大な時間がかかることに基づいている。
M.Scott、"Faster pairings using an elliptic curve endomorphism"、to appear in Indocrypt 2005、Springer Verlag、(2005). M.Scott、"Scaling security in pairing−based protocols"、available at http://eprint.iacr.org、2005. 境、大岸、笠原、"楕円曲線上のペアリングを用いた暗号方式"、2001年 暗号と情報セキュリティシンポジウム(SCIS 2001).
群位数のビット数は、楕円曲線ペアリング暗号の安全性を決める要素の一つである。
しかし、コンピュータなどの演算装置の演算能力は日々向上しており、暗号の安全性が脅かされる可能性がある。
したがって、群位数の形式または群位数を固定して楕円曲線上のペアリング演算を高速化した場合であっても、暗号の安全性レベルを容易に変更できるようにしておかなければならないという課題がある。
情報を記憶する記憶装置と、
情報を出力する出力装置と、
演算を行う演算装置と、
上記演算装置を用いて、素数rを生成し、上記記憶装置を用いて、生成した上記素数rを記憶する素数生成部と、
上記素数生成部が生成した素数rを上記記憶装置から読み出し、上記演算装置を用いて、楕円曲線暗号演算における有限体K=GF(q)上における楕円曲線E上の点からなる加法群E(K)の群位数として上記素数rが適切であるか否かを判断する群位数適性判断部と、
楕円曲線暗号演算における有限体K上の楕円曲線E上の点からなる加法群E(K)の群位数として上記素数rが適切であると、上記群位数適性判断部が判断した場合に、
上記素数生成部が生成した素数rを上記記憶装置から読み出し、上記出力装置を用いて、上記素数rを群位数候補として出力する群位数候補出力部と、
を有することを特徴とする。
上記素数生成部が生成した素数rを上記記憶装置から読み出し、上記演算装置を用いて、上記素数rから1を減じて、自然数r−1を求め、上記記憶装置を用いて、求めた上記自然数r−1を記憶し、
上記演算装置を用いて、所定の範囲内の自然数kを生成し、上記記憶装置を用いて、生成した上記自然数kを記憶し、
求めた上記自然数r−1と、生成した上記自然数kとを上記記憶装置から読み出し、上記演算装置を用いて、上記自然数kが上記自然数r−1の約数であるか否かを判断し、
上記所定の範囲内のすべての上記自然数kが上記自然数r−1の約数であると判断した場合に、
上記演算装置を用いて、楕円曲線暗号演算における有限体K上の楕円曲線E上の点からなる加法群E(K)の群位数として上記素数rが適切であると判断する
ことを特徴とする。
上記演算装置を用いて、2以上、所定の閾値2kmax以下の偶数の範囲内で上記自然数kを生成し、上記記憶装置を用いて、生成した上記自然数kを記憶する
ことを特徴とする。
上記演算装置を用いて、上記素数rのハミング重みが所定の値以下である素数rを生成し、上記記憶装置を用いて、生成した上記素数rを記憶する
ことを特徴とする。
上記演算装置を用いて、自然数λを生成し、上記記憶装置を用いて、生成した上記自然数λを記憶し、
生成した上記自然数λを上記記憶装置から読み出し、上記演算装置を用いて、所定の2次多項式f(x)=ax2+bx+c(ただし、a、b、cは整数、xは変数)に、上記自然数λを代入して、整数f(λ)=aλ2+bλ+cを求め、上記記憶装置を用いて、求めた上記整数f(λ)を記憶し、
求めた上記整数f(λ)を上記記憶装置から読み出し、上記演算装置を用いて、上記整数f(λ)の素因数rを求め、上記記憶装置を用いて、求めた上記素因数rを記憶し、
求めた上記素因数rを上記記憶装置から読み出し、上記出力装置を用いて、上記素因数rを素数rとして出力する
ことを特徴とする。
求めた上記整数f(λ)と、求めた上記素因数rとを上記記憶装置から読み出し、上記演算装置を用いて、上記整数f(λ)を上記素因数rで除して、商n=f(λ)/rを求め、上記記憶装置を用いて、求めた上記商nを記憶し、
求めた上記商nを上記記憶装置から読み出し、上記演算装置を用いて、上記商nが所定の整数以下であるか否かを判断し、
上記商nが所定の整数以下であると判断した場合に、
求めた上記素因数rを上記記憶装置から読み出し、上記出力装置を用いて、上記素因数rを素数rとして出力する
ことを特徴とする。
上記所定の2次多項式f(x)として、x2+x+1またはx2+1を用い、上記演算装置を用いて、上記整数f(λ)を求め、上記記憶装置を用いて、求めた上記整数f(λ)を記憶する
ことを特徴とする。
上記演算装置を用いて、上記自然数λのハミング重みが所定の値以下である自然数λを生成し、上記記憶装置を用いて、生成した上記自然数λを記憶する
ことを特徴とする。
特定の形式を有する群位数に特化することにより、楕円曲線ペアリング演算を高速化した楕円曲線暗号演算装置に、群位数として設定することができる素数rを、上記演算装置を用いて生成し、上記記憶装置を用いて、生成した上記素数rを記憶する
ことを特徴とする。
有限体K上の楕円曲線E上の自己準同型写像φを利用することにより、楕円曲線ペアリング演算を高速化した楕円曲線暗号演算装置に、群位数として設定することができる素数rを、上記演算装置を用いて生成し、上記記憶装置を用いて、生成した上記素数rを記憶する
ことを特徴とする。
上記自己準同型写像φとして、効率的に演算可能な自己準同型写像を利用することにより、楕円曲線ペアリング演算を高速化した楕円曲線暗号演算装置に、群位数として設定することができる素数rを、上記演算装置を用いて生成し、上記記憶装置を用いて、生成した上記素数rを記憶する
ことを特徴とする。
上記自己準同型写像φとして、上記自己準同型写像φがなす環の判別式Dの絶対値が所定の値よりも小さい自己準同型写像を利用することにより、楕円曲線ペアリング演算を高速化した楕円曲線暗号演算装置に、群位数として設定することができる素数rを、上記演算装置を用いて生成し、上記記憶装置を用いて、生成した上記素数rを記憶する
ことを特徴とする。
上記楕円曲線Eとして、Y2=X3+bを用い、上記自己準同型写像φとして、(x,y)→(βx,y)(ただし、βは有限体K上における1の原始3乗根)を利用することにより、楕円曲線ペアリング演算を高速化した楕円曲線暗号演算装置に、群位数として設定することができる素数rを、上記演算装置を用いて生成し、上記記憶装置を用いて、生成した上記素数rを記憶する
ことを特徴とする。
上記楕円曲線Eとして、Y2=X3+aXを用い、上記自己準同型写像φとして、(x,y)→(−x,iy)(ただし、iは有限体K上における1の原始4乗根)を利用することにより、楕円曲線ペアリング演算を高速化した楕円曲線暗号演算装置に、群位数として設定することができる素数rを、上記演算装置を用いて生成し、上記記憶装置を用いて、生成した上記素数rを記憶する
ことを特徴とする。
楕円曲線ペアリング演算における有限体Kの拡大体K’=GF(qk)の拡大次数kを所定の範囲内で変化させた場合に、上記楕円曲線暗号演算装置が特化した群位数の形式と、同一の形式を有する素数rを、上記出力装置を用いて、上記群位数候補として出力する
ことを特徴とする。
楕円曲線ペアリング演算における有限体Kの拡大体K’=GF(qk)の拡大次数kを所定の範囲内で変化させた場合に、同一の群位数として設定することができる素数rを、上記出力装置を用いて、上記群位数候補として出力する
ことを特徴とする。
楕円曲線ペアリング演算における有限体Kの拡大体K’=GF(qk)の拡大次数kを2以上、所定の閾値2kmax以下の偶数の範囲内で変化させた場合に、同一の群位数として設定することができる素数rを、上記出力装置を用いて、上記群位数候補として出力する
ことを特徴とする。
情報を入力する入力装置と、
上記入力装置を用いて、楕円曲線ペアリング演算における有限体Kの拡大体K’=GF(qk)の拡大次数kを入力し、上記記憶装置を用いて、入力した上記拡大次数kを記憶する拡大次数入力部と、
上記入力装置を用いて、上記群位数候補出力部が出力した群位数候補のなかから選択した素数rを群位数rとして入力し、上記記憶装置を用いて、入力した上記群位数rを記憶する群位数入力部と、
上記群位数入力部が入力した群位数rと、上記拡大次数入力部が入力した拡大次数kとを上記記憶装置から読み出し、上記演算装置を用いて、上記群位数rと、上記拡大次数kとに基づいて、上記楕円曲線暗号演算における有限体Kの位数qを定め、上記記憶装置を用いて、定めた上記有限体Kの位数qを記憶する有限体位数決定部と、
定めた上記有限体Kの位数qを上記記憶装置から読み出し、上記出力装置を用いて、上記有限体Kの位数qを出力する有限体位数出力部と、
を有することを特徴とする。
所定の既約多項式pol(x)を用いて有限体Kを拡大体K’へ拡大することにより、楕円曲線ペアリング演算を高速化した楕円曲線暗号演算装置に、有限体Kの位数として設定することができる位数qを、上記演算装置を用いて定め、上記記憶装置を用いて、定めた上記有限体Kの位数qを記憶する
ことを特徴とする。
既約多項式pol(x)として、pol(x)=xk−γ(ただし、xは有限体K上における変数、γは有限体Kの乗法群K*の元)を用いて有限体Kを拡大体K’へ拡大することにより、楕円曲線ペアリング演算を高速化した楕円曲線暗号演算装置に、有限体Kの位数として設定することができる位数qを、上記演算装置を用いて定め、上記記憶装置を用いて、定めた上記有限体Kの位数qを記憶する
ことを特徴とする。
上記演算装置を用いて、上記有限体Kの位数として設定することができる位数の候補qを生成し、上記記憶装置を用いて、生成した上記位数の候補qを記憶し、
上記拡大次数入力部が入力した拡大次数kと、上記位数の候補qとを上記記憶装置から読み出し、上記演算装置を用いて、以下の3つの条件:
(1)拡大次数kのすべての素因数が、上記有限体Kの元γの位数Lの約数であること。
(2)拡大次数kのすべての素因数が、(q−1)/Lの約数でないこと。
(3)拡大次数kが4の倍数である場合には、q−1も4の倍数であること。
のすべてを満たす有限体Kの元γが存在するか否かを判断し、
上記演算装置を用いて、上記3つの条件すべてを満たす有限体Kの元γが存在すると判断した場合に、
上記演算装置を用いて、求めた上記位数の候補qを、上記有限体Kの位数として設定することができると判断する
ことを特徴とする。
上記演算装置を用いて、上記有限体Kの位数として設定することができる位数の候補qを生成し、上記記憶装置を用いて、生成した上記位数の候補qを記憶し、
上記拡大次数kを上記記憶装置から読み出し、上記演算装置を用いて、上記拡大次数kを素因数分解して、すべての素因数πを求め、記憶装置を用いて、求めたすべての素因数πを記憶し、
求めた上記すべての素因数πを記憶装置から読み出し、上記演算装置を用いて、上記すべての素因数πの積Πを計算し、上記記憶装置を用いて、計算した積Πを記憶し、
上記拡大次数kを上記記憶装置から読み出し、上記演算装置を用いて、上記拡大次数kが4の倍数であるか否かを判断して、上記拡大次数kが4の倍数であると判断した場合に、計算した上記積Πを上記記憶装置から読み出し、上記演算装置を用いて、上記積Πを2倍して、積2Πを計算し、上記記憶装置を用いて、計算した積2Πを、新たな積Πとして記憶し、
生成した上記位数の候補qを上記記憶装置から読み出し、上記演算装置を用いて、上記位数の候補qから1を減じて、整数q−1を計算し、上記記憶装置を用いて、計算した上記整数q−1を記憶し、
計算した上記整数q−1と、計算した上記積Πとを記憶装置から読み出し、上記演算装置を用いて、上記整数q−1が上記積Πの倍数であるか否かを判断し、
上記整数q−1が上記積Πの倍数であると判断した場合に、
計算した上記整数q−1と、計算した上記積Πとを上記記憶装置から読み出し、上記演算装置を用いて、上記整数q−1を上記積Πで除して、商N=(q−1)/Lを計算し、上記記憶装置を用いて、求めた上記商Nを記憶し、
計算した上記商Nと、求めた上記すべての素因数πとを上記記憶装置から読み出し、上記演算装置を用いて、上記商Nが上記素因数πの倍数であるか否かを判断し、
上記すべての素因数πについて、上記商Nが上記素因数πの倍数でないと判断した場合に、
上記演算装置を用いて、生成した上記位数の候補qを、上記有限体Kの位数として設定することができると判断する
ことを特徴とする。
情報を入力する入力装置と、
情報を記憶する記憶装置と、
演算を行う演算装置と、
上記入力装置を用いて、楕円曲線暗号演算における有限体K=GF(q)の位数qを入力し、上記記憶装置を用いて、入力した上記位数qを記憶する有限体位数入力部と、
上記入力装置を用いて、楕円曲線暗号演算における有限体K=GF(q)上における楕円曲線E上の点からなる加法群E(K)の群位数であって、特定の形式を有する群位数rを入力し、上記記憶装置を用いて、入力した上記群位数rを記憶する群位数入力部と、
上記有限体位数入力部が入力した位数qと、上記群位数入力部が入力した群位数rとを上記記憶装置から読み出し、上記演算装置を用いて、上記位数qと、上記群位数入力部が入力した群位数rとに基づいて、特定の形式を有する群位数に特化することにより高速化した楕円曲線ペアリング演算により、楕円曲線ペアリング演算を行う楕円曲線ペアリング演算部と、
を有することを特徴とする。
有限体K上における楕円曲線E上の自己準同型写像φを利用することにより高速化した楕円曲線ペアリング演算により、上記演算装置を用いて、楕円曲線ペアリング演算を行う
ことを特徴とする。
上記自己準同型写像φとして、効率的に演算可能な自己準同型写像を利用することにより高速化した楕円曲線ペアリング演算により、上記演算装置を用いて、楕円曲線ペアリング演算を行う
ことを特徴とする。
上記自己準同型写像φとして、上記自己準同型写像φがなす環の判別式Dの絶対値が所定の値よりも小さい自己準同型写像を利用することにより高速化した楕円曲線ペアリング演算により、上記演算装置を用いて、楕円曲線ペアリング演算を行う
ことを特徴とする。
上記楕円曲線Eとして、Y2=X3+bを用い、
上記自己準同型写像φとして、(x,y)→(βx,y)(ただし、βは有限体K上における1の原始3乗根)を利用することにより高速化した楕円曲線ペアリング演算により、上記演算装置を用いて、楕円曲線ペアリング演算を行う
ことを特徴とする。
上記楕円曲線Eとして、Y2=X3+aXを用い、
上記自己準同型写像φとして、(x,y)→(−x,iy)(ただし、iは有限体K上における1の原始4乗根)を利用することにより高速化した楕円曲線ペアリング演算により、上記演算装置を用いて、楕円曲線ペアリング演算を行う
ことを特徴とする。
情報を入力する入力装置と、
情報を記憶する記憶装置と、
演算を行う演算装置と、
上記入力装置を用いて、楕円曲線暗号演算における有限体K=GF(q)の位数qを入力し、上記記憶装置を用いて、入力した上記位数qを記憶する有限体位数入力部と、
上記有限体位数入力部が入力した位数qを上記記憶装置から読み出し、上記演算装置を用いて、上記位数qと、楕円曲線暗号演算における有限対K=GF(q)上における楕円曲線E上の点からなる加法群E(K)の群位数として、あらかじめ定めた特定の群位数rとに基づいて、上記特定の群位数rに特化することにより高速化した楕円曲線ペアリング演算により、楕円曲線ペアリング演算を行う楕円曲線ペアリング演算部と、
を有することを特徴とする。
情報を記憶する記憶装置と、情報を出力する出力装置と、演算を行う演算装置とを有するコンピュータを、
上記演算装置を用いて、素数rを生成し、上記記憶装置を用いて、生成した上記素数rを記憶する素数生成部と、
上記素数生成部が生成した素数rを上記記憶装置から読み出し、上記演算装置を用いて、楕円曲線暗号演算における有限体K=GF(q)上における楕円曲線E上の点からなる加法群E(K)の群位数として上記素数rが適切であるか否かを判断する群位数適性判断部と、
楕円曲線暗号演算における有限体K上の楕円曲線E上の点からなる加法群E(K)の群位数として上記素数rが適切であると、上記群位数適性判断部が判断した場合に、
上記素数生成部が生成した素数rを上記記憶装置から読み出し、上記出力装置を用いて、上記素数rを、群位数候補として出力する群位数候補出力部と、
を有する楕円曲線暗号パラメータ生成装置として機能させることを特徴とする。
情報を入力する入力装置と、情報を記憶する記憶装置と、演算を行う演算装置とを有するコンピュータを、
上記入力装置を用いて、楕円曲線暗号演算における有限体K=GF(q)の位数qを入力し、上記記憶装置を用いて、入力した上記位数qを記憶する有限体位数入力部と、
上記入力装置を用いて、楕円曲線暗号演算における有限体K=GF(q)上における楕円曲線E上の点からなる加法群E(K)の群位数であって、特定の形式を有する群位数rを入力し、上記記憶装置を用いて、入力した群位数rを記憶する群位数入力部と、
上記有限体位数入力部が入力した位数qと、上記群位数入力部が入力した群位数rとを上記記憶装置から読み出し、上記演算装置を用いて、上記位数qと、上記群位数rとに基づいて、特定の形式を有する群位数に特化することにより高速化した楕円曲線ペアリング演算により、楕円曲線ペアリング演算を行う楕円曲線ペアリング演算部と、
を有する楕円曲線暗号演算装置として機能させることを特徴とする。
情報を記憶する記憶装置と、
情報を出力する出力装置と、
演算を行う演算装置と、
上記演算装置を用いて、素数rを生成し、上記記憶装置を用いて、生成した上記素数rを記憶する素数生成部と、
上記素数生成部が生成した素数rを上記記憶装置から読み出し、上記演算装置を用いて、楕円曲線暗号演算における有限体K=GF(q)上における楕円曲線E上の点からなる加法群E(K)の群位数として上記素数rが適切であるか否かを判断する群位数適性判断部と、
楕円曲線暗号演算における有限体K上の楕円曲線E上の点からなる加法群E(K)の群位数として上記素数rが適切であると、上記群位数適性判断部が判断した場合に、
上記素数生成部が生成した素数rを上記記憶装置から読み出し、上記出力装置を用いて、上記素数rを群位数候補として出力する群位数候補出力部と、
を有するので、
楕円曲線暗号の安全性のレベルを、容易に変更することが可能な群位数の候補を求めることができるという効果を奏する。
実施の形態1を、図1〜図11を用いて説明する。
ここで、利用者Bは、公開鍵yが利用者Aに対応するものであるか検証する必要がある。すなわち、公開鍵yが本当に利用者Bが公開したものであるという保証をする必要がある。そのような保証が得られなければ、悪意の第三者が自己の秘密鍵x’に対応する公開鍵y’を、あたかも利用者Bのものであるかのようにして公開し、利用者Aがそれを知らずに公開鍵y’を用いて暗号化した暗号文を受信して、自己の秘密鍵x’で復号することによって、盗聴が可能となってしまうからである。
そのため、従来は、PKI(Public Key Infrastructure)というインフラストラクチャを用いて、利用者と公開鍵との対応を保証することを行っていた。
センタ300は、楕円曲線暗号パラメータ510を生成し、公開する。
楕円曲線暗号演算装置200a,200bは、センタ300が公開した楕円曲線暗号パラメータ510を取得し、記憶する。
楕円曲線暗号演算装置200bは、自己のID(Identifier)情報521を公開する。
センタ300は、楕円曲線暗号演算装置200bが公開したID情報521を取得し、取得したID情報521に基づいて、楕円曲線暗号演算装置200bの秘密鍵531を生成する。
センタ300は、生成した秘密鍵531を、秘密裏に楕円曲線暗号演算装置200bに対して送信する。
楕円曲線暗号演算装置200bは、センタ300が送信した秘密鍵531を受信し、記憶する。
楕円曲線暗号演算装置200aは、算出した公開鍵を用いて、楕円曲線暗号演算装置200bに対して送信したい平文601を暗号化し、暗号化した暗号文651を楕円曲線暗号演算装置200bに対して送信する。
楕円曲線暗号演算装置200bは、楕円曲線暗号演算装置200bが送信した暗号文651を受信し、記憶した秘密鍵531を用いて復号して、元の平文601を取得する。
この実施の形態で説明する楕円曲線暗号パラメータ生成装置100及び楕円曲線暗号演算装置200は、楕円曲線ペアリング演算を用いる方式の楕円曲線暗号システムに用いられるものであり、その一例として公開されたID情報に基づく楕円曲線暗号システムについて説明する。しかし、楕円曲線ペアリング演算を用いる方式の楕円曲線暗号システムであれば、公開されたID情報に基づく楕円曲線暗号システムに限らず、他の楕円曲線暗号システムについても、適用することが可能である。
ここで、離散対数問題とは、代数群(G,+)(加法が定義され、加法について群であるものとする。以下、代数群Gという)の2つの要素(元)g1、g2に対して、g1=mg2(mは、自然数。mg2は、g2をm回加算したもの)を満たすようなmを求める問題である。代数群Gの要素の数(位数。要素の位数と区別するため、群位数ともいう)が大きい場合、離散対数問題の多くは、計算量的に、解くことが非常に困難になることが知られている。この事実を利用して公開鍵暗号を設計することができる。
1つは、代数群Gとして、有限体K上における楕円曲線E上の点がなす加法群E(K)を考えた場合の離散対数問題である。
もう1つは、代数群Gとして、有限体K上における楕円曲線E上の2点P、Qの直積を、有限体K’上に写像したペアリングe(P,Q)がなす乗法群K’*を考えた場合の離散対数問題である。
ペアリングを用いたIDベース公開鍵暗号の多くは、双線形ディフィー−ヘルマン(Diffie−Hellman)問題の困難性に基づいて構築されている。双線形ディフィー−ヘルマン問題とは、加法群E(K)の要素であるaP、bP、cQ(a,b,cは、整数。P,Qは、有限体K上における楕円曲線E上の点)が既知である場合に、e(P,Q)abcを計算せよという問題である。
双線形ディフィー−ヘルマン問題の困難性を確保するには、楕円曲線離散対数問題の困難性と有限体乗法群離散対数問題の困難性を確保する必要がある。
楕円曲線離散対数問題の困難性は、有限体K上における楕円曲線E上の点(および無限遠点O)がなす加法群E(K)の要素の数(群位数)rと関連しており、rのビット長が長いほど、楕円曲線離散対数問題を解くことが困難になる。
また、有限体乗法群離散問題の困難性は、有限体K’の要素の数(位数)qkと関連しており、qkのビット長が長いほど、有限体乗法群離散問題を解くことが困難になる。ここで、qは、有限体Kの要素の数(位数)であり、kは自然数である。
したがって、双線形ディフィー−ヘルマン問題の困難性を確保するためには、加法群E(K)の群位数r及び有限体K’の位数qkのビット長が適当な長さになるようにパラメータを設定する必要がある。
なお、有限体GF(q)の0以外の元には、必ず乗法における逆元が存在し(有限体の定義による)、有限体GF(q)の元の数は有限であるから、有限回の計算で逆元を求めることができる。
これをコンピュータ上で実現する場合、有限体GF(pn)の元は、例えば、係数ai(iは、0〜n−1の整数)をn個の整数の配列a[n]として記憶装置に記憶することにより、実現可能である。
これをコンピュータ上で実現する場合、有限体GF(pn)の元は、n個の整数の配列a[n]として記憶装置に記憶されているので、配列a[n]のi番目(iは、0〜n−1の整数)の要素a[i]と、配列b[n]のi番目の要素b[i]とを加算して(必要なら、pで割った余りを求め)、新たな配列c[n]のi番目の要素c[i]として記憶装置に記憶することにより、有限体GF(pn)における加算を、コンピュータなどの演算装置を用いて計算することができる。
これをコンピュータ上で実現する場合、有限体GF(pn)の元は、n個の整数の配列a[n]として記憶装置に記憶されているので、配列a[n]のi番目(iは、0〜n−1の整数)の要素a[i]から配列b[n]のi番目の要素b[i]を減じて(必要なら、pで割った余りを求め)、新たな配列c[n]のi番目の要素c[i]として記憶装置に記憶することにより、有限体GF(pn)における減算を、コンピュータなどの演算装置を用いて計算することができる。
数学的には、既約でありさえすれば、どのような既約多項式pol(x)を選択しても同型の有限体となることが知られているが、これをコンピュータ上で実現する場合には、既約多項式として、pol(x)=xn−γ(γ(=a0)は、0〜p−1の整数)を用いることが多い。pol(x)=xn−γを既約多項式に用いることにより、乗算の結果を既約多項式pol(x)で割った余りを求める演算が高速化できるからである。
これをコンピュータ上で実現するためには、有限体GF(pn)の元の乗法における逆元を求める必要がある。このため、有限体GF(pn)上で定義される四則演算のうち、除算が最も計算量が多く、時間がかかる。しかし、有限体GF(q)の0以外の元には、必ず乗法における逆元が存在し(有限体の定義による)、有限体GF(q)の元の数は有限であるから、有限回の計算で逆元を求めることができる。したがって、有限体GF(pn)における除算を、コンピュータなどの演算装置を用いて計算することができる。
有限体GF(q)上における楕円曲線Eとは、X,Y,a,bを有限体GF(q)の要素であるとして、有限体GF(q)上で定義された四則演算に基づいて、方程式Y2=X3+aX+bを満たす点(X,Y)の集合である。ここで、有限体GF(q)の位数qは、q=pn(pは、2でない素数。nは自然数)である。
また、E(K)には、加法が定義されている。
すなわち、E(K)の元である点Pと、同じくE(K)の元である点Qとに基づいて、同じくE(K)の元である点Rを求める演算が定義されており、これを楕円曲線上の加法と呼ぶ。
楕円曲線上の加法の単位元(零元)は、無限遠点Oである。
E(K)の元である点P=(X,Y)について、楕円曲線上の加法の逆元−Pは、−P=(X,−Y)である。
楕円曲線上の加法R=P+Qは、以下のようにして求める。
P≠Qの場合、点Pと点Qとを通る直線lと、楕円曲線Eとの交点R’を求め、その逆元−R’を点Pと点Qの和R=P+Qとする。
P=Qの場合、点Pにおける楕円曲線Eの接線を、直線lとして、点Rを求める。
上記説明した通り、コンピュータなどの演算装置を用いて、有限体K上で定義された四則演算を計算することができるので、コンピュータなどの演算装置を用いて、楕円曲線上の加法を計算することも可能である。
特に、加法群E(GF(q))の位数(要素の数)が、大素数rで割り切れる場合が暗号的に重要である。
そのとき、r|qk−1(qk−1がrで割り切れること、すなわち、qk−1がrの倍数であることを表す)となる最小のk(kは、自然数)に対し、有限体GF(qk)に値をとるペアリングe(P,Q)が定義される。
このペアリングを利用した公開鍵暗号を楕円ペアリング暗号(または楕円曲線ペアリング暗号)という。
他方、kが大きいと、暗号演算(鍵の生成、平文の暗号化、暗号文の復号など)の演算量が増加する。特に、ユビキタス社会においては、ICカードなど、演算能力が低い演算装置を備えた装置においても、暗号演算を行う必要があるため、あまりkを大きくすることはできない。
その条件を満たすように、楕円曲線を選択することが従来の楕円曲線パラメータ生成とは異なるペアリング暗号実現のための課題である。
そのため、安全性と演算能力とのバランス点も、日々変化する。したがって、kを適当な大きさに設定したあとで、安全性を高くする必要が生じた場合に、kを容易に変更できるようにしておくことが望まれる。
図2において、楕円曲線暗号演算装置200は、システムユニット910、CRT(Cathode Ray Tube)やLCD(液晶)の表示画面を有する表示装置901、キーボード902(K/B)、マウス903、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット910は、コンピュータであり、ファクシミリ機932、電話器931とケーブルで接続され、また、ローカルエリアネットワーク942(LAN)、ゲートウェイ941を介してインターネット940に接続されている。
図3において、楕円曲線暗号演算装置200は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置ともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、表示装置901、キーボード902、マウス903、FDD904、CDD905、プリンタ装置906、スキャナ装置907、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
ファイル群924には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明するデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital Versatile Disk)等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
楕円曲線暗号パラメータ入力部210は、有限体位数入力部211、拡大次数入力部212、楕円曲線係数入力部213、群位数入力部214などを有する。
なお、のちに述べるように、拡大次数kが偶数の場合に、ペアリングe(・,・)を求める演算を高速化できるので、kは偶数であることが好ましい。
なお、暗号文のもととなるデータ(平文)は、外部から入力したものでなく、楕円曲線暗号演算装置200の内部で生成したものでもよい。例えば、楕円曲線暗号演算装置200の状態を示すデータや、外部から入力した暗号文を復号して得たデータなどを、記憶装置を用いて記憶しておいて、これに基づいて、暗号文生成部242が暗号文を生成してもよい。
なお、復号したデータ(平文)は、必ずしも外部に出力する必要はなく、楕円曲線暗号演算装置200の内部で使用してもよい。例えば、楕円曲線暗号演算装置200に対するなんらかのコマンド(例えば、楕円曲線暗号パラメータの設定を変更する命令など)として解釈し、それに基づく動作をしてもよい。
暗号演算部230は、有限体演算部231、楕円曲線演算部232、楕円曲線ペアリング演算部233などを有する。
楕円曲線ペアリング演算部233は、点入力部331、第一演算部332、補助演算部333、第二演算部334、べき乗演算部335、ペアリング出力部336などを有する。
第一演算部332は、演算装置を用いて、読み出した点P及び点Qから、ペアリング演算の前半部分を行い、途中経過fを求める。なお、途中経過fは、有限体GF(qk)上の値である。
第一演算部332は、記憶装置を用いて、求めた途中経過fを記憶する。
補助演算部333は、記憶装置を用いて、点A,点B,点Qおよび整数iを記憶する。
補助演算部333は、入力した点A,点B,点Qおよび整数iを記憶装置から読み出す。
補助演算部333は、演算装置を用いて、読み出した点A,点B,点Qから、第一演算部332がペアリング演算をするのに必要な値gと、第二演算部334がペアリング演算をするのに必要な値sとを計算する。ここで、g及びsは、GF(qk)上の値である。
補助演算部333は、記憶装置を用いて、計算した値g及びsを記憶する。このとき、sは、有限体GF(qk)の元の配列のi番目の要素として、記憶する。
補助演算部333は、記憶したgを、第一演算部332に対して出力する。
第二演算部334は、演算装置を用いて、読み出した途中経過f及び値sから、ペアリング演算の後半部分を行い、途中経過f’を求める。なお、途中経過f’は、有限体GF(qk)上の値である。
第二演算部334は、記憶装置を用いて、求めた途中経過f’を記憶する。
べき乗演算部335は、演算装置を用いて、途中経過f’の(qk−1)/r乗を計算する。なお、qk−1はrの倍数なので、この演算は、f’の整数乗を求めることになる。したがって、f’を有限回掛け合わせることにより計算できる。
べき乗演算部335は、記憶装置を用いて、計算結果を記憶する。
ペアリング出力部336は、読み出した計算結果を、楕円曲線ペアリング演算部233を呼び出したブロックに対して、出力する。
図6及び図7は、高速化されていない計算方式におけるテイトペアリングのペアリング値を演算する演算処理の流れの一例を示すフローチャート図である。
この演算処理は、ミラー(Miller)アルゴリズムと呼ばれるアルゴリズムを用いている。
ここで、uは、加法群E(GF(q))の群位数rのビット長を表す。rの2進展開をru−1…r0(r0が最下位ビット)と記す。すなわち、r=Σri2i(iは、0〜u−1の整数。ri=0または1)である。
具体的には、点A=(XA,YA)とすると、方程式lは、(3XA 2+a)(X−XA)−2YA(Y−YA)=0であるから、これを変形し、(3XA 2+a)X−2YAY+(−3XA 3+aXA+2YA 2)=0となる。したがって、楕円曲線ペアリング演算部は、演算装置を用いて、c=3XA 2+a、d=−2YA、e=−3XA 3+aXA+2YA 2)を計算する。
楕円曲線ペアリング演算部は、記憶装置を用いて、有限体GF(qk)の元c,d,eを記憶するための記憶領域を確保し、計算した方程式lの係数c,d,eを記憶する。
具体的には、交点R’=(XR’,YR’)とすると、方程式vは、X−XR’=0である。したがって、楕円曲線ペアリング演算部は、演算装置を用いて、u=XR’を計算する。
楕円曲線ペアリング演算部は、記憶装置を用いて、有限体GF(qk)の元uを記憶するための記憶領域を確保し、計算した方程式vの係数uを記憶する。
具体的には、点A=(XA,YA)、点P=(XP,YP)とすると、方程式lは、(YP−YA)(X−XA)−(XP−XA)(Y−YA)=0であるから、これを変形し、(YP−YA)X−(XP−XA)Y+(XAYP−XPYA)=0となる。したがって、楕円曲線ペアリング演算部は、演算装置を用いて、c=YP−YA、d=XP−XA、e=XAYP−XPYAを計算する。
楕円曲線ペアリング演算部は、記憶装置を用いて、計算した方程式lの係数c,d,eを記憶する。
具体的には、交点R’=(XR’,YR’)とすると、方程式vは、X−XR’=0である。したがって、楕円曲線ペアリング演算部は、演算装置を用いて、u=XR’を計算する。
楕円曲線ペアリング演算部は、記憶装置を用いて、計算した方程式vの係数uを記憶する。
ここで、qk−1はrの倍数であるから、(qk−1)/rは、整数である。したがって、楕円曲線ペアリング演算部は、演算装置を用いて、fを(qk−1)/r回掛け合わせることにより、fの(qk−1)/r乗を計算する。
楕円曲線ペアリング演算部は、記憶装置を用いて、計算したfの(qk −1)/r乗を、新たなfとして記憶する。
ここで、ハミング重みとは、ある整数を2進表記した場合に、ビット値が1であるビットの数をいう。
この計算手順によれば、群位数rのmビット目のビット値rmが1の場合には、S118〜S126を実行するが、rmが0の場合は、S118〜S126を実行しない。
したがって、群位数rのハミング重みが小さいほうが、全体的な処理のステップ数が少なくなり、ペアリング値の計算時間が短くなる。
図8〜図10は、この実施の形態における楕円曲線ペアリング演算部233による、テイトペアリングのペアリング値を演算する演算処理の流れの一例を示すフローチャート図である。
この演算処理は、効率的に演算可能な準同型写像を活用したミラー・ライト(Miller lite:軽量化されたミラー)アルゴリズムと呼ばれるアルゴリズムを用いている。
また、整数λは、λ=2c1+2c2(c1,c2は、0以上の整数。c1>c2)であるものとする。すなわち、整数λのハミング重みは、2である。
このとき、r=λ2+λ+1=22c1+2c1+c2+1+22c2+2c1+2c2+1であるから、rのハミング重みは、6以下となる。
なお、この高速化手法を用いるためには、k/2が整数でなければならないことから、拡大次数kが偶数の場合に限られる。
楕円曲線上の点をスカラー倍した点(λP)は、点Pをλ回加算したものとして定義される。これを愚直に計算するなら、楕円曲線上の加算をλ回演算する必要がある。多少効率的なアルゴリズムを用いても、楕円曲線上の加算を最大(2log2λ)回演算する必要がある。
したがって、φ(P)を求める演算が、楕円曲線上の点をスカラー倍した点λPを求める演算よりも、演算量が少ないのであれば、λPを求める代わりにφ(P)を求める演算を行うことにより、楕円曲線上の点のスカラー倍を高速に計算することが可能になる。
このように、φ(P)を求める演算の演算量が比較的少なくてすむような自己準同型写像φを、効率的に演算可能な自己準同型写像という。
しかし、例えば、加法群E(K)の群位数rがr=λ2+λ+1である場合には、自己準同型写像φ:(x,y)→(βx,y)(x,yは、楕円曲線E:Y2=X3+b上の点の座標)が、φ(P)=λPの関係を満たすことが知られている。ここで、βは、有限体GF(q)上における1の原始3乗根、すなわち、β3=1かつβ≠1である有限体GF(q)の元である。
一般的に、2次多項式f(x)=ax2+bx+c(a,b,cは整数)に整数λを代入して得た整数f(λ)=aλ2+bλ+cが、群位数rの倍数である場合、φ(P)=λPの関係を満たす効率的に演算可能な自己準同型写像φが存在する。ただし、そのような写像が自己準同型写像であるためには、楕円曲線Eの係数a,bの間に所定の関係があることが必要である。
ここで自己準同型写像φがなす環の判別式Dとは、有限体GF(qk)上における楕円曲線E上の任意の点Pについて、aφ2(P)+bφ(P)+cP=O(a,b,cは、整数。φ2(P)は、点Pを写像した点φ(P)を更に写像した点φ(φ(P))。Oは、無限遠点)が成り立つとき、D=b2−4acにより求められる整数である。一般的に、判別式Dは負の値をとる。
また、自己準同型写像φが、φ:(x,y)→(−x,iy)である場合、任意の点Pについて、φ2(P)+P=Oが成り立つ。したがって、自己準同型写像φ:(x,y)→(−x,iy)の判別式Dは、D=02−4×1×1=−4である。
しかし、これは一例にすぎず、効率的に演算可能な自己準同型写像φとして、φ:(x,y)→(−x,iy)を用いてもよい。あるいは、他の自己準同型写像を用いてもよい。
なお、自己準同型写像がなす環の判別式Dの絶対値が小さい自己準同型写像φを用いるほうが、演算を高速化でき、好ましい。
第一演算部332は、記憶装置を用いて、有限体GF(qk)上における楕円曲線E上の点Aを記憶するための記憶領域を確保し、読み出した点Pを、点Aとして記憶する。
第一演算部332は、有限体GF(qk)上における楕円曲線E上の3つの点(点A、点A、点Q)と、整数jとを、補助演算部333に入力する。
補助演算部333は、記憶装置を用いて、計算した点Aを、新たな点Aとして記憶する。
補助演算部333は、記憶装置を用いて、値gを記憶するための記憶領域を確保し、計算した値gを記憶する。
補助演算部333は、記憶装置を用いて、値sを記憶するためにあらかじめ確保されている記憶領域のi番目(s[i])に、計算した値sを記憶する。
補助演算部333は、記憶装置を用いて、有限体GF(qk)上における楕円曲線E上の点A、点B、点Qおよび整数iを記憶するための記憶領域を確保し、入力した点A、点B、点Qおよび整数iを記憶する。
補助演算部333は、演算装置を用いて、読み出した点Aと点Bとを通る直線の方程式l:Y=mX+cを求める。
具体的には、点A=(XA,YA)、点B=(XB,YB)とすると、点A≠点Bの場合、補助演算部333は、演算装置を用いて、A−B 間の傾きm=(YB−YA)/(XB−XA)、Y切片c=(XAYB−XBYA)/(XB−XA)を計算する。
また、点A=点Bの場合、補助演算部333は、演算装置を用いて、点Aにおける楕円曲線Eの接線の方程式l:Y=mX+cを求める。
補助演算部333は、記憶装置を用いて、有限体GF(qk)上における値m,cを記憶するための記憶領域を確保し、求めた方程式lの係数m,cを記憶する。
補助演算部333は、演算装置を用いて、S282で求めた方程式lに基づいて、点Aと点Bとの和を計算する。
補助演算部333は、記憶装置を用いて、計算した点Aと点Bとの和を、新たな点Aとして記憶する。なお、これにより、補助演算部333を呼び出した第一演算部332側の点Aも書き換えられ、新たな点Aとなる。
補助演算部333は、演算装置を用いて、有限体GF(qk)上の値−YQ−YA−m(βXQ−XA)を計算する。ここで、(XA,YA)は、点Aの座標。(XQ,YQ)は、点Qの座標。βは、有限体GF(qk)上における1の原始3乗根である。
補助演算部333は、S281で入力した整数iを記憶装置から読み出す。
補助演算部333は、記憶装置を用いて、有限体GF(qk)上の値sを記憶するために確保した記憶領域のうち、i番目の記憶領域(s[i])に、計算した−YQ−YA−m(βXQ−XA)を記憶する。
補助演算部333は、演算装置を用いて、有限体GF(qk)上の値YQ−YA−m(XQ−XA)を計算する。ここで、(XA,YA)は、点Aの座標。(XQ,YQ)は、点Qの座標である。
補助演算部333は、記憶装置を用いて、有限体GF(qk)上の値gを記憶するための記憶領域を確保し、計算した値YQ−YA−m(XQ−XA)を、値gとして記憶する。
補助演算部333は、読み出した値gを、呼び出し元である第一演算部332に対して出力する。
第一演算部332は、演算装置を用いて、有限体GF(qk)上の値f2×gを計算する。
第一演算部332は、記憶装置を用いて、計算した値f2×gを、新たなペアリング値fとして記憶する。
第一演算部332は、演算装置を用いて、読み出した整数jに1を加え、整数j+1を計算する。
第一演算部332は、記憶装置を用いて、計算した整数j+1を、新たな整数jとして記憶する。
第一演算部332は、演算装置を用いて、読み出した整数iに1を加え、整数i+1を計算する。
第一演算部332は、記憶装置を用いて、計算した整数i+1を、新たな整数iとして記憶する。
第一演算部332は、演算装置を用いて、整数iがc1−c2以下であるかどうかをチェックする。i≦c1−c2であれば、S207に戻る。i>c1−c2であれば、S213へ進む。
第一演算部332は、有限体GF(qk)上における楕円曲線E上の3つの点(点A、点P、点Q)と、整数jとを、補助演算部333に入力する。
補助演算部333は、記憶装置を用いて、計算した点A、値g、値sを記憶する。
第一演算部332は、演算装置を用いて、有限体GF(qk)上の値f×gを計算する。
第一演算部332は、記憶装置を用いて、計算した値f×gを、新たなペアリング値fとして記憶する。
第一演算部332は、演算装置を用いて、読み出した整数jに1を加え、整数j+1を計算する。
第一演算部332は、記憶装置を用いて、計算した整数j+1を、新たな整数jとして記憶する。
第一演算部332は、有限体GF(qk)上における楕円曲線E上の3つの点(点A、点A、点Q)と、整数jとを、補助演算部333に入力する。
補助演算部333は、記憶装置を用いて、計算した点A、値g、値sを記憶する。
第一演算部332は、演算装置を用いて、有限体GF(qk)上の値f2×gを計算する。
第一演算部332は、演算装置を用いて、読み出した整数jに1を加え、整数j+1を計算する。
第一演算部332は、記憶装置を用いて、計算した整数j+1を、新たな整数jとして記憶する。
第一演算部332は、演算装置を用いて、読み出した整数iに1を加え、整数i+1を計算する。
第一演算部332は、記憶装置を用いて、計算した整数i+1を、新たな整数iとして記憶する。
第一演算部332は、演算装置を用いて、iがc2以下であるかどうかをチェックする。i≦c2であれば、S218に戻る。i>c2であれば、S224へ進む。
第一演算部332は、有限体GF(qk)上における楕円曲線E上の3つの点(点A、点P、点Q)と、整数0とを、補助演算部333に入力する。
補助演算部333は、記憶装置を用いて、計算した点A、値g、値sを記憶する。
第一演算部332は、演算装置を用いて、有限体GF(qk)上の値f×gを計算する。
第一演算部332は、記憶装置を用いて、計算した値f×gを、新たなペアリング値fとして記憶する。
第二演算部334は、記憶装置を用いて、有限体GF(qk)上の値hを記憶するための記憶領域を確保し、読み出したペアリング値fを、ペアリング値hとして記憶する。
第二演算部334は、演算装置を用いて、有限体GF(qk)上の値f2×s[j]を計算する。
第二演算部334は、記憶装置を用いて、計算した値f2×s[j]を、新たなペアリング値fとして記憶する。
第一演算部332は、演算装置を用いて、読み出した整数jに1を加え、整数j+1を計算する。
第一演算部332は、記憶装置を用いて、計算した整数j+1を、新たな整数jとして記憶する。
第一演算部332は、演算装置を用いて、読み出した整数iに1を加え、整数i+1を計算する。
第一演算部332は、記憶装置を用いて、計算した整数i+1を、新たな整数iとして記憶する。
第二演算部334は、演算装置を用いて、読み出した整数iがc1−c2以下であるかどうかをチェックする。i≦c1−c2であれば、S230に戻る。i>c1−c2であれば、S234へ進む。
第二演算部334は、演算装置を用いて、有限体GF(qk)上の値f×s[j]を計算する。
第二演算部334は、記憶装置を用いて、計算した値f×s[j]を、新たなペアリング値fとして記憶する。
第一演算部332は、演算装置を用いて、読み出した整数jに1を加え、整数j+1を計算する。
第一演算部332は、記憶装置を用いて、計算した整数j+1を、新たな整数jとして記憶する。
第二演算部334は、演算装置を用いて、有限体GF(qk)上の値f×hを計算する。
第二演算部334は、記憶装置を用いて、計算した値f×hを、新たなペアリング値fとして記憶する。
第二演算部334は、演算装置を用いて、有限体GF(qk)上の値f2×s[j]を計算する。
第二演算部334は、記憶装置を用いて、計算した値f2×s[j]を、新たなペアリング値fとして記憶する。
第二演算部334は、演算装置を用いて、読み出した整数jに1を加え、整数j+1を計算する。
第二演算部334は、記憶装置を用いて、計算した整数j+1を、新たな整数jとして記憶する。
第二演算部334は、演算装置を用いて、読み出した整数jに1を加え、整数j+1を計算する。
第二演算部334は、記憶装置を用いて、計算した整数i+1を、新たな整数iとして記憶する。
第二演算部334は、演算装置を用いて、読み出した整数iがc2以下であるかどうかをチェックする。i≦c2であれば、S238に戻る。i>c2であれば、S242へ進む。
べき乗演算部335は、演算装置を用いて、ペアリング値fの(qk−1)/r乗を計算する。
ここで、qk−1はrの倍数であるから、(qk−1)/rは、整数である。したがって、べき乗演算部335は、演算装置を用いて、ペアリング値fを(qk−1)/r回掛け合わせることにより、ペアリング値fの(qk−1)/r乗を計算する。
楕円曲線ペアリング演算部は、記憶装置を用いて、計算したfの(qk −1)/r乗を、新たなペアリング値fとして記憶する。
ペアリング出力部336は、読み出したペアリング値fを出力する。
ここで、群位数rは、r=λ2+λ+1であるから、rP=(λ2+λ+1)P=λ(λ+1)P+Pである。
なお、実際には、第二演算部334は、λP’+Pを求める演算を行っていない。ペアリング値を計算するためには、λP’+Pを求める過程で得られる値が必要となる。この値は、第一演算部332が(λ+1)Pを求める過程において、補助演算部333が既に計算して、値sとして記憶している。したがって、第二演算部334は、λP+Pを求める演算を行う必要がない。
r=λ2+λ+1であるから、λのビット長は、rのビット長の約半分である。したがって、(λ+1)P(あるいはλP)を求める演算は、rPを求める演算の約半分の計算量で出来ることとなり、計算が高速化できる。
これは、図6〜図7で説明したペアリング演算処理の繰り返しループにおいて、rm=0の場合の処理に相当する処理である。
すなわち、ここで説明した計算手順は、λのハミング重みが小さいことを利用して、図6〜図7で説明したペアリング演算処理の繰り返しループを展開し、条件分岐(図7のS117)をなくすことにより、ペアリング演算処理を高速化したものである。
しかし、λのハミング重みを1とすると、群位数rとして選択できる可能性のある整数が限られてしまう。群位数rは素数でなければならないからである。
また、上述したように、λのハミング重みが小さいほうが、ペアリング演算処理を高速化できる。
したがって、λのハミング重みは2とすることが、好ましい。
あるいは、群位数入力部214は、群位数rと、整数c1,c2とを、両方入力することとしてもよい。そのほうが、楕円曲線暗号演算装置200における計算量が減るので、楕円曲線暗号演算装置200が、演算能力の低い演算装置を備えている場合には、好ましい。
しかし、ペアリング演算を高速化するためには、ソフトウェア的に実現するよりも、上述した動作をするように組んだ専用の論理回路により、ハードウェア的に実現するほうが、好ましい。
特に、楕円曲線ペアリング演算部233をハードウェア的に実現する場合には、λのハミング重みを固定とするほうが、回路構成を簡略化できるので、更に、好ましい。
ここで、特定の形式を有する群位数rとは、ハミング重みが一定(例えば、2)の整数λについて、r=λ2+λ+1という関係を有する群位数rのことである。
更に一般化していえば、r=λ2+λ+1という関係に限らず、r=λ2+1、あるいは、r=f(λ)(f(λ)は、係数が整数の2次多項式f(x)に整数λを代入した値)という関係であってもよい。
その場合、整数λ=2c1+2c2も固定されるので、群位数r=λ2+λ+1も一つの値に固定される。
その場合、群位数rはあらかじめ定められているので、群位数入力部214は必要ない。
これらの困難性は、現存するコンピュータの計算能力によるものであるから、コンピュータの計算能力が向上すれば、安全性を確保するため、困難性のレベルを上げる必要がある。
しかし、ここで説明したように、ペアリング演算を高速化するために群位数rを固定してしまうと、群位数rのビット長を変えることはできない。
したがって、楕円曲線離散対数問題の困難性のレベルを上げることはできなくなる。
したがって、拡大次数kを大きくすることにより、有限体乗法群離散対数問題の困難性のレベルを上げることができる。
また、有限体演算部231は、拡大次数kが変更になっても、有限体GF(qk)上で定義された四則演算を行うことができるよう構成しておくことが重要である。
したがって、拡大次数kを可変できるように構成するためには、有限体演算部231の構成を複雑にする必要がある。
しかし、楕円曲線暗号演算装置において、楕円曲線暗号の安全性を確保することは、なによりも重要なことであるから、拡大次数kを可変できるように有限体演算部231を構成することは必要である。
そのような群位数r、位数qを選択する方法については、実施の形態2で詳しく述べる。
実施の形態2を、図12〜図25を用いて説明する。
この実施の形態における楕円曲線暗号システム800の全体構成は、実施の形態1において、図1を用いて説明したものと同様であるので、ここでは説明を省略する。
また、この実施の形態における楕円曲線暗号パラメータ生成装置100の外観及びハードウェア資源は、実施の形態1において図2及び図3を用いて説明した楕円曲線暗号演算装置200と同様であるので、ここでは説明を省略する。
楕円曲線暗号パラメータ生成装置100は、素数生成部110、群位数適性判断部120、群位数候補出力部130、群位数選択部140、群位数出力部150、群位数入力部160、拡大次数入力部170、有限体位数決定部180、有限体位数出力部190などを有する。
素数生成部110は、記憶装置を用いて、生成した素数rを記憶する。
群位数適性判断部120は、演算装置を用いて、読み出した素数rが、加法群E(GF(q))の群位数として適切であるか否かを判断する。
群位数適性判断部120は、記憶装置を用いて、判断結果を記憶する。
群位数候補出力部130は、演算装置を用いて、群位数適性判断部120が、加法群E(GF(q))の群位数として適切であると判断した素数rを選択する。
群位数候補出力部130は、出力装置を用いて、選択した素数rを、群位数候補として出力する。
群位数選択部140は、記憶装置を用いて、選択した群位数rを記憶する。
例えば、群位数候補出力部130が、表示装置901(出力装置の一例)を用いて、群位数候補を表示し、管理者が表示された群位数候補のなかから選択した群位数rを入力することにより、群位数選択部140が群位数rを選択する。
あるいは、群位数選択部140は、群位数候補出力部130が出力した群位数候補のなかから、群位数rをランダムに選択することとしてもよい。
群位数出力部150は、出力装置を用いて、読み出した群位数rを出力する。
例えば、群位数出力部150は、インターネットを介して、楕円曲線暗号演算装置200に対して、群位数rを送信する。
群位数入力部160は、記憶装置を用いて、入力した群位数rを記憶する。
拡大次数入力部170は、記憶装置を用いて、入力した拡大次数kを記憶する。
有限体位数決定部180は、演算装置を用いて、読み出した群位数rと拡大次数kとに基づいて、有限体GF(q)の位数qを決定する。
有限体位数決定部180は、記憶装置を用いて、決定した有限体GF(q)の位数qを記憶する。
有限体位数出力部190は、出力装置を用いて、読み出した有限体GF(q)の位数qを出力する。
例えば、有限体位数出力部190は、インターネットを介して、楕円曲線暗号演算装置200に対して、有限体GF(q)の位数qを送信する。
有限体GF(q)上における楕円曲線E上の点のペアリングが有限体GF(q)のk次拡大体である有限体GF(qk)に値をとるためには、qk−1がrの倍数である必要がある。そのためには、有限体GF(r)の乗法群GF(r)*が1の原始k乗根を持つ必要があるので、r−1がkの倍数でなければならない。
実施の形態1で説明したように、拡大次数kが偶数である場合に、楕円曲線ペアリング演算を高速化できるので、拡大次数kとして、例えば、2、4、6、・・・を選択できるようにする。
群位数適性判断部120は、記憶装置を用いて、入力した素数rを記憶する。
群位数適性判断部120は、演算装置を用いて、整数(r−1)/2を計算する。ここで、rは3以上の素数であるから、(r−1)/2は整数となる。
群位数適性判断部120は、記憶装置を用いて、整数r’を記憶するための記憶領域を確保し、計算した整数(r−1)/2を、整数r’として記憶する。
群位数適性判断部120は、演算装置を用いて、読み出した整数r’が、読み出した整数kの倍数であるか否かをチェックする。r’がkの倍数であれば、S385へ進む。r’がkの倍数でなければ、S388へ進む。
群位数適性判断部120は、演算装置を用いて、整数kに1を加えて、整数k+1を計算する。
群位数適性判断部120は、記憶装置を用いて、計算した整数k+1を、新たな整数kとして記憶する。
群位数適性判断部120は、演算装置を用いて、整数kが整数kmax以下であるか否かを判断する。k≦kmax である場合には、S384に戻る。k>kmaxである場合には、S387へ進む。
群位数適性判断部120は、記憶装置を用いて、生成したデータ(判断結果)を記憶する。
その後、S389へ進む。
群位数適性判断部120は、記憶装置を用いて、生成したデータ(判断結果)を記憶する。
群位数適性判断部120は、読み出した判断結果を出力する。
また、整数λのハミング重みは、2であるものとする。したがって、λ=2c1+2c2(c1,c2は、0以上の整数。c1>c2)である。しかし、これは一例に過ぎず、λのハミング重みは2以外の値であってもよい。また、λのハミング重みを、入力装置を用いて入力し、記憶装置を用いて記憶することにより、可変できるように構成してもよい。
素数生成部110は、演算装置を用いて、整数2c1+2c2を計算する。で
素数生成部110は、記憶装置を用いて、整数λ を記憶するための記憶領域を確保し、計算した整数2c1+2c2を、整数λとして記憶する。
素数生成部110は、演算装置を用いて、整数λ2+λ+1を計算する。
素数生成部110は、記憶装置を用いて、整数rを記憶するための記憶領域を確保し、計算した整数λ2+λ+1を、整数rとして記憶する。
素数生成部110は、演算装置を用いて、読み出した整数rが素数かどうかをチェックする。整数rが素数でない場合は、S307へ進む。整数rが素数であれば、S305へ進む。
群位数適性判断部120は、演算装置を用いて、入力した素数rが群位数として適切であるか否かを判断する。素数rが群位数として適切でないと判断した場合は、S307へ進む。素数rが群位数として適切であると判断した場合は、S306へ進む。
群位数候補出力部130は、出力装置を用いて、読み出した素数rを、群位数候補として出力する。
素数生成部110は、演算装置を用いて、整数c2に1を加えて、整数c2+1を計算する。
素数生成部110は、記憶装置を用いて、計算した整数c2+1を、新たな整数c2として記憶する。
素数生成部110は、演算装置を用いて、読み出した整数c2が整数c1より小さいか否かをチェックする。c2<c1であれば、S302に戻る。c2≧c1であれば、処理を終了する。
すなわち、rとλの関係式として、例えば、r=f(λ)(f(λ)は、2次多項式f(x)=ax2+bx+c(a,b,cは、整数)に、整数λを代入した値。すなわち、f(λ)=aλ2+bλ+c)を用いるとすると、S303でr=λ2+λ+1を計算する代わりに、以下の処理S303aを行う。
素数生成部110は、演算装置を用いて、整数aλ2+bλ+cを計算する。
素数生成部110は、記憶装置を用いて、整数rを記憶するための記憶領域を確保し、計算した整数aλ2+bλ+cを、整数rとして記憶する。
その場合、S304でrが素数であるかを判断する代わりに、例えば、以下の処理S304aを行う。
素数生成部110は、演算装置を用いて、読み出した整数rを素因数分解する。
素数生成部110は、演算装置を用いて、整数rの素因数分解のなかから、もっとも大きい素数を選択する。
素数生成部110は、記憶装置を用いて、選択した素数を、素数rとして記憶する。
その場合、S304の処理は、例えば、上記処理S304aの次に、以下の処理S304b,S304cを加えたものとなる。
素数生成部110は、演算装置を用いて、f(λ)/rを計算する。
素数生成部110は、記憶装置を用いて、整数である商nを記憶するための記憶領域を確保し、計算したf(λ)/rを、商nとして記憶する。
素数生成部110は、演算装置を用いて、読み出した商nが、所定の整数nmax以下であるか否かを判断する。
n≦nmaxであると判断した場合には、S305へ進む。n>nmaxであると判断した場合には、S307へ進む。
また、S304cにおける所定の整数nmaxは、あらかじめ定められた定数であってもよい。あるいは、入力装置を用いてnmaxを入力し、記憶装置を用いて記憶しておいてもよい。
群位数選択部140が選択した群位数rは、群位数出力部150が出力する。
あるいは、群位数出力部150が出力した群位数rに基づいて、その群位数rに特化することにより楕円曲線ペアリング演算を高速化した楕円曲線暗号演算装置200を製造してもよい。その場合には、あとから群位数rを変更することができなくなるが、拡大次数kを変更することにより、暗号の安全性のレベルを、あとから変更することができる。
拡大次数入力部170は、入力装置を用いて、拡大次数kを入力する。
拡大次数kは、楕円曲線暗号の管理者が定め、拡大次数入力部170に入力してもよい。あるいは、楕円曲線暗号に対する攻撃の危険性を検知する危険性検知装置を設け、危険性検知装置が、攻撃の危険性が高まったと判断した場合に、拡大次数kを変更して、拡大次数入力部170に入力する装置を設けてもよい。
ここで説明する処理の流れは、コックス・ピンチ(Cocks−Pinch)法と呼ばれるアルゴリズムを用いている。
有限体位数決定部180は、記憶装置を用いて、有限体GF(r)上の値gを記憶するための記憶領域を確保し、求めた1の原始k乗根を、値gとして記憶する。
有限体位数決定部180は、演算装置を用いて、読み出した値gを2で除して、有限体GF(r)上の値g/2を計算する。
有限体位数決定部180は、記憶装置を用いて、整数ωを記憶するための記憶領域を確保し、計算した有限体GF(r)上の値g/2を、整数ωとして記憶する。
ここで、群位数rは素数であるから、有限体GF(r)上の値は、整数として扱うことができる。
有限体位数決定部180は、演算装置を用いて、有限体GF(r)上の値(2ω−1)/√Dを計算する。
ここで、整数Dは、群位数rを法とした平方剰余であるから、√Dは、有限体GF(r)上の値であり、有限体GF(r)上の四則演算を用いて、値(2ω−1)/√Dを計算することができる。
有限体位数決定部180は、記憶装置を用いて、整数f0を記憶するための記憶領域を確保し、計算した有限体GF(r)上の値(2ω−1)/√Dを、整数f0として記憶する。
有限体位数決定部180は、演算装置を用いて、整数ω2+ω+(1−(f0+j×r)2×D)/4を計算する。
ここで、Dを4で割った余りは1であるから、(1−(f0+j×r)2×D)/4は整数となる。
有限体位数決定部180は、記憶装置を用いて、整数pを記憶するための記憶領域を確保し、計算した整数ω2+ω+(1−(f0+j×r)2×D)/4を、整数pとして記憶する。
有限体位数決定部180は、演算装置を用いて、読み出した整数pが素数かどうかをチェックする。整数pが素数でないなら、S408へ進む。整数pが素数であるなら、S407へ進む。
有限体位数決定部180は、演算装置を用いて、読み出した素数pが高速演算に適しているか否かを判断する。素数pが高速演算に適していないと判断したなら、S408へ進む。素数pが高速演算に適していると判断したなら、S409へ進む。
なお、判断の詳細については、後述する。
有限体位数決定部180は、演算装置を用いて、読み出した整数jに1を加えて、整数j+1を計算する。
有限体位数決定部180は、記憶装置を用いて、計算した整数j+1を、新たな整数jとして記憶する。
その後、S405に戻る。
有限体位数決定部180は、記憶装置を用いて、有限体GF(q)の位数qを記憶するための記憶領域を確保し、素数pを、有限体GF(q)の位数qとして記憶する。
有限体位数決定部180は、演算装置を用いて、整数ωを2倍して、整数2ωを計算する。
有限体位数決定部180は、記憶装置を用いて、整数tを記憶するための記憶領域を確保し、計算した整数2ωを、整数tととして記憶する。
実施の形態1で説明したように、有限体GF(qk)における乗算を高速に演算するため、既約多項式として、pol(x)=xk−γを用いる。
ここで、既約多項式pol(x)は、有限体GF(q)上で既約でなければならない。すなわち、pol(x)=xk−γ=0となる有限体GF(q)の元xが存在しないことが条件となる。
(1)拡大次数kのすべての素因数が、γの位数Lの約数であること。
(2)拡大次数kのすべての素因数が、(q−1)/Lの約数でないこと。
(3)拡大次数kが4の倍数である場合には、q−1も4の倍数であること。
以上3つの条件をすべて満たす場合に、xk−γが有限体GF(q)において既約となる。
有限体位数決定部180は、演算装置を用いて、拡大次数kを素因数分解し、拡大次数kのすべての素因数を求める。すなわち、k=Π(πi ai)(iは、0〜v−1の整数。vは、1以上の整数。πiは、素数。aiは、1以上の整数)となるπiを求める。
有限体位数決定部180は、記憶装置を用いて、整数vとv個の整数πiとを記憶するための記憶領域を確保し、求めた素因数の数vと求めた素因数πiとを記憶する。
なお、拡大次数kは偶数であるから、kの素因数には2が含まれる。ここでは、π0=2であるものとする。
有限体位数決定部180は、演算装置を用いて、拡大次数kの素因数πiの積Π(πi)(iは、0〜v−1の整数)を計算する。
有限体位数決定部180は、記憶装置を用いて、整数Πを記憶するための記憶領域を確保し、計算した積Π(πi)を、整数Πとして記憶する。
有限体位数決定部180は、演算装置を用いて、拡大次数kが4の倍数であるか否かを判断する。拡大次数kが4の倍数である場合には、S484へ進む。拡大次数kが4の倍数でない場合には、S485へ進む。
有限体位数決定部180は、演算装置を用いて、読み出した整数Πを2倍し、整数2Πを計算する。
有限体位数決定部180は、記憶装置を用いて、計算した整数2Πを、新たな整数Πとして記憶する。
有限体位数決定部180は、演算装置を用いて、読み出した素数pから1を減じて、整数p−1を計算する。
有限体位数決定部180は、記憶装置を用いて、整数p’を記憶するための記憶領域を確保し、計算した整数p−1を、整数p’として記憶する。
有限体位数決定部180は、演算装置を用いて、整数p’を整数Πで割り、商Nと余りMとを計算する。すなわち、p’=Π×N+M(N,Mは、整数。0≦M<N)となるN,Mを求める。
有限体位数決定部180は、記憶装置を用いて、整数N,Mを記憶するための記憶領域を確保し、計算した商Nと余りMとを記憶する。
有限体位数決定部180は、演算装置を用いて、読み出した余りMが0であるか否かを判断する。余りMが0である場合は、S488へ進む。余りMが0でない場合は、S493へ進む。
有限体位数決定部180は、演算装置を用いて、商Nが素因数πiの倍数であるか否かを判断する。Nがπiの倍数である場合には、S493へ進む。Nがπiの倍数でない場合には、S490へ進む。
有限体位数決定部180は、演算装置を用いて、整数iに1を加えて、整数i+1を計算する。
有限体位数決定部180は、記憶装置を用いて、計算した整数i+1を、新たな整数iとして記憶する。
有限体位数決定部180は、演算装置を用いて、整数iが素因数の数vより小さいか否かを判断する。i<vの場合には、S489に戻る。i≧vの場合には、S492へ進む。
有限体位数決定部180は、記憶装置を用いて、判断結果を示すデータを記憶する。
その後、高速演算適性判定処理を終了する。
有限体位数決定部180は、記憶装置を用いて、判断結果を示すデータを記憶する。
その後、高速演算適性判定処理を終了する。
乗法群GF(q)*の元の位数Lは、乗法群GF(q)*の位数q−1の約数である。また、乗法群GF(q)*の位数q−1の約数すべてについて、その約数を位数とする乗法群GF(q)*の元が存在する。
したがって、整数p’(=p−1)を整数Πで割った余りMが0である場合には、整数Πを位数とする乗法群GF(q)*の元γが存在する。
ここで、整数Πは、拡大次数kのすべての素因数の積であるから、拡大次数kのすべての素因数が、乗法群GF(q)*の元γの位数L(=Π)の約数である。
したがって、整数p’を整数Πで割った余りMが0である場合には、整数p’(=p−1)は、4の倍数である。
すなわち、S487において、上記説明した条件(3):拡大次数kが4の倍数である場合には、q−1も4の倍数であることも、同時にチェックしていることとなる。
すなわち、S487で存在を確認した、位数LがΠである乗法群GF(q)*の元γについて、拡大次数kのすべての素因数が、商N(=(p−1)/Π)の約数でないことを確認している。
楕円曲線ペアリング演算において、例えば、図10のS242の処理にあるように、有限体GF(qk)上の値のべき乗演算が必要である。べき乗演算は、コンピュータなどの演算装置で実現する場合、有限体GF(qk)上の乗算の繰り返しによって、実現される。
したがって、有限体GF(qk)上の乗算を高速化できれば、楕円曲線ペアリング演算を、大幅に高速化することができる。
これらの楕円曲線暗号パラメータを、有限体GF(q)の位数q、加法群E(GF(q))の群位数rに基づいて算出する方式については、既存の方式があるので、ここでは説明しない。
楕円曲線ペアリング演算で、楕円曲線ペアリングパラメータの一部p、rが、高速化可能な群位数rで、多くの整数kに対し、k|r−1と選ばれていることを特徴とする。
rがHamming重みが小さく選ばれていることを特徴とする。
rがある整数λに対し、整数係数のλの2次多項式を小さい整数で割った素数に選ばれていることを特徴とする。
rがある整数λに対し、λ2+λ+1を小さい整数で割った素数に選ばれている
ことを特徴とする。
整数λのHamming重みが小さく選ばれていることを特徴とする。
整数λのHamming重みが小さく選ばれていることを特徴とする。
楕円曲線ペアリング演算で、楕円曲線ペアリングパラメータの一部kを変更しても、高速性を保持することを特徴とする。
楕円曲線ペアリング演算で、楕円曲線上の準同型写像を利用した高速演算法を使用して、楕円曲線ペアリングパラメータの一部kを変更しても、高速性を保持することを特徴とする。
効率的に計算可能な準同型写像を用いたことを特徴とする。
自己準同型環の判別式Dの絶対値が小さい楕円曲線を用いたことを特徴とする。
楕円曲線にE:Y2=X3+bを、準同型写像に(x、y)→(βx、y)(βは1の3乗根)を用いたことを特徴とする。
楕円曲線にE:Y2=X3+aXを、準同型写像に(x、y)→(−x、iy)(iは1の4乗根)を用いたことを特徴とする。
拡大体GF(qk)が高速に計算可能であるqを用いたことを特徴とする。
多くのkに対して、
(1)kの各素因数は、0でないGF(q)の元γの乗法的位数Lを割り、(q−1)/Lを割り切らない
(2)もし、kが4で割り切れるなら、q−1は4で割り切れる
という2条件を満たすように、qが選ばれたことを特徴とする。
π1(=2)、π2、...、πvをkの素因数の集合とした時、4|kなら、q≡1 mod π1 2π2...πv、そうでないなら、q≡1 mod π1π2...πvとなるようにがk、qが選ばれたことを特徴とする。
楕円曲線ペアリング演算で、楕円曲線ペアリングパラメータの一部p、rが、高速化可能な群位数rで、多くの整数kに対し、k|r−1と選ばれていることを特徴とする。
rがHamming重みが小さく選ばれていることを特徴とする。
rがある整数λに対し、整数係数のλの2次多項式を小さい整数で割った素数に選ばれていることを特徴とする。
rがある整数λに対し、λ2+λ+1を小さい整数で割った素数に選ばれていることを特徴とする。
整数λのHamming重みが小さく選ばれていることを特徴とする。
整数λのHamming重みが小さく選ばれていることを特徴とする。
楕円曲線ペアリング演算で、楕円曲線ペアリングパラメータの一部kを変更しても、高速性を保持することを特徴とする。
楕円曲線ペアリング演算で、楕円曲線上の準同型写像を利用した高速演算法を使用して、楕円曲線ペアリングパラメータの一部kを変更しても、高速性を保持することを特徴とする。
効率的に計算可能な準同型写像を用いたことを特徴とする。
自己準同型環の判別式Dの絶対値が小さい楕円曲線を用いたことを特徴とする。
楕円曲線にE:Y2=X3+bを、準同型写像に(x、y)→(βx、y)(βは1の3乗根)を用いたことを特徴とする。
楕円曲線にE:Y2=X3+aXを、準同型写像に(x、y)→(−x、iy)(iは1の4乗根)を用いたことを特徴とする。
拡大体GF(qk)が高速に計算可能であるqを用いたことを特徴とする。
請求項22で、多くのkに対して、
(1)kの各素因数は、0でないGF(q)の元γの乗法的位数Lを割り、(q−1)/Lを割り切らない
(2)もし、kが4で割り切れるなら、q−1は4で割り切れる
という2条件を満たすように、qが選ばれたことを特徴とする。
π1(=2)、π2、...、πvをkの素因数の集合とした時、4|kなら、q≡1 mod π1 2π2...πv、そうでないなら、q≡1 mod π1π2...πvとなるようにがk、qが選ばれたことを特徴とする。
楕円曲線ペアリング演算で、楕円曲線ペアリングパラメータの一部p、rが、高速化可能な群位数rで、多くの整数kに対し、k|r−1と選ばれていることを特徴とする。
rがHamming重みが小さく選ばれていることを特徴とする。
rがある整数λに対し、整数係数のλの2次多項式を小さい整数で割った素数に選ばれていることを特徴とする。
rがある整数λに対し、λ2+λ+1を小さい整数で割った素数に選ばれていることを特徴とする。
整数λのHamming重みが小さく選ばれていることを特徴とする。
整数λのHamming重みが小さく選ばれていることを特徴とする。
楕円曲線ペアリング演算で、楕円曲線ペアリングパラメータの一部kを変更しても、高速性を保持することを特徴とする。
楕円曲線ペアリング演算で、楕円曲線上の準同型写像を利用した高速演算法を使用して、楕円曲線ペアリングパラメータの一部kを変更しても、高速性を保持することを特徴とする。
効率的に計算可能な準同型写像を用いたことを特徴とする。
自己準同型環の判別式Dの絶対値が小さい楕円曲線を用いたことを特徴とする。
楕円曲線にE:Y2=X3+bを、準同型写像に(x、y)→(βx、y)(βは1の3乗根)を用いたことを特徴とする。
楕円曲線にE:Y2=X3+aXを、準同型写像に(x、y)→(−x、iy)(iは1の4乗根)を用いたことを特徴とする。
拡大体GF(qk)が高速に計算可能であるqを用いたことを特徴とする。
多くのkに対して、
(1)kの各素因数は、0でないGF(q)の元γの乗法的位数Lを割り、(q−1)/Lを割り切らない
(2)もし、kが4で割り切れるなら、q−1は4で割り切れる
という2条件を満たすように、qが選ばれたことを特徴とする。
π1(=2)、π2、...、πvをkの素因数の集合とした時、4|kなら、q≡1 mod π1 2π2...πv、そうでないなら、q≡1 mod π1π2...πvとなるようにがk、qが選ばれたことを特徴とする。
楕円曲線ペアリング演算で、楕円曲線ペアリングパラメータの一部p、rが、高速化可能な群位数rで、多くの整数kに対し、k|r−1と選ばれていることを特徴とする。
rがHamming重みが小さく選ばれていることを特徴とする。
rがある整数λに対し、整数係数のλの2次多項式を小さい整数で割った素数に選ばれていることを特徴とする。
rがある整数λに対し、λ2+λ+1を小さい整数で割った素数に選ばれていることを特徴とする。
整数λのHamming重みが小さく選ばれていることを特徴とする。
整数λのHamming重みが小さく選ばれていることを特徴とする。
楕円曲線ペアリング演算で、楕円曲線ペアリングパラメータの一部kを変更しても、高速性を保持することを特徴とする。
楕円曲線ペアリング演算で、楕円曲線上の準同型写像を利用した高速演算法を使用して、楕円曲線ペアリングパラメータの一部kを変更しても、高速性を保持することを特徴とする。
効率的に計算可能な準同型写像を用いたことを特徴とする。
自己準同型環の判別式Dの絶対値が小さい楕円曲線を用いたことを特徴とする。
楕円曲線にE:Y2=X3+bを、準同型写像に(x、y)→(βx、y)(βは1の3乗根)を用いたことを特徴とする。
楕円曲線にE:Y2=X3+aXを、準同型写像に(x、y)→(−x、iy)(iは1の4乗根)を用いたことを特徴とする。
拡大体GF(qk)が高速に計算可能であるqを用いたことを特徴とする。
多くのkに対して、
(1)kの各素因数は、0でないGF(q)の元γの乗法的位数Lを割り、(q−1)/Lを割り切らない
(2)もし、kが4で割り切れるなら、q−1は4で割り切れる
という2条件を満たすように、qが選ばれたことを特徴とする。
π1(=2)、π2、...、πvをkの素因数の集合とした時、4|kなら、q≡1 mod π1 2π2...πv、そうでないなら、q≡1 mod π1π2...πvとなるようにがk、qが選ばれたことを特徴とする。
なお、以下で引用する文献は、次に示す参考文献番号によって示す。
[2] P.S.L.M. Barreto, H.Y. Kim, B. Lynn, and M. Scott, ”Efficient algorithms for pairing−based cryptosystems”, Crypto 2002, LNCS No. 2442, 354−368, Springer Verlag, 2002.
[3] P.S.L.M. Barreto, B. Lynn, and M. Scott, ”Constructing elliptic curves with prescribed embedding degrees”, SCN 2002, LNCS No. 2576, 263−273, Springer Verlag, 2002.
[4] P.S.L.M. Barreto, B. Lynn, and M. Scott, ”On the selection of pairing−friendly groups”, SAC 2003, LNCS No. 3006, 17−25, Springer Verlag, 2004.
[5] P.S.L.M. Barreto and M. Naehrig, ”Pairing−friendly elliptic curves of prime order,” available at http://eprint.iacr.org.
[6] I.F. Blake, G. Seroussi and N.P. Smart, Advances in Elliptic Curve Cryptography, LMS Lecture Note Series 317, 2004.
[7] D. Boneh and M. Franklin, ”Identity based encryption from the Weil pairing,” Crypto 2001, LNCS No. 2139, 213−229, Springer Verlag, 2002.
[8] D. Boneh, H. Shacham and B. Lynn, ”Short signatures from theWeil pairing,” Journal of Cryptology, vol. 17(4), 2004, 297−319.
[9] F. Brezing and A. Weng, ”Elliptic curves suitable for pairing based cryptography,” Designs, Codes and Cryptography, vol. 37(1), 133−141.
[10] R. Dupont, A. Enge and F. Morain, ”Building curves with arbitrary small MOV degree over finite prime fields,” Journal of Cryptology, vol. 18(2), 2005, 129−141.
[11] S.D. Galbraith, K. Harrison and D. Soldera, ”Implementing the Tate pairing”, ANTS V, LNCS No. 2369, 324−337, Springer Verlag, 2002.
[12] S.D. Galbraith, J. McKee and P. Valen,ca, ”Ordinary abelian varieties having small embedding degree,” Proceedings of a workshop on Mathematical Problems and Techniques in Cryptology, 46−58, 2005, available at http://eprint.iacr.org.
[13] R.P. Gallant, J.L. Lambert and S.A. Vanstone, ”Faster point multiplication on elliptic curves with efficient endomorphisms”, Crypto 2001, LNCS No. 2139, Springer Verlag, 190−200, 2001.
[14] T. Izu and T. Takagi, ”Efficient computations of the Tate pairing for the large MOV degrees,” ICISC 2002, LNCS No. 2587, 283−297, 2003.
[15] T. Kobayashi, K. Aoki and H. Imai, ”Efficient algorithms for Tate pairing,” in preproceedings of WISA 2005, 291−306, 2005.
[16] N. Koblitz and A. Menezes, ”Pairing−based cryptography at high security level,” Cryptography and Coding: 10th IMA International Conference, LNCS No. 3796, 13−36, Springer Verlag, 2005.
[17] R. Lidl and H. Niederreiter, Finite Fields, 2nd ed. Cambridge University Press, 1997.
[18] The Magma Computational Algebra System, v. 2.11, http://magma.maths.usyd.edu.au/.
[19] A. Miyaji, M. Nakabayashi, and S. Takano, ”New explicit conditions of elliptic curve traces for FRreduction”, IEICE Transactions on Fundamentals, E84−A(5), 1234−1243, 2001.
[20] D. Page, N.P. Smart and F. Vercauteren, ”A comparison of MNT curves and supersingular curves,” available at http://eprint.iacr.org.
[21] R. Sakai, K. Ohgishi and M. Kasahara, ”Cryptosystems based on pairing,” SCIS 2000.
[22] R. Sakai, K. Ohgishi and M. Kasahara, ”Cryptographic schemes based on pairing over elliptic curve,” 7B−2, SCIS 2001 (In Japanese).
[23] M. Scott, ”Computing the Tate pairing,” CT−RSA 2005, 293−304, Springer Verlag, 2005.
[24] M. Scott, ”Scaling security in pairing−based protocols,” available at http://eprint.iacr.org.
[25] M. Scott, ”Faster pairings using an elliptic curve with an efficient endomorphism,” to appear in Indocrypt 2005, available at http://eprint.iacr.org.
[26] M. Scott and P.S.L.M. Barreto, ”Compressed pairings”, Crypto 2004, 140−156, Springer Verlag, 2004.
[27] M. Scott and P.S.L.M. Barreto, ”Generating more MNT elliptic curves”, to appear in Designs, Codes and Cryptography, 2005, available at http://eprint.iacr.org.
[28] J. Solinas, ”ID−based digital signature algorithms”, available at http://www.cacr.math.uwaterloo.ca/conferences/2003/ecc2003.
Scottは、IDベース暗号等の安全性レベル変更を、埋め込み次数kの変更で実現することを提案している([24])。
また一方で、Scottは、大標数素体Fp上のordinary楕円曲線上での効率的なペアリング演算法を提案している([25])。
具体的には、用いる巡回群の位数r(素数)を、より多くのkに対しk|r−1を満たすように選択することが安全性変更という観点から重要であること等を指摘し、p、r、kの有効なパラメータ例も示す。
標数3も含む標数選択の他に、supersingular曲線かordinary曲線か、WeilペアリングかTateペアリングか、安全性を増すのに埋め込み次数kの変更によるか定義体サイズの変更によるかというような選択がある。
kの柔軟な変更を想定することで、パラメータ生成法にはCocks−Pinch法を用いた。
特にデータ長の観点からは、ρ(:=log2p/log2r)を小さくできる(ρ<2)MNT法等の曲線生成法が重要であるが、それらの方法には、適用可能なkに厳しい制限がある。
Cocks−Pinch法では、また、[25]の高速化可能なr(素数)を一つ固定した時には、適用可能なkが決まってくるので、本記載では、その場合に、より多くのkに対応できるrの選択法を述べ、そして、更なる高速化が可能なpの選択法に関しても述べる。
そして実際に、k=2の場合に、supersingular曲線よりも高速になったことが報告された。
その高速化では特殊なrを用いることが必要であるが、例えば、素数r=λ2+λ+1(λ=2c1+2c2、c1>c2)に、その手法は適用できる。
例えば、(c1,c2)=(80,16)の場合は、r−1が5を素因数に持たないので、k=10を有する楕円曲線Eを選択できない。
同様に、(c1,c2)=(96,83)の場合は、k=14のEがない。
しかし、(c1,c2)=(128,22)のrは、14以下の偶数k全てに対応できる。
例えば、π1(=2),π2,…,πvをkの素因数とすると、4|kならp≡1 mod π1 2・π2・…・πv、4|/k(4|kでない)ならp≡1 mod π1・π2・…・πvとなるようにpを選べばよい。
上記選択法によって得られたp、r、k、bのパラメータ例も示す。
Scott[24]は、[22、7]でのIDベース暗号等の安全性レベル変更を、埋め込み次数kの変更で実現することを提案している。
一方で、[25]では、大標数素体Fp上のordinary楕円曲線上での効率的なペアリング演算法が提案されている。
具体的には、用いる巡回群の位数r(素数)を、より多くのkに対応できるように選択する方法等を述べる。
ペアリング演算は通常の楕円曲線スカラー倍算より計算量を要するため、これまで多くの高速化研究がなされてきた(例えば、[11、15]等)。
また、安全性変更に対応したパラメータ設定が要求されるようになった。
ペアリング暗号の場合には、埋め込み次数kによって安全性を変更できる。
本記載では、[25]の高速実装性を保持したままkによる安全性変更を実現するパラメータを提示する。
一方で、多くのペアリング暗号系では、必ずしもdistortion写像を必要としないことや、ordinary曲線に対しても十分実用に適した高速化がなされるようになった(5節参照)。
例えば、[22、7]のIDベース公開鍵暗号は、distortion写像がなくても構成できる[20]。
また、Fp(p>3)上定義されたsupersingular曲線はk=2に限られ、k=3、4、6を持つsupersingular曲線は標数や同型類の個数に強い制限が課される。
よって、ordinaryで大標数素体Fp上の楕円曲線ペアリングパラメータは実用的に重要であり、本記載はその場合を扱う。
それにより、用いる巡回群位数r(又はrの形、6節参照)を固定して、pのビット長を同程度にしたままp、kを変更できる。
そして、より多くのkに対応できるrの選択法を述べると共に、高速化可能なpの選択法に関しても述べる。
6節で適切なr、pの設定法とその例を示した。
本記載での計算には全てMagma[18]を用いた。
本節の記法及び内容の詳細に関しては[6]IX章を参照。
そのrに対し、μr:={u∈Fp*|ur=1}とする。
また、kをr|pk−1となる最小のk(>0)として、K:=Fp kとするとμr⊂K*、E[r]⊂E(K)となる。
Weilペアリングer(・,・)及びTateペアリング<・,・>rは、非退化双線形写像
er(・,・):E[r]×E[r]→μr(⊂K)
<・,・>r:E[r]×E(K)/rE(K)→K*/(K*)r
である。
これを本記載ではTateペアリング値と呼び、それをe(・,・):E[r]×E(K)→K*と書くことにする。
[Q]がE(K)/rE(K)の元を表すとすると、M(P,Q)は<P,[Q]>rという類のある代表であり、e(P,Q)=M(P,Q)(pk−1)/rであり、Q∈E[r]の時には、er(P,Q)=M(P,Q)/M(Q,P)である。
これまで、Tateペアリング値計算の方がWeilペアリング値計算より効率的に計算可能とされてきたが、最近[16、24]、大きい偶数kに対しては、Weilペアリング値のpk/2−1乗値er(P,Q)pk/2−1の方が、ある条件を満たせばTateペアリング値より効率的又は同程度に計算可能であると指摘されていることを注意しておく。
以降、[25]に従い、Fをpのサイズ(〜log2p)、Gをrのサイズ(〜log2r)とする記法を用い、また、しばしば使用されているようにρ:=F/Gとする([16、5]等)。
Fpk *のDLPの安全性はkFにより、ECDLPの安全性はGによって規定されるので、ペアリング曲線の安全性を2数対(kF/G)で表す。
そのマッチングは、[16]では、(1024/160)、(3072/256)、(8192/384)であるのに対し、[25]では、(1024/160)、(2048/192)、(4096/224)であり、必ずしも一定でない。
Fpk *のDLPに対する数体ふるい法の計算時間見積もりがECDLPに対するPollard ρ法のように確定的でないことが、その一因である。
ペアリングを利用しない従来の素体上楕円曲線暗号では、その高速化のためにHamming重みの小さい素数pを用いることが一般的であった。
[16]では、ペアリング暗号用途で、p、r共にHamming重みが小さいパラメータが例示された。
一方で、[16]は、ペアリング曲線の場合には、Fpk *上のDLPに関し、そのような特殊な素数を用いることによって、特殊数体ふるい法に対して脆弱になる可能性が生じることも指摘している。
本記載では、その危険性を考慮して、法pのHamming重みは一般に選択した(表2(図23)参照)。
一方で、巡回群位数rのHamming重みは小さくして高速ペアリング演算を実現した。
DSA、DHのドメインパラメータp,q(s.t. q|p−1)もペアリングパラメータ(の一部)p,k,r(s.t. r|pk−1)と同様の安全性根拠(Fp *上のDLPに対する数体ふるい法への耐性と位数q巡回群上のDLPに対するPollard ρ法への耐性)を有しているが、FIPS等でのDSA、DHのp、q生成法はそれらパラメータができるだけランダムになるような方式であり、安全性変更に関して特段の注意はなされていないようであることを指摘しておく。
ペアリング曲線の構成法は、小さいkを実現するためにCM法が用いられる。
そして、kを固定した場合でも、ρとrに対する条件設定によって、大きく2通りのパラメータ生成法が考えられる。
それらを4.1、4.2各小節で振り返る。
4.3節では、安全性変更という点から述べる。
MNT法[19]、BW法[9]、BN法[5]は、ρ<2を実現するパラメータ生成法である。
その特性を表1にまとめる(図17)。
素数rを任意に設定するのが簡単でないことと表1のように全てのkに適用できない方法であることから本記載ではパラメータ生成法として採用しない(4.3節参照)。
しかし、[24]にも述べられているように、例えば、[8]での短署名にペアリングを用いるような場合には、ρ〜1であることが非常に重要であるので、4.1節の各方法が重要であることに注意しておく。
4.1節の方法と異なり、Cocks−Pinch法([3]、[6]Algorithm IX.4)を用いると、任意の素数rを設定可能である。
しかし、一般にCocks−Pinch法では、ρ>2である。
[6]p.211では、判別式DがD≡0 mod 4の場合のアルゴリズムが記述されているが、本記載では、5節以降、D=−3の場合を主に扱うのでD≡1 mod 4の場合のアルゴリズムを記述する(アルゴリズム1)(図18)。
また、[25]では、アルゴリズム1をk=2に特化した場合が記述されている。
4.3.1 実装環境に依存した各想定
[24]では、p、k、rをpのビット長Fを同程度(512ビット)にしたまま変更することを目的としている。
この方式によれば、例えば、Gが160、192、224と変更されてもFを512と固定化してパラメータ変更を行えるのでICカード等の小型機器で暗号コプロセッサ小型化に寄与できるとして、そのような安全性変更を念頭においている。
例えば、特定の素数r(の形)に対して、Fを2Gに十分近づけてパラメータ生成することで、[25]の高速化が適用できて、かつFをできるだけ小さくすることも想定する。
つまり、G=160、192、224に対してF〜320、384、448として、S/W実装など多くの実装環境で高速性を目指す状況も想定する。
Cocks−Pinch法を用いれば、特に、r(又はrの形、6節参照)は不変にして、pとkを変更することができる。
この変更法に関して、2点指摘する。
1点目は、5節で見るように、[25]の高速化手法はrに大きく依存しているが、r(又はrの形)を固定できれば、pとkを新たに暗号モジュールに与えるだけで高速性や少メモリ性を生かしたまま、kFに関する安全性変更ができる。
2点目は、3.1節に述べたように、パラメータGと比べて安全なkFの設定は、攻撃手法の特性上流動性が高い。
よって、kを容易に変更可能なCocks−Pinch法は安全性変更という面から4.1節の方法より望ましい変更法と言える。
5.2節で、[25]にある効率的な準同型写像を用いた高速Tateペアリング値計算法を述べる。
その演算法のアイデアは、ペアリングの入力P、Qが一般の場合にも有効であるが、5.1節で述べる特別なP、Qに対するMiller liteアルゴリズムの場合に、より効果を発揮するので、5.2節では、Miller liteアルゴリズムに準同型写像を活用することを述べる(アルゴリズム3、4、5)(図20、図21、図22)。
特に、以降では、kは偶数とする。
Miller liteアルゴリズムは、P(∈E(Fp))、Q(∈φ(E’(Fpk/2))⊂E(Fpk))に適用される。
ここで、E’はEのquadratic twistと呼ばれるものであり、平方非剰余d∈Fp *を用いてY2=X3+d2aX+d3bで与えられる。
また、φ:E’(Fpk/2)→E(Fpk)は、α2=dとなるα∈Fp2を用いて、(x’,y’)→(x,y)=(d−1x’、α−3y’)で与えられる。
このようにして得られた点(x、y)をQに用いることで、分母計算消去法等、幾つかの高速化手法が適用できる。
その詳細に関しては、[4]が詳しい。
[25]では、[13]での方法の類似として、ペアリング演算での高速準同型の活用法を提案した。
[25]では、D=−3、−4のCMを持つ楕円曲線
Y2=X3+b、p≡1 mod 3 (1)
Y2=X3+aX、p≡1 mod 4 (2)
上の高速ペアリング演算が提案された。
以降では、曲線(1)に関し述べるが、その議論は曲線(2)や|D|が小さいCM楕円曲線に適用可能である。
本記載では、Hamming重みがi(≧2)のλによりr=λ2+λ+1で与えられる素数rをriと表す。
[25]では特に161ビット素数r2(λ=280+216)を用いている。
[25]の方式(アルゴリズム3、4、5)では、そのような工夫を施す場合に約半分のテーブル値を事前に保持しておけばよい。
アルゴリズム5は、テーブル保持s[・]を削減しメモリが制限された環境で[25]の高速化手法を適用した方法である。
アルゴリズム2、3、4、5は全て、Jacobian座標を使用すれば(通常の楕円曲線スカラー倍算同様)除算なしにできる。
詳細は、例えば[24]参照。
また、定理1に基づきアルゴリズム3、4、5最終ステップのFpk内べき乗算の高速化が可能である素数pを選択する([16]5節)。
[16]5節定理2では、k=2i3jという形に特化した定理となっているが、本記載では、元の一般的な[17]定理3.75を引用する。
i. kの各素因数は、γ∈Fq *の位数を割り切り、(q−1)/lを割り切らない。
ii.もし、k≡0 mod 4であれば、q≡1 mod 4。
つまり、π1(=2),π2,…,πvをkの素因数とすると、例えば、素数pを4|kならp≡1 mod π1 2・π2・…・πvとし、4|/kならp≡1 mod π1・π2・…・πvとなるように選べばよい。
[16]にあるように、2項多項式を体拡大の定義式に選ぶことで、Fp−乗算回数を削減できると共に、定理1内のγを小さい要素に選ぶことで、拡大体内の還元計算での計算量を削減することが可能となる。
また、kが偶数であるので、Lucas数列を利用した高速化が適用できる([26、24])。
素数rが、埋め込み次数kの楕円曲線E/Fpに関しr|#E(Fp)となるためには、Fr *が1のk乗根を有する(i.e.、r|pk−1)ために、k|r−1となることが必要十分である。
5.2節で述べたr1に関しては、
r1−1=23・32・5・72・13・29・43・C0
である。
ここでC0は素因数が50以上のr1−1の因数を表す。
よって、r1に関しては、偶数k=2、4、6、8、10、12、14、…を埋め込み次数とするEを得ることができる。
λ=2112+2c2では素数r2が存在しなかったので、λ=2112+2c2+2c3(112>c2>c3)で素数r3を探索した所、93個存在した。
表4(図25)には、その中で23・32・5・7|r3−1であるものを示した。
表3、4での各Ciは、50以上の素因数の積を表す。
また、λ=2c1+2c2+2c3(c1>c2>c3)から得られるr3に対してアルゴリズム4、5を適当に補正するのは容易である。
これらパラメータを使用すれば、同じ(効率的な)アルゴリズム4、5を用いて、異なるpに対してペアリング演算を実行することができる。
これによって、パラメータp以外は置き換えることなく安全性を高めたペアリングパラメータに更新することができる。
表2のpはそのように選別された。
また、今回より最適化されたCocks−Pinch法計算ルーチンを用いればpのビット長を、より322に近づけることが可能と思われる。
本記載では、[24]と同様に、IDベース公開鍵暗号などのペアリング暗号の安全性を埋め込み次数kの変更により実現することを扱った。
[25]で提案された高速性や少メモリ性を有する演算法と両立する上記変更法を提案し、その際に重要な巡回群位数r(素数)の条件を示し、それに基づいて安全性変更に適した具体的なrも提示した。
本記載では、主にTateペアリングの場合を扱ったが、[16、24]にあるように、kが大きくなると、Weilペアリング(のpk/2−1乗)の方が効率的に計算可能であることが指摘されているので、そのことを考慮したパラメータ設定法、演算法の効率化が今後の課題(の一つ)である。
Claims (13)
- 演算を行う演算装置と、
上記演算装置を用いて、素数rを生成する素数生成部と、
上記素数生成部が生成した素数rに基づいて、上記演算装置を用いて、2以上所定の整数以下の自然数から選択した2つ以上の自然数kについて、上記自然数kが、上記素数rから1を減じた自然数r−1の約数であるか否かを判断し、すべての上記自然数kが上記自然数r−1の約数であると判断した場合に、楕円曲線暗号演算における有限体K=GF(q)上における楕円曲線E上の点からなる加法群E(K)の群位数として上記素数rが適切であると判断する群位数適性判断部と、
上記加法群E(K)の群位数として適切であると上記群位数適性判断部が判断した素数rに基づいて、上記演算装置を用いて、上記加法群E(K)の群位数が上記素数rとなるよう、上記有限体Kの位数qを決定する有限体位数決定部とを有することを特徴とする楕円曲線暗号パラメータ生成装置。 - 上記群位数適性判断部は、上記演算装置を用いて、2以上所定の整数以下の偶数から選択した2つ以上の自然数kについて、上記自然数kが、上記自然数r−1の約数であるか否かを判断することを特徴とする請求項1に記載の楕円曲線暗号パラメータ生成装置。
- 上記群位数適性判断部は、上記演算装置を用いて、2k min 以上2kmax以下の偶数であるすべての自然数kについて、上記自然数kが、上記自然数r−1の約数であるか否かを判断することを特徴とする請求項1に記載の楕円曲線暗号パラメータ生成装置。
- 上記楕円曲線暗号パラメータ生成装置は、更に、
情報を入力する入力装置と、
上記入力装置を用いて、上記楕円曲線E上の点のペアリング演算に用いる有限体Kの拡大体K’=GF(qk)の拡大次数kを入力する拡大次数入力部とを有し、
上記有限体位数決定部は、上記加法群E(K)の群位数として適切であると上記群位数適正判断部が判断した素数rと、上記拡大次数入力部が入力した拡大次数kとに基づいて、上記演算装置を用いて、上記加法群E(K)の群位数が上記素数rとなり、かつ、上記楕円曲線E上の点のペアリング演算に用いる拡大体K’の拡大次数が上記拡大次数kとなるよう、上記有限体Kの位数qを決定することを特徴とする請求項1乃至請求項3のいずれかに記載の楕円曲線暗号パラメータ生成装置。 - 上記有限体位数決定部は、上記演算装置を用いて、多項式pol(x)=xk−γ(ただし、xは有限体K上における変数。γは有限体Kの乗法群K*の元。)が、有限体K上で既約多項式となる元γが存在するよう、上記有限体Kの位数qを決定することを特徴とする請求項4に記載の楕円曲線暗号パラメータ生成装置。
- 上記有限体位数決定部は、上記演算装置を用いて、上記有限体Kの位数の候補qを生成し、
上記拡大次数入力部が入力した拡大次数kと、上記位数の候補qとに基づいて、上記演算装置を用いて、以下の3つの条件:
(1)拡大次数kのすべての素因数が、上記有限体Kの元γの位数Lの約数であること。
(2)拡大次数kのすべての素因数が、(q−1)/Lの約数でないこと。
(3)拡大次数kが4の倍数である場合には、q−1も4の倍数であること。
のすべてを満たす有限体Kの元γが存在するか否かを判断し、上記3つの条件すべてを満たす有限体Kの元γが存在すると判断した場合に、上記演算装置を用いて、生成した上記位数の候補qを、上記有限体Kの位数qに決定することを特徴とする請求項4に記載の楕円曲線暗号パラメータ生成装置。 - 上記有限体位数決定部は、上記演算装置を用いて、上記有限体Kの位数の候補qを生成し、上記拡大次数入力部が入力した拡大次数kに基づいて、上記演算装置を用いて、上記拡大次数kを素因数分解して、すべての素因数πを算出し、算出した上記すべての素因数πに基づいて、上記演算装置を用いて、上記すべての素因数πの積を計算し、上記拡大次数入力部が入力した拡大次数kに基づいて、上記演算装置を用いて、上記拡大次数kが4の倍数であるか否かを判断し、上記拡大次数kが4の倍数であると判断した場合に、上記演算装置を用いて、計算した上記すべての素因数πの積の2倍を計算して、積Πとし、上記拡大次数kが4の倍数でないと判断した場合に、計算した上記すべての素因数πの積を、積Πとし、
上記演算装置を用いて、生成した上記位数の候補qから1を減じた整数q−1が上記積Πの倍数であるか否かを判断し、上記整数q−1が上記積Πの倍数であると判断した場合に、計算した上記整数q−1と、計算した上記積Πとに基づいて、上記演算装置を用いて、上記整数q−1を上記積Πで除した商N=(q−1)/Lを計算し、計算した上記商Nと、求めた上記すべての素因数πとに基づいて、上記演算装置を用いて、上記商Nが上記素因数πの倍数であるか否かを判断し、上記すべての素因数πについて、上記商Nが上記素因数πの倍数でないと判断した場合に、上記演算装置を用いて、生成した上記位数の候補qを、上記有限体Kの位数qに決定することを特徴とする請求項4に記載の楕円曲線暗号パラメータ生成装置。 - 上記素数生成部は、上記演算装置を用いて、自然数λを生成し、生成した上記自然数λに基づいて、上記演算装置を用いて、所定の2次多項式f(x)=ax2+bx+c(ただし、a、b、cは整数、xは変数)に、上記自然数λを代入して、整数f(λ)=aλ2+bλ+cを算出し、算出した上記整数f(λ)に基づいて、上記演算装置を用いて、上記整数f(λ)の素因数rを算出し、算出した上記素因数rを上記素数rとすることを特徴とする請求項1乃至請求項7のいずれかに記載の楕円曲線暗号パラメータ生成装置。
- 上記素数生成部は、算出した上記整数f(λ)と、算出した上記素因数rとに基づいて、上記演算装置を用いて、上記整数f(λ)を上記素因数rで除した商n=f(λ)/rを算出し、算出した上記商nに基づいて、上記演算装置を用いて、上記商nが所定の整数以下であるか否かを判断し、上記商nが所定の整数以下であると判断した場合に、算出した上記素因数rを上記素数rとすることを特徴とする請求項8に記載の楕円曲線暗号パラメータ生成装置。
- 上記素数生成部は、上記所定の2次多項式f(x)として、f(x)=x2+x+1またはf(x)=x2+1を用い、上記演算装置を用いて、上記整数f(λ)を算出することを特徴とする請求項8または請求項9に記載の楕円曲線暗号パラメータ生成装置。
- 上記素数生成部は、上記演算装置を用いて、ハミング重みが所定の値以下である自然数λを生成することを特徴とする請求項8乃至請求項10のいずれかに記載の楕円曲線暗号パラメータ生成装置。
- 請求項1乃至請求項11のいずれかに記載の楕円曲線暗号パラメータ生成装置と、
群位数として適切であると上記群位数適正判断部が判断した素数rが群位数である加法群E(K)であって、上記有限体位数決定部が決定した位数qが位数である有限体K上における楕円曲線E上の点からなる加法群E(K)を使って楕円曲線暗号演算をする楕円曲線暗号演算装置とを有することを特徴とする楕円曲線暗号システム。 - 演算を行う演算装置を有するコンピュータを、請求項1乃至請求項11のいずれかに記載の楕円曲線暗号パラメータ生成装置として機能させることを特徴とする楕円曲線暗号パラメータ生成プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2006/300223 WO2007080633A1 (ja) | 2006-01-11 | 2006-01-11 | 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号演算装置及び楕円曲線暗号パラメータ生成プログラム及び楕円曲線暗号演算プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2007080633A1 JPWO2007080633A1 (ja) | 2009-06-11 |
JP4688886B2 true JP4688886B2 (ja) | 2011-05-25 |
Family
ID=38256048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007553794A Active JP4688886B2 (ja) | 2006-01-11 | 2006-01-11 | 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号システム及び楕円曲線暗号パラメータ生成プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US8111826B2 (ja) |
EP (1) | EP1993086B1 (ja) |
JP (1) | JP4688886B2 (ja) |
WO (1) | WO2007080633A1 (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1775880A1 (en) * | 2005-10-11 | 2007-04-18 | STMicroelectronics S.r.l. | Method of processing information to be confidentially transmitted |
JP4663497B2 (ja) * | 2005-12-01 | 2011-04-06 | 株式会社日立製作所 | 情報処理システムおよび情報処理装置の割当管理方法 |
US8290146B2 (en) * | 2007-01-19 | 2012-10-16 | Mitsubishi Electric Corporation | Ciphertext generating apparatus, cryptographic communication system, and group parameter generating apparatus |
US7978846B2 (en) * | 2007-06-30 | 2011-07-12 | Intel Corporation | Scale-invariant barrett reduction for elliptic-curve cyrptography |
US7986779B2 (en) * | 2007-06-30 | 2011-07-26 | Intel Corporation | Efficient elliptic-curve cryptography based on primality of the order of the ECC-group |
JP4649456B2 (ja) * | 2007-09-26 | 2011-03-09 | 株式会社東芝 | べき乗計算装置、べき乗計算方法及びプログラム |
US8144864B2 (en) * | 2007-12-28 | 2012-03-27 | Intel Corporation | Method for speeding up the computations for characteristic 2 elliptic curve cryptographic systems |
CN101925942B (zh) * | 2008-02-20 | 2013-11-27 | 三菱电机株式会社 | 验证装置 |
JP2010049213A (ja) * | 2008-08-25 | 2010-03-04 | Toshiba Corp | 暗号化装置、復号装置、暗号通信システム、方法及びプログラム |
US20100150340A1 (en) * | 2008-12-02 | 2010-06-17 | Electronics And Telecommunications Research Institute | Device and method for elliptic curve cryptosystem |
JP5549018B2 (ja) * | 2009-04-21 | 2014-07-16 | 国立大学法人 岡山大学 | ペアリング演算装置、ペアリング演算方法、及びペアリング演算プログラムを記録した記録媒体 |
US8488780B2 (en) * | 2009-04-24 | 2013-07-16 | Nippon Telegraph And Telephone Corporation | Finite field calculation apparatus, finite field calculation method and recording medium |
WO2010123112A1 (ja) * | 2009-04-24 | 2010-10-28 | 日本電信電話株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法、セキュリティ方法、プログラム及び記録媒体 |
TWI416347B (zh) * | 2009-06-22 | 2013-11-21 | Realtek Semiconductor Corp | 處理有限域運算之方法與運算電路 |
JP2011082662A (ja) * | 2009-10-05 | 2011-04-21 | Mitsubishi Electric Corp | 通信装置及び情報処理方法及びプログラム |
US8499158B2 (en) * | 2009-12-18 | 2013-07-30 | Electronics And Telecommunications Research Institute | Anonymous authentication service method for providing local linkability |
RU2452111C1 (ru) * | 2010-11-17 | 2012-05-27 | ЗАО Институт инфокоммуникационных технологий | Способ пороговой генерации ключей для системы защиты информации на основе идентификационных данных |
US9049023B2 (en) | 2011-05-24 | 2015-06-02 | Zeutro Llc | Outsourcing the decryption of functional encryption ciphertexts |
US8782420B2 (en) | 2011-07-22 | 2014-07-15 | Netflix, Inc | System and method for obfuscation initiation values of a cryptography protocol |
US9154302B2 (en) * | 2012-01-25 | 2015-10-06 | CertiVox Ltd. | System and method for secure two-factor authenticated ID-based key exchange and remote login using an insecure token and simple second-factor such as a PIN number |
US10148285B1 (en) | 2012-07-25 | 2018-12-04 | Erich Schmitt | Abstraction and de-abstraction of a digital data stream |
GB201309702D0 (en) | 2013-05-30 | 2013-07-17 | Certivox Ltd | Security |
US8971540B2 (en) | 2013-05-30 | 2015-03-03 | CertiVox Ltd. | Authentication |
US9106644B2 (en) | 2013-05-30 | 2015-08-11 | CertiVox Ltd. | Authentication |
US9800407B2 (en) * | 2013-08-30 | 2017-10-24 | Qualcomm Incorporated | Methods and apparatuses for prime number generation and storage |
CN104579661B (zh) * | 2013-10-21 | 2018-05-01 | 航天信息股份有限公司 | 基于身份的电子签章的实现方法和装置 |
US10795858B1 (en) | 2014-02-18 | 2020-10-06 | Erich Schmitt | Universal abstraction and de-abstraction of a digital data stream |
US9680647B2 (en) * | 2014-03-24 | 2017-06-13 | Infineon Technologies Ag | Method of using a token in cryptography |
JP6610277B2 (ja) * | 2016-01-15 | 2019-11-27 | 富士通株式会社 | 共有鍵生成プログラム、共有鍵生成方法および情報処理端末 |
DE112018007468T5 (de) | 2018-05-15 | 2021-01-21 | Mitsubishi Electric Corporation | Geheime-Suche-Einrichtung und Geheime-Suche-Verfahren |
US11601263B2 (en) | 2018-05-16 | 2023-03-07 | Lg Electronics Inc. | Systems and methods for efficient key management in a vehicular intranet |
US20220085998A1 (en) * | 2020-09-11 | 2022-03-17 | Cryptography Research, Inc. | System and method to generate prime numbers in cryptographic applications |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11212457A (ja) * | 1998-01-28 | 1999-08-06 | Fujitsu Ltd | 楕円曲線のパラメータ安全性高速判定装置および記録媒体 |
JPH11305660A (ja) * | 1997-10-10 | 1999-11-05 | Certicom Corp | エルガマル・ライクなプロトコルのためのセッション・パラメータ生成方法 |
JP2000293101A (ja) * | 1999-04-07 | 2000-10-20 | Nippon Telegr & Teleph Corp <Ntt> | 楕円暗号安全性評価装置、その方法及びプログラム記録媒体 |
JP2001066987A (ja) * | 1999-08-27 | 2001-03-16 | Nec Corp | 代数曲線暗号における安全なパラメータの生成装置、生成方法、および記録媒体 |
JP2002215023A (ja) * | 2001-01-18 | 2002-07-31 | Mitsubishi Electric Corp | 超楕円曲線暗号生成方法及び超楕円曲線暗号生成装置 |
JP2002533787A (ja) * | 1998-12-24 | 2002-10-08 | サーティコム コーポレーション | 楕円曲線上での暗号操作の速度を高める方法 |
JP2004177673A (ja) * | 2002-11-27 | 2004-06-24 | Fujitsu Ltd | ペアリング暗号装置、ペアリング暗号演算プログラム |
JP2004226706A (ja) * | 2003-01-23 | 2004-08-12 | Mitsubishi Electric Corp | 楕円暗号安全性強度評価方法及び楕円暗号安全性強度評価装置及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2004271792A (ja) * | 2003-03-07 | 2004-09-30 | Nippon Telegr & Teleph Corp <Ntt> | 楕円曲線上スカラー倍演算装置、及び楕円曲線上スカラー倍演算プログラム |
JP2005500740A (ja) * | 2001-08-13 | 2005-01-06 | ザ ボード オブ トラスティーズ オブ ザ リーランド スタンフォード ジュニア ユニバーシティ | Idベース暗号化および関連する暗号手法のシステムおよび方法 |
JP2005241898A (ja) * | 2004-02-26 | 2005-09-08 | Hitachi Ltd | 楕円曲線ペアリング高速演算方法及び装置 |
JP2005283674A (ja) * | 2004-03-26 | 2005-10-13 | Nec Corp | 楕円曲線暗号化向け曲線パラメータ生成装置、楕円曲線パラメータ生成方法及びそのプログラム |
JP2008520144A (ja) * | 2004-11-11 | 2008-06-12 | サーティコム コーポレーション | カスタム静的ディフィ−ヘルマン(Diffie−Hellman)群 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5442707A (en) * | 1992-09-28 | 1995-08-15 | Matsushita Electric Industrial Co., Ltd. | Method for generating and verifying electronic signatures and privacy communication using elliptic curves |
US6337909B1 (en) | 1996-10-10 | 2002-01-08 | Certicom Corp. | Generation of session keys for El Gamal-like protocols from low hamming weight integers |
JPH11242434A (ja) * | 1998-02-26 | 1999-09-07 | Hitachi Ltd | 楕円曲線暗号実行方法及び暗号処理システム |
JP4450969B2 (ja) | 2000-05-02 | 2010-04-14 | 村田機械株式会社 | 鍵共有システム,秘密鍵生成装置,共通鍵生成システム,暗号通信方法,暗号通信システム及び記録媒体 |
US7239701B1 (en) | 2000-05-02 | 2007-07-03 | Murata Machinery Ltd. | Key sharing method, secret key generating method, common key generating method and cryptographic communication method in ID-NIKS cryptosystem |
-
2006
- 2006-01-11 JP JP2007553794A patent/JP4688886B2/ja active Active
- 2006-01-11 WO PCT/JP2006/300223 patent/WO2007080633A1/ja active Application Filing
- 2006-01-11 US US12/085,587 patent/US8111826B2/en active Active
- 2006-01-11 EP EP06711568A patent/EP1993086B1/en not_active Expired - Fee Related
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11305660A (ja) * | 1997-10-10 | 1999-11-05 | Certicom Corp | エルガマル・ライクなプロトコルのためのセッション・パラメータ生成方法 |
JPH11212457A (ja) * | 1998-01-28 | 1999-08-06 | Fujitsu Ltd | 楕円曲線のパラメータ安全性高速判定装置および記録媒体 |
JP2002533787A (ja) * | 1998-12-24 | 2002-10-08 | サーティコム コーポレーション | 楕円曲線上での暗号操作の速度を高める方法 |
JP2000293101A (ja) * | 1999-04-07 | 2000-10-20 | Nippon Telegr & Teleph Corp <Ntt> | 楕円暗号安全性評価装置、その方法及びプログラム記録媒体 |
JP2001066987A (ja) * | 1999-08-27 | 2001-03-16 | Nec Corp | 代数曲線暗号における安全なパラメータの生成装置、生成方法、および記録媒体 |
JP2002215023A (ja) * | 2001-01-18 | 2002-07-31 | Mitsubishi Electric Corp | 超楕円曲線暗号生成方法及び超楕円曲線暗号生成装置 |
JP2005500740A (ja) * | 2001-08-13 | 2005-01-06 | ザ ボード オブ トラスティーズ オブ ザ リーランド スタンフォード ジュニア ユニバーシティ | Idベース暗号化および関連する暗号手法のシステムおよび方法 |
JP2004177673A (ja) * | 2002-11-27 | 2004-06-24 | Fujitsu Ltd | ペアリング暗号装置、ペアリング暗号演算プログラム |
JP2004226706A (ja) * | 2003-01-23 | 2004-08-12 | Mitsubishi Electric Corp | 楕円暗号安全性強度評価方法及び楕円暗号安全性強度評価装置及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2004271792A (ja) * | 2003-03-07 | 2004-09-30 | Nippon Telegr & Teleph Corp <Ntt> | 楕円曲線上スカラー倍演算装置、及び楕円曲線上スカラー倍演算プログラム |
JP2005241898A (ja) * | 2004-02-26 | 2005-09-08 | Hitachi Ltd | 楕円曲線ペアリング高速演算方法及び装置 |
JP2005283674A (ja) * | 2004-03-26 | 2005-10-13 | Nec Corp | 楕円曲線暗号化向け曲線パラメータ生成装置、楕円曲線パラメータ生成方法及びそのプログラム |
JP2008520144A (ja) * | 2004-11-11 | 2008-06-12 | サーティコム コーポレーション | カスタム静的ディフィ−ヘルマン(Diffie−Hellman)群 |
Also Published As
Publication number | Publication date |
---|---|
EP1993086A1 (en) | 2008-11-19 |
US20090285386A1 (en) | 2009-11-19 |
JPWO2007080633A1 (ja) | 2009-06-11 |
EP1993086A4 (en) | 2011-02-23 |
EP1993086B1 (en) | 2012-09-05 |
WO2007080633A1 (ja) | 2007-07-19 |
US8111826B2 (en) | 2012-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4688886B2 (ja) | 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号システム及び楕円曲線暗号パラメータ生成プログラム | |
JP4842276B2 (ja) | 楕円曲線上の新しいトラップドア1方向性関数と、その、より短い署名及び非対称暗号化への応用 | |
Parmar et al. | Survey of various homomorphic encryption algorithms and schemes | |
JP2008519994A5 (ja) | ||
Vidhya et al. | Hybrid key generation for RSA and ECC | |
JP4690819B2 (ja) | 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置 | |
Shankar et al. | Cryptography with elliptic curves | |
Tahat et al. | Hybrid publicly verifiable authenticated encryption scheme based on chaotic maps and factoring problems | |
Reddy | RM-RSA algorithm | |
Stogbauer | Efficient Algorithms for pairing-based cryptosystems | |
Rostovtsev et al. | Secure evaluation of polynomial using privacy ring homomorphisms | |
Frey et al. | Fast bilinear maps from the Tate-Lichtenbaum pairing on hyperelliptic curves | |
Heß et al. | The magic of elliptic curves and public-key cryptography | |
JP4230162B2 (ja) | 公開鍵暗号通信方法 | |
Sarma et al. | Public key cryptosystem based on Pell's equation using the Gnu Mp library | |
JPH0798563A (ja) | 楕円曲線による署名、認証及び秘密通信方式 | |
Ahlqvist | Elliptic Curves and Cryptography | |
Vasundhara | Elliptic Curves and Cryptography | |
Edoh | Elliptic curve cryptography on pocketpcs | |
Koval et al. | Cryptosystem based on extraction of square roots of complex integers | |
Gunnala et al. | An Attribute Involved Non deterministic Cryptosystem using Composite Residuosity Class Problem | |
Kalita et al. | A new cryptosystem using generalized Mersenne primes | |
Banoth et al. | Mathematical Foundation for Classical and Modern Cryptography | |
Nanjo | A Study of Efficient Algorithms for Computing Cryptosystems Using Elliptic Curve | |
Zhu | Efficient algorithms for implementing the elliptic curve cryptosystems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110125 |
|
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: 20110215 |
|
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: 20110215 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4688886 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140225 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |