JP2011237475A - Elliptical curve pairing arithmetic method, encryption method, decryption method, program, elliptic curve pairing arithmetic device, encryption device and decryption device - Google Patents
Elliptical curve pairing arithmetic method, encryption method, decryption method, program, elliptic curve pairing arithmetic device, encryption device and decryption device Download PDFInfo
- Publication number
- JP2011237475A JP2011237475A JP2010106367A JP2010106367A JP2011237475A JP 2011237475 A JP2011237475 A JP 2011237475A JP 2010106367 A JP2010106367 A JP 2010106367A JP 2010106367 A JP2010106367 A JP 2010106367A JP 2011237475 A JP2011237475 A JP 2011237475A
- Authority
- JP
- Japan
- Prior art keywords
- elliptic curve
- point
- calculated
- value
- twisted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
Description
本発明は、楕円曲線ペアリング演算方法、暗号化方法、復号化方法、プログラム、楕円曲線ペアリング演算装置、暗号化装置および復号化装置に関するものである。 The present invention relates to an elliptic curve pairing calculation method, an encryption method, a decryption method, a program, an elliptic curve pairing calculation device, an encryption device, and a decryption device.
任意の文字列を公開鍵として用いることのできるID(Identification)ベース方式による暗号、デジタル署名がある。これらは、ペアリングと呼ばれる双線形写像の性質を応用して実現される。 There are encryption and digital signatures based on an ID (Identification) base method that can use an arbitrary character string as a public key. These are realized by applying the property of bilinear mapping called pairing.
ペアリングとは、位数がnの3つの群をG1,G2,G3とした時、G1×G2からG3への写像eで以下の性質を満たすもののことである。ここで、「×」は直積を意味する。
1.任意のP∈G1および任意のQ∈G2に対してeはe(aP,bQ)=e(P,Q)abを満たす。
2.任意のP∈G1および任意のQ∈G2に対してe(P,Q)はG3の単位元と異なる。
Pairing when position number three groups of n was G 1, G 2, G 3, is that of those that satisfy the following properties in the mapping e from G 1 × G 2 to G 3. Here, “x” means a direct product.
1. For any PεG 1 and any QεG 2 , e satisfies e (aP, bQ) = e (P, Q) ab .
2. Any P∈G 1 and any e respect Q∈G 2 (P, Q) is different from the unit of G 3 source.
具体的なペアリングとしてはReduced Tateペアリングが知られている。
qを2で割ることのできない素数のべきとし、E(Fq)をFq上で定義される楕円曲線とし、その単位元をOとする。E(Fq)の位数を#E(Fq)、nを#E(Fq)を割り切る素数、E(Fq)[n]をE(Fq)の位数nの部分群、kをk>1を満たし、nがqk−1を割り切る最小の整数とする。またfpをP∈E(Fq)[n]に対して計算される多項式とする。
この時Reduced Tateペアリングは以下のように定義することができる。
As a specific pairing, Reduced Tate pairing is known.
Let q be a prime number that cannot be divided by 2, E (F q ) be an elliptic curve defined on F q , and its unit element be O. The order of E (F q ) is #E (F q ), n is a prime number that divides #E (F q ), E (F q ) [n] is a subgroup of the order n of E (F q ), Let k be the smallest integer that satisfies k> 1 and n divides q k −1. Let f p be a polynomial calculated for PεE (F q ) [n].
At this time, Reduced Tate pairing can be defined as follows.
ここで、FqおよびFq *の定義は以下の通りである。
Fq:位数qの有限体
Fq *:位数qの有限体Fqから0を除いたもので乗法に関して群構造を持つもの。
Here, the definitions of F q and F q * are as follows.
F q : a finite field with order q F q * : a finite field Fq with
次に、非特許文献4に基づき、Reduced Tateペアリングを計算するアルゴリズムを示す。以下、Reduced Tateペアリングをペアリングと呼ぶ。
Next, based on Non-Patent
入力:楕円曲線上の点P∈E(Fq)、Q∈E(Fq1)/nE(Fq1)、点P、Qの位数である素数n
出力:f=e(P,Q)∈F* q1/nF* q1
(ここで、q1=qk)
Input: points PεE (F q ), QεE (F q1 ) / nE (F q1 ) on the elliptic curve, prime number n which is the order of points P and Q
Output: f = e (P, Q) εF * q1 / nF * q1
(Here, q1 = q k)
処理手順:
(1)計算機が、nを2進数展開して、n=n0+n1×2+・・・+nt−1×2t−1 (nt−1=1)とする。
(2)計算機が、R←Pとおく。
(3)計算機が、f←1とおく。
(4)計算機が、i←t−2とおく。
(5)i≧0を満たす間、計算機は、以下の処理(5−1)〜(5−3)を繰り返す。
(5−1)計算機が、f←f2 --gR,R(Q),R←2Rを計算する(2倍算処理)。
(5−2)計算機が、ni=1であればf←fgR,P(Q),Q←Q+Pを計算する(加算処理)。
(5−3)計算機が、i←i−1を計算する。
Procedure:
(1) The computer expands n to a binary number and sets n = n 0 + n 1 × 2 +... + N t−1 × 2 t−1 (n t−1 = 1).
(2) The computer sets R ← P.
(3) The computer sets f ← 1.
(4) The computer sets i ← t−2.
(5) While satisfying i ≧ 0, the computer repeats the following processes (5-1) to (5-3).
(5-1) computer, f ← f 2 - g R , R (Q), to calculate the R ← 2R (2 multiplication processing).
(5-2) If n i = 1, the computer calculates f ← fg R, P (Q), Q ← Q + P (addition process).
(5-3) The computer calculates i ← i−1.
(6)計算機が、f←f(q1−1)/n(q1=qk)を計算する。 (6) computer calculates the f ← f (q1-1) / n (q1 = q k).
(7)計算機が、計算結果としてfを出力する (7) The computer outputs f as the calculation result.
このようなペアリングの具体的な計算方法は、ペアリングが定義される楕円曲線に依存して決まる。また、上記アルゴリズムにおけるループ処理では楕円曲線上の加算および2倍算処理が行われる。
ここでは楕円曲線として加算・2倍算処理に適した楕円曲線として知られているTwisted Edward型楕円曲線を用いる(例えば、非特許文献2参照)。
A specific calculation method of such pairing is determined depending on an elliptic curve in which pairing is defined. In the loop processing in the above algorithm, addition and doubling processing on an elliptic curve are performed.
Here, a Twisted Edward type elliptic curve known as an elliptic curve suitable for addition / doubling processing is used as an elliptic curve (see, for example, Non-Patent Document 2).
まず、非特許文献2に基づきTwisted Edward型楕円曲線について説明する。
Twisted Edward型楕円曲線とは標数が2以外の有限体をFqとした場合、ax2+y2=1+dx2y2 (a,dはFq上の定数でad(a−d)≠0を満たす)で表される曲線であり、この曲線上の点は、曲線の方程式を満たすx,y∈Fqの組(x,y)で表すことができる。以下(x、y)の組で表される座標をAffine座標と呼ぶ。
First, the Twisted Edward type elliptic curve will be described based on Non-Patent Document 2.
Twisted and Edward form elliptic curve in the case where target speed is the finite field other than 2 and F q, ax 2 + y 2 = 1 + dx 2 y 2 (a, d is a constant on F q ad (ad) ≠ 0 The points on this curve can be represented by a set (x, y) of x, yεF q that satisfies the curve equation. Hereinafter, coordinates represented by a set of (x, y) are referred to as Affine coordinates.
Twisted Edward型楕円曲線上の2点P,Qに対して加算P+Qが、1点Pに対して2倍算2Pが定義でき具体的な計算方法が知られている。
Twisted Edward型楕円曲線上の2点P=(x1,y1)、Q=(x2,y2)に対して加算は以下の式(1)で計算することができる。
A specific calculation method is known in which an addition P + Q can be defined for two points P and Q on a Twisted Edwardian elliptic curve, and a doubling 2P can be defined for one point P.
For the two points P = (x 1 , y 1 ) and Q = (x 2 , y 2 ) on the Twisted Edwardian elliptic curve, the addition can be calculated by the following equation (1).
さらに、点P=(x1,y1)に対して2倍算は上記加算式においてP=Qとすることで計算できる。以下に示す式(2)は2倍算に特化した形で前記した加算式(式(1))を記載したものである。 Further, the doubling can be calculated for the point P = (x 1 , y 1 ) by setting P = Q in the above addition formula. Formula (2) shown below describes the addition formula (Formula (1)) described above in a form specialized for doubling.
また、点P=(x1,y1)に対して−Pを(−x1,y1)で定義する。
Twisted Edward型楕円曲線上の点全体からなる集合は、加算に対して(0,1)を単位元とする加法群の構造を持つ。またTwisted Edward型楕円曲線上の点Pおよび、正整数Lに対してPのL回加算LPを求める演算をスカラ倍と呼ぶ。
また、Twisted Edward型楕円曲線上の点Pに対してPをn回加算するスカラ倍の演算結果nPが単位元である(0,1)となる場合、正整数nを点Pの位数と呼ぶ。
Further, −P is defined by (−x 1 , y 1 ) with respect to the point P = (x 1 , y 1 ).
A set of all points on a twisted Edwardian elliptic curve has an additive group structure with (0, 1) as a unit element for addition. Further, an operation for obtaining L times addition LP of P with respect to a point P on a Twisted Edward type elliptic curve and a positive integer L is called a scalar multiplication.
In addition, when a scalar multiplication result nP in which P is added n times to a point P on a Twisted Edwardian elliptic curve is the unit element (0, 1), a positive integer n is set as the order of the point P. Call.
非特許文献3において、Fq上で係数aは2乗根を持ち係数dは持たない場合、係数dを用いない加算方法が開示されている。以下、非特許文献3に基づき上記加算方法を説明する。
In
楕円曲線上の2点をP=(x1,y1)、Q=(x2,y2)、P≠Q、PおよびQは素数位数とした場合、加算P+Qは以下の式(3)で計算することができる。 When two points on the elliptic curve are P = (x 1 , y 1 ), Q = (x 2 , y 2 ), P ≠ Q, P and Q are prime orders, the addition P + Q is expressed by the following equation (3 ) Can be calculated.
非特許文献2に開示されている加算および2倍算では有限体Fq上の乗算に比べて10倍以上演算コストの大きい逆元計算が用いられる。この問題に対して逆元計算を用いないことでより高速な加算および2倍算の計算方法が非特許文献3に開示されている。
In addition and doubling disclosed in Non-Patent Document 2, inverse element calculation having a calculation cost 10 times or more higher than that of multiplication on the finite field Fq is used. Non-Patent
具体的には、点(x,y)をx=X/Z、y=Y/Z、xy=T/Z、Z≠0を満たすX,Y,Z,T∈Fqを用いて変換した拡張射影座標(X:Y:T:Z)を用いて逆元計算をより負荷の少ない数回の乗算に置き換えることにより高速化を行う。
なお、拡張射影座標(X:Y:T:Z)に含まれるT座標を省略した座標(X:Y:Z)を射影座標と呼ぶことにする。
Specifically, the point (x, y) is transformed using X, Y, Z, and T∈F q satisfying x = X / Z, y = Y / Z, xy = T / Z, and Z ≠ 0. The extended projective coordinates (X: Y: T: Z) are used to increase the speed by replacing the inverse element calculation with several multiplications with less load.
A coordinate (X: Y: Z) obtained by omitting the T coordinate included in the extended projected coordinate (X: Y: T: Z) is referred to as a projected coordinate.
次に、非特許文献3に基づき逆元計算の必要の無い加算アルゴリズムを示す。なお、以降のアルゴリズムの説明においてm,s,Dは、それぞれ定義体Fq上の乗算、2乗算、定数倍算の演算コストを示す。
入力情報:(X1:Y1:T1:Z1),(X2:Y2:T2:Z2)
出力情報:(X3:Y3:T3:Z3)=(X1:Y1:T1:Z1)+(X2:Y2:T2:Z2)
処理手順:
(1)計算機が、A←X1X2、B←Y1Y2、C←Z1T2、D←T1Z2、E←D+CをFq上でそれぞれ計算する(4m)。
(2)計算機が、F←(X1−Y1)(X2+Y2)+B−A、G←B+aA、H←D−CをFq上でそれぞれ計算する(1m,1D)。
(3)計算機が、X3←EFをFq上で計算する(1m)。
(4)計算機が、Y3←GHをFq上で計算する(1m)。
(5)計算機が、T3←EHをFq上で計算する(1m)。
(6)計算機が、Z3←FGをFq上で計算する(1m)。
(7)計算機が、(X3:Y3:T3:Z3)を演算結果として出力する。
この加算アルゴリズムの総演算コストは9m+1D、Z1が1であれば1回の乗算を削減できるため総演算コストは8m+1Dとなる。
Next, an addition algorithm that does not require inverse element calculation based on Non-Patent
Input information: (X 1 : Y 1 : T 1 : Z 1 ), (X 2 : Y 2 : T 2 : Z 2 )
Output information: (X 3 : Y 3 : T 3 : Z 3 ) = (X 1 : Y 1 : T 1 : Z 1 ) + (X 2 : Y 2 : T 2 : Z 2 )
Procedure:
(1) The computer calculates A ← X 1 X 2 , B ← Y 1 Y 2 , C ← Z 1 T 2 , D ← T 1 Z 2 , and E ← D + C on F q (4 m).
(2) The computer calculates F ← (X 1 −Y 1 ) (X 2 + Y 2 ) + BA, G ← B + aA, and H ← D−C on F q (1m, 1D), respectively.
(3) The computer calculates X 3 ← EF on F q (1 m).
(4) The computer calculates Y 3 ← GH on F q (1 m).
(5) The computer calculates T 3 ← EH on F q (1 m).
(6) The computer calculates Z 3 ← FG on F q (1 m).
(7) The computer outputs (X 3 : Y 3 : T 3 : Z 3 ) as a calculation result.
The total calculation cost of this addition algorithm is 9m + 1D, and if Z 1 is 1, one multiplication can be reduced, so the total calculation cost is 8m + 1D.
次に、非特許文献3に基づき逆元計算の必要の無い2倍算アルゴリズムを示す。
入力情報:(X1:Y1:T1:Z1)
出力情報:(X3:Y3:T3:Z3)=2(X1:Y1:T1:Z1)
処理手順:
(1)計算機が、A←X1 2、B←Y1 2、C←2Z1 2、D←aAをFq上でそれぞれ計算する(3s,1D)。
(2)計算機が、E←(X1+Y1)2−A−B、G←D+B、F←G−C、H←D−BをFq上でそれぞれ計算する(1s)。
(3)計算機が、X3←EFをFq上で計算する(1m)。
(4)計算機が、Y3←GHをFq上で計算する(1m)。
(5)計算機が、T3←EHをFq上で計算する(1m)。
(6)計算機が、Z3←FGをFq上で計算する(1m)。
(7)計算機が、(X3:Y3:T3:Z3)を演算結果として出力する。
この2倍算アルゴリズムの総演算コストは4m+4s+1Dとなる。
Next, a doubling algorithm that does not require inverse element calculation based on
Input information: (X 1 : Y 1 : T 1 : Z 1 )
Output information: (X 3 : Y 3 : T 3 : Z 3 ) = 2 (X 1 : Y 1 : T 1 : Z 1 )
Procedure:
(1) The computer calculates A ← X 1 2 , B ← Y 1 2 , C ← 2Z 1 2 , and D ← aA on F q (3s, 1D).
(2) The calculator calculates E ← (X 1 + Y 1 ) 2 −A−B, G ← D + B, F ← GC, and H ← D−B on F q (1 s).
(3) The computer calculates X 3 ← EF on F q (1 m).
(4) The computer calculates Y 3 ← GH on F q (1 m).
(5) The computer calculates T 3 ← EH on F q (1 m).
(6) The computer calculates Z 3 ← FG on F q (1 m).
(7) The computer outputs (X 3 : Y 3 : T 3 : Z 3 ) as a calculation result.
The total calculation cost of this doubling algorithm is 4m + 4s + 1D.
また、点(x,y)をx=Z/X、y=Z/Y、XYZ≠0を満たすX,Y,Z∈Fqを用いて変換したInverted Twisted Edward座標(X:Y:Z)を用いて逆元計算をより負荷の少ない数回の乗算に置き換えることにより高速化を行う方法が非特許文献2に開示されている。 Inverted Twisted Edward coordinates (X: Y: Z) obtained by transforming the point (x, y) using X, Y, ZεF q satisfying x = Z / X, y = Z / Y, and XYZ ≠ 0 Non-Patent Document 2 discloses a method of speeding up by replacing the inverse element calculation with several multiplications with a lighter load using.
次に、非特許文献2に基づき逆元計算の必要の無い加算アルゴリズムを示す。
入力情報:(X1:Y1:Z1),(X2:Y2:Z2)
出力情報:(X3:Y3:Z3)=(X1:Y1:Z1)+(X2:Y2:Z2)
処理手順:
(1)計算機が、A←Z1Z2、B←dA2、C←X1X2、D←Y1Y2、E←CDをFq上でそれぞれ計算する(4m,1s,1D)。
(2)計算機が、H←C−aD、I←(X1+Y1)(X2+Y2)−C−DをFq上でそれぞれ計算する(1m,1D)。
(3)計算機が、X3←(E+B)HをFq上で計算する(1m)。
(4)計算機が、Y3←(E−B)IをFq上で計算する(1m)。
(5)計算機が、Z3←AHIをFq上で計算する(2m)。
(6)計算機が、(X3:Y3:Z3)を演算結果として出力する。
この加算アルゴリズムの総演算コストは9m+1s+2D、Z1が1であれば1回の乗算を削減できるため総演算コストは8m+1s+2Dとなる。
Next, an addition algorithm that does not require inverse element calculation based on Non-Patent Document 2 is shown.
Input information: (X 1 : Y 1 : Z 1 ), (X 2 : Y 2 : Z 2 )
Output information: (X 3 : Y 3 : Z 3 ) = (X 1 : Y 1 : Z 1 ) + (X 2 : Y 2 : Z 2 )
Procedure:
(1) The computer calculates A ← Z 1 Z 2 , B ← dA 2 , C ← X 1 X 2 , D ← Y 1 Y 2 , E ← CD on F q (4m, 1s, 1D), respectively. .
(2) The computer calculates H ← C−aD and I ← (X 1 + Y 1 ) (X 2 + Y 2 ) −C−D on F q (1m, 1D), respectively.
(3) The computer calculates X 3 <-(E + B) H on F q (1 m).
(4) The computer calculates Y 3 <-(EB) I on F q (1 m).
(5) The computer calculates Z 3 ← AHI on F q (2 m).
(6) The computer outputs (X 3 : Y 3 : Z 3 ) as a calculation result.
The total calculation cost of this addition algorithm is 9m + 1s + 2D, and if Z 1 is 1, one multiplication can be reduced, so the total calculation cost is 8m + 1s + 2D.
次に、非特許文献2に基づき逆元計算の必要の無い2倍算アルゴリズムを示す。
入力情報:(X1:Y1:Z1)
出力情報:(X3:Y3:Z3)=2(X1:Y1:Z1)
処理手順:
(1)計算機が、A←X1 2、B←Y1 2、U←aBをFq上でそれぞれ計算する(2s,1D)。
(2)計算機が、C←A+U、D←A−U、E←(X1+Y1)2−A−BをFq上でそれぞれ計算する(1s)。
(3)計算機が、X3←CDをFq上で計算する(1m)。
(4:計算機が、Y3←E(C−2dZ1 2)をFq上で計算する(1m,1s,1D)。
(5)計算機が、Z3←DEをFq上で計算する(1m)。
(6)計算機が、(X3:Y3:Z3)を演算結果として出力する。
この2倍算アルゴリズムの総演算コストは3m+4s+2Dとなる。
Next, a doubling algorithm that does not require inverse element calculation based on Non-Patent Document 2 is shown.
Input information: (X 1 : Y 1 : Z 1 )
Output information: (X 3 : Y 3 : Z 3 ) = 2 (X 1 : Y 1 : Z 1 )
Procedure:
(1) The computer calculates A ← X 1 2 , B ← Y 1 2 , U ← aB on F q (2s, 1D).
(2) The computer calculates C ← A + U, D ← A−U, and E ← (X 1 + Y 1 ) 2 −A−B on F q (1 s).
(3) The computer calculates X 3 ← CD on F q (1 m).
(4: The computer calculates Y 3 ← E (C-2dZ 1 2 ) on F q (1m, 1s, 1D).
(5) The computer calculates Z 3 ← DE on F q (1 m).
(6) The computer outputs (X 3 : Y 3 : Z 3 ) as a calculation result.
The total calculation cost of this doubling algorithm is 3m + 4s + 2D.
次に、非特許文献4に基づきTwisted Edward型楕円曲線を用いた、ペアリングの計算方法を説明する。
Next, a pairing calculation method using a Twisted Edwardian elliptic curve based on
2以外の素数のべきqに対して、素数nがqk−1を割り切り、かつ最小のkが偶数であるとする。この時、楕円曲線の定義体をFq、位数nの部分群を最大位数の部分群として持つTwisted Edward型楕円曲線E(Fq)をax2+y2=1+dx2y2(ad(a−d)≠0かつFq上で係数aは2乗根を持ち係数dは持たない)、その位数nの部分群をG1とする。 Suppose that for a prime power q other than 2, the prime number n divides q k −1 and the smallest k is an even number. At this time, a Twisted Edwardian elliptic curve E (F q ) having an elliptic curve defining body as F q and a subgroup of order n as a subgroup of the maximum order is expressed as ax 2 + y 2 = 1 + dx 2 y 2 (ad ( a−d) ≠ 0 and the coefficient a has a square root on F q and does not have the coefficient d), and its subgroup of order n is G 1 .
Fqのk次拡大体Fq1(q1=qk、kは偶数)はFqのk/2次拡大体Fq2(q2=qk/2)の2次拡大体と見なすことができ、α2=δ∈Fq2(q2=qk/2)を満たす基底{1,α}を用いることで任意の元をx+yα(x,y∈Fq2(q2=qk/2))で表現することができる。
さらに、Qを、E(Fq)をFq1(q1=qk)上の楕円曲線と見なしたE(Fq1)(q1=qk)上の位数nの元で射影座標を用いてQ=(X0α:Y0:Z0)(X0,Y0,Z0∈Fq2:q2=qk/2)と表現できるものとする。この時、Qの属する位数nの部分群をG2とし、Fq1(q1=qk)の位数nの乗法に関する部分群をG3とする。
F k-th extension of q F q1 (q1 = q k , k is an even number) can be regarded as secondary expansion of F q of k / 2 degree extension field F q2 (q2 = q k / 2), An arbitrary element is expressed by x + yα (x, yεF q2 (q2 = q k / 2 )) by using a base {1, α} satisfying α 2 = δεF q2 (q2 = q k / 2 ). can do.
Furthermore, using projected coordinates under the order of n on E (F q1 ) (q1 = q k ) where Q is regarded as an elliptic curve on F q1 (q1 = q k ), E (F q ) Q = (X 0 α: Y 0 : Z 0 ) (X 0 , Y 0 , Z 0 ∈F q2 : q2 = q k / 2 ). In this case, the subgroup of order n which belongs Q and G 2, a subgroup concerning multiplication of order n of F q1 (q1 = q k) and G 3.
次に、ペアリングを計算するアルゴリズムを非特許文献4に基づき示す。
入力:点P=(X1:Y1:T1:Z1)∈G1,Q=(X0α:Y0:Z0)∈G2(X0,Y0,Z0∈Fq2:q2=qk/2)
出力:f=e(P,Q)∈G3
Next, an algorithm for calculating pairing is shown based on
Input: point P = (X 1 : Y 1 : T 1 : Z 1 ) ∈G 1 , Q = (X 0 α: Y 0 : Z 0 ) ∈G 2 (X 0 , Y 0 , Z 0 ∈F q2 : Q2 = qk / 2 )
Output: f = e (P, Q) εG 3
処理手順:
(1)計算機が、点Pの位数である3以上の素数nを2進数展開して、n=n0+n1×2+・・・+nt−1×2t−1 (nt−1=1)とする。
(2)計算機が、η←(Z0+Y0)/(X0δ)とおく。
(3)計算機が、y0←Y0/Z0とおく。
(4)計算機が、R←Pとおく。
(5)計算機が、f←1とおく。
(6)計算機が、i←t−2とおく。
(7)i≧0を満たす間、計算機は、以下の処理(7−1)〜(7−3)を繰返す。
(7−1)計算機が、f←f2gR,R(Q),R←2Rを計算する(2倍算処理)。なお、(7−1)の計算方法は後記する。
(7−2)計算機が、ni=1であればf←fgR,P(Q),R←R+Pを計算する(加算処理)。なお、(7−2)の計算方法は後記する。
(7−3)計算機が、i←i−1を計算する。
(8)計算機が、f←f(q1−1)/n(q1=qk)を計算する。
(9)fを計算結果とする。
Procedure:
(1) The computer binary expands the prime number n of 3 or more which is the order of the point P, and n = n 0 + n 1 × 2 +... + N t−1 × 2 t−1 (n t−1 = 1).
(2) The computer sets η ← (Z 0 + Y 0 ) / (X 0 δ).
(3) The computer sets y 0 ← Y 0 / Z 0 .
(4) The computer sets R ← P.
(5) The computer sets f ← 1.
(6) The computer sets i ← t−2.
(7) While satisfying i ≧ 0, the computer repeats the following processes (7-1) to (7-3).
(7-1) The computer calculates f ← f 2 g R, R (Q), R ← 2R (doubling process). The calculation method of (7-1) will be described later.
(7-2) If n i = 1, the computer calculates f ← fg R, P (Q), R ← R + P (addition process). The calculation method of (7-2) will be described later.
(7-3) The computer calculates i ← i−1.
(8) computer, to calculate the f ← f (q1-1) / n (q1 = q k).
(9) Let f be the calculation result.
次に、(7−1)における2倍算処理について詳しく説明する。
入力情報:R=(X1:Y1:T1:Z1)
出力情報:R=(X3:Y3:T3:Z3)=2(X1:Y1:T1:Z1)、f
処理手順:(7−1)、(7−2)の処理における、m,s,Dは、それぞれ定義体Fq上の乗算、2乗算、定数倍算の演算コスト、M,Dは、それぞれFqのk次拡大体Fq1(q1=qk)上の乗算、2乗算の演算コストを示す。ただし、定義体Fq上の2倍算については、より演算コストの小さい加算もしくは1ビットシフトなどの演算を用いることでコストの大きい乗算を用いないで計算できるため定数倍としては扱わない。
(1)計算機が、A←X1 2、B←Y1 2、C←Z1 2、D←(X1+Y1)2、E←(Y1+Z1)2をFq上でそれぞれ計算する(5s)。
(2)計算機が、F←D−(A+B)、G←E−(B+C)、H←aAをFq上でそれぞれ計算する(1D)。
(3)計算機が、I←H+B、J←C−I、K←J+CをFq上でそれぞれ計算する。
(4)計算機が、cZZ←2Y1(T1−X1)をFq上で計算する(1m)。
(5)計算機が、cXY←2J+GをFq上で計算する。
(6)計算機が、cXZ←2(aX1T1−B)をFq上で計算する(1m,1D)。
(7)計算機が、gR,R(Q)←cZZηα+cXYy0+cXZをFq2(q2=qk/2)上で計算する(km)。
Next, the doubling process in (7-1) will be described in detail.
Input information: R = (X 1 : Y 1 : T 1 : Z 1 )
Output information: R = (X 3 : Y 3 : T 3 : Z 3 ) = 2 (X 1 : Y 1 : T 1 : Z 1 ), f
Procedure: (7-1), the processing in, m, s, D of (7-2) is multiplied on the respective definition F q, 2 multiplication, computation cost of the constant multiplication, M, D, respectively The operation cost of multiplication and multiplication on the k-th order extension field F q1 (q1 = q k ) of F q is shown. However, the doubling on the definition field F q is not treated as a constant multiplication because it can be calculated without using a multiplication with a high cost by using an operation such as addition or 1-bit shift with a lower calculation cost.
(1) The computer calculates A ← X 1 2 , B ← Y 1 2 , C ← Z 1 2 , D ← (X 1 + Y 1 ) 2 , E ← (Y 1 + Z 1 ) 2 on F q , respectively. (5s).
(2) computer, F ← D- (A + B ), G ← E- (B + C), the H ← aA calculating respectively on F q (1D).
(3) The computer calculates I ← H + B, J ← C−I, and K ← J + C on Fq .
(4) The computer calculates c ZZ ← 2Y 1 (T 1 −X 1 ) on F q (1 m).
(5) The computer calculates c XY ← 2J + G on F q .
(6) computer, c XZ ← 2 a (aX 1 T 1 -B) calculating on F q (1m, 1D).
(7) The computer calculates g R, R (Q) ← c ZZ ηα + c XY y 0 + c XZ on F q2 (q2 = q k / 2 ) (km).
(8)計算機が、f←f2gR,R(Q)を計算する(1M、1S)。
(9)計算機が、X3←FKをFq上で計算する(1m)。
(10)計算機が、Y3←I(B−H)をFq上で計算する(1m)。
(11)計算機が、T3←F(B−H)をFq上で計算する(1m)。
(12)計算機が、Z3←IKをFq上で計算する(1m)。
(13)計算機が、R=(X3:Y3:T3:Z3)、fを演算結果とする。
この2倍算アルゴリズムの総演算コストは1M+1S+(k+6)m+5s+2Dとなる。
(8) The computer calculates f ← f 2 g R, R (Q) (1M, 1S).
(9) The computer calculates X 3 <-FK on F q (1 m).
(10) The computer calculates Y 3 ← I (B−H) on F q (1 m).
(11) The computer calculates T 3 <-F (B−H) on F q (1 m).
(12) The computer calculates Z 3 ← IK on F q (1 m).
(13) The computer sets R = (X 3 : Y 3 : T 3 : Z 3 ) and f as a calculation result.
The total calculation cost of this doubling algorithm is 1M + 1S + (k + 6) m + 5s + 2D.
次に、(7−2)における加算ステップについて説明する。
入力情報:R=(X1:Y1:T1:Z1),P=(X2:Y2:T2:Z2)、f
出力情報:R=(X3:Y3:T3:Z3)=(X1:Y1:T1:Z1)+(X2:Y2:T2:Z2)、f
Next, the adding step in (7-2) will be described.
Input information: R = (X 1 : Y 1 : T 1 : Z 1 ), P = (X 2 : Y 2 : T 2 : Z 2 ), f
Output information: R = (X 3 : Y 3 : T 3 : Z 3 ) = (X 1 : Y 1 : T 1 : Z 1 ) + (X 2 : Y 2 : T 2 : Z 2 ), f
処理手順:
(1)計算機が、A←X1X2、B←Y1Y2、C←Z1T2、D←T1Z2、E←D+CをFq上でそれぞれ計算する(4m)。
(2)計算機が、F←(X1−Y1)(X2+Y2)+B−A、G←B+aA、H←D−C、I←T1T2をFq上でそれぞれ計算する(2m,1D)。
(3)計算機が、cZZ←(T1−X1)(T2+X2)−I+AをFq上で計算する(1m)。
(4)計算機が、cXY←X1Z2−X2Z1+FをFq上で計算する(2m)。
(5)計算機が、cXZ←(Y1−T1)(Y2+T2)−B+I−HをFq上で計算する(1m)。
Procedure:
(1) The computer calculates A ← X 1 X 2 , B ← Y 1 Y 2 , C ← Z 1 T 2 , D ← T 1 Z 2 , and E ← D + C on F q (4 m).
(2) The computer calculates F ← (X 1 −Y 1 ) (X 2 + Y 2 ) + BA, G ← B + aA, H ← D−C, and I ← T 1 T 2 on F q ( 2m, 1D).
(3) The computer calculates c ZZ <-(T 1 −X 1 ) (T 2 + X 2 ) −I + A on F q (1 m).
(4) The computer calculates c XY <-X 1 Z 2 −X 2 Z 1 + F on F q (2 m).
(5) The computer calculates c XZ <-(Y 1 −T 1 ) (Y 2 + T 2 ) −B + I−H on F q (1 m).
(7)計算機が、gR,P(Q)←cZZηα+cXYy0+cXZをFq2(q2=qk/2)上で計算する(km)。 (7) The computer calculates g R, P (Q) ← c ZZ ηα + c XY y 0 + c XZ on F q2 (q2 = q k / 2 ) (km).
(8)計算機が、f←fgR,P(Q)を計算する(1M)。
(6)計算機が、X3←EFをFq上で計算する(1m)。
(7)計算機が、Y3←GHをFq上で計算する(1m)。
(8)計算機が、T3←EHをFq上で計算する(1m)。
(9)計算機が、Z3←FGをFq上で計算する(1m)。
(10)計算機が、R←(X3:Y3:T3:Z3)、fを演算結果として出力する。
この加算アルゴリズムの総演算コストは1M+(k+14)m+1D、Z1=1の場合、乗算を2回削減できて1M+(k+12)m+1Dとなる。
(8) The computer calculates f ← fg R, P (Q) (1M).
(6) The computer calculates X 3 ← EF on F q (1 m).
(7) The computer calculates Y 3 ← GH on F q (1 m).
(8) The computer calculates T 3 ← EH on F q (1 m).
(9) The computer calculates Z 3 ← FG on F q (1 m).
(10) The computer outputs R ← (X 3 : Y 3 : T 3 : Z 3 ), f as a calculation result.
When the total calculation cost of this addition algorithm is 1M + (k + 14) m + 1D and Z 1 = 1, the multiplication can be reduced twice to 1M + (k + 12) m + 1D.
次に、非特許文献1に開示されているIDベース公開鍵暗号方式について説明する。
IDベース公開鍵暗号方式を実現するシステムは、公開鍵の認証を行う認証局の代わりに、鍵生成センタを備える。鍵生成センタは、システムで共通に用いる公開パラメータを定め、各利用者が公開鍵として選択する任意のID(例えば、電子メールアドレス)に対して、鍵生成センタが外部にもれないよう厳重に保管するマスタ鍵を用いて公開鍵毎に秘密鍵を生成し、利用者に配布する。そして、鍵生成センタは、利用者が選択するID(公開鍵)と生成した秘密鍵とを対応づけて管理する。公開鍵の選定方法については、システム内でルール化しておく。
Next, an ID-based public key cryptosystem disclosed in
A system that implements an ID-based public key cryptosystem includes a key generation center instead of a certificate authority that performs public key authentication. The key generation center defines public parameters commonly used in the system, and strictly restricts the key generation center from being externally provided for any ID (for example, e-mail address) selected by each user as a public key. A secret key is generated for each public key using the stored master key and distributed to users. The key generation center manages the ID (public key) selected by the user in association with the generated secret key. The public key selection method is ruled in the system.
IDベース公開鍵暗号方式は以下の4種類の処理より構成される。(1)、(2)は鍵生成センタでの処理であり、(3)は送信側端末の処理、(4)は受信側端末の処理である。
(1)公開パラメータおよびマスタ鍵生成処理:鍵生成センタに設置されている鍵発行装置が、システムで共通に用いる群やペアリングを含む公開パラメータの生成およびマスタ鍵の生成を行う。公開パラメータは、鍵生成センタによって外部に公開される。なお、システム全体の安全を確保するため、マスタ鍵は、システムの利用者を含む外部に漏洩しないよう、鍵生成センタによって厳重に保管される。
(2)秘密鍵生成処理:鍵発行装置が、利用者のメールアドレスなど、利用者と対応付けることのできる文字列(ID:公開鍵)毎に、マスタ鍵を用いて秘密鍵を生成する。この文字列が公開鍵となる。
(3)暗号化:送信側端末が鍵発行装置から公開パラメータや、送付先の公開鍵を取得し、取得した公開パラメータおよび送付先の公開鍵を用いて暗号化対象データの暗号化を行い、暗号化されたデータ(暗号化データ)を受信側端末へ送信する。
(4)復号:受信側端末が、鍵発行装置から公開パラメータおよび受信者の秘密鍵を取得し、公開パラメータおよび受信者の秘密鍵を用いて、送信側端末から送信された暗号化データを復号する。
The ID-based public key cryptosystem is composed of the following four types of processing. (1) and (2) are the processes at the key generation center, (3) is the process of the transmitting terminal, and (4) is the process of the receiving terminal.
(1) Public parameter and master key generation process: A key issuing device installed in a key generation center generates a public parameter including a group and pairing commonly used in the system and a master key. The public parameter is disclosed to the outside by the key generation center. In order to ensure the safety of the entire system, the master key is strictly stored by the key generation center so as not to leak to the outside including the system user.
(2) Secret key generation processing: The key issuing device generates a secret key using a master key for each character string (ID: public key) that can be associated with the user, such as the user's mail address. This character string becomes the public key.
(3) Encryption: The transmission side terminal acquires the public parameter and the destination public key from the key issuing device, encrypts the data to be encrypted using the acquired public parameter and the destination public key, The encrypted data (encrypted data) is transmitted to the receiving terminal.
(4) Decryption: The receiving side terminal obtains the public parameter and the recipient's private key from the key issuing device, and decrypts the encrypted data transmitted from the sending side terminal using the public parameter and the recipient's private key. To do.
次に上記(1)から(4)の各処理における、入力、出力、および処理について説明する。
以下、{0,1}*は全てのバイナリ系列を表し、{0,1}Nは全てのNビットバイナリ系列を表し、XORは排他的論理和を表す。
Next, input, output, and processing in the processes (1) to (4) will be described.
Hereinafter, {0, 1} * represents all binary sequences, {0, 1} N represents all N-bit binary sequences, and XOR represents exclusive OR.
(1)公開パラメータおよびマスタ鍵生成処理
入力情報:セキュリティパラメータである正整数L
出力情報:公開パラメータparams、マスタ鍵s
処理手順:
(1−1)鍵発行装置が、Lビットの素数nを生成する。
(1−2)鍵発行装置が、位数nの群G1、G2、G3を選択する。
(1−3)鍵発行装置が、ペアリングe:G1×G2→G3を選択する。
(1−4)鍵発行装置が、G1の生成元Pを選択する。
(1−5)鍵発行装置が、0<s<nを満たす整数sをランダムに選択しマスタ鍵とする。
(1−6)鍵発行装置が、楕円曲線スカラ倍演算を用いて、Ppub←sPを計算する。
(1−7)鍵発行装置が、ハッシュ関数H1:{0,1}*→G2を選択する。
(1−8)鍵発行装置が、ある整数Nに対して、ハッシュ関数H2:G3→{0,1}Nを選択する。
(1−9)鍵発行装置が、公開パラメータをparams=<n,G1,G2,G3,e,N,P,Ppub,H1,H2>とする。
(1) Public parameter and master key generation process input information: positive integer L which is a security parameter
Output information: public parameters params, master key s
Procedure:
(1-1) The key issuing device generates an L-bit prime number n.
(1-2) The key issuing device selects the group G 1 , G 2 , G 3 of order n.
(1-3) The key issuing device selects pairing e: G 1 × G 2 → G 3 .
(1-4) The key issuing device selects a generator P of G 1.
(1-5) The key issuing device randomly selects an integer s satisfying 0 <s <n and sets it as a master key.
(1-6) The key issuing device calculates P pub ← sP using elliptic curve scalar multiplication.
(1-7) The key issuing device selects the hash function H 1 : {0, 1} * → G 2 .
(1-8) The key issuing device selects a hash function H 2 : G 3 → {0, 1} N for a certain integer N.
(1-9) The key issuing device sets the public parameters as params = <n, G 1 , G 2 , G 3 , e, N, P, P pub , H 1 , H 2 >.
(2)秘密鍵生成処理:
入力情報:公開パラメータparams、マスタ鍵s、公開鍵として用いる任意の文字列ID
出力情報:IDに対応する秘密鍵dID
処理手順:
(2−1)鍵発行装置が、任意のバイナリ列からなる集合に含まれる、与えられたID(ID∈{0,1}*)に対して、公開パラメータparamsに含まれているハッシュ関数H1を用いて、QID←H1(ID)を計算する。
(2−2)鍵発行装置が、マスタ鍵sを用いてdID←sQIDを計算し、秘密鍵とする。
(2) Secret key generation processing:
Input information: public parameter params, master key s, arbitrary character string ID used as public key
Output information: private key d ID corresponding to ID
Procedure:
(2-1) The hash function H included in the public parameter params for the given ID (IDε {0, 1} * ) included in the set of arbitrary binary strings by the key issuing device. 1 is used to calculate Q ID ← H 1 (ID).
(2-2) The key issuing device calculates d ID ← sQ ID using the master key s and sets it as a secret key.
(3)暗号化:
入力:暗号化対象データW、公開パラメータparams、公開鍵ID
出力:暗号化データC=(C1,C2)
処理手順:
(3−1)送信側端末が、公開パラメータparamsに含まれているハッシュ関数H1を用いて、ハッシュ値QID←H1(ID)を計算する。
(3−2)送信側端末が、0<r<nを満たす整数rをランダムに選択する。
(3−3)送信側端末が、楕円曲線スカラ倍演算を用いて、C1←rPを計算する。
(3−4)送信側端末が、公開パラメータparamsに含まれているペアリングeを用いて、ペアリング演算を行い、g←e(Ppub,QID)を計算する。
(3−5)送信側端末が、公開パラメータparamsに含まれているハッシュ関数H2を用いて、ハッシュ値h←H2(gr)を計算する。
(3−6)送信側端末が、C2←W XOR hを計算する。
(3−7)送信側端末が、C←(C1,C2)を暗号化データとする。
(3) Encryption:
Input: Encryption target data W, public parameter params, public key ID
Output: Encrypted data C = (C 1 , C 2 )
Procedure:
(3-1) The transmitting terminal calculates a hash value Q ID ← H 1 (ID) using the hash function H 1 included in the public parameter params.
(3-2) The transmission side terminal randomly selects an integer r that satisfies 0 <r <n.
(3-3) The transmission side terminal calculates C 1 <-rP using elliptic curve scalar multiplication.
(3-4) The transmission side terminal performs pairing calculation using the pairing e included in the public parameter params, and calculates g ← e (P pub , Q ID ).
(3-5) The transmission side terminal calculates the hash value h ← H 2 (g r ) using the hash function H 2 included in the public parameter params.
(3-6) The transmission side terminal calculates C 2 <-W XOR h.
(3-7) The transmission side terminal sets C ← (C 1 , C 2 ) as encrypted data.
(4)復号:
入力情報:暗号化データC=(C1,C2)、公開パラメータparams、秘密鍵dID
出力情報:復号データM
処理手順:
(4−1)受信側端末が、公開パラメータparamsに含まれているペアリングeを用いて、ペアリング演算を行い、g←e(C1,dID)を計算する。
(4−2)受信側端末が、公開パラメータparamsに含まれているハッシュ関数H2を用いて、h←H2(g)を計算する。
(4−3)受信側端末が、W←C2 XOR hを計算し復号データとする。
(4) Decryption:
Input information: encrypted data C = (C 1 , C 2 ), public parameter params, secret key d ID
Output information: Decoded data M
Procedure:
(4-1) The receiving side terminal performs a pairing calculation using the pairing e included in the public parameter params, and calculates g ← e (C 1 , d ID ).
(4-2) The receiving terminal calculates h ← H 2 (g) using the hash function H 2 included in the public parameter params.
(4-3) The receiving side terminal calculates W ← C 2 XOR h and sets it as decoded data.
前記したIDベース暗号では、楕円曲線上のペアリング演算処理が必須である。しかし、ペアリング演算は暗号化および復号化処理において負荷が重いため処理性能に大きな影響を及ぼす事が知られている。
具体的には、ペアリング演算の処理性能は楕円曲線の定義体上の乗算および、2乗算、定数倍算の回数に依存する事が知られている。
また、ペアリング演算の際、Inverted Twisted Edward座標の適用可能性および係数a=−1に特化した計算方法については、非特許文献4において開示されていない。
In the ID-based encryption described above, pairing calculation processing on an elliptic curve is essential. However, it is known that the pairing operation greatly affects the processing performance because of heavy load in the encryption and decryption processing.
More specifically, it is known that the processing performance of the pairing operation depends on the number of multiplications, double multiplications, and constant multiplications on the elliptic curve definition.
In addition, the
このような背景に鑑みて本発明がなされたのであり、本発明は、効率的なペアリング演算を行うことを目的とする。 The present invention has been made in view of such a background, and an object of the present invention is to perform an efficient pairing operation.
前記課題を解決するため、本発明は、Inverted twisted Edward座標を拡張した拡張Inverted twisted Edward座標を用いて表現したTwisted Edward型楕円曲線上の素数位数の点である第1の点(Z1=1)と、affine座標を用いて表現した第2の点とのペアリング演算を行うことを特徴とする。
その他の解決手段については、実施形態中で適宜説明する。
In order to solve the above-mentioned problem, the present invention provides a first point (Z 1 = Z 1) that is a point of prime order on a Twisted Edwardian elliptic curve expressed using an extended Twisted Edward coordinate obtained by extending an inverted twisted Edward coordinate. 1) and a second point expressed using affine coordinates are performed.
Other solutions will be described as appropriate in the embodiments.
本発明によれば効率的な楕円曲線ペアリング演算を行うことができる。 According to the present invention, efficient elliptic curve pairing calculation can be performed.
次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。なお、本実施形態では、拡張Inverted twisted Edward座標を用いることで、楕円曲線スカラ倍演算における演算コストを低減することを目的とする。 Next, modes for carrying out the present invention (referred to as “embodiments”) will be described in detail with reference to the drawings as appropriate. In the present embodiment, an object is to reduce the calculation cost in the elliptic curve scalar multiplication by using the extended inverted twisted coordinates.
《楕円曲線ペアリング演算》
[楕円曲線ペアリング演算装置]
図1は、本実施形態に係る楕円曲線ペアリング演算装置の構成例を示す図である。
楕円曲線ペアリング演算装置1は、制御演算部110と、記憶部120を有している。
制御演算部110は、入出力部111と、制御部112と、楕円曲線ペアリング演算部113とを有する。入出力部111は、入力情報としての演算対象データおよび出力情報としての演算結果の入出力を行う機能を有する。制御部112は、楕円曲線ペアリング演算装置1全体を制御する機能を有する。楕円曲線ペアリング演算部113は、実際に楕円曲線上のペアリング演算を計算する機能を有する。
《Elliptic curve pairing operation》
[Elliptic curve pairing processor]
FIG. 1 is a diagram illustrating a configuration example of an elliptic curve pairing arithmetic device according to the present embodiment.
The elliptic curve
The
記憶部120には、中間データ121、データ122などが格納されている。中間データ121は、必要に応じて処理中に生成されるデータである。データ122は、楕円曲線のパラメータなどのデータである。
The
図2は、本実施形態に係る楕円曲線ペアリング演算部の構成例を示す図である。
楕円曲線ペアリング演算部113は、入出力部114と、楕円曲線加算演算部115と、楕円曲線2倍算演算部116と、基本演算部117とを有する。
楕円曲線加算演算部115は、楕円曲線上の2点の加算演算などを行う機能を有する。楕円曲線2倍算演算部116は、楕円曲線上の点の2倍算演算などを行う機能を有する。基本演算部117は、楕円曲線加算演算部115および楕円曲線2倍算演算部116から必要に応じて呼び出され楕円曲線の定義体上の演算や剰余計算(mod)を用いた四則演算などを行う機能を有する。
FIG. 2 is a diagram illustrating a configuration example of the elliptic curve pairing calculation unit according to the present embodiment.
The elliptic curve
The elliptic curve
なお、楕円曲線ペアリング演算装置1は、図16に示すような、バス67で接続されたCPU(Central Processing Unit)61と、RAM(Random Access Memory)などのメモリ62と、HDD(Hard Disk Drive)やその他の外部記憶装置65と、キーボードなどの入力装置63と、ディスプレイなどの出力装置64と、外部記憶装置65や、入力装置63や、出力装置64と、バス67とを中継するインタフェース66とを備えた、一般的な構成を有する情報処理装置6上に構築することができる。
楕円曲線ペアリング演算装置1の制御演算部110および各部111〜117は、CPU61が、メモリ62にロードされたプログラム(コードモジュールともいう)を実行することで、情報処理装置6上に具現化される。また、メモリ62や、外部記憶装置65が図1の記憶部120として使用される。
The elliptic curve
The
また、前記したプログラムは、予め外部記憶装置65に記憶され、必要に応じてメモリ62上にロードされ、CPU61により実行される。なお、このプログラムは、可搬性の記憶媒体、例えばCD−ROM(Compact Disk-Read Only Memory)などに格納され、必要に応じて、これら可搬性の記憶媒体からメモリ62にロードされてもよい。また、プログラムは、一旦、CD−ROMなどの可搬性の記憶媒体からHDDなどの外部記憶装置65にインストールされた後、必要に応じて、この外部記憶装置65からメモリ62にロードされてもよい。さらに、プログラムは、図示していないネットワーク接続装置を介して、ネットワーク上の情報処理装置6が伝送信号により、一旦、外部記憶装置65にダウンロードされてからメモリ62にロードされてもよいし、あるいは、直接、ネットワーク経由でメモリ62にロードされてもよい。
The above-described program is stored in advance in the
[楕円曲線ペアリング演算処理]
次に、図2を参照しつつ、図3〜図6に沿って楕円曲線ペアリング演算処理の手順を説明する。
2以外の素数のべきqに対して、素数nがqk−1を割り切りかつ最小のkが偶数であるとする。この時、楕円曲線の定義体をFq、位数nの部分群を最大位数の部分群として持つTwisted Edward型楕円曲線E(Fq)をax2+y2=1+dx2y2(ad(a−d)≠0かつFq上で係数aは2乗根を持ち係数dは持たない)、その位数(素数位数)nの部分群をG1とする。
[Elliptic curve pairing calculation processing]
Next, the procedure of the elliptic curve pairing calculation process will be described with reference to FIGS. 3 to 6 with reference to FIG.
Suppose that for a prime power q other than 2, the prime number n divides q k −1 and the smallest k is an even number. At this time, a Twisted Edwardian elliptic curve E (F q ) having an elliptic curve defining body as F q and a subgroup of order n as a subgroup of the maximum order is expressed as ax 2 + y 2 = 1 + dx 2 y 2 (ad ( a−d) ≠ 0 and the coefficient a has a square root on F q and does not have the coefficient d), and a subgroup of its order (primary order) n is G 1 .
Fqのk次拡大体Fq1(q1=qk:kは偶数)はFqのk/2次拡大体Fq2(q2=qk/2)上の2次拡大体と見なすことができ、α2=δ∈Fq2(q2=qk/2)を満たす基底{1,α}を用いることで、任意の元はx+yα(x,y∈Fq2:q2=qk/2)で表現することができる。
次にQを、(Fq)をFq1(q1=qk)上の楕円曲線の点と見なし、E(Fq1)(q1=qk)上の位数nの元でAffine座標を用いてQ=(x0α,y0)(x0、y0∈Fq2:q2=qk/2)と表現できるものとする。この時、Qの属する位数nの部分群をG2とし、Fq1(q1=qk)の乗法に関する位数nの部分群をG3とする。
F q of k-th extension member F q1 (q1 = q k: k is an even number) can be regarded as secondary extension field on F q of k / 2 degree extension field F q2 (q2 = q k / 2) , Α 2 = δ∈F q2 (q2 = q k / 2 ), by using a basis {1, α}, an arbitrary element is x + yα (x, y∈F q2 : q2 = q k / 2 ) Can be expressed.
The next Q, using Affine coordinates (F q) and regarded as a point of an elliptic curve over F q1 (q1 = q k) , E (F q1) (q1 = q k) on the of order n of the original Q = (x 0 α, y 0 ) (x 0 , y 0 εF q2 : q2 = q k / 2 ). In this case, the subgroup of order n which belongs Q and G 2, and F q1 (q1 = q k) G 3 a subgroup of order n of multiplication.
以上の前提で、本実施形態に係る楕円曲線ペアリング演算の全体概要を説明すると、入出力部111により入力を受け付けた3つの群G1、G2、G3、拡張Inverted twisted Edward座標を用いて表現したG1の点(第1の点)P=(X1:Y1:T1:Z1)∈G3、Affine座標を用いて表現したG2の点(第2の点)Q=(x0α,y0)(x0,y0∈Fq2:q2=qk/2)、点PおよびQの位数n(n≧3)の各入力情報は、記憶部120に保持される。
Based on the above assumptions, the overall outline of the elliptic curve pairing calculation according to the present embodiment will be described. Three groups G 1 , G 2 , G 3 , and extended inverted twisted Edward coordinates received by the input /
ここで、拡張Inverted twisted Edward座標とは、楕円曲線上の点(x,y)をx=Z/X、y=Z/Y、XYZ≠0を満たすX,Y,Zを用いて変換したInverted Twisted Edward座標(X:Y:Z)に対して、xy=T/Zを満たす座標Tを加えて(X:Y:T:Z)とした座標である。
そして、制御演算部110が、記憶部120で保持されている各入力情報を用いて、図3〜図6に示すペアリング演算処理を行い、演算結果(第1の元)f=e(P,Q)∈G3を求め、出力する。
Here, the extended inverted twisted coordinate is an inverted coordinate obtained by converting a point (x, y) on an elliptic curve using X, Y, Z satisfying x = Z / X, y = Z / Y, and XYZ ≠ 0. This is a coordinate obtained by adding a coordinate T satisfying xy = T / Z to (X: Y: T: Z) with respect to Twisted Edward coordinates (X: Y: Z).
Then, the
(全体処理)
図3は、本実施形態に係る楕円曲線ペアリング演算処理の全体処理を説明するためのフローチャートである。
ステップS101において、基本演算部117が、Pの位数である素数nを2進数展開して、n=n0+n1×2+・・・+nt−1×2t−1 (nt−1=1)とする。
ステップS102において、基本演算部117が、η←(1+y0)/(x0δ)とおく。
ステップS103において、基本演算部117が、f←1(単位元)、i←t−2、R(第3の点)←Pとおく。
ステップS104において、楕円曲線2倍算演算部116が、f←f2gR,R(Q)、R←2Rを、を計算する(2倍算処理)。ステップS104の計算方法は図4を参照して後記する。gR,R(Q)については、図4のステップS206において後記する。
(Overall processing)
FIG. 3 is a flowchart for explaining the overall processing of the elliptic curve pairing calculation processing according to the present embodiment.
In step S101, the basic
In step S102, the
In step S103, the
In step S104, the elliptic curve doubling
ステップS105において、基本演算部117が、ni=1であるか否かを判定し、ni=1であれば(S105→Yes)、ステップS106の処理に進み、ni=1でなければ(S105→No)、ステップS107の処理に進む。
ステップS106において、楕円曲線加算演算部115が、f←fgR,P(Q)、R←R+Pを計算する(加算処理)。ステップS106の計算方法は、係数aが−1以外の場合は図5を参照して後記し、係数aが−1の場合は図6を参照して後記する。gR,P(Q)については、図5のステップS306、図6のステップS406で後記する。
ステップS107において、基本演算部117が、i←i−1を計算する。
ステップS108において、基本演算部117が、i≧0であるか否かを判定し、i≧0であれば(S108→Yes)、ステップS104の処理に戻り、i≧0でなければ(S108→No)、ステップS109の処理に進む。
ステップS109において、基本演算部117が、fのべき乗f←f(q1−1)/n(q1=qk)を計算しfを演算結果とする。
In step S105, the basic computation unit 117, it is determined whether or not n i = 1, if n i = 1 (S105 → Yes ), the process proceeds to step S106, unless n i = 1 (S105 → No), the process proceeds to step S107.
In step S106, the elliptic curve
In step S107, the
In step S108, the
In step S109, the
(2倍算処理)
次に、図2を参照しつつ、図4に沿って図3のステップS104における2倍算処理について説明する。なお、これ以降、各処理の最後に記述してあるm,s,Dは、それぞれ定義体Fq上の乗算、2乗算、定数倍算の演算コスト、M,Sは、それぞれFqのk次拡大体Fq1(q1=qk)上の乗算、2乗算の演算コストを示す。ただし、定義体Fq上の2倍算については、より演算コストの小さい加算もしくは1ビットシフトなどの演算を用いることでコストの大きい乗算を用いないで計算できるため定数倍としては扱わない。
(Doubling processing)
Next, the doubling process in step S104 of FIG. 3 will be described along FIG. 4 with reference to FIG. Hereafter, m, s, and D described at the end of each process are the operation costs of multiplication, multiplication, and constant multiplication on the definition field F q , respectively, and M and S are k k of F q , respectively. The operation cost of multiplication and multiplication on the next extension field F q1 (q1 = q k ) is shown. However, the doubling on the definition field F q is not treated as a constant multiplication because it can be calculated without using a multiplication with a high cost by using an operation such as addition or 1-bit shift with a lower calculation cost.
図4は、図3のステップS104における2倍算処理の手順を示すフローチャートである。
なお、図4において、入力時におけるRの座標は(X2:Y2:T2:Z2)であるとする。
ステップS201において、楕円曲線2倍算演算部116が、A←X2 2、B←Y2 2、C←T2 2、D←aB、E←aY2Z2をFq上でそれぞれ計算する(1m,3s,2D)。ここでa=−1である場合、D←aBおよびE←aY2Z2はFq上でBの符号を反転することにより定数倍算を用いないで計算できるため、演算コストを2D削減することができる。
FIG. 4 is a flowchart showing the procedure of the doubling process in step S104 of FIG.
In FIG. 4, it is assumed that the coordinates of R at the time of input are (X 2 : Y 2 : T 2 : Z 2 ).
In step S201, the elliptic curve doubling
ステップS202において、楕円曲線2倍算演算部116が、F←A+D、G←A−D、H←(X2+Y2)2−A−B、I←(X2+T2)2−A−C、J←(2C−F)をFq上でそれぞれ計算する(2s)。
ステップS203において、楕円曲線2倍算演算部116が、cZZ←2X2(Y2−Z2)をFq上で計算する(1m)。
ステップS204において、楕円曲線2倍算演算部116が、cXY←2(F−C)−IをFq上で計算する。
ステップS205において、楕円曲線2倍算演算部116が、cXZ←2(A−E)をFq上で計算する。
In step S < b > 202, the elliptic curve doubling
In step S203, the elliptic curve doubling
In step S204, the elliptic curve doubling operation portion 116, a c XY ← 2 (F-C ) -I calculating on F q.
In step S205, the elliptic curve doubling
ステップS206において、楕円曲線2倍算演算部116が、gR,R(Q)←cZZηα+cXYy0+cXZをFqのk/2次拡大体Fq2(q2=qk/2)上で計算する(km)。
In step S206, the elliptic curve doubling operation portion 116, g R, R (Q) ← c ZZ ηα +
ステップS207において、楕円曲線2倍算演算部116が、f←f2gR,R(Q)をFqのk次拡大体Fq1(q1=qk)上で計算する(1M,1S)。
ステップS208において、楕円曲線2倍算演算部116が、X3←FGをFq上で計算する(1m)。
ステップS209において、楕円曲線2倍算演算部116が、Y3←HJをFq上で計算する(1m)。
ステップS210において、楕円曲線2倍算演算部116が、T3←FJをFq上で計算する(1m)。
ステップS211において、楕円曲線2倍算演算部116が、Z3←GHをFq上で計算する(1m)。
ステップS212において、楕円曲線2倍算演算部116が、2倍算の演算結果を拡張Inverted twisted Edward座標を用いてR←(X3:Y3:T3:Z3)とおき、fとともに、演算結果として出力する。
この2倍算の総演算コストは、1M+1S+(k+6)m+5s+2Dとなる。
またa=−1である場合、1M+1S+(k+6)m+5sとなる。
In step S207, the elliptic curve doubling
In step S208, the elliptic curve doubling
In step S209, the elliptic curve doubling
In step S210, the elliptic curve doubling
In step S211, the elliptic curve doubling
In step S212, the elliptic curve doubling
The total calculation cost of this doubling is 1M + 1S + (k + 6) m + 5s + 2D.
When a = -1, 1M + 1S + (k + 6) m + 5s.
ここで、図4の処理について詳細に説明する。
まず、非特許文献2に基づくInverted twisted Edward座標(X:Y:Z)を用いた(X3:Y3:Z3)=2(X2:Y2:Z2)を計算する2倍算は以下の式(4)〜(6)で計算できる。
Here, the processing of FIG. 4 will be described in detail.
First, doubling to calculate (X 3 : Y 3 : Z 3 ) = 2 (X 2 : Y 2 : Z 2 ) using inverted twisted Edward coordinates (X: Y: Z) based on Non-Patent Document 2 Can be calculated by the following equations (4) to (6).
X3=(X2 2+aY2 2)(X2 2−aY2 2)・・・(4)
Y3=2X2Y2(X2 2+aY2 2−2dZ2 2)・・・(5)
Z3=2X2Y2(X2 2−aY2 2)・・・(6)
X 3 = (X 2 2 + aY 2 2 ) (X 2 2 −aY 2 2 ) (4)
Y 3 = 2X 2 Y 2 (X 2 2 + aY 2 2 -2dZ 2 2 ) (5)
Z 3 = 2X 2 Y 2 (X 2 2− aY 2 2 ) (6)
次に、この非特許文献2に記載の2倍算計算方法を本実施形態による、すなわち拡張Inverted twisted Edward座標を用いるペアリング演算手段に適するよう変形する。
つまり、上記のInverted twisted Edward座標(X3:Y3:Z3)に加えて1/(x3y3)=Z3/T3を満たすT3座標を求める必要がある。
ここで、T3は以下の条件(式(7))を満たす。
Next, the doubling calculation method described in Non-Patent Document 2 is modified so as to be suitable for the pairing calculation means according to this embodiment, that is, using the extended inverted twisted coordinates.
That is, in addition to the above inverted twisted Edward coordinates (X 3 : Y 3 : Z 3 ), it is necessary to obtain T 3 coordinates that satisfy 1 / (x 3 y 3 ) = Z 3 / T 3 .
Here, T 3 satisfy the following condition (equation (7)).
さらに、変形して、式(8)を得る。 Furthermore, it deform | transforms and Formula (8) is obtained.
以上より、T3は、式(9)とおける。 From the above, T 3 can be expressed by equation (9).
T3=(X2 2+aY2 2)(X2 2+aY2 2−2dZ2 2)・・・(9) T 3 = (X 2 2 + aY 2 2 ) (X 2 2 + aY 2 2 -2dZ 2 2 ) (9)
次に楕円曲線ax2+y2=1+dx2y2をx=Z2/X2、y=Z2/Y2を用いて変換すると、式(10)を得る。 Next, when the elliptic curve ax 2 + y 2 = 1 + dx 2 y 2 is converted using x = Z 2 / X 2 and y = Z 2 / Y 2 , Equation (10) is obtained.
(X2 2+aY2 2)Z2 2=X2 2Y2 2+dZ2 4・・・(10) (X 2 2 + aY 2 2 ) Z 2 2 = X 2 2 Y 2 2 + dZ 2 4 (10)
Z2 2で両辺を割ることによって、式(11)とおける。 By dividing both sides by Z 2 2, definitive and Equation (11).
X2 2Y2 2=T2 2Z2 2を用いることで式(12)を得る。 Formula (12) is obtained by using X 2 2 Y 2 2 = T 2 2 Z 2 2 .
2dZ2 2=2(X2 2+aY2 2−T2 2)・・・(12) 2dZ 2 2 = 2 (X 2 2 + aY 2 2 −T 2 2 ) (12)
式(12)を式(5)に代入することによりY3が求まる。 Y 3 is obtained by substituting equation (12) into equation (5).
Y3=2X2Y2(2T2 2−X2 2−aY2 2)・・・(13) Y 3 = 2X 2 Y 2 (2T 2 2 -X 2 2 -aY 2 2 ) (13)
式(12)を式(9)に代入することによりT3が求まる。 T 3 is obtained by substituting equation (12) into equation (9).
T3=(X2 2+aY2 2)(2T2 2−X2 2−aY2 2)・・・(14) T 3 = (X 2 2 + aY 2 2 ) (2T 2 2 −X 2 2 −aY 2 2 ) (14)
次に非特許文献4に基づくと、gR,R(Q)は式(15)で表すことができる。
Next, based on
gR,R(Q)=c0ZZηα+c0XYy0+c0XZ・・・(15) g R, R (Q) = c 0ZZ ηα + c 0XY y 0 + c 0XZ (15)
射影座標を用いてR=(X3:Y3:Z3)とした場合、式(15)の係数c0ZZ、c0XY、c0XZは以下の式(16)〜(18)で求められる。 When R = (X 3 : Y 3 : Z 3 ) using the projected coordinates, the coefficients c 0ZZ , c 0XY , and c 0XZ in the equation (15) are obtained by the following equations (16) to (18).
c0ZZ=X3Z3(Z3−Y3)・・・(16)
c0XY=dX3 2−Z3 3・・・(17)
c0XZ=Z3(Z3Y3−aX3 2)・・・(18)
c 0ZZ = X 3 Z 3 (Z 3 -Y 3 ) (16)
c 0XY = dX 3 2 -Z 3 3 (17)
c 0XZ = Z 3 (Z 3 Y 3 -aX 3 2 ) (18)
Rの各座標はすべてFqの元であるため、Fqの元をgR,R(Q)全体に乗算したとしても、あるいはFqの元でgR,R(Q)全体を割った結果を、新たにgR,R(Q)とおきなおして計算したとしても、乗算または除算に用いたFqの元は最後に行うfのべき乗の過程で単位元となるためペアリングの演算結果には影響しない。また、Rの各座標は全てFqの元であるため、これらの座標でgR,P(Q)全体に乗算する、または座標gR,R(Q)全体をすることで、gR,R(Q)の係数を、拡張射影座標を用いる表現からAffine座標を用いる表現に変換し、その後Affine座標を用いる表現から拡張Inverted twisted Edward座標を用いる表現へと変換することでgR,R(Q)を得る。 Since all the coordinates of R is the original F q, the original F q g R, R (Q) as obtained by multiplying the whole, or g R, divided by the total R (Q) in F q of the original Even if the result is newly recalculated as g R, R (Q) , the element of F q used for multiplication or division becomes the unit element in the process of power of f to be performed last, so that the pairing calculation The result is not affected. Further, since each coordinate of R is the original all F q, g R, is multiplied by the entire P (Q) at these coordinates, or coordinates g R, by the whole R (Q), g R, By converting the coefficient of R (Q) from an expression using extended projected coordinates to an expression using Affine coordinates, and then from an expression using Affine coordinates to an expression using extended inverted twisted coordinates, g R, R ( Q) is obtained.
gR,R(Q)全体をZ3 3で割ることによって式(16)より式(19)を得る。 g R, R (Q) is divided by Z 3 3 to obtain equation (19) from equation (16).
x2=X3/Z3、y2=Y3/Z3を用いて射影座標をAffine座標(x2,y2)に変換することによって式(20)を得る。 Equation (20) is obtained by converting the projected coordinates into Affine coordinates (x 2 , y 2 ) using x 2 = X 3 / Z 3 and y 2 = Y 3 / Z 3 .
cZZ=x2(1−y2)・・・(20) c ZZ = x 2 (1- y 2) ··· (20)
さらに、x2=Z2/X2、y2=Z2/Y2、x2y2=Z2/T2を満たす拡張Inverted twisted Edward座標(X2:Y2:T2:Z2)を用いて変換することで式(21)を得る。 Furthermore, the extended inverted twisted Edward coordinates (X 2 : Y 2 : T 2 : Z 2 ) satisfying x 2 = Z 2 / X 2 , y 2 = Z 2 / Y 2 , x 2 y 2 = Z 2 / T 2 (21) is obtained by converting using.
式(17)をZ3 3で割ることによって式(22)を得る。 Dividing equation (17) by Z 3 3 yields equation (22).
x2=X3/Z3、y2=Y3/Z3を用いて射影座標をAffine座標(x2,y2)変換することによって式(23)を得る。 By using x 2 = X 3 / Z 3 and y 2 = Y 3 / Z 3 , the projected coordinates are transformed into Affine coordinates (x 2 , y 2 ) to obtain Expression (23).
cXY=dx2 2y2−1・・・(23) c XY = dx 2 2 y 2 −1 (23)
さらに、x2=Z2/X2、y2=Z2/Y2、x2y2=Z2/T2を満たす拡張Inverted twisted Edward座標(X2:Y2:T2:Z2)を用いて変換することで式(24)を得る。 Furthermore, the extended inverted twisted Edward coordinates (X 2 : Y 2 : T 2 : Z 2 ) satisfying x 2 = Z 2 / X 2 , y 2 = Z 2 / Y 2 , x 2 y 2 = Z 2 / T 2 (24) is obtained by converting using.
同様に式(18)をZ3 3で割ることによって式(25)を得る。 Similarly, equation (25) is obtained by dividing equation (18) by Z 3 3 .
x2=X2/Z2、y2=Y2/Z2を用いて射影座標をAffine座標(x2,y2)変換することによって式(26)を得る。 Expression (26) is obtained by transforming projected coordinates to Affine coordinates (x 2 , y 2 ) using x 2 = X 2 / Z 2 and y 2 = Y 2 / Z 2 .
cXY=y2−ax2 2・・・(26) c XY = y 2 −ax 2 2 (26)
さらに、x2=Z2/X2、y2=Z2/Y2、x2y2=Z2/T2を満たす拡張Inverted twisted Edward座標(X2:Y2:T2:Z2)を用いて変換することで式(27)を得る。 Furthermore, the extended inverted twisted Edward coordinates (X 2 : Y 2 : T 2 : Z 2 ) satisfying x 2 = Z 2 / X 2 , y 2 = Z 2 / Y 2 , x 2 y 2 = Z 2 / T 2 (27) is obtained by converting using.
gR,R(Q)全体に2X2 2Y2を掛けることでcZZ←2X2 2Y2cZZを計算し、式(28)を得る。 g R, compute the c ZZ ← 2X 2 2 Y 2 c ZZ by multiplying the 2X 2 2 Y 2 across R (Q), obtaining a formula (28).
cZZ=2X2Z2(Y2−Z2)・・・(28) c ZZ = 2X 2 Z 2 ( Y 2 -Z 2) ··· (28)
gR,R(Q)全体に2X2 2Y2を掛けることでcXY←2X2 2Y2cXYを計算し式(29)を得る。 g obtained R, R (Q) entire 2X 2 2 Y 2 c XY ← 2X 2 by applying a 2 Y 2 c XY calculated by equation (29).
cXY=2dZ2 3−2X2 2Y2・・・(29) c XY = 2dZ 2 3 -2X 2 2 Y 2 (29)
X2Y2=T2Z2を用いて変形することで式(30)を得る。 Expression (30) is obtained by transforming using X 2 Y 2 = T 2 Z 2 .
cXY=2dZ2 3−2X2T2Z2=Z2(2dZ2 2−2X2T2)・・・(30) c XY = 2dZ 2 3 -2X 2 T 2 Z 2 = Z 2 (2dZ 2 2 -2X 2 T 2 ) (30)
さらに、式(12)を用いることで式(31)を得る。 Furthermore, Formula (31) is obtained by using Formula (12).
cXY=Z2(2(X2 2+aY2 2−T2 2)2X2T2)・・・(31) c XY = Z 2 (2 (X 2 2 + aY 2 2 −T 2 2 ) 2X 2 T 2 ) (31)
gR,R(Q)全体に2X2 2Y2を掛けることでCの係数cXZ←2X2 2Y2cXZを計算し式(32)を得る。 g obtained R, R (Q) entire 2X 2 2 Y C in 2 by multiplying the coefficients c XZ ← 2X 2 2 Y 2 c XZ calculated by equation (32).
cXZ=2X2 2Z2−2aY2Z2 2・・・(32) c XZ = 2X 2 2 Z 2 -2aY 2 Z 2 2 (32)
最後にgR,R(Q)全体をZ2で割ることによって、Cの係数cZZ←cZZ/Z2、cXY←cXY/Z2、cXZ←cXZ/Z2を計算することで式(33)〜(35)を得る。 Finally, by dividing the entire g R, R (Q) by Z 2 , C coefficients c ZZ ← c ZZ / Z 2 , c XY ← c XY / Z 2 , and c XZ ← c XZ / Z 2 are calculated. Thus, formulas (33) to (35) are obtained.
cZZ=2X2(Y2−Z2)・・・(33)
cXY=2(X2 2+aY2 2−T2 2)−2X2T2・・・(34)
cXZ=2(X2 2−aY2Z2)・・・(35)
c ZZ = 2X 2 (Y 2 -Z 2) ··· (33)
c XY = 2 (X 2 2 + aY 2 2 -T 2 2 ) -2X 2 T 2 (34)
c XZ = 2 (X 2 2 -aY 2 Z 2 ) (35)
以上をアルゴリズムの形でまとめると、図4で示す手順となる。 When the above is summarized in the form of an algorithm, the procedure shown in FIG. 4 is obtained.
(加算処理)
次に、図2を参照しつつ、図5および図6に沿って図3のステップS106における処理を説明する。
図5は、図3のステップS106において係数aが−1以外の場合の加算処理の手順を示すフローチャートである。
なお、図5において、入力時のPの座標は(X1:Y1:T1:Z1)、Rの座標は(X2:Y2:T2:Z2)であるとする。
ステップS301において、楕円曲線加算演算部115が、A←X1X2、B←Y1Y2、C←T2Z1、D←T1Z2をFq上でそれぞれ計算する(4m)。
ここでZ1=1である場合、C←T2Z1はC←T2となり、乗算の必要がなくなるため、演算コストを1m削減することができる。
ステップS302において、楕円曲線加算演算部115が、E←(X1+Y1)(X2−Y2)+B−A、F←C+D、G←C−D、H←A+aB、I←T1T2をFq上でそれぞれ計算する(2m,1D)。
ステップS303において、楕円曲線加算演算部115が、cZZ←Y2Z1−Y1Z2をFq上で計算する(2m)。
ここでZ1=1である場合、cZZ←Y2−Y1Z2となり、1回分の乗算の必要がなくなるため、演算コストを1m削減することができる。
(Addition processing)
Next, the processing in step S106 of FIG. 3 will be described along FIGS. 5 and 6 with reference to FIG.
FIG. 5 is a flowchart showing the procedure of addition processing when the coefficient a is other than −1 in step S106 of FIG.
In FIG. 5, it is assumed that the coordinates of P at the time of input are (X 1 : Y 1 : T 1 : Z 1 ) and the coordinates of R are (X 2 : Y 2 : T 2 : Z 2 ).
In step S301, the elliptic curve
Here, when Z 1 = 1, C ← T 2 Z 1 is C ← T 2 , and the multiplication is not necessary, so that the calculation cost can be reduced by 1 m.
In step S302, the elliptic curve
In step S303, the elliptic curve addition unit 115, a c ZZ ← Y 2 Z 1 -Y 1 Z 2 calculated in the F q (2m).
Here, when Z 1 = 1, c ZZ ← Y 2 −Y 1 Z 2 , and there is no need for one multiplication, so that the calculation cost can be reduced by 1 m.
ステップS304において、楕円曲線加算演算部115が、cXY←(Y1−T1)(Y2+T2)−B+I+EをFq上で計算する(1m)。
ステップS305において、楕円曲線加算演算部115が、cXZ←D−C+(X1Z2+X2Z1)をFq上で計算する(2m)。
ここでZ1=1である場合、cXZ←D−C+(X1Z2+X2)となり、1回分の乗算の必要がなくなるため、演算コストを1m削減することができる。
In step S304, the elliptic curve
In step S305, the elliptic curve
Here, when Z 1 = 1, c XZ ← D−C + (X 1 Z 2 + X 2 ) and it is not necessary to perform multiplication for one time, so that the calculation cost can be reduced by 1 m.
ステップS306において、gR,P(Q)←cZZηα+cXYy0+cXZをFqのk/2次拡大体Fq2(q2=qk/2)上で計算する(km)。
In step S306, g R, to calculate on P (Q) ← c ZZ ηα +
ステップS307において、f←fgR,P(Q)をFqのk次拡大体Fq1(q1=qk)上で計算する(1M)。 In step S307, f ← fg R, P (Q) is calculated on the k-th order extension field F q1 (q1 = q k ) of F q (1M).
ステップS308において、楕円曲線加算演算部115が、i=0であるか否かを判定し、i=0であれば(S308→Yes)、ステップS314の処理に進み、そうでなければ(S308→No)、ステップS309に進む。
ステップS309において、楕円曲線加算演算部115が、X3←HGをFq上で計算する(1m)。
ステップS310において、楕円曲線加算演算部115が、Y3←EFをFq上で計算する(1m)。
ステップS311において、楕円曲線加算演算部115が、T3←HEをFq上で計算する(1m)。
ステップS312において、楕円曲線加算演算部115が、Z3←FGをFq上で計算する(1m)
In step S308, the elliptic curve
In step S309, the elliptic curve
In step S310, the elliptic curve
In step S311, the elliptic curve
In step S312, the elliptic curve
ステップS313において、楕円曲線加算演算部115が、演算結果をInverted twisted Edward座標を用いてR←(X3:Y3:T3:Z3)としfとともに出力し、加算処理を終了する。
ステップS314では、楕円曲線加算演算部115が、演算結果をfとして出力し、加算処理を終了する。
図5に示す加算アルゴリズムの総演算コストは1M+(k+15)m+1D、Z1=1の場合、1M+(k+12)m+1Dとなる。なお、通常はZ1=1が用いられる。
In step S313, the elliptic curve
In step S314, the elliptic curve
The total calculation cost of the addition algorithm shown in FIG. 5 is 1M + (k + 12) m + 1D when 1M + (k + 15) m + 1D and Z 1 = 1. Usually, Z 1 = 1 is used.
ここで、図5の処理の詳細について説明する。
非特許文献3に基づく加算公式によるとTwisted Edward型楕円曲線上の2点P=(x1,y1)、Q=(x2,y2)に対して係数dを用いない加算P+Q=(x3,y3)は以下の式(36)で計算することができる。
Here, details of the processing of FIG. 5 will be described.
According to the addition formula based on
この式(36)より、図5に示す加算アルゴリズムを導く。 From this equation (36), the addition algorithm shown in FIG. 5 is derived.
2点P=(x1,y1)、Q=(x2,y2)と拡張Inverted twisted Edward座標を用いて表現したP=(X1:Y1:T1:Z1)、Q=(X2:Y2:T2:Z2)は以下の関係を満たす。 Two points P = (x 1 , y 1 ), Q = (x 2 , y 2 ) and P = (X 1 : Y 1 : T 1 : Z 1 ) expressed using extended inverted twisted coordinates, Q = (X 2 : Y 2 : T 2 : Z 2 ) satisfies the following relationship.
x1= Z1/X1、y1=Z1/Y1、x1y1= Z1/T1、x2= Z2/X2、y2=Z2/Y2、x2y2= Z2/T2 x 1 = Z 1 / X 1 , y 1 = Z 1 / Y 1 , x 1 y 1 = Z 1 / T 1 , x 2 = Z 2 / X 2 , y 2 = Z 2 / Y 2 , x 2 y 2 = Z 2 / T 2
これらの関係式を、式(36)に代入することによって、加算公式(式(36))を変形し、式(37)を得る。 By substituting these relational expressions into Expression (36), the addition formula (Expression (36)) is modified to obtain Expression (37).
次に、以下の式(38)より式(39)が導かれる。 Next, Expression (39) is derived from Expression (38) below.
X1Y1X2Y2=Z1Z2T1T2・・・(39) X 1 Y 1 X 2 Y 2 = Z 1 Z 2 T 1 T 2 ··· (39)
この式(39)を式(37)に代入して、変形すると、以下の式(40)を得る。 Substituting this equation (39) into equation (37) and transforming it yields the following equation (40).
最終的にP+Qは以下の式(41)を計算することで求められる。 Finally, P + Q is obtained by calculating the following equation (41).
式(39)より、x3=Z3/X3、y3=Z3/Y3、x3y3=Z3/T3 を満たすX3、Y3、T3、Z3をそれぞれ求めると、以下の式(42)〜(45)を得る。 X 3 , Y 3 , T 3 , and Z 3 satisfying x 3 = Z 3 / X 3 , y 3 = Z 3 / Y 3 , and x 3 y 3 = Z 3 / T 3 are obtained from Expression (39), respectively. And the following formulas (42) to (45) are obtained.
X3=(X1X2+aY1Y2)(Z1T2−T1Z2)・・・(42)
Y3=(Y1X2−X1Y2)(Z1T2+T1Z2)・・・(43)
T3=(X1X2+aY1Y2)(Y1X2−X1Y2)・・・(44)
Z3=(Z1T2+T1Z2)(Z1T2−T1Z2)・・・(45)
X 3 = (X 1 X 2 + aY 1 Y 2 ) (Z 1 T 2 −T 1 Z 2 ) (42)
Y 3 = (Y 1 X 2 -X 1 Y 2) (Z 1 T 2 + T 1 Z 2) ··· (43)
T 3 = (X 1 X 2 + aY 1 Y 2 ) (Y 1 X 2 −X 1 Y 2 ) (44)
Z 3 = (Z 1 T 2 + T 1 Z 2 ) (Z 1 T 2 −T 1 Z 2 ) (45)
式(42)〜(45)を用いることでP+R=(X1:Y1:T1:Z1)+(X2:Y2:T2:Z2)=(X3:Y3:T3:Z3)を計算することができる。
実際にx3=Z3/X3、y3=Z3/Y3、x3y3=Z3/T3を満たしていることは以下の式(46)〜(48)で確認できる。
By using the formulas (42) to (45), P + R = (X 1 : Y 1 : T 1 : Z 1 ) + (X 2 : Y 2 : T 2 : Z 2 ) = (X 3 : Y 3 : T 3 : Z 3 ) can be calculated.
It can be confirmed by the following formulas (46) to (48) that x 3 = Z 3 / X 3 , y 3 = Z 3 / Y 3 , and x 3 y 3 = Z 3 / T 3 are actually satisfied.
次に非特許文献4に基づくと、gR,P(Q)は式(49)で表すことができる。
Next, based on
gR,P(Q)=c0ZZηα+c0XYy0+c0XZ・・・(49) g R, P (Q) = c 0ZZ ηα + c 0XY y 0 + c 0XZ (49)
拡張射影座標を用いてP=(X3:Y3:T3:Z3)、R=(X4:Y4:T4:Z4)とした場合、式(47)の係数c0ZZ、c0XY、c0XZは以下の式(50)〜(52)で求められる。 When P = (X 3 : Y 3 : T 3 : Z 3 ) and R = (X 4 : Y 4 : T 4 : Z 4 ) using the extended projection coordinates, the coefficient c 0ZZ in Expression (47), c 0XY and c 0XZ are obtained by the following formulas (50) to (52).
c0ZZ=X3X4(Y3Z4−Y4Z3)・・・(50)
c0XY=Z3Z4(X3Z4−X4Z3+X3Y4−X4Y3)・・・(51)
c0XZ=X4Y4Z3 2−X3Y3Z4 2+Y3Y4(X4Z3−X3Z4)・・・(52)
c 0ZZ = X 3 X 4 (Y 3 Z 4 -Y 4 Z 3 ) (50)
c 0XY = Z 3 Z 4 ( X 3 Z 4 -X 4
c 0XZ = X 4 Y 4 Z 3 2 -X 3 Y 3
PおよびRの各座標は全てFqの元であるため、Fqの元をgR,P(Q)全体に乗算したとしても、あるいはFqの元でgR,P(Q)全体を割った結果を、新たにgR,P(Q)とおきなおして計算したとしても、乗算または除算に用いたFqの元は最後に行うfのべき乗の過程で単位元となるためペアリングの演算結果には影響しない。また、PおよびRの各座標は全てFqの元であるため、これらの座標でgR,P(Q)全体に乗算する、または座標gR,P(Q)全体をすることで、gR,P(Q)の係数を、拡張射影座標を用いる表現からAffine座標を用いる表現に変換し、その後Affine座標を用いる表現から拡張Inverted twisted Edward座標を用いる表現へと変換することで図5に示すgR,P(Q)を得る。 Since the coordinates of P and R are all elements of F q , even if the elements of F q are multiplied by the whole g R, P (Q), or the whole g R, P (Q) is Even if the result of division is newly calculated as g R, P (Q), pairing is performed because the element of F q used for multiplication or division becomes the unit element in the process of power of f performed at the end. It does not affect the operation result of. In addition, since all the coordinates of P and R are elements of F q , by multiplying the entire g R, P (Q) by these coordinates or by performing the entire coordinates g R, P (Q), g The coefficients of R, P (Q) are converted from an expression using extended projected coordinates to an expression using Affine coordinates, and then converted from an expression using Affine coordinates to an expression using extended inverted twisted coordinates in FIG. Obtain g R, P (Q).
gR,P(Q)全体をZ3 2Z4 2で割ることによって式(50)より式(53)を得る。 g R, P (Q) is divided by Z 3 2 Z 4 2 to obtain equation (53) from equation (50).
x3=X3/Z3、y3=Y3/Z3、x4=X4/Z4、y4=Y4/Z4を用いて射影座標をAffine座標(x3,y3)および(x4,y4)に変換することによって式(54)を得る。 Projection coordinates are affine coordinates (x 3 , y 3 ) using x 3 = X 3 / Z 3 , y 3 = Y 3 / Z 3 , x 4 = X 4 / Z 4 , y 4 = Y 4 / Z 4 And (x 4 , y 4 ) to obtain equation (54).
cZZ=x3x4(y3−y4)・・・(54) c ZZ = x 3 x 4 ( y 3 -y 4) ··· (54)
x3=Z1/X1、y3=Z1/Y1、x3y3=Z1/T1、x4=Z2/X2、y4=Z2/Y2、x4y4=Z2/T2を満たすInverted twisted Edward座標(X1:Y1:T1:Z1)および(X2:Y2:T2:Z2)を用いて変換することで式(55)を得る。 x 3 = Z 1 / X 1 , y 3 = Z 1 / Y 1 , x 3 y 3 = Z 1 / T 1 , x 4 = Z 2 / X 2 , y 4 = Z 2 / Y 2 , x 4 y 4 = Z 2 / T 2 Inverted Twisted Edward coordinates (X 1 : Y 1 : T 1 : Z 1 ) and (X 2 : Y 2 : T 2 : Z 2 ) )
gR,P(Q)全体をZ3 2Z4 2で割ることによって式(51)より式(56)を得る。 g R, P (Q) is divided by Z 3 2 Z 4 2 to obtain equation (56) from equation (51).
x3=X3/Z3、y3=Y3/Z3、x4=X4/Z4、y4=Y4/Z4を用いて射影座標をAffine座標(x3,y3)および(x4,y4)に変換することで式(57)を得る。 Projection coordinates are affine coordinates (x 3 , y 3 ) using x 3 = X 3 / Z 3 , y 3 = Y 3 / Z 3 , x 4 = X 4 / Z 4 , y 4 = Y 4 / Z 4 And (x 4 , y 4 ) to obtain equation (57).
cXY=x3−x4+x3y4−x4y3・・・(57) c XY = x 3 −x 4 + x 3 y 4 −x 4 y 3 (57)
x3=Z1/X1、y3=Z1/Y1、x3y3=Z1/T1、x4=Z2/X2、y4=Z2/Y2、x4y4=Z2/T2を満たすInverted twisted Edward座標(X1:Y1:T1:Z1)および(X2:Y2:T2:Z2)を用いて変換することで式(58)を得る。 x 3 = Z 1 / X 1 , y 3 = Z 1 / Y 1 , x 3 y 3 = Z 1 / T 1 , x 4 = Z 2 / X 2 , y 4 = Z 2 / Y 2 , x 4 y 4 = Z 2 / T 2 Inverted twisted Edward coordinates (X 1 : Y 1 : T 1 : Z 1 ) and (X 2 : Y 2 : T 2 : Z 2 ) )
gR,P(Q)全体をZ3 2Z4 2で割ることによって式(52)より式(59)を得る。 g R, P (Q) is divided by Z 3 2 Z 4 2 to obtain equation (59) from equation (52).
x3=X3/Z3、y3=Y3/Z3、x4=X4/Z4、y4=Y4/Z4を用いて射影座標をAffine座標(x3,y3)および(x4,y4)に変換することで式(60)を得る。 Projection coordinates are affine coordinates (x 3 , y 3 ) using x 3 = X 3 / Z 3 , y 3 = Y 3 / Z 3 , x 4 = X 4 / Z 4 , y 4 = Y 4 / Z 4 And (x 4 , y 4 ) to obtain the equation (60).
cXZ=x4y4−x3y3+y3y4(x4−x3)・・・(60)
c XZ = x 4 y 4 -x 3
x3=Z1/X1、y3=Z1/Y1、x3y3=Z1/T1、x4=Z2/X2、y4=Z2/Y2、x4y4=Z2/T2を満たすInverted twisted Edward座標(X1:Y1:T1:Z1)および(X2:Y2:T2:Z2)を用いて変換することで式(61)が得られる。 x 3 = Z 1 / X 1 , y 3 = Z 1 / Y 1 , x 3 y 3 = Z 1 / T 1 , x 4 = Z 2 / X 2 , y 4 = Z 2 / Y 2 , x 4 y 4 = Z 2 / T 2 Inverted Twisted Edward coordinates (X 1 : Y 1 : T 1 : Z 1 ) and (X 2 : Y 2 : T 2 : Z 2 ) ) Is obtained.
gR,P(Q)全体にX1X2Y1Y2を掛けることによって式(55)より式(62)を得る。 g R, P (Q) is multiplied by X 1 X 2 Y 1 Y 2 to obtain equation (62) from equation (55).
cZZ←X1X2Y1Y2cZZ=Z1Z2(Y2Z1−Y1Z2)・・・(62) c ZZ ← X 1 X 2 Y 1 Y 2 c ZZ = Z 1 Z 2 (Y 2 Z 1 -Y 1 Z 2) ··· (62)
gR,P(Q)全体にX1X2Y1Y2を掛けることによって式(58)より式(63)を得る。 g R, P (Q) is multiplied by X 1 X 2 Y 1 Y 2 to obtain equation (63) from equation (58).
cXY←X1X2Y1Y2cXY=Y1X2Y2Z1−X1Y1Y2Z2+Z1Z2(X2Y1−X1Y2)・・・(63) c XY ← X 1 X 2 Y 1 Y 2 c XY = Y 1 X 2 Y 2 Z 1 -X 1 Y 1 Y 2 Z 2 + Z 1 Z 2 (X 2 Y 1 -X 1 Y 2) ··· ( 63)
さらに、X1Y1=T1Z1、X2Y2=T2Z2を用いて変形することで式(64)を得る。 Furthermore, to obtain a formula (64) by deforming with X 1 Y 1 = T 1 Z 1, X 2 Y 2 = T 2 Z 2.
cXY=Z1Z2(Y1T2−Y2T1+X2Y1−X1Y2)・・・(64)
c XY = Z 1 Z 2 ( Y 1 T 2 -Y 2
gR,P(Q)全体にX1X2Y1Y2を掛けることによって式(59)より式(65)を得る。 g R, P (Q) is multiplied by X 1 X 2 Y 1 Y 2 to obtain equation (65) from equation (59).
cXZ←X1X2Y1Y2cXZ=X1Y1Z2 2−X2Y2Z1 2+Z1Z2(X1Z2−X2Z1)・・・(65)
c XZ ← X 1 X 2 Y 1 Y 2 c XZ = X 1 Y 1 Z 2 2 -X 2 Y 2
さらに、T1=X1Y1Z1、T2=X2Y2Z2を用いて変形することで式(66)を得る。 Further, transformation is performed using T 1 = X 1 Y 1 Z 1 and T 2 = X 2 Y 2 Z 2 to obtain Equation (66).
cXZ=Z1Z2(T1Z2−T2Z1+X1Z2−X2Z1)・・・(66) c XZ = Z 1 Z 2 (T 1 Z 2 −T 2 Z 1 + X 1 Z 2 −X 2 Z 1 ) (66)
gR,P(Q)全体をZ1Z2で割、cZZ←cZZ/(Z1Z2)、cXY←cXY/(Z1Z2)、cXZ←cXZ/(Z1Z2)を計算することにより式(67)〜(69)を得る。 g R, P (Q) is divided by Z 1 Z 2 and c ZZ ← c ZZ / (Z 1 Z 2 ), c XY ← c XY / (Z 1 Z 2 ), c XZ ← c XZ / (Z 1 Z 2 ) is calculated to obtain formulas (67) to (69).
cZZ=Y2Z1−Y1Z2・・・(67)
cXY=Y1T2−Y2T1+X2Y1−X1Y2・・・(68)
cXZ=T1Z2−T2Z1+X1Z2−X2Z1・・・(69)
c ZZ = Y 2 Z 1 -Y 1 Z 2 ··· (67)
c XY = Y 1 T 2 -Y 2
c XZ = T 1 Z 2 -T 2
上記の内容をアルゴリズムの形でまとめると、図5に示す処理手順となる。 When the above contents are summarized in the form of an algorithm, the processing procedure shown in FIG. 5 is obtained.
図6は、図3のステップS106において係数aが−1の場合の加算処理の手順を示すフローチャートである。
なお、図6において、入力時におけるPの座標は(X1:Y1:T1:Z1)、Rの座標は(X2:Y2:T2:Z2)であるとする。
ステップS401において、楕円曲線加算演算部115が、A←(X1−Y1)(X2+Y2)、B←(X1+Y1)(X2−Y2)、C←2T2Z1、D←2T1Z2をFq上でそれぞれ計算する(4m)。
ここでZ1=1である場合、C←2T2Z1はC←2T2となり、乗算の必要がなくなるため、演算コストを1m削減することができる。
ステップS402において、楕円曲線加算演算部115が、E←A+B、F←C+D,G←C−D,H←B−AをFq上でそれぞれ計算する。
ステップS403において、楕円曲線加算演算部115が、cZZ←2(Y2Z1−Y1Z2)をFq上で計算する(2m)。
ここでZ1=1である場合、cZZ←2(Y2−Y1Z2)となり、1回分の乗算の必要がなくなるため、演算コストを1m削減することができる。
FIG. 6 is a flowchart showing the procedure of addition processing when the coefficient a is −1 in step S106 of FIG.
In FIG. 6, it is assumed that the coordinates of P at the time of input are (X 1 : Y 1 : T 1 : Z 1 ) and the coordinates of R are (X 2 : Y 2 : T 2 : Z 2 ).
In step S401, the elliptic curve
Here, when Z 1 = 1, C ← 2T 2 Z 1 becomes C ← 2T 2 , and there is no need for multiplication, so that the calculation cost can be reduced by 1 m.
In step S402, the elliptic curve
In step S403, the elliptic curve addition unit 115, c ZZ ← 2 a (Y 2 Z 1 -Y 1 Z 2) is computed on F q (2m).
Here, when Z 1 = 1, c ZZ ← 2 (Y 2 −Y 1 Z 2 ), and it is not necessary to perform multiplication for one time, so that the calculation cost can be reduced by 1 m.
ステップS404において、楕円曲線加算演算部115が、cXY←2(Y1T2−Y2T1)+HをFq上で計算する(2m)。
ステップS405において、楕円曲線加算演算部115が、cXZ←D−C+2(X1Z2−X2Z1)をFq上で計算する(2m)。
ここでZ1=1である場合、cXZ←D−C+2(X1Z2−X2)となり、1回分の乗算の必要がなくなるため、演算コストを1m削減することができる。
ステップS406において、楕円曲線加算演算部115が、gR,P(Q)←cZZηα+cXYy0+cXZをFqのk/2次拡大体Fq2(q2=qk/2)上で計算する(km)。
ステップS407において、楕円曲線加算演算部115が、f←fgR,P(Q)をFqのk次拡大体Fq1(q1=qk)上で計算する(1M)。
In step S404, the elliptic curve addition unit 115, c XY ← 2 (Y 1 T 2 -Y 2 T 1) + H a calculating on F q (2m).
In step S405, the elliptic curve
Here, when Z 1 = 1, c XZ ← D−C + 2 (X 1 Z 2 −X 2 ), and it is not necessary to perform multiplication for one time, so that the calculation cost can be reduced by 1 m.
In step S406, the elliptic curve addition unit 115, g R, on P (Q) ← c ZZ ηα +
In step S407, the elliptic curve
ステップS408において、楕円曲線加算演算部115が、i=0であるか否かを判定し、i=0であれば(S408→Yes)、ステップS414の処理に進み、そうでなければ(S408→No)、ステップS409に進む。
ステップS409において、楕円曲線加算演算部115が、X3←EGをFq上で計算する(1m)。
ステップS410において、楕円曲線加算演算部115が、Y3←HFをFq上で計算する(1m)。
ステップS411において、楕円曲線加算演算部115が、T3←EHをFq上で計算する(1m)。
ステップS412において、楕円曲線加算演算部115が、Z3←FGをFq上で計算する(1m)。
ステップS413において、楕円曲線加算演算部115が、演算結果をInverted twisted Edward座標を用いたR←(X3:Y3:T3:Z3)としてfとともに出力し、加算処理を終了する。
ステップS414では、楕円曲線加算演算部115が、演算結果をfとして出力し、加算処理を終了する。
図6に示す加算アルゴリズムの演算コストは1M+(k+14)m(Z1=1以外)、1M+(k+11)m(Z1=1)となる。この処理における演算コストは、非特許文献4において該当するコストより、1m+1D減っている。非特許文献4に記載の技術にa=−1を適用した場合と比べても1m減っている。
In step S408, the elliptic curve
In step S409, the elliptic curve
In step S410, the elliptic curve
In step S411, the elliptic curve
In step S412, the elliptic curve
In step S413, the elliptic curve
In step S414, the elliptic curve
The calculation cost of the addition algorithm shown in FIG. 6 is 1M + (k + 14) m (other than Z 1 = 1) and 1M + (k + 11) m (Z 1 = 1). The calculation cost in this process is reduced by 1 m + 1D from the corresponding cost in
ここで、図6に示す処理について詳細に説明する。
ここでは、図5に示す加算方法を変形することにより、図6に示す加算アルゴリズムを導く。
図5における加算方法(式(42)〜(45))に対して、a=−1を代入することにより以下の式(70)〜(73)が得られる。
Here, the process shown in FIG. 6 will be described in detail.
Here, the addition algorithm shown in FIG. 6 is derived by modifying the addition method shown in FIG.
The following formulas (70) to (73) are obtained by substituting a = −1 for the addition method (formulas (42) to (45)) in FIG. 5.
X3=(X1X2+aY1Y2)(Z1T2−T1Z2)・・・(42)
Y3=(Y1X2−X1Y2)(Z1T2+T1Z2)・・・(43)
T3=(X1X2+aY1Y2)(Y1X2−X1Y2)・・・(44)
Z3=(Z1T2+T1Z2)(Z1T2−T1Z2)・・・(45)
X 3 = (X 1 X 2 + aY 1 Y 2 ) (Z 1 T 2 −T 1 Z 2 ) (42)
Y 3 = (Y 1 X 2 -X 1 Y 2) (Z 1 T 2 + T 1 Z 2) ··· (43)
T 3 = (X 1 X 2 + aY 1 Y 2 ) (Y 1 X 2 −X 1 Y 2 ) (44)
Z 3 = (Z 1 T 2 + T 1 Z 2 ) (Z 1 T 2 −T 1 Z 2 ) (45)
X3=(X1X2−Y1Y2)(Z1T2−T1Z2)・・・(70)
Y3=(Y1X2−X1Y2)(Z1T2+T1Z2)・・・(71)
T3=(X1X2−Y1Y2)(Y1X2−X1Y2)・・・(72)
Z3=(Z1T2+T1Z2)(Z1T2−T1Z2)・・・(73)
X 3 = (X 1 X 2 -Y 1 Y 2) (Z 1 T 2 -T 1 Z 2) ··· (70)
Y 3 = (Y 1 X 2 -X 1 Y 2) (Z 1 T 2 + T 1 Z 2) ··· (71)
T 3 = (X 1 X 2 -Y 1 Y 2) (Y 1 X 2 -X 1 Y 2) ··· (72)
Z 3 = (Z 1 T 2 + T 1 Z 2 ) (Z 1 T 2 −T 1 Z 2 ) (73)
式(70)〜(73)を用いることによりP+R=(X1:Y1:T1:Z1)+(X2:Y2:T2:Z2)=(X3:Y3:T3:Z3)を計算することができ、(X3:Y3:T3:Z3)の代わりに(X4:Y4:T4:Z4)=(4X3:4Y3:4T3:4Z3)を用いてもx3=Z4/X4、y3=Z4/Y4、x3y3=Z4/T4を満たすことから、以下の式(74)〜(77)を用いることによりP+Q=(X1:Y1:T1:Z1)+(X2:Y2:T2:Z2)=(X3:Y3:T3:Z3)を計算できる。 By using the formulas (70) to (73), P + R = (X 1 : Y 1 : T 1 : Z 1 ) + (X 2 : Y 2 : T 2 : Z 2 ) = (X 3 : Y 3 : T 3 : Z 3 ) can be calculated, and instead of (X 3 : Y 3 : T 3 : Z 3 ), (X 4 : Y 4 : T 4 : Z 4 ) = (4X 3 : 4Y 3 : 4T 3 : 4Z 3 ), x 3 = Z 4 / X 4 , y 3 = Z 4 / Y 4 , and x 3 y 3 = Z 4 / T 4 are satisfied. 77), P + Q = (X 1 : Y 1 : T 1 : Z 1 ) + (X 2 : Y 2 : T 2 : Z 2 ) = (X 3 : Y 3 : T 3 : Z 3 ) Can be calculated.
X3=(2X1X2−2Y1Y2)(2Z1T2−2T1Z2)・・・(74)
Y3=(2Y1X2−2X1Y2)(2Z1T2+2T1Z2)・・・(75)
T3=(2X1X2−2Y1Y2)(2Y1X2−2X1Y2)・・・(76)
Z3=(2Z1T2+2T1Z2)(2Z1T2−2T1Z2)・・・(77)
X 3 = (2X 1 X 2 -2Y 1 Y 2 ) (2Z 1 T 2 -2T 1 Z 2 ) (74)
Y 3 = (2Y 1 X 2 -2X 1 Y 2 ) (2Z 1 T 2 + 2T 1 Z 2 ) (75)
T 3 = (2X 1 X 2 -2Y 1 Y 2 ) (2Y 1 X 2 -2X 1 Y 2 ) (76)
Z 3 = (2Z 1 T 2 + 2T 1 Z 2 ) (2Z 1 T 2 -2T 1 Z 2 ) (77)
ここで、X3、Y3、Z3座標を求める際に必要となる式は以下の条件(式(78),(79))を満たす。 Here, the formulas necessary for obtaining the X 3 , Y 3 , and Z 3 coordinates satisfy the following conditions (formulas (78) and (79)).
(2X1X2−2Y1Y2)=(X1−Y1)(X2+Y2)+(X1+Y1)(X2−Y2)・・・(78)
(2Y1X2−2X1Y2)=(X1+Y1)(X2−Y2)−(X1−Y1)(X2+Y2)・・・(79)
(2X 1 X 2 -2Y 1 Y 2 ) = (X 1 −Y 1 ) (X 2 + Y 2 ) + (X 1 + Y 1 ) (X 2 −Y 2 ) (78)
(2Y 1 X 2 -2X 1 Y 2 ) = (X 1 + Y 1 ) (X 2 −Y 2 ) − (X 1 −Y 1 ) (X 2 + Y 2 ) (79)
次にgR,P(Q)について説明する。
図5におけるgR,P(Q)の式(67)から(69)で表される係数を2倍し、cZZ←2cZZ、cXY←2cXY、cXZ←2cXZを計算することにより式(80)〜(82)を得る。
Next, g R, P (Q) will be described.
The coefficients represented by the equations (67) to (69) of g R, P (Q) in FIG. 5 are doubled to calculate c ZZ ← 2c ZZ , c XY ← 2c XY , c XZ ← 2c XZ To obtain formulas (80) to (82).
cZZ=Y2Z1−Y1Z2・・・(67)
cXY=Y1T2−Y2T1+X2Y1−X1Y2・・・(68)
cXZ=T1Z2−T2Z1+X1Z2−X2Z1・・・(69)
c ZZ = Y 2 Z 1 -Y 1 Z 2 ··· (67)
c XY = Y 1 T 2 -Y 2
c XZ = T 1 Z 2 -T 2
cZZ=2(Y2Z1−Y1Z2)・・・(80)
cXY=2(Y1T2−Y2T1)+2X2Y1−2X1Y2・・・(81)
cXZ=2T1Z2−2T2Z1+2(X1Z2−X2Z1)・・・(82)
c ZZ = 2 (Y 2 Z 1 -Y 1 Z 2) ··· (80)
c XY = 2 (Y 1 T 2 -Y 2 T 1) + 2X 2 Y 1 -2X 1 Y 2 ··· (81)
c XZ = 2T 1 Z 2 -2T 2
上記の内容をアルゴリズムの形でまとめると、図6に示す処理手順となる。 When the above contents are summarized in the form of an algorithm, the processing procedure shown in FIG. 6 is obtained.
ここで、a=−1の場合の加算処理において、1m分、乗算コストが削減できる理由を、削減に影響する箇所のみを取り出して説明する。 Here, the reason why the multiplication cost can be reduced by 1 m in the addition processing in the case of a = −1 will be described by taking out only the portions that affect the reduction.
aが−1以外の場合、加算は以下の方法で求まる。まず、前記した式(42)〜(45)をみてみる。 When a is other than -1, addition is obtained by the following method. First, look at the above-mentioned formulas (42) to (45).
X3=(X1X2+aY1Y2)(Z1T2−T1Z2)・・・(42)
Y3=(Y1X2−X1Y2)(Z1T2+T1Z2)・・・(43)
T3=(X1X2+aY1Y2)(Y1X2−X1Y2)・・・(44)
Z3=(Z1T2+T1Z2)(Z1T2−T1Z2)・・・(45)
X 3 = (X 1 X 2 + aY 1 Y 2 ) (Z 1 T 2 −T 1 Z 2 ) (42)
Y 3 = (Y 1 X 2 -X 1 Y 2) (Z 1 T 2 + T 1 Z 2) ··· (43)
T 3 = (X 1 X 2 + aY 1 Y 2 ) (Y 1 X 2 −X 1 Y 2 ) (44)
Z 3 = (Z 1 T 2 + T 1 Z 2 ) (Z 1 T 2 −T 1 Z 2 ) (45)
上記の式の内、乗算の削減に影響するのはE=Y1X2−X1Y2、H=X1X2+aY1Y2であり、これら2つの式を求める部分で以下の方法が適用できる。 Among the above formulas, E = Y 1 X 2 −X 1 Y 2 and H = X 1 X 2 + aY 1 Y 2 affect the reduction of multiplication, and the following method is used to obtain these two formulas. Is applicable.
A←X1X2、B←Y1Y2、E←(X1+Y1)(X2−Y2)+B−A、H←A+aB
A ← X 1 X 2, B ← Y 1 Y 2, E ← (
この場合の計算コストは3m+1D、a=−1であればH←A−Bとなり1Dの削減が可能となり計算コストは3mとなる。 In this case, if the calculation cost is 3m + 1D and a = -1, H ← AB, and 1D can be reduced, and the calculation cost is 3m.
次にa=−1の場合、aが−1以外の場合の加算結果(X3:Y3:T3:Z3)を求める代わりに(4X3:4Y3:4T3:4Z3)を加算結果とするようにアルゴリズムを修正する。
具体的には(42)〜(43)式にa=−1を代入し全体を4倍した以下の式(74)〜(77)で求めることができる。
Next, when a = −1, instead of obtaining the addition result (X 3 : Y 3 : T 3 : Z 3 ) when a is other than −1, (4X 3 : 4Y 3 : 4T 3 : 4Z 3 ) is obtained. The algorithm is modified so that the addition result is obtained.
Specifically, it can be obtained by the following formulas (74) to (77) in which a = -1 is substituted into the formulas (42) to (43) and the whole is multiplied by four.
X3=(2X1X2−2Y1Y2)(2Z1T2−2T1Z2)・・・(74)
Y3=(2Y1X2−2X1Y2)(2Z1T2+2T1Z2)・・・(75)
T3=(2X1X2−2Y1Y2)(2Y1X2−2X1Y2)・・・(76)
Z3=(2Z1T2+2T1Z2)(2Z1T2−2T1Z2)・・・(77)
X 3 = (2X 1 X 2 -2Y 1 Y 2 ) (2Z 1 T 2 -2T 1 Z 2 ) (74)
Y 3 = (2Y 1 X 2 -2X 1 Y 2 ) (2Z 1 T 2 + 2T 1 Z 2 ) (75)
T 3 = (2X 1 X 2 -2Y 1 Y 2 ) (2Y 1 X 2 -2X 1 Y 2 ) (76)
Z 3 = (2Z 1 T 2 + 2T 1 Z 2 ) (2Z 1 T 2 -2T 1 Z 2 ) (77)
aが−1以外の場合のEに相当するE=2Y1X2−2X1Y2、Hに相当するH=2X1X2−Y1Y2は以下の方法で求めることができる。 E = 2Y 1 X 2 -2X 1 Y 2 corresponding to E when a is other than −1, and H = 2X 1 X 2 −Y 1 Y 2 corresponding to H can be obtained by the following method.
A←(X1−Y1)(X2+Y2)、B←(X1+Y1)(X2−Y2)、E←A+B、H←B−A A ← (X 1 −Y 1 ) (X 2 + Y 2 ), B ← (X 1 + Y 1 ) (X 2 −Y 2 ), E ← A + B, H ← B−A
この場合の計算コストは2mとなりaが−1以外の場合に比べて1m+1Dの計算コストを削減できる。 In this case, the calculation cost is 2 m, and the calculation cost of 1 m + 1D can be reduced as compared with the case where a is other than -1.
ここで、本実施形態の効果について説明する。非特許文献4に開示されている拡張射影座標を用いて表現した点P=(X:Y:T:Z)(Z≠1)を用いてReduced Tateペアリングを計算したときにおいて、m,s,Dを、それぞれ定義体Fq上の乗算、2乗算、定数倍算の演算コストとし、M,Sを、それぞれFqのk次拡大体Fq1(q1=qk)上の乗算、2乗算の演算コストとした場合、ループ処理で計算される加算処理の演算コストは1M+(k+14)m+1D、2倍算処理の演算コストは1M+1S+(k+6)m+5s+2Dとなる。
Here, the effect of this embodiment will be described. When the Reduced Tate pairing is calculated using the point P = (X: Y: T: Z) (Z ≠ 1) expressed using the extended projection coordinates disclosed in
本実施形態における拡張Inverted Twisted Edward座標を用いて表現した点P=(X:Y:T:Z)(Z≠1)を用いてReduced Tateペアリングを計算した場合、ループ処理で計算される加算処理の演算コストは1M+(k+15)m+1D、2倍算処理の演算コストは1M+1S+(k+6)m+5s+2Dとなる。 Addition calculated by loop processing when the reduced Pate pairing is calculated by using the point P = (X: Y: T: Z) (Z ≠ 1) expressed using the extended inverted twisted coordinate in the present embodiment. The operation cost of the process is 1M + (k + 15) m + 1D, and the operation cost of the doubling process is 1M + 1S + (k + 6) m + 5s + 2D.
非特許文献4に開示されている拡張射影座標を用いて表現した点P=(X:Y:T:Z)(Z=1)を用いてReduced Tateペアリングを計算した場合、ループ処理で計算される加算処理の演算コストは1M+(k+12)m+1D、2倍算処理の演算コストは1M+1S+(k+6)m+5s+2Dとなる。
本実施形態における拡張Inverted Twisted Edward座標を用いて表現した点P=(X:Y:T:Z)(Z=1)を用いてReduced Tateペアリングを計算した場合、ループ処理で計算される加算処理の演算コストは1M+(k+12)m+1D、2倍算処理の演算コストは1M+1S+(k+6)m+5s+2Dとなり、非特許文献4に開示されている計算方法と同等の演算コストとなる。
加算ステップにおけるPのZ座標を1にすることは実用上問題が無いため、Z=1とすることにより非特許文献4に開示されている計算方法と同等の演算速度を実現できる。
When the reduced state pairing is calculated using the point P = (X: Y: T: Z) (Z = 1) expressed using the extended projection coordinates disclosed in
Addition calculated by loop processing when reduced pair pairing is calculated using the point P = (X: Y: T: Z) (Z = 1) expressed using the extended inverted twisted coordinate in this embodiment The calculation cost of the process is 1M + (k + 12) m + 1D, and the calculation cost of the doubling process is 1M + 1S + (k + 6) m + 5s + 2D, which is the same calculation cost as the calculation method disclosed in
Since there is no practical problem in setting the Z coordinate of P in the addition step to 1, the calculation speed equivalent to the calculation method disclosed in
さらに、楕円曲線の係数aを−1とすることにより本実施形態における加算ステップの演算コストは1M+(k+11)m、2倍算処理の演算コストは1M+1S+(k+6)m+5sとなり、非特許文献4に開示されている計算方法に比べて、加算処理において1m+D、2倍算ステップにおいて2Dの演算コストを削減できる。 Furthermore, when the coefficient a of the elliptic curve is set to −1, the calculation cost of the addition step in this embodiment is 1M + (k + 11) m, and the calculation cost of the doubling process is 1M + 1S + (k + 6) m + 5 s. Compared to the disclosed calculation method, the calculation cost of 1m + D in the addition process and 2D in the doubling step can be reduced.
すなわち、本実施形態によれば、非特許文献4に記載の技術に比べてペアリング演算時の演算コストを削減できるためスカラ倍演算コストをより高速化することができる。これにより高速なIDベース暗号など楕円曲線上で定義されるペアリングの性質を用い、任意の文字列を公開鍵として用いることのできる署名方式や公開鍵暗号の実現が可能となる。
That is, according to the present embodiment, since the calculation cost at the time of pairing calculation can be reduced as compared with the technique described in
《IDベース暗号システム》
次に、本実施形態に係る楕円曲線ペアリング演算方法を利用したIDベース暗号システムについて図7〜図15を参照して説明する。
<< ID-based encryption system >>
Next, an ID-based encryption system using the elliptic curve pairing calculation method according to the present embodiment will be described with reference to FIGS.
図7は、本実施形態に係る楕円曲線ペアリング演算方法を利用したIDベース暗号システムの構成例を示す図である。
図7に示すように、本実施形態のIDベース暗号システム2は、鍵生成センタに設置されている鍵発行装置3と、暗号化装置4と、復号化装置5とを備える。鍵発行装置3、暗号化装置4および復号化装置5のそれぞれは、ネットワーク201により接続されている。以下、暗号化装置4の利用者を利用者A、復号化装置5の利用者を利用者Bとする。両者を区別する必要がない場合は、利用者と呼ぶ。
FIG. 7 is a diagram illustrating a configuration example of an ID-based encryption system using the elliptic curve pairing calculation method according to the present embodiment.
As shown in FIG. 7, the ID-based encryption system 2 of the present embodiment includes a
これらの各装置を用いた本実施形態での暗号化および復号化処理の概略について説明する。本実施形態では、公開鍵として、所定のルールによって定められた利用者と対応付けられるID、例えば電子メールアドレスなどを用いるものとする。
まず、鍵発行装置3において、IDベース暗号システム2全体で用いる公開パラメータおよびマスタ鍵を生成し、生成した公開パラメータを公開する。
暗号化したメッセージを送信する場合、暗号化装置4において、鍵発行装置3から取得した送信相手の公開鍵(利用者BのID)および公開パラメータを用いて暗号化対象データを暗号化することによって暗号化データを生成し、生成した暗号化データを送出する。復号化装置5では、予め、鍵発行装置3に自身の公開鍵に対応する秘密鍵の発行を依頼し、その秘密鍵および公開パラメータを用いて、暗号化装置4から受け取った暗号化データを復号する。
An outline of encryption and decryption processing in this embodiment using these devices will be described. In this embodiment, an ID associated with a user defined by a predetermined rule, such as an e-mail address, is used as the public key.
First, the
When transmitting an encrypted message, the
《鍵生成》
次に、本実施形態に係る楕円曲線スカラ倍演算方法を利用した鍵生成方法について図8から図11を参照して説明する。
《Key generation》
Next, a key generation method using the elliptic curve scalar multiplication method according to the present embodiment will be described with reference to FIGS.
[鍵発行装置]
図8は、本実施形態に係る鍵発行装置の構成例を示す図である。
鍵発行装置3は、制御演算部310および記憶部320を有している。
制御演算部310は、入出力部311、制御部312、群選択部313、乱数生成部314、楕円曲線スカラ倍演算部315、ハッシュ関数選択部316、ハッシュ関数演算部317を有している。入出力部311は、公開パラメータおよびマスタ鍵生成処理または秘密鍵生成処理のいずれの処理を実行するかの処理選択情報や、公開パラメータおよびマスタ鍵生成処理時のセキュリティパラメータや、秘密鍵生成処理時の利用者の公開鍵などを入力情報として受け付けるとともに、生成された公開パラメータまたは秘密鍵を出力情報として出力する機能を有している。制御部312は、鍵発行装置3を制御する機能を有している。群選択部313は、群を選択する機能を有する。乱数生成部314は、乱数を生成する機能を有する。楕円曲線スカラ倍演算部315は、楕円曲線上の点のスカラ倍、定義体上の演算、剰余演算(mod)、比較などを行う機能を有する。ハッシュ関数選択部316は、ハッシュ関数を選択する機能を有する。ハッシュ関数演算部317は、ハッシュ関数選択部316で選択されたハッシュ関数を用いてハッシュ値を生成する機能を有する。
[Key issuing device]
FIG. 8 is a diagram illustrating a configuration example of the key issuing device according to the present embodiment.
The
The
記憶部320には、中間データ321、セキュリティパラメータ322、公開パラメータ323、マスタ鍵324、公開鍵325、秘密鍵326などが格納されている。中間データ321は、制御演算部310における演算時の中間データである。セキュリティパラメータ322は、入出力部311により入力を受け付けたセキュリティパラメータのデータである。公開パラメータ323は、制御演算部310で生成された公開パラメータのデータである。マスタ鍵324は、制御演算部310で生成されたマスタ鍵のデータである。公開鍵325は、入出力部311により入力を受け付けた公開鍵のデータである。秘密鍵326は、制御演算部310で生成された秘密鍵のデータである。
The
なお、鍵発行装置3は、図16に示すような、バス67で接続されたCPU61と、RAMなどのメモリ62と、HDDやその他の外部記憶装置65と、キーボードなどの入力装置63と、ディスプレイなどの出力装置64と、外部記憶装置65や、入力装置63や、出力装置64と、バス67とを中継するインタフェース66とを備えた、一般的な構成を有する情報処理装置6上に構築することができる。
鍵発行装置3の制御演算部310および各部311〜320は、CPU61が、メモリ62にロードされたプログラム(コードモジュールともいう)を実行することで、情報処理装置6上に具現化されるプロセスとして実現される。また、メモリ62や、外部記憶装置65が図8の記憶部320として使用される。
The
The
また、前記したプログラムは、予め外部記憶装置65に記憶され、必要に応じてメモリ62上にロードされ、CPU61により実行される。なお、このプログラムは、可搬性の記憶媒体、例えばCD−ROMなどに格納され、必要に応じて、これら可搬性の記憶媒体からメモリ62にロードされてもよい。また、プログラムは、一旦、CD−ROMなどの可搬性の記憶媒体からHDDなどの外部記憶装置65にインストールされた後、必要に応じて、この外部記憶装置65からメモリ62にロードされてもよい。さらに、プログラムは、図示していないネットワーク接続装置を介して、ネットワーク上の情報処理装置6が伝送信号により、一旦外部記憶装置65にダウンロードされてからメモリ62にロードされてもよいし、あるいは、直接、ネットワーク経由でメモリ62にロードされてもよい。
The above-described program is stored in advance in the
[鍵生成処理]
図9は、本実施形態に係る鍵生成処理の手順を示すフローチャートである。鍵の生成はIDベース暗号システム2全体で用いる公開パラメータおよびマスタ鍵を生成する公開パラメータおよびマスタ鍵生成処理と利用者の秘密鍵を生成する秘密鍵生成処理と、から構成される。
[Key generation process]
FIG. 9 is a flowchart illustrating a procedure of key generation processing according to the present embodiment. Key generation includes public parameters used in the entire ID-based cryptographic system 2 and public parameters and master key generation processing for generating a master key, and secret key generation processing for generating a user secret key.
図8を参照しつつ、鍵生成処理の概略を記述すると、入出力部311により、鍵発行装置3が、入力情報として、公開パラメータおよびマスタ鍵生成処理を行うか、または秘密鍵生成処理を行うかの処理選択情報と、公開パラメータおよびマスタ鍵生成処理であればセキュリティパラメータ322である正整数L、秘密鍵生成処理であれば、公開鍵である任意の文字列を入力情報として受け付けると、制御演算部310は受け付けた入力情報を記憶部320に格納する。
そして、制御演算部310が、記憶部320に保持されている入力情報を参照し、選択された処理が公開パラメータおよびマスタ鍵生成処理であれば図10の処理に従って公開パラメータ323およびマスタ鍵324を生成する。そして、制御演算部310は公開パラメータ323およびマスタ鍵324を記憶部320に格納とするとともに公開パラメータのみ入出力部311より出力情報として出力し動作を終了する。制御演算部310は、秘密鍵生成処理であれば図11の処理に従って秘密鍵326を生成し、制御演算部310は生成した秘密鍵326を記憶部320に格納とするとともに入出力部311より出力情報として出力し動作を終了する。
まず、図8を参照しつつ、図9に沿って、鍵発行装置3における全体処理を説明する。
When the outline of the key generation process is described with reference to FIG. 8, the input /
Then, the
First, the overall processing in the
ステップS501において、制御演算部310による制御の元、入出力部311が処理の選択を受け付ける。公開パラメータおよびマスタ鍵生成処理が選択された場合、制御演算部310はセキュリティパラメータ322である正整数Lの入力を受け付けるとともにLを必要に応じて記憶部320に格納後、ステップS502に進む。秘密鍵生成処理が選択された場合、制御演算部310は利用者の公開鍵である任意の文字列IDの入力を受け付けるとともに、このIDを必要に応じて記憶部320に格納後、ステップS503に進む。
ステップS502において、制御演算部310は公開パラメータおよびマスタ鍵生成処理を行った後、処理を終了する。ステップS502の処理については、図10を用いて後述する。
ステップS503において、制御演算部310は秘密鍵生成処理を行った後、処理を終了する。ステップS503の処理については、図11を用いて後述する。
なお、以降の処理において、{0,1}*はすべてのバイナリ系列を表し、{0,1}NはすべてのNビットバイナリ系列を表し、XORは排他的論理和を表す。
In step S501, the input /
In step S502, the
In step S503, the
In the following processing, {0, 1} * represents all binary sequences, {0, 1} N represents all N-bit binary sequences, and XOR represents exclusive OR.
以下、図8を参照しつつ、図10に沿って、ステップS502における公開パラメータおよびマスタ鍵生成処理を説明する。
ステップS601において、群選択部313が、Lビットの素数nを選択し、nがqk−1を割り切りかつ最小の整数kが偶数となる、偶数kおよび 2以外の素数のべきqを選択し、楕円曲線の定義体をFq、位数nの部分群を最大位数の部分群として持つTwisted Edward型楕円曲線E(Fq):ax2+y2=1+dx2y2(ad(a−d)≠0かつFq上で係数aは2乗根を持ち係数dは持たない)を選択し、位数nの部分群をG1とすることによって群G1を選択する。
Hereinafter, the public parameter and master key generation processing in step S502 will be described along FIG. 10 with reference to FIG.
In step S601, the
ステップS602において、群選択部313が、位数のnの群G2をE(Fq1)/nE(Fq1)(q1=qk)とすることによって群G2を選択する。
ステップS603において、群選択部313が、G3をF* q1(q1=qk)の位数nの乗法に関する部分群Gとし、ペアリングe:G1×G2→G3を選択する。
In step S602, the
In step S603, the
ステップS604において、群選択部313が、G1の生成元Pを選択する。
ステップS605において、乱数生成部314が、0<s<nを満たす整数sをランダムに生成し、マスタ鍵324とするとともに記憶部320に格納する。
ステップS606において、楕円曲線スカラ倍演算部315が、Ppub←sPを計算し、計算結果をZ=1の拡張Inverted twisted Edward座標(X:Y:T:1)を用いて表現する。この処理は、特許文献1〜3に記載の技術や、特願2009−119256に記載の技術などを用いて計算される。
In step S604, the
In step S <b> 605, the random
In step S606, the elliptic curve
ステップS607において、ハッシュ関数選択部316が、ハッシュ関数H1:{0,1}*→G2を選択する。なおG2の元は、(αx0,y0)(x0,y0∈Fq2)(q2=qk/2)で表現されているものとする。
In step S607, the hash
ステップS608において、ハッシュ関数選択部316が、予め設定されている整数Nに対して、ハッシュ関数H2:G3→{0,1}Nを選択する。
ステップS609において、公開パラメータparams=<n,G1,G2,G3,e,N,P,Ppub,H1,H2>を出力するとともに記憶部320に格納する。
In step S608, the hash
In step S609, the public parameters params = <n, G 1 , G 2 , G 3 , e, N, P, P pub , H 1 , H 2 > are output and stored in the
以下、図8を参照しつつ、図11に沿って、ステップS503における秘密鍵生成処理を説明する。なお、この処理では公開パラメータおよびマスタ鍵生成処理S502において生成され、記憶部320に格納されている公開パラメータ323(params)およびマスタ鍵324(s)を用いるものとする。
Hereinafter, the secret key generation process in step S503 will be described along FIG. 11 with reference to FIG. In this process, the public parameter 323 (params) and master key 324 (s) generated in the public parameter and master key generation process S502 and stored in the
ステップS701において、ハッシュ関数演算部317が、公開パラメータ323(params)に含まれているハッシュ関数H1を使用して、ハッシュ値QID←H1(ID)を計算する。
ステップS702において、楕円曲線スカラ倍演算部315が、マスタ鍵sを用いてdID←sQIDを計算し、計算結果である(αx0,y0)を利用者の秘密鍵326とする。この処理は、特許文献1〜3に記載の技術や、特願2009−119256に記載の技術などを用いて計算される。
In step S701, the hash
In step S702, the elliptic curve
《暗号化》
次に、本実施形態に係る楕円曲線ペアリング演算方法を利用した暗号化処理について図12および図13を参照して説明する。
"encryption"
Next, encryption processing using the elliptic curve pairing calculation method according to the present embodiment will be described with reference to FIGS. 12 and 13.
[暗号化装置]
図12は、本実施形態に係る暗号化装置の構成例を示す図である。
暗号化装置4は、制御演算部410および記憶部420を有している。
制御演算部410は、入出力部411、制御部412、乱数生成部413、楕円曲線ペアリング演算部414、ハッシュ関数演算部415を有している。入出力部411は、公開パラメータ422、利用者Bの公開鍵、暗号化対象データ424を入力情報として受け付けるとともに、生成した暗号化データ425を出力情報として出力する機能を有している。制御部412は、暗号化装置4を制御する機能を有している。乱数生成部413は、乱数を生成する機能を有する。楕円曲線ペアリング演算部414は、ペアリングを計算する機能に加えて楕円曲線上の点のスカラ倍、定義体上の演算、剰余演算(mod)、比較などを行う機能を有し、図1の楕円曲線ペアリング演算部113に相当するものである。ハッシュ関数演算部415は、ハッシュ関数を用いてハッシュ値を生成する機能を有する。
[Encryption device]
FIG. 12 is a diagram illustrating a configuration example of the encryption device according to the present embodiment.
The
The
記憶部420には、中間データ421、公開パラメータ422、利用者B公開鍵423、暗号化対象データ424、暗号化データ425などが格納されている。中間データ421は、制御演算部410における演算時の中間データである。公開パラメータ422は、鍵発行装置3で生成された公開パラメータのデータである。利用者B公開鍵423は、入出力部411により入力を受け付けた暗号化データ425の受信する利用者Bの公開鍵である。暗号化対象データ424は、入出力部411により入力を受け付けた暗号化の対象データである。暗号化データ425は、制御演算部410で暗号化対象データ424を暗号化することにより生成されるデータである。
The
なお、暗号化装置4は、図16に示すような、バス67で接続されたCPU61と、RAMなどのメモリ62と、HDDやその他の外部記憶装置65と、キーボードなどの入力装置63と、ディスプレイなどの出力装置64と、外部記憶装置65や、入力装置63や、出力装置64と、バス67を中継するインタフェース66とを備えた、一般的な構成を有する情報処理装置6上に構築することができる。
暗号化装置4の制御演算部410および各部411〜415は、CPU61が、メモリ62にロードされたプログラム(コードモジュールともいう)を実行することで、情報処理装置6上に具現化されるプロセスとして実現される。また、メモリ62や、外部記憶装置65が図12の記憶部420として使用される。
The
The control
また、前記したプログラムは、予め外部記憶装置65に記憶され、必要に応じてメモリ62上にロードされ、CPU61により実行される。なお、このプログラムは、可搬性の記憶媒体、例えばCD−ROMなどに格納され、必要に応じて、これら可搬性の記憶媒体からメモリ62にロードされてもよい。また、プログラムは、一旦、CD−ROMなどの可搬性の記憶媒体からHDDなどの外部記憶装置65にインストールされた後、必要に応じて、この外部記憶装置65からメモリ62にロードされてもよい。さらに、プログラムは、図示していないネットワーク接続装置を介して、ネットワーク上の情報処理装置6が読み取り可能な媒体の一種である伝送信号により、一旦外部記憶装置65にダウンロードされてからメモリ62にロードされてもよいし、あるいは、直接、ネットワーク経由でメモリ62にロードされてもよい。
The above-described program is stored in advance in the
[暗号化処理]
図13は、本実施形態に係る暗号化処理の手順を示すフローチャートである。
図12を参照しつつ、暗号化処理の概略を記述すると、入出力部411により、暗号化装置4が、入力情報として、公開パラメータ422(params)、暗号データの受信者である利用者Bの公開鍵423(ID)を鍵発行装置3から取得し、暗号化対象データ424を入力情報として受け付けると、制御演算部410は受け付けた各入力情報を記憶部420に格納する。
そして、制御演算部410が、記憶部420に保持されている入力情報を用いて、図13の処理に従って暗号化処理を行う。
制御演算部410は、生成された暗号化データを、記憶部420に保持するとともに、入出力部411より出力情報として出力し、動作を終了する。
[Encryption processing]
FIG. 13 is a flowchart showing the procedure of the encryption processing according to this embodiment.
Referring to FIG. 12, the outline of the encryption process is described. The input /
Then, the
The
以下、図12を参照しつつ、図13に沿って暗号化処理を説明する。
ステップS801において、ハッシュ関数演算部415が、公開パラメータ422に含まれているハッシュ関数H1を用いて、ハッシュ値QID←H1(ID)を計算する。
ステップS802において、乱数生成部413が、公開パラメータ422に含まれている値nを用いて、0<r<nを満たす整数rをランダムに生成する。
ステップS803において、楕円曲線ペアリング演算部414が、公開パラメータ422に含まれているPと、ステップS802で生成した整数rを用いて、C1←rPを計算し、計算結果をZ=1の拡張Inverted twisted Edward座標(X:Y:T:1)を用いて表現する。この処理は、スカラ倍演算処理であり、特許文献1〜3に記載の技術や、特願2009−119256に記載の技術を用いて行われるものである。
ステップS804において、楕円曲線ペアリング演算部414が、公開パラメータ422に含まれているeと、Ppubと、ステップS801で生成したQIDを用いて、g←e(Ppub,QID)を計算する。この処理は、図1〜図6を参照して説明した処理を用いる。
ステップS805において、楕円曲線ペアリング演算部414が、gr←grを計算する。
ステップS806において、ハッシュ関数演算部415が、公開パラメータ422に含まれているハッシュ関数H2を用いて、ハッシュ値h←H2(gr)を計算する。
ステップS807において、楕円曲線ペアリング演算部414が、C2←W XOR hを計算する。ここで、Wは暗号化対象データ424である。
ステップS808において、制御演算部410が、算出した(C1,C2)を暗号化データ425として出力するとともに、記憶部420に格納する。
Hereinafter, the encryption process will be described along FIG. 13 with reference to FIG.
In step S801, the hash
In step S <b> 802, the random
In step S803, the elliptic curve
In step S804, the elliptic curve
In step S805, the elliptic curve
In step S806, the hash
In step S807, the elliptic curve
In step S808, the
《復号化処理》
次に、本実施形態に係る楕円曲線ペアリング演算方法を利用した復号化処理について図14および図15を参照して説明する。
<< Decryption process >>
Next, decoding processing using the elliptic curve pairing calculation method according to the present embodiment will be described with reference to FIGS. 14 and 15.
[復号化装置]
図14は、本実施形態に係る復号化装置の構成例を示す図である。
復号化装置5は、制御演算部510および記憶部520を有している。
制御演算部510は、入出力部511、制御部512、楕円曲線ペアリング演算部513、ハッシュ関数演算部514を有している。入出力部511は、公開パラメータ522、利用者Bの秘密鍵523、暗号化データ524を入力情報として受け付けるとともに、復号データ525を出力情報として出力する機能を有している。制御部512は、復号化装置5を制御する機能を有している。楕円曲線ペアリング演算部513は、ペアリングを計算する機能に加えて楕円曲線上の点のスカラ倍、定義体上の演算、剰余演算(mod)、比較などを行う機能を有し、図1の楕円曲線ペアリング演算部113に相当するものである。ハッシュ関数演算部514は、ハッシュ関数を用いてハッシュ値を生成する機能を有する。
[Decryption device]
FIG. 14 is a diagram illustrating a configuration example of the decoding device according to the present embodiment.
The
The
記憶部520には、中間データ521、公開パラメータ522、利用者B秘密鍵523、暗号化データ524、復号データ525などが格納されている。中間データ521は、制御演算部510における演算時の中間データである。公開パラメータ522は、鍵発行装置3で生成された公開パラメータのデータである。利用者B秘密鍵523は、鍵発行装置3から受け付けた暗号化データの復号者である利用者B秘密鍵のデータである。暗号化データ524は、暗号化装置4から送られた復号の対象データである。復号データ525は、制御演算部510で暗号化データ524を復号することにより生成されるデータである。
The
なお、復号化装置5は、図16に示すような、バス67で接続されたCPU61と、RAMなどのメモリ62と、HDDやその他の外部記憶装置65と、キーボードなどの入力装置63と、ディスプレイなどの出力装置64と、外部記憶装置65や、入力装置63や、出力装置64と、バス67を中継するインタフェース66とを備えた、一般的な構成を有する情報処理装置6上に構築することができる。
復号化装置5の制御演算部510および各部511〜514は、CPU61が、メモリ62にロードされたプログラム(コードモジュールともいう)を実行することで、情報処理装置6上に具現化される。また、メモリ62や、外部記憶装置65が図14の記憶部520として使用される。
The
The
また、前記したプログラムは、予め外部記憶装置65に記憶され、必要に応じてメモリ62上にロードされ、CPU61により実行される。なお、このプログラムは、可搬性の記憶媒体、例えばCD−ROMなどに格納され、必要に応じて、これら可搬性の記憶媒体からメモリ62にロードされてもよいし、一旦、CD−ROMなどの可搬性の記憶媒体からHDDなどの外部記憶装置65にインストールされた後、必要に応じて、この外部記憶装置65からメモリ62にロードされてもよいし、さらには、図示していないネットワーク接続装置を介して、ネットワーク上の情報処理装置6が伝送信号により、一旦外部記憶装置65にダウンロードされてからメモリ62にロードされてもよいし、あるいは、直接、ネットワーク経由でメモリ62にロードされてもよい。
The above-described program is stored in advance in the
[復号化処理]
図15は、本実施形態に係る復号化処理の手順を示すフローチャートである。
図14を参照しつつ、図15に沿って復号化処理の概略を記述すると、入出力部511により、復号化装置5が、公開パラメータ522(params)、復号者である利用者Bの秘密鍵523(dID)を鍵発行装置3から取得し、暗号化データ524(C=(C1,C2))を暗号化装置4から受け付けると、制御演算部510は受け付けた各入力情報を記憶部520に格納する。
そして、制御演算部510が、記憶部520に保持されている各入力情報を用いて、図15の処理に従って復号化処理を行う。
制御演算部510は、復号化処理によって生成した復号データ525を、記憶部520に保持するとともに、入出力部511より出力情報として出力し、動作を終了する。
[Decryption process]
FIG. 15 is a flowchart showing the procedure of the decoding process according to this embodiment.
Referring to FIG. 14, the outline of the decryption process is described along FIG. 15. By the input /
Then, the
The
以下、図14を参照しつつ、図15に沿って、復号化処理を説明する。
ステップS901において、楕円曲線ペアリング演算部513が、公開パラメータ522に含まれるeと、秘密鍵523(dID)と、暗号化データ524に含まれるdIDを用いて、g←e(C1,dID)を計算する。この処理は、図1〜図6を参照して説明した処理を使用することによって行なわれる。
ステップS902において、ハッシュ関数演算部514が、公開パラメータ522に含まれるハッシュ関数H2を用いて、ハッシュ値h←H2(g)を計算する。
ステップS903において、楕円曲線ペアリング演算部513が、W←C2 XOR hを計算しWを復号データ525とし、生成した復号データ525を出力するとともに、記憶部520に格納する。
Hereinafter, the decoding process will be described along FIG. 15 with reference to FIG.
In step S901, the elliptic curve
In step S902, the hash
In step S < b > 903, the elliptic curve
[ハードウェア構成]
図16は、情報処理装置のハードウェア構成例を示す図である。
この情報処理装置6は、楕円曲線ペアリング演算装置1(図1)、鍵発行装置3(図8)、暗号化装置4(図12)、復号化装置5(図14)に相当する装置である。
情報処理装置6では、CPU61およびメモリ62がバス67を介して互いに接続されている。また、キーボードや、マウスに相当する入力装置63、ディスプレイに相当する出力装置64、HDDや、CD−ROMなどに相当し、プログラムや、データが格納されている外部記憶装置65がインタフェース66を介してバス67に接続している。
[Hardware configuration]
FIG. 16 is a diagram illustrating a hardware configuration example of the information processing apparatus.
This information processing device 6 is a device corresponding to the elliptic curve pairing calculation device 1 (FIG. 1), the key issuing device 3 (FIG. 8), the encryption device 4 (FIG. 12), and the decryption device 5 (FIG. 14). is there.
In the information processing apparatus 6, the
《まとめ》
本実施形態では、楕円曲線ax2+y2=1+dx2y2(ad(a−d)≠0,定義体上で係数aは2乗根を持ち係数dは持たない)上の点(x,y)に対してx=Z/X、y=Z/Y、XYZ≠0を満たすX、Y、Z∈Fqを用いて(X:Y:Z)と変換したInverted Twisted Edward座標に加えて、x=Z/X、y=Z/Y、xy=Z/T、XYTZ≠0を満たすX、Y、T、Z∈Fqを用いて(X:Y:T:Z)と変換した拡張Inverted Twisted Edward座標を導入する。
つまり、拡張Inverted Twisted Edward座標をペアリング計算の際にループ処理で行われる2倍算処理における2倍算および2倍算に付随する多項式の計算、加算処理における加算および加算に付随する多項式計算に用いている。
このとき、加算においてa=−1の場合、a倍は符号の反転のみで行えるためa=−1の楕円曲線を採用するだけで2倍算ステップ1回あたり2回の定数倍算、加算処理1回あたり1回の定数倍算を削減できるが、加算処理においてそれに特化したアルゴリズムを用いることにより、さらに、加算処理1回あたり乗算を1回削減することができる。
<Summary>
In the present embodiment, the elliptic curve ax 2 + y 2 = 1 + dx 2 y 2 (ad (ad) ≠ 0, the coefficient a has a square root on the definition body and does not have the coefficient d) (x, In addition to Inverted Twisted Edward coordinates transformed to (X: Y: Z) using X, Y, Z∈F q satisfying x = Z / X, y = Z / Y, XYZ ≠ 0 for y) , X = Z / X, y = Z / Y, xy = Z / T, and X, Y, T, Z∈F q satisfying XYTZ ≠ 0 and converted to (X: Y: T: Z) Inverted Twisted Edward coordinates are introduced.
In other words, the expanded inverted twisted coordinate is used for the doubling in the doubling process performed in the loop process in the pairing calculation and the polynomial calculation accompanying the doubling, the addition in the adding process and the polynomial calculation accompanying the addition. Used.
At this time, when a = -1 in addition, a multiplication can be performed only by reversing the sign. Therefore, only by adopting an elliptic curve of a = -1, two constant multiplications and addition processes are performed once per doubling step. Although it is possible to reduce one constant multiplication per time, by using an algorithm specialized for it in the addition process, it is possible to further reduce the multiplication once per addition process.
1 楕円曲線ペアリング演算装置
2 IDベース暗号システム
3 鍵発行装置
4 暗号化装置
5 復号化装置
6 情報処理装置
110 制御演算部(楕円曲線ペアリング演算装置)
111 入出力部(楕円曲線ペアリング演算装置)
112 制御部(楕円曲線ペアリング演算装置)
113 楕円曲線ペアリング演算部(楕円曲線ペアリング演算装置)
114 入出力部
115 楕円曲線加算演算部
116 楕円曲線2倍算演算部
117 基本演算部
120 記憶部(楕円曲線ペアリング演算装置)
310 制御演算部(鍵発行装置)
311 入出力部(鍵発行装置)
312 制御部(鍵発行装置)
313 群選択部(鍵発行装置)
314 乱数生成部(鍵発行装置)
315 楕円曲線ペアリング演算部(鍵発行装置)
316 ハッシュ関数選択部(鍵発行装置)
317 ハッシュ関数演算部(鍵発行装置)
320 記憶部(鍵発行装置)
410 制御演算部(暗号化装置)
411 入出力部(暗号化装置)
412 制御部(暗号化装置)
413 乱数生成部(暗号化装置)
414 楕円曲線ペアリング演算部(暗号化装置)
415 ハッシュ関数演算部(暗号化装置)
420 記憶部(暗号化装置)
510 制御演算部(復号化装置)
511 入出力部(復号化装置)
512 制御部(復号化装置)
413 楕円曲線ペアリング演算部(復号化装置)
514 ハッシュ関数演算部(復号化装置)
520 記憶部(復号化装置)
DESCRIPTION OF
111 Input / output unit (Elliptic curve pairing calculation device)
112 Control unit (elliptic curve pairing calculation device)
113 Elliptic curve pairing calculation unit (elliptic curve pairing calculation device)
114 Input /
310 Control operation unit (key issuing device)
311 Input / output unit (key issuing device)
312 Control unit (key issuing device)
313 Group selection unit (key issuing device)
314 Random number generator (key issuing device)
315 Elliptic curve pairing calculation unit (key issuing device)
316 Hash function selection unit (key issuing device)
317 Hash function calculation unit (key issuing device)
320 Storage unit (key issuing device)
410 Control operation unit (encryption device)
411 Input / output unit (encryption device)
412 Control unit (encryption device)
413 Random number generator (encryption device)
414 Elliptic curve pairing calculation unit (encryption device)
415 Hash function calculation unit (encryption device)
420 Storage unit (encryption device)
510 Control operation unit (decoding device)
511 Input / output unit (decoding device)
512 control unit (decoding device)
413 Elliptic curve pairing calculation unit (decoding device)
514 Hash function calculation unit (decryption device)
520 storage unit (decoding device)
Claims (17)
前記第1の点の座標を拡張Inverted twisted Edward座標を用いてP=(X1:Y1:T1:Z1)と表現したとき、Z1の値が1である場合の処理として、
前記楕円曲線ペアリング演算装置が、
入出力部を介して、前記第1の点、前記第2の点、前記第1の点の位数であり、かつ前記第2の点の位数である素数を入力し、
前記入力した素数を2進数展開し、
前記第1の元の初期値を単位元とし、
前記第1の点と同じ群に含まれ、拡張Inverted twisted Edward座標で表される第3の点の初期値を前記第1の点とし、前記展開した2進数の係数ごとに、(a)および(b)の処理を行うことで第1の元の値を更新し、前記(a)および(b)の処理で更新された第1の元に対してべき乗計算を行った結果を第1の元と置き直すことで、第1の元を得ることを特徴とする楕円曲線ペアリング演算方法。
(a)前記楕円曲線ペアリング演算装置が、前記第3の点を2倍した値で置換することによって、前記第3の点を更新し、
前記2倍算に付随して計算される多項式に対して前記第2の点を代入した値と、前記第1の元の2乗と、を乗算することで得られた値を前記第1の元とすることで前記第1の元を更新し、
(b)前記楕円曲線ペアリング演算装置が、前記第1の点と、前記第3の点の加算処理を行い、
前記加算処理で算出された値を前記第3の点とすることで前記第3の点を更新し、
前記加算に付随して計算される多項式に対して前記第2の点を代入した値と、前記第1の元と乗算することで得られた値を前記第1の元とすることで前記第1の元を更新する。 Same as the first point expressed by using the twisted Edwardian coordinate and the first point expressed by using the affine coordinate on the Twisted Edwardian elliptic curve expressed by using the extended Twisted Edwardian coordinate that extends the inverted twisted Edward coordinate. A second point on the Twisted Edwardian elliptic curve having a different order and the same order as the first point and the second point and different from the group on the Twisted Edwardian elliptic curve An elliptic curve pairing calculation method by an elliptic curve pairing calculation device for calculating a first element to belong to,
When the coordinates of the first point are expressed as P = (X 1 : Y 1 : T 1 : Z 1 ) using the extended inverted twisted coordinates, the processing when the value of Z 1 is 1 is as follows:
The elliptic curve pairing computing device is
Via the input / output unit, input a prime number that is the order of the first point, the second point, the order of the first point, and the order of the second point;
Binary expansion of the input prime number,
The initial value of the first element as a unit element,
An initial value of a third point that is included in the same group as the first point and is expressed by extended inverted twisted Edward coordinates is the first point, and for each of the expanded binary coefficients, (a) and The first original value is updated by performing the process of (b), and the result of the power calculation performed on the first element updated by the processes of (a) and (b) is the first value. An elliptic curve pairing calculation method characterized in that a first element is obtained by replacing the element.
(A) The elliptic curve pairing computing device updates the third point by replacing the third point with a value obtained by doubling the third point,
A value obtained by multiplying the value calculated by substituting the second point for the polynomial calculated in accordance with the doubling and the square of the first element is the first value. Updating the first element by making it an element,
(B) The elliptic curve pairing calculation device performs addition processing of the first point and the third point,
Updating the third point by setting the value calculated in the addition process as the third point;
A value obtained by multiplying the first element by a value obtained by substituting the second point for the polynomial calculated accompanying the addition is used as the first element. Update the element of 1.
ことを特徴とする請求項1に記載の楕円曲線ペアリング演算方法。 The elliptic curve pairing calculation method according to claim 1, wherein a coefficient of a term of x 2 in the Twisted Edwardian elliptic curve is −1.
前記楕円ペアリング演算装置が、
入力部を介して、
位数qの有限体Fq(qは2以外の素数のべきqで、E(Fq)の位数である#E(Fq)を割り切る位数であるとともに3以上の素数である値nがqk−1を割り切る最小のkが偶数となる数)を定義体として持ち、かつ前記値nの部分群を最大位数の部分群として持つTwisted Edward型楕円曲線E(Fq):ax2+y2=1+dx2y2(ad(a−d)≠0かつFq上で係数aは2乗根を持ち係数dは持たない)の値nを位数とする部分群G1の情報、前記Twisted Edward型楕円曲線E(Fq)上の点(x1,y1)において、x1=Z1/X1、y1=Z1/Y1、x1y1=Z1/T1、X1Y1T1Z1≠0を満たすとともにZ1=1を満たすX1,Y1,T1,Z1∈Fqで表現される拡張Inverted twisted Edward座標を用いて表現したG1の元P=(X1:Y1:T1:Z1)の情報、前記値nがqk−1を割り切る最小の偶数kを拡大次数として持ち、かつα2=δ∈Fq2(q2=qk/2)を満たす基底{1,α}を用いてFqのk/2次拡大体Fq2(q2=qk/2)上の2次拡大体と見なすことのできるFqのk次拡大体Fq1(q1=qk)の値nを位数とする乗法に関する部分群G3の情報、E(Fq)をFq1(q1=qk)上の楕円曲線と見なしたE(Fq1)(q1=qk)の値nを位数とする部分群G2の情報、およびAffine座標を用いてQ=(x0α,y0)(x0,y0∈Fq2)(q2=qk/2)と表現できるG2の元Qの情報を入力し、
前記楕円ペアリング演算装置が、
(a1)前記値nを2進数展開して、n=n0+n1×2+・・・+nt-1×2t-1 (nt-1=1)とし、
(a2)η←(1+y0)/(x0δ)とおき、
(a3)f←1、i←t−2、R←Pとおき、
(a4)f←f2gR,R(Q)、R←2Rを計算し、
(a5)ni=1であるか否かを判定し、ni=1であれば(a6)の処理に進み、ni=1でなければ(a7)の処理に進み、
(a6)f←fgR,P(Q)、R←R+Pを計算し、
(a7)i←i−1を計算し、
(a8)i≧0であるか否かを判定し、i≧0であれば、前記(a4)の処理に戻り、i≧0でなければ(a9)の処理に進み、
(a9)f←f(q1-1)/n(q1=qk)を計算し、当該fを演算結果とする
ことを特徴とする楕円曲線ペアリング演算方法。 An elliptic curve pairing calculation method by an elliptical pairing calculation device that performs a pairing calculation (f = e (P, Q)) on a twisted Edward type elliptic curve,
The elliptical pairing arithmetic unit is
Via the input section
Position by the number q finite field F q (q should the 2 other than prime numbers q of a three or more primes with a position number evenly divide #E (F q) is the order of the E (F q) values Twisted Edwardian elliptic curve E (F q ) having, as a defining body, n is a number in which the minimum k that divides q k −1 is an even number) and the subgroup of the value n as the subgroup of the maximum order. ax 2 + y 2 = 1 + dx 2 y 2 parts group G 1 to position number value n of (ad (ad) ≠ 0 and F q on the coefficient a coefficient d has square root does not have) Information, at the point (x 1 , y 1 ) on the Twisted Edwardian elliptic curve E (F q ), x 1 = Z 1 / X 1 , y 1 = Z 1 / Y 1 , x 1 y 1 = Z 1 / T 1, X 1 Y 1 T 1 Z 1 X 1 satisfying Z 1 = 1 fulfills ≠ 0, Y 1, T 1 , Z 1 ∈F q extended Inve represented ted twisted Edward coordinates in G 1 that is expressed using the original P = (X 1: Y 1 : T 1: Z 1) information has a minimum even number k to the value n is divisible to q k -1 as an extension order and α 2 = δ∈F q2 (q2 = q k / 2) basis {1, alpha} satisfying k / 2 degree extension field of F q using F q2 (q2 = q k / 2) 2 on the The information of the subgroup G 3 regarding the multiplication with the value n of the k-th order extension field F q1 (q1 = q k ) of F q that can be regarded as the next extension field, and E (F q ) as F q1 (q1 = Q k ) Q = (x 0 α using the information of the subgroup G 2 whose order is the value n of E (F q1 ) (q1 = q k ) regarded as an elliptic curve on the elliptic curve. , Y 0 ) (x 0 , y 0 ∈ F q2 ) (q2 = q k / 2 ) and information on the element Q of G 2 that can be expressed as
The elliptical pairing arithmetic unit is
(A1) Binary expansion of the value n to n = n 0 + n 1 × 2 +... + N t-1 × 2 t-1 (n t-1 = 1)
(A2) η ← (1 + y 0 ) / (x 0 δ)
(A3) f ← 1, i ← t-2, R ← P,
(A4) f ← f 2 g R, R (Q), R ← 2R is calculated,
(A5) it is determined whether the n i = 1, if n i = 1 proceeds to the process of (a6), the process proceeds to n i = 1 unless the (a7) processing,
(A6) Calculate f ← fg R, P (Q), R ← R + P,
(A7) i ← i−1 is calculated,
(A8) It is determined whether i ≧ 0. If i ≧ 0, the process returns to (a4). If i ≧ 0, the process proceeds to (a9).
( A9) An elliptic curve pairing calculation method characterized in that f ← f (q1-1) / n (q1 = q k ) is calculated and f is the calculation result.
前記楕円曲線ペアリング演算装置が、
(b1)A←X2 2、B←Y2 2、C←T2 2、D←aB、E←aY2Z2をFq上でそれぞれ計算し、
(b2)F←A+D、G←A−D、H←(X2+Y2)2−A−B、I←(X2+T2)2−A−C、J←(2C−F)をFq上でそれぞれ計算し、
(b3)cZZ←2X2(Y2−Z2)をFq上で計算し、
(b4)cXY←2(F−C)−IをFq上で計算し、
(b5)cXZ←2(A−E)をFq上で計算し、
(b6)gR,R(Q)←cZZηα+cXYy0+cXZをFqのk/2次拡大体Fq2(q2=qk/2)上で計算し、
(b7)f←f2gR,R(Q)をFqのk次拡大体Fq1(q1=qk)上で計算し、
(b8)X3←FGをFq上で計算し、
(b9)Y3←HJをFq上で計算し、
(b10)T3←FHをFq上で計算し、
(b11)Z3←GHをFq上で計算し、
(b12)R←(X3:Y3:T3:Z3)とおき、fとともに、演算結果とする
ことを特徴とする請求項3に記載の楕円曲線ペアリング演算方法。 In the process of (a4), when the coordinates of R at the time of input are set to (X 2 : Y 2 : T 2 : Z 2 ) using the extended inverted twisted coordinates,
The elliptic curve pairing computing device is
(B1) A ← X 2 2 , B ← Y 2 2 , C ← T 2 2 , D ← aB, E ← aY 2 Z 2 are calculated on F q , respectively.
(B2) F ← A + D, G ← A−D, H ← (X 2 + Y 2 ) 2 −A−B, I ← (X 2 + T 2 ) 2 −A−C, J ← (2C−F) Calculate on q respectively
(B3) c ZZ ← 2X 2 (Y 2 −Z 2 ) is calculated on F q ,
(B4) c XY ← 2 (FC) -I is calculated on F q ,
(B5) Calculate c XZ ← 2 (AE) on F q ,
(B6) g R, calculated on R (Q) ← c ZZ ηα + c XY y 0 + k / 2 degree extension of c XZ the F q F q2 (q2 = q k / 2),
(B7) f ← f 2 g R, R (Q) is calculated on the k-th order extension field F q1 (q1 = q k ) of F q ,
(B8) Calculate X 3 ← FG on F q ,
(B9) Y 3 ← HJ is calculated on F q ,
(B10) T 3 ← FH is calculated on F q ,
(B11) Z 3 ← GH is calculated on F q ,
(B12) R ← (X 3 : Y 3 : T 3 : Z 3 ) and the result of the calculation together with f is the elliptic curve pairing calculation method according to claim 3.
前記楕円曲線ペアリング演算装置が、
(c1)A←X1X2、B←Y1Y2、C←T2Z1、D←T1Z2をFq上でそれぞれ計算し、
(c2)E←(X1+Y1)(X2−Y2)+B−A、F←C+D、G←C−D、H←A+aB、I←T1T2をFq上でそれぞれ計算し、
(c3)cZZ←Y2Z1−Y1Z2をFq上で計算し、
(c4)cXY←(Y1−T1)(Y2+T2)−B+I+EをFq上で計算し、
(c5)cXZ←D−C+(X1Z2+X2Z1)をFq上で計算し、
(c6)gR,P(Q)←cZZηα+cXYy0+cXZをFqのk/2次拡大体Fq2(q2=qk/2)上で計算し、
(c7)f←fgR,P(Q)をFqのk次拡大体Fq1(q1=qk)上で計算し、
(c8)i=0であるか否かを判定し、i=0であれば(c14)の処理に進み、i=0でなければ(c9)の処理に進み、
(c9)X3←HGをFq上で計算し、
(c10)Y3←EFをFq上で計算し、
(c11)T3←HEをFq上で計算し、
(c12)Z3←FGをFq上で計算し、
(c13)演算結果をQ←(X3:Y3:T3:Z3)およびfとする
(c14)演算結果をfとする
ことを特徴とする請求項3に記載の楕円曲線ペアリング演算方法。 When the value of the coefficient a in the Twisted Edwardian elliptic curve is different from −1, and in the processing of (a6), the coordinates of P at the time of input are (X 1 : Y 1 : T 1 : Z 1 = 1), As processing when the coordinates of R are (X 2 : Y 2 : T 2 : Z 2 ),
The elliptic curve pairing computing device is
(C1) A ← X 1 X 2 , B ← Y 1 Y 2 , C ← T 2 Z 1 , D ← T 1 Z 2 are calculated on F q , respectively
(C2) Calculate E ← (X 1 + Y 1 ) (X 2 −Y 2 ) + B−A, F ← C + D, G ← C−D, H ← A + aB, I ← T 1 T 2 on F q , respectively. ,
(C3) c ZZ ← Y 2 Z 1 −Y 1 Z 2 is calculated on F q ,
(C4) c XY ← (Y 1 −T 1 ) (Y 2 + T 2 ) −B + I + E is calculated on F q ,
(C5) cXZ ← D−C + (X 1 Z 2 + X 2 Z 1 ) is calculated on F q ,
(C6) g R, calculated on P (Q) ← c ZZ ηα + c XY y 0 + k / 2 degree extension of c XZ the F q F q2 (q2 = q k / 2),
(C7) f ← fg R, P (Q) is calculated on the k-th order extension field F q1 (q1 = q k ) of F q ,
(C8) It is determined whether i = 0. If i = 0, the process proceeds to (c14), and if i = 0, the process proceeds to (c9).
(C9) X 3 ← HG is calculated on F q ,
(C10) Y 3 ← EF is calculated on F q ,
(C11) T 3 ← HE is calculated on F q ,
(C12) Z 3 ← FG is calculated on F q ,
(C13) The calculation result is Q ← (X 3 : Y 3 : T 3 : Z 3 ) and f (c14) The calculation result is f The elliptic curve pairing calculation according to claim 3, Method.
前記楕円曲線ペアリング演算装置が、
(d1)A←(X1−Y1)(X2+Y2)、B←(X1+Y1)(X2−Y2)、C←2T2Z1、D←2T1Z2をFq上でそれぞれ計算し、
(d2)E←A+B、F←C+D,G←C−D,H←B−AをFq上でそれぞれ計算し、
(d3)cZZ←2(Y2Z1−Y1Z2)をFq上で計算し、
(d4)cXY←2(Y1T2−Y2T1)+HをFq上で計算し、
(d5)cXZ←D−C+2(X1Z2−X2Z1)をFq上で計算し、
(d6)gR,P(Q)←cZZηα+cXYy0+cXZをFqのk/2次拡大体Fq2(q2=qk/2)上で計算し、
(d7)f←fgR,P(Q)をFqのk次拡大体Fq1(q1=qk)上で計算し、
(d8)i=0であるか否かを判定し、i=0であれば(d14)の処理に進み、i=0でなければ(d9)の処理に進み、
(d9)X3←EGをFq上で計算し、
(d10)Y3←HFをFq上で計算し、
(d11)T3←EHをFq上で計算し、
(d12)Z3←FGをFq上で計算し、
(d13)演算結果をQ←(X3:Y3:T3:Z3)およびfとする
(d14)演算結果をfとする
ことを特徴とする請求項3に記載の楕円曲線ペアリング演算方法。 When the value of the coefficient a in the Twisted Edwardian elliptic curve is −1, and in the processing of (a6), the coordinates of P at the time of input are (X 1 : Y 1 : T 1 : Z 1 = 1), R As a process when the coordinates of (X 2 : Y 2 : T 2 : Z 2 ) are
The elliptic curve pairing computing device is
(D1) A ← (X 1 −Y 1 ) (X 2 + Y 2 ), B ← (X 1 + Y 1 ) (X 2 −Y 2 ), C ← 2T 2 Z 1 , D ← 2T 1 Z 2 Calculate on q respectively
(D2) E ← A + B, F ← C + D, G ← CD, and H ← B−A are calculated on F q , respectively.
(D3) c ZZ ← 2 (Y 2 Z 1 −Y 1 Z 2 ) is calculated on F q ,
(D4) c XY ← 2 (Y 1 T 2 −Y 2 T 1 ) + H is calculated on F q ,
(D5) c XZ ← DC + 2 (X 1 Z 2 −X 2 Z 1 ) is calculated on F q ,
(D6) g R, calculated on P (Q) ← c ZZ ηα + c XY y 0 + k / 2 degree extension of c XZ the F q F q2 (q2 = q k / 2),
(D7) f ← fg R, P (Q) is calculated on the k-th order extension field F q1 (q1 = q k ) of F q ,
(D8) It is determined whether i = 0. If i = 0, the process proceeds to (d14). If i = 0, the process proceeds to (d9).
(D9) X 3 ← EG is calculated on F q ,
(D10) Y 3 ← HF is calculated on F q ,
(D11) T 3 ← EH is calculated on F q ,
(D12) Z 3 ← FG is calculated on F q ,
(D13) The calculation result is Q ← (X 3 : Y 3 : T 3 : Z 3 ) and f (d14) The calculation result is f The elliptic curve pairing calculation according to claim 3, Method.
前記暗号化装置が、
鍵発行装置から、公開パラメータおよび暗号化データの受信者の公開鍵を取得し、
外部装置から暗号化対象データを取得し、
前記公開パラメータと、前記公開鍵を基に、請求項1または請求項2に記載の楕円曲線ペアリング演算方法を用いることによって、前記暗号化対象データを暗号化する
ことを特徴とする暗号化方法。 An encryption method by an encryption device that performs encryption using ID-based encryption,
The encryption device is
Obtain the public parameters and the public key of the recipient of the encrypted data from the key issuing device,
Obtain the data to be encrypted from the external device,
An encryption method comprising: encrypting the data to be encrypted by using the elliptic curve pairing calculation method according to claim 1 or 2 based on the public parameter and the public key. .
前記暗号化装置が、
鍵発行装置から、公開パラメータparams、および暗号化データの受信者の公開鍵IDを取得し、
外部装置から暗号化対象データWを取得し、
前記公開パラメータparamsは、すべてのバイナリ系列から部分群G2への写像であるハッシュ関数H1、Fq上で定義される楕円曲線E(Fq)の位数である#E(Fq)を割り切る位数であるとともに3以上の素数である値n、Twisted Edward型楕円曲線上の任意の点P、前記Pをs(sは0<s<nを満たすランダムな整数)倍した点Ppub、e:G1×G2→G3を満たすeを含んでおり、
(f1)QID←H1(ID)を計算し、
(f2)0<r<nを満たす整数rをランダムに生成し、
(f3)C1←rPを計算し、計算結果をZ=1の拡張Inverted twisted Edward座標(X:Y:T:1)を用いて表現し、
(f4)請求項3から請求項6のいずれか一項に記載の楕円曲線ペアリング演算方法を行って、g←e(Ppub,QID)を計算し、
(f5)gr←grを計算し、
(f6)h←H2(gr)を計算し、
(f7)C2←W XOR hを計算し、
(f7)C←(C1,C2)を暗号化データとする
ことを特徴とする暗号化方法。
ここで、G1は位数qの有限体Fq(qは2以外の素数のべきqで、#E(Fq)を割り切る位数であるとともに3以上の素数である値nがqk−1を割り切る最小のkが偶数となる数)を定義体として持ち、かつ前記値nを位数とする部分群を最大位数の部分群として持つTwisted Edward型楕円曲線E(Fq):ax2+y2=1+dx2y2(ad(a−d)≠0かつFq上で係数aは2乗根を持ち係数dは持たない)の値nを位数とする部分群であり、G2はE(Fq)をFq1(q1=qk)上の楕円曲線と見なしたE(Fq1)(q1=qk)の値nを位数とする部分群であり、G3はF* q1(q1=qk)の値nを位数とする乗法に関する部分群である。 An encryption method by an encryption device that performs encryption using ID-based encryption,
The encryption device is
Obtain the public parameter params and the public key ID of the recipient of the encrypted data from the key issuing device,
Obtain the encryption target data W from the external device,
The public parameter params is the order of an elliptic curve E (F q ) defined on the hash functions H 1 and F q which are mappings from all binary sequences to the subgroup G 2 #E (F q ). A value n that is a prime number and a prime number of 3 or more, an arbitrary point P on a Twisted Edwardian elliptic curve, and a point P obtained by multiplying P by s (s is a random integer satisfying 0 <s <n) pub , e: includes e satisfying G 1 × G 2 → G 3 ,
(F1) Calculate Q ID ← H 1 (ID),
(F2) An integer r satisfying 0 <r <n is randomly generated,
(F3) C 1 ← rP is calculated, and the calculation result is expressed using the extended inverted twisted coordinates (X: Y: T: 1) with Z = 1,
(F4) performing the elliptic curve pairing calculation method according to any one of claims 3 to 6 to calculate g ← e (P pub , Q ID );
(F5) to calculate the gr ← g r,
(F6) Calculate h ← H 2 (gr),
(F7) Calculate C 2 ← W XOR h,
(F7) An encryption method characterized by using C ← (C 1 , C 2 ) as encrypted data.
Here, G 1 is a finite field F q of order q (q is a power q of a prime number other than 2 and is a number that divides #E (F q ) and a value n that is a prime number of 3 or more is q k. Twisted Edwardian elliptic curve E (F q ) having, as a defining body, a subgroup having the order of the value n as a subgroup of the maximum order. a subgroup whose order is the value n of ax 2 + y 2 = 1 + dx 2 y 2 (ad (ad) ≠ 0 and the coefficient a has a square root and no coefficient d on F q ) G 2 is a subgroup of the value n of E (F q) was regarded as an elliptic curve over F q1 (q1 = q k) E (F q1) (q1 = q k) and calculates three, G 3 is a subgroup relating multiplication to of order value n of F * q1 (q1 = q k ).
前記復号化装置が、
鍵発行装置から、公開パラメータおよび復号者の秘密鍵を取得し、
前記公開パラメータと、前記公開鍵を基に、請求項1または請求項2に記載の楕円曲線ペアリング演算方法を用いることによって、前記暗号化データを復号する
ことを特徴とする復号化方法。 A decryption method by a decryption device for decrypting encrypted data generated by the encryption method according to claim 8, comprising:
The decoding device
Obtain public parameters and the decryptor's private key from the key issuing device,
The decryption method, wherein the encrypted data is decrypted by using the elliptic curve pairing calculation method according to claim 1 or 2, based on the public parameter and the public key.
前記復号化装置が、
鍵発行装置から、公開パラメータparams、復号者である利用者Bの秘密鍵dIDを取得し、
前記暗号化装置から暗号化データC=(C1,C2)を取得し、
前記公開パラメータparamsは、部分群G3からすべてのNビットバイナリ系列への写像であるハッシュ関数H2、e:G1×G2→G3を満たすeを含んでおり、
前記楕円曲線ペアリング演算部は、
(g1)請求項3から請求項6のいずれか一項に記載の楕円曲線ペアリング演算方法を行ってg←e(C1,dID)を計算し、
ハッシュ関数演算部は、
(g2)h←H2(g)を計算し、
前記楕円曲線ペアリング演算部は、
(g3)W←C2 XOR hを計算し、Wを復号データとする
ことを特徴とする復号化方法。
ここで、G1は位数qの有限体Fq(qは2以外の素数のべきqで、#E(Fq)を割り切る位数であるとともに3以上の素数である値nがqk−1を割り切る最小のkが偶数となる数)を定義体として持ち、かつ前記値nを位数とするの部分群を最大位数の部分群として持つTwisted Edward型楕円曲線E(Fq):ax2+y2=1+dx2y2(ad(a−d)≠0かつFq上で係数aは2乗根を持ち係数dは持たない)の値nを位数とする部分群であり、G2はE(Fq)をFq1(q1=qk)上の楕円曲線と見なしたE(Fq1)(q1=qk)の値nの部分群であり、G3はF* q1(q1=qk)の値nを位数とする乗法に関する部分群である。 A decryption method by a decryption device for decrypting encrypted data generated by the encryption method according to claim 9, comprising:
The decoding device
From the key issuing device, obtain the public parameter params and the private key d ID of the user B who is the decryptor,
Obtain encrypted data C = (C 1 , C 2 ) from the encryption device;
The public parameter params includes a hash function H 2 that is a mapping from the subgroup G3 to all N-bit binary sequences, e that satisfies e: G 1 × G 2 → G 3 ,
The elliptic curve pairing calculator is
(G1) The elliptic curve pairing calculation method according to any one of claims 3 to 6 is performed to calculate g ← e (C 1 , d ID ),
The hash function calculation part
(G2) Calculate h ← H 2 (g),
The elliptic curve pairing calculator is
(G3) A decoding method characterized by calculating W ← C 2 XOR h and using W as decoded data.
Here, G 1 is a finite field F q of order q (q is a power q of a prime number other than 2 and is a number that divides #E (F q ) and a value n that is a prime number of 3 or more is q k. Twisted Edwardian elliptic curve E (F q ) having a definition group of the smallest k that divides -1 as an even number) and a subgroup of which the value n is an order as a subgroup of the maximum order : Ax 2 + y 2 = 1 + dx 2 y 2 (ad (a−d) ≠ 0 and coefficient a has a square root and no coefficient d on F q ) , G 2 is a subgroup of the value n of E (F q) of the F q1 (q1 = q k) on the elliptic curve and considers the E (F q1) (q1 = q k), G 3 is F * q1 value n of (q1 = q k) is a subgroup relating multiplication to position number.
前記第1の点の座標を拡張Inverted twisted Edward座標を用いてP=(X1:Y1:T1:Z1)と表現したとき、Z1の値が1である場合の処理として、
入出力部を介して、前記第1の点、前記第2の点、前記第1の点の位数であり、かつ前記第2の点の位数である素数を入力し、前記入力した素数を2進数展開し、前記第1の元の初期値を単位元とし、前記第1の点と同じ群に含まれ、拡張Inverted twisted Edward座標で表される第3の点の初期値を前記第1の点とする基本演算部と、
前記展開した2進数の係数ごとに、(a)および(b)の処理を行うことで第1の元の値を更新し、前記(a)および(b)の処理で更新された第1の元に対してべき乗計算を行った結果を第1の元と置き直すことで、第1の元を得る楕円曲線ペアリング演算部と、
を有することを特徴とする楕円曲線ペアリング演算装置。
(a)前記楕円曲線ペアリング演算装置が、前記第3の点を2倍した値で置換することによって、前記第3の点を更新し、
前記2倍算に付随して計算される多項式に対して前記第2の点を代入した値と、前記第1の元の2乗と、を乗算することで得られた値を前記第1の元とすることで前記第1の元を更新し、
(b)前記楕円曲線ペアリング演算装置が、前記第1の点と、前記第3の点の加算処理を行い、
前記加算処理で算出された値を前記第3の点とすることで前記第3の点を更新し、
前記加算に付随して計算される多項式に対して前記第2の点を代入した値と、前記第1の元と乗算することで得られた値を前記第1の元とすることで前記第1の元を更新する。 Same as the first point expressed by using the twisted Edwardian coordinate and the first point expressed by using the affine coordinate on the Twisted Edwardian elliptic curve expressed by using the extended Twisted Edwardian coordinate that extends the inverted twisted Edward coordinate. A second point on the Twisted Edwardian elliptic curve having a different order and the same order as the first point and the second point and different from the group on the Twisted Edwardian elliptic curve An elliptic curve pairing calculation device for calculating a first element to which the first element belongs,
When the coordinates of the first point are expressed as P = (X 1 : Y 1 : T 1 : Z 1 ) using the extended inverted twisted coordinates, the processing when the value of Z 1 is 1 is as follows:
The prime number that is the order of the first point, the second point, the order of the first point and the order of the second point is input via the input / output unit, and the input prime number And the initial value of the third point that is included in the same group as the first point and represented by the extended inverted twisted coordinate is the first value of the first element. A basic arithmetic unit with 1 point;
For each expanded binary coefficient, the first original value is updated by performing the processes (a) and (b), and the first value updated by the processes (a) and (b) is updated. An elliptic curve pairing calculation unit that obtains the first element by replacing the result of the power calculation on the element with the first element;
An elliptic curve pairing calculation device characterized by comprising:
(A) The elliptic curve pairing computing device updates the third point by replacing the third point with a value obtained by doubling the third point,
A value obtained by multiplying the value calculated by substituting the second point for the polynomial calculated in accordance with the doubling and the square of the first element is the first value. Updating the first element by making it an element,
(B) The elliptic curve pairing calculation device performs addition processing of the first point and the third point,
Updating the third point by setting the value calculated in the addition process as the third point;
A value obtained by multiplying the first element by a value obtained by substituting the second point for the polynomial calculated accompanying the addition is used as the first element. Update the element of 1.
ことを特徴とする請求項14に記載の楕円曲線ペアリング演算装置。 Elliptic Curve pairing computation device according to claim 14, coefficients of terms the Twisted Edward type x Elliptic Curve 2 is characterized in that it is a -1.
鍵発行装置から、公開パラメータおよび暗号化データの受信者の公開鍵を取得し、外部装置から暗号化対象データを取得する入出力部と、
前記公開パラメータと、前記公開鍵を基に、請求項1または請求項2に記載の楕円曲線ペアリング演算方法を用いることによって、前記暗号化対象データを暗号化する制御演算部と、
を有することを特徴とする暗号化装置。 An encryption device that performs encryption using ID-based encryption,
An input / output unit that acquires the public parameters and the public key of the recipient of the encrypted data from the key issuing device, and acquires the encryption target data from the external device;
Based on the public parameter and the public key, a control arithmetic unit that encrypts the data to be encrypted by using the elliptic curve pairing arithmetic method according to claim 1 or 2,
An encryption device comprising:
鍵発行装置から、公開パラメータおよび復号者の秘密鍵を取得する入出力部と、
前記公開パラメータと、前記公開鍵を基に、請求項1または請求項2に記載の楕円曲線ペアリング演算方法を用いることによって、前記暗号化データを復号する制御演算部と、
を有することを特徴とする復号化装置。 A decryption device for decrypting encrypted data generated by the encryption device according to claim 16,
An input / output unit that obtains public parameters and a decryptor's private key from a key issuing device;
Based on the public parameter and the public key, a control arithmetic unit that decrypts the encrypted data by using the elliptic curve pairing arithmetic method according to claim 1 or 2,
A decoding device characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010106367A JP5450240B2 (en) | 2010-05-06 | 2010-05-06 | Elliptic curve pairing calculation method, encryption method, decryption method, program, elliptic curve pairing calculation device, encryption device, and decryption device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010106367A JP5450240B2 (en) | 2010-05-06 | 2010-05-06 | Elliptic curve pairing calculation method, encryption method, decryption method, program, elliptic curve pairing calculation device, encryption device, and decryption device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011237475A true JP2011237475A (en) | 2011-11-24 |
JP5450240B2 JP5450240B2 (en) | 2014-03-26 |
Family
ID=45325553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010106367A Active JP5450240B2 (en) | 2010-05-06 | 2010-05-06 | Elliptic curve pairing calculation method, encryption method, decryption method, program, elliptic curve pairing calculation device, encryption device, and decryption device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5450240B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101460541B1 (en) * | 2013-07-15 | 2014-11-11 | 고려대학교 산학협력단 | Public encryption method based on user ID |
-
2010
- 2010-05-06 JP JP2010106367A patent/JP5450240B2/en active Active
Non-Patent Citations (4)
Title |
---|
JPN6013047564; M. Prem Laxman Das et al: 'Pairing Computation on Twisted Edwards Form Elliptic Curves' Lecture Notes in Computer Science Volume 5209, 2008, p. 192-210, Springer-Verlag * |
JPN6013047567; Brian Baldwin et al: 'A Hardware Analysis of Twisted Edwards Curves for an Elliptic Curve Cryptosystem' [online] , 20090104 * |
JPN6013047568; Sorina Ionica et al: 'Another approach to pairing computation in Edwards coordinates' [online] , 20090213 * |
JPN6013047574; Daniel J. Bernstein et al: 'ECM using Edwards curves' [online] , 20100124 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101460541B1 (en) * | 2013-07-15 | 2014-11-11 | 고려대학교 산학협력단 | Public encryption method based on user ID |
US9419798B2 (en) | 2013-07-15 | 2016-08-16 | Korea University Research And Business Foundation | Public encryption method based on user ID |
Also Published As
Publication number | Publication date |
---|---|
JP5450240B2 (en) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5256342B2 (en) | Information generating apparatus, method, program, and recording medium thereof | |
Keerthi et al. | Elliptic curve cryptography for secured text encryption | |
JPH08504962A (en) | Encryption method | |
Panda et al. | A hybrid security algorithm for RSA cryptosystem | |
JP2000187438A (en) | Method, device, and recording medium for executing elliptic curve cryptography | |
JP2009272995A (en) | Privacy-preserving scalar product calculation system, privacy-preserving scalar product calculation method, and cryptographic key sharing system | |
CN111585759B (en) | Efficient on-line and off-line encryption method based on SM9 public key encryption algorithm | |
Bellini et al. | An efficient and secure RSA-like cryptosystem exploiting Rédei rational functions over conics | |
US6480606B1 (en) | Elliptic curve encryption method and system | |
Bunder et al. | Cryptanalysis of RSA-type cryptosystems based on Lucas sequences, Gaussian integers and elliptic curves | |
Rososhek | Modified matrix modular cryptosystems | |
Pandey et al. | An RNS implementation of the elliptic curve cryptography for IoT security | |
KR101223498B1 (en) | Method for generating public key in elliptic curve cryptography and system for executing the method | |
Mittal et al. | Novel public-key cryptosystems based on NTRU and algebraic structure of group rings | |
JP5450240B2 (en) | Elliptic curve pairing calculation method, encryption method, decryption method, program, elliptic curve pairing calculation device, encryption device, and decryption device | |
JP3517663B2 (en) | Encryption communication method and encryption communication system | |
Jacobson et al. | Cryptographic aspects of real hyperelliptic curves | |
Stogbauer | Efficient Algorithms for pairing-based cryptosystems | |
Frey et al. | Fast bilinear maps from the Tate-Lichtenbaum pairing on hyperelliptic curves | |
Rivera et al. | Hybrid cryptosystem using RSA, DSA, Elgamal, and AES | |
Sarma et al. | Public key cryptosystem based on Pell's equation using the Gnu Mp library | |
JP4502817B2 (en) | Elliptic curve scalar multiplication method and apparatus | |
Lin et al. | The fast paillier decryption with montgomery modular multiplication based on openmp | |
Ranasinghe et al. | Novel improvement in RSA algorithm | |
Vaskouski et al. | Analogue of the RSA-cryptosystem in quadratic unique factorization domains |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120301 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130919 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131001 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131126 |
|
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: 20131217 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131225 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5450240 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |