WO2006035732A1 - 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム - Google Patents

暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム Download PDF

Info

Publication number
WO2006035732A1
WO2006035732A1 PCT/JP2005/017650 JP2005017650W WO2006035732A1 WO 2006035732 A1 WO2006035732 A1 WO 2006035732A1 JP 2005017650 W JP2005017650 W JP 2005017650W WO 2006035732 A1 WO2006035732 A1 WO 2006035732A1
Authority
WO
WIPO (PCT)
Prior art keywords
multiplication
calculation
algorithm
factor
cryptographic processing
Prior art date
Application number
PCT/JP2005/017650
Other languages
English (en)
French (fr)
Inventor
Izuru Kitamura
Masanobu Katagi
Tsuyoshi Takagi
Original Assignee
Sony Corporation
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 Corporation filed Critical Sony Corporation
Priority to BRPI0516860-0A priority Critical patent/BRPI0516860A/pt
Priority to US11/576,305 priority patent/US8014521B2/en
Priority to EP05785181A priority patent/EP1796061A4/en
Publication of WO2006035732A1 publication Critical patent/WO2006035732A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Definitions

  • the present invention relates to a cryptographic processing operation method, a cryptographic processing device, and a computer program. More specifically, the present invention relates to a cryptographic processing calculation method, a cryptographic processing device, and a computer program that realize high-speed scalar multiplication in hyperelliptic curve cryptography.
  • 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, authentication processing, or encryption of transmitted / received data, Decryption systems have been put into practical use.
  • an IC card that performs cryptographic processing is actively used in various gates such as a ticket gate of a station or a shopping center.
  • the demands are becoming stricter.
  • 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.
  • a typical method of the common key method is DES (Data Encryption Standard).
  • a feature of the DES algorithm is that encryption and decryption can be performed with almost the same algorithm.
  • the public key method or the asymmetric encryption method is different from the common key encryption in that the sender and receiver have different keys.
  • public key cryptography which uses a common key for encryption and decryption
  • public key cryptography is advantageous in key management because it requires a specific person to hold a secret key that must be kept secret.
  • public key cryptography is a common key In general, the data processing speed is slow compared to the encryption method, and it is often used for objects with a small amount of data such as secret key distribution and digital signature.
  • Typical public key cryptosystems include RSA (Rivest-Shamir-Adleman) cryptography and Elliptic Curve Cryptography (ECC).
  • the set of points on these curves plus the infinity point (O) forms a finite group with respect to addition, and the infinity point (O) is the unit element.
  • the addition of points on this finite group is represented by +.
  • Non-Patent Document 1 and Non-Patent Document 2 describe the hyperelliptic curve symbol system.
  • h (x), f (x) EFq [x], f (x) are monic polynomials of degree 2g + l.
  • the computation size (bit length) of the definition of a hyperelliptic curve cipher is smaller than lZg compared to the computation size of the definition of an elliptic curve cryptography assuming the same security as that of the elliptic curve cryptography. ing.
  • the small computation size is advantageous in terms of implementation, and is one of the advantages of hyperelliptic curve cryptography.
  • the factor (divisor) is a formal sum of rational points and can be expressed in the following form.
  • the semi-reduced factor (semi reduced divisor) can be expressed in the following format.
  • ⁇ m is called D weight.
  • a semi-reduced factor whose weight is less than the genus g is called a reduced divisor.
  • Arbitrary irreducible factor D of genus 2 is a set of second-order or lower order polynomials whose coefficients are elements on finite field Fq, using the Mumford representation, that is,
  • the factor scalar multiplication used in the hyperelliptic curve cryptosystem will be described.
  • the factor scalar multiplication can be calculated by a combination of factor addition and doubling called an addition algorithm.
  • the main addition algorithm will be described below.
  • 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 its disadvantage is that the algorithm is more complex and computationally intensive than an elliptic curve.
  • Harley's algorithm uses a prime field as a definition field, a genus 2 curve, and a Mumford expression as a factor expression. Examples of research for improving the calculation amount of this algorithm include Non-Patent Document 4, Non-Patent Document 5, Non-Patent Document 6, and the like.
  • non-patent document 7 and non-patent document 8 report processing examples in which the definition body is expanded in the case of two extension fields.
  • Non-Patent Document 11 Non-Patent Document 12
  • Non-Patent Document 6 Non-Patent Document 6
  • Non-Patent Document 13 As research that reduces the amount of calculation by using extended Mumford expression and Weighted Coordinate for expression of factors.
  • the processing of the Harley algorithm will be described with reference to FIG.
  • the present invention relates to a hyperelliptic curve of genus 2 defined on a finite field of characteristic 2.
  • the genus of the curve is 2, and the characteristic of the definition field is 2.
  • FIG. 1 (A) is a diagram showing a processing example of factor addition D + D when the genus is 2.
  • the case is divided.
  • the HarleyADD process is, for example, a process called Most Frequent Case shown in Non-Patent Document 7. This Most Frequent Case is used to add factors in the case of genus 2 D + D processing.
  • HarleyADD and HarleyDBL are called the most frequent case. If random factors are generated and added or doubled, the processing becomes HarleyAD D and HarleyDBL with a very high probability.
  • the explanation that HarleyADD and HarleyDBL are the most frequent case is described in Non-Patent Document 14, for example.
  • Non-Patent Document 14 the probability of processing other than this most frequent caes is O (1 Zq).
  • q is the number of elements in the definition, and q g is a large number that is required about 160 bits for secure cryptographic purposes. Therefore, in reality, only HarleyADD and HarleyDBL are generated, and can be regarded as a situation.
  • the implementation is implemented without executing operations related to complex exception handling that rarely occurs probabilistically.
  • methods such as a configuration that executes Cantor's algorithm that does not need to be divided into weight cases are applied. Since the burden of complex exception handling increases as the number of species increases, this implementation method is described in Non-Patent Documents 9 and 10.
  • HECC hyperelliptic curve cryptography
  • a point on an elliptic curve defined on a finite field Fq is defined as P. If the scalar multiplication point kP (kEZ) is Q, then the problem of finding the Q force k can be reduced to a discrete logarithm problem. On the other hand, in hyperelliptic curve cryptography, if the factor (divisor), which is the formal sum of points, is D and the factor defined by the scalar multiplication kD is D, the problem of obtaining the D force k is
  • It can be used as a public key cryptosystem as a discrete logarithm problem on a Jacobian manifold in a hyperelliptic curve.
  • the binary algorithm (right—to—left) is the basic binary algorithm for scalar multiplication.
  • the binary (right -to -left) algorithm Algori thm2 is shown below.
  • the binary (left -to -right) algorithm Algorithm3 is shown below.
  • the factor generated by the above algorithm is the factor of weight g.
  • the factor to be applied to the base point of weight g can be obtained by the above processes (a) to (c).
  • Non-Patent Document 15 Patent Document 1
  • Patent Document 2 show 1Z2 multiplication of rational points in elliptic curve cryptography. Instead of using additions and doublings when calculating rational point scalar multiplications, it discloses processing using additions and 1Z2 multiplications.
  • 1Z2 multiplication of elliptic curve cryptography is generally faster than doubling, and as a result, scalar multiplication using 1Z2 multiplication is faster.
  • Non-Patent Document 16 as the processor, I Intel Corporation [Intel Pentiumlll 800MHz]
  • Hyperelliptic curve cryptography is a general feature of elliptic curve cryptography, and the operations used in elliptic curve cryptography may be extended to superelliptic curves.
  • Non-Patent Documents 17 and 18 show examples extended to hyperelliptic curve cryptography. Even with hyperelliptic curve cryptography, if 1Z2 multiplication faster than doubling can be realized, scalar multiplication of factors can be expected to be faster than before. However, in the past, this 1Z2 multiplication was not known.
  • Non-patent document 19 is a document published as a high-speed calculation method using doubling.
  • Patent Literature l E. Knudsen. COMPUTING METHOD FOR ELLIPTIC CURVE CRYPTO GRAPHY, WO 01/04742 Al, 18 Jan 2001
  • Patent Document 2 R. Schroeppel. Elliptic curve point ambiguity resolution apparatus and m ethod, WO 01/35573 Al, 17 May 2000
  • Patent Document 1 N.Koblitz.Hyperelliptic curve cryptosystems.J.Cryptology, vol.1, No. 3, pp.139-150, 1989.
  • Non-Special Terms 2 D.G. Cantor. Computing in the Jacobian of hyperelliptic curve. Math. Comp "Vol.48, No. 177, pp.95-101, 1987
  • Non-Special Terms 4 K. Matsuo, J. Chao, and S. Tsujn. Fast Genus two hyperelliptic curve cryptosystems. Technical Report ISEC2001—31, IEICE Japan, 2001.
  • Non-Special Terms 5 M. Takahashi. Improving Harley algorithms for Jacobians of genus 2 hy perelliptic curves. SCIS2002. (Japanese).
  • Non-specialized literature b T ⁇ ange. Inversion-free arithmetic on genus 2 hyperelliptic curves. Cryptology ePrint Archive, 2002/147, IACR, 2002.
  • Jinbao 7 T. Sugizaki, K. Matsuo, J. Chao, and S. Tsujn. An extension of Harley a ddition algtorithm for hyperelliptic curves over finite fields of characteristic two.ISE C2002-9, IEICE, 2001
  • Non-Special Reference 8 T ⁇ ange, Efficient arithmetic on genus 2 hyperelliptic curves over fini te fields via explicit formulae.
  • Special Reference 9 J. Kuroki, M. Gonda , K. Masuo, J. Chao and S. Tsujn. Fast genus three hyperellipitc curve cryptosystems.
  • Non-Patent Document 11 Y. Miyamoto, H. Doi, K. Matsuo, J. Chao and S. Tsujii. A fast addition algorithm of genus two hyperelliptic curves. SCIS2002. (Japanese).
  • Non-Special Reference 14 N. Nagao. Improving group law algorithms for Jacobians of hyperellip ANTS- IV, LNCS 1838, pp.439- 448, Springer- Verlag, 2000.
  • Non-Patent Document 15 E. Knudsen. Elliptic Scalar Multiplication Using Point Halving. ASIA CRYPTO '99, LNCS 1716, pp.135— 149, Springer- Verlag, 1999.
  • Non-Patent Document 16 K. Fong, D. Hankerson, J. Lopez, and A. Menezes. Field inversion and point halving revised.
  • Non-Patent Document 17 S. Dquesne. Montgomery Scalar Multiplication for Genus 2 Curves. ANTS— VI, LNCS 3076, pp.153—168, 2004.
  • Non-Patent Document 18 T. Lange. Montgomery Addition for Genus Two Curves. ANTS- VI, LNCS 3076, pp.309-317, 2004.
  • Non-Patent Document 19 T. Lange. Efficient Doubling on Genus Two Curves over Binary Fiel ds, SAC 2004, pre—procedings, pp.189—202, 2004.
  • the super elliptic curve cryptography (HECC) algorithm which is an extended concept, is currently a high-speed algorithm at the academic level and its implementation. Research on methods is ongoing. The time required for scalar multiplication of the hyperelliptic curve cipher (HECC) is only approaching that of the elliptic curve cryptography (ECC), and a higher speed is required.
  • the present invention has been made in view of such a current situation, and shortens the calculation time of scalar multiplication of the super elliptic curve cryptography (HECC) and can perform high-speed processing of the super elliptic curve cryptography (HECC). It is an object of the present invention to provide a cryptographic processing calculation method, a cryptographic processing device, and a computer program for realizing arithmetic processing.
  • the present invention extends the 1Z2 multiplication of elliptic curve cryptography to the superelliptic curve cryptography, finds algorithms, curve parameters, and definition bodies that can be calculated at high speed, and applies 1Z2 multiplication in hyperelliptic curve cryptography. It is an object of the present invention to provide a cryptographic processing arithmetic method, a cryptographic processing device, and a computer program that realize high-speed arithmetic processing by processing.
  • the first aspect of the present invention is
  • the calculation step includes performing 1Z2 multiplication in scalar multiplication for a factor D of a hyperelliptic curve having random parameters of genus 2 and characteristic 2. It is the step which performs the calculation which contains.
  • It is characterized in that it is a step of executing an operation including a 1/2 multiplication in a scalar multiplication for D.
  • the cryptographic processing calculation method is based on [1/2] calculated values for a factor D that is fixed in advance, k 1, k ′, ( A table reference step that refers to the table that records which of k and k ') is correct
  • calculation step is executed as a calculation process in which a calculation amount of 1Z2 multiplication is reduced by a determination process based on reference to the table.
  • the cryptographic processing calculation method includes:
  • lZh 2 is set as the input value as the calculated value, and the calculation without executing the process of calculating the inverse element lZh 2 is performed. you wherein comprising the step of applying previously input values LZH 2.
  • the second aspect of the present invention provides:
  • arithmetic operation of scalar multiplication for factor D of the hyperelliptic curve 1 /
  • the cryptographic processing apparatus includes an operation execution unit that executes an operation including doubling.
  • the calculation execution unit performs a 1 // in scalar multiplication for a factor D of a hyperelliptic curve having random parameters of genus 2 and characteristic 2.
  • the present invention is characterized in that an operation including doubling is executed.
  • D hyperelliptic curve factor
  • the calculation execution unit is configured to include a genus
  • the cryptographic processing apparatus is configured to calculate k 1, k 1, (k 2, k 2) based on a [lZ2t>] calculated value for the factor D that is fixed in advance. k ')
  • V has a storage unit storing a table that records whether the deviation is correct, and the calculation execution unit executes a calculation process that reduces the amount of calculation of 1Z2 multiplication by a determination process based on the reference of the table It is the structure which carries out.
  • the 1Z2 multiplication algorithm is executed, and l / u is used as an input value.
  • It has a configuration that performs scalar multiplication on the same, and uses lZh 2 as the calculated value as the input value, and executes the operation using the calculated input value lZh 2 without executing the process of calculating the inverse element lZh 2. It is the structure which carries out.
  • the third aspect of the present invention provides
  • a computer program that executes cryptographic processing operations based on hyperelliptic curve cryptography on a computer.
  • 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 or FD.
  • Computer program that can be provided by a recording medium such as MO or a communication medium such as a network.
  • system is a logical group configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same casing.
  • 1Z2 multiplication of elliptic curve cryptography is extended to super elliptic curve cryptography, thereby realizing high-speed computation.
  • the heavy processing is scalar multiplication of factors, and the processing of superelliptic curve cryptography is achieved by speeding up scalar multiplication by the processing of the present invention. Can be greatly improved.
  • scalar multiplication for factor D of the hyperelliptic curve cryptosystem
  • scalar multiplication can be performed at high speed by executing an operation including 1Z2 multiplication.
  • the scalar multiplication for the factor D of the hyperelliptic curve cryptosystem is configured to execute an operation including 1Z2 multiplication as the arithmetic processing, Since an algorithm that reduces the number of times the inverse operation is performed in the arithmetic processing is applied, it is possible to further reduce the amount of calculation in the scalar multiplication of the factors, thereby realizing further high-speed processing.
  • FIG. 1 is a diagram for explaining an algorithm for addition processing and doubling processing in scalar multiplication of a genus 2 hyperelliptic curve cipher.
  • FIG. 2 is a diagram for explaining a case division process for 1Z2 multiplication of a genus 2 hyperelliptic curve cipher.
  • FIG. 3 is a flowchart illustrating the HEC_HLV algorithm.
  • FIG. 4 is a flowchart illustrating the HEC_HLV 2 ⁇ 1 + 1 algorithm.
  • FIG. 5 is a flowchart illustrating the HEC_HLV 2 ⁇ 2 + 2 algorithm.
  • FIG. 6 is a flowchart illustrating the HEC_HLV 1 ⁇ 2 + 2 algorithm.
  • FIG. 7 is a block diagram showing a functional configuration of a cryptographic processing apparatus that executes cryptographic processing calculation according to the present invention.
  • FIG. 8 is a diagram showing a configuration example of an IC module as an example of a cryptographic processing execution device that executes cryptographic processing calculation according to the present invention.
  • the present invention is a high-speed calculation method for Hyper Elliptic Curve Cryptography (HECC) that generally uses elliptic curve cryptography.
  • HECC Hyper Elliptic Curve Cryptography
  • the value that characterizes a curve in a hyperelliptic curve is the genus g.
  • p be a prime number
  • n be a positive integer
  • q p n .
  • h (x), f (x) EFq [x], f (x) are monic polynomials of degree 2g + l.
  • the operation size (bit length) of the definition of a hyperelliptic curve cipher is smaller than lZg compared to the operation size of the definition of an elliptic curve cipher, assuming the same security as the elliptic curve cryptography. ing.
  • the small computation size is advantageous in terms of implementation, and is one of the advantages of hyperelliptic curve cryptography.
  • It can be used as a public key cryptosystem as a discrete logarithm problem on a Jacobian manifold in a curve.
  • the factor (divisor) is a formal sum of rational points and can be expressed in the following form.
  • the semi-reduced factor can be expressed in the following format.
  • ⁇ m is referred to as a D weight.
  • a semi-reduced factor whose weight is less than the genus g is called a reduced divisor.
  • Arbitrary irreducible factor D of genus 2 can be expressed as a set of polynomials of second order or lower with coefficients of elements on finite field Fq, using the Mumford expression, that is,
  • the zero element is
  • the present invention extends the 1Z2 multiplication of elliptic curve cryptography to the superelliptic curve cryptography, and finds algorithms, curve parameters, and definition bodies that can be calculated faster than doubling. It realizes calculation processing that applies 1Z2 multiplication, which is faster than multiplication.
  • 1Z2 multiplication which is faster than multiplication.
  • Proposed method A1 A method for calculating 1Z2 multiplication of factor D in a hyperelliptic curve having random parameters of genus 2 and characteristic 2.
  • H (x) x 2 + h x + h
  • Processing example 1 is a method that calculates 1Z2 multiplication of factor D in a hyperelliptic curve with random parameters of genus 2 and characteristic 2.
  • the factor to be handled from now on is assumed to be of order number. In other words, the factor handled does not have a bifurcation point.
  • the input factor is
  • V V X + V
  • ExHarDBL 2 + 2 ⁇ 1 is a method for calculating the case where the weight of the input factor is 2 and the weight of the output factor is 1.
  • ExHarDBL 2 + 2 ⁇ 2 is a power that can be calculated by HarleyDBL.
  • the inverse 1/2 operation, which is the inverse of this, is an exceptional case, so here we treat ExHarDBL 2 + 2 ⁇ 2 as an exceptional case.
  • ExHarDBL 1 + 1 ⁇ 2 ExHarDBL 2 + 2 ⁇ 2 and 1/2 multiplication corresponding to HarleyDBL, ExHEC—HLV 2 ⁇ 1 + 1 , ExHEC—HLV 1 ⁇ 2 + 2 , ExHEC—HLV 2 ⁇ 2 + 2 , and HEC—HLV.
  • FIG. 3 is a flowchart showing the HEC-HLV algorithm.
  • step S101 input
  • V V X + V
  • step S107 u is calculated, and in step S108, xh + x 2 u +1
  • step S110 If it is 0 k ′ and if it has a root, go to step S110 to calculate u. Further steps
  • step S113 output
  • Factor 1Z2 multiplication is an algorithm that performs factor doubling, that is, [Alg orithm 1 HarleyDBLj
  • V '+ h (k x + k) U + V
  • V ' h + (k x + k) U + V
  • step 4 Substituting for, step 4 becomes:
  • Equation (5) has roots only for the correct k. Also, there is only one k that can calculate the factor D multiplied by 1Z2 in Algorithm4. In addition, the following formula,
  • Tr (j) l then k x r- k ', ⁇ ⁇ -(c, + k l h resort) l (ii zx a 2 )
  • M S, I, SR, H, T is multiplied on the respective finite, squaring, inverse operation, It means square root operation, half-trace (calculation to find the root of the quadratic equation), and trace (determining whether the root of the quadratic equation has a force). If k ', k' is a correct value, the amount of computation
  • Step 2M can be reduced, and in Step 3, 2M + 1SR can be reduced.
  • the amount of calculation in this case is
  • step 3 if k and k 'are correct values (in other words, k' and k are incorrect values), step 3
  • the calculation amount of 2M + 1SR can be reduced.
  • the amount of calculation in this case is
  • step 2 the computational complexity of 2M can be reduced.
  • the amount of calculation in this case is
  • ExHEC—HLV 2 ⁇ 1 + 1 is realized by calculating ExHarDBL 1 + 1 ⁇ 2 from the inverse.
  • V V + V U
  • the input factor is a
  • step S205
  • step S 301 the input factor is
  • step S303
  • step S304
  • step S305 u is calculated, and in step S306,
  • step S307 D HEC HLV 2 ⁇ 1 (D)
  • step S309 If is rooted, go to step S309 to calculate u and then step S310
  • the input factor is a
  • step S402 as cf + u, in step S403, kh + k 2 u
  • step S406 If it does not have a root, after setting k k ′ in step S406, the process proceeds to step S407, and if it has a root, the process proceeds to step S407 as it is.
  • step S410 If it does not have a root, it is set to k k ′ in step S410.
  • step S411 If it has a root, go directly to step S411 and calculate u
  • step S412 V and V are calculated, and in step S413,
  • step S414 output
  • Tr () 1 then ' ⁇ ', ⁇ — (c, + k x h () ) la 2
  • Algorithm8 can calculate [l / ⁇ D, and can be applied to the right-to-left method, that is, the method of adding [lZ ⁇ D, when scalar multiplication of factor D is performed. Scalar multiplication using 1Z2 multiplication will be described later.
  • the amount of calculation is as follows.
  • T trace (determining whether there is a root of a quadratic equation)
  • S multiplication
  • SR amount of calculation of SR
  • Processing example 3 (proposed method B1) also matches this condition, but from [Lemma 1], h (X) assumes an irreducible polynomial!
  • the exception case can be calculated based on the exception case in Process Example 1 (proposed method A1).
  • Algorithm 5 Algorithm5 has! /
  • Algorithm 12 Algorithmic
  • k ′ (k, k ′) is recorded in a table which is the correct value.
  • the table size may be a bit string that is about twice the size of the base point order.
  • Processing example 6 is a method of calculating the factor's scalar multiplication using the 1Z2 multiplication method of the factors shown in the above processing examples 1-5.
  • HEC with table lookup applied to HLV — HLV!
  • the curve parameter HEC—HLV of Algorithm 12 [Algorithm 12] may be used, or the HEC—HLV using the table reference method for Algorithm 12 [A1 gorithm 12]! /.
  • HarleyDBL is about 3% faster than HEC-HLV.
  • HarleyDBL and HEC-HLV have the same amount of calculation.
  • HarleyDBL is about 8% faster than HEC-HLV.
  • the compiler is gcc2. 96

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)

Abstract

 超楕円暗号処理において安全でかつ高速な演算を実現する装置および方法を実現する。超楕円曲線暗号の因子Dに対するスカラー倍算において、演算処理として、1/2倍算を含む演算を実行することでスカラー倍算を高速化した。例えば、種数2、標数2のh(x)=x2+x+h0,f4=0をパラメータに持つ超楕円曲線、あるいは、h(x)=x2+h1x+h0,f4=0をパラメータに持つ超楕円曲線、あるいは、h(x)=xをパラメータに持つ超楕円曲線の因子Dに対するスカラー倍算において1/2倍算を含む演算を実行する。また、固定因子Dについての[1/2iD]計算値に基づいて、k1,k1',(k0,k0')のいずれが正しいかを記録したテーブルの適用、さらに逆元演算を減少させることで計算量の削減、高速化を実現した。

Description

明 細 書
暗号処理演算方法、および暗号処理装置、並びにコンピュータ ·プロダラ ム
技術分野
[0001] 本発明は、暗号処理演算方法、および暗号処理装置、並びにコンピュータ'プログ ラムに関する。さらに詳細には、超楕円曲線暗号におけるスカラー倍算の高速ィ匕を 実現する暗号処理演算方法、および暗号処理装置、並びにコンピュータ 'プログラム に関する。
背景技術
[0002] 昨今、ネットワーク通信、電子商取引の発展に伴い、通信におけるセキュリティ確保 が重要な問題となっている。セキュリティ確保の 1つの方法が暗号技術であり、現在、 様々な暗号ィ匕手法を用いた通信が行なわれて 、る。
[0003] 例えば ICカード等の小型の装置中に暗号処理モジュールを埋め込み、 ICカードと 、データ読み取り書き込み装置としてのリーダライタとの間でデータ送受信を行ない、 認証処理、あるいは送受信データの暗号化、復号化を行なうシステムが実用化され ている。
[0004] 暗号処理を実行する例えば ICカードは、例えば駅の改札などの様々なゲート、ある いはショッピングセンターなどで盛んに利用されるようになっており、小型化および処 理の迅速ィ匕の要求が厳しくなつてきて 、る。
[0005] 暗号化方式には、大別して共通鍵方式、公開鍵方式がある。共通鍵方式は、対称 暗号方式ともよばれ、発信者、受信者の双方で共通の鍵を保有する。共通鍵方式の 代表的な方法として、 DES (Data Encryption Standard)がある。 DESアルゴリズムの 特徴は、暗号化と復号化とをほぼ同じアルゴリズムで実行可能なことである。
[0006] この共通鍵暗号に対して、発信者と受信者の鍵を異なるものとした構成が公開鍵方 式または非対称暗号方式である。公開鍵暗号方式では、暗号化、復号化に共通の 鍵を用いる共通鍵暗号方式と異なり、秘密に保つ必要のある秘密鍵は、特定の 1人 が持てばよいため鍵の管理において有利である。ただし、公開鍵暗号方式は共通鍵 暗号方式に比較してデータ処理速度が遅ぐ一般には、秘密鍵の配送、デジタル署 名等のデータ量の少な 、対象に多く用いられて 、る。公開鍵暗号方式の代表的なも のには RSA (Rivest- Shamir- Adleman)暗号や、楕円曲線暗号(ECC: Elliptic Curve Cryptography)が知られて ヽる。
[0007] 楕円曲線暗号(Elliptic Curve Cryptography)は、素体上の楕円曲線 2 = 3 + & + b (4a3 + 27b2≠0)や、 2の拡大体上の楕円曲線 y2 + xy=x3 + ax2 + b (b≠0)などを 用いる。これらの曲線上の点に無限遠点(O)を加えた集合は、加法に関して有限群 をなし、無限遠点(O)はその単位元となる。以下、この有限群上の点の加法を +で 表す。この有限群上の異なる 2点 P, Qの加算 P + Qを「点の加算」、点 Pと点 Pの加算 P + P = 2Pを「点の 2倍算」と呼ぶ。また、点 Pを k回加算した点 P + P +〜 + P=kPを 求める演算を「点のスカラー倍算」と呼ぶ。
[0008] 点のスカラー倍算は、点の加算、および点の 2倍算を用いて構成できることが知ら れている。素体上の楕円曲線や 2の拡大体上の楕円曲線上のァフィン座標系(X, y) や射影座標 (X, Υ, Z)における点の加算法、点の 2倍算法、および点のスカラー倍 #法は、 IEEE P1363/D13 Standard specifications for Public Keyし ryptographyに 記されている。
[0009] 楕円曲線暗号を一般ィ匕した方式として、 Koblitz、 Cantorによって提案された超楕円 曲線暗号(HECC : Hyper Elliptic Curve Cryptography)方式がある。超楕円曲線喑 号方式については、例えば非特許文献 1、非特許文献 2に記載されている。
[0010] 楕円曲線暗号では有限体 Fq上で定義される楕円曲線上の点を Pとし、スカラー倍 算した点 kP (kEZ)を Qとすると、 Qから kを求める問題は離散対数問題に帰着できる 。一方、超楕円曲線暗号では点の形式的和である因子(divisor)を Dとし、スカラー 倍算 kDで定義される因子を Dとすると、 D力 kを求める問題は超楕円曲線にお
1 2 2
けるヤコビ多様体上の離散対数問題として公開鍵暗号として用いることができる。
[0011] 超楕円曲線では曲線を特徴づける値は種数 (genus) gである。 pを素数、 nを正の 整数、 q = pnとする。このとき有限体 Fq上で定義される種数 gの超楕円曲線 Cは以下 の方程式、
y2 + h (x)y=f (x) で定義される。ここで、 h (x) , f (x) EFq[x] , f (x)は、次数 2g+ lの monic多項式で ある。
[0012] 超楕円曲線 C上の点 P= (x、 y)に対して共役点(opposite point)は、— P = (x、 y+h(x) )として定義される。また、 P=— Pである点を分岐点(ramification point) と呼ぶ。
[0013] 超楕円曲線暗号の定義体の演算サイズ (ビット長)は楕円曲線暗号と同等の安全 性を仮定した場合、楕円曲線の定義体の演算サイズに比べて lZgに小さくなること が知られている。演算サイズが小さいことは実装上メリットがあり、超楕円曲線暗号の 利点の一つして挙げられる。
[0014] 次に、超楕円曲線暗号の基本事項について説明する。前述したように、超楕円曲 線暗号では点の形式的和である因子(divisor)を Dとし、スカラー倍算 kDで定義さ れる因子を Dとすると、 D力 kを求める問題は超楕円曲線におけるヤコビ多様体上
2 2
の離散対数問題として公開鍵暗号として用いることができる。
[0015] ここで、因子(divisor)は有理点の形式和であり、以下の形式で表現することができ る。
[数 1]
D 二 mtP
[0016] また、半被約因子(semi reduced divisor)は、以下の形式で表現することがで きる。
[数 2] = ) m,≥0
ただし、 P.= (x.、 y.)かつ i≠jに対して Ρ≠Ρである。
[0017] また、∑ mを Dのウェイト (weight)と呼ぶ。さらにウェイト (weight)が種数 g以下で ある半被約因子を被約因子(reduced divisor)と呼ぶ。
[0018] 超楕円曲線のヤコビ (Jacobi)多様体上の任意の半被約因子 Dは下記の多項式 U
、 VEFq[x]を用いて D= (U、 V)として表現できる。これをマンホード(Mumford) 表現と呼ぶ。なお、マンホード (Mumford)表現については、例えば非特許文献 3に 記載されている。
[数 3] υ = γ\ (χ - χ, Γ
V{xf + V(x)h{x)― f{x)≡ 0 mod U(x\ deg V < degひ
[0019] 種数(genus) 2の任意の被約因子 Dはマンホード(Mumford)表現を用いると、有 限体 Fq上の元を係数に持つ 2次以下の多項式の組、すなわち、
(U、 V) = (x2 + u x+u、 v x+v )、または、
1 0 1 0
(U、 V) = (x + x、 y )
0 0
として表現することができる。
また、零元は、 (U, V) = (l, o) =o
として表現される。
[0020] 次に、超楕円曲線暗号で用いられる因子のスカラー倍算について説明する.因子 のスカラー倍算は加算アルゴリズムと呼ばれる因子の加算と 2倍算組み合わせで計 算することができる。以下では主要な加算アルゴリズムについて説明する。
[0021] 最初に提案された実用的なアルゴリズムは Cantorのアルゴリズムである。このアル ゴリズムについては、例えば非特許文献 1、非特許文献 2に記載されている。このァ ルゴリズムはあらゆる種数の超楕円曲線上の因子に対して適用可能なアルゴリズム であるが、楕円曲線に比べてアルゴリズムが複雑で計算量が多いことが欠点である。
[0022] Harleyは種数 2の超楕円曲線に限定し、因子の weightの場合分けをおこない、そ れぞれの場合で最適化を行うことでより計算量の少な 、アルゴリズムを提案した。この 研究を受けて超楕円曲線暗号 (HECC)における演算アルゴリズムの改良、拡張の 研究が近年盛んになって 、る。
[0023] (ァ) Harleyのアルゴリズムは定義体を素体、種数 2の曲線、因子の表現は Mumfo rd表現を用いている。このアルゴリズムの計算量の改善の研究例として、例えば、非 特許文献 4、非特許文献 5、非特許文献 6などが挙げられる。
(ィ)さらに、定義体を 2の拡大体の場合について拡張した処理例について、非特許 文献 7、非特許文献 8に報告されている。
(ゥ)また、因子の表現に拡張 Mumford表現、 Weighted Coordinateを用いるこ とで計算量を削減した研究として非特許文献 11、非特許文献 12、非特許文献 6、非 特許文献 13がある。
[0024] Harleyアルゴリズムの処理について、図 1を参照して説明する。なお、本発明は、 標数 2の有限体上定義された種数 2の超楕円曲線に関するものであり、以下の説明 では、曲線の種数を 2、定義体の標数を 2とする。
[0025] 図 1 (A)は、種数 2の場合の因子の加算 D +Dの処理例を示した図である。なお、
1 2
因子 D、 Dは、それぞれ D = (U V )、 D = (U、 V )とする。まず、因子のウェイト
1 2 1 1、 1 2 2 2
(weight)の値によって場合分けが行われる。すなわち、 [D +D ]の各ウェイト (wei
1 2
ght)の値によって、 ( 1 ) weight 2 + weight 2
( 2) weight 2 + weight 1
(3)例外処理 1
の場合分けが行なわれる。
[0026] 次に weight2同士の加算、すなわち(1) weight2+weight2の場合、因子 D = ( U V )、 D = (U、 V )について、最大公約数 gcd(U、 U ) =1であれば、 2つの
1、 1 2 2 2 1 2
因子 D = (U V )、 D = (U、 V )は、互いに同一または共役点(opposite point
1 1、 1 2 2 2
)を含まない。この場合、
(la)HarleyADD,
すなわちハーレ一アルゴリズムに従った加算処理を行う。(la)HarleyADDの処理 は例えば非特許文献 7に示されている Most Frequent Caseと呼ばれる処理であ る。この Most Frequent Caseは、種数 2の場合の因子の加算 D +D処理にお
1 2 いて、高確率で発生するケースである。
[0027] この(la)HarleyADDの処理は、非常に高い確率でおこる。その他の例外処理の 起こる確率は非常に低い。 Most Frequent Caseの条件を満たさない場合、すな わち、因子 D =(U V)、D =(U、 V )について、最大公約数 gcd(U、U )=1
1 1、 1 2 2 2 1 2 を満足しない場合は、
(lb)例外処理 2を行う。
[0028] (2)weight2+weightlの場合についても同様に、 gcd(U、 U ) =1かどうかをチ
1 2
エックし、 gcd(U、 U ) =1を満足する場合には、
1 2
(2a) ExHarADD2+1→2を実行し、
gcd(U、 U ) =1を満足しない場合には、
1 2
(2b)例外処理 3を行う。
(3)例外処理 1は、 weightの場合分けが上記(1) , (2)以外の場合である。
[0029] なお、上述した種数 2の加算処理のアルゴリズムの詳細については、非特許文献 8 に記載 (Table 1, 2)されている。
[0030] 次に、種数 2の場合の 2倍算の流れを図 1 (B)を参照して説明する。 2倍算は、 D +
D = 2Dの処理である。入力を D =(U , V )とし、出力を D =[2]Dとする。 加算の場合と同様に因子 Dの weightが
(4) weight2、
(5) weight 1、
(6) weightO、
によってそれぞれ異なる処理を行う。
(4)weight2の場合、因子が分岐点を含むかどうかをチェックし、含まなければ、(4 a) HarleyDBLの処理を行う。因子が分岐点を含む場合は (4b)例外処理 6を行う。 g cd(h, Ul)=lであれば、 Dは分岐点を含まない。この場合、(4a) HarleyDBLの 処理を行う。 HarleyDBLの処理アルゴリズムは例えば非特許文献 7に Most Freq uent Caseとして示されている。 HarleyDBLの処理アルゴリズム(Algorithml)を 、以下に示す。
[数 4]
Algorithm 1 HarleyDBL
Input :DX={U )
Output: I -(U2,V2)
Ul (x) = x2 + unx + ui{), V (x) vnx + 1ノ ,, gcd(/?,ひ , ) = 1
1. u; u
2. . ~ h ] (f + hV +V )I U, mod U,
3. v;^SUx+l
4. U:' f + hV;+V IU'
5. ひ 2 MakeMonic (ひ
6. V2 ^V;+hmodU2
7. return/ ひ 2, V2)
後述するように、この処理が非常に高い確率でおこる。その他の例外処理の起こる 確率は非常に低い。上述したように、 Most Frequent Caseの条件を満たさない 場合は例外処理 6を行う。
[0033] weightlの場合も同様に gcd (h, Ul) = lかどうかをチェックし, (5a)の処理、 Ex HarDBL1+1→2もしくは、(5b)の処理である例外処理 7を行う。 ExHarDBL1+1→2の アルゴリズムについては、非特許文献 8 [4. 12. (a) ]に示されている。
[0034] HarleyADD, HarleyDBLは、上述のように most frequent caseと呼ばれ、ラ ンダムに因子を発生させて加算または 2倍算を行うと、非常に高い確率で HarleyAD D、 HarleyDBLの処理になる。なお、この HarleyADD、 HarleyDBLが、 most fr equent caseとなることの説明は、例えば非特許文献 14に説明されている。
[0035] 非特許文献 14によると、この most frequent caes以外の処理になる確率は O (1 Zq)である。ここで qは定義体の要素数であり、安全な暗号用途では qgが 160bit程 度必要になる大きな数であるので現実的には HarleyADD、 HarleyDBLしか発生し な 、状況とみなすことができる。
[0036] 従って超楕円曲線暗号 (HECC)の加算アルゴリズムを Harleyアルゴリズムまたは その改良アルゴリズムを使って、例えば ICカードなどの暗号処理演算手段として実装 する場合、
HarleyADD,
HarleyDBL
だけを実装し、その他の確率的にほとんど起こらない複雑な例外処理についての 演算を実行しない実装とする場合も多い。この場合、例外処理については、 weight の場合分けが必要のない Cantorのアルゴリズムを実行する構成とするなどの方法が 適用される。種数が高くなるほど複雑な例外処理の負担は増すため、非特許文献 9, 10ではこの実装方法にっ 、て説明して 、る。
[0037] 次に超楕円曲線暗号 (HECC)アルゴリズムにおける因子のスカラー倍算について 説明する。超楕円曲線暗号 (HECC)アルゴリズムにおいて、因子のスカラー倍算は 、超楕円加算と超楕円 2倍算の組み合わせで計算することができる。スカラー倍算の アルゴリズムとして基本的な binary法と double - and— add— always法を例に挙げ て説明する。
[0038] 前述したように、楕円曲線暗号では有限体 Fq上で定義される楕円曲線上の点を P とし、スカラー倍算した点 kP (kEZ)を Qとすると、 Q力 kを求める問題は離散対数 問題に帰着できる。一方、超楕円曲線暗号では点の形式的和である因子 (divisor) を Dとし、スカラー倍算 kDで定義される因子を Dとすると、 D力も kを求める問題は
1 1 2 2
超楕円曲線におけるヤコビ多様体上の離散対数問題として公開鍵暗号として用いる ことができる。
[0039] 因子 Dに対して、スカラー倍算(D = dD)に適用する乗数としてのスカラー値: dの 2 進数表現を、
d= (d 、 、d )、
1-1 0
ただし、 d = l、d = lorOとする。
1-1 1-2, · · ·, 0
[0040] スカラー倍算のアルゴリズムとして基本的な binary法の演算アルゴリズムには、 binary (right— to— left)法
binary (left— to— right)法
がある。
[0041] binary(right— to— left)法は、 dを下位ビットから見ていき、 d = lの場合に、 ] Dを加算することが特徴である。 binary (right -to -left)法のアルゴリズム (Algori thm2)を以下に示す。
[数 5]
Algorithm 2 binary (right-to-left)法
Input D0
Output D = dD
D O
Figure imgf000012_0001
if di = 1 then D D + T //加算 Hm'/eyADD
Figure imgf000012_0002
}
return D
一方、 binary (left— to— right)法は、 dを上位ビットから見ていき、毎ビット Dを 2 倍し、 d = lの場合に、ベースポイントを加算することが特徴である。 binary (left -to -right)法のアルゴリズム(Algorithm3)を以下に示す。
[数 6]
Algorithm 3 binary (left-to-right)法
Input Dt)
Output D = dD0
D D0
for i from 1-2 downio 0
{
D r~ [2]D II 2 \ -HarleyDBL
if -1 then D D + D(、 "加算 Haf'/eyADD
}
return D
[0043] 次に、ベースポイントの生成処理について説明する。スカラー倍算の計算を暗号技 術で用いる場合、入力に必要な因子 Dは、
0
(1)事前に決めた因子の場合、
(2)事前に決められないランダムに発生する因子の場合、
の 2つのタイプに分けることができる。
[0044] ここで(1)事前に決めた因子の場合、の入力因子をベースポイントと呼ぶことにする 一般的なベースポイントの生成アルゴリズムを以下に示す。
(a)
定義体 F上の元をランダムに g個選び、 g個の超楕円曲線上の点 P (i=l、 ···、 g)
q i
を生成する。
(al) ランダムに選んだ各元を X座標 X (i=l g)とし、次に超楕円曲線上に乗る ように Xに対応する y座標を求める。
(b)
ベースポイントの因子を D =(U(x)、 V(x))とする。
0
(bl)U(x) = (x— x ) (X— X )…(X— X ) (b2)V(x) =v χβ_ 1+ν xg_2 +〜+vの係数 vを決定する。例えば生成した
g- l g-2 0 i
点が全て異なる場合、 V(x ) =yより Vを求めることができる。
(c) 上記アルゴリズムにより生成される因子は weight gの因子となる。
[0045] スカラー倍算の計算を暗号技術で用いる場合、入力に必要な因子 Dの生成、すな
0
わちベースポイントの生成において、事前に決めた因子を適用する場合、上述の処 理(a)〜(c)によって weight gのベースポイントに適用する因子を求めることができ る。
[0046] さらに、楕円曲線暗号では、有理点の 1Z2倍算が提案されている。例えば、非特 許文献 15、特許文献 1、特許文献 2に楕円曲線暗号における有理点の 1Z2倍算が 示されている。有理点のスカラー倍算を計算する際に、加算と 2倍算を用いるのでは なくて、加算と 1Z2倍算を用いた処理を開示している。
[0047] 楕円曲線暗号の 1Z2倍算は,一般に 2倍算よりも高速であり、結果として 1Z2倍 算を用いたスカラー倍算は高速となる。非特許文献 16によると、プロセッサとして、ィ ンテル社製 [Intel Pentiumlll 800MHz]でソフトウェア実装を行った結果、 1Z2 倍算は、 2倍算に比べて、 Fq, q = 2163の定義体では、約 2. 1倍高速であり、 q = 2233 の定義体では、約 2. 6倍高速であると報告されている。超楕円曲線暗号は、楕円曲 線暗号の一般ィ匕であり、楕円曲線暗号で用いられている演算を超楕円曲線に拡張 できる場合がある。例えば、楕円曲線暗号で y座標を演算で用いないため、高速な計 算を行なうことの出来る Montgomery法力 非特許文献 17、 18において、超楕円 曲線暗号に拡張された例が示されている。超楕円曲線暗号でも、 2倍算よりも高速な 1Z2倍算が実現できれば、因子のスカラー倍算も、従来よりも高速に計算することが 期待できる。し力しながら、従来は、この 1Z2倍算が知られていな力つた。なお、 2倍 算を用いた高速演算手法として発表された文献として、非特許文献 19がある。
特許文献 l : E.Knudsen. COMPUTING METHOD FOR ELLIPTIC CURVE CRYPTO GRAPHY, WO 01/04742 Al, 18 Jan 2001
特許文献 2 : R.Schroeppel. Elliptic curve point ambiguity resolution apparatus and m ethod, WO 01/35573 Al, 17 May 2000
特許文献 1 :N.Koblitz. Hyperelliptic curve cryptosystems. J.Cryptology, vol.1, No. 3, pp.139— 150, 1989.
非特言午文献 2 : D.G. Cantor. Computing in the Jacobian of hyperelliptic curve. Math. Comp" Vol.48, No. 177, pp.95- 101, 1987
特言午文献 3 :「D. Mumford, Tata lectures on theta II, Progress in Mathematics, no. 43, Birkhauser, 1984.」
非特言午文献 4 : K.Matsuo, J.Chao, and S.Tsujn. Fast Genus two hyperelliptic curve c ryptosystems. Technical Report ISEC2001— 31, IEICE Japan, 2001.
非特言午文献 5 : M.Takahashi. Improving Harley algorithms for Jacobians of genus 2 hy perelliptic curves. SCIS2002. (Japanese).
非特言午文献 b : T丄 ange. Inversion-free arithmetic on genus 2 hyperelliptic curves. C ryptology ePrint Archive, 2002/147, IACR, 2002.
特言午文献 7 : T.Sugizaki, K.Matsuo, J.Chao, and S.Tsujn. An extension of Harley a ddition algtorithm for hyperelliptic curves over finite fields of characteristic two. ISE C2002-9, IEICE, 2001
非特言午文献 8 : T丄 ange, Efficient arithmetic on genus 2 hyperelliptic curves over fini te fields via explicit formulae. Cryptology ePrint Archive, 2002/121, IACR, 2002. 特言午文献 9 : J.Kuroki, M.Gonda, K.Masuo, J.Chao and S.Tsujn. Fast genus three hyperellipitc curve cryptosystems. Sし IS2002
特言午文献 10 : J.Pelzl, T.Wollinger, J. Guajardo, and C. Paar. Hyperelliptic curve C ryptosystems: Closing the Performance Gap to Elliptic Curves. Cryptology ePrint A rchive, 2003/026, IACR, 2003.
非特許文献 11 : Y.Miyamoto, H.Doi, K.Matsuo, J.Chao and S.Tsujii. A fast addition algorithm of genus two hyperelliptic curves. SCIS2002. (Japanese).
特言午文献 12 : N.Takahashi, H.Morimoto and A.Miyaji. Efficient exponentiation on genus two hyperelliptic curves (II). ISEC2002- 145, IEICE, 2003. (Japanese)
特言午文献 13 : T.Lange. Weighed coordinate on genus 2 hyperellipitc curve. Crypto logy ePrint Archive, 2002/153, IACR, 2002.
非特言午文献 14 : N. Nagao. Improving group law algorithms for Jacobians of hyperellip tic curves. ANTS- IV, LNCS 1838, pp.439- 448, Springer- Verlag, 2000. 非特許文献 15 : E.Knudsen. Elliptic Scalar Multiplication Using Point Halving. ASIA CRYPTO '99, LNCS 1716, pp.135— 149, Springer- Verlag, 1999.
非特許文献 16 : K.Fong, D.Hankerson, J.Lopez, and A.Menezes. Field inversion and point halving revised. Technical Report CORR2003— 18, http://www.cacr.math.uwat erloo.ca/techreports/2003/corr2003-18.pdf
非特許文献 17 : S. Dquesne. Montgomery Scalar Multiplication for Genus 2 Curves. ANTS— VI, LNCS 3076, pp.153— 168, 2004.
非特許文献 18 : T. Lange. Montgomery Addition for Genus Two Curves. ANTS- VI, LNCS 3076, pp.309- 317, 2004.
非特許文献 19 : T. Lange. Efficient Doubling on Genus Two Curves over Binary Fiel ds, SAC 2004, pre— proceedings, pp.189— 202, 2004.
発明の開示
発明が解決しょうとする課題
[0048] 現在、実用フェーズに入りつつある楕円曲線暗号 (ECC)アルゴリズムに対して、そ の拡張概念である超楕円曲線暗号 (HECC)アルゴリズムは、現在、学会レベルで高 速アルゴリズムや、その実装方法についての研究が進められている。超楕円曲線暗 号 (HECC)のスカラー倍算の演算時間は、楕円曲線暗号 (ECC)に近づきつつある 程度に過ぎず、さらなる高速ィ匕が望まれている。
[0049] 本発明は、このような現状に鑑みてなされたものであり、超楕円曲線暗号 (HECC) のスカラー倍算の演算時間を短縮し、高速処理可能な超楕円曲線暗号 (HECC)演 算処理を実現する暗号処理演算方法、および暗号処理装置、並びにコンピュータ- プログラムを提供することを目的とする。
[0050] 本発明は、楕円曲線暗号の 1Z2倍算を、超楕円曲線暗号に拡張し高速に計算で きるアルゴリズム、曲線パラメータ、定義体を見つけ、超楕円曲線暗号において 1Z2 倍算を適用した演算処理により、高速演算処理を実現する暗号処理演算方法、およ び暗号処理装置、並びにコンピュータ 'プログラムを提供することを目的とする。
課題を解決するための手段 [0051] 本発明の第 1の側面は、
超楕円曲線暗号に基づく暗号処理演算を実行する暗号処理演算方法であり、 超楕円曲線の因子 Dに対するスカラー倍算の演算において、演算処理として、 1/ 2倍算を含む演算を実行する演算ステップ、
を有することを特徴とする暗号処理演算方法にある。
[0052] さらに、本発明の暗号処理演算方法の一実施態様において、前記演算ステップは 、種数 2、標数 2のランダムパラメータを持つ超楕円曲線の因子 Dに対するスカラー倍 算において 1Z2倍算を含む演算を実行するステップであることを特徴とする。
[0053] さらに、本発明の暗号処理演算方法の一実施態様において、前記演算ステップは 、種数 2、標数 2の h (x) =x2+x+h , f
0 4 =0をパラメータに持つ超楕円曲線の因子
Dに対するスカラー倍算において 1/2倍算を含む演算を実行するステップであるこ とを特徴とする。
[0054] さらに、本発明の暗号処理演算方法の一実施態様において、前記演算ステップは 、種数 2、標数 2の h (x) =x2+h x+h , f =0をパラメータに持つ超楕円曲線の因
1 0 4
子 Dに対するスカラー倍算において 1Z2倍算を含む演算を実行するステップである ことを特徴とする。
[0055] さらに、本発明の暗号処理演算方法の一実施態様において、前記演算ステップは 、種数 2、標数 2の h (x) =xをパラメータに持つ超楕円曲線の因子 Dに対するスカラ 一倍算において 1Z2倍算を含む演算を実行するステップであることを特徴とする。
[0056] さらに、本発明の暗号処理演算方法の一実施態様において、前記暗号処理演算 方法は、予め固定された因子 Dについての [1/2 ]計算値に基づいて、 k , k ', ( k , k ')のいずれが正しいかを記録したテーブルを参照するテーブル参照ステップを
0 0
有し、前記演算ステップは、前記テーブルの参照に基づく判定処理によって、 1Z2 倍算の計算量を削減した演算処理として実行することを特徴とする。
[0057] さらに、本発明の暗号処理演算方法の一実施態様において、前記演算ステップは 入力: D = (U , V )ゝ
2 2 2
出力: D = (U , V ) = [1/2]D 、 ただし、 U (x) =x +u x+u , V (x) =v x+v , gcd (h, U ) = l, i= l, 2、 i il iO i il iO i とした 1Z2倍算の演算アルゴリズムに基づいて導出される以下の関係式、 1/k =h +k u
1 2 1 21
を適用し、逆元演算を行なうことなく乗算および加算処理によって逆元 ΐΖΐ^の値 を算出するステップを含むことを特徴とする。
[0058] さらに、本発明の暗号処理演算方法の一実施態様において、前記暗号処理演算 方法は、
入力: D = (U , V )ゝ
2 2 2
出力: D = (U , V ) = [1/2]D、
1 1 1 2
ただし、 U (x) =x2+u x+u , V (x) =v x+v , gcd (h, U ) = l, i= l, 2、
i il iO i il iO i とした 1Z2倍算演算アルゴリズムにおいて、 lZu を入力値として適用しない設定
21
を持つアルゴリズムに従った演算を実行することを特徴とする。
[0059] さらに、本発明の暗号処理演算方法の一実施態様において、前記暗号処理演算 方法は、種数 2、標数 2の h (x) =x2+ x+h , f =0をパラメータに持つ超楕円曲
1 0 4
線の因子 Dに対するスカラー倍算を実行する演算方法であり、前記演算ステップは、 算出済みの値として lZh 2を入力値として設定し、逆元 lZh 2を算出する処理を実 行することなぐ算出済みの入力値 lZh 2を適用するステップを含むことを特徴とす る。
[0060] さらに、本発明の第 2の側面は、
超楕円曲線暗号に基づく暗号処理演算を実行する暗号処理装置であり、 超楕円曲線の因子 Dに対するスカラー倍算の演算において、演算処理として、 1/
2倍算を含む演算を実行する演算実行部を有することを特徴とする暗号処理装置に ある。
[0061] さらに、本発明の暗号処理装置の一実施態様において、前記演算実行部は、種数 2、標数 2のランダムパラメータを持つ超楕円曲線の因子 Dに対するスカラー倍算に おいて 1/2倍算を含む演算を実行する構成であることを特徴とする。
[0062] さらに、本発明の暗号処理装置の一実施態様において、前記演算実行部は、種数 2、標数 2の h (x) =x2+x+h , f =0をパラメータに持つ超楕円曲線の因子 Dに対 するスカラー倍算において 1Z2倍算を含む演算を実行する構成であることを特徴と する。
[0063] さらに、本発明の暗号処理装置の一実施態様において、前記演算実行部は、種数 2、標数 2の h(x) =x2+h x+h , f =0をパラメータに持つ超楕円曲線の因子 D
1 0 4
対するスカラー倍算において 1Z2倍算を含む演算を実行する構成であることを特徴 とする。
[0064] さらに、本発明の暗号処理装置の一実施態様において、前記演算実行部は、種数
2、標数 2の h(x) =xをパラメータに持つ超楕円曲線の因子 Dに対するスカラー倍算 において 1/2倍算を含む演算を実行する構成であることを特徴とする。
[0065] さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理装置は、予 め固定された因子 Dについての [lZ2t>]計算値に基づいて、 k , k ', (k , k ')の
1 1 0 0
V、ずれが正 、かを記録したテーブルを格納した記憶部を有し、前記演算実行部は 、前記テーブルの参照に基づく判定処理によって、 1Z2倍算の計算量を削減した演 算処理を実行する構成であることを特徴とする。
[0066] さらに、本発明の暗号処理装置の一実施態様において、前記演算実行部は、 入力: D =(U , V )ゝ
2 2 2
出力: D =(U , V) = [1/2]D、
1 1 1 2
ただし、 U (x) =x2+u x+u , V (x)=v x+v , gcd(h, U)=l, i=l,
i il iO i il iO i 2、 とした 1Z2倍算の演算アルゴリズムに基づいて導出される以下の関係式、 l/k =h +k u
1 2 1 21
を適用し、逆元演算を行なうことなく乗算および加算処理によって逆元 ΐΖΐ^の値 を算出する構成であることを特徴とする。
[0067] さらに、本発明の暗号処理装置の一実施態様において、前記演算実行部は、 入力: D =(U , V )ゝ
2 2 2
出力: D =(U , V) = [1/2]D、
1 1 1 2
ただし、 U (x) =x2+u x+u , V (x)=v x+v , gcd(h, U)=l, i=l,
il iO i il iO i 2、 i
とした 1Z2倍算演算アルゴリズムを実行する構成であり、 l/u を入力値として適
21
用しない設定を持つアルゴリズムに従った演算を実行する構成であることを特徴とす る。
[0068] さらに、本発明の暗号処理装置の一実施態様において、前記演算実行部は、種数 2、標数 2の h (x) =x2+h x+h , f =0をパラメータに持つ超楕円曲線の因子 D
1 0 4
対するスカラー倍算を実行する構成を有し、算出済みの値として lZh 2を入力値とし 、逆元 lZh 2を算出する処理を実行することなぐ算出済みの入力値 lZh 2を適用 した演算を実行する構成であることを特徴とする。
[0069] さらに、本発明の第 3の側面は、
超楕円曲線暗号に基づく暗号処理演算をコンピュータ上で実行させるコンピュータ •プログラムであり、
超楕円曲線の因子 Dに対するスカラー倍算の演算において、演算処理として、 1/ 2倍算を含む演算を実行する演算ステップ、
を有することを特徴とするコンピュータ ·プログラムにある。
[0070] なお、本発明のコンピュータ 'プログラムは、例えば、様々なプログラム 'コードを実 行可能なコンピュータ ·システムに対して、コンピュータ可読な形式で提供する記憶 媒体、通信媒体、例えば、 CDや FD、 MOなどの記録媒体、あるいは、ネットワークな どの通信媒体によって提供可能なコンピュータ 'プログラムである。このようなプロダラ ムをコンピュータ可読な形式で提供することにより、コンピュータ 'システム上でプログ ラムに応じた処理が実現される。
[0071] 本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図 面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書において システムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内に あるものには限らない。
発明の効果
[0072] 本発明の構成によれば、楕円曲線暗号の 1Z2倍算を、超楕円曲線暗号に拡張し 、高速演算が実現される。超楕円曲線上の因子の演算を使う暗号処理演算におい て、処理の重い演算は因子のスカラー倍算であり、本発明の処理によりスカラー倍算 を高速ィ匕することで超楕円曲線暗号の処理を大幅に改善することができる。
[0073] 本発明の構成によれば、超楕円曲線暗号の因子 Dに対するスカラー倍算において 、演算処理として、 1Z2倍算を含む演算を実行することでスカラー倍算を高速ィ匕す ることができる。例えば、種数 2、標数 2の h (x) =x2+x+h , f =0をパラメータに持
0 4
つ超楕円曲線の因子 Dに対するスカラー倍算、あるいは、種数 2、標数 2の h (x) =x2 +h x+h , f =0をパラメータに持つ超楕円曲線の因子 Dに対するスカラー倍算、
1 0 4
あるいは、種数 2、標数 2の h (x) =xをパラメータに持つ超楕円曲線の因子 Dに対す るスカラー倍算において 1Z2倍算を含む演算を実行することで、高速演算が実現さ れる。
[0074] さらに、本発明の構成によれば、予め固定された因子 Dについての [lZ2t>]計算 値に基づいて、 k , k ', (k , k ')のいずれが正しいかを記録したテーブルを適用す
1 1 0 0
ることで、因子のスカラー倍算における計算量をさらに削減することが可能となり、さら なる高速ィ匕が実現される。
[0075] さらに、本発明の構成によれば、超楕円曲線暗号の因子 Dに対するスカラー倍算 において、演算処理として、 1Z2倍算を含む演算を実行する構成とするともに、 1/ 2倍算の演算処理において逆元演算の実行回数を減少させるアルゴリズムを適用し たので、因子のスカラー倍算における計算量をさらに削減することが可能となり、さら なる高速ィ匕が実現される。
図面の簡単な説明
[0076] [図 1]種数 2の超楕円曲線暗号のスカラー倍算における加算処理、 2倍算処理のアル ゴリズムについて説明する図である。
[図 2]種数 2の超楕円曲線暗号の 1Z2倍算の場合分け処理について説明する図で ある。
[図 3]HEC_HLVアルゴリズムについて説明するフローチャートを示す図である。
[図 4]HEC_HLV2→1+1アルゴリズムについて説明するフローチャートを示す図であ る。
[図 5]HEC_HLV2→2+2アルゴリズムについて説明するフローチャートを示す図であ る。
[図 6]HEC_HLV1→2+2アルゴリズムについて説明するフローチャートを示す図であ る。 [図 7]本発明の暗号処理演算を実行する暗号処理装置の機能構成を示すブロック図 である。
[図 8]本発明の暗号処理演算を実行する暗号処理実行デバイス例としての ICモジュ ールの構成例を示す図である。
発明を実施するための最良の形態
[0077] 以下、本発明の暗号処理装置および暗号処理演算方法、並びにコンピュータ'プ ログラムの詳細について説明する。
[0078] 本発明は、楕円曲線暗号を一般ィ匕した超楕円曲線暗号 (HECC : Hyper Elliptic C urve Cryptography)についての高速化演算手法である。前述したように、超楕円曲 線では曲線を特徴づける値は種数 (genus) gである。 pを素数、 nを正の整数、 q=pn とする。このとき有限体 Fq上で定義される種数 gの超楕円曲線 Cは以下の方程式、 y2 + h (x)y=f (x)
で定義される。ここで、 h (x) , f (x) EFq[x] , f (x)は、次数 2g+ lの monic多項式で ある。
[0079] 超楕円曲線 C上の点 P = (x、 y)に対する共役点(opposite point)は、— P = (x、 y+h(x) )として定義される。また、 P=— Pである点を分岐点(ramification point) と呼ぶ。
[0080] 超楕円曲線暗号の定義体の演算サイズ (ビット長)は楕円曲線暗号と同等の安全 性を仮定した場合、楕円曲線の定義体の演算サイズに比べて lZgに小さくなること が知られている。演算サイズが小さいことは実装上メリットがあり、超楕円曲線暗号の 利点の一つして挙げられる。
[0081] 前述したように、超楕円曲線暗号では点の形式的和である因子(divisor)を Dとし 、スカラー倍算 kDで定義される因子を Dとすると、 D力 kを求める問題は超楕円
1 2 2
曲線におけるヤコビ多様体上の離散対数問題として公開鍵暗号として用いることが できる。
[0082] ここで、因子(divisor)は有理点の形式和であり、以下の形式で表現することができ る。
[数 7] D二 ηι,Ρ,
[0083] また、半被約因子(semi reduced divisor)は、以下の形式で表現することがで きる。
[数 8]
D=〉 , -(〉jW,) , >0
ただし、 P = (x.、 y.)かつ i≠jに対して Ρ≠Pである。
[0084] また、∑ mを Dのウェイト(weight)と呼ぶ。さらにウェイト(weight)が種数 g以下で ある半被約因子を被約因子(reduced divisor)と呼ぶ。
[0085] 超楕円曲線のヤコビ (Jacobi)多様体上の任意の半被約因子 Dは下記の多項式 U
、 VEFq[x]を用いて D= (U、 V)として表現できる。これをマンホード(Mumford) 表現と呼ぶ。
[数 9]
,)= ',
V{xf + V{x)h{x)― f(x)≡ 0 mod U(x\ deg Vく deg U [0086] 種数(genus) 2の任意の被約因子 Dはマンホード(Mumford)表現を用いると、有 限体 Fq上の元を係数に持つ 2次以下の多項式の組、すなわち、
(U、 V) = (x2 + u x+u、 v x+v )、または、
1 0 1 0
(U、 V) = (x + x、 y )
0 0
として表現することができる。
また、零元は、
(U, V) = (l, o) =o
として表現される。
[0087] 本発明は、楕円曲線暗号の 1Z2倍算を、超楕円曲線暗号に拡張し、 2倍算よりも 高速に計算できるアルゴリズム、曲線パラメータ、定義体を見つけ、超楕円曲線暗号 において、 2倍算よりも高速な 1Z2倍算を適用した演算処理を実現するものである。 以下、本発明の実施例として、まず、前半において、以下に示す処理例 1〜6の手法 について説明する。
[0088] (処理例 1:提案法 A1)種数 2、標数 2のランダムパラメータを持つような超楕円曲線 において、因子 Dの 1Z2倍算を計算する方法。
(処理例 2 :提案法 F1)種数 2,標数 2の h (x) =x2+ x+h、 f =0をパラメータに
1 0 4
持つような超楕円曲線において因子 Dの 1Z2倍算を計算する方法。
(処理例 3 :提案法 B1)種数 2、標数 2の h (x) =x2+x+h、f =0をパラメータに持
0 4
つような超楕円曲線において、因子 Dの 1Z2倍算を計算する方法。
(処理例 4 :提案法 E1)種数 2、標数 2の h (x) =xをパラメータに持つような超楕円 曲線において、因子 Dの 1Z2倍算を計算する方法。
(処理例 5 :提案法 C1)種数 2、標数 2のランダムパラメータを持つような超楕円曲線
、 h(x) =x2+h x+h , f =0をパラメータに持つ超楕円曲線、および h(x) =x2+x
1 0 4
+ h、 f =0、または h (x) =xをパラメータに持つような超楕円曲線において、因子 D
0 4
の 1Z2倍算を計算する際に、 1Z2倍したものの候補が 2つ出てくる。 2つの候補のう ち、正しい値を選ぶ必要があるが、選ぶ際に、有限体のトレース、乗算、平方根を計 算する必要がある。どちらが正しいかは、因子 Dに依存する。そのため、因子 Dが固 定されている場合、事前に 2つの候補のうち、どちらが正しいかをテーブルに保持し、 正しい値を選ぶ際に、このテーブルを参照することにより、上記の余計な計算を省略 する方法。
(処理例 6 :提案法 D1)上記処理例 1〜5に示す因子の 1Z2倍算の計算方法を用 いて、因子のスカラー倍算を計算する方法。
[0089] さらに、後半において、上記処理例 1〜3処理例 5〜6をさらに改善した手法として、
(処理例 7 :提案法 A2)種数 2、標数 2のランダムパラメータを持つような超楕円曲線 において、因子 Dの 1Z2倍算を計算する方法。
(処理例 8 :提案法 F2)種数 2,標数 2の h (x) =x2+ x+h、 f =0をパラメータに
1 0 4
持つような超楕円曲線において因子 Dの 1Z2倍算を計算する方法。
(処理例 9 :提案法 B2)種数 2、標数 2の h (x) =x2+x+h、 f =0をパラメータに持
0 4
つような超楕円曲線において、因子 Dの 1Z2倍算を計算する方法。
(処理例 10:提案法 C2)種数 2、標数 2のランダムパラメータを持つような超楕円曲 線、 h(x) =x2+h x+h , f =0をパラメータに持つ超楕円曲線、および h(x) =x2 +
1 0 4
x+h、f =0をパラメータに持つような超楕円曲線において、因子 Dの 1Z2倍算を
0 4
計算する際に、 1Z2倍したものの候補が 2つ出てくる。 2つの候補のうち、正しい値を 選ぶ必要があるが、選ぶ際に、有限体のトレース、乗算、平方根を計算する必要があ る。どちらが正しいかは、因子 Dに依存する。そのため、因子 Dが固定されている場 合、事前に 2つの候補のうち、どちらが正しいかをテーブルに保持し、正しい値を選 ぶ際に、このテーブルを参照することにより、上記の余計な計算を省略する方法。
(処理例 11 :提案法 D2)上記処理例 7〜10に示す因子の 1Z2倍算の計算方法を 用いて、因子のスカラー倍算を計算する方法。
[0090] 以下、各処理例について、順次、その詳細を説明する。
[0091] [処理例 1 :提案法 A1]
処理例 1 (提案法 A1)は、種数 2、標数 2のランダムパラメータを持つような超楕円曲 線において、因子 Dの 1Z2倍算を計算する方法である。
[0092] また、これから扱う因子は位数カ^のものとする。つまり、扱う因子は分岐点を持たな い。入力因子を、
D = (U , V )ゝ U =u x +u x + u ゝ
2 22 21 20
V =V X + V 、
2 21 20
ここで、 Dの weightが 2の場合は u = 1、
2 22
Dの weightが 1の場合は u =0、 u = l、v =0とする。
2 22 21 21
分岐点を持たないため、 1Z2倍算として、
ExHarDBL1 +1→2
Figure imgf000026_0001
ExHarDBL2+2→2、および、 HarleyDBL の 4つの逆演算を考えればよ!、。 HarleyDBL以外は例外ケースである。
[0093] ここで ExHarDBL2+2→1は入力因子の weightが 2で、出力因子の weightが 1の場 合を計算する方法である。また、 ExHarDBL2+2→2 は入力因子の weightが 2で、か つ Uの 1次の項の係数が u =0を満たし、出力因子の weightが 2の場合を計算す
2 21
る方法である。ただし、 ExHarDBL2+2→2は HarleyDBLで計算できる力 これの逆 演算である 1/2倍算は、例外ケースとなるため、ここでは、 ExHarDBL2+2→2を例外 ケースとして扱う。
[0094] これら、 ExHarDBL1+1→2
Figure imgf000026_0002
ExHarDBL2+2→2、および、 Harle yDBLに対応する 1/2倍算をそれぞれ、 ExHEC— HLV2→1+1、 ExHEC— HLV1→ 2+2、 ExHEC— HLV2→2+2、および HEC— HLVとする。
[0095] 因子の 1Z2倍算を行なう場合、まず、入力因子により、図 2に示す通りに場合分け を行なう。入力因子の weightが 2で、かつ Uの 1次の項の係数が u ≠0を満たす場
2 21
合は、 HEC HLVで計算を行なう。また、入力因子の weightが 2で、かつ Uの項
― 2 の係数が u =0を満たす場合は、 ExHEC HLV2→2+2、もしくは、 ExHEC HLV
21 ― ―
2→1+1で計算を行なう。また、入力因子の weightが 1の場合は ExHEC— HLV1→2+2 で計算を行う。 HEC—HLVのアルゴリズムについて、図 3を参照して説明する。
[0096] 図 3は、 HEC—HLVのアルゴリズムを示すフローチャートである。
ステップ S101において、入力を、
D = (U , V )ゝ
2 2 2
U =x +u x + u ゝ
2 21 20
V =V X + V 、
2 21 20
とする。 [0097] ステップ S102において、 k h +k 2u +1 = 0の根、 k , k 'を求め、ステップ S103
1 2 1 21 1 1
において、 c f +hv +u + (f +u )u とおき、ステップ S104において、 k h
1 3 2 21 20 4 21 21 1 0
+k h +k 2u +c =0が根を持つか否かを判定し、根を持たない場合は、ステップ
0 1 0 21 1
S105において、 k k,とし、根を持つ場合は、ステップ S106に進み、 kh +kh
1 1 1 0 0 1
+ k 2u +c =0の根、 k, k,を求める。
0 21 1 0 0
[0098] 次にステップ S107に進み、 u を計算し、ステップ S108において、 xh +x2u +1
11 2 11
=0が根を持つ力否かを判定し、根を持たない場合は、ステップ S 109において、 k
0 k 'とし、根を持つ場合は、ステップ S110に進み、 u を計算する。さらに、ステップ
0 10
S111【こお!/ヽて、 V , V を計算し、ステップ S112【こお!/ヽて、
11 10
2
U X +u x + u
1 11 10
V V x+v
1 11 10
として、
ステップ S113において、出力、
D ^ (U , V )
を得る。
[0099] 因子の 1Z2倍算は、因子の 2倍算を行うアルゴリズム、すなわち、以下に示す [Alg orithm 1 HarleyDBLj
[数 10]
Algorithm 1 HarleyDBL
Input Ό
Output :D2 ={U2 2)
Ul (x) - x2 + iinx + uj0, Vt(x) = virY + v;0, gcd(?,ひ = 1
1. ひ; ひ,2
2. S <- {f + hV +V;)IU, mod U,
3. V;^SU +V}
4. U2' ^(f + hV;+v;2)IU'
5. ひ 2 MakeMonic ( ;)
6. V2 - l + h mod U2
7. return Z)2 =(f/2, V)
[0100] 上記アルゴリズム 1[ Algorithm 1 HarleyDBL]を逆から計算することにより実現 する。 Algorithm 1のステップ 6では、
V '+h=(k x+k )U +V
1 1 0 2 2
を満たすような多項式、
k(x)=k X + k
1 0
が唯一存在する。
[0101] これを、
V ' = h+(k x+k )U +V
1 1 0 2 2
と式変形し、ステップ 4に現れる式、
(f+hV '+V '2)
に代入すると、ステップ 4は、次のようになる。
U 'U ' = f+h(kU +V ) +k2U 22· · '式(1)
2 1 2 2 2 2
上記式において、
(U , V )は分かっているので、式(1)から、 kと U 'との関係式が得られる。 U =k U
2 1 2
であることに注意する。
[0102] 上記式(1)を展開して整理すると、次のようになる
U X + ((k h +k u +l)/k )x + ((k h +k h +k u +k c )/k
1 1 2 1 21 1 1 1 0 2 1 20 0
)x2+((k h +k h +k 2u +c )/k 2)x+(k h +k 2u +c )/k 2
1 0 0 1 0 21 1 1 0 0 0 20 0 1
···式 (2)
ここで,
c =f +u
2 4 21
c =f +h v +u +c u
1 3 2 21 20 2 21
2
c =f +h v +h v +v +c u +c u
0 2 2 20 1 21 21 2 20 1 21
を満たす。
[0103] また、ステップ 1より、
U ' = U 2
つまり、
τ τ , 4 , 2 2 , 2
U =χ十 u χ十 u
1 11 10
···式 (3)
が成り立つ。
[0104] 上記式 (2)、 (3)の各係数を比較することにより、関係式を導き、この関係式を解くこ とにより、 1/2倍算が計算できる。上記の処理手順を示すアルゴリズムを以下に、ァ ルゴリズム 4 [Algorithm 4 Sketch HEC_HLV]として示す。
[数 11] Algorithm 4 Sketch HEC _HLV
Input: D2 = (ひ 2, K- )
Output: Ό = φχ ) = [1 / 2]D2
U^x) = x2 +/Λ,Χ + /0, Vi(x) = v x + vil1, gcd(?,ひ,) = 1, i-l,2
1. reconstruct k0,kx
1.1 V; - 2+A + kU2 , k{x) = k,x + k0
1.2ひ; (/ + hVt'+ V;2 ) /(ん,22 )
1.3 derive k(、,k、 from coeff(i/, 3) = 0,coeff(i/;, I)二 0
2. compute nu by substituting 。,ん, in coeff (ひ, 2)
3. compute //,,, by substituting k,)7k in coeff (ひ】', 0)
Figure imgf000030_0001
5. ί ^F,+/7 + W/2 modi/,
6. return D, = (ひい )
具体的には,次の関係式が得られる。
[数 12]
Figure imgf000030_0002
U\0 = Λ Ο ) ^ ll20 ^co ん 1
これらの関係式から,正しい k , kを計算する必要がある力 これは、次の補題によ つて計算でさる。
[補題 1]
h(x)を既約多項式であると仮定する。このとき、式 (4) , (5)を満たす 1^は唯一であ る。また、式(5)は、正しい kに対してのみ、根を持つ。また、 Algorithm4での 1Z2 倍された因子 Dを計算できる kは唯一存在する。また、以下に示す式、
1 0
xh +x2u + 1 = 0
2 11
は、正しい kに対してのみ根を持つ。
0
Algorithm4に対して上記補題 1を適用した。詳細な 1Z2倍算の計算方法を以下 のアルゴリズム 5 [Algorithm 5 HEC_HLV]として示す。
[数 13]
Algorithm 5 HEC— HLV
Input: D2 = (ひ 2 , V2 )
ひゆ" A = (ひい ίく) = [1/2]β:
こ/, (χ) -χ2 + it x + i0, 1' (x) = νιΓτ + ν,。 , gcd(/?, ί , ) = 1, = 1, 2
Figure imgf000032_0001
?/2] //? */
k、 - Η(γ) , k[ ~ + or
2. Select correct k、 by solving ん 。 + k0h} + 〃 21 +c = 0
Ct - f2 + 2 + ' 21 + V21 + 〃2。 +C1〃21
a <r- h、/'ii2、, γ <r- (c +ん 0)/("212)
if Tr(j) = l then kx r- k', γ < - (c, +klh„)l{iizxa2)
ん。 - U( )a, k[ ^kx+a
3. Select correct k0 by checking trace of χίιΊ +x~n +1 = 0
n
Figure imgf000032_0002
I k γ "(- nlh;
if Tr ( 二 1 then
k0 - k:、, uu <-」kfy + k0h2 +1(;Ίι2、十 ^ +c2 /ん,
4. Compute Ul
Figure imgf000032_0003
5. Compute \ - V2 +h + kU7 mod Ux
w — h2 + w21 +k" +krii
vn — v2l + ?, + 〃 2。 +k0i<,、 + //10 r, +iinw
6. U、 (x) - x2 +//nx + w10, \ (x) <— vnx + v|n
7. return Dx = (ひい
上記アルゴリズム 5[Algorithm5]では、 k 'が正しい値(言い換えると が 正しくない値)である場合、計算量は、
32M + 5S + 6I + 3SR+2H + 2T
となる。ここで M, S, I, SR, H, Tはそれぞれ有限体上の乗算、 2乗算、逆元演算、 平方根演算、ハーフトレース(二次方程式の根を求める演算)、トレース(二次方程式 の根がある力否かの判定)を意味する。この k ', k 'が正しい値である場合、計算量
1 0
は最も多くなる。
[0109] 次に k , kが正しい値 (言い換えると k ', k 'が正しくない値)である場合、計算量は
1 0 1 0
最も少なくなり、ステップ 2では 2Mの計算量が削減でき、ステップ 3では、 2M+ 1SR の計算量が削減できる。つまり、この場合の計算量は、
28M + 5S + 6I + 2SR+ 2H + 2Tとなり、計算量は最も少なくなる。
[0110] 次に k , k 'が正しい値(言い換えると k ', kが正しくない値)である場合,ステップ 3
1 0 1 0
では、 2M+ 1SRの計算量が削減できる。つまり、この場合の計算量は、
30M + 5S + 6I + 2SR+ 2H + 2Tとなる。
[0111] 最後に k ', kが正しい値 (言い換えると k , k 'が正しくない値)である場合、ステツ
1 0 1 0
プ 2では, 2Mの計算量が削減できる。つまり、この場合の計算量は、
30M + 5S + 6I + 3SR+ 2H + 2Tとなる。
[0112] 上記の 4つの場合が発生する確率を、計算機実験によって確認した結果、ほぼ同 じ割合で発生していることが確認された。これ以降は、上記 4つの場合が生じる確率 は等しいとする。上記 4つの場合の計算量の平均をとると、
30M + 5S + 6I + 2. 5SR+ 2H + 2T
となる。
[0113] 次に、例外ケースの、
ExHEC— HLV2→1+1
ExHEC— HLV1→2+2
ExHEC— HLV2→2+2
について考える。これらが発生する確率は無視できる程度であるので、計算量の評 価は行なわない。
[0114] まず、 ExHEC— HLV2→1+1、のアルゴリズムを、図 4のフローを参照して説明する。
ExHEC— HLV2→1+1は、 ExHarDBL1 +1→2を逆カゝら計算することにより実現する。 ExHarDBL1+ 1→2の入力因子を、
D = (U、 V )、U =x + u 、V =v 、 とすると、出力因子、
D = (U、 V ) =2D、 U =x2 + u x、 V =v x+v 、
2 2 2 1 2 20 2 21 20
は、次のように計算できる。
U =x2 + u =(x + u )2
2 20 10
v =(u 4 + f u 2 + f +h v )/h(u ),
12 10 3 10 1 1 10 10
V =V +V U
20 10 21 10
[0115] この関係式を用いて、 ExHEC_HLV2→1+1を計算する。
入力因子を、
D =(U、 V )、U =x2 + u x、V =v x+v 、
2 2 2 2 20 2 21 20
とする(図 4のフロー:ステップ S201)と、
出力因子、
D =(U、 V ) = [1Z2]D、U =x + u 、V =v 、
1 1 1 2 1 10 1 10
を求めるため、
ステップ S202において、 u =- u 、
10 20
ステップ S203において、 v =(v h(u )+u +f u +f )Zh、
10 21 10 10 3 10 1 1
とし、ステップ S204にお!/ヽて、
U =x+u 、 V =v 、
1 10 1 10
として、ステップ S205において、
出力因子、
D = (U、 V )
を得る。
[0116] 次に、 ExHEC— HLV2→2+2、の処理手順について、図 5のフローを参照して説明 する。ステップ S 301において、入力因子を、
D =(U、 V )、U =x2 + u 、V =v x+v 、
2 2 2 2 20 2 21 20
とする。
[0117] ステップ S302において、 k h +1 = 0を kに関して解き、 k lZhとする。
1 2 1 1 2
ステップ S303において、
c— f c f +h v +u +u c
1 3 2 21 20 21 2
として、ステップ S304において、
k h +k h +c =0を kに関して解き、 k (k h +c ) Zhとする。
1 0 0 1 1 0 0 1 0 1 1
[0118] 次に、ステップ S305において、 u を計算し、ステップ S306において、
11
xh +x2u + 1 = 0
2 11
が根を持つ力否かを判定し、根を持たない場合は、ステップ S307において、 D HEC HLV2→1 (D )
1 ― 2
によって出力 Dを決定 (ステップ S308)する。
[0119] 一方、
xh +x2u + 1 = 0
2 11
が根を持つ場合は、ステップ S309に進み、 u を計算し、さらに、ステップ S310
10
お!/ヽて V , V を計算し、ステップ S311【こお!/ヽて、
11 10
2
U X +u x + u
1 11 10
V V x+v
1 11 10
として、ステップ S312において出力、
D ^ (U , V )
を得る。
[0120] この、 ExHEC— HLV2→2+2、の処理は、具体的には、以下の手順で行なわれる。
入力因子を、
D = (U、 V )、U =x2 + u 、V =v x+v 、
2 2 2 2 20 2 21 20
として、
U =x2 + u 、
2 20
の場合、つまり Uの 1次の項が 0の場合、出力因子の候補は 2つあり、それらを、
2
D = (x + u , V ( u ) )
1 20 2 20
D = (x +u x + u , ν x+v )
1 11 10 11 10
と表す。
[0121] Dが正しければ、 ExHEC_HLV2→1+1で計算する。
D 'が正しければ、 ExHEC HLV2→2+2を用いて計算する。 どちらのアルゴリズムを用いるかは、次の手順で判定する。
1. D 'が正しいと仮定する。
2. u を計算する。
11
3. xh +x2u + 1 = 0のトレース Tr (h /u 2)を計算する。もし Tr (h /u 0
2 11 2 11 2 11 ならば D 'が正しいので、 ExHEC_HLV2→2+2を用いて計算する。そうではなくて Tr (h Zu 2) = 1ならば、 Dが正しぐ ExHEC_HLV2→1+1を用いて計算する。
2 11 1 一
ExHEC_HLV2→2+2の計算アルゴリズムを、アルゴリズム 6 [Algorithm6]として 以下に示す。
[数 14]
Algorithm 6 ExHEC _HLV2→2+2
hip'ut: D 二 (ひ, ,V2)-{x^ +w?0, v21 + v20 )
Output: = (ひい )二 (JT +? , x + 0 ,、Ί ) Λ: + vI0 )二 [1 / 2] i¾
一 gcd(/?,ひ ,) = 1, z:l,2
1. Solveん〗/72+l = 0
k lh
2. Select correct k} by solving kxhb +k0hx +c} 二 0
2^f4, cx <- f3 +h2v2l +?/20 +c2 2l
c0 /2 +h2v20 +(h, +v21)v21 +c2w2(J +cxti2X
A+ h
3. Select correct algorithm by checking trace of xh2 +x2uu +1 = 0
Figure imgf000037_0001
Dl ^ExHEC_HLV2→]+](D2), return Dx Compute ϋ
5. Compute V 二 2 +み +んひ2 modひ】
Figure imgf000037_0002
vii \ + iw 2。 + o + unw
V10 V20 + 。 + 。 。 +ΜΗ^
6. ΙΙλ{χ) - + uX + t(]0, l (χ) <- ν,,χ + ν10
7. return = (ひい )
次に、 ExHEC_HLV1→2+2、の処理手順について、図 6のフローを参照して説明 する。ステップ S401iこお ヽて、人力を、
D = (U , V )ゝ
2 2 2
U =x+u 、
2 20
V =v 、 とする。
[0123] ステップ S402において、 c f +u として、ステップ S403において、 k h +k 2u
3 4 20 1 2 1 2
+ c =0の根、 k , k 'を求め、ステップ S404において、
1 3 1 1
C f + C U 、
2 3 3 20
c f +h v +c u 、
1 2 2 20 2 20
とおき、ステップ S405において、 k h +k h +k 2+c =0が根を持つか否かを判
1 0 0 1 0 1
定し、根を持たない場合は、ステップ S406において、 k k 'とした後、ステップ S40 7に進み、根を持つ場合はそのままステップ S407に進む。
[0124] ステップ S407では、 k h +k h +k 2+c =0の根、 k , k 'を求め、次にステップ S
1 0 0 1 0 1 0 0
408に進み、 u を計算し、ステップ S409において、 xh +x2u + 1 = 0が根を持つ
11 2 11
か否かを判定し、根を持たない場合は、ステップ S410において k k 'とした後ステ
0 0
ップ S411に進む。根を持つ場合は、そのままステップ S411に進み、 u を計算する
10
。さらに、ステップ S412において、 V , V を計算し、ステップ S413において、
11 10
2
U X +u x + u
1 11 10
V V x+v
1 11 10
として、
ステップ S414において、出力、
D ^ (U , V )
を得る。
[0125] ExHEC— HLV1→2+2の計算手順は、 HEC— HLVと似て!/、るが、大きな違いは入 力因子の weightである。そのため、 ExHEC— HLV1→2+2の f+hV ' +V '2は、 5次 のモニック多項式となり、
U '^ (f+hV ' +V '2) /υ、
1 1 1 2
は HEC— HLVのように k 2で割ることはない。 ExHEC— HLV1→2+2の計算アルゴ リズムを、アルゴリズム 7 [Algorithm7]として以下に示す。
[数 15] Algorithm 7 ExHEC― HL Vl→2 ' 2
1,": D2 = (ひ 2 ,V2)^(x + «20 , v20 )
Outp t : Z), = (ひい O (x2 + x + iiw, v„ c + vK,) = [1/2]Z¾
— gcd(/?,ひ,) =1, /' = 1, 2
1. Solved A
Figure imgf000039_0001
+c3 = 0
c3 f4 +w20, <^h2, γ - ci /(u2la2)
k、 - H(x)or, k[ <r- kY +a
2. Select correct k、 by solving kh。 +k0 + + c, =0
c23 +c3//20, c{ <r- f2 +h2v20 +c ½, n - f、 +hxv20 +c,u20 ar ~ ¾, γ <— (c, +kih0)l 2
if Tr( ) = 1 then ' <~ ', γ — (c, +kxh())l a2
k。 <r- ¥ί(χ)α, k[ ^kx+a
3. Select correct k0 by checking trace of xh +x"//n +1 = 0
Figure imgf000039_0002
4. Compute Ux
Figure imgf000039_0003
5. Compute = +Λ十 ひ 2 modひ ,
— 72 + k、
vu — +ん】 M,()十ん。
νι。 ^+^+^ί^+,/,^
6.ひ】 (χ) <— χ2 + Uj tx + w, V (x) <— v, xx + v10
7. return D, = U, )
[0126] [処理例 2:提案法 Fl]
処理例 2(提案法 F1)は、種数 2,標数 2の h(x) =x2+h x+h、 f =0をパラメータ
1 0 4
に持つような超楕円曲線において因子 Dの 1Z2倍算を計算する方法である。
[0127] Algorithm5を良く見ると、 h(x)の係数との乗算、 h(x)の係数の逆元演算が多くあ る。つまり、 h(x)の係数を工夫することにより、乗算および逆元演算の計算量を削減 することができる。なお、文献(非特許文献 19 : T. Lange. Efficient Doubling on Genu s Two Curves over Binary Fields, SAC 2004, pre- proceedings, pp.189- 202, 2004.) では、高速化のため、 h = 1、 f =0を用いている。このパラメータを用いた場合の Ha
2 4
rleyDBLの計算量は、 21M + 5S + IIである。
[0128] ここで説明する処理例 2 (提案法 F1)もこれに条件を合わせることにするが、補題 1 より、 h (x)は既約多項式を仮定しているため、
h(x) =x2+h x+h、
1 0
Tr(h /h 2) = 1[0]
0 1
とする(二次方程式 ax2 + bx + c = 0が既約多項式であるための必要十分条件は Tr (ac/b2) = 1である)。この場合の計算法をアルゴリズム 8 [Algorithm 8]HEC_H LV (h = 1、 f =0)に示す。
2 4
[0129] [数 16]
Algorithm8 HEC— HLV (h2二 f4二 Q、
hip t: D2二 (U2, V2 ), 画/ = 1///21, 1/ h
Output: D} 二(ひい 二 [1/2]Z)2,
Figure imgf000041_0001
U^x) = x2 +//7lx + w.0, Vf (x) = vrr + i0, gcd(z,ひ = 1,/. 二 1,2
1. Solved +k~^u2X +1 = 0
a ~ inv , k r- H(//2] )a, k[ ^ kx^-a
2. Select correct kA by solving k{h0 + hj +ん 0 2"21 +^ 二 0 c f2 + v20 + v21 (h, + v2l ) + u2 (u20 + c, )
^。 2\ Ζ^ί—, a ^~ a-> 7 ^ (C\ + Λ))Ή,
if Ύτ(γ) = 1 then k、 - k[, γ ~ (c +^ ?0)^{)
k0 ^r- H ( び, k0' ^k()-\-a
3. Select correct k() by checking trace of r + x2//u +1 = 0
Vt'D 2
Figure imgf000041_0002
r- IV0/ 20 +k l十〃 21
W2 kQ +-^W +k0, W3 r~ k0' + , W4 - M^W,
Figure imgf000041_0003
if Tr(x) - 1 then
k0 k0', u ^ww^ w2 ^
inv r- M„3
4. Compute U、
u ん 0//2n, w5 ん い H'6 (ん () + k{ )(w20 + //21 )
5. Compute 二 V2 +お + ひ2 mod !—
W4 r~W5 +k0 -\~], W5 + W5 + W6 + V2] + h、
W6 r- + 20 + h0, W7 r- + W4
M πν·/10, w3 {k +W7)(N] +//N)
V】 1 -
Figure imgf000041_0004
+ W7
6.ひ ) x2 + wnx + /10, V(x) vnx + v10
7. return D{ - (こ/い J^), invu
また、逆元演算の回数を削除するため、モンゴメリトリックと呼ばれる手法を用いてい る。これは、例えば 3個の有限体の元 a、 b、 cの逆元を求めたい場合、まず、 3つの元 の積を求め、これの逆元を w= lZ (a * b * c)などと求める。次に、 aの逆元を求める 場合は、 w * b * cを計算する。 b、 cの逆元も同様にして、 w* a * c、w* a * bとそれ ぞれ計算する。
[0131] 通常、逆元演算は、乗算の数倍程度 (後で示すが、ソフトウェア実装を行った結果、 逆元演算は乗算の 8倍程度)の計算量である。そのため、例えば 3つの元の逆元を求 める場合、素直に 3回逆元演算を行えば、 I = 8Mと仮定すると、 24Mの計算量となる 。逆に、前述のモンゴメリトリックを用いた場合は、 I + 8M= 16Mとなり、 3回逆元演算 を行うよりも高速である。
[0132] ここで説明している処理例 2 (提案法 F1)では、このモンゴメリトリックを用いて、 u
11 の逆元を求めている。 u の逆元は、次回の
11 1Z2倍算の入力として与える。そのため
、 Algorithm8は、 [l/^Dを計算することができ、因子 Dのスカラー倍算を行う場 合、 right— to— left法、つまり、 [lZ^Dを加算する方法に適用できる。 1Z2倍算 を用いたスカラー倍算については、後ほど述べる。また、この計算量は次の通りであ る。
(a) k , kが正しぃ値でぁる場合:24M + 2S + 1I + 3SR+ 2H + 2T
1 0
(b) k , k 'が正しい値である場合: 26M + 2S + 1I + 3SR+ 2H + 2T
1 0
(c) k ', kが正しぃ値でぁる場合:25M + 2S + 1I + 3SR+ 2H + 2T
1 0
(d) k ', k 'が正しい値である場合: 27M + 2S + 1I + 3SR+ 2H + 2T
1 0
上記(a)〜(d)のすべてについて平均すると、 25. 5M + 2S + 1I + 3SR+ 2H + 2 Tとなる。
[0133] HarleyDBLの計算量は、 21M + 5S + IIであった。ここで、文献 [ (非特許文献 15 ) E.Knudsen. Elliptic Scalar Multiplication Using Point Halving. ASIACRYPTO '99, LNCS 1716, pp.135- 149, Springer- Verlag, 1999.]によると、有限体が正規基底で定 義されている場合、 S (2乗算), SR (平方根演算), H (ハーフトレース (二次方程式 の根を求める演算)), T (トレース(二次方程式の根がある力否かの判定))の計算量 は無視することができ、 M (乗算), 1 (逆元演算)の計算量のみ考慮すればよいことが 知られている。そのため、正規基底を用いた場合、 Algorithm8は HarleyDBLよりも 4. 5M低速となる。 [0134] また、有限体が多項式基底で定義されている場合、文献 [ (非特許文献 16) K.Fo ng, D.Hankerson, J.Lopez, and A.Menezes. rield inversion and point halving revise d. Technical Report CORR2003— 18, http://www.cacr.math.uwaterloo.ca/techreport s/2003/ corr2003- 18.pdfl8]によると、通常 SR (平方根演算), H (ハーフトレース( 二次方程式の根を求める演算))の計算量は、 M (乗算)との対比において、 SR=H =0. 5M程度であることが知られている。また、 T (トレース(二次方程式の根があるか 否かの判定))の計算量は無視できる。さらに S (2乗算)の計算量は、 M (乗算)の数 分の 1程度であることが知られている。し力しながら、 SRの計算量は、多項式基底の 選び方によっては、 0. 5Mよりも少なくなることも、同時に知られている。なお、例外ケ ースは、前述の処理例 1 (提案法 A1)の例外ケースに基いて計算できる。
[0135] [処理例 3 (提案法 B1) ]
処理例 3 (提案法 B1)は、種数 2、標数 2の h (x) =x2+x+h、 f =0をパラメータに
0 4
持つような超楕円曲線において、因子 Dの 1Z2倍算を計算する方法である。
[0136] 前述の処理例 2 (提案法 F1)において説明したように、処理例 1 (提案法 A1)にお いて説明した 1Z2倍算の計算アルゴリズム、すなわち、アルゴリズム 5 [Algorithm 5 HEC— HLV]を良く見ると、 h (x)の係数との乗算、 h (x)の係数の逆元演算が多 くある。つまり、 h (x)の係数を工夫することにより、乗算および逆元演算の計算量を 削減することができる。文献 [J.Pelzl, T.Wollinger, and C.Paar. High Performance Ari thmetic for Hyperelliptic Curve Cryptosystems of Genus Two. Cryptology ePrint Ar chive, 2003/212, IACR, 2003]では、高速化のために、 , ≡{0, 1 } , f =0を用
2 1 4 いた例を示している。
[0137] このパラメータを用いた場合の [HarleyDBL]の計算量は、
18M + 7S + 1I
である。
[0138] 処理例 3 (提案法 B1)もこれに条件を合わせることにするが、前述した [補題 1]より、 h (X)は既約多項式を仮定して!、るため、
h (x) =x2+x+h ,
0
Tr (h ) = l とする(二次方程式 ax2 + bx + c = 0が既約多項式であるための必要十分条件は Tr (acZb2)=lである)。
この場合の計算法示すアルゴリズムをアルゴリズム 10 [AlgorithmlO HEC— HL V(h =h =1, f =0)]として以下に示す。
2 1 4
[数 17]
Algorithm 10 HEC _HLV(h2 h = 1,ブ4二 0)
Input: D2 - (T人, V2 X imni二 1 /〃21
Output: 二(ひい 二 [1 / 2]D2 , i = l/ /n
Ul (x) = JT + uv + w.0 , V^ ) - v x + v.0, gcd( , 11 i )二 1, /二 1, 2
1. Solved, + k^u2 +1 = 0
a <- / /v7/, k - H(/Y21 )a, k[ ~- k^
2. Select correct kx by solving kh +k 十ん 0 2//21 + 二 0
^'ΰ /2 + ^20 +V21 + V'l + "21 (" Cl )
Figure imgf000045_0001
if Tr(x)二 1 then kx ~ k(, γ <- X + /?0
k Η(/) , k,0 ^k{)+a
3. Select correct k0 by checking trace of .v + 1 +1 0
H-'n <—ん】 2
Figure imgf000045_0002
< - n /.70 +ん】 + u2
4r~ kQ +sJW{0, W + fw} + k( f ), W4 r- W2W,
WY r- 1 /(W4ん】), W4 r- 1W4, ^'2 W
Figure imgf000045_0003
k() ^r-ん (;, uu w,w4 つ w3
4. Compute Ux
Figure imgf000045_0004
+;/21)
"つ ^4 。 ^+¾) + ^
5. Compute V 二 +h + k.U mod U
W4 十ん 0 十 1, W5 + + W6 + V +1, W6 r- W{ +、' 。 + ?0
invu r- wQw3
^2 +W4, W3 ( 。 +^)(//Kl
VK) <r- ~\-W2 +W, +
6. U (x) <r- x2 +wux + //10, l\(x) 、ク 十 v10
7. return Dx (U I ), invu また、逆元演算の回数を削除するため、前述の処理例 2 (提案法 F1)と同様、モン ゴメリトリック手法を用いている。本処理例においてもモンゴメリトリックを用いて、 u の
11 逆元を求めている。 u の逆元は、次回の 1/2倍算の入力として与える。この処理例 における計算量は次の通りである。
(a) k , kが正しぃ値でぁる場合:19M + 3S + 1I + 3SR+ 2H + 2T
1 0
(b) k , k 'が正しい値である場合: 20M + 3S + 1I + 3SR+ 2H + 2T
1 0
(c) k ', kが正しぃ値でぁる場合:19M + 3S + 1I + 3SR+ 2H + 2T
1 0
(d) k ', k 'が正しい値である場合: 20M + 3S + 1I + 3SR+ 2H + 2T
1 0
[0141] 上記(a)〜(d)のすベての場合にっ 、て平均すると、
19. 5M + 3S + 1I + 3SR+ 2H + 2T
となる。 HarleyDBLの計算量は、 18M + 7S + IIであった。ここで、前述したように 、文献 [E.Knudsen. Elliptic Scalar Multiplication Using Point Halving. ASIACRYPTO '99, LNCS 1716, pp.135- 149, Springer- Verlag, 1999.]によると、有限体が正規基底 で定義されている場合、 S (2乗算), SR (平方根演算), H (ハーフトレース (二次方程 式の根を求める演算)), T (トレース(二次方程式の根がある力否かの判定))の計算 量は無視することができ、 M (乗算), 1 (逆元演算)の計算量のみ考慮すればよいこと が知られている。
[0142] そのため、正規基底を用いた場合、上述したアルゴリズム 10 [AlgorithmlO]は、 従来のアルゴリズム [HarleyDBL]よりも、 1. 5M低速となる。また、有限体が多項式 基底で定義されている場合、文献 [K.Fong, D.Hankerson, J丄 opez, and A.Menezes. Field inversion and point halving revised. Technical Report CORR2003— 18, http:// www.cacr.math.uwaterloo.ca/techreports/2003/corr2003-18.pdf]によると、通'吊' SR , Hの計算量は、 SR=H = 0. 5M程度であることが知られている。また、 Tの計算量 は無視できる。さらに Sの計算量は、 Mの数分の 1程度であることが知られている。し 力しながら、 SRの計算量は、多項式基底の選び方によっては、 0. 5Mよりも少なくな ることも同時に知られている。
[0143] さて、前述のアルゴリズム 10 [Algorithml0]の曲線にさらに、 h = 1の制約を設け
0
る。前述のアルゴリズム 10 [AlgorithmlO]は、 hの乗算が 1回あるので、 h = 1とす
0 0 ることにより、 1Mの削減ができ、上記(a)〜(d)のすベての場合についての平均の計 算量は、
18. 5M + 3S + 1I + 3SR+ 2H + 2T となる。一方、 HarleyDBLは、計算量は、
15M + 7S + 1I
である。なお、例外ケースは、前述の処理例 1 (提案法 A1)の例外ケースに基いて 計算できる。
[0144] [処理例 4 (提案法 E1) ]
処理例 4 (提案法 E1)は、種数 2、標数 2の h (x) =xをパラメータに持つような超楕 円曲線において、因子 Dの 1Z2倍算を計算する方法である。
[0145] 処理例 3 (提案法 B1)と同様、アルゴリズム 5 (Algorithm5)にお!/、て、 h (x)を h (x)
=xとすることで,因子の 1Z2倍算に必要な有限体上の元の乗算および逆元演算の 計算量を削減することができる。具体例として f (X) =x5+f x+f
1 0の場合のァルゴリズ ムを、アルゴリズム 12 (Algorithmic)として、以下に示す。
[数 18]
Algorithm 12H£C― HLV(h(x)二 x,f(x) = x} + f]X + f0)
Inp t :D2 =(U2,V2)
Output :Dx ={Uxy,) = [112]D2
Ui (x) -x2 + ",., x + uM , Vt (x) = v;1 x + v,n , gcd(?, l].)^\ = 1,2
1. Solve 21 +1 = 0
w0 11 u2l, k、 <―
Figure imgf000048_0001
2. Solve ^() +c, - 0
C <-//20+ , W, r- C,U2l
C0 ^ V21 +V21 +»21W20 +^
im'k、 - (― ι , 1 <— H(Wj), w3 ~ iへ + 1
3. Compute U
〃 Φ 、 + K0 , ]0 <- if 丁 , 〃,。 + im'k、 +ん0)) = 1 then
k。 k'0,w2 -w3n 〃„+んい〃 10
Figure imgf000048_0002
4. Compute = + h + W2 mod ΙΙ
¾ (»21 + \ι ] ) + kQ
vii -ん 1("20 +"10)十 w2 +' +1+»„ ΐ·Ί
5. Ux (x) — -v2 +'〃nx + "10, Vx{x) vH + v10
6. return D} - (U^ , V )
前述の処理例 3 (提案法 Bl)と同様に、上記のアルゴリズム 12 (Algorithmic)に ついて計算量を評価する。処理例 3 (提案法 B1)と異なり、 h(x) =xのタイプの超楕 円曲線の場合、 kは step. 1において一意に決まるので、 kのみ選択するステップが 存在する(Step. 3)。計算量の少ない Best caseは step. 3の if文の Traceが 0の場 合であり、 Worst caseは Traceが 1の場合である。どちらも等確率で起こるため、平 均の計算量は、
11. 5M + 2S + 1I+4. 5SR+ 1H+ 1T
である。この計算量は前述の処理例 3よりも少なく高速に演算できる。なお、例外ケ ースは、前述の処理例 1 (提案法 A1)の例外ケースに基いて計算できる。
[0147] [処理例 5 (提案法 C1) ]
処理例 5 (提案法 C1)は、種数 2、標数 2のランダムパラメータを持つような超楕円曲 線、 h(x) =x2+h x+h , f =0をパラメータに持つ超楕円曲線、および h(x) =x2 +
1 0 4
x+h、f =0をパラメータに持つような超楕円曲線において、因子 Dの 1Z2倍算を
0 4
計算する際に、 1Z2倍したものの候補が 2つ出てくる。 2つの候補のうち、正しい値を 選ぶ必要があるが、選ぶ際に、有限体のトレース、乗算、平方根を計算する必要があ る。どちらが正しいかは、因子 Dに依存する。そのため、因子 Dが固定されている場 合、事前に 2つの候補のうち、どちらが正しいかをテーブルに保持し、正しい値を選 ぶ際に、このテーブルを参照することにより、上記の余計な計算を省略する方法であ る。
[0148] k , k ' (k , k ')のどちらが正しいかは、入力因子 Dに依存している。したがって、 D
1 1 0 0
が固定されている場合、例えば ECDH型鍵交換のフェーズ 1や、 ECDSA型署名生 成、検証など、ベースポイントがあら力じめ決まっている場合、事前に、 [lZ^Dを 計算し、 k , k ' (k , k ')のどちらが正しい値であるかを、テーブルに記録しておく。
1 1 0 0
[0149] 例えば、ベースポイントの位数と同じビットサイズのテーブルを T, Tと二つ用意し
1 0
、これらを 2進数表現したものを、
T = (t , t )
T = (t , t )
0 0, r-1 0, 0
とする。
[0150] [lZ2i]Dを求める際に、
kが正しければ、 t =0、そうではなくて、 k 'が正しければ t = 1
kが正しければ t =0、そうではなくて、 k 'が正しければ t = 1などとテーブルに 記録すれば、テーブルサイズは、わずかベースポイントの位数のサイズの 2倍程度の ビット列で済む。このテーブルを参照することにより、 1Z2倍算の計算量を削減する ことができる。
[0151] この方法をアルゴリズム 8 [Algorithm 8] HEC HLV(h = 1, f =0)に適用し
― 2 4
たものを、アルゴリズム 9 [Algorithm 9] HEC HLV (h = 1, f =0, with tabl
― 2 4
e— lookup)として示す。計算量は、 22M + 2S + 1I + 2SR+ 2Hとなる。
[0152] [数 19]
Algorithm 9 HEC _HLV{h2 = l,./4 = 0, table-lookup)
Input: D2 - (ひ 22), invii -]/u2 , \/h , ί
Output: = (ひ】 ) = [1 / 2]D2, i"v" = 11 ιιΛ ]
_(/,(x) = .v2 +M„Jf + //!0, Vt{x) = v,】x + v'。, gcd( 7,ひ,) = 1,/ = 1,2
1. Solved, +k^u2] +1 = 0
if 二 0 then A, — Η(//21)/;ν// else ki r-H(u7 )mv + inv
2. Solve khn + -0
CI ~.Λ+Ν2】 +"20 + '4
co +、':。 +v21(/¾ +v21) + ?/21 (":0 + c )
a <— h}invu, γ - (c, + kh0 I
if ί [ 0 then ktl <— H(y) else k0 Η^ α· + a
3. Compute U]
νν。 k, wl — w07/20 +kfy +u2l, w2 —ん0
Figure imgf000051_0001
W] r~ 1/(W2A, ), Λνλ2
ul l — w^w3, invii — w{)¾
M k0ll20, W, <r-ん,〃 2い W& - (ん 0 +^)(〃20 +"21)
w ^w^h0{wx +h0) + c0
4. Compute \ = V2 + h + kU2 modひ!
w4 <~ w5 +ん 0 + 1, w5 <- ¼'j + w5 +w6+ v2] + Η
w6 <— M'J + v20 + h0 , w7 ( + w4
w3 <- 、 +w7)(?/】。 + ,/„), wx - uy/
、'11 'l + W2 + W4 + W5 + W7
v10 w,+w6
6.ひ )— x" +uux + uw, V(x) - vnx + v10
7. return =(!い f ), invu
[0153] 具体的に,この方法を上述のアルゴリズム 10 [Algorithmic) HEC HLV (h
2
=h =1, f =0)]に適用したアルゴリズムをアルゴリズム 11 [Algorithmll HEC
1 4
HLV(h 二 h =1, f =0, with table— lookup)]として、以下に示す。
― 2 1 4
[0154] [数 20] Algorithml 1 HEC— HLV つ =h, =\ 4 = 0, with table-lookup)
Input: D2 二 (ひ 2, V2 ), invu = 11 u2], t0 , ί
Output : Z, = (ひ】, ) = [1 / 2]D2, invu = 11 ιι x
U, (x) = x +unx + ul0, Vt(x) = v x + vin, gcd(?, U{ ) = 1
1. Solved, +^'n2] +1 = 0 and select correct kt via /,
— 7 /v7/, kx — W(ii )a
2.
Figure imgf000052_0001
0 and select correct kL, via t0
】 + +"2。+'4
c0 - f2十 v2。 +v21+ v,2, + 2l20 + c ) - H(x)a
it /, = 0 then k。 <^ k0 +
3. compute Ux
w, — 1 /(w, 】 ), w4 — w]w2 w0 <~ yv】, w} - i"2i, we (ん 0+ん iX' +"2】)
、( 、 +"。) + c0
5. Compute \ = K, + ? + kll mod f /,
w4 <- w5 + k。 + 1, w5 <r- M + +w6 +、'21 + 1, '6 - w + v20 + ]
invu <— wQ
W。 r- W2 十 W4W] W0UW, W, r- ( ) +^)("10 +"„)
v10 <— w, + >v, + w3 + w5
v„ ^w, +w6
6. U、 (x) <- x2 + ux + 11 w, V] (x) — vnx + v10
7. return D、 - (U、 , l ) , invu = 11 u] ,
上記アルゴリズム 11 [Algorithml 1 HEC HLV(h =h =1, f =0, with ta
― 2 1 4
ble- lookup) ]における計算量は、
18M + 3S + 1I + 2SR+2Hとなり、さらに h = 1とすることにより、 1Mの削減ができ 、この場合の計算量は、
17M + 3S + 1I + 2SR+2Hとなる。
[0156] さらにこの方法を、前述のアルゴリズム 12[Algorithml2 HEC_HLV(h(x) =x , f (χ) =x5+f x+f ]に適用したアルゴリズムを、アルゴリズム 13[Algorithml3 H
1 0
EC HLV(h(x) =x, f (x) =x5+f x+f , with table— lookup)として、以下に
― 1 0
示す。
[0157] [数 21]
Algorithm 13 HEC _HLV(h(x) = x,f(x) = x5 + fxx十 f0, with table-lookup) Input: D2 =(ひ2 2), t0
Output :Ώ
Figure imgf000053_0001
Ut (x) - X2 +unx + uin, V^x) - v,-,x + v.0, gcd( 7,ひ = 1
Figure imgf000053_0002
2. Solved,, +k^t +c, = 0
j — '"20 + ir2 , w — Cj? 21
C0 <- V21 +V21 + 'W21W20 +W,
invkx <r~ ι , - H(w, )
if t{) = 0 then
k0 w0w2
else
W0W2 + W0, W, - + 1
3. Compute U、
"】 i <-
Figure imgf000053_0003
w10 (k。+ c, )u20 + ct)u2]
4. Compute \ - V, +h + kll2 modひ!
M — k(uつ +iiu) + kn
vi i ("20 + "〗 » ) + w2 + v21 + 1 + ux
V10 0"20 +V20+ l
5. , (x) - x" + uux + w10, \ (x) vnx + v10
6. return = (^i^)
[0158] 上記アルゴリズムにおける計算量は、 9.5M + 2S + 1I + 3.5SR+1H
であり、さらに高速化が実現される。
[0159] [処理例 6(提案法 D1)]
処理例 6(提案法 D1)は、上記処理例 1〜5に示す因子の 1Z2倍算の計算方法を 用いて、因子のスカラー倍算を計算する方法である。
[0160] 楕円曲線での有理点の 1Z2倍算を用いたスカラー倍算の計算方法は、文献 [E.K nudsen. Elliptic Scalar Multiplication Using Point Halving. ASIACRYPTO '99, LNCS 1716, pp.135- 149, Springer- Verlag, 1999.]にある。超楕円曲線の因子の 1Z2倍算 を用いたスカラー倍算の計算方法は,この文献にあるスカラー倍算に基づいて実行 される。ただし、 [lZ^Dを計算し、加算していく right— to— left法を用いる。この アルゴリズムを、アルゴリズム 14 [Algorithmic Scalar Multiplication]として以 下に示す。
[数 22]
Algorithm 14 Scalar Multiplication
Input :D G J(r„) such that 2D≠ O, t G Z, r '. order of D, m - los0 r | Output scalar multiplication dD
1. ?m 2' ^- d mod ,', d, G {0, 1}
2 ∑:。 2' ∑: 2' 0,1}
3. <2 0, R r~D, f - 11 //,
4. for / from 0 to m do :
if = \ then 0^-0 + R
(R, invu) HEC _HLV R mni)
5. return 0
上記アルゴリズム 14 [Algorithmic Scalar Multiplication]のステップ 4に出 てくる HEC— HLVは、ランダムカーブを用いた前述のアルゴリズム 5 [Algorithm5] の HEC HLVでも良いし、アルゴリズム 8 [Algorithm 8]の曲線パラメータに h = 1 , f = 0の制約を設けた HEC— HLVでも良!、し、アルゴリズム 8 [Algorithm 8]の
4 ―
曲線パラメータにテーブル参照法を適用した HEC— HLVでも良 ヽし、アルゴリズム 10 [Algorithm 10]の曲線パラメータに h =h = 1, f =0の制約を設けた HEC .
2 1 4 ―
HLVでも良いし、アルゴリズム 10 [Algorithm 10]の曲線パラメータに h =h =h
2 1 0
= 1, f =0の制約を設けた HEC HLVでも良いし、アルゴリズム 10 [Algorithm
4 ―
10]に対してテーブル参照法を適用した HEC— HLVでもよ!/、。またアルゴリズム 12 [Algorithm 12]の曲線パラメータの HEC— HLVでも良いし、アルゴリズム 12 [A1 gorithm 12]に対してテーブル参照法を適用した HEC— HLVでもよ!/、。
[0162] [演算高速化の検証]
次に、上述した処理例 1〜6を適用した演算における計算量を求め、演算の高速化 について検証する。
[0163] HEC HLV (h = 1, f =0)では、計算量は、平均で、
― 2 4
25. 5M + 2S + 1I + 3SR+ 2H + 2T
である。
[0164] まず、有限体が正規基底で定義されている場合について考える。前述のとおり、正 規基底を用いた場合、 M, Iのみの計算量を考慮すればよい。文献 [A.Menezes. Elli ptic し urve Public Key Cryptosystems. Kluwer Academic Publisners, 1993.」によると 、有限体を Fq, q = 2nとした場合、逆元計算一回は、下式によって算出される回数、 すなわち、
[数 23]
log2( — 1) \ + w(n-l)-\
[0165] 上記式によって算出される回数の乗算に匹敵する。ここで、 w(n— 1)は n— 1を 2進 数で表示した際の 1の個数を表す。例えば、 n=83, 89, 113の場合、 I = 8Mとなり 、 n= 103の場合、 I = 9Mとなる。
[0166] ここで、 I = 8Mを仮定すると、
HEC HLV(h =1, f =0)
― 2 4
の計算量は、
25.5M+ 11 = 33.5Mとなる。
[0167] 一方、 HarleyDBLでは、
21M + II = 29Mとなり、 HarleyDBLの方が HEC—HLVよりも 13%ほど高速とな る。また、テーブル参照法を用いた場合では、
22M+1I = 30M
となり、 HarleyDBLは、 HEC— HLVよりも 3%ほど高速となる。
[0168] また、 HEC HLV(h =h =1, f =0)
― 2 1 4
の計算量は、平均で、 19. 5M + 3S + 1I + 3SR+ 2H + 2T
となる。この場合は、
19. 5M+ 1I = 27. 5M
となる。
[0169] 一方、 HarleyDBLでは、
18M+ 1I = 26Mとなり、 HarleyDBLの方が HEC—HLVよりも 5%ほど高速とな る。また、テーブル参照法を用いた場合では、
18M+ 1I = 26M
となり、 HarleyDBLと HEC— HLVは同等の計算量となる。
[0170] また、 HEC HLV (h =h =h = 1, f =0)
― 2 1 0 4
の計算量は、平均で、
18. 5M + 3S + 1I + 3SR+ 2H + 2T
となる。この場合は、
18. 5M+ 1I = 26. 5M
となる。
[0171] 一方、 HarleyDBLでは、
15M + II = 23Mとなり、 HarleyDBLの方が HEC—HLVよりも 13%ほど高速とな る。また、テーブル参照法を用いた場合では、
17M+ 1I = 25M
となり、 HarleyDBLの方が HEC— HLVよりも 8%ほど高速となる。
[0172] また、多項式基底の場合をソフトウェア実装を行!ヽ、速度の比較を行った。
CPUは Pentiumll 300MHz、
OSは RedHat7. 3、
コンパイラは gcc2. 96
の環境でソフトウェア実装を行った。
[0173] M (乗算)、 S (2乗算)は、文献 [D.Hankerson, J.Hernandez, and A.Menezes. Softw are Implementation of Elliptic Curve Cryptography over Binary Fields. CHES 2000, LNCS 1965, pp.1-24, 2000., Algorithm4. 6, 4. 7]、 I (逆元演算)は、文献 [S.Sha ntz. From Euclid's GCD to Montgomery Multiplication to the Great Divide. TR-200 1-95, Sun Microsystems, Inc., 2001.]、 SR (平方根演算)、 T (トレース(二次方程式 の根があるか否かの判定))は、文献 [K.Fong, D.Hankerson, J丄 opez, and A.Meneze s. Field inversion and point halving revised. Technical Report CORR2003- 18, http:/ / www.cacr.math.uwaterloo.ca/techreports/2003/corr2003-18.pdf]、 H (ノヽ ~~フトレ ~~ ス(二次方程式の根を求める演算))は、文献 [K.Fong, D.Hankerson, J丄 opez, and A .Menezes. Field inversion ana point halving revised. Technical Report CORR2003— 1 8, http://www.cacr.math.uwaterloo.ca/techreports/2003/corr2003-18.pdf Algorit hm 4. 7] に従った。
[0174] n=83, 89, 113の 3つの有限体に対して, M, S, I, SR, H, Tを実装し、 Mとの 比を求めた。ここで、
n= 83の既約多項式は、
ζ83 + ζ7 + ζ4 + ζ2+ 1 = 0
n= 89の既約多項式は、
89 , 38
z 十 z 十 1—0
n= 113の既約多項式は、
113丄 9 , 1n
z 十 z十 1—0
を用いた。
計算量は次の通りとなった。
n=83 : S/M = 0. 12, Ι/Μ = 7. 96, SR/M = 0. 57, H/M = 0. 58 n=89 : S/M = 0. 05, l/M = 8. 74, SR/M = 0. 14, H/M = 0. 61 n= 113 : S/M = 0. 06, l/M = 8. 56, SR/M = 0. 10, H/M = 0. 50
[0175] これらを、 HarleyDBLの計算量 21M + 5S + 1Iに適用すると次のようになる。
n=83 :HarleyDBL29. 56M
n=89 :HarleyDBL29. 99M
n= 113 :HarleyDBL29. 86M
[0176] これらを、 HEC HLV(h = 1, f =0)の計算量、 25. 5M + 2S + 1I + 3SR+ 2H
― 2 4
+ 2Tに適用すると次のようになる。 n=83:HEC_HLV(h =1, f =0)36.57M
― 2 4
n=89:HEC HLV(h =1, f =0)35.98M
― 2 4
n=113:HEC HLV(h =1, f =0)35.48M
― 2 4
[0177] この場合、 n=83, 89, 113で、それぞれ HarleyDBLの方が HEC— HLVよりも 2
0%、 17%、 16%程度、高速である。
[0178] さらに、 HEC_HLV(h =1, f =0)にテーブル参照法を適用した場合の計算量
― 2 4
、 22M + 2S + 1I + 2SR+ 2Hに適用すると次のようになる。
n=83:HEC HLV(h =1, f =0 with table -lookup) 32.5M
― 2 4
n=89:HEC HLV(h =1, f =0 with table -lookup) 32.34M
― 2 4
n=113:HEC HLV(h =1, f =0 with table- lookup) 31.88M
― 2 4
[0179] この場合、 n=83, 89, 113で、それぞれ HarleyDBLの方が HEC— HLVよりも 9
%、 7%、 6%程度、高速である。
[0180] また、 h =h =1, f =0の場合は、次の通りとなる。
2 1 4
HarleyDBLの計算量 18M + 7S + IIに適用すると次のようになる。
n=83:HarleyDBL27.4M
n=89:HarleyDBL27.09M
n=113:HarleyDBL26.98M
[0181] 次に、 HEC HLV(h =h =1, f =0)の計算量、 19.5M + 3S + 1I + 3SR+2 一 2 1 4
H + 2Tに適用すると次のようになる。
n=83:HEC HLV(h =h =1, f =0)30.69M
― 2 1 4
n=89:HEC HLV(h =h =1, f =0)30.03M
― 2 1 4
n=113:HEC HLV(h =h =1, f =0)29.54M
― 2 1 4
[0182] この場合、 n=83, 89, 113で、それぞれ HarleyDBLの方が HEC— HLVよりも 1
3%、 12%、 9%程度、高速である。
[0183] さらに、 HEC HLV(h =h =1, f =0)にテーブル参照法を適用した場合の計
― 2 1 4
算量、 18M + 3S + 1I + 2SR+ 2Hに適用すると次のようになる。
n=83:HEC HLV(h =h =1, f =0 with table -lookup) 28.62M
― 2 1 4
n=89:HEC HLV(h =h =1, f =0 with table -lookup) 28.39M n = 113 : HEC_HL V (h =h =1, f =0 with table-lookup) 27.94M
― 2 1 4
[0184] この場合、 n=83, 89, 113で、それぞれ HarleyDBLの方が HEC— HLVよりも 4
%、 5%、 3%程度、高速である。
[0185] また、 h =h =h =1, f =0の場合は、次の通りとなる。
2 1 0 4
HarleyDBLの計算量 15M + 7S + IIに適用すると次のようになる。
n=83:HarleyDBL23.8M
n=89:HarleyDBL24.09M
n=113:HarleyDBL23.98M
[0186] 次に、 HEC HLV(h =h =h =1, f =0)の計算量、 18.5M + 3S + 1I + 3SR
― 2 1 0 4
+ 2H + 2Tに適用すると次のようになる。
n=83:HEC HLV(h =h =h =1, f =0)29.69M
― 2 1 0 4
n=89:HEC HLV(h =h =h =1, f =0)29.03M
― 2 1 0 4
n=113:HEC HLV(h =h =h =1, f =0)28.54M
― 2 1 0 4
[0187] この場合、 n=83, 89, 113で、それぞれ HarleyDBLの方が HEC— HLVよりも 2
0%、 17%、 16%程度、高速である。
[0188] さらに、 HEC HLV(h =h =h =1, f =0)にテーブル参照法を適用した場合
― 2 1 0 4
の計算量、 17M + 3S + 1I + 2SR+ 2Hに適用すると次のようになる。
n=83:HEC HLV(h =h =h =1, f =0 with table -lookup) 27.62M
― 2 1 0 4
n=89:HEC HLV(h =h =h =1, f =0 with table -lookup) 27.39M
― 2 1 0 4
n=113:HEC HLV(h =h =h =1, f =0 with table -lookup) 26.94
― 2 1 0 4
M
[0189] この場合、 n=83, 89, 113で、それぞれ HarleyDBLの方が HEC— HLVよりも 1
4%、 12%、 11%程度、高速である。
[0190] 次に、上述のアルゴリズム 12[Algorithml2]、すなわち、 [Algorithmic HEC
HLV(h(x) =x, f (x) =x5+f x+f )]と、テーブル参照法を用いたアルゴリズム 1
― 1 0
3[Algorithml3]、すなわち、 [Algorithml3 HEC_HLV(h(x) =x, f(x) =χ5 + f x + f , with table— lookup)]について、 HarleyDBLとの比較を行う。
1 0
[0191] [Algorithm 12 HEC HLV(h(x) =x, f(x) =x5+f x+f )]の計算量は、 11. 5M + 2S + 1I+4.5SR+1H+1T、
[Algorithm 13 HEC_HLV(h(x) =x, f(x)=x5+f x+f , with table -loo
― 1 0
kup)]の計算量は、 9.5M + 2S + 1I + 3.5SR+1Hである。 HarleyDBLの計算量 ίま、文献 [( 特 §午文献 19 :T. Lange. Efficient Doubling on Genus Two Curves over
Binary Fields, SAC 2004, pre— proceedings, pp.189— 202, 2004.)]によると、 6M + 5S
+11である。前述のように、有限体が正規基底で定義されている場合、 S(2乗算), S
R (平方根演算), H (ハーフトレース(二次方程式の根を求める演算)), T (トレース( 二次方程式の根がある力否かの判定))の計算量は無視することができ、 M (乗算), I
(逆元演算)の計算量のみ考慮すればょ 、。
[0192] 従って、アルゴリズム 12 [Algorithmic HEC_HLV(h(x) =x, f(x) =x5+f x
+f )]の計算量は、
o
11.5M + 2S + 1I+4.5SR+1H+1T、
= 11.5M+1I
となり、
アルゴリズム 13[Algorithml3 HEC HLV(h(x) =x, f(x)=x5+f x+f , wit
― 1 0 h table— lookup)]の計算量は、
9.5M + 2S + 1I + 3.5SR+1H
=9.5M+1I
となる。
[0193] HarleyDBLの計算量は、
6M+1I
となる。従って、 HarleyDBLの方が HEC—HLVよりも高速となる。
[0194] 以上、説明したように、曲線パラメータ h =h =1、 f =0の場合の HEC HLVに
2 1 4 ― テーブル参照法を適用した場合の計算量 18M + 3S + 1I + 2SR + 2Hが、 Harley DBLの計算量 18M + 7S + IIにほぼ等しぐ同等の条件で HEC— HLVと HarleyD BLとで比較した場合、最も高速なアルゴリズムである。
[0195] 次に、アルゴリズム 14 [Algorithm 14 scalar multiplication]を用いたスカラ 一倍算の計算量を考える。曲線パラメータは、同等な条件で HarleyDBLと比較して 、最も高速な h =h =1、 f
4 =0を用い、さらに、 HEC— HVLにはテーブル参照法を
2 1 一
用いた方法でスカラー倍算の計算量を考える。
[0196] アルゴリズム 14におけるステップ 1、 2がスカラー倍算全体に占める割合は非常に 小さいため、これらの計算量は無視する。ここで、正規基底および多項式基底ともに n=83、 89、 113の場合で計算量を考えてみる。また、ベースポイントの位数は、 n= 83、 89、 113に対してそれぞれ 165ビット、 177ビット、 225ビットと仮定する。また、 ステップ 4の繰り返し部分では、ベースポイントの位数のビット数だけ繰り返す。因子 のカロ算は文献 [T.Lange, Efficient arithmetic on genus 2 hyperelliptic curves over fin ite fields via explicit formulae. Cryptology ePrint Archive, 2002/121, IACR, 2002]を 用いる。ただし、曲線パラメータは h =h =1、 f =0とする。この場合の因子の加算
2 1 4
に必要な計算量は 21M + 3S + 1Iである。スカラー値は 2進数で表現した場合、 0、 1 が同程度の割合で現れると仮定する。計算量は、((加算の計算量) Z2+(1Z2倍 算 or2倍残の計算量 ))x(ベースポイントの位数のビット数)で計算する。まずは、正 規基底の場合力 見てみる。 I = 8Mと仮定する。
[0197] h =h =1, f =0の場合、
2 1 4
n= 83:カロ算 · 2倍算: 6682.5M
n=89:加算 ·2倍算: 7168.5Μ
η=113:カロ算 ·2倍算: 9112.5Μ
[0198] h =h =1, f =0の場合、
2 1 4
n=83:加算 ·1/2倍算: 6930M
η= 89:加算 · 1Z2倍算: 7434Μ
η= 113:加算 · 1Z2倍算: 9450Μ
[0199] h =h =1, f =0+テーブル参照法の場合 (加算 ·2倍算の場合と等しい計算量)
2 1 4
η= 83:カロ算 · 2倍算: 6682.5Μ
η=89:加算 ·2倍算: 7168.5Μ
η=113:カロ算 ·2倍算: 9112.5Μ
[0200] 次に、多項式の場合を考える。
h =h =1, f =0の場合、 n=83:加算 ·2倍算: 6913.5Μ
η=89:カロ算 ·2倍算: 7361.3Μ
η=113:加算 ·2倍算: 9333Μ
[0201] h =h =1, f =0の場合、
2 1 4
n=83:カロ算 ·1Ζ2倍算: 7456.35Μ
η=89:加算 ·1/2倍算: 7881.8Μ
η= 113:加算 · 1Z2倍算: 9909Μ
[0202] h =h =1, f =0+テーブル参照法の場合 (加算 ·2倍算の場合と等しい計算量)
2 1 4
η=83:加算 ·2倍算: 7114.8Μ
η=89:カロ算 ·2倍算: 7591.53Μ
η= 113:加算 · 2倍算: 9540Μ
[0203] 以上、説明したように、上述した本発明の処理例によれば、楕円曲線暗号の 1Z2 倍算を、超楕円曲線暗号に拡張し、高速演算が実現される。超楕円曲線上の因子の 演算を使う暗号処理演算にお 、て、処理の重 、演算は因子のスカラー倍算である。 上述した本発明の処理によりスカラー倍算を従来と同程度の速度で演算することが でき、その結果、 1Z2倍算を用いても超楕円曲線暗号の処理を従来と同程度の速 度で処理することがきる。
[0204] 次に、上述した各種処理例、すなわち、
(処理例 1:提案法 A1)
(処理例 2:提案法 F1)
(処理例 3:提案法 B1)
(処理例 5:提案法 C1)
(処理例 6:提案法 D1)
をさらに高速化した処理例 7〜11、すなわち、以下の処理例について説明する。 (処理例 7:提案法 Α2):上記処理例 (処理例 1:提案法 A1)のさらなる高速化手法 であり、種数 2、標数 2のランダムパラメータを持つような超楕円曲線において、因子
Dの 1Z2倍算を計算する方法。
(処理例 8:提案法 F2):上記処理例 (処理例 2:提案法 F1)のさらなる高速化手法 であり、種数 2,標数 2の h(x) =x'+h x+h、 f
1 0 4 =0をパラメータに持つような超楕 円曲線において因子 Dの 1Z2倍算を計算する方法。
(処理例 9:提案法 B2):上記処理例 (処理例 3:提案法 B1)のさらなる高速化手法 であり、種数 2、標数 2の h(x) =x2+x+h、 f =0をパラメータに持つような超楕円
0 4
曲線において、因子 Dの 1Z2倍算を計算する方法。
(処理例 10 :提案法 C2) :上記処理例 (処理例 5 :提案法 C1)のさらなる高速化手法 であり、種数 2、標数 2のランダムパラメータを持つような超楕円曲線、 h (x) =x2+ x+h , f =0をパラメータに持つ超楕円曲線、および h (x) =x2+x+h、 f =0をパ
0 4 0 4 ラメータに持つような超楕円曲線において、因子 Dの 1Z2倍算を計算する際に、 1/ 2倍したものの候補が 2つ出てくる。 2つの候補のうち、正しい値を選ぶ必要があるが 、選ぶ際に、有限体のトレース、乗算、平方根を計算する必要がある。どちらが正しい かは、因子 Dに依存する。そのため、因子 Dが固定されている場合、事前に 2つの候 補のうち、どちらが正しいかをテーブルに保持し、正しい値を選ぶ際に、このテープ ルを参照することにより、上記の余計な計算を省略する方法。
(処理例 11 :提案法 D2) :上記処理例 (処理例 6 :提案法 D1)のさらなる高速化手 法であり、上記処理例 7〜10に示す因子の 1Z2倍算の計算方法を用いて、因子の スカラー倍算を計算する方法。
[0205] 以下、各処理例について、順次、その詳細を説明する。
[0206] [処理例 7 :提案法 A2]
処理例 7 (提案法 A2)は、前述した処理例 (処理例 1:提案法 A1)のさらなる高速化 手法であり、種数 2、標数 2のランダムパラメータを持つような超楕円曲線において、 因子 Dの 1Z2倍算を計算する方法である。
[0207] 以下の各処理例においても、扱う因子は位数カ^のものとする。つまり、扱う因子は 分岐点を持たない。入力因子を、
D = (U , V )ゝ
2 2 2
2
U = U X + U X + U ゝ
2 22 21 20
V =V X + V 、
2 21 20
ここで、 Dの weightが 2の場合は u = 1、 Dの weightが 1の場合は u =0、 u = l、v =0とする。
2 22 21 21
分岐点を持たないため、 1Z2倍算として、
ExHarDBL1 +1→2
Figure imgf000065_0001
ExHarDBL2+2→2、および、 HarleyDBL の 4つの逆演算を考えればよ!、。 HarleyDBL以外は例外ケースである。
[0208] ここで ExHarDBL2+2→1は入力因子の weightが 2で、出力因子の weightが 1の場 合を計算する方法である。また、 ExHarDBL2+2→2 は入力因子の weightが 2で、か つ Uの 1次の項の係数が u =0を満たし、出力因子の weightが 2の場合を計算す
2 21
る方法である。ただし、 ExHarDBL2+2→2は HarleyDBLで計算できる力 これの逆 演算である 1/2倍算は、例外ケースとなるため、ここでは、 ExHarDBL2+2→2を例外 ケースとして扱う。
[0209] これら、 ExHarDBL1+1→2
Figure imgf000065_0002
ExHarDBL2+2→2、および、 Harle yDBLに対応する 1/2倍算をそれぞれ、 ExHEC— HLV2→1+1、 ExHEC— HLV1→ 2+2、 ExHEC— HLV2→2+2、および HEC— HLVとする。
[0210] 因子の 1Z2倍算を行なう場合、先に (処理例 1 :提案法 Al)において説明したよう に、まず、入力因子により、図 2に示す通りに場合分けを行なう。入力因子の weight 力^で、かつ Uの 1次の項の係数が u ≠0を満たす場合は、 HEC HLVで計算を
2 21 ―
行なう。また、入力因子の weightが 2で、かつ Uの項の係数が u =0を満たす場合
2 21
は、 ExHEC— HLV2→2+2、もしくは、 ExHEC— HLV2→1+1で計算を行なう。また、入 力因子の weightが 1の場合は ExHEC— HLV1→2+2で計算を行う。 HEC— HLVの アルゴリズムについては、先に図 3を参照して説明した通りである。
[0211] 因子の 1Z2倍算は、因子の 2倍算を行うアルゴリズム、すなわち、以下に示す [Alg orithm 1 HarleyDBLj
[数 24] Algorithm 1 HarleyDBL
Inp i " .. D U
Output :D2^(U2,V2)
ひ, (x) = r + nx + ul0, ίζ(χ) = νηχ + ν(0, gcd(i, ) = 1
1. U[ - U{
2. S ΗΛ {f + hV,+V;) I U, mod Ux
3. V;^SUA +VX
4. U2' ^(f + hV;+V2)/U'
5. U2 <- MakeMonicii/I)
Figure imgf000066_0001
7. return A = (ひ 2, V2)
[0212] 上記アルゴリズム 1[ Algorithm 1 HarleyDBL]を逆から計算することにより実現 する。 Algorithm 1のステップ 6では、
V '+h=(k x+k )U +V
1 1 0 2 2
を満たすような多項式、
k(x)=k X + k
1 0
が唯一存在する。
[0213] これを、
V ' = h+(k x+k )U +V
1 1 0 2 2
と式変形し、ステップ 4に現れる式、
(f+hV '+V '2)
に代入すると、ステップ 4は、次のようになる。
U 'U ' = f+h(kU +V ) +k2U 22· · '式(1)
2 1 2 2 2 2
上記式において、
(U , V )は分かっているので、式(1)から、 kと U 'との関係式が得られる。
2 2 1
ここで、 U =k U
2 1 2
であることに注意する。
[0214] 上記式(1)を展開して整理すると、次のようになる
U X + ((k h +k u +l)/k )x + ((k h +k h +k u +k c )/k
1 1 2 1 21 1 1 1 0 2 1 20 0
)x2+((k h +k h +k 2u +c )/k 2)x+(k h +k 2u +c )/k 2
1 0 0 1 0 21 1 1 0 0 0 20 0 1
···式 (2)
ここで,
c =f +u
2 4 21
c =f +h v +u +c u
1 3 2 21 20 2 21
2
c =f +h v +h v +v +c u +c u
0 2 2 20 1 21 21 2 20 1 21
を満たす。
[0215] また、ステップ 1より、
U '=U 2
つまり、
τ τ , 4 , 2 2 , 2
U =χ十 u χ十 u
1 11 10
···式 (3)
が成り立つ。
[0216] 上記式 (2)、(3)の各係数を比較することにより、関係式を導き、この関係式を解くこ とにより、 1/2倍算が計算できる。上記の処理手順を示すアルゴリズムを以下に、ァ ルゴリズム 4 [Algorithm 4 Sketch HEC_HLV]として示す。
[数 25]
Algorithm 4 Sketch HEC HLV
Input: : (ひ 2, V2 )
Output :D, = (ひい 0[1/2]D2
U^x) = x' +unx + ui0, V^x) = ^ + ^, gcd(?,ひ,) =1, i-l,2
1. reconstruct k。,k、
1.1 l ~ V2 + h + ki/2 , k(x) = k、x + k0
1.2 U; -(f + h '+ V;2 ) l{k U2 )
1.3 derive k、 from coeff(f/,', 3) = 0, coeff(i/, 1) = 0
2. compute ?/,, by substituting kt) , k in coeff(f/】', 2)
3. compute ■",(, by substituting kQ,kt in coeff (ひ, 0)
4. U] <— X2 +uux + iiw
5. V -V2+h + kU2 modi/,
6. return D, =(U V,)
[0217] 具体的には,次の関係式が得られる。
[数 26]
7 + w21 + 1 = 0 2l +c, = 0 n = ん Λ + kjiつ + k^u2t) +ん o- + c.
U1
Figure imgf000068_0001
[0218] これらの関係式から,正しい k , kを計算する必要がある力 これは、次の補題によ
0 1
つて計算でさる。
[補題 1] h(x)を既約多項式であると仮定する。このとき、式 (4) , (5)を満たす 1^は唯一であ る。また、式(5)は、正しい kに対してのみ、根を持つ。また、 Algorithm4での 1Z2 倍された因子 Dを計算できる kは唯一存在する。また、以下に示す式、
1 0
xh +x2u + 1 = 0
2 11
は、正しい kに対してのみ根を持つ。
0
Algorithm4に対して上記補題 1を適用した。詳細な 1Z2倍算の計算方法を以下 のアルゴリズム 5a [Algorithm 5a HEC_HLV]として示す。
[数 27]
Algorithm SaHEC HLV
Inp t: D2 = (U2,V2)
Output :D] =(U],V) = [\/2]D2
_ひ, (x) = x: + " x土 w,0 , Vt (x) = vnx土 v.(), gcd( 7,ひ,) = 1,/' =1, 2一
1. Solve 2 + 21 +1 = 0
invu <- 1/M,!, invh <- Mh , a r- h nvu, γ u linvh
Figure imgf000070_0001
2. Select correct k by solving kh0 +k0 +ん 0 :½ + = 0
c2 <- _/4 +'"21, , <- /3 + h2v2] + w20 +c2u2]
c0 ~ f2十ん—、' 2U + 21 + +c2n20 +c,w21
<— h nvii, w <— '",】 I h γ — (c, + k、h0 )w
if Tr(^) = 1 then 】 - k;, γ r~ (c, +k^h())w
。 r- Η(γ)α, k、 k0 +a
3. Select correct k0 by checking trace of xh2 + χ2ιιλ , +1 = 0
invk k u
Figure imgf000070_0002
if Ύν γ) = 1 then
o ~ k:" u — M, , +invk^a(h2+a)
4. Compute U、
»,o <- im'k (h'、 + k0u20 ) + c0
5. Compute V = V-, +h + kU2 mod ^
w ^ + k、 (/j! +?<21) + k。
V, , V21 + Λ, + (//, o + W20 ) + 。' /2 ) + 7/j , w
V10 ~1/2。十/7。+ 。"2。+^
6.こ (x) <- x2 +//Hx + w10, — vnx + v10
7. return DL = (Ui , \ )
上記アルゴリズム 5a[Algorithm5a]では、 k ', k 'が正しい値(言い換えると k , k
1 0 1 0 が正しくない値)である場合、計算量は、
29M+1S+4I + 3SR+2H + 2T
となる。ここで M, S, I, SR, H, Tはそれぞれ有限体上の乗算、 2乗算、逆元演算、 平方根演算、ハーフトレース(二次方程式の根を求める演算)、トレース(二次方程式 の根がある力否かの判定)を意味する。この k ', k 'が正しい値である場合、計算量
1 0
は最も多くなる。
[0221] 次に k , kが正しい値 (言い換えると k ', k 'が正しくない値)である場合、計算量は
1 0 1 0
最も少なくなり、ステップ 2では 2Mの計算量が削減でき、ステップ 3では、 2M+ 1SR の計算量が削減できる。つまり、この場合の計算量は、
25M+ 1S+4I + 2SR+ 2H + 2Tとなり、計算量は最も少なくなる。
[0222] 次に k , k 'が正しい値 (言い換えると k ', kが正しくない値)である場合,ステップ 3
1 0 1 0
では、 2M+ 1SRの計算量が削減できる。つまり、この場合の計算量は、
27M+ 1S+4I + 2SR+ 2H + 2Tとなる。
[0223] 最後に k ', kが正しい値 (言い換えると k , k 'が正しくない値)である場合、ステツ
1 0 1 0
プ 2では, 2Mの計算量が削減できる。つまり、この場合の計算量は、
27M+ 1S+4I + 3SR+ 2H + 2Tとなる。
[0224] 上記の 4つの場合が発生する確率を、計算機実験によって確認した結果、ほぼ同 じ割合で発生していることが確認された。これ以降は、上記 4つの場合が生じる確率 は等しいとする。上記 4つの場合の計算量の平均をとると、
27M+ 1S+4I + 2. 5SR+ 2H + 2T
となる。
[0225] 次に、例外ケースの、
ExHEC— HLV2→1+1
ExHEC— HLV1→2+2
ExHEC— HLV2→2+2
について考える。これらが発生する確率は無視できる程度であるので、計算量の評 価は行なわない。
[0226] なお、これらの例外ケースの計算アルゴリズムについては、先の(処理例 1:提案法 A1)の項目において説明した図 4〜図 6に示すフローチャート、すなわち、
ExHEC_HLV2→1+1のアルゴリズムについては図 4に示すフローチャート、 ExHEC_HLV1→2+2のアルゴリズムについては図 5に示すフローチャート、 ExHEC HLV2→2+2のアルゴリズムについては図 6に示すフローチャート、 それぞれにおいて説明した処理と同様の処理となる。
[0227] また、 ExHEC— HLV2→2+2、の計算手順についても、先に説明した (処理例 1:提 案法 A1)の項目にお!/、て説明したアルゴリズム 6 [Algorithm6]と同様の処理であり 、 ExHEC— HLV1→2+2の計算手順についても、先に説明した (処理例 1 :提案法 A1 )の項目にお 、て説明したアルゴリズム 7 [Algorithm7]と同様の処理となる。
[0228] [処理例 8 :提案法 F2]
処理例 8 (提案法 F2)は、前述した処理例 (処理例 2 :提案法 F1)のさらなる高速ィ匕 手法であり、種数 2,標数 2の h(x) =x2+h x+h、 f =0をパラメータに持つような
1 0 4
超楕円曲線において因子 Dの 1Z2倍算を計算する方法である。
[0229] 前述の処理例(処理例 7 :提案法 A2)において適用した Algorithm5aを良く見ると 、 h(x)の係数との乗算、 h (x)の係数の逆元演算が多くある。つまり、 h(x)の係数を 工夫することにより、乗算および逆元演算の計算量を削減することができる。なお、文 献 (非特許文献 19 : T. Lange. Efficient Doubling on Genus Two し urves over Binary Fields, SAC 2004, pre— proceedings, pp.189— 202, 2004.)では、高速ィ匕のため、 h =
2
1、 f =0を用いている。このパラメータを用いた場合の HarleyDBLの計算量は、 21
4
M + 5S + 1Iである。
[0230] ここで説明する処理例 8 (提案法 F2)もこれに条件を合わせることにするが、補題 1 より、 h (x)は既約多項式を仮定しているため、
h(x) =x2+h x+h、
1 0
Tr(h /h 2) = 1[0]
0 1
とする(二次方程式 ax2 + bx + c = 0が既約多項式であるための必要十分条件は Tr (acZb2) = lである)。この場合の計算法をアルゴリズム 8a [Algorithm 8a]HEC HLV (h = 1、 f =0)に示す。
― 2 4
[0231] [数 28] Algorithm MiEC _ EL V(h2 = l,/4 = 0)
Input :D2=(U2,V2), \/h;
Ouipia:Dl ^{Ul,V) = [\ll\D
Ut (x) = x2 +unx + i0, Vt(x) = v;1x + vi0, gcd ( ,ひ,) = 1,7 = 1,2
1. Solveん, + u2l十 1 = 0
o; <~l/〃2い k <— H(u^ )a7 k[ ^ん ] +
2. Select correct ] by solving k i0 + 。1 + 0 2w2】 +Cj = 0
ci /3+½ + "20+'4
c0 ^f2+ v20 + v21 {h, + v21 ) + u21 ("20 + c, )
wn <— 2] / hf, a <r- hxa, γ (c, +^Η0)Μ>0
if Ίχ(γ) = 1 then k、 <- k;, γ <- (c, +A1 70)w'0
k。 — Η(γ) , k{}' ~ 。 +a
3. Select correct k。 by checKing trace of x + x"ux 1 +1 = 0
w0 <— k wl <— ¼'0'/2。 +kfy + w2
Figure imgf000073_0001
it Tr(w, ,) = 1 then
k0 - k0',
Figure imgf000073_0002
u <- w2w4
4. Compute ΙΙλ
wx — k0u20 , w — w4 + 1, w6 — (k0 + k )(w20 + u2])
M10 <-w4^0(w, +h0) + c0
5. Compute VX=V2 +h + kU2 modUl
w + k(, +1, <r-w +w5+ w6 + v21 + h
w6^wx+ v20 + h0 , w7 - w2 + w4
Wj — W7«]0, W, r- (ん】 +¼'7)(W10 + Hn)
vn <— w +w +w3 + w5
v,() +w6
6. U(x) <— 2 +uux + u]{), V(x) <— vux + v10
7. return D =
ここで、逆元演算の回数を削減する方法を考える。前述したアルゴリズム 5a [Algori thm 5a]では、 1/u , 1/h 2, 1/h 2, 1/kの 4回の逆元演算が必要であるが、 ここで、
h = 1
2
と設定することにより、逆元演算は 3回とすることができる。さらに、 は曲線パラメ一 タであるため、事前に lZh 2を計算しておき、入力として与えることにより、逆元演算 は lZu と lZkの 2回に削減することができる。また、 lZkに関しては,前述の [処
21 1 1
理例 7 :提案法 A2]において説明した式 (4) ,すなわち、
1/k =h +k u
1 2 1 21
より,乗算 1回と加算 1回で求めることができる。これらの演算により、上記のアルゴリ ズム 8a [Algorithm 8a]HEC HLV (h = 1 =0)で必要となる逆元演算は
― 2 、 f 4 lZ u の 1回のみとなる。
21
[0233] 結果として、上記のアルゴリズム 8a [Algorithm 8a] HEC HLV (h = l
― 2 、f =0)
4 における計算量は次の通りとなる。
(a) k , kが正しぃ値でぁる場合:18M + 2S + 1I + 2SR+ 2H + 2T
1 0
(b) k , k 'が正しい値である場合: 19M + 2S + 1I + 3SR+ 2H + 2T
1 0
(c) k ', kが正しぃ値でぁる場合:20M + 2S + 1I + 2SR+ 2H + 2T
1 0
(d) k ', k 'が正しい値である場合: 21M + 2S + 1I + 3SR+ 2H + 2T
1 0
上記(a)〜(d)のすべてについて平均すると、 19. 5M + 2S + 1I + 2. 5SR+ 2H + 2Tとなる。
[0234] HarleyDBLの計算量は、 21M + 5S + IIであった。ここで、文献 [ (非特許文献 15 ) E.Knudsen. Elliptic Scalar Multiplication Using Point Halving. ASIACRYPTO '99, LNCS 1716, pp.135- 149, Springer- Verlag, 1999.]によると、有限体が正規基底で定 義されている場合、 S (2乗算), SR (平方根演算), H (ハーフトレース (二次方程式 の根を求める演算)), T (トレース(二次方程式の根がある力否かの判定))の計算量 は無視することができ、 M (乗算), 1 (逆元演算)の計算量のみ考慮すればよいことが 知られている。そのため、正規基底を用いた場合、 Algorithm8aは HarleyDBLより も 1. 5M高速となる。
[0235] また、有限体が多項式基底で定義されて!ヽる場合、
文献 [ (非特許文献 16) K.Fong, D.Hankerson, J.Lopez, and A.Menezes. Field in version and point halving revised. Technical Report CORR2003— 18, http://www.cac r.math.uwaterloo.ca/techreports/2003/ corr2003— 18.pdfl8]によると、通常 SR (平 方根演算), H (ノヽーフトレース(二次方程式の根を求める演算))の計算量は、 M (乗 算)との対比において、 SR=H = 0. 5M程度であることが知られている。また、 T (トレ ース(二次方程式の根がある力否かの判定))の計算量は無視できる。さらに S (2乗 算)の計算量は、 M (乗算)の数分の 1程度であることが知られている。しかしながら、 SRの計算量は、多項式基底の選び方によっては、 0. 5Mよりも少なくなることも、同 時に知られている。なお、例外ケースは、前述の処理例 7 (提案法 A2)の例外ケース に基いて計算できる。
[0236] [処理例 9 (提案法 B2) ]
処理例 9 (提案法 B2)は、前述した処理例 (処理例 3:提案法 B1)のさらなる高速ィ匕 手法であり、種数 2、標数 2の h (x) =x2+x+h、 f =0をパラメータに持つような超
0 4
楕円曲線において、因子 Dの 1Z2倍算を計算する方法である。
[0237] 前述の処理例 8 (提案法 F2)にお 、て説明したように、処理例 7 (提案法 A2)にお いて説明した 1Z2倍算の計算アルゴリズム、すなわち、アルゴリズム 5a [Algorithm 5a HEC— HLV]を良く見ると、 h (x)の係数との乗算、 h (x)の係数の逆元演算が 多くある。つまり、 h (x)の係数を工夫することにより、乗算および逆元演算の計算量 を削減することができる。文献 [J.Pelzl, T.Wollinger, and C.Paar. High Performance Arithmetic for Hyperelliptic Curve Cryptosystems of Genus Two. Cryptology e Print Archive, 2003/212, IACR, 2003]では、高速化のために、 , ≡{0, 1 } , f =0を
2 1 4 用いた例を示している。
[0238] このパラメータを用いた場合の [HarleyDBL]の計算量は、
18M + 7S + 1I
である。
[0239] 処理例 9 (提案法 B2)もこれに条件を合わせることにするが、前述した [補題 1]より、 h (X)は既約多項式を仮定して!、るため、
h (x) =x2+x+h ,
0
Tr (h ) = l とする(二次方程式 ax2 + bx + c = 0が既約多項式であるための必要十分条件は Tr (acZb2)=lである)。
この場合の計算法示すアルゴリズムをアルゴリズム 10a [Algorithm 10a HEC— HLV(h =h =1, f =0)]として以下に示す。
2 1 4
[数 29]
Algorithml¾H£C_H (/?2 =hx=\ 4 = 0)
Input :D2^(U2,V2)
Output .D^iU. ,)^ 12}D2
IJ1 (x) - X2 + unx + M'.0, Vt x) = vnx + viXl , gcd(?,ひ,. ) = 1,/ = 1, 2
1. Solved + ku2X +1 = 0
o; <— 1/M21, kx <— H(M2] )a, k; - ^+a
2. Select correct k、 by solving k、h0 +k0 +k^u2] +c -0
Figure imgf000077_0001
V20 + V2】十 21 + «21 ("20十 CX )
+k、hQ)u2
if Tr(f) = 1 then kx k <~ , + h()
k0 — H(,)or, k0' - k0+
3. Select correct k0 by checking trace of x + x'uu +1 = 0
w0 — k wl — w0u20 +u2i
w2 — k0 + ^/w,十 k0 ' H'4 <— k、u7、 + 1, //n <— w2w4
it i'r(?/, j) = 1 then
k0 k w2 — k0+
Figure imgf000077_0002
uu — w2w4
4. Compute Ul
wi <- 20, w5 ^ + 1, ^ (k0 + ) ("20 + "21)
"10 <~1 4^。(¼^ + 0) + c0
5. Compute Υ = V2+h + kU2 mod U、
M'4 — w5 +k0+ 1, w} — \vx + w'5 + wfi + v21 + 1
w \ν + v20 + 0, w7 <r- w2 + w4
<- w7?10, w3 (ん。 +w7 )(?/】。 +uu)
V, , <r~ W] + W2 + + W5
6. ί/, (X) +Hnx + M]0, Vx{x) — vux + v10
7. return D] = (ひ】, ;)
上記のアルゴリズム 10a [Algorithm 10a HEC HLV(h =h =1, f =0)]に
― 2 1 4 おける計算量は次の通りである。
(a) k , kが正しい値である場合: 14M + 3S + 1I + 2SR+2H + 2T
1 0
(b) k , k 'が正しい値である場合: 15M + 3S + 1I + 3SR+2H + 2T (c) k ', kが正しぃ値でぁる場合:14M + 3S + 1I + 2SR+ 2H + 2T
1 0
(d) k ', k 'が正しい値である場合: 15M + 3S + 1I + 3SR+ 2H + 2T
1 0
[0242] 上記(a)〜(d)のすベての場合にっ 、て平均すると、
14. 5M + 3S + 1I + 2. 5SR+ 2H+ 2T
となる。 HarleyDBLの計算量は、 18M + 7S + IIであった。ここで、前述したように 、文献 [E.Knudsen. Elliptic Scalar Multiplication Using Point Halving. ASIACRYPTO '99, LNCS 1716, pp.135- 149, Springer- Verlag, 1999.]によると、有限体が正規基底 で定義されている場合、 S (2乗算), SR (平方根演算), H (ハーフトレース (二次方程 式の根を求める演算)), T (トレース(二次方程式の根がある力否かの判定))の計算 量は無視することができ、 M (乗算), 1 (逆元演算)の計算量のみ考慮すればよいこと が知られている。
[0243] そのため、正規基底を用いた場合、上述したアルゴリズム 10a [Algorithm 10a]は 、従来のアルゴリズム [HarleyDBL]よりも、 3. 5M高速となる。また、有限体が多項 式基底で定義されて!ゝる場合、
文献 [K.Fong, D.Hankerson, J.Lopez, ana A.Menezes. Field inversion and point h alving revised. Technical Report CORR2003— 18, http://www.cacr.math. uwaterloo.c a/techreports/2003/corr2003- 18.pdf]によると、通常 SR, Hの計算量は、 SR=H = 0. 5M程度であることが知られている。また、 Tの計算量は無視できる。さらに Sの計 算量は、 Mの数分の 1程度であることが知られている。し力しながら、 SRの計算量は 、多項式基底の選び方によっては、 0. 5Mよりも少なくなることも同時に知られている
[0244] さて、前述のアルゴリズム 10a[Algorithml0a]の曲線にさらに、 h = 1の制約を設
0
ける。前述のアルゴリズム 10a [AlgorithmlOa]は、 hの乗算が 1回あるので、 h = 1
0 0 とすることにより、 1Mの削減ができ、上記(a)〜(d)のすベての場合についての平均 の計算量は、
13. 5M + 3S + 1I + 2. 5SR+ 2H+ 2T
となる。一方、 HarleyDBLは、計算量は、
15M + 7S + 1I である。有限体が正規規定で定義されている場合、 S, SR, H, Tの計算量は無視 することができ、正規規定を用いた場合、アルゴリズム 10a [Algorithm 10a]は、従 来のアルゴリズム [HarleyDBL]よりも、 1. 5M高速となる。なお、例外ケースは、前 述の処理例 7 (提案法 A2)の例外ケースに基 、て計算できる。
[0245] [処理例 10 (提案法 C2) ]
処理例 10 (提案法 C2)は、前述した処理例(処理例 5:提案法 C1)のさらなる高速 化手法であり、種数 2、標数 2のランダムパラメータを持つような超楕円曲線、 h (x) = x2+h x+h , f =0をパラメータに持つ超楕円曲線、および h (x) =x2+x+h、 f
1 0 4 0 4
=0をパラメータに持つような超楕円曲線において、因子 Dの 1Z2倍算を計算する 際に、 1Z2倍したものの候補が 2つ出てくる。 2つの候補のうち、正しい値を選ぶ必 要があるが、選ぶ際に、有限体のトレース、乗算、平方根を計算する必要がある。ど ちらが正しいかは、因子 Dに依存する。そのため、因子 Dが固定されている場合、事 前に 2つの候補のうち、どちらが正しいかをテーブルに保持し、正しい値を選ぶ際に 、このテーブルを参照することにより、上記の余計な計算を省略する方法である。
[0246] k , k ' (k , k ')のどちらが正しいかは、入力因子 Dに依存している。したがって、 D
1 1 0 0
が固定されている場合、例えば ECDH型鍵交換のフェーズ 1や、 ECDSA型署名生 成、検証など、ベースポイントがあら力じめ決まっている場合、事前に、 [lZ^Dを 計算し、 k , k ' (k , k ')のどちらが正しい値であるかを、テーブルに記録しておく。
1 1 0 0
[0247] 例えば、ベースポイントの位数と同じビットサイズのテーブルを T, Tと二つ用意し
1 0
、これらを 2進数表現したものを、
T = (t , t )
T = (t , t )
0 0, r-1 0, 0
とする。
[0248] [lZ2i]Dを求める際に、
kが正しければ、 t =0、そうではなくて、 k 'が正しければ t = 1
kが正しければ t =0、そうではなくて、 k 'が正しければ t = 1などとテーブルに
1 0, i 0 0, i
記録すれば、テーブルサイズは、わずかベースポイントの位数のサイズの 2倍程度の ビット列で済む。このテーブルを参照することにより、 1Z2倍算の計算量を削減する ことができる。
[0249] この方法を前述のアルゴリズム 8a [Algorithm 8a] HEC_HLV(h =1, f =0
― 2 4
)に適用したものを、アルゴリズム 9a [Algorithm 9a] HEC HLV(h =1, f =0
― 2 4
, with table— lookup)として示す。計算量は、 18M + 2S + 1I + 2SR+2Hとなる
[0250] [数 30]
Algorithm 9aHEC HL V{ =l,/4 =0, table-lookup)
Input :D2 ^{U2 2), 1/ , /。, f、
Output: 1 = (U, ,VX) = [\I 2] 2
U(x) = ' + i x + u , Vt(x) = v x + vj0, gcd( 7, Ui ) = 1,/二 1,2
1. Solve + 2'/21 +1 = 0
α — 1/ 2]
if = 0 then kx -- Η(ί/21 )α else kx ~ (H(i/21 ) + Χ)α
2. Solve Ι 0 + k。hx + w21 +c'〗 =0
C0 <- 2 + V20 +、'21 ( + V2l ) + "21 («20 + C\ )
w0 — u2] I h , a r- hfic, f <— (c, + k^hXj)w0
if t0 =0 then k{) <- Η( )α else 。 (H(,) + l)
3. Computeひ】
w0 k{, wx <— w0u20 + kfy + //21 , w2 <— k。 + νλ + k0
w4 - kxu^x + 1, u <— wnw
wi ()", W5 ~ w4 +1, w6 (ん。 +ん!)("2。 + "21)
",o <"w4 'o(wi +/7o) + co
4. Compute V} ^V2 +h + k(J2 modUl
w4 — +ws+ w6 +v2] + h、
¼'6 r-
Figure imgf000080_0001
+ V20 +/?0, W7 <- W2 +W4
Wj W7710, W3 <— (ん】 +W7)("】。
V, , — + w, + +
v10 ^wt+w6
6. U1 (x) <— x2 +?/nx + '/10 , V] (x) — vnx + v1(l
7. return = (ひい [0251] 具体的に,この方法を上述のアルゴリズム 10a[AlgorithmlOa HEC— HLV (h =h =1, f =0)]に適用したアルゴリズムをアルゴリズム lla[Algorithmlla HE
2 1 4
C HLV(h =h =1, f =0, with table— lookup)]として、以下に示す。
― 2 1 4
[0252] [数 31]
Algorithm 1 HEC _ HLV(h2 ^ 二 l,/4 = 0, with table-lookup)
Input :D2 =(V2 2),t0,tx
Output: = (ひい ) = [1 / 2]
Ui (x) = x2 +unx + u- V^x) - vax + vi0, cd(h, Ul ) = 1
1. Solved +/f //21 +1 = 0 and select correct kx via t,
a —l/u 2]
if t, = 0 then kx <- H(;/2] )a else kx <- (\ ιι2 ) + \)α
2. Solve +k + ',, +c -0 and select correct k0 via t0
C0 <- /2 + V20 + V21 + V21 + "21 ("2。 + A ) H(r)«
if t0 = 0 then ktl - ΐί(γ)α else k0 - (Η( ) + 1)α
3. Compute ひ】
w0 <— Wj — w。w2。 +ん, +u2l
W4 — / 21 + 1, Mn — ¾ W4
0"204 + 1, w6 (ん。 + kx )(//20 + '/21 )
"10
Figure imgf000081_0001
5. Compute Vx = V2+h + kU-, mod U]
w4 <^ w5 +k0+ 1, w5 W[ + ws + w6 + v21 + 1
w6 — Wj + v20 + h0 , w7 — w2 + w4
W7"io, W3 (ん o +W7)("10 +W„)
y, , — iv, + + + w5
6.ひ, (x) - 2 + wnx + ?10, ^ ( ) <~ νπχ + v10
7. return Dx = (U„V,) [0253] 上記アルゴリズム 11a [Algorithml la HEC_HLV(h =h = 1, f =0, with t
― 2 1 4
able— lookup) ]における十算量は、
14M + 3S + 1I + 2SR+ 2Hとなり、さらに h = 1とすることにより、 1Mの削減ができ
0
、この場合の計算量は、
13M + 3S + 1I + 2SR+ 2Hとなる。
[0254] [処理例 11 (提案法 D2) ]
処理例 11 (提案法 D2)は、上記処理例 7〜10に示す因子の 1Z2倍算の計算方法 を用いて、因子のスカラー倍算を計算する方法である。
[0255] 楕円曲線での有理点の 1Z2倍算を用いたスカラー倍算の計算方法は、文献 [E.K nudsen. Elliptic Scalar Multiplication Using Point Halving. ASIACRYPTO '99, LNCS 1716, pp.135- 149, Springer- Verlag, 1999.」、 [K.Fong, D.Hankerson, J.Lopez, and A.Menezes. Field inversion and point halving revised. Technical Report CORR2003— 18, http://www.cacr.math.uwaterloo.ca/techreports/2003/corr2003— 18 .pdf]にめ o 。超楕円曲線の因子の 1Z2倍算を用いたスカラー倍算の計算方法は、この文献に あるスカラー倍算に基づいて実行される。ここで、スカラー倍の対象となる因子 Dは、 位数が大きな素数 rであるとする。また,スカラー値を整数 0< d<rとする。 1Z2倍算 を用いたスカラー倍算を行なうには、まず、 2進数で表現されているスカラー値 dを 1 Z2進数で表現しなおす必要がある。
[0256] ここで、
[数 32]
m - log, r _
とする。また、 dを 2m倍し rで割った余り、すなわち、
[数 33] 2" (mod r)
を求める。次にこれを 2mで割ると、
[数 34]
Figure imgf000083_0001
となる。上記式の、
[数 35]
^i=0 1 1
で表現されたスカラー値を、 1Z2倍算を用 、たスカラー倍算 [halve— and -add binary]法で用 、る。ここで、
[数 36]
d1 , dJ e (0,1} である。
[0257] 以下に、アルゴリズム 12a[Algorithm 12a]として、 halve— and— add binary 法(right— to— left)、アルゴリズム 13a [Algorithm 13a]として、 halve— and— a dd binary法(left— to— right)をそれぞれ示す。
[数 37]
Algonthm l¾ /ve― and― add binary Method (right to— left)
Input: D G J(Fつ" ) such that 2D≠ O, G Z, r: order of D, m = [ion-, /'」
Output: scalar multiplication dD
1. m d,2! 2md mod r, , e{0,l}
2.∑: /2' ;: 2 {0,1}
Q ~0, R D
4. for i from 0 to m do;
if =1 then ρ ρ +
R ^HEC _HLV{R)
5. return 0
[0258] [数 38]
Algorithm 13aHalve - and - add binary Method (left— to— right)
Input: D e J(F2„ ) such that 2D≠ O, d 7., r .. order of D, m = [log2 r
Output: scalar multiplication dD
1. d,2' 2md mod /% , e{0,l}
2.
Figure imgf000085_0001
2' ∑: 0,"
3.0^0
4. for i from m downto 0 do:
O^HEC HLViO)
Figure imgf000085_0002
5. return O
[0259] 上記アルゴリズム 12a [Algorithm 12a]と、アルゴリズム 13a [Algorithm 13a] のステップ 4に出てくる HEC— HLVは、ランダムカーブを用いた前述のアルゴリズム 5a [Algorithm 5a]の HEC— HLVでも良いし、アルゴリズム 8a [Algorithm 8a] の曲線パラメータに、 h =1, f =0の制約を設けた HEC HLVでも良いし、ァルゴ
2 4 ―
リズム 10a [Algorithm 10a]の曲線パラメータに h =h =1, f =0の制約を設けた
2 1 4
HEC— HLVでも良いし、アルゴリズム 10a [Algorithm 10a]の曲線パラメータに h =h =h =1, f =0の制約を設けた HEC HLVでも良い。
2 1 0 4 ―
[0260] 前段の処理例 1 6において説明した 1Z2倍算において、例えば前述の [処理例 3 (提案法 B1) ]に示すアルゴリズム 10や、 [処理例 5 (提案法 C1) ]に示すアルゴリズ ム 11では、入力に lZu 力 出力に lZu が必要であった。これにより、ベースポィ
21 11
ント Dの 1/2;倍算、すなわち、
(1/2) D (1/22)D (1/23)D (Ι/^ϋ···
を、前の 1Z2倍算の出力の lZu を次の 1Z2倍算の入力として与えることができ
11
るので、効率よく計算することができる。そのため、スカラー倍を halve— and— add binary法 (right— to— left)で行なう場合には、ベースポイント Dの 1 倍を適宜 加えていけばよいので、 right— to— leftの場合には、効率よくスカラー倍算を行なう ことができた。
[0261] 一方、 left— to— rightの場合には、前の 1/2倍算の出力を次の 1/2倍算の入力 とすることができな 、場合がある。前述のアルゴリズム 13a [Algorithml 3a]の Step 4では、まず途中の結果 Qを 1Z2倍し(Q HEC_HLV(Q) )、スカラー値のあるビ ットが 1の場合は、ベースポイントを途中結果に加える(if di= lthenQ Q + D)。こ のため、ビットが 1の場合の、次のビットでは、前の 1Z2倍算の出力の lZu を次の
11 1
Z2倍算の入力として与えることができないので、新たに入力値 lZu を計算する必
21
要がある。有限体の逆元演算は乗算に比べて非常に計算量がかかる。そのため、先 の処理例 1〜6において説明した 1Z2倍算法では、 left— to— rightを適用した場 合、 1Z2倍算の入力値を生成するための余計な逆元演算を必要とするため、計算 の効率が悪くなる。しかしながら、処理例 7以降において説明した提案法では、入力 に lZu を必要としない設定としているため、 left— to— rightでも right— to— left
21
と同等の計算量で計算することができる。
[0262] また、前述のアルゴリズム 12a [Algorithm 12a]の halve— and— add binary法
(right -to -left)のステップ 4の HEC— HLVは、ランダムカーブを用いたアルゴリ ズム 5a [Algorithm 5a]にテーブル参照法を適用した HEC— HLVでも良!、し、ァ ルゴリズム 8a [Algorithm 8a]の曲線パラメータに h = 1, f =0の制約を設け、テ
2 4
一ブル参照法を適用した HEC— HLVでも良いし、アルゴリズム 10a [Algorithm 1 Oa]の曲線パラメータに h =h = 1, f =0の制約を設け、テーブル参照法を適用し
2 1 4
た HEC— HLVでも良いし、アルゴリズム 10a[Algorithm 10a]の曲線パラメータに h =h =h = 1, f =0の制約を設け,テーブル参照法を適用した HEC HLVでも
2 1 0 4 一 良い。
[0263] また, binary法のほ力に、 window法も適用することができる。入力因子を Dとし wi ndow幅^ wとする。途中結果を代入する因子を Q^Oとする。
整数 i= (i , i · · ·! ) ≡{0, 1, · · · , 2W- 1 }
w- 1 w- 2 0 2
に対して事前計算、すなわち、
[数 39]
Figure imgf000087_0001
を行い 2W個の因子からなるテーブルを計算しておく。
また、スカラー値 dを、 1Z2W進数展開する。
[数 40]
Figure imgf000087_0002
Λ'
はじめに Qに 1/2倍算を w回適用し、
Q— (1Z2W) Q
とする。次に dの上位ビットから window幅 wで、スカラー値 cを走査し、対応するテ 一ブルの因子の値を参照し、結果に足し込む。
Q^Q + D
cl
これを Cまで繰り返す。
0
この計算手法 [halve— and— add window method]を、アルゴリズム 14a [Algo rithm 14a]として以下に示す。
[数 41] Algorithm l½Ha/ve - and - add Window Method
Input: D e J(F2„ such that 2D≠ O, eZ, r: order of D, m - [Jogつ '」
Output scalar multiplication dD
1. "' άΊ2' ^2md mod r, άΊ G {0, 1}
2. m d./2' 2'-m, e{0,l}
3.
Figure imgf000088_0001
/2', , e{0,l,… - 1}
4. ^ ^ + .·. +き for, = (,w— , ...,。)2 e {0,1,… — 1}
5. Q^O
6. for i from / downto 0 do:
for j from 1 tow do: O^HEC HLV(0)
7. return 0
[0266] また、
因子 D二(U, V),
U = x2 + u x + u ,
1 0
V=v x+v ,
1 0
の逆元は、
-D= (U, V+hmodU) = (U, (v +h u +h )x+ (v +h u +h ))
1 2 1 1 0 2 0 0
で表すことが出来る。特に h =1の場合は、有限体の乗算は必要なぐ 4回の有限
2
体の加算で Dから—Dを求めることが出来る。因子 Dの減算は因子—Dの加算により 計算できる。つまり、因子の加算と減算は同等の計算量で求めることができる。
[0267] そこで、スカラー値を負の値も使って表現し、それを用いてスカラー倍算を行なうこ とが出来る。まず、非隣接形式 NAF(Non— Adjacent Form)を使い、ある整数 sを {-1, 0, 1}で表現する。 NAFでは 2進数表現されたスカラー値 sを下位のビットから 見ていく。 1が隣接するところがあれば、例えば、
(II)であれば、 (10—1)、つまり 3 = 22-1,
(III)であれば、(100— 1)、つまり 7 = 23— 1
などと表現する。
NAFの計算手法を、アルゴリズム 15a [Algorithm 15a]として以下に示す。
[数 42]
Figure imgf000089_0001
Input :s = ^']=^ G Z , SJ G {0,\}
Output: NAF(s) = sj'.2' e {- 1,0,1}
1. ca <- 0, s; - 0
2. For ; = 0 to I do:
し + ) 2
3. return NAF(S) = (s;sに广 )
NAFは,非零のビットの数が最も少ない表現法である。非零のビットの箇所では、 因子の加算もしくは減算を行なうため、非零のビットの数が少ない方が、スカラー倍算 を高速に計算することが出来る。 NAFを用いたスカラー値表現を、 halve -and -ad d binary法, halve― and― add window法に適用す こと 出来る。 halve— and -add binary法, halve— and— add window法で用いる HEC— HLV はラン ダムカーブを用いたアルゴリズム 5a [Algorithm 5a]の HEC— HLVでも良いし、ァ ルゴリズム 8a [Algorithm 8a]の曲線パラメータに h =1, f =0の制約を設けた HE
2 4
C HLVでも良いし、アルゴリズム 10a [Algorithm 10a]の曲線パラメータに h =
― 2 h =1, f = 0の制約を設けた HEC HLVでも良!、し、アルゴリズム 10a [Algorith
1 4 ―
m 10a]の曲線パラメータに h =h =h =1, f =0の制約を設けた HEC HLVで
2 1 0 4 ― も良い。 NAFを用いた halve— and— add binary方を アルゴリズム 16a [Algorith m 16a]として以下に示す。
[数 43]
Algorithm 16di lve - and― add NAF Binary Methoa
Input: D J(Fつ„ ) such that 2D≠0, d≡ΖΊ r order of D, m = log2 r」
Output scalar mu I ii plication dD
1. m d i ^-NAF{Td mod r e {-1,0,1}
2. m /2'Wm -" e{- 1,0,1}
4. for i from m downto 0 do:
O^HEC_HLV(0)
if > 0 then Q^O + D
Figure imgf000090_0001
5. return O
[0270] [演算高速化の検証]
次に、上述した処理例 7〜11を適用した演算における計算量を求め、演算の高速 化について検証する。
[0271] HEC HLV(h =1, f =0)では、計算量は、平均で、
― 2 4
19. 5M + 2S + 1I + 2. 5SR+2H+2T
である。
[0272] まず、有限体が正規基底で定義されている場合について考える。前述のとおり、正 規基底を用いた場合、 M, Iのみの計算量を考慮すればよい。文献 [A.Menezes. Elli pticし urve Public Key Cryptosystems. Kluwer Academic Publisners, 1993.」によると 、有限体を Fq, q = 2nとした場合、逆元計算一回は、下式によって算出される回数、 すなわち、
[数 44] log20 _ 1)」 + w(w - 1) - 1
[0273] 上記式によって算出される回数の乗算に匹敵する。ここで、 w(n— 1)は n— 1を 2進 数で表示した際の 1の個数を表す。例えば、 n=83, 89, 113の場合、 I = 8Mとなり 、 n= 103の場合、 I = 9Mとなる。
[0274] ここで、 I = 8Mを仮定すると、
HEC HLV (h = 1, f =0)
― 2 4
の計算量は、
19. 5M+ 11 = 27. 5Mとなる。
[0275] 一方、 HarleyDBLでは、
21M+ 1I = 29Mとなり、 HEC—HLVの方が HarleyDBLよりも 5%ほど高速とな る。また、テーブル参照法を用いた場合では、
18M+ 1I = 26M
となり、 HEC— HLVは、 HarleyDBLよりも 10%ほど高速となる。
[0276] また、 HEC HLV (h =h = 1, f =0)
― 2 1 4
の計算量は、平均で、
14. 5M + 3S + 1I + 2. 5SR+ 2H+ 2T
となる。この場合は、
14. 5M+ 1I = 22. 5M
となる。
[0277] 一方、 HarleyDBLでは、
18M+ 1I = 26Mとなり、 HEC HLVの方が HarleyDBLよりも 13%ほど高速とな る。また、テーブル参照法を用いた場合では、
14M+1I = 22M
となり、 HEC— HLVの方が HarleyDBLよりも 15%ほど高速となる。
[0278] また、 HEC HLV(h =h =h =1, f =0)
― 2 1 0 4
の計算量は、平均で、
13.5M + 3S + 1I + 2.5SR+2H+2T
となる。この場合は、
13.5M+1I = 21.5M
となる。
[0279] 一方、 HarleyDBLでは、
15M + II = 23Mとなり、 HEC—HLVの方が HarleyDBLよりも 6%ほど高速とな る。また、テーブル参照法を用いた場合では、
17M+1I = 25M
となり、 HEC— HLVの方が HarleyDBLよりも 14%ほど高速となる。
[0280] 次に、多項式基底の場合の計算量を評価する。 S, I, SR, H, Tの計算量をそれぞ れ S = 0.1M, I = 8M, SR=0.5M, H = 0.5M, T=OMと仮定する。 HEC— HL V(h =1, f =0)では、計算量は平均で、
2 4
19.5M + 2S + 1I + 2.5SR+2H+2T=29.95M
となる。
一方、 HarleyDBLでは、
21M + 5S + 1I = 29.5M
となり、 HarleyDBLの方が HEC— HLVよりも 1%程度高速となる。
[0281] また、テーブル参照法を用いた場合は、
18M + 2S + 1I + 2SR+2H = 28.2M
となり、 HEC— HLVは HarleyDBLよりも 4%程度高速となる。
また、 HEC HLV(h =h =1, f =0)では、計算量は平均で、
― 2 1 4
14.5M + 3S + 1I + 2.5SR+2H+2T=25.05M
となる。一方、 HarleyDBLでは、 18M + 7S + 1I = 26. 7M
となり、 HEC— HLVの方が HarleyDBLよりも 6%程度高速となる。
[0282] また、テーブル参照法を用いた場合は、
14M + 3S + 1I + 2SR+ 2H = 24. 3M
となり、 HEC— HLVの方が HarleyDBLよりも 9%程度高速となる。
[0283] また、 HEC HLV (h =h =h = 1, f =0)の計算量は、
― 2 1 0 4
13. 5M + 3S + 1I + 2. 5SR+ 2H+ 2T= 24. 05M
となる。一方、 HarleyDBLでは、
15M + 7S + 1I = 23. 7M
となり、 HarleyDBLの方が HEC—HLVよりも 1%程度高速となる。また、テーブル 参照法を用いた場合は、
13M + 3S + 1I + 2SR+ 2H = 23. 3M
となり、 HEC— HLVの方が HarleyDBLよりも 2%程度高速となる。
[0284] また、多項式基底の場合をソフトウェア実装を行!ヽ、速度の比較を行った。
CPUは Pentiumll 300MHz、
OSは RedHat7. 3、
コンパイラは gcc2. 96
の環境でソフトウェア実装を行った。
[0285] M (乗算)、 S (2乗算)は、文献 [D.Hankerson, J.Hernandez, and A.Menezes. Softw are Implementation of Elliptic Curve Cryptography over Binary Fields. CHES 2000, LNCS 1965, pp.1-24, 2000., Algorithm4. 6, 4. 7]、 I (逆元演算)は、文献 [S.Sha ntz. From Euclid s Gし D to Montgomery Multiplication to the Great Divide. TR-200 1-95, Sun Microsystems, Inc., 2001.]、 SR (平方根演算)、 T (トレース(二次方程式 の根があるか否かの判定))は、文献 [K.Fong, D.Hankerson, J丄 opez, and A.Meneze s. Field inversion and point halving revised. Technical Report CORR2003- 18, http:/ / www.cacr.math.uwaterloo.ca/techreports/2003/corr2003-18.pdf]、 H (ノヽ ~~フトレ ~~ ス(二次方程式の根を求める演算))は、文献 [K.Fong, D.Hankerson, J丄 opez, and A .Menezes. Field inversion ana point halving revised. Technical Report CORR2003— 1 8, http://www.cacr.math.uwaterloo.ca/techreports/2003/corr2003-18.pdf Algorit hm 4.7]に従った。
[0286] n=83, 89, 113の 3つの有限体に対して, M, S, I, SR, H, Tを実装し、 Mとの 比を求めた。ここで、
n= 83の既約多項式は、
Figure imgf000094_0001
n= 89の既約多項式は、
89 , 38
z 十 z 十 1—0
n= 113の既約多項式は、
113 9 , 1n
z 十 z十 1—0
を用いた。
計算量は次の通りとなった。
n=83:S/M = 0.12, Ι/Μ = 7.96, SR/M = 0.57, H/M = 0.58 n=89:S/M = 0.05, l/M = 8.74, SR/M = 0.14, H/M = 0.61 n=113:S/M = 0.06, l/M = 8.56, SR/M = 0.10, H/M = 0.50
[0287] これらを、 HarleyDBLの計算量 21M + 5S + IIに適用すると次のようになる。
n=83:HarleyDBL29.56M
n=89:HarleyDBL29.99M
n=113:HarleyDBL29.86M
[0288] これらを、 HEC HLV(h =1, f =0)の計算量、 19.5M + 2S + 1I + 2.5SR+
― 2 4
2H + 2Tに適用すると次のようになる。
n=83:HEC HLV(h =1, f =0)30.285M
― 2 4
n=89:HEC HLV(h =1, f =0)29.91M
― 2 4
n=113:HEC HLV(h =1, f =0)29.43M
― 2 4
[0289] この場合、 n= 83で HarleyDBLの方が HEC— HLVよりも 2%程度高速である。ま た、 n=89, 113で,それぞれ HEC—HLVの方が HarleyDBLよりもそれぞれ、 0.3 %, 1.5%程度高速である。
[0290] さらに、 HEC_HLV(h = 1, f =0)にテーブル参照法を適用した場合の計算量 、 18M + 2S + 1I + 2SR+ 2Hに適用すると次のようになる。
n=83:HEC HLV(h =1, f =0, withtable- lookup) 28.5M
― 2 4
n=89:HEC HLV(h =1, f =0, withtable -lookup) 28.34M
― 2 4
n=113:HEC HLV(h =1, f =0, withtable -lookup) 27.88M
― 2 4
[0291] この場合、 n=83, 89, 113で,それぞれ HEC—HLVの方が HarleyDBLよりも,
4%, 5%, 6%程度高速である。
[0292] また、 h =h =1, f =0の場合は次の通りとなる。
2 1 4
HarleyDBLの計算量 18M + 7S + IIに適用すると次のようになる。
n=83:HarleyDBL27.4M
n=89:HarleyDBL27.09M
n=113:HarleyDBL26.98M
[0293] 次に、 HEC HLV(h =h =1, f =0)の計算量、 14.5M + 3S + 1I + 2.5SR 一 2 1 4
+ 2H + 2Tに適用すると次のようになる。
n=83:HEC HLV(h =1, f =0)25.405M
― 2 4
n=89:HEC HLV(h =1, f =0) 24.96M
― 2 4
n=113:HEC HLV(h =1, f =0)24.49M
― 2 4
この場合、 n=83, 89, 113で、それぞれ HEC— HLVの方が HarleyDBLよりも、 7%, 8%, 10%程度高速である。
[0294] さらに、 HEC HLV(h =h =1, f =0)にテーブル参照法を適用した場合の計 一 2 1 4
算量、 14M + 3S + 1I + 2SR+ 2Hに適用すると次のようになる。
n=83:HEC HLV(h =h =1, f =0, withtable -lookup) 24.62M
― 2 1 4
n=89:HEC HLV(h =h =1, f =0, withtable -lookup) 24.39M
― 2 1 4
n=113:HEC HLV(h =h =1, f =0, withtable -lookup) 23.94M
― 2 1 4
この場合、 n=83, 89, 113で、それぞれ HEC— HVLの方が HarleyDBLよりも, 10%, 8%, 11%程度高速である。
[0295] また、 h =h =h =1, f =0の場合は次の通りとなる。
2 1 0 4
HarleyDBLの計算量 15M + 7S + IIに適用すると次のようになる。
n=83:HarleyDBL23.8M n=89:HarleyDBL24.09M
n=113:HarleyDBL23.98M
[0296] 次に、 HEC— HLV(h =h =h =1, f =0)の計算量 13.5M + 3S + 1I + 2.5S
― 2 1 0 4
R + 2H + 2Tに適用すると次のようになる。
n=83:HEC HLV(h =h =h =1, f =0)24.405M
― 2 1 0 4
n=89:HEC HLV(h =h =h =1, f =0)23.96M
― 2 1 0 4
n=113:HEC HLV(h =h =h =1, f =0)23.49M
― 2 1 0 4
この場合、 n = 83で HarleyDBLの方が HEC— HLVよりも、 2%程度高速である。 また、 n=89, 113では、それぞれ HEC— HLVの方が HarleyDBLよりも 0.5%, 2
%程度高速である。
[0297] さらに、 HEC HLV(h =h =h =1, f =0)にテーブル参照法を適用した場合
― 2 1 0 4
の計算量 13M + 3S + 1I + 2SR+ 2Hに適用すると次のようになる。
n=83:HEC HLV(h =h =h =1, f =0, withtable- lookup) 23.62M
― 2 1 0 4
n=89:HEC HLV(h =h =h =1, f =0, withtable -lookup) 23.39M
― 2 1 0 4
n=113:HEC HLV(h =h =h =1, f =0, withtable -lookup) 22.94M
― 2 1 0 4
この場合、 n=83, 89, 113で,それぞれ HEC— HLVの方が HarleyDBLよりも、 1%, 3%, 4%程度高速である。
[0298] 以上より、ほとんどの場合で、 HEC—HLVの方が HarleyDBLよりも高速であること が言える。特に、曲線パラメータ力 h =h =1, f =0の場合は、全ての場合におい
2 1 4
て HEC—HLVの方が HarleyDBLよりも高速である。
[0299] 次に、スカラー倍算における計算量を考える。上記の例で、 HEC—HLVの方が H arleyDBLよりも高速な場合は、加算と 1Z2倍算の組み合わせによるスカラー倍算 の方が、加算と 2倍算の組み合わせによるスカラー倍算よりも高速である。次に具体 的にスカラー倍算の計算量を比較してみる。曲線は, h =h =1, f =0を用いる。ま
2 1 4
た、スカラー倍算アルゴリズムは、前述の NAF+ binary法(アルゴリズム 16a [Algori thml6a])を用いる。このアルゴリズムにおいて、ステップ 1, 2がスカラー倍算全体に 占める割合は非常に小さいため、これらの計算量は無視する。ここで、正規基底およ び多項式基底ともに n=83, 89, 113の場合で計算量を考えてみる。また、ベースポ イン卜の位数は、 n=83, 89, 113に対してそれぞれ 165ビッ K 177ビット、 225ビッ トと仮定する。また、ステップ 4の繰り返し部分では、ベースポイントの位数のビット数 だけ繰り返す。因子の加算は文献 [T丄 ange, Efficient arithmetic on genus 2 hyperell iptic curves over nnite fields via explicit formulae. Cryptology e Print Archive, 2002/ 121, IACR, 2002.]を用いる。ただし、曲線パラメータは h =h =1, f =0とする。
2 1 4
[0300] この場合の因子の加算に必要な計算量は 21M + 3S + IIである。スカラー値は N AFを使い {ー1, 0, 1}で表現する。スカラー値を mとした場合、非零のビットは、おお よそ mZ3個ある。よって NAF+binary法の計算量は、((加算.減算の計算量) Z3 + ( 1Z2倍算 or2倍算の計算量) ) X (ベースポイントの位数のビット数)で計算する。
[0301] まずは、正規基底の場合力 見てみる。 I = 8Mと仮定する。
h =h =1, f =0の場合、
2 1 4
11=83:加算'2倍算 5885M
11=89:加算'2倍算 6313M
n= 113:カロ算 · 2倍算 8025M
[0302] h =h =1, f =0の場合、
2 1 4
n=83:カロ算 ·1Ζ2倍算 5307.5Μ
η=89: カロ算 ·1Ζ2倍算 5693.5Μ
η=113: 加算 ·1Ζ2倍算 7237.5Μ
[0303] h =h =1, f =0+テーブル参照法の場合、
2 1 4
n=83:加算 ·1/2倍算 5225Μ
η= 89:加算 · 1/2倍算 5605Μ
η=113:加算 ·1Ζ2倍算 7125M
[0304] 次に、多項式基底の場合を考える。
h =h =1, f =0の場合、
2 1 4
n=83:加算 ·2倍算 6116M
η=89:カロ算 ·2倍算 6505.93Μ
η=113:カロ算 ·2倍算 8245.5Μ
[0305] h =h =1, f =0の場合、 n=83 :カロ算 · 1Ζ2倍算 5786. 82Μ
η=89 :カロ算 · 1Ζ2倍算 6128. 92Μ
η= 113 :カロ算 · 1Ζ2倍算 7685. 25Μ
[0306] h =h = 1, f =0+テーブル参照法の場合、
2 1 4
n=83 :カロ算 · 1Ζ2倍算 5657. 3Μ
η=89 :カロ算 · 1Ζ2倍算 6028. 03Μ
η= 113 :加算 · 1Ζ2倍算 7561. 5Μ
[0307] 正規基底の場合は 10〜 11%程度、多項式基底の場合は 5〜8%程度 (加算 · 1Ζ
2倍算のスカラー倍)の方が (加算 · 2倍算のスカラー倍)よりも高速であることが言える
[0308] 以上、説明したように、本発明の処理によれば、楕円曲線暗号の 1Z2倍算を、超 楕円曲線暗号に拡張し、高速演算が実現される。
[0309] 超楕円曲線上の因子の演算を使う暗号処理演算において、処理の重い演算は因 子のスカラー倍算である。上述した本発明の処理によりスカラー倍算を高速ィ匕するこ とで超楕円曲線暗号の処理を大幅に改善することができる。
[0310] 前述したように、超楕円曲線暗号 (HECC)は楕円曲線暗号 (ECC)を一般ィ匕した 概念であり、現在、様々な分野で適用されている楕円曲線暗号 (ECC)を使った暗号 処理、具体的には署名処理、暗号データの生成、復号処理、暗号鍵共有処理、認 証処理などに、本発明を適用することが可能である。楕円曲線暗号 (ECC)における 演算処理中のスカラー倍算の部分を、上述したスカラー倍算に置き換えることで、演 算の高速ィ匕が可能となる。
[0311] [暗号処理装置の機能構成について]
図 7に、本発明の暗号処理装置の機能構成を示すブロック図を示す。暗号処理装 置 100は、超楕円曲線暗号に基づく暗号処理演算を実行する暗号処理装置 100で あり、因子 Dをベースポイントとして生成するベースポイント生成部 101、前述の処理 例 5において説明したテーブル、すなわち、予め固定された因子 Dについての [1Z2 'D]計算値に基づいて、 k , k ', (k , k ')のいずれが正しいかを記録したテーブル
1 1 0 0
を格納した記憶部 102と、演算実行部 103を有する。 [0312] 演算実行部 103は、超楕円曲線の因子 Dに対するスカラー倍算の演算において、 演算処理として、 1Z2倍算を含む演算を実行する。具体的には、種数 2、標数 2のラ ンダムパラメータを持つ超楕円曲線の因子 Dに対するスカラー倍算にお 、て 1Z2倍 算を含む演算を実行する。例えば、種数 2、標数 2の h(x) =x2+x+h , f =0をパラ
0 4 メータに持つ超楕円曲線の因子 Dに対するスカラー倍算、あるいは、種数 2、標数 2 の h (X) = Xをパラメータに持つ超楕円曲線の因子 Dに対するスカラー倍算にお 、て 1Z2倍算を含む演算を実行する。
[0313] [電子署名生成および検証アルゴリズムにおける本発明の適用例]
以下に本発明の処理を適用可能な具体的な暗号処理アルゴリズムの例として、楕 円曲線暗号を適用した電子署名生成および検証アルゴリズムである ECDSA (EC Digital Signature Algorithm)のスカラー倍算に本発明の演算手法を適用した場 合について説明する。 IEEE1363によると ECDSAによる署名生成、検証は以下の シーケンスによって実行される。
[0314] (1)入力
(1 - 1)楕円曲線のドメインパラメータ及びベースポイント G (位数 r)
(1 2)署名者の秘密鍵 s
(1 3)平文 M
(2)鍵生成
(2—1)秘密鍵 sに対して W=sGを公開鍵とする
(3)署名生成
(3- 1)ランダムな整数 0 < u < rを生成
(3— 2)V=uG= (x、y )を計算
(3- 3) xを整数に変換し、 iとする
(3-4) c=i mod rを計算。 c = 0なら step3— 1へ
(3— 5) f=h (M)、 hは hash関数
(3-6) d=u_1 (f+sc) mod rを計算。 d=0なら step3— 1へ
(3- 7) (c、 d)を平文 Mに対する署名にする。
(4)署名検証 (4—l) 0< c<r、 0< d<rをチェック。該当しない場合 invalidを出力 (4— 2) h=d mod r、 h =fh mod r、 h =ch mod r 十算。
1 2
(4— 3) P= (x、 y ) =h G+h Wを計算。 P=0ならば invalidを出力
P P 1 2
(4-4) xを整数に変換し、 iとする。
P
(4 5) c' =i mod rを計算する。
(4 6) c' = cならば validを出力。そうでないならば invalidを出力。
[0315] 上記アルゴリズムにお 、て下記の処理が超楕円曲線を用いた本提案法が適用でき る箇所である。
(2—1)秘密鍵 sに対して W=sGを公開鍵とする
(3— 2)V=uG= (x、y )を計算
(4— 3) P= (X、 y ) =h G+h Wを計算。 P=0ならば invalidを出力
P P 1 2
[0316] これらの各ステップ(2—1) , (3- 2) , (4— 3)における演算処理、 W=sG、 V=u G、 P= (x、 y ) =h G+h Wで、 sG、 uG、 h G、 h Wの演算処理は、因子のスカラ p p 1 2 1 2
一倍算処理であり、本発明の適用による高速ィ匕が可能となる。さらに sG、 uG、 h Gの 演算処理は、固定因子のスカラー倍算処理であり、本発明のテーブル参照法の適用 による高速ィ匕が可能となる。
[0317] [暗号処理装置のハードウェア構成例]
最後に、上述の暗号処理を実行するデバイスとしての ICモジュール 200の構成例 を図 8に示す。上述の処理は、例えば PC、 ICカード、リーダライタ、その他、様々な 情報処理装置において実行可能であり、図 8に示す ICモジュール 200は、これら様 々な機器に構成することが可能である。
[0318] 図 8に示す CPU(Central processing Unit)201は、暗号処理の開始や、終了、デー タの送受信の制御、各構成部間のデータ転送制御、その他の各種プログラムを実行 するプロセッサである。メモリ 202は、 CPU201が実行するプログラム、あるいは演算 パラメータとしての固定データを格納する ROM (Read-Only-Memory)、 CPU201の 処理にお 、て実行されるプログラム、およびプログラム処理にぉ 、て適宜変化するパ ラメータの格納エリア、ワーク領域として使用される RAM (Random Access Memory) 等からなる。 [0319] なお、メモリ 202に格納する演算実行プログラムは、上述したベースポイントの設定 処理、スカラー倍算としての加算、 2倍算の実行シーケンスを含むプログラムとして設 定される。また、メモリ 202は暗号処理に必要な鍵データ等の格納領域として使用可 能である。データ等の格納領域は、耐タンパ構造を持つメモリとして構成されることが 好ましい。
[0320] 暗号処理手部 203は、上述したスカラー倍算処理を含む暗号処理、復号処理等を 実行する。なお、ここでは、暗号処理手段を個別モジュールとした例を示した力 この ような独立した暗号処理モジュールを設けず、例えば暗号処理プログラムを ROMに 格納し、 CPU201が ROM格納プログラムを読み出して実行するように構成してもよ い。
[0321] 乱数発生器 204は、暗号処理に必要となる鍵の生成などにおいて必要となる乱数 の発生処理を実行する。
[0322] 送受信部 205は、外部とのデータ通信を実行するデータ通信処理部であり、例え ばリーダライタ等、 ICモジュールとのデータ通信を実行し、 ICモジュール内で生成し た暗号文の出力、あるいは外部のリーダライタ等の機器力ものデータ入力などを実行 する。
[0323] 以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、 本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ること は自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的 に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の 欄を参酌すべきである。
[0324] なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、 あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理 を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに 組み込まれたコンピュータ内のメモリにインストールして実行させる力、あるいは、各 種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させること が可能である。
[0325] 例えば、プログラムは記録媒体としてのハードディスクや ROM (Read Only Memory )に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、 CD -ROM(Compact Disc Read Only Memory), MO(Magneto optical)ディスク, DVD( Digital Versatile Disc),磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、 一時的あるいは永続的に格納 (記録)しておくことができる。このようなリムーバブル記 録媒体は、 V、わゆるパッケージソフトウェアとして提供することができる。
[0326] なお、プログラムは、上述したようなリムーバブル記録媒体力 コンピュータにインス トールする他、ダウンロードサイトから、コンピュータに無線転送したり、 LAN(Local A rea Network),インターネットといったネットワークを介して、コンピュータに有線で転 送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵する ハードディスク等の記録媒体にインストールすることができる。
[0327] なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみ ならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個 別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的 集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
産業上の利用可能性
[0328] 本発明の構成によれば、楕円曲線暗号の 1Z2倍算を、超楕円曲線暗号に拡張し 、高速演算が実現される。超楕円曲線上の因子の演算を使う暗号処理演算におい て、処理の重い演算は因子のスカラー倍算であり、本発明の処理によりスカラー倍算 を高速ィ匕することで超楕円曲線暗号の処理を大幅に改善することができ、 ICカード など高速性、安全性の要求される暗号処理演算を行う機器、デバイスなどにおいて 本発明の適用が可能である。
[0329] 本発明の構成によれば、超楕円曲線暗号の因子 Dに対するスカラー倍算において 、演算処理として、 1Z2倍算を含む演算を実行することでスカラー倍算を高速ィ匕す ることができる。例えば、種数 2、標数 2の h (x) =x2+x+h , f
0 4 =0をパラメータに持 つ超楕円曲線の因子 Dに対するスカラー倍算、あるいは、種数 2、標数 2の h (x) =x2 +h x+h , f =0をパラメータに持つ超楕円曲線の因子 Dに対するスカラー倍算、
1 0 4
あるいは、種数 2、標数 2の h (x) =xをパラメータに持つ超楕円曲線の因子 Dに対す るスカラー倍算において 1Z2倍算を含む演算を実行することで、高速演算が実現さ れ、 ICカードなど高速性、安全性の要求される暗号処理演算を行う機器、デバイスな どにおいて本発明の適用が可能である。
る。
[0330] さらに、本発明の構成によれば、予め固定された因子 Dについての [1Ζ2Ϊ>]計算 値に基づいて、 k , k ', (k , k ')のいずれが正しいかを記録したテーブルを適用す
1 1 0 0
ることで、因子のスカラー倍算における計算量をさらに削減することが可能となり、さら なる高速化が実現され、 ICカードなど高速性、安全性の要求される暗号処理演算を 行う機器、デバイスなどにおいて本発明の適用が可能である。
[0331] さらに、本発明の構成によれば、超楕円曲線暗号の因子 Dに対するスカラー倍算 において、演算処理として、 1Z2倍算を含む演算を実行する構成とするともに、 1/ 2倍算の演算処理において逆元演算の実行回数を減少させるアルゴリズムを適用し たので、因子のスカラー倍算における計算量をさらに削減することが可能となり、さら なる高速ィ匕が実現される。

Claims

請求の範囲
[1] 超楕円曲線暗号に基づく暗号処理演算を実行する暗号処理演算方法であり、 超楕円曲線の因子 Dに対するスカラー倍算の演算において、演算処理として、 1/ 2倍算を含む演算を実行する演算ステップ、
を有することを特徴とする暗号処理演算方法。
[2] 前記演算ステップは、
種数 2、標数 2のランダムパラメータを持つ超楕円曲線の因子 Dに対するスカラー倍 算において 1Z2倍算を含む演算を実行するステップであることを特徴とする請求項 1に記載の暗号処理演算方法。
[3] 前記演算ステップは、
種数 2、標数 2の h (x) =x2+x+h , f をパラメー
0 4 =0 タに持つ超楕円曲線の因子
Dに対するスカラー倍算において 1/2倍算を含む演算を実行するステップであるこ とを特徴とする請求項 1に記載の暗号処理演算方法。
[4] 前記演算ステップは、
種数 2、標数 2の h (x) =x2+h x+h , f =0をパラメータに持つ超楕円曲線の因
1 0 4
子 Dに対するスカラー倍算において 1Z2倍算を含む演算を実行するステップである ことを特徴とする請求項 1に記載の暗号処理演算方法。
[5] 前記演算ステップは、
種数 2、標数 2の h (x) =xをパラメータに持つ超楕円曲線の因子 Dに対するスカラ 一倍算において 1Z2倍算を含む演算を実行するステップであることを特徴とする請 求項 1に記載の暗号処理演算方法。
[6] 前記暗号処理演算方法は、
予め固定された因子 Dについての [lZ2t>]計算値に基づいて、 k , k ', (k , k ')
1 1 0 0 の!、ずれが正 ヽかを記録したテーブルを参照するテーブル参照ステップを有し、 前記演算ステップは、
前記テーブルの参照に基づく判定処理によって、 1Z2倍算の計算量を削減した演 算処理として実行することを特徴とする請求項 1に記載の暗号処理演算方法。
[7] 前記演算ステップは、 入力: D =(U , V )ゝ
2 2 2
出力: D =(U , V) = [1/2]D、
1 1 1 2
ただし、 U (x) =x2+u x+u , V (x)=v x+v , gcd(h, U)=l, i=l, 2、
i il iO i il iO i とした 1Z2倍算の演算アルゴリズムに基づいて導出される以下の関係式、 l/k =h +k u
1 2 1 21
を適用し、逆元演算を行なうことなく乗算および加算処理によって逆元 ΐΖΐ^の値 を算出するステップを含むことを特徴とする請求項 1に記載の暗号処理演算方法。
[8] 前記暗号処理演算方法は、
入力: D =(U , V )ゝ
2 2 2
出力: D =(U , V) = [1/2]D、
1 1 1 2
ただし、 U (x) =x2+u x+u , V (x)=v x+v , gcd(h, U)=l, i=l, 2、
i il iO i il iO i とした 1Z2倍算演算アルゴリズムにおいて、 lZu を入力値として適用しない設定
21
を持つアルゴリズムに従った演算を実行することを特徴とする請求項 1に記載の暗号 処理演算方法。
[9] 前記暗号処理演算方法は、
種数 2、標数 2の h(x) =x2+hx+h , f
1 0 4 =0をパラメータに持つ超楕円曲線の因 子 Dに対するスカラー倍算を実行する演算方法であり、
前記演算ステップは、
算出済みの値として lZh 2を入力値として設定し、
逆元 lZh 2を算出する処理を実行することなぐ算出済みの入力値 lZh 2を適用 するステップを含むことを特徴とする請求項 1に記載の暗号処理演算方法。
[10] 超楕円曲線暗号に基づく暗号処理演算を実行する暗号処理装置であり、
超楕円曲線の因子 Dに対するスカラー倍算の演算において、演算処理として、 1/ 2倍算を含む演算を実行する演算実行部を有することを特徴とする暗号処理装置。
[11] 前記演算実行部は、
種数 2、標数 2のランダムパラメータを持つ超楕円曲線の因子 Dに対するスカラー倍 算において 1Z2倍算を含む演算を実行する構成であることを特徴とする請求項 10 に記載の暗号処理装置。
[12] 前記演算実行部は、
種数 2、標数 2の h (x) =x2+x+h , f =0をパラメータに持つ超楕円曲線の因子
0 4
Dに対するスカラー倍算において 1/2倍算を含む演算を実行する構成であることを 特徴とする請求項 10に記載の暗号処理装置。
[13] 前記演算実行部は、
種数 2、標数 2の h (x) =x2+h x+h , f =0をパラメータに持つ超楕円曲線の因
1 0 4
子 Dに対するスカラー倍算において 1/2倍算を含む演算を実行する構成であること を特徴とする請求項 10に記載の暗号処理装置。
[14] 前記演算実行部は、
種数 2、標数 2の h (x) =xをパラメータに持つ超楕円曲線の因子 Dに対するスカラ 一倍算において 1Z2倍算を含む演算を実行する構成であることを特徴とする請求 項 10に記載の暗号処理装置。
[15] 前記暗号処理装置は、
予め固定された因子 Dについての [lZ2t>]計算値に基づいて、 k , k ', (k , k ')
1 1 0 0 の!、ずれが正 、かを記録したテーブルを格納した記憶部を有し、
前記演算実行部は、
前記テーブルの参照に基づく判定処理によって、 1Z2倍算の計算量を削減した演 算処理を実行する構成であることを特徴とする請求項 10に記載の暗号処理装置。
[16] 前記演算実行部は、
入力: D = (U , V )ゝ
2 2 2
出力: D = (U , V ) = [1/2]D 、
1 1 1 2
ただし、 U (x) =x2+u x+u , V (x) =v x+v , gcd (h, U ) = l, i= l, 2、
i il iO i il iO i とした 1Z2倍算の演算アルゴリズムに基づいて導出される以下の関係式、 l/k =h +k u
1 2 1 21
を適用し、逆元演算を行なうことなく乗算および加算処理によって逆元 ΐΖΐ^の値 を算出する構成であることを特徴とする請求項 10に記載の暗号処理装置。
[17] 前記演算実行部は、
入力: D = (U , V )ゝ 出力: D =(U , V) = [1/2]D、
1 1 1 2
ただし、 U (x) =x2+u x+u , V (x)=v x+v, gcd(h, U)=l, i=l, 2、 i il iO i il iO i とした 1Z2倍算演算アルゴリズムを実行する構成であり、 l/u を入力値として適
21
用しない設定を持つアルゴリズムに従った演算を実行する構成であることを特徴とす る請求項 10に記載の暗号処理装置。
[18] 前記演算実行部は、
種数 2、標数 2の h(x) =x2+hx+h , f =0をパラメータに持つ超楕円曲線の因
1 0 4
子 Dに対するスカラー倍算を実行する構成を有し、
算出済みの値として lZh 2を入力値とし、逆元 lZh 2を算出する処理を実行するこ となぐ算出済みの入力値 lZh 2を適用した演算を実行する構成であることを特徴と する請求項 10に記載の暗号処理装置。
[19] 超楕円曲線暗号に基づく暗号処理演算をコンピュータ上で実行させるコンピュータ •プログラムであり、
超楕円曲線の因子 Dに対するスカラー倍算の演算において、演算処理として、 1/ 2倍算を含む演算を実行する演算ステップ、
を有することを特徴とするコンピュータ ·プログラム。
PCT/JP2005/017650 2004-09-30 2005-09-26 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム WO2006035732A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
BRPI0516860-0A BRPI0516860A (pt) 2004-09-30 2005-09-26 método de computação criptográfica, sistema criptográfico, e, programa de computação
US11/576,305 US8014521B2 (en) 2004-09-30 2005-09-26 Cryptographic computation method, cryptographic system, and computer program
EP05785181A EP1796061A4 (en) 2004-09-30 2005-09-26 ENCRYPTION CALCULATION METHOD, ENCRYPTION DEVICE, AND COMPUTER PROGRAM

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2004287166 2004-09-30
JP2004-287166 2004-09-30
JP2005015071 2005-01-24
JP2005-015071 2005-01-24
JP2005-119587 2005-04-18
JP2005119587A JP4752313B2 (ja) 2004-09-30 2005-04-18 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム

Publications (1)

Publication Number Publication Date
WO2006035732A1 true WO2006035732A1 (ja) 2006-04-06

Family

ID=36118877

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/017650 WO2006035732A1 (ja) 2004-09-30 2005-09-26 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム

Country Status (6)

Country Link
US (1) US8014521B2 (ja)
EP (1) EP1796061A4 (ja)
JP (1) JP4752313B2 (ja)
KR (1) KR20070057882A (ja)
BR (1) BRPI0516860A (ja)
WO (1) WO2006035732A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4513752B2 (ja) * 2006-01-16 2010-07-28 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5023624B2 (ja) * 2006-09-01 2012-09-12 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
DE102007001070B3 (de) * 2006-09-29 2008-04-30 Siemens Ag Verfahren zum verschlüsselten Datenausgleich eines Systems mit mindestens einem Datenträger und einem Lesegerät
US8243919B2 (en) * 2007-03-07 2012-08-14 Research In Motion Limited Method and apparatus for performing elliptic curve scalar multiplication in a manner that counters power analysis attacks
US8559625B2 (en) * 2007-08-07 2013-10-15 Inside Secure Elliptic curve point transformations
KR100965813B1 (ko) * 2007-12-28 2010-06-24 경원대학교 산학협력단 유비쿼터스 환경에서 안전한 메시지 전송을 위한타원곡선기반의 rfid 암호 방법
US8619977B2 (en) * 2008-01-15 2013-12-31 Inside Secure Representation change of a point on an elliptic curve
US8401179B2 (en) * 2008-01-18 2013-03-19 Mitsubishi Electric Corporation Encryption parameter setting apparatus, key generation apparatus, cryptographic system, program, encryption parameter setting method, and key generation method
EP2124382A1 (de) * 2008-05-20 2009-11-25 Siemens Aktiengesellschaft Verfahren zum verschlüsselten Datenaustausch und Kommunikationssystem
US8369517B2 (en) * 2008-08-12 2013-02-05 Inside Secure Fast scalar multiplication for elliptic curve cryptosystems over prime fields
EP2425281A4 (en) 2009-04-30 2014-05-21 Certicom Corp SYSTEM AND METHOD FOR AUTHENTICATING RFID LABELS
US8457305B2 (en) * 2009-11-13 2013-06-04 Microsoft Corporation Generating genus 2 curves from invariants
US9215069B2 (en) * 2012-12-10 2015-12-15 Intel Corporation Methods and apparatus for device authentication with one-time credentials
JP6059287B2 (ja) 2015-05-12 2017-01-11 日本電信電話株式会社 行列三角化装置およびプログラム
US11157240B2 (en) * 2019-02-15 2021-10-26 International Business Machines Corporation Perform cryptographic computation scalar multiply instruction
US12101403B2 (en) 2022-10-26 2024-09-24 Tencent America LLC Interleaved scalar multiplication for elliptic curve cryptography

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000206879A (ja) * 1999-01-14 2000-07-28 Internatl Business Mach Corp <Ibm> 標数2のガロア体上で定義される超楕円曲線のヤコビ多様体の群演算を実施する装置及び方法
JP2003216028A (ja) * 2002-01-24 2003-07-30 Hitachi Ltd 超楕円曲線暗号のための演算装置
JP2004205870A (ja) * 2002-12-26 2004-07-22 Hitachi Ltd 超楕円曲線スカラー倍演算方法及び装置
JP2004205869A (ja) * 2002-12-26 2004-07-22 Hitachi Ltd 超楕円曲線スカラー倍演算方法及び装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377969B1 (en) * 1999-04-23 2002-04-23 General Dynamics Government Systems Corporation Method for multiplication in Galois fields using programmable circuits
FR2796177B1 (fr) 1999-07-09 2001-10-12 Oberthur Card Systems Sas Procede de cryptographie mis en oeuvre entre deux entites echangeant des informations
AU1040701A (en) 1999-11-08 2001-06-06 Teepak Investments Inc Method and apparatus for packing food casing strands as well as the package obtained
US7200225B1 (en) * 1999-11-12 2007-04-03 Richard Schroeppel Elliptic curve point ambiguity resolution apparatus and method
AU2002332671A1 (en) * 2001-08-13 2003-03-03 Board Of Trustees Of The Leland Stanford Junior University Systems and methods for identity-based encryption and related cryptographic techniques
JP4304937B2 (ja) * 2002-08-21 2009-07-29 日本電気株式会社 ヤコビ群要素加算装置
JP2004205868A (ja) * 2002-12-26 2004-07-22 Hitachi Ltd 超楕円曲線スカラー倍演算方法及び装置
US20060140398A1 (en) * 2003-06-12 2006-06-29 Roberto Avanzi Method for defence against differential power analysis attacks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000206879A (ja) * 1999-01-14 2000-07-28 Internatl Business Mach Corp <Ibm> 標数2のガロア体上で定義される超楕円曲線のヤコビ多様体の群演算を実施する装置及び方法
JP2003216028A (ja) * 2002-01-24 2003-07-30 Hitachi Ltd 超楕円曲線暗号のための演算装置
JP2004205870A (ja) * 2002-12-26 2004-07-22 Hitachi Ltd 超楕円曲線スカラー倍演算方法及び装置
JP2004205869A (ja) * 2002-12-26 2004-07-22 Hitachi Ltd 超楕円曲線スカラー倍演算方法及び装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1796061A4 *

Also Published As

Publication number Publication date
BRPI0516860A (pt) 2008-09-23
KR20070057882A (ko) 2007-06-07
US8014521B2 (en) 2011-09-06
EP1796061A1 (en) 2007-06-13
JP2006227562A (ja) 2006-08-31
JP4752313B2 (ja) 2011-08-17
US20080095357A1 (en) 2008-04-24
EP1796061A4 (en) 2008-11-26

Similar Documents

Publication Publication Date Title
WO2006035732A1 (ja) 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
US7957527B2 (en) Cryptographic processing apparatus
Koziel et al. Low-resource and fast binary edwards curves cryptography
JP4513752B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7835517B2 (en) Encryption processing apparatus, encryption processing method, and computer program
US8300810B2 (en) Method for securely encrypting or decrypting a message
WO2015164996A1 (zh) 椭圆域曲线运算方法和椭圆域曲线运算器
WO1999030458A1 (en) Transformation methods for optimizing elliptic curve cryptographic computations
EP1578054B1 (en) Cryptography-processing method, cryptography-processing apparatus and computer program
Adikari et al. A new algorithm for double scalar multiplication over Koblitz curves
CN116527274B (zh) 基于多标量乘快速计算的椭圆曲线验签方法及系统
KR101223498B1 (ko) 타원 곡선 암호 방식에서 공개키를 생성하는 방법 및 상기방법을 수행하는 시스템
JP2004163687A (ja) 楕円曲線暗号装置、楕円曲線暗号プログラム
Chatterjee et al. Software Implementation of Curve based Cryptography for Constrained Devices
Aranha et al. Efficient software implementation of laddering algorithms over binary elliptic curves
Koziel Low-Resource and Fast Elliptic Curve Implementations over Binary Edwards Curves
Ahmadi et al. Flexible Prime‐Field Genus 2 Hyperelliptic Curve Cryptography Processor with Low Power Consumption and Uniform Power Draw
Nogami et al. A method for distinguishing the two candidate elliptic curves in CM method
JP2010164878A (ja) 楕円スカラー倍演算装置、方法及びプログラム
He et al. Radio Frequency Identification System Security 57 N.-W. Lo and Y. Li (Eds.) IOS Press, 2012© 2012 The authors and IOS Press. All rights reserved.
KR20030033580A (ko) 고속 저전력의 오무라 감산방법을 이용하는 모듈라 연산방법 및 그 장치
JP2008020757A (ja) 暗号処理装置、および暗号処理演算方法、並びにコンピュータ・プログラム
JP2005043637A (ja) 暗号処理装置、および暗号処理演算方法、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KM KP KR KZ LC LK LR LS LT LU LV LY MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2005785181

Country of ref document: EP

Ref document number: 2357/DELNP/2007

Country of ref document: IN

ENP Entry into the national phase

Ref document number: 2007111725

Country of ref document: RU

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1020077007172

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 200580033176.6

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 11576305

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2005785181

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 11576305

Country of ref document: US

ENP Entry into the national phase

Ref document number: PI0516860

Country of ref document: BR