JP4956817B2 - Pairing calculation device and pairing calculation program - Google Patents
Pairing calculation device and pairing calculation program Download PDFInfo
- Publication number
- JP4956817B2 JP4956817B2 JP2006192217A JP2006192217A JP4956817B2 JP 4956817 B2 JP4956817 B2 JP 4956817B2 JP 2006192217 A JP2006192217 A JP 2006192217A JP 2006192217 A JP2006192217 A JP 2006192217A JP 4956817 B2 JP4956817 B2 JP 4956817B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- calculating
- pairing
- substituting
- substituted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
本発明は、高速にTateペアリングの計算が可能なペアリング計算装置及びペアリング計算プログラムに関する。 The present invention relates to a pairing calculation apparatus and a pairing calculation program capable of calculating Tate pairing at high speed.
情報通信技術に不可欠な技術の一つとして、暗号化のための鍵を公開する公開鍵暗号の技術が知られている。しかし、公開鍵暗号の技術は、鍵の管理が煩雑であることや特定のグループのみが解読可能となるブロードキャスト暗号が未整備であるといった問題がある。 As one of indispensable technologies for information and communication technologies, public key cryptography technology that discloses a key for encryption is known. However, public key cryptography techniques have problems such as complicated key management and undeveloped broadcast ciphers that can only be decrypted by a specific group.
近年、これらの問題を解決する手法としてTateペアリングを用いる暗号技術が注目されている。Tateペアリングを用いる暗号系では、IDを公開鍵とするIDベース暗号やブロードキャスト暗号を構築でき、さらに署名長が従来の半分であるshort signatureといった署名システムも構築できる。 In recent years, an encryption technique using Tate pairing has attracted attention as a technique for solving these problems. In an encryption system using Tate pairing, it is possible to construct an ID-based cipher or broadcast cipher with an ID as a public key, and it is also possible to construct a signature system such as a short signature whose signature length is half that of the conventional one.
Tateペアリングの計算は、公開鍵暗号技術において暗号化や署名生成において用いる場合と、署名検証等で用いる場合の二通りがある。暗号化や署名生成で用いる場合には、Tateペアリングeの値をそのまま用いる。一方、署名検証等で用いる場合には、二つのTateペアリングの値eとe´が等しいことをチェックする。 There are two types of calculation for Tate pairing: when used for encryption and signature generation in public key cryptography, and when used for signature verification. When used for encryption or signature generation, the value of Tate pairing e is used as it is. On the other hand, when used for signature verification or the like, it is checked that the two eate pairing values e and e ′ are equal.
続いて、楕円曲線上のTateペアリングについて説明する。
まず、(1)式で示される楕円曲線を考える。
Next, Tate pairing on an elliptic curve will be described.
First, consider the elliptic curve represented by equation (1).
Tateペアリングは、(1)式の楕円曲線上の2点P,Qに関してある値を返す関数e(P,Q)として(2)式のように定義する。Tateペアリングは(3)式に示すように双線形を満たすという性質があり、この双線形が暗号技術に応用される。 The Tate pairing is defined as a function e (P, Q) that returns a certain value with respect to two points P and Q on the elliptic curve of the expression (1) as in the expression (2). Tate pairing has the property of satisfying bilinearity as shown in equation (3), and this bilinearity is applied to encryption technology.
従来、<P、ψ(Q)>Nを計算するアルゴリズムとしては、図10に示すアルゴリズム1(Modified Duursma-Leeアルゴリズム)が知られている。アルゴリズム1においては、ステップ12〜16までループ処理をn回繰り返す。なお、σはσ2=1を満たし、ρはρ3=ρ+bを満たし、拡大体Fq(q=36n)は{1,σ,ρ,σρ,ρ2,σρ2}を基底とする体Fq(q=3n)の6次のベクトル空間である。
Conventionally, algorithm 1 (Modified Duursma-Lee algorithm) shown in FIG. 10 is known as an algorithm for calculating <P, ψ (Q)> N. In
図11に示すアルゴリズム2は、このループ処理の回数を減らす目的で改良されたアルゴリズムであり、ηTペアリングを求めるものである。アルゴリズム2においては、ステップ22〜26までのループ処理の回数が(n+1)/2回に減少しているが、処理に時間のかかる3乗根の計算が発生する。なお、ηTペアリングとTateペアリングは(4)式に示すような関係がある。
An
図12から明らかなように、従来のアルゴリズムを用いた方法では、特に署名検証においてTateペアリングの計算に時間がかかり、RSA(Rivest Shamir Adleman)方式やDSA(Digital Signature Algorithm)方式、楕円曲線の特性を利用した暗号方式等と比較して処理が遅い。このため、Tateペアリングの計算の高速化が世界的に大きな研究テーマとなっている。 As apparent from FIG. 12, in the method using the conventional algorithm, it takes time to calculate the Tate pairing particularly in signature verification, and the RSA (Rivest Shamir Adleman) method, the DSA (Digital Signature Algorithm) method, the elliptic curve Processing is slow compared to encryption methods using characteristics. For this reason, speeding up the calculation of Tate pairing has become a major research theme worldwide.
本発明は上記事情を考慮してなされたもので、その目的は、Tateペアリングの計算を計算量が少なく高速に行うことが可能なアルゴリズムを提案し、該アルゴリズムを用いて処理を行うペアリング計算装置を提供することにある。 The present invention has been made in consideration of the above circumstances, and its purpose is to propose an algorithm that can perform Tate pairing calculation with a small amount of calculation and can be performed at high speed, and performs pairing using the algorithm. To provide a computing device.
本発明は上記の課題を解決するためになされたもので、本発明の一態様は、楕円曲線Eb:y2=x3−x+b,b∈{−1,1}上の点Pに対して前記楕円曲線E b 上の計算により得られる前記楕円曲線E b 上の点3 (n−1)/2 Pおよび前記楕円曲線E b 上の点Qの各座標データである(x p ,y p ),(x q ,y q )を入力し、定数bが1である場合は、前記座標値y p を−y p に置き換える入力手段と、標数3の体Fq(ここで、q=3n)において、前記定数bの値をdに代入する第1演算手段と、基底σおよびρがσ 2 =1,ρ 3 =ρ+bを満たし、{1,σ,ρ,σρ,ρ 2 ,σρ 2 }を基底とする標数3の拡大体Fq(ここで、q=3 6n )において、−y p (x p +x q +b)+y q σ+y p ρを計算して得た値をR 0 に代入する第2演算手段と、前記標数3の体Fqにおいて、x p +x q +dを計算して得た値をr 0 に代入し、前記標数3の拡大体Fqにおいて、−r 0 2 +y p y q σ−r 0 ρ−ρ 2 を計算して得た値をR 1 に代入し、R 0 R 1 を計算して得た値を前記R 0 に代入し、前記標数3の体Fqにおいて、−y p を座標値y p に代入し、x q 9 を計算して得た値を座標値x q に代入し、y q 9 を計算して得た値を座標値y q に代入し、(d−b) mod 3を計算して得た値を前記dに代入し、前記標数3の拡大体Fqにおいて、R 0 3 を計算して得た値を前記R 0 に代入する処理を(n+1)/2回繰り返して実行し、最終的に得られたR 0 の値を、点3 (n−1)/2 Pおよび点Qの座標データに基づくηTペアリングηT(3 (n−1)/2 P,Q)の3(n+1)/2乗の値として出力する第3演算手段と、前記第3演算手段が出力した前記ηTペアリングηT(3 (n−1)/2 P,Q)の3 (n+1)/2 乗の値に基づいて、(5)式、(7)式、および(6)式を計算して得たe(P,Q)を、Tateペアリングの値として出力する第4演算手段と、を具備することを特徴とするペアリング計算装置である。 The present invention has been made to solve the above problems, one aspect of the present invention, the elliptic curve E b: y 2 = x 3 -x + b, with respect to the point P on B∈ {-1,1} wherein a respective coordinate data of the point Q on the elliptic curve obtained by calculation on E b the elliptic curve E points on b 3 (n-1) / 2 P and the elliptic curve E b Te (x p, y p), (x q, enter the y q), if the constant b is 1, the coordinate value y p and input means Ru replaced -y p, Characteristic 3 body Fq (here, q = 3 n ) , the first computing means for substituting the value of the constant b into d, the bases σ and ρ satisfy σ 2 = 1, ρ 3 = ρ + b, and {1, σ, ρ, σρ, ρ 2 , σρ 2} Characteristic 3 extension field Fq (here, q = 3 6n) of the base of the the -y p (x p + x q + b) + y q σ + y p ρ The value obtained by calculation and the second calculation means substitutes the R 0, wherein the target number 3 of the body Fq, substitutes the value obtained by calculating the x p + x q + d to r 0, the Characteristic 3 in the extension field Fq, -r 0 2 + y p y q σ-r 0 ρ-ρ 2 to a value obtained by calculation by substituting the R 1, R 0 and R 1 calculates the value obtained by the R substituted into 0, in the target number 3 of the body Fq, the -y p is substituted into the coordinate value y p, the value obtained by calculating the x q 9 by substituting the coordinate value x q, calculates the y q 9 The value obtained by substituting for the coordinate value y q , substituting the value obtained by calculating (d−b) mod 3 for d, and calculating R 0 3 for the extension field Fq of characteristic 3 The process of substituting the obtained value into R 0 is repeated (n + 1) / 2 times, and the finally obtained value of R 0 is expressed as point 3 (n−1) / 2 P and point Q. to coordinate data ΗT pairing ηT to brute (3 (n-1) / 2 P, Q) of 3 (n + 1) / 2 the square of the third arithmetic means for outputting a value, the third the ηT pairing ηT the arithmetic unit has outputted Based on the value of 3 (n + 1) / 2 squared of (3 (n-1) / 2 P, Q), e () obtained by calculating Expressions (5), (7), and (6) P, and Q), a pairing calculation apparatus characterized by comprising a fourth arithmetic means you output as the value of the Tate pairing, the.
また、本発明の一態様は、楕円曲線Eb:y2=x3−x+b,b∈{−1,1}上の2点P,Qの各座標データである(x p ,y p ),(x q ,y q )を入力し、定数bが1である場合は、座標値y p を−y p に置き換える入力手段と、標数3の体Fq(ここで、q=3n)において、前記定数bの値をdに代入する第1演算手段と、基底σおよびρがσ 2 =1,ρ 3 =ρ+bを満たし、{1,σ,ρ,σρ,ρ 2 ,σρ 2 }を基底とする標数3の拡大体Fq(ここで、q=3 6n )において、−y p (x p +x q +b)+y q σ+y p ρを計算して得た値をR 0 に代入する第2演算手段と、前記標数3の体Fqにおいて、x p +x q +dを計算して得た値をr 0 に代入し、−r 0 2 +y p y q σ−r 0 ρ−ρ 2 を計算して得た値をR 1 に代入し、前記標数3の拡大体Fqにおいて、R 0 R 1 を計算して得た値を前記R 0 に代入し、前記標数3の体Fqにおいて、x p 3 を計算して得た値を座標値x p に代入し、y p 3 を計算して得た値を座標値y p に代入し、x q 27 を計算して得た値を座標値x q に代入し、y q 27 を計算して得た値を座標値y q に代入し、(d+b) mod 3を計算して得た値を前記dに代入し、前記標数3の拡大体Fqにおいて、最終回を除きR 0 9 、最終回においてR 0 3 を計算して得た値を前記R 0 に代入する処理を(n+1)/2回繰り返して実行し、最終的に得られたR 0 の値を、前記2点P,Qの座標データに基づくηTペアリングηT(P,Q)の3n乗の値として出力する第3演算手段と、前記第3演算手段が出力した前記ηTペアリングηT(P,Q)の3 n 乗の値から3 n 乗根を計算して得たηT(P,Q)の値に基づいて、(5)式および(6)式を計算して得たe(P,Q)を、Tateペアリングの値として出力する第4演算手段と、を具備することを特徴とするペアリング計算装置である。 Another embodiment of the present invention, the elliptic curve E b: y 2 = x 3 -x + b, a 2-point P, the coordinate data of Q on b∈ {-1,1} (x p, y p) , (x q, y q) enter a, if the constant b is 1, an input unit that Ru replace coordinate values y p to -y p, Characteristic 3 body Fq (here, q = 3 n ) , The first calculation means for substituting the value of the constant b into d, and the bases σ and ρ satisfy σ 2 = 1, ρ 3 = ρ + b, and {1, σ, ρ, σρ, ρ 2 , σρ 2 } In an extension field Fq of characteristic 3 with the basis of (where q = 3 6n ), a value obtained by calculating −y p (x p + x q + b) + y q σ + y p ρ is substituted into R 0 And the value obtained by calculating x p + x q + d in the field Fq of characteristic 3 is substituted into r 0 , and −r 0 2 + y p y q σ−r 0 ρ−ρ 2 The value obtained by calculating is substituted for R 1, and the value obtained by calculating R 0 R 1 is substituted for R 0 in the extension field Fq of characteristic 3 and the field Fq of characteristic 3 The value obtained by calculating x p 3 is substituted into the coordinate value x p , the value obtained by calculating y p 3 is substituted into the coordinate value y p, and the value obtained by calculating x q 27 Is substituted for the coordinate value x q , the value obtained by calculating y q 27 is substituted for the coordinate value y q , the value obtained by calculating (d + b) mod 3 is substituted for the d, and the characteristic in 3 of the extension field Fq, R 0 9 except the last round, the process of substituting a value obtained by calculating the R 0 3 in the R 0 in the last round (n + 1) / repeatedly executed twice, finally the value of R 0 obtained in the two points P, a third arithmetic means for outputting as 3 n-th power value of ηT pairing ηT based on the coordinate data of the Q (P, Q), prior to Based on the value of the serial third arithmetic means said ItaT pairing has output ηT (P, Q) obtained by computing the 3 n root from 3 n-th power value of ηT (P, Q), ( 5) formula and (6) e obtained by calculating the equation (P, Q) of a pairing calculation apparatus characterized by comprising a fourth arithmetic means you output as the value of the Tate pairing, the.
また、本発明の一態様は、コンピュータを、楕円曲線Eb:y2=x3−x+b,b∈{−1,1}上の点Pに対して前記楕円曲線E b 上の計算により得られる前記楕円曲線E b 上の点3 (n−1)/2 Pおよび前記楕円曲線E b 上の点Qの各座標データである(x p ,y p ),(x q ,y q )を入力し、定数bが1である場合は、前記座標値y p を−y p に置き換える入力手段と、標数3の体Fq(ここで、q=3n)において、前記定数bの値をdに代入する第1演算手段と、基底σおよびρがσ 2 =1,ρ 3 =ρ+bを満たし、{1,σ,ρ,σρ,ρ 2 ,σρ 2 }を基底とする標数3の拡大体Fq(ここで、q=3 6n )において、−y p (x p +x q +b)+y q σ+y p ρを計算して得た値をR 0 に代入する第2演算手段と、前記標数3の体Fqにおいて、x p +x q +dを計算して得た値をr 0 に代入し、前記標数3の拡大体Fqにおいて、−r 0 2 +y p y q σ−r 0 ρ−ρ 2 を計算して得た値をR 1 に代入し、R 0 R 1 を計算して得た値を前記R 0 に代入し、前記標数3の体Fqにおいて、−y p を座標値y p に代入し、x q 9 を計算して得た値を座標値x q に代入し、y q 9 を計算して得た値を座標値y q に代入し、(d−b) mod 3を計算して得た値を前記dに代入し、前記標数3の拡大体Fqにおいて、R 0 3 を計算して得た値を前記R 0 に代入する処理を(n+1)/2回繰り返して実行し、最終的に得られたR 0 の値を、点3 (n−1)/2 Pおよび点Qの座標データに基づくηTペアリングηT(3 (n−1)/2 P,Q)の3(n+1)/2乗の値として出力する第3演算手段と、前記第3演算手段が出力した前記ηTペアリングηT(3 (n−1)/2 P,Q)の3 (n+1)/2 乗の値に基づいて、(5)式、(7)式、および(6)式を計算して得たe(P,Q)を、Tateペアリングの値として出力する第4演算手段と、として機能させるためのペアリング計算プログラムである。 In one embodiment of the present invention, a computer is obtained by calculation on the elliptic curve E b with respect to the point P on the elliptic curve E b : y 2 = x 3 −x + b, b∈ {−1, 1}. is the is the coordinate data of the point Q on the elliptic curve E b on the point 3 (n-1) / 2 P and the elliptic curve E b (x p, y p ), the (x q, y q) type, if the constant b is 1, an input unit that Ru replacing the coordinate value y p to -y p, (where, q = 3 n) Characteristic 3 of the body Fq in the value of the constant b A first computing means for substituting d into d, and a characteristic 3 whose bases σ and ρ satisfy σ 2 = 1, ρ 3 = ρ + b, and whose base is {1, σ, ρ, σρ, ρ 2 , σρ 2 } extension field Fq (here, q = 3 6n) of the, to assign -y p a (x p + x q + b ) + y q σ + y p ρ and the obtained calculated value to R 0 A second calculating means, in the target number 3 of the body Fq, substitutes the value obtained by calculating the x p + x q + d to r 0, the extension field Fq of the Characteristic 3, -r 0 2 + y p The value obtained by calculating y q σ−r 0 ρ−ρ 2 is substituted for R 1 , the value obtained by calculating R 0 R 1 is substituted for R 0 , and the field Fq of the characteristic 3 -Y p is substituted for the coordinate value y p , the value obtained by calculating x q 9 is substituted for the coordinate value x q, and the value obtained by calculating y q 9 is substituted for the coordinate value y q Then, (d−b) the value obtained by calculating mod 3 is substituted for d, and in the extension field Fq of characteristic 3, the value obtained by calculating R 0 3 is substituted for R 0 . processing (n + 1) / 2 times repeatedly executed, and the finally obtained value of R 0, the point 3 (n-1) / 2 ηT pairing ηT (3 based on the coordinate data of the P and point Q n-1) / 2 P, Q) of 3 (n + 1) / 2 the square of the third arithmetic means for outputting a value, the third the ηT pairing ηT arithmetic unit has outputted (3 (n-1) / 2 P, based on the value of 3 (n + 1) / 2 square of Q), the equation (5), (7), and (6) were obtained by calculating the equation e (P, Q), Tate pairs a pairing computation program for functioning as a fourth arithmetic means you output as the value of the ring.
また、本発明の一態様は、コンピュータを、楕円曲線Eb:y2=x3−x+b,b∈{−1,1}上の2点P,Qの各座標データである(x p ,y p ),(x q ,y q )を入力し、定数bが1である場合は、座標値y p を−y p に置き換える入力手段と、標数3の体Fq(ここで、q=3n)において、前記定数bの値をdに代入する第1演算手段と、基底σおよびρがσ 2 =1,ρ 3 =ρ+bを満たし、{1,σ,ρ,σρ,ρ 2 ,σρ 2 }を基底とする標数3の拡大体Fq(ここで、q=3 6n )において、−y p (x p +x q +b)+y q σ+y p ρを計算して得た値をR 0 に代入する第2演算手段と、前記標数3の体Fqにおいて、x p +x q +dを計算して得た値をr 0 に代入し、−r 0 2 +y p y q σ−r 0 ρ−ρ 2 を計算して得た値をR 1 に代入し、前記標数3の拡大体Fqにおいて、R 0 R 1 を計算して得た値を前記R 0 に代入し、前記標数3の体Fqにおいて、x p 3 を計算して得た値を座標値x p に代入し、y p 3 を計算して得た値を座標値y p に代入し、x q 27 を計算して得た値を座標値x q に代入し、y q 27 を計算して得た値を座標値y q に代入し、(d+b) mod 3を計算して得た値を前記dに代入し、前記標数3の拡大体Fqにおいて、最終回を除きR 0 9 、最終回においてR 0 3 を計算して得た値を前記R 0 に代入する処理を(n+1)/2回繰り返して実行し、最終的に得られたR 0 の値を、前記2点P,Qの座標データに基づくηTペアリングηT(P,Q)の3n乗の値として出力する第3演算手段と、前記第3演算手段が出力した前記ηTペアリングηT(P,Q)の3 n 乗の値から3 n 乗根を計算して得たηT(P,Q)の値に基づいて、(5)式および(6)式を計算して得たe(P,Q)を、Tateペアリングの値として出力する第4演算手段と、として機能させるためのペアリング計算プログラムである。 Another embodiment of the present invention, a computer, an elliptic curve E b: y 2 = x 3 -x + b, 2 points P on B∈ {-1,1}, which is the coordinate data of Q (x p, y p), (x q, enter the y q), if the constant b is 1, an input unit that Ru replace coordinate values y p to -y p, Characteristic 3 body Fq (here, q = 3 n ) , the first computing means for substituting the value of the constant b into d, the bases σ and ρ satisfy σ 2 = 1, ρ 3 = ρ + b, and {1, σ, ρ, σρ, ρ 2 , Σρ 2 } based on an extension field Fq of characteristic 3 (where q = 3 6n ), the value obtained by calculating −y p (x p + x q + b) + y q σ + y p ρ is R In the second arithmetic means for substituting for 0 and the field Fq of characteristic 3 , substituting the value obtained by calculating x p + x q + d for r 0 , −r 0 2 + y p y q σ-r 0 ρ-ρ 2 of the calculated and obtained values are substituted into R 1, the in the extension field Fq of Characteristic 3, substitutes the value obtained by calculating the R 0 R 1 to the R 0 In the field Fq of characteristic 3, the value obtained by calculating x p 3 is substituted into the coordinate value x p , the value obtained by calculating y p 3 is substituted into the coordinate value y p , and x q The value obtained by calculating 27 is substituted for the coordinate value x q , the value obtained by calculating y q 27 is substituted for the coordinate value y q , and the value obtained by calculating (d + b) mod 3 is substituted into d, the extension field Fq of the Characteristic 3, R 0 9 except the last round, the value obtained by calculating the R 0 3 in the final times a process of substituting the R 0 (n + 1) / 2 Repeat run times, the finally obtained value of R 0, the outputs Examples 3 n-th power values of the two points P, ItaT pairing ItaT based on the coordinate data of the Q (P, Q) 3 and calculating means, based on the value of the third arithmetic means said ItaT pairing has output ηT (P, Q) obtained by computing the 3 n root from 3 n-th power value of ηT (P, Q) Te, (5) and (6) were obtained by calculating the equation e (P, Q), in the pairing computation program for functioning as a fourth arithmetic means, you output as the value of the Tate pairing is there.
本発明によれば、ηTペアリングを求める従来のアルゴリズム(図11のアルゴリズム2)で計算コストが大きくなる要因であった3乗根の計算を行う必要がなくなるため、高速にηTペアリングの計算を行うことができる。ηTペアリングが求まると、(6)式を用いることでTateペアリングを求めることが可能であるため、Tateペアリングの計算も高速に行うことができる。
According to the present invention, it is not necessary to calculate the cube root, which is a factor that increases the calculation cost in the conventional algorithm for calculating ηT pairing (
以下、図面を参照して本発明の実施形態について説明する。
まず、図11に示した従来のアルゴリズム2を高速化したアルゴリズムに関して図1を参照して説明する。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
First, an algorithm obtained by speeding up the
図1のアルゴリズム3は、ηT(P,Q)の3(n+1)/2乗を求めるアルゴリズムであり、アルゴリズム2と異なり、ループの終端(ステップ35−d)でアルゴリズム1の各値(xq、yq、xp、yp)が3i+1乗になる。3i+1乗を求める目的で、ステップ31−b、ステップ33、ステップ35−a、ステップ35−cにおいて基底の調整を行っている。
The
アルゴリズム3の処理に関して詳細に説明する。楕円曲線Eb上の2点P(xp,yp)及びQ(xq,yq)を入力すると、b=1の場合には−ypの値をypに代入する(ステップ31−a)。続いて、体Fq(q=3n)上でbの値をdに代入する(ステップ31−b)。
The processing of
続いて、拡大体Fq(q=36n)上でーyp(xp+xq+b)+yqσ+ypρの演算を行い、結果をR0に代入する(ステップ31−c)。この後、ステップ32〜36のループ演算を(n+1)/2回行う。ループ演算においては、まず体Fq(q=3n)上でxp+xq+dの演算を行い、結果をγ0に代入する(ステップ33)。
Subsequently, −y p (x p + x q + b) + y q σ + y p ρ is calculated on the extension field Fq (q = 36 n ), and the result is substituted into R 0 (step 31-c). Thereafter, the loop calculation of
続いて、拡大体Fq(q=36n)上で−γ0 2+ypyqσ−γ0ρ―ρ2を演算し、R1に代入する(ステップ34−a)。その後、拡大体Fq(q=36n)上でR0R1を演算し、結果をR0に代入する(ステップ34−b)。
Then, it calculates the -γ 0 2 + y p y q σ-
続いて、拡大体Fq(q=3n)上で−ypの値をypに代入する(ステップ35−a)。その後、拡大体Fq(q=3n)上でxq 9を演算し、その結果をxqに代入する。さらに、yq 9を演算し、その結果をyqに代入する(ステップ35−b)。その後、(d−b)に対してmod3を演算し、結果をdに代入する(ステップ35−c)。その後、拡大体Fq(q=36n)上でR0 3を演算し、結果をR0に代入する(ステップ35−d)。 Subsequently, it substitutes the value of -y p to y p on an extension field Fq (q = 3 n) (Step 35-a). Thereafter, x q 9 is calculated on the extension field Fq (q = 3 n ), and the result is substituted into x q . Further, y q 9 is calculated and the result is substituted into y q (step 35-b). Thereafter, mod3 is calculated for (db), and the result is substituted for d (step 35-c). Thereafter, R 0 3 is calculated on the extension field Fq (q = 3 6n ), and the result is substituted into R 0 (step 35-d).
ループ演算が終了すると、R0の値をηT(P,Q)の3(n+1)/2乗として出力する。標数3の体Fq(q=3n)における演算の時間的コストは、数学的性質のため、3乗算の時間的コストが乗算や3乗根の時間的コストより小さいという特徴がある。図2は乗算の時間コストを基準(M)として各演算の時間コストを示した図である。
When the loop operation is completed, the value of R 0 is output as 3 (n + 1) / 2 to the power of ηT (P, Q). The time cost of the computation in the
図2に示した時間コストに基づいて、アルゴリズム3の計算量を見積もると、(10.25n+11.25)Mとなる。一方、従来のアルゴリズム2の計算量は、(12.05n+13.05)Mとなる。一般的にn=97が用いられることが多いが、n=97ではアルゴリズム3はアルゴリズム2より約15%軽量化される。
When the calculation amount of the
なお、アルゴリズム3の出力はηT(P,Q)の3(n+1)/2乗であるため、Tateペアリングe(P,Q)を求める演算が必要であるが、この演算は次の手順により容易に求められる。ηT(P,Q)Wの双線形より、(7)式が成立する。
Since the output of
なお、前述の通りηT(P,Q)Wも双線形性を満たすため、暗号技術に応用することが可能である。暗号技術にηT(P,Q)Wを用いる場合には、(6)式の演算を行う必要はない。 Note that ηT (P, Q) W also satisfies bilinearity as described above, and can be applied to encryption technology. When ηT (P, Q) W is used for the cryptographic technique, it is not necessary to perform the calculation of equation (6).
続いて、アルゴリズム3の処理を行うペアリング計算装置について説明する。図3はペアリング計算装置の構成を示す構成図である。図3において、ペアリング計算装置30の有限体演算器301は、アルゴリズム3で行う演算を実行するハードウェアであり、二値の論理で演算を行う汎用のCPU(Central Processing Unit)であってもよいし、標数3の体での演算処理に特化した専用のハードウェアであってもよい。
Next, a pairing calculation apparatus that performs processing of
コンソールインタフェース302は、外部の装置(図示せず)からペアリング計算装置30を制御する際に用いるインタフェースである。通信インタフェース303は、入力ポートからデータを入力し、出力ポートへ演算結果を出力するインタフェースである。
The
メモリ304は、データを記憶するメモリである。メモリ304には、アルゴリズム3を実行するプルグラムである演算器制御プログラム305が記憶されており、また、有限体301における演算結果を格納する領域である演算データ記憶部306が確保されている。
The
入力ポートからP,Qのデータが入力されると、通信インタフェース303は、P,Qのデータを有限体演算器301に出力する。有限体演算器301は、演算器制御プログラム306にしたがってアルゴリズム3の処理を実行し、その結果(ηT(P,Q)の3(n+1)/2乗)を通信インタフェース303へ出力する。通信インタフェース303は、ηT(P,Q)の3(n+1)/2乗の演算結果を出力ポートから出力する。
When P and Q data is input from the input port, the
次に、図11に示した従来のアルゴリズム2を高速化した別のアルゴリズムに関して図4を参照して説明する。
Next, another algorithm that speeds up the
図4のアルゴリズム4は、ηT(P,Q)の3n乗を求めるアルゴリズムであり、アルゴリズム2と異なり、ループの終端(ステップ45−d)でアルゴリズム1の各値(xq、yq、xp、yp)が32i+2乗になる。32i+2乗を求める目的で、ステップ41−b、ステップ43、ステップ45−cにおいて基底の調整を行っている。
Algorithm 4 in FIG. 4 is an algorithm for obtaining the multiplication 3 n of ηT (P, Q), unlike the
アルゴリズム4の処理に関して詳細に説明する。楕円曲線Eb上の2点P(xp,yp)及びQ(xq,yq)を入力すると、b=1の場合には−ypの値をypに代入する(ステップ41−a)。続いて、体Fq(q=3n)上でbの値をdに代入する(ステップ41−b)。 The processing of algorithm 4 will be described in detail. Two points on the elliptic curve E b P (x p, y p) and Q (x q, y q) If you enter, in the case of b = 1 substitutes the value of -y p to y p (Step 41 -A). Subsequently, the value of b is substituted for d on the field Fq (q = 3 n ) (step 41-b).
続いて、拡大体Fq(q=36n)上でーyp(xp+xq+b)+yqσ+ypρの演算を行い、結果をR0に代入する(ステップ41−c)。この後、ステップ42〜46のループ演算を(n+1)/2回行う。ループ演算においては、まず体Fq(q=3n)上でxp+xq+dの演算を行い、結果をγ0に代入する(ステップ43)。
Subsequently, −y p (x p + x q + b) + y q σ + y p ρ is calculated on the extension field Fq (q = 36 n ), and the result is substituted into R 0 (step 41-c). Thereafter, the loop calculation of
続いて、拡大体Fq(q=36n)上で−γ0 2+ypyqσ−γ0ρ―ρ2を演算し、R1に代入する(ステップ44−a)。この後、拡大体Fq(q=36n)上でR0R1を演算し、結果をR0に代入する(ステップ44−b)。
Then, it calculates the -γ 0 2 + y p y q σ-
続いて、拡大体Fq(q=3n)上でxp 3の演算を行い、結果をxpに代入する。さらに、yp 3の演算を行い、結果をypに代入する(ステップ45−a)。この後、拡大体Fq(q=3n)上でxq 27を演算し、その結果をxqに代入する。さらに、yq 27を演算し、その結果をyqに代入する(ステップ45−b)。この後、(d+b)に対してmod3を演算し、結果をdに代入する(ステップ45−c)。 Subsequently, the calculation of x p 3 is performed on the extension field Fq (q = 3 n ), and the result is substituted into x p . Furthermore, it performs calculation of y p 3, which assigns the result to y p (Step 45-a). Thereafter, x q 27 is calculated on the extension field Fq (q = 3 n ), and the result is substituted into x q . Further, y q 27 is calculated, and the result is substituted into y q (step 45-b). Thereafter, mod3 is calculated for (d + b), and the result is substituted for d (step 45-c).
続いて、i<(n−1)/2の場合は、拡大体Fq(q=36n)上でR0 9を演算し、結果をR0に代入する。一方、i=(n−1)/2の場合は、R0 3を演算し、結果をR0に代入する(ステップ45−d)。ループ演算が終了すると、R0の値をηT(P,Q)の3n乗として出力する。 Subsequently, when i <(n−1) / 2, R 0 9 is calculated on the extension field Fq (q = 3 6n ), and the result is substituted into R 0 . On the other hand, if i = (n−1) / 2, R 0 3 is calculated and the result is substituted into R 0 (step 45-d). When the loop calculation is completed, it outputs the value of R 0 as th power 3 n of ηT (P, Q).
図2に示した時間コストに基づいて、アルゴリズム4の計算量を見積もると、(10.5n+11.2)Mとなる。一方、従来のアルゴリズム2の計算量は、(12.05n+13.05)Mである。一般的にn=97が用いられることが多いが、n=97ではアルゴリズム4はアルゴリズム2より約13%軽量化される。
When the calculation amount of the algorithm 4 is estimated based on the time cost shown in FIG. 2, it is (10.5n + 11.2) M. On the other hand, the calculation amount of the
なお、アルゴリズム3の出力はηT(P,Q)の3n乗であるため、Tateペアリングe(P,Q)を求める演算が必要であるが、この演算は次の手順により容易に求められる。アルゴリズム3により求めたηT(P,Q)の3n乗に対して3n乗根(計算コストは小さい)の演算を行い、さらにW乗の計算を行うことでηT(P,Q)Wが求められる。これを(6)式に代入することでTateペアリングe(P,Q)が求まる。
Since the output of the
なお、前述の通りηT(P,Q)Wも双線形性を満たすため、暗号技術に応用することが可能である。暗号技術にηT(P,Q)Wを用いる場合には、(6)式の演算を行う必要はない。アルゴリズム4の処理を行うペアリング計算装置は、図3に示したペアリング計算装置30の演算器制御プログラム305を、アルゴリズム4を実行するプログラムとすることで実現できる。
Note that ηT (P, Q) W also satisfies bilinearity as described above, and can be applied to encryption technology. When ηT (P, Q) W is used for the cryptographic technique, it is not necessary to perform the calculation of equation (6). The pairing calculation device that performs the processing of the algorithm 4 can be realized by making the arithmetic
次に、二つのTateペアリングの値e(P,Q)とe(R,S)とが一致するかを検証するDH(Diffie-Hellman)検証を高速化したアルゴリズムについて説明する。従来のDH検証は、e(P,Q)とe(R,S)とをそれぞれ計算してから一致判定を行っていたため、図12で前述したとおり時間がかかっていた。また、e(P,Q)及びe(R,S)を従来のアルゴリズム2で求まるηTペアリングから求めることで高速化したとしても、アルゴリズム2には3乗根の計算が必要であるため、時間がかかる。
Next, an algorithm that speeds up DH (Diffie-Hellman) verification that verifies whether two Tate pairing values e (P, Q) and e (R, S) match will be described. The conventional DH verification takes time as described above with reference to FIG. 12 because the coincidence determination is performed after calculating e (P, Q) and e (R, S). Further, even if e (P, Q) and e (R, S) are speeded up by obtaining from ηT pairing obtained by the
DH検証においては、e(P,Q)=e(R,S)を検証する必要があるが、Tateペアリングの双線形性よりe(R,S)=e(−R,S)−1であるため、(8)式が成立する。したがって、DH検証では、e(P,Q)・e(−R,S)=1であるか否かを検証すればよい。 In DH verification, it is necessary to verify e (P, Q) = e (R, S), but e (R, S) = e (−R, S) −1 due to the bilinearity of Tate pairing. Therefore, Equation (8) is established. Therefore, in the DH verification, it is only necessary to verify whether e (P, Q) · e (−R, S) = 1.
e(P,Q)・e(−R,S)=1であるか否かを検証するアルゴリズムを、図5を参照して説明する。図5は図10のアルゴリズム1に基づくDH検証のアルゴリズムである。
An algorithm for verifying whether or not e (P, Q) · e (−R, S) = 1 will be described with reference to FIG. FIG. 5 shows a DH verification algorithm based on the
R0(0)をアルゴリズム1に(P0,Q0)を入力した時のR0、R0(1)をアルゴリズム1に(P1,Q1)を入力した時のR0、R1(0)をアルゴリズム1に(P0,Q0)を入力した時のR1、R1(1)をアルゴリズム1に(P1,Q1)を入力した時のR1とおくと、アルゴリズム5はR0(0)R0(1)を求めるアルゴリズムである。
R 0 (0) to algorithm 1 (P 0, Q 0) R 0 when you enter, R 0 (1) to the algorithm 1 (P 1, Q 1) R 0 when you enter, R 1 When (0) is R 1 when (P 0 , Q 0 ) is input to
アルゴリズム5の処理に関して詳細に説明する。楕円曲線Eb上の4点P0(xp0,yp0)、Q0(xq0,yq0)、P1(xp1,yp1)及びQ1(xq1,yq1)を入力すると、まず拡大体Fq(q=36n)上でR0に1を代入する(ステップ51−a)。 The processing of algorithm 5 will be described in detail. When four points P 0 (x p0 , y p0 ), Q 0 (x q0 , y q0 ), P 1 (x p1 , y p1 ) and Q 1 (x q1 , y q1 ) on the elliptic curve E b are input First, 1 is assigned to R 0 on the extension field Fq (q = 3 6n ) (step 51-a).
続いて、体Fq(q=3n)上でxq0 3を演算し、結果をxqoに代入する。同様に、ypo 3の演算結果をyp0に、xq1 3の演算結果をxq1に、yq1 3の演算結果をyq1にそれぞれ代入する(ステップ51−b)。さらに、bnに対してmod3を演算し、結果をdに代入する(ステップ51−c)。 Subsequently, x q0 3 is calculated on the field Fq (q = 3 n ), and the result is substituted into x qo . Similarly, the calculation result of y po 3 to y p0, the operation result of x q1 3 in x q1, if the values are the calculation results of the y q1 3 to y q1 (step 51-b). Further, mod3 is calculated for bn, and the result is substituted for d (step 51-c).
この後、ステップ52〜56のループ演算をn回行う。ループ演算においては、まず体Fq(q=3n)上でxp0 9を演算し、結果をxpoに代入する。同様に、yp0 9の演算結果をyp0に、xp1 9の演算結果をxp1に、yp1 9の演算結果をyp1にそれぞれ代入する(ステップ53−a)。
Thereafter, the loop calculation of
続いて、S(xp0,yp0,xq0,yq0,xp1,yp1,xq1,yq1,d
)を演算し、結果を(λ0,λ1,λ2,λ3,λ4,λ5)に代入する(ステップ53−b)。ここで、Sはサブアルゴリズムであり、その詳細な処理は後述する。(λ0,λ1,λ2,λ3,λ4,λ5)をR1に代入する(ステップ53−c)。ここで求められるR1は、上述したR1(0)R1(1)に相当する。
Subsequently, S (x p0 , y p0 , x q0 , y q0 , x p1 , y p1 , x q1 , y q1 , d
) And substitute the result into (λ 0 , λ 1 , λ 2 , λ 3 , λ 4 , λ 5 ) (step 53-b). Here, S is a sub-algorithm, and detailed processing thereof will be described later. (Λ 0 , λ 1 , λ 2 , λ 3 , λ 4 , λ 5 ) is substituted for R 1 (step 53-c). R 1 obtained here corresponds to R 1 (0) R 1 (1) described above.
続いて、拡大体Fq(q=36n)上でR0 3の演算を行い、結果をR0に代入する(ステップ54−a)。さらに、R0R1の演算を行い、結果をR0に代入する(ステップ54−b)。この後、体Fq(q=3n)上で−yq0をyq0に、−yq1をyq1にそれぞれ代入する(ステップ55−a)。その後、(d−b)に対してmod3を演算し、結果をdに代入する(ステップ55−b)。 Subsequently, R 0 3 is calculated on the extension field Fq (q = 3 6n ), and the result is assigned to R 0 (step 54-a). Further, R 0 R 1 is calculated and the result is substituted into R 0 (step 54-b). Thereafter, -y q0 is substituted into y q0 and -y q1 is substituted into y q1 on the field Fq (q = 3 n ) (step 55-a). Thereafter, mod3 is calculated for (d−b), and the result is substituted for d (step 55−b).
ループ演算が終了すると、R0の値を<P0,ψ(Q0)>N・<P1,ψ(Q1)>N(N=33n+1)として出力する。なお、アルゴリズム5においては、(2)式におけるNは33n+1であるが、このとき、(36n−1)/(33n+1)=33n−1であるため、(9)式が成立する。 When the loop calculation is completed, the value of R 0 is output as <P 0 , ψ (Q 0 )> N · <P 1 , ψ (Q 1 )> N (N = 3 3n +1). In Algorithm 5, N in the equation (2) is 3 3n +1. At this time, since (3 6n −1) / (3 3n +1) = 3 3n −1, the equation (9) is To establish.
続いて、ステップ53−bで用いたサブアルゴリズムSの処理について図6を参照して説明する。サブアルゴリズムでは、xp0,yp0,xq0,yq0,xp1,yp1,xq1,yq1,dを入力し、体Fq(q=3n)上でxp0+xq0+dを演算し、結果をγ0に代入する。同様に、xp1+xq1+dを演算し、結果をγ1に代入する(ステップS01)。 Subsequently, the processing of the sub-algorithm S used in step 53-b will be described with reference to FIG. In the sub-algorithm, x p0 , y p0 , x q0 , y q0 , x p1 , y p1 , x q1 , y q1 , d are input, and x p0 + x q0 + d is calculated on the field Fq (q = 3 n ). And assign the result to γ 0 . Similarly, x p1 + x q1 + d is calculated, and the result is substituted into γ 1 (step S01).
続いて、yp0yq0の演算結果をγ2に、yp1yq1の演算結果をγ3にそれぞれ代入する(ステップS02)。この後、γ0γ1を演算し、結果をγ4に代入する(ステップS03)。この後、γ2γ3を演算し、結果をγ5に代入する(ステップS04)。γ2+γ0の演算結果をγ6に、γ3+γ1の演算結果をγ7にそれぞれ代入する(ステップS05)。この後、γ0+γ1を演算し、結果をγ8に代入する(ステップS06)。 Subsequently, the calculation result of y p0 y q0 is assigned to γ 2 and the calculation result of y p1 y q1 is assigned to γ 3 (step S02). Thereafter, γ 0 γ 1 is calculated, and the result is substituted into γ 4 (step S03). Thereafter, γ 2 γ 3 is calculated, and the result is substituted into γ 5 (step S04). The calculation result of γ 2 + γ 0 is assigned to γ 6 and the calculation result of γ 3 + γ 1 is assigned to γ 7 (step S05). Thereafter, γ 0 + γ 1 is calculated, and the result is substituted into γ 8 (step S06).
続いて、体Fq(q=3n)上でγ6γ7−γ4−γ5を演算し、結果をλ3に代入する(ステップS07)。この後、γ2+γ3を演算し、結果をλ5に代入する(ステップS08)。この後、γ4 2−γ5+bγ8を演算し、λ0に代入するステップS09)。さらに、γ8λ3−γ4λ5を演算し、結果をλ1に代入する(ステップS10)。 Subsequently, γ 6 γ 7 -γ 4 -γ 5 is calculated on the field Fq (q = 3 n ), and the result is substituted into λ 3 (step S07). Thereafter, γ 2 + γ 3 is calculated, and the result is substituted into λ 5 (step S08). Thereafter, γ 4 2 −γ 5 + bγ 8 is calculated and substituted for λ0 (step S09). Furthermore, [gamma] 8 [ lambda] 3- [ gamma] 4 [ lambda] 5 is calculated and the result is substituted into [lambda] 1 (step S10).
続いて、体Fq(q=3n)上で(γ4+1)γ8+bを演算し、結果をλ2に代入する(ステップS11)。その後、γ8 2−γ4+1を演算し、結果をλ4に代入する(ステップS12)。以上の処理が終了すると、(λ0,λ1,λ2,λ3,λ4,λ5)を出力する。 Subsequently, (γ 4 +1) γ 8 + b is calculated on the field Fq (q = 3 n ), and the result is substituted into λ 2 (step S11). Thereafter, γ 8 2 −γ 4 +1 is calculated, and the result is substituted into λ 4 (step S12). When the above processing is completed, (λ 0 , λ 1 , λ 2 , λ 3 , λ 4 , λ 5 ) is output.
図2に示した時間コストに基づいて、アルゴリズム5の計算量を見積もると、(28.3n+0.5)Mとなる。一方、e(P,Q)とe(R,S)のそれぞれに対して従来のアルゴリズム1を用いた後にべき乗計算を行い、DH検証を行う場合の時間コストは、(41n+18.1)M+2Fである。
When the calculation amount of the algorithm 5 is estimated based on the time cost shown in FIG. 2, it is (28.3n + 0.5) M. On the other hand, the time cost when performing exponentiation calculation using the
ここで、Fはべき乗の計算コストであり、1M〜1000Mである。一般的にn=97が用いられることが多いが、n=97ではアルゴリズム4はアルゴリズム1より約30%軽量化される。
Here, F is a power calculation cost, which is 1M to 1000M. In general, n = 97 is often used, but when n = 97, the algorithm 4 is approximately 30% lighter than the
続いて、アルゴリズム5の処理を行うペアリング計算装置について説明する。図7はペアリング装置の構成を示す構成図である。図7において、図3と同様の構成に対しては同じ符号を付与し、詳細な説明は省略する。ペアリング計算装置31の演算器制御プログラム705は、アルゴリズム5を実行するプログラムである。
Next, a pairing calculation apparatus that performs processing of algorithm 5 will be described. FIG. 7 is a configuration diagram showing the configuration of the pairing device. In FIG. 7, the same components as those in FIG. 3 are denoted by the same reference numerals, and detailed description thereof is omitted. The computing
入力ポートからP,Q,R,Sのデータが入力されると、通信インタフェース303は、P,Q,R,Sのデータを有限体演算器301に出力する。有限体演算器301は、Rを−Rに変換した上で演算器制御プログラム705にしたがってアルゴリズム5の処理を実行し、その結果(<P0,ψ(Q0)>N・<P1,ψ(Q1)>N(N=33n+1))がFq(q=33n)の元であるか否かを判定する(判定手段)。
When P, Q, R, and S data is input from the input port, the
Fq(q=33n)の元である場合には、DH判定の結果は一致したと判定し「Yes」のデータを通信インタフェース303へ出力する。一方、Fq(q=33n)の元でない場合には、DH判定の結果は一致しないと判定し「No」のデータを通信インタフェース303へ出力する。通信インタフェース303は、「Yes」又は「No」のデータを出力ポートから出力する。
If it is an element of Fq (q = 3 3n ), the result of the DH determination is determined to match, and “Yes” data is output to the
次に、二つのTateペアリングの値e(P,Q)とe(R,S)とが一致するかを検証するDH(Diffie-Hellman)検証を高速化した別のアルゴリズムについて説明する。図8はアルゴリズム3に基づくDH検証のアルゴリズムであり、ηTペアリングのDH検証を行うものであるが、(8)式が成立することを利用したアルゴリズムである点はアルゴリズム5と同様である。
Next, another algorithm that speeds up DH (Diffie-Hellman) verification for verifying whether two Tate pairing values e (P, Q) and e (R, S) match will be described. FIG. 8 shows a DH verification algorithm based on the
アルゴリズム6の処理に関して詳細に説明する。楕円曲線Eb上の4点P0(xp0,yp0)、Q0(xq0,yq0)、P1(xp1,yp1)及びQ1(xq1,yq1)を入力すると、まずb=1の場合には−yp0の値をyp0に、−yp1の値をyp1にそれぞれ代入する(ステップ61−a)。続いて、体Fq(q=3n)上でbの値をdに代入する(ステップ61−b)。
The processing of
続いて、体Fq(q=36n)上でyp0(xp0+xq0+b)+yq0σ+yp0ρを演算し、結果をR0に代入する。さらに、yp1(xp1+xq1+b)+yq1σ+yp1ρを演算し、結果をR1に代入する(ステップ61−c)。その後、R0R1を演算し、結果をR0に代入する(ステップ61−d)。 Subsequently, y p0 (x p0 + x q0 + b) + y q0 σ + y p0 ρ is calculated on the field Fq (q = 36 n ), and the result is substituted into R 0 . Further, y p1 (x p1 + x q1 + b) + y q1 σ + y p1 ρ is calculated, and the result is substituted into R 1 (step 61-c). Thereafter, R 0 R 1 is calculated, and the result is substituted into R 0 (step 61-d).
この後、ステップ62〜66のループ演算を(n+1)/2回行う。ループ演算においては、まず、S(xp0,yp0,xq0,yq0,xp1,yp1,xq1,yq1,d)を演算し、結果を(λ0,λ1,λ2,λ3,λ4,λ5)に代入する(ステップ63−a)。その後、(λ0,λ1,λ2,−λ3,λ4,−λ5)の値をR1に代入する(ステップ63−b)。
Thereafter, the loop calculation of
続いて、拡大体Fq(q=36n)上でR0R1を演算し、結果をR0に代入する(ステップ64)。その後、xq0 9を演算し、結果をxq0に代入する。同様に、yq0 9の演算結果をyq0に、xq1 9の演算結果をxq1に、yq1 9の演算結果をyq1にそれぞれ代入する(ステップ65−a)。さらに、(d−b)に対してmod3を演算し、結果をdに代入する(ステップ65−b)。 Subsequently, R 0 R 1 is calculated on the extension field Fq (q = 3 6n ), and the result is substituted into R 0 (step 64). Thereafter, x q0 9 is calculated, and the result is substituted into x q0 . Similarly, y q0 9 operation result of the y q0, the operation result of x q1 9 in x q1, if the values are the calculation results of the y q1 9 to y q1 (step 65-a). Further, mod3 is calculated for (d−b), and the result is substituted for d (step 65−b).
続いて、体Fq(q=36n)上でR0 3を演算し、結果をR0に代入する(ステップ65−c)。ループ演算が終了すると、R0の値を(ηT(P0,Q0)・ηT(P1,Q1))の3(n+1)/2乗として出力する。アルゴリズム6から出力されるR0に対して(10)式のべき乗計算を行った後にDH検証の判定を行う。
Subsequently, R 0 3 is calculated on the field Fq (q = 3 6n ), and the result is assigned to R 0 (step 65-c). When the loop operation is completed, the value of R 0 is output as 3 (n + 1) / 2 square of (ηT (P 0 , Q 0 ) · ηT (P 1 , Q 1 )). The DH verification is determined after the power calculation of Expression (10) is performed on R 0 output from the
図2に示した時間コストに基づいて、アルゴリズム6の計算量を見積もると、(14.7n+34.25)M+Fとなる。一方、ηT(P,Q)とηT(R,S)のそれぞれに対してアルゴリズム3を用いた後にべき乗計算を行い、DH検証を行う場合の時間コストは、(24.1n+26.1)M+2Fである。一般的にn=97が用いられることが多いが、n=97ではアルゴリズム6はアルゴリズム2より約40%軽量化される。
If the calculation amount of the
本発明のアルゴリズム3及び4では、標数3の体における演算で時間コストの小さい3乗算の計算を増やす代わりに、3乗根の演算を行わないようにしたため、Tateペアリング(又はηTペアリング)を高速に計算することが出来る。さらに、本発明のアルゴリズム5及び6では、3乗根の演算を行わないだけでなく、(8)式の性質を利用してDH検証を行うことで計算量を削減し、高速にDH検証を行うことができる。
In the
以上、本発明の実施形態を詳述してきたが、具体的な構成は本実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。 As mentioned above, although embodiment of this invention was explained in full detail, the concrete structure is not restricted to this embodiment, The design change etc. of the range which does not deviate from the summary of this invention are included.
本発明は、IDを公開鍵とするIDベース暗号やブロードキャスト暗号、さらに署名長が従来の半分であるshort signatureといった署名システムにおいて、署名や署名検証の段階でTateペアリング又はηTペアリングを計算する装置に用いて好適である。 The present invention calculates Tate pairing or ηT pairing at the stage of signature or signature verification in a signature system such as ID-based encryption or broadcast encryption using an ID as a public key, and a short signature whose signature length is half that of the prior art. It is suitable for use in an apparatus.
30…ペアリング計算装置、301…有限体演算器、302…コンソールI/O、303…通信インタフェース、304…メモリ、305…演算器制御プログラム、306…演算データ記憶部。
DESCRIPTION OF
Claims (4)
標数3の体Fq(ここで、q=3n)において、前記定数bの値をdに代入する第1演算手段と、
基底σおよびρがσ 2 =1,ρ 3 =ρ+bを満たし、{1,σ,ρ,σρ,ρ 2 ,σρ 2 }を基底とする標数3の拡大体Fq(ここで、q=3 6n )において、−y p (x p +x q +b)+y q σ+y p ρを計算して得た値をR 0 に代入する第2演算手段と、
前記標数3の体Fqにおいて、x p +x q +dを計算して得た値をr 0 に代入し、前記標数3の拡大体Fqにおいて、−r 0 2 +y p y q σ−r 0 ρ−ρ 2 を計算して得た値をR 1 に代入し、R 0 R 1 を計算して得た値を前記R 0 に代入し、前記標数3の体Fqにおいて、−y p を座標値y p に代入し、x q 9 を計算して得た値を座標値x q に代入し、y q 9 を計算して得た値を座標値y q に代入し、(d−b) mod 3を計算して得た値を前記dに代入し、前記標数3の拡大体Fqにおいて、R 0 3 を計算して得た値を前記R 0 に代入する処理を(n+1)/2回繰り返して実行し、最終的に得られたR 0 の値を、点3 (n−1)/2 Pおよび点Qの座標データに基づくηTペアリングηT(3 (n−1)/2 P,Q)の3(n+1)/2乗の値として出力する第3演算手段と、
前記第3演算手段が出力した前記ηTペアリングηT(3 (n−1)/2 P,Q)の3 (n+1)/2 乗の値に基づいて、
を具備することを特徴とするペアリング計算装置。 Elliptic curve E b : y 2 = x 3 −x + b, point 3 on the elliptic curve E b obtained by calculation on the elliptic curve E b with respect to the point P on bε {−1,1} (n -1) is / 2 P and the coordinate data of a point Q on the elliptic curve E b (x p, y p ), type a (x q, y q), if the constant b is 1, input means for Ru replaced -y p the coordinates y p,
First arithmetic means for substituting the value of the constant b for d in a field 3 of characteristic number Fq (where q = 3 n ) ;
Bases σ and ρ satisfy σ 2 = 1, ρ 3 = ρ + b, and an extension field Fq of characteristic 3 with {1, σ, ρ, σρ, ρ 2 , σρ 2 } as a basis, where q = 3 6n ), second calculating means for substituting the value obtained by calculating -y p (x p + x q + b) + y q σ + y p ρ into R 0 ;
In the target number 3 of the body Fq, x p + x q + calculated to give a value of d is substituted into r 0, the extension field Fq of the Characteristic 3, -r 0 2 + y p y q σ-r 0 the value obtained by calculating the [rho-[rho 2 is substituted in R 1, it substitutes the value obtained by calculating the R 0 R 1 to the R 0, in the target number 3 of the body Fq, the -y p Substituting for the coordinate value y p , substituting the value obtained by calculating x q 9 for the coordinate value x q , substituting the value obtained by calculating y q 9 for the coordinate value y q , (d−b ) the mod 3 assigns the calculated and obtained value to the d, wherein the extension field Fq of Characteristic 3, the process of substituting a value obtained by calculating the R 0 3 to the R 0 (n + 1) / The value of R 0 finally obtained is repeated twice, and ηT pairing ηT ( 3 (n−1) / 2 based on the coordinate data of point 3 (n−1) / 2 P and point Q is obtained. P, Q) third computing means for outputting as a value of 3 (n + 1) / 2 square;
Based on the value of 3 (n + 1) / 2 squared of the ηT pairing ηT (3 (n−1) / 2 P, Q) output by the third calculation means ,
A pairing calculation apparatus comprising:
標数3の体Fq(ここで、q=3n)において、前記定数bの値をdに代入する第1演算手段と、
基底σおよびρがσ 2 =1,ρ 3 =ρ+bを満たし、{1,σ,ρ,σρ,ρ 2 ,σρ 2 }を基底とする標数3の拡大体Fq(ここで、q=3 6n )において、−y p (x p +x q +b)+y q σ+y p ρを計算して得た値をR 0 に代入する第2演算手段と、
前記標数3の体Fqにおいて、x p +x q +dを計算して得た値をr 0 に代入し、−r 0 2 +y p y q σ−r 0 ρ−ρ 2 を計算して得た値をR 1 に代入し、前記標数3の拡大体Fqにおいて、R 0 R 1 を計算して得た値を前記R 0 に代入し、前記標数3の体Fqにおいて、x p 3 を計算して得た値を座標値x p に代入し、y p 3 を計算して得た値を座標値y p に代入し、x q 27 を計算して得た値を座標値x q に代入し、y q 27 を計算して得た値を座標値y q に代入し、(d+b) mod 3を計算して得た値を前記dに代入し、前記標数3の拡大体Fqにおいて、最終回を除きR 0 9 、最終回においてR 0 3 を計算して得た値を前記R 0 に代入する処理を(n+1)/2回繰り返して実行し、最終的に得られたR 0 の値を、前記2点P,Qの座標データに基づくηTペアリングηT(P,Q)の3n乗の値として出力する第3演算手段と、
前記第3演算手段が出力した前記ηTペアリングηT(P,Q)の3 n 乗の値から3 n 乗根を計算して得たηT(P,Q)の値に基づいて、
を具備することを特徴とするペアリング計算装置。 Elliptic curve E b: y 2 = x 3 -x + b, a 2-point P, the coordinate data of Q on b∈ {-1,1} (x p, y p), the (x q, y q) type, if the constant b is 1, an input means for Ru replace coordinate values y p to -y p,
First arithmetic means for substituting the value of the constant b for d in a field 3 of characteristic number Fq (where q = 3 n ) ;
Bases σ and ρ satisfy σ 2 = 1, ρ 3 = ρ + b, and an extension field Fq of characteristic 3 with {1, σ, ρ, σρ, ρ 2 , σρ 2 } as a basis, where q = 3 6n ), second calculating means for substituting the value obtained by calculating -y p (x p + x q + b) + y q σ + y p ρ into R 0 ;
The value obtained by calculating x p + x q + d in the field Fq of characteristic 3 was substituted into r 0 and obtained by calculating −r 0 2 + y p y q σ−r 0 ρ−ρ 2 . assign values to R 1, the extension field Fq of the Characteristic 3, it substitutes the value obtained by calculating the R 0 R 1 to the R 0, in the target number 3 of the body Fq, the x p 3 The value obtained by calculating is substituted for the coordinate value x p , the value obtained by calculating y p 3 is substituted for the coordinate value y p, and the value obtained by calculating x q 27 is the coordinate value x q . Substituting the value obtained by calculating y q 27 into the coordinate value y q , substituting the value obtained by calculating (d + b) mod 3 into d, and in the extension field Fq of characteristic 3 , R 0 9 except the last round, the process of substituting a value obtained by calculating the R 0 3 in the last round to the R 0 (n + 1) / 2 times repeatedly executed, finally obtained R A value of 0, the two points P, a third arithmetic means for outputting as 3 n-th power value of ηT pairing ηT based on the coordinate data of the Q (P, Q),
Based on the value of the third arithmetic means said ItaT pairing has output ηT (P, Q) obtained by computing the 3 n root from 3 n-th power value of ηT (P, Q),
A pairing calculation apparatus comprising:
楕円曲線Eb:y2=x3−x+b,b∈{−1,1}上の点Pに対して前記楕円曲線E b 上の計算により得られる前記楕円曲線E b 上の点3 (n−1)/2 Pおよび前記楕円曲線E b 上の点Qの各座標データである(x p ,y p ),(x q ,y q )を入力し、定数bが1である場合は、前記座標値y p を−y p に置き換える入力手段と、
標数3の体Fq(ここで、q=3n)において、前記定数bの値をdに代入する第1演算手段と、
基底σおよびρがσ 2 =1,ρ 3 =ρ+bを満たし、{1,σ,ρ,σρ,ρ 2 ,σρ 2 }を基底とする標数3の拡大体Fq(ここで、q=3 6n )において、−y p (x p +x q +b)+y q σ+y p ρを計算して得た値をR 0 に代入する第2演算手段と、
前記標数3の体Fqにおいて、x p +x q +dを計算して得た値をr 0 に代入し、前記標数3の拡大体Fqにおいて、−r 0 2 +y p y q σ−r 0 ρ−ρ 2 を計算して得た値をR 1 に代入し、R 0 R 1 を計算して得た値を前記R 0 に代入し、前記標数3の体Fqにおいて、−y p を座標値y p に代入し、x q 9 を計算して得た値を座標値x q に代入し、y q 9 を計算して得た値を座標値y q に代入し、(d−b) mod 3を計算して得た値を前記dに代入し、前記標数3の拡大体Fqにおいて、R 0 3 を計算して得た値を前記R 0 に代入する処理を(n+1)/2回繰り返して実行し、最終的に得られたR 0 の値を、点3 (n−1)/2 Pおよび点Qの座標データに基づくηTペアリングηT(3 (n−1)/2 P,Q)の3(n+1)/2乗の値として出力する第3演算手段と、
前記第3演算手段が出力した前記ηTペアリングηT(3 (n−1)/2 P,Q)の3 (n+1)/2 乗の値に基づいて、
として機能させるためのペアリング計算プログラム。 The computer,
Elliptic curve E b : y 2 = x 3 −x + b, point 3 on the elliptic curve E b obtained by calculation on the elliptic curve E b with respect to the point P on bε {−1,1} (n -1) is / 2 P and the coordinate data of a point Q on the elliptic curve E b (x p, y p ), type a (x q, y q), if the constant b is 1, input means for Ru replaced -y p the coordinates y p,
First arithmetic means for substituting the value of the constant b for d in a field 3 of characteristic number Fq (where q = 3 n ) ;
Bases σ and ρ satisfy σ 2 = 1, ρ 3 = ρ + b, and an extension field Fq of characteristic 3 with {1, σ, ρ, σρ, ρ 2 , σρ 2 } as a basis, where q = 3 6n ), second calculating means for substituting the value obtained by calculating -y p (x p + x q + b) + y q σ + y p ρ into R 0 ;
In the target number 3 of the body Fq, x p + x q + calculated to give a value of d is substituted into r 0, the extension field Fq of the Characteristic 3, -r 0 2 + y p y q σ-r 0 the value obtained by calculating the [rho-[rho 2 is substituted in R 1, it substitutes the value obtained by calculating the R 0 R 1 to the R 0, in the target number 3 of the body Fq, the -y p Substituting for the coordinate value y p , substituting the value obtained by calculating x q 9 for the coordinate value x q , substituting the value obtained by calculating y q 9 for the coordinate value y q , (d−b ) the mod 3 assigns the calculated and obtained value to the d, wherein the extension field Fq of Characteristic 3, the process of substituting a value obtained by calculating the R 0 3 to the R 0 (n + 1) / The value of R 0 finally obtained is repeated twice, and ηT pairing ηT ( 3 (n−1) / 2 based on the coordinate data of point 3 (n−1) / 2 P and point Q is obtained. P, Q) third computing means for outputting as a value of 3 (n + 1) / 2 square;
Based on the value of 3 (n + 1) / 2 squared of the ηT pairing ηT (3 (n−1) / 2 P, Q) output by the third calculation means ,
Pairing calculation program to function as.
楕円曲線Eb:y2=x3−x+b,b∈{−1,1}上の2点P,Qの各座標データである(x p ,y p ),(x q ,y q )を入力し、定数bが1である場合は、座標値y p を−y p に置き換える入力手段と、
標数3の体Fq(ここで、q=3n)において、前記定数bの値をdに代入する第1演算手段と、
基底σおよびρがσ 2 =1,ρ 3 =ρ+bを満たし、{1,σ,ρ,σρ,ρ 2 ,σρ 2 }を基底とする標数3の拡大体Fq(ここで、q=3 6n )において、−y p (x p +x q +b)+y q σ+y p ρを計算して得た値をR 0 に代入する第2演算手段と、
前記標数3の体Fqにおいて、x p +x q +dを計算して得た値をr 0 に代入し、−r 0 2 +y p y q σ−r 0 ρ−ρ 2 を計算して得た値をR 1 に代入し、前記標数3の拡大体Fqにおいて、R 0 R 1 を計算して得た値を前記R 0 に代入し、前記標数3の体Fqにおいて、x p 3 を計算して得た値を座標値x p に代入し、y p 3 を計算して得た値を座標値y p に代入し、x q 27 を計算して得た値を座標値x q に代入し、y q 27 を計算して得た値を座標値y q に代入し、(d+b) mod 3を計算して得た値を前記dに代入し、前記標数3の拡大体Fqにおいて、最終回を除きR 0 9 、最終回においてR 0 3 を計算して得た値を前記R 0 に代入する処理を(n+1)/2回繰り返して実行し、最終的に得られたR 0 の値を、前記2点P,Qの座標データに基づくηTペアリングηT(P,Q)の3n乗の値として出力する第3演算手段と、
前記第3演算手段が出力した前記ηTペアリングηT(P,Q)の3 n 乗の値から3 n 乗根を計算して得たηT(P,Q)の値に基づいて、
として機能させるためのペアリング計算プログラム。 The computer,
Elliptic curve E b: y 2 = x 3 -x + b, a 2-point P, the coordinate data of Q on b∈ {-1,1} (x p, y p), the (x q, y q) type, if the constant b is 1, an input means for Ru replace coordinate values y p to -y p,
First arithmetic means for substituting the value of the constant b for d in a field 3 of characteristic number Fq (where q = 3 n ) ;
Bases σ and ρ satisfy σ 2 = 1, ρ 3 = ρ + b, and an extension field Fq of characteristic 3 with {1, σ, ρ, σρ, ρ 2 , σρ 2 } as a basis, where q = 3 6n ), second calculating means for substituting the value obtained by calculating -y p (x p + x q + b) + y q σ + y p ρ into R 0 ;
The value obtained by calculating x p + x q + d in the field Fq of characteristic 3 was substituted into r 0 and obtained by calculating −r 0 2 + y p y q σ−r 0 ρ−ρ 2 . assign values to R 1, the extension field Fq of the Characteristic 3, it substitutes the value obtained by calculating the R 0 R 1 to the R 0, in the target number 3 of the body Fq, the x p 3 The value obtained by calculating is substituted for the coordinate value x p , the value obtained by calculating y p 3 is substituted for the coordinate value y p, and the value obtained by calculating x q 27 is the coordinate value x q . Substituting the value obtained by calculating y q 27 into the coordinate value y q , substituting the value obtained by calculating (d + b) mod 3 into d, and in the extension field Fq of characteristic 3 , R 0 9 except the last round, the process of substituting a value obtained by calculating the R 0 3 in the last round to the R 0 (n + 1) / 2 times repeatedly executed, finally obtained R A value of 0, the two points P, a third arithmetic means for outputting as 3 n-th power value of ηT pairing ηT based on the coordinate data of the Q (P, Q),
Based on the value of the third arithmetic means said ItaT pairing has output ηT (P, Q) obtained by computing the 3 n root from 3 n-th power value of ηT (P, Q),
Pairing calculation program to function as.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006192217A JP4956817B2 (en) | 2006-07-12 | 2006-07-12 | Pairing calculation device and pairing calculation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006192217A JP4956817B2 (en) | 2006-07-12 | 2006-07-12 | Pairing calculation device and pairing calculation program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008020653A JP2008020653A (en) | 2008-01-31 |
JP4956817B2 true JP4956817B2 (en) | 2012-06-20 |
Family
ID=39076633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006192217A Expired - Fee Related JP4956817B2 (en) | 2006-07-12 | 2006-07-12 | Pairing calculation device and pairing calculation program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4956817B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4649456B2 (en) * | 2007-09-26 | 2011-03-09 | 株式会社東芝 | Power calculation apparatus, power calculation method and program |
JP5471253B2 (en) * | 2009-09-30 | 2014-04-16 | 富士通株式会社 | Pairing calculation device |
JP2011150096A (en) * | 2010-01-21 | 2011-08-04 | Fujitsu Ltd | Pairing arithmetic unit and method |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006178125A (en) * | 2004-12-22 | 2006-07-06 | Hitachi Ltd | Method and apparatus for computing elliptic curve tate pairing |
-
2006
- 2006-07-12 JP JP2006192217A patent/JP4956817B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2008020653A (en) | 2008-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Joux | The Weil and Tate Pairings as Building Blocks for Public Key Cryptosystems: Survey | |
Yi et al. | Homomorphic encryption | |
EP0704124A1 (en) | A cryptographic method | |
JP4956817B2 (en) | Pairing calculation device and pairing calculation program | |
Nitaj et al. | A new attack on RSA and Demytko’s elliptic curve cryptosystem | |
Tahat et al. | A new RSA public key encryption scheme with chaotic maps | |
US8856200B2 (en) | Exponentiation calculation apparatus and exponentiation calculation method | |
JP5553773B2 (en) | Apparatus and method for calculating scalar multiple of points on elliptic curve | |
Awad et al. | Rabin public-key cryptosystem in the domain of Gaussian Integers | |
Vollala et al. | Efficient modular multiplication algorithms for public key cryptography | |
Mrabet et al. | An efficient and scalable modular inversion/division for public key cryptosystems | |
Zahhafi et al. | A digitial signature scheme based simultaneously on the DSA and RSA protocols | |
JP5540933B2 (en) | Encryption key analysis method, encryption key analysis device, and encryption key analysis program | |
US8924448B2 (en) | Arithmetic device, method, and program product | |
Stogbauer | Efficient Algorithms for pairing-based cryptosystems | |
Diarra et al. | On indifferentiable deterministic hashing into elliptic curves | |
Grini et al. | A new cryptosystem based on a twisted Hessian curve H a, d 4 | |
Popescu | Blind signature schemes based on the elliptic curve discrete logarithm problem | |
Frey et al. | Fast bilinear maps from the Tate-Lichtenbaum pairing on hyperelliptic curves | |
JP2005084568A (en) | Security method, security device and security program | |
JP2010049216A (en) | Apparatus and program for performing data compression processing using algebraic torus | |
Fotiadis et al. | On the efficient generation of generalized MNT elliptic curves | |
Ye et al. | Group signature scheme based on verifiable random number | |
Khaled | A survey on elliptic curves cryptosystems | |
Babu et al. | Efficient ID-based key-insulated multi signature scheme without pairings |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090610 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20090605 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110915 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110927 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111128 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20111128 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111219 |
|
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: 20120131 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120229 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150330 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |