JP6777569B2 - Pairing arithmetic unit, pairing arithmetic method, and program - Google Patents
Pairing arithmetic unit, pairing arithmetic method, and program Download PDFInfo
- Publication number
- JP6777569B2 JP6777569B2 JP2017044529A JP2017044529A JP6777569B2 JP 6777569 B2 JP6777569 B2 JP 6777569B2 JP 2017044529 A JP2017044529 A JP 2017044529A JP 2017044529 A JP2017044529 A JP 2017044529A JP 6777569 B2 JP6777569 B2 JP 6777569B2
- Authority
- JP
- Japan
- Prior art keywords
- points
- elliptic curve
- point
- order
- pairing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
この発明は、情報通信分野におけるペアリングを用いた暗号技術に関し、特に、ペアリングを効率的に演算する技術に関する。 The present invention relates to a cryptographic technique using pairing in the field of information and communication, and more particularly to a technique for efficiently calculating pairing.
近年、楕円曲線上のペアリングが持つ双線形性によって、IDベース暗号(非特許文献1参照)や属性ベース暗号(非特許文献2参照)、関数型暗号(非特許文献3参照)などの高機能な暗号方式が提案されている。このようなペアリングを用いた暗号方式は、ペアリング暗号とも呼ばれる。近年では、Apache Milagro (incubating)(非特許文献4参照)でのオープンソースソフトウェア(OSS: Open Source Software)による開発や、インターネット技術タスクフォース(IETF: Internet Engineering Task Force)による標準化(非特許文献5、6参照)など、ペアリング暗号を実社会で利用するための活動が行われている。 In recent years, due to the bilinearity of pairing on an elliptical curve, high ID-based cryptography (see Non-Patent Document 1), attribute-based cryptography (see Non-Patent Document 2), and functional cryptography (see Non-Patent Document 3) A functional encryption method has been proposed. An encryption method using such pairing is also called a pairing encryption. In recent years, development by Open Source Software (OSS) in Apache Milagro (incubating) (see Non-Patent Document 4) and standardization by Internet Engineering Task Force (IETF) (Non-Patent Document 5) , 6), and other activities are being carried out to use pairing cryptography in the real world.
楕円曲線上のペアリングは、Millerによって提案されたミラーアルゴリズム(Miller's Algorithm、非特許文献7参照)を用いて演算することができる。ミラーアルゴリズムでは、楕円曲線上の二点を通る直線または一点を通る接線であるL関数を構成する必要がある。L関数を構成する方法としては、Affine座標系/Jacobian座標系を用いた楕円曲線上の二倍算/加算において、演算途中で計算される傾きを用いて構成する方法が知られている(非特許文献8参照)。Affine座標系では逆元算を用い、Jacobian座標系では逆元算を用いないことが特徴であるため、計算機の乗算と逆元算の演算時間の比に応じて、これらの座標系を使い分ける。Affine座標系/Jacobian座標系以外の座標系には、Compressed Jacobian座標系(非特許文献9参照)があるが、この座標系を用いてL関数を構成する方法は知られていない。 Pairing on an elliptic curve can be calculated using the Miller's Algorithm proposed by Miller (see Miller's Algorithm, Non-Patent Document 7). In the mirror algorithm, it is necessary to construct an L function which is a straight line passing through two points on an elliptic curve or a tangent line passing through one point. As a method of constructing the L function, there is known a method of constructing a double / addition on an elliptic curve using the Affine coordinate system / Jacobian coordinate system using the slope calculated in the middle of the calculation (non-). See Patent Document 8). Since the Affine coordinate system uses the inverse element calculation and the Jacobian coordinate system does not use the inverse element calculation, these coordinate systems are used properly according to the ratio of the calculation time of the computer multiplication and the inverse element calculation. A coordinate system other than the Affine coordinate system / Jacobian coordinate system includes the Compressed Jacobian coordinate system (see Non-Patent Document 9), but a method of constructing an L function using this coordinate system is not known.
ペアリング暗号を実際のシステムとして実現するためには、ペアリング演算を効率的に行うことが重要である。計算機の性能によっては、Compressed Jacobian座標系を用いた楕円曲線上の二倍算/加算が他の座標系よりも高速に演算できる場合がある。しかしながら、Compressed Jacobian座標系を用いてペアリング演算に必要なL関数を構成する方法は知られていなかった。 In order to realize pairing encryption as an actual system, it is important to perform pairing operations efficiently. Depending on the performance of the computer, double / addition on an elliptic curve using the Compressed Jacobian coordinate system may be able to calculate faster than other coordinate systems. However, a method of constructing an L function required for a pairing operation using the Compressed Jacobian coordinate system has not been known.
この発明の目的は、上記のような点に鑑みて、Compressed Jacobian座標系を用いてペアリング演算に必要なL関数を構成し、効率的にペアリングを演算することができる技術を実現することである。 In view of the above points, an object of the present invention is to realize a technique capable of efficiently calculating pairing by constructing an L function necessary for pairing calculation using the Compressed Jacobian coordinate system. Is.
上記の課題を解決するために、この発明のペアリング演算装置は、p, rを素数とし、kを埋め込み次数とし、dを正の整数とし、Eを楕円曲線とし、Fpを位数pの有限体とし、Fp^(k/d)を位数pk/dの有限体とし、Fp^kを位数pkの有限体とし、G1を楕円曲線E(Fp)上の位数rの部分群とし、G2を楕円曲線E(Fp^(k/d))上の位数rの部分群とし、G3を有限体Fp^k上の位数rの部分群とし、eをG1×G2→G3のペアリングとし、ECDBLを楕円曲線上の一点を入力とし、当該点を楕円曲線上で二倍算した点、および、楕円曲線上の二倍算を演算する過程で計算される値Λn∈Fp^(k/d), λd∈Fpを出力とする、Compressed Jacobian座標系を用いて楕円曲線上の二倍算を演算するアルゴリズムとし、ECADDを楕円曲線上の二点を入力とし、当該二点を楕円曲線上で加算した点、および、楕円曲線上の加算を演算する過程で計算される値Λn∈Fp^(k/d), λd∈Fpを出力とする、Compressed Jacobian座標系を用いて楕円曲線上の加算を演算するアルゴリズムとし、楕円曲線E(Fp)上の点P=(xP, yP)と楕円曲線E(Fp^(k/d))上の点Q=(XQ, YQ)とのペアリングe(P, Q)を演算するペアリング演算装置であって、値fに1を、点(X1, Y1, Z1)に点(XQ, YQ, 1)を代入する初期化部と、点(X1, Y1, Z1)を入力としてアルゴリズムECDBLを演算し、点(X1, Y1, Z1)を楕円曲線E上で二倍算した点(X3, Y3, Z3)および値Λn, λdを得る楕円二倍算部と、値f, Λn, λd, Z3, 点(xP, yP), (X1, Y1, Z1)を用いて、L←yPZ1 2Z3+(-xPΛnZ1 2+(ΛnX1-Y1λd)), f←f2・Lを演算し、点(X3, Y3, Z3)を点(X1, Y1, Z1)に代入する二倍算部と、点(X1, Y1, Z1), (XQ, YQ, 1)を入力としてアルゴリズムECADDを演算し、点(X1, Y1, Z1)と点(XQ, YQ, 1)とを楕円曲線E上で加算した点(X3, Y3, Z3)および上記値Λn, λdを得る楕円加算部と、値f, Λn, Z3, 点(xP, yP), (XQ, YQ, 1)を用いて、L←yPZ3+(-xPΛn+(ΛnXQ-YQZ3)), f←f・Lを演算し、点(X3, Y3, Z3)を点(X1, Y1, Z1)に代入する加算部と、f(p^k-1)/rを演算する最終冪演算部と、を含む。
In order to solve the above problems, in the pairing arithmetic device of the present invention, p and r are prime numbers, k is an embedded order, d is a positive integer, E is an elliptical curve, and F p is an order p. Let F p ^ (k / d) be a finite field of order p k / d , let F p ^ k be a finite field of order p k , and let G 1 be on the elliptical curve E (F p ). Let G 2 be a subgroup of the order r on the elliptical curve E (F p ^ (k / d) ), and let G 3 be a subgroup of the order r on the finite field F p ^ k . As a finite field, e is a pairing of G 1 × G 2 → G 3 , ECDBL is an input point on an elliptical curve, and that point is doubled on the elliptical curve, and two on the elliptical curve. Compute the double on an elliptical curve using the Compressed Jacobian coordinate system, which outputs the values Λ n ∈ F p ^ (k / d) , λ d ∈ F p, which are calculated in the process of calculating the multiplication. As an algorithm, ECADD is input to two points on an elliptical curve, the points obtained by adding the two points on the elliptical curve, and the value calculated in the process of calculating the addition on the elliptical curve Λ n ∈ F p ^ ( k / d), and outputs λ d ∈F p, and the algorithm that calculates the addition on the elliptic curve using Compressed Jacobian coordinates, elliptic curve E (F p) points on P = (x P, y P) and the elliptic curve E (F p ^ (k / d)) point on the Q = (X Q, a pairing e (P, pairing computation device for calculating the Q) and Y Q), the
この発明によれば、Compressed Jacobian座標系を用いてペアリング演算に必要なL関数を構成し、効率的にペアリングを演算することができる。 According to the present invention, it is possible to construct an L function necessary for a pairing operation using the Compressed Jacobian coordinate system and efficiently perform the pairing operation.
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。 Hereinafter, embodiments of the present invention will be described in detail. In the drawings, the components having the same function are given the same number, and duplicate description is omitted.
本明細書中で使用する、上付き添え字または下付き添え字の中で使用する記号「^」は、直後の文字を上付き添え字とすることを表す。例えば、f(p^k-1)/rは、fを(pk-1)/r乗することを表している。数式中においてはこれらの記号は本来の記法、すなわち上付き添え字の中での上付き添え字で記述する。例えば、f(p^k-1)/rは、次式のように記述する。 The symbol "^" used in superscripts or subscripts as used herein indicates that the character immediately following it is the superscript. For example, f (p ^ k-1) / r means that f is raised to the power of (p k -1) / r. In mathematical formulas, these symbols are described in their original notation, that is, superscripts in superscripts. For example, f (p ^ k-1) / r is described as follows.
[準備]
実施形態の説明の前に、本明細書で用いる用語の概要を説明する。
[Preparation]
Prior to the description of the embodiments, an outline of the terms used in the present specification will be described.
<ペアリング>
p, rを素数とする。kを埋め込み次数とする。dを正の整数とする。Eを楕円曲線とする。Fpを位数pの有限体とする。Fp^(k/d)を位数pk/dの有限体とする。Fp^kを位数pkの有限体とする。G1を楕円曲線E(Fp)上の位数rの部分群とする。G2を楕円曲線E(Fp^(k/d))上の位数rの部分群とする。G3を有限体Fp^k上の位数rの部分群とする。fr,Qを有理関数とする。
<Pairing>
Let p and r be prime numbers. Let k be the embedded order. Let d be a positive integer. Let E be an elliptic curve. Let F p be a finite field of order p. Let F p ^ (k / d) be a finite field of order p k / d . Let F p ^ k be a finite field of order p k . Let G 1 be a subgroup of the order r on the elliptic curve E (F p ). Let G 2 be a subgroup of the order r on the elliptic curve E (F p ^ (k / d) ). Let G 3 be a subgroup of the order r on the finite field F p ^ k . Let f r and Q be rational functions.
群G1, G2, G3に対して、ペアリングeを次のように定義する。 For the groups G 1 , G 2 , and G 3 , pairing e is defined as follows.
<ミラーアルゴリズム>
上記の有理関数fr,Qは、上記非特許文献7に記載されているミラーアルゴリズムを用いて演算することができる。ミラーアルゴリズムをAlgorithm 1に示す。
<Mirror algorithm>
The rational functions f r and Q can be calculated by using the mirror algorithm described in Non-Patent
ミラーアルゴリズムのステップ3では、楕円曲線上の二倍算を演算する。ミラーアルゴリズムのステップ7では、楕円曲線上の加算を演算する。上述のとおり、楕円曲線上の演算を行う座標系には、Affine座標系、Jacobian座標系、Compressed Jacobian座標系の3つが知られている。以下、各座標系について説明する。なお、mはある正の整数である。
In step 3 of the mirror algorithm, the double calculation on the elliptic curve is calculated. In
<Affine座標系>
Affine座標系は、下記参考文献1の79-82ページに詳しく記載されている。有限体Fp^m上で定義されるAffine座標系における楕円曲線EAは、4a3+27b2≠0を満たすa, b∈Fp^mに対して、式(1)のとおり表現できる。
<Affine coordinate system>
The Affine coordinate system is described in detail on pages 79-82 of
楕円曲線EA上の点は、(x, y)∈Fp^m×Fp^mと表現できる。Affine座標系では、この表現を用いて楕円曲線EA上の二倍算/加算を行う。 A point on the elliptic curve E A can be expressed as (x, y) ∈F p ^ m × F p ^ m. In the Affine coordinate system, this expression is used to double / add on the elliptic curve E A.
〔参考文献1〕D. R. Hankerson, A. J. Menezes and S. A. Vanstone, "Guide to Elliptic Curve Cryptography", Springer, 2004. [Reference 1] D. R. Hankerson, A. J. Menezes and S. A. Vanstone, "Guide to Elliptic Curve Cryptography", Springer, 2004.
<Jacobian座標系>
Jacobian座標系は、上記参考文献1の86-89ページに詳しく記載されている。有限体Fp^m上で定義されるJacobian座標系における楕円曲線EJは、X∈Fp^m, Y∈Fp^m, Z∈Fp^mに対して、上記式(1)を(x, y)=(X/Z2, Y/Z3)と置き換えることで、式(2)のとおり表現できる。
<Jacobian coordinate system>
The Jacobian coordinate system is described in detail on pages 86-89 of
楕円曲線EJ上の点は、(X, Y, Z)∈Fp^m×Fp^m×Fp^mと表現できる。Jacobian座標系では、この表現を用いて楕円曲線EJ上の二倍算/加算を行う。 A point on the elliptic curve E J, can be expressed as (X, Y, Z) ∈F p ^ m × F p ^ m × F p ^ m. The Jacobian coordinate system uses this representation to perform doubling / addition on the elliptic curve E J.
<Compressed Jacobian座標系>
Compressed Jacobian座標系は、上記非特許文献9に詳しく記載されている。有限体Fp^m上で定義されるCompressed Jacobian座標系における楕円曲線EcomJは、X∈Fp^m, Y∈Fp^m, z∈Fpに対して、上記式(1)を(x, y)=(X/z2, Y/z3)と置き換えることで、式(3)のとおり表現できる。
<Compressed Jacobian coordinate system>
The Compressed Jacobian coordinate system is described in detail in
楕円曲線EcomJ上の点は、(X, Y, z)∈Fp^m×Fp^m×Fpと表現できる。Compressed Jacobian座標系では、この表現を用いて楕円曲線EcomJ上の二倍算/加算を行う。 A point on the elliptic curve E comJ, can be expressed as (X, Y, z) ∈F p ^ m × F p ^ m × F p. The Compressed Jacobian coordinate system uses this representation to double / add on the elliptic curve E comJ .
<L関数>
ミラーアルゴリズムのステップ4およびステップ8で用いられるL関数(LT,T(P), LT,Q(P))は、P=(xP, yP)∈G1, T=(xT, yT)∈G2, T'=(xT', yT')∈G2を通る直線の傾きλ∈Fp^mに対して、式(4)のとおり表現できる。
<L function>
The L-functions (L T, T (P), L T, Q (P)) used in
L関数を演算するためには、ミラーアルゴリズムのステップ3およびステップ7で楕円曲線上の二倍算/加算を演算する中で計算される値λを用いる。Affine座標系、Jacobian座標系を用いた効率的なL関数の構成方法は知られているが、Compressed Jacobian座標系を用いた効率的なL関数の構成方法は知られていない。
To calculate the L-function, the value λ calculated during the calculation of double / addition on the elliptic curve in
<本発明によるミラーアルゴリズム>
本発明によるCompressed Jacobian座標系を用いる楕円曲線上の二倍算/加算を用いたミラーアルゴリズムをAlgorithm 2に示す。
<Mirror algorithm according to the present invention>
ステップ3で実行するECDBLは、非特許文献9において提案されている、Compressed Jacobian座標系を用いて楕円曲線上の二倍算を演算するアルゴリズムである。アルゴリズムECDBLは、楕円曲線E上の一点を入力とし、当該点を楕円曲線E上で二倍した点、および、楕円曲線E上の二倍算を演算する過程で計算される値Λn∈Fp^(k/d), λd∈Fpを出力する。
The ECDBL executed in step 3 is an algorithm proposed in
ステップ7で実行するECADDは、非特許文献9において提案されている、Compressed Jacobian座標系を用いて楕円曲線上の加算を演算するアルゴリズムである。アルゴリズムECADDは、楕円曲線E上の二点を入力とし、当該二点を楕円曲線E上で加算した点、および、楕円曲線E上の加算を演算する過程で計算される値Λn∈Fp^(k/d), λd∈Fpを出力する。
The ECADD executed in
ステップ4で実行するDBLは、値fと、ECDBLの出力する値Λn, λdと、点P(xP, yP), 点(X1, Y1, Z1)と、点(X3, Y3, Z3)のZ座標である値Z3とを入力とし、更新された値fを出力する。アルゴリズムDBLをAlgorithm 3に示す。
The DBL executed in
ステップ8で実行するADDは、値fと、ECADDの出力する値Λnと、点P(xP, yP), 点(XQ, YQ, 1)と、点(X3, Y3, Z3)のZ座標である値Z3とを入力とし、更新された値fを出力する。アルゴリズムADDをAlgorithm 4に示す。
The ADD executed in step 8 is the value f, the value Λ n output by ECADD, the points P (x P , y P ), the points (X Q , Y Q , 1), and the points (X 3 , Y 3). , Z 3 ) takes the value Z 3 which is the Z coordinate as input, and outputs the updated value f. The algorithm ADD is shown in
[実施形態]
実施形態のペアリング演算装置10は、図1に示すように、入力部1、初期化部2、ECDBL演算部3(楕円二倍算部とも呼ぶ)、DBL演算部4(二倍算部とも呼ぶ)、ECADD演算部5(楕円加算部とも呼ぶ)、ADD演算部6(加算部とも呼ぶ)、最終冪演算部7、および出力部8を備える。このペアリング演算装置10が後述する各ステップの処理を行うことにより実施形態のペアリング演算方法が実現される。
[Embodiment]
As shown in FIG. 1, the pairing
ペアリング演算装置10は、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。ペアリング演算装置10は、例えば、中央演算処理装置の制御のもとで各処理を実行する。ペアリング演算装置10に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて読み出されて他の処理に利用される。また、ペアリング演算装置10の各処理部の少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
The pairing
図2を参照して、実施形態のペアリング演算方法の処理手続きを説明する。 The processing procedure of the pairing calculation method of the embodiment will be described with reference to FIG.
ステップS1において、入力部1へ楕円曲線E上の二点P=(xP, yP)∈G1, Q=(XQ, YQ)∈G2、および群G1, G2の位数である素数rが入力される。なお、位数rは、式(5)に示すように、二進表現で入力されるものとする。
In step S1, two points P = (x P, y P ) on the elliptic curve E to the input unit 1 ∈G 1, Q = (X Q, Y Q) ∈
ステップS2において、初期化部2は、値fに1を代入し、Compressed Jacobian座標系の点(X1, Y1, Z1)に点(XQ, YQ, 1)を代入する。また、インデックスjをn-2に初期化する。nは、式(5)に示すとおり、位数rを二進表現とした際の桁数である。
In step S2, the
ステップS3において、ECDBL演算部3は、点(X1, Y1, Z1)を入力としてアルゴリズムECDBLを演算し、点(X1, Y1, Z1)を楕円曲線E上で二倍算した点(X3, Y3, Z3)、および、楕円曲線上の二倍算を演算する過程で計算される値Λn, λdを得る。 In step S3, the ECDBL calculation unit 3 calculates the algorithm ECDBL with the points (X 1 , Y 1 , Z 1 ) as inputs, and doubles the points (X 1 , Y 1 , Z 1 ) on the elliptic curve E. Obtain the points (X 3 , Y 3 , Z 3 ) and the values Λ n and λ d calculated in the process of calculating the double on the elliptic curve.
ステップS4において、DBL演算部4は、値f, Λn, λd, 点P(xP, yP), (X1, Y1, Z1), および点(X3, Y3, Z3)のZ座標である値Z3を入力としてアルゴリズムDBLを演算し、値fを更新する。また、DBL演算部4は、点(X3, Y3, Z3)を点(X1, Y1, Z1)に代入する。
In step S4, the DBL
ステップS5において、rjが1と等しいか否かを判定する。rj=1の場合(YES)、ステップS6、S7を実行する。rj≠1の場合(NO)、ステップS6、S7を実行せず、ステップS8へ処理を進める。 In step S5, it is determined whether or not r j is equal to 1. When r j = 1 (YES), steps S6 and S7 are executed. When r j ≠ 1 (NO), steps S6 and S7 are not executed, and the process proceeds to step S8.
ステップS6において、ECADD演算部5は、点(X1, Y1, Z1), (XQ, YQ, 1)を入力としてアルゴリズムECADDを演算し、点(X1, Y1, Z1)と点(XQ, YQ, 1)とを楕円曲線E上で加算した点(X3, Y3, Z3)、および、楕円曲線上の加算を演算する過程で計算される値Λn, λdを得る。
In step S6, the
ステップS7において、ADD演算部6は、値f, Λn, 点P(xP, yP), (XQ, YQ, 1), および点(X3, Y3, Z3)のZ座標である値Z3を入力としてアルゴリズムADDを演算し、値fを更新する。また、ADD演算部6は、点(X3, Y3, Z3)を点(X1, Y1, Z1)に代入する。
In step S7, the
ステップS8において、インデックスjが0を超えているか否かを判定する。j>0の場合(YES)、ステップS9においてj←j-1を計算し、すなわち、インデックスjをデクリメントし、ステップS3〜S8の処理を再度実行する。j≦0の場合(NO)、ステップS10へ処理を進める。 In step S8, it is determined whether or not the index j exceeds 0. When j> 0 (YES), j ← j-1 is calculated in step S9, that is, the index j is decremented, and the processes of steps S3 to S8 are executed again. When j ≦ 0 (NO), the process proceeds to step S10.
ステップS10において、最終冪演算部7は、式(6)を計算し、ペアリング演算結果e(P, Q)を得る。
In step S10, the
ステップS11において、出力部8は、ペアリング演算結果e(P, Q)を出力する。 In step S11, the output unit 8 outputs the pairing calculation result e (P, Q).
[実験結果]
本発明の効果を実証するために、従来のミラーアルゴリズム(Algorithm 1)を用いたときの演算コストと、本発明によるミラーアルゴリズム(Algorithm 2)を用いたときの演算コストを比較した。以下では、Mを乗算の演算時間、Sを二倍算の演算時間、Iを逆元算の演算時間として、S=M, I=8Mとなる計算機を用いて、下記参考文献2に記載されたパラメータを用いてペアリングを演算する場合の高速化率を説明する。
[Experimental result]
In order to demonstrate the effect of the present invention, the calculation cost when the conventional mirror algorithm (Algorithm 1) is used and the calculation cost when the mirror algorithm (Algorithm 2) according to the present invention is used are compared. In the following, using a computer in which S = M and I = 8M, where M is the calculation time for multiplication, S is the calculation time for double calculation, and I is the calculation time for inverse element calculation, it is described in
〔参考文献2〕D. Aranha, K. Karabina, P. Longa, C. Gebotys and J. Lopez, "Faster Explicit Formulas for Computing Pairings over Ordinary Curves," EUROCRYPT 2011, LNCS 6632, pp. 48-68, 2011. [Reference 2] D. Aranha, K. Karabina, P. Longa, C. Gebotys and J. Lopez, "Faster Explicit Formulas for Computing Pairings over Ordinary Curves," EUROCRYPT 2011, LNCS 6632, pp. 48-68, 2011 ..
参考文献2に記載されたパラメータは、以下のとおりである。
The parameters described in
このとき、ω=|6z+2|とし、ある関数gに対するペアリングは、以下のように表される。 At this time, ω = | 6z + 2 |, and the pairing for a certain function g is expressed as follows.
なお、上述のミラーアルゴリズムではrを入力としてrを二進表現とした際の桁数だけループしていたが、この実験ではループ回数をωに削減する一般的なテクニックを用いた。このテクニックは従来のミラーアルゴリズムでも本発明のミラーアルゴリズムでも同様に適用できるため、実験結果へは影響しない。 In the above-mentioned mirror algorithm, loops were performed by the number of digits when r was input and r was expressed in binary, but in this experiment, a general technique of reducing the number of loops to ω was used. Since this technique can be applied to both the conventional mirror algorithm and the mirror algorithm of the present invention, it does not affect the experimental results.
Jacobian座標系で従来のミラーアルゴリズム(Algorithm 1)を用いてfω,Q(P)を演算すると、7164Mの演算時間が必要であった(Mは乗算一回の演算時間)。本発明によるミラーアルゴリズム(Algorithm 2)を用いてfω,Q(P)を演算すると、6940Mの演算時間が必要であった。したがって、本発明によるミラーアルゴリズムを用いると、演算時間を3.2%削減できることがわかった。 When calculating f ω, Q (P) using the conventional mirror algorithm (Algorithm 1) in the Jacobian coordinate system, the calculation time of 7164M was required (M is the calculation time of one multiplication). When f ω and Q (P) were calculated using the mirror algorithm (Algorithm 2) according to the present invention, a calculation time of 6940M was required. Therefore, it was found that the calculation time can be reduced by 3.2% by using the mirror algorithm according to the present invention.
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。 Although the embodiments of the present invention have been described above, the specific configuration is not limited to these embodiments, and even if the design is appropriately changed without departing from the spirit of the present invention, the specific configuration is not limited to these embodiments. Needless to say, it is included in the present invention. The various processes described in the embodiments are not only executed in chronological order according to the order described, but may also be executed in parallel or individually as required by the processing capacity of the device that executes the processes.
[プログラム、記録媒体]
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
[Program, recording medium]
When various processing functions in each device described in the above embodiment are realized by a computer, the processing contents of the functions that each device should have are described by a program. Then, by executing this program on the computer, various processing functions in each of the above devices are realized on the computer.
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。 The program describing the processing content can be recorded on a computer-readable recording medium. The computer-readable recording medium may be, for example, a magnetic recording device, an optical disk, a photomagnetic recording medium, a semiconductor memory, or the like.
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。 In addition, the distribution of this program is carried out, for example, by selling, transferring, renting, or the like, a portable recording medium such as a DVD or CD-ROM on which the program is recorded. Further, the program may be stored in the storage device of the server computer, and the program may be distributed by transferring the program from the server computer to another computer via a network.
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。 A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. Then, when the process is executed, the computer reads the program stored in its own recording medium and executes the process according to the read program. Further, as another execution form of this program, a computer may read the program directly from a portable recording medium and execute processing according to the program, and further, the program is transferred from the server computer to this computer. It is also possible to execute the process according to the received program one by one each time. In addition, the above processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition without transferring the program from the server computer to this computer. May be. It should be noted that the program in this embodiment includes information to be used for processing by a computer and equivalent to the program (data that is not a direct command to the computer but has a property of defining the processing of the computer, etc.).
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。 Further, in this embodiment, the present device is configured by executing a predetermined program on the computer, but at least a part of these processing contents may be realized by hardware.
10 ペアリング演算装置
1 入力部
2 初期化部
3 ECDBL演算部
4 DBL演算部
5 ECADD演算部
6 ADD演算部
7 最終冪演算部
8 出力部
10
Claims (3)
ECDBLを楕円曲線上の一点を入力とし、当該点を楕円曲線上で二倍算した点、および、値Λn∈Fp^(k/d), λd∈Fpを出力とする、Compressed Jacobian座標系を用いて楕円曲線上の二倍算を演算するアルゴリズムとし、
ECADDを楕円曲線上の二点を入力とし、当該二点を楕円曲線上で加算した点、および、値Λn∈Fp^(k/d), λd∈Fpを出力とする、Compressed Jacobian座標系を用いて楕円曲線上の加算を演算するアルゴリズムとし、
楕円曲線E(Fp)上の点P=(xP, yP)と楕円曲線E(Fp^(k/d))上の点Q=(XQ, YQ)とのペアリングe(P, Q)を演算するペアリング演算装置であって、
値fに1を、点(X1, Y1, Z1)に点(XQ, YQ, 1)を代入する初期化部と、
点(X1, Y1, Z1)を入力として上記アルゴリズムECDBLを演算し、点(X1, Y1, Z1)を楕円曲線E上で二倍算した点(X3, Y3, Z3)および上記値Λn, λdを得る楕円二倍算部と、
上記値f, Λn, λd, Z3, 点(xP, yP), (X1, Y1, Z1)を用いて、L DBL ←yPZ1 2Z3+(-xPΛnZ1 2+(ΛnX1-Y1λd)), f←f2・L DBL を演算し、点(X3, Y3, Z3)を点(X1, Y1, Z1)に代入する二倍算部と、
点(X1, Y1, Z1), (XQ, YQ, 1)を入力として上記アルゴリズムECADDを演算し、点(X1, Y1, Z1)と点(XQ, YQ, 1)とを楕円曲線E上で加算した点(X3, Y3, Z3)および上記値Λn, λdを得る楕円加算部と、
上記値f, Λn, Z3, 点(xP, yP), (XQ, YQ, 1)を用いて、L ADD ←yPZ3+(-xPΛn+(ΛnXQ-YQZ3)), f←f・L ADD を演算し、点(X3, Y3, Z3)を点(X1, Y1, Z1)に代入する加算部と、
f(p^k-1)/rを演算する最終冪演算部と、
を含み、
n-2から0までの各整数jについて、r j =1のときは、上記楕円二倍算部と上記二倍算部と上記楕円加算部と上記加算部とを実行し、それ以外のときは、上記楕円二倍算部と上記二倍算部とを実行する、
ペアリング演算装置。 p, and prime r, and order embedded a k, a d a positive integer, the E is an elliptic curve, the F p a finite field of order p, F p ^ (k / d) the position number p k Let / d be a finite field, let F p ^ k be a finite field of order p k , let G 1 be a subgroup of order r on the order curve E (F p ), and let G 2 be the order curve E (F p). ^ (k / d) ) Let the subgroup of the order r on, G 3 be the subgroup of the order r on the finite field F p ^ k , and let e be the pairing of G 1 × G 2 → G 3 , N is the number of digits when the order r is expressed in binary, and r 0 ,…, r n-1 is the value of each digit when the order r is expressed in binary.
Compressed, where ECDBL is input to a point on the elliptic curve, the point is doubled on the elliptic curve, and the values Λ n ∈ F p ^ (k / d) and λ d ∈ F p are output. An algorithm that calculates double on an elliptic curve using the Jacobian coordinate system.
Compressed, which takes ECADD as input to two points on the elliptic curve, adds the two points on the elliptic curve, and outputs the values Λ n ∈ F p ^ (k / d) and λ d ∈ F p. An algorithm that calculates addition on an elliptic curve using the Jacobian coordinate system.
P = (x P, y P ) points on the elliptic curve E (F p) and the elliptic curve E (F p ^ (k / d)) on a point Q = (X Q, Y Q ) pairing with e A pairing arithmetic unit that calculates (P, Q).
An initializer that substitutes 1 for the value f and a point (X Q , Y Q , 1) for the point (X 1 , Y 1 , Z 1 ),
The above algorithm ECDBL is calculated with the points (X 1 , Y 1 , Z 1 ) as inputs, and the points (X 1 , Y 1 , Z 1 ) are doubled on the elliptic curve E (X 3 , Y 3 , Z 1 ). Z 3 ) and the elliptic double part that obtains the above values Λ n , λ d ,
Using the above values f, Λ n , λ d , Z 3 , points (x P , y P ), (X 1 , Y 1 , Z 1 ), L DBL ← y P Z 1 2 Z 3 + (-x P Λ n Z 1 2 + (Λ n X 1 -Y 1 λ d )), f ← f 2・ L Calculate DBL and point points (X 3 , Y 3 , Z 3 ) to points (X 1 , Y 1) , Z 1 ) Substituting the double part,
The above algorithm ECADD is calculated with points (X 1 , Y 1 , Z 1 ), (X Q , Y Q , 1) as inputs, and points (X 1 , Y 1 , Z 1 ) and points (X Q , Y Q) , 1) and the point (X 3 , Y 3 , Z 3 ) added on the elliptic curve E, and the elliptic addition part to obtain the above values Λ n , λ d ,
Using the above values f, Λ n , Z 3 , points (x P , y P ), (X Q , Y Q , 1), L ADD ← y P Z 3 + (-x P Λ n + (Λ n) X Q -Y Q Z 3 ))), f ← f ・ L ADD is calculated and the point (X 3 , Y 3 , Z 3 ) is assigned to the point (X 1 , Y 1 , Z 1 ).
The final exponentiation unit that calculates f (p ^ k-1) / r ,
Only including,
For each integer j from n-2 to 0 , when r j = 1, the ellipse doubling part, the doubling part, the ellipse addition part, and the addition part are executed, and in other cases. Executes the elliptical double unit and the double unit,
Pairing arithmetic unit.
ECDBLを楕円曲線上の一点を入力とし、当該点を楕円曲線上で二倍算した点、および、楕円曲線上の二倍算を演算する過程で計算される値Λn∈Fp^(k/d), λd∈Fpを出力とする、Compressed Jacobian座標系を用いて楕円曲線上の二倍算を演算するアルゴリズムとし、
ECADDを楕円曲線上の二点を入力とし、当該二点を楕円曲線上で加算した点、および、楕円曲線上の加算を演算する過程で計算される値Λn∈Fp^(k/d), λd∈Fpを出力とする、Compressed Jacobian座標系を用いて楕円曲線上の加算を演算するアルゴリズムとし、
初期化部と楕円二倍算部と二倍算部と楕円加算部と加算部と最終冪演算部とを含むペアリング演算装置が、楕円曲線E(Fp)上の点P=(xP, yP)と楕円曲線E(Fp^(k/d))上の点Q=(XQ, YQ)とのペアリングe(P, Q)を演算するペアリング演算方法であって、
初期化部が、値fに1を、点(X1, Y1, Z1)に点(XQ, YQ, 1)を代入し、
楕円二倍算部が、点(X1, Y1, Z1)を入力として上記アルゴリズムECDBLを演算し、点(X1, Y1, Z1)を楕円曲線E上で二倍算した点(X3, Y3, Z3)および上記値Λn, λdを得、
二倍算部が、上記値f, Λn, λd, Z3, 点(xP, yP), (X1, Y1, Z1)を用いて、L DBL ←yPZ1 2Z3+(-xPΛnZ1 2+(ΛnX1-Y1λd)), f←f2・L DBL を演算し、点(X3, Y3, Z3)を点(X1, Y1, Z1)に代入し、
楕円加算部が、点(X1, Y1, Z1), (XQ, YQ, 1)を入力として上記アルゴリズムECADDを演算し、点(X1, Y1, Z1)と点(XQ, YQ, 1)とを楕円曲線E上で加算した点(X3, Y3, Z3)および上記値Λn, λdを得、
加算部が、上記値f, Λn, Z3, 点(xP, yP), (XQ, YQ, 1)を用いて、L ADD ←yPZ3+(-xPΛn+(ΛnXQ-YQZ3)), f←f・L ADD を演算し、点(X3, Y3, Z3)を点(X1, Y1, Z1)に代入し、
最終冪演算部が、f(p^k-1)/rを演算し、
n-2から0までの各整数jについて、r j =1のときは、上記楕円二倍算部と上記二倍算部と上記楕円加算部と上記加算部とを実行し、それ以外のときは、上記楕円二倍算部と上記二倍算部とを実行する、
ペアリング演算方法。 p, and prime r, and order embedded a k, a d a positive integer, the E is an elliptic curve, the F p a finite field of order p, F p ^ (k / d) the position number p k Let / d be a finite field, let F p ^ k be a finite field of order p k , let G 1 be a subgroup of order r on the order curve E (F p ), and let G 2 be the order curve E (F p). ^ (k / d) ) Let the subgroup of the order r on, G 3 be the subgroup of the order r on the finite field F p ^ k , and let e be the pairing of G 1 × G 2 → G 3 , N is the number of digits when the order r is expressed in binary, and r 0 ,…, r n-1 is the value of each digit when the order r is expressed in binary.
ECDBL is input to one point on the elliptic curve, the point obtained by doubling the point on the elliptic curve, and the value calculated in the process of calculating the doubling on the elliptic curve Λ n ∈ F p ^ (k) As an algorithm that calculates double on an elliptic curve using the Compressed Jacobian coordinate system that outputs / d) , λ d ∈ F p .
ECADD is input to two points on the elliptic curve, the points obtained by adding the two points on the elliptic curve, and the value calculated in the process of calculating the addition on the elliptic curve Λ n ∈ F p ^ (k / d) ) , λ d ∈ F p, as an algorithm that calculates addition on an elliptic curve using the Compressed Jacobian coordinate system.
The pairing arithmetic unit including the initialization part, the elliptic double calculation part, the double calculation part, the elliptical addition part, the addition part, and the final power calculation part is a point P = (x P ) on the elliptic curve E (F p ). , y P ) and the point Q = (X Q , Y Q ) on the elliptic curve E (F p ^ (k / d) ) pairing e (P, Q) is a pairing calculation method. ,
The initialization part substitutes 1 for the value f and the point (X Q , Y Q , 1) for the point (X 1 , Y 1 , Z 1 ).
The elliptic double unit calculates the above algorithm ECDBL with the points (X 1 , Y 1 , Z 1 ) as inputs, and doubles the points (X 1 , Y 1 , Z 1 ) on the elliptic curve E. Obtain (X 3 , Y 3 , Z 3 ) and the above values Λ n , λ d ,
The double calculation part uses the above values f, Λ n , λ d , Z 3 , points (x P , y P ), (X 1 , Y 1 , Z 1 ), and L DBL ← y P Z 1 2 Z 3 + (-x P Λ n Z 1 2 + (Λ n X 1 -Y 1 λ d )), f ← f 2・ L Calculate DBL and point points (X 3 , Y 3 , Z 3 ). Substitute in (X 1 , Y 1 , Z 1 ) and
The elliptic addition part calculates the above algorithm ECADD with points (X 1 , Y 1 , Z 1 ), (X Q , Y Q , 1) as inputs, and points (X 1 , Y 1 , Z 1 ) and points ( The point (X 3 , Y 3 , Z 3 ) obtained by adding X Q , Y Q , 1) on the elliptic curve E and the above values Λ n , λ d are obtained.
The adder uses the above values f, Λ n , Z 3 , points (x P , y P ), (X Q , Y Q , 1) and L ADD ← y P Z 3 + (-x P Λ n). + (Λ n X Q -Y Q Z 3 )), f ← f ・ L ADD is calculated and the point (X 3 , Y 3 , Z 3 ) is substituted for the point (X 1 , Y 1 , Z 1 ). ,
The final power of calculation unit, calculates the f (p ^ k-1) / r,
For each integer j from n-2 to 0 , when r j = 1, the ellipse doubling part, the doubling part, the ellipse addition part, and the addition part are executed, and in other cases. Executes the elliptical double unit and the double unit,
Pairing calculation method.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017044529A JP6777569B2 (en) | 2017-03-09 | 2017-03-09 | Pairing arithmetic unit, pairing arithmetic method, and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017044529A JP6777569B2 (en) | 2017-03-09 | 2017-03-09 | Pairing arithmetic unit, pairing arithmetic method, and program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2018146903A JP2018146903A (en) | 2018-09-20 |
| JP6777569B2 true JP6777569B2 (en) | 2020-10-28 |
Family
ID=63588831
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017044529A Active JP6777569B2 (en) | 2017-03-09 | 2017-03-09 | Pairing arithmetic unit, pairing arithmetic method, and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6777569B2 (en) |
-
2017
- 2017-03-09 JP JP2017044529A patent/JP6777569B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2018146903A (en) | 2018-09-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5562475B2 (en) | Secret sharing system, distributed device, distributed management device, acquisition device, processing method thereof, secret sharing method, program | |
| US8897442B2 (en) | Encryption device, decryption device, encryption method, decryption method, program, and recording medium | |
| JP6095792B2 (en) | Secret bit decomposition apparatus, secret modulus conversion apparatus, secret bit decomposition method, secret modulus conversion method, program | |
| JP5379914B2 (en) | Secret sharing system, distributed device, distributed management device, acquisition device, secret sharing method, program, and recording medium | |
| US8515060B2 (en) | Encryption apparatus, decryption apparatus, encryption method, decryption method, security method, program, and recording medium | |
| US8111826B2 (en) | Apparatus for generating elliptic curve cryptographic parameter, apparatus for processing elliptic curve cryptograph, program for generating elliptic curve cryptographic parameter, and program for processing elliptic cyptograph | |
| CN105027180B (en) | Secure computing system, computing device, and secure computing method | |
| Bunder et al. | A new attack on three variants of the RSA cryptosystem | |
| JP2001526416A (en) | Conversion method for optimization of elliptic curve encryption operation | |
| Di Giusto et al. | Breaking the power-of-two barrier: noise estimation for BGV in NTT-friendly rings | |
| JP6777569B2 (en) | Pairing arithmetic unit, pairing arithmetic method, and program | |
| Barbulescu | A brief history of pairings | |
| JP5506633B2 (en) | Proxy calculation system, terminal device, proxy calculation device, proxy calculation method, and program | |
| JP5268066B2 (en) | Conversion operation device, method, program, and recording medium | |
| Nimbalkar | The digital signature schemes based on two hard problems: factorization and discrete logarithm | |
| Mihailescu et al. | Blockchain search using searchable encryption based on elliptic curves | |
| Yasuda | Multivariate encryption schemes based on the constrained MQ problem | |
| JP5449214B2 (en) | Information sharing method, information sharing system, information sharing apparatus, and program | |
| Inoue et al. | A faster variant of cgl hash function via efficient backtracking checks | |
| WO2023228408A1 (en) | Parameter generation system, parameter generation method, and parameter generation program | |
| Oussama et al. | Software implementation of pairing based cryptography on FPGA | |
| Sharma et al. | Boneh-Franklin IBE | |
| Buell | Homomorphic encryption | |
| Mehibel et al. | A new key agreement method for symmetric encryption using elliptic curves | |
| Menaka et al. | A Non-Adjacent Form (NAF) Based ECC for Scalar Multiplication that Assure Computation Reduction on Outsourcing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190304 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200129 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200310 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200507 |
|
| 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: 20201006 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201008 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6777569 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |