JP2008020757A - Encryption processing device, encryption processing computation method, and computer program - Google Patents

Encryption processing device, encryption processing computation method, and computer program Download PDF

Info

Publication number
JP2008020757A
JP2008020757A JP2006193582A JP2006193582A JP2008020757A JP 2008020757 A JP2008020757 A JP 2008020757A JP 2006193582 A JP2006193582 A JP 2006193582A JP 2006193582 A JP2006193582 A JP 2006193582A JP 2008020757 A JP2008020757 A JP 2008020757A
Authority
JP
Japan
Prior art keywords
calculation
algorithm
doubling
multiplication
curve
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.)
Pending
Application number
JP2006193582A
Other languages
Japanese (ja)
Inventor
Izuru Kitamura
出 北村
Masanori Kataki
雅宣 堅木
Shigetoshi Onitsuka
重利 鬼束
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2006193582A priority Critical patent/JP2008020757A/en
Publication of JP2008020757A publication Critical patent/JP2008020757A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a device and a method realizing high-speed computation in hyperelliptic encryption processing. <P>SOLUTION: In the scalar multiplication calculation of a hyperelliptic curve encryption, it is determined which of a double multiplication, applying computational algorithm and a 1/2 fold applying computational algorithm, can perform high-speed computation on the basis of curve parameters of the hyperelliptic curve, and the scalar calculation of multiples is executed, by selectively applying the algorithm determined to be capable of performing the high-speed computation. According to the constitution, the scalar calculation of multiples associated with the encryption processing, corresponding to various curves, can be performed surely at high-speed processing. Namely, by selecting the algorithm according to the curve parameters, the high-speed computation with a reduced amount of computation in the scalar multiplication is realized. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、暗号処理装置、および暗号処理演算方法、並びにコンピュータ・プログラムに関する。さらに詳細には、超楕円曲線暗号におけるスカラー倍算の高速化を実現する暗号処理装置、および暗号処理演算方法、並びにコンピュータ・プログラムに関する。   The present invention relates to a cryptographic processing apparatus, a cryptographic processing calculation method, and a computer program. More specifically, the present invention relates to a cryptographic processing device, a cryptographic processing calculation method, and a computer program that realize high-speed scalar multiplication in hyperelliptic curve cryptography.

昨今、ネットワーク通信、電子商取引の発展に伴い、通信におけるセキュリティ確保が重要な問題となっている。セキュリティ確保の1つの方法が暗号技術であり、現在、様々な暗号化手法を用いた通信が行なわれている。   In recent years, with the development of network communication and electronic commerce, ensuring security in communication has become an important issue. One method for ensuring security is encryption technology, and currently, communication using various encryption methods is performed.

例えばICカード等の小型の装置中に暗号処理モジュールを埋め込み、ICカードと、データ読み取り書き込み装置としてのリーダライタとの間でデータ送受信を行ない、認証処理、あるいは送受信データの暗号化、復号化を行なうシステムが実用化されている。   For example, an encryption processing module is embedded in a small device such as an IC card, and data is transmitted / received between the IC card and a reader / writer as a data reading / writing device, and authentication processing or encryption / decryption of transmitted / received data is performed. The system to do is put into practical use.

暗号処理を実行する例えばICカードは、例えば駅の改札などの様々なゲート、あるいはショッピングセンターなどで盛んに利用されるようになっており、小型化および処理の迅速化の要求が厳しくなってきている。   For example, IC cards that perform cryptographic processing are actively used in various gates such as ticket gates of stations, shopping centers, and the like, and demands for downsizing and speeding up of processing have become strict. Yes.

暗号化方式には、大別して共通鍵方式、公開鍵方式がある。共通鍵方式は、対称暗号方式ともよばれ、発信者、受信者の双方で共通の鍵を保有する。共通鍵方式の代表的な方法として、DES(Data Encryption Standard)がある。DESアルゴリズムの特徴は、暗号化と復号化とをほぼ同じアルゴリズムで実行可能なことである。   Encryption methods are roughly classified into a common key method and a public key method. The common key method is also called a symmetric encryption method, and both the sender and the receiver have a common key. As a typical method of the common key method, there is DES (Data Encryption Standard). A feature of the DES algorithm is that encryption and decryption can be executed by almost the same algorithm.

この共通鍵暗号に対して、発信者と受信者の鍵を異なるものとした構成が公開鍵方式または非対称暗号方式である。公開鍵暗号方式では、暗号化、復号化に共通の鍵を用いる共通鍵暗号方式と異なり、秘密に保つ必要のある秘密鍵は、特定の1人が持てばよいため鍵の管理において有利である。ただし、公開鍵暗号方式は共通鍵暗号方式に比較してデータ処理速度が遅く、一般には、秘密鍵の配送、デジタル署名等のデータ量の少ない対象に多く用いられている。公開鍵暗号方式の代表的なものにはRSA(Rivest-Shamir-Adleman)暗号や、楕円曲線暗号(ECC:Elliptic Curve Cryptography)が知られている。   The public key system or the asymmetric encryption system is a configuration in which the sender and receiver have different keys for the common key encryption. Unlike the common key cryptosystem that uses a common key for encryption and decryption, the public key cryptosystem is advantageous in key management because the secret key that needs to be kept secret must be held by a specific person. . However, the public key cryptosystem has a slower data processing speed than the common key cryptosystem, and is generally used for a small amount of data such as secret key distribution and digital signature. As typical public key cryptosystems, RSA (Rivest-Shamir-Adleman) cryptography and elliptic curve cryptography (ECC) are known.

楕円曲線暗号(Elliptic Curve Cryptography)は、素体上の楕円曲線y=x+ax+b(4a+27b≠0)や、2の拡大体上の楕円曲線y+xy=x+ax+b(b≠0)などを用いる。これらの曲線上の点に無限遠点(O)を加えた集合は、加法に関して有限群をなし、無限遠点(O)はその単位元となる。以下、この有限群上の点の加法を+で表す。この有限群上の異なる2点P,Qの加算P+Qを「点の加算」、点Pと点Pの加算P+P=2Pを「点の2倍算」と呼ぶ。また、点Pをk回加算した点P+P+…+P=kPを求める演算を「点のスカラー倍算」と呼ぶ。 Elliptic Curve Cryptography is an elliptic curve y 2 = x 3 + ax + b (4a 3 + 27b 2 ≠ 0) on a prime field or an elliptic curve y 2 + xy = x 3 + ax 2 + b ( 2 on an extension field). b ≠ 0) or the like is used. A set obtained by adding an infinite point (O) to points on these curves forms a finite group with respect to addition, and the infinite point (O) is the unit element. Hereinafter, the addition of points on the finite group is represented by +. The addition P + Q of two different points P and Q on the finite group is called “point addition”, and the addition P + P = 2P of the points P and P is called “point doubling”. Further, an operation for obtaining a point P + P +... + P = kP obtained by adding the point P k times is referred to as “scalar multiplication of points”.

点のスカラー倍算は、点の加算、および点の2倍算を用いて構成できることが知られている。素体上の楕円曲線や2の拡大体上の楕円曲線上のアフィン座標系(x,y)や射影座標(X,Y,Z)における点の加算法、点の2倍算法、および点のスカラー倍算法は、IEEE P1363/D13 Standard Specifications for Public Key Cryptographyに記されている。   It is known that scalar multiplication of points can be constructed using point addition and point doubling. Point addition, point doubling, and point doubling in the affine coordinate system (x, y) and projective coordinates (X, Y, Z) on the elliptic curve on the prime field and the elliptic curve on the two extension field The scalar multiplication method is described in IEEE P1363 / D13 Standard Specifications for Public Key Cryptography.

楕円曲線暗号を一般化した方式として、Koblitz、Cantorによって提案された超楕円曲線暗号(HECC:Hyper Elliptic Curve Cryptography)方式がある。超楕円曲線暗号方式については、例えば非特許文献1、非特許文献2に記載されている。   As a generalized system of elliptic curve cryptography, there is a hyper elliptic curve cryptography (HECC) system proposed by Koblitz and Cantor. The super elliptic curve cryptosystem is described in Non-Patent Document 1 and Non-Patent Document 2, for example.

楕円曲線暗号では、有限体Fq、ただしq=p、pを素数、nを正整数、この有限体Fq上で定義される楕円曲線上の点をPとし、スカラー倍算した点kP(k∈Z)をQとすると、Qからkを求める問題は離散対数問題に帰着できる。一方、超楕円曲線暗号では点の形式的和である因子(divisor)をDとし、スカラー倍算kDで定義される因子をDとすると、Dからkを求める問題は超楕円曲線におけるヤコビ多様体上の離散対数問題と呼ばれる。この数学適な困難精に基づいて公開鍵暗号を構成することができる。 In elliptic curve cryptography, a finite field Fq, where q = p n , p is a prime number, n is a positive integer, a point on the elliptic curve defined on the finite field Fq is P, and a point kP (k If εZ) is Q, the problem of obtaining k from Q can be reduced to a discrete logarithm problem. On the other hand, factors in the hyperelliptic curve cryptography is a formal sum of points a (divisor) and D 1, the factors to be defined by the scalar multiplication kD 1 and D 2, issue hyperelliptic curve to determine the k from D 2 Called the discrete logarithm problem on the Jacobian manifold in. Public key cryptography can be constructed based on this mathematically suitable difficulty.

超楕円曲線では曲線を特徴づける値は種数(genus)gである。pを素数、nを正の整数、q=pとする。このとき有限体Fq上で定義される種数gの超楕円曲線Cは以下の方程式、
+h(x)y=f(x)
で定義される。ここで、h(x),f(x)∈Fq[x],f(x)は、次数2g+1のmonic多項式である。
In a hyperelliptic curve, the value characterizing the curve is the genus g. prime p, n a positive integer, and q = p n. At this time, the hyperelliptic curve C of the genus g defined on the finite field Fq is expressed by the following equation:
y 2 + h (x) y = f (x)
Defined by Here, h (x), f (x) εFq [x], f (x) is a monic polynomial of degree 2g + 1.

超楕円曲線C上の点P=(x、y)に対して共役点(opposite point)は、−P=(x、−y−h(x))として定義される。また、P=−Pである点を分岐点(ramification point)と呼ぶ。また、無限遠点をPと表す。 For a point P = (x, y) on the hyperelliptic curve C, a conjugate point is defined as −P = (x, −y−h (x)). A point where P = −P is referred to as a “ramification point”. In addition, the point at infinity is represented as P∞.

超楕円曲線暗号の定義体の演算サイズ(ビット長)は楕円曲線暗号と同等の安全性を仮定した場合、楕円曲線の定義体の演算サイズに比べて1/gに小さくなることが知られている。演算サイズが小さいことは実装上メリットがあり、超楕円曲線暗号の利点の一つして挙げられる。   It is known that the computation size (bit length) of the definition of the hyperelliptic curve cryptosystem is 1 / g smaller than the computation size of the elliptic curve definition, assuming the same security as the elliptic curve cryptography. Yes. The small calculation size is advantageous in terms of implementation, and is one of the advantages of hyperelliptic curve cryptography.

次に、超楕円曲線暗号の基本事項について説明する。前述したように、超楕円曲線暗号では点の形式的和である因子(divisor)をDとし、スカラー倍算kDで定義される因子をDとすると、Dからkを求める問題は超楕円曲線におけるヤコビ多様体上の離散対数問題として公開鍵暗号として用いることができる。 Next, basic items of the super elliptic curve cryptography will be described. As described above, in hyperelliptic curve cryptography, if a factor that is a formal sum of points is D 1 and a factor defined by scalar multiplication kD 1 is D 2 , the problem of obtaining k from D 2 is It can be used as a public key cryptosystem as a discrete logarithm problem on a Jacobian manifold in a hyperelliptic curve.

ここで、因子(divisor)は有理点の形式和であり、以下の形式で表現することができる。

Figure 2008020757
Here, the factor is a formal sum of rational points and can be expressed in the following form.
Figure 2008020757

また、半被約因子(semi reduced divisor)は、以下の形式で表現することができる。

Figure 2008020757
Also, the semi reduced factor can be expressed in the following format.
Figure 2008020757

ただし、P=(x、y)かつi≠jに対してP≠Pである。 However, a P iP j with respect to P i = (x i, y i) and i ≠ j.

また、ΣmをDのウェイト(weight)と呼ぶ。さらにウェイト(weight)が種数g以下である半被約因子を被約因子(reduced divisor)と呼ぶ。 Also, Σm i is referred to as a D weight. Furthermore, a semi-reduced factor having a weight of genus g or less is referred to as a reduced divisor.

超楕円曲線の安全性は被約因子の個数に依存しているここで被約因子の個数をNとする。安全な超楕円曲線暗号を実現するためには、Nが160ビット以上の素数rを因数に持つことが必要である。このとき、NはN=c×rと表現される。cはコファクターと呼ばれ,小さい数であることが望ましい。例えば、
q=p(pは奇素数)の場合は、c=1、
q=2の場合は、c=2、
を満たす超楕円曲線を用いる。また、ベースポイントは位数がrであるものを選ぶ。
The safety of the hyperelliptic curve depends on the number of reduced factors, where N is the number of reduced factors. In order to realize secure hyperelliptic curve cryptography, N must have a prime number r of 160 bits or more as a factor. At this time, N is expressed as N = c × r. c is called a cofactor and is preferably a small number. For example,
When q = p (p is an odd prime number), c = 1,
If q = 2 n , then c = 2,
A hyperelliptic curve that satisfies is used. Also, the base point having the order r is selected.

超楕円曲線の任意の半被約因子Dは下記の多項式U、V∈Fq[x]を用いてD=(U、V)として表現できる。これをマンホード(Mumford)表現と呼ぶ。なお、マンホード(Mumford)表現については、例えば非特許文献3に記載されている。

Figure 2008020757
An arbitrary semi-irreducible factor D of the hyperelliptic curve can be expressed as D = (U, V) using the following polynomial U, VεFq [x]. This is called a “Mumford” expression. For example, Non-Patent Document 3 describes the Mumford expression.
Figure 2008020757

種数(genus)2の任意の被約因子Dはマンホード(Mumford)表現を用いると、有限体Fq上の元を係数に持つ2次以下の多項式の組、すなわち、
(U、V)=(x+ux+u、vx+v)、または、
(U、V)=(x+x、y
として表現することができる。
また、零元は、
(U,V)=(1,0)=O
として表現される。
An arbitrary irreducible factor D of genus 2 uses a Mumford expression, and is a set of second-order or lower-order polynomials having elements on a finite field Fq as coefficients, ie,
(U, V) = (x 2 + u 1 x + u 0 , v 1 x + v 0 ), or
(U, V) = (x + x 0 , y 0 )
Can be expressed as
The zero element is
(U, V) = (1, 0) = O
Is expressed as

次に、超楕円曲線暗号で用いられる因子のスカラー倍算について説明する。因子のスカラー倍算は加算アルゴリズムと呼ばれる因子の加算と2倍算の組み合わせ、もしくは加算と1/2倍算の組み合わせで計算することができる。以下では主要な加算アルゴリズムについて説明する。   Next, scalar multiplication of factors used in hyperelliptic curve cryptography will be described. Scalar multiplication of factors can be calculated by a combination of factor addition and doubling called an addition algorithm, or a combination of addition and ½ multiplication. The main addition algorithm will be described below.

最初に提案された実用的なアルゴリズムはCantorのアルゴリズムである。このアルゴリズムについては、例えば非特許文献1、非特許文献2に記載されている。このアルゴリズムはあらゆる種数の超楕円曲線上の因子に対して適用可能なアルゴリズムであるが、楕円曲線に比べてアルゴリズムが複雑で計算量が多いことが欠点である。   The first practical algorithm proposed is the Cantor algorithm. This algorithm is described in Non-Patent Document 1 and Non-Patent Document 2, for example. This algorithm is an algorithm that can be applied to factors of any kind of hyperelliptic curve, but has a drawback in that the algorithm is more complex and computationally expensive than an elliptic curve.

Harleyは種数2の超楕円曲線に限定し、因子のweightの場合分けをおこない、それぞれの場合で最適化を行うことでより計算量の少ないアルゴリズムを提案した。この研究を受けて超楕円曲線暗号(HECC)における演算アルゴリズムの改良、拡張の研究が近年盛んになっている。   Harley limited to super-elliptic curves of genus 2, and divided the case of factor weight, and proposed an algorithm with less calculation amount by optimizing each case. In response to this research, research on improvement and expansion of arithmetic algorithms in hyperelliptic curve cryptography (HECC) has become active in recent years.

(ア)Harleyのアルゴリズムは定義体を素体、種数2の曲線、因子の表現はMumford表現を用いている。このアルゴリズムの計算量の改善の研究例として、例えば、非特許文献4、非特許文献5、非特許文献6などが挙げられる。
(イ)さらに、定義体を2の拡大体の場合について拡張した処理例について、非特許文献7、非特許文献8に報告されている。
(ウ)また、因子の表現に拡張Mumford表現、Weighted Coordinateを用いることで計算量を削減した研究として非特許文献11、非特許文献12、非特許文献6、非特許文献13がある。
(A) The Harley algorithm uses a prime field as a definition field, a genus 2 curve, and a Mumford expression as a factor expression. Non-patent literature 4, non-patent literature 5, non-patent literature 6 etc. are mentioned as a research example of the improvement of the calculation amount of this algorithm, for example.
(A) Further, non-patent document 7 and non-patent document 8 report processing examples in which the definition body is expanded in the case of two expanded fields.
(C) Further, there are Non-Patent Document 11, Non-Patent Document 12, Non-Patent Document 6, and Non-Patent Document 13 as studies in which the amount of calculation is reduced by using extended Mumford expression and Weighted Coordinate for the expression of factors.

Harleyアルゴリズムの処理について、図1を参照して説明する。なお、本発明は、標数2の有限体上定義された種数2の超楕円曲線に関するものであり、以下の説明では、曲線の種数を2、定義体の標数を2とする。   The processing of the Harley algorithm will be described with reference to FIG. The present invention relates to a genus 2 hyperelliptic curve defined on a finite field of characteristic 2. In the following description, the genus of the curve is 2 and the characteristic of the definition field is 2.

図1(A)は、種数2の場合の因子の加算D+Dの処理例を示した図である。なお、因子D、Dは、それぞれD=(U1、)、D=(U、V)とする。まず、因子のウェイト(weight)の値によって場合分けが行われる。すなわち、[D+D]の各ウェイト(weight)の値によって、
(1)weight2+weight2
(2)weight2+weight1
(3)例外処理1
の場合分けが行なわれる。
FIG. 1A is a diagram showing a processing example of factor addition D 1 + D 2 in the case of genus 2. Note that the factors D 1 and D 2 are D 1 = (U 1, V 1 ) and D 2 = (U 2 , V 2 ), respectively. First, the case is divided according to the value of the weight of the factor. That is, depending on the value of each weight of [D 1 + D 2 ],
(1) weight2 + weight2
(2) weight2 + weight1
(3) Exception handling 1
The case is divided.

次にweight2同士の加算、すなわち(1)weight2+weight2の場合、因子D=(U1、)、D=(U、V)について、最大公約数gcd(U、U)=1であれば、2つの因子D=(U1、)、D=(U、V)は、互いに同一または共役点(opposite point)を含まない。この場合、
(1a)HarleyADD、
すなわちハーレーアルゴリズムに従った加算処理を行う。(1a)HarleyADDの処理は例えば非特許文献7に示されているMost Frequent Caseと呼ばれる処理である。このMost Frequent Caseは、種数2の場合の因子の加算D+D処理において、高確率で発生するケースである。
Then weight2 addition between: (1) For weight2 + weight2, factor D 1 = (U 1, V 1), D 2 = the (U 2, V 2), the greatest common divisor gcd (U 1, U 2) If = 1, the two factors D 1 = (U 1, V 1 ) and D 2 = (U 2 , V 2 ) are not identical to each other or do not include an opposite point. in this case,
(1a) HarleyADD,
That is, addition processing according to the Harley algorithm is performed. (1a) The Harley ADD process is a process called “most frequent case” shown in Non-Patent Document 7, for example. This Most Frequent Case is a case that occurs with high probability in the factor addition D 1 + D 2 processing in the case of genus 2.

この(1a)HarleyADDの処理は、非常に高い確率でおこる。その他の例外処理の起こる確率は非常に低い。Most Frequent Caseの条件を満たさない場合、すなわち、因子D=(U1、)、D=(U、V)について、最大公約数gcd(U、U)=1を満足しない場合は、
(1b)例外処理2を行う。
This (1a) Harley ADD process occurs with a very high probability. The probability of other exception handling occurring is very low. When the condition of Most Frequent Case is not satisfied, that is, for the factor D 1 = (U 1, V 1 ), D 2 = (U 2 , V 2 ), the greatest common divisor gcd (U 1 , U 2 ) = 1 If you are not satisfied,
(1b) Exception processing 2 is performed.

(2)weight2+weight1の場合についても同様に、gcd(U、U)=1かどうかをチェックし、gcd(U、U)=1を満足する場合には、
(2a)ExHarADD2+1→2を実行し、
gcd(U、U)=1を満足しない場合には、
(2b)例外処理3を行う。
(3)例外処理1は、weightの場合分けが上記(1),(2)以外の場合である。
(2) for the case of weight2 + weight1 Similarly, when checking whether the gcd (U 1, U 2) = 1 , satisfies gcd (U 1, U 2) = 1 is
(2a) ExHARADD 2 + 1 → 2 is executed,
If gcd (U 1 , U 2 ) = 1 is not satisfied,
(2b) Exception processing 3 is performed.
(3) The exception process 1 is a case where the case classification of “weight” is other than the above (1) and (2).

なお、上述した種数2の加算処理のアルゴリズムの詳細については、非特許文献8に記載(Table1,2)されている。   The details of the algorithm of the genus 2 addition process described above are described in Non-Patent Document 8 (Tables 1 and 2).

次に、種数2の場合の2倍算の流れを図1(B)を参照して説明する。2倍算は、D+D=2Dの処理である。入力をD=(U,V)とし、出力をD=[2]Dとする。
加算の場合と同様に因子Dのweightが
(4)weight2、
(5)weight1、
(6)weight0、
によってそれぞれ異なる処理を行う。
Next, the flow of doubling in the case of genus 2 will be described with reference to FIG. The doubling is a process of D + D = 2D. The input is D 1 = (U 1 , V 1 ) and the output is D 2 = [2] D 1 .
As in the case of factor D 1 weight of addition is (4) weight2,
(5) weight1,
(6) weight0,
Different processing is performed depending on each.

(4)weight2の場合、因子が分岐点を含むかどうかをチェックし、含まなければ、(4a)HarleyDBLの処理を行う。因子が分岐点を含む場合は(4b)例外処理6を行う。gcd(h,U1)=1であれば、Dは分岐点を含まない。この場合、(4a)HarleyDBLの処理を行う。HarleyDBLの処理アルゴリズムは例えば非特許文献5にMost Frequent Caseとして示されている。 (4) In the case of weight2, it is checked whether the factor includes a branch point. If not, (4a) HarleyDBL processing is performed. If the factor includes a branch point, (4b) exception processing 6 is performed. If gcd (h, U1) = 1, D 1 does not include a branch point. In this case, (4a) HarleyDBL processing is performed. The processing algorithm of HarleyDBL is shown as Most Frequent Case in Non-Patent Document 5, for example.

後述するように、この処理が非常に高い確率でおこる。その他の例外処理の起こる確率は非常に低い。上述したように、Most Frequent Caseの条件を満たさない場合は例外処理6を行う。   As will be described later, this process occurs with a very high probability. The probability of other exception handling occurring is very low. As described above, when the Most Frequent Case condition is not satisfied, exception processing 6 is performed.

weight1の場合も同様にgcd(h,U1)=1かどうかをチェックし,(5a)の処理、ExHarDBL1+1→2もしくは、(5b)の処理である例外処理7を行う。ExHarDBL1+1→2のアルゴリズムについては、非特許文献8[4.12.(a)]に示されている。 Similarly, in the case of weight1, it is checked whether gcd (h, U1) = 1, and the processing of (5a), ExHarDBL 1 + 1 → 2 or exception processing 7 which is processing of (5b) is performed. Regarding the algorithm of ExHarDBL 1 + 1 → 2 , Non-Patent Document 8 [4.12. (A)].

HarleyADD,HarleyDBLは、上述のようにMost Frequent Caseと呼ばれ、ランダムに因子を発生させて加算または2倍算を行うと、非常に高い確率でHarleyADD、HarleyDBLの処理になる。なお、このHarleyADD、HarleyDBLが、Most Frequent Caseとなることの説明は、例えば非特許文献14に説明されている。   As described above, HarleyADD and HarleyDBL are called Most Frequent Cases. When a factor is randomly generated and addition or doubling is performed, processing of HarleyADD and HarleyDBL is performed with a very high probability. In addition, the description that this HarleyADD and HarleyDBL become Most Frequent Case is described in the nonpatent literature 14, for example.

非特許文献14によると、このMost Frequent Caes以外の処理になる確率はO(1/q)である。ここでqは定義体の要素数であり、安全な暗号用途ではqgが160bit程度必要になる大きな数であるので現実的にはHarleyADD、HarleyDBLしか発生しない状況とみなすことができる。 According to Non-Patent Document 14, the probability of processing other than this Most Frequent Caes is O (1 / q). Here, q is the number of elements of the definition body, and q g is a large number that requires about 160 bits in secure cryptographic applications, so that it can be regarded as a situation in which only HarleyADD and HarleyDBL occur in reality.

従って超楕円曲線暗号(HECC)の加算アルゴリズムをHarleyアルゴリズムまたはその改良アルゴリズムを使って、例えばICカードなどの暗号処理演算手段として実装する場合、
HarleyADD、
HarleyDBL
これらの演算アルゴリズム実行手段のみを実装し、その他の確率的にほとんど起こらない複雑な例外処理についての演算を実行しない実装とする場合も多い。この場合、例外処理については、weightの場合分けが必要のないCantorのアルゴリズムを実行する構成とするなどの方法が適用される。種数が高くなるほど複雑な例外処理の負担は増すため、非特許文献9,10ではこの実装方法について説明している。
Therefore, when the addition algorithm of the super elliptic curve cryptography (HECC) is implemented as a cryptographic processing operation means such as an IC card using the Harley algorithm or its improved algorithm,
HarleyADD,
HarleyDBL
In many cases, only these arithmetic algorithm execution means are mounted, and other complicated exception processing that hardly occurs stochastically is performed. In this case, for exception processing, a method is adopted such as a configuration in which a Cantor algorithm that does not need to be divided into weight cases is executed. Since the burden of complicated exception handling increases as the genus increases, Non-Patent Documents 9 and 10 describe this mounting method.

次に超楕円曲線暗号(HECC)アルゴリズムにおける因子のスカラー倍算について説明する。因子のスカラー倍算の実行方法としては、
(a)超楕円加算と超楕円2倍算の組み合わせ、
(b)超楕円加算と超楕円1/2倍算の組み合わせ、
上記(a)または(b)のいずれにおいても計算することができる。
以下、(a),(b)の計算方法について説明する。
Next, scalar multiplication of factors in the hyperelliptic curve cryptography (HECC) algorithm will be described. As a method of performing scalar multiplication of factors,
(A) Combination of super-elliptical addition and super-elliptical doubling,
(B) a combination of super-elliptical addition and super-elliptical ½ multiplication,
It can be calculated in either (a) or (b) above.
Hereinafter, the calculation methods (a) and (b) will be described.

(a)超楕円加算と超楕円2倍算の組み合わせに基づく因子のスカラー倍算
まず、超楕円加算と超楕円2倍算の組み合わせに基づく因子のスカラー倍算について説明する。スカラー倍算のアルゴリズムとして基本的なDouble−and−add binary法の中で、right−to−leftとleft−to−rightの2種類を説明する。
(A) Scalar multiplication of factors based on a combination of super-elliptical addition and super-elliptical doubling First, scalar multiplication of factors based on a combination of super-elliptical addition and super-elliptical doubling will be described. Two types of right-to-left and left-to-right will be described in the basic Double-and-add binary method as a scalar multiplication algorithm.

前述したように、楕円曲線暗号では有限体Fq上で定義される楕円曲線上の点をPとし、スカラー倍算した点kP(k∈Z)をQとすると、Qからkを求める問題は離散対数問題に帰着できる。一方、超楕円曲線暗号では点の形式的和である因子(divisor)をDとし、スカラー倍算kDで定義される因子をDとすると、Dからkを求める問題は超楕円曲線におけるヤコビ多様体上の離散対数問題として公開鍵暗号として用いることができる。 As described above, in elliptic curve cryptography, if the point on the elliptic curve defined on the finite field Fq is P and the point kP (k∈Z) obtained by scalar multiplication is Q, the problem of obtaining k from Q is discrete. It can result in a logarithmic problem. On the other hand, factors in the hyperelliptic curve cryptography is a formal sum of points a (divisor) and D 1, the factors to be defined by the scalar multiplication kD 1 and D 2, issue hyperelliptic curve to determine the k from D 2 Can be used as public key cryptography as a discrete logarithm problem on Jacobian varieties.

因子Dに対して、スカラー倍算(dD)に適用する乗数としてのスカラー値:dの2進数表現を、
d=(dl−1、・・・・・、d)、
ただし、dl−1=1、dl−2,・・・,=1or0とする。
For a factor D, a scalar value as a multiplier applied to scalar multiplication (dD): a binary representation of d,
d = (d l−1 ,..., d 0 ),
However, d l−1 = 1, d l−2,..., D 0 = 1 or 0 .

スカラー倍算のアルゴリズムとして基本的なbinary法の演算アルゴリズムには、
binary(right−to−left)法
binary(left−to−right)法
がある。
The basic binary algorithm is a scalar multiplication algorithm.
binary (right-to-left) method There is a binary (left-to-right) method.

binary(right−to−left)法は、dを下位ビットから見ていき、d=1の場合に、[2]Dを加算することが特徴である。binary(right−to−left)法のアルゴリズム1(Algorithm1)を以下に示す。

Figure 2008020757
The binary (right-to-left) method is characterized in that d is viewed from the lower bits and [2 i ] D is added when d i = 1. Algorithm 1 (Algorithm1) of the binary (right-to-left) method is shown below.
Figure 2008020757

一方、binary(left−to−right)法は、dを上位ビットから見ていき、毎ビットDを2倍し、d=1の場合に、ベースポイントを加算することが特徴である。binary(left−to−right)法のアルゴリズム2(Algorithm2)を以下に示す。

Figure 2008020757
On the other hand, the binary (left-to-right) method is characterized in that d is viewed from the upper bits, each bit D is doubled, and base points are added when d i = 1. Algorithm 2 (Algorithm 2) of the binary (left-to-right) method is shown below.
Figure 2008020757

(b)超楕円加算と超楕円1/2倍算の組み合わせに基づく因子のスカラー倍算
次に、超楕円加算と超楕円1/2倍算の組み合わせに基づく因子のスカラー倍算について説明する。
(B) Scalar multiplication of factors based on a combination of super-elliptical addition and super-elliptical ½ multiplication Next, scalar multiplication of factors based on a combination of super-elliptical addition and super-elliptical ½ multiplication will be described.

(b1)種数2,標数2の1/2倍算
まず、種数2,標数2の1/2倍算について説明する。1/2倍算は、前述の2倍算の逆演算である。1/2倍算においては、因子のweightの場合分けを行い、それぞれの場合毎に対応した2倍算の逆演算を計算する。この1/2倍算は、曲線パラメータや使用する有限体によっては、2倍算よりも高速に処理できることが知られている。これらについては非特許文献15、非特許文献16に記載されている。
(B1) 1/2 multiplication of genus 2 and characteristic 2 First, 1/2 multiplication of genus 2 and characteristic 2 will be described. 1/2 multiplication is an inverse operation of the above-mentioned doubling. In the ½ multiplication, the factor weight is divided and the inverse operation of doubling corresponding to each case is calculated. It is known that the 1/2 multiplication can be processed faster than the doubling depending on the curve parameter and the finite field to be used. These are described in Non-Patent Document 15 and Non-Patent Document 16.

1/2倍算の流れを図2を参照して説明する。入力をD=(U,V)とし、出力をD=[1/2]Dとする。なお、因子は位数がrのものとする。つまり、扱う因子は分岐点を持たない。入力因子D=(U,V)は以下のように示すことができる。
=(U,V)、
=u22+u21x+u20
=v21x+v20
22=0or1
とする。分岐点を持たないため、1/2倍算として、
ExHarDBL1+1→2、ExHarDBL2+2→1、ExHarDBL2+2→2、および、HarleyDBLの4つの逆演算を考えればよい。HarleyDBL以外は例外ケースである。
The flow of 1/2 multiplication will be described with reference to FIG. The input is D 2 = (U 2 , V 2 ), and the output is D 1 = [1/2] D 2 . It is assumed that the factor is of order r. In other words, the factor handled does not have a branch point. The input factor D 2 = (U 2 , V 2 ) can be expressed as follows:
D 2 = (U 2 , V 2 ),
U 2 = u 22 x 2 + u 21 x + u 20 ,
V 2 = v 21 x + v 20 ,
u 22 = 0 or 1
And Since it does not have a branch point,
Four inverse operations of ExHarDBL 1 + 1 → 2 , ExHarDBL 2 + 2 → 1 , ExHarDBL 2 + 2 → 2 , and HarleyDBL may be considered. Except for HarleyDBL, there are exception cases.

ここでExHarDBL2+2→1は入力因子のweightが2で、出力因子のweightが1の場合を計算する方法である。また、ExHarDBL2+2→2 は入力因子のweightが2で、かつUの1次の項の係数がu21=0を満たし、出力因子のweightが2の場合を計算する方法である。ただし、ExHarDBL2+2→2はHarleyDBLで計算できるが、これの逆演算である1/2倍算は、例外ケースとなるため、ここでは、ExHarDBL2+2→2を例外ケースとして扱う。 Here, ExHarDBL 2 + 2 → 1 is a method for calculating the case where the input factor weight is 2 and the output factor weight is 1. ExHarDBL 2 + 2 → 2 is a method for calculating the case where the weight of the input factor is 2, the coefficient of the first-order term of U 2 satisfies u 21 = 0, and the weight of the output factor is 2. However, although ExHarDBL 2 + 2 → 2 can be calculated by HarleyDBL, ½ multiplication that is the inverse operation of this is an exception case, so here, ExHarDBL 2 + 2 → 2 is treated as an exception case.

これら、ExHarDBL1+1→2、ExHarDBL2+2→1、ExHarDBL2+2→2、および、HarleyDBLに対応する1/2倍算をそれぞれ、ExHEC_HLV2→1+1、ExHEC_HLV1→2+2、ExHEC_HLV2→2+2、およびHEC_HLVとする。 ExHEC_HLV 2 → 1 + 1 , ExHEC_HLV 1 → 2 + 2 and ExHEC_HLV 2 → HLV 2 → 1 + 1 , ExHARDBL 1 + 1 → 2 , ExHarDBL 2 + 2 → 1 , ExHarDBL 2 + 2 → 2 , and 1/2 multiplication corresponding to HarleyDBL .

因子の1/2倍算を行なう場合、まず、入力因子により、図2に示す通りに場合分けを行なう。入力因子のweightが2で、かつUの1次の項の係数がu21≠0を満たす場合は、HEC_HLVで計算を行なう。HEC_HLVのアルゴリズムについては、非特許文献15(Algorithm3)に記載されている。HEC_HLVはHarleyDBLの逆演算であるため、1/2倍算の中でHEC_HLVの処理が非常に高い確率でおこる。その他の例外処理の起こる確率は非常に低い。このHEC_HLV以外の場合は例外処理を行う。 When the factor is multiplied by 1/2, first, the case is divided according to the input factor as shown in FIG. When the weight of the input factor is 2 and the coefficient of the first-order term of U 2 satisfies u 21 ≠ 0, the calculation is performed using HEC_HLV. The HEC_HLV algorithm is described in Non-Patent Document 15 (Algorithm 3). Since HEC_HLV is the inverse operation of HarleyDBL, the processing of HEC_HLV occurs with a very high probability in ½ multiplication. The probability of other exception handling occurring is very low. In cases other than HEC_HLV, exception processing is performed.

入力因子のweightが2で、かつUの項の係数がu21=0を満たす場合は、HarleyDBL2+2→2の逆演算であるExHEC_HLV2→2+2、もしくは、HarleyDBL1+1→2の逆演算であるExHEC_HLV2→1+1で計算を行なう。これらのアルゴリズムは非特許文献16(4.2,4.3)に示されている。 When the weight of the input factor is 2 and the coefficient of the term of U 2 satisfies u 21 = 0, ExHEC_HLV 2 → 2 + 2 that is the inverse operation of HarleyDBL 2 + 2 → 2 or the inverse operation of HarleyDBL 1 + 1 → 2 Calculation is performed using ExHEC_HLV 2 → 1 + 1 . These algorithms are shown in Non-Patent Document 16 (4.2, 4.3).

また、入力因子のweightが1の場合は、HarleyDBL2+2→1の逆演算であるExHEC_HLV1→2+2で計算を行う。このアルゴリズムは非特許文献16(4.1)に記載されている。 When the weight of the input factor is 1, the calculation is performed by ExHEC_HLV 1 → 2 + 2 which is an inverse operation of HarleyDBL 2 + 2 → 1 . This algorithm is described in Non-Patent Document 16 (4.1).

1/2倍算では,有限体の平方根計算と、有限体上での2次方程式を解くための計算が必要となる。このため、2倍算になかった平方根演算と、2次方程式を解くためのハーフトレース演算と、トレース演算が必要となる。トレース演算の計算量は無視できる程度であるが、平方根演算とハーフトレース演算の計算量は有限体によって異なり、無視できる場合もあるが、無視できない場合もある。   The 1/2 multiplication requires a square root calculation of a finite field and a calculation for solving a quadratic equation on the finite field. For this reason, a square root operation that was not included in the doubling operation, a half trace operation for solving the quadratic equation, and a trace operation are required. Although the calculation amount of the trace operation is negligible, the calculation amount of the square root operation and the half-trace operation differs depending on the finite field and may be ignored, but may not be ignored.

(b2)超楕円曲線暗号における加算と1/2倍算の組み合わせに基づく因子のスカラー倍算
次に、上述の1/2倍算を適用して実現される超楕円曲線暗号における加算と1/2倍算の組み合わせに基づく因子のスカラー倍算について説明する。超楕円曲線暗号における因子のスカラー倍算は、前述の
(a)加算と2倍算の組み合わせ、
において実現できるととともに、加算と1/2倍算の組み合わせでも実現できる。この処理については、非特許文献16(Algorithm6)において示されている。以下、超楕円曲線暗号における加算と1/2倍算の組み合わせによるスカラー倍算の処理の概要について説明する。
(B2) Scalar multiplication of factors based on the combination of addition and ½ multiplication in hyperelliptic curve cryptography Next, addition in superelliptic curve cryptography realized by applying the above ½ multiplication and 1 / The scalar multiplication of factors based on the combination of doubling will be described. The scalar multiplication of factors in hyperelliptic curve cryptography is the combination of (a) addition and doubling described above,
Can be realized by a combination of addition and 1/2 multiplication. This process is described in Non-Patent Document 16 (Algorithm 6). Hereinafter, an outline of scalar multiplication processing by a combination of addition and ½ multiplication in hyperelliptic curve cryptography will be described.

超楕円曲線暗号における因子のスカラー倍算は超楕円加算と超楕円1/2倍算で計算する手順について説明する。
まずスカラー値dを因子のオーダーrを法として1/2進数展開し、それをd'とする。具体的には、d'を以下のように表現する。

Figure 2008020757
A procedure for calculating the scalar multiplication of factors in the hyperelliptic curve cryptography by superelliptic addition and superelliptical ½ multiplication will be described.
First, the scalar value d is expanded by a half number using the factor order r as the modulus, and it is defined as d ′. Specifically, d ′ is expressed as follows.
Figure 2008020757

上記式において、mはオーダーrのビット長とする。この処理の詳細アルゴリズムを以下に、アルゴリズム3(Algorithm3:Scalar value conversion)として示す。

Figure 2008020757
In the above formula, m is a bit length of order r. The detailed algorithm of this process is shown below as Algorithm 3 (Algorithm 3: Scalar value conversion).
Figure 2008020757

加算と1/2倍算の組み合わせによるスカラー倍算のアルゴリズムとして基本的なHalve−and−add binary法の中で、
(ア)right−to−left法と、
(イ)left−to−right法、
これらの2種類の手法について説明する。なお、ここで、
d'の2進数表現を(d'l−1,...,d'),
ただし、
d'l−1=1,
d'l−2,...,d'=1or0
とする。
In the basic Halve-and-add binary method as a scalar multiplication algorithm by a combination of addition and 1/2 multiplication,
(A) the right-to-left method;
(A) Left-to-right method,
These two types of methods will be described. Where
The binary representation of d ′ is (d ′ l−1 ,..., d ′ 0 ),
However,
d ′ l−1 = 1
d ′ l−2 ,..., d ′ 0 = 1 or 0
And

(ア)Halve−and−add binary(right−to−left)法
right−to−left法は、2進数表現されたスカラー値d'を下位ビットから見ていき、
d'=1
の場合に、
[1/2]D
を加算することが特徴である。
このright−to−left法のアルゴリズムを以下に、アルゴリズム4(Algorithm4:Halve−and−add binary (right−to−left)法)として示す。

Figure 2008020757
(A) Halve-and-add binary (right-to-left) method In the right-to-left method, the scalar value d ′ expressed in binary is viewed from the lower bits,
d ′ i = 1
In the case of
[1/2 i ] D 0
It is the feature to add.
The algorithm of this right-to-left method is shown below as Algorithm 4 (Algorithm 4: Halve-and-add binary (right-to-left) method).
Figure 2008020757

上記のアルゴリズム4(Algorithm4)では,スカラー倍dDを計算するために、前述のアルゴリズム3(Algorithm3)を用いて、スカラー値dを1/2進数展開したd'を入力として与えている。 In the algorithm 4 (Algorithm 4), in order to calculate the scalar multiplication dD 0 , the algorithm value 3 (Algorithm 3) described above is used to input d ′ obtained by expanding the scalar value d into a half number.

(イ)Halve−and−add binary(left−to−right)法
left−to−right法は、2進数表現されたスカラー値d'を上位ビットから見ていき、毎ビットDを1/2倍して、
d'=1
の場合に、ベースポイントを加算することが特徴である。
(A) Halve-and-add binary (left-to-right) method The left-to-right method looks at the scalar value d 'expressed in binary from the upper bit, and doubles each bit D by 1/2. do it,
d ′ i = 1
In this case, the base point is added.

このleft−to−right法のアルゴリズムの詳細を以下に、アルゴリズム5(Algorithm5:Halve−and−add binary (left−to−right)法)として示す。

Figure 2008020757
Details of the algorithm of the left-to-right method are shown below as Algorithm 5 (Algorithm 5: Halve-and-add binary (left-to-right) method).
Figure 2008020757

上記アルゴリズム5(Algorithm5)では、スカラー倍dDを計算するために、前述のアルゴリズム3(Algorithm3)を用いて、スカラー値dを1/2進数展開したd'を入力として与えている。 In the algorithm 5 (Algorithm 5), in order to calculate the scalar multiple dD 0 , the algorithm value 3 (Algorithm 3) described above is used as an input and d ′ obtained by expanding the scalar value d into a half number.

上述したように、超楕円曲線暗号では、因子のスカラー倍算を計算する方法として、
(a)加算と2倍算を用いる方法、
(b)加算と1/2倍算を用いる方法、
これらの2種類の手法が知られている。
上記の2つの手法について記載した従来技術として、非特許文献15、非特許文献16がある。これらの文献には、1/2倍算の適用により、高速演算を実現する構成が記載されている。
N.Koblitz. Hyperelliptic curve cryptosystems. J.Cryptology, vol.1,No.3, pp.139-150, 1989. D.G.Cantor. Computing in the Jacobian of hyperelliptic curve. Math. Comp., Vol.48, No. 177, pp.95-101, 1987 「D. Mumford, Tata lectures on theta II, Progress in Mathematics, no. 43, Birkhauser, 1984.」 K.Matsuo, J.Chao, and S.Tsujii. Fast Genus two hyperelliptic curve cryptosystems. Technical Report ISEC2001-31, IEICE Japan, 2001. M.Takahashi. Improving Harley algorithms for Jacobians of genus 2 hyperelliptic curves. SCIS2002. (Japanese). T.Lange. Inversion-free arithmetic on genus 2 hyperelliptic curves. Cryptology ePrint Archive, 2002/147, IACR, 2002. T.Sugizaki, K.Matsuo, J.Chao, and S.Tsujii. An extension of Harley addition algtorithm for hyperelliptic curves over finite fields of characteristic two. ISEC2002-9, IEICE, 2001 T.Lange, Efficient arithmetic on genus 2 hyperelliptic curves over finite fields via explicit formulae. Cryptology ePrint Archive, 2002/121, IACR, 2002. J.Kuroki, M.Gonda, K.Masuo, J.Chao and S.Tsujii. Fast genus three hyperellipitc curve cryptosystems. SCIS2002 J.Pelzl, T.Wollinger, J. Guajardo, and C. Paar. Hyperelliptic curve Cryptosystems: Closing the Performance Gap to Elliptic Curves. Cryptology ePrint Archive, 2003/026, IACR, 2003. Y.Miyamoto, H.Doi, K.Matsuo, J.Chao and S.Tsujii. A fast addition algorithm of genus two hyperelliptic curves. SCIS2002. (Japanese). N.Takahashi, H.Morimoto and A.Miyaji. Efficient exponentiation on genus two hyperelliptic curves (II). ISEC2002-145, IEICE, 2003. (Japanese) T.Lange. Weighed coordinate on genus 2 hyperellipitc curve. Cryptology ePrint Archive, 2002/153, IACR, 2002. N. Nagao. Improving group law algorithms for Jacobians of hyperelliptic curves. ANTS-IV, LNCS 1838, pp.439-448, Springer-Verlag, 2000. I. Kitamura, M. Katagi, and T. Takagi, A Complete Divisor Class Halving Algorithm for Hyperelliptic Curve Cryptosystems of Genus Two. ACISP 2005, LNCS 3574, pp.146-157, 2005. Kitamura, M. Katagi, and T. Takagi, A Complete Divisor Class Halving Algorithm for Hyperelliptic Curve Cryptosystems of Genus Two. Cryptology ePrint Archive, 2004/255, IACR, 2004
As described above, in the hyperelliptic curve cryptosystem, as a method of calculating the scalar multiplication of factors,
(A) a method using addition and doubling,
(B) a method using addition and 1/2 multiplication,
These two types of methods are known.
Non-patent literature 15 and non-patent literature 16 exist as conventional techniques describing the above two methods. These documents describe a configuration that realizes high-speed computation by applying 1/2 multiplication.
N.Koblitz.Hyperelliptic curve cryptosystems.J.Cryptology, vol.1, No.3, pp.139-150, 1989. DGCantor. Computing in the Jacobian of hyperelliptic curve. Math. Comp., Vol. 48, No. 177, pp. 95-101, 1987 "D. Mumford, Tata lectures on theta II, Progress in Mathematics, no. 43, Birkhauser, 1984." K. Matsuo, J. Chao, and S. Tsujii.Fast Genus two hyperelliptic curve cryptosystems.Technical Report ISEC2001-31, IEICE Japan, 2001. M. Takahashi. Improving Harley algorithms for Jacobians of genus 2 hyperelliptic curves. SCIS2002. (Japanese). T. Lange. Inversion-free arithmetic on genus 2 hyperelliptic curves.Cryptology ePrint Archive, 2002/147, IACR, 2002. T. Sugizaki, K. Matsuo, J. Chao, and S. Tsujii.An extension of Harley addition algtorithm for hyperelliptic curves over finite fields of characteristic two.ISEC2002-9, IEICE, 2001 T. Lange, Efficient arithmetic on genus 2 hyperelliptic curves over finite fields via explicit formulae.Cryptology ePrint Archive, 2002/121, IACR, 2002. J. Kuroki, M. Gonda, K. Masuo, J. Chao and S. Tsujii. Fast genus three hyperellipitc curve cryptosystems. SCIS2002 J. Pelzl, T. Wollinger, J. Guajardo, and C. Paar. Hyperelliptic curve Cryptosystems: Closing the Performance Gap to Elliptic Curves. Cryptology ePrint Archive, 2003/026, IACR, 2003. Y. Miyamoto, H. Doi, K. Matsuo, J. Chao and S. Tsujii. A fast addition algorithm of genus two hyperelliptic curves. SCIS2002. (Japanese). N. Takahashi, H. Morimoto and A. Miyaji. Efficient exponentiation on genus two hyperelliptic curves (II). ISEC2002-145, IEICE, 2003. (Japanese) T. Lange. Weighed coordinate on genus 2 hyperellipitc curve.Cryptology ePrint Archive, 2002/153, IACR, 2002. N. Nagao.Improving group law algorithms for Jacobians of hyperelliptic curves.ANTS-IV, LNCS 1838, pp.439-448, Springer-Verlag, 2000. I. Kitamura, M. Katagi, and T. Takagi, A Complete Divisor Class Halving Algorithm for Hyperelliptic Curve Cryptosystems of Genus Two. ACISP 2005, LNCS 3574, pp.146-157, 2005. Kitamura, M. Katagi, and T. Takagi, A Complete Divisor Class Halving Algorithm for Hyperelliptic Curve Cryptosystems of Genus Two.Cryptology ePrint Archive, 2004/255, IACR, 2004

現在、実用フェーズに入りつつある楕円曲線暗号(ECC)アルゴリズムに対して、その拡張概念である超楕円曲線暗号(HECC)アルゴリズムは、現在、学会レベルで高速アルゴリズムや、その実装方法についての研究が進められている。超楕円曲線暗号(HECC)のスカラー倍算の演算時間は、楕円曲線暗号(ECC)に近づきつつある程度に過ぎず、さらなる高速化が望まれている。   In contrast to the elliptic curve cryptography (ECC) algorithm that is currently entering the practical phase, the hyperelliptic curve cryptography (HECC) algorithm, which is an extension concept, is currently researching high-speed algorithms and implementation methods at the academic society level. It is being advanced. The calculation time of scalar multiplication of the hyperelliptic curve cryptography (HECC) is only a certain level while approaching the elliptic curve cryptography (ECC), and further speedup is desired.

本発明は、このような現状に鑑みてなされたものであり、超楕円曲線暗号(HECC)のスカラー倍算の演算時間を短縮し、高速処理可能な超楕円曲線暗号(HECC)演算処理を実現する暗号処理装置、および暗号処理演算方法、並びにコンピュータ・プログラムを提供することを目的とする。   The present invention has been made in view of such a current situation, and shortens the time required for scalar multiplication of the super elliptic curve cryptography (HECC) and realizes a super elliptic curve cryptography (HECC) computation process capable of high-speed processing. An object of the present invention is to provide a cryptographic processing apparatus, a cryptographic processing calculation method, and a computer program.

上述したように、超楕円曲線暗号では、因子のスカラー倍算を計算する方法として、
(a)加算と2倍算を用いる方法、
(b)加算と1/2倍算を用いる方法、
これらの2種類の手法が知られており、1/2倍算の適用により高速演算が実現されることがあることが知られている。しかし、2倍算を適用した場合より、1/2倍算を適用した場合に演算が高速化されるのは、超楕円曲線暗号において適用する曲線パラメータや有限体が特定の条件を満たす場合であり、全ての条件で、1/2倍算の適用が2倍算の適用より高速になるものではない。条件によっては、1/2倍算より2倍算を適用した方が高速演算が可能となるケースがある。
As described above, in the hyperelliptic curve cryptosystem, as a method of calculating the scalar multiplication of factors,
(A) a method using addition and doubling,
(B) a method using addition and 1/2 multiplication,
These two types of methods are known, and it is known that high-speed computation may be realized by applying ½ multiplication. However, the calculation speed is faster when ½ multiplication is applied than when doubling is applied when the curve parameter or finite field applied in the hyperelliptic curve cryptography satisfies a specific condition. Yes, under all conditions, the application of 1/2 doubling is not faster than the application of doubling. Depending on the conditions, there are cases where high speed computation is possible by applying doubling rather than ½.

本発明は、超楕円曲線暗号における因子のスカラー倍算処理において、与えられた条件、例えば超楕円暗号曲線の設定条件に基づいて、
(a)加算と2倍算を用いる方法、
(b)加算と1/2倍算を用いる方法、
これら(a),(b)のいずれのアルゴリズムが高速演算可能かを判断して、高速なアルゴリズムを、適宜選択して実行することで、高速な暗号処理演算を実行することを可能とした暗号処理装置、および暗号処理演算方法、並びにコンピュータ・プログラムを提供することを目的とする。
The present invention is based on a given condition, for example, a setting condition of a hyperelliptic cryptocurve, in the scalar multiplication of factors in the hyperelliptic curve cryptography.
(A) a method using addition and doubling,
(B) a method using addition and 1/2 multiplication,
It is possible to determine which algorithm (a) or (b) is capable of high-speed computation, and to select and execute a high-speed algorithm as appropriate so that a high-speed cryptographic processing operation can be executed. It is an object of the present invention to provide a processing device, a cryptographic processing operation method, and a computer program.

本発明の第1の側面は、
超楕円曲線暗号に基づく暗号処理演算を実行する暗号処理装置であり、
暗号処理演算に適用する超楕円曲線の曲線パラメータに基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する制御部と、
高速演算可能と判定されたアルゴリズムを選択適用して、超楕円曲線暗号におけるスカラー倍算処理を実行する演算処理部と、
を有することを特徴とする暗号処理装置にある。
The first aspect of the present invention is:
A cryptographic processing device that performs cryptographic processing operations based on hyperelliptic curve cryptography,
Based on the curve parameters of the hyperelliptic curve applied to the cryptographic processing operation, as a scalar multiplication algorithm, it is determined whether the calculation algorithm of the doubling application algorithm or the 1/2 multiplication application algorithm can be operated at high speed. A control unit,
An arithmetic processing unit that executes a scalar multiplication process in the hyperelliptic curve cryptography by selectively applying an algorithm determined to be capable of high-speed computation;
The cryptographic processing apparatus is characterized by comprising:

さらに、本発明の暗号処理装置の一実施態様において、前記制御部は、超楕円曲線の曲線パラメータと、高速演算の実行可能なアルゴリズム情報とを対応付けたテーブルを記憶部から取得し、暗号処理演算に適用する超楕円曲線の曲線パラメータと前記テーブルに記録された曲線パラメータ情報とを比較照合し、一致または類似するテーブル記録データに対応して設定されたアルゴリズム情報を高速演算可能なアルゴリズムと判定する処理を実行する構成であることを特徴とする。   Furthermore, in one embodiment of the cryptographic processing apparatus of the present invention, the control unit acquires a table in which a curve parameter of the hyperelliptic curve is associated with algorithm information capable of performing high-speed computation from the storage unit, and performs cryptographic processing. Compare and match the curve parameters of the hyperelliptic curve to be applied to the calculation with the curve parameter information recorded in the table, and determine that the algorithm information set corresponding to the matching or similar table recording data is an algorithm capable of high-speed calculation It is the structure which performs the process to perform.

さらに、本発明の暗号処理装置の一実施態様において、前記演算処理部は、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムの両アルゴリズムを実行可能な構成を有し、2倍算および1/2倍算において共通に利用する演算実行ハードウェアまたはプログラムを利用した演算処理を実行する構成であることを特徴とする。   Furthermore, in an embodiment of the cryptographic processing apparatus of the present invention, the arithmetic processing unit has a configuration capable of executing both a doubling-applying operation algorithm and a ½-doubling applying operation algorithm. It is the structure which performs the arithmetic processing using the arithmetic execution hardware or program utilized in common in a calculation and 1/2 multiplication.

さらに、本発明の暗号処理装置の一実施態様において、前記制御部は、暗号処理演算に適用する超楕円曲線の曲線パラメータ、および暗号処理演算に適用する有限体のタイプに基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する処理を実行する構成であることを特徴とする。   Furthermore, in one embodiment of the cryptographic processing apparatus of the present invention, the control unit performs scalar multiplication based on a curve parameter of a hyperelliptic curve applied to the cryptographic processing operation and a finite field type applied to the cryptographic processing operation. The algorithm is characterized in that it performs a process of determining which one of a calculation algorithm applicable to a doubling operation and an operation algorithm applying a doubling operation can be performed at high speed.

さらに、本発明の暗号処理装置の一実施態様において、前記制御部は、暗号処理演算に適用する超楕円曲線の曲線パラメータに基づいて、スカラー倍算における1/2倍算適用演算アルゴリズムの高速実行可能性の有無を判定し、1/2倍算適用演算アルゴリズムの高速実行可能性有りと判定した場合に、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する処理を実行する構成であることを特徴とする。   Furthermore, in one embodiment of the cryptographic processing apparatus of the present invention, the control unit performs a high-speed execution of an arithmetic algorithm that applies 1/2 multiplication in scalar multiplication based on a curve parameter of a hyperelliptic curve that is applied to cryptographic processing. When it is determined whether or not there is a possibility, and it is determined that there is a possibility of high-speed execution of the 1 / 2-folding application algorithm, either the doubling-application algorithm or the 1 / 2-folding application algorithm It is the structure which performs the process which determines whether high-speed calculation is possible.

さらに、本発明の暗号処理装置の一実施態様において、前記制御部は、暗号処理演算に適用する種数2、標数2の有限体上定義された超楕円曲線:y+h(x)y=f(x)の曲線パラメータに含まれるコファクター[c]が2で、h(x)が既約多項式の場合に、1/2倍算適用演算アルゴリズムの高速実行可能性高速に計算が可能であると判定する構成であることを特徴とする。 Furthermore, in one embodiment of the cryptographic processing apparatus of the present invention, the control unit is a super elliptic curve defined on a finite field of genus 2 and characteristic 2 applied to cryptographic processing calculation: y 2 + h (x) y. = When the cofactor [c] included in the curve parameter of f (x) is 2 and h (x) is an irreducible polynomial, the calculation algorithm can be executed at high speed. It is the structure determined to be.

さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理装置は、暗号処理演算に適用する超楕円曲線の曲線パラメータを適用した2倍算適用演算と、1/2倍算適用演算を実行して処理時間を計測する演算速度算出手段を有し、前記制御部は、前記演算速度算出手段の算出結果に基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かの判定処理を実行する構成であることを特徴とする。   Furthermore, in one embodiment of the cryptographic processing apparatus of the present invention, the cryptographic processing apparatus performs a doubling application operation applying a curve parameter of a hyperelliptic curve applied to a cryptographic processing operation, and a ½ multiplication application operation. A calculation speed calculating unit that executes and measures a processing time, and the control unit, based on a calculation result of the calculation speed calculation unit, uses a doubling calculation calculation algorithm as a scalar multiplication algorithm; The present invention is characterized in that it is configured to perform a determination process as to which of the calculation algorithms of the multiplication application algorithm is capable of high-speed calculation.

さらに、本発明の第2の側面は、
暗号処理装置において、超楕円曲線暗号に基づく暗号処理演算を実行する暗号処理演算方法であり、
制御部において、超楕円曲線の曲線パラメータに基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する演算時間検証ステップと、
演算処理部において、前記演算時間検証ステップにおいて高速演算可能と判定されたアルゴリズムを選択適用して、超楕円曲線暗号におけるスカラー倍算処理を実行する演算実行ステップと、
を有することを特徴とする暗号処理演算方法にある。
Furthermore, the second aspect of the present invention provides
In the cryptographic processing apparatus, a cryptographic processing calculation method for performing cryptographic processing calculation based on hyperelliptic curve cryptography,
In the control unit, based on the curve parameter of the hyperelliptic curve, an arithmetic operation is performed to determine which one of the algorithm for doubling and the algorithm for applying the doubling can be performed at high speed as a scalar multiplication algorithm. A time verification step;
In the arithmetic processing unit, by selectively applying the algorithm determined to be capable of high-speed arithmetic in the arithmetic time verification step, an arithmetic execution step for executing scalar multiplication processing in the hyperelliptic curve cryptography,
The cryptographic processing operation method is characterized by comprising:

さらに、本発明の暗号処理演算方法の一実施態様において、前記演算時間検証ステップは、超楕円曲線の曲線パラメータと、高速演算の実行可能なアルゴリズム情報とを対応付けたテーブルを参照して、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する処理を実行するステップであることを特徴とする。   Furthermore, in one embodiment of the cryptographic processing calculation method of the present invention, the calculation time verification step refers to a table that associates curve parameters of a hyperelliptic curve with algorithm information capable of executing high-speed calculation. It is a step of executing a process of determining which one of the calculation algorithm of multiplication application algorithm and the calculation algorithm of 1/2 multiplication application is capable of high-speed calculation.

さらに、本発明の暗号処理演算方法の一実施態様において、前記演算時間検証ステップは、暗号処理演算に適用する超楕円曲線の曲線パラメータ、および暗号処理演算に適用する有限体のタイプに基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する処理を実行するステップであることを特徴とする。   Furthermore, in one embodiment of the cryptographic processing calculation method of the present invention, the calculation time verification step is based on a curve parameter of a super elliptic curve applied to the cryptographic processing calculation and a finite field type applied to the cryptographic processing calculation. The scalar multiplication algorithm is a step of executing a process of determining which one of a computation algorithm of a doubling application algorithm and a computation algorithm of a ½ multiplication application can be performed at high speed.

さらに、本発明の暗号処理演算方法の一実施態様において、前記演算時間検証ステップは、暗号処理演算に適用する超楕円曲線の曲線パラメータに基づいて、スカラー倍算における1/2倍算適用演算アルゴリズムの高速実行可能性の有無を判定し、1/2倍算適用演算アルゴリズムの高速実行可能性有りと判定した場合に、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する処理を実行するステップであることを特徴とする。   Furthermore, in one embodiment of the cryptographic processing calculation method of the present invention, the calculation time verification step includes a calculation algorithm for 1/2 multiplication applied in scalar multiplication based on a curve parameter of a hyperelliptic curve applied to the cryptographic processing calculation. In the case where it is determined whether there is high-speed feasibility of the ½ multiplication application algorithm, it is determined whether there is any of the doubling application algorithm or the ½ multiplication application algorithm. It is a step for executing a process for determining whether or not the calculation algorithm is capable of high-speed calculation.

さらに、本発明の暗号処理演算方法の一実施態様において、1/2倍算適用演算アルゴリズムの高速実行可能性の有無を判定する処理は、暗号処理演算に適用する種数2、標数2の有限体上定義された超楕円曲線:y+h(x)y=f(x)の曲線パラメータに含まれるコファクター[c]が2で、h(x)が既約多項式の場合に、1/2倍算適用演算アルゴリズムの高速実行可能性高速に計算が可能であると判定する処理であることを特徴とする。 Furthermore, in one embodiment of the cryptographic processing calculation method of the present invention, the processing for determining the presence or absence of high-speed feasibility of the ½ multiplication application calculation algorithm is a genus 2 or characteristic 2 applied to the cryptographic processing calculation. Hyperelliptic curve defined on a finite field: when the cofactor [c] included in the curve parameter of y 2 + h (x) y = f (x) is 2 and h (x) is an irreducible polynomial, 1 / High-speed feasibility of doubling calculation application algorithm It is a process for determining that calculation is possible at high speed.

さらに、本発明の暗号処理演算方法の一実施態様において、前記暗号処理演算方法は、さらに、演算速度算出手段において、暗号処理演算に適用する超楕円曲線の曲線パラメータを適用した2倍算適用演算と、1/2倍算適用演算を実行して処理時間を計測する演算速度算出ステップを有し、前記演算時間検証ステップは、前記演算速度算出ステップにおける算出結果に基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かの判定処理を実行するステップであることを特徴とする。   Furthermore, in an embodiment of the cryptographic processing calculation method of the present invention, the cryptographic processing calculation method further includes a doubling calculation calculation using a curve parameter of a hyperelliptic curve applied to the cryptographic processing calculation in the calculation speed calculation means. And a calculation speed calculation step of measuring a processing time by executing a 1/2 multiplication application calculation, wherein the calculation time verification step is performed as a scalar multiplication algorithm based on a calculation result in the calculation speed calculation step. It is a step of executing a determination process as to which of the doubling calculation algorithm and the ½ multiplication algorithm can be performed at high speed.

さらに、本発明の第3の側面は、
暗号処理装置において、超楕円曲線暗号に基づく暗号処理演算を実行させるコンピュータ・プログラムであり、
制御部において、超楕円曲線の曲線パラメータに基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定させる演算時間検証ステップと、
演算処理部において、前記演算時間検証ステップにおいて高速演算可能と判定されたアルゴリズムを選択適用して、超楕円曲線暗号におけるスカラー倍算処理を実行させる演算実行ステップと、
を実行させることを特徴とするコンピュータ・プログラムにある。
Furthermore, the third aspect of the present invention provides
In the cryptographic processing device, a computer program that executes cryptographic processing calculation based on hyperelliptic curve cryptography,
In the control unit, based on the curve parameter of the hyperelliptic curve, an operation for determining which one of the algorithm for doubling and the algorithm for applying the doubling can be performed as a scalar multiplication algorithm. A time verification step;
In the arithmetic processing unit, by selectively applying the algorithm determined to be capable of high-speed arithmetic in the arithmetic time verification step, an arithmetic execution step for executing a scalar multiplication process in the hyperelliptic curve cryptography,
In a computer program characterized by causing

なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。   The computer program of the present invention is, for example, a storage medium or communication medium provided in a computer-readable format to a computer system capable of executing various program codes, such as a CD, FD, or MO. It is a computer program that can be provided by a recording medium or a communication medium such as a network. By providing such a program in a computer-readable format, processing corresponding to the program is realized on the computer system.

本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。   Other objects, features, and advantages of the present invention will become apparent from a more detailed description based on embodiments of the present invention described later and the accompanying drawings. In this specification, the system is a logical set configuration of a plurality of devices, and is not limited to one in which the devices of each configuration are in the same casing.

本発明の一実施例構成によれば、超楕円曲線暗号の因子Dに対するスカラー倍算を実行する構成において、暗号処理演算に適用する超楕円曲線の曲線パラメータに基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かの判定を行ない、高速演算可能と判定されたアルゴリズムを選択適用してスカラー倍算処理を実行する構成としたので、様々な曲線に対応する暗号処理に伴うスカラー倍算を、確実に高速な処理で行なうことが可能となる。すなわち、曲線パラメータに応じたアルゴリズム選択により、スカラー倍算における計算量を削減した高速演算が実現される。   According to the configuration of one embodiment of the present invention, in the configuration for executing the scalar multiplication on the factor D of the hyperelliptic curve cryptography, as the scalar multiplication algorithm based on the curve parameter of the superelliptic curve applied to the cryptographic processing operation, Determines which of the doubling calculation algorithm and ½ doubling calculation algorithm can be performed at high speed, and selectively applies the algorithm determined to be capable of high speed calculation to execute scalar multiplication processing. With this configuration, scalar multiplication associated with encryption processing corresponding to various curves can be reliably performed at high speed. That is, by selecting an algorithm according to the curve parameter, high-speed calculation with a reduced amount of calculation in scalar multiplication is realized.

以下、本発明の暗号処理装置および暗号処理演算方法、並びにコンピュータ・プログラムの詳細について説明する。   Details of the cryptographic processing apparatus, cryptographic processing calculation method, and computer program of the present invention will be described below.

本発明は、楕円曲線暗号を一般化した超楕円曲線暗号(HECC:Hyper Elliptic Curve Cryptography)についての高速化演算手法である。前述したように、超楕円曲線では曲線を特徴づける値は種数(genus)gである。pを素数、nを正の整数、q=pとする。このとき有限体Fq上で定義される種数gの超楕円曲線Cは以下の方程式、
+h(x)y=f(x)
で定義される。ここで、h(x),f(x)∈Fq[x],f(x)は、次数2g+1のmonic多項式である。
The present invention is a high-speed calculation method for hyper elliptic curve cryptography (HECC), which is a generalization of elliptic curve cryptography. As described above, in the super elliptic curve, the value characterizing the curve is the genus g. prime p, n a positive integer, and q = p n. At this time, the hyperelliptic curve C of the genus g defined on the finite field Fq is expressed by the following equation:
y 2 + h (x) y = f (x)
Defined by Here, h (x), f (x) εFq [x], f (x) is a monic polynomial of degree 2g + 1.

超楕円曲線C上の点P=(x、y)に対する共役点(opposite point)は、−P=(x、−y−h(x))として定義される。また、P=−Pである点を分岐点(ramification point)と呼ぶ。   The conjugate point for the point P = (x, y) on the hyperelliptic curve C is defined as -P = (x, -y-h (x)). A point where P = −P is referred to as a “ramification point”.

超楕円曲線暗号の定義体の演算サイズ(ビット長)は楕円曲線暗号と同等の安全性を仮定した場合、楕円曲線の定義体の演算サイズに比べて1/gに小さくなることが知られている。演算サイズが小さいことは実装上メリットがあり、超楕円曲線暗号の利点の一つして挙げられる。   It is known that the computation size (bit length) of the definition of the hyperelliptic curve cryptosystem is 1 / g smaller than the computation size of the elliptic curve definition, assuming the same security as the elliptic curve cryptography. Yes. The small calculation size is advantageous in terms of implementation, and is one of the advantages of hyperelliptic curve cryptography.

前述したように、超楕円曲線暗号では点の形式的和である因子(divisor)をDとし、スカラー倍算kDで定義される因子をDとすると、Dからkを求める問題は超楕円曲線におけるヤコビ多様体上の離散対数問題として公開鍵暗号として用いることができる。 As described above, in hyperelliptic curve cryptography, if a factor that is a formal sum of points is D 1 and a factor defined by scalar multiplication kD 1 is D 2 , the problem of obtaining k from D 2 is It can be used as a public key cryptosystem as a discrete logarithm problem on a Jacobian manifold in a hyperelliptic curve.

ここで、因子(divisor)は有理点の形式和であり、以下の形式で表現することができる。

Figure 2008020757
Here, the factor is a formal sum of rational points and can be expressed in the following form.
Figure 2008020757

また、半被約因子(semi reduced divisor)は、以下の形式で表現することができる。

Figure 2008020757
Also, the semi reduced factor can be expressed in the following format.
Figure 2008020757

ただし、P=(x、y)かつi≠jに対してP≠Pである。 However, a P iP j with respect to P i = (x i, y i) and i ≠ j.

また、ΣmをDのウェイト(weight)と呼ぶ。さらにウェイト(weight)が種数g以下である半被約因子を被約因子(reduced divisor)と呼ぶ。 Also, Σm i is referred to as a D weight. Furthermore, a semi-reduced factor having a weight of genus g or less is referred to as a reduced divisor.

超楕円曲線のヤコビ(Jacobi)多様体上の任意の半被約因子Dは下記の多項式U、V∈Fq[x]を用いてD=(U、V)として表現できる。これをマンホード(Mumford)表現と呼ぶ。

Figure 2008020757
An arbitrary semi-reducible factor D on a hyperelliptic Jacobi manifold can be expressed as D = (U, V) using the following polynomial U, VεFq [x]. This is called a “Mumford” expression.
Figure 2008020757

種数(genus)2の任意の被約因子Dはマンホード(Mumford)表現を用いると、有限体Fq上の元を係数に持つ2次以下の多項式の組、すなわち、
(U、V)=(x+ux+u、vx+v)、または、
(U、V)=(x+x、y
として表現することができる。
また、零元は、
(U,V)=(1,0)=O
として表現される。
An arbitrary irreducible factor D of genus 2 uses a Mumford expression, and is a set of second-order or lower-order polynomials having elements on a finite field Fq as coefficients, ie,
(U, V) = (x 2 + u 1 x + u 0 , v 1 x + v 0 ), or
(U, V) = (x + x 0 , y 0 )
Can be expressed as
The zero element is
(U, V) = (1, 0) = O
Is expressed as

上述したように、超楕円曲線暗号では、因子のスカラー倍算を計算する方法として、
(a)加算と2倍算を用いる方法、
(b)加算と1/2倍算を用いる方法、
これらの2種類の手法が知られている。本発明は、超楕円曲線暗号における因子のスカラー倍算処理において、与えられた条件、例えば超楕円暗号曲線において適用する曲線パラメータや有限体の様々な設定条件に基づいて、
(a)加算と2倍算を用いる方法、
(b)加算と1/2倍算を用いる方法、
これら(a),(b)のいずれのアルゴリズムが高速演算可能かを判断して、高速なアルゴリズムを、適宜選択して実行することで、高速な暗号処理演算を実行することを可能とするものである。以下、本発明の実施例について、以下に示す項目に従って、順次説明する。
As described above, in the hyperelliptic curve cryptosystem, as a method of calculating the scalar multiplication of factors,
(A) a method using addition and doubling,
(B) a method using addition and 1/2 multiplication,
These two types of methods are known. The present invention is based on given conditions, for example, curve parameters to be applied to a hyperelliptic cryptocurve and various setting conditions of a finite field in the scalar multiplication of factors in the hyperelliptic curve cryptography.
(A) a method using addition and doubling,
(B) a method using addition and 1/2 multiplication,
It is possible to execute a high-speed cryptographic processing operation by determining which algorithm (a) or (b) is capable of high-speed calculation and selecting and executing a high-speed algorithm as appropriate. It is. Hereinafter, embodiments of the present invention will be described in order according to the following items.

(1)種数2、標数2の有限体上定義された超楕円曲線の因子Dに対して、2倍算もしくは1/2倍算を計算する方法。
(2)種数2、標数2の有限体上定義された超楕円曲線の因子Dに対するスカラー倍算の演算処理において、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
これらの各演算アルゴリズムを用いて、因子のスカラー倍算を計算する方法。
(3)種数2、標数2の有限体上定義された超楕円曲線の因子Dに対するスカラー倍算の演算処理において、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
これらのどちらの処理が高速かを判断する方法。
(4)種数2、標数2の有限体上定義された超楕円曲線の因子Dに対するスカラー倍算の演算処理において、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
から高速演算可能なアルゴリズムを選択して因子のスカラー倍算を実行する構成。
(1) A method of calculating doubling or ½ doubling for a factor D of a super elliptic curve defined on a finite field of genus 2 and characteristic 2.
(2) In the arithmetic operation of scalar multiplication for the factor D of the hyperelliptic curve defined on the finite field of genus 2 and characteristic 2,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
A method to calculate scalar multiplication of factors using each of these algorithms.
(3) In the arithmetic operation of scalar multiplication for the factor D of the hyperelliptic curve defined on the finite field of genus 2 and characteristic 2,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
A method to determine which of these processes is faster.
(4) In the arithmetic operation of scalar multiplication for the factor D of the hyperelliptic curve defined on the finite field of genus 2 and characteristic 2,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
A configuration that performs scalar multiplication of factors by selecting an algorithm that can be operated at high speed from.

以下、これらの各項目(1)〜(4)について順次、説明する。   Hereinafter, each of these items (1) to (4) will be described sequentially.

(1)種数2、標数2の有限体上定義された超楕円曲線の因子Dに対して、2倍算もしくは1/2倍算を計算する方法。
まず、種数2、標数2の有限体上定義された超楕円曲線の因子Dに対して、2倍算もしくは1/2倍算を計算する装置構成および方法について説明する。
(1) A method of calculating doubling or ½ doubling for a factor D of a super elliptic curve defined on a finite field of genus 2 and characteristic 2.
First, an apparatus configuration and method for calculating doubling or ½ doubling for a factor D of a hyperelliptic curve defined on a finite field of genus 2 and characteristic 2 will be described.

本発明は、標数2の有限体上定義された種数2の超楕円曲線に関するものであり、以下の説明では、曲線の種数を2、定義体の標数を2とする。   The present invention relates to a genus 2 hyperelliptic curve defined on a finite field of characteristic 2. In the following description, the genus of the curve is 2 and the characteristic of the definition field is 2.

種数2、標数2の有限体上定義された超楕円曲線の因子Dに対する2倍算処理は、先に図1(B)を参照して説明した処理によって実行される。2倍算は、因子Dについて、D+D=2Dを算出する処理である。入力をD=(U,V)とし、出力をD=[2]Dとする。
図1(B)を参照して説明したように、因子Dのweightが
weight2、
weight1、
weight0、
によってそれぞれ異なる処理を行う。
The doubling process for the factor D of the hyperelliptic curve defined on the finite field of genus 2 and characteristic 2 is executed by the process described above with reference to FIG. The doubling is a process of calculating D + D = 2D for the factor D. The input is D 1 = (U 1 , V 1 ) and the output is D 2 = [2] D 1 .
Figure 1 as described with reference to (B), weight factors D 1 is weight2,
weight1,
weight0,
Different processing is performed depending on each.

weight2の場合、因子が分岐点を含むかどうかをチェックし、含まなければ、図1(B)に示すように、(4a)HarleyDBLの処理を行う。因子が分岐点を含む場合は(4b)例外処理6を行う。gcd(h,U1)=1であれば、Dは分岐点を含まない。この場合、(4a)HarleyDBLの処理を行う。この処理が、Most Frequent Case、すなわち、非常に高い確率でおこる。その他の例外処理の起こる確率は非常に低い。Most Frequent Caseの条件を満たさない場合は例外処理6を行う。 In the case of weight2, whether or not the factor includes a branch point is checked. If not included, (4a) HarleyDBL processing is performed as shown in FIG. If the factor includes a branch point, (4b) exception processing 6 is performed. If gcd (h, U1) = 1, D 1 does not include a branch point. In this case, (4a) HarleyDBL processing is performed. This process occurs with Most Frequent Case, that is, with a very high probability. The probability of other exception handling occurring is very low. If the condition of Most Frequent Case is not satisfied, exception processing 6 is performed.

weight1の場合も同様にgcd(h,U1)=1かどうかをチェックし,(5a)の処理、ExHarDBL1+1→2もしくは、(5b)の処理である例外処理7を行う。 Similarly, in the case of weight1, it is checked whether gcd (h, U1) = 1, and the processing of (5a), ExHarDBL 1 + 1 → 2 or exception processing 7 which is processing of (5b) is performed.

HarleyDBLは、上述のようにMost Frequent Caseと呼ばれ、ランダムに因子を発生させて2倍算を行うと、非常に高い確率でHarleyDBLの処理になる。   As described above, HarleyDBL is called Most Frequent Case, and when a factor is randomly generated and doubling is performed, HarleyDBL is processed with a very high probability.

先に背景技術の欄で説明したように、このMost Frequent Caes以外の処理になる確率はO(1/q)である。ここでqは定義体の要素数であり、安全な暗号用途ではqgが160bit程度必要になる大きな数であるので現実的には2倍算の処理では、HarleyDBLしか発生しない状況とみなすことができる。 As described above in the Background Art section, the probability of processing other than this Most Frequent Caes is O (1 / q). Here, q is the number of elements of the definition body, and q g is a large number that is required to be about 160 bits for secure cryptographic use, so in reality, it can be regarded that only HarleyDBL occurs in the doubling process. it can.

HarleyDBLの演算処理アルゴリズムは公知のものであり、先に説明した非特許文献5(M.Takahashi. Improving Harley algorithms for Jacobians of genus 2 hyperelliptic curves. SCIS2002. (Japanese))に示されている。   The arithmetic processing algorithm of HarleyDBL is publicly known, and is described in Non-Patent Document 5 described above (M. Takahashi. Improving Harley algorithms for Jacobians of genus 2 hyperelliptic curves. SCIS2002. (Japanese)).

超楕円曲線の因子Dに対する2倍算処理(HarleyDBLの演算処理アルゴリズム)において必要となる有限体の演算は、加算、乗算、2乗算、逆元演算の4種類である。   There are four types of finite field operations required for the doubling processing (HarleyDBL arithmetic processing algorithm) for the factor D of the hyperelliptic curve: addition, multiplication, multiplication, and inverse operation.

また、種数2、標数2の有限体上定義された超楕円曲線の因子Dに対する1/2倍算処理は、先に図2を参照して説明した処理によって実行される。入力をD=(U,V)とし、出力をD=[1/2]Dとする。なお、因子は位数がrのものとする。つまり、扱う因子は分岐点を持たない。入力因子D=(U,V)は以下のように示すことができる。
=(U,V)、
=u22+u21x+u20
=v21x+v20
22=0or1
とする。分岐点を持たないため、1/2倍算として、
ExHarDBL1+1→2、ExHarDBL2+2→1、ExHarDBL2+2→2、および、HarleyDBLの4つの逆演算を考えればよい。HarleyDBL以外は例外ケースである。
Further, the ½ multiplication processing for the factor D of the super elliptic curve defined on the finite field of genus 2 and characteristic 2 is executed by the processing described above with reference to FIG. The input is D 2 = (U 2 , V 2 ), and the output is D 1 = [1/2] D 2 . It is assumed that the factor is of order r. In other words, the factor handled does not have a branch point. The input factor D 2 = (U 2 , V 2 ) can be expressed as follows:
D 2 = (U 2 , V 2 ),
U 2 = u 22 x 2 + u 21 x + u 20 ,
V 2 = v 21 x + v 20 ,
u 22 = 0 or 1
And Since it does not have a branch point,
Four inverse operations of ExHarDBL 1 + 1 → 2 , ExHarDBL 2 + 2 → 1 , ExHarDBL 2 + 2 → 2 , and HarleyDBL may be considered. Except for HarleyDBL, there are exception cases.

ここでExHarDBL2+2→1は入力因子のweightが2で、出力因子のweightが1の場合を計算する方法である。また、ExHarDBL2+2→2 は入力因子のweightが2で、かつUの1次の項の係数がu21=0を満たし、出力因子のweightが2の場合を計算する方法である。ただし、ExHarDBL2+2→2はHarleyDBLで計算できるが、これの逆演算である1/2倍算は、例外ケースとなるため、ここでは、ExHarDBL2+2→2を例外ケースとして扱う。 Here, ExHarDBL 2 + 2 → 1 is a method for calculating the case where the input factor weight is 2 and the output factor weight is 1. ExHarDBL 2 + 2 → 2 is a method for calculating the case where the weight of the input factor is 2, the coefficient of the first-order term of U 2 satisfies u 21 = 0, and the weight of the output factor is 2. However, although ExHarDBL 2 + 2 → 2 can be calculated by HarleyDBL, ½ multiplication that is the inverse operation of this is an exception case, so here, ExHarDBL 2 + 2 → 2 is treated as an exception case.

これら、ExHarDBL1+1→2、ExHarDBL2+2→1、ExHarDBL2+2→2、および、HarleyDBLに対応する1/2倍算をそれぞれ、ExHEC_HLV2→1+1、ExHEC_HLV1→2+2、ExHEC_HLV2→2+2、およびHEC_HLVとする。 ExHEC_HLV 2 → 1 + 1 , ExHEC_HLV 1 → 2 + 2 and ExHEC_HLV 2 → HLV 2 → 1 + 1 , ExHARDBL 1 + 1 → 2 , ExHarDBL 2 + 2 → 1 , ExHarDBL 2 + 2 → 2 , and 1/2 multiplication corresponding to HarleyDBL .

因子の1/2倍算を行なう場合、まず、入力因子により、図2に示す通りに場合分けを行なう。入力因子のweightが2で、かつUの1次の項の係数がu21≠0を満たす場合は、HEC_HLVで計算を行なう。HEC_HLVはHarleyDBLの逆演算であるため、1/2倍算の中でHEC_HLVの処理が非常に高い確率でおこる。その他の例外処理の起こる確率は非常に低い。このHEC_HLV以外の場合は例外処理を行う。 When the factor is multiplied by 1/2, first, the case is divided according to the input factor as shown in FIG. When the weight of the input factor is 2 and the coefficient of the first-order term of U 2 satisfies u 21 ≠ 0, the calculation is performed using HEC_HLV. Since HEC_HLV is the inverse operation of HarleyDBL, the processing of HEC_HLV occurs with a very high probability in ½ multiplication. The probability of other exception handling occurring is very low. In cases other than HEC_HLV, exception processing is performed.

入力因子のweightが2で、かつUの項の係数がu21=0を満たす場合は、HarleyDBL2+2→2の逆演算であるExHEC_HLV2→2+2、もしくは、HarleyDBL1+1→2の逆演算であるExHEC_HLV2→1+1で計算を行なう。また、入力因子のweightが1の場合は、HarleyDBL2+2→1の逆演算であるExHEC_HLV1→2+2で計算を行う。 When the weight of the input factor is 2 and the coefficient of the term of U 2 satisfies u 21 = 0, ExHEC_HLV 2 → 2 + 2 that is the inverse operation of HarleyDBL 2 + 2 → 2 or the inverse operation of HarleyDBL 1 + 1 → 2 Calculation is performed using ExHEC_HLV 2 → 1 + 1 . When the weight of the input factor is 1, the calculation is performed by ExHEC_HLV 1 → 2 + 2 which is an inverse operation of HarleyDBL 2 + 2 → 1 .

1/2倍算では,有限体の平方根計算と、有限体上での2次方程式を解くための計算が必要となる。このため、2倍算になかった平方根演算と、2次方程式を解き、根を求めるハーフトレース演算と、二次方程式の根があるか否かの判定演算としてのトレース演算が必要となる。   The 1/2 multiplication requires a square root calculation of a finite field and a calculation for solving a quadratic equation on the finite field. For this reason, a square root operation that was not included in the doubling operation, a half-trace operation that solves the quadratic equation and obtains the root, and a trace operation that determines whether there is a root of the quadratic equation are required.

図3に、超楕円曲線の因子Dに対する2倍算、および1/2倍算の双方を算出可能とした暗号処理装置の演算手段の構成例を示す。演算手段100は、図3に示すように、群演算手段110、有限体演算手段120から構成される。   FIG. 3 shows an example of the configuration of the computing means of the cryptographic processing apparatus that can calculate both doubling and ½ multiplication for the factor D of the hyperelliptic curve. As shown in FIG. 3, the calculation unit 100 includes a group calculation unit 110 and a finite field calculation unit 120.

超楕円曲線の因子Dに対する2倍算、または、1/2倍算処理を実行する場合、入力データ10として、適用する超楕円曲線を定義する曲線パラメータ11、2倍算、1/2倍算のいずれを実行するかを示す群演算種類情報12、さらに、実際の演算対象となる入力因子13の各情報が演算手段100に入力される。これらの入力データに基づいて、演算手段100において2倍算または1/2倍算が実行されて処理結果としての出力因子21を出力データ20として出力する。   When executing the doubling or ½ doubling processing for the factor D of the super elliptic curve, the curve parameters 11, 2 doubling, and ½ doubling that define the super elliptic curve to be applied are used as the input data 10. The group calculation type information 12 indicating which of these is executed, and further, each piece of information of the input factor 13 to be actually calculated is input to the calculation means 100. Based on these input data, the arithmetic unit 100 executes doubling or halving and outputs the output factor 21 as the processing result as output data 20.

演算手段100では、2倍算と1/2倍算のいずれの場合においても、入力値である因子を表現する有限体上定義された多項式に対して、それぞれの演算アルゴリズムに従った有限体の演算を実行する。そのため、2倍算と1/2倍算実現のためには、有限体の各種演算を実行する有限体演算手段120と、2倍算、および1/2倍算処理手続きと途中の演算結果を保存する手段としての群演算手段110が必要となる。   In the arithmetic unit 100, in both cases of doubling and halving, the polynomial defined on the finite field that expresses the factor that is the input value is converted into a finite field according to each arithmetic algorithm. Perform the operation. Therefore, in order to realize the doubling and ½ doubling, the finite field computing means 120 for executing various operations of the finite field, the doubling and ½ doubling processing procedures, and the intermediate computation results are obtained. The group calculation means 110 is required as a means for storing.

群演算手段110には、2倍算処理の際、演算処理手続きと途中の演算結果を保存する手段としての2倍算処理手段111、1/2倍算処理の際、演算処理手続きと途中の演算結果を保存する手段としての1/2倍算処理手段112が含まれる。   The group calculation means 110 includes a doubling processing means 111 as a means for storing an arithmetic processing procedure and an intermediate calculation result in the doubling process, and an intermediate processing procedure in the middle of the halving process. A ½ multiplication processing means 112 is included as means for storing the calculation result.

また、有限体演算手段120には、2倍算と1/2倍算のそれぞれの演算アルゴリズムに従った有限体の演算を実行するための各種の演算手段が含まれる。先に説明したように、超楕円曲線の因子Dに対する2倍算処理において必要となる有限体の演算は、加算、乗算、2乗算、逆元演算の4種類であり、1/2倍算では,これらの加算、乗算、2乗算、逆元演算の4種類に加えて、有限体の平方根計算と、有限体上での2次方程式を解くための演算、すなわち、2次方程式を解き、根を求めるハーフトレース演算と、二次方程式の根があるか否かの判定演算としてのトレース演算が必要となる。   Further, the finite field calculation means 120 includes various calculation means for executing finite field calculations in accordance with the respective calculation algorithms of doubling and halving. As described above, there are four types of finite field operations required in the doubling process for the factor D of the hyperelliptic curve: addition, multiplication, multiplication, and inverse operation. In addition to these four types of addition, multiplication, double multiplication, and inverse operation, square root calculation of a finite field and an operation for solving a quadratic equation on the finite field, that is, solving a quadratic equation, And a trace operation as a determination operation for determining whether or not there is a root of a quadratic equation.

従って、有限体演算手段120には、加算手段121、乗算手段122、2乗算手段123、逆元演算手段124、平方根演算手段125、ハーフトレース演算手段126、トレース演算手段127が含まれる。加算手段121、乗算手段122、2乗算手段123、逆元演算手段124は、例えばハードウェア構成、プログラムにおいて2倍算、1/2倍算各々に専用の構成とするのではなく、いずれの処理においても共通に利用可能な1つの構成とする。このように、加算手段121、乗算手段122、2乗算手段123、逆元演算手段124を2倍算、1/2倍算個別に構成することなく、共有構成とすることにより、演算手段の構成としてのハードウェアサイズ、プログラムサイズを小型化することが可能となる。ハードウェアを用いた場合はゲート数の削減、装置の小型化を実現することができる。   Accordingly, the finite field computing means 120 includes an adding means 121, a multiplying means 122, a 2 multiplying means 123, an inverse element computing means 124, a square root computing means 125, a half trace computing means 126, and a trace computing means 127. For example, the adding means 121, the multiplying means 122, the 2 multiplying means 123, and the inverse element calculating means 124 do not have a hardware configuration, a configuration dedicated to doubling and 1/2 doubling in the program, One configuration that can be used in common. As described above, the adding means 121, the multiplying means 122, the 2 multiplying means 123, and the inverse element calculating means 124 are not configured separately for doubling and halving, but are configured in a shared manner, thereby configuring the calculating means. As a result, the hardware size and program size can be reduced. When hardware is used, the number of gates can be reduced and the size of the apparatus can be reduced.

また、超楕円曲線の因子Dの加算処理は、先に、図1(A)を参照して説明した処理によって実行される。種数2の場合の因子の加算D+Dにおいて、因子D、Dは、それぞれD=(U1、)、D=(U、V)とした場合、まず、因子のウェイト(weight)の値によって場合分けが行われる。すなわち、[D+D]の各ウェイト(weight)の値によって、
(1)weight2+weight2
(2)weight2+weight1
(3)例外処理1
の場合分けが行なわれる。
In addition, the process of adding the factor D of the super elliptic curve is executed by the process described above with reference to FIG. In the addition of factors D 1 + D 2 in the case of genus 2, if the factors D 1 and D 2 are D 1 = (U 1, V 1 ) and D 2 = (U 2 , V 2 ), respectively, The cases are classified according to the value of the weight of the factor. That is, depending on the value of each weight of [D 1 + D 2 ],
(1) weight2 + weight2
(2) weight2 + weight1
(3) Exception handling 1
The case is divided.

次にweight2同士の加算、すなわち(1)weight2+weight2の場合、因子D=(U1、)、D=(U、V)について、最大公約数gcd(U、U)=1であれば、2つの因子D=(U1、)、D=(U、V)は、互いに同一または共役点(opposite point)を含まない。この場合、
(1a)HarleyADD、
すなわちハーレーアルゴリズムに従った加算処理を行う。(1a)HarleyADDの処理は例えば非特許文献7に示されているMost Frequent Caseと呼ばれる処理である。このMost Frequent Caseは、種数2の場合の因子の加算D+D処理において、高確率で発生するケースである。
Then weight2 addition between: (1) For weight2 + weight2, factor D 1 = (U 1, V 1), D 2 = the (U 2, V 2), the greatest common divisor gcd (U 1, U 2) If = 1, the two factors D 1 = (U 1, V 1 ) and D 2 = (U 2 , V 2 ) are not identical to each other or do not include an opposite point. in this case,
(1a) HarleyADD,
That is, addition processing according to the Harley algorithm is performed. (1a) The Harley ADD process is a process called “most frequent case” shown in Non-Patent Document 7, for example. This Most Frequent Case is a case that occurs with high probability in the factor addition D 1 + D 2 processing in the case of genus 2.

この(1a)HarleyADDの処理は、非常に高い確率でおこる。その他の例外処理の起こる確率は非常に低い。Most Frequent Caseの条件を満たさない場合、すなわち、因子D=(U1、)、D=(U、V)について、最大公約数gcd(U、U)=1を満足しない場合は、
(1b)例外処理2を行う。
This (1a) Harley ADD process occurs with a very high probability. The probability of other exception handling occurring is very low. When the condition of Most Frequent Case is not satisfied, that is, for the factor D 1 = (U 1, V 1 ), D 2 = (U 2 , V 2 ), the greatest common divisor gcd (U 1 , U 2 ) = 1 If you are not satisfied,
(1b) Exception processing 2 is performed.

(2)weight2+weight1の場合についても同様に、gcd(U、U)=1かどうかをチェックし、gcd(U、U)=1を満足する場合には、
(2a)ExHarADD2+1→2を実行し、
gcd(U、U)=1を満足しない場合には、
(2b)例外処理3を行う。
(3)例外処理1は、weightの場合分けが上記(1),(2)以外の場合である。
(2) for the case of weight2 + weight1 Similarly, when checking whether the gcd (U 1, U 2) = 1 , satisfies gcd (U 1, U 2) = 1 is
(2a) ExHARADD 2 + 1 → 2 is executed,
If gcd (U 1 , U 2 ) = 1 is not satisfied,
(2b) Exception processing 3 is performed.
(3) The exception process 1 is a case where the case classification of “weight” is other than the above (1) and (2).

なお、上述した種数2の加算処理のアルゴリズムの詳細については、先に説明した非特許文献8(T.Lange, Efficient arithmetic on genus 2 hyperelliptic curves over finite fields via explicit formulae. Cryptology ePrint Archive, 2002/121, IACR, 2002.)に記載されている。   Note that the details of the algorithm of genus 2 addition processing described above are described in Non-Patent Document 8 (T. Lange, Efficient arithmetic on genus 2 hyperelliptic curves over finite fields via explicit formulae. Cryptology ePrint Archive, 2002 / 121, IACR, 2002.).

超楕円曲線の因子Dの加算処理に必要となる有限体の演算は2倍算と同様であり、加算、乗算、2乗算、逆元演算の4種類である。従って、2倍算、1/2倍算に加えて加算処理も実行可能とする演算手段は、図4に演算手段150として示すように、図3に示す演算手段100の持つ有限体演算手段120と同様の構成、すなわち、加算手段121、乗算手段122、2乗算手段123、逆元演算手段124、平方根演算手段125、ハーフトレース演算手段126、トレース演算手段127を持つ有限体演算手段120と、2倍算処理手段161、1/2倍算処理手段162に加え、加算処理の際、演算処理手続きと途中の演算結果を保存する手段としての加算処理手段163を持つ群演算手段161によって構成することができる。   The finite field operation required for the addition process of the factor D of the hyperelliptic curve is the same as the doubling operation, and there are four types of addition, multiplication, multiplication, and inverse operation. Therefore, a calculation means that can execute addition processing in addition to doubling and ½ multiplication is a finite field calculation means 120 of the calculation means 100 shown in FIG. A finite field calculation means 120 having the same configuration as that of the addition means 121, the multiplication means 122, the two multiplication means 123, the inverse element calculation means 124, the square root calculation means 125, the half trace calculation means 126, and the trace calculation means 127; In addition to the doubling processing means 161 and the 1/2 doubling processing means 162, a group operation means 161 having an addition processing means 163 as means for storing an operation processing procedure and an intermediate operation result at the time of addition processing is constituted. be able to.

超楕円曲線の因子Dに対する2倍算、または、1/2倍算処理、または加算処理を実行する場合、入力データ10として、適用する超楕円曲線を定義するパラメータ11、2倍算、1/2倍算、加算のいずれを実行するかを示す群演算種類情報12、さらに、実際の演算対象となる入力因子13の各情報が演算手段100に入力される。これらの入力データに基づいて、演算手段100において2倍算または1/2倍算、または加算が実行されて処理結果としての出力因子21を出力データ20として出力する。   When the doubling, ½ doubling, or addition processing for the factor D of the hyperelliptic curve is executed, as the input data 10, parameters 11, 2 doubling to define the superelliptic curve to be applied, 1 / Group operation type information 12 indicating which of doubling and addition is to be executed, and each information of the input factor 13 to be actually calculated are input to the calculation means 100. Based on these input data, the arithmetic unit 100 executes doubling, halving, or addition, and outputs the output factor 21 as the processing result as output data 20.

この構成においても、加算手段121、乗算手段122、2乗算手段123、逆元演算手段124は、例えばハードウェア構成、プログラムにおいて2倍算、1/2倍算、加算演算各々に専用の構成とするのではなく、いずれの処理においても共通に利用可能な1つの構成とする。このように、加算手段121、乗算手段122、2乗算手段123、逆元演算手段124を2倍算、1/2倍算個別に構成することなく、共有構成とすることにより、演算手段の構成としてのハードウェアサイズ、プログラムサイズを小型化することが可能となる。ハードウェアを用いた場合はゲート数の削減、装置の小型化を実現することができる。   Also in this configuration, the adding means 121, the multiplying means 122, the 2 multiplying means 123, and the inverse element calculating means 124 have, for example, a hardware configuration, a configuration dedicated to each of doubling, halving, and adding operations in the program. Instead of this, a single configuration that can be commonly used in any processing is adopted. As described above, the adding means 121, the multiplying means 122, the 2 multiplying means 123, and the inverse element calculating means 124 are not configured separately for doubling and halving, but are configured in a shared manner, thereby configuring the calculating means. As a result, the hardware size and program size can be reduced. When hardware is used, the number of gates can be reduced and the size of the apparatus can be reduced.

(2)種数2、標数2の有限体上定義された超楕円曲線の因子Dに対するスカラー倍算の演算処理において、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
これらの各演算アルゴリズムを用いて、因子のスカラー倍算を計算する方法。
(2) In the arithmetic operation of scalar multiplication for the factor D of the hyperelliptic curve defined on the finite field of genus 2 and characteristic 2,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
A method to calculate scalar multiplication of factors using each of these algorithms.

先に、説明したように、超楕円曲線の因子Dに対するスカラー倍算の演算処理は、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
この(a),(b)のいずれを適用することも可能である。
As described above, the operation of scalar multiplication for the factor D of the hyperelliptic curve is as follows.
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
Either (a) or (b) can be applied.

(a)加算および2倍算を適用した演算アルゴリズムは、先に説明したように、
binary(right−to−left)法
binary(left−to−right)法
が適用可能である。
(A) As described above, the calculation algorithm to which addition and doubling are applied is as follows.
The binary (right-to-left) method The binary (left-to-right) method can be applied.

binary(right−to−left)法は、dを下位ビットから見ていき、d=1の場合に、[2]Dを加算することが特徴である。binary(right−to−left)法のアルゴリズム1(Algorithm1)を以下に示す。

Figure 2008020757
The binary (right-to-left) method is characterized in that d is viewed from the lower bits and [2 i ] D is added when d i = 1. Algorithm 1 (Algorithm1) of the binary (right-to-left) method is shown below.
Figure 2008020757

一方、binary(left−to−right)法は、dを上位ビットから見ていき、毎ビットDを2倍し、d=1の場合に、ベースポイントを加算することが特徴である。binary(left−to−right)法のアルゴリズム2(Algorithm2)を以下に示す。

Figure 2008020757
On the other hand, the binary (left-to-right) method is characterized in that d is viewed from the upper bits, each bit D is doubled, and base points are added when d i = 1. Algorithm 2 (Algorithm 2) of the binary (left-to-right) method is shown below.
Figure 2008020757

また、(b)加算および1/2倍算を適用した演算アルゴリズムは、先に説明したように、Halve−and−add binary法として、
(ア)right−to−left法と、
(イ)left−to−right法、
これらの2種類の手法が域用可能である。スカラー値dを因子のオーダーrを法として1/2進数展開し、それをd'とする。
In addition, as described above, (b) the arithmetic algorithm to which addition and ½ multiplication are applied is the Halve-and-add binary method,
(A) the right-to-left method;
(A) Left-to-right method,
These two types of techniques can be used. The scalar value d is expanded in half notation with the factor order r modulo, and is set as d ′.

(ア)Halve−and−add binary(right−to−left)法は、2進数表現されたスカラー値d'を下位ビットから見ていき、
d'=1
の場合に、
[1/2]D
を加算することが特徴である。このright−to−left法のアルゴリズムを以下に、アルゴリズム4(Algorithm4:Halve−and−add binary (right−to−left)法)として示す。

Figure 2008020757
(A) The Halve-and-add binary (right-to-left) method looks at the scalar value d ′ expressed in binary from the lower bits,
d ′ i = 1
In the case of
[1/2 i ] D 0
It is the feature to add. The algorithm of this right-to-left method is shown below as Algorithm 4 (Algorithm 4: Halve-and-add binary (right-to-left) method).
Figure 2008020757

上記のアルゴリズム4(Algorithm4)では,スカラー倍dDを計算するために、前述のアルゴリズム3(Algorithm3)を用いて、スカラー値dを1/2進数展開したd'を入力として与えている。 In the algorithm 4 (Algorithm 4), in order to calculate the scalar multiplication dD 0 , the algorithm value 3 (Algorithm 3) described above is used to input d ′ obtained by expanding the scalar value d into a half number.

(イ)Halve−and−add binary(left−to−right)法は、2進数表現されたスカラー値d'を上位ビットから見ていき、毎ビットDを1/2倍して、
d'=1
の場合に、ベースポイントを加算することが特徴である。このleft−to−right法のアルゴリズムの詳細を以下に、アルゴリズム5(Algorithm5:Halve−and−add binary (left−to−right)法)として示す。

Figure 2008020757
(B) The Halve-and-add binary (left-to-right) method looks at the scalar value d ′ expressed in binary from the upper bit, doubles each bit D by 1/2,
d ′ i = 1
In this case, the base point is added. Details of the algorithm of the left-to-right method are shown below as Algorithm 5 (Algorithm 5: Halve-and-add binary (left-to-right) method).
Figure 2008020757

上記アルゴリズム5(Algorithm5)では、スカラー倍dDを計算するために、前述のアルゴリズム3(Algorithm3)を用いて、スカラー値dを1/2進数展開したd'を入力として与えている。 In the algorithm 5 (Algorithm 5), in order to calculate the scalar multiple dD 0 , the algorithm value 3 (Algorithm 3) described above is used as an input and d ′ obtained by expanding the scalar value d into a half number.

ここで、上記したアルゴリズム中、
2倍算を適用した場合のスカラー倍算アルゴリズム:アルゴリズム1(Algorithm1)と、
1/2倍算を適用した場合のスカラー倍算アルゴリズム:アルゴリズム4(Algorithm4)
を比較する。
Here, in the above algorithm,
Scalar multiplication algorithm when doubling is applied: Algorithm 1 (Algorithm1)
Scalar multiplication algorithm when 1/2 multiplication is applied: Algorithm 4 (Algorithm 4)
Compare

アルゴリズム1(Algorithm1)における2倍算の適用部分が、アルゴリズム4(Algorithm4)においては、1/2倍算に置き換わっているのみであり、他の部分に関してはまったく共通している。   The application part of the doubling in the algorithm 1 (Algorithm 1) is only replaced with the ½ multiplication in the algorithm 4 (Algorithm 4), and the other parts are completely the same.

さらに、同様に、上記したアルゴリズム中、
2倍算を適用した場合のスカラー倍算アルゴリズム:アルゴリズム2(Algorithm2)と、
1/2倍算を適用した場合のスカラー倍算アルゴリズム:アルゴリズム5(Algorithm5)
を比較する。
Similarly, in the above algorithm,
Scalar multiplication algorithm when doubling is applied: Algorithm 2 (Algorithm2),
Scalar multiplication algorithm when 1/2 multiplication is applied: Algorithm 5 (Algorithm 5)
Compare

この2つのアルゴリズムを比較した場合も、上記の比較と同様であり、アルゴリズム2(Algorithm2)における2倍算の適用部分が、アルゴリズム5(Algorithm5)において、1/2倍算に置き換わっているのみであり、他の部分に関してはまったく共通している。   When these two algorithms are compared, it is the same as the above comparison, and the application part of doubling in algorithm 2 (Algorithm 2) is simply replaced with ½ multiplication in algorithm 5 (Algorithm 5). Yes, the other parts are quite common.

このことから、アルゴリズム1(Algorithm1)と、アルゴリズム4(Algorithm4)を1つの共通アルゴリズムとして設定し、実行する処理が、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
上記(a),(b)のいずれかによって、一部の処理のみを変更する設定とすることで、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
の双方を実行する構成が実現される。
From this, the algorithm 1 (Algorithm1) and the algorithm 4 (Algorithm4) are set as one common algorithm and executed.
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
By setting to change only part of the processing by either (a) or (b) above,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
A configuration for executing both of the above is realized.

同様に、アルゴリズム2(Algorithm2)と、アルゴリズム5(Algorithm5)を1つの共通アルゴリズムとして設定し、実行する処理が、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
上記(a),(b)のいずれかによって、一部の処理のみを変更する設定とすることで、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
の双方を実行する構成が実現される。
Similarly, the algorithm 2 (Algorithm 2) and the algorithm 5 (Algorithm 5) are set as one common algorithm and executed.
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
By setting to change only part of the processing by either (a) or (b) above,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
A configuration for executing both of the above is realized.

これらのことから、超楕円曲線の因子Dに対するスカラー倍算の演算処理として、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
これらのいずれのアルゴリズムでも実行可能としたスカラー倍算手段は、例えば図5に示す2倍算・1/2倍算切換スカラー倍算手段250として構成することができる。
From these things, as the arithmetic operation of the scalar multiplication for the factor D of the hyperelliptic curve,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
The scalar multiplication means that can be executed by any of these algorithms can be configured as a doubling / 1/2 multiplication switching scalar multiplication means 250 shown in FIG.

図5に示す2倍算・1/2倍算切換スカラー倍算手段250は、図4を参照して説明した演算手段150、すなわち、超楕円曲線の因子Dに対する2倍算、1/2倍算、加算処理を実行する演算手段150に加え、1/2倍算を適用した場合のスカラー倍算アルゴリズムの実行において必要となるスカラー値変換処理を実行するスカラー値変換手段251と、スカラー倍算アルゴリズムを実行するスカラー倍算処理手段252とを有する。   The doubling / 1/2 doubling switching scalar multiplication means 250 shown in FIG. 5 is the computing means 150 described with reference to FIG. 4, that is, doubling, ½ times for the factor D of the hyperelliptic curve. In addition to the arithmetic means 150 that executes the calculation and addition processing, the scalar value conversion means 251 that executes the scalar value conversion processing required in the execution of the scalar multiplication algorithm when ½ multiplication is applied, and the scalar multiplication And scalar multiplication processing means 252 for executing the algorithm.

スカラー倍算処理手段252は、例えば、
(P)アルゴリズム1(Algorithm1)と、アルゴリズム4(Algorithm4)を1つの共通アルゴリズムとして設定し、実行する処理が、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
上記(a),(b)のいずれかによって、一部の処理のみを変更する設定としたアルゴリズムの実行構成、または、
(Q)アルゴリズム2(Algorithm2)と、アルゴリズム5(Algorithm5)を1つの共通アルゴリズムとして設定し、実行する処理が、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
上記(a),(b)のいずれかによって、一部の処理のみを変更する設定としたアルゴリズムの実行構成、
上記(P),(Q)の少なくともいずれかの処理を実行可能な構成とする。
The scalar multiplication processing means 252 is, for example,
(P) Algorithm 1 (Algorithm 1) and Algorithm 4 (Algorithm 4) are set as one common algorithm and executed.
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
An execution configuration of an algorithm set to change only a part of the processing according to any one of (a) and (b) above, or
(Q) Algorithm 2 (Algorithm 2) and Algorithm 5 (Algorithm 5) are set as one common algorithm and executed.
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
An algorithm execution configuration in which only a part of the processing is set to be changed by any one of the above (a) and (b),
It is assumed that at least one of the processes (P) and (Q) can be executed.

スカラー値変換手段251は、1/2倍算を適用した場合のスカラー倍算アルゴリズムの実行において必要となるスカラー値変換処理を実行する構成であり、先に説明したように、スカラー値dを因子のオーダーrを法として1/2進数展開し、それをd'とする。具体的には、d'を以下のように表現する処理を行なう。

Figure 2008020757
The scalar value conversion means 251 is configured to execute a scalar value conversion process necessary for executing a scalar multiplication algorithm when ½ multiplication is applied. As described above, the scalar value d is converted into a factor. Modulo the order r of ½ and expand it to a half number, and let it be d ′. Specifically, a process of expressing d ′ as follows is performed.
Figure 2008020757

上記式において、mはオーダーrのビット長である。このスカラー値変換処理は、先に説明したアルゴリズム3(Algolithm3)であり、以下のアルゴリズムである。

Figure 2008020757
In the above formula, m is the bit length of order r. This scalar value conversion process is the algorithm 3 (Algorithm 3) described above, and is the following algorithm.
Figure 2008020757

図5に示す2倍算・1/2倍算切換スカラー倍算手段250を適用して、超楕円曲線の因子Dに対するスカラー倍算を実行する場合、入力データ210として、適用する超楕円曲線を定義する曲線パラメータ211、2倍算、1/2倍算のいずれを実行するかを示す群演算種類情報212、さらに、実際の演算対象となる入力因子213とスカラー値214の各情報が2倍算・1/2倍算切換スカラー倍算手段250に入力される。これらの入力データに基づいて、2倍算・1/2倍算切換スカラー倍算手段250において、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
これらのいずれかのスカラー倍算が実行されて処理結果としてのスカラー倍算結果221を出力データ220として出力する。
When the scalar multiplication with respect to the factor D of the super elliptic curve is executed by applying the doubling / 1/2 multiplication switching scalar multiplication means 250 shown in FIG. 5, the applied super elliptic curve is used as the input data 210. The group operation type information 212 indicating which of the curve parameter 211, doubling and ½ doubling to be defined is executed, and further, each information of the input factor 213 and the scalar value 214 to be actually calculated is doubled. This is input to the arithmetic / half multiplication switching scalar multiplication means 250. Based on these input data, the scalar multiplication means 250 for switching between doubling and halving
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
Any one of these scalar multiplications is executed, and a scalar multiplication result 221 as a processing result is output as output data 220.

この構成において、演算手段150は、図4を参照して説明した構成を有し、有限体演算手段120には、加算手段121、乗算手段122、2乗算手段123、逆元演算手段124、平方根演算手段125、ハーフトレース演算手段126、トレース演算手段127を有するが、加算手段121、乗算手段122、2乗算手段123、逆元演算手段124は、ハードウェア構成、プログラムにおいて2倍算、1/2倍算、加算演算各々に専用の構成とするのではなく、いずれの処理においても共通に利用可能な1つの構成とする。共通構成とすることで、演算手段の構成としてのハードウェアサイズ、プログラムサイズを小型化することが可能となる。ハードウェアを用いた場合はゲート数の削減、装置の小型化を実現することができる。   In this configuration, the calculation unit 150 has the configuration described with reference to FIG. 4, and the finite field calculation unit 120 includes an addition unit 121, a multiplication unit 122, a two multiplication unit 123, an inverse element calculation unit 124, a square root. The calculation unit 125, the half-trace calculation unit 126, and the trace calculation unit 127 are included. However, the addition unit 121, the multiplication unit 122, the two-multiplication unit 123, and the inverse element calculation unit 124 have a hardware configuration, doubling in the program, 1 / Rather than having a dedicated configuration for each of the doubling and addition operations, a single configuration that can be used in common in both processes is used. By adopting a common configuration, it is possible to reduce the hardware size and program size as the configuration of the calculation means. When hardware is used, the number of gates can be reduced and the size of the apparatus can be reduced.

なお、上述のスカラー倍算では、binary法を適用した処理構成について説明したが、binary法と異なる手法に基づくスカラー倍算処理、例えばwindow法を適用したスカラー倍算処理においても、図5に示す構成において、スカラー値変換手段251およびスカラー倍算処理手段252をwindow法のアルゴリズムに対応した構成とすることで、演算手段150を適用した処理が可能である。   In the above-described scalar multiplication, the processing configuration to which the binary method is applied has been described, but the scalar multiplication processing based on a method different from the binary method, for example, the scalar multiplication processing to which the window method is applied, is also shown in FIG. In the configuration, the scalar value conversion unit 251 and the scalar multiplication processing unit 252 are configured to correspond to the algorithm of the window method, so that the processing to which the calculation unit 150 is applied is possible.

(3)種数2、標数2の有限体上定義された超楕円曲線の因子Dに対するスカラー倍算の演算処理において、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
これらのどちらの処理が高速かを判断する方法。
(3) In the arithmetic operation of scalar multiplication for the factor D of the hyperelliptic curve defined on the finite field of genus 2 and characteristic 2,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
A method to determine which of these processes is faster.

超楕円曲線の因子Dに対するスカラー倍算の演算処理において、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
このいずれの処理も適用可能であるが、
上記(a),(b)のいずれが高速演算可能であるかは、超楕円曲線暗号において適用する曲線パラメータや有限体に依存する。
In the arithmetic operation of scalar multiplication for factor D of the hyperelliptic curve,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
Either of these processes can be applied,
Which of the above (a) and (b) is capable of high-speed calculation depends on curve parameters and finite fields applied in the super elliptic curve cryptography.

図5の構成を持つ2倍算・1/2倍算切換スカラー倍算手段250中の演算手段150内に構成される図4に示す有限体演算手段120は、加算手段121、乗算手段122、2乗算手段123、逆元演算手段124、平方根演算手段125、ハーフトレース演算手段126、トレース演算手段127を有し、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
これらのアルゴリズムにおいて、有限体演算手段120の各手段が有限体の演算を実行することになる。
The finite field calculation means 120 shown in FIG. 4 configured in the calculation means 150 in the doubling / 1/2 switching scalar multiplication means 250 having the configuration of FIG. 5 includes an adding means 121, a multiplying means 122, 2 multiplication means 123, inverse element calculation means 124, square root calculation means 125, half trace calculation means 126, trace calculation means 127,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
In these algorithms, each means of the finite field operation means 120 executes a finite field operation.

以下、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
これらのアルゴリズムにおける演算量を算出する。
Less than,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
The amount of calculation in these algorithms is calculated.

有限体の各演算の計算量を以下のように定義する。
乗算の計算量をM、
2乗算の計算量をS、
逆元演算の計算量をI、
平方根演算の計算量をSR、
ハーフトレース演算の計算量をH、
で表す。なお、有限体の加算はビット毎の排他的論理輪を計算するだけであるため、非常に計算量が小さい。また、有限体のトレース演算は、ごく少数のビット値を調べることにより計算できる。よって、有限体の加算およびとレース演算の計算量を無視しても問題ないので、以下では、加算、トレース演算の計算量は考慮しない。
The calculation amount of each operation of the finite field is defined as follows.
The amount of multiplication is M,
The amount of calculation of 2 multiplication is S,
The amount of computation of the inverse operation is I
The calculation amount of the square root operation is SR,
The amount of calculation of half-trace calculation is H,
Represented by In addition, since the addition of a finite field only calculates an exclusive logical ring for each bit, the calculation amount is very small. A finite field trace operation can be calculated by examining a very small number of bit values. Therefore, there is no problem even if the calculation amounts of the finite field addition and the race operation are ignored. Therefore, the calculation amounts of the addition and the trace calculation are not considered below.

前述した通り、超楕円曲線では曲線を特徴づける値は種数(genus)gである。pを素数、nを正の整数、q=pとする。このとき有限体Fq上で定義される種数gの超楕円曲線Cは以下の方程式、
+h(x)y=f(x)
で定義される。ここで、h(x),f(x)∈Fq[x],f(x)は、次数2g+1のmonic多項式である。
As described above, in the super elliptic curve, the value characterizing the curve is the genus g. prime p, n a positive integer, and q = p n. At this time, the hyperelliptic curve C of the genus g defined on the finite field Fq is expressed by the following equation:
y 2 + h (x) y = f (x)
Defined by Here, h (x), f (x) εFq [x], f (x) is a monic polynomial of degree 2g + 1.

スカラー倍算を実行する際に与えられる超楕円曲線パラメータや有限体のタイプによって、2倍算と1/2倍算の演算量は異なる。本発明の一実施例構成において考慮する超楕円曲線パラメータや有限体のタイプは、以下の情報である。
*有限体のタイプ:正規基底もしくは多項式基底
*既約多項式:有限体のタイプが多項式基底の場合に必要
*有限体の拡大次数:n(F、q=2
*曲線の係数:h、h、h、f、f、f、f、f
(y+(h+hx+h)y=x+f+f+f+fx+f
*h(x)が既約か可約か:
*ベースポイントD:u、u、u、v1、.(D=(u+ux+u、vx+v))
*ベースポイントの位数r:160ビット以上の大きな素数
*コファクターc:N=c*rを満たす数(Nは被約因子の個数)
The amount of calculation for doubling and halving differs depending on the hyperelliptic curve parameters and the type of finite field given when executing scalar multiplication. Super elliptic curve parameters and finite field types considered in the configuration of an embodiment of the present invention are the following information.
* Type of finite field: normal basis or polynomial basis * Irreducible polynomial: Necessary when the type of finite field is polynomial basis * Extended order of finite field: n (F q , q = 2 n )
* Curve coefficients: h 2 , h 1 , h 0 , f 4 , f 3 , f 2 , f 1 , f 0 ,
(Y 2 + (h 2 x 2 + h 1 x + h 0 ) y = x 5 + f 4 x 4 + f 3 x 3 + f 2 x 2 + f 1 x + f 0 )
* Whether h (x) is irreducible or reducible:
* Base point D 0 : u 2 , u 1 , u 0 , v 1, v 0 . (D 0 = (u 2 x 2 + u 1 x + u 0 , v 1 x + v 0 ))
* Base point order r: large prime number of 160 bits or more * cofactor c: number satisfying N = c * r (N is the number of reduced factors)

上記情報に基づいて、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
のいずれが高速演算可能かを判定する。上記情報のすべてを考慮する構成としてもよいし、一部の情報のみに基づいて判定する構成としてもよい。
Based on the above information,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
Which of these is capable of high-speed calculation. It is good also as a structure which considers all the said information, and it is good also as a structure which judges based on only one part of information.

以下では、超楕円曲線パラメータを、
(P1)h=1、f=0(一般的な曲線)の場合、
(P2)h=h=1、f=0の場合、
(P3)h=h=h=1、f=0の場合、
これらの3種類のパラメータによって定義される超楕円曲線における2倍算と1/2倍算の有限体演算の演算量を算出して比較する。
なお、h(x)は既約多項式であるとする。h(x)が既約多項式でない場合は、1/2倍算の演算は2倍算よりも低速となるため、h(x)が既約多項式の場合の2倍算と1/2倍算の演算量の比較は省略する。
In the following, the hyperelliptic curve parameters are
(P1) When h 2 = 1 and f 4 = 0 (general curve),
(P2) When h 2 = h 1 = 1 and f 4 = 0,
(P3) When h 2 = h 1 = h 1 = 1 and f 4 = 0,
The calculation amount of the finite field calculation of the doubling calculation and the doubling calculation in the hyperelliptic curve defined by these three types of parameters is calculated and compared.
Note that h (x) is an irreducible polynomial. When h (x) is not an irreducible polynomial, the doubling operation is slower than the doubling operation. Therefore, the doubling and halving operations when h (x) is an irreducible polynomial are performed. Comparison of the amount of computation is omitted.

(P1)h=1、f=0(一般的な曲線)の場合、
2倍算:21M+5S+1I
1/2倍算:19.5M+2S+1I+2.5SR+2H
(P2)h=h=1、f=0の場合、
2倍算:18M+7S+1I
1/2倍算:14.5M+3S+1I+2.5SR+2H
(P3)h=h=h=1、f=0の場合、
2倍算:15M+7S+1I
1/2倍算:13.5M+3S+1I+2.5SR+2H
(P1) When h 2 = 1 and f 4 = 0 (general curve),
Double multiplication: 21M + 5S + 1I
1/2 multiplication: 19.5M + 2S + 1I + 2.5SR + 2H
(P2) When h 2 = h 1 = 1 and f 4 = 0,
Double multiplication: 18M + 7S + 1I
1/2 multiplication: 14.5M + 3S + 1I + 2.5SR + 2H
(P3) When h 2 = h 1 = h 1 = 1 and f 4 = 0,
Double multiplication: 15M + 7S + 1I
1/2 multiplication: 13.5M + 3S + 1I + 2.5SR + 2H

上記のように、適用する超楕円曲線に応じて、2倍算と1/2倍算の演算量が算出される。   As described above, the amount of calculation of doubling and halving is calculated according to the applied super elliptic curve.

さらに、スカラー倍算における
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
これらのアルゴリズムにおける演算量を比較する場合、
有限体演算に適用する有限体が正規規定であるか多項式規定であるかによって演算量が異なるので、これらを区別することが必要となる。
Furthermore, (a) an arithmetic algorithm applying addition and doubling in scalar multiplication,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
When comparing the computational complexity of these algorithms,
Since the amount of calculation differs depending on whether the finite field applied to the finite field calculation is normal or polynomial, it is necessary to distinguish between them.

[有限体が正規規定の場合]
まず、有限体が正規基底の場合には、
2乗算の計算量:S、
平方根演算の計算量:SR、
ハーフトレース演算の計算量:H、
を無視することができる。正規基底の乗算の計算量をMと表す。
また、

Figure 2008020757
[When the finite field is a regular rule]
First, if the finite field is a normal basis,
Calculation amount of two multiplications: S,
Calculation amount of square root operation: SR,
Half-trace calculation amount: H,
Can be ignored. The calculation amount of normal basis multiplication is represented as MN .
Also,
Figure 2008020757

上記のように表現されることが知られている。例えば、[A.Menezes. Elliptic Curve Public Key Cryptosystems. Kluwer Academic Publishers, 1993]参照のこと。
なお、nは有限体の拡大次数である。#(n−1)は、n−1を2進数表記した場合の1の個数である。例えばI=8Mと仮定すると、2倍算と1/2倍算の計算量は次のようになる。
It is known that it is expressed as described above. For example, see [A. Menezes. Elliptic Curve Public Key Cryptosystems. Kluwer Academic Publishers, 1993].
Note that n is the expansion order of the finite field. # (N-1) is the number of 1s when n-1 is expressed in binary. For example, assuming that I = 8M N , the amount of calculation for doubling and halving is as follows.

(P1)h=1、f=0(一般的な曲線)の場合、
2倍算:29M
1/2倍算:27.5M
(P2)h=h=1、f=0の場合、
2倍算:26M
1/2倍算:22.5M
(P3)h=h=h=1、f=0の場合、
2倍算:23M
1/2倍算:21.5M
(P1) When h 2 = 1 and f 4 = 0 (general curve),
Double calculation: 29M N
1/2 multiplication: 27.5M N
(P2) When h 2 = h 1 = 1 and f 4 = 0,
Double calculation: 26M N
1/2 multiplication: 22.5M N
(P3) When h 2 = h 1 = h 1 = 1 and f 4 = 0,
Double calculation: 23M N
1/2 multiplication: 21.5M N

[有限体が多項式基底の場合]
有限体が多項式基底の場合は、
2乗算の計算量:S、
平方根演算の計算量:SR、
ハーフトレース演算の計算量:H、
を無視することができない。多項式基底の乗算の計算量をMと表す。有限体を定義する既約多項式にもよるが、一般的に、
1SR=0.5M
1H=0.5M
であることが知られている。
[When finite field is polynomial basis]
If the finite field is a polynomial basis,
Calculation amount of two multiplications: S,
Calculation amount of square root operation: SR,
Half-trace calculation amount: H,
Can not be ignored. The amount of calculation of multiplication of polynomial basis expressed as M P. Depending on the irreducible polynomial defining the finite field,
1SR = 0.5M P ,
1H = 0.5M P
It is known that

既約多項式や実装方法によっては、これらの計算量が0.5Mよりも大きかったり、小さかったりする。また、2乗算の計算量:SはMの数分の1程度であることが知られている。例えば1S=0.1M、1SR=0.5M、1H=0.5M、1I=8Mと仮定すると、2倍算と1/2倍算の計算量は次のようになる。
(P1)h=1、f=0(一般的な曲線)の場合、
2倍算:29.5M
1/2倍算:29.95M
(P2)h=h=1、f=0の場合、
2倍算:26.7M
1/2倍算:25.05M
(P3)h=h=h=1、f=0の場合、
2倍算:23.7M
1/2倍算:24.05M
Depending irreducible polynomial and mounting method, or greater than those calculated amount is 0.5M P, or less. The calculation of squaring: S is known to be a fraction of the order of M P. For example 1S = 0.1M P, 1SR = 0.5M P, 1H = 0.5M P, assuming 1I = 8M P, 2 multiplication and computation of 1/2 calculation is as follows.
(P1) When h 2 = 1 and f 4 = 0 (general curve),
Double calculation: 29.5M P
1/2 multiplication: 29.95M P
(P2) When h 2 = h 1 = 1 and f 4 = 0,
Double calculation: 26.7M P
1/2 multiplication: 25.05M P
(P3) When h 2 = h 1 = h 1 = 1 and f 4 = 0,
Double calculation: 23.7M P
1/2 multiplication: 24.05M P

このように、曲線パラメータと有限体により、2倍算と1/2倍算の計算量が異なる。   Thus, the amount of calculations for doubling and halving differs depending on the curve parameters and the finite field.

具体的な、超楕円曲線暗号処理におけるスカラー倍算を実行する処理形態としては、例えば、超楕円曲線暗号を用いた署名生成、署名検証、DH型鍵交換などの処理が想定される。また、このような暗号処理演算を実行する情報処理装置やシステムとしては、例えば、様々なサービスを提供するサーバや、PC、デジタル家電、携帯電話などの情報端末、ICカードなど、様々な機器が想定される。   As specific processing forms for executing scalar multiplication in the hyperelliptic curve encryption process, for example, processes such as signature generation, signature verification, and DH type key exchange using the superelliptic curve encryption are assumed. In addition, examples of information processing apparatuses and systems that perform such cryptographic processing operations include various devices such as servers that provide various services, information terminals such as PCs, digital home appliances, and mobile phones, and IC cards. is assumed.

例えば、ユーザの持つ携帯端末などの情報処理装置が、ネットバンキング、音楽配信などといった様々なサービスを受領しようとする場合、異なるサービス提供主体との間で暗号処理を伴うデータ処理や通信を実行することになる。この場合、それぞれのサービス提供主体が個別に設定したアルゴリズムに従った処理を行なうことが必要であり、ユーザの持つ携帯端末などの情報処理装置では、異なる超楕円曲線パラメータや有限体をベースとした暗号処理を実行しなければならないことになる。   For example, when an information processing device such as a portable terminal of a user wants to receive various services such as net banking and music distribution, data processing and communication involving encryption processing are executed with different service providers. It will be. In this case, it is necessary to perform processing according to an algorithm set individually by each service provider. Information processing devices such as mobile terminals owned by users are based on different hyperelliptic curve parameters or finite fields. Cryptographic processing must be executed.

上述したように、スカラー倍算における
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
のいずれが高速に実行可能かは、超楕円曲線パラメータや有限体に依存することになる。従って、例えば、ユーザの持つ携帯端末などの情報処理装置において、上記(a)(b)のいずれか一方のみのアルゴリズムしか実行できない構成である場合は、ある条件設定では、遅い演算処理速度での処理を余儀なくされることになる。
As described above, (a) an arithmetic algorithm applying addition and doubling in scalar multiplication,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
Which can be executed at high speed depends on the hyperelliptic curve parameters and the finite field. Therefore, for example, in an information processing apparatus such as a portable terminal held by a user, when the configuration is such that only one of the algorithms (a) and (b) can be executed, with a certain condition setting, It will be forced to process.

従って、ユーザの持つ携帯端末などの情報処理装置を、上記(a)(b)の両アルゴリズムを実行可能な構成として、サービス提供主体が設定した異なる超楕円曲線パラメータや有限体の情報に基づいて、上記(a)(b)のいずれが、高速演算可能なアルゴリズムであるかを判定して、高速処理が可能なアルゴリズムに従って演算を行なうとすれば、超楕円曲線パラメータや有限体の様々な条件に応じて、常に高速処理を行なうことが可能となる。   Therefore, the information processing apparatus such as a portable terminal held by the user is configured to execute both algorithms (a) and (b) above, based on different hyperelliptic curve parameters and finite field information set by the service provider. If any one of the above (a) and (b) is an algorithm capable of high-speed calculation and the calculation is performed according to an algorithm capable of high-speed processing, various conditions of the super elliptic curve parameter and the finite field can be obtained. Accordingly, it is possible to always perform high-speed processing.

以下では、異なる超楕円曲線パラメータや有限体に基づいて、高速演算が可能なアルゴリズムを選択して実行するための構成について説明する。   Hereinafter, a configuration for selecting and executing an algorithm capable of high-speed calculation based on different hyperelliptic curve parameters and finite fields will be described.

本発明の一実施例構成としての暗号処理装置では、初期設定として、超楕円曲線暗号処理に際して使用する様々な曲線毎に2倍算と1/2倍算の処理速度を、予め測定し、各曲線に応じて2倍算と1/2倍算のうち、どちらが高速演算可能であるかを判定して、各曲線対応の高速演算可能なアルゴリズム情報を記録したテーブルを生成して、記憶手段に保持しておく。このテーブルを「2倍算・1/2倍算切換テーブル」と呼ぶことにする。また、この初期設定を、「2倍算・1/2倍算切換テーブル初期設定」と呼ぶ。   In the cryptographic processing apparatus as one embodiment of the present invention, as an initial setting, processing speeds of doubling and halving are measured in advance for each of various curves used in the super elliptic curve encryption process, According to the curve, it is determined which one of doubling and 1/2 doubling can be performed at high speed, and a table recording algorithm information capable of high speed calculation corresponding to each curve is generated and stored in the storage means. Keep it. This table will be referred to as a “double / 1/2 multiplication switching table”. This initial setting is referred to as “double / 1/2 multiplication switch table initial setting”.

本発明の一実施例構成としての暗号処理装置は、図5に示すような2倍算・1/2倍算切換スカラー倍算手段250、すなわち、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
これら(a),(b)の演算アルゴリズムのいずれも実行可能な2倍算・1/2倍算切換スカラー倍算手段250を有するとともに、上述の「2倍算・1/2倍算切換テーブル」を記憶手段に保持し、暗号処理演算の開始前に、2倍算・1/2倍算切換テーブルを参照して、演算に適用する超楕円曲線パラメータや有限体情報に基づいて、高速演算が可能なアルゴリズムが、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
これらのいずれであるかを判断し、高速に実行可能と判断されたアルゴリズムを選択して実行する。
The encryption processing apparatus as one embodiment of the present invention has a doubling / 1/2 doubling switching scalar multiplication means 250 as shown in FIG.
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
The arithmetic algorithm of (a) and (b) has a doubling / 1/2 doubling switching scalar multiplication means 250 that can be executed, and the above-mentioned “doubling / 1/2 doubling switching table”. ”Is stored in the storage means, and before the start of the cryptographic processing operation, the doubling / 1/2 doubling switching table is referred to, and the high-speed calculation is performed based on the hyperelliptic curve parameters and finite field information applied to the calculation. An algorithm that can
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
It is determined which of these is selected, and an algorithm determined to be executable at high speed is selected and executed.

まず、暗号処理装置において実行される2倍算・1/2倍算切換テーブル初期設定に関して説明する。
具体例として、M個の超楕円曲線に対して、2倍算・1/2倍算切換テーブルを作成する場合を考える。
すなわち、入力としてM個の曲線パラメータが与えられ、出力として、各曲線に対して、2倍算もしくは1/2倍算のどちらを使うかを記載したテーブルを得る。
First, the doubling / 1/2 multiplication switching table initial setting executed in the cryptographic processing apparatus will be described.
As a specific example, consider a case where a doubling / 1/2 doubling switching table is created for M super elliptic curves.
In other words, M curve parameters are given as inputs, and a table describing whether to use doubling or ½ multiplication for each curve is obtained as an output.

1/2倍算は、コファクター[c]が2で、h(x)が既約多項式の場合に高速に計算が可能である。前述したように、コファクター[c]は、
N=c*rを満たす数
によって定義される。
ただし、
Nは被約因子の個数、
rはベースポイントの位数(160ビット以上の大きな素数)
である。
The 1/2 multiplication can be performed at high speed when the cofactor [c] is 2 and h (x) is an irreducible polynomial. As mentioned above, the cofactor [c] is
It is defined by a number satisfying N = c * r.
However,
N is the number of factors to be reduced,
r is the base point order (a large prime number of 160 bits or more)
It is.

このように、1/2倍算は、コファクター[c]が2で、h(x)が既約多項式の場合に高速に計算が可能であるため、検証対象となるM個の超楕円曲線の曲線パラメータを参照し、コファクターとh(x)が上記条件を満たさない場合は、テーブルに2倍算を使用すると記載する。   In this way, the ½ multiplication can be performed at high speed when the cofactor [c] is 2 and h (x) is an irreducible polynomial, and therefore M super elliptic curves to be verified When the cofactor and h (x) do not satisfy the above conditions, it is described that doubling is used in the table.

一方、コファクター[c]とh(x)が上記条件を満たしている場合、すなわち、
コファクター[c]が2で、h(x)が既約多項式である。
この条件を満たしている場合にのみ、2倍算と1/2倍算の計算速度を算出し、テーブルに、算出結果として得られる、いずれか一方の高速なアルゴリズムを記載する。
この処理を、M個の曲線に対して行い、2倍算・1/2倍算切換テーブルを出力する。
On the other hand, when the cofactor [c] and h (x) satisfy the above condition, that is,
Cofactor [c] is 2 and h (x) is an irreducible polynomial.
Only when this condition is satisfied, the calculation speeds of doubling and halving are calculated, and either one of the high-speed algorithms obtained as the calculation result is described in the table.
This process is performed on M curves, and a doubling / 1/2 doubling switching table is output.

2倍算・1/2倍算切換テーブル初期設定処理のシーケンスについて、図6に示すフローチャートを参照して説明する。まず、ステップS101において、演算速度の検証対象とするM個の超楕円曲線のパラメータを入力する。これらのパラメータは、上述したように、
*有限体のタイプ:正規基底もしくは多項式基底
*既約多項式:有限体のタイプが多項式基底の場合に必要
*有限体の拡大次数:n(F、q=2
*曲線の係数:h、h、h、f、f、f、f、f
(y+(h+hx+h)y=x+f+f+f+fx+f
*h(x)が既約か可約か:
*ベースポイントD:u、u、u、v1、.(D=(u+ux+u、vx+v))
*ベースポイントの位数r:160ビット以上の大きな素数
*コファクターc:N=c*rを満たす数(Nは被約因子の個数)
これらのデータである。
The sequence of the doubling / 1/2 doubling switching table initial setting process will be described with reference to the flowchart shown in FIG. First, in step S101, parameters of M super elliptic curves to be verified for calculation speed are input. These parameters are as described above.
* Type of finite field: normal basis or polynomial basis * Irreducible polynomial: Necessary when the type of finite field is polynomial basis * Extended order of finite field: n (F q , q = 2 n )
* Curve coefficients: h 2 , h 1 , h 0 , f 4 , f 3 , f 2 , f 1 , f 0 ,
(Y 2 + (h 2 x 2 + h 1 x + h 0 ) y = x 5 + f 4 x 4 + f 3 x 3 + f 2 x 2 + f 1 x + f 0 )
* Whether h (x) is irreducible or reducible:
* Base point D 0 : u 2 , u 1 , u 0 , v 1, v 0 . (D 0 = (u 2 x 2 + u 1 x + u 0 , v 1 x + v 0 ))
* Base point order r: large prime number of 160 bits or more * cofactor c: number satisfying N = c * r (N is the number of reduced factors)
These data.

次に、ステップS102において、M個の超楕円曲線各々の識別子に対応する変数(i)の初期設定としてi=1とし、ステップS103において、i≦Mを判定し、ステップS104において、i番目の超楕円曲線のパラメータを選択する。   Next, in step S102, i = 1 is set as the initial setting of the variable (i) corresponding to the identifier of each of the M hyperelliptic curves, i ≦ M is determined in step S103, and the i-th in step S104. Select hyperelliptic curve parameters.

次に、ステップS105において、検証対象として選択したi番目の超楕円曲線のパラメータを検証し、コファクター[c]が2で、かつ、h(x)が既約多項式であるか否かを検証する。前述したように、1/2倍算が高速に計算可能となる可能性があるのは、コファクター[c]が2で、かつ、h(x)が既約多項式である場合に限られる。   Next, in step S105, the parameter of the i-th hyperelliptic curve selected as the verification target is verified, and it is verified whether the cofactor [c] is 2 and h (x) is an irreducible polynomial. To do. As described above, there is a possibility that the 1/2 multiplication can be calculated at high speed only when the cofactor [c] is 2 and h (x) is an irreducible polynomial.

ステップS105において、検証対象として選択したi番目の超楕円曲線のパラメータが、
コファクター[c]が2で、かつ、h(x)が既約多項式である
という条件を満足していない場合は、1/2倍算の計算が高速になる可能性がないと判断し、2倍算を適用することになる。この場合は、ステップS109に進み、検証対象としたi番目の超楕円曲線に適用すべき高速演算アルゴリズムとして[2倍算]をテーブルに記録する。
In step S105, the parameter of the i-th hyperelliptic curve selected as the verification target is
If the condition that the cofactor [c] is 2 and h (x) is an irreducible polynomial is not satisfied, it is determined that there is no possibility that the calculation of 1/2 multiplication will be fast, Double multiplication will be applied. In this case, the process proceeds to step S109, and [doubling] is recorded in the table as a high-speed calculation algorithm to be applied to the i-th hyperelliptic curve to be verified.

一方、ステップS105において、検証対象として選択したi番目の超楕円曲線のパラメータが、
コファクター[c]が2で、かつ、h(x)が既約多項式である
という条件を満足している場合は、1/2倍算の計算が高速になる可能性があり、ステップS106に進み、検証対象としているi番目の超楕円曲線パラメータの条件設定に基づいて2倍算および1/2倍算の演算速度の検証処理を実行する。
On the other hand, in step S105, the parameter of the i-th hyperelliptic curve selected as the verification target is
When the condition that the cofactor [c] is 2 and h (x) is an irreducible polynomial is satisfied, there is a possibility that the calculation of 1/2 multiplication may be performed at a high speed. Then, based on the condition setting of the i-th hyperelliptic curve parameter to be verified, verification processing of the calculation speeds of doubling and halving is executed.

2倍算および1/2倍算の演算速度の検証処理は、実際に計算を実行してその処理時間を計測してもよいし、あるいは、必要となる計算回数を算出して、実際に計算を実行した場合の処理時間を算出する構成としてもよい。このステップS106における2倍算および1/2倍算の演算速度の検証処理を実行するための構成例について、図7、図8を参照して説明する。   The verification process of the doubling and halving calculation speeds may be performed by actually executing the calculation and measuring the processing time, or by calculating the necessary number of calculations and performing the actual calculation. It is good also as a structure which calculates the processing time at the time of performing. A configuration example for executing the verification processing of the calculation speed of the doubling and halving operations in step S106 will be described with reference to FIGS.

図7は、2倍算および1/2倍算の演算速度の検証処理を実行する1つの構成例として2倍算・1/2倍算速度算出手段320を示している。2倍算・1/2倍算速度算出手段320は、検証対象とする超楕円曲線に対応する曲線パラメータ310を入力して、曲線パラメータ310に基づいて、2倍算および1/2倍算の演算速度の検証を実行し、2倍算および1/2倍算演算時間情報315を出力する。   FIG. 7 shows a doubling / 1/2 doubling speed calculation means 320 as an example of a configuration for executing processing speed verification processing for doubling and halving. The doubling / 1/2 doubling speed calculation means 320 inputs a curve parameter 310 corresponding to the super elliptic curve to be verified, and performs doubling and ½ doubling based on the curve parameter 310. The calculation speed is verified, and the doubling and halving calculation time information 315 is output.

2倍算・1/2倍算速度算出手段320は、有限体演算部321、有限体演算時間測定部322、2倍算・1/2倍算演算時間算出部323、2倍算・1/2倍算有限体演算計算回数算出部324を有する。   The doubling / 1/2 doubling speed calculation means 320 includes a finite field calculation unit 321, a finite field calculation time measurement unit 322, a doubling / 1/2 doubling calculation time calculating unit 323, a doubling / 1 / It has a doubling finite field calculation calculation number calculation unit 324.

有限体演算部321では、2倍算・1/2倍算各々について、曲線パラメータ310に応じた有限体演算を実行し、有限体演算時間測定部322は、2倍算・1/2倍算各々についての有限体演算部321での有限体演算時間を測定する。   The finite field calculation unit 321 executes finite field calculation according to the curve parameter 310 for each of doubling and halving, and the finite field calculation time measuring unit 322 performs doubling and halving. The finite field calculation time in the finite field calculation unit 321 is measured for each.

次に2倍算・1/2倍算有限体演算計算回数算出部324は、2倍算および1/2倍算で必要な各有限体演算の計算回数を算出し、2倍算・1/2倍算演算時間算出部323は、
有限体演算時間測定部322の測定した2倍算・1/2倍算各々についての有限体演算部321での有限体演算時間情報と、
2倍算・1/2倍算有限体演算計算回数算出部324から受領する2倍算および1/2倍算で必要な各有限体演算の計算回数との情報、
これらの情報に基づいて、2倍算と1/2倍算の計算時間を算出して、この算出した2倍算および1/2倍算の計算速度を2倍算および1/2倍算の演算速度情報315として出力する。
Next, the doubling / 1/2 finite field calculation calculation unit 324 calculates the number of calculations for each finite field operation required for the doubling and 1/2 doubling. The doubling calculation time calculation unit 323
Finite field computation time information in the finite field computation unit 321 for each of doubling and ½ multiplication measured by the finite field computation time measuring unit 322;
Information about the number of calculations of each finite field operation required for the doubling and 1/2 doubling received from the doubling / 1/2 doubling finite field calculation calculating unit 324,
Based on this information, the calculation times of doubling and halving are calculated, and the calculated doubling and halving calculation speeds of doubling and halving are calculated. The calculation speed information 315 is output.

図8には、図7に示す構成とは異なる構成を持つ2倍算・1/2倍算速度算出手段340を示している。2倍算・1/2倍算速度算出手段340は、検証対象とする超楕円曲線に対応する曲線パラメータ330を入力して、曲線パラメータ330に基づいて、2倍算および1/2倍算の演算速度の検証を実行し、2倍算および1/2倍算の演算速度情報350を出力する。   FIG. 8 shows doubling / 1/2 doubling speed calculation means 340 having a configuration different from the configuration shown in FIG. The doubling / 1/2 doubling speed calculation means 340 receives the curve parameter 330 corresponding to the hyperelliptic curve to be verified, and performs doubling and ½ doubling based on the curve parameter 330. The calculation speed is verified, and calculation speed information 350 for doubling and halving is output.

図8に示す2倍算・1/2倍算速度算出手段340は、2倍算・1/2倍算演算手段341と、2倍算・1/2倍算演算時間算出部342を有する。この図8に示す構成は、検証対象とする超楕円曲線に対応する曲線パラメータ330を入力して、曲線パラメータ330に記載のベースポイントを適用して、2倍算・1/2倍算演算341において、2倍算・1/2倍算を実行して、その実行時間を2倍算・1/2倍算演算時間算出部342において算出し、2倍算および1/2倍算の演算速度情報350を出力する。   The doubling / 1/2 doubling speed calculating means 340 shown in FIG. 8 includes a doubling / 1/2 doubling calculating means 341 and a doubling / 1/2 doubling calculation time calculating unit 342. In the configuration shown in FIG. 8, the curve parameter 330 corresponding to the hyperelliptic curve to be verified is input, the base point described in the curve parameter 330 is applied, and the doubling / 1/2 doubling operation 341 is performed. , Doubling / 1/2 doubling is executed, and the execution time is calculated by the doubling / 1/2 doubling calculation time calculation unit 342, and the doubling and halving calculation speeds are calculated. Information 350 is output.

2倍算・1/2倍算演算手段341としては、例えば、先に図3、図4を参照して説明した構成が適用可能である。すなわち、2倍算、1/2倍算の計算を実行可能な暗号処理装置に時間計測機能を付加するのみで2倍算・1/2倍算速度算出手段は構成することが可能である。   As the doubling / 1/2 doubling calculation means 341, for example, the configuration described above with reference to FIGS. 3 and 4 can be applied. That is, the doubling / 1/2 doubling speed calculation means can be configured only by adding a time measurement function to a cryptographic processing apparatus capable of executing doubling and halving calculations.

図6に示すフローに戻り、2倍算・1/2倍算切換テーブル初期設定処理のシーケンスについての説明を続ける。ステップS106において、検証対象としているi番目の超楕円曲線パラメータの条件設定に基づいて2倍算および1/2倍算の演算速度の検証処理が、上述したように、例えば、図7、図8に示す構成を持つ2倍算・1/2倍算速度算出手段を適用して実行される。   Returning to the flow shown in FIG. 6, the description of the sequence of the doubling / 1/2 doubling switching table initial setting process will be continued. In step S106, the verification process of the doubling and halving calculation speeds based on the condition setting of the i-th hyperelliptic curve parameter to be verified is performed as described above, for example, as shown in FIGS. The doubling / 1/2 doubling speed calculation means having the configuration shown in FIG.

ステップS107では、この検証結果を判定する。1/2倍算が2倍算より高速であると判定された場合は、ステップS108に進み、i番目の曲線に対応する高速演算アルゴリズムとして1/2倍算をテーブルに記録する。一方、ステップS107において、2倍算が1/2倍算より高速であると判定された場合は、ステップS109に進み、i番目の曲線に対応する高速演算アルゴリズムとして2倍算をテーブルに記録する。   In step S107, the verification result is determined. If it is determined that the ½ multiplication is faster than the doubling operation, the process proceeds to step S108, and the ½ multiplication is recorded in the table as a fast operation algorithm corresponding to the i-th curve. On the other hand, if it is determined in step S107 that the doubling is faster than the halving, the process proceeds to step S109, and the doubling is recorded in the table as a high-speed calculation algorithm corresponding to the i-th curve. .

次に、ステップS110に進み、M個の超楕円曲線各々の識別子に対応する変数(i)の更新処理としてi=i+1とし、ステップS103以下の処理を繰り返し実行する。入力したM個の超楕円曲線に対応する曲線パラメータに対するすべての検証が終了すると、ステップS103のi≦M判定処理においてNoと判定され、ステップS121に進み、M個の超楕円曲線各々について、2倍算と1/2倍算のいずれが、高速演算可能であるかを記録した2倍算・1/2倍算切換テーブルを記憶部に格納して処理を終了する。   Next, the process proceeds to step S110, i = i + 1 is set as the update process of the variable (i) corresponding to the identifier of each of the M hyperelliptic curves, and the processes after step S103 are repeatedly executed. When all the verifications for the curve parameters corresponding to the input M hyperelliptic curves are completed, it is determined No in the i ≦ M determination process in step S103, and the process proceeds to step S121. The doubling / 1/2 multiplication switching table that records which of the multiplication and ½ multiplication can be performed at high speed is stored in the storage unit, and the process is terminated.

次に、上述した処理によって生成される2倍算・1/2倍算切換テーブルの具体例について、図9以下を参照して説明する。図9は2倍算・1/2倍算切換テーブルに記録されるデータについて説明する図である。2倍算・1/2倍算切換テーブルには、検証の実行されたM個の超楕円曲線のパラメータと、2倍算と1/2倍算のどちらが高速に実行可能かについての高速演算アルゴリズム情報が記録される。   Next, a specific example of the doubling / 1/2 multiplication switching table generated by the above-described processing will be described with reference to FIG. FIG. 9 is a diagram for explaining data recorded in the doubling / 1/2 doubling switching table. The doubling / 1/2 doubling switching table includes the parameters of the M superelliptic curves that have been verified, and a high-speed calculation algorithm that indicates whether doubling or 1/2 doubling can be performed at high speed. Information is recorded.

超楕円曲線パラメータは、先に説明したように、有限体のタイプを含み、以下のデータによって構成される。
*有限体のタイプ:正規基底もしくは多項式基底
*既約多項式:有限体のタイプが多項式基底の場合に必要
*有限体の拡大次数:n(F、q=2
*曲線の係数:h、h、h、f、f、f、f、f
(y+(h+hx+h)y=x+f+f+f+fx+f
*h(x)が既約か可約か:
*ベースポイントD:u、u、u、v1、.(D=(u+ux+u、vx+v))
*ベースポイントの位数r:160ビット以上の大きな素数
*コファクターc:N=c*rを満たす数(Nは被約因子の個数)
これらのデータである。
As described above, the hyperelliptic curve parameter includes a finite field type and is configured by the following data.
* Type of finite field: normal basis or polynomial basis * Irreducible polynomial: Necessary when the type of finite field is polynomial basis * Extended order of finite field: n (F q , q = 2 n )
* Curve coefficients: h 2 , h 1 , h 0 , f 4 , f 3 , f 2 , f 1 , f 0 ,
(Y 2 + (h 2 x 2 + h 1 x + h 0 ) y = x 5 + f 4 x 4 + f 3 x 3 + f 2 x 2 + f 1 x + f 0 )
* Whether h (x) is irreducible or reducible:
* Base point D 0 : u 2 , u 1 , u 0 , v 1, v 0 . (D 0 = (u 2 x 2 + u 1 x + u 0 , v 1 x + v 0 ))
* Base point order r: large prime number of 160 bits or more * cofactor c: number satisfying N = c * r (N is the number of reduced factors)
These data.

これらのパラメータ情報と、2倍算と1/2倍算のどちらが高速に実行可能かについての高速演算アルゴリズム情報が記録される。高速演算アルゴリズム情報は、例えば2倍算が高速である場合は[0]、1/2倍算が高速である場合は[1]が記録される。   These parameter information and high-speed calculation algorithm information as to which of doubling and 1 / 2-folding can be executed at high speed are recorded. As the high-speed calculation algorithm information, for example, [0] is recorded when the doubling is fast, and [1] is recorded when the doubling is fast.

具体的な、2倍算・1/2倍算切換テーブルの記録データ例を、図10〜図13に示す。図10〜図13には、4つの異なる超楕円曲線(C1,C2,C3,C4)の記録データ例を示している。   Specific recording data examples of the doubling / 1/2 doubling switching table are shown in FIGS. 10 to 13 show recorded data examples of four different super elliptic curves (C1, C2, C3, C4).

図10に示すデータは、示す2倍算・1/2倍算切換テーブルにおける超楕円曲線(C1)の記録データを示している。この記録データは、以下の構成を持つ。
長楕円曲線識別子:C1
有限体のタイプ:多項式基底
既約多項式:z83 + z7 + z4 + z2 + 1
有限体の拡大次数:83
曲線の係数:1, 1, 26c76058679188f41f7bc, 0, 3510a16ab31776237482d,
2905946b804eae26b529d, 12e53b7f0fb5f060de6f0, 15000c12e0c816fa3c90d,
h(x)が既約か可約か:既約
ベースポイント:1, c436c8f77259e78f912c2, d655910a524f04ae82ef3,
7c8cb3c0127db4a1e3d26, 82251eb5ca6a6bee606f7
ベースポイントの位数:
46768052394603572927593652383474201578491908925599
コファクター:2
高速演算アルゴリズム情報:[1]=1/2倍算が高速
The data shown in FIG. 10 indicates the recording data of the super elliptic curve (C1) in the doubling / 1/2 doubling switching table shown. This recorded data has the following configuration.
Long elliptic curve identifier: C1
Type of finite field: polynomial basis Irreducible polynomial: z 83 + z 7 + z 4 + z 2 + 1
Expansion order of finite fields: 83
Curve coefficient: 1, 1, 26c76058679188f41f7bc, 0, 3510a16ab31776237482d,
2905946b804eae26b529d, 12e53b7f0fb5f060de6f0, 15000c12e0c816fa3c90d,
Whether h (x) is irreducible or irreducible: irreducible Base point: 1, c436c8f77259e78f912c2, d655910a524f04ae82ef3,
7c8cb3c0127db4a1e3d26, 82251eb5ca6a6bee606f7
Base point order:
46768052394603572927593652383474201578491908925599
Cofactor: 2
High-speed algorithm information: [1] = 1/2 multiplication is fast

図11に示すデータは、示す2倍算・1/2倍算切換テーブルにおける超楕円曲線(C2)の記録データを示している。この記録データは、以下の構成を持つ。
長楕円曲線識別子:C2
有限体のタイプ:多項式基底
既約多項式:z83 + z7 + z4 + z2 + 1
有限体の拡大次数:83
曲線の係数:1, 1, 1, 0, 6aeccc919ba7b17905576, 674ad22c4ae3a624f2662,
64ed5727767c5bd20a4d2, 12d5d21396915b5770a14,
h(x)が既約か可約か:既約
ベースポイント:1, 3c6d393b089ae5d7f4d12 ,8189d7211e26eeb0a9c7
1, 75d9b6e682bf78baa3247, 1b11732b994c91069e295,
ベースポイントの位数:
46768052394606306447078621357434240674807384948657
コファクター:2
高速演算アルゴリズム情報:[0]=2倍算が高速
The data shown in FIG. 11 shows the recording data of the super elliptic curve (C2) in the doubling / 1/2 doubling switching table shown. This recorded data has the following configuration.
Long elliptic curve identifier: C2
Type of finite field: polynomial basis Irreducible polynomial: z 83 + z 7 + z 4 + z 2 + 1
Expansion order of finite fields: 83
Curve coefficient: 1, 1, 1, 0, 6aeccc919ba7b17905576, 674ad22c4ae3a624f2662,
64ed5727767c5bd20a4d2, 12d5d21396915b5770a14,
Whether h (x) is irreducible or irreducible: irreducible Base point: 1, 3c6d393b089ae5d7f4d12, 8189d7211e26eeb0a9c7
1, 75d9b6e682bf78baa3247, 1b11732b994c91069e295,
Base point order:
46768052394606306447078621357434240674807384948657
Cofactor: 2
High-speed calculation algorithm information: [0] = doubling is fast

図12に示すデータは、示す2倍算・1/2倍算切換テーブルにおける超楕円曲線(C3)の記録データを示している。この記録データは、以下の構成を持つ。
長楕円曲線識別子:C3
有限体のタイプ:多項式基底
既約多項式:z89 + z38 + 1
有限体の拡大次数:89
曲線の係数:1, 1, 10b4e25d9f772a17f079633, 0, 1cdcfccf952029e11a6d591,
57a45459240e1b_1e9c51, 1233884427d30a923afef30, 5232b0a2cc9c4205f0a77e,
h(x)が既約か可約か:既約
ベースポイント:1, 09b36fa3848e7e249fe8ed1, cc1478b173c15367a40ea81,
22c828ba94cd197b36de68, 2d8490ae18ed1ee4f3b5531
ベースポイントの位数:
191561942608247727889817815217170268849704825025870087
コファクター:2
高速演算アルゴリズム情報:[1]=1/2倍算が高速
The data shown in FIG. 12 shows the record data of the super elliptic curve (C3) in the doubling / 1/2 doubling switching table shown. This recorded data has the following configuration.
Long elliptic curve identifier: C3
Type of finite field: polynomial basis Irreducible polynomial: z 89 + z 38 + 1
Expansion order of finite field: 89
Curve coefficient: 1, 1, 10b4e25d9f772a17f079633, 0, 1cdcfccf952029e11a6d591,
57a45459240e1b_1e9c51, 1233884427d30a923afef30, 5232b0a2cc9c4205f0a77e,
Whether h (x) is irreducible or irreducible: irreducible Base point: 1, 09b36fa3848e7e249fe8ed1, cc1478b173c15367a40ea81,
22c828ba94cd197b36de68, 2d8490ae18ed1ee4f3b5531
Base point order:
191561942608247727889817815217170268849704825025870087
Cofactor: 2
High-speed algorithm information: [1] = 1/2 multiplication is fast

図13に示すデータは、示す2倍算・1/2倍算切換テーブルにおける超楕円曲線(C4)の記録データを示している。この記録データは、以下の構成を持つ。
長楕円曲線識別子:C4
有限体のタイプ:多項式基底
既約多項式:z89 + z38 + 1
有限体の拡大次数:89
曲線の係数:1, 1, 1, 0, 12c8551e2a5509652647b44, 10eed3aaec17720e2588277,
1e27989afc4eb5c4288db79, 16cc764d307ce3295795cbd,
h(x)が既約か可約か:既約
ベースポイント:0ec349e8d803268974d6e3, 92c7e15707841b0ea57e891,
46216855c55fd3186727e7, 5fd2e671dcad8609c3ad6b
ベースポイントの位数:
191561942608238453928841542765255795300282270809283583
コファクター:2
高速演算アルゴリズム情報:[0]=2倍算が高速
The data shown in FIG. 13 indicates the recording data of the super elliptic curve (C4) in the doubling / 1/2 multiplication switching table shown. This recorded data has the following configuration.
Long elliptic curve identifier: C4
Type of finite field: polynomial basis Irreducible polynomial: z 89 + z 38 + 1
Expansion order of finite field: 89
Curve coefficients: 1, 1, 1, 0, 12c8551e2a5509652647b44, 10eed3aaec17720e2588277,
1e27989afc4eb5c4288db79, 16cc764d307ce3295795cbd,
Whether h (x) is irreducible or irreducible: irreducible Base point: 0ec349e8d803268974d6e3, 92c7e15707841b0ea57e891,
46216855c55fd3186727e7, 5fd2e671dcad8609c3ad6b
Base point order:
191561942608238453928841542765255795300282270809283583
Cofactor: 2
High-speed calculation algorithm information: [0] = doubling is fast

暗号処理を実行する暗号処理装置は、このようなデータが記録された2倍算・1/2倍算切換テーブルを記憶部に格納し、実際に暗号処理演算を実行する際に適用する超楕円曲線のパラメータと、テーブルに登録されたパラメータとを照合して、一致するパラメータが登録されたエントリに対応付けられた高速演算アルゴリズム情報を参照して、2倍算が高速に演算可能か1/2倍算が高速に演算可能であるかを判別し、テーブルに登録された一方のアルゴリズムを選択して、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
上記(a),(b)のいずれかを実行する。この処理によって、超楕円曲線のパラメータに応じた最適な、すなわち最速の処理による演算が可能となる。
A cryptographic processing apparatus that performs cryptographic processing stores a doubling / 1/2 doubling switching table in which such data is recorded in a storage unit, and is a super ellipse that is applied when actually executing cryptographic processing. Whether the doubling can be performed at high speed by comparing the parameter of the curve with the parameter registered in the table and referring to the high-speed calculation algorithm information associated with the entry in which the matching parameter is registered. Determine whether doubling can be performed at high speed, select one of the algorithms registered in the table,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
One of the above (a) and (b) is executed. By this processing, it is possible to perform the calculation by the optimum, that is, the fastest processing according to the parameters of the hyperelliptic curve.

このような処理は、サーバやPCの他、様々なデジタル家電やICカードにおいて実行可能である。異なる曲線を適用した暗号処理演算が要請される機器において、上述したテーブルを保持することで、実際に暗号処理演算を実行する際に適用する超楕円曲線のパラメータと、テーブルに登録されたパラメータとを照合して、一致するパラメータが登録されたエントリに対応付けられた高速演算アルゴリズム情報を参照して、2倍算が高速に演算可能か1/2倍算が高速に演算可能であるかを判別し、テーブルに登録された一方のアルゴリズムを選択して処理をすることで高速な暗号処理演算が実行可能となる。   Such processing can be executed in various digital home appliances and IC cards in addition to servers and PCs. In a device that requires cryptographic processing calculation using different curves, by holding the above-described table, the parameters of the hyperelliptic curve applied when actually executing the cryptographic processing calculation, and the parameters registered in the table, And refer to the high-speed calculation algorithm information associated with the entry in which the matching parameter is registered, and determine whether the doubling can be performed at high speed or the ½ multiplication can be performed at high speed. It is possible to execute a high-speed cryptographic processing operation by determining and selecting one of the algorithms registered in the table for processing.

(4)種数2、標数2の有限体上定義された超楕円曲線の因子Dに対するスカラー倍算の演算処理において、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
から高速演算可能なアルゴリズムを選択して因子のスカラー倍算を実行する方法。
(4) In the arithmetic operation of scalar multiplication for the factor D of the hyperelliptic curve defined on the finite field of genus 2 and characteristic 2,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
A method that performs scalar multiplication of factors by selecting an algorithm that can be operated at high speed from.

次に、上述した処理、すなわち、超楕円曲線の因子Dに対するスカラー倍算の演算処理において、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
から高速演算可能なアルゴリズムを選択して因子のスカラー倍算を実行する処理構成を持つ暗号処理装置の構成例について説明する。
Next, in the processing described above, that is, the arithmetic operation of scalar multiplication for the factor D of the hyperelliptic curve,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
A configuration example of a cryptographic processing apparatus having a processing configuration for selecting an algorithm capable of high-speed calculation from the above and executing scalar multiplication of factors will be described.

図14に、本発明の暗号処理装置の一実施例に構成されるスカラー倍演算手段430の構成例を示す。図14に示すスカラー倍演算手段430は、図9〜図13を参照して説明したデータ構成を持つ2倍算・1/2倍算切換テーブル431と、2倍算・1/2倍算切換テーブル431を参照して、入力する超楕円曲線パラメータに基づいて、高速に実行可能な演算が2倍算であるか1/2倍算であるかを判断する群演算種類判定手段432と、先に図5を参照して説明した2倍算・1/2倍算切換スカラー倍算手段250と同様の構成を有し、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
(a)(b)のいずれのアルゴリズムについても実行可能な2倍算・1/2倍算切換スカラー倍算手段433を有する。
FIG. 14 shows a configuration example of the scalar multiplication unit 430 configured in an embodiment of the cryptographic processing apparatus of the present invention. 14 includes a doubling / 1/2 doubling switching table 431 having the data structure described with reference to FIGS. 9 to 13 and a doubling / 1/2 doubling switching. Referring to table 431, group operation type determination means 432 for determining whether an operation that can be performed at high speed is doubling or ½ multiplying based on the input hyperelliptic curve parameter; 5 has the same configuration as the doubling / 1/2 doubling switching scalar multiplication means 250 described with reference to FIG.
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
(A) A scalar multiplication means 433 for switching between doubling and halving that can be executed for any algorithm of (b) is provided.

図14に示すスカラー倍演算手段430を適用して、超楕円曲線の因子Dに対するスカラー倍算を実行する場合、入力データ410として、適用する超楕円曲線を定義する曲線パラメータ411、実際の演算対象となる入力因子412とスカラー値413の各情報がスカラー倍演算手段430に入力される。   When the scalar multiplication operation unit 430 shown in FIG. 14 is applied to execute the scalar multiplication on the factor D of the super elliptic curve, the curve parameter 411 that defines the super elliptic curve to be applied as the input data 410, the actual computation target Each information of the input factor 412 and the scalar value 413 is input to the scalar multiplication unit 430.

群演算種類判定手段432は、2倍算・1/2倍算切換テーブル431を参照して、入力する超楕円曲線の曲線パラメータ411に基づいて、高速に実行可能な演算が2倍算であるか1/2倍算であるかを判断する。その判断に基づいて、2倍算・1/2倍算切換スカラー倍算手段433を制御して、高速に実行される一方のアルゴリズム、すなわち、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
(a)(b)のいずれのアルゴリズムに基づくスカラー倍算を、2倍算・1/2倍算切換スカラー倍算手段433において実行し、処理結果としてのスカラー倍算結果451を出力データ450として出力する。
The group operation type determination unit 432 refers to the doubling / 1/2 doubling switching table 431, and the operation that can be executed at high speed is doubling based on the curve parameter 411 of the input super elliptic curve. Or ½ multiplication. Based on the determination, one algorithm executed at high speed by controlling the double / 1/2 multiplication switching scalar multiplication means 433,
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
Scalar multiplication based on any algorithm of (a) and (b) is executed in the scalar multiplication means 433 for switching between doubling and halving, and the scalar multiplication result 451 as the processing result is used as the output data 450. Output.

この構成において、2倍算・1/2倍算切換スカラー倍算手段433は、図5を参照して説明したと同様の構成を有し、図5に示す演算手段150は、図4を参照して説明した構成を持つものである。すなわち、図4に示すように、有限体演算手段120には、加算手段121、乗算手段122、2乗算手段123、逆元演算手段124、平方根演算手段125、ハーフトレース演算手段126、トレース演算手段127を有しており、これらの手段において、2倍算・1/2倍算切換スカラー倍算処理に必要な演算が実行される。   In this configuration, the doubling / 1/2 doubling switching scalar multiplication means 433 has the same configuration as described with reference to FIG. 5, and the calculating means 150 shown in FIG. The configuration described above is described. That is, as shown in FIG. 4, the finite field computing means 120 includes an adding means 121, a multiplying means 122, a 2 multiplying means 123, an inverse element computing means 124, a square root computing means 125, a half trace computing means 126, and a trace computing means. In these means, operations necessary for the doubling / 1/2 doubling switching scalar multiplication processing are executed.

先に、図4、図5を参照して説明したように、加算手段121、乗算手段122、2乗算手段123、逆元演算手段124は、ハードウェア構成、プログラムにおいて2倍算、1/2倍算、加算演算各々に専用の構成とするのではなく、いずれの処理においても共通に利用可能な1つの構成とする。共通構成とすることで、演算手段の構成としてのハードウェアサイズ、プログラムサイズを小型化することが可能となる。ハードウェアを用いた場合はゲート数の削減、装置の小型化を実現することができる。   As described above with reference to FIGS. 4 and 5, the adding means 121, the multiplying means 122, the 2 multiplying means 123, and the inverse element calculating means 124 have a hardware configuration, doubling in the program, 1/2 Instead of a dedicated configuration for each of the multiplication and addition operations, a single configuration that can be used in common in both processes is used. By adopting a common configuration, it is possible to reduce the hardware size and program size as the configuration of the calculation means. When hardware is used, the number of gates can be reduced and the size of the apparatus can be reduced.

群演算種類判定手段432においては、2倍算・1/2倍算切換テーブル431を参照して、入力する超楕円曲線の曲線パラメータ411に基づいて、高速に実行可能な演算が2倍算であるか1/2倍算であるかを判断する処理が行なわれる。具体的には、例えば図9〜図13を参照して説明した2倍算・1/2倍算切換テーブルを参照して判断が実行される。例えば、入力する曲線パラメータが、図10に示す曲線識別子(C1)に登録されたパラメータと一致する場合、テーブルには、高速演算アルゴリズム情報として1/2倍算が高速であることが記録されているので、その判断に基づいて、2倍算・1/2倍算切換スカラー倍算手段433を、加算および1/2倍算を適用した演算アルゴリズムに基づくスカラー倍算を実行するように制御して、2倍算・1/2倍算切換スカラー倍算手段433に、入力因子412、スカラー値413を入力してスカラー倍算を実行させて、処理結果としてのスカラー倍算結果451を出力データ450として出力する。   The group operation type determination means 432 refers to the doubling / 1/2 doubling switching table 431, and based on the curve parameter 411 of the input super elliptic curve, the operation that can be executed at high speed is doubling. A process of determining whether there is a ½ multiplication is performed. Specifically, for example, the determination is performed with reference to the doubling / 1/2 doubling switching table described with reference to FIGS. For example, if the input curve parameter matches the parameter registered in the curve identifier (C1) shown in FIG. 10, the table records that the 1/2 multiplication is high-speed as the high-speed calculation algorithm information. Therefore, based on the determination, the doubling / 1/2 doubling switching scalar multiplication means 433 is controlled to execute scalar multiplication based on an arithmetic algorithm to which addition and ½ multiplication are applied. The input factor 412 and the scalar value 413 are input to the scalar multiplication means 433 for switching between doubling and doubling, and the scalar multiplication is executed, and the scalar multiplication result 451 as the processing result is output data. It outputs as 450.

このように、本発明の構成では、超楕円曲線暗号処理を実行する構成において、曲線パラメータ各々について2倍算・1/2倍算のいずれが高速演算可能かを登録した2倍算・1/2倍算切換テーブルを参照して、2倍算と1/2倍算のうち、高速な演算を選択して実行する構成としたので、適用する曲線に対して、常に高速なスカラー倍算を実行することができる。   As described above, in the configuration of the present invention, in the configuration in which the hyperelliptic curve encryption process is executed, a doubling / 1 / registering which of the doubling / 1/2 doubling is possible for each curve parameter. Referring to the doubling switching table, it is configured to select and execute a high-speed operation between doubling and ½ doubling. Therefore, high-speed scalar multiplication is always performed on the applied curve. Can be executed.

図14を参照して本発明の暗号処理装置の構成例について説明したが、図14に示す構成は、1つの構成例であり、本発明の暗号処理装置の構成はこの構成に限られるものではない。図15を参照して本発明の暗号処理装置の構成例について説明する。   Although the configuration example of the cryptographic processing apparatus of the present invention has been described with reference to FIG. 14, the configuration shown in FIG. 14 is one configuration example, and the configuration of the cryptographic processing apparatus of the present invention is not limited to this configuration. Absent. A configuration example of the cryptographic processing apparatus of the present invention will be described with reference to FIG.

図15には、制御部481、演算処理部482、記憶部483、演算速度算出部484を持つ暗号処理装置を示している。制御部481は、暗号処理演算に適用する超楕円曲線の曲線パラメータや有限体のタイプに基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する。演算処理部482は、制御部481において、高速演算可能と判定されたアルゴリズムを選択適用して、超楕円曲線の因子Dに対するスカラー倍算の演算処理を実行する。図14の構成では、群演算種類判定手段432が制御部に相当し、2倍算・1/2倍算切換スカラー倍算手段433が演算処理部に相当する。   FIG. 15 shows an encryption processing apparatus having a control unit 481, a calculation processing unit 482, a storage unit 483, and a calculation speed calculation unit 484. Based on the curve parameters of the super-elliptic curve applied to the cryptographic processing operation and the type of the finite field, the control unit 481 uses either a doubling application algorithm or a ½ multiplication application algorithm as a scalar multiplication algorithm. It is determined whether or not the calculation algorithm is capable of high speed calculation. The arithmetic processing unit 482 selects and applies the algorithm determined by the control unit 481 to be capable of high-speed arithmetic, and executes scalar multiplication arithmetic processing on the factor D of the hyperelliptic curve. In the configuration of FIG. 14, the group operation type determination unit 432 corresponds to the control unit, and the doubling / 1/2 multiplication switching scalar multiplication unit 433 corresponds to the operation processing unit.

制御部481は、例えば、超楕円曲線の曲線パラメータと、高速演算の実行可能なアルゴリズム情報とを対応付けたテーブルを記憶部483から取得し、暗号処理演算に適用する超楕円曲線の曲線パラメータと前記テーブルに記録された曲線パラメータ情報とを比較照合し、一致または類似するテーブル記録データに対応して設定されたアルゴリズム情報を高速演算可能なアルゴリズムと判定する処理を実行する。   For example, the control unit 481 acquires from the storage unit 483 a table associating the curve parameters of the hyperelliptic curve with the algorithm information capable of performing high-speed computation, and the curve parameters of the superelliptic curve applied to the cryptographic processing computation The curve parameter information recorded in the table is compared and collated, and the algorithm information set corresponding to the matched or similar table record data is determined as an algorithm capable of high-speed calculation.

演算処理部482は、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムの両アルゴリズムを実行可能な構成を有し、2倍算および1/2倍算において共通に利用する演算実行ハードウェアまたはプログラムを利用した演算処理を実行する。   Arithmetic processing unit 482 has a configuration capable of executing both a doubling calculation algorithm and a doubling calculation algorithm, and performs arithmetic operations commonly used in doubling and halving Arithmetic processing using hardware or a program is executed.

制御部481のアルゴリズム判定処理は、先に、図6に示すフローチャートを参照して説明した処理に従って実行される。すなわち、まず、暗号処理演算に適用する超楕円曲線の曲線パラメータ、具体的には、暗号処理演算に適用する種数2、標数2の有限体上定義された超楕円曲線:y+h(x)y=f(x)の曲線パラメータに含まれるコファクター[c]が2で、h(x)が既約多項式の場合に、1/2倍算適用演算アルゴリズムの高速実行可能性高速に計算が可能であると判定し、この場合に、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する。判定処理には、先に、図9〜図13を参照して説明した2倍算・1/2倍算切換テーブルを記憶部483から取得してテーブルの記録情報に基づいて判定する。 The algorithm determination process of the control unit 481 is executed according to the process described above with reference to the flowchart shown in FIG. That is, first, the curve parameter of the super elliptic curve applied to the cryptographic processing operation, specifically, the super elliptic curve defined on the genus 2 and characteristic 2 finite field applied to the cryptographic processing operation: y 2 + h ( x) When the cofactor [c] included in the curve parameter of y = f (x) is 2 and h (x) is an irreducible polynomial, the fast execution feasibility of the ½ multiplication application algorithm It is determined that the calculation is possible, and in this case, it is determined which of the calculation algorithm of the doubling calculation application algorithm and the doubling calculation application algorithm is capable of high-speed calculation. In the determination process, the doubling / 1/2 doubling switching table described above with reference to FIGS. 9 to 13 is acquired from the storage unit 483 and determined based on the recorded information of the table.

なお、暗号処理装置内に演算速度算出手段484を設定し、演算速度算出手段484が、演算処理部482を適用して、暗号処理演算に適用する超楕円曲線の曲線パラメータを適用した2倍算適用演算と、1/2倍算適用演算を実行させて処理時間を計測する構成としてもよい。この場合、制御部481は、演算速度算出手段484の算出結果に基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かの判定処理を実行する。   Note that the calculation speed calculation means 484 is set in the cryptographic processing apparatus, and the calculation speed calculation means 484 applies the calculation processing unit 482 and applies the curve parameter of the hyperelliptic curve applied to the cryptographic processing calculation. The processing time may be measured by executing the application calculation and the ½ multiplication application calculation. In this case, based on the calculation result of the calculation speed calculation means 484, the control unit 481 uses either a doubling calculation algorithm or a ½ multiplication calculation algorithm as a scalar multiplication algorithm. Execute a process to determine whether it is possible.

具体的に、スカラー倍算を行った際に、2倍算と1/2倍算でどのような差が出るのかを考察する。
ここでは、コファクター[c]は2であると仮定する。また、スカラー倍算は、Double−and−addもしくはHalve−and−addを用いる。スカラー値のビット長(ベースポイントの位数のビット長)をmとする。この場合、スカラー値の非零のビット数はおおよそm/2個となる。よって、Double−and−addとHalve−and−addの計算量は、
((加算の計算量)/2+(2倍算or1/2倍算の計算量))×m
で計算することができる。
Specifically, when scalar multiplication is performed, the difference between doubling and halving will be considered.
Here, it is assumed that the cofactor [c] is 2. Further, scalar multiplication uses Double-and-add or Halve-and-add. Let m be the bit length of the scalar value (bit length of the base point order). In this case, the number of non-zero bits of the scalar value is approximately m / 2. Therefore, the calculation amount of Double-and-add and Have-and-add is
((Calculation amount of addition) / 2 + (Calculation amount of doubling or 1/2)) × m
Can be calculated with

まず、曲線パラメータ(h=h=1、f=0、h(x)は既約多項式)を用いた場合を考える。
このとき、加算の計算量は、
21M+3S+1I
である。
多項式基底を用いた場合、1S=0.1M、1I=8Mと仮定していたので、多項式基底での加算の計算量は29.3MPとなる。
また、2倍算は26.7M、1/2倍算は25.05Mである。
よって、
2倍算を適用したDouble−and−addを用いた場合は41.357M×m、
1/2倍算を適用したHalve−and−addを用いた場合は39.7Mxm
となり、
1/2倍算を用いた方が2倍算を用いたものよりも、4%ほど高速である。
First, consider a case where curve parameters (h 2 = h 1 = 1, f 4 = 0, h (x) is an irreducible polynomial) are used.
At this time, the calculation amount of addition is
21M + 3S + 1I
It is.
When using polynomial basis, 1S = 0.1M P, since it assumes that 1I = 8M P, the computational amount of addition in the polynomial basis becomes 29.3MP.
Also, doubling the 26.7M P, 1/2 multiplication is 25.05M P.
Therefore,
41.357M P × m when using Double-and-add to which doubling is applied,
39.7M P xm when using Halve-and-add with 1/2 multiplication applied
And
Using ½ multiplication is about 4% faster than using doubling.

超楕円曲線暗号処理手段が2倍算のみを搭載していた場合、上記曲線パラメータを用いた場合は、より高速な1/2倍算アルゴリズムを適用することができないため、計算が遅くなるという欠点がある。しかしながら、本発明を用いれば、1/2倍算を選択し、Halve−and−addを実行し、計算を高速に行うことができる。   If the hyperelliptic curve encryption processing means is equipped with only doubling, the above-mentioned curve parameter cannot be applied to the faster doubling algorithm, so the calculation is slow. There is. However, by using the present invention, it is possible to select 1/2 multiplication, execute Halve-and-add, and perform calculation at high speed.

次に、曲線パラメータ(h=h=h=1、f=0)を用いた場合を考える。
このとき、加算の計算量は21M+3S+1Iである。
多項式基底を用いた場合、1S=0.1M、1I=8Mと仮定していたので、多項式基底での加算の計算量は29.3Mとなる。
また、2倍算は23.7M、1/2倍算は24。05Mである。
よって、
2倍算を適用したDouble−and−addを用いた場合は38.35M×m、
1/2倍算を適用したHalve−and−addを用いた場合は38.7M×m
となり、2倍算を用いた方が1/2倍算を用いたものよりも、1%ほど高速である。
Next, consider the case where curve parameters (h 2 = h 1 = h 1 = 1, f 4 = 0) are used.
At this time, the amount of calculation for addition is 21M + 3S + 1I.
When using polynomial basis, 1S = 0.1M P, since we assume that 1I = 8M P, the computational amount of addition in the polynomial basis becomes 29.3M P.
Also, doubling the 23.7M P, 1/2 multiplication is 24.05M P.
Therefore,
38.35M P × m when using the Double-and-add of applying the doubling,
When using Halve-and-add to which 1/2 multiplication is applied, 38.7M P × m
Thus, using the doubling is about 1% faster than using the doubling.

超楕円曲線暗号処理手段が1/2倍算のみを搭載していた場合、上記曲線パラメータを用いた場合は、より高速な2倍算アルゴリズムを適用することができないため、計算が遅くなるという欠点がある。しかしながら、本発明を用いれば、2倍算を選択し、Double−and−addを実行し、計算を高速に行うことができる。   When the super elliptic curve encryption processing means is equipped with only ½ multiplication, the above-mentioned curve parameter cannot be applied to a faster doubling algorithm, so that the calculation is slow. There is. However, if the present invention is used, it is possible to select doubling, execute double-and-add, and perform calculation at high speed.

さらに、h(x)が既約多項式で、かつ、曲線パラメータカラーが一般的(h=1、f=0)で、多項式基底を用いた場合や、h(x)が既約多項式で、かつ、任意の曲線パラメータで、正規基底を用いた場合は、1/2倍算の方が2倍算よりも高速である。そのため、この場合、本発明により、高速な1/2倍算を選択し、高速にスカラー倍算を計算することができる。 Furthermore, when h (x) is an irreducible polynomial and the curve parameter color is general (h 2 = 1, f 4 = 0) and a polynomial basis is used, or h (x) is an irreducible polynomial. In addition, when a normal basis is used with an arbitrary curve parameter, ½ multiplication is faster than doubling. Therefore, in this case, according to the present invention, high-speed half multiplication can be selected and scalar multiplication can be calculated at high speed.

また、h(x)が可約多項式である場合、2倍算を選択することにより、高速にスカラー倍算を行うことができる。
また、コファクターが2以外の場合は、2倍算を選択することにより、高速にスカラー倍算を行うことができる。
上記の場合は、各種有限体の演算速度を仮定して考えたものである。実際の超楕円曲線暗号処理手段の構成や実装方法により、2倍算と1/2倍算の演算速度の関係は、上記とは異なることもありうるが、上記はあくまでも一例を挙げたものである。
Further, when h (x) is a reducible polynomial, scalar multiplication can be performed at high speed by selecting doubling.
When the cofactor is other than 2, scalar multiplication can be performed at high speed by selecting doubling.
In the above case, the calculation speed of various finite fields is assumed. Depending on the configuration and implementation method of the actual hyperelliptic curve encryption processing means, the relationship between the doubling and ½ doubling may be different from the above, but the above is just an example. is there.

[暗号処理装置のハードウェア構成例]
最後に、上述の暗号処理を実行するデバイスとしてのICモジュール500の構成例を図16に示す。上述の処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図16に示すICモジュール500は、これら様々な機器に構成することが可能である。
[Hardware configuration example of cryptographic processor]
Finally, FIG. 16 shows a configuration example of the IC module 500 as a device that executes the above-described encryption processing. The above-described processing can be executed in, for example, various information processing apparatuses such as a PC, an IC card, a reader / writer, and the IC module 500 shown in FIG. 16 can be configured in these various devices.

図16に示すCPU(Central processing Unit)501は、暗号処理の開始や、終了、データの送受信の制御、各構成部間のデータ転送制御、さらに、上述した2倍算・1/2倍算切換テーブルを参照した高速アルゴリズムの判定処理、その他の各種プログラムを実行するプロセッサとしての制御部である。   A CPU (Central processing Unit) 501 shown in FIG. 16 starts and ends cryptographic processing, controls data transmission / reception, controls data transfer between components, and further performs the above-described doubling / 1/2 multiplication switching. It is a control unit as a processor that executes a high-speed algorithm determination process referring to a table and executes other various programs.

制御部としてのCPU501は、具体的には、入力する曲線パラメータに基づいて、2倍算・1/2倍算切換テーブルを参照し手入力パラメータと一致または類似するパラメータを持つエントリに登録された高速演算アルゴリズム情報を取得して実行する演算を、
(a)加算および2倍算を適用した演算アルゴリズム、
(b)加算および1/2倍算を適用した演算アルゴリズム、
(a)(b)のいずれのアルゴリズムとするかを決定する処理を実行する。
Specifically, the CPU 501 as the control unit is registered in an entry having a parameter that matches or is similar to the manually input parameter with reference to the doubling / 1/2 doubling switching table based on the input curve parameter. Operations that acquire and execute high-speed calculation algorithm information
(A) an arithmetic algorithm to which addition and doubling are applied,
(B) an arithmetic algorithm to which addition and 1/2 multiplication are applied,
(A) The process which determines which algorithm of (b) is used is performed.

メモリ502は、CPU501が実行するプログラム、あるいは演算パラメータとしての固定データを格納するROM(Read-Only-Memory)、CPU501の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるRAM(Random Access Memory)等からなる。   The memory 502 is a ROM (Read-Only-Memory) that stores a program executed by the CPU 501 or fixed data as an operation parameter, a program executed in the processing of the CPU 501, and a parameter storage area that changes as appropriate in the program processing, It consists of RAM (Random Access Memory) used as a work area.

なお、メモリ502に格納する演算実行プログラムは、上述したベースポイントの設定処理、スカラー倍算としての加算、2倍算、1/2倍算の実行シーケンスを含むプログラムとして設定される。また、メモリ502は暗号処理に必要な鍵データ等の格納領域、さらに、上述した2倍算・1/2倍算切換テーブルの格納領域として使用可能である。これらのデータ等の格納領域は、耐タンパ構造を持つメモリとして構成されることが好ましい。   The operation execution program stored in the memory 502 is set as a program including the above-described base point setting process, addition as scalar multiplication, doubling, and ½ multiplication. The memory 502 can be used as a storage area for key data and the like necessary for encryption processing, and further as a storage area for the above-described doubling / 1/2 multiplication switching table. These data storage areas are preferably configured as a memory having a tamper resistant structure.

暗号処理手部503は、上述したスカラー倍算処理を含む暗号処理、復号処理等を実行する。なお、ここでは、暗号処理手段を個別モジュールとした例を示したが、このような独立した暗号処理モジュールを設けず、例えば暗号処理プログラムをROMに格納し、CPU501がROM格納プログラムを読み出して実行するように構成してもよい。   The encryption processing unit 503 executes encryption processing, decryption processing, and the like including the above-described scalar multiplication processing. Here, an example is shown in which the cryptographic processing means is an individual module, but such an independent cryptographic processing module is not provided, for example, a cryptographic processing program is stored in the ROM, and the CPU 501 reads and executes the ROM stored program. You may comprise.

乱数発生器504は、暗号処理に必要となる鍵の生成などにおいて必要となる乱数の発生処理を実行する。   The random number generator 504 executes random number generation processing necessary for generating a key necessary for cryptographic processing.

送受信部505は、外部とのデータ通信を実行するデータ通信処理部であり、例えばリーダライタ等、ICモジュールとのデータ通信を実行し、ICモジュール内で生成した暗号文の出力、あるいは外部のリーダライタ等の機器からのデータ入力などを実行する。   The transmission / reception unit 505 is a data communication processing unit that performs data communication with the outside. For example, the data transmission / reception unit 505 performs data communication with an IC module such as a reader / writer and outputs ciphertext generated in the IC module, or an external reader. Data input from devices such as writers is executed.

以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。   The present invention has been described in detail above with reference to specific embodiments. However, it is obvious that those skilled in the art can make modifications and substitutions of the embodiments without departing from the gist of the present invention. In other words, the present invention has been disclosed in the form of exemplification, and should not be interpreted in a limited manner. In order to determine the gist of the present invention, the claims should be taken into consideration.

なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。   The series of processes described in the specification can be executed by hardware, software, or a combined configuration of both. When executing processing by software, the program recording the processing sequence is installed in a memory in a computer incorporated in dedicated hardware and executed, or the program is executed on a general-purpose computer capable of executing various processing. It can be installed and run.

例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。   For example, the program can be recorded in advance on a hard disk or ROM (Read Only Memory) as a recording medium. Alternatively, the program is temporarily or permanently stored on a removable recording medium such as a flexible disk, a CD-ROM (Compact Disc Read Only Memory), an MO (Magneto optical) disk, a DVD (Digital Versatile Disc), a magnetic disk, or a semiconductor memory. It can be stored (recorded). Such a removable recording medium can be provided as so-called package software.

なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。   The program is installed on the computer from the removable recording medium as described above, or is wirelessly transferred from the download site to the computer, or is wired to the computer via a network such as a LAN (Local Area Network) or the Internet. The computer can receive the program transferred in this manner and install it on a recording medium such as a built-in hard disk.

なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。   Note that the various processes described in the specification are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary. Further, in this specification, the system is a logical set configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same casing.

本発明の一実施例構成によれば、超楕円曲線暗号の因子Dに対するスカラー倍算を実行する構成において、暗号処理演算に適用する超楕円曲線の曲線パラメータに基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かの判定を行ない、高速演算可能と判定されたアルゴリズムを選択適用してスカラー倍算処理を実行する構成としたので、様々な曲線に対応する暗号処理に伴うスカラー倍算を、確実に高速な処理で行なうことが可能となる。すなわち、曲線パラメータに応じたアルゴリズム選択により、スカラー倍算における計算量を削減した高速演算が実現される。例えば、ネットバンキング、音楽配信などといった様々なサービスを受領してサービス毎に異なる超楕円曲線パラメータに対応する暗号処理演算を実行する必要のある情報処理装置において、本発明を適用することで、個々の処理に際して常に高速処理可能なアルゴリズムを選択した演算を実行することができる。   According to the configuration of one embodiment of the present invention, in the configuration for executing the scalar multiplication on the factor D of the hyperelliptic curve cryptography, as the scalar multiplication algorithm based on the curve parameter of the superelliptic curve applied to the cryptographic processing operation, Determines which of the doubling calculation algorithm and ½ doubling calculation algorithm can be performed at high speed, and selectively applies the algorithm determined to be capable of high speed calculation to execute scalar multiplication processing. With this configuration, scalar multiplication associated with encryption processing corresponding to various curves can be reliably performed at high speed. That is, by selecting an algorithm according to the curve parameter, high-speed calculation with a reduced amount of calculation in scalar multiplication is realized. For example, by applying the present invention to an information processing apparatus that needs to receive various services such as net banking and music distribution and execute cryptographic processing operations corresponding to different hyperelliptic curve parameters for each service, In this process, it is possible to execute an operation in which an algorithm that can always be processed at high speed is selected.

種数2の超楕円曲線暗号のスカラー倍算における加算処理、2倍算処理のアルゴリズムについて説明する図である。It is a figure explaining the algorithm of the addition process in a scalar multiplication of the genus 2 super elliptic curve encryption, and a 2 multiplication process. 種数2の超楕円曲線暗号の1/2倍算の場合分け処理について説明する図である。It is a figure explaining the case division process of the 1/2 multiplication of the super-elliptic curve encryption of the genus 2. FIG. 超楕円曲線の因子Dに対する2倍算、および1/2倍算の双方を算出可能とした暗号処理装置の演算手段の構成例を示す図である。It is a figure which shows the structural example of the calculating means of the encryption processing apparatus which enabled calculation of both the doubling with respect to the factor D of a hyperelliptic curve, and a 1/2 multiplication. 2倍算、1/2倍算に加えて加算処理も実行可能とする演算手段の構成例を示す図である。It is a figure which shows the structural example of the calculating means which can also perform an addition process in addition to a doubling and a 1/2 multiplication. 2倍算・1/2倍算切換スカラー倍算手段の構成例を示す図である。It is a figure which shows the structural example of a doubling / 1/2 multiplication switching scalar multiplication means. 2倍算・1/2倍算切換テーブル初期設定処理のシーケンスについて説明するフローチャートを示す図である。It is a figure which shows the flowchart explaining the sequence of a doubling / 1/2 multiplication switching table initial setting process. 2倍算および1/2倍算の演算速度の検証処理を実行するための構成例について説明する図である。It is a figure explaining the structural example for performing the verification process of the calculation speed of a doubling and a 1/2 multiplication. 2倍算および1/2倍算の演算速度の検証処理を実行するための構成例について説明する図である。It is a figure explaining the structural example for performing the verification process of the calculation speed of a doubling and a 1/2 multiplication. 2倍算・1/2倍算切換テーブルの具体例について説明する図である。It is a figure explaining the specific example of a doubling / 1/2 multiplication switching table. 2倍算・1/2倍算切換テーブルの具体例について説明する図である。It is a figure explaining the specific example of a doubling / 1/2 multiplication switching table. 2倍算・1/2倍算切換テーブルの具体例について説明する図である。It is a figure explaining the specific example of a doubling / 1/2 multiplication switching table. 2倍算・1/2倍算切換テーブルの具体例について説明する図である。It is a figure explaining the specific example of a doubling / 1/2 multiplication switching table. 2倍算・1/2倍算切換テーブルの具体例について説明する図である。It is a figure explaining the specific example of a doubling / 1/2 multiplication switching table. 本発明の暗号処理装置におけるスカラー倍演算手段の一実施例構成を示す図である。It is a figure which shows one Example structure of the scalar multiplication means in the encryption processing apparatus of this invention. 本発明の暗号処理装置の一実施例構成を示す図である。It is a figure which shows one Example structure of the encryption processing apparatus of this invention. 本発明の暗号処理演算を実行する暗号処理実行デバイス例としてのICモジュールの構成例を示す図である。It is a figure which shows the structural example of IC module as an example of the encryption process execution device which performs the encryption process calculation of this invention.

符号の説明Explanation of symbols

10 入力データ
11 曲線パラメータ
12 群演算種類情報
13 入力因子
20 出力データ
21 出力因子
100 演算手段
110 群演算手段
111 2倍算処理手段
112 1/2倍算処理手段
120 有限体演算手段
121 加算手段
122 乗算手段
123 2乗算手段
124 逆元演算手段
125 平方根演算手段
126 ハーフトレース演算手段
127 トレース演算手段
150 演算手段
160 群演算手段
161 2倍算処理手段
162 1/2倍算処理手段
163 加算処理手段
210 入力データ
211 曲線パラメータ
212 群演算種類情報
213 入力因子
220 出力データ
221 スカラー倍算結果
250 2倍算・1/2倍算切換スカラー倍算手段
251 スカラー値変換手段
252 スカラー倍算処理手段
310 曲線パラメータ
315 2倍算・1/2倍算演算時間情報
320 2倍算・1/2倍算速度算出手段
321 有限体演算部
322 有限体演算時間測定部
323 2倍算・1/2倍算演算時間算出部
324 2倍算・1/2倍算有限体演算計算回数算出部
330 曲線パラメータ
340 2倍算・1/2倍算速度算出手段
341 2倍算・1/2倍算演算手段
342 2倍算・1/2倍算演算時間算出部
350 2倍算・1/2倍算演算時間情報
410 入力データ
411 曲線パラメータ
412 入力因子
413 スカラー値
430 スカラー倍演算手段
431 2倍算・1/2倍算切換テーブル
432 群演算種類判定手段
433 2倍算・1/2倍算切換スカラー倍算手段
450 出力データ
451 スカラー倍算結果
481 制御部
482 演算処理部
483 記憶部
484 演算速度算出部
500 ICモジュール
501 CPU(Central Processing Unit)
502 メモリ
503 暗号処理部
504 乱数発生器
505 送受信部
DESCRIPTION OF SYMBOLS 10 Input data 11 Curve parameter 12 Group calculation type information 13 Input factor 20 Output data 21 Output factor 100 Calculation means 110 Group calculation means 111 Double multiplication processing means 112 1/2 Multiplication processing means 120 Finite field calculation means 121 Addition means 122 Multiplying means 123 2 Multiplying means 124 Inverse element computing means 125 Square root computing means 126 Half trace computing means 127 Trace computing means 150 Computing means 160 Group computing means 161 Double multiplication processing means 162 1/2 Multiplication processing means 163 Addition processing means 210 Input data 211 Curve parameter 212 Group operation type information 213 Input factor 220 Output data 221 Scalar multiplication result 250 Scalar multiplication unit 251 Scalar value conversion unit 252 Scalar multiplication processing unit 310 Curve parameter 315 doubling / 1/2 doubling calculation time information 320 doubling / 1/2 doubling speed calculation means 321 finite field calculator 322 finite field calculator time measuring unit 323 doubling / 1/2 doubling Calculation time calculation unit 324 doubling / 1/2 doubling finite field calculation calculation number calculating unit 330 curve parameter 340 doubling / 1/2 doubling speed calculating means 341 doubling / 1/2 doubling calculating means 342 Doubling / 1/2 doubling calculation time calculation unit 350 doubling / 1/2 doubling calculation time information 410 input data 411 curve parameter 412 input factor 413 scalar value 430 scalar doubling calculation means 431 doubling / 1 / Double multiplication switching table 432 Group operation type determination means 433 Double multiplication / 1/2 multiplication switching scalar multiplication means 450 Output data 451 Scalar multiplication result 481 Control unit 482 Operation processing unit 483 Storage unit 484 Calculation speed calculation unit 500 IC module 501 CPU (Central Processing Unit)
502 Memory 503 Cryptographic Processing Unit 504 Random Number Generator 505 Transceiver

Claims (14)

超楕円曲線暗号に基づく暗号処理演算を実行する暗号処理装置であり、
暗号処理演算に適用する超楕円曲線の曲線パラメータに基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する制御部と、
高速演算可能と判定されたアルゴリズムを選択適用して、超楕円曲線暗号におけるスカラー倍算処理を実行する演算処理部と、
を有することを特徴とする暗号処理装置。
A cryptographic processing device that performs cryptographic processing operations based on hyperelliptic curve cryptography,
Based on the curve parameters of the hyperelliptic curve applied to the cryptographic processing operation, as a scalar multiplication algorithm, it is determined whether the calculation algorithm of the doubling application algorithm or the 1/2 multiplication application algorithm can be operated at high speed. A control unit,
An arithmetic processing unit that executes a scalar multiplication process in the hyperelliptic curve cryptography by selectively applying an algorithm determined to be capable of high-speed computation;
A cryptographic processing device comprising:
前記制御部は、
超楕円曲線の曲線パラメータと、高速演算の実行可能なアルゴリズム情報とを対応付けたテーブルを記憶部から取得し、暗号処理演算に適用する超楕円曲線の曲線パラメータと前記テーブルに記録された曲線パラメータ情報とを比較照合し、一致または類似するテーブル記録データに対応して設定されたアルゴリズム情報を高速演算可能なアルゴリズムと判定する処理を実行する構成であることを特徴とする請求項1に記載の暗号処理装置。
The controller is
A table associating the curve parameter of the hyperelliptic curve with the algorithm information capable of performing high-speed calculation is acquired from the storage unit, and the curve parameter of the superelliptic curve to be applied to the cryptographic processing calculation and the curve parameter recorded in the table 2. The configuration according to claim 1, wherein the information is compared and collated, and processing for determining algorithm information set in correspondence with matching or similar table recording data as an algorithm capable of high-speed calculation is executed. Cryptographic processing device.
前記演算処理部は、
2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムの両アルゴリズムを実行可能な構成を有し、2倍算および1/2倍算において共通に利用する演算実行ハードウェアまたはプログラムを利用した演算処理を実行する構成であることを特徴とする請求項1に記載の暗号処理装置。
The arithmetic processing unit includes:
Arithmetic execution hardware or program that can be used in both doubling and halving operations, and has a configuration that can execute both doubling and halving algorithms The cryptographic processing device according to claim 1, wherein the cryptographic processing device is configured to execute the arithmetic processing performed.
前記制御部は、
暗号処理演算に適用する超楕円曲線の曲線パラメータ、および暗号処理演算に適用する有限体のタイプに基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する処理を実行する構成であることを特徴とする請求項1に記載の暗号処理装置。
The controller is
Based on the curve parameters of the super elliptic curve applied to the cryptographic processing operation and the type of the finite field applied to the cryptographic processing operation, the scalar multiplication algorithm is the doubling application algorithm and the ½ multiplication application algorithm The cryptographic processing apparatus according to claim 1, wherein the cryptographic processing apparatus is configured to execute a process of determining which of the calculation algorithms is capable of high-speed calculation.
前記制御部は、
暗号処理演算に適用する超楕円曲線の曲線パラメータに基づいて、スカラー倍算における1/2倍算適用演算アルゴリズムの高速実行可能性の有無を判定し、1/2倍算適用演算アルゴリズムの高速実行可能性有りと判定した場合に、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する処理を実行する構成であることを特徴とする請求項1に記載の暗号処理装置。
The controller is
Based on the curve parameters of the hyperelliptic curve applied to the cryptographic processing operation, the existence of high-speed feasibility of the ½ multiplication application algorithm in scalar multiplication is determined, and the ½ multiplication application algorithm is executed at high speed. When it is determined that there is a possibility, it is configured to execute a process for determining which one of a calculation algorithm of a doubling calculation algorithm and a calculation algorithm of a doubling calculation application is capable of high-speed calculation. The cryptographic processing apparatus according to claim 1.
前記制御部は、
暗号処理演算に適用する種数2、標数2の有限体上定義された超楕円曲線:y+h(x)y=f(x)の曲線パラメータに含まれるコファクター[c]が2で、h(x)が既約多項式の場合に、1/2倍算適用演算アルゴリズムの高速実行可能性高速に計算が可能であると判定する構成であることを特徴とする請求項5に記載の暗号処理装置。
The controller is
A hyperelliptic curve defined on a finite field of genus 2 and characteristic 2 applied to the cryptographic processing operation: cofactor [c] included in the curve parameter of y 2 + h (x) y = f (x) is 2 , H (x) is an irreducible polynomial, the high-speed feasibility of the ½ multiplication application algorithm is determined to be capable of high-speed calculation. Cryptographic processing device.
前記暗号処理装置は、
暗号処理演算に適用する超楕円曲線の曲線パラメータを適用した2倍算適用演算と、1/2倍算適用演算を実行して処理時間を計測する演算速度算出手段を有し、
前記制御部は、
前記演算速度算出手段の算出結果に基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かの判定処理を実行する構成であることを特徴とする請求項1に記載の暗号処理装置。
The cryptographic processing device includes:
A calculation speed calculating means for measuring a processing time by executing a doubling calculation calculation using a curve parameter of a super elliptic curve applied to a cryptographic processing calculation and a ½ doubling calculation calculation;
The controller is
Based on the calculation result of the calculation speed calculation means, a determination process as to which of the calculation algorithm of the doubling application algorithm and the ½ multiplication application algorithm is possible as the scalar multiplication algorithm is executed. The cryptographic processing apparatus according to claim 1, wherein the cryptographic processing apparatus is configured.
暗号処理装置において、超楕円曲線暗号に基づく暗号処理演算を実行する暗号処理演算方法であり、
制御部において、超楕円曲線の曲線パラメータに基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する演算時間検証ステップと、
演算処理部において、前記演算時間検証ステップにおいて高速演算可能と判定されたアルゴリズムを選択適用して、超楕円曲線暗号におけるスカラー倍算処理を実行する演算実行ステップと、
を有することを特徴とする暗号処理演算方法。
In the cryptographic processing apparatus, a cryptographic processing calculation method for performing cryptographic processing calculation based on hyperelliptic curve cryptography,
In the control unit, based on the curve parameter of the hyperelliptic curve, an arithmetic operation is performed to determine which one of the algorithm for doubling and the algorithm for applying the doubling can be performed at high speed as a scalar multiplication algorithm. A time verification step;
In the arithmetic processing unit, by selectively applying the algorithm determined to be capable of high-speed arithmetic in the arithmetic time verification step, an arithmetic execution step for executing scalar multiplication processing in the hyperelliptic curve cryptography,
A cryptographic processing operation method characterized by comprising:
前記演算時間検証ステップは、
超楕円曲線の曲線パラメータと、高速演算の実行可能なアルゴリズム情報とを対応付けたテーブルを参照して、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する処理を実行するステップであることを特徴とする請求項8に記載の暗号処理演算方法。
The operation time verification step includes:
By referring to a table in which curve parameters of a hyperelliptic curve are associated with algorithm information that can be executed at high speed, either the doubling calculation algorithm or the ½ doubling calculation algorithm is fast. 9. The cryptographic processing calculation method according to claim 8, wherein the cryptographic processing calculation method is a step of executing processing for determining whether calculation is possible.
前記演算時間検証ステップは、
暗号処理演算に適用する超楕円曲線の曲線パラメータ、および暗号処理演算に適用する有限体のタイプに基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する処理を実行するステップであることを特徴とする請求項8に記載の暗号処理演算方法。
The operation time verification step includes:
Based on the curve parameters of the super elliptic curve applied to the cryptographic processing operation and the type of the finite field applied to the cryptographic processing operation, the scalar multiplication algorithm is the doubling application algorithm and the ½ multiplication application algorithm The cryptographic processing operation method according to claim 8, wherein the operation processing is a step of determining which of the operation algorithms is capable of high-speed operation.
前記演算時間検証ステップは、
暗号処理演算に適用する超楕円曲線の曲線パラメータに基づいて、スカラー倍算における1/2倍算適用演算アルゴリズムの高速実行可能性の有無を判定し、1/2倍算適用演算アルゴリズムの高速実行可能性有りと判定した場合に、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定する処理を実行するステップであることを特徴とする請求項8に記載の暗号処理演算方法。
The operation time verification step includes:
Based on the curve parameters of the hyperelliptic curve applied to the cryptographic processing operation, the existence of high-speed feasibility of the ½ multiplication application algorithm in scalar multiplication is determined, and the ½ multiplication application algorithm is executed at high speed. When it is determined that there is a possibility, this is a step of executing a process for determining which one of a computation algorithm of a doubling calculation application algorithm and a ½ multiplication application operation algorithm can be performed at high speed The cryptographic processing operation method according to claim 8.
1/2倍算適用演算アルゴリズムの高速実行可能性の有無を判定する処理は、
暗号処理演算に適用する種数2、標数2の有限体上定義された超楕円曲線:y+h(x)y=f(x)の曲線パラメータに含まれるコファクター[c]が2で、h(x)が既約多項式の場合に、1/2倍算適用演算アルゴリズムの高速実行可能性高速に計算が可能であると判定する処理であることを特徴とする請求項11に記載の暗号処理演算方法。
The process of determining whether there is a high-speed feasibility of the 1/2 multiplication application algorithm is as follows:
A hyperelliptic curve defined on a finite field of genus 2 and characteristic 2 applied to the cryptographic processing operation: cofactor [c] included in the curve parameter of y 2 + h (x) y = f (x) is 2 , H (x) is an irreducible polynomial, the high-speed feasibility of the ½ multiplication application algorithm is a process for determining that calculation is possible at high speed. Cryptographic calculation method.
前記暗号処理演算方法は、さらに、
演算速度算出手段において、暗号処理演算に適用する超楕円曲線の曲線パラメータを適用した2倍算適用演算と、1/2倍算適用演算を実行して処理時間を計測する演算速度算出ステップを有し、
前記演算時間検証ステップは、
前記演算速度算出ステップにおける算出結果に基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かの判定処理を実行するステップであることを特徴とする請求項8に記載の暗号処理演算方法。
The cryptographic processing calculation method further includes:
The calculation speed calculation means has a calculation speed calculation step of measuring a processing time by executing a doubling calculation calculation using a curve parameter of a hyperelliptic curve applied to a cryptographic processing calculation and a ½ multiplication calculation calculation. And
The operation time verification step includes:
Based on the calculation result in the calculation speed calculation step, a determination process as to which one of the calculation algorithm of the doubling application algorithm and the ½ multiplication application algorithm can be performed at high speed as the scalar multiplication algorithm is executed. The cryptographic processing operation method according to claim 8, wherein the cryptographic processing operation method is a step.
暗号処理装置において、超楕円曲線暗号に基づく暗号処理演算を実行させるコンピュータ・プログラムであり、
制御部において、超楕円曲線の曲線パラメータに基づいて、スカラー倍算アルゴリズムとして、2倍算適用演算アルゴリズムと、1/2倍算適用演算アルゴリズムのいずれの演算アルゴリズムが高速演算可能かを判定させる演算時間検証ステップと、
演算処理部において、前記演算時間検証ステップにおいて高速演算可能と判定されたアルゴリズムを選択適用して、超楕円曲線暗号におけるスカラー倍算処理を実行させる演算実行ステップと、
を実行させることを特徴とするコンピュータ・プログラム。
In the cryptographic processing device, a computer program that executes cryptographic processing calculation based on hyperelliptic curve cryptography,
In the control unit, based on the curve parameter of the hyperelliptic curve, an operation for determining which one of the algorithm for doubling and the algorithm for applying the doubling can be performed as a scalar multiplication algorithm. A time verification step;
In the arithmetic processing unit, by selectively applying the algorithm determined to be capable of high-speed arithmetic in the arithmetic time verification step, an arithmetic execution step for executing a scalar multiplication process in the hyperelliptic curve cryptography,
A computer program for executing
JP2006193582A 2006-07-14 2006-07-14 Encryption processing device, encryption processing computation method, and computer program Pending JP2008020757A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006193582A JP2008020757A (en) 2006-07-14 2006-07-14 Encryption processing device, encryption processing computation method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006193582A JP2008020757A (en) 2006-07-14 2006-07-14 Encryption processing device, encryption processing computation method, and computer program

Publications (1)

Publication Number Publication Date
JP2008020757A true JP2008020757A (en) 2008-01-31

Family

ID=39076709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006193582A Pending JP2008020757A (en) 2006-07-14 2006-07-14 Encryption processing device, encryption processing computation method, and computer program

Country Status (1)

Country Link
JP (1) JP2008020757A (en)

Similar Documents

Publication Publication Date Title
JP4752313B2 (en) Cryptographic processing operation method, cryptographic processing apparatus, and computer program
Costello et al. Efficient algorithms for supersingular isogeny Diffie-Hellman
Albrecht et al. Implementing RLWE-based schemes using an RSA co-processor
JP4067818B2 (en) Elliptic curve cryptography apparatus, elliptic curve cryptography program, and elliptic curve cryptography calculation method
KR101154695B1 (en) Encryption computing device
US7835517B2 (en) Encryption processing apparatus, encryption processing method, and computer program
JP5449576B2 (en) Arithmetic device, elliptic scalar multiplication method for arithmetic device, elliptic scalar multiplication program, remainder arithmetic method for arithmetic device, and remainder arithmetic program
CN101371285B (en) Encryption processing device, encryption processing method
JP2001526416A (en) Conversion method for optimization of elliptic curve encryption operation
Liu et al. Energy-efficient elliptic curve cryptography for MSP430-based wireless sensor nodes
Cohen et al. Fast reconfigurable elliptic curve cryptography acceleration for gf (2 m) on 32 bit processors
US7177422B2 (en) Elliptic curve encryption processing method, elliptic curve encryption processing apparatus, and program
KR101223498B1 (en) Method for generating public key in elliptic curve cryptography and system for executing the method
JP2009265111A (en) Computation program of scalar multiplication and computation program of exponentiation
EP1578054B1 (en) Cryptography-processing method, cryptography-processing apparatus and computer program
Baktır et al. A state-of-the-art elliptic curve cryptographic processor operating in the frequency domain
Trujillo-Olaya et al. Analysis of performance versus security in hardware realizations of small elliptic curves for lightweight applications
JP2004163687A (en) Device and program for elliptic curve ciphering
Zhang et al. A high performance pseudo-multi-core ECC processor over GF (2 163)
JP2008020757A (en) Encryption processing device, encryption processing computation method, and computer program
KR100974624B1 (en) Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it
Lee et al. Efficient hardware implementation of elliptic curve cryptography over GF (pm)
JP2004053814A (en) Elliptic curve cryptosystem device and elliptic curve cryptosystem operation method
JP2003228285A (en) Arithmetic unit for elliptic curve scalar multiple
Oliveira et al. A note on how to (pre-) compute a ladder