JP2007286380A - Finite commutative group operation method, device, and program for the same - Google Patents
Finite commutative group operation method, device, and program for the same Download PDFInfo
- Publication number
- JP2007286380A JP2007286380A JP2006114046A JP2006114046A JP2007286380A JP 2007286380 A JP2007286380 A JP 2007286380A JP 2006114046 A JP2006114046 A JP 2006114046A JP 2006114046 A JP2006114046 A JP 2006114046A JP 2007286380 A JP2007286380 A JP 2007286380A
- Authority
- JP
- Japan
- Prior art keywords
- pseudo
- finite
- calculation
- inverse element
- coordinate system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
Description
本発明は、有限可換群の元の群演算を行う技術に関する。 The present invention relates to a technique for performing an original group operation of a finite commutative group.
有限体上定義された代数曲線(以下、特に断りが無い限り、単に代数曲線と云えば、有限体上定義された代数曲線を云うものとする。)を用いた公開鍵暗号やデジタル署名などでは、代数曲線上で定義された有限可換群の元の群演算が行われる。例えば、数論的問題を解くことに要する計算量を安全性の根拠とする暗号アルゴリズムを代数曲線上に構築する場合、このような数論的問題として離散対数問題がある。離散対数問題は、Gを有限可換群、α、βをGの元、NをGの位数とした場合、α=nβを満たすn∈ZNを求める問題である。この例ではα=nβ=β+β+・・・+β(βをn回加算するスカラー倍演算である。)なる演算が群演算で表現される。そして、この群演算は、代数曲線が定義される有限体の演算で構成される。 In public key cryptography and digital signatures using algebraic curves defined on finite fields (hereinafter, unless otherwise noted, simply algebraic curves are algebraic curves defined on finite fields) The original group operation of the finite commutative group defined on the algebraic curve is performed. For example, when a cryptographic algorithm based on an algebraic curve based on the amount of calculation required to solve a number theoretic problem is constructed on an algebraic curve, there is a discrete logarithm problem as such a number theoretic problem. The discrete logarithm problem is a problem of finding n∈Z N satisfying α = nβ where G is a finite commutative group, α and β are elements of G, and N is the order of G. In this example, α = nβ = β + β +... + Β (a scalar multiplication operation in which β is added n times) is expressed by a group operation. And this group operation is comprised by the operation of the finite field in which an algebraic curve is defined.
理解を容易にするため、具体的な一例を挙げて説明する。
有限体上定義された代数曲線の一例として有限体GF(qm)上定義された楕円曲線を選択する〔qは素数あるいは素数の冪、mはm>1の整数とする。〕。この楕円曲線は種数1の超楕円曲線であり、有理点集合E(GF(qm))は有限可換群になる〔式(1)参照。但し、Affine座標系のワイエルシュトラス形式で、標数q≠2且つq≠3且つ4a3+27b2≠0とし、点Oは無限遠点とする。〕。
An elliptic curve defined on a finite field GF (q m ) is selected as an example of an algebraic curve defined on a finite field [q is a prime number or a power of a prime number, and m is an integer of m> 1. ]. This elliptic curve is a
このとき楕円離散対数問題は、P∈E(GF(qm))、Q∈E(GF(qm))、k∈Z/qmZに対して、Q=kP=P+P+・・・+P(Pをk回加算する楕円スカラー倍演算である。)を満たすkを求める問題になる。 At this time, the elliptic discrete logarithm problem is that P∈E (GF (q m )), Q∈E (GF (q m )), k∈Z / q m Z, Q = kP = P + P +. This is a problem of finding k that satisfies (an elliptic scalar multiplication operation in which P is added k times).
楕円スカラー倍演算は、一般に楕円曲線上の点の加算および2倍算から構成される。楕円曲線上の点の加算および2倍算は、それぞれ曲線が定義される有限体の四則演算から構成される。 The elliptic scalar multiplication is generally composed of addition of points on an elliptic curve and doubling. The addition and doubling of points on an elliptic curve are each composed of four arithmetic operations of a finite field in which the curve is defined.
点R1(x1,y1)、点R2(x2,y2)および点R3(x3,y3)を楕円曲線上の点とする。x1=x2且つy1=−y2ならばR1+R2=O(無限遠点)とするが、そうでない場合には、R1+R2=R3とする。このとき式(2)が成立する。P≠Qの場合が楕円加算公式、P=Qの場合が楕円2倍算公式である。
Affine座標系における楕円加算公式のアルゴリズム(演算手順)の一例およびその演算コストを図1に示す。入力:(x1,y1)∈GF(qm)2,(x2,y2)∈GF(qm)2、出力:(x3,y3)∈GF(qm)2として、図左側に実際の演算内容を示している。また、Iを有限体上逆元の演算コスト、Mを有限体上乗算の演算コスト、Sを有限体上自乗の演算コストとして、図右側に演算内容に対応した演算コストの見積もりを示している。なお、有限体上加算または減算または1/2倍算の演算コストは、有限体上逆元の演算コスト、乗算の演算コスト、自乗の演算コストに比して十分に小さいため無視できるので、図に表記していないことに留意すること。また、演算コストの見積もりでは、演算内容に用いる値がそれ以前の演算内容で計算されている場合には、当該値を改めて計算しなおす必要が無いことに留意しなければならない。図1で示した例で説明すると、最初の演算ステップでΛを計算し、2番目および3番目の演算ステップでΛを用いた計算をしているが、最初の演算ステップで計算したΛをメモリなどの記憶手段に格納しておき、2番目および3番目の演算ステップでΛを記憶手段から読み込むことでΛの再計算を避けることができる。 An example of the algorithm (calculation procedure) of the ellipse addition formula in the Affine coordinate system and its calculation cost are shown in FIG. Input: (x 1 , y 1 ) ∈GF (q m ) 2 , (x 2 , y 2 ) ∈GF (q m ) 2 , Output: (x 3 , y 3 ) ∈GF (q m ) 2 The actual calculation content is shown on the left side of the figure. In addition, the calculation cost corresponding to the calculation contents is shown on the right side of the figure, where I is the calculation cost of the inverse element on the finite field, M is the calculation cost of multiplication on the finite field, and S is the calculation cost of square on the finite field. . Note that the calculation cost of addition or subtraction on a finite field or 1/2 multiplication is negligible because it is sufficiently smaller than the calculation cost of the inverse element on the finite field, the calculation cost of multiplication, and the calculation cost of square. Please note that it is not described in. In addition, in the calculation of the calculation cost, it should be noted that when the value used for the calculation content is calculated based on the previous calculation content, it is not necessary to recalculate the value. In the example shown in FIG. 1, Λ is calculated in the first calculation step and Λ is calculated in the second and third calculation steps, but Λ calculated in the first calculation step is stored in the memory. It is possible to avoid recalculation of Λ by storing Λ in the storage means and reading Λ from the storage means in the second and third calculation steps.
同様に、Affine座標系における楕円2倍算公式のアルゴリズム(演算手順)の一例およびその演算コストを図2に示す。但し、入力:(x1,y1)∈GF(qm)2、出力:(x3,y3)∈GF(qm)2である。演算コストの記号は既述のとおりである。 Similarly, FIG. 2 shows an example of an algorithm (calculation procedure) of an elliptic doubling formula in the Affine coordinate system and its calculation cost. However, input: (x 1 , y 1 ) εGF (q m ) 2 and output: (x 3 , y 3 ) εGF (q m ) 2 . The calculation cost symbols are as described above.
図1および図2から明らかなように、上記楕円加算を1回実行するのに有限体上の逆元1回、乗算2回、自乗1回の演算が必要であり、上記楕円2倍算を1回実行するのに有限体上の逆元1回、乗算2回、自乗2回の演算が必要である。 As is clear from FIG. 1 and FIG. 2, in order to execute the ellipse addition once, it is necessary to perform an inverse element on the finite field, one multiplication, and one squaring. In order to execute once, it is necessary to perform an inverse element once on the finite field, two multiplications, and two squares.
有限体上の逆元の演算は、一般には有限体上の乗算に比して実装が複雑で、速度も遅いという問題がある。そこで、楕円曲線上の点を(x,y)という2つの有限体の元ではなく3つ以上の有限体の元によって表現する事によって逆元演算を回避する方法が様々に考案されている。つまり、Affine座標系で表現された楕円曲線を射影座標系で表現された楕円曲線に変換するのである。 Inverse element operations on a finite field are generally more complex to implement and slower than multiplications on a finite field. Therefore, various methods have been devised for avoiding the inverse operation by expressing the points on the elliptic curve not by two finite field elements (x, y) but by three or more finite field elements. That is, the elliptic curve expressed in the Affine coordinate system is converted into the elliptic curve expressed in the projective coordinate system.
例えば射影座標系の一つであるJacobian座標系は、有限体の3つの元による表現手法であり、Affine座標(x,y)はZ≠0なる同じ有限体上の任意のZによってJacobian座標(xZ2,yZ3,Z)に変換できる。逆にZ≠0なるJacobian座標(X,Y,Z)が与えられたとき(X/Z2,Y/Z3)によっていつでも対応するAffine座標を求めることが出来る(非特許文献1参照。)。 For example, the Jacobian coordinate system, which is one of the projected coordinate systems, is a representation method based on three elements of a finite field, and the Affine coordinates (x, y) are Jacobian coordinates ( xZ 2 , yZ 3 , Z). Conversely, when Jacobian coordinates (X, Y, Z) with Z ≠ 0 are given (X / Z 2 , Y / Z 3 ), the corresponding Affine coordinates can be obtained at any time (see Non-Patent Document 1). .
Jacobian座標系における楕円加算公式のアルゴリズム(演算手順)の一例およびその演算コストを図3に示す。但し、入力:(X1,Y1,Z1)∈GF(qm)3,(X2,Y2,Z2)∈GF(qm)3、出力:(X3,Y3,Z3)∈GF(qm)3である。演算コストの記号は既述のとおりである。
同様に、Jacobian座標系における楕円2倍算公式のアルゴリズム(演算手順)の一例およびその演算コストを図4に示す。但し、入力:(X1,Y1,Z1)∈GF(qm)3、出力:(X3,Y3,Z3)∈GF(qm)3である。演算コストの記号は既述のとおりである。
An example of the algorithm (calculation procedure) of the ellipse addition formula in the Jacobian coordinate system and its calculation cost are shown in FIG. However, input: (X 1 , Y 1 , Z 1 ) ∈GF (q m ) 3 , (X 2 , Y 2 , Z 2 ) ∈GF (q m ) 3 , output: (X 3 , Y 3 , Z 3 ) ∈ GF (q m ) 3 The calculation cost symbols are as described above.
Similarly, FIG. 4 shows an example of an algorithm (calculation procedure) of the elliptic doubling formula in the Jacobian coordinate system and its calculation cost. However, the input is (X 1 , Y 1 , Z 1 ) εGF (q m ) 3 , and the output is (X 3 , Y 3 , Z 3 ) εGF (q m ) 3 . The calculation cost symbols are as described above.
Jacobian座標系では、一般の楕円加算を1回実行するのに有限体上の乗算12回、自乗4回の演算が必要であり、Z2=1の場合では楕円加算を1回実行するのに有限体上の乗算8回、自乗3回の演算が必要である。また、一般の楕円2倍算を1回実行するのに有限体上の乗算4回、自乗6回の演算が必要であり、a=−3の場合では楕円2倍算を1回実行するのに有限体上の乗算4回、自乗4回の演算が必要である。 In the Jacobian coordinate system, in order to execute general ellipse addition once, 12 multiplications and 4 square operations on a finite field are required. When Z 2 = 1, ellipse addition is executed once. It is necessary to perform 8 multiplications and 3 squaring operations on a finite field. In addition, in order to execute general elliptic doubling once, four multiplications and six squares on a finite field are required. When a = -3, elliptic doubling is executed once. In addition, 4 multiplications and 4 squaring operations on a finite field are required.
上記の楕円加算の例で説明すれば、Affine座標系ではΛの算出に逆元演算を要していた〔Λ=(y2−y1)/(x2−x1)=(y2−y1)×(x2−x1)−1である。〕。仮に、Affine座標系でのΛの分子を被除数Λn=y2−y1とし、Affine座標系でのΛの分母を除数Λd=x2−x1とし、それぞれ独立に演算するとしても、Affine座標系では除数Λdの逆元の演算を避けることができない〔Λ=Λn×Λd −1である。〕。 In the case of the above ellipse addition, in the Affine coordinate system, an inverse element operation is required for calculating Λ [Λ = (y 2 −y 1 ) / (x 2 −x 1 ) = (y 2 − y 1) × (x 2 -x 1) -1. ]. If the Λ numerator in the Affine coordinate system is the dividend Λ n = y 2 −y 1 and the Λ denominator in the Affine coordinate system is the divisor Λ d = x 2 −x 1 , In the Affine coordinate system, the inverse operation of the divisor Λ d cannot be avoided [Λ = Λ n × Λ d −1 . ].
これに対してJacobian座標系では、Affine座標系でのΛを座標変換したものの分子相当Y′2−Y′1を被除数Λnとし、Affine座標系でのΛを座標変換したものの分母相当X′2−X′1を除数Λdとし、それぞれ独立に演算するとし、除数Λdを拡大座標〔射影座標系の座標のうちAffine座標系の座標を除く座標であるとする。Jacobian座標系では第3座標Zに相当する。〕に関連付けることで、除数Λdの逆元演算を回避している。なお、Affine座標系でのΛをJacobian座標系へ変換したΛJacobianは、適当な関数fをもってΛJacobian=(Y′2−Y′1)/(X′2−X′1)×f(Z1,Z2)と表されるので、Y′2−Y′1を「分子相当」、X′2−X′1を「分母相当」と呼んでいる。
このことは上記の楕円2倍算の例でも同様であり、また、Jacobian座標系だけでなくProjective座標系やChudnovsky座標系などの射影座標系でも同様である〔但し、常にΛn=Y′2−Y′1、Λd=X′2−X′1という趣旨ではない。〕。
On the other hand, in the Jacobian coordinate system, Λ in the Affine coordinate system is transformed and the numerator equivalent Y ′ 2 -Y ′ 1 is used as the dividend Λ n, and Λ in the Affine coordinate system is transformed into the denominator equivalent X ′. the 2 -X '1 and divisor lambda d, and calculates independently the the coordinates except the coordinates of Affine coordinate system of the coordinates of the enlarged coordinates [projective coordinate system divisor lambda d. This corresponds to the third coordinate Z in the Jacobian coordinate system. ], The inverse operation of the divisor Λ d is avoided. Note that Λ Jacobian obtained by converting Λ in the Affine coordinate system into the Jacobian coordinate system has Λ Jacobian = (Y ′ 2 −Y ′ 1 ) / (X ′ 2 −X ′ 1 ) × f (Z 1 , Z 2 ), Y ′ 2 -Y ′ 1 is called “corresponding to the numerator” and X ′ 2 -X ′ 1 is called “corresponding to the denominator”.
This is the same in the above-described example of elliptic doubling, and also in the projective coordinate system such as the Projective coordinate system and the Chudnovsky coordinate system as well as the Jacobian coordinate system [however, always Λ n = Y ′ 2 It does not mean that -Y ′ 1 , Λ d = X ′ 2 −X ′ 1 . ].
上記の各例から分かるように、Jacobian座標系では、Affine座標系の場合に比して逆元演算を回避できるものの、乗算や自乗の演算コストが増加する。
有限体上定義された楕円曲線の楕円加算および楕円2倍算で例示説明したが、一般的には、有限体上定義された代数曲線上の点が成す有限可換群の元の群演算では、Affine座標系において有限体上の逆元演算が不可避である。これに対して、代数曲線を射影座標系に変換することで群演算に表れる有限体上の逆元演算を回避することができる。
しかし、このような回避方法では、有限体上の逆元演算を回避することはできても乗算や自乗の演算コストが大きくなるという問題があった。
Although illustrated by elliptic addition and elliptic doubling of elliptic curves defined on a finite field, in general, in the original group operation of a finite commutative group formed by points on an algebraic curve defined on a finite field In the Affine coordinate system, an inverse operation on a finite field is inevitable. On the other hand, by converting the algebraic curve into the projective coordinate system, it is possible to avoid the inverse element operation on the finite field that appears in the group operation.
However, such an avoidance method has a problem that even if the inverse element operation on the finite field can be avoided, the operation cost of multiplication and square increases.
そこで本発明は、上記の問題点に鑑み、有限体上定義された代数曲線上の点が成す有限可換群の元の群演算(有限可換群演算)であって、逆元演算を回避しつつ演算や自乗の演算コストを低減した有限可換群演算方法、装置、プログラムを提供することを目的とする。 In view of the above problems, the present invention is an original group operation (finite commutative group operation) of a finite commutative group formed by points on an algebraic curve defined on a finite field, and avoids an inverse element operation. It is another object of the present invention to provide a finite commutative group calculation method, apparatus, and program that reduce the calculation cost of calculation and square.
上記課題を解決するために、本発明は、次のような構成とする。即ち、有限体GF(qm)〔但し、qは素数または素数の冪、mはm>1の整数とする。〕の元pに対して、N(p)=v(p)×p〔但し、N(p)は有限体GF(qm)の部分体の元とし、v(p)は有限体GF(qm)の元とする。〕を満たす擬似逆元v(p)を算出する擬似逆元演算手段と、補擬似逆元N(p)を算出する補擬似逆元演算手段とを備える。そして、有限体GF(qm)上定義された代数曲線〔射影座標系で表現されるとする。〕上の点が成す有限可換群の元の群演算を、有限体GF(qm)上の除算に表れる除数および被除数を独立に演算するとし、除数を拡大座標〔上記射影座標系の座標のうちAffine座標系の座標を除く座標であるとする。〕に関連付けることで、上記群演算における除数の逆元演算を回避して行う有限可換群演算であって、擬似逆元演算手段が擬似逆元を算出し、補擬似逆元演算手段が補擬似逆元を算出して、擬似逆元を被除数に含め、補擬似逆元を除数する。
このように、有限体GF(qm)の元である擬似逆元v(p)および有限体GF(qm)の部分体の元である補擬似逆元N(p)を算出して、擬似逆元を被除数に含め、補擬似逆元を除数とするのである。
In order to solve the above problems, the present invention is configured as follows. That is, a finite field GF (q m ) [where q is a prime number or a power of a prime number, and m is an integer of m> 1. ] N (p) = v (p) × p [where N (p) is an element of a finite field GF (q m ) and v (p) is a finite field GF ( q m ). ] Pseudo inverse element calculation means for calculating pseudo inverse element v (p) satisfying the above and complementary pseudo inverse element calculation means for calculating complementary inverse element N (p). An algebraic curve defined on the finite field GF (q m ) [suppose that it is expressed in a projective coordinate system. ] The original group operation of the finite commutative group formed by the above points is calculated by dividing the divisor and the dividend appearing in the division on the finite field GF (q m ) independently, and the divisor is expanded coordinates [coordinates of the above projective coordinate system] Are coordinates excluding the coordinates of the Affine coordinate system. ] Is a finite commutative group operation that avoids the inverse operation of the divisor in the above group operation, the pseudo inverse element calculation means calculates the pseudo inverse element, and the complementary pseudo inverse element calculation means complements it. The pseudo inverse element is calculated, the pseudo inverse element is included in the dividend, and the complementary pseudo inverse element is divided.
Thus, by calculating the finite GF (q m) is the original pseudo inverse element v (p) and finite GF (q m) is a part of the original auxiliary pseudo inverse element N (p), The pseudo inverse element is included in the dividend and the complementary pseudo inverse element is used as the divisor.
また、射影座標系で表現された代数曲線上の点の拡大座標を有限体GF(qm)の部分体の元で与えるとしてもよい。
これは補擬似逆元N(p)の属する体によって拡大座標の元を与えることができることを意味し、有限体GF(qm)の部分体上での演算を可能とする。つまり、部分体上の演算コストで演算することができる。
Further, the enlarged coordinates of the points on the algebraic curve expressed in the projective coordinate system may be given under the subfield of the finite field GF (q m ).
This means that the element of the enlarged coordinate can be given by the field to which the complementary pseudo-inverse element N (p) belongs, and the calculation on the subfield of the finite field GF (q m ) is possible. That is, it is possible to calculate at a calculation cost on the partial body.
また、補擬似逆元N(p)は、有限体GF(pm)上の元pのノルムであるとしてもよい。そして、ノルムとして補擬似逆元N(p)を式(r1)で表し、擬似逆元v(p)を式(r2)で表すとしてもよい。
有限体GF(pm)上の元pのノルムは、有限体GF(pm)の部分体の元を与えることができる。
Norm of the original p over a finite GF (p m) can provide the original portion of the finite field GF (p m).
式(r2)で表される擬似逆元v(p)の各項pθ〔但しθ=qiとする。〕をフロベニウス写像によって求めるとしてもよく、式(r2)で表される擬似逆元v(p)を式(r3)と表現し、式(r3)に表れるpuを加算連鎖によって求めるとしてもよい。
群演算を加算演算および/または2倍演算とすると、例えばスカラー倍演算は加算演算および/または2倍演算で構成されるから、効率の良いスカラー倍演算の実現に寄与する。 If the group operation is an addition operation and / or a doubling operation, for example, the scalar doubling operation is constituted by an adding operation and / or a doubling operation, which contributes to the realization of an efficient scalar doubling operation.
また、本発明の有限可換群演算装置としてコンピュータを機能させる有限可換群演算プログラムによって、コンピュータを有限可換群演算装置として作動処理させることができる。 Further, the computer can be operated as a finite commutative group computing device by a finite commutative group computing program that causes the computer to function as the finite commutative group computing device of the present invention.
本発明によれば、有限体上定義された代数曲線上の点が成す有限可換群の元の群演算(有限可換群演算)において、有限体GF(qm)の元である擬似逆元v(p)および有限体GF(qm)の部分体の元である補擬似逆元N(p)を算出して、擬似逆元v(p)を被除数に含め、補擬似逆元N(p)を除数とする。有限体GF(qm)の部分体の元である補擬似逆元N(p)の算出は、有限体GF(qm)上の乗算や自乗の演算コストよりも小さい。また、擬似逆元v(p)の算出は、有限体GF(qm)上の逆元の演算コストよりも小さく、さらに効率の良い演算方法も存在する。従って、逆元演算を回避しつつ演算や自乗の演算コストを低減した有限可換群演算が可能である。 According to the present invention, in an original group operation (finite finite commutative group operation) of a finite commutative group formed by points on an algebraic curve defined on a finite field, a pseudo inverse that is an element of a finite field GF (q m ). A complementary pseudo-inverse element N (p) that is an element of a subfield of the element v (p) and the finite field GF (q m ) is calculated, and the pseudo-inverse element v (p) is included in the dividend to obtain the complementary pseudo-inverse element N Let (p) be a divisor. Calculation of the finite field GF (q m) of the portion of the original in which the auxiliary pseudo inverse element N (p) is a finite field GF (q m) is smaller than the computational cost of multiplication and square on. In addition, the calculation of the pseudo inverse element v (p) is smaller than the calculation cost of the inverse element on the finite field GF (q m ), and there is a more efficient calculation method. Therefore, it is possible to perform a finite commutative group calculation with reduced calculation cost and square calculation cost while avoiding the inverse element calculation.
《理論》
部分体を持つ有限体には擬似逆元演算と呼ばれる演算を定義できる。
<擬似逆元演算>
擬似逆元演算とは、qを素数または素数の冪、mをm>1の整数として、有限体GF(qm)上の元xに対してN(x)=x×v(x)なる(v(x),N(x))を出力する演算である。但し、v(x)は有限体GF(qm)の元とし、N(x)は有限体GF(qm)の部分体GF(ξ)の元とする。
ここでは、v(x)を擬似逆元、N(x)を補擬似逆元と呼ぶことにする。
"theory"
An operation called a pseudo inverse element operation can be defined for a finite field having a subfield.
<Pseudo inverse operation>
The pseudo inverse element operation is N (x) = x × v (x) with respect to an element x on a finite field GF (q m ) where q is a prime number or a prime power and m is an integer of m> 1. This is an operation for outputting (v (x), N (x)). However, v (x) is an element of a finite field GF (q m ), and N (x) is an element of a subfield GF (ξ) of the finite field GF (q m ).
Here, v (x) is referred to as a pseudo inverse element and N (x) is referred to as a complementary pseudo inverse element.
擬似逆元v(x)および補擬似逆元N(x)を用いると、xの逆元x−1は、v(x)×N(x)−1で与えられる。換言すれば、逆元x−1は被除数v(x)を分子とし、除数N(x)を分母とした除算として与えられる。
このことに着眼すると、Jacobian座標系における楕円加算の例で説明すれば、被除数Λnをv(X′2−X′1)×(Y′2−Y′1)とし、除数λdをN(X′2−X′1)とし、それぞれ独立に演算するとし、除数λd、つまり補擬似逆元N(X′2−X′1)を拡大座標に関連付けることで、除数λdの逆元演算を回避できることになる〔x=X′2−X′1と考えればよい。〕。このことは、Jacobian座標系における楕円2倍算の場合は勿論、他の射影座標系や代数曲線などでも同様である。但し、常にΛn=v(X′2−X′1)×(Y′2−Y′1)、λd=N(X′2−X′1)という趣旨ではない。例えば、Projective座標系の楕円2倍算の場合、λd=N(2Y1)×z1で与えられる。ただ、この場合でも、λd=N(2Y1)、λ′d=λd×z1で与える構成としてもよく、このようにしても全体の演算コストは変わらない。要は、被除数Λnにv(X′2−X′1)を含め、除数λdをN(X′2−X′1)として、それぞれ独立に演算を行うとし、さらに、補擬似逆元である除数λdを拡大座標に関連付けることで、除数λdの逆元演算を回避するのである。
Using the pseudo inverse element v (x) and the complementary pseudo inverse element N (x), the inverse element x −1 of x is given by v (x) × N (x) −1 . In other words, the inverse element x −1 is given as a division with the dividend v (x) as the numerator and the divisor N (x) as the denominator.
Focusing on this, in the example of elliptic addition in the Jacobian coordinate system, the dividend Λ n is v (X ′ 2 −X ′ 1 ) × (Y ′ 2 −Y ′ 1 ), and the divisor λ d is N (X '2 -X' 1) and then, a computed independently, by associating the divisor lambda d, i.e. the complement pseudo inverse N to (X '2 -X' 1) expand coordinates, inverse of the divisor lambda d The original calculation can be avoided [x = X ′ 2 −X ′ 1 may be considered. ]. This is the same not only in the case of elliptic doubling in the Jacobian coordinate system but also in other projective coordinate systems and algebraic curves. However, it does not always mean that Λ n = v (X ′ 2 −X ′ 1 ) × (Y ′ 2 −Y ′ 1 ), λ d = N (X ′ 2 −X ′ 1 ). For example, in the case of elliptic doubling in the Projective coordinate system, λ d = N (2Y 1 ) × z 1 is given. However, even in this case, the configuration may be given by λ d = N (2Y 1 ) and λ ′ d = λ d × z 1 , and even in this case, the overall calculation cost does not change. In short, it is assumed that v (X ′ 2 −X ′ 1 ) is included in the dividend Λ n and that the divisor λ d is N (X ′ 2 −X ′ 1 ), and that each operation is performed independently. By associating the divisor λ d with the enlarged coordinates, the inverse operation of the divisor λ d is avoided.
このような擬似逆元演算を用いた逆元演算回避手法の場合、従来の逆元演算回避手法に比較して、擬似逆元v(x)および補擬似逆元N(x)の演算コストが必要になる。擬似逆元演算には効率良く演算する方法が存在するので、その一例を説明する。 In the case of the inverse element avoidance technique using such a pseudo inverse element operation, the operation cost of the pseudo inverse element v (x) and the complementary pseudo inverse element N (x) is lower than that of the conventional inverse element avoidance technique. I need it. Since there is a method for efficiently performing the pseudo inverse element calculation, an example will be described.
擬似逆元演算を効率良く演算する方法の一つに、例えばqn乗写像(フロベニウス写像)を用いる方法がある。ここでは説明の便宜から、有限体GF(qm)の部分体GF(ξ)を有限体GF(q)として説明する。 One method for efficiently performing the pseudo inverse element calculation is a method using, for example, a qn- th power map (Frobenius map). Here, for convenience of explanation, a partial field GF (ξ) of a finite field GF (q m ) will be described as a finite field GF (q).
<qn乗写像を用いた擬似逆元演算>
x∈GF(qm)なるxに対して、式(3)で与えられるzをnormと呼ぶ。norm zは必ずz∈GF(q)となることが知られている。
For x where x∈GF (q m ), z given by Equation (3) is called norm. It is known that norm z is always z∈GF (q).
式(3)から式(4)を得る。
式(4)をz=xyと看做せば、括弧部分がyに相当する。つまりyは式(5)で表される。このとき、zが補擬似逆元N(x)に相当し、yが擬似逆元v(x)に相当すると考えることができる。
<norm>
norm zは一般にz∈GF(q)が保証されているので、z=xyの演算コストはGF(qm)上の乗算や自乗の演算コストに比べて十分小さい。
<Norm>
Since norm z is generally guaranteed to be z∈GF (q), the operation cost of z = xy is sufficiently smaller than the operation cost of multiplication or square on GF (q m ).
<qn乗写像>
通常、有限体GF(qm)上の元xを表現するのに、有限体GF(q)上のm個の元xi(0≦i<m)が用いられる。m個のxi∈GF(q),(0≦i<m)の組をGF(qm)上の元に対応させる代表的な方法は、m個のαi∈GF(qm),(0≦i<m)の組を使って、式(6)に示す対応を取ることである。
Usually, m elements x i (0 ≦ i <m) on the finite field GF (q) are used to represent the element x on the finite field GF (q m ). A typical method for associating a set of m x i εGF (q), (0 ≦ i <m) with an element on GF (q m ) is m α i εGF (q m ), Using the group (0 ≦ i <m), the correspondence shown in the equation (6) is taken.
このときαi(0≦i<m)は、GF(q)mとGF(qm)とで1対1対応が取れるような組合せでなくてはならない。このαi(0≦i<m)を基底と呼ぶ。 At this time, α i (0 ≦ i <m) must be a combination that allows one-to-one correspondence between GF (q) m and GF (q m ). This α i (0 ≦ i <m) is called a base.
ところで二項定理によれば、式(7)が成立する。
式(7)の右辺の各項の係数(q,i)は二項係数と呼ばれる定数で、i≠0かつi≠qの場合必ずqの倍数となる。a,b∈GF(qm)のときは、qの整数倍は0と同値であるから(GF(qm)の標数はqである。)、式(8)が成立する。
更にc∈GF(q)なるcに関してcq=cが成立する。一般にai∈GF(qm),(0≦i<n)、ci∈GF(q),(0≦i<n)とすると、式(9)が成立する。
従って、αi∈GF(qm)、xi∈GF(q)なるとき、式(6)で表されるxのq乗であるxqは、式(10)で与えられる。
従って事前に式(11)で与えられるcij∈GF(q)が計算してあれば、式(10)は式(12)に書き換えられるから、基底αiを使ったxqの表現Σj=0 m−1cijxiを求めることができる。
即ち、x∈GF(qm)を表現するベクトル(xi)に行列(cij)を掛けるだけで、xqを表現するベクトルが得られる。この演算コストは、一般にはGF(qm)上の乗算1回分の演算コストにほぼ等しい。また、行列(cij)n,(n=2,3,…)を事前に求めておけば、行列(cij)nを掛けるだけでxw〔但し、w=qnとする。〕を表現するベクトルが得られる。あるいは、(cij)-1を事前に求めておけば、(cij)-1を掛けるだけでx1/qを表現するベクトルが得られる。従って、一般の整数nに対してxwの演算コストは、一般にGF(qm)上の乗算1回分の演算コストに等しい。 That is, a vector expressing x q can be obtained simply by multiplying the vector (x i ) expressing x∈GF (q m ) by the matrix (c ij ). This calculation cost is generally equal to the calculation cost for one multiplication on GF (q m ). Further, if the matrix (c ij ) n , (n = 2, 3,...) Is obtained in advance, simply multiplying by the matrix (c ij ) n gives x w [where w = q n . ] Is obtained. Alternatively, if (c ij ) −1 is obtained in advance, a vector expressing x 1 / q can be obtained by simply multiplying by (c ij ) −1 . Thus, computational cost of x w for general integer n is equal to general GF (q m) multiplied batch of computational cost on.
また、基底αiの代表的な選び方として式(13)に示す2つの方法がある。但しβ、γは各々の方法でGF(q)mとGF(qm)とで1対1対応が取れるようなGF(qm)上の元とする。
このような基底を選択する場合に演算コストをさらに低減できることがある。例えば正規基底による方法の場合、基底αiのq乗は式(14)に示す関係にあるから、行列(cij)は式(15)で与えられる。
即ち、入力のm個のxi∈GF(q),(0≦i<m)の順番を並び換えて出力するだけでxqの演算が完了する。xwの演算の場合も同様の並び換えのみで完了する。この並び換えの演算コストは、GF(qm)上の乗算や自乗の演算コストに対して無視できる。 That, m-number of x i ∈GF input (q), the calculation of x q simply outputs rearranged the order of (0 ≦ i <m) is completed. completed only in the same rearrangement is also the case of the operation of x w. The calculation cost of this rearrangement can be ignored with respect to the calculation cost of multiplication or square on GF (q m ).
多項式基底による方法の場合、一般にはxwの演算はGF(qm)上の乗算の演算コストとほぼ等しいが、γとして特別なGF(qm)上の元を選択することによって演算コストを低減できることがある。例えばγがω∈GF(q)に対してγm−ω=0なる関係を持つ場合、基底αiのqn乗は式(16)に示す関係にある。但し、記号[iqn/m]は、iqn/m以下の最大整数を表す。
即ち、入力のm個のxi∈GF(q),(0≦i<m)の各々にω[T]〔但し、T=iqn/mとする。〕を掛けて順番を並び換えて出力するだけでxwの演算が完了する。この演算コストも、GF(qm)上の乗算や自乗の演算コストに対して無視できる。 That is, ω [T] [where T = iq n / m, for each of the input m x i εGF (q), (0 ≦ i <m). ] The over operation of only in the x w and outputs the rearranged the order is completed. This calculation cost is also negligible for the calculation cost of multiplication or square on GF (q m ).
<加算連鎖>
次に、式(5)で表されるyを効率良く計算する方法の一例を説明する。
yは式(17)に変形できる。
Next, an example of a method for efficiently calculating y represented by Expression (5) will be described.
y can be transformed into equation (17).
ここで記号uを式(18)で定義する。
このとき式(17)は式(19)に書き換えられ、xuは式(20)のように計算することができる。
式(20)のような演算を行う際、既述のとおりqi乗演算はGF(qm)上の乗算に比べ高速に演算可能であるから、演算の律速段階となるのはm−2回〔式(20)の右辺の×の個数に相当する。〕実行されるGF(qm)上の乗算である。 When performing an operation such as equation (20), the q i power operation can be performed at a higher speed than the multiplication on GF (q m ) as described above. Times [corresponds to the number of crosses on the right side of equation (20). ] Multiplication on GF (q m ) to be performed.
ところで、例えばm−1=2nだったとすると、uは式(21)のように分解して表すことができる。
この場合、xuを計算する方法として、例えば、式(22)のような演算方法を用いると、n回即ちlog2(m−1)回のGF(qm)上乗算でxuを計算できる。
このような計算方法は、たとえnが2の冪乗数でなかったとしても一般的に構成することが可能であり、一例として次のように構成することができる。
i、j、kを整数として整数(1=)n0,・・・,nr(=m−1)を式(23)で与える。この整数列n0,・・・,nrをm−1の(最適)加算連鎖と呼ぶ。
Integers (1 =) n 0 ,..., n r (= m−1) are given by equation (23) where i, j, and k are integers. This integer sequence n 0 ,..., N r is called an (optimal) addition chain of m−1.
m−1の(最適)加算連鎖を用いてq冪倍を含む(最適)加算連鎖を構成することができる。このq冪倍を含む(最適)加算連鎖は式(24)で与えられる。このとき式(25)が成立している。なお、式(24)のqの冪数nkは式(23)のnkに対応している。
このq冪倍を含む(最適)加算連鎖を用いてxuの計算を次のように実行することができる。まずm−1の(最適)加算連鎖n0,・・・,nrを与える。この(最適)加算連鎖nj=nj+nk(j,k<i)におけるi、j、kの対応に従って、i=0,・・・,rに対して式(26)なる演算によってA0,・・・,Anを求める。このとき式(27)が成立する。
ここで、式(28)が成立するから、Arが求めるxuとなる。
m−1の最短の加算連鎖の長さL(m−1)は最悪でもL(m−1)≦2log2(m−1)に抑えることができる。即ち、Arも最悪2log2(m−1)回程度のGF(qm)上の乗算で求めることができる。一般にxuを効率良く求めたいならば、効率の良いm−1の加算連鎖を与えれば良い。下記参考文献1には1以上100以下の整数の加算回数に関する最適加算連鎖のTree図が掲載されている。そのような加算連鎖を用いることによって、xuの計算を最適化できる。
(参考文献1) Knuth著, "The Art of Computer Programming", VOLUME 2 Seminumerical Algorithms Third Edition, p.465, Addison Wesley, ISBN:O-201-89684-2
The length L (m−1) of the shortest addition chain of m−1 can be suppressed to L (m−1) ≦ 2 log 2 (m−1) at worst. That, A r can also be determined by the worst 2log 2 (m-1) times of about GF (q m) on the multiplication. In general, if it is desired to obtain xu efficiently, an efficient m-1 addition chain may be provided.
(Reference 1) Knuth, "The Art of Computer Programming",
ここでは擬似逆元演算を効率良く演算する方法の一つとして、例えばqn乗写像を用いる方法を示したが、この方法以外にもユークリッドの互除法を用いた方法などもある。
以上の説明から帰納されることとして、有限体GF(qm)の部分体の元である補擬似逆元zは、有限体GF(qm)上の乗算や自乗の演算コストに比して十分に小さい演算コストで計算可能であることが云える。また、擬似逆元yについても、有限体GF(qm)上の逆元の演算コストより小さく効率の良い演算コストで計算可能であることが云える。
Here, as one of the methods for efficiently performing the pseudo inverse element calculation, for example, a method using the qn- th power mapping is shown, but there is a method using the Euclidean mutual division method in addition to this method.
As being induction from the above description, the complement pseudo inverse z subfield is the elements of the finite field GF (q m) is different from the finite GF (q m) computational cost of multiplication and the square of the It can be said that calculation is possible with a sufficiently small calculation cost. Further, it can be said that the pseudo inverse element y can be calculated at an efficient calculation cost that is smaller than the calculation cost of the inverse element on the finite field GF (q m ).
さらに、有限体GF(qm)の部分体の元である補擬似逆元を除数λdとし、除数λdを拡大座標に関連付けることから、拡大座標を有限体GF(qm)の部分体の元で与えることができ、拡大座標を用いた計算について、その演算コストを低減することができる。
このことをJacobian座標系における楕円加算の例で説明すれば、Jacobian座標系の第3座標を有限体GF(qm)の部分体GF(ξ)の元zで与えることができるということである。例えば従来手法におけるZ3←ΛdZ′3なる演算はz3←λdz′3に変更される。この場合、従来手法の場合において有限体GF(qm)上乗算の演算コストであったのが、有限体GF(qm)の部分体GF(ξ)上乗算の演算コストに変更される。有限体GF(qm)の部分体GF(ξ)上乗算の演算コストは、有限体GF(qm)上乗算の演算コストに比較して十分に小さい。従って、従来手法に比して演算コストを低減できる。また、例えば従来手法におけるX"1←X′1Λd 2なる演算はX"1←X′1λd 2に変更される。この場合、従来手法の場合において有限体GF(qm)上の1回の乗算と1回の自乗の演算コストであったのが、有限体GF(qm)の部分体GF(ξ)の元と有限体GF(qm)の元との乗算1回および有限体GF(qm)の部分体GF(ξ)上の自乗1回の演算コストに変更されるので、演算コストを低減できることになる。
このように、拡大座標を有限体GF(qm)の部分体の元で与えることができることから拡大座標を用いる計算の演算コストも低減できる。
Furthermore, the former is a complement pseudo inverse subfields of finite GF (q m) and dividing the number lambda d, from associating the divisor lambda d expansion coordinates, the enlarged coordinate portion of the finite field GF (q m) The calculation cost of the calculation using the enlarged coordinates can be reduced.
If this is explained by an example of elliptic addition in the Jacobian coordinate system, the third coordinate of the Jacobian coordinate system can be given by the element z of the subfield GF (ξ) of the finite field GF (q m ). . For example, the operation Z 3 ← Λ d Z ′ 3 in the conventional method is changed to z 3 ← λ d z ′ 3 . In this case, the calculation cost of multiplication on the finite field GF (q m ) in the case of the conventional method is changed to the calculation cost of multiplication on the partial field GF (ξ) of the finite field GF (q m ). Calculating the cost of the subfield GF (xi]) on the multiplication of the finite field GF (q m) is sufficiently small compared to the computational cost of the finite field GF (q m) on the multiplication. Therefore, the calculation cost can be reduced as compared with the conventional method. Further, for example, the calculation of X " 1 <-X ' 1 Λ d 2 in the conventional method is changed to X" 1 <-X' 1 λ d 2 . In this case, the calculation cost of one multiplication and one square on the finite field GF (q m ) in the case of the conventional method is that of the subfield GF (ξ) of the finite field GF (q m ). since the change back and finite GF (q m) based on the multiplication and once subfield GF (xi]) square one operation cost on the finite field GF (q m) of, being able to reduce the computational cost become.
As described above, since the enlarged coordinates can be given under the subfield of the finite field GF (q m ), the calculation cost of the calculation using the enlarged coordinates can be reduced.
<具体例>
次に、具体例として、擬似逆元演算を用いたJacobian座標系における楕円加算のアルゴリズム(演算手順)の一例およびその演算コストを図5に示す。但し、入力:(X1,Y1,z1)∈GF(qm)2×GF(ξ),(X2,Y2,z2)∈GF(qm)2×GF(ξ)、出力:(X3,Y3,z3)∈GF(qm)2×GF(ξ)である。また、既述の演算コストの記号に加え、Vを擬似逆元v(x)の演算コストとする。なお、補擬似逆元N(x)の演算コスト、GF(qm)×GF(ξ)乗算の演算コスト、GF(ξ)上乗算の演算コスト、GF(ξ)上自乗の演算コスト、GF(ξ)上加算の演算コストはGF(qm)上乗算コストMに比べて十分小さく無視できるため図に表記していないことに留意すること。
<Specific example>
Next, as a specific example, FIG. 5 shows an example of an algorithm (calculation procedure) of ellipse addition in the Jacobian coordinate system using the pseudo inverse element calculation and its calculation cost. However, input: (X 1 , Y 1 , z 1 ) εGF (q m ) 2 × GF (ξ), (X 2 , Y 2 , z 2 ) εGF (q m ) 2 × GF (ξ), Output: (X 3 , Y 3 , z 3 ) εGF (q m ) 2 × GF (ξ). In addition to the above-described calculation cost symbol, V is the calculation cost of the pseudo inverse element v (x). Note that the computation cost of the complementary pseudo inverse element N (x), the computation cost of GF (q m ) × GF (ξ) multiplication, the computation cost of multiplication on GF (ξ), the computation cost of square on GF (ξ), GF Note that the calculation cost of (ξ) upper addition is not shown in the figure because it is sufficiently smaller than GF (q m ) upper multiplication cost M and can be ignored.
同様に、擬似逆元演算を用いたJacobian座標系における楕円2倍算公式のアルゴリズム(演算手順)の一例およびその演算コストを図6に示す。但し、入力:(X1,Y1,z1)∈GF(qm)2×GF(ξ)、出力:(X3,Y3,z3)∈GF(qm)2×GF(ξ)である。演算コストの記号は既述のとおりである。 Similarly, FIG. 6 shows an example of an algorithm (calculation procedure) of the elliptic doubling formula in the Jacobian coordinate system using the pseudo inverse element calculation and its calculation cost. However, input: (X 1 , Y 1 , z 1 ) ∈GF (q m ) 2 × GF (ξ), output: (X 3 , Y 3 , z 3 ) ∈GF (q m ) 2 × GF (ξ ). The calculation cost symbols are as described above.
擬似逆元v(x)は、例えば有限体GF(qm)の次数mがm=5の場合、上記の(最適)加算連鎖の方法を用いることで、式(29)のようにして補擬似逆元v(x)および補擬似逆元N(x)を得ることができるから、qn乗写像3回とGF(qm)上乗算2回で実行することができる。
既述のとおり、例えば補擬似逆元としてnormを用いた場合には、qn乗写像における基底を適切に選択しておくことでqn乗写像の演算コストをGF(qm)上乗算の演算コストに対して十分小さくすることができるから、m=5の場合、演算コストVは凡そ演算コスト2M相当としてよい。
As mentioned previously, for example in the case of using the norm as complement pseudo inverse is the computational cost of q n-th power mapping in that you appropriately selecting the base in q n-th power mapping GF (q m) of the above multiplication Since the calculation cost can be made sufficiently small, when m = 5, the calculation cost V may be approximately equivalent to the
図5および図6に示す演算コストから、擬似逆元演算を用いたJacobian座標系における楕円加算を1回実行するのにGF(qm)上の擬似逆元1回、乗算2回、自乗1回の演算が必要であり、擬似逆元演算を用いたJacobian座標系における楕円2倍算を1回実行するのにGF(qm)上の擬似逆元1回、乗算2回、自乗2回が必要であることがわかる。
From the calculation costs shown in FIG. 5 and FIG. 6, in order to execute the elliptic addition in the Jacobian coordinate system using the pseudo inverse element calculation once, the pseudo inverse element on GF (q m ) once, the multiplication twice, the
次数m=5の場合、擬似逆元1回がおよそ乗算2回相当であったことを考えると、擬似逆元演算を用いたJacobian座標系における楕円加算を1回実行するのにおよそGF(qm)上の乗算4回、自乗1回が必要であり、擬似逆元演算を用いたJacobian座標系における楕円2倍算を1回実行するのにおよそGF(qm)上の乗算4回、自乗2回が必要であることになる。
これは従来のJacobian座標系おける演算コストに比べて、楕円加算に関してGF(qm)上の乗算8回、自乗3回分が節約され、楕円2倍算に関してGF(qm)上の自乗4回分が節約されたことを意味する。
In the case of the order m = 5, considering that one pseudo inverse element is equivalent to approximately two multiplications, it is approximately GF (q to execute the elliptic addition in the Jacobian coordinate system using the pseudo inverse element calculation once. m ) 4 multiplications and 1 square are required, and approximately 4 multiplications on GF (q m ) to execute the elliptic doubling in the Jacobian coordinate system using the pseudo-inverse operation once, Two squares are required.
Compared to the computation cost in the conventional Jacobian coordinate system, this saves 8 multiplications and 3 squares on GF (q m ) for elliptic addition, and 4 squares on GF (q m ) for elliptic doubling. Means saving.
以上では、具体例として擬似逆元演算を用いたJacobian座標系の場合を説明したが、その他の具体例として、Projective座標系およびChudnovsky座標系の場合の楕円加算および楕円2倍算のアルゴリズム(演算手順)の一例およびその演算コストを示す。
図7にProjective座標系における楕円加算のアルゴリズム(演算手順)の一例およびその演算コスト、図8に擬似逆元演算を用いたProjective座標系における楕円加算のアルゴリズム(演算手順)の一例およびその演算コスト、図9にProjective座標系における楕円2倍算のアルゴリズム(演算手順)の一例およびその演算コスト、図10に擬似逆元演算を用いたProjective座標系における楕円2倍算のアルゴリズム(演算手順)の一例およびその演算コストを示す。
また、図11にChudnovsky座標系における楕円加算のアルゴリズム(演算手順)の一例およびその演算コスト、図12に擬似逆元演算を用いたChudnovsky座標系における楕円加算のアルゴリズム(演算手順)の一例およびその演算コスト、図13にChudnovsky座標系における楕円2倍算のアルゴリズム(演算手順)の一例およびその演算コスト、図14に擬似逆元演算を用いたChudnovsky座標系における楕円2倍算のアルゴリズム(演算手順)の一例およびその演算コストを示す。
なお、各図で下線付の箇所は、その前に1度計算結果が現れていて改めて計算する必要のない値を表す。例えば(a)Y←X2X、(b)Z←X 2 なる演算手順ではYを求める時にX2を計算しているため、これを記憶手段に保存しておき、Zを求める際にはX2を改めて計算せずに保存していた値を使えばよい。
何れの場合においても、例えば次数m=5とした場合で明らかなとおり、従来手法に比較して、擬似逆元演算を用いた場合には乗算や自乗の演算コストが低減することがわかる。
In the above, the case of the Jacobian coordinate system using the pseudo-inverse operation has been described as a specific example. However, as another specific example, the algorithm of the ellipse addition and the elliptic doubling in the Projective coordinate system and the Chudnovsky coordinate system (calculation) An example of the procedure) and its calculation cost are shown.
FIG. 7 shows an example of an algorithm (calculation procedure) for ellipse addition in the Projective coordinate system and its calculation cost, and FIG. 8 shows an example of an algorithm (calculation procedure) for ellipse addition in the Projective coordinate system using a pseudo inverse element calculation and its calculation cost. FIG. 9 shows an example of an algorithm (calculation procedure) for elliptic doubling in the Projective coordinate system and its operation cost, and FIG. 10 shows an algorithm (calculation procedure) for ellipse doubling in the Projective coordinate system using a pseudo-inverse operation. An example and its calculation cost are shown.
FIG. 11 shows an example of an algorithm (calculation procedure) for elliptic addition in the Chudnovsky coordinate system and its operation cost, and FIG. 12 shows an example of an algorithm (calculation procedure) for ellipse addition in the Chudnovsky coordinate system using a pseudo-inverse operation. FIG. 13 shows an example of an algorithm for doubling an ellipse in the Chudnovsky coordinate system (calculation procedure) and its operation cost. FIG. 14 shows an algorithm for doubling an ellipse in the Chudnovsky coordinate system using a pseudo inverse element operation (calculation procedure). ) And its calculation cost.
In each figure, the underlined portion represents a value that does not need to be calculated again because the calculation result appears once before that. For example, in the calculation procedure (a) Y ← X 2 X, (b) Z ← X 2 , X 2 is calculated when Y is obtained. should you use the value that had been stored without re-calculate the X 2.
In any case, as is apparent when the order m = 5, for example, it can be seen that the calculation costs of multiplication and square are reduced when the pseudo inverse element calculation is used as compared with the conventional method.
《実施形態》
続いて、本発明の具体的な実施形態を説明するが、下記の点について留意しておかなくてはならない。即ち、以上の各座標系の例から明らかなように、具体的な実施形態は座標系によって変わりえる。また、楕円加算および楕円2倍算の例から明らかなように、群演算の種類によっても具体的な実施形態は変わりえる。もちろん、代数曲線の種類などによっても具体的な実施形態は変わりえる。さらに、群演算アルゴリズムも適宜に変更可能であるから、これに応じて具体的な実施形態は変わりえる。さらには、本発明をコンピュータで実施する場合、演算処理はCPUで行われるのが通常であるから、CPUに実装されている命令セット(例えばSIMD〔Single Instruction/Multiple Data〕型命令の有無)によっても具体的な実施形態は変わりえる。
<Embodiment>
Subsequently, specific embodiments of the present invention will be described, but the following points should be noted. That is, as is clear from the above examples of each coordinate system, the specific embodiment can vary depending on the coordinate system. Further, as is apparent from the examples of ellipse addition and elliptic doubling, the specific embodiment may vary depending on the type of group operation. Of course, the specific embodiment may vary depending on the type of algebraic curve. Furthermore, since the group operation algorithm can be changed as appropriate, the specific embodiment can be changed accordingly. Furthermore, when the present invention is implemented by a computer, the arithmetic processing is usually performed by a CPU, so that it depends on an instruction set (for example, presence / absence of SIMD [Single Instruction / Multiple Data] type instruction) implemented in the CPU. However, specific embodiments may vary.
従って、ここでは擬似逆元演算を用いた群演算の一例を具体的に示すという観点から、次の条件を設定して具体的な実施形態を説明することにする。
(条件)
1.有限体上定義された代数曲線を、有限体GF(qm)〔qは素数あるいは素数の冪、mはm>1の整数とする。〕上定義された楕円曲線とする。
2.有限可換群は、上記楕円曲線の有理点集合E(GF(qm))とする。
3.群演算は、楕円2倍算とする。
4.楕円2倍算公式は、Affine座標系のワイエルシュトラス形式において、標数q≠2且つq≠3且つ4a3+27b2≠0とした場合のもの、つまり式(2)でP=Qとした場合のものとする。
5.射影座標系は、Jacobian座標系とする。
要するに、図6に示したアルゴリズムを実行する実施形態とする。
Therefore, from the viewpoint of specifically showing an example of a group operation using a pseudo inverse element operation, a specific embodiment will be described with the following conditions set.
(conditions)
1. An algebraic curve defined on a finite field is defined as a finite field GF (q m ) [q is a prime number or a power of a prime number, and m is an integer of m> 1. ] The elliptic curve defined above is used.
2. The finite commutative group is a set of rational points E (GF (q m )) of the elliptic curve.
3. The group operation is elliptical doubling.
4). The elliptic doubling formula is the one in the Weierstrass format of the Affine coordinate system when the characteristics q ≠ 2, q ≠ 3, and 4a 3 + 27b 2 ≠ 0, that is, P = Q in equation (2). Shall be the case.
5. The projective coordinate system is the Jacobian coordinate system.
In short, the embodiment executes the algorithm shown in FIG.
実施形態で説明する有限可換群演算装置の細部においては、整数論における数値計算処理が必要となる場合があるが、整数論における数値計算処理自体は、公知技術と同様にして達成されるので、その演算処理方法などの詳細な説明は省略する(この点の技術水準を示す整数論における数値計算処理が可能なソフトウェアとしては、例えばPARI/GP、KANT/KASHなどが挙げられる。PARI/GPについては、例えばインターネット〈URL: http://pari.math.u-bordeaux.fr/〉[平成18年4月12日検索]を参照のこと。KANT/KASHについては、例えばインターネット〈URL: http://www.math.tu-berlin.de/algebra/〉[平成18年4月12日検索]を参照のこと。)。
また、この点に関する文献として、参考文献2を挙げることができる。
(参考文献2) H. Cohen, "A Course in Computational Algebraic Number Theory", GTM 138, Springer-Verlag, 1993.
In the details of the finite commutative group computing device described in the embodiment, numerical calculation processing in number theory may be required, but numerical calculation processing in number theory itself is achieved in the same manner as in the known art. Detailed description of the arithmetic processing method and the like will be omitted (software that can perform numerical calculation processing in number theory indicating the technical level of this point includes, for example, PARI / GP, KANT / KASH, etc. PARI / GP. For example, refer to the Internet <URL: http://pari.math.u-bordeaux.fr/> [searched on April 12, 2006.] For KANT / KASH, for example, the Internet <URL: http (See http://www.math.tu-berlin.de/algebra/> [Search April 12, 2006]).
(Reference 2) H. Cohen, "A Course in Computational Algebraic Number Theory", GTM 138, Springer-Verlag, 1993.
実施形態について、図面を参照しながら説明する。
<有限可換群演算装置>
図15に例示するように、有限可換群演算装置(1)は、キーボードなどが接続可能な入力部(11)、液晶ディスプレイなどが接続可能な出力部(12)、CPU(Central Processing Unit;14)〔キャッシュメモリやレジスタ(19)などを備えていてもよい。〕、メモリであるRAM(Random Access Memory)(15)、ROM(Read Only Memory)(16)やハードディスクである外部記憶装置(17)、並びにこれらの入力部(11)、出力部(12)、CPU(14)、RAM(15)、ROM(16)、外部記憶装置(17)間のデータのやり取りが可能なように接続するバス(18)などを備えている。また必要に応じて、有限可換群演算装置(1)に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
Embodiments will be described with reference to the drawings.
<Fine commutative group computing device>
As illustrated in FIG. 15, the finite commutative group computing device (1) includes an input unit (11) to which a keyboard or the like can be connected, an output unit (12) to which a liquid crystal display or the like can be connected, a CPU (Central Processing Unit; 14) [A cache memory or a register (19) may be provided. RAM (Random Access Memory) (15), ROM (Read Only Memory) (16) and external storage device (17) which is a hard disk, and these input unit (11), output unit (12), A CPU (14), a RAM (15), a ROM (16), a bus (18) connected so as to exchange data between the external storage devices (17), and the like are provided. If necessary, the finite commutative group computing device (1) may be provided with a device (drive) that can read and write a storage medium such as a CD-ROM. A physical entity having such hardware resources includes a general-purpose computer.
有限可換群演算装置(1)の外部記憶装置(17)には、有限可換群演算のためのプログラムおよびこのプログラムの処理において必要となるデータなどが保存記憶されている。また、これらのプログラムの処理によって得られるデータなどは、RAM(15)やレジスタ(19)などに適宜に保存記憶される。以下、演算結果やその格納領域のアドレスなどを記憶するRAM(15)やレジスタ(19)などの装置を単に「記憶部」と呼ぶことにする。 The external storage device (17) of the finite commutative group computing device (1) stores and stores a program for the finite commutative group computing and data necessary for processing of this program. Further, data obtained by the processing of these programs is appropriately stored and stored in the RAM (15), the register (19) or the like. Hereinafter, devices such as the RAM (15) and the register (19) for storing the calculation result and the address of the storage area will be simply referred to as “storage unit”.
外部記憶装置(17)には、擬似逆元を算出するためのプログラム、補擬似逆元を算出するためのプログラム、有限体上乗算の演算結果を算出するためのプログラム、有限体上自乗の演算結果を算出するためのプログラム、有限体上加算あるいは減算あるいは1/2倍算の演算結果を算出するためのプログラムが保存記憶されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも適宜に保存しておく。また、外部記憶装置(17)には、有限可換群の元Pの座標値(X1,Y1,z1)および楕円曲線の係数aが保存記憶されているとする。 The external storage device (17) includes a program for calculating a pseudo-inverse element, a program for calculating a complementary pseudo-inverse element, a program for calculating an operation result of multiplication on a finite field, and an operation of square on a finite field. A program for calculating a result and a program for calculating a calculation result of addition, subtraction or ½ multiplication on a finite field are stored and stored. In addition, a control program for controlling processing based on these programs is also stored as appropriate. Further, it is assumed that the external storage device (17) stores and stores the coordinate values (X 1 , Y 1 , z 1 ) of the element P of the finite commutative group and the coefficient a of the elliptic curve.
有限可換群演算装置(1)では、外部記憶装置(17)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じて記憶部(20)に読み込まれて、CPU(14)で解釈実行・処理される。この結果、CPU(14)が所定の機能(擬似逆元演算部、補擬似逆元演算部、乗算演算部、自乗演算部、加算減算半倍算演算部、制御部)を実現することで有限可換群演算が実現される。 In the finite commutative group computing device (1), each program stored in the external storage device (17) and data necessary for processing of each program are read into the storage unit (20) as necessary, and the CPU ( 14) Interpretation is executed and processed. As a result, the CPU (14) is finite by realizing predetermined functions (pseudo inverse element calculation unit, complementary pseudo inverse element calculation unit, multiplication calculation unit, square calculation unit, addition / subtraction half multiplication calculation unit, control unit). A commutative group operation is realized.
<実施形態の有限可換群演算処理>
次に、図16〜図18を参照して、有限可換群演算装置(1)における有限可換群演算処理の流れを叙述的に説明する。なお、外部記憶装置(17)に保存された有限可換群の元Pの座標値(X1,Y1,z1)および係数aは、制御部(190)の制御によって、予め記憶部(20)に読み込まれて保存されているとする。以後、「記憶部から○○を読み込む」旨の説明をした場合は、「記憶部において○○が格納されている所定の格納領域から○○を読み込む」ことを意味するとする。
制御部(190)は、下記のアルゴリズムの処理を実行する制御を行う。
<Fine Commutative Group Arithmetic Processing of Embodiment>
Next, the flow of the finite commutative group computation process in the finite commutative group computation device (1) will be described descriptively with reference to FIGS. The coordinate values (X 1 , Y 1 , z 1 ) and coefficient a of the element P of the finite commutative group stored in the external storage device (17) are stored in advance in the storage unit (190) under the control of the control unit (190). 20) is read and saved. Hereinafter, when it is described that “reads XX from the storage unit”, it means “read XX from a predetermined storage area in which XX is stored in the storage unit”.
A control part (190) performs control which performs the process of the following algorithm.
[図6の1番目の演算ステップ]
Λn←v(2Y1)・(3X1 2+az1 4)の演算を行う。この演算は、Λn←v(Y1+Y1)・{(X1 2+X1 2+X1 2)+a・(z1 2・z1 2)}なる演算と同じである〔但し、記号・は乗算を表す。以下同様。〕。ここでは、2Y1を2・Y1なる乗算で求めるのではなくY1+Y1なる加算で求め、3X1 2を3・X1 2なる乗算で求めるのではなくX1 2+X1 2+X1 2なる加算で求め、z1 4をz1・z1・z1・z1なる乗算で求めるのではなくz1 2・z1 2あるいは(z1 2)2なる演算で求めるなど、演算コストを低減する工夫が行われていることに留意しなければならない〔図6の2番目以降の演算ステップについても同様である。〕。
[First calculation step in FIG. 6]
Λ n ← v (2Y 1 ) · (3X 1 2 + az 1 4 ) is calculated. This operation is the same as the operation of Λ n ← v (Y 1 + Y 1 ) · {(X 1 2 + X 1 2 + X 1 2 ) + a · (z 1 2 · z 1 2 )}. Represents multiplication. The same applies below. ]. Here, 2Y 1 is not obtained by multiplication of 2 · Y 1 but instead of addition of Y 1 + Y 1 , and 3X 1 2 is not obtained by multiplication of 3 · X 1 2 but X 1 2 + X 1 2 + X 1 2 is calculated by adding 2 and z 1 4 is not calculated by multiplication of z 1 · z 1 · z 1 · z 1 , but by calculation of z 1 2 · z 1 2 or (z 1 2 ) 2. It should be noted that a device for reducing the above is performed [the same applies to the second and subsequent calculation steps in FIG. 6. ].
まず、自乗演算部(141)は、記憶部(20)からX1を読み込んでX1・X1なる演算を行ない〔1Sの演算コスト〕、この演算結果X1 2を記憶部(20)の所定領域に格納する(ステップS1)。なお、図17右側には、各ステップの段階で記憶部(20)に格納されている値を示すことにする。但し、常に各ステップで得られた値を格納しなければならない趣旨ではなく、後の演算に用いる必要がない値は適宜の段階で記憶部(20)の格納領域から解放することができる。
First, square operation unit (141) reads the X 1 from the storage unit (20) X 1 · X 1 becomes performs computation [
また、自乗演算部(141)は、記憶部(20)からz1を読み込んでz1・z1なる演算を行ない〔部分体上自乗の演算コスト〕、この演算結果z1 2を記憶部(20)の所定領域に格納する(ステップS2)。 Further, the square calculation unit (141) reads z 1 from the storage unit (20) and performs the calculation z 1 · z 1 [calculation cost of square on partial body], and stores the calculation result z 1 2 in the storage unit ( 20) in the predetermined area (step S2).
次に、加算減算半倍算演算部(142)は、記憶部(20)からY1を読み込んでY1+Y1なる演算を行ない〔加算の演算コスト〕、この演算結果2Y1を記憶部(20)の所定領域に格納する(ステップS3)。 Then, the addition subtraction semi doubling calculation unit (142) reads the Y 1 from the storage unit (20) Y 1 + Y 1 becomes performs computation [calculation cost of the addition], the storage unit the result of the calculation 2Y 1 ( 20) (step S3).
また、加算減算半倍算演算部(142)は、記憶部(20)からX1 2を読み込んでX1 2+X1 2なる演算を行ない〔加算の演算コスト〕、この演算結果2X1 2を記憶部(20)の所定領域に格納する(ステップS4)。
The addition subtraction semi doubling calculation unit (142) reads the X 1 2 from the
さらに、加算減算半倍算演算部(142)は、記憶部(20)から2X1 2を読み込んで2X1 2+X1 2なる演算を行ない〔加算の演算コスト〕、この演算結果3X1 2を記憶部(20)の所定領域に格納する(ステップS5)。 Furthermore, the addition subtraction semi doubling calculation unit (142), 2X 1 2 + X 1 2 becomes performs computation storage unit from (20) reads 2X 1 2 [computational cost of addition], the result of the calculation 3X 1 2 Store in a predetermined area of the storage unit (20) (step S5).
次いで、自乗演算部(141)は、記憶部(20)からz1 2を読み込んでz1 2・z1 2なる演算を行ない〔部分体上自乗の演算コスト〕、この演算結果z1 4を記憶部(20)の所定領域に格納する(ステップS6)。 Next, the square calculation unit (141) reads z 1 2 from the storage unit (20) and performs calculation of z 1 2 · z 1 2 [calculation cost of square on partial body], and the calculation result z 1 4 is obtained. The data is stored in a predetermined area of the storage unit (20) (step S6).
さらに、自乗演算部(141)は、記憶部(20)から係数aおよびz1 4を読み込んでa・z1 4なる演算を行ない〔部分体上乗算の演算コスト〕、この演算結果az1 4を記憶部(20)の所定領域に格納する(ステップS7)。 Further, the square calculation unit (141) reads the coefficients a and z 1 4 from the storage unit (20) and performs the calculation of a · z 1 4 [the calculation cost of multiplication on a partial field], and the calculation result az 1 4 Is stored in a predetermined area of the storage unit (20) (step S7).
続いて、加算減算半倍算演算部(142)は、記憶部(20)から3X1 2およびaz1 4を読み込んで3X1 2+az1 4なる演算を行ない〔加算の演算コスト〕、この演算結果3X1 2+az1 4を記憶部(20)の所定領域に格納する(ステップS8)。 Subsequently, the addition subtraction semi doubling calculation unit (142), 3X 1 2 + az 1 4 consisting performs computation storage unit from (20) reads 3X 1 2 and az 1 4 [computational cost of the addition], this operation The result 3X 1 2 + az 1 4 is stored in a predetermined area of the storage unit (20) (step S8).
次に、擬似逆元演算部(143)は、記憶部(20)から2Y1を読み込んで擬似逆元v(2Y1)を算出し〔1Vの演算コスト〕、この結果v(2Y1)を記憶部(20)の所定領域に格納する(ステップS9)。なお、擬似逆元v(2Y1)の算出は既述のとおりである。例えば拡大体の次数m=5の場合であれば、式(29)に示したアルゴリズムで演算できる〔但し、式(29)のxを2Y1に置換して理解すること。〕。 Next, the pseudo inverse element calculation unit (143) reads 2Y 1 from the storage unit (20), calculates the pseudo inverse element v (2Y 1 ) [calculation cost of 1V], and obtains the result v (2Y 1 ). The data is stored in a predetermined area of the storage unit (20) (step S9). The calculation of the pseudo inverse element v (2Y 1 ) is as described above. For example, in the case of degree m = 5 of the extension field can be calculated by the algorithm shown in equation (29) was prepared in which to understand by replacing the x in the formula (29) to 2Y 1. ].
続いて、乗算演算部(144)は、記憶部(20)からv(2Y1)および3X1 2+az1 4を読み込んでv(2Y1)・(3X1 2+az1 4)なる演算を行ない〔1Mの演算コスト〕、この演算結果v(2Y1)・(3X1 2+az1 4)を記憶部(20)の所定領域に格納する(ステップS10)。ここで得られた演算結果v(2Y1)・(3X1 2+az1 4)がΛnに相当することとなる。 Subsequently, the multiplication operation unit (144) reads v (2Y 1 ) and 3X 1 2 + az 1 4 from the storage unit (20) and performs an operation of v (2Y 1 ) · (3X 1 2 + az 1 4 ). [1M calculation cost], and this calculation result v (2Y 1 ) · (3X 1 2 + az 1 4 ) is stored in a predetermined area of the storage unit (20) (step S10). The calculation result v (2Y 1 ) · (3X 1 2 + az 1 4 ) obtained here corresponds to Λ n .
[図6の2番目の演算ステップ]
λd←N(2Y1)の演算を行う。この演算は、λd←N(Y1+Y1)なる演算と同じである。ここで留意しなければならないことは、演算Y1+Y1をする必要がないということである。何故なら、上記ステップS3で演算結果2Y1を得ているからである。そこで、図6の2番目の演算ステップでは、次の演算を行えばよいことになる。
[Second calculation step in FIG. 6]
Calculation of λ d ← N (2Y 1 ) is performed. This calculation is the same as the calculation of λ d ← N (Y 1 + Y 1 ). It should be noted here that the operation Y 1 + Y 1 does not have to be performed. Is because to obtain the operation result 2Y 1 in step S3. Therefore, in the second calculation step of FIG. 6, the following calculation is performed.
即ち、補擬似逆元演算部(145)は、記憶部(20)から2Y1を読み込んで補擬似逆元N(2Y1)を算出し〔補擬似逆元の演算コスト〕、この結果N(2Y1)を記憶部(20)の所定領域に格納する(ステップS11)。なお、補擬似逆元N(2Y1)の算出は既述のとおりである。例えば拡大体の次数m=5の場合であれば、式(29)に示したアルゴリズムで演算できる〔但し、式(29)のxを2Y1に置換して理解すること。〕。ここで得られた演算結果N(2Y1)がλdに相当することとなる。 That is, the complementary pseudo-inverse operation unit (145) reads 2Y 1 from the storage unit (20), calculates the complementary pseudo-inverse element N (2Y 1 ) [complementary pseudo-inverse operation cost], and the result N ( 2Y 1 ) is stored in a predetermined area of the storage unit (20) (step S11). The calculation of the complementary pseudo inverse element N (2Y 1 ) is as described above. For example, in the case of degree m = 5 of the extension field can be calculated by the algorithm shown in equation (29) was prepared in which to understand by replacing the x in the formula (29) to 2Y 1. ]. The calculation result N (2Y 1 ) obtained here corresponds to λ d .
[図6の3番目以降の演算ステップ]
図6の3番目以降の演算ステップも、上記で説明した演算処理と同様にすればよい。つまり、3番目の演算ステップでは、z3←λd・z1なる演算を行う。4番目の演算ステップでは、X"1←X1・λd 2およびY"1←Y1・λd 3=Y1・λd 2・λdなる演算を行う(λd 2は再計算する必要が無い。)。5番目の演算ステップでは、X3←Λn 2−(X"1+X"1)なる演算を行う。6番目の演算ステップでは、Y3←Λn・(X"1−X3)−Y"1なる演算を行う。これらの演算は何れも、自乗演算部(141)、加算減算半倍算演算部(142)、乗算演算部(144)によって実現される。各演算部の処理は、図6の1番目および2番目の演算ステップで説明したのと同様である(図17のステップS11以降は省略している。)。
[The third and subsequent calculation steps in FIG. 6]
The third and subsequent calculation steps in FIG. 6 may be the same as the calculation process described above. That is, in the third calculation step, the calculation z 3 ← λ d · z 1 is performed. In the fourth calculation step, X " 1 ← X 1 · λ d 2 and Y" 1 ← Y 1 · λ d 3 = Y 1 · λ d 2 · λ d are calculated (λ d 2 is recalculated) No need.) In the fifth operation step, an operation of X 3 ← Λ n 2 − (X ″ 1 + X ″ 1 ) is performed. In the sixth operation step, an operation of Y 3 ← Λ n · (X ″ 1 −X 3 ) −Y ″ 1 is performed. All of these operations are realized by a square operation unit (141), an addition / subtraction half-multiplication operation unit (142), and a multiplication operation unit (144). The processing of each calculation unit is the same as that described in the first and second calculation steps in FIG. 6 (step S11 and subsequent steps in FIG. 17 are omitted).
次に、上記(条件)のうち条件3.を「群演算は、楕円加算とする。」に変更した場合の有限可換群演算処理について説明する。つまり、図5に示したアルゴリズムを実行する実施形態である。
図5の各演算ステップも、上記実施形態で説明した演算処理と同様にすればよい。
1番目の演算ステップでは、z′3←z1・z2なる演算を行う。
2番目の演算ステップでは、X′1←X1・z2 2およびY′1←Y1・z2 3=Y1・z2 2・z2なる演算を行う(z2 2は再計算する必要が無い。)。
3番目の演算ステップでは、X′2←X2・z1 2およびY′2←Y2・z1 3=Y2・z1 2・z1なる演算を行う(z1 2は再計算する必要が無い。)。
4番目の演算ステップでは、Λn←v(X′2−X′1)・(Y′2−Y′1)なる演算を行う。この演算は、v(X′2−X′1)およびY′2−Y′1をそれぞれ求めて乗算する。
5番目の演算ステップでは、λd←N(X′2−X′1)なる演算を行う。
6番目の演算ステップでは、z3←λd・z′3なる演算を行う。
7番目の演算ステップでは、X"1←X′1・λd 2およびY"1←Y′1・λd 3=Y′1・λd 2・λdなる演算を行う(λd 2は再計算する必要が無い。)。
8番目の演算ステップでは、X"2←X′2・λd 2なる演算を行う(λd 2は再計算する必要が無い。)。
9番目の演算ステップでは、X3←Λn 2−(X"1+X"1)なる演算を行う。
10番目の演算ステップでは、Y3←Λn・(X"1−X3)−Y"なる演算を行う。
Next, among the above (conditions),
Each calculation step in FIG. 5 may be the same as the calculation process described in the above embodiment.
In the first calculation step, the calculation z ′ 3 ← z 1 · z 2 is performed.
In the second operation step, X '1 ← X 1 · z 2 2 and Y' 1 ← Y 1 · z 2 3 =
In the third calculation step, X ′ 2 ← X 2 · z 1 2 and Y ′ 2 ← Y 2 · z 1 3 = Y 2 · z 1 2 · z 1 are calculated (z 1 2 is recalculated. No need.)
In the fourth operation step, an operation of Λ n ← v (X ′ 2 −X ′ 1 ) · (Y ′ 2 −Y ′ 1 ) is performed. In this operation, v (X ′ 2 −X ′ 1 ) and Y ′ 2 −Y ′ 1 are respectively obtained and multiplied.
In the fifth calculation step, a calculation of λ d ← N (X ′ 2 −X ′ 1 ) is performed.
In the sixth operation step, an operation of z 3 ← λ d · z ′ 3 is performed.
In the seventh calculation step, X " 1 ← X ' 1 · λ d 2 and Y" 1 ← Y' 1 · λ d 3 = Y ' 1 · λ d 2 · λ d are calculated (λ d 2 is There is no need to recalculate.)
In the eighth calculation step, the calculation X ″ 2 ← X ′ 2 · λ d 2 is performed (λ d 2 does not need to be recalculated).
In the ninth operation step, an operation of X 3 ← Λ n 2 − (X ″ 1 + X ″ 1 ) is performed.
In the tenth calculation step, the calculation Y 3 ← Λ n · (X ″ 1 −X 3 ) −Y ″ is performed.
これらの演算は何れも、楕円2倍算を例とした実施形態で説明したのと同様に、自乗演算部(141)、加算減算半倍算演算部(142)、擬似逆元演算部(143)、乗算演算部(144)、補擬似逆元演算部(145)によって実現される。また、楕円加算を例としたこの実施形態での各演算部の処理も、楕円2倍算を例とした実施形態で説明したのと同様である。
図19に、擬似逆元演算を用いたJacobian座標系における楕円加算の有限可換群演算処理の処理フロー(全体)を示す。
In any of these operations, as described in the embodiment taking elliptic doubling as an example, the square operation unit (141), the addition / subtraction half multiplication operation unit (142), and the pseudo inverse element operation unit (143 ), A multiplication operation unit (144), and a complementary pseudo-inverse operation unit (145). In addition, the processing of each calculation unit in this embodiment taking ellipse addition as an example is the same as that described in the embodiment taking ellipse doubling as an example.
FIG. 19 shows a processing flow (overall) of the elliptic addition finite commutative group calculation process in the Jacobian coordinate system using the pseudo inverse element calculation.
以上の実施形態の他、本発明である有限可換群演算装置・方法は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記有限可換群演算装置・方法において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。 In addition to the above embodiments, the finite commutative group computing device / method according to the present invention is not limited to the above-described embodiments, and can be appropriately changed without departing from the spirit of the present invention. In addition, the processing described in the above finite commutative group computing device / method is not only executed in time series according to the order of description, but also in parallel or individually according to the processing capacity of the device that executes the processing or as necessary. It may be executed.
また、上記有限可換群演算装置における処理機能をコンピュータによって実現する場合、有限可換群演算装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記有限可換群演算装置における処理機能がコンピュータ上で実現される。 When the processing functions in the finite commutative group computing device are realized by a computer, the processing contents of the functions that the finite commutative group computing device should have are described by a program. And the processing function in the said finite commutative group arithmetic unit is implement | achieved on a computer by running this program with a computer.
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。 The program describing the processing contents can be recorded on a computer-readable recording medium. The computer-readable recording medium may be any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory. Specifically, for example, as a magnetic recording device, a hard disk device, a flexible disk, a magnetic tape or the like, and as an optical disk, a DVD (Digital Versatile Disc), a DVD-RAM (Random Access Memory), a CD-ROM (Compact Disc Read Only). Memory), CD-R (Recordable) / RW (ReWritable), etc., magneto-optical recording medium, MO (Magneto-Optical disc), etc., semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory), etc. Can be used.
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。 The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and 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. When executing the process, the computer reads a program stored in its own recording medium and executes a process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described 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. It is good. Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、有限可換群演算装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。 In this embodiment, the finite commutative group computing device is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware. Good.
本発明は、有限体上定義された代数曲線暗号の演算などに有用である。 The present invention is useful for operations such as algebraic curve cryptography defined on a finite field.
1 有限可換群演算装置
141 自乗演算部
142 加算減算半倍算演算部
143 擬似逆元演算部
144 乗算演算部
145 補擬似逆元演算部
190 制御部
1 finite commutative
Claims (9)
擬似逆元演算手段が、有限体GF(qm)の元pに対して、N(p)=v(p)×p〔但し、N(p)は有限体GF(qm)の部分体の元とし、v(p)は有限体GF(qm)の元とする。〕を満たす擬似逆元v(p)を算出する擬似逆元演算ステップと、
補擬似逆元演算手段が、上記補擬似逆元N(p)を算出する補擬似逆元演算ステップとを有し、
上記擬似逆元を上記被除数に含め、上記補擬似逆元を上記除数とする
有限可換群演算方法。 Finite field GF (q m ) [q is a prime number or power of prime number, and m is an integer of m> 1. ] Algebraic curve defined above [suppose that it is expressed in a projective coordinate system. ] The original group operation of the finite commutative group formed by the above points is calculated by dividing the divisor and the dividend appearing in the division on the finite field GF (q m ) independently, and the divisor is expanded coordinates [coordinates of the above projective coordinate system] Is a finite commutative group operation method that avoids the inverse operation of the divisor in the above group operation by associating it with the coordinates excluding the coordinates of the Affine coordinate system],
Pseudo inverse operation means, the original p of a finite field GF (q m), N ( p) = v (p) × p [where, N (p) is part of the finite field GF (q m) And v (p) is an element of a finite field GF (q m ). A pseudo inverse element calculation step for calculating a pseudo inverse element v (p) satisfying
A complementary pseudo-inverse operation means for calculating the complementary pseudo-inverse element N (p),
A finite commutative group calculation method in which the pseudo inverse element is included in the dividend and the complementary pseudo inverse element is the divisor.
請求項1に記載の有限可換群演算方法。 The finite commutative group calculation method according to claim 1, wherein the enlarged coordinates of a point on the algebraic curve expressed in a projective coordinate system are given under a subfield of a finite field GF (q m ).
請求項1または請求項2に記載の有限可換群演算方法。 The finite commutative group operation method according to claim 1, wherein the complementary pseudo-inverse element N (p) is a norm of an element p on a finite field GF (p m ).
請求項4に記載の有限可換群演算方法。 The complementary pseudo-inverse element calculating means sets each term p θ [where θ = q i] of the pseudo-inverse element v (p) represented by Expression (c2). ] Is calculated by Frobenius map, The finite commutative group calculation method of Claim 4.
請求項5に記載の有限可換群演算方法。 The pseudo inverse element v (p) represented by the expression (c2) is expressed as an expression (c3),
請求項1から請求項6のいずれかに記載の有限可換群演算方法。 7. The finite commutative group operation method according to claim 1, wherein the group operation is an addition operation and / or a double operation.
有限体GF(qm)の元pに対して、N(p)=v(p)×p〔但し、N(p)は有限体GF(qm)の部分体の元とし、v(p)は有限体GF(qm)の元とする。〕を満たす擬似逆元v(p)を算出する擬似逆元演算手段と、
上記補擬似逆元N(p)を算出する擬似逆元演算手段とを備え、
上記擬似逆元を上記被除数に含め、上記補擬似逆元を上記除数とする
有限可換群演算装置。 Finite field GF (q m ) [q is a prime number or power of prime number, and m is an integer of m> 1. ] Algebraic curve defined above [suppose that it is expressed in a projective coordinate system. ] The original group operation of the finite commutative group formed by the above points is calculated by dividing the divisor and the dividend appearing in the division on the finite field GF (q m ) independently, and the divisor is expanded coordinates [coordinates of the above projective coordinate system] Is a finite commutative group operation device that avoids the inverse operation of the divisor in the group operation by associating it with the coordinates excluding the coordinates of the Affine coordinate system],
For an element p of a finite field GF (q m ), N (p) = v (p) × p [where N (p) is an element of a subfield of the finite field GF (q m ) and v (p ) Is an element of a finite field GF (q m ). Pseudo inverse element calculation means for calculating a pseudo inverse element v (p) satisfying
Pseudo inverse element calculation means for calculating the complementary pseudo inverse element N (p),
A finite commutative group computing device including the pseudo inverse element in the dividend and the complementary pseudo inverse element as the divisor.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006114046A JP4621162B2 (en) | 2006-04-18 | 2006-04-18 | Finite commutative group operation method, apparatus and program thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006114046A JP4621162B2 (en) | 2006-04-18 | 2006-04-18 | Finite commutative group operation method, apparatus and program thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007286380A true JP2007286380A (en) | 2007-11-01 |
JP4621162B2 JP4621162B2 (en) | 2011-01-26 |
Family
ID=38758200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006114046A Active JP4621162B2 (en) | 2006-04-18 | 2006-04-18 | Finite commutative group operation method, apparatus and program thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4621162B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2887342A3 (en) * | 2013-12-23 | 2015-07-29 | Nxp B.V. | Optimized hardware architecture and method for ECC point doubling using jacobian coordinates over short weierstrass curves |
US9900154B2 (en) | 2013-12-23 | 2018-02-20 | Nxp B.V. | Optimized hardward architecture and method for ECC point addition using mixed affine-jacobian coordinates over short weierstrass curves |
US9979543B2 (en) | 2013-12-23 | 2018-05-22 | Nxp B.V. | Optimized hardware architecture and method for ECC point doubling using jacobian coordinates over short weierstrass curves |
JP2018538620A (en) * | 2015-12-07 | 2018-12-27 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | Computing device and method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000284690A (en) * | 1999-01-25 | 2000-10-13 | Matsushita Electric Ind Co Ltd | Device and method for calculating elliptic curve, device and method for calculating elliptic curve order, device and method for forming elliptic curve, elliptic curve application device, recording medium where elliptic curve calculating program is recorded, recording medium where elliptic curve order calculating program is recorded, and recording medium where elliptic curve forming program is recorded |
US20020062330A1 (en) * | 2000-09-19 | 2002-05-23 | Christof Paar | Method for efficient computation of odd characteristic extension fields |
-
2006
- 2006-04-18 JP JP2006114046A patent/JP4621162B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000284690A (en) * | 1999-01-25 | 2000-10-13 | Matsushita Electric Ind Co Ltd | Device and method for calculating elliptic curve, device and method for calculating elliptic curve order, device and method for forming elliptic curve, elliptic curve application device, recording medium where elliptic curve calculating program is recorded, recording medium where elliptic curve order calculating program is recorded, and recording medium where elliptic curve forming program is recorded |
US20020062330A1 (en) * | 2000-09-19 | 2002-05-23 | Christof Paar | Method for efficient computation of odd characteristic extension fields |
Non-Patent Citations (1)
Title |
---|
JPN7010002380, 小林 他, "Compressed Jacobian Coordinates", 2007年暗号と情報セキュリティシンポジウム, 200701, p.1−4 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2887342A3 (en) * | 2013-12-23 | 2015-07-29 | Nxp B.V. | Optimized hardware architecture and method for ECC point doubling using jacobian coordinates over short weierstrass curves |
US9900154B2 (en) | 2013-12-23 | 2018-02-20 | Nxp B.V. | Optimized hardward architecture and method for ECC point addition using mixed affine-jacobian coordinates over short weierstrass curves |
US9929862B2 (en) | 2013-12-23 | 2018-03-27 | Nxp B.V. | Optimized hardware architecture and method for ECC point doubling using Jacobian coordinates over short Weierstrass curves |
US9979543B2 (en) | 2013-12-23 | 2018-05-22 | Nxp B.V. | Optimized hardware architecture and method for ECC point doubling using jacobian coordinates over short weierstrass curves |
JP2018538620A (en) * | 2015-12-07 | 2018-12-27 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | Computing device and method |
Also Published As
Publication number | Publication date |
---|---|
JP4621162B2 (en) | 2011-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bailey et al. | Efficient arithmetic in finite field extensions with application in elliptic curve cryptography | |
US8862651B2 (en) | Method and apparatus for modulus reduction | |
CN104254833B (en) | Mould exponentiation based on vector sum scalar | |
US8498411B1 (en) | Using multiples above two with running totals and reference values other than 0 and 2 (window size) in elliptic curve cryptography scalar multiplication acceleration tables | |
Bos et al. | Fast Arithmetic Modulo 2^ xp^ y±1 | |
US20230254145A1 (en) | System and method to improve efficiency in multiplicationladder-based cryptographic operations | |
JP4621162B2 (en) | Finite commutative group operation method, apparatus and program thereof | |
JP4351987B2 (en) | Montgomery conversion device, arithmetic device, IC card, encryption device, decryption device, and program | |
Halbutogullari et al. | Parallel multiplication in GF (2 k) using polynomial residue arithmetic | |
Azarderakhsh et al. | EdSIDH: supersingular isogeny Diffie-Hellman key exchange on Edwards curves | |
US8626811B2 (en) | Method and apparatus for providing flexible bit-length moduli on a block Montgomery machine | |
Arazi et al. | On calculating multiplicative inverses modulo $2^{m} $ | |
Bos et al. | Efficient modular multiplication | |
JP4202701B2 (en) | Polynomial residue arithmetic unit, method and program | |
US20080270494A1 (en) | Method for the Exponentiation or Scalar Multiplication of Elements | |
Ajeena | The Graphs for Elliptic Curve Cryptography | |
Verma | Efficient implementations of pairing-based cryptography on embedded systems | |
Chen et al. | Quantum circuits for hyperelliptic curve discrete logarithms over the Mersenne prime fields | |
JP4752176B2 (en) | Unidirectional function calculation method, apparatus and program | |
Zitouni et al. | Implementing Cryptography Pairings over Ordinary Pairing-Friendly Curves of Type | |
JP2007503036A (en) | Method for performing modular multiplication and method for performing Euclidean multiplication using 2N-bit numbers | |
Lou et al. | Parallel exponentiation using common-multiplicand-multiplication and signed-digit-folding techniques | |
Mahboob et al. | Faster polynomial basis finite field squaring and inversion for GF (2 m) with cryptographic software application | |
CN114706557A (en) | ASIC chip and implementation method and device of Montgomery modular multiplication | |
JP3884853B2 (en) | Power arithmetic unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100803 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100928 |
|
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: 20101019 |
|
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: 20101029 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131105 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4621162 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |