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 PDF

Info

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
Application number
JP2010106367A
Other languages
Japanese (ja)
Other versions
JP5450240B2 (en
Inventor
Masashi Takahashi
昌史 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2010106367A priority Critical patent/JP5450240B2/en
Publication of JP2011237475A publication Critical patent/JP2011237475A/en
Application granted granted Critical
Publication of JP5450240B2 publication Critical patent/JP5450240B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To implement an elliptic curve pairing arithmetic effectively.SOLUTION: Pairing arithmetic is implemented by pairing the following two points: a point P (Z=1) which is represented using an extended Inverted twisted Edward coordinate after extending the Inverted twisted Edward coordinate and is an order of prime number on a Twisted Edward-type elliptic curve; and a point Q which is represented using an affine coordinate. An encryption method by an ID-based code using the pairing arithmetic, and a decryption method to decrypt the ID-based code are provided.

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つの群をG,G,Gとした時、G×GからGへの写像eで以下の性質を満たすもののことである。ここで、「×」は直積を意味する。
1.任意のP∈Gおよび任意のQ∈Gに対してeはe(aP,bQ)=e(P,Q)abを満たす。
2.任意のP∈Gおよび任意のQ∈Gに対してe(P,Q)はGの単位元と異なる。
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(F)をF上で定義される楕円曲線とし、その単位元をOとする。E(F)の位数を#E(F)、nを#E(F)を割り切る素数、E(F)[n]をE(F)の位数nの部分群、kをk>1を満たし、nがq−1を割り切る最小の整数とする。またfをP∈E(F)[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.

Figure 2011237475
Figure 2011237475

ここで、FおよびF の定義は以下の通りである。
:位数qの有限体
:位数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 order q minus 0 and having a group structure with respect to multiplication.

次に、非特許文献4に基づき、Reduced Tateペアリングを計算するアルゴリズムを示す。以下、Reduced Tateペアリングをペアリングと呼ぶ。   Next, based on Non-Patent Document 4, an algorithm for calculating Reduced Tate pairing is shown. Hereinafter, Reduced Tate pairing is referred to as pairing.

入力:楕円曲線上の点P∈E(F)、Q∈E(Fq1)/nE(Fq1)、点P、Qの位数である素数n
出力:f=e(P,Q)∈F q1/nF q1
(ここで、q1=q
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=n+n×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←f --R,R(Q),R←2Rを計算する(2倍算処理)。
(5−2)計算機が、n=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=q)を計算する。 (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以外の有限体をFとした場合、ax+y=1+dx (a,dはF上の定数でad(a−d)≠0を満たす)で表される曲線であり、この曲線上の点は、曲線の方程式を満たすx,y∈Fの組(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=(x,y)、Q=(x,y)に対して加算は以下の式(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).

Figure 2011237475
Figure 2011237475

さらに、点P=(x,y)に対して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.

Figure 2011237475
Figure 2011237475

また、点P=(x,y)に対して−Pを(−x,y)で定義する。
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において、F上で係数aは2乗根を持ち係数dは持たない場合、係数dを用いない加算方法が開示されている。以下、非特許文献3に基づき上記加算方法を説明する。 In Non-Patent Document 3, the coefficients a on F q If no coefficient d has square root, addition method without using the coefficient d is disclosed. Hereinafter, the above addition method will be described based on Non-Patent Document 3.

楕円曲線上の2点をP=(x,y)、Q=(x,y)、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.

Figure 2011237475
Figure 2011237475

非特許文献2に開示されている加算および2倍算では有限体F上の乗算に比べて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 Document 3 discloses a faster calculation method of addition and doubling by not using inverse element calculation for this problem.

具体的には、点(x,y)をx=X/Z、y=Y/Z、xy=T/Z、Z≠0を満たすX,Y,Z,T∈Fを用いて変換した拡張射影座標(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は、それぞれ定義体F上の乗算、2乗算、定数倍算の演算コストを示す。
入力情報:(X:Y:T:Z),(X:Y:T:Z
出力情報:(X:Y:T:Z)=(X:Y:T:Z)+(X:Y:T:Z
処理手順:
(1)計算機が、A←X、B←Y、C←Z、D←T、E←D+CをF上でそれぞれ計算する(4m)。
(2)計算機が、F←(X−Y)(X+Y)+B−A、G←B+aA、H←D−CをF上でそれぞれ計算する(1m,1D)。
(3)計算機が、X←EFをF上で計算する(1m)。
(4)計算機が、Y←GHをF上で計算する(1m)。
(5)計算機が、T←EHをF上で計算する(1m)。
(6)計算機が、Z←FGをF上で計算する(1m)。
(7)計算機が、(X:Y:T:Z)を演算結果として出力する。
この加算アルゴリズムの総演算コストは9m+1D、Zが1であれば1回の乗算を削減できるため総演算コストは8m+1Dとなる。
Next, an addition algorithm that does not require inverse element calculation based on Non-Patent Document 3 is shown. Incidentally, m, s, D in the description of the following algorithm, multiplication on each definition F q, 2 multiplications, shows the operation cost of the constant multiplication.
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倍算アルゴリズムを示す。
入力情報:(X:Y:T:Z
出力情報:(X:Y:T:Z)=2(X:Y:T:Z
処理手順:
(1)計算機が、A←X 、B←Y 、C←2Z 、D←aAをF上でそれぞれ計算する(3s,1D)。
(2)計算機が、E←(X+Y−A−B、G←D+B、F←G−C、H←D−BをF上でそれぞれ計算する(1s)。
(3)計算機が、X←EFをF上で計算する(1m)。
(4)計算機が、Y←GHをF上で計算する(1m)。
(5)計算機が、T←EHをF上で計算する(1m)。
(6)計算機が、Z←FGをF上で計算する(1m)。
(7)計算機が、(X:Y:T:Z)を演算結果として出力する。
この2倍算アルゴリズムの総演算コストは4m+4s+1Dとなる。
Next, a doubling algorithm that does not require inverse element calculation based on Non-Patent Document 3 is shown.
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∈Fを用いて変換した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に基づき逆元計算の必要の無い加算アルゴリズムを示す。
入力情報:(X:Y:Z),(X:Y:Z
出力情報:(X:Y:Z)=(X:Y:Z)+(X:Y:Z
処理手順:
(1)計算機が、A←Z、B←dA、C←X、D←Y、E←CDをF上でそれぞれ計算する(4m,1s,1D)。
(2)計算機が、H←C−aD、I←(X+Y)(X+Y)−C−DをF上でそれぞれ計算する(1m,1D)。
(3)計算機が、X←(E+B)HをF上で計算する(1m)。
(4)計算機が、Y←(E−B)IをF上で計算する(1m)。
(5)計算機が、Z←AHIをF上で計算する(2m)。
(6)計算機が、(X:Y:Z)を演算結果として出力する。
この加算アルゴリズムの総演算コストは9m+1s+2D、Zが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倍算アルゴリズムを示す。
入力情報:(X:Y:Z
出力情報:(X:Y:Z)=2(X:Y:Z
処理手順:
(1)計算機が、A←X 、B←Y 、U←aBをF上でそれぞれ計算する(2s,1D)。
(2)計算機が、C←A+U、D←A−U、E←(X+Y−A−BをF上でそれぞれ計算する(1s)。
(3)計算機が、X←CDをF上で計算する(1m)。
(4:計算機が、Y←E(C−2dZ )をF上で計算する(1m,1s,1D)。
(5)計算機が、Z←DEをF上で計算する(1m)。
(6)計算機が、(X:Y:Z)を演算結果として出力する。
この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 Non-Patent Document 4 will be described.

2以外の素数のべきqに対して、素数nがq−1を割り切り、かつ最小のkが偶数であるとする。この時、楕円曲線の定義体をF、位数nの部分群を最大位数の部分群として持つTwisted Edward型楕円曲線E(F)をax+y=1+dx(ad(a−d)≠0かつF上で係数aは2乗根を持ち係数dは持たない)、その位数nの部分群をGとする。 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 .

のk次拡大体Fq1(q1=q、kは偶数)はFのk/2次拡大体Fq2(q2=qk/2)の2次拡大体と見なすことができ、α=δ∈Fq2(q2=qk/2)を満たす基底{1,α}を用いることで任意の元をx+yα(x,y∈Fq2(q2=qk/2))で表現することができる。
さらに、Qを、E(F)をFq1(q1=q)上の楕円曲線と見なしたE(Fq1)(q1=q)上の位数nの元で射影座標を用いてQ=(Xα:Y:Z)(X,Y,Z∈Fq2:q2=qk/2)と表現できるものとする。この時、Qの属する位数nの部分群をGとし、Fq1(q1=q)の位数nの乗法に関する部分群をGとする。
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=(X:Y:T:Z)∈G,Q=(Xα:Y:Z)∈G(X,Y,Z∈Fq2:q2=qk/2
出力:f=e(P,Q)∈G
Next, an algorithm for calculating pairing is shown based on Non-Patent Document 4.
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=n+n×2+・・・+nt−1×2t−1 (nt−1=1)とする。
(2)計算機が、η←(Z+Y)/(Xδ)とおく。
(3)計算機が、y←Y/Zとおく。
(4)計算機が、R←Pとおく。
(5)計算機が、f←1とおく。
(6)計算機が、i←t−2とおく。
(7)i≧0を満たす間、計算機は、以下の処理(7−1)〜(7−3)を繰返す。
(7−1)計算機が、f←fR,R(Q),R←2Rを計算する(2倍算処理)。なお、(7−1)の計算方法は後記する。
(7−2)計算機が、n=1であればf←fgR,P(Q),R←R+Pを計算する(加算処理)。なお、(7−2)の計算方法は後記する。
(7−3)計算機が、i←i−1を計算する。
(8)計算機が、f←f(q1−1)/n(q1=q)を計算する。
(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=(X:Y:T:Z
出力情報:R=(X:Y:T:Z)=2(X:Y:T:Z)、f
処理手順:(7−1)、(7−2)の処理における、m,s,Dは、それぞれ定義体F上の乗算、2乗算、定数倍算の演算コスト、M,Dは、それぞれFのk次拡大体Fq1(q1=q)上の乗算、2乗算の演算コストを示す。ただし、定義体F上の2倍算については、より演算コストの小さい加算もしくは1ビットシフトなどの演算を用いることでコストの大きい乗算を用いないで計算できるため定数倍としては扱わない。
(1)計算機が、A←X 、B←Y 、C←Z 、D←(X+Y、E←(Y+ZをF上でそれぞれ計算する(5s)。
(2)計算機が、F←D−(A+B)、G←E−(B+C)、H←aAをF上でそれぞれ計算する(1D)。
(3)計算機が、I←H+B、J←C−I、K←J+CをF上でそれぞれ計算する。
(4)計算機が、cZZ←2Y(T−X)をF上で計算する(1m)。
(5)計算機が、cXY←2J+GをF上で計算する。
(6)計算機が、cXZ←2(aX−B)をF上で計算する(1m,1D)。
(7)計算機が、gR,R(Q)←cZZηα+cXY+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 XZ2 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←fR,R(Q)を計算する(1M、1S)。
(9)計算機が、X←FKをF上で計算する(1m)。
(10)計算機が、Y←I(B−H)をF上で計算する(1m)。
(11)計算機が、T←F(B−H)をF上で計算する(1m)。
(12)計算機が、Z←IKをF上で計算する(1m)。
(13)計算機が、R=(X:Y:T:Z)、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=(X:Y:T:Z),P=(X:Y:T:Z)、f
出力情報:R=(X:Y:T:Z)=(X:Y:T:Z)+(X:Y:T:Z)、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←X、B←Y、C←Z、D←T、E←D+CをF上でそれぞれ計算する(4m)。
(2)計算機が、F←(X−Y)(X+Y)+B−A、G←B+aA、H←D−C、I←TをF上でそれぞれ計算する(2m,1D)。
(3)計算機が、cZZ←(T−X)(T+X)−I+AをF上で計算する(1m)。
(4)計算機が、cXY←X−X+FをF上で計算する(2m)。
(5)計算機が、cXZ←(Y−T)(Y+T)−B+I−HをF上で計算する(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ηα+cXY+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)計算機が、X←EFをF上で計算する(1m)。
(7)計算機が、Y←GHをF上で計算する(1m)。
(8)計算機が、T←EHをF上で計算する(1m)。
(9)計算機が、Z←FGをF上で計算する(1m)。
(10)計算機が、R←(X:Y:T:Z)、fを演算結果として出力する。
この加算アルゴリズムの総演算コストは1M+(k+14)m+1D、Z=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 Non-Patent Document 1 will be described.
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ビットバイナリ系列を表し、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の群G、G、Gを選択する。
(1−3)鍵発行装置が、ペアリングe:G×G→Gを選択する。
(1−4)鍵発行装置が、Gの生成元Pを選択する。
(1−5)鍵発行装置が、0<s<nを満たす整数sをランダムに選択しマスタ鍵とする。
(1−6)鍵発行装置が、楕円曲線スカラ倍演算を用いて、Ppub←sPを計算する。
(1−7)鍵発行装置が、ハッシュ関数H:{0,1}→Gを選択する。
(1−8)鍵発行装置が、ある整数Nに対して、ハッシュ関数H:G→{0,1}を選択する。
(1−9)鍵発行装置が、公開パラメータをparams=<n,G,G,G,e,N,P,Ppub,H,H>とする。
(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に含まれているハッシュ関数Hを用いて、QID←H(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=(C,C
処理手順:
(3−1)送信側端末が、公開パラメータparamsに含まれているハッシュ関数Hを用いて、ハッシュ値QID←H(ID)を計算する。
(3−2)送信側端末が、0<r<nを満たす整数rをランダムに選択する。
(3−3)送信側端末が、楕円曲線スカラ倍演算を用いて、C←rPを計算する。
(3−4)送信側端末が、公開パラメータparamsに含まれているペアリングeを用いて、ペアリング演算を行い、g←e(Ppub,QID)を計算する。
(3−5)送信側端末が、公開パラメータparamsに含まれているハッシュ関数Hを用いて、ハッシュ値h←H(g)を計算する。
(3−6)送信側端末が、C←W XOR hを計算する。
(3−7)送信側端末が、C←(C,C)を暗号化データとする。
(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=(C,C)、公開パラメータparams、秘密鍵dID
出力情報:復号データM
処理手順:
(4−1)受信側端末が、公開パラメータparamsに含まれているペアリングeを用いて、ペアリング演算を行い、g←e(C,dID)を計算する。
(4−2)受信側端末が、公開パラメータparamsに含まれているハッシュ関数Hを用いて、h←H(g)を計算する。
(4−3)受信側端末が、W←C 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.

D. Boneh and M. Franklin. Identity based encryption from the Weil pairing SIAM J. of Computing, Vol. 32, No. 3, pp. 586-615, 2003. Extended abstract in proc. of Crypto '2001, LNCS Vol. 2139, Springer-Verlag, pp. 213-229, 2001.D. Boneh and M. Franklin.Identity based encryption from the Weil pairing SIAM J. of Computing, Vol. 32, No. 3, pp. 586-615, 2003.Extended abstract in proc. Of Crypto '2001, LNCS Vol. 2139, Springer-Verlag, pp. 213-229, 2001. Daniel J. Bernstein, Peter Birkner, Marc Joye, Tanja Lange, and Christiane Peters,”Twisted Edwards curves.” In AFRICACRYPT 2008, volume 5023 of LNCS,p389-p405. Springer, 2008.Daniel J. Bernstein, Peter Birkner, Marc Joye, Tanja Lange, and Christiane Peters, “Twisted Edwards curves.” In AFRICACRYPT 2008, volume 5023 of LNCS, p389-p405. Springer, 2008. Huseyin Hisil, Kenneth Koon-Ho Wong, Gary Carter, Ed Dawson,”Twisted Edwards Curves Revisited.” In ASIACRYPT 2008, volume 5350 of LNCS, p326-p343 Springer, 2008.Huseyin Hisil, Kenneth Koon-Ho Wong, Gary Carter, Ed Dawson, “Twisted Edwards Curves Revisited.” In ASIACRYPT 2008, volume 5350 of LNCS, p326-p343 Springer, 2008. Christophe Arene, Tanja Lange, Michael Naehrig and Christophe Ritzenthaler, “Faster Computation of the Tate Pairing” Cryptology ePrint Archive: Report 2009/155, http://eprint.iacr.org/2009/155Christophe Arene, Tanja Lange, Michael Naehrig and Christophe Ritzenthaler, “Faster Computation of the Tate Pairing” Cryptology ePrint Archive: Report 2009/155, http: //eprint.iacr.org/2009/155

前記した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 non-patent document 4 does not disclose the applicability of the inverted twisted Edward coordinates and the calculation method specialized for the coefficient a = −1 during the pairing calculation.

このような背景に鑑みて本発明がなされたのであり、本発明は、効率的なペアリング演算を行うことを目的とする。   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の点(Z=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.

本実施形態に係る楕円曲線ペアリング演算装置の構成例を示す図である。It is a figure which shows the structural example of the elliptic curve pairing calculating apparatus which concerns on this embodiment. 本実施形態に係る楕円曲線ペアリング演算部の構成例を示す図である。It is a figure which shows the structural example of the elliptic curve pairing calculating part which concerns on this embodiment. 本実施形態にかかる楕円曲線ペアリング演算処理の全体処理を説明するためのフローチャートである。It is a flowchart for demonstrating the whole process of the elliptic curve pairing calculation process concerning this embodiment. ステップS104における2倍算処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the doubling process in step S104. ステップS106において係数aが−1と異なる場合の加算処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of an addition process in case coefficient a differs from -1 in step S106. ステップS106において係数aが−1の場合の加算処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the addition process in case coefficient a is -1 in step S106. 本実施形態に係るIDベース暗号システムの構成例を示す図である。It is a figure which shows the structural example of the ID base encryption system which concerns on this embodiment. 本実施形態に係る鍵発行装置の構成例を示す図である。It is a figure which shows the structural example of the key issuing apparatus which concerns on this embodiment. 本実施形態に係る鍵生成処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the key generation process which concerns on this embodiment. 本実施形態に係る公開パラメータおよびマスタ鍵生成処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the public parameter which concerns on this embodiment, and a master key production | generation process. 本実施形態に係る秘密鍵生成処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the secret key generation process which concerns on this embodiment. 本実施形態に係る暗号化装置の構成例を示す図である。It is a figure which shows the structural example of the encryption apparatus which concerns on this embodiment. 本実施形態に係る暗号化処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the encryption process which concerns on this embodiment. 本実施形態に係る復号化装置の構成例を示す図である。It is a figure which shows the structural example of the decoding apparatus which concerns on this embodiment. 本実施形態に係る復号化処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the decoding process which concerns on this embodiment. 情報処理装置のハードウェア構成例を示す図である。It is a figure which shows the hardware structural example of information processing apparatus.

次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。なお、本実施形態では、拡張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 pairing calculation device 1 includes a control calculation unit 110 and a storage unit 120.
The control calculation unit 110 includes an input / output unit 111, a control unit 112, and an elliptic curve pairing calculation unit 113. The input / output unit 111 has a function of inputting / outputting calculation target data as input information and calculation results as output information. The control unit 112 has a function of controlling the entire elliptic curve pairing calculation device 1. The elliptic curve pairing calculation unit 113 has a function of actually calculating a pairing calculation on the elliptic curve.

記憶部120には、中間データ121、データ122などが格納されている。中間データ121は、必要に応じて処理中に生成されるデータである。データ122は、楕円曲線のパラメータなどのデータである。   The storage unit 120 stores intermediate data 121, data 122, and the like. The intermediate data 121 is data generated during processing as necessary. Data 122 is data such as elliptic curve parameters.

図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 pairing calculation unit 113 includes an input / output unit 114, an elliptic curve addition calculation unit 115, an elliptic curve doubling calculation unit 116, and a basic calculation unit 117.
The elliptic curve addition calculation unit 115 has a function of performing addition calculation of two points on the elliptic curve. The elliptic curve doubling calculation unit 116 has a function of performing a doubling calculation of points on the elliptic curve. The basic calculation unit 117 is called from the elliptic curve addition calculation unit 115 and the elliptic curve doubling calculation unit 116 as necessary, and performs calculations on an elliptic curve definition body, four arithmetic operations using a remainder calculation (mod), and the like. It has a function.

なお、楕円曲線ペアリング演算装置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 pairing calculation device 1 includes a CPU (Central Processing Unit) 61, a memory 62 such as a RAM (Random Access Memory), and a HDD (Hard Disk Drive) connected by a bus 67 as shown in FIG. ) And other external storage devices 65, an input device 63 such as a keyboard, an output device 64 such as a display, an external storage device 65, an input device 63, an output device 64, and a bus 67. Can be constructed on the information processing apparatus 6 having a general configuration.
The control calculation unit 110 and each of the units 111 to 117 of the elliptic curve pairing calculation device 1 are embodied on the information processing device 6 when the CPU 61 executes a program (also referred to as a code module) loaded in the memory 62. The Further, the memory 62 and the external storage device 65 are used as the storage unit 120 in FIG.

また、前記したプログラムは、予め外部記憶装置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 external storage device 65, loaded onto the memory 62 as necessary, and executed by the CPU 61. This program may be stored in a portable storage medium such as a CD-ROM (Compact Disk-Read Only Memory), and may be loaded from the portable storage medium into the memory 62 as necessary. The program may be temporarily installed from a portable storage medium such as a CD-ROM into an external storage device 65 such as an HDD, and then loaded from the external storage device 65 to the memory 62 as necessary. . Further, the program may be temporarily downloaded to the external storage device 65 by a transmission signal from the information processing device 6 on the network via a network connection device (not shown) and then loaded into the memory 62. Alternatively, it may be loaded directly into the memory 62 via the network.

[楕円曲線ペアリング演算処理]
次に、図2を参照しつつ、図3〜図6に沿って楕円曲線ペアリング演算処理の手順を説明する。
2以外の素数のべきqに対して、素数nがq−1を割り切りかつ最小のkが偶数であるとする。この時、楕円曲線の定義体をF、位数nの部分群を最大位数の部分群として持つTwisted Edward型楕円曲線E(F)をax+y=1+dx(ad(a−d)≠0かつF上で係数aは2乗根を持ち係数dは持たない)、その位数(素数位数)nの部分群をGとする。
[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 .

のk次拡大体Fq1(q1=q:kは偶数)はFのk/2次拡大体Fq2(q2=qk/2)上の2次拡大体と見なすことができ、α=δ∈Fq2(q2=qk/2)を満たす基底{1,α}を用いることで、任意の元はx+yα(x,y∈Fq2:q2=qk/2)で表現することができる。
次にQを、(F)をFq1(q1=q)上の楕円曲線の点と見なし、E(Fq1)(q1=q)上の位数nの元でAffine座標を用いてQ=(xα,y)(x、y∈Fq2:q2=qk/2)と表現できるものとする。この時、Qの属する位数nの部分群をGとし、Fq1(q1=q)の乗法に関する位数nの部分群をGとする。
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つの群G、G、G、拡張Inverted twisted Edward座標を用いて表現したGの点(第1の点)P=(X:Y:T:Z)∈G、Affine座標を用いて表現したGの点(第2の点)Q=(xα,y)(x,y∈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 / output unit 111 are used. G 1 point (first point) P = (X 1 : Y 1 : T 1 : Z 1 ) ∈G 3 , and G 2 point (second point) Q expressed using Affine coordinates = (X 0 α, y 0 ) (x 0 , y 0 ∈F q2 : q2 = q k / 2 ), each input information of the order n of points P and Q (n ≧ 3) is stored in the storage unit 120 Retained.

ここで、拡張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)∈Gを求め、出力する。
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 control calculation unit 110 performs the pairing calculation processing shown in FIGS. 3 to 6 using each input information held in the storage unit 120, and the calculation result (first element) f = e (P , Q) εG 3 is obtained and output.

(全体処理)
図3は、本実施形態に係る楕円曲線ペアリング演算処理の全体処理を説明するためのフローチャートである。
ステップS101において、基本演算部117が、Pの位数である素数nを2進数展開して、n=n+n×2+・・・+nt−1×2t−1 (nt−1=1)とする。
ステップS102において、基本演算部117が、η←(1+y)/(xδ)とおく。
ステップS103において、基本演算部117が、f←1(単位元)、i←t−2、R(第3の点)←Pとおく。
ステップS104において、楕円曲線2倍算演算部116が、f←fR,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 arithmetic unit 117 performs binary expansion of the prime number n that is the order of P, and n = n 0 + n 1 × 2 +... + N t−1 × 2 t−1 (n t−1 = 1).
In step S102, the basic calculation unit 117 sets η ← (1 + y 0 ) / (x 0 δ).
In step S103, the basic calculation unit 117 sets f ← 1 (unit element), i ← t−2, and R (third point) ← P.
In step S104, the elliptic curve doubling calculation unit 116 calculates f ← f 2 g R, R (Q), R ← 2R (doubling process). The calculation method in step S104 will be described later with reference to FIG. g R, R (Q) will be described later in step S206 of FIG.

ステップS105において、基本演算部117が、n=1であるか否かを判定し、n=1であれば(S105→Yes)、ステップS106の処理に進み、n=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=q)を計算し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 addition calculation unit 115 calculates f ← fg R, P (Q) and R ← R + P (addition process). The calculation method in step S106 will be described later with reference to FIG. 5 when the coefficient a is other than -1, and will be described later with reference to FIG. 6 when the coefficient a is -1. g R, P (Q) will be described later in step S306 in FIG. 5 and step S406 in FIG.
In step S107, the basic calculation unit 117 calculates i ← i−1.
In step S108, the basic calculation unit 117 determines whether i ≧ 0. If i ≧ 0 (S108 → Yes), the process returns to step S104, and if i ≧ 0 is not satisfied (S108 → No), the process proceeds to step S109.
In step S109, the basic computation unit 117, a computation result exponentiation f ← f (q1-1) / n (q1 = q k) the calculated f of f.

(2倍算処理)
次に、図2を参照しつつ、図4に沿って図3のステップS104における2倍算処理について説明する。なお、これ以降、各処理の最後に記述してあるm,s,Dは、それぞれ定義体F上の乗算、2乗算、定数倍算の演算コスト、M,Sは、それぞれFのk次拡大体Fq1(q1=q)上の乗算、2乗算の演算コストを示す。ただし、定義体F上の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の座標は(X:Y:T:Z)であるとする。
ステップS201において、楕円曲線2倍算演算部116が、A←X 、B←Y 、C←T 、D←aB、E←aYをF上でそれぞれ計算する(1m,3s,2D)。ここでa=−1である場合、D←aBおよびE←aYはF上で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 calculation unit 116 calculates A ← X 2 2 , B ← Y 2 2 , C ← T 2 2 , D ← aB, and E ← aY 2 Z 2 on F q. (1m, 3s, 2D). Here, when a = −1, D ← aB and E ← aY 2 Z 2 can be calculated without using constant multiplication by inverting the sign of B on F q , thereby reducing the operation cost by 2D. be able to.

ステップS202において、楕円曲線2倍算演算部116が、F←A+D、G←A−D、H←(X+Y−A−B、I←(X+T−A−C、J←(2C−F)をF上でそれぞれ計算する(2s)。
ステップS203において、楕円曲線2倍算演算部116が、cZZ←2X(Y−Z)をF上で計算する(1m)。
ステップS204において、楕円曲線2倍算演算部116が、cXY←2(F−C)−IをF上で計算する。
ステップS205において、楕円曲線2倍算演算部116が、cXZ←2(A−E)をF上で計算する。
In step S < b > 202, the elliptic curve doubling calculation unit 116 performs F ← A + D, G ← A−D, H ← (X 2 + Y 2 ) 2 −A−B, I ← (X 2 + T 2 ) 2 −A−. C and J ← (2C−F) are respectively calculated on F q (2s).
In step S203, the elliptic curve doubling calculation unit 116 calculates c ZZ ← 2X 2 (Y 2 −Z 2 ) on F q (1 m).
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 calculation unit 116 calculates c XZ ← 2 (AE) on Fq .

ステップS206において、楕円曲線2倍算演算部116が、gR,R(Q)←cZZηα+cXY+cXZをFのk/2次拡大体Fq2(q2=qk/2)上で計算する(km)。 In step S206, the elliptic curve doubling operation portion 116, g R, R (Q) ← c ZZ ηα + c XY y 0 + c the XZ F q of k / 2 degree extension field F q2 (q2 = q k / 2) Calculate above (km).

ステップS207において、楕円曲線2倍算演算部116が、f←fR,R(Q)をFのk次拡大体Fq1(q1=q)上で計算する(1M,1S)。
ステップS208において、楕円曲線2倍算演算部116が、X←FGをF上で計算する(1m)。
ステップS209において、楕円曲線2倍算演算部116が、Y←HJをF上で計算する(1m)。
ステップS210において、楕円曲線2倍算演算部116が、T←FJをF上で計算する(1m)。
ステップS211において、楕円曲線2倍算演算部116が、Z←GHをF上で計算する(1m)。
ステップS212において、楕円曲線2倍算演算部116が、2倍算の演算結果を拡張Inverted twisted Edward座標を用いてR←(X:Y:T:Z)とおき、fとともに、演算結果として出力する。
この2倍算の総演算コストは、1M+1S+(k+6)m+5s+2Dとなる。
またa=−1である場合、1M+1S+(k+6)m+5sとなる。
In step S207, the elliptic curve doubling calculation unit 116 calculates f ← f 2 g R, R (Q) on the k-th order extension field F q1 (q1 = q k ) of F q (1M, 1S). .
In step S208, the elliptic curve doubling calculation unit 116 calculates X 3 ← FG on F q (1 m).
In step S209, the elliptic curve doubling calculation unit 116 calculates Y 3 ← HJ on F q (1 m).
In step S210, the elliptic curve doubling calculation unit 116 calculates T 3 ← FJ on F q (1m).
In step S211, the elliptic curve doubling calculation unit 116 calculates Z 3 ← GH on F q (1 m).
In step S212, the elliptic curve doubling operation unit 116 sets the result of the doubling operation as R ← (X 3 : Y 3 : T 3 : Z 3 ) using the extended inverted twisted coordinates, and f, Output as calculation result.
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)を用いた(X:Y:Z)=2(X:Y:Z)を計算する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).

=(X +aY )(X −aY )・・・(4)
=2X(X +aY −2dZ )・・・(5)
=2X(X −aY )・・・(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座標(X:Y:Z)に加えて1/(x)=Z/Tを満たすT座標を求める必要がある。
ここで、Tは以下の条件(式(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)).

Figure 2011237475
Figure 2011237475

さらに、変形して、式(8)を得る。   Furthermore, it deform | transforms and Formula (8) is obtained.

Figure 2011237475
Figure 2011237475

以上より、Tは、式(9)とおける。 From the above, T 3 can be expressed by equation (9).

=(X +aY )(X +aY −2dZ )・・・(9) T 3 = (X 2 2 + aY 2 2 ) (X 2 2 + aY 2 2 -2dZ 2 2 ) (9)

次に楕円曲線ax+y=1+dxをx=Z/X、y=Z/Yを用いて変換すると、式(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.

(X +aY )Z =X +dZ ・・・(10) (X 2 2 + aY 2 2 ) Z 2 2 = X 2 2 Y 2 2 + dZ 2 4 (10)

で両辺を割ることによって、式(11)とおける。 By dividing both sides by Z 2 2, definitive and Equation (11).

Figure 2011237475
Figure 2011237475

=T を用いることで式(12)を得る。 Formula (12) is obtained by using X 2 2 Y 2 2 = T 2 2 Z 2 2 .

2dZ =2(X +aY −T )・・・(12) 2dZ 2 2 = 2 (X 2 2 + aY 2 2 −T 2 2 ) (12)

式(12)を式(5)に代入することによりYが求まる。 Y 3 is obtained by substituting equation (12) into equation (5).

=2X(2T −X −aY )・・・(13) Y 3 = 2X 2 Y 2 (2T 2 2 -X 2 2 -aY 2 2 ) (13)

式(12)を式(9)に代入することによりTが求まる。 T 3 is obtained by substituting equation (12) into equation (9).

=(X +aY )(2T −X −aY )・・・(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 Non-Patent Document 4, g R, R (Q) can be expressed by Equation (15).

R,R(Q)=c0ZZηα+c0XY+c0XZ・・・(15) g R, R (Q) = c 0ZZ ηα + c 0XY y 0 + c 0XZ (15)

射影座標を用いてR=(X:Y:Z)とした場合、式(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).

0ZZ=X(Z−Y)・・・(16)
0XY=dX −Z ・・・(17)
0XZ=Z(Z−aX )・・・(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の各座標はすべてFの元であるため、Fの元をgR,R(Q)全体に乗算したとしても、あるいはFの元でgR,R(Q)全体を割った結果を、新たにgR,R(Q)とおきなおして計算したとしても、乗算または除算に用いたFの元は最後に行うfのべき乗の過程で単位元となるためペアリングの演算結果には影響しない。また、Rの各座標は全てFの元であるため、これらの座標で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.

R,R(Q)全体をZ で割ることによって式(16)より式(19)を得る。 g R, R (Q) is divided by Z 3 3 to obtain equation (19) from equation (16).

Figure 2011237475
Figure 2011237475

=X/Z、y=Y/Zを用いて射影座標をAffine座標(x,y)に変換することによって式(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 .

ZZ=x(1−y)・・・(20) c ZZ = x 2 (1- y 2) ··· (20)

さらに、x=Z/X、y=Z/Y、x=Z/Tを満たす拡張Inverted twisted Edward座標(X:Y:T:Z)を用いて変換することで式(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.

Figure 2011237475
Figure 2011237475

式(17)をZ で割ることによって式(22)を得る。 Dividing equation (17) by Z 3 3 yields equation (22).

Figure 2011237475
Figure 2011237475

=X/Z、y=Y/Zを用いて射影座標をAffine座標(x,y)変換することによって式(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).

XY=dx −1・・・(23) c XY = dx 2 2 y 2 −1 (23)

さらに、x=Z/X、y=Z/Y、x=Z/Tを満たす拡張Inverted twisted Edward座標(X:Y:T:Z)を用いて変換することで式(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.

Figure 2011237475
Figure 2011237475

同様に式(18)をZ で割ることによって式(25)を得る。 Similarly, equation (25) is obtained by dividing equation (18) by Z 3 3 .

Figure 2011237475
Figure 2011237475

=X/Z、y=Y/Zを用いて射影座標をAffine座標(x,y)変換することによって式(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 .

XY=y−ax ・・・(26) c XY = y 2 −ax 2 2 (26)

さらに、x=Z/X、y=Z/Y、x=Z/Tを満たす拡張Inverted twisted Edward座標(X:Y:T:Z)を用いて変換することで式(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.

Figure 2011237475
Figure 2011237475

R,R(Q)全体に2X を掛けることでcZZ←2X ZZを計算し、式(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).

ZZ=2X(Y−Z)・・・(28) c ZZ = 2X 2 Z 2 ( Y 2 -Z 2) ··· (28)

R,R(Q)全体に2X を掛けることでcXY←2X XYを計算し式(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).

XY=2dZ −2X ・・・(29) c XY = 2dZ 2 3 -2X 2 2 Y 2 (29)

=Tを用いて変形することで式(30)を得る。 Expression (30) is obtained by transforming using X 2 Y 2 = T 2 Z 2 .

XY=2dZ −2X=Z(2dZ −2X)・・・(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).

XY=Z(2(X +aY −T )2X)・・・(31) c XY = Z 2 (2 (X 2 2 + aY 2 2 −T 2 2 ) 2X 2 T 2 ) (31)

R,R(Q)全体に2X を掛けることでCの係数cXZ←2X XZを計算し式(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).

XZ=2X −2aY ・・・(32) c XZ = 2X 2 2 Z 2 -2aY 2 Z 2 2 (32)

最後にgR,R(Q)全体をZで割ることによって、Cの係数cZZ←cZZ/Z、cXY←cXY/Z、cXZ←cXZ/Zを計算することで式(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.

ZZ=2X(Y−Z)・・・(33)
XY=2(X +aY −T )−2X・・・(34)
XZ=2(X −aY)・・・(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の座標は(X:Y:T:Z)、Rの座標は(X:Y:T:Z)であるとする。
ステップS301において、楕円曲線加算演算部115が、A←X、B←Y、C←T、D←TをF上でそれぞれ計算する(4m)。
ここでZ=1である場合、C←TはC←Tとなり、乗算の必要がなくなるため、演算コストを1m削減することができる。
ステップS302において、楕円曲線加算演算部115が、E←(X+Y)(X−Y)+B−A、F←C+D、G←C−D、H←A+aB、I←TをF上でそれぞれ計算する(2m,1D)。
ステップS303において、楕円曲線加算演算部115が、cZZ←Y−YをF上で計算する(2m)。
ここでZ=1である場合、cZZ←Y−Yとなり、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 addition calculation unit 115 calculates A ← X 1 X 2 , B ← Y 1 Y 2 , C ← T 2 Z 1 , and D ← T 1 Z 2 on F q (4 m). .
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 addition calculation unit 115 determines that E ← (X 1 + Y 1 ) (X 2 −Y 2 ) + BA, F ← C + D, G ← CD, H ← A + aB, I ← T 1 T 2 is calculated on F q (2m, 1D).
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←(Y−T)(Y+T)−B+I+EをF上で計算する(1m)。
ステップS305において、楕円曲線加算演算部115が、cXZ←D−C+(X+X)をF上で計算する(2m)。
ここでZ=1である場合、cXZ←D−C+(X+X)となり、1回分の乗算の必要がなくなるため、演算コストを1m削減することができる。
In step S304, the elliptic curve addition calculation unit 115 calculates c XY <-(Y 1 −T 1 ) (Y 2 + T 2 ) −B + I + E on F q (1 m).
In step S305, the elliptic curve addition calculation unit 115 calculates c XZ ← D−C + (X 1 Z 2 + X 2 Z 1 ) on F q (2 m).
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ηα+cXY+cXZをFのk/2次拡大体Fq2(q2=qk/2)上で計算する(km)。 In step S306, g R, to calculate 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) (km).

ステップS307において、f←fgR,P(Q)をFのk次拡大体Fq1(q1=q)上で計算する(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が、X←HGをF上で計算する(1m)。
ステップS310において、楕円曲線加算演算部115が、Y←EFをF上で計算する(1m)。
ステップS311において、楕円曲線加算演算部115が、T←HEをF上で計算する(1m)。
ステップS312において、楕円曲線加算演算部115が、Z←FGをF上で計算する(1m)
In step S308, the elliptic curve addition calculation unit 115 determines whether i = 0. If i = 0 (S308 → Yes), the process proceeds to step S314; otherwise (S308 → No), the process proceeds to step S309.
In step S309, the elliptic curve addition calculation unit 115 calculates X 3 ← HG on F q (1 m).
In step S310, the elliptic curve addition calculation unit 115 calculates Y 3 ← EF on F q (1 m).
In step S311, the elliptic curve addition calculation unit 115 calculates T 3 ← HE on F q (1 m).
In step S312, the elliptic curve addition calculation unit 115 calculates Z 3 ← FG on F q (1 m).

ステップS313において、楕円曲線加算演算部115が、演算結果をInverted twisted Edward座標を用いてR←(X:Y:T:Z)としfとともに出力し、加算処理を終了する。
ステップS314では、楕円曲線加算演算部115が、演算結果をfとして出力し、加算処理を終了する。
図5に示す加算アルゴリズムの総演算コストは1M+(k+15)m+1D、Z=1の場合、1M+(k+12)m+1Dとなる。なお、通常はZ=1が用いられる。
In step S313, the elliptic curve addition calculation unit 115 outputs the calculation result as R ← (X 3 : Y 3 : T 3 : Z 3 ) using the inverted twisted Edward coordinates, and ends the addition process.
In step S314, the elliptic curve addition calculation unit 115 outputs the calculation result as f and ends the addition process.
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=(x,y)、Q=(x,y)に対して係数dを用いない加算P+Q=(x,y)は以下の式(36)で計算することができる。
Here, details of the processing of FIG. 5 will be described.
According to the addition formula based on Non-Patent Document 3, the addition P + Q = ( 2 ) on the Twisted Edwardian elliptic curve without using the coefficient d for P = (x 1 , y 1 ), Q = (x 2 , y 2 ) x 3 , y 3 ) can be calculated by the following equation (36).

この式(36)より、図5に示す加算アルゴリズムを導く。   From this equation (36), the addition algorithm shown in FIG. 5 is derived.

Figure 2011237475
Figure 2011237475

2点P=(x,y)、Q=(x,y)と拡張Inverted twisted Edward座標を用いて表現したP=(X:Y:T:Z)、Q=(X:Y:T:Z)は以下の関係を満たす。 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.

= Z/X、y=Z/Y、x= Z/T、x= Z/X、y=Z/Y、x= Z/T 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).

Figure 2011237475
Figure 2011237475

次に、以下の式(38)より式(39)が導かれる。   Next, Expression (39) is derived from Expression (38) below.

Figure 2011237475
Figure 2011237475

=Z・・・(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).

Figure 2011237475
Figure 2011237475

最終的にP+Qは以下の式(41)を計算することで求められる。   Finally, P + Q is obtained by calculating the following equation (41).

Figure 2011237475
Figure 2011237475

式(39)より、x=Z/X、y=Z/Y、x=Z/Tを満たすX、Y、T、Zをそれぞれ求めると、以下の式(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.

=(X+aY)(Z−T)・・・(42)
=(Y−X)(Z+T)・・・(43)
=(X+aY)(Y−X)・・・(44)
=(Z+T)(Z−T)・・・(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=(X:Y:T:Z)+(X:Y:T:Z)=(X:Y:T:Z)を計算することができる。
実際にx=Z/X、y=Z/Y、x=Z/Tを満たしていることは以下の式(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.

Figure 2011237475
Figure 2011237475

次に非特許文献4に基づくと、gR,P(Q)は式(49)で表すことができる。 Next, based on Non-Patent Document 4, g R, P (Q) can be expressed by Equation (49).

R,P(Q)=c0ZZηα+c0XY+c0XZ・・・(49) g R, P (Q) = c 0ZZ ηα + c 0XY y 0 + c 0XZ (49)

拡張射影座標を用いてP=(X:Y:T:Z)、R=(X:Y:T:Z)とした場合、式(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).

0ZZ=X(Y−Y)・・・(50)
0XY=Z(X−X+X−X)・・・(51)
0XZ=X −X +Y(X−X)・・・(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 Z 3 + X 3 Y 4 -X 4 Y 3) ··· (51)
c 0XZ = X 4 Y 4 Z 3 2 -X 3 Y 3 Z 4 2 + Y 3 Y 4 (X 4 Z 3 -X 3 Z 4) ··· (52)

PおよびRの各座標は全てFの元であるため、Fの元をgR,P(Q)全体に乗算したとしても、あるいはFの元でgR,P(Q)全体を割った結果を、新たにgR,P(Q)とおきなおして計算したとしても、乗算または除算に用いたFの元は最後に行うfのべき乗の過程で単位元となるためペアリングの演算結果には影響しない。また、PおよびRの各座標は全てFの元であるため、これらの座標で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).

R,P(Q)全体をZ で割ることによって式(50)より式(53)を得る。 g R, P (Q) is divided by Z 3 2 Z 4 2 to obtain equation (53) from equation (50).

Figure 2011237475
Figure 2011237475

=X/Z、y=Y/Z、x=X/Z、y=Y/Zを用いて射影座標をAffine座標(x,y)および(x,y)に変換することによって式(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).

ZZ=x(y−y)・・・(54) c ZZ = x 3 x 4 ( y 3 -y 4) ··· (54)

=Z/X、y=Z/Y、x=Z/T、x=Z/X、y=Z/Y、x=Z/Tを満たすInverted twisted Edward座標(X:Y:T:Z)および(X:Y:T:Z)を用いて変換することで式(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 ) )

Figure 2011237475
Figure 2011237475

R,P(Q)全体をZ で割ることによって式(51)より式(56)を得る。 g R, P (Q) is divided by Z 3 2 Z 4 2 to obtain equation (56) from equation (51).

Figure 2011237475
Figure 2011237475

=X/Z、y=Y/Z、x=X/Z、y=Y/Zを用いて射影座標をAffine座標(x,y)および(x,y)に変換することで式(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).

XY=x−x+x−x・・・(57) c XY = x 3 −x 4 + x 3 y 4 −x 4 y 3 (57)

=Z/X、y=Z/Y、x=Z/T、x=Z/X、y=Z/Y、x=Z/Tを満たすInverted twisted Edward座標(X:Y:T:Z)および(X:Y:T:Z)を用いて変換することで式(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 ) )

Figure 2011237475
Figure 2011237475

R,P(Q)全体をZ で割ることによって式(52)より式(59)を得る。 g R, P (Q) is divided by Z 3 2 Z 4 2 to obtain equation (59) from equation (52).

Figure 2011237475
Figure 2011237475

=X/Z、y=Y/Z、x=X/Z、y=Y/Zを用いて射影座標をAffine座標(x,y)および(x,y)に変換することで式(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).

XZ=x−x+y(x−x)・・・(60) c XZ = x 4 y 4 -x 3 y 3 + y 3 y 4 (x 4 -x 3) ··· (60)

=Z/X、y=Z/Y、x=Z/T、x=Z/X、y=Z/Y、x=Z/Tを満たすInverted twisted Edward座標(X:Y:T:Z)および(X:Y:T:Z)を用いて変換することで式(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.

Figure 2011237475
Figure 2011237475

R,P(Q)全体にXを掛けることによって式(55)より式(62)を得る。 g R, P (Q) is multiplied by X 1 X 2 Y 1 Y 2 to obtain equation (62) from equation (55).

ZZ←XZZ=Z(Y−Y)・・・(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)

R,P(Q)全体にXを掛けることによって式(58)より式(63)を得る。 g R, P (Q) is multiplied by X 1 X 2 Y 1 Y 2 to obtain equation (63) from equation (58).

XY←XXY=Y−X+Z(X−X)・・・(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)

さらに、X=T、X=Tを用いて変形することで式(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.

XY=Z(Y−Y+X−X)・・・(64) c XY = Z 1 Z 2 ( Y 1 T 2 -Y 2 T 1 + X 2 Y 1 -X 1 Y 2) ··· (64)

R,P(Q)全体にXを掛けることによって式(59)より式(65)を得る。 g R, P (Q) is multiplied by X 1 X 2 Y 1 Y 2 to obtain equation (65) from equation (59).

XZ←XXZ=X −X +Z(X−X)・・・(65) c XZ ← X 1 X 2 Y 1 Y 2 c XZ = X 1 Y 1 Z 2 2 -X 2 Y 2 Z 1 2 + Z 1 Z 2 (X 1 Z 2 -X 2 Z 1) ··· (65)

さらに、T=X、T=Xを用いて変形することで式(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).

XZ=Z(T−T+X−X)・・・(66) c XZ = Z 1 Z 2 (T 1 Z 2 −T 2 Z 1 + X 1 Z 2 −X 2 Z 1 ) (66)

R,P(Q)全体をZで割、cZZ←cZZ/(Z)、cXY←cXY/(Z)、cXZ←cXZ/(Z)を計算することにより式(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).

ZZ=Y−Y・・・(67)
XY=Y−Y+X−X・・・(68)
XZ=T−T+X−X・・・(69)
c ZZ = Y 2 Z 1 -Y 1 Z 2 ··· (67)
c XY = Y 1 T 2 -Y 2 T 1 + X 2 Y 1 -X 1 Y 2 ··· (68)
c XZ = T 1 Z 2 -T 2 Z 1 + X 1 Z 2 -X 2 Z 1 ··· (69)

上記の内容をアルゴリズムの形でまとめると、図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の座標は(X:Y:T:Z)、Rの座標は(X:Y:T:Z)であるとする。
ステップS401において、楕円曲線加算演算部115が、A←(X−Y)(X+Y)、B←(X+Y)(X−Y)、C←2T、D←2TをF上でそれぞれ計算する(4m)。
ここでZ=1である場合、C←2TはC←2Tとなり、乗算の必要がなくなるため、演算コストを1m削減することができる。
ステップS402において、楕円曲線加算演算部115が、E←A+B、F←C+D,G←C−D,H←B−AをF上でそれぞれ計算する。
ステップS403において、楕円曲線加算演算部115が、cZZ←2(Y−Y)をF上で計算する(2m)。
ここでZ=1である場合、cZZ←2(Y−Y)となり、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 addition computing unit 115 performs 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 is calculated on F q (4 m).
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 addition calculation unit 115 calculates E ← A + B, F ← C + D, G ← CD, and H ← B−A on Fq .
In step S403, the elliptic curve addition unit 115, c ZZ2 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(Y−Y)+HをF上で計算する(2m)。
ステップS405において、楕円曲線加算演算部115が、cXZ←D−C+2(X−X)をF上で計算する(2m)。
ここでZ=1である場合、cXZ←D−C+2(X−X)となり、1回分の乗算の必要がなくなるため、演算コストを1m削減することができる。
ステップS406において、楕円曲線加算演算部115が、gR,P(Q)←cZZηα+cXY+cXZをFのk/2次拡大体Fq2(q2=qk/2)上で計算する(km)。
ステップS407において、楕円曲線加算演算部115が、f←fgR,P(Q)をFのk次拡大体Fq1(q1=q)上で計算する(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 addition calculation unit 115 calculates c XZ ← D−C + 2 (X 1 Z 2 −X 2 Z 1 ) on F q (2 m).
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 ηα + c XY y 0 + c XZ of F q k / 2 degree extension field F q2 (q2 = q k / 2) Calculate (km).
In step S407, the elliptic curve addition calculation unit 115 calculates f ← fg R, P (Q) on the k-th order extension field F q1 (q1 = q k ) of F q (1M).

ステップS408において、楕円曲線加算演算部115が、i=0であるか否かを判定し、i=0であれば(S408→Yes)、ステップS414の処理に進み、そうでなければ(S408→No)、ステップS409に進む。
ステップS409において、楕円曲線加算演算部115が、X←EGをF上で計算する(1m)。
ステップS410において、楕円曲線加算演算部115が、Y←HFをF上で計算する(1m)。
ステップS411において、楕円曲線加算演算部115が、T←EHをF上で計算する(1m)。
ステップS412において、楕円曲線加算演算部115が、Z←FGをF上で計算する(1m)。
ステップS413において、楕円曲線加算演算部115が、演算結果をInverted twisted Edward座標を用いたR←(X:Y:T:Z)としてfとともに出力し、加算処理を終了する。
ステップS414では、楕円曲線加算演算部115が、演算結果をfとして出力し、加算処理を終了する。
図6に示す加算アルゴリズムの演算コストは1M+(k+14)m(Z=1以外)、1M+(k+11)m(Z=1)となる。この処理における演算コストは、非特許文献4において該当するコストより、1m+1D減っている。非特許文献4に記載の技術にa=−1を適用した場合と比べても1m減っている。
In step S408, the elliptic curve addition calculation unit 115 determines whether i = 0. If i = 0 (S408 → Yes), the process proceeds to step S414, otherwise (S408 → No), the process proceeds to step S409.
In step S409, the elliptic curve addition calculation unit 115 calculates X 3 ← EG on F q (1 m).
In step S410, the elliptic curve addition calculation unit 115 calculates Y 3 ← HF on F q (1 m).
In step S411, the elliptic curve addition calculation unit 115 calculates T 3 ← EH on F q (1 m).
In step S412, the elliptic curve addition calculation unit 115 calculates Z 3 ← FG on F q (1 m).
In step S413, the elliptic curve addition calculation unit 115 outputs the calculation result as R ← (X 3 : Y 3 : T 3 : Z 3 ) using the inverted twisted Edward coordinates, and ends the addition process.
In step S414, the elliptic curve addition calculation unit 115 outputs the calculation result as f and ends the addition process.
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 Non-Patent Document 4. Compared with the case where a = -1 is applied to the technique described in Non-Patent Document 4, the value is reduced by 1 m.

ここで、図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.

=(X+aY)(Z−T)・・・(42)
=(Y−X)(Z+T)・・・(43)
=(X+aY)(Y−X)・・・(44)
=(Z+T)(Z−T)・・・(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)

=(X−Y)(Z−T)・・・(70)
=(Y−X)(Z+T)・・・(71)
=(X−Y)(Y−X)・・・(72)
=(Z+T)(Z−T)・・・(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=(X:Y:T:Z)+(X:Y:T:Z)=(X:Y:T:Z)を計算することができ、(X:Y:T:Z)の代わりに(X:Y:T:Z)=(4X:4Y:4T:4Z)を用いてもx=Z/X、y=Z/Y、x=Z/Tを満たすことから、以下の式(74)〜(77)を用いることによりP+Q=(X:Y:T:Z)+(X:Y:T:Z)=(X:Y:T:Z)を計算できる。 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.

=(2X−2Y)(2Z−2T)・・・(74)
=(2Y−2X)(2Z+2T)・・・(75)
=(2X−2Y)(2Y−2X)・・・(76)
=(2Z+2T)(2Z−2T)・・・(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)

ここで、X、Y、Z座標を求める際に必要となる式は以下の条件(式(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)).

(2X−2Y)=(X−Y)(X+Y)+(X+Y)(X−Y)・・・(78)
(2Y−2X)=(X+Y)(X−Y)−(X−Y)(X+Y)・・・(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).

ZZ=Y−Y・・・(67)
XY=Y−Y+X−X・・・(68)
XZ=T−T+X−X・・・(69)
c ZZ = Y 2 Z 1 -Y 1 Z 2 ··· (67)
c XY = Y 1 T 2 -Y 2 T 1 + X 2 Y 1 -X 1 Y 2 ··· (68)
c XZ = T 1 Z 2 -T 2 Z 1 + X 1 Z 2 -X 2 Z 1 ··· (69)

ZZ=2(Y−Y)・・・(80)
XY=2(Y−Y)+2X−2X・・・(81)
XZ=2T−2T+2(X−X)・・・(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 Z 1 +2 (X 1 Z 2 -X 2 Z 1) ··· (82)

上記の内容をアルゴリズムの形でまとめると、図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).

=(X+aY)(Z−T)・・・(42)
=(Y−X)(Z+T)・・・(43)
=(X+aY)(Y−X)・・・(44)
=(Z+T)(Z−T)・・・(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=Y−X、H=X+aYであり、これら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←X、B←Y、E←(X+Y)(X−Y)+B−A、H←A+aB A ← X 1 X 2, B ← Y 1 Y 2, E ← (X 1 + Y 1) (X 2 -Y 2) + B-A, H ← A + aB

この場合の計算コストは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以外の場合の加算結果(X:Y:T:Z)を求める代わりに(4X:4Y:4T:4Z)を加算結果とするようにアルゴリズムを修正する。
具体的には(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.

=(2X−2Y)(2Z−2T)・・・(74)
=(2Y−2X)(2Z+2T)・・・(75)
=(2X−2Y)(2Y−2X)・・・(76)
=(2Z+2T)(2Z−2T)・・・(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=2Y−2X、Hに相当するH=2X−Yは以下の方法で求めることができる。 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←(X−Y)(X+Y)、B←(X+Y)(X−Y)、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を、それぞれ定義体F上の乗算、2乗算、定数倍算の演算コストとし、M,Sを、それぞれFのk次拡大体Fq1(q1=q)上の乗算、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 Non-Patent Document 4, m, s the D, multiplied in the respective definition F q, 2 multiplications, and an operation cost of the constant multiplication, M, S and, k-th extension member F q1 (q1 = q k) multiplications on each F q, 2 In the case of the calculation cost of multiplication, the calculation cost of the addition process calculated in the loop process is 1M + (k + 14) m + 1D, and the calculation cost of the doubling process is 1M + 1S + (k + 6) m + 5s + 2D.

本実施形態における拡張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 Non-Patent Document 4, the calculation is performed by a loop process. The calculation cost of the addition process is 1M + (k + 12) m + 1D, and the calculation cost of the doubling process is 1M + 1S + (k + 6) m + 5s + 2D.
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 Non-Patent Document 4.
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 Non-Patent Document 4 can be realized by setting Z = 1.

さらに、楕円曲線の係数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 Non-Patent Document 4, the scalar multiplication calculation cost can be further increased. This makes it possible to implement a signature scheme and public key cryptography that can use an arbitrary character string as a public key by using the pairing property defined on an elliptic curve such as high-speed ID-based cryptography.

《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 key issuing device 3, an encryption device 4, and a decryption device 5 installed in a key generation center. Each of the key issuing device 3, the encryption device 4, and the decryption device 5 is connected by a network 201. Hereinafter, the user of the encryption device 4 is user A, and the user of the decryption device 5 is user B. When there is no need to distinguish between the two, it is called a user.

これらの各装置を用いた本実施形態での暗号化および復号化処理の概略について説明する。本実施形態では、公開鍵として、所定のルールによって定められた利用者と対応付けられる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 key issuing device 3 generates a public parameter and a master key that are used in the entire ID-based encryption system 2, and discloses the generated public parameter.
When transmitting an encrypted message, the encryption device 4 encrypts the data to be encrypted by using the public key (ID of user B) and the public parameter of the transmission partner acquired from the key issuing device 3. Generate encrypted data and send the generated encrypted data. In the decrypting device 5, the key issuing device 3 is requested in advance to issue a secret key corresponding to its own public key, and the encrypted data received from the encrypting device 4 is decrypted using the secret key and the public parameter. To do.

《鍵生成》
次に、本実施形態に係る楕円曲線スカラ倍演算方法を利用した鍵生成方法について図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 key issuing device 3 includes a control calculation unit 310 and a storage unit 320.
The control calculation unit 310 includes an input / output unit 311, a control unit 312, a group selection unit 313, a random number generation unit 314, an elliptic curve scalar multiplication calculation unit 315, a hash function selection unit 316, and a hash function calculation unit 317. The input / output unit 311 includes processing selection information for executing public parameters and master key generation processing or secret key generation processing, security parameters for public parameters and master key generation processing, and secret key generation processing. The user has a function of receiving the public key of the user as input information and outputting the generated public parameter or secret key as output information. The control unit 312 has a function of controlling the key issuing device 3. The group selection unit 313 has a function of selecting a group. The random number generation unit 314 has a function of generating a random number. The elliptic curve scalar multiplication unit 315 has a function of performing scalar multiplication of points on the elliptic curve, calculation on a definition field, remainder calculation (mod), comparison, and the like. The hash function selection unit 316 has a function of selecting a hash function. The hash function calculation unit 317 has a function of generating a hash value using the hash function selected by the hash function selection unit 316.

記憶部320には、中間データ321、セキュリティパラメータ322、公開パラメータ323、マスタ鍵324、公開鍵325、秘密鍵326などが格納されている。中間データ321は、制御演算部310における演算時の中間データである。セキュリティパラメータ322は、入出力部311により入力を受け付けたセキュリティパラメータのデータである。公開パラメータ323は、制御演算部310で生成された公開パラメータのデータである。マスタ鍵324は、制御演算部310で生成されたマスタ鍵のデータである。公開鍵325は、入出力部311により入力を受け付けた公開鍵のデータである。秘密鍵326は、制御演算部310で生成された秘密鍵のデータである。   The storage unit 320 stores intermediate data 321, security parameters 322, public parameters 323, a master key 324, a public key 325, a secret key 326, and the like. The intermediate data 321 is intermediate data at the time of calculation in the control calculation unit 310. The security parameter 322 is security parameter data that has been input by the input / output unit 311. The public parameter 323 is public parameter data generated by the control calculation unit 310. The master key 324 is master key data generated by the control calculation unit 310. The public key 325 is public key data that has been input by the input / output unit 311. The secret key 326 is secret key data generated by the control calculation unit 310.

なお、鍵発行装置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 key issuing device 3 includes a CPU 61 connected by a bus 67, a memory 62 such as a RAM, an HDD or other external storage device 65, an input device 63 such as a keyboard, and a display as shown in FIG. Are constructed on an information processing apparatus 6 having a general configuration, including an output device 64 such as an external storage device 65, an input device 63, an output device 64, and an interface 66 that relays the bus 67. be able to.
The control calculation unit 310 and each of the units 311 to 320 of the key issuing device 3 are executed as a process embodied on the information processing device 6 by the CPU 61 executing a program (also referred to as a code module) loaded in the memory 62. Realized. Further, the memory 62 and the external storage device 65 are used as the storage unit 320 in FIG.

また、前記したプログラムは、予め外部記憶装置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 external storage device 65, loaded onto the memory 62 as necessary, and executed by the CPU 61. The program may be stored in a portable storage medium, such as a CD-ROM, and loaded from the portable storage medium into the memory 62 as necessary. The program may be temporarily installed from a portable storage medium such as a CD-ROM into an external storage device 65 such as an HDD, and then loaded from the external storage device 65 to the memory 62 as necessary. . Furthermore, the program may be once downloaded to the external storage device 65 by a transmission signal by the information processing device 6 on the network via a network connection device (not shown) and then loaded into the memory 62. It may be loaded directly into the memory 62 via the network.

[鍵生成処理]
図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 / output unit 311 causes the key issuing device 3 to perform the public parameter and master key generation process or the secret key generation process as input information. If the process selection information, the public parameter and the master key generation process, a positive integer L that is the security parameter 322, and the secret key generation process, an arbitrary character string that is a public key is received as input information, The calculation unit 310 stores the received input information in the storage unit 320.
Then, the control calculation unit 310 refers to the input information held in the storage unit 320, and if the selected process is a public parameter and master key generation process, the public parameter 323 and the master key 324 are set according to the process of FIG. Generate. Then, the control calculation unit 310 stores the public parameter 323 and the master key 324 in the storage unit 320 and outputs only the public parameter as output information from the input / output unit 311 and ends the operation. If it is a secret key generation process, the control calculation unit 310 generates a secret key 326 according to the process of FIG. 11, and the control calculation unit 310 stores the generated secret key 326 in the storage unit 320 and outputs it from the input / output unit 311. Output as information and end the operation.
First, the overall processing in the key issuing device 3 will be described along FIG. 9 with reference to FIG.

ステップ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ビットバイナリ系列を表し、XORは排他的論理和を表す。
In step S501, the input / output unit 311 receives a selection of processing under the control of the control calculation unit 310. When the public parameter and master key generation processing is selected, the control calculation unit 310 receives an input of a positive integer L that is the security parameter 322, stores L in the storage unit 320 as necessary, and then proceeds to step S502. When the secret key generation process is selected, the control calculation unit 310 receives an input of an arbitrary character string ID that is the user's public key, and stores this ID in the storage unit 320 as necessary, and then proceeds to step S503. move on.
In step S502, the control calculation unit 310 performs the public parameter and master key generation process, and then ends the process. The process of step S502 will be described later with reference to FIG.
In step S503, the control calculation unit 310 performs the secret key generation process, and then ends the process. The process of step S503 will be described later with reference to FIG.
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がq−1を割り切りかつ最小の整数kが偶数となる、偶数kおよび 2以外の素数のべきqを選択し、楕円曲線の定義体をF、位数nの部分群を最大位数の部分群として持つTwisted Edward型楕円曲線E(F):ax+y=1+dx(ad(a−d)≠0かつF上で係数aは2乗根を持ち係数dは持たない)を選択し、位数nの部分群をGとすることによって群Gを選択する。
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 group selection unit 313 selects an L-bit prime number n, and selects a power q of a prime number other than even k and 2 where n is divisible by q k −1 and the smallest integer k is an even number. Twisted Edwardian elliptic curve E (F q ): ax 2 + y 2 = 1 + dx 2 y 2 (ad (a−) having the definition of elliptic curve F q and the subgroup of order n as the subgroup of the maximum order d) ≠ 0 and the coefficient a has a square root on F q and does not have the coefficient d), and the group G 1 is selected by setting the subgroup of order n to G 1 .

ステップS602において、群選択部313が、位数のnの群GをE(Fq1)/nE(Fq1)(q1=q)とすることによって群Gを選択する。
ステップS603において、群選択部313が、GをF q1(q1=q)の位数nの乗法に関する部分群Gとし、ペアリングe:G×G→Gを選択する。
In step S602, the group selection unit 313 selects a group G 2 by a group G 2 of order of n and E (F q1) / nE ( F q1) (q1 = q k).
In step S603, the group selection unit 313, a G 3 and F * q1 (q1 = q k ) of order multiplicative subgroup relating G of n in pairing e: selecting G 1 × G 2 → G 3 .

ステップS604において、群選択部313が、Gの生成元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 group selection unit 313 selects a generator P of G 1.
In step S <b> 605, the random number generation unit 314 randomly generates an integer s that satisfies 0 <s <n, sets the master key 324, and stores it in the storage unit 320.
In step S606, the elliptic curve scalar multiplication unit 315 calculates P pub ← sP, and expresses the calculation result using the extended inverted twisted coordinates (X: Y: T: 1) with Z = 1. This process is calculated using the technique described in Patent Documents 1 to 3, the technique described in Japanese Patent Application No. 2009-119256, and the like.

ステップS607において、ハッシュ関数選択部316が、ハッシュ関数H:{0,1}→Gを選択する。なおGの元は、(αx,y)(x,y∈Fq2)(q2=qk/2)で表現されているものとする。 In step S607, the hash function selecting unit 316, a hash function H 1: {0,1} * → selecting G 2. Note that the element of G 2 is expressed by (αx 0 , y 0 ) (x 0 , y 0 εF q2 ) (q2 = q k / 2 ).

ステップS608において、ハッシュ関数選択部316が、予め設定されている整数Nに対して、ハッシュ関数H:G→{0,1}を選択する。
ステップS609において、公開パラメータparams=<n,G,G,G,e,N,P,Ppub,H,H>を出力するとともに記憶部320に格納する。
In step S608, the hash function selection unit 316 selects a hash function H 2 : G 3 → {0, 1} N for a preset integer N.
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 storage unit 320.

以下、図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 storage unit 320 are used.

ステップS701において、ハッシュ関数演算部317が、公開パラメータ323(params)に含まれているハッシュ関数Hを使用して、ハッシュ値QID←H(ID)を計算する。
ステップS702において、楕円曲線スカラ倍演算部315が、マスタ鍵sを用いてdID←sQIDを計算し、計算結果である(αx,y)を利用者の秘密鍵326とする。この処理は、特許文献1〜3に記載の技術や、特願2009−119256に記載の技術などを用いて計算される。
In step S701, the hash function calculation unit 317 calculates a hash value Q ID ← H 1 (ID) using the hash function H 1 included in the public parameter 323 (params).
In step S702, the elliptic curve scalar multiplication unit 315 calculates d ID <-sQ ID using the master key s, and sets the calculation result (αx 0 , y 0 ) as the user's private key 326. This process is calculated using the technique described in Patent Documents 1 to 3, the technique described in Japanese Patent Application No. 2009-119256, and the like.

《暗号化》
次に、本実施形態に係る楕円曲線ペアリング演算方法を利用した暗号化処理について図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 encryption device 4 includes a control calculation unit 410 and a storage unit 420.
The control calculation unit 410 includes an input / output unit 411, a control unit 412, a random number generation unit 413, an elliptic curve pairing calculation unit 414, and a hash function calculation unit 415. The input / output unit 411 has a function of receiving the public parameter 422, the public key of the user B, and the encryption target data 424 as input information and outputting the generated encrypted data 425 as output information. The control unit 412 has a function of controlling the encryption device 4. The random number generation unit 413 has a function of generating a random number. The elliptic curve pairing calculation unit 414 has a function of performing scalar multiplication of points on an elliptic curve, calculation on a definition field, remainder calculation (mod), comparison and the like in addition to the function of calculating pairing. This corresponds to the elliptic curve pairing calculation unit 113. The hash function calculation unit 415 has a function of generating a hash value using a hash function.

記憶部420には、中間データ421、公開パラメータ422、利用者B公開鍵423、暗号化対象データ424、暗号化データ425などが格納されている。中間データ421は、制御演算部410における演算時の中間データである。公開パラメータ422は、鍵発行装置3で生成された公開パラメータのデータである。利用者B公開鍵423は、入出力部411により入力を受け付けた暗号化データ425の受信する利用者Bの公開鍵である。暗号化対象データ424は、入出力部411により入力を受け付けた暗号化の対象データである。暗号化データ425は、制御演算部410で暗号化対象データ424を暗号化することにより生成されるデータである。   The storage unit 420 stores intermediate data 421, public parameters 422, user B public key 423, encryption target data 424, encrypted data 425, and the like. The intermediate data 421 is intermediate data at the time of calculation in the control calculation unit 410. The public parameter 422 is public parameter data generated by the key issuing device 3. The user B public key 423 is the public key of the user B that receives the encrypted data 425 received by the input / output unit 411. The encryption target data 424 is data to be encrypted that has been input by the input / output unit 411. The encrypted data 425 is data generated by encrypting the encryption target data 424 by the control calculation unit 410.

なお、暗号化装置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 encryption device 4 includes a CPU 61 connected by a bus 67, a memory 62 such as a RAM, an HDD or other external storage device 65, an input device 63 such as a keyboard, and a display as shown in FIG. Such as an output device 64 such as an external storage device 65, an input device 63, an output device 64, and an interface 66 that relays the bus 67. Can do.
The control arithmetic unit 410 and each of the units 411 to 415 of the encryption device 4 are executed as processes implemented on the information processing device 6 by the CPU 61 executing a program (also referred to as a code module) loaded in the memory 62. Realized. Further, the memory 62 and the external storage device 65 are used as the storage unit 420 in FIG.

また、前記したプログラムは、予め外部記憶装置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 external storage device 65, loaded onto the memory 62 as necessary, and executed by the CPU 61. The program may be stored in a portable storage medium, such as a CD-ROM, and loaded from the portable storage medium into the memory 62 as necessary. The program may be temporarily installed from a portable storage medium such as a CD-ROM into an external storage device 65 such as an HDD, and then loaded from the external storage device 65 to the memory 62 as necessary. . Further, the program is once downloaded to the external storage device 65 and loaded into the memory 62 by a transmission signal which is a kind of medium readable by the information processing device 6 on the network via a network connection device (not shown). Alternatively, it may be loaded directly into the memory 62 via the network.

[暗号化処理]
図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 / output unit 411 causes the encryption device 4 to receive, as input information, the public parameter 422 (params) and the user B who is the receiver of the encrypted data. When the public key 423 (ID) is acquired from the key issuing device 3 and the encryption target data 424 is received as input information, the control calculation unit 410 stores the received input information in the storage unit 420.
Then, the control calculation unit 410 uses the input information held in the storage unit 420 to perform encryption processing according to the processing in FIG.
The control calculation unit 410 holds the generated encrypted data in the storage unit 420 and outputs it as output information from the input / output unit 411, and ends the operation.

以下、図12を参照しつつ、図13に沿って暗号化処理を説明する。
ステップS801において、ハッシュ関数演算部415が、公開パラメータ422に含まれているハッシュ関数Hを用いて、ハッシュ値QID←H(ID)を計算する。
ステップS802において、乱数生成部413が、公開パラメータ422に含まれている値nを用いて、0<r<nを満たす整数rをランダムに生成する。
ステップS803において、楕円曲線ペアリング演算部414が、公開パラメータ422に含まれているPと、ステップS802で生成した整数rを用いて、C←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←gを計算する。
ステップS806において、ハッシュ関数演算部415が、公開パラメータ422に含まれているハッシュ関数Hを用いて、ハッシュ値h←H(gr)を計算する。
ステップS807において、楕円曲線ペアリング演算部414が、C←W XOR hを計算する。ここで、Wは暗号化対象データ424である。
ステップS808において、制御演算部410が、算出した(C,C)を暗号化データ425として出力するとともに、記憶部420に格納する。
Hereinafter, the encryption process will be described along FIG. 13 with reference to FIG.
In step S801, the hash function calculation unit 415 calculates a hash value Q ID ← H 1 (ID) using the hash function H 1 included in the public parameter 422.
In step S <b> 802, the random number generation unit 413 randomly generates an integer r that satisfies 0 <r <n, using the value n included in the public parameter 422.
In step S803, the elliptic curve pairing calculation unit 414 calculates C 1 ← rP using P included in the public parameter 422 and the integer r generated in step S802, and the calculation result is Z = 1. Expressed using extended inverted twisted coordinates (X: Y: T: 1). This process is a scalar multiplication operation process and is performed using the techniques described in Patent Documents 1 to 3 and the technique described in Japanese Patent Application No. 2009-119256.
In step S804, the elliptic curve pairing calculation unit 414 uses the e included in the public parameter 422, P pub, and the Q ID generated in step S801 to calculate g ← e (P pub , Q ID ). calculate. This process uses the process described with reference to FIGS.
In step S805, the elliptic curve pairing operation unit 414 calculates the gr ← g r.
In step S806, the hash function calculation unit 415 calculates a hash value h ← H 2 (gr) using the hash function H 2 included in the public parameter 422.
In step S807, the elliptic curve pairing calculation unit 414 calculates C 2 <-W XOR h. Here, W is the encryption target data 424.
In step S808, the control calculation unit 410 outputs the calculated (C 1 , C 2 ) as the encrypted data 425 and stores it in the storage unit 420.

《復号化処理》
次に、本実施形態に係る楕円曲線ペアリング演算方法を利用した復号化処理について図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 decryption apparatus 5 includes a control calculation unit 510 and a storage unit 520.
The control calculation unit 510 includes an input / output unit 511, a control unit 512, an elliptic curve pairing calculation unit 513, and a hash function calculation unit 514. The input / output unit 511 has a function of receiving the public parameter 522, the secret key 523 of the user B, and the encrypted data 524 as input information and outputting the decrypted data 525 as output information. The control unit 512 has a function of controlling the decoding device 5. The elliptic curve pairing calculation unit 513 has a function of performing scalar multiplication of points on the elliptic curve, calculation on a definition field, remainder calculation (mod), comparison and the like in addition to the function of calculating pairing. This corresponds to the elliptic curve pairing calculation unit 113. The hash function calculation unit 514 has a function of generating a hash value using a hash function.

記憶部520には、中間データ521、公開パラメータ522、利用者B秘密鍵523、暗号化データ524、復号データ525などが格納されている。中間データ521は、制御演算部510における演算時の中間データである。公開パラメータ522は、鍵発行装置3で生成された公開パラメータのデータである。利用者B秘密鍵523は、鍵発行装置3から受け付けた暗号化データの復号者である利用者B秘密鍵のデータである。暗号化データ524は、暗号化装置4から送られた復号の対象データである。復号データ525は、制御演算部510で暗号化データ524を復号することにより生成されるデータである。   The storage unit 520 stores intermediate data 521, public parameters 522, user B secret key 523, encrypted data 524, decrypted data 525, and the like. The intermediate data 521 is intermediate data at the time of calculation in the control calculation unit 510. The public parameter 522 is data of a public parameter generated by the key issuing device 3. The user B secret key 523 is data of a user B secret key that is a decryptor of the encrypted data received from the key issuing device 3. The encrypted data 524 is decryption target data sent from the encryption device 4. The decrypted data 525 is data generated by decrypting the encrypted data 524 by the control calculation unit 510.

なお、復号化装置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 decoding device 5 includes a CPU 61 connected via a bus 67, a memory 62 such as a RAM, an HDD or other external storage device 65, an input device 63 such as a keyboard, and a display as shown in FIG. Such as an output device 64 such as an external storage device 65, an input device 63, an output device 64, and an interface 66 that relays the bus 67. Can do.
The control calculation unit 510 and the respective units 511 to 514 of the decoding device 5 are embodied on the information processing device 6 by the CPU 61 executing a program (also referred to as a code module) loaded in the memory 62. Further, the memory 62 and the external storage device 65 are used as the storage unit 520 in FIG.

また、前記したプログラムは、予め外部記憶装置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 external storage device 65, loaded onto the memory 62 as necessary, and executed by the CPU 61. This program is stored in a portable storage medium such as a CD-ROM, and may be loaded from the portable storage medium into the memory 62 as needed, or once such as a CD-ROM. After being installed in the external storage device 65 such as an HDD from a portable storage medium, it may be loaded from the external storage device 65 into the memory 62 as necessary, or a network connection device (not shown) The information processing device 6 on the network may be temporarily downloaded to the external storage device 65 by a transmission signal and then loaded into the memory 62 via the network, or may be loaded directly into the memory 62 via the network. Good.

[復号化処理]
図15は、本実施形態に係る復号化処理の手順を示すフローチャートである。
図14を参照しつつ、図15に沿って復号化処理の概略を記述すると、入出力部511により、復号化装置5が、公開パラメータ522(params)、復号者である利用者Bの秘密鍵523(dID)を鍵発行装置3から取得し、暗号化データ524(C=(C,C))を暗号化装置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 / output unit 511, the decryption apparatus 5 causes the public parameter 522 (params) and the private key of the user B who is the decryptor to be decrypted. When 523 (d ID ) is acquired from the key issuing device 3 and encrypted data 524 (C = (C 1 , C 2 )) is received from the encryption device 4, the control calculation unit 510 stores the received input information. Stored in the unit 520.
Then, the control calculation unit 510 performs a decoding process according to the process of FIG. 15 using each input information held in the storage unit 520.
The control calculation unit 510 holds the decoded data 525 generated by the decoding process in the storage unit 520 and outputs it as output information from the input / output unit 511, and ends the operation.

以下、図14を参照しつつ、図15に沿って、復号化処理を説明する。
ステップS901において、楕円曲線ペアリング演算部513が、公開パラメータ522に含まれるeと、秘密鍵523(dID)と、暗号化データ524に含まれるdIDを用いて、g←e(C,dID)を計算する。この処理は、図1〜図6を参照して説明した処理を使用することによって行なわれる。
ステップS902において、ハッシュ関数演算部514が、公開パラメータ522に含まれるハッシュ関数Hを用いて、ハッシュ値h←H(g)を計算する。
ステップS903において、楕円曲線ペアリング演算部513が、W←C 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 pairing calculating unit 513 uses g ← e (C 1) using e included in the public parameter 522, the secret key 523 (d ID ), and d ID included in the encrypted data 524. , D ID ). This process is performed by using the process described with reference to FIGS.
In step S902, the hash function calculation unit 514 calculates a hash value h ← H 2 (g) using the hash function H 2 included in the public parameter 522.
In step S < b > 903, the elliptic curve pairing calculation unit 513 calculates W ← C 2 XOR h, sets W as decoded data 525, outputs the generated decoded data 525, and stores it in the storage unit 520.

[ハードウェア構成]
図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 CPU 61 and the memory 62 are connected to each other via a bus 67. Also, an input device 63 corresponding to a keyboard and a mouse, an output device 64 corresponding to a display, an HDD, a CD-ROM, and the like, an external storage device 65 in which programs and data are stored, is connected via an interface 66. Connected to the bus 67.

《まとめ》
本実施形態では、楕円曲線ax+y=1+dx(ad(a−d)≠0,定義体上で係数aは2乗根を持ち係数dは持たない)上の点(x,y)に対してx=Z/X、y=Z/Y、XYZ≠0を満たすX、Y、Z∈Fを用いて(X:Y:Z)と変換したInverted Twisted Edward座標に加えて、x=Z/X、y=Z/Y、xy=Z/T、XYTZ≠0を満たすX、Y、T、Z∈Fを用いて(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 SYMBOLS 1 Elliptic curve pairing calculating apparatus 2 ID-based encryption system 3 Key issuing apparatus 4 Encryption apparatus 5 Decoding apparatus 6 Information processing apparatus 110 Control calculating part (elliptic curve pairing calculating apparatus)
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 / output unit 115 Elliptic curve addition calculation unit 116 Elliptic curve doubling calculation unit 117 Basic calculation unit 120 Storage unit (elliptic curve pairing calculation device)
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)

Inverted twisted Edward座標を拡張した拡張Inverted twisted Edward座標を用いて表現したTwisted Edward型楕円曲線上の素数位数の点である第1の点と、affine座標を用いて表現した第1の点と同じ位数を持ち異なる前記Twisted Edward型楕円曲線上の第2の点と、前記第1の点および第2の点と同じ位数を持ち、前記Twisted Edward型楕円曲線上の群とは異なる群に属する第1の元を算出する楕円曲線ペアリング演算装置による楕円曲線ペアリング演算方法であって、
前記第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.
前記Twisted Edward型楕円曲線におけるx2の項の係数が−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.
Twisted Edward型楕円曲線上のペアリング演算(f=e(P,Q))を行う楕円ペアリング演算装置による楕円曲線ペアリング演算方法であって、
前記楕円ペアリング演算装置が、
入力部を介して、
位数qの有限体Fq(qは2以外の素数のべきqで、E(Fq)の位数である#E(Fq)を割り切る位数であるとともに3以上の素数である値nがqk−1を割り切る最小のkが偶数となる数)を定義体として持ち、かつ前記値nの部分群を最大位数の部分群として持つTwisted Edward型楕円曲線E(Fq):ax2+y2=1+dx22(ad(a−d)≠0かつFq上で係数aは2乗根を持ち係数dは持たない)の値nを位数とする部分群G1の情報、前記Twisted Edward型楕円曲線E(Fq)上の点(x1,y1)において、x1=Z1/X1、y1=Z1/Y1、x11=Z1/T1、X1111≠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←f2R,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.
前記(a4)の処理において、入力時におけるRの座標を拡張Inverted twisted Edward座標を用いて(X2:Y2:T2:Z2)とした場合、
前記楕円曲線ペアリング演算装置が、
(b1)A←X2 2、B←Y2 2、C←T2 2、D←aB、E←aY22をFq上でそれぞれ計算し、
(b2)F←A+D、G←A−D、H←(X2+Y22−A−B、I←(X2+T22−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ηα+cXY0+cXZをFqのk/2次拡大体Fq2(q2=qk/2)上で計算し、
(b7)f←f2R,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.
前記Twisted Edward型楕円曲線における係数aの値が−1と異なる場合、かつ前記(a6)の処理において、入力時のPの座標を(X1:Y1:T1:Z1=1)、Rの座標を(X2:Y2:T2:Z2)であるとした場合の処理として、
前記楕円曲線ペアリング演算装置が、
(c1)A←X12、B←Y12、C←T21、D←T12をFq上でそれぞれ計算し、
(c2)E←(X1+Y1)(X2−Y2)+B−A、F←C+D、G←C−D、H←A+aB、I←T12をFq上でそれぞれ計算し、
(c3)cZZ←Y21−Y12をFq上で計算し、
(c4)cXY←(Y1−T1)(Y2+T2)−B+I+EをFq上で計算し、
(c5)cXZ←D−C+(X12+X21)をFq上で計算し、
(c6)gR,P(Q)←cZZηα+cXY0+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.
前記Twisted Edward型楕円曲線における係数aの値が−1の場合、かつ前記(a6)の処理において、入力時のPの座標を(X1:Y1:T1:Z1=1)、Rの座標を(X2:Y2:T2:Z2)とした場合の処理として、
前記楕円曲線ペアリング演算装置が、
(d1)A←(X1−Y1)(X2+Y2)、B←(X1+Y1)(X2−Y2)、C←2T21、D←2T12をFq上でそれぞれ計算し、
(d2)E←A+B、F←C+D,G←C−D,H←B−AをFq上でそれぞれ計算し、
(d3)cZZ←2(Y21−Y12)をFq上で計算し、
(d4)cXY←2(Y12−Y21)+HをFq上で計算し、
(d5)cXZ←D−C+2(X12−X21)をFq上で計算し、
(d6)gR,P(Q)←cZZηα+cXY0+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 XZDC + 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から請求項6のいずれか一項に記載の楕円曲線ペアリング演算方法をコンピュータに実行させることを特徴とするプログラム。   A program for causing a computer to execute the elliptic curve pairing calculation method according to any one of claims 1 to 6. IDベース暗号を利用した暗号化を行う暗号化装置による暗号化方法であって、
前記暗号化装置が、
鍵発行装置から、公開パラメータおよび暗号化データの受信者の公開鍵を取得し、
外部装置から暗号化対象データを取得し、
前記公開パラメータと、前記公開鍵を基に、請求項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. .
IDベース暗号を利用した暗号化を行う暗号化装置による暗号化方法であって、
前記暗号化装置が、
鍵発行装置から、公開パラメータ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+dx22(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 ).
請求項8または請求項9に記載の暗号化方法をコンピュータに実行させることを特徴とするプログラム。   A program for causing a computer to execute the encryption method according to claim 8 or 9. 請求項8に記載の暗号化方法によって生成された暗号化データを復号する復号化装置による復号化方法であって、
前記復号化装置が、
鍵発行装置から、公開パラメータおよび復号者の秘密鍵を取得し、
前記公開パラメータと、前記公開鍵を基に、請求項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.
請求項9に記載の暗号化方法によって生成された暗号化データを復号する復号化装置による復号化方法であって、
前記復号化装置が、
鍵発行装置から、公開パラメータ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+dx22(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.
請求項11または請求項12に記載の復号化方法をコンピュータに実行させることを特徴とするプログラム。   A program for causing a computer to execute the decoding method according to claim 11 or 12. Inverted twisted Edward座標を拡張した拡張Inverted twisted Edward座標を用いて表現したTwisted Edward型楕円曲線上の素数位数の点である第1の点と、affine座標を用いて表現した第1の点と同じ位数を持ち異なる前記Twisted Edward型楕円曲線上の第2の点と、前記第1の点および第2の点と同じ位数を持ち、前記Twisted Edward型楕円曲線上の群とは異なる群に属する第1の元を算出する楕円曲線ペアリング演算装置であって、
前記第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.
前記Twisted Edward型楕円曲線におけるx2の項の係数が−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.
IDベース暗号を利用した暗号化を行う暗号化装置であって、
鍵発行装置から、公開パラメータおよび暗号化データの受信者の公開鍵を取得し、外部装置から暗号化対象データを取得する入出力部と、
前記公開パラメータと、前記公開鍵を基に、請求項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:
請求項16に記載の暗号化装置によって生成された暗号化データを復号する復号化装置であって、
鍵発行装置から、公開パラメータおよび復号者の秘密鍵を取得する入出力部と、
前記公開パラメータと、前記公開鍵を基に、請求項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:
JP2010106367A 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 Active JP5450240B2 (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101460541B1 (en) * 2013-07-15 2014-11-11 고려대학교 산학협력단 Public encryption method based on user ID

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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