JP4193176B2 - Elliptic curve integer multiple arithmetic device, and key generation device, encryption device, and decryption device that can use the device - Google Patents

Elliptic curve integer multiple arithmetic device, and key generation device, encryption device, and decryption device that can use the device Download PDF

Info

Publication number
JP4193176B2
JP4193176B2 JP2003381344A JP2003381344A JP4193176B2 JP 4193176 B2 JP4193176 B2 JP 4193176B2 JP 2003381344 A JP2003381344 A JP 2003381344A JP 2003381344 A JP2003381344 A JP 2003381344A JP 4193176 B2 JP4193176 B2 JP 4193176B2
Authority
JP
Japan
Prior art keywords
calculation
unit
point
multiplication
integer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003381344A
Other languages
Japanese (ja)
Other versions
JP2005148141A (en
Inventor
彬 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kanazawa Institute of Technology (KIT)
Original Assignee
Kanazawa Institute of Technology (KIT)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kanazawa Institute of Technology (KIT) filed Critical Kanazawa Institute of Technology (KIT)
Priority to JP2003381344A priority Critical patent/JP4193176B2/en
Publication of JP2005148141A publication Critical patent/JP2005148141A/en
Application granted granted Critical
Publication of JP4193176B2 publication Critical patent/JP4193176B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

この発明は楕円曲線暗号技術に関し、特に楕円曲線上の点の整数倍演算を行う楕円曲線整数倍演算装置、ならびにその装置を利用可能な鍵生成装置、暗号化装置および復号装置に関する。   The present invention relates to an elliptic curve cryptography technique, and more particularly to an elliptic curve integer multiple arithmetic apparatus that performs integer multiple calculations on points on an elliptic curve, and a key generation apparatus, encryption apparatus, and decryption apparatus that can use the apparatus.

公開鍵暗号の一方式として、楕円曲線暗号(あるいは楕円暗号)がある。楕円曲線暗号は1985年頃、KoblitzとMillerがほぼ同時期に独立に提案し、RSA暗号に代わる次世代の公開鍵暗号と目されている有望な暗号である。この楕円曲線暗号は同じ安全性規準で比較すると、RSA暗号に比して鍵の大きさは数分の一でよい、という特徴がある。しかしそれでも秘密鍵暗号に比べて計算に時間がかかり低速である、という問題点は解決されていない。そこで高速化の方法が種々の方面から検討されている。   One method of public key cryptography is elliptic curve cryptography (or elliptic cryptography). The elliptic curve cipher is a promising cipher that was proposed by Koblitz and Miller independently around the same time around 1985 and is regarded as a next-generation public key cipher that replaces the RSA cipher. Compared with the RSA cipher, this elliptic curve cipher has a feature that the key size may be a fraction of that of the RSA cipher. However, the problem that the calculation is slower and slower than the secret key cryptography has not been solved. Therefore, methods for speeding up have been studied from various aspects.

楕円曲線暗号は有限体上で定義された楕円曲線上の点の間に適当な加法を定義すると、これら点たちが群をなすことを利用する。楕円曲線の上に基準となる1点Pを定め、これをk倍した点をQ=kPとすると、Qを与えられても、これからkを求めることは計算量的に難しい。これを楕円曲線上の離散対数問題の困難性という。楕円曲線暗号はこの性質を利用する暗号であり、楕円曲線暗号を利用するには、点のk倍算が必要になる。従来のk倍算の方法は、2倍算と加算の組合せ(いわゆる“double−and−add”)による2進法である。この方法ではlogk回の2倍算と平均(1/2)logk回の加算が必要となる。これの改良法としてm進法がある。ただしmは2のべき2である。さらに加法と減法を併用する符号付き法、移動窓法などがある(たとえば、非特許文献1参照)。
イアン・F・ブラケ,ガディエル・セロッシ,ナイジェル・P・スマート著,鈴木治郎訳,「楕円曲線暗号」,初版,株式会社ピアソン・エデュケーション,2001年12月20日
Elliptic curve cryptography uses the fact that these points form a group when an appropriate addition is defined between points on an elliptic curve defined on a finite field. If one point P serving as a reference is defined on the elliptic curve and a point obtained by multiplying this by k is Q = kP, even if Q is given, it is difficult to obtain k from this point of view. This is called the difficulty of the discrete logarithm problem on an elliptic curve. Elliptic curve cryptography is a cryptography that uses this property, and to use elliptic curve cryptography, it is necessary to multiply points by k. The conventional k multiplication method is a binary method by a combination of doubling and addition (so-called “double-and-add”). This method requires log 2 k times doubling and average (1/2) log 2 k times addition. There is an m-adic system as an improved method of this. Where m is a power of two 2 r. Further, there are a signed method using a combination of addition and subtraction, a moving window method, and the like (for example, see Non-Patent Document 1).
Ian F. Brake, Gadiel Cello, Nigel P. Smart, translated by Jiro Suzuki, “Elliptic Curve Cryptography”, first edition, Pearson Education, December 20, 2001

楕円曲線暗号は公開鍵暗号の現在の主流であるRSA暗号よりも鍵の大きさが小さくてもよいという利点があるが、暗号化と復号処理が遅いという欠点をもつ。一般に、公開鍵暗号では巨大数を使うので、有限体における演算にどうしても計算時間がかかり、処理が遅くなる。計算量の問題は、暗号システムを実用化する上で避けることができない深刻な課題であり、楕円曲線暗号の実用性をより一層高めるために、さらなる計算速度の向上が求められている。   Elliptic curve cryptography has the advantage that the key size may be smaller than RSA cryptography, which is the current mainstream of public key cryptography, but has the disadvantage of slow encryption and decryption processing. Generally, since a large number is used in public key cryptography, computation in a finite field always takes computation time and processing is slow. The problem of the amount of calculation is a serious problem that cannot be avoided when the cryptographic system is put into practical use, and in order to further improve the practicality of elliptic curve cryptography, further improvement in calculation speed is required.

本発明はこうした状況に鑑みてなされたものであり、その目的は、楕円曲線暗号の高速化を実現することのできる楕円曲線整数倍演算装置、ならびにその装置を利用可能な鍵生成装置、暗号化装置および復号装置を提供することにある。   The present invention has been made in view of such a situation, and an object of the present invention is to provide an elliptic curve integer multiple arithmetic device capable of realizing high-speed elliptic curve cryptography, as well as a key generation device and encryption device that can use the device. An apparatus and a decoding apparatus are provided.

本発明のある態様は楕円曲線整数倍演算装置に関する。この装置は、楕円曲線上の任意の点Pの整数倍演算kPを行うものであって、整数kについて複数の基数sによるs進展開を求めるs進展開部と、前記複数の基数sのそれぞれについて、前記点Pのk倍点Qをs倍算と加算の組み合わせにより算出するs進法の計算コストを評価するコスト評価部と、前記計算コストに基づき、前記複数の基数sの中から一つの基数hを選択する選択部と、選択された前記基数hによる前記整数kのh進展開に基づき、前記点Pのk倍点Qをh倍算と加算の組み合わせにより算出するh進法演算部とを含む。   One embodiment of the present invention relates to an elliptic curve integer multiple arithmetic apparatus. This apparatus performs an integer multiple operation kP of an arbitrary point P on an elliptic curve, and obtains an s-adic expansion unit for obtaining an s-adic expansion by a plurality of bases s for the integer k, and each of the plurality of bases s A cost evaluation unit that evaluates the calculation cost of the s-adic system that calculates the k-fold point Q of the point P by a combination of s multiplication and addition; A selection unit that selects one radix h, and an h-adic operation that calculates a k-fold point Q of the point P by a combination of h-multiplication and addition based on the h-adic expansion of the integer k by the selected radix h Part.

本発明の別の態様は鍵生成装置に関する。この装置は、楕円曲線上の基点Gとその位数nの入力を受け付ける入力部と、0<d<nを満たす乱数dを生成する乱数生成部と、前記基点Gのd倍点Qを算出する整数倍演算部と、前記乱数dを秘密鍵、前記d倍点Qを公開鍵として生成する鍵生成部とを含む。前記整数倍演算部として、上記の態様の楕円曲線整数倍演算装置を利用する。   Another aspect of the present invention relates to a key generation apparatus. The apparatus calculates an d-multiplier point Q of the base point G, an input unit that receives input of the base point G on the elliptic curve and its order n, a random number generator that generates a random number d that satisfies 0 <d <n, and And an integer multiple operation unit that generates the random number d as a secret key and the key generation unit that generates the d multiple point Q as a public key. As the integer multiplication unit, the elliptic curve integer multiplication unit of the above aspect is used.

本発明のさらに別の態様は暗号化装置に関する。この装置は、楕円曲線上の基点Gとその位数n、公開鍵Q、および平文Mの入力を受け付ける入力部と、0<r<nを満たす乱数rを生成する乱数生成部と、前記基点Gのr倍点rGと、前記公開鍵Qのr倍点rQを算出する整数倍演算部と、前記整数倍演算部による算出結果を用いて、第1暗号C1=rGと第2暗号C2=rQ+Mを計算し、暗号文(C1、C2)を生成する暗号文生成部とを含む。前記整数倍演算部として、上記の態様の楕円曲線整数倍演算装置を利用する。   Yet another embodiment of the present invention relates to an encryption device. The apparatus includes an input unit that receives input of a base point G on an elliptic curve, its order n, public key Q, and plaintext M, a random number generation unit that generates a random number r satisfying 0 <r <n, and the base point The first cipher C1 = rG and the second cipher C2 = using an r multiple point rG of G, an integer multiple arithmetic unit for calculating the r multiple point rQ of the public key Q, and a calculation result by the integer multiple arithmetic unit and a ciphertext generation unit that calculates rQ + M and generates ciphertexts (C1, C2). As the integer multiplication unit, the elliptic curve integer multiplication unit of the above aspect is used.

本発明のさらに別の態様は復号装置に関する。この装置は、秘密鍵d、および楕円曲線による第1暗号C1と第2暗号C2を含む暗号文(C1、C2)の入力を受け付ける入力部と、前記第1暗号C1のd倍点dC1を算出する整数倍演算部と、前記整数倍演算部による算出結果を用いて、前記第2暗号C2から前記第1暗号C1のd倍点dC1を減算することにより、復号された平文Mを生成する平文生成部とを含む。前記整数倍演算部として、上記の態様の楕円曲線整数倍演算装置を利用する。   Yet another embodiment of the present invention relates to a decoding apparatus. This apparatus calculates a secret key d and an input unit that accepts input of ciphertext (C1, C2) including the first cipher C1 and the second cipher C2 using an elliptic curve, and a d-multiplier point dC1 of the first cipher C1. A plaintext that generates a decrypted plaintext M by subtracting the d-multiplied point dC1 of the first cipher C1 from the second cipher C2 using the integer multiple arithmetic unit that performs the calculation and the calculation result by the integer multiple arithmetic unit And a generation unit. As the integer multiplication unit, the elliptic curve integer multiplication unit of the above aspect is used.

なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、サーバ、システム、コンピュータプログラム、記録媒体などの間で変換したものもまた、本発明の態様として有効である。   It should be noted that any combination of the above-described constituent elements and a representation of the present invention converted between a method, apparatus, server, system, computer program, recording medium, etc. are also effective as an aspect of the present invention.

本発明によれば、楕円曲線上の任意の点の整数倍演算を高速化することができる。   According to the present invention, it is possible to increase the speed of integer multiplication of an arbitrary point on an elliptic curve.

以下本発明を好適な実施の形態をもとに説明する。まず、実施の形態の基礎となる理論を前提技術として述べ、その後、具体的な実施の形態を説明する。   Hereinafter, the present invention will be described based on preferred embodiments. First, the theory that is the basis of the embodiment will be described as a prerequisite technology, and then a specific embodiment will be described.

[前提技術]
[1] 概要
本発明は、有限体上の楕円曲線の点群における演算の高速化に関するものである。本発明の実施の形態の基礎技術は、点の加算と2倍算を組み合わせた従来の2進法に対して、加算と3倍算を組み合わせた3進法、さらには、その一般化として加算とh倍算を組み合わせたh進法(h>2)を導入し、少なくとも2つのs進法(s≧2)を選択的に併用するものであり、計算量の削減を図り、それによって楕円曲線暗号の高速化を図る。
[Prerequisite technology]
[1] Overview The present invention relates to speeding up operations in point groups of elliptic curves on a finite field. The basic technology of the embodiment of the present invention is that a ternary system combining addition and triple multiplication is added to the conventional binary system combining point addition and doubling, and addition is generalized. And h multiplication (h> 2) combined with h multiplication and at least two s decimals (s ≧ 2) are selectively used together to reduce the amount of calculation and thereby ellipse Speed up curve cryptography.

[2] 楕円曲線
以下、N.コブリッツ著,林彬訳,「暗号の代数理論」(シュプリンガー・フェアラーク東京,1999年10月)の第6章の記載を適宜用いて説明する。
[2.1] 楕円曲線の方程式
体F上の楕円曲線Eは、次の形の方程式で与えられる曲線である。
+aXY+aY=X+a+aX+a, a∈F (1)
E(F)は、この方程式を満たす点(x,y)∈Fと、Oと表記する「無限遠点」の集合を表す。もしKがFの拡大体であるなら、E(K)は式(1)を満たす(x,y)∈KとOの集合を表す。曲線(1)が楕円曲線であるためには、滑らかでなければならない。これは両方の偏導関数がともに0になるようなE(F)の点がないことを意味する(FはFの代数的閉包を表す)。言い換えれば、2つの方程式
Y=3X+2aX+a, 2Y+aX+a=0 (2)
は、どの(x,y)∈E(F)によっても、同時に満たされることがない。
[2] Elliptic curve This will be explained using the description in Chapter 6 of Kobritz, Translated by Hayashi Hayashi, “Algebraic Theory of Cryptography” (Springer Fairlark Tokyo, October 1999) as appropriate.
[2.1] The elliptic curve E on the elliptic curve equation body F is a curve given by an equation of the following form.
Y 2 + a 1 XY + a 3 Y = X 3 + a 2 X 2 + a 4 X + a 6 , a i ∈F (1)
E (F) represents a set of points (x, y) εF 2 satisfying this equation and “infinity point” expressed as O. If K is an extension of F, E (K) represents a set of (x, y) εK 2 and O satisfying equation (1). In order for curve (1) to be an elliptic curve, it must be smooth. This means that both no point 0 to become such E (F ¯) both partial derivative of (F ¯ represents the algebraic closure of F). In other words, two equations a 1 Y = 3X 2 + 2a 2 X + a 4, 2Y + a 1 X + a 3 = 0 (2)
Are not simultaneously satisfied by any (x, y) εE (F ).

集合E(F)は単位元がOであるアーベル群をなす。Fの任意の拡大体Kに対し、集合E(K)は単位元がOであるアーベル群をなす。   The set E (F) forms an abelian group whose unit element is O. For any extension field K of F, the set E (K) forms an abelian group whose unit element is O.

楕円曲線暗号のために使われる楕円曲線は、有限体F(GF(q)と書かれることもある)の上で定義されるものである。そして楕円曲線の方程式は、Fの標数pの違いによって異なるので、以下、p=2,p=3,p>3のそれぞれの場合について別々に扱うことにする。 The elliptic curve used for elliptic curve cryptography is defined on a finite field F q (sometimes written as GF (q)). The equation of the elliptic curve is different depending on the difference of characteristic p of F q, below, p = 2, p = 3, p> for the case of 3 of each to be handled separately.

[2.2] 標数p=2の場合
1.非超特異の場合
これは式(1)の左辺がY+aXYの場合で、一般性を失うことなくa=1としてよく、楕円曲線Eの方程式を次のように与えることができる。
+XY=X+a+a, a,a∈F. (3)
2.超特異の場合
これは楕円曲線Eの方程式を次のように与えることができる場合である。
+aY=X+aX+a, a,a,a∈F. (4)
[2.2] When characteristic p = 2 In the case of non-super singularity This is the case where the left side of the formula (1) is Y 2 + a 1 XY, and a 1 = 1 can be set without loss of generality, and the equation of the elliptic curve E can be given as follows: .
Y 2 + XY = X 3 + a 2 X 2 + a 6 , a 2 , a 6 εF. (3)
2. Case of super singularity This is a case where the equation of the elliptic curve E can be given as follows.
Y 2 + a 3 Y = X 3 + a 4 X + a 6 , a 3 , a 4 , a 6 εF. (4)

[2.3] 標数3の場合
標数3の体F上の楕円曲線Eの方程式を次のように与える。
=X+a+aX+a, a,a,a∈F. (5)
[2.3] Case of characteristic 3 An equation of an elliptic curve E on a field F of characteristic 3 is given as follows.
Y 2 = X 3 + a 2 X 2 + a 4 X + a 6 , a 2 , a 4 , a 6 εF. (5)

[2.4] 標数p≠2,3の場合
体F上の楕円曲線Eは、Fの標数が2でも3でもないなら、一般性を失うことなく次の形の方程式によって与えられる。
=X+aX+b, a,b∈F,charF≠2,3. (6)
ただし、X+aX+bの判別式−(4a+27b)≠0である。
[2.4] Case of characteristic p ≠ 2, 3 If the characteristic curve of F is neither 2 nor 3, the elliptic curve E on the field F is given by the following equation without loss of generality.
Y 2 = X 3 + aX + b, a, bεF, charF ≠ 2,3. (6)
However, the discriminant of X 3 + aX + b− (4a 3 + 27b 2 ) ≠ 0.

[2.5] 加法則
集合E(F)は単位元がOであるアーベル群をなすことは前に述べた。この群における演算は次の加法則で与えられる。ここでは幾何的イメージが湧きやすいように、実数体R上の楕円曲線として話を進める。
[2.5] It has been mentioned earlier that the additive rule set E (F) forms an Abelian group whose unit element is O. The operations in this group are given by the following addition law. Here, the story proceeds as an elliptic curve on the real field R so that a geometric image can be easily generated.

定義
Eを式(6)で与えられる実数体上の楕円曲線とし、PとQをE上の2点とする。Pの負および和P+Qを、次の規則に従って定義する。
1)もしPが無限遠点Oなら、−PをOと定義する。任意の点Qに対し、O+QをQと定義する。すなわち、Oは点の群の加法単位元(「零元」)としての役割を果たす。以下では、PもQも無限遠点でないと仮定する。
2)負−Pは、x座標がPと同じで、y座標が逆符号の点である。すなわち、−(x,y)=(x,−y)である。(x,y)が曲線上にあれば、(x,−y)も曲線上にあることは、式(6)から明らかである。もしQ=−Pなら、P+Qを無限遠点Oと定義する。
3)もしPとQが異なるx座標をもてば、直線l=PQ(2点P、Qを結ぶ直線)は、曲線とちょうどもう一つの点Rで交わる(もし直線lが曲線にPで接するなら、R=P、あるいはQで接するなら、R=Qととるが、そうでないとする)。このとき、P+Qを−R、すなわち第3の交点の(x軸に関する)鏡像と定義する。
4)最後の可能性はP=Qである。このとき直線lをPにおける曲線への接線とし、Rを直線lと曲線のただ一つの他の交点として、2P=−Rと定義する。(もし接線がPで「2重の接線」をもつなら、換言すれば、もしPが変曲点なら、RをPにとる。)
Definition Let E be an elliptic curve on the real field given by equation (6), and let P and Q be two points on E. Define the negative and sum P + Q of P according to the following rules:
1) If P is an infinite point O, -P is defined as O. For any point Q, O + Q is defined as Q. That is, O serves as an additive unit element (“zero element”) of a group of points. In the following, it is assumed that neither P nor Q is an infinite point.
2) Negative -P is a point where the x coordinate is the same as P and the y coordinate is the opposite sign. That is,-(x, y) = (x, -y). If (x, y) is on the curve, it is clear from equation (6) that (x, -y) is also on the curve. If Q = −P, define P + Q as the infinity point O.
3) If P and Q have different x-coordinates, the straight line l = PQ (a straight line connecting two points P and Q) intersects the curve at exactly another point R (if the straight line l is P in the curve) If it touches, R = P or Q touches if R = Q, but not otherwise). At this time, P + Q is defined as -R, that is, a mirror image (with respect to the x-axis) of the third intersection.
4) The last possibility is P = Q. At this time, the straight line 1 is defined as tangent to the curve at P, and R is defined as 2P = −R, where R is the only other intersection of the curve and the curve. (If the tangent is P and has a “double tangent”, in other words, if P is the inflection point, take R as P.)

上の規則の組は、次のように簡潔に要約できる。
直線が曲線と交わる3点の和は零である。
The above rule set can be briefly summarized as follows:
The sum of the three points where the straight line intersects the curve is zero.

もし直線が無限遠点Oを通るなら、この関係はP+P+O=Oの形をもつ(ここでPとPは対称な点である)、すなわち、P=−Pである。そうでないなら、P+Q+R=Oの形をもつ。ただし、P、QとRは規則3)あるいは4)の3点である。 If the straight line passes through the infinity point O, this relationship has the form P + P ~ + O = O (where P and P ~ are symmetric points), i.e. P ~ = -P. Otherwise, it has the form P + Q + R = O. However, P, Q and R are the three points of rule 3) or 4).

(x,y)、(x,y)、(x,y)でそれぞれP、Q、P+Qの座標を表す。xとyをx,y,x,yで表したい。上のP+Qの定義の規則3)と4)の場合、直線lの方程式をy=λx+νとする。
P≠Qの場合(加算公式)
=λ−(x+x
=λ(x−x)−y
λ=(y−y)/(x−x) (7)
P=Qの場合(2倍点公式)
λがPにおける導関数dy/dxの値である以外、P≠Qの場合と同様である。Pの2倍点の座標の式は次のとおりである。
=λ−2x
=λ(x−x)−y
λ=(3x +a)/(2y) (8)
(X 1 , y 1 ), (x 2 , y 2 ), and (x 3 , y 3 ) represent the coordinates of P, Q, and P + Q, respectively. I want to express x 3 and y 3 at x 1, y 1, x 2 , y 2. In the case of rules 3) and 4) in the definition of P + Q above, the equation of the straight line l is y = λx + ν.
When P ≠ Q (addition formula)
x 3 = λ 2 − (x 1 + x 2 )
y 3 = λ (x 1 −x 3 ) −y 1
λ = (y 2 −y 1 ) / (x 2 −x 1 ) (7)
In the case of P = Q (double point formula)
Same as P ≠ Q except that λ is the value of the derivative dy / dx at P. The equation for the coordinates of the double point of P is as follows.
x 3 = λ 2 -2x 1
y 3 = λ (x 1 −x 3 ) −y 1
λ = (3x 1 2 + a) / (2y 1 ) (8)

記法nPによって、もしnが正なら、Pをそれ自身n回加えることを、またもしnが負なら、−Pをそれ自身|n|回加えることを表す。   The notation nP represents adding P itself n times if n is positive, and adding -P itself | n | times if n is negative.

[2.6] 加算の計算量
P+Q=(x,y)の計算のコストを考える。ここで加算、減算、小さな定数の乗算は無視する。以下で乗算、逆元算のコストをそれぞれM、Iで表す。なお平方算のコストをSで表すが、多くの場合平方算と乗算のコストはほぼ同等と考えることができるので、ここではS≒Mとした式も示す。
[2.6] Calculation amount of addition Consider the calculation cost of P + Q = (x 3 , y 3 ). Here, addition, subtraction, and multiplication of small constants are ignored. In the following, the costs of multiplication and inverse operation are represented by M and I, respectively. Note that the cost of squaring is represented by S, but in many cases, the cost of squaring and multiplication can be considered to be almost the same, so here an equation with S≈M is also shown.

P≠Qの場合
1.λ=(y−y)/(x−x)の計算:
(x−x−1の計算に逆元算のコストI。
これにy−yをかける計算に乗算のコストM。
2.x=λ−(x+x)の計算:
λの計算に平方算のコストS≒M。
3.y=λ(x−x)−yの計算:
λをx−xにかける計算に乗算のコストM。
以上の合計コストt=1I+2M+S≒1I+3M。なおtの添え字AはAddition(加算)のつもりである。
When P ≠ Q Calculation of λ = (y 2 −y 1 ) / (x 2 −x 1 ):
The cost I of the inverse operation for the calculation of (x 2 −x 1 ) −1.
Multiplication cost M for the calculation of multiplying y 2 −y 1 by this.
2. Calculation of x 3 = λ 2 − (x 1 + x 2 ):
cost S ≒ M of squaring to λ 2 of the calculation.
3. Calculation of y 3 = λ (x 1 −x 3 ) −y 1 :
Multiplication cost M for the calculation of λ multiplied by x 1 −x 3 .
Total cost t A = 1I + 2M + S≈1I + 3M. The subscript A of t A is intended to be an addition.

P=Qの場合
1.λ=(3x +a)/(2y)の計算:
(2y−1の計算に逆元算のコストI。
の計算に平方算のコストS≒M。
これに(2y−1をかける計算に乗算のコストM。
2.x=λ−2xの計算:
λの計算に平方算のコストS≒M。
3.y=λ(x−x)−yの計算:
λをx−xにかける計算に乗算のコストM。
以上の合計コストt=1I+2M+2S≒1I+4M。なおtの添え字DはDoubling(2倍算)のつもりである。
When P = Q Calculation of λ = (3x 1 2 + a) / (2y 1 ):
The cost I of the inverse operation for the calculation of (2y 1 ) −1.
The cost of squaring S≈M for the calculation of x 1 2 .
Multiplication cost M for the calculation of (2y 1 ) −1 multiplied by this.
2. Calculation of x 3 = λ 2 −2x 1 :
cost S ≒ M of squaring to λ 2 of the calculation.
3. Calculation of y 3 = λ (x 1 −x 3 ) −y 1 :
Multiplication cost M for the calculation of λ multiplied by x 1 −x 3 .
The total cost t D = 1I + 2M + 2S≈1I + 4M. Subscript D of The t D is the intention of Doubling (2 multiplication).

まとめ
以上をまとめると、FにおけるP+Qの計算コストは次のとおりである。ただしFの標数はp>3であり、また計算にはアフィン座標系を使うものとする。
一般の加算の場合、計算量t=1I+2M+S≒.1I+3M
2倍算の場合、計算量t=1I+2M+2S=t+1S≒t+1M
In summary summary, the computational cost of P + Q in F q are as follows. However, the characteristic of F q is p> 3, and the affine coordinate system is used for the calculation.
In the case of general addition, the calculation amount t A = 1I + 2M + S≈. 1I + 3M
In the case of doubling, the calculation amount t D = 1I + 2M + 2S = t A + 1S≈t A + 1M

[3] 3倍点公式
我々の方法は点の3倍算を使う。よって3倍点3P=(x,y)の座標をP=(x,y)の座標で表したい。
[3.1] 3倍点公式の導出
まず2倍点P=2P=2(x,y)=(x,y)を求める。
=λ−2x
=λ(x−x)−y
λ=(3x +a)/(2y) (9)
[3] Triple point formula Our method uses point triples. Therefore, we would like to express the coordinates of the triple point 3P = (x t , y t ) with the coordinates of P = (x 1 , y 1 ).
[3.1] Derivation of triple point formula First, double point P d = 2P = 2 (x 1 , y 1 ) = (x d , y d ) is obtained.
x d = λ 2 −2x 1
y d = λ (x 1 −x d ) −y 1
λ = (3x 1 2 + a) / (2y 1 ) (9)

次に3倍点を3P=P+Pとして求める。Pの3倍点3P=(x,y)の座標は次で与えられる。式(7)においてx,y,x,y,x,y,λをそれぞれx,y,x,y,x,y,μで置き換える。その上でさらに、xの式の右辺のxに式(9)の第1式を代入する。
=μ−(x+x
=μ−λ+x
=μ(x−x)−y
μ=(y−y)/(x−x) (10)
={λ(x−x)−y−y}/(λ−2x−x
={λ(x−λ+2x)−2y}/(λ−3x
=−λ−2y/(λ−3x) (11)
Then determine the triple point as 3P = P + P d. The coordinates of P triple point 3P = (x t , y t ) are given by In Expression (7), x 1 , y 1 , x 2 , y 2 , x 3 , y 3 , and λ are replaced with x 1 , y 1 , x d , y d , x t , y t , and μ, respectively. Still further, the substituted first equation of the formula (9) x d on the right side of the equation of x t.
x t = μ 2 − (x 1 + x d )
= Μ 2 −λ 2 + x 1
y t = μ (x 1 −x t ) −y 1
μ = (y d −y 1 ) / (x d −x 1 ) (10)
= {Λ (x 1 −x d ) −y 1 −y 1 } / (λ 2 −2x 1 −x 1 )
= {Λ (x 1 −λ 2 + 2x 1 ) −2y 1 } / (λ 2 −3x 1 )
= -Λ-2y 1 / (λ 2 -3x 1 ) (11)

3倍点公式:まとめ
=μ−λ+x
=μ(x−x)−y
λ=(3x +a)/(2y),μ=−λ−2y/(λ−3x) (12)
Triple point formula: Summary x t = μ 2 −λ 2 + x 1
y t = μ (x 1 −x t ) −y 1
λ = (3 × 1 2 + a) / (2y 1 ), μ = −λ−2y 1 / (λ 2 −3x 1 ) (12)

[3.2] 2進法と3進法の適用例
[例:100P の計算]
100=1100100(2)=10201(3)
2進法の場合
1)2P+P=3P
0)2(3P)=6P
0)2(6P)=12P
1)2(12P)+P=25P
0)2(25P)=50P
0)2(50P)=100P
3進法の場合
0)3P
2)3(3P)+2P=11P
0)3(11P)=33P
1)3(33P)+P=100P
[3.2] Application example of binary system and ternary system [Example: Calculation of 100P]
100 = 1100100 (2) = 10201 (3)
In case of binary system 1) 2P + P = 3P
0) 2 (3P) = 6P
0) 2 (6P) = 12P
1) 2 (12P) + P = 25P
0) 2 (25P) = 50P
0) 2 (50P) = 100P
In case of ternary system 0) 3P
2) 3 (3P) + 2P = 11P
0) 3 (11P) = 33P
1) 3 (33P) + P = 100P

[3.3] 3倍算の計算量
点Pの3倍算すなわち3Pを求める計算のコストを考える。ここで加算、減算、小さな定数の乗算は無視する。以下で乗算、逆元算のコストをそれぞれM、Iで表わす。なお平方算のコストをSで表すが、ここではS≒Mとする式も示す。
1.λ=(3x +a)/(2y)の計算:
(2y−1の計算に逆元算のコストI。
の計算に平方算のコストS≒M。
これに(2y−1をかける計算に乗算のコストM。
2.λの計算に平方算のコストS≒M。
3.μ=−λ−2y/(λ−3x)の計算:
(λ−3x−1の計算に逆元算のコストI。
これに2yをかける計算に乗算のコストMがかかる。
4.μの計算:
平方算のコストS≒M。
5.yの計算:
μをx−xにかける計算に乗算のコストM。
以上の合計コストt=2I+3M+3S≒2I+6M=2t。ここでtの添え字TはTripling(3倍算)のつもりである。なお2Pを求めてからPを加算して3Pを求めると、計算量はt’=t+t=2t+1S=t+1Mであることに注意する。したがって、3倍算公式の使用で計算量をMだけ節約できる。
[3.3] Calculation amount of triple calculation Consider the cost of triple calculation of point P, that is, calculation to obtain 3P. Here, addition, subtraction, and multiplication of small constants are ignored. In the following, the costs of multiplication and inverse operation are represented by M and I, respectively. In addition, although the cost of squaring is represented by S, here, an equation of S≈M is also shown.
1. Calculation of λ = (3x 1 2 + a) / (2y 1 ):
The cost I of the inverse operation for the calculation of (2y 1 ) −1.
The cost of squaring S≈M for the calculation of x 1 2 .
Multiplication cost M for the calculation of (2y 1 ) −1 multiplied by this.
2. cost S ≒ M of squaring to λ 2 of the calculation.
3. Calculation of μ = −λ−2y 1 / (λ 2 −3x 1 ):
The cost I of the inverse element calculation for the calculation of (λ 2 −3 × 1 ) −1.
This costly M of multiplication to calculate multiplying the 2y 1.
4). μ 2 of the calculation:
The cost of squaring S≈M.
5. calculation of y t:
Multiplication cost M for the calculation of μ multiplied by x 1 −x t .
The total cost t T = 2I + 3M + 3S≈2I + 6M = 2t A. Subscript T here is t T is the intention of Tripling (3 multiplication). Note the Request 3P by adding P from seeking 2P, computing the amount it is to be noted that t T '= t A + t D = 2t A + 1S = t T + 1M. Therefore, the amount of calculation can be saved by using the triple formula.

[4] k倍算の計算量:標数p>3の場合
2倍算公式を使うときと、3倍算公式を使うときの計算量を比較する。
[4] Computation amount of k multiplication: When characteristic p> 3 Compare the computation amount when using the doubling formula and when using the triple formula.

[4.1] 2進法とその計算量:標数p>3の場合
入力:点Pと整数k
出力:点Q=kP
アルゴリズム:
1.kを2進展開する。k=kl−1l−2…k0(2)。ただしl(エル)はkのビット数でkl−1=1である。
2.Q=Pとしてj=l−2,…,0に対して次を行う。
(2a)Q←2Q
(2b)k=1ならQ←Q+P
[4.1] Binary system and its calculation amount: When characteristic p> 3 Input: Point P and integer k
Output: Point Q = kP
algorithm:
1. k is expanded in binary. k = k l−1 k l−2 ... k 1 k 0 (2) . However, l (el) is the number of bits of k and k l−1 = 1.
2. The following is performed for j = 1−2,.
(2a) Q ← 2Q
(2b) If k j = 1, Q ← Q + P

2進法の計算量:
1.の2進展開のコストは無視する。
2.の(2a)は2倍算であるからその計算量はt=t+1Sである。
2.の(2b)は一般の加算であるからその計算量はt=1I+2M+1Sである。
Binary computational complexity:
1. The cost of binary expansion is ignored.
2. Since (2a) is doubled, the amount of calculation is t D = t A + 1S.
2. Since (2b) is a general addition, the amount of calculation is t A = 1I + 2M + 1S.

ところで2倍算はl−1回、加算はw−1回行うから、2進法によるkPの計算量tは次のとおりである。ただしwはkの2進展開におけるハミング重み(すなわち非零桁の個数)である。
=(l−1)t+(w−1)t
=(l−1)(t+1S)+(w−1)t
=(l+w−2)t+(l−1)S
=(l+w−2)I+(2l+2w−4)M+(2l+w−3)S
≒(l+w−2)I+(4l+3w−7)M (13)
lはkのビット数だけで決まるがwはw=1からw=lまであり得る。ゆえに
(l−1)(t+S)≦t≦(l−1)(2t+S) (14)
+S≦t/(l−1)≦2t+S (15)
である。また平均としてw=l/2とし、l≫1とすれば
=(l/2)(3t+2S) (16)
さらにt=1I+2M+S、S≒Mとすれば
=(l/2)(3I+11M) (17)
ここで典型的にI=3Mならt =10lM、I=11Mならt =22lMとなる。
Meanwhile doubling the l-1 times, addition is because performing w-1 times, the amount of calculation t 2 of kP by binary is as follows. However, w is a Hamming weight (that is, the number of non-zero digits) in the binary expansion of k.
t 2 = (l−1) t D + (w−1) t A
= (L-1) (t A + 1S) + (w-1) t A
= (L + w-2) t A + (l-1) S
= (L + w-2) I + (2l + 2w-4) M + (2l + w-3) S
≒ (l + w-2) I + (4l + 3w-7) M (13)
l is determined only by the number of bits of k, but w can be from w = 1 to w = 1. Therefore, (l−1) (t A + S) ≦ t 2 ≦ (l−1) (2t A + S) (14)
t A + S ≦ t 2 / (l−1) ≦ 2t A + S (15)
It is. Also the w = l / 2 as an average, if l»1 t 2 ¯ = (l / 2) (3t A + 2S) (16)
If t A = 1I + 2M + S and S≈M, then t 2 == (l / 2) (3I + 11M) (17)
Here typically I = 3M if t 2 ¯ = 10lM, the I = 11M if t 2 ¯ = 22lM.

[4.2] 3進法とその計算量:標数p>3の場合
入力:点Pと整数k
出力:点Q=kP
アルゴリズム:
0.P=2Pを予め計算し記憶する。
1.kを3進展開する。k=hi−1i−2…h0(3)。ただしiはkの3進桁数でhi−1>0である。
2.hi−1=1ならQ←P、hi−1=2ならQ←Pとしてj=i−2,…,0に対して次を行う。
(2a)Q←3Q
(2b)h=1ならQ←Q+P
(2c)h=2ならQ←Q+P
[4.2] Ternary system and its calculation amount: When characteristic p> 3 Input: Point P and integer k
Output: Point Q = kP
algorithm:
0. P d = 2P is calculated and stored in advance.
1. Expand k in ternary. k = h i-1 h i-2 ... h 1 h 0 (3) . However, i is the number of ternary digits of k, and h i-1 > 0.
2. If h i-1 = 1, Q ← P, and if h i-1 = 2, Q ← Pd and j = i−2,.
(2a) Q ← 3Q
(2b) If h j = 1, Q ← Q + P
(2c) If h j = 2 then Q ← Q + P d

3進法の計算量:
0.P=2Pの予備計算のコストは無視する。
1.の3進展開のコストは無視する。
2.の(2a)は3倍算であるからその計算量はt=2I+3M+3S≒2tである。
2.の(2b)、(2c)は一般の加算であるからその計算量はt=1I+2M+1Sである。
Ternary computational complexity:
0. The cost of the preliminary calculation of P d = 2P is ignored.
1. The cost of ternary expansion is ignored.
2. Since (2a) is triple, the amount of calculation is t T = 2I + 3M + 3S≈2t A.
2. Since (2b) and (2c) are general additions, the amount of calculation is t A = 1I + 2M + 1S.

ところで3倍算はi−1回、加算はw−1回行うから、3進法によるkPの計算量tは次のとおりである。ただしwはkの3進展開におけるハミング重み(すなわち非零桁の個数)である。
=(i−1)t+(w−1)t
=(i−1)(2I+3M+3S)+(w−1)(1I+2M+1S)
=(2i+w−3)I+(3i+2w−5)M+(3i+w−4)S
≒(2i+w−3)(1I+3M)≒(2i+w−3)t (18)
iはkの3進桁数だけで決まるがwはw=1からw=iまであり得る。ゆえにt≒(2i+w−3)tの近似を使えば、
2(i−1)t≦t≦3(i−1)t (19)
2t≦t3/(i−1)≦3t (20)
である。また平均としてw=2i/3とし、i≫1とすれば
=(8i/3)t (21)
さらにt=1I+2M+S、S≒Mとすれば
=(8i/3)(1I+3M) (22)
ここで典型的にI=3Mならt =16iM,I=11Mならt =(112i/3)Mとなる。
Incidentally 3 multiplication is i-1 times, addition is because performing w-1 times, the amount of calculation t 3 of kP by ternary method is as follows. However, w is a Hamming weight (that is, the number of non-zero digits) in the ternary expansion of k.
t 3 = (i−1) t T + (w−1) t A
= (I-1) (2I + 3M + 3S) + (w-1) (1I + 2M + 1S)
= (2i + w-3) I + (3i + 2w-5) M + (3i + w-4) S
≒ (2i + w-3) (1I + 3M) ≒ (2i + w-3) t A (18)
i is determined only by the number of ternary digits of k, but w can be from w = 1 to w = i. Therefore, using the approximation of t 3 ≈ (2i + w−3) t A ,
2 (i-1) t A ≤t 3 ≤3 (i-1) t A (19)
2t A ≦ t3 / (i−1) ≦ 3t A (20)
It is. Also the w = 2i / 3 as an average, t 3 ¯ if i»1 = (8i / 3) t A (21)
If t A = 1I + 2M + S and S≈M, then t 3 == (8i / 3) (1I + 3M) (22)
Here typically I = 3M if t 3 ¯ = 16iM, the I = 11M if t 3 ¯ = (112i / 3 ) M.

[5] 2進法と3進法の選択による高速化
これまでに2進法と3進法によるk倍算の計算量tとtを見積もった。両者のどちらが小さいかはkを展開したときの重みw、wすなわち非零桁数に依存する。したがってkが与えられるとき、まずこれを2進法と3進法とで展開し、tとtの大小関係によって2進法と3進法のいずれかを選択することで高速化を図ることができると考えられる。
[5] estimated amount of calculation t 2 and t 3 of k multiplication by binary and binary up speed this by selecting the ternary and ternary. Which of the two is smaller depends on the weights w 2 and w 3 when k is expanded, that is, the number of non-zero digits. Therefore, when k is given, this is first expanded in binary and ternary systems, and either binary or ternary system is selected according to the magnitude relationship between t 2 and t 3 to increase the speed. It is considered possible.

[5.1] 2進法と3進法の計算量の比較
平均値の比較
平均値t とt の比t=t /t は式(22)、(17)により次のとおりである。
=t /t =16i(1I+3M)/{3l(3I+11M)}
=16i(d+3)/{3l(3d+11)} (23)
ただしd=I/Mは逆元算と乗算の計算時間の比である。そこでt<1となるd=I/Mの条件を求めよう。c=l/i=log3=1.585を使うと
d=I/M<(33c−48)/(16−9c)=2.480 (24)
である。すなわちI<2.480Mのとき、t <t となる。
[5.1] compared the average value of the comparison the average value of the binary and ternary computational t 3 ¯ and t 2 ¯ ratio t ¯ = t 3 ¯ / t 2 ¯ formula (22), (17 ) Is as follows.
t ¯ = t 3 ¯ / t 2 ¯ = 16i (1I + 3M) / {3l (3I + 11M)}
= 16i (d + 3) / {3l (3d + 11)} (23)
However, d = I / M is the ratio of the calculation time of inverse operation and multiplication. Therefore, the condition of d = I / M where t <1 will be obtained. When c = 1 / i = log 2 3 = 1.585, d = I / M <(33c−48) / (16−9c) = 2.480 (24)
It is. That is, when I <2.480M, t 3 <t 2 .

一般の場合の比較
とtの比t=t/tは式(13)、(18)により次のとおりである。ただしw’=w/l、w’=w/iは相対重みである。
t=t/t
=(2i+w−3)(d+3)/{(l+w−2)d+4l+3w−7}
={(2+w’−3c/l)(d+3)/c}/{(1+w’−2/l)d+4+3w’−7/l} (25)
通常lは十分大きいから上の式で1/lの項を省略すると
t={(2+w’)(d+3)/c}/{(1+w’)d+4+3w’} (26)
式(26)でt<1となるw’、w’、dに関する条件を求めれば、t<tとなる数kを求めることができる。ただしdは予め決まっている数である。式(26)の近似を用いれば、
’<cw’−{(2−c)d+6−4c}/(d+3) (27)
となる。
Comparison t 3 and the ratio t = t 3 / t 2 of t 2 in the case of the general formula (13), is as follows: by (18). However, w 2 ′ = w 2 / l and w 3 ′ = w 3 / i are relative weights.
t = t 3 / t 2
= (2i + w 3 -3) (d + 3) / {(l + w 2 -2) d + 4l + 3w 2 -7}
= {(2 + w 3 ' -3c / l) (d + 3) / c} / {(1 + w 2' -2 / l) d + 4 + 3w 2 '-7 / l} (25)
Usually, l is sufficiently large, so if the 1 / l term is omitted in the above equation, t = {(2 + w 3 ′) (d + 3) / c} / {(1 + w 2 ′) d + 4 + 3w 2 ′} (26)
If the condition regarding w 2 ′, w 3 ′, and d where t <1 is obtained in Expression (26), the number k satisfying t 3 <t 2 can be obtained. However, d is a predetermined number. Using the approximation of equation (26)
w 3 '<cw 2' - {(2-c) d + 6-4c} / (d + 3) (27)
It becomes.

ここでは典型的なdの値に対して、上の条件を求める。
d=3の場合:
t<1となるためには
’<cw’+(7/6)c−2=1.585w’−0.1509 (28)
でなければならない。ただし0<w’,w’≦1を考慮すると、t<1となる条件は
条件Ter
0.0952<w’<0.7261 (29)
かつ式(28)が成り立つ。 (30)
Here, the above condition is obtained for a typical value of d.
For d = 3:
To satisfy t <1, w 3 ′ <cw 2 ′ + (7/6) c−2 = 1.585 w 2 ′ −0.1509 (28)
Must. However, considering 0 <w 2 ′ and w 3 ′ ≦ 1, the condition for t <1 is the condition Ter
0.0952 <w 2 ′ <0.7261 (29)
And Formula (28) is materialized. (30)

d=11の場合:
t<1となるためには
’<cw’+(15/14)c−2=1.585w’−0.3018 (31)
でなければならない。0<w’,w’≦1を考慮すると、t<1となる条件は
条件Ter
0.190<w’<0.8213 (32)
かつ式(31)が成り立つ。 (33)
When d = 11:
To satisfy t <1, w 3 ′ <cw 2 ′ + (15/14) c−2 = 1.585 w 2 ′ −0.3018 (31)
Must. Considering 0 <w 2 ′, w 3 ′ ≦ 1, the condition for t <1 is the condition Ter
0.190 <w 2 ′ <0.8213 (32)
And Formula (31) is formed. (33)

[5.2] 提案法−選択的2進・3進法
入力:点Pと整数k
出力:点Q=kP
アルゴリズム:
1.kを2進および3進展開する。それぞれにおける桁数lとi、重みwとw、また相対重みw’とw’を求める。
2.(2a)条件Terが成立するなら3進法による計算を行う。
(2b)条件Terが成立しないなら2進法による計算を行う。
[5.2] Proposed method-Selective binary / ternary system Input: Point P and integer k
Output: Point Q = kP
algorithm:
1. k is expanded in binary and ternary. The number of digits l and i, the weights w 2 and w 3 , and the relative weights w 2 ′ and w 3 ′ are obtained.
2. (2a) If the condition Ter is satisfied, a ternary calculation is performed.
(2b) If the condition Ter is not satisfied, the calculation by the binary system is performed.

[5.3] 2進法と3進法の計算量の例
[例1:100Pの計算]
100=1100100(2)=10201(3)
2進法の場合
2倍算Dと加算Aの列はDADDDADDとなるから、
=2t+6t=2(1,2,1)+6(1,2,2)=(8,16,14)となる。ただし、コストを(I,M,S)で表記している。
3進法の場合
3倍算Tと加算Aの列はTTATTAとなるから、
=2t+4t=2(1,2,1)+4(2,3,3)=(10,16,14)となる。
この例では3進法のほうが逆元算2回だけ多い。
[5.3] Examples of computational complexity in binary and ternary systems [Example 1: Calculation of 100P]
100 = 1100100 (2) = 10201 (3)
In case of binary system, the column of doubling D and addition A is DADDDDADD.
t 2 = 2t A + 6t D = 2 (1,2,1) +6 (1,2,2) = (8, 16, 14). However, the cost is represented by (I, M, S).
In the case of the ternary system, the column of triple T and addition A is TTATTA,
t 3 = 2t A + 4t T = 2 (1,2,1) +4 (2,3,3) = a (10,16,14).
In this example, the ternary system has more inverse operations twice.

[例2:90Pの計算]
90=1011010(2)=10100(3)
2進法の場合
2倍算Dと加算Aの列はDDADADDADとなるから、
=3t+6t=3(1,2,1)+6(1,2,2)=(9,18,15)となる。
3進法の場合
3倍算Tと加算Aの列はTTATTとなるから、
=2t+4t=(1,2,1)+3(2,3,3)=(7,11,10)となる。
この例では平方算を乗算とみなすと、3進法のほうが逆元算2回と乗算が12回だけ少ない。計算量の削減率をδ=(t−t)/tで表すと、d=I/M=3のときδ=30%、d=I/M=11のときδ=25%となる。
[Example 2: Calculation of 90P]
90 = 10111010 (2) = 10100 (3)
In case of binary system, the column of doubling D and addition A is DDADADDAD.
t 2 = 3t A + 6t D = 3 (1,2,1) +6 (1,2,2) = (9, 18, 15).
In the case of the ternary system, the column of triple T and addition A is TTATT.
t 3 = 2t A + 4t T = (1,2,1) +3 (2,3,3) = (7, 11, 10).
In this example, when the square operation is regarded as multiplication, the ternary system has two inverse elements and 12 multiplications less. When the reduction rate of the calculation amount is expressed by δ = (t 2 −t 3 ) / t 3 , δ = 30% when d = I / M = 3, and δ = 25% when d = I / M = 11. Become.

[6] 楕円曲線:標数3の場合
標数3の体F上の楕円曲線Eの方程式を次のように与える。
=X+a+aX+a, a,a,a∈F. (34)
[6] Elliptic curve: in the case of characteristic 3 The equation of elliptic curve E on the field F of characteristic 3 is given as follows.
Y 2 = X 3 + a 2 X 2 + a 4 X + a 6 , a 2 , a 4 , a 6 εF. (34)

[6.1] 加法公式:標数3の場合
前と同じく(x,y)、(x,y)、(x,y)でそれぞれP、Q、P+Qの座標を表す。xとyをx,y,x,yで表したい。
P≠Qの場合(加算公式)
=λ−a−(x+x
=λ(x−x)−y
λ=(y−y)/(x−x) (35)
[6.1] Additive formula: In the case of characteristic 3, (x 1 , y 1 ), (x 2 , y 2 ), (x 3 , y 3 ) represent the coordinates of P, Q, and P + Q, respectively, as before. . I want to express x 3 and y 3 at x 1, y 1, x 2 , y 2.
When P ≠ Q (addition formula)
x 3 = λ 2 −a 2 − (x 1 + x 2 )
y 3 = λ (x 1 −x 3 ) −y 1
λ = (y 2 −y 1 ) / (x 2 −x 1 ) (35)

P=Qの場合(2倍点公式)
λがPにおける導関数dy/dxの値である以外、P≠Qの場合と同様である。Pの2倍点の座標の式は次のとおりである。
=λ−a−2x=λ−a+x
=λ(x−x)−y
λ=(3x +2a+a)/(2y)=(a−a)/y (36)
なお2倍点の座標であることを明示するために、この場合の(x,y)を(x,y)と表すこともある。
In the case of P = Q (double point formula)
Same as P ≠ Q except that λ is the value of the derivative dy / dx at P. The equation for the coordinates of the double point of P is as follows.
x 3 = λ 2 −a 2 −2x 1 = λ 2 −a 2 + x 1
y 3 = λ (x 1 −x 3 ) −y 1
λ = (3 × 1 2 + 2a 2 x 1 + a 4 ) / (2y 1 ) = (a 2 x 1 −a 4 ) / y 1 (36)
Note that (x 3 , y 3 ) in this case may be expressed as (x d , y d ) in order to clearly indicate that the coordinates are double points.

3倍点公式
P=(x,y)、2P=(x,y)、3P=(x,y)として、3倍点3P=(x,y)=(x,y)+(x,y)を求める。3Pの座標は次で与えられる。
=μ−λ+x
=μ(x−x)−y
λ=(a−a)/y, μ=−λ+y/(λ−a) (37)
Triple point formula P = (x 1 , y 1 ), 2P = (x d , y d ), 3P = (x t , y t ), triple point 3P = (x t , y t ) = (x 1 , y 1 ) + (x d , y d ) is obtained. The 3P coordinates are given by
x t = μ 2 −λ 2 + x 1
y t = μ (x 1 −x t ) −y 1
λ = (a 2 x 1 −a 4 ) / y 1 , μ = −λ + y 1 / (λ 2 −a 2 ) (37)

[6.2] 加算の計算量:標数3の場合
P+Q=(x,y)の計算のコストを考える。ここで加算、減算、小さな定数の乗算は無視する。以下で平方算、乗算、逆元算のコストをそれぞれS、M、Iで表す。
P≠Qの場合
1.λ=(y−y)/(x−x)の計算:
(x−x−1の計算に逆元算のコストI。
これにy−yをかける計算に乗算のコストM。
2.x=λ−a−(x+x)の計算:
λの計算に平方算のコストS.
3.y=λ(x−x)−yの計算:
λをx−xにかける計算に乗算のコストM。
以上の合計コストt=1I+2M+1S。なおtの添え字AはAddition(加算)のつもりである。
[6.2] Calculation amount of addition: in case of characteristic 3 Consider the calculation cost of P + Q = (x 3 , y 3 ). Here, addition, subtraction, and multiplication of small constants are ignored. In the following, the costs of squaring, multiplication, and inverse operation are represented by S, M, and I, respectively.
When P ≠ Q Calculation of λ = (y 2 −y 1 ) / (x 2 −x 1 ):
The cost I of the inverse operation for the calculation of (x 2 −x 1 ) −1.
Multiplication cost M for the calculation of multiplying y 2 −y 1 by this.
2. Calculation of x 3 = λ 2 −a 2 − (x 1 + x 2 ):
cost S. of squaring to λ 2 of the calculation
3. Calculation of y 3 = λ (x 1 −x 3 ) −y 1 :
Multiplication cost M for the calculation of λ multiplied by x 1 −x 3 .
Total cost t A = 1I + 2M + 1S. The subscript A of t A is intended to be an addition.

P=Qの場合
1.λ=(a−a)/yの計算:
−1の計算に逆元算のコストI。
−aの計算に乗算のコストM。
これにy −1 をかける計算に乗算のコストM。
2.x=λ−a+xの計算:
λの計算に平方算のコストS。
3.y=λ(x−x)−yの計算:
λをx−xにかける計算に乗算のコストM。
以上の合計コストt=1I+3M+1S。なおtの添え字DはDoubling(2倍算)のつもりである。
When P = Q Calculation of λ = (a 2 x 1 −a 4 ) / y 1 :
Cost I of the inverse operation for the calculation of y 1 −1.
Multiplication cost M for calculating a 2 x 1 -a 4 .
Multiplication cost M for the calculation of multiplying this by y 1 −1 .
2. Calculation of x 3 = λ 2 −a 2 + x 1 :
cost S. of squaring to λ 2 of the calculation
3. Calculation of y 3 = λ (x 1 −x 3 ) −y 1 :
Multiplication cost M for the calculation of λ multiplied by x 1 −x 3 .
Total cost t D = 1I + 3M + 1S. Subscript D of The t D is the intention of Doubling (2 multiplication).

まとめ
以上をまとめると、標数3の有限体FにおけるP+Qの計算コストは次のとおりである。計算にはアフィン座標系を使うものとする。
一般の加算の場合、計算量t=1I+2M+1S
2倍算の場合、計算量t=1I+3M+1S=t+1M
M≒Sの場合には、標数>3の場合と同じ計算量となることに注意する。
Summary In summary, the calculation cost of P + Q in the finite field Fq of characteristic 3 is as follows. The affine coordinate system is used for the calculation.
In the case of general addition, the calculation amount t A = 1I + 2M + 1S
In the case of doubling, the calculation amount t D = 1I + 3M + 1S = t A + 1M
Note that in the case of M≈S, the calculation amount is the same as in the case of characteristic> 3.

[6.3] 3倍算の計算量
点Pの3倍算すなわち3Pを求める計算のコストを考える。ここで加算、減算、小さな定数の乗算は無視する。以下で乗算、逆元算のコストをそれぞれM、Iで表わす。なお平方算のコストをSで表すが、ここではS≒Mとする。
1.λ=(a−a)/yの計算:
前出の通りコストは1I+2M。
2.μ=−λ+y1/(λ−a)の計算:
λの計算に平方算のコストS。
(λ−a−1の計算に逆元算のコストI。
これにy=1をかける計算に乗算のコストM。
3.xの計算:
μの計算に平方算のコストS。
4.yの計算:
μをx−xにかける計算に乗算のコストM。
以上の合計コストt=2I+4M+2S=2t。M≒Sの場合には、標数>3の場合と同じ計算量となることに注意する。なお2Pを求めてからPを加算して3Pを求めると、計算量はt’=t+t=2t+M=t+Mであり、この関係は標数>3の場合と同じであることに注意する。
[6.3] Calculation amount of triple calculation Consider the cost of triple calculation of point P, that is, the calculation for obtaining 3P. Here, addition, subtraction, and multiplication of small constants are ignored. In the following, the costs of multiplication and inverse operation are represented by M and I, respectively. Note that the cost of squaring is represented by S, where S≈M.
1. Calculation of λ = (a 2 x 1 −a 4 ) / y 1 :
As before, the cost is 1I + 2M.
2. Calculation of μ = −λ + y1 / (λ 2 −a 2 ):
cost S. of squaring to λ 2 of the calculation
The cost I of the inverse operation for the calculation of (λ 2 −a 2 ) −1.
Multiplication cost M for the calculation of multiplying this by y = 1.
3. calculation of x t:
Cost S. of squaring the mu 2 calculations
4). calculation of y t:
Multiplication cost M for the calculation of μ multiplied by x 1 −x t .
Total cost t T = 2I + 4M + 2S = 2t A. Note that in the case of M≈S, the calculation amount is the same as in the case of characteristic> 3. Note If by adding P from seeking 2P seek 3-Way, calculated weight of t T '= t A + t D = 2t A + M = t T + M, this relationship is the same as for the standard number of> 3 Note that there are.

[7] k倍算の計算量:標数3の場合
2倍算公式を使うときと、3倍算公式を使うときの計算量を比較する。
[7] Computation amount of k multiplication: In case of characteristic 3, the computation amount when using the doubling formula is compared with that when using the doubling formula.

[7.1] 2進法とその計算量:標数3の場合
入力:点Pと整数k
出力:点Q=kP
アルゴリズム:
1.kを2進展開する。k=kl−1l−2…k0(2)。ただしlはkのビット数でkl−1=1である。
2.Q=0としてj=l−1,…,0に対して次を行う。
(2a)Q←2Q
(2b)k=1ならQ←Q+P
[7.1] Binary method and its calculation amount: In case of characteristic 3 Input: Point P and integer k
Output: Point Q = kP
algorithm:
1. k is expanded in binary. k = k l−1 k l−2 ... k 1 k 0 (2) . However, l is the number of bits of k, and k l−1 = 1.
2. With Q = 0, the following is performed for j = l−1,.
(2a) Q ← 2Q
(2b) If k j = 1, Q ← Q + P

2進法の計算量:
1.の2進展開のコストは無視する。
2.の(2a)は2倍算であるからその計算量はt=t+1Sである。
2.の(2b)は一般の加算であるからその計算量はt=1I+2M+1Sである。
Binary computational complexity:
1. The cost of binary expansion is ignored.
2. Since (2a) is doubled, the amount of calculation is t D = t A + 1S.
2. Since (2b) is a general addition, the amount of calculation is t A = 1I + 2M + 1S.

ところで2倍算はl−1回、加算はw−1回行うから、2進法によるkPの計算量tは次のとおりである。
=(l−1)t+(w−1)t
=(l−1)(t+1M)+(w−1)t
=(l+w−2)t+(l−1)S
=(l+w−2)I+(3l+2w−5)M+(l+w−2)S
≒(l+w−2)I+(4l+3w−7)M (38)
lはkのビット数だけで決まるがwはw=1からw=lまであり得る。ゆえに
(l−1)(t+M)≦t≦(l−1)(2t+M) (39)
+M≦t/(l−1)≦2t+M (40)
である。また平均としてw=l/2とし、l≫1とすれば
=(l/2)(3t+2M) (41)
さらにt=1I+2M+S、S≒Mとすれば
=(l/2)(3I+11M) (42)
ここで典型的にI=3Mならt =10lM、I=11Mならt =22lMとなる。
Meanwhile doubling the l-1 times, addition is because performing w-1 times, the amount of calculation t 2 of kP by binary is as follows.
t 2 = (l−1) t D + (w−1) t A
= (L-1) (t A + 1M) + (w-1) t A
= (L + w-2) t A + (l-1) S
= (L + w-2) I + (3l + 2w-5) M + (l + w-2) S
≒ (l + w-2) I + (4l + 3w-7) M (38)
l is determined only by the number of bits of k, but w can be from w = 1 to w = 1. Therefore, (l−1) (t A + M) ≦ t 2 ≦ (l−1) (2t A + M) (39)
t A + M ≦ t 2 / (l−1) ≦ 2t A + M (40)
It is. Also the w = l / 2 as an average, if l»1 t 2 ¯ = (l / 2) (3t A + 2M) (41)
If t A = 1I + 2M + S and S≈M, then t 2 == (l / 2) (3I + 11M) (42)
Here typically I = 3M if t 2 ¯ = 10lM, the I = 11M if t 2 ¯ = 22lM.

[7.2] 3進法とその計算量:標数3の場合
入力:点Pと整数k
出力:点Q=kP
アルゴリズム:
0.P=2Pを予め計算し記憶する。
1.kを3進展開する。k=hi−1i−2…h0(3)。ただしiはkの3進桁数でhi−1>0である。
2.Q=0としてj=i−1,…,0に対して次を行う。
(2a)Q←3Q
(2b)i=1ならQ←Q+P
(2c)i=2ならQ←Q+P
[7.2] ternary system and its calculation amount: in the case of characteristic 3 Input: point P and integer k
Output: Point Q = kP
algorithm:
0. P d = 2P is calculated and stored in advance.
1. Expand k in ternary. k = h i-1 h i-2 ... h 1 h 0 (3) . However, i is the number of ternary digits of k, and h i-1 > 0.
2. The following is performed for j = i−1,.
(2a) Q ← 3Q
(2b) If i j = 1, Q ← Q + P
(2c) If i j = 2 then Q ← Q + P d

3進法の計算量:
0.のP=2Pの予備計算のコストは無視する。
1.の3進展開のコストは無視する。
2.の(2a)は3倍算であるからその計算量はt=2I+4M+2S=2tである。
2.の(2b)、(2c)は一般の加算であるからその計算量はt=1I+2M+1Sである。
Ternary computational complexity:
0. The cost of the preliminary calculation of P d = 2P is ignored.
1. The cost of ternary expansion is ignored.
2. Since (2a) is triple, the amount of calculation is t T = 2I + 4M + 2S = 2t A.
2. Since (2b) and (2c) are general additions, the amount of calculation is t A = 1I + 2M + 1S.

ところで3倍算はi−1回、加算はw−1回行うから、3進法によるkPの計算量tは次のとおりである。
=(i−1)t+(w−1)t
=(i−1)2t+(w−1)t=(2i+w−3)t
=(2i+ w−3)(1I+2M+1S) (43)
iはkの3進桁数だけで決まるがwはw=1からw=iまであり得る。
2(i−1)t≦t≦3(i−1)t (44)
2tA≦t/(i−1)≦3t (45)
である。また平均としてw=2i/3とし、i≫1とすれば
=(8i/3)t (46)
さらにt=1I+2M+S、S≒Mとすれば
=(8i/3)(1I+3M) (47)
ここで典型的にI=3Mならt =16iM、I=11Mならt =(112i/3)Mとなる。
Incidentally 3 multiplication is i-1 times, addition is because performing w-1 times, the amount of calculation t 3 of kP by ternary method is as follows.
t 3 = (i−1) t T + (w−1) t A
= (I-1) 2t A + (w-1) t A = (2i + w-3) t A
= (2i + w-3) (1I + 2M + 1S) (43)
i is determined only by the number of ternary digits of k, but w can be from w = 1 to w = i.
2 (i-1) t A ≤t 3 ≤3 (i-1) t A (44)
2tA ≦ t 3 / (i−1) ≦ 3t A (45)
It is. Also the w = 2i / 3 as an average, t 3 ¯ if i»1 = (8i / 3) t A (46)
If t A = 1I + 2M + S and S≈M, then t 3 = (8i / 3) (1I + 3M) (47)
Here typically I = 3M if t 3 ¯ = 16iM, the I = 11M if t 3 ¯ = (112i / 3 ) M.

[7.3] 2進法と3進法の選択による高速化
これまでに2進法と3進法によるk倍算の計算量tとtを見積もった。両者のどちらが小さいかはkを展開したときの重みw、wすなわち非零桁数に依存する。したがってkが与えられるとき、まずこれを2進法と3進法とで展開し、tとtの大小関係によって2進法と3進法のいずれかを選択することで高速化を図ることができると考えられる。
[7.3] estimated amount of calculation t 2 and t 3 of k multiplication by binary and binary up speed this by selecting the ternary and ternary. Which of the two is smaller depends on the weights w 2 and w 3 when k is expanded, that is, the number of non-zero digits. Therefore, when k is given, this is first expanded in binary and ternary systems, and either binary or ternary system is selected according to the magnitude relationship between t 2 and t 3 to increase the speed. It is considered possible.

[7.4] 2進法と3進法の計算量の比較
平均値の比較(結果は標数3の場合と同じ)
平均値t とt の比t=t /t は式(42)、(47)により次のとおりである。
=t /t =16i(1I+3M)/{3l(3I+11M)}
=16i(d+3)/{3l(3d+11)} (48)
ゆえにt<1となるd=I/Mの条件を求め、c=l/i=log3=1.585を使うと
d=I/M<(33c−48)/(16−9c)=2.480 (49)
である。すなわちI<2.480Mのとき、t <t となる。
[7.4] Comparison of binary and ternary calculation amount Comparison of average values (results are the same as in characteristic 3)
Mean value t 3 ¯ and t 2 ¯ ratio t ¯ = t 3 ¯ / t 2 ¯ formula (42), is as follows: by (47).
t ¯ = t 3 ¯ / t 2 ¯ = 16i (1I + 3M) / {3l (3I + 11M)}
= 16i (d + 3) / {3l (3d + 11)} (48)
Therefore, when the condition of d = I / M where t <1 is obtained and c = 1 / i = log 2 3 = 1.585 is used, d = I / M <(33c−48) / (16−9c) = 2.480 (49)
It is. That is, when I <2.480M, t 3 <t 2 .

一般の場合の比較(結果は標数3の場合と同じ)
とtの比t=t/tは式(38)、(43)により次のとおりである。ただしw’=w/l、w’=w/iは相対重みである。
t=t/t
=(2i+w−3)(d+3)/{(l+w−2)d+4l+3w−7}
={(2+w’−3c/l)(d+3)/c}/{(1+w’−2/l)d+4+3w’−7/l} (50)
通常lは十分大きいから上の式で1/lの項を省略すると
t={(2+w’)(d+3)/c}/{(1+w’)d+4+3w’} (51)
式(51)でt<1となるw’、w’、dに関する条件を求めれば、t<tとなる数kを求めることができる。ただしdは予め決まっている数である。式(51)の近似を用いれば、
’<cw’−{(2−c)d+6−4c}/(d+3) (52)
となる。
Comparison in the general case (result is the same as characteristic 3)
The ratio t = t 3 / t 2 between t 3 and t 2 is as follows according to equations (38) and (43). However, w 2 ′ = w 2 / l and w 3 ′ = w 3 / i are relative weights.
t = t 3 / t 2
= (2i + w 3 -3) (d + 3) / {(l + w 2 -2) d + 4l + 3w 2 -7}
= {(2 + w 3 ' -3c / l) (d + 3) / c} / {(1 + w 2' -2 / l) d + 4 + 3w 2 '-7 / l} (50)
Usually, l is sufficiently large, so if the 1 / l term is omitted in the above equation, t = {(2 + w 3 ′) (d + 3) / c} / {(1 + w 2 ′) d + 4 + 3w 2 ′} (51)
If the condition regarding w 2 ′, w 3 ′, and d where t <1 is obtained in Expression (51), the number k satisfying t 3 <t 2 can be obtained. However, d is a predetermined number. Using the approximation of equation (51),
w 3 '<cw 2' - {(2-c) d + 6-4c} / (d + 3) (52)
It becomes.

ここでは典型的なdの値に対して、上の条件を求める。
d=3の場合:
t<1となるためには
’<cw’+(7/6)c−2=1.585w’−0.1509 (53)
でなければならない。ただし0<w’,w’≦1を考慮すると、t<1となる条件は
条件Ter
0.0952<w’<0.7261 (54)
かつ式(53)が成り立つ。 (55)
Here, the above condition is obtained for a typical value of d.
For d = 3:
To satisfy t <1, w 3 ′ <cw 2 ′ + (7/6) c−2 = 1.585 w 2 ′ −0.1509 (53)
Must. However, considering 0 <w 2 ′ and w 3 ′ ≦ 1, the condition for t <1 is the condition Ter
0.0952 <w 2 ′ <0.7261 (54)
And Formula (53) is materialized. (55)

d=11の場合:
t<1となるためには
’<cw’+(15/14)c−2=1.585w’−0.3018 (56)
でなければならない。0<w’,w’≦1を考慮すると、t<1となる条件は
0.190<w’<0.8213 (57)
かつ式(56)が成り立つ。 (58)
When d = 11:
To satisfy t <1, w 3 ′ <cw 2 ′ + (15/14) c−2 = 1.585 w 2 ′ −0.3018 (56)
Must. Considering 0 <w 2 ′, w 3 ′ ≦ 1, the condition for t <1 is 0.190 <w 2 ′ <0.8213 (57)
And Formula (56) is formed. (58)

[7.5] 提案法−選択的2進・3進法
入力:点Pと整数k
出力:点Q=kP
アルゴリズム:
1.kを2進および3進展開する。それぞれにおける桁数lとi、重みwとw、また相対重みw’とw’を求める。
2.(2a)条件Terが成立するなら3進法による計算を行う。
(2b)条件Terが成立しないなら2進法による計算を行う。
[7.5] Proposed method-Selective binary / ternary system Input: Point P and integer k
Output: Point Q = kP
algorithm:
1. k is expanded in binary and ternary. The number of digits l and i, the weights w 2 and w 3 , and the relative weights w 2 ′ and w 3 ′ are obtained.
2. (2a) If the condition Ter is satisfied, a ternary calculation is performed.
(2b) If the condition Ter is not satisfied, the calculation by the binary system is performed.

[8] 楕円曲線:標数2で非超特異の場合
標数2の体F上の非超特異な楕円曲線Eの方程式を次のように与える。
+XY=X+a+a, a,a∈F. (59)
[8] Elliptic curve: case of characteristic 2 and non-super singularity An equation of non-super singular elliptic curve E on field F of characteristic 2 is given as follows.
Y 2 + XY = X 3 + a 2 X 2 + a 6 , a 2 , a 6 εF. (59)

[8.1] 非超特異の場合:加法公式
前と同じく(x,y)、(x,y)、(x,y)でそれぞれP、Q、P+Qの座標を表す。xとyをx,y,x,yで表したい。
P≠Qの場合(加算公式)
=λ+λ+x+x+a
=λ(x+x)+x+y
λ=(y+y)/(x+x) (60)
[8.1] Non-super singular case: (x 1 , y 1 ), (x 2 , y 2 ), (x 3 , y 3 ) represent the coordinates of P, Q, and P + Q, respectively, as before the addition formula . I want to express x 3 and y 3 at x 1, y 1, x 2 , y 2.
When P ≠ Q (addition formula)
x 3 = λ 2 + λ + x 1 + x 2 + a 2
y 3 = λ (x 1 + x 3 ) + x 3 + y 1
λ = (y 1 + y 2 ) / (x 1 + x 2 ) (60)

P=Qの場合(2倍点公式)
λがPにおける導関数dy/dxの値である以外、P≠Qの場合と同様である。Pの2倍点の座標の式は次のとおりである。
=x +a/x
=x +λx+x
λ=x+y/x (61)
なお2倍点の座標であることを明示するために、この場合の(x,y)を(x,y)と表すこともある。
In the case of P = Q (double point formula)
Same as P ≠ Q except that λ is the value of the derivative dy / dx at P. The equation for the coordinates of the double point of P is as follows.
x 3 = x 1 2 + a 6 / x 1 2
y 3 = x 1 2 + λx 3 + x 3
λ = x 1 + y 1 / x 1 (61)
Note that (x 3 , y 3 ) in this case may be expressed as (x d , y d ) in order to clearly indicate that the coordinates are double points.

3倍点公式
P=(x,y)、2P=(x,y)、3P=(x,y)として、3倍点3P=(x,y)=(x,y)+(x,y)を求める。3Pの座標は次で与えられる。
=μ+μ+x+x +a/x +a
=μ(x+x)+x+y
λ=x+y/x, μ=λ+(x +a)/(x+x +a) (62)
Triple point formula P = (x 1 , y 1 ), 2P = (x d , y d ), 3P = (x t , y t ), triple point 3P = (x t , y t ) = (x 1 , y 1 ) + (x d , y d ) is obtained. The 3P coordinates are given by
x t = μ 2 + μ + x 1 + x 1 2 + a 6 / x 1 2 + a 2
y t = μ (x 1 + x t ) + x t + y 1
λ = x 1 + y 1 / x 1 , μ = λ + (x 1 2 + a 6 ) / (x 1 + x 1 2 + a 6 ) (62)

[8.2] 非超特異の場合:加算の計算量
P+Q=(x,y)の計算のコストを考える。ここで加算、減算、小さな定数の乗算は無視する。以下で平方算、乗算、逆元算のコストをそれぞれS、M、Iで表す。
P≠Qの場合
1.λ=(y+y)/(x+x)の計算:
(x+x−1の計算に逆元算のコストI。
これにy+yをかける計算に乗算のコストM。
2.x=λ+λ+x+x+aの計算:
λの計算に平方算のコストS。
3.y=λ(x+x)+x+yの計算:
λをx+xにかける計算に乗算のコストM。
以上の合計コストt=1I+2M+1S。なおtの添え字AはAddition(加算)のつもりである。
[8.2] In the case of non-super singularity: The amount of calculation of addition Consider the cost of calculation of P + Q = (x 3 , y 3 ). Here, addition, subtraction, and multiplication of small constants are ignored. In the following, the costs of squaring, multiplication, and inverse operation are represented by S, M, and I, respectively.
When P ≠ Q Calculation of λ = (y 1 + y 2 ) / (x 1 + x 2 ):
The cost I of the inverse operation for the calculation of (x 1 + x 2 ) −1.
Multiplication cost M for the calculation of multiplying this by y 1 + y 2 .
2. Calculation of x 3 = λ 2 + λ + x 1 + x 2 + a 2 :
cost S. of squaring to λ 2 of the calculation
3. Calculation of y 3 = λ (x 1 + x 3 ) + x 3 + y 1 :
cost of multiplication to calculate multiplying the λ to x 1 + x 3 M.
Total cost t A = 1I + 2M + 1S. The subscript A of t A is intended to be an addition.

P=Qの場合
1.λ=x+y/xの計算:
−1の計算に逆元算のコストI。
/xの計算に乗算のコストM。
2.x=x +a/x の計算:
の計算に平方算のコストS。
(x −1の計算に平方算のコストS。
これにaをかける計算に乗算のコストM。
3.y=x +λx+xの計算:
λをxにかける計算に乗算のコストM。
以上の合計コストt=1I+3M+1S=t+M。なおtの添え字DはDoubling(2倍算)のつもりである。
When P = Q Calculation of λ = x 1 + y 1 / x 1 :
Cost I of the inverse operation for the calculation of x 1 −1.
Multiplication cost M for calculating y 1 / x 1 .
2. x 3 = x 1 2 + a 6 / x 1 2 of the calculation:
The cost of squaring S in the calculation of x 1 2 .
The cost S of squaring for the calculation of (x 1 −1 ) 2 .
This on the cost of the multiplication in the calculation to apply a 6 M.
3. Calculation of y 3 = x 1 2 + λx 3 + x 3 :
cost of multiplication to calculate multiplying the λ to x 3 M.
Total cost t D = 1I + 3M + 1S = t A + M. Subscript D of The t D is the intention of Doubling (2 multiplication).

まとめ
以上をまとめると、標数2の有限体F上で定義された非超特異な楕円曲線におけるP+Qの計算コストは次のとおりである。計算にはアフィン座標系を使うものとする。
一般の加算の場合、計算量t=1I+2M+1S
2倍算の場合、計算量t=1I+3M+1S=t+1M
Summary In summary, the calculation cost of P + Q in the non-super singular elliptic curve defined on the finite field F q of characteristic 2 is as follows. The affine coordinate system is used for the calculation.
In the case of general addition, the calculation amount t A = 1I + 2M + 1S
In the case of doubling, the calculation amount t D = 1I + 3M + 1S = t A + 1M

[8.3] 3倍算の計算量:非超特異の場合
点Pの3倍算すなわち3Pを求める計算のコストを考える。ここで加算、減算、小さな定数の乗算は無視する。以下で乗算、逆元算のコストをそれぞれM、Iで表わす。なお平方算のコストをSで表すが、ここではS≒Mとする。
1.λの計算:
前出の通りコストは1I+1M。
2.μの計算:
コストは計1I+2M+2S。
3.xの計算:
μの計算に平方算のコストS。
4.yの計算:
μをx+xにかける計算に乗算のコストM。
以上の合計コストt=2I+4M+3S=2t+1S。なお2Pを求めてからPを加算して3Pを求めると、計算量はt’=t+t=2t+1M+1S=t+Mであることに注意する。
[8.3] Calculation amount of triple calculation: non-super-singular case Consider the cost of triple calculation of point P, that is, the calculation for obtaining 3P. Here, addition, subtraction, and multiplication of small constants are ignored. In the following, the costs of multiplication and inverse operation are represented by M and I, respectively. Note that the cost of squaring is represented by S, where S≈M.
1. Calculation of λ:
As before, the cost is 1I + 1M.
2. Calculation of μ:
Cost is total 1I + 2M + 2S.
3. calculation of x t:
Cost S. of squaring the mu 2 calculations
4). calculation of y t:
Multiplication cost M for the calculation of μ multiplied by x 1 + x t .
Total cost t T = 2I + 4M + 3S = 2t A + 1S. Note the Request 3P by adding P from seeking 2P, note that complexity is t T '= t A + t D = 2t A + 1M + 1S = t T + M.

[9] 楕円曲線:標数2で超特異の場合
標数2の体F上の超特異な楕円曲線Eの方程式を次のように与える。
+aY=X+aX+a, a,a,a∈F. (63)
[9] Elliptic curve: Case of characteristic 2 and super singularity An equation of a super singular elliptic curve E on a field F of characteristic 2 is given as follows.
Y 2 + a 3 Y = X 3 + a 4 X + a 6 , a 3 , a 4 , a 6 εF. (63)

[9.1] 超特異の場合:加法公式
前と同じく(x,y)、(x,y)、(x,y)でそれぞれP、Q、P+Qの座標を表す。xとyをx,y,x,yで表したい。
P≠Qの場合(加算公式)
=λ+x+x
=λ(x+x)+y+a
λ=(y+y)/(x+x) (64)
[9.1] In the case of super singularity: (x 1 , y 1 ), (x 2 , y 2 ), and (x 3 , y 3 ) represent the coordinates of P, Q, and P + Q, respectively, as before the addition formula. I want to express x 3 and y 3 at x 1, y 1, x 2 , y 2.
When P ≠ Q (addition formula)
x 3 = λ 2 + x 1 + x 2
y 3 = λ (x 1 + x 3 ) + y 1 + a 3
λ = (y 1 + y 2 ) / (x 1 + x 2 ) (64)

P=Qの場合(2倍点公式)
λがPにおける導関数dy/dxの値である以外、P≠Qの場合と同様である。Pの2倍点の座標の式は次のとおりである。
=(x +a )/a =λ
=λ(x+x)+y+a
λ=(x +a)/a (65)
なお2倍点の座標であることを明示するために、この場合の(x,y)を(x,y)と表すこともある。
In the case of P = Q (double point formula)
Same as P ≠ Q except that λ is the value of the derivative dy / dx at P. The equation for the coordinates of the double point of P is as follows.
x 3 = (x 1 4 + a 4 2 ) / a 3 2 = λ 2
y 3 = λ (x 1 + x 3 ) + y 1 + a 3
λ = (x 1 2 + a 4 ) / a 3 (65)
Note that (x 3 , y 3 ) in this case may be expressed as (x d , y d ) in order to clearly indicate that the coordinates are double points.

3倍点公式
P=(x,y)、2P=(x,y)、3P=(x,y)として、3倍点3P=(x,y)=(x,y)+(x,y)を求める。3Pの座標は次で与えられる。
=μ+λ+x
=μ(x+x)+y+a
λ=(x +a)/a, μ=λ+a/(x+λ) (66)
Triple point formula P = (x 1 , y 1 ), 2P = (x d , y d ), 3P = (x t , y t ), triple point 3P = (x t , y t ) = (x 1 , y 1 ) + (x d , y d ) is obtained. The 3P coordinates are given by
x t = μ 2 + λ 2 + x 1
y t = μ (x 1 + x t ) + y 1 + a 3
λ = (x 1 2 + a 4 ) / a 3 , μ = λ + a 3 / (x 1 + λ 2 ) (66)

[9.2] 超特異の場合:加算の計算量
P+Q=(x,y)の計算のコストを考える。ここで加算、減算、小さな定数の乗算は無視する。以下で平方算、乗算、逆元算のコストをそれぞれS、M、Iで表す。
P≠Qの場合
1.λ=(y+y)/(x+x)の計算:
(x+x−1の計算に逆元算のコストI。
これにy+yをかける計算に乗算のコストM。
2.x=λ+x+xの計算:
λの計算に平方算のコストS。
3.y=λ(x+x)+y+aの計算:
λをx+xにかける計算に乗算のコストM。
以上の合計コストt=1I+2M+1S。なおtの添え字AはAddition(加算)のつもりである。
[9.2] Ultra-singular case: Addition calculation amount Consider the calculation cost of P + Q = (x 3 , y 3 ). Here, addition, subtraction, and multiplication of small constants are ignored. In the following, the costs of squaring, multiplication, and inverse operation are represented by S, M, and I, respectively.
When P ≠ Q Calculation of λ = (y 1 + y 2 ) / (x 1 + x 2 ):
The cost I of the inverse operation for the calculation of (x 1 + x 2 ) −1.
Multiplication cost M for the calculation of multiplying this by y 1 + y 2 .
2. Calculation of x 3 = λ 2 + x 1 + x 2 :
cost S. of squaring to λ 2 of the calculation
3. Calculation of y 3 = λ (x 1 + x 3 ) + y 1 + a 3 :
Multiplication cost M for the calculation of λ multiplied by x 1 + x 3 .
Total cost t A = 1I + 2M + 1S. The subscript A of t A is intended to be an addition.

P=Qの場合
1.λ=(x +a)/aの計算:
の計算に平方算のコストS。
+aにa −1をかける計算に乗算のコストM。
2.x=λの計算:
λの計算に平方算のコストS。
3.y=λ(x+x)+y+aの計算:
λ(x+x)の計算に乗算の乗算のコストM。
以上の合計コスト合計t=2M+2S。
When P = Q Calculation of λ = (x 1 2 + a 4 ) / a 3 :
The cost of squaring S in the calculation of x 1 2 .
Multiplication cost M for the calculation of x 1 2 + a 4 multiplied by a 3 −1 .
2. Calculation of x 3 = λ 2 :
cost S. of squaring to λ 2 of the calculation
3. Calculation of y 3 = λ (x 1 + x 3 ) + y 1 + a 3 :
Multiplication cost M of multiplication in the calculation of λ (x 1 + x 3 ).
Total cost total t D = 2M + 2S.

まとめ
以上をまとめると、標数2の有限体F上で定義された超特異な楕円曲線におけるP+Qの計算コストは次のとおりである。計算にはアフィン座標系を使うものとする。
一般の加算の場合、計算量t=1I+2M+1S
2倍算の場合、計算量t=2M+2S
Summary In summary, the calculation cost of P + Q in the super singular elliptic curve defined on the finite field F q of characteristic 2 is as follows. The affine coordinate system is used for the calculation.
In the case of general addition, the calculation amount t A = 1I + 2M + 1S
In case of doubling, the calculation amount t D = 2M + 2S

[9.3] 3倍算の計算量:超特異の場合
点Pの3倍算すなわち3Pを求める計算のコストを考える。
1.λ=(x +a)/aの計算:
前出の通りコストは1M+1S。
2.μ=λ+a/(x+λ)の計算:
λの計算に平方算のコストS。
(x+λ−1の計算に逆元算のコストI。
これにaをかける計算に乗算のコストM。
3.x=μ+λ+xの計算:
μの計算に平方算のコストS。
4.y=μ(x+x)+y+aの計算:
μをx+xにかける計算に乗算のコストM。
以上の合計コストt=1I+3M+3S。なお2Pを求めてからPを加算して3Pを求めると、計算量はt’=t+t=1I+4M+3S=t+Mであることに注意する。
[9.3] Complexity of triple calculation: Super singularity Consider the cost of triple calculation of point P, that is, calculation to obtain 3P.
1. Calculation of λ = (x 1 2 + a 4 ) / a 3 :
As mentioned above, the cost is 1M + 1S.
2. Calculation of μ = λ + a 3 / (x 1 + λ 2 ):
cost S. of squaring to λ 2 of the calculation
The cost I of the inverse operation for the calculation of (x 1 + λ 2 ) −1.
This on the cost of the multiplication in the calculation to apply a 3 M.
3. Calculation of x t = μ 2 + λ 2 + x 1 :
Cost S. of squaring the mu 2 calculations
4). Calculation of y t = μ (x 1 + x t ) + y 1 + a 3 :
Multiplication cost M for the calculation of μ multiplied by x 1 + x t .
Total cost t T = 1I + 3M + 3S. Note the Request 3P by adding P from seeking 2P, computing the amount it is to be noted that t T '= t A + t D = 1I + 4M + 3S = t T + M.

[具体例]
実施の形態1
図1は、実施の形態1に係る楕円曲線整数倍演算装置100の構成図である。これらの構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされた暗号処理機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。後述する鍵生成装置200、暗号化装置300、および復号装置400の構成についても同様である。
[Concrete example]
Embodiment 1
FIG. 1 is a configuration diagram of an elliptic curve integer multiple arithmetic apparatus 100 according to the first embodiment. These configurations can be realized in terms of hardware by a CPU, memory, or other LSI of an arbitrary computer, and in terms of software, it is realized by a program having a cryptographic processing function loaded in the memory. So, functional blocks that are realized by their cooperation are drawn. Accordingly, those skilled in the art will understand that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof. The same applies to the configurations of a key generation device 200, an encryption device 300, and a decryption device 400, which will be described later.

入出力部10は、楕円曲線を規定する標数や関数の係数などのパラメータ、楕円曲線上の点Pの座標、および整数倍算の倍数を与える整数kの入力を受け付ける。入力された楕円曲線を規定するパラメータは楕円曲線パラメータ18として、点Pの座標と整数kは入力データ12として主記憶装置や外部記憶装置などの記憶部に保持される。記憶部には、入力データ12以外に、楕円曲線情報15、中間データであるs進展開データ14と予備計算データ24、および最終データであるk倍算結果データ26が記憶される。   The input / output unit 10 receives parameters such as a characteristic defining a elliptic curve and a coefficient of a function, the coordinates of a point P on the elliptic curve, and an input of an integer k that gives a multiple of integer multiplication. The parameter that defines the input elliptic curve is stored as an elliptic curve parameter 18, and the coordinates of the point P and the integer k are stored as input data 12 in a storage unit such as a main storage device or an external storage device. In addition to the input data 12, the storage unit stores elliptic curve information 15, s-adic expansion data 14 and preliminary calculation data 24, which are intermediate data, and k multiplication result data 26, which is final data.

楕円曲線情報15には、楕円曲線パラメータ18以外に、コスト評価式データ16、加算公式データ20、s倍点公式データ22が含まれる。コスト評価式データ16、加算公式データ20、およびs倍点公式データ22は、楕円曲線の標数pによって、p=2で非超特異の場合、p=2で超特異の場合、p=3の場合、p>3の場合に分けて、あらかじめ用意された数式データであり、楕円曲線パラメータ18として、具体的に楕円曲線の係数が与えられることで、計算が可能である。   In addition to the elliptic curve parameter 18, the elliptic curve information 15 includes cost evaluation formula data 16, addition formula data 20, and s-fold point formula data 22. The cost evaluation formula data 16, the addition formula data 20, and the s-fold point formula data 22 are p = 3 when p = 2 and non-super singular, p = 2 and super singular, depending on the characteristic p of the elliptic curve. In the case of p> 3, it is mathematical data prepared in advance in the case of p> 3, and can be calculated by giving an elliptic curve coefficient specifically as the elliptic curve parameter 18.

s進展開部28は、入力データ12の整数kについて複数の基数sによるs進展開を求め、各基数s毎にs進展開データ14として記憶する。   The s-adic expansion unit 28 obtains an s-adic expansion using a plurality of bases s for the integer k of the input data 12 and stores the s-adic expansion data 14 for each base s.

コスト評価部30は、s進展開データ14を参照して、s進展開の桁数、s進展開の非零桁の個数を取得し、非零桁の個数を桁数で除算することにより、各s進展開の相対重みを算出する。さらに、コスト評価部30は、s進法の計算量を相対重みの関数で表したコスト評価式データ16を参照し、各s進展開の相対重みに基づいてs進法によりk倍算を行った場合の計算コストを求める。   The cost evaluation unit 30 refers to the s-adic expansion data 14, obtains the number of digits in the s-adic expansion, the number of non-zero digits in the s-adic expansion, and divides the number of non-zero digits by the number of digits. The relative weight of each s-adic expansion is calculated. Further, the cost evaluation unit 30 refers to the cost evaluation formula data 16 in which the amount of calculation in the s-adic system is expressed as a function of relative weight, and performs k multiplication by the s-adic based on the relative weight of each s-adic expansion. To calculate the calculation cost.

選択部32は、コスト評価部30によって求められた各s進法の計算コストの内、もっとも小さい計算コストを選択し、その場合の基数hを出力して、予備計算部34とh進法演算部35に与える。   The selection unit 32 selects the smallest calculation cost among the calculation costs of each s-adic number obtained by the cost evaluation unit 30, outputs the radix h in that case, and the preliminary calculation unit 34 and the h-adic calculation Part 35 is given.

コスト評価部30および選択部32によってなされるコスト評価と最適なh進法の選択は、楕円曲線の標数p>3の場合は前提技術の[4]、[5]、標数p=3の場合は前提技術の[7]、標数p=2の場合は前提技術の[8]、[9]の記載に基づくものである。ただし、前提技術では、一例として、複数の基数sとして、s=2、3を用いた場合を説明しているが、基数sとして、s=2、3以外を用いてもよく、また、3つ以上の基数sを用いてもよい。   The cost evaluation performed by the cost evaluation unit 30 and the selection unit 32 and the selection of the optimal h-ary system are [4] and [5] in the base technologies when the characteristic p> 3 of the elliptic curve, and the characteristic p = 3. Is based on the description of [7] of the base technology, and when the characteristic p = 2, it is based on the descriptions of [8] and [9] of the base technology. However, in the base technology, as an example, a case where s = 2, 3 is used as a plurality of radixes s is described, but other than s = 2, 3 may be used as the radix s. Two or more bases s may be used.

予備計算部34は、入力データ12に含まれる点Pについて(h−1)倍以下の整数倍点をあらかじめ計算し、予備計算データ24として記憶する。h=3であれば、2Pを求めて記憶する。h=4であれば、2P、3Pを求めて記憶する。ただし、h=2であれば、予備計算は不要である。   The preliminary calculation unit 34 calculates in advance an integer multiple of (h−1) times or less for the point P included in the input data 12 and stores it as preliminary calculation data 24. If h = 3, 2P is obtained and stored. If h = 4, 2P and 3P are obtained and stored. However, if h = 2, preliminary calculation is unnecessary.

h進法演算部35は、記憶されている複数の基数sについてのs進展開データ14の中から、選択部32により選択された基数hについてのh進展開データを取得する。また、h進法演算部35は、楕円曲線パラメータ18と、楕円曲線上で点の加算を求めるための加算公式データ20を読み出す。さらに、h進法演算部35は、記憶されている複数の基数sについてのs倍点公式データ22の中から、選択部32により選択された基数hについてのh倍点公式データを取得する。   The h-adic arithmetic unit 35 acquires h-adic expansion data for the radix h selected by the selection unit 32 from the s-adic expansion data 14 for the plurality of stored radixes s. Further, the h-adic calculation unit 35 reads out the elliptic curve parameter 18 and addition formula data 20 for obtaining the addition of points on the elliptic curve. Furthermore, the h-adic arithmetic unit 35 acquires h-fold point official data for the radix h selected by the selection unit 32 from the stored s-fold point official data 22 for the plurality of radixes s stored.

h進法演算部35は、h進展開データ、楕円曲線パラメータ18、加算公式データ20、h倍点公式データに基づき、入力データ12の点Pのk倍算をh進法により計算し、得られたk倍点kPをk倍算結果データ26として記憶する。   The h-adic arithmetic unit 35 calculates the k-fold multiplication of the point P of the input data 12 by the h-adic system based on the h-adic expansion data, the elliptic curve parameter 18, the addition formula data 20, and the h-fold point official data. The obtained k-fold point kP is stored as the k-fold result data 26.

h進法演算部35によってなされるh進法は、点Pのh倍算と、あらかじめ計算した点Pの(h−1)倍以下の整数倍点の加算を組み合わせて、点Pのk倍算を計算するものである。点Pのh倍算は、h倍算演算部36によってなされ、点Pの(h−1)倍以下の整数倍点の加算は、予備計算データ24を用いて加算演算部38によってなされる。加算演算部38による加算結果はh倍算演算部36の入力として与えられて、さらにh倍算される。h倍算演算部36および加算演算部38によってなされるh進法演算は、2進法の場合は、前提技術[4.1]、[7.1]に記載のアルゴリズム、3進法の場合は、前提技術[4.2]、[7.2]に記載のアルゴリズムに基づくものであり、後にフローチャートを用いて詳細な動作を説明する。   The h-adic system performed by the h-adic arithmetic unit 35 is a combination of the multiplication of the point P by h and the addition of an integer multiple less than (h-1) times the point P calculated in advance, and k times the point P. It is a calculation. The h multiplication of the point P is performed by the h multiplication calculation unit 36, and the addition of the integer multiples not more than (h−1) times the point P is performed by the addition calculation unit 38 using the preliminary calculation data 24. The addition result by the addition calculation unit 38 is given as an input of the h multiplication calculation unit 36 and further multiplied by h. The h-ary arithmetic operations performed by the h-multiplying arithmetic unit 36 and the addition arithmetic unit 38 are the algorithms described in the base technologies [4.1] and [7.1] in the binary system, and the ternary system. Is based on the algorithm described in the base technology [4.2] and [7.2], and the detailed operation will be described later using a flowchart.

最終的にk倍算結果データ26として得られた点Pのk倍点Q=kPは入出力部10より出力される。   The k-fold point Q = kP of the point P finally obtained as the k multiplication result data 26 is output from the input / output unit 10.

図2は、以上の構成の楕円曲線整数倍演算装置100による整数倍演算手順を説明するフローチャートである。ここでは、一例として、2進法または3進法を選択して整数倍演算を行う場合を説明する。   FIG. 2 is a flowchart for explaining an integer multiple calculation procedure by the elliptic curve integer multiple arithmetic apparatus 100 having the above configuration. Here, as an example, a case will be described in which a binary or ternary method is selected and integer multiplication is performed.

入出力部10は楕円曲線上の点Pと整数kの入力を受け付ける(S10)。s進展開部28は、整数kの2進展開と3進展開を算出する(S12)。   The input / output unit 10 receives input of a point P on the elliptic curve and an integer k (S10). The s-adic expansion unit 28 calculates a binary expansion and a ternary expansion of the integer k (S12).

コスト評価部30は、整数kの2進展開における非零桁の個数wを2進展開の桁数lで除算した相対重みw’と、整数kの3進展開における非零桁の個数wを3進展開の桁数iで除算した相対重みw’を算出する(S14)。 The cost evaluation unit 30 calculates the relative weight w 2 ′ obtained by dividing the number w 2 of non-zero digits in the binary expansion of the integer k by the number of digits l of the binary expansion, and the number of non-zero digits in the ternary expansion of the integer k. It calculates the relative weights w 3 'obtained by dividing the w 3 in digits i ternary expansion (S14).

選択部32は、前提技術の[5.1]で説明した2進展開の相対重みw’と3進展開の相対重みw’に関する条件Terが成立するかどうかを調べる(S16)。条件Terが成立するなら(S16のY)、予備計算部34およびh進法演算部35は、3進法により点Pのk倍点kPを算出する(S18)。条件Terが成立しないなら(S16のN)、h進法演算部35は、2進法により点Pのk倍点kPを算出する(S20)。入出力部10は、こうして得られたk倍点Q=kPを出力する(S22)。 The selection unit 32 checks whether or not the condition Ter related to the relative weight w 2 ′ of binary expansion and the relative weight w 3 ′ of ternary expansion described in [5.1] of the base technology is satisfied (S16). If the condition Ter is satisfied (Y in S16), the preliminary calculation unit 34 and the h base arithmetic unit 35 calculate the k-fold point kP of the point P by the ternary system (S18). If the condition Ter is not satisfied (N in S16), the h-adic arithmetic unit 35 calculates the k-fold point kP of the point P by the binary system (S20). The input / output unit 10 outputs the k-fold point Q = kP thus obtained (S22).

図3は、ステップS18の3進法によるk倍算の詳細な手順を説明するフローチャートである。   FIG. 3 is a flowchart for explaining the detailed procedure of the k multiplication by the ternary system in step S18.

予備計算部34は、点Pの2倍点P=2Pをあらかじめ計算して記憶する(S30)。h進法演算部35は、整数kの3進展開k=hi−1i−2…h0(3)を取得する(S32)。ここで、iはkの3進桁数であり、最上位桁hi−1は0ではない。Qの初期値として、hi−1=1ならば、QにPを代入し、hi−1=2ならば、QにPを代入する(S34)。 The preliminary calculation unit 34 calculates and stores the double point P d = 2P of the point P in advance (S30). The h base arithmetic unit 35 acquires the ternary expansion k = h i-1 h i-2 ... h 1 h 0 (3) of the integer k (S32). Here, i is the number of ternary digits of k, and the most significant digit h i−1 is not zero. As an initial value of Q, if h i-1 = 1, P is substituted for Q, and if h i-1 = 2, P d is substituted for Q (S34).

次に、h進法演算部35は、添え字jをi−2に設定する(S36)。h倍算演算部36は、3倍算公式により現在のQに対して3倍点3Qを求め、3QをQに代入する(S38)。加算演算部38は、h=1ならば、現在のQにPを加算した値Q+Pを求め、その加算値をQに代入し、h=2ならば、現在のQにPを加算した値Q+P求め、その加算値をQに代入する(S40)。なお、ここでh=0のときは、加算演算部38による加算は行わない。 Next, the h base arithmetic unit 35 sets the subscript j to i-2 (S36). The h multiplication calculation unit 36 obtains the triple point 3Q with respect to the current Q by the triple calculation formula, and substitutes 3Q for Q (S38). The addition operation unit 38 obtains a value Q + P obtained by adding P to the current Q if h j = 1, and substitutes the added value for Q. If h j = 2, P d is added to the current Q. The obtained value Q + Pd is obtained, and the added value is substituted for Q (S40). Here, when h j = 0, the addition operation unit 38 does not perform addition.

h進法演算部35は、添え字jにj−1を代入する、すなわち添え字jを1だけデクリメントする(S42)。j<0であれば(S44のY)、そのときのQがPのk倍点であり、k倍算の手順を終了してリターンする。j<0でなければ(S44のN)、ステップS38に戻り、h倍算演算部36による3倍算演算と、加算演算部38による加算が繰り返される。   The h base arithmetic unit 35 substitutes j−1 for the subscript j, that is, decrements the subscript j by 1 (S42). If j <0 (Y in S44), Q at that time is k times P, and the procedure of k multiplication is terminated and the process returns. If j <0 is not satisfied (N in S44), the process returns to step S38, and the multiplication operation by the h multiplication operation unit 36 and the addition by the addition operation unit 38 are repeated.

図4は、ステップS20の2進法によるk倍算の詳細な手順を説明するフローチャートである。   FIG. 4 is a flowchart for explaining the detailed procedure of the k multiplication in the binary system in step S20.

h進法演算部35は、整数kの2進展開k=kl−1l−2…k0(2)を取得する(S50)。ここで、lはkの2進桁数であり、最上位桁hl−1は1である。Qの初期値として、QにPを代入する(S52)。 The h base arithmetic unit 35 acquires binary expansion k = k l−1 k l−2 ... k 1 k 0 (2) of the integer k (S50). Here, l is the number of binary digits of k, and the most significant digit h l−1 is 1. As an initial value of Q, P is substituted for Q (S52).

次に、h進法演算部35は、添え字jをl−2に設定する(S54)。h倍算演算部36は、2倍算公式により現在のQに対して2倍点2Qを求め、2QをQに代入する(S56)。加算演算部38は、h=1ならば、現在のQにPを加算した値Q+Pを求め、その加算値をQに代入する(S58)。なお、ここでh=0のときは、加算演算部38による加算は行わない。 Next, the h base arithmetic unit 35 sets the subscript j to l-2 (S54). The h multiplication calculation unit 36 obtains the double point 2Q with respect to the current Q by the doubling formula, and substitutes 2Q for Q (S56). If h j = 1, the addition operation unit 38 obtains a value Q + P obtained by adding P to the current Q, and substitutes the added value for Q (S58). Here, when h j = 0, the addition operation unit 38 does not perform addition.

h進法演算部35は、添え字jにj−1を代入する、すなわち添え字jを1だけデクリメントする(S60)。j<0であれば(S62のY)、そのときのQがPのk倍点であり、k倍算の手順を終了してリターンする。j<0でなければ(S62のN)、ステップS56に戻り、h倍算演算部36による2倍算演算と、加算演算部38による加算が繰り返される。   The h base arithmetic unit 35 substitutes j−1 for the subscript j, that is, decrements the subscript j by 1 (S60). If j <0 (Y in S62), Q at that time is a point k times P, and the procedure of k multiplication is terminated and the process returns. If j <0 is not satisfied (N in S62), the process returns to step S56, and the doubling operation by the h multiplication operation unit 36 and the addition by the addition operation unit 38 are repeated.

以上述べたように、実施の形態の楕円曲線整数倍演算装置100によれば、楕円曲線上で任意の点Pのk倍点Qを求める際、複数の基数sについて整数kのs進展開を求め、s進法の計算コストを評価し、計算コストの最も小さいh進法によりk倍演算を行う。これにより、単に2進法だけを用いる整数倍算に比べて、計算時間を短縮することができる。   As described above, according to the elliptic curve integer multiplication unit 100 of the embodiment, when obtaining the k-fold point Q of an arbitrary point P on the elliptic curve, the s-adic expansion of the integer k is performed for a plurality of bases s. Then, the calculation cost of the s-adic system is evaluated, and k-fold operation is performed by the h-adic system having the lowest calculation cost. Thereby, calculation time can be shortened compared with the integer multiplication which uses only a binary system.

一般に、h>3として、h倍算の計算量は、(h−1)倍算と加算の組み合わせの計算量よりも多くなることはないといえる。なぜなら、h倍点公式は、hP=(h−1)P+Pの関係から式を整理して得られるため、式変形の結果、計算量が少なくなることがあり、また、最悪のケースでも、h倍算を(h−1)倍算と加算の組み合わせに置き換えて計算できるからである。したがって、2倍算だけでなく、h倍算を利用することで、計算量をさらに少なくすることができる。もっとも、h進展開したときに、非零桁の個数が多いと、h倍算が利用できる回数が減るため、いつでもh進法が2進法よりも計算量が少ないとは限らない。そこで、実施の形態では、いくつかの基数sによるs進展開を求めて、非零桁の個数により計算量を評価し、複数のs進法の中から計算量の少ないものを選ぶことにより、最適なh進法を選択し、高速化を図っている。   In general, when h> 3, it can be said that the calculation amount of h multiplication is not larger than the calculation amount of the combination of (h−1) multiplication and addition. This is because the h-fold point formula is obtained by rearranging the formula from the relationship of hP = (h−1) P + P, so that the amount of calculation may be reduced as a result of formula transformation, and even in the worst case, h This is because the multiplication can be calculated by substituting the combination of (h-1) multiplication and addition. Therefore, the amount of calculation can be further reduced by using not only doubling but also h doubling. Of course, when the number of non-zero digits is large when the number of non-zero digits is expanded, the number of times that the h multiplication can be used is reduced. Therefore, the h-ary number does not always have a smaller calculation amount than the binary number. Therefore, in the embodiment, by obtaining the s-adic expansion by several radixes s, evaluating the calculation amount by the number of non-zero digits, and selecting the one having a small calculation amount from a plurality of s-adic numbers, The optimal h-adic system is selected to increase the speed.

実施の形態2
図5は、実施の形態2に係る鍵生成装置200の構成図である。鍵生成装置200は、実施の形態1の楕円曲線整数倍演算装置100を利用して秘密鍵と公開鍵のペアを生成するものである。
Embodiment 2
FIG. 5 is a configuration diagram of the key generation apparatus 200 according to the second embodiment. The key generation apparatus 200 generates a secret key / public key pair using the elliptic curve integer multiple arithmetic apparatus 100 of the first embodiment.

鍵生成装置200は、楕円曲線データ42の入力を受け付け、生成された鍵データ44を出力する入出力部40と、乱数を生成する乱数生成部46と、楕円曲線上の点の整数倍演算を行う楕円曲線整数倍演算部48と、鍵データ44を生成する鍵生成部50を含む。楕円曲線整数倍演算部48として、実施の形態1の楕円曲線整数倍演算装置100を用いる。   The key generation device 200 receives input of the elliptic curve data 42, outputs the generated key data 44, a random number generation unit 46 that generates random numbers, and performs integer multiplication of points on the elliptic curve. An elliptic curve integer multiple calculation unit 48 to perform and a key generation unit 50 to generate key data 44 are included. As the elliptic curve integer multiplication unit 48, the elliptic curve integer multiplication unit 100 of the first embodiment is used.

図6は、鍵生成装置200による鍵生成手順を説明するフローチャートである。図6も参照しながら、図5の各構成の動作を説明する。   FIG. 6 is a flowchart for explaining a key generation procedure by the key generation apparatus 200. The operation of each component in FIG. 5 will be described with reference to FIG.

入出力部40は、楕円曲線パラメータ、楕円曲線上の基点Gおよびその位数nの入力を受け付ける(S200)。これらのデータは楕円曲線データ42として記憶部に記憶される。乱数生成部46は、楕円曲線データ42に含まれる位数nを参照して、0<d<nを満たす乱数dを生成し、楕円曲線整数倍演算部48に与える(S210)。   The input / output unit 40 receives the input of the elliptic curve parameter, the base point G on the elliptic curve, and its order n (S200). These data are stored in the storage unit as elliptic curve data 42. The random number generation unit 46 refers to the order n included in the elliptic curve data 42, generates a random number d that satisfies 0 <d <n, and supplies the random number d to the elliptic curve integer multiple calculation unit 48 (S210).

楕円曲線整数倍演算部48は、楕円曲線データ42に含まれる基点Gの座標を読み出し、基点Gのd倍点Q=dGを算出する(S220)。楕円曲線整数倍演算部48は、d倍点の算出に当たり、実施の形態1で述べたように、計算量が最も少ないh進法を選択して、h進法によるd倍演算を行う。   The elliptic curve integer multiple calculation unit 48 reads the coordinates of the base point G included in the elliptic curve data 42, and calculates the d-multiple point Q = dG of the base point G (S220). When calculating the d-fold point, the elliptic curve integer multiple calculation unit 48 selects the h-adic system with the least amount of calculation as described in the first embodiment, and performs the d-multiple operation using the h-adic system.

鍵生成部50は、乱数生成部46が生成した乱数dを秘密鍵、楕円曲線整数倍演算部48が算出したd倍点Qを公開鍵とした鍵データ(d,Q)を生成して、鍵データ44として記憶部に保持する(S230)。入出力部40は、生成された鍵データ44を出力する。   The key generation unit 50 generates key data (d, Q) using the random number d generated by the random number generation unit 46 as a secret key and the d multiple point Q calculated by the elliptic curve integer multiple calculation unit 48 as a public key, The key data 44 is stored in the storage unit (S230). The input / output unit 40 outputs the generated key data 44.

本実施の形態の鍵生成装置200によれば、楕円曲線暗号により秘密鍵と公開鍵のペアを生成する際、計算量の最も少ないh進法を利用することにより、鍵生成を高速化できる。   According to the key generation device 200 of the present embodiment, when generating a pair of a secret key and a public key by elliptic curve cryptography, the key generation can be speeded up by using the h-adic system with the least amount of calculation.

実施の形態3
図7は、実施の形態3に係る暗号化装置300の構成図である。暗号化装置300は、実施の形態1の楕円曲線整数倍演算装置100を利用して平文を暗号化するものである。
Embodiment 3
FIG. 7 is a configuration diagram of the encryption apparatus 300 according to the third embodiment. The encryption device 300 encrypts plaintext using the elliptic curve integer multiple arithmetic device 100 of the first embodiment.

暗号化装置300は、楕円曲線データ62、公開鍵データ64および平文データ66の入力を受け付け、生成された暗号文データ68を出力する入出力部60と、乱数を生成する乱数生成部70と、楕円曲線上の点の整数倍演算を行う楕円曲線整数倍演算部72と、平文データ66を暗号化して暗号文データ68を生成する暗号文生成部74とを含む。楕円曲線整数倍演算部72として、実施の形態1の楕円曲線整数倍演算装置100を用いる。   The encryption device 300 receives input of elliptic curve data 62, public key data 64, and plaintext data 66, and outputs an input / output unit 60 that outputs the generated ciphertext data 68; a random number generation unit 70 that generates random numbers; An elliptic curve integer multiplication unit 72 that performs integer multiplication of points on the elliptic curve, and a ciphertext generation unit 74 that encrypts plaintext data 66 and generates ciphertext data 68 are included. As the elliptic curve integer multiplication unit 72, the elliptic curve integer multiplication unit 100 of the first embodiment is used.

図8は、暗号化装置300による暗号化手順を説明するフローチャートである。図8も参照しながら、図7の各構成の動作を説明する。   FIG. 8 is a flowchart for explaining an encryption procedure by the encryption apparatus 300. The operation of each component in FIG. 7 will be described with reference to FIG.

入出力部60は、楕円曲線パラメータ、楕円曲線上の基点Gおよびその位数nの入力を受け付ける(S300)。これらのデータは楕円曲線データ42として記憶部に記憶される。入出力部60は、さらに公開鍵Qと平文Mの入力を受け付ける(S310)。これらのデータはそれぞれ公開鍵データ64と平文データ66として記憶される。乱数生成部70は、楕円曲線データ42に含まれる位数nを参照して、0<r<nを満たす乱数rを生成し、楕円曲線整数倍演算部72に与える(S320)。   The input / output unit 60 receives the input of the elliptic curve parameter, the base point G on the elliptic curve, and its order n (S300). These data are stored in the storage unit as elliptic curve data 42. The input / output unit 60 further receives an input of the public key Q and plaintext M (S310). These data are stored as public key data 64 and plain text data 66, respectively. The random number generation unit 70 refers to the order n included in the elliptic curve data 42, generates a random number r that satisfies 0 <r <n, and provides the generated random number r to the elliptic curve integer multiple calculation unit 72 (S320).

楕円曲線整数倍演算部72は、楕円曲線データ62に含まれる基点Gの座標を読み出して、基点Gのr倍点rGを算出し、さらに、公開鍵データ64に含まれる公開鍵Qを読み出して、公開鍵Qのr倍点rQを算出する(S330)。楕円曲線整数倍演算部48は、r倍点の算出に当たり、実施の形態1で述べたように、計算量が最も少ないh進法を選択して、h進法によるr倍演算を行う。楕円曲線整数倍演算部72は、算出した2つのr倍点rG、rQを暗号文生成部74に与える。   The elliptic curve integer multiple calculation unit 72 reads the coordinates of the base point G included in the elliptic curve data 62, calculates the r-fold point rG of the base point G, and further reads the public key Q included in the public key data 64. Then, the r-fold point rQ of the public key Q is calculated (S330). When calculating the r-fold point, the elliptic curve integer multiple calculation unit 48 selects the h-adic system with the least amount of calculation and performs the r-multiple operation by the h-adic system as described in the first embodiment. The elliptic curve integer multiple calculation unit 72 gives the calculated two r-fold points rG and rQ to the ciphertext generation unit 74.

暗号文生成部74は、平文データ66に含まれる平文Mを読み出し、第1暗号C1=rGと第2暗号C2=rQ+Mを算出し、暗号文(C1、C2)を生成する(S340)。生成された暗号文(C1、C2)は、暗号文データ68として記憶され、入出力部60により出力される。   The ciphertext generation unit 74 reads the plaintext M included in the plaintext data 66, calculates the first cipher C1 = rG and the second cipher C2 = rQ + M, and generates ciphertext (C1, C2) (S340). The generated ciphertext (C1, C2) is stored as ciphertext data 68 and output by the input / output unit 60.

本実施の形態の暗号化装置300によれば、楕円曲線暗号により平文を暗号化する際、計算量の最も少ないh進法を利用することにより、暗号化処理の高速化を図ることができる。   According to the encryption apparatus 300 of the present embodiment, when encrypting plaintext using elliptic curve cryptography, it is possible to increase the speed of the encryption process by using the h-adic system with the least amount of calculation.

実施の形態4
図9は、実施の形態4に係る復号装置400の構成図である。復号装置400は、実施の形態1の楕円曲線整数倍演算装置100を利用して暗号文を復号するものである。
Embodiment 4
FIG. 9 is a configuration diagram of the decoding apparatus 400 according to the fourth embodiment. The decryption device 400 decrypts the ciphertext using the elliptic curve integer multiple computation device 100 of the first embodiment.

復号装置400は、楕円曲線データ82、秘密鍵データ84および暗号文データ86の入力を受け付け、生成された平文データ88を出力する入出力部80と、楕円曲線上の点の整数倍演算を行う楕円曲線整数倍演算部90と、暗号文データ86を復号して平文データ88を生成する平文生成部92とを含む。楕円曲線整数倍演算部90として、実施の形態1の楕円曲線整数倍演算装置100を用いる。   The decryption device 400 receives input of the elliptic curve data 82, the secret key data 84, and the ciphertext data 86, and performs an integer multiple operation of the points on the elliptic curve with the input / output unit 80 that outputs the generated plaintext data 88. An elliptic curve integer multiple calculation unit 90 and a plaintext generation unit 92 that decrypts the ciphertext data 86 and generates plaintext data 88 are included. As the elliptic curve integer multiple arithmetic unit 90, the elliptic curve integer multiple arithmetic apparatus 100 of the first embodiment is used.

図10は、復号装置400による復号手順を説明するフローチャートである。図10も参照しながら、図9の各構成の動作を説明する。   FIG. 10 is a flowchart for explaining a decoding procedure by the decoding device 400. The operation of each component in FIG. 9 will be described with reference to FIG.

入出力部80は、楕円曲線パラメータの入力を受け付け、楕円曲線データ82として記憶部に記憶する。入出力部60は、さらに秘密鍵dと暗号文(C1、C2)の入力を受け付ける(S400)。これらのデータはそれぞれ秘密鍵データ84と暗号文データ86として記憶される。   The input / output unit 80 receives input of elliptic curve parameters and stores them in the storage unit as elliptic curve data 82. The input / output unit 60 further receives an input of the secret key d and the ciphertext (C1, C2) (S400). These data are stored as secret key data 84 and ciphertext data 86, respectively.

楕円曲線整数倍演算部90は、秘密鍵データ84に含まれる秘密鍵dと、暗号文データ86に含まれる第1暗号C1を読み出し、楕円曲線データ82に基づいて、第1暗号C1のd倍点dC1を算出する(S410)。楕円曲線整数倍演算部90は、d倍点の算出に当たり、実施の形態1で述べたように、計算量が最も少ないh進法を選択して、h進法によるd倍演算を行う。楕円曲線整数倍演算部90は、算出したd倍点dC1を平文生成部92に与える。   The elliptic curve integer multiple calculation unit 90 reads out the secret key d included in the secret key data 84 and the first cipher C1 included in the ciphertext data 86, and d times the first cipher C1 based on the elliptic curve data 82. A point dC1 is calculated (S410). When calculating the d-fold point, the elliptic curve integer multiple calculation unit 90 selects the h-adic system with the least amount of calculation as described in the first embodiment, and performs the d-multiple operation using the h-adic system. The elliptic curve integer multiple calculation unit 90 gives the calculated d-multiple point dC1 to the plaintext generation unit 92.

平文生成部92は、暗号文データ86に含まれる第2暗号C2を読み出し、M=C2−dC1の計算により平文Mを生成する(S420)。生成された平文Mは、平文データ88として記憶され、入出力部80により出力される。ここで、第2暗号C2は、暗号化装置300によりrQ+Mの演算で暗号化されたものであり、第1暗号C1は、暗号化装置300により基点Gのr倍点rGとして暗号化されたものであり、公開鍵Qは、鍵生成装置200により基点Gのd倍点dGとして生成されたものであることに注意すると、C2−dC1=rQ+M−d(rG)=r(dG)+M−d(rG)=Mとなることから、平文Mの解読が保証されている。   The plaintext generation unit 92 reads the second cipher C2 included in the ciphertext data 86, and generates the plaintext M by calculating M = C2-dC1 (S420). The generated plaintext M is stored as plaintext data 88 and output by the input / output unit 80. Here, the second cipher C2 is encrypted by the operation of rQ + M by the encryption device 300, and the first cipher C1 is encrypted by the encryption device 300 as r multiple point rG of the base point G. Note that the public key Q is generated by the key generation device 200 as the d-fold point dG of the base point G. C2-dC1 = rQ + M-d (rG) = r (dG) + M-d Since (rG) = M, decryption of plaintext M is guaranteed.

本実施の形態の復号装置400によれば、楕円曲線暗号により暗号文を復号する際、計算量の最も少ないh進法を利用することにより、復号処理の高速化を図ることができる。   According to decryption apparatus 400 of the present embodiment, when decrypting a ciphertext using elliptic curve cryptography, it is possible to increase the speed of the decryption process by using the h-adic system with the least amount of calculation.

以上、本発明を実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下そのような変形例を説明する。   The present invention has been described based on the embodiments. It is understood by those skilled in the art that these embodiments are exemplifications, and that various modifications can be made to combinations of the respective constituent elements and processing processes, and such modifications are also within the scope of the present invention. By the way. Such modifications will be described below.

上記の説明では、計算コストに基づき2進法と3進法を選択的に利用する方法を一例として説明したが、2進法、3進法以外を用いてもよく、3つ以上のs進法の中から計算量の少ないh進法を選択してもよい。   In the above description, the method of selectively using the binary system and the ternary system based on the calculation cost has been described as an example, but other than the binary system and the ternary system may be used, and three or more s-adic may be used. An h-adic system with a small amount of calculation may be selected from the methods.

上記の説明では、実施の形態1の楕円曲線整数倍演算装置100の利用例として、鍵生成、暗号化および復号を説明したが、これ以外に、デジタル署名の生成と署名の検証に用いてもよい。また、一例として楕円曲線を利用したElGamal暗号を説明したが、楕円曲線を利用した暗号方式は特にこれに限定されない。   In the above description, key generation, encryption, and decryption have been described as examples of use of the elliptic curve integer multiple arithmetic apparatus 100 of the first embodiment. However, in addition to this, it may be used for digital signature generation and signature verification. Good. Moreover, although ElGamal encryption using an elliptic curve has been described as an example, an encryption method using an elliptic curve is not particularly limited to this.

上記の説明では、演算にはアフィン座標系を用いたが、他の座標系、たとえば射影座標系を用いてもよい。特に、逆元算の計算コストが乗算に比べて高いとき、射影座標で演算することが効率的である。   In the above description, the affine coordinate system is used for the calculation, but other coordinate systems such as a projective coordinate system may be used. In particular, when the calculation cost of the inverse element calculation is higher than that of multiplication, it is efficient to perform the calculation using projective coordinates.

実施の形態1に係る楕円曲線整数倍演算装置の構成図である。1 is a configuration diagram of an elliptic curve integer multiple arithmetic apparatus according to Embodiment 1. FIG. 図1の楕円曲線整数倍演算装置による整数倍演算手順を説明するフローチャートである。It is a flowchart explaining the integer multiple calculation procedure by the elliptic curve integer multiple calculation apparatus of FIG. 図2の3進法による整数倍算の詳細な手順を説明するフローチャートである。It is a flowchart explaining the detailed procedure of the integer multiplication by the ternary system of FIG. 図2の2進法による整数倍算の詳細な手順を説明するフローチャートである。It is a flowchart explaining the detailed procedure of the integer multiplication by the binary system of FIG. 実施の形態2に係る鍵生成装置の構成図である。6 is a configuration diagram of a key generation apparatus according to Embodiment 2. FIG. 図5の鍵生成装置による鍵生成手順を説明するフローチャートである。It is a flowchart explaining the key generation procedure by the key generation apparatus of FIG. 実施の形態3に係る暗号化装置の構成図である。FIG. 10 is a configuration diagram of an encryption device according to a third embodiment. 図7の暗号化装置による暗号化手順を説明するフローチャートである。It is a flowchart explaining the encryption procedure by the encryption apparatus of FIG. 実施の形態4に係る復号装置の構成図である。FIG. 10 is a configuration diagram of a decoding device according to a fourth embodiment. 図9の復号装置による復号手順を説明するフローチャートである。It is a flowchart explaining the decoding procedure by the decoding apparatus of FIG.

符号の説明Explanation of symbols

28 s進展開部、 30 コスト評価部、 32 選択部、 34 予備計算部、 35 h進法演算部、 36 h倍算演算部、 38 加算演算部、 46、70 乱数生成部、 48、72、90 楕円曲線整数倍演算部、 50 鍵生成部、 74 暗号文生成部、 92 平文生成部、 100 楕円曲線整数倍演算装置、 200 鍵生成装置、 300 暗号化装置、 400 復号装置。   28 s-adic expansion unit, 30 cost evaluation unit, 32 selection unit, 34 preliminary calculation unit, 35 h base arithmetic operation unit, 36 h multiplication operation unit, 38 addition operation unit, 46, 70 random number generation unit, 48, 72, 90 elliptic curve integer multiplication unit, 50 key generation unit, 74 ciphertext generation unit, 92 plaintext generation unit, 100 elliptic curve integer multiplication unit, 200 key generation unit, 300 encryption unit, 400 decryption unit

Claims (8)

楕円曲線上の任意の点Pの整数倍演算kPを行う楕円曲線整数倍演算装置であって、
整数kについて複数の基数sによるs進展開を求めるs進展開部と、
前記複数の基数sのそれぞれについて、前記点Pのk倍点Qをs倍算と加算の組み合わせにより算出するs進法の計算コストを評価するコスト評価部と、
前記計算コストに基づき、前記複数の基数sの中から一つの基数hを選択する選択部と、
選択された前記基数hによる前記整数kのh進展開に基づき、前記点Pのk倍点Qをh倍算と加算の組み合わせにより算出するh進法演算部とを含むことを特徴とする楕円曲線整数倍演算装置。
An elliptic curve integer multiple arithmetic apparatus that performs an integer multiple computation kP of an arbitrary point P on an elliptic curve,
An s-adic expansion unit for obtaining an s-adic expansion with a plurality of bases s for an integer k;
A cost evaluation unit that evaluates the calculation cost of the s-ary system for calculating the k times point Q of the point P by a combination of s multiplication and addition for each of the plurality of bases s;
A selection unit that selects one base h from the plurality of bases s based on the calculation cost;
An o-base arithmetic unit that calculates a k-fold point Q of the point P by a combination of h-multiplication and addition based on the h-adic expansion of the integer k by the selected radix h Curve integer multiplication unit.
前記h進法演算部における前記h進法の演算に必要な前記点Pの(h−1)倍以下の整数倍点をあらかじめ計算する予備計算部と、
前記予備計算部により計算された前記(h−1)倍以下の整数倍点を記憶する記憶部とをさらに含み、
前記h進法演算部は、前記記憶部に記憶された前記(h−1)倍以下の整数倍点を加算の際に利用することを特徴とする請求項1に記載の楕円曲線整数倍演算装置。
A preliminary calculation unit for calculating in advance an integer multiple of (h−1) times or less of the point P necessary for the calculation of the h-adic system in the h-adic calculation unit;
A storage unit that stores an integer multiple of (h-1) times or less calculated by the preliminary calculation unit;
2. The elliptic curve integer multiple calculation according to claim 1, wherein the h-adic calculation unit uses an integer multiple of (h−1) times or less stored in the storage unit when adding. apparatus.
前記コスト評価部は、前記s進展開における非零桁の個数を用いた評価式に基づいて、各s進法の計算コストを比較することを特徴とする請求項1または2に記載の楕円曲線整数倍演算装置。   3. The elliptic curve according to claim 1, wherein the cost evaluation unit compares the calculation costs of the respective s-adic systems based on an evaluation formula using the number of non-zero digits in the s-adic expansion. Integer multiplication unit. 前記コスト評価部は、前記s進展開における非零桁の個数をs進桁数で除算した相対重みを用いた評価式に基づいて、各s進法の計算コストを比較することを特徴とする請求項1または2に記載の楕円曲線整数倍演算装置。   The cost evaluation unit compares the calculation cost of each s-adic system based on an evaluation formula using a relative weight obtained by dividing the number of non-zero digits in the s-adic expansion by the number of s-adic digits. The elliptic curve integer multiple arithmetic apparatus according to claim 1 or 2. 前記コスト評価部は、前記s進法における逆元算と乗算の計算コストの比の見積もり値を用いた評価式に基づいて、各s進法の計算コストを比較することを特徴とする請求項3または4に記載の楕円曲線整数倍演算装置。   The said cost evaluation part compares the calculation cost of each s base based on the evaluation type | formula using the estimated value of the ratio of the calculation cost of the inverse element calculation and multiplication in the said s base. The elliptic curve integer multiple arithmetic apparatus according to 3 or 4. 楕円曲線上の基点Gとその位数nの入力を受け付ける入力部と、
0<d<nを満たす乱数dを生成する乱数生成部と、
前記基点Gのd倍点Qを算出する整数倍演算部と、
前記乱数dを秘密鍵、前記d倍点Qを公開鍵として生成する鍵生成部とを含み、
前記整数倍演算部は、楕円曲線上の任意の点Pの整数倍演算kPを行うものであって、
整数kについて複数の基数sによるs進展開を求めるs進展開部と、
前記複数の基数sのそれぞれについて、前記点Pのk倍点Qをs倍算と加算の組み合わせにより算出するs進法の計算コストを評価するコスト評価部と、
前記計算コストに基づき、前記複数の基数sの中から一つの基数hを選択する選択部と、
選択された前記基数hによる前記整数kのh進展開に基づき、前記点Pのk倍点Qをh倍算と加算の組み合わせにより算出するh進法演算部とを含むことを特徴とする鍵生成装置。
An input unit for receiving an input of a base point G on the elliptic curve and its order n;
A random number generator for generating a random number d satisfying 0 <d <n;
An integer multiple calculation unit for calculating the d-fold point Q of the base point G;
A key generation unit that generates the random number d as a secret key and the d multiple Q as a public key,
The integer multiplication unit performs an integer multiplication kP of an arbitrary point P on the elliptic curve,
An s-adic expansion unit for obtaining an s-adic expansion with a plurality of bases s for an integer k;
A cost evaluation unit that evaluates the calculation cost of the s-ary system for calculating the k times point Q of the point P by a combination of s multiplication and addition for each of the plurality of bases s;
A selection unit that selects one base h from the plurality of bases s based on the calculation cost;
A key unit including an h-adic arithmetic unit that calculates a k-fold point Q of the point P by a combination of h-multiplication and addition based on the h-adic expansion of the integer k by the selected radix h Generator.
楕円曲線上の基点Gとその位数n、公開鍵Q、および平文Mの入力を受け付ける入力部と、
0<r<nを満たす乱数rを生成する乱数生成部と、
前記基点Gのr倍点rGと、前記公開鍵Qのr倍点rQを算出する整数倍演算部と、
前記整数倍演算部による算出結果を用いて、第1暗号C1=rGと第2暗号C2=rQ+Mを計算し、暗号文(C1、C2)を生成する暗号文生成部とを含み、
前記整数倍演算部は、楕円曲線上の任意の点Pの整数倍演算kPを行うものであって、
整数kについて複数の基数sによるs進展開を求めるs進展開部と、
前記複数の基数sのそれぞれについて、前記点Pのk倍点Qをs倍算と加算の組み合わせにより算出するs進法の計算コストを評価するコスト評価部と、
前記計算コストに基づき、前記複数の基数sの中から一つの基数hを選択する選択部と、
選択された前記基数hによる前記整数kのh進展開に基づき、前記点Pのk倍点Qをh倍算と加算の組み合わせにより算出するh進法演算部とを含むことを特徴とする暗号化装置。
An input unit for receiving input of a base point G on the elliptic curve and its order n, public key Q, and plaintext M;
A random number generator for generating a random number r satisfying 0 <r <n;
An r multiple point rG of the base point G, an integer multiple arithmetic unit for calculating an r multiple point rQ of the public key Q,
A ciphertext generation unit that calculates a first cipher C1 = rG and a second cipher C2 = rQ + M using a calculation result by the integer multiple operation unit, and generates a ciphertext (C1, C2);
The integer multiplication unit performs an integer multiplication kP of an arbitrary point P on the elliptic curve,
An s-adic expansion unit for obtaining an s-adic expansion with a plurality of bases s for an integer k;
A cost evaluation unit that evaluates the calculation cost of the s-ary system for calculating the k times point Q of the point P by a combination of s multiplication and addition for each of the plurality of bases s;
A selection unit that selects one base h from the plurality of bases s based on the calculation cost;
And a h-ary arithmetic unit that calculates a k-fold point Q of the point P by a combination of h multiplication and addition based on the h-adic expansion of the integer k by the selected radix h. Device.
楕円曲線上の基点Gとその位数n、公開鍵Q、および平文Mに対して、0<r<nを満たす乱数rを定めて、前記基点Gのr倍点rGと前記公開鍵Qのr倍点rQを算出し、その算出結果を用いて、第1暗号C1=rGと第2暗号C2=rQ+Mを計算することで生成された暗号文(C1、C2)と、秘密鍵dの入力を受け付ける入力部と、
前記第1暗号C1のd倍点dC1を算出する整数倍演算部と、
前記整数倍演算部による算出結果を用いて、前記第2暗号C2から前記第1暗号C1のd倍点dC1を減算することにより、復号された平文Mを生成する平文生成部とを含み、
前記整数倍演算部は、楕円曲線上の任意の点Pの整数倍演算kPを行うものであって、
整数kについて複数の基数sによるs進展開を求めるs進展開部と、
前記複数の基数sのそれぞれについて、前記点Pのk倍点Qをs倍算と加算の組み合わせにより算出するs進法の計算コストを評価するコスト評価部と、
前記計算コストに基づき、前記複数の基数sの中から一つの基数hを選択する選択部と、
選択された前記基数hによる前記整数kのh進展開に基づき、前記点Pのk倍点Qをh倍算と加算の組み合わせにより算出するh進法演算部とを含むことを特徴とする復号装置。
For the base point G on the elliptic curve, its order n, the public key Q, and the plaintext M, a random number r satisfying 0 <r <n is determined, and the r multiple point rG of the base point G and the public key Q The r-fold point rQ is calculated, and the ciphertext (C1, C2) generated by calculating the first cipher C1 = rG and the second cipher C2 = rQ + M using the calculation result, and the input of the secret key d An input unit that accepts
An integer multiple calculation unit for calculating the d-fold point dC1 of the first cipher C1,
A plaintext generation unit that generates a decrypted plaintext M by subtracting a d-multiplier point dC1 of the first cipher C1 from the second cipher C2 using a calculation result by the integer multiplication unit;
The integer multiplication unit performs an integer multiplication kP of an arbitrary point P on the elliptic curve,
An s-adic expansion unit for obtaining an s-adic expansion with a plurality of bases s for an integer k;
A cost evaluation unit that evaluates the calculation cost of the s-ary system for calculating the k times point Q of the point P by a combination of s multiplication and addition for each of the plurality of bases s;
A selection unit that selects one base h from the plurality of bases s based on the calculation cost;
And a h-ary arithmetic unit that calculates a k-fold point Q of the point P by a combination of h multiplication and addition based on the h-adic expansion of the integer k by the selected radix h. apparatus.
JP2003381344A 2003-11-11 2003-11-11 Elliptic curve integer multiple arithmetic device, and key generation device, encryption device, and decryption device that can use the device Expired - Fee Related JP4193176B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003381344A JP4193176B2 (en) 2003-11-11 2003-11-11 Elliptic curve integer multiple arithmetic device, and key generation device, encryption device, and decryption device that can use the device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003381344A JP4193176B2 (en) 2003-11-11 2003-11-11 Elliptic curve integer multiple arithmetic device, and key generation device, encryption device, and decryption device that can use the device

Publications (2)

Publication Number Publication Date
JP2005148141A JP2005148141A (en) 2005-06-09
JP4193176B2 true JP4193176B2 (en) 2008-12-10

Family

ID=34690745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003381344A Expired - Fee Related JP4193176B2 (en) 2003-11-11 2003-11-11 Elliptic curve integer multiple arithmetic device, and key generation device, encryption device, and decryption device that can use the device

Country Status (1)

Country Link
JP (1) JP4193176B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103427997B (en) * 2013-08-16 2016-06-22 西安西电捷通无线网络通信股份有限公司 A kind of method generating digital signature and device
CN115378588B (en) * 2022-10-25 2023-05-26 北京信安世纪科技股份有限公司 Method, apparatus and storage medium for inadvertent transmission

Also Published As

Publication number Publication date
JP2005148141A (en) 2005-06-09

Similar Documents

Publication Publication Date Title
JP4575283B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, PROGRAM, AND METHOD
US20110161390A1 (en) Modular multiplication processing apparatus
KR101269737B1 (en) Encryption processing apparatus, encryption processing method, and computer program medium
US20090136025A1 (en) Method for scalarly multiplying points on an elliptic curve
US8509426B1 (en) XZ-elliptic curve cryptography system and method
JP4513752B2 (en) Cryptographic processing apparatus, cryptographic processing method, and computer program
US7177422B2 (en) Elliptic curve encryption processing method, elliptic curve encryption processing apparatus, and program
US20070053506A1 (en) Elliptic curve encryption processor, processing method of the processor using elliptic curves, and program for causing a computer to execute point scalar multiplication on elliptic curves
Azarderakhsh et al. EdSIDH: supersingular isogeny Diffie-Hellman key exchange on Edwards curves
Biasse et al. A trade-off between classical and quantum circuit size for an attack against CSIDH
JP4193176B2 (en) Elliptic curve integer multiple arithmetic device, and key generation device, encryption device, and decryption device that can use the device
JP2004163687A (en) Device and program for elliptic curve ciphering
CN111614465B (en) Public key generation method and device based on super-singular homologous secret key encapsulation protocol
JP2005316267A (en) Elliptic curve pairing arithmetic unit
JP2005055488A (en) Scalar multiple calculating method in elliptic curve cryptosystem, device and program for the same
CN114868175A (en) Final power calculation device, pairing operation device, encryption processing device, final power calculation method, and final power calculation program
May et al. Signature Algorithms on Non-commutative Algebras Over Finite Fields of Characteristic Two
US20070121935A1 (en) Method for countermeasuring in an electronic component
JP4502817B2 (en) Elliptic curve scalar multiplication method and apparatus
KR100341507B1 (en) Elliptic Curve Cryptography and Digital Signature Method using fast finite field operations
Kırlar On the elliptic curves y2= x3− c with embedding degree one
JP2005258228A (en) Encryption processing operation method, encryption processing device, and computer program
JP2003228285A (en) Arithmetic unit for elliptic curve scalar multiple
JP3435473B2 (en) Encryption / decryption method and device
WO2023070830A1 (en) Sm2-based transaction signing method and device under blockchain

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080617

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080807

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: 20080902

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: 20080911

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111003

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121003

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121003

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121003

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131003

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees