WO2002039664A2 - Procede et dispositif de calcul multiple et scalaire de courbe elliptique, et dispositif de stockage - Google Patents

Procede et dispositif de calcul multiple et scalaire de courbe elliptique, et dispositif de stockage Download PDF

Info

Publication number
WO2002039664A2
WO2002039664A2 PCT/JP2001/009781 JP0109781W WO0239664A2 WO 2002039664 A2 WO2002039664 A2 WO 2002039664A2 JP 0109781 W JP0109781 W JP 0109781W WO 0239664 A2 WO0239664 A2 WO 0239664A2
Authority
WO
WIPO (PCT)
Prior art keywords
elliptic curve
point
scalar
coordinates
montgomery
Prior art date
Application number
PCT/JP2001/009781
Other languages
English (en)
French (fr)
Inventor
Katsuyuki Okeya
Original Assignee
Hitachi, Ltd.
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 Hitachi, Ltd. filed Critical Hitachi, Ltd.
Priority to EP01982747A priority Critical patent/EP1445891A4/en
Publication of WO2002039664A2 publication Critical patent/WO2002039664A2/ja

Links

Classifications

    • 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

Definitions

  • the present invention relates to a security technique in a computer network, and more particularly, to a cryptographic processing execution method in elliptic curve cryptography.
  • Elliptic and ⁇ cryptography are a type of public key cryptography proposed by N. Koblitz and V. S. Miller.
  • public key cryptography there are information that can be made public, called a public key, and secret information that must be kept secret, called a secret key.
  • a public key is used to encrypt a given message and verify a signature, and a private key is used to decrypt a given message and create a signature.
  • the secret key in elliptic curve cryptography is scalar valued.
  • the security of elliptic curve cryptography stems from the difficulty in solving the discrete logarithm problem on elliptic curves.
  • the discrete logarithm problem on an elliptic curve is a problem of finding a scalar value d given a point P on the elliptic curve and a point dP that is a scalar multiple thereof.
  • a point on an elliptic curve refers to a set of numbers that satisfy the defining equation of the elliptic curve, and the entire point on the elliptic curve is calculated using a virtual point at infinity as a unit element. That is, the addition (or addition) on the elliptic curve is defined. The addition of the same points on the elliptic curve is called doubling on the elliptic curve.
  • the addition of two points on an elliptic curve is calculated as follows.
  • a point symmetrical about the X-axis with the intersection point is defined as a point obtained by performing the addition.
  • the doubling of a point on an elliptic curve is calculated as follows. If you draw a tangent at a point on the elliptic curve, the tangent will intersect at another point on the elliptic curve. The intersection point and a point symmetrical about the X coordinate are the result of doubling.
  • the addition of a certain point a certain number of times is called a scalar multiplication, the result is a scalar single point, and the number of times is a scalar value.
  • the roceedings of ASIACRYPT '98, LNCS 1514, Springer-Verlag, (1998) pp. 51-65 use a mixed coordinate system centered on the Jacobian coordinate using the window method for the Weierstrass-form elliptic curve.
  • the previous scalar multiplication method is described as a fast scalar multiplication method.
  • This calculation method accurately displays the coordinates of the scalar multiple without omitting them. That is, in the case of the affine coordinate system, the values of the X coordinate, the y coordinate, and in the case of the projective coordinates or the Jacobian coordinates, the values of the X coordinate, the Y coordinate, and the Z coordinate are all given.
  • this method does not calculate the value of the y coordinate of the point on the elliptic curve. This is not a problem, since many cryptographic operations essentially do not use the y-coordinate, but if you perform some cryptographic operations or want to fully comply with the standard, For example, the value of the y coordinate is also needed.
  • a scalar is obtained by using the window method and the mixed coordinate system in the Weierstrass-type elliptic curve.
  • the coordinates of the multiple point can be calculated completely, it cannot be calculated as fast as using the scalar multiplication method of the Montgomery-type elliptic curve.
  • Using the scalar multiplication method for the Montgomery-type elliptic curve allows faster calculation than using the window method and the mixed coordinate system for the Weierstrass-type elliptic curve. , That is, the y coordinate cannot be calculated.
  • An object of the present invention is to completely provide the coordinates of a scalar multiplication point in an elliptic curve defined on a finite field having a characteristic of 5 or more, at the same speed as a scalar multiplication operation in a Montgomery-type elliptic curve.
  • An object of the present invention is to provide a scalar multiplication method capable of calculating both the X coordinate and the y coordinate.
  • One method for achieving the above object is a scalar one-time calculation method that calculates a scalar value and a scalar multiple point from a scalar value and a point on an elliptic curve in an elliptic curve defined by a characteristic 5 or more in elliptic curve cryptography. And a step of calculating partial information of the scalar multiple point, and a step of restoring complete coordinates from the partial information of the scalar multiple point.
  • a scalar multiplication method for calculating a scalar multiplication point from a scalar value and a point on the elliptic curve in an elliptic curve defined on the body comprising: calculating partial information of the scalar multiplication point; Restoring complete coordinates in the affine coordinates from the partial information of the force single point.
  • One way to achieve the above object is to use a scalar multiplication method to calculate a scalar multiple value from a scalar value and a point on an elliptic curve in an elliptic curve defined on a finite field with characteristic 5 or more in elliptic curve cryptography.
  • the method further comprises: calculating the partial information of the scalar multiple point; and restoring a complete coordinate in projective coordinates from the partial information of the scalar multiple point.
  • a one-time calculation method comprising a step of calculating partial information of the single point of a plastic stall, and a step of restoring complete coordinates from the partial information of the single point of a plastic stall.
  • a scalar multiplication calculation method comprising the steps of calculating partial information of the scalar multiplication point and restoring complete coordinates from the partial information of the scalar multiplication point.
  • a scalar multiple calculation method comprising: calculating partial information of the scalar multiple; X-coordinate and ⁇ of the scalar multiple given as projective coordinates as partial information of the scalar multiple Providing the coordinates and the X-coordinate and the ⁇ -coordinate in the projective coordinates of the point obtained by adding the single point of the force and the point on the Montgomery-form elliptic curve, and restoring the complete coordinates in the affine coordinates. It is characterized by.
  • a scalar value and a Montgomery-type elliptic curve are defined for a Montgomery-type elliptic curve defined on a finite field with a characteristic of 5 or more in elliptic curve cryptography.
  • a scalar multiplication method for calculating a scalar multiplication point from a point on a circular curve comprising: calculating partial information of the scalar multiplication point; The X coordinate and the Z coordinate of the scalar multiple point and the X coordinate and the Z coordinate of the point obtained by adding the single point of the scalar and the point on the Montgomery-form elliptic curve are given. Restoring coordinates.
  • One way to achieve the above object is to calculate a scalar multiplication point from a scalar value and a point on a Montgomery-type elliptic curve in a Montgomery-type elliptic curve defined on a finite field with characteristic 5 or more in elliptic curve cryptography.
  • One way to achieve the above object is to calculate a scalar value and a scalar multiple point from a point on a Montgomery-type elliptic curve defined on a finite field of characteristic 5 or more in elliptic curve cryptography.
  • the X and z coordinates in the projected coordinates of the point obtained by adding the double point and the point on the Montgomery-form elliptic curve, and the projective coordinates of the point obtained by subtracting the single point of the force and the point on the Montgomery-form elliptic curve Providing an X coordinate and a z coordinate, and restoring complete coordinates in the projective coordinates.
  • One way to achieve the above object is to calculate a scalar single point from a scalar value and a point on a Montgomery-form elliptic curve in a Montgomery-form elliptic curve defined on a finite field with a characteristic of 5 or more in elliptic curve cryptography.
  • the X coordinate of the point obtained by adding the point on the Montgomery-form elliptic curve to the X coordinate of the point obtained by subtracting the scalar multiplication point and the point on the Montgomery-form elliptic curve is given to the X coordinate of the point obtained by subtracting the point on the Montgomery-form elliptic curve. It is especially important to have a step to restore complete coordinates.
  • One way to achieve the above object is to use a Weierstrass-type elliptic curve defined on a finite field with a characteristic of 5 or more in elliptic curve cryptography.
  • One way to achieve the above objective is to use a Weierstrass-type elliptic curve defined on a finite field with a characteristic of 5 or more in elliptic curve cryptography.
  • One way to achieve the above objective is to use a scalar value and a point on the Weierstrass-form elliptic curve in a Weierstrass-form elliptic curve defined on a finite field with a characteristic of 5 or more in elliptic curve cryptography.
  • Affiliation of a point obtained by adding the scalar single point and a point on the Weierstrass-form elliptic curve Recovering the perfect coordinates in the affine coordinates by giving the x-coordinates in the affine coordinates and the x-coordinates in the affine coordinates of the point obtained by subtracting the single point of the force and the point on the Weierstrass-form elliptic curve. And characterized in that:
  • a scalar multiplication method for calculating comprising: converting the Weierstrass-form elliptic curve into a Montgomery-form elliptic curve; calculating partial information of a scalar multiple point in the Montgomery-form elliptic curve; Restoring complete coordinates in the Weierstrass-form elliptic curve from partial information of the scalar multiple points in the Montgomery-form elliptic curve.
  • One way to achieve the above object is to calculate a scalar single point from a scalar value and a point on a Weierstrass-form elliptic curve in a Weierstrass-form elliptic curve defined on a finite field of characteristic 5 or more in elliptic curve cryptography.
  • a method for calculating the scalar one-time calculation comprising: converting the Weierstrass-form elliptic curve into a Montgomery-form elliptic curve; and calculating partial information of a scalar multiple point in the Montgomery-form elliptic curve.
  • One way to achieve the above object is to calculate a scalar value and a scalar multiplication point from points on a Weierstrass-form elliptic curve defined on a finite field of characteristic 5 or more in elliptic curve cryptography.
  • a scalar multiplication method for calculating comprising: converting the Weierstrass-form elliptic curve to a Montgomery-form elliptic curve; calculating partial information of a scalar multiple point in the Montgomery-form elliptic curve; As the partial information of the scalar multiplication point in the Montgomery-form elliptic curve, the X and Z coordinates of the scalar multiplication point given by the projective coordinates in the Montgomery-form elliptic curve, and the scalar multiplication point and the point on the Montgomery-form elliptic curve were added. Point Giving the x-coordinate and the z-coordinate in the projective coordinates, and restoring the full coordinates in the Weffinstrass-form elliptic curve and the affine coordinates in the line.
  • One way to achieve the above object is to define a scalar value and a scalar single point from a point on the Weierstrass-form elliptic curve in a finite Weierstrass-form elliptic curve of characteristic 5 or more in elliptic curve cryptography.
  • One way to achieve the above objective is to calculate a scalar multiple point from a scalar value and a point on a Weierstrass-form elliptic curve in a Weierstrass-form elliptic curve defined on a finite field of characteristic 5 or more in elliptic curve cryptography.
  • the present invention provides a method for calculating a scalar multiple point from a scalar value and a point on a Weierstrass-form elliptic curve in a ⁇ elstrass-form elliptic curve defined on a finite field having a characteristic of 5 or more in elliptic curve cryptography.
  • Converting the Weierstrass-form elliptic curve into a Montgomery-form elliptic curve comprising: Calculating the partial information of the scalar multiple point in the Merri-form elliptic curve; and calculating the X-coordinate and ⁇ Z coordinate, the X coordinate and the projected coordinate of the point obtained by adding the scalar single point and the point on the Montgomery elliptic curve, and ⁇ the Z coordinate and the point obtained by subtracting the scalar single point and the point on the Montgomery elliptic curve.
  • One way to achieve the above object is to calculate a scalar single point from a scalar value and a point on a Weierstrass-form elliptic curve in a Weierstrass-form elliptic curve defined on a finite field of characteristic 5 or more in elliptic curve cryptography.
  • a scalar multiplication method for calculating comprising: converting the Weierstrass-form elliptic curve into a Montgomery-form elliptic curve; calculating partial information of a scalar multiple point in the Montgomery-form elliptic curve; The X-coordinate of the scalar multiple given in affine coordinates in the Montgomery elliptic curve as the partial information of the scalar multiple in the Montgomery elliptic curve, the affine of the point obtained by adding the scalar multiple and the point on the Montgomery elliptic curve The x-coordinate of the coordinates and the point of subtraction of the scalar multiple and the point on the Montgomery-form elliptic curve. Given the X coordinate in the down coordinate, the FEATURE: that recovering a complete coordinate in Oite Afin coordinates Weierstrass-form elliptic curve.
  • FIG. 1 is a configuration diagram of the cryptographic processing system of the present invention.
  • FIG. 2 is a diagram showing a processing flow in the scalar multiplication method and apparatus according to the embodiment of the present invention.
  • FIG. 3 is a sequence diagram showing a processing flow in the cryptographic processing system of FIG.
  • FIG. 4 is a flowchart showing a high-speed scalar multiplication method in the scalar multiplication method according to the first, second, 14th and 15th embodiments of the present invention.
  • FIG. 5 is a flow chart showing a high-speed slider single-time calculation method in the third and fourth embodiments of the present invention.
  • FIG. 6 is a flowchart showing a high-speed dynamic force single-time calculation method in the dynamic force single-time calculation method according to the fifth embodiment of the present invention.
  • FIG. 7 is a flowchart showing a high-speed scalar multiplication calculation method in the scalar multiplication calculation method according to the sixth, seventh and eighth embodiments of the present invention.
  • FIG. 8 is a flowchart showing a high-speed scalar multiplication method in the scalar multiplication method according to the ninth, tenth, twenty-first and twenty-first embodiments of the present invention.
  • FIG. 9 is a flowchart showing a coordinate restoring method in the scalar multiplication calculating method according to the second embodiment of the present invention.
  • FIG. 10 is a flowchart showing a high-speed scalar multiplication method in the scalar multiplication method according to the first and second embodiments of the present invention.
  • FIG. 11 is a flowchart showing a coordinate restoration method in the scalar multiplication calculation method according to the first embodiment of the present invention.
  • FIG. 12 is a flowchart showing a coordinate restoration method in the scalar multiplication method according to the third embodiment of the present invention.
  • FIG. 13 is a flowchart showing a coordinate restoring method in the scalar multiplication calculating method according to the fourth embodiment of the present invention.
  • FIG. 14 is a flowchart showing a coordinate restoration method in the scalar multiplication method according to the sixth embodiment of the present invention.
  • FIG. 15 is a flowchart showing a coordinate restoration method in the scalar multiplication calculation method according to the seventh embodiment of the present invention.
  • FIG. 16 is a flowchart showing a coordinate restoration method in the scalar multiplication calculation method according to the eighth embodiment of the present invention.
  • FIG. 17 is a flowchart showing a coordinate restoration method in the scalar multiplication calculation method according to the ninth embodiment of the present invention.
  • FIG. 18 is a flowchart showing a coordinate restoration method in the scalar multiplication calculation method according to the tenth embodiment of the present invention.
  • FIG. 19 is a flowchart showing a coordinate restoration method in the scalar multiplication calculation method according to the eleventh embodiment of the present invention.
  • FIG. 20 shows a coordinate restoration method in the scalar multiplication calculation method according to the 12th embodiment of the present invention. It is a flowchart figure shown.
  • FIG. 21 is a flowchart showing a coordinate restoration method in the scalar multiplication calculation method according to the thirteenth embodiment of the present invention.
  • FIG. 22 is a configuration diagram of the signature creation device according to the embodiment of the present invention.
  • FIG. 23 is a configuration diagram of the decoding device according to the embodiment of the present invention.
  • FIG. 24 is a flowchart showing a high-speed scalar multiplication method in the scalar multiplication calculation method according to the thirteenth embodiment of the present invention.
  • FIG. 25 is a flowchart showing a scalar single calculation method in the scalar single calculation unit of FIG.
  • FIG. 26 is a flowchart showing a coordinate restoration method in the scalar multiplication calculation method according to the fifth embodiment of the present invention.
  • FIG. 27 is a diagram showing the flow of processing in the scalar one-time calculation method and device in the embodiment of the present invention.
  • FIG. 28 is a flowchart showing a signature creation method in the signature creation device of FIG.
  • FIG. 29 is a sequence diagram showing the flow of processing in the signature creation device of FIG.
  • FIG. 30 is a flowchart showing a decoding method in the decoding device of FIG.
  • FIG. 31 is a sequence diagram showing a flow of processing in the decoding device in FIG.
  • FIG. 32 is a flowchart showing a cryptographic processing method in the cryptographic processing system of FIG.
  • FIG. 33 is a flowchart showing a scalar multiplication calculation method in the scalar multiplication unit of FIG.
  • FIG. 34 is a flowchart showing a coordinate restoration method in the scalar multiplication calculation method according to the 14th embodiment of the present invention.
  • FIG. 35 is a flowchart showing a coordinate restoring method in the scalar multiplication method according to the fifteenth embodiment of the present invention.
  • FIG. 36 is a flowchart showing a coordinate restoration method in the scalar multiplication calculation method according to the sixteenth embodiment of the present invention.
  • FIG. 37 shows a coordinate restoration method in the scalar multiplication calculation method according to the seventeenth embodiment of the present invention. It is a flowchart diagram shown.
  • FIG. 38 is a flowchart showing a coordinate restoring method in the scalar multiplication calculating method according to the eighteenth embodiment of the present invention.
  • FIG. 39 is a flowchart showing a coordinate restoration method in the scalar multiplication calculation method according to the nineteenth embodiment of the present invention.
  • FIG. 40 is a flowchart showing a coordinate restoration method in the scalar multiplication calculation method according to the 20th embodiment of the present invention.
  • FIG. 41 is a flowchart showing a coordinate restoration method in the scalar multiplication calculation method according to the 21st embodiment of the present invention.
  • FIG. 42 is a flowchart showing a coordinate restoration method in the scalar multiplication calculation method according to the twenty-second embodiment of the present invention.
  • FIG. 43 is a flowchart illustrating a high-speed scalar multiplication calculation method in the scalar multiplication calculation method according to the sixteenth embodiment of the present invention.
  • FIG. 44 is a flowchart showing a high-speed scalar multiplication method in the scalar multiplication methods of the seventeenth, eighteenth, and nineteenth embodiments of the present invention.
  • FIG. 45 is a flowchart showing a high-speed scalar multiplication method in the scalar multiplication calculation method according to the twenty-second embodiment of the present invention.
  • FIG. 1 shows the configuration of the encryption / decryption processing device.
  • the encryption / decryption processing device 101 can perform both encryption of an input message and decryption of a decrypted message ⁇ (the elliptic curve handled here is Elliptic curve with characteristic of 5 or more.
  • P m is a message
  • k is a random number
  • a is a constant indicating a secret key
  • Q is a fixed point.
  • a Q of P m + k (a Q) in this equation indicates a public key, and indicates that the input message is encrypted using the public key.
  • a of a (k Q) is Indicates a secret key, indicating that decryption is performed using the secret key.
  • the encryption / decryption processing device 101 illustrated in FIG. 1 includes a processing unit 110, a storage unit 120, and a register unit 130.
  • the processing unit 120 indicates the processing required for the encryption processing by a function block, and encrypts / decrypts the input message.
  • the encryption / decryption processing unit 102 performs decryption of the encrypted message.
  • a scalar multiplication unit 103 for calculating parameters necessary for performing encryption and decryption in the decryption processing unit 102.
  • the storage unit 120 stores constants, secret information (for example, a secret key), and the like.
  • the register unit 130 temporarily stores the result of the operation in the encryption / decryption process or the information stored in the storage unit 120.
  • the processing unit 110 and the register unit 130 can be realized by a dedicated arithmetic unit or CPU for performing the processing described below, and the storage unit 120 can be realized by a RAM, a ROM, or the like.
  • FIG. 3 shows transmission of information of each unit when encryption / decryption is performed in the encryption / decryption processing device 101.
  • the encryption / decryption processing unit 102 is referred to as an encryption processing unit 102 when performing an encryption process, and is referred to as a decryption processing unit 102 when performing a decryption process.
  • the encryption / decryption processing unit 102 calculates the value (yl) of the y coordinate on the elliptic curve having the numerical value represented by the bit string of the message at the X coordinate (xl).
  • the encryption processing unit 102 sends the values of the X and y coordinates of the public keys aQ and Q to the scalar multiplication unit 103. At this time, the encryption processing unit 102 generates a random number and sends it to the scalar multiplication unit 103 (3002).
  • the scalar multiplication unit 103 calculates the scalar multiplication (xdl ydl) using the x-coordinate and y-coordinate values of Q and the random number, and the scalar multiplication (xd2 yd2) using the X- and y-coordinate values of the public key a Q Is calculated (3003), and the calculated scalar multiple is sent to the encryption processing unit 102 (3004).
  • the encryption processing unit 102 performs an encryption process using the transmitted scalar multiple (3005). For example, with respect to a Montgomery-type elliptic curve, a message xel xe2 obtained by the following equation is obtained.
  • xel B ((ydl-yl) I (xdl-xl)) 2 _A— xl—xdl... number 2
  • the encryption / decryption processing device 101 outputs the message encrypted by the encryption / decryption processing unit 102.
  • the value of the y coordinate on the elliptic curve having the numerical value represented by the bit sequence of the encrypted message as the X coordinate is obtained. calculate.
  • the encrypted message is a bit string of xel xe2
  • the encryption Z decryption processing unit 102 sends the values of the X coordinate and the y coordinate (xel yel) to the scalar multiplication unit 103 (3202).
  • the scalar single calculation unit 103 reads the secret information from the storage unit 120 (3203) calculates the scalar single point (xd3 yd3) from the X coordinate and y coordinate values and the secret information (3204) and calculates the calculated scalar
  • the multiple is sent to the encryption / decryption processing unit 102 (3205).
  • the encryption Z decryption processing unit 102 performs decryption processing using the transmitted scalar multiple (3206). For example, if the encrypted message is a bit string of xel xe2 and a Montgomery elliptic curve, X fl is obtained by the following equation.
  • X f 1 B ((y e2 + y d3) / (x e2- x d3)) 2 — A— x e2— x d3... number 4
  • the x fl corresponds to the message X 1 before being encrypted.
  • the decryption processing unit 102 outputs the decrypted message xfl (3207). As described above, the encryption / decryption processing is performed by the encryption / decryption processing unit 102.
  • FIG. 2 shows a functional block of the scalar multiplication unit 103.
  • FIG. 25 shows the operation of the scalar multiplication unit 103.
  • High-speed scalar one-time calculation unit 202 S scalar, scalar value that is secret information, and encrypted message, and ellipse that is the value of the Y coordinate on the elliptic curve where the encrypted message is the X coordinate
  • the high-speed scalar multiplication unit 202 calculates a part of the coordinates of the scalar multiplication point from the received scalar value and the point on the elliptic curve (step 2501). The information is given to the coordinate restoring section 203 (step 2503).
  • the coordinate restoring unit 203 restores the information of the given scalar multiple point and the coordinates of the single scalar multiple point from the input point on the elliptic curve (step 2504).
  • the scalar multiplication unit 103 outputs a scalar multiplication point whose coordinates are completely given as a calculation result (step 2505).
  • the scalar multiple with completely given coordinates means that the y-coordinate is calculated and output (the same applies hereinafter).
  • several embodiments of the high-speed scalar multiplication unit 202 and the coordinate restoration unit 203 of the scalar multiplication unit 103 will be described.
  • a scalar multiplication unit 103 is a scalar in which complete coordinates are given as points of affine coordinates in a Montgomery-form elliptic curve from a scalar value d and a point P on the Montgomery-form elliptic curve. It calculates and outputs multiple points (x d , y d ).
  • the high-speed scalar multiplication unit 202 receives them.
  • the fast scalar multiplication unit 2 0 2 calculates the received scalar value d and the given point P on the Montgomery-form elliptic curve.
  • the coordinates X d and y d of (x d , y d ) are restored.
  • the scalar multiplication unit 103 outputs a scalar single point (x d , y d ) to which coordinates are completely given in the affinity coordinates as a calculation result.
  • (D + l) P (X d + l d + l, Z d + l) on the Montgomery-form elliptic curve, while X d + 1 and Z d + 1 scalar
  • the point P on the Montgomery-form elliptic curve input to the multiplication unit 103 is input as (x, y) expressed in affine coordinates, and a scalar multiplication point (a) given complete coordinates in affine coordinates in the following procedure.
  • x d , y d The affine coordinates of the input point P on the Montgomery-form elliptic curve are represented by (x, y), and the projective coordinates are represented by (XYZ).
  • X d Xx in step 1 101 is calculated and stored in the register.
  • Ti_Z d is calculated in the scan Tetsupu 1 102.
  • X dX is stored in the register, so X d x-Z d is calculated.
  • the result is stored in the register.
  • Z d Xx is calculated and stored in the register T 2.
  • register T 2 Contains Z d x, so X d -xZ d is calculated.
  • the result is stored in the register T 2.
  • X d + 1 XT 2 is calculated in step 1 105.
  • step 1 1 08 stored in the register T 2 is calculated.
  • X d + 1 here to register T 2 ( X d -xZ d ) is stored, and Z d + 1 X d + 1 (X d -xZ d ) 2 is calculated based on the applied force s.
  • the result is stored in the register T 2 . is T 2 Xy in 1 109 Is calculated.
  • Z d + 1 in the register T 2 X d + 1 (X d -xZ d) are 2 force rating the yarn, the force s connexion y z d + 1 x d + E (X d -... xZ d) "it is calculated and the result ⁇ 2 ⁇ in step 1 10 10, which is stored in the register T 2 is computed here register T for 2 yZ d + 1 X d + 1
  • ByZ d + 1 Xd + i ( X d - xZ d) is Z d mosquito calculation.
  • the result is stored in the register T 2.
  • Step 1 1 14 in the inverse of register T 2 is calculated.
  • the register T 2 stores ByZ d +1 X d +1 (X d -xZ d ) 2 Z d 2 , and therefore 1 / ByZ d + ⁇ X d + (X d -xZ d ) Z d 2 is calculated.
  • the result is stored in the register T 2.
  • T 2 XT 4 is calculated.
  • step 111 the square of the register is calculated. Here 0 in the register at d x - Z d) is stored, thus (X d x- Z d) 2 is calculated. The result is stored in the register. In step 1 1 1 8 XT 2 is calculated. Here, (X d X-Z d ) 2 is stored in the register T i and 1 / ByZ d +1 X d + 1 (X d -xZ d ) is stored in the register T 2 , respectively.
  • register X d + 1 (X d - xZ d) + Z d + 1 to (X d xZ d) is register T 3 X d + 1 (X d -xZ d) -Z d + 1 (X d xZ d) are stored respectively, the force S connexion ⁇ X d + 1 (X d - xZ d) + Z d + 1 (X d xZ d) ⁇ ⁇ X d + 1 (X d - xZ d ) - Z d + 1 (X d xZ d) ⁇ is calculated. The result is stored in register T. XT 2 is calculated in step 1 1 2 2.
  • x d contains step 1 1 1 5 Smell T (ByZ d +1 X d +1 (X d -xZ d ) 2 Z d X d ) / (ByZ d + 1 1 X d +1 (X d -xZ d ) 2 X d 2 ) is stored and is not updated thereafter, so its value is retained.
  • y d (— A +1 -Z d _, X d + l ) (X d -Z d xf l ByZ d _ x Z M Z d ... number 1 0
  • Z m + n X -2 m ) ⁇ X n + Z n )-(X m + Z m XX mecanic-Z n )-Equation 1
  • X m and Z m are Montgomery elliptic curves X and Z coordinates in the projective coordinates of m times point mP of the point P above
  • X n and Z n are X coordinate ⁇ Pi Z coordinates in the projective coordinates of the n-times point nP of the point P on the Montgomery-form elliptic curve
  • X mn and Z mn is X coordinate ⁇ Pi Z coordinates on the Montgomery-form elliptic curve on the point P (mn) times points (mn) projective coordinates of P
  • X m + n and Z m + n is Montgomery
  • the point (m + n) multiplied by the point P on the type elliptic curve is the X coordinate and the Z coordinate in the projected coordinates of the
  • X " [ ⁇ X m one Z m) ⁇ X" + Z ") + (X m + Z m) (X n -Z”) ... Number 1 3 -) (+ Z n )-(X m + Z m ) (X n -Z n ) f ... number 1 4
  • Step 1 101 The above procedure consists of Step 1 101, Step 1 103, Step 1 105, Step 1 107, Step 1 108, Step 1 109, Step 1 110, Step 1 1 1, Step 1 1 1 2, Step 1 1 1 3, Step 1 1 1 5, Step 1 1 1 6, Step 1 1 1 8, Step 1 1 1 2, and Step 1 1 2 2 Requires computational complexity.
  • Steps 1106 and 1117 the computational complexity of squaring over a finite field is required.
  • step 1 114 the amount of calculation of the inverse operation on the finite field is required. The computational complexity of addition and subtraction over a finite field can be ignored since it is relatively small compared to the computational complexity of multiplication, squaring and inverse operation over a finite field.
  • the computational complexity of multiplication over a finite field is M
  • the computational complexity of squaring over a finite field is S
  • the computational complexity of the inverse operation over a finite field is I
  • the above procedure reduces the computational complexity of 15M + 2S + I I need.
  • the scalar value d is 160 bits
  • the calculation amount of the high-speed scalar multiplication is estimated to be about 1500M or less.
  • the computational complexity of coordinate restoration is 56.6 M, which is much smaller than the computational complexity of high-speed scalar single computation. Therefore, it was shown that the coordinates could be restored efficiently. .
  • a processing 4 from the point P on the scalar value d ⁇ Pi Montgomery-form elliptic curve, X d, Z d, a X d + 1, Z d + 1 processing fast's forces La haploid calculation unit for outputting a explain.
  • the high-speed scalar multiplication unit 202 inputs the point P on the Montgomery elliptic curve input to the scalar multiplication unit 103, and performs a scalar multiplication expressed in projective coordinates on the Montgomery elliptic curve by the following procedure.
  • an initial value 1 is substituted for a variable I.
  • step 402 a point 2P that is twice as large as the point P is calculated.
  • the point P is expressed as (x, y, l) in projective coordinates
  • the double point 2P is calculated using the doubling formula in the projective coordinates of the Montgomery-type elliptic curve.
  • step 403 the point P on the elliptic curve input to the scalar 1-fold calculator 103 and the point 2P obtained in step 402 are stored as a pair of points (P, 2P).
  • point P and point 2P are represented by projective coordinates.
  • step 404 it is determined whether or not the variable I matches the bit length of the scalar value d. If not, go to step 405.
  • step 405 the variable I is incremented by one.
  • step 406 it is determined whether the value of the I-th bit of the scalar value is 0 or 1. If the value of that bit is 0, go to step 407. If the value of the bit is 1, go to step 410. In step 407, the point mP and the point (m + 1) P are added mP + (m + 1) P from the set of points (raP, (m + 1) P) represented by the projective coordinates, and the point (2m + l) calculate P You. Then go to step 408. Here, the addition mP + (m + l) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 408 doubling 2 (mP) of the point mP is performed from the set of points (mP, (m + 1) P) represented by the projective coordinates to calculate the point 2mP. Then go to step 409.
  • the doubling 2 (mP) is calculated using a doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 409 the point 2mP obtained in step 408 and the point (2m + 1) P obtained in step 407 are set as a set of points (2mP, (2m + 1) P), and a set of points (mP, (m + 1) P ) Instead of). Thereafter, the flow returns to step 404.
  • the point 2mP, the point (2m + l) P, the point mP, and the point (m + 1) P are all represented in projective coordinates.
  • the point mP and the point (m + 1) P are added mP + (ra + l) P from the set of points (mP, (m + 1) P) represented by the projective coordinates, and the point (2m + l) Calculate P.
  • the addition mP + (m + l) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 412 the point (2m + l) P obtained in step 410 and the point (2m + 2) P obtained in step 411 are combined into a set of points ((2m + l) P, (2ra + 2 ) P) is stored instead of the set of points (mP, (m + 1) P). Then, return to step 404.
  • Z m + 1) from X m + 1 and Z m + 1 as X d + 1 and Z d + 1, and outputs.
  • Y m and Y m + 1 have not been determined since the Y coordinate cannot be determined by the addition formula and the doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • m and the scalar value d are equal because the bit length is equal and the pattern of the bit is also equal.
  • is the complexity of multiplication over a finite field
  • S is finite This is the complexity of squaring over the field.
  • the computational complexity of the doubling formula in the projective coordinates of the Montgomery-form elliptic curve is 3M + 2S. If the value of the I-th bit of the scalar value is 0, the calculation amount of addition in step 407 and the calculation amount of doubling in step 408 are required. That is, a calculation amount of 6M + 4S is required.
  • Step 404, Step 405, Step 406, Step 407, Step 408, Step 409 or Step 404, Step 405, Step 406, Step 410, Step 411, Step 412 is represented by (scalar value Since the number of calculations is one, taking into account the computational complexity of the doubling in step 402, the overall computational complexity is (6M + 4S) (k-1) + 3M + 2S .
  • k is the bit length of the scalar value d.
  • the calculation amount of the algorithm in the above procedure is approximately 1467M.
  • the amount of calculation per bit of the scalar value d is about 9.2M.
  • Xd , Yd , Xd + 1 , and Zd + 1 are output from the scalar value d and the point P on the Montgomery-form elliptic curve. If the algorithm is fast and fast, use another algorithm It may be.
  • the required calculation amount is approximately 1640M, and the required calculation amount has been reduced.
  • the scalar equalization calculation unit 103 obtains a scalar one where complete coordinates are given as points of projective coordinates in the Montgomery type elliptic curve from the scalar value d and the point P on the Montgomery type elliptic curve. It calculates and outputs multiple points (X d , Y d , z d ).
  • the high-speed scalar multiplication unit 202 receives them.
  • the coordinate restoration unit 203 is represented by projective coordinates in the Montgomery-form elliptic curve from the given coordinate values X d , Z d , X d +1 , Z d +1 , x and y.
  • X d , Y d , Z d Output as calculation result.
  • the point P on the Montgomery-form elliptic curve input to the scalar multiplication unit 103 was input as (X, y) expressed in affine coordinates, and the complete coordinates were given in projective coordinates in the following procedure.
  • X d Xx is computed in step 901 is stored in the register.
  • Ti- Z d is calculated.
  • Z d Xx is calculated in step 903 is stored in the register T 2.
  • X d _T 2 is calculated in step 904.
  • Z d x is stored in the register T 2 , so that X d — xZ d is calculated.
  • the result is stored in the register T 2.
  • Z d + 1 XT is calculated.
  • register ⁇ 2 stores X d — xZ d , so (X d — xZ d ) 2 is calculated Is done. The result is stored in the register T 2.
  • T 2 x Z d is calculated.
  • (X d — xZ d ) ⁇ is stored in the register T 2, and therefore Z d (X d — xZ d ) 2 is calculated.
  • the result is stored in the register T 2.
  • T 2 xX d + 1 is calculated in step 91 0.
  • register T to 2 Z d (X d - xZ d) are mosquitoes rated the yarn
  • the force S connexion X d + 1 Z d (X d - xZ d) is 2 months calculated.
  • the result is stored in the register T 2.
  • step 91 1 T 2 xz d +] L force s is calculated.
  • X d +: L Z d (X d — xZ d ) 2 is stored in the register T 2 , and therefore Z d + 1 X d + 1 1 Z d (X d —xZ d ) 2 is calculated.
  • the result is stored in the register T 2.
  • ⁇ 2 Xy is calculated.
  • the register T 2 has Z d + 1 X d + 1 Z d (X d _ x Z d ) 2 force in the S thread, and therefore yZ d + 1 X d + 1 Z d (X d -xZ d ) 2 is calculated.
  • the result is stored in the register T 2.
  • T 2 XB is calculated.
  • register ⁇ 2 contains yZ d + 1 X d + 1 Z d (X d -x Z d ) 2 and the total length is 82 (1 + 1 (1 + 1 2 (1 ( X d -xZ d ) 2 is calculated and the result is stored in the register T 2.
  • T 2 xX d is calculated in step 914 where the register T 2 has ByZ d + 1 1 X d +1 Z d (X d — xZ d ) is contained within the string, and then ByZ d + 1 X d + 1 Z d (X d — xZ d ) 2 X d is calculated, and the result is X
  • T 2 xZ d is calculated, where T 2 stores ByZ d +1 X d +1 Z d (X d — xZ d ) 2 and is the force S connexion ByZ d + iX d + 1 Z d (Xd- X Z d) Z d force S calculated.
  • T 3 + T 4 at step 916 is calculated .
  • the register T 3 is stored Z d + 1 to (X d x- Z d)
  • a register T 4 X d + 1 (X d -xZ d) is, the force S is calculated as Z d + 1 (X d x—Z d ) + X d + 1 (X d —xZ d ) force S.
  • the result is stored in the register T 2.
  • ⁇ 3 — ⁇ 4 is computed here in the register ⁇ 3 Z d + 1 (X d xZ d) is the register ⁇ 4 X d + 1.
  • - are (X d xZ d) force S rated the yarn, Applied force S d Z d + 1 (X d x— Z d ) — X d + 1
  • step 918 ⁇ 2 is calculated.
  • the register (X d xZ d) 2 Galle register the T 2 Z d +] L ( X d xZ d) + X d + i - is stored (X d xZ d) cage, but the connexion ⁇ Z d + 1 (X d xZ d) + X d + i (X d - xZ d) ⁇ (X dX - Z d) 2 is calculated.
  • the result is stored in the register.
  • the register Y d has ⁇ Z d + i (X d x—Z d ) + X d + i (X d — xZ d ) ⁇ ⁇ Z d +: L (X d xZ d ) -X d +1 (X d -xZ d ) ⁇ (X d xZ d ) 2 is stored.
  • the register Xd is stored in the ByZ d + 1 X d + 1 Z d + 1 (X d- x Z d ) 2 X d output thread, and the value is retained because no update is performed thereafter. ing.
  • X m and Z m is n times point of the Montgomery-form elliptic curve on the X coordinate and Z-coordinate in the projective coordinates of m times point mP of the point P
  • X n and Z n are the point P on the Montgomery-form elliptic curve
  • X m — n and Z m _ n are (mn) multiples of point P on Montgomery-form elliptic curve (m_n)
  • X m + n and Z m + n are the (m + n) times the point P on the Montgomery-form elliptic curve
  • the (m + n) X coordinate and the Z coordinate in the projective coordinates of P where m and n are m> n is a positive integer satisfying n.
  • This equation is X
  • Step 901 Step 903
  • Step 906 Step 909, Step 910, Step 911, Step 912, Step 9-1
  • Step 9 The computational complexity of the multiplication on the finite field is required in steps 14, 9 and 15, 9 and 18 and 9.
  • Steps 907 and 908 the amount of computation of squaring on a finite field is required.
  • the high-speed scalar multiplication method of the first embodiment is used.
  • the scalar value d and the point P on the Montgomery-form elliptic curve, x d, Z d, a Arugo rhythm for outputting X d + 1, Z d + 1, a high-speed algorithm can be achieved.
  • the high-speed scalar multiplication unit 202 outputs X d , Z d , X d + 1 , and Z d + i from the scalar value d and the point P on the Montgomery-form elliptic curve without using the above algorithm.
  • Other algorithms may be used as long as the algorithm is fast.
  • the scalar multiplication calculation unit 103 calculates a scalar multiplication in which complete coordinates are given as affine coordinate points in the Montgomery elliptic curve from the scalar value d and the point P on the Montgomery elliptic curve.
  • the point (x d , y d ) is calculated and output.
  • the scalar value d and the point P on the Montgomery-form elliptic curve are input to the scalar multiplication unit 103.
  • the high-speed scalar multiplication unit 202 receives it.
  • the coordinate restoring unit 203 is represented by the affine coordinates in the Montgomery-form elliptic curve from the given coordinate values X d , Z d , X d + 1 , Z d + 1 , d _ !, Z d _ ls x and y.
  • the scalar multiplication unit 103 outputs a scalar multiplication point (x d , y d ) whose coordinates are completely given in the affinity coordinates as a calculation result.
  • the (aff) coordinates of ( d -1) P are represented by (x d — ⁇ yd— and the projective coordinates are represented by (X d — i'Yd— Zd—.
  • the point (d + 1) P on the Montgomery-form elliptic curve is Affine coordinates
  • Step 1 In 201 say yes (1 -. Is 1 sigma (1+ 1 month calculated and stored in the register T ⁇ in step 1 202 is Zd-iXXa + is calculated, in the store is the step 1203 to the register T 2. Calculates ⁇ 2.
  • the register register stores X d _ Z d + power ⁇ the register ⁇ 2 stores Z d — X d +, and therefore X d — iZd + j -Z d — iXd + i is calculated and the result is stored in a register Z d ⁇ is calculated in step 1 204 and stored in register T 2
  • X d - ⁇ 2 is calculated calculation monkey.
  • the register Ding 2 2 is stored Ori, therefore X d -xZ d is calculated.
  • the result is stored in the register T 2.
  • ⁇ 1 ⁇ 2 is calculated.
  • the register stores X d —] ⁇ 3 + 2-23 iXd + i and the register T 2 stores (X d - ⁇ d ) 2 , and therefore (X d _ xZ d ) 2 (X d one iZ d + 1 - Z d one iX d + 1) power S is calculated.
  • the result is stored in a register.
  • step 1208 4 ⁇ Xy is calculated.
  • the result is stored in the register T 2.
  • Step 1 209 Te Oi Ding 2 2 (1 + 1 is calculated.
  • the register T 2 is stored is 4BY, therefore 4ByZ d + 1 Ru is calculated.
  • T 2 XZ d — is calculated, where 4ByZ d +1 is stored in register T 2 , and 4ByZ d — ⁇ a + is calculated. It is stored in the register T 2.
  • T 2 XZ d is calculated, where 4ByZ d + 1 Z d is stored in the register T 2 and the applied force S is 4ByZ d + . is 1 Z d
  • T 2 XX d is calculated in step 1 212 is stored in the register T 2 are here the register T 2 4ByZ d -.. is stored IZD + IZA and, the force S connexion 4ByZ d + 1 Z d -. .
  • iZdXd force S calculation result is Ru stored in the register T 3 step 121 3 2 ⁇ ⁇ is calculated in 3.
  • 4ByZ d +1 Z d is contained in the register T.
  • the calculation of 4ByZ d +1 Z d — iZdZd force S is then performed.
  • result inverse of register T 2 is calculated in step 1 2 14 are stored in the register T 2 where the register T 2 4ByZ d + 1 Z d -.. iZaZd is Stored, so l / 4ByZ d + 1 Z d — 1 Z d Z d is calculated.
  • the result is stored in the register T 2.
  • 1 5 T 2 XT 3 is calculated.
  • register ⁇ 2 stores l / 4ByZ d +1 Z d — ⁇ dZd
  • register ⁇ 3 stores 4 ByZ d +1 z di z d x d, so that (4By2d + iZ d- 1 iZ d X d ) bar AByZd + ⁇ d- ⁇ dZd) is calculated.
  • the result is stored in register xd .
  • step 1 16 T ⁇ XT 2 is calculated.
  • Equation 10 Equation 10
  • the above procedure consists of steps 1 and 2, step 1 and 2, steps 1 and 2, Step 1207, Step 1208, Step 1209, Step 1210, Step 1211, Step 1212, Step 1221, Step 1215, and Step 1216 require the computational complexity of multiplication over a finite field. Also, in step 1206, the computational complexity of squaring over a finite field is required. Also, in Step 1224, the amount of calculation of the inverse operation on the finite field is required. The computational complexity of addition and subtraction over a finite field is relatively small compared to the computational complexity of multiplication, squaring and inverse operation over a finite field, and may be ignored.
  • the computational complexity of multiplication on a finite field is M
  • the computational complexity of squaring on a finite field is S
  • the computational complexity of the inverse operation on a finite field is I
  • the above procedure has a computational complexity of 12M + S + I Need. This is much smaller than the computational complexity of fast scalar multiplication.
  • the scalar value d is 160 bits
  • the calculation amount of the high-speed scalar multiplication is estimated to be about 1500M or less.
  • the amount of calculation for coordinate restoration is 52.8M, which is much smaller than the amount of calculation for fast scalar multiplication. Therefore, it was shown that the coordinates could be restored efficiently.
  • the high-speed scalar multiplication unit 202 inputs the point P on the Montgomery elliptic curve input to the scalar multiplication unit 103, and performs a scalar multiplication expressed in projective coordinates on the Montgomery elliptic curve by the following procedure.
  • dP (X d , Y d , Z d ) X d and Z d , a point on the Montgomery-type elliptic curve expressed in projective coordinates (d + 1)
  • P (X d +1 , Y d + 1 , Z d + 1 ), X d +: L and Z d + i, a point on the Montgomery-form elliptic curve expressed in projective coordinates
  • step 501 (X d — i, Yd — i, Z d — of X d — 1 and Z d — are output.
  • step 501 the initial value 1 is substituted for the variable I.
  • step 502 As the point P 2 Calculate multiple points 2P.
  • point P is expressed as (x, y, l) in projective coordinates, and the double point 2P is calculated using the doubling formula in the projective coordinates of the Montgomery-type elliptic curve.
  • step 503 the point P on the elliptic curve input to the scalar multiplication unit 103 and the point 2P obtained in step 502 are stored as a set of points (P, 2P).
  • step 507 the point mP and the point (m + 1) P are added mP + (m + 1) P from the set of points (mP, (m + 1) P) represented by the projective coordinates, and the point (2m + l) Calculate P. Then go to step 508.
  • the addition mP + (m + l) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 508 doubling 2 (mP) of the point mP is performed from the set of points (mP, (m + 1) P) represented by the projective coordinates to calculate the point 2mP. Then go to step 509.
  • the doubling 2 (mP) is calculated using the doubling formula in the projective coordinates of the Montgomery-type elliptic curve.
  • the point 2mP obtained in step 508 and the point (2m + 1) P obtained in step 507 are set as a set of points (2mP, (2m + 1) P), and a set of points (mP, (m + l) Store instead of P). Thereafter, the flow returns to step 504.
  • point 2mP, point (2m + l) P, point mP and point (m + 1) P are all represented in projective coordinates.
  • Step 5 As 0, add mP + (m + 1) P to point mP and point (m + 1) P from the set of points (mP, (m + 1) P) represented by projective coordinates, and perform point (2ra + 1) Calculate P. Then go to step 511.
  • the addition mP + (m + l) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • the point (m + 1) P is doubled 2 ((m + 1) P) from the set of points (mP, (m + 1) P) represented by the projective coordinates, and the point (2I + 2) Calculate P. Then go to step 5 1 2.
  • the doubling 2 ((m + 1) P) is calculated by using the doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 512 the point (2m + l) P obtained in step 510 and the point (2m + 2) P obtained in step 511 are combined into a set of points ((2m + l) P, (2m + 2) P ) As a set of points Stored instead of (mP, (m + l) P). Thereafter, the flow returns to step 504.
  • the point (2m + l) P, the point (2m + 2) P, the point mP, and the point (m + 1) P are all represented in projective coordinates.
  • step 514 from the set of points (mP, (m + l) P) represented by the projective coordinates, the X coordinate X m — 1 and the Z coordinate Z m _! And find them as X d _ and Z d , respectively. Then go to step 513.
  • is the complexity of multiplication over a finite field
  • S is the complexity of square multiplication over a finite field.
  • the computational complexity of the doubling formula in the projective coordinates of the Montgomery-form elliptic curve is 3M + 2S. If the value of the I-th bit of the scalar value is 0, the calculation amount of addition in step 507 and the calculation amount of doubling in step 508 are required. That is, a calculation amount of 6 ⁇ + 4S is required.
  • Step 504 If the value of the I-th bit of the scalar value is 1, the amount of calculation for addition is required in step 510, and the amount of calculation for doubling is required in step 511. That is, a calculation amount of 6 ⁇ + 4 S is required. In any case, a calculation amount of 6 ⁇ + 4S is required.
  • the number of repetitions of Step 504, Step 505, Step 506, Step 507, Step 508, Step 509 or Step 504, Step 505, Step 506, Step 510, Step 511, Step 512 is (Scalar value d
  • the length of the calculation is 1 time, so taking into account the calculation amount of doubling in step 502 and the calculation amount required for calculating (ml) P in step 514, the overall calculation
  • the quantity is (6M + 4 S) k + M.
  • k is the bit length of the scalar value d.
  • the calculation amount of the algorithm in the above procedure is approximately 1473M.
  • the computational cost per bit of the scalar value d is about 9.2M.
  • a scalar multiplication method using a mixed coordinate system centered on Jacobian coordinates using the window method is described as a fast scalar multiplication method.
  • the amount of calculation per bit of the scalar value is estimated to be about 10M.
  • the calculation amount of this scalar multiplication method is approximately 1600M. Therefore, it can be said that the algorithm of the above procedure has a smaller amount of calculation and is faster.
  • the high-speed scalar multiplication unit 202 outputs X d , Z d , X d +1 and Z d +1 from the scalar value d and the point P on the Montgomery-form elliptic curve without using the algorithm of the above procedure.
  • Other algorithms may be used as long as the algorithm is fast and fast.
  • the amount of calculation required for this scalar multiplication is approximately 1526M.
  • a scalar multiplication unit 103 calculates a scalar multiplication in which complete coordinates are given as points of projective coordinates in a Montgomery elliptic curve from a scalar value d and a point P on the Montgomery elliptic curve. Calculate and output points (X d , Y d , Z d ). When the scalar value d and the point P on the Montgomery-form elliptic curve are input to the scalar multiplication unit 103, the high-speed scalar multiplication unit 202 receives them.
  • the information is provided to the coordinate reconstructing unit 203.
  • the coordinate reconstructing unit 203 The coordinate reconstructing unit 203
  • the scalar multiplication unit 103 outputs a scalar multiplication point (X d , Y d , Z d ) to which coordinates are completely given in the projection coordinates as a calculation result.
  • the point (d + l) P ( Xd + 1 , Yd + i, Zd + i) of the point on the Montgomery-form elliptic curve is xd + ⁇ and ⁇ Zd + 1 , the projective coordinates.
  • the input scalar value be d and the affine coordinates of the scalar multiplication point dP in the elliptic elliptic curve (x d , y d ) And the projected coordinates are represented by (X d , Y d , Z d ), respectively.
  • the point (d-1) P on the Montgomery-form elliptic curve is represented by (x d —, and the projective coordinates are represented by (X d ⁇ 1 ⁇ Yd— Zd—.
  • the point on the Montgomery-form elliptic curve is (d + l )
  • step 1 301 X d — is calculated and stored in the register.
  • Step 1 302 Z d one 1 xX d + 1 is calculated in, it is store in register T 2.
  • One T 2 is calculated in step 1 303.
  • register d stores X d — Z d + power register ⁇ 2 stores Z d — X d + ⁇ ⁇ ⁇ ⁇ , and therefore X d —; ⁇ + ⁇ -Z d — 1 X d +1 is calculated.
  • the result is stored in the register.
  • step 1 304 Z d Xx is calculated and stored in the register T 2.
  • step 1305 X d - ⁇ 2 is calculated.
  • register 1 has (1 _ 1 2 (1 + 1 -2 (1 — 1 (1 + 1)
  • Register T 2 has (X d -xZ d ) 2 It is stored and is therefore calculated as (X d -xZ d ) 2 (X d- 1 Z d- iX d + 1 ), and is stored in the force s register Y d . There is calculated. the result is T 2 XZ d + 1 in. step 1 309 is stored in the register T 2 is calculated.
  • the register T 2 is stored is 4BY, teeth . 4By Z d + is calculated want the result T 2 XZ d in step 1 310 is stored in the register T 2 -..
  • the result is stored in Z d .
  • the by force S connexion Z d 4ByZ d + 1 Z d - are stored IZdZa.
  • the register Y d (X d -xZ d) 2 in Step 1 3 07 stored (X d - - Z d iXd +) mosquitoes, since then update is not performed, the value is held.
  • Y d (X ⁇ Z M -Z d _, X M ) ⁇ X d -Z d xf... number 2 1
  • Step 13 The above procedure consists of steps 1301, 1302, 1304, 1307, 1308, 1309, 1309, 1131, 1131 and 2 Steps 13 and 13 require the computational complexity of multiplication over a finite field. Also, in Step 1306, the computational complexity of squaring over a finite field is required. The computational complexity of subtraction over a finite field is relatively small compared to the computational complexity of multiplication and squaring over a finite field, so they can be ignored.
  • the high-speed scalar multiplication method of the third embodiment is used as the high-speed scalar multiplication method of the high-speed scalar multiplication unit 202 of the fourth embodiment.
  • the point P forces the line, et al, X d, Z d, a X d + 1, Z d + 1, X d _ l 5 Z d algorithm that outputs _ 1 An algorithm that is fast is achieved.
  • the amount of calculation required for this scalar one-time calculation is approximately 1484M.
  • the required calculation amount is approximately 1600M, and the required calculation amount has been reduced.
  • the scalar multiplication unit 103 calculates a scalar in which complete coordinates are given from the scalar value d and the point P on the Montgomery-form elliptic curve as the point of the affine coordinates in the Montgomery-form elliptic curve. Calculate and output multiple points (x d , y d ).
  • the high-speed scalar multiplication unit 202 receives them.
  • the scalar multiplication unit 103 outputs a scalar single point (X d , y d ) whose coordinates are completely given in the affinity coordinates as a calculation result.
  • step 2601 xd —X is calculated and stored in register 1 ⁇ .
  • step 2602 Ding ;! Is calculated, or (x d — X), and stored in register T.
  • step 2 6 0 3 in x d - x d + 1 is calculated and stored in the register T 2.
  • step 2 604 ⁇ 2 is calculated.
  • the register here - are (x d X) are each rated paid is one x d + 1 in the register T 2, thus (x d - X) (x d - one x d + 1) is calculated Is done.
  • the result is stored in register TU.
  • step 2605 4BXy is calculated and stored in register 2 .
  • Inverse of T 2 is computed in step 2 6 0 6.
  • Equation 8 is obtained by subtracting both sides. Therefore, Equation 9 is obtained.
  • x d y d is given by the processing in FIG. Therefore, the values of the affine coordinates (X dyd) are all restored.
  • the above procedure requires the computational complexity of multiplication over a finite field in steps 2604, 2605 and 2607.
  • step 2602 a calculation amount of squaring on a finite field is required.
  • step 2606 the calculation amount of the inverse operation on the finite field is required.
  • the computational complexity of subtraction over a finite field is relatively small compared to the computational complexity of multiplication, squaring, and inverse operation over a finite field, and may be ignored.
  • the computational complexity of multiplication on a finite field is M
  • the computational complexity of squaring on a finite field is S
  • the computational complexity of the inverse operation on a finite field is I
  • the above procedure reduces the computational complexity of 3M + S + I I need. This is much smaller than the computational complexity of the fast scalar multiplication.
  • the scalar value d is 160 bits
  • the calculation amount of the high-speed scalar multiplication is estimated to be about 1500 M or less.
  • the computational complexity for coordinate restoration is 43.8 M, much smaller than the computational complexity of the fast scalar multiplication. Therefore, it was shown that the coordinates could be efficiently restored.
  • the high-speed scalar multiplication unit 202 inputs the point P on the Montgomery elliptic curve input to the scalar multiplication unit 103, and performs a scalar multiplication expressed in affine coordinates on the Montgomery elliptic curve by the following procedure.
  • dP (x d , y d ) x d
  • P ( Xd +1 , y d +1 )
  • Step 60 Substitute the initial value 1 for the variable I.
  • Step 602 calculates the double point 2 P of the point P.
  • the point P is expressed as (X, y, 1) in the projective coordinates, and the double point 2P is calculated using the doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • the point P on the elliptic curve input in 03 and the point 2P obtained in step 602 are stored as a set of points (P, 2P), where the points P and 2P are represented by projective coordinates. ing.
  • step 604 it is determined whether or not the variable I matches the bit length of the scalar value d. If not, go to step 605.
  • step 605 the variable I is incremented by one.
  • step 600 it is determined whether the value of the I-th bit of the scalar value is 0 or 1. If the bit value is 0, go to step 607. If the value of the bit is 1, go to step 610.
  • Step 607 the point mP and the point (m + 1) P are added mP + (m + 1) P from the set of points (mP, (m + 1) P) represented by the projective coordinates, and the point (2m + l) Calculate P. Then go to step 6 08.
  • the addition mP + (m + l) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 608 the point mP is doubled by 2 (mP) from the set of points (mP, (m + 1) P) represented by the projective coordinates, and the point 2mP is calculated. Then go to step 609.
  • the doubling 2 (mP) is calculated using a doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 609 the point set (mP, (m + 1) is defined as the point set (2mP, (2m + 1) P) with the point 2mP obtained in step 608 and the point (2m + 1) P obtained in step 607 ) Store instead of P). Thereafter, the flow returns to step 604.
  • point 2raP, point (2m + l) P, point mP and point (m + 1) P are all represented in projective coordinates.
  • step 6 10 the point mP and the point (m + 1) P are added mP + (m + 1) P from the set of points (mP, (m + 1) P) represented by the projection coordinates, and the point (2 1 ) Calculate P.
  • step 6 1 the addition raP + (m + l) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 6 1 doubling 2 ((111 + 1)?) Of the point (111 + 1)?
  • step 6-12 the doubling 2 ((m + l) P) is calculated using the doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 6 12 the point (2m + l) P obtained in step 6 10 and the point (2m + 2) P obtained in step 6 11 are set as a set of points ((2m + l) P, (2m + 2) Store as P) instead of point set (mP, (m + 1) P). Then, return to step 604.
  • step 6 14 from the set of points (mP, (m + 1) P) represented by projective coordinates, the X coordinate X m — ⁇ and ⁇ coordinate Z m — 1 in the projective coordinates of point (m ⁇ 1) P And set X d — 1 and Z d — 1 respectively. Then go to step 6 15.
  • Y m and ⁇ Y m + 1 are not determined because the Y coordinate cannot be determined by the addition formula and the doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 6 13 X d — x d , x d + 1 Then go to step 6 13.
  • x d _; L, x d , x d +1 are output.
  • m and the scalar value d have the same bit length and the same bit pattern, so they are equal.
  • (ml) P in step 6 14 it may be calculated by the formulas of Equations 13 and 14. If m is an odd number, the value of ((m-1) / 2) P May be held separately in the step 6 12, and (m ⁇ l) P may be obtained from the value by the doubling formula of the Montgomery-type elliptic curve.
  • M is the complexity of multiplication over a finite field
  • S is the complexity of multiplication over a finite field.
  • the computational complexity of the doubling formula in the projective coordinates of the Montgomery-form elliptic curve is 3M + 2S. If the value of the I-th bit of the scalar value is 0, the calculation amount of addition in step 607 and the calculation amount of doubling in step 608 are required. That is, a calculation amount of 6 M + 4 S is required.
  • step 61 If the value of the I-th bit of the scalar value is 1, the computational complexity of addition in step 61 and the computational complexity of doubling in step 61 1 are required. That is, a calculation amount of 6 M + 4 S is required. In each case, the computational complexity of 6 M + 4 S is required.
  • Step 604 Step 605, Step 606, Step 607, Step 608, Step 609 or Step 604 or Step 604, Step 605, Step 606, Step 610, Since the number of repetitions of step 6 11 and step 6 1 is (the bit length of the scalar value d) is 1 time, the calculation amount of the doubling in step 62 and the Taking into account the amount of calculation required for calculating (ml) P in step 614 and the amount of conversion to affine coordinates, the total amount of calculation is (6M + 4S) k + lM + I. Where k is the bit length of the scalar value d.
  • the total computational complexity is approximately (9.2 k + 51) M.
  • the calculation amount of the algorithm in the above procedure is about 1523M
  • the calculation amount per bit of the c scalar value d is about 9.2M.
  • the calculation amount required for this scalar multiplication is approximately 1567M.
  • ellipse When a Weierstrass-form elliptic curve is used as the curve, and the scalar multiplication point is output as affine coordinates using the window method and a scalar multiplication method using a mixed coordinate system centered on the Jacobian coordinates.
  • the required computational cost is approximately 1640M, compared to this, and the required computational complexity has been reduced.
  • the sixth embodiment uses a Weierstrass-type elliptic curve as the elliptic curve. That is, the elliptic curve used for the input and output of the scalar multiplication unit 103 is a ⁇ Jelstrass-type elliptic curve. However, a Montgomery-type elliptic curve that can be converted from a given Weierstrass-type elliptic curve may be used as the elliptic curve used in the calculation inside the scalar single-time calculator 103.
  • the scalar multiplication unit 103 obtains a scalar single point (s) whose complete coordinates are given as points of the affine coordinates in the Weierstrass-form elliptic curve from the scalar value d and the point P on the Weierstrass-form elliptic curve ( x d , y d ) is calculated and output.
  • the high-speed scalar multiplication unit 202 receives them.
  • the coordinate restoration unit 203 calculates the given coordinate values X d , Z d , X d + 1 , Z d + 1 , X d _ lN Z d — the x- and y-axis coordinates of the Weinstrass-form elliptic curve.
  • the scalar multiplication unit 103 outputs a scalar multiplication point (x d , y d ) whose coordinates are completely given in the affinity coordinates as a calculation result.
  • a Weierstrass-form elliptic curve is represented by projective coordinates.
  • dP (X d , Y d , Z d ), X d and z d , and a point ( d + 1)
  • P (X d +, Y d + i, and Z d + i) coordinates X d + and Z d + i
  • a point (d-l) P on the Weierstrass-form elliptic curve expressed in projective coordinates (X d — ⁇ Yd— ⁇ Zd— X d — 1 and z d — scalar
  • the point P on the Weierstrass-form elliptic curve input to the doubling unit 103 is the affinity coordinates.
  • Input (X, y) expressed by, and output the scalar multiple (x d , y d ) given the perfect coordinates in the affine coordinates by the following procedure.
  • the affine coordinates of point P on the curve are represented by ( ⁇ , y), and the projective coordinates are represented by (X1, Y1, Zi), where the input scalar value is d, and the scalar in the Weierstrass-form elliptic curve is Double point dP
  • step 1401 X d — is calculated and stored in register 1 ⁇ .
  • step 1402 Z d - iXX d + 1 is calculated and store in register T 2.
  • step 1403 Ti-T is calculated.
  • the register T stores X d — Z d + ⁇ f.
  • the register T 2 stores Z d — X d +, and therefore X d — Zd + -Zd— iXd + i is calculated.
  • the result is stored in the register.
  • Z d Xx is calculated in step 1404 is stored in the register T 2.
  • step 1405 X d -T 2 is calculated.
  • Z d x is stored in the register ⁇ 2 , so that X d -xZ d is calculated.
  • XT 2 is calculated.
  • X d — iZa + -Zd- 1 x d + 1 force s is stored in the register Ti
  • (X d -xZ d ) 2 is stored in the register T 2.
  • step 1408 4Xy is calculated. The result is It is stored in the register T 2.
  • step 1409 T 2 XZ d + 1 is calculated. Here, 4y is stored in the register T2, so that 4yZd + 1 is calculated. The result is stored in the register T 2.
  • T 2 XZ d — is calculated. Here the register T 2 are stored 4yz d + 1, therefore 47 ⁇ (1 + 1 2 (being 1 _ 1 month calculation. The result is stored in the register T 2.
  • T in step 141 1 2 XZ d is calculated. here, the register T 2 are stored 4yZ d + 1 Z d one i, is the force i 4yZ d + 1 Z d one month calculation. as a result register T 2
  • step 1412 T 2 XX d is calculated, where 4yZ d +1 Z d — is stored in the register T 2 ,
  • the register y d contains (X d — factory Z d — iX d + 1 ) (X d -Z d x) 2 / 4yZ d _ 1 Z d + 1 Z d 2
  • (4yZ d 1 z d + iZ d X d ) bar 423— ⁇ 3 + iZdZd) is stored in step 141 5, and since no update is performed thereafter, The value is retained.
  • Step 1401 The above procedure consists of Step 1401, Step 1402, Step 1 404, Step 1 407, Step 1 409, Step 1 410, Step 1 4 1 1, Step 1 4 1 2, Step 141 3, Step 1 41 5
  • step 1408 the multiplication in step 1408 can be ignored since the multiplicand value is as small as 4 and the amount of calculation is smaller than the amount of calculation for ordinary multiplication.
  • step 1406 the computational complexity of squaring over a finite field is required.
  • step 1414 the amount of calculation of the inverse operation on the finite field is required.
  • the computational complexity of subtraction over a finite field is relatively small compared to the computational complexity of multiplication, squaring, and inverse operation over a finite field and can be ignored.
  • M the computational complexity of multiplication
  • S the computational complexity of squaring on a finite field
  • I the computational complexity of the inverse operation on a finite field
  • the point P on the Weierstrass-form elliptic curve input to the scalar one-time calculation unit 103 is input.
  • Waals forces La haploid point dP (X d, Y d , Z d) No Chi x d ⁇ Pi z d
  • the point on the Weierstrass-form elliptic curve represented by the projective coordinates (d + l) P (X d + 1 , Y d + 1 , Z d + 1 ) 5 X d + 1 O3 ⁇ 4 d + 1
  • a point (d—l) P (X d — Yd — Output of and ⁇ Z d —
  • Step 716 converts the given point P on the Weierstrass-form elliptic curve into a point represented by projective coordinates on the Montgomery-form elliptic curve.
  • step 701 the initial value 1 is substituted for the variable I.
  • step 702 a point 2 P that is twice the point P is calculated.
  • the point P is expressed as (X, y, 1) in the projective coordinates, and the double point 2P is calculated using the doubling formula in the projective coordinates of the Montgomery-type elliptic curve.
  • the point P on the elliptic curve and the point 2P obtained in step 702 are stored as a set of points (P, 2P), where the points P and 2P are projected coordinates.
  • step 704 it is determined whether or not the variable I and the bit length of the scalar value d match, and if they match, the process proceeds to step 714.
  • step 7 is performed. Go to 05.
  • step 705 the variable I is incremented by one.
  • step 706 it is determined whether the value of the I-th bit of the scalar value is 0 or 1. If the value of that bit is 0, go to step 707. If the bit value is 1, go to step 710.
  • step 707 the point mP and the point (m + 1) P are added mP + (m + 1) P from the set of points (mP, (m + 1) P) represented by the projective coordinates, and the point (2m + l) Calculate P. Then go to step 708.
  • step 708 doubling 2 (mP) of the point mP is performed from the set of points (mP, (m + 1) P) represented by the projective coordinates to calculate the point 2mP. Then go to step 709.
  • the doubling 2 (mP) is calculated using a doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 709 the point 2mP obtained in step 708 and the point (2ra + 1) P obtained in step 707 are set as a set of points (2raP, (2m + 1) P), and a set of points (mP, (m + 1) P ) Instead of). Thereafter, the flow returns to step 704.
  • the point 2mP, the point (2m + l) P, the point raP, and the point (m + 1) P are all represented in projective coordinates.
  • step 710 the point mP and the point (m + 1) P are added mP + (m + 1) P from the set of points (mP, (m + 1) P) represented by the projective coordinates, and the point (2m + l) P Is calculated.
  • step 711 the addition mP + (m + l) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • Step 71 double the point (m + l) P 2 ((m + l) P) from the set of points (mP, (m + l) P) represented by the projective coordinates, and (2m + 2) Calculate P.
  • step 712. the doubling 2 ((m + 1) P) is calculated using the doubling formula in the projective coordinates of the Montgomery-type elliptic curve.
  • step 712 the point (2m + 1) P obtained in step 710 and the point (2m + 2) P obtained in step 711 are connected to a point ((2ra + l) P, (2m + 2) (P) is stored instead of the set of points (mP, (ra + 1) P). Then, return to step 704.
  • the point (2m + l) P, the point (2m + 2) P, the point mP, and the point (m + 1) P are all represented in projected coordinates.
  • Step 714 the set of points represented by the projective coordinates (mP, (m + 1) P) from the point (m - 1) X-coordinate in the projective coordinates of P X m -! And Z coordinate
  • step 715 the point (ml) P in the Montgomery-form elliptic curve is transformed into a point represented by a projective coordinate on the Weierstrass-form elliptic curve. Renew the X and Z coordinates of that point X m — i and Z m — i.
  • step 71 3 the X coordinate X m — 1 and the Z coordinate Zm — i of the point (m-1) P represented by the projective coordinates on the Dieselstrass-form elliptic curve are expressed as X d — and Z d , respectively.
  • the value of ((m-1) / 2) P may be calculated by using formulas 13 and 14 or if m is an odd number.
  • the value may be separately stored, and (m_l) P may be obtained from the value by the doubling formula of the Montgomery-form elliptic curve.
  • is the complexity of multiplication over a finite field
  • S is the complexity of square multiplication over a finite field.
  • the computational complexity of the doubling formula in the projective coordinates of the Montgomery-form elliptic curve is 3M + 2S. If the value of the I-th bit of the scalar value is 0, the calculation amount of addition in step 707 and the calculation amount of doubling in step 708 are required. That is, a calculation amount of 6 ⁇ + 4S is required.
  • step 704 If the value of the I-th bit of the scalar value is 1, the computational complexity of addition in step 710 and the computational complexity of doubling in step 711 are required. That is, 6 ⁇ + 4 S of computation is required. In any case, a calculation amount of 6 ⁇ + 4S is required.
  • the number of repetitions of step 704, step 705, step 706, step 707, step 708, step 709 or step 704, step 705, step 706, step 710, step 711, step 712 is as follows.
  • the calculation amount of the algorithm in the above procedure is approximately 1476M.
  • the calculation amount per bit of the scalar value d is about 9.2M.
  • the amount of calculation required for this scalar multiplication is approximately 1528M.
  • Elliptic When a Weierstrass-form elliptic curve is used as a line and a scalar multiplication method using a mixed coordinate system centered on the Jacobian coordinates using the window method and a scalar single point is output as affine coordinates
  • the required computational cost is approximately 1640 M, which is less than that.
  • the seventh embodiment uses a Weierstrass-type elliptic curve as the elliptic curve. That is, the elliptic curve used for input and output of the scalar multiplication unit 103 is a Weierstrass-type elliptic curve. However, a Montgomery-type elliptic curve that can be converted from a given Weierstrass-type elliptic curve may be used as the elliptic curve used in the calculation inside the scalar multiplication unit 103.
  • the scalar multiplication unit 103 calculates a scalar multiplication point (X d , Y d , Z d ) is calculated and output.
  • the high-speed scalar multiplication unit 202 receives them.
  • the scalar multiplication unit 103 outputs a scalar multiplication point (X d , Y d , Z d ) whose coordinates are completely given in the projection coordinates as the calculation result.
  • the affine coordinates of the input point P on the Weierstrass-form elliptic curve are represented by (X, y), and the projective coordinates are represented by (XJ, Y ⁇ , Zi).
  • the input scalar value is d
  • the affine coordinates of the scalar multiple point dP in the Weierstrass-form elliptic curve are represented by (x d , y d ) and the projective coordinates are represented by (X d , Y d , Z d ), respectively.
  • step 1501 X d — XZ d + 1 is calculated and stored in.
  • step 1503 T — T 2 is calculated.
  • the X d - are 2 (1 _ 1 (1 + 1 month respectively rated the yarn to T 2, the force S connection - A Z d - E
  • Xd + 1 is calculated.
  • the result is stored in TP.
  • Z d Xx is calculated and stored in T 2 .
  • T 2 is calculated monkey - X d in step 1 505.
  • Z d x is stored in T 2 , so that X d _xZ d is calculated.
  • the result is stored in the T 2.
  • Square of T 2 is calculated in step 1 506.
  • X d -xZ d is stored in T 2 , and therefore (X d -xZ d ) 2 is calculated.
  • the result is stored in the T 2.
  • XT in step 1 507. Force S is calculated.
  • X d — Z d — 1 X d + 1 force ST 2 stores (X d — xZ d ) 2 , and the resulting force S is (X d -xZ d ) 2 (X d — 1 Z d + 1 -Z d — d X d + 1 ) is calculated.
  • the result is stored in the register Y d.
  • 4Xy is calculated.
  • the result is stored in the T 2.
  • T 2 XZ d +1 is calculated.
  • the T 2 are stored 4y, the but Then 4yZ d + 1 is calculated.
  • the result is stored in T2.
  • step 1 5 1 0 T 2 XZ d — is calculated.
  • T 2 XZ d is calculated in Sutetsu flop 1 5 1 1.
  • T 2 has 4yZ d + 1 Z d , so 4yZ d + 1 Z d — is calculated.
  • the result is store in T 2.
  • T 2 XX d is calculated in step 1 5 1 2.
  • 4yz the T 2 d +: L Z d are one force rated the yarn, 4yz I and force d + 1 Z d - is iZdXd mosquito calculated.
  • the result is stored in register Xd.
  • T 2 XZ d is calculated.
  • Step 1501 The above procedure is performed in Step 1501, Step 1505, Step 1 504, Step 1 507, Step 1 509, Step 1510, Step 15 11 1, Step 15 15 2 and Step 15 13 Requires computational complexity of multiplication over finite fields.
  • the multiplication in step 1508 can be ignored since the multiplicand value is as small as 4 and the amount of calculation is smaller than the amount of calculation of ordinary multiplication.
  • Step 1506 the computational complexity of squaring over a finite field is required.
  • the computational complexity of subtraction over a finite field is relatively small compared to the computational complexity of multiplication and squaring over a finite field and can be ignored.
  • X d given by the above equation, Y d, if calculated values of Z d X d, Y d, can restore the value of Z d.
  • the values of X d , Y d , and Z d are selected so that x d and y d take the values given by the above formulas, and if the values can be calculated, X d , Y d , and z d can be restored . In those cases, the amount of computation required for restoration generally increases.
  • the high-speed scalar multiplication calculation method of the high-speed scalar multiplication unit 202 of the seventh embodiment is used.
  • the scalar value d and the point p on the Weierstrass-form elliptic curve, X d, z d, X d + 1, Z d + ⁇ , d _i as an algorithm for outputting Zd-, the algorithm is faster Is achieved.
  • the eighth embodiment uses a Weierstrass-type elliptic curve as the elliptic curve. That is, the elliptic curve used for input and output of the scalar multiplication unit 103 is a Weierstrass-type elliptic curve. However, a Montgomery-type elliptic curve that can be converted from a given Weierstrass-type elliptic curve may be used as the elliptic curve used in the calculation inside the scalar multiplication unit 103.
  • the scalar multiplication unit 103 calculates a scalar single point (x d , y) in which complete coordinates are given from the scalar value d and the point P on the Weierstrass-form elliptic curve as points of the affine coordinates on the Weierstrass-form elliptic curve. d ) is calculated and output.
  • the high-speed scalar multiplication unit 202 receives them.
  • scalar multiplication unit 1 03 outputs the scalar-multiplied point (x d given fully coordinate in Afin coordinates, y d) as a calculation result.
  • step 1 601 x d — X is calculated and stored in.
  • Step 1 square ie at 6 0 2 (x d - X ) " is calculated, x d in the the Step 1 6 03 stored in -.
  • One x d + 1 is calculated and stored in the T 2.
  • step 1 604 ⁇ 2 is calculated, where (x d — ⁇ 2 is included in ⁇ 2 and X d is equal to X d + d ⁇ S.
  • (X d —X) (X d- one x d + 1 ) is calculated, and the result is stored in Step 4 4Xy is calculated in step 605 and stored in T 2 .
  • T 2 of inverse at step 1 606 is calculated.
  • step 1 6 07 Where T 1 XT 2 is calculated, where (x d — X) 2 (x d —; L—) d + 1 ) and T 2 contains l / 4y, respectively. (x d - X) (x d one] L-Xrt + i) / 4y is It is calculated. The result is Stored in register y d. Therefore, (x d — ⁇ ) 2 (x d — x x d + 1 ) / 4y is stored in the register y d . Register xd is not updated at all, so the input value is retained.
  • step 1605 the multiplication in step 1605 can be ignored since the multiplicand value is as small as 4 and the amount of calculation is smaller than the amount of calculation of normal multiplication.
  • step 1602 the computational complexity of squaring over a finite field is required.
  • step 1606 the amount of calculation of the inverse operation on the finite field is required.
  • the computational complexity of subtraction over a finite field is relatively small compared to the computational complexity of multiplication, squaring, and inverse operation over a finite field, and can be ignored.
  • the computational complexity of multiplication over a finite field is M
  • the computational complexity of squaring over a finite field is S
  • the computational complexity of the inverse operation over a finite field is I
  • the above procedure requires 2M + S + I
  • the scalar value d is 160 bits
  • the computational cost of a high-speed scalar one-time calculation is estimated to be about 1500M or less.
  • the computational complexity of coordinate restoration is 42.8M, which is much smaller than the computational complexity of fast scalar multiplication. Therefore, it was shown that the coordinates could be efficiently restored.
  • the point P on the Weierstrass-type elliptic curve input to the scalar one-time calculation unit 103 is input, and the following procedure is performed.
  • the given point P on the Weierstrass-form elliptic curve is transformed into a point
  • step 701 an initial value 1 is substituted for a variable I.
  • step 702 a point 2 P which is twice as large as the point P is calculated. X, y, 1), and calculate the doubling point 2P using the doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • point 703 the point P on the elliptic curve input to the scalar multiplication unit 103 and the point 2P obtained in step 702 are stored as a point string (P, 2P).
  • step 705 increase the variable I by 1.
  • step 706 determine whether the value of the I-th bit of the scalar value is 0 or 1. The value of the bit is 0 If so, go to step 707. If the value of the bit is 1, go to step 710.
  • step 707 the point mP is calculated from the set of points (mP, (m + 1) P) represented by the projective coordinates. Addition of point (m + l) P Perform mP + (m + l) P to calculate point (2m + l) P. Go to 70 8.
  • the addition mP + (m + 1) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • Step 708 is to calculate the point represented by the view coordinates. Perform doubling 2 (mP) of the point raP from the set (mP, (m + l) P) to calculate the point 2mP. Then go to step 709.
  • the doubling 2 (mP) is calculated using a doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 709 the point 2mP obtained in step 708 and the point (2m + 1) P obtained in step 707 are set as a set of points (2raP, (2m + 1) P), and a set of points (mP, (M + 1) Stored instead of P). Then, return to step 704.
  • the point 2mP, the point (2m + l) P, the point mP, and the point ( m + 1) P are all represented in projected coordinates.
  • step 710 the point mP and the point (m + 1) P are added mP + (m + 1) p from the set of points (mP, (m + 1) P) represented by the projective coordinates, and the point (2m + 1) Calculate P. Then go to step 711.
  • step 71 the point (ra + 1) P is doubled 2 ((111 + 1) ⁇ ) from the set of points (mP, (m + 1) P) represented by the projective coordinates, and the point (2m +2) Calculate P. Then go to step 7 1 2.
  • doubling 2 ((m + l) P) is calculated using the formula of doubling in the projected coordinates of the Montgomery-form elliptic curve.
  • step 712 the point (2m + 1) P obtained in step 710 and the point (2m + 2) P obtained in step 711 are combined into a set of points ((2m + l) P, (2m + 2) P ) Is stored instead of the set of points (mP, (m + l) P), and then returns to step 704.
  • point (2m + l) P, point (2m + 2) P, point mP and the point (m + 1) P are all represented in projective coordinates
  • Step 714 from the set of points (mP, (m + 1) P) represented in projective coordinates, the point (m-1) Obtain the X coordinate Xm-1 and the Z coordinate Zm-1 in the projected coordinates of P. Then go to step ⁇ 715.
  • step 715 Mongo Convert the point (m-1) P in the Merri elliptic curve to a point represented by the affine coordinates on the Weierstrass elliptic curve, and set the X coordinate of the point to xm-1 again.
  • the points mP and (m + 1) P are plotted on a Weierstrass-form elliptic curve.
  • in and scalar value d have the same bit length and the same bit pattern, so they are equal.
  • the value of ((m-1) / 2) P may be obtained by using formulas 13 and 14 if m is an odd number. May be held separately at the stage of step 71 2, and (m_l) P may be obtained from the value by the doubling formula of the Montgomery-form elliptic curve.
  • the computational amount of the addition formula in the projective coordinates of the Montgomery-form elliptic curve is 3M + 2S by taking Z1-1. Where M is the complexity of multiplication over a finite field, and S is the complexity of multiplication over a finite field.
  • the computational complexity of the doubling formula in the projective coordinates of the Montgomery-form elliptic curve is 3M + 2S. If the value of the I-th bit of the scalar value is 0, the calculation amount of addition in step 707 and the calculation amount of doubling in step 708 are required. That is, a calculation amount of 6 M + 4 S is required. If the value of the I-th bit of the scalar value is 1, the calculation amount of addition in step 710 and the calculation amount of doubling in step 71 1 are required. In other words, a calculation amount of 6M + 4S is required. In any case, a calculation amount of 6M + 4S is required.
  • step 704, step 705, step 706, step 707, step 708, step 709 or step 704, step 705, step 706, step 710, step 711, step 712 is (scalar (The bit length of the value d) Since it is one time, the calculation amount of the doubling in step 702, the calculation amount necessary for conversion to a point on the Montgomery-form elliptic curve in step 716, and the calculation amount in step 715 Taking into account the required computation for the points on the Elstras-type elliptic curve, the overall computation is (6M + 4S) k + 15M + I. Where k is the bit length of the scalar value d.
  • the computational complexity S is estimated to be about S-0.8M
  • the overall computational complexity is approximately (9.2 k + 55) M.
  • the calculation amount of the algorithm in the above procedure is approximately 1527M.
  • the computational cost per bit of the scalar value d is about 9.2M.
  • the ninth embodiment uses a Weierstrass-form elliptic curve as an input-output elliptic curve, and uses a Montgomery-form elliptic curve that can be converted from a given Weierstrass-form elliptic curve for internal calculations. It was what was.
  • the scalar multiplication unit 103 calculates a scalar multiplication point in which complete coordinates are given as affine coordinate points in a Weierstrass-form elliptic curve from a scalar value d and a point P on the Weierstrass-form elliptic curve.
  • the high-speed scalar multiplication unit 202 gives X d , Z d , X d + 1 , Z d + 1 , x, and y to the coordinate restoration unit 203.
  • the coordinate restoring unit 203 obtains a surface force expressed by an Affine coordinate in a Weierstrass-form elliptic curve from the given coordinate values X d , Z d , X d + 1 , Z d + 1 , x and y.
  • the coordinates X d and y d of the single point dP (x d , y d ) are restored.
  • the scalar multiplication unit 103 outputs a scalar multiplication point (x d , y d ) whose coordinates are completely given in the affinity coordinates as a calculation result.
  • the affine coordinates of the input point P on the Montgomery-type elliptic curve are represented by (x, y), and the projective coordinates are represented by (X1, Y1, Z1).
  • the Afin coordinate of the scalar-multiplied point dP in the Montgomery-form elliptic curve inputted scalar value is d at (x d Mo n, y d Mo n), represent respectively the projective coordinates (X d, Y d, Z d) in .
  • step 1701 X d Xx is calculated and stored in the register T ⁇ .
  • step 1 702 TZ d is calculated.
  • the register T is stored is X d x, hence X d xZ d is calculated.
  • the result is stored in the register.
  • step 1 703 Z d Xx is calculated and stored in the register T 2.
  • T 2 is calculated - X d in step 1 704.
  • Z d x is stored in the register ⁇ 2 , so that X d -xZ d is calculated.
  • the result is It is stored in the static T 2.
  • X d + 1 XT 2 is calculated in step 1 705.
  • Step 1 706 square smell Te T 2 is calculated.
  • the register T 2 Ri Contact is stored (X d -xZ d), thus (X d - xZ d) 2 is calculated.
  • the result is stored in register T2.
  • step 1 707 T 2 XX d + 1 is calculated.
  • register T 2 (X d - xZ d ) 2 is stored, thus X d + 1 (X d - xZ d) 2 is calculated.
  • the result is stored in the register T 2.
  • T 2 XZ d + 1 is calculated in step 1 708.
  • X d + (X d ⁇ xZ d ) 2 is stored in the register T 2 , and therefore Z d + 1 X d + 1 (X d ⁇ xZ d ) 2 is calculated.
  • the result is stored in register T2.
  • T 2 Xy is calculated.
  • the result is stored in the register T 2.
  • T 2 XB is calculated.
  • the register T 2 has yZ d + 1 Xd + 1 (X d —xZ d ) 2 force S in the thread, and the force S is ByZ d + 1 1 X d + 1 (X d — xZ d ) Is done.
  • the result is stored in the register T 2.
  • step 1 71 1 ⁇ 2 XZ d is calculated.
  • the register T 2 ByZ d + 1 X d + 1 (X d -xZ d) 2 is stored, the mosquito connexion ByZ d + 1 X d + 1 (X d - xZ d) 2 Z d months Is calculated. It is stored in the result force S register T 2.
  • T 2 XX d is calculated in step 1 71 2.
  • ByZ d + 1 1 X d + 1 (X d -xZ d ) 2 Z d is stored in the register T 2
  • ByZ d + 1 X d + 1 (X d -xZ d ) 2 Z d X d is calculated.
  • the result is stored in the register T 4.
  • T 2 XZ d is calculated.
  • the register T 2 ByZ d + 1 X d + 1 (X d - xZ d) 2 Z d is stored, thus ByZ d + 1 X d + 1 (X d -xZ d) 2 Z d is calculated.
  • the result is stored in the register T 2.
  • Register T 2 Xs is computed in step 1 714.
  • the register T 2 has ByZ d + 1 X d + 1 (X d — xZ d ) 2 Z d 2 force S in the thread, and the force S is sByZ d + 1 X d + 1 (X d -xZ d ) 2 Z d 2 is calculated.
  • the result is stored in the register T 2.
  • Inverse of T 2 is calculated in step 171 5.
  • ⁇ 2 has sByZ d + 1 1 X d + 1 (X d — X Z d ) 2 Z d 2 inside the thread, and the force S is 1 / sByZ d + 1 X d + 1 (X d -xZ d ) 2 Z d 2 Force S is calculated. The result is stored in T2. ⁇ 2 ⁇ 4 is calculated in step 1 7 1 6.
  • register ⁇ 2 has l / sByZ d + 1 1 X d +1 (X d -xZ d ) 2 Z d 2 force
  • register T 4 has ByZd + iXd + i (Xd— xZ d ) d X d Re is stored, respectively, the mosquito connexion (ByZ d + 1 X d + 1 (X d - xZ d) 2 Z d X d) /
  • the result is stored in the register T 3.
  • XT 3 is calculated.
  • the register ⁇ ⁇ has ⁇ X d + 1 (X d -xZ d ) + Z d + i (X d x- Z d ) ⁇ ⁇ X d +: L (X d -xZ d ) — Z d + i (X d x- Z d) ⁇ in the register T 2 (X d x -
  • X and Z coordinates, X n and Z n are the X and Z coordinates in the projective coordinates of point nP, n times the point P on the Montgomery elliptic curve, and X m — n and Z m — n are Montgomery ellipses (M-n) times the point P on the curve (m-n)
  • the X and Z coordinates in the projective coordinates of P, Xm + n and Zm + n are (m + n) of the point P on the Montgomery-type elliptic curve.
  • n) Multiple point (m + n)
  • Xm + n is also invariant, so it works well as a formula in projective coordinates.
  • Step 1 7 1 2 Step 1 7 1 3
  • Step 1 7 1 4 Step 1 7 1 6
  • Step 1 7 1 8 Step 1 7 2
  • Step 1 7 2 3 and Step 1 7 24 Requires the computational complexity of multiplication over a finite field.
  • Steps 1706 and 1719 the computational complexity of squaring on a finite field is required.
  • Steps 1 ⁇ 15 the amount of computation of the inverse operation on the finite field is required.
  • the computational complexity of addition and subtraction over a finite field is relatively small compared to the computational complexity of multiplication, squaring and inverse operation over a finite field.
  • the computational complexity of multiplication over a finite field is M
  • the computational complexity of squaring over a finite field is S
  • the computational complexity of the inverse operation over a finite field is I
  • the above procedure reduces the computational complexity of 16M + 2S + I I need. This is much smaller than the computational cost of fast scalar multiplication.
  • the scalar value d is 160 bits
  • the calculation amount of the high-speed scalar multiplication is estimated to be slightly less than 1500M.
  • the computational complexity for coordinate restoration is 57.6M, which is much smaller than the computational complexity for fast scalar multiplication. Therefore, it was shown that the coordinates could be restored efficiently.
  • a processing 8 the point P on the scalar one value d and the Weierstrass-form elliptic curve, X d, Z d, the X d + 1, the processing of the fast scalar multiplication unit for outputting a Z d + 1 Description I do.
  • the point P on the Weierstrass-type elliptic curve input to the scalar one-time calculation unit 103 is input.
  • Output X d +1 and Z d +1 of P (X d +1 , Y d +1 , Z d +1 )
  • Step 8 16 As the given Weierstrass-form elliptic curve
  • the above point P is transformed into a point represented by projective coordinates on the Montgomery-form elliptic curve, and this point is set as a point P.
  • Step 8 0 the initial value 1 is substituted into a variable I.
  • Step 8 0 Calculate the point 2P, which is twice as large as the point P.
  • the point P is expressed as (x, y, 1) in projective coordinates, and the point P is expressed in projective coordinates of the Montgomery-form elliptic curve.
  • Step 803 the point P on the elliptic curve input to the scalar multiplication unit 103 and the point obtained in step 802 2P is stored as a set of points (P, 2P), where point P and point 2P are represented in projective coordinates
  • Step 8104 The variable I and the bit length of the scalar value d Determine whether they match, and if they match, go to step 8 13. If they do not match, go to step 8 0 5. As step 8 0 5, increment the variable I by 1. As step 8 0 6, scalar value Determine whether the value of the I-th bit of the bit is 0 or 1. If the value of the bit is 0, go to step 807.
  • Step 807 Add the point mP and the point (m + 1) P from the set of points (mP, (m + 1) P) represented by the projective coordinates m Perform P + (m + 1) P to calculate the point (2m + l) P. Then go to step 808.
  • the addition mP + (m + l) P is calculated in the projected coordinates of the Montgomery elliptic curve.
  • step 808 the point pair (niP, (m + 1) P) is calculated by doubling 2 (mP) of the point mP from the set of points (niP, (m + 1) P). Calculate 2mP. Then go to step 809.
  • doubling 2 (mP) is calculated using the formula of doubling in the projective coordinates of the Montgomery-form elliptic curve.
  • the point 2raP obtained in step 808 and the point (2m + l) P obtained in step 807 are set as a set of points (2mP, (2m + l) P), and the set of points ( Store instead of mP, (m + l) P). Thereafter, the flow returns to step 804.
  • the point 2mP, the point (2m + 1), the point mP and the point (m + 1) P are all represented in projective coordinates.
  • Step 8 As 10 Calculate point (2m + l) by adding point mP and point (m + 1) P from the set of points (mP, (m + 1) P) represented by projective coordinates, mP + (m + 1) P I do. Then go to step 8 1 1.
  • the addition mP + (m + l) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 81 doubling 2 ((m + l) P) of point (m + l) P is performed from the set of points (mP, (ra + l) P) represented by projective coordinates, and Calculate (2m + 2) P. Then go to step 812.
  • the doubling 2 ((m + l) P) is calculated using the doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 812 the point (2m + l) P obtained in step 810 and the point (2m + 2) P obtained in step 811 are combined into a point set ((2m + l) P, (2m + 2 ) P) is stored instead of the set of points (mP, (m + 1) P). Then, return to step 804.
  • the point (2m + l) P, the point (2m + 2), the point mP, and the point (m + 1) P are all expressed in projected coordinates.
  • m be X d and Z d , respectively, X m + 1 and Z m + from the point (m + 1)
  • P (X m + i, Y m + i, Zm + i) expressed in projective coordinates.
  • 1 is output as X d + 1 and Z d + 1 , respectively.
  • Y m and Y m + 1 are not determined because the addition formula and the doubling formula in the projective coordinates of the Montgomery-type elliptic curve cannot determine the Y coordinate.
  • m and the scalar value d have the same bit length and the same bit pattern.
  • M is the complexity of multiplication over a finite field
  • S is the complexity of square multiplication over a finite field.
  • the computational complexity of the doubling formula in the projected coordinates of the Montgomery-form elliptic curve is 3M + 2S. If the value of the I-th bit of the scalar value is 0, the calculation amount of addition is required in step 807, and the calculation amount of doubling is required in step 808. That is, a calculation amount of 6M + 4S is required.
  • step 810 If the value of the I-th bit of the scalar value is 1, the amount of calculation for addition is required in step 810, and the amount of calculation for doubling is required in step 811. That is, 6 M + 4 S computations are required. In any case, a calculation amount of 6M + 4S is required.
  • Step 804, Step 805, Step 806, Step 807, Step 808, Step 809 or Step 804, Step 805, Step 806, Step Since the number of repetitions of step 810, step 81, and step 812 is (the bit length of the scalar value d) is one, the computational complexity of doubling in step 802 and the Montgomery type in step 816 Taking into account the complexity of the transformation to points on the elliptic curve, the total complexity is (6M + 4 S) (k-1) + 4M + 2 S. Where k is the bit length of the scalar value d. In general, the computational complexity S is estimated to be about S 0.8M, so the overall computational complexity is approximately (9.2 k-3.6) M.
  • the computational complexity of the algorithm in the above procedure is approximately 1468M.
  • the computational complexity per bit of the scalar value d is about 9.2M.
  • the tenth embodiment uses a Weierstrass-form elliptic curve as an input / output elliptic curve, and uses a Montgomery-form elliptic curve that can be converted from a given Weierstrass-form elliptic curve for internal calculations. Things. From the scalar value d and the point P on the Weierstrass-form elliptic curve, the scalar multiplication unit 103 obtains a scalar simplex point whose complete coordinates are given as points of projective coordinates on the Weierstrass-form elliptic curve,
  • the input point P on the Dieselstrass-form elliptic curve is converted to a point on the Montgomery-form ellipse curve that can be converted from the given Weierstrass-form elliptic curve, and the point is newly added.
  • the high-speed scalar multiplication unit 202 gives X d , Z d , X d +1 , Z d +1 , x and y to the coordinate restoration unit 203.
  • Scalar multiplication unit 1 03 outputs the calculation result to scalar haploid point completely coordinates are found given (X d W, Y d W , Z d W) in projective coordinates.
  • the affine coordinates of the input point P on the Montgomery-type elliptic curve are represented by (x, y), and the projective coordinates are represented by YZ.
  • the Afin coordinate of the scalar-multiplied point dP in the Montgomery-form elliptic curve inputted scalar value is d at (x d, y d), respectively representing the projective coordinates (X d, Y d, Z d) in.
  • the affine coordinates of the point (d-1) P on the Montgomery-form elliptic curve are represented by (X D —, y d _), and the projective coordinates are represented by (X d -1; L, Y d —e, Z d —).
  • the affine coordinates of the point (d + l) P on the Montgomery-form elliptic curve are (x d +1 , y d +: L ), and the projective coordinates are (X d + 1 , Y d +1 , Z d +1 ) Respectively.
  • X d Xx is calculated in step 1801 is stored in the register.
  • Z d is calculated - T in scan Tetsupu 1 802.
  • X d x since the register is stored is X d x, hence X d x- Z d is calculated.
  • the result is stored in the register.
  • Z d Xx is calculated in step 1803 is stored in the register T 2.
  • T 2 is calculated - X d at step 1804.
  • Z d x is stored in the register ⁇ 2 , so that X d -xZ d is calculated.
  • the result is stored in the register T 2.
  • Zd + 1 1 ⁇ is calculated.
  • X d x ⁇ Z d is stored in the register ⁇ , and therefore Z d + 1 (X d xZ d ) is calculated.
  • the result is stored in the register T 3.
  • X d + 1 ⁇ 2 Te step 1806 smell is calculated.
  • register ⁇ in 2 X d - xZ d is Ri Contact stored, thus X d + 1 (X d - xZ d) is calculated.
  • the result is stored in the register T 4.
  • step 1807 the square of is calculated.
  • the register X d x - Z d is stored, thus (X d x- Z d) 2 is calculated.
  • the result is stored in register T ⁇ . Square of T 2 is calculated in step 1808.
  • step 1809 T 2 XZ d is calculated.
  • the register T 2 - are stored (X d xZ d) 2, hence Z d..
  • (X d - xZ d) is calculated step the result is stored in the register T 2
  • T 2 XX d + 1 is calculated.
  • the Star T 2 is stored Z d (X d -xZ d) 2 Ca, Ca connexion X d + 1 Z d (X d -xZ d) 2 was is calculated. The result is stored in the register T 2.
  • T 2 XZ d +1 is calculated.
  • X d + 1 here to register T 2 Z d (X d -xZ d) 2 are store, mosquitoes were connexion Z d + 1 X d + 1 Z d (X d - xZ d) 2 force S is calculated. The result is stored in register T2.
  • T 2 Xy is calculated.
  • register 2 stores ⁇ (1 + 1 ( ((1 + 1 2 (1 (X d -xZ d ) 2 ), so that yZ d + 1 X d + 1 Z d (X d- xZ d ) 2 is calculated, and the result is stored in the register T 2.
  • T 2 XB is calculated in step 18 13 where yZ d + 1 X d + 1 Z d is stored in the register T 2 .
  • (X d -xZ d) are 2 power S rated the yarn, the force I ByZ d + 1 X d + 1 Z d.
  • step 1814 T 2 XX d is calculated, where the register T 2 contains ByZ d +1 Xd + lZ d (X d — xZ d ) 2 force S ByZ d + 1 X d + 1 Z d (X d — xZ d ) 2 X d is calculated, and the result is stored in the register T 5.
  • Step 1 8 1 5 calculates T 2 XZ d
  • the register T 2 contains the ByZ d + 1 X d + 1 Z d (X d — xZ d ) force S in the register T, and the obtained force S is ByZ d + 1 X d + 1 Z d. .. - is (X d xZ d) Z d force S calculation result is T 2 Xs in step 181 6 stored in the register T 2 is calculated here under register 2 Is stored as 82 (1 + 1 (1+ 1 2 (1 (1 — 2 (1 ) 2 Z d ), and the force S is S ByZ d +1 X d + (X d -x Z d ) 2 is Z d mosquito calculation.
  • step 1 8 1 ⁇ XZ d W in 7 Ru is calculated. here sByZ to Z d W d + 1 X d + 1 Z d (X d — xZ d ) 2 Z d The force S is contained within the thread, and asByZ d + 1 X d + 1 Z d (X d -xZ d ) 2 Z d is calculated. It is stored in the register T 2. In step 1818, ⁇ 2 + ⁇ 5 is calculated.
  • Ti XT 3 is calculated.
  • the register ⁇ Z d + 1 (X d xZ d) + X d + i (X d - xZ d) ⁇ (X d xZ d) the 2 register T 3 Z d + 1 (X d x_Z d ) — X d + 1 (X d -xZ d ) and therefore ⁇ Z d + 1 (X d xZ d ) + X d + 1 (X d -xZ d ) ⁇ ⁇ Z d + 1 (X d xZ d) -X d + 1 (X d -xZ d) ⁇ (X d xZ d) 2 is calculated.
  • Y d W has ⁇ Z d + 1 (X d xZ d ) + X d + 1 (X d -xZ d ) ⁇ ⁇ Z d + 1 (X d xZ d ) -X d + 1 (X d -xZ d) ⁇ is (X d x- Z d) 2 is stored.
  • step 1818 ByZ d + 1 X d + 1 Z d (X d -xZ d ) 2 X d + asByZ d + 1 X d + 1 Z d (X d -xZ d ) 2 Z d Since the renewal power S is not performed after that, its value is held.
  • X d W sByZ d + 1 X d + 1 Z d (X d -xZ d) 2 Z d is stored Te Contact Rere Step 1 8 1 6, since then update is not performed, the value is held Have been.
  • the Weierstrass-form elliptic curve in our Keru projective coordinates (X d W, Y d W , Z d W) is the value of are recovered.
  • Equations 11 and 12 are the addition formulas of the Montgomery-type elliptic curve in projective coordinates.
  • X m and Z m is n times the Montgomery-form elliptic curve on the point X coordinate ⁇ Pi Z coordinates in the projective coordinates of m times point mP of P
  • X n and Z n are the point P on the Montgomery-form elliptic curve X in projective coordinates of point nP Coordinate ⁇ Pi Z coordinates
  • X mn and Z m _ n is X and Z coordinates in the Montgomery-form elliptic curve on the point P (mn) times points (mn) projective coordinates of P
  • X m + n and Z m + n is the X coordinate and Z coordinate in the projected coordinates of (m + n) P
  • mn is a positive integer satisfying m> n .
  • Step 181 The above procedure consists of Step 181, Step 1803, Step 1805, Step 1806, Step 1 809, Step 1810, Step 1811, Step 1812, Step 1813, Step 1814, Step 1815, Step 1816, Step 1817, steps 1821 and 1822 require computational complexity of multiplication over a finite field. Also, in Steps 1807 and 1808, the amount of calculation of squaring on a finite field is required. The computational complexity of addition and subtraction over a finite field is relatively small compared to the computational complexity of multiplication and squaring over a finite field, and may be ignored. If the computational complexity of multiplication over a finite field is M and the computational complexity of squaring over a finite field is S, the above procedure requires 15 M + 2S computational complexity.
  • the high-speed scalar multiplication method of the ninth embodiment is used. This gives the scalar values d and From a point p on the Weierstrass-form elliptic curve, x d, as z d, X d + 1, Z d + 1 you output algorithms, a fast algorithm is achieved.
  • X d , Z d , X d + 1 , and Z d + 1 are obtained from the scalar value d and the point P on the Weierstrass-form elliptic curve.
  • Other algorithms may be used as long as they are output algorithms and are fast.
  • the calculation amount required for the coordinate restoration of the coordinate restoration unit 203 in the scalar multiplication unit 103 is 15M + 2S, which is the calculation amount required for the high-speed scalar multiplication unit 202 of the high-speed scalar multiplication unit (9. 2 k—3.6) Much smaller than M.
  • the scalar multiplication point is output as Jacobian coordinates using the scalar multiplication method using the mixed coordinate system centered on the Jacobian coordinates using the window method.
  • the required calculation amount is approximately 1600M, and the required calculation amount has been reduced.
  • a Weierstrass-form elliptic curve is used as an input / output elliptic curve, and a Montgomery-form elliptic curve that can be converted from a given Weierstrass-form elliptic curve for internal calculation is used. It is.
  • Scalar multiplication unit 103 Force Scalar One-point d and scalar multiplication point where complete coordinates are given as points of affine coordinates in Weiersh-truss elliptic curve from point P on Weiersh-truss elliptic curve
  • Fast scalar multiplication unit 202, X d, Z d, X d + 1, Z d + 1, X d - give ⁇ ⁇ _ !, x ⁇ Pi y coordinate recovering unit 203.
  • Scalar multiplication unit 1 03 outputs Wye Erushutorasu form elliptic curve scalar fully coordinate given in Afin coordinates on-multiplied point (x d, y d) as calculation result.
  • the processing of the coordinate restoration unit will be described.
  • P ( X d + 1, Y d + 1, Z d + 1)
  • P (X d — on a Montgomery-form elliptic curve
  • Yd - l, Z d - 1 X d of the coordinates) - 1 and Z d - expressed in scalar multiplication unit 1 03 is input to the Montgomery-form P of Afin coordinate point on an elliptic curve (x, y) And output the scalar multiple (x d , y d ) given the perfect coordinates in the affine coordinates on the Weierstrass-form elliptic curve by the following procedure.
  • the affine coordinates of the input point P on the Montgomery-type elliptic curve are represented by (X, y), and the projective coordinates are represented by (Xi, Yi, Zi).
  • step 1 901 ⁇ (1 + 1 is calculated and stored in the register.
  • step 1 902 Z d — 1 XXd + i is calculated and stored in the register T 2 . Will be delivered.
  • T 2 is calculated - I ⁇ in step 1 903.
  • register d stores X d — + Z d + power
  • register Z 2 stores Z d _ X d +, and therefore X d- iZd +-Z d1 is calculated.
  • the result is stored in the register.
  • step 1 904 Z d XX is calculated and stored in the register T 2.
  • X d _T 2 is calculated monkey in step 1 905.
  • register Ding xD-Zd + i-in Z d one registers T 2 - is stored (X d xZ d) 2, respectively, Shidagatsute (X d - xZ d) 2 (x d _ 1 z d + 1 -z d _ 1 x d + 1 ) is calculated. The result is stored in the register Tj. In step 1908, 4BXy is calculated. The result is stored in the register T 2. T 2 XZ d + 1 is calculated in step 1 909. Here, 4By is stored in the register 2 and 4ByZ d + 1 is calculated. The result is stored in the register T 2. In step 1901, T 2 XZ d — is calculated.
  • the 4ByZ d- iZa + i ⁇ d force is included in the thread, and the force S is calculated by 4ByZ d — 1 Z d + iZaZd force S.
  • the result is stored in the register T 2.
  • T 2 Xs is calculated.
  • the register T 2 4ByZ d - are stored iZ d + 1 Z d Z d , thus AsByZd- iZa + ZdZd is calculated.
  • the result is stored in the register T 2.
  • Inverse of register T 2 is calculated in step 1915.
  • (4sByZ d- iZd + iZaZd) force is in the S thread, and is (4ByZ d- e Z d + e Z d X d ) / (4sByZ d _ 1 Z d +1 Z d Z d ) + It is calculated. The result is stored in register xd .
  • Register Ti XT 2 is calculated in step 1 9 1 8.
  • (X d -xZ d ) "(X d — Z d1 is stored in the register T 2 as l / 4sByZ d — iZa + iZdZd force S in the register thread.
  • y d ( ⁇ Z M -Z ⁇ X d + l ) (X d -Z d x) 2 l4sByZ d _ x Z M Z d 2 ... number 5 4
  • Step 1 901, Step 1 902, Step 1 904, Step 1 907, Step 1 908, Step 1 909, Step 1 910, Step 1 911, Step 1912, Step 1913, Step 1914, Step 1916 and Step 1918 require the computational complexity of multiplication over a finite field.
  • Step 1906 the amount of computation for squaring on a finite field is required.
  • Step 1914 the amount of calculation of the inverse operation on the finite field is required.
  • the computational complexity of addition and subtraction over a finite field is relatively small compared to the computational complexity of multiplication, squaring, and the inverse and operation of a finite field, and may be ignored.
  • the computational complexity of multiplication over a finite field is M
  • the computational complexity of squaring over a finite field is S
  • the computational complexity of the inverse operation over a finite field is I
  • the above procedure will calculate 13 M + S + I Need quantity. This is much smaller than the computational cost of fast scalar multiplication.
  • the scalar value d is 160 bits
  • the calculation amount of the high-speed scalar multiplication is estimated to be slightly less than 1500M.
  • the computational complexity of coordinate restoration is 53.8M, much smaller than the computational complexity of high-speed scalar one-time computation. Therefore, it was shown that the coordinates could be efficiently restored.
  • step 1001 the initial value 1 is substituted for the variable I.
  • step 1002 the double point 2P of point P is calculated. P is expressed as (x, y, l) in projective coordinates, and the double point 2P is calculated using the formula of doubling in the projective coordinates of the Montgomery-type elliptic curve.
  • the obtained point P on the elliptic curve and the point 2P obtained in step 1002 are stored as a set of points (P, 2P), where the points P and 2P are represented by projective coordinates. It is determined whether or not the variable I and the bit length of the scalar value d match, and if they do match, it becomes step m 2 d and goes to 1014. If they do not match, goes to step 1005. As step 1005, the variable I In step 1006, it is determined whether the value of the I-th bit of the scalar value is 0 or 1. If the value of the bit is 0, go to step 1007. If the value of is 1, go to step 1010.
  • step 1007 the point mP and the point (m + 1) P are added mP + (m + 1) P from the set of points (mP, (m + 1) P) represented by the projective coordinates, and the point (2m + l) Calculate P. Then go to step 1008.
  • the addition mP + (m + 1) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • Step 1008 Double the point mP from the set of points (mP, ( m + 1) P) represented by projective coordinates Calculation 2 (mP) is performed to calculate point 2mP. Then go to step 1009.
  • doubling 2 (mP) is calculated using the formula of doubling in the projective coordinates of the Montgomery-type elliptic curve.
  • step 1009 the point 2mP obtained in step 1008 and the point (2m + 1) P obtained in step 1007 are set as a set of points (2mP, (2m + 1) P), and a set of points (mP, (m + l) Store instead of P). Thereafter, the flow returns to step 1004.
  • the point 2mP, the point (2m + l) P, the point mP, and the point (m + 1) P are all represented in projective coordinates.
  • step 1010 the addition 1 ⁇ + (111 + 1)? Of the point mP and the point (111 + 1)?
  • step 1011 Is performed from the set of points (mP, (m + 1) P) represented by the projective coordinates. Calculate the point (2m + l) P. Then go to step 1011.
  • the addition mP + (m + l) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 101 doubling 2 ((111 + 1)?) Of the point (111 + 1)? Is performed from the set of points (mP, (111 + 1)?) Represented by the projective coordinates, Calculate the point (2m + 2) P. Then go to step 101.
  • the doubling 2 ((m + 1) P) is calculated using the doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 1012 the point (2m + l) P obtained in step 1010 and the point (2m + 2) P obtained in step 1011 are combined into a set of points ((2m + l) P, (2m + 2) (P) is stored instead of the set of points (mP, (m + l) P). Then, the process returns to step 1004.
  • the point (2m + l) P, the point (2m + 2) P, the point mP and the point (m + l) P are all represented in the projective coordinates ⁇ .
  • Step 1014 the set of points represented by the projective coordinates (mP, (111+ 1) P ) from the point (m - 1) X-coordinate in the projective coordinates of P X m - 1 and the Z-coordinate Z m -! And X d — 1 and ⁇ ⁇ ⁇ ⁇ respectively. Then go to step 1013.
  • Y m and Y m + 1 are not determined because the addition formula and the doubling formula in the projective coordinates of the Montgomery-type elliptic curve cannot determine the Y coordinate.
  • m and the scalar value d have the same bit length and the same bit pattern, so they are equal.
  • step 1014 when (m-1) P is obtained in step 1014, the value of ((ml) / 2) P may be calculated in step 1 if m is an odd number. 01 of 2 It may be held separately at each stage, and (m-1) P may be calculated from the value by using the formula twice the Montgomery-form elliptic curve.
  • the computational amount of the addition formula in the projective coordinates of the Montgomery-type elliptic curve is 3M + 2S by taking Zi-l.
  • M is the complexity of multiplication over a finite field
  • S is the complexity of square multiplication over a finite field.
  • the computational complexity of the doubling formula in the projective coordinates of the Montgomery-form elliptic curve is 3M + 2S. If the value of the .I-th bit of the scalar value is 0, the calculation amount of addition in step 1007 and the calculation amount of doubling in step 1008 are required. That is, a calculation amount of 6M + 4S is required.
  • Step 1004 the computational complexity of addition in step 1010 and the computational complexity of doubling in step 1011 are required. In other words, a calculation amount of 6M + 4S is required. In any case, a calculation amount of 6M + 4S is required.
  • the number of repetitions of Step 1004, Step 1005, Step 1006, Step 1007, Step 1008, Step 1009 to Step 1004, Step 1005, Step 1006, Step 1010, Step 1011, and Step 1012 is expressed by (scalar value d Since the number of calculations is one, taking into account the computational complexity of doubling in step 1002 and the computational complexity of (m-1) P in step 1014, the overall computation
  • the quantity is (6M + 4 S) k + M.
  • k is the bit length of the scalar value d.
  • the computational complexity of the algorithm in the above procedure is approximately 1475M.
  • the computational complexity per bit of the scalar value d is about 9.2M.
  • a Weierstrass-form elliptic curve is a scalar one-time calculation using a mixed coordinate system centered on the Jacobian coordinate using the window method.
  • the method is described as a fast scalar multiplication method.
  • the calculation amount per bit of the scalar value is estimated to be approximately 10M.
  • the calculation amount of this scalar multiplication method is about 1600M. Become. Therefore, it can be said that the algorithm of the above procedure has a smaller amount of calculation and is faster. Note that, even if the algorithm of the above procedure is not used in the high-speed scalar multiplication unit 202, X d , Y d ,
  • the calculation amount required for this scalar multiplication is approximately 1529M.
  • the amount of calculation required is approximately 1640 M, and the required amount of calculation is reduced.
  • the twelfth embodiment uses a Weierstrass-form elliptic curve as an input / output elliptic curve, and uses a Montgomery-form elliptic curve that can be converted from a given Weierstrass-form elliptic curve for internal calculations.
  • the scalar multiplication unit 103 calculates scalar values d and
  • the information along with the point P (x, y) is given to the coordinate restoration unit 203.
  • scalar multiplication unit 103 scalar multiplication point given fully coordinate in the coordinate projective coordinates on Waierushu truss elliptic curve (X d W, Y d w , z d w) a Output as calculation result.
  • the point P on the Weierstrass-form elliptic curve input to I 03 was represented by projective coordinates ( X, y), and scalar multiples (X d W , Y d W , Z d W ) given complete coordinates in projective coordinates on the Weierstrass-form elliptic curve are calculated in the following procedure.
  • Output The affine coordinates of the input point P on the Montgomery-type elliptic curve are represented by (x, y), and the projective coordinates are represented by (X, Yi, Z).
  • the input scalar value is d
  • the affine coordinates of the stylus single point dP in the Montgomery-form elliptic curve are represented by (X d , y d ) and the projective coordinates are represented by (X d , Y d , Z d ).
  • the affine coordinates of the point (d-I) P on the Montgomery-form elliptic curve are represented by (x d — i, y d -1), and the projective coordinates are represented by (X d — ⁇ Yd—).
  • the affine coordinates of the point (d + l) P are ( xd + i, yd + i), and the projected coordinates are (Xd + ⁇ Ya + iL,
  • step 2001 XZ d + 1 is calculated and stored in a register.
  • step 2002 Z d - 1 XX d + i is calculated and store in register T 2.
  • step 2003 T ⁇ —Ts is calculated.
  • Register Holds X d — and register T 2 holds z d ⁇ 1 1 X d +1 , so X d — Z d ⁇ 1 iXd + i is calculated.
  • the result is stored in the register.
  • Step 2 0 04 Z d Xx is calculated and stored in the register T 2.
  • T 2 is calculated monkey - X d in Step 2 0 0 5.
  • Z d x is stored in the register ⁇ 2 , so that X d -xZ d is calculated.
  • iXd + Ka 4BXy is calculated so that in force Y d W to Ru is in Kakuito step 2 0 0 8.. The result is stored in register T 2.
  • T 2 XZ d +1 is calculated in step 2 009.
  • 4By is stored in register T 2 and therefore 4ByZ d +1 is calculated.
  • the result is stored in the register T 2.
  • T 2 XZ d — is calculated, where 4ByZ d +1 is stored in the register T 2 and therefore 4ByZ d + 1 Z d — is calculated and the result is stored in register T 2.
  • T 2 XZ d is calculated in step 2 0 1 1 where 4yZ d + 1 is stored in register T 2 Z d ⁇ is stored, thus 4ByZ d + 1 Z d -. .. Is calculated the result is stored in the register T 2 Step 2 0 1 2 T 2 XX d is Ru calculated in this case register In T 2 , 4ByZ d + 1 Z d — is stored, so 4ByZ d + 1 Z d- iZdXd is calculated, and the result is stored in the register T. In step 2 0 1 3, T 2 XZ d is calculated, where register T 2 contains
  • register Z d is stored 4sByZ d + 1 Z d one iZdZd force, thus 4 aS ByZ d + 1 Z d — ZdZd force S is calculated.
  • the result is stored in the register T 2.
  • T ⁇ + T 2 is calculated.
  • register 1 ⁇ has 4ByZ d + 1 Z d- 1 iZdXd power and register ⁇ 2 has 4 sByZ d + 1 Z d- 1 iZdZd power and L; ⁇ T4ByZ d + 1 Z d - 1 Z d X d + 4asByZ d + 1 Z d _ 1 Z d Z d;.. ⁇ fl " is calculated and the result is stored in the register X d W
  • the register X d W 4ByZ d + 1 Z d- 1 sByZ d + 1 Z d- 1 iZaZd
  • the above procedure calculates the multiplication over a finite field in Step 2001, Step 2002, Step 2004, Step 2007, Step 2008, Step 2009, Step 2010, Step 2011, Step 2012, Step 2013, Step 2014 and Step 2015. Need quantity.
  • step 2006 the computational complexity of squaring over a finite field is required.
  • the computational complexity of addition and subtraction over a finite field is relatively small compared to the computational complexity of multiplication and squaring over a finite field and can be ignored. If the computational complexity of multiplication over a finite field is M and the computational complexity of squaring over a finite field is S, the above procedure requires 12 M + S. This is much smaller than the fast scalar one-time computation.
  • the calculation amount of the high-speed scalar multiplication is estimated to be about 1500M or less.
  • S 0.8M
  • the computational complexity of coordinate restoration is 12.8M, which is much smaller than the computational complexity of fast scalar multiplication. Therefore, it was shown that the coordinates could be efficiently restored.
  • the high-speed scalar multiplication calculation method of the high-speed scalar multiplication unit 202 of the twelfth embodiment is used.
  • the high-speed scalar multiplication calculation method of the eleventh embodiment is used.
  • the algorithm that outputs d ⁇ _ 1? Zd— is a fast algorithm. Note that, even if the algorithm of the above procedure is not used in the fast scalar multiplication unit 202, x d , Z d , X d +1 , Z d +1 , Xd- Zd- i An algorithm that outputs Zd-i may be used as long as it is fast and fast.
  • the scalar multiple point is output as the Jacobian coordinate using the scalar multiplication method using the mixed coordinate system centered on the Jacobian coordinate using the window method.
  • the required calculation amount is approximately 1600M, and the required calculation amount has been reduced.
  • a Weierstrass-form elliptic curve is used as an input / output elliptic curve, and a Montgomery-form elliptic curve that can be converted from a given Weierstrass-form elliptic curve is used for internal calculations. Things.
  • the scalar multiplication unit 103 calculates a scalar multiplication point whose complete coordinates are given as points of the affine coordinates in the Weierstrass-form elliptic curve from the scalar value d and the point P on the Weierstrass-form elliptic curve. (x ⁇ i W , yd W ) is calculated and output.
  • P (X d +, y d + ⁇ ) on the Montgomery-type elliptic curve represented by the affine coordinates d + i, a point on the Montgomery-type elliptic curve represented by Affine coordinates ( d —; L) P ⁇ (Xd-Ud—
  • the information along with the point P (x, y) on the Montgomery-type
  • step 210 x d — x is calculated and stored in register T ⁇ .
  • step 2 102 the square of T, that is, (x d — X) 2 is calculated and stored in the register.
  • Step 2 1 03 x d - i- Xd + is calculated and stored in the register T 2.
  • Kaitau 2 is calculated in step 2 1 04 '.
  • the register ⁇ stores (X d —X) 2
  • the register T 2 stores X d ⁇ X d ⁇ . Therefore, (x d —x) 2 (x d — x d + 1 ) is calculated. as a result Is stored in the register T.
  • Step 2 1 0 5 4BXy is calculated and stored in the register T 2.
  • Step 2 1 0 In 6 T 2 of inverse are calculated.
  • 4By is stored in register # 2
  • l / 4By is calculated accordingly.
  • the result is stored in the register T 2.
  • T ⁇ XT 2 force S is calculated.
  • the register (x d -x) 2 (x d - x d + 1) is the register T 2 is stored l / 4BY respectively, thus (x d -X) 2 (x d _ 1 -x d + 1 ) / 4By is calculated.
  • the result is stored in the register.
  • Xs- 1 is calculated. Where the register contains (x d — x) 2
  • x d + 1 ) / 4sBy is calculated.
  • the result is stored in register y d W.
  • a value given s Ha et beforehand thus pre-calculate s one 1.
  • X d Xs one 1 is calculated in step 2 1 0 9.
  • the result is stored in register 1 ⁇ .
  • 1 ⁇ + is calculated.
  • s— is stored in the register, so s— + is calculated.
  • the result is stored in the register x d W.
  • register x d in W s one "1" x d + a is stored.
  • the register y d W is set to (x d — X) 2 ( ⁇ ⁇ _!
  • step 2102 the computational complexity of squaring over a finite field is required.
  • step 2106 the amount of calculation of the inverse operation on the finite field is required.
  • the computational complexity of addition and subtraction over a finite field is relatively small compared to the computational complexity of multiplication, squaring, and inverse operation over a finite field and can be ignored.
  • the point P on the Weierstrass-form elliptic curve input to the scalar multiplication unit 103 is input, and the scalar single point expressed by the affine coordinates in the Montgomery-form elliptic curve is obtained by the following procedure.
  • dP (x d , y d ) 53 ⁇ 4x d
  • the point (d + 1) on the Montgomery-form elliptic curve expressed in alpha coordinates P (x d + 1 , y d + 1 ) x d + i .
  • a point on the Montgomery-form elliptic curve in daffine coordinates (d-1) P is
  • step 240 the initial value 1 is assigned to the variable I.
  • Step 2402 the point 2P is calculated twice as much as the point P.
  • the point P is expressed as (X, y, l) in projective coordinates, and the double point 2P is calculated using the doubling formula in the projective coordinates of the Montgomery-type elliptic curve.
  • step 2403 the point P on the elliptic curve input to the scalar multiplication unit 103 and the point 2P obtained in step 2402 are stored as a pair of points (P, 2P).
  • the points P and 2P are represented by projective coordinates.
  • step 2404 it is determined whether or not the variable I matches the bit length of the scalar value d. If not, go to step 2405.
  • step 2405 the variable I is incremented by one.
  • step 2406 it is determined whether the value of the I-th bit of the scalar value is 0 or 1. If the value of that bit is 0, go to step 2407. If the value of that bit is 1, go to step 2410.
  • step 2407 the points mP and (m + l) P are added mP + (m + l) P from the set of points (mP, (m + l) P) represented by the projective coordinates, and the point (2m + l) Calculate P. Then go to step 2408.
  • the addition mP + (m + l) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 2408 doubling 2 (mP) of the point mP is performed from the set of points (mP, (m + 1) P) represented by the projective coordinates to calculate the point 2mP. Then go to step 2409.
  • the doubling 2 (mP) is calculated using a doubling formula in the projective coordinates of a Montgomery-type elliptic curve.
  • step 2409 the point 2mP obtained in step 2408 and the point (2m + 1) P obtained in step 2407 are set as a set of points (2mP, (2m + 1) P), and a set of points (mP, (m + 1) P Stored instead of). Thereafter, the flow returns to step 2404.
  • the point 2mP, the point (2m + l) P, the point mP and the point (m + l) P are all represented in projective coordinates.
  • step 2410 the point mP and the point (ra + 1) P are added mP + (ra + 1) P from the set of points (mP, (ra + 1) P) represented by the projective coordinates, and the point (2m + l) Calculate P. Then go to step 24 1 1.
  • the addition mP + (m + l) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • Step 241 As a point 1, the point set (mP, (m + l) P), the point (m + l) P is doubled 2 ((m + l) P), and the point Calculate (2m + 2) P.
  • step 2412 the doubling 2 ((m + 1) P) is calculated using the doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • the point (2ra + l) P obtained in step 2410 and the point (2m + 2) P obtained in step 2411 are a set of points ((2m + 1) P, (2m + 2) P). Is stored in place of the set of points (mP, (m + 1) P. Then, the process returns to step 2404.
  • Step 2414 projecting the point (m_l) P from the set of points (mP, (m + l) P) represented by the projective coordinates
  • the X coordinate X m — i and the Z coordinate of the coordinates are obtained, and they are respectively X d — and Z d ⁇ 1.
  • step 2 413 x d — x d , x d + 1 is output.
  • m and the scalar value d have the same bit length and the same bit pattern, so they are equal.
  • (ml) P is obtained in step 2414, it may be obtained by the formula of equations 13 and 14, or if m is an odd number, the value of (On-1) / 2) P is calculated in step 2412. It is also possible to obtain (m-1) P from the value by using the formula of doubling of the Montgomery-type elliptic curve.
  • the calculation amount of the addition formula in the projective coordinates of the Montgomery-form elliptic curve is 3M + 2S by taking ⁇ - ⁇ .
  • M is the complexity of multiplication over a finite field
  • S is the complexity of multiplication over a finite field.
  • the computational complexity of the doubling formula in the projective coordinates of the Montgomery-form elliptic curve is 3M + 2S. If the value of the I-th bit of the scalar value is 0, the calculation amount of addition in step 2407 and the calculation amount of doubling in step 2408 are required. That is, a calculation amount of 6M + 4S is required.
  • the computational complexity of addition in step 2410 and the computational complexity of doubling in step 2411 are required.
  • I.e. 6M + 4 S Requires computational complexity. In each case, the computational complexity of 6 M + 4 S is required.
  • the calculation amount of the algorithm in the above procedure is approximately 1523M.
  • the computational cost per bit of the scalar value d is about 9.2M.
  • the scalar value d and the point P on the Weierstrass-form elliptic curve, x d _ 1; x d, the x d + 1 output Other algorithms may be used as long as the algorithm is fast and fast.
  • a scalar multiplication unit 103 calculates a scalar multiplication point in which complete coordinates are given as points of affine coordinates in a Montgomery-type elliptic curve from a scalar value d and a point P on the Montgomery-type elliptic curve. (X d , yd) is calculated and output. You. When the scalar value d and the point P on the Montgomery-type elliptic curve are input to the scalar multiplication unit 103, the high-speed scalar multiplication unit 202 receives them.
  • the scalar multiplication unit 103 scalar-multiplied point given fully coordinate in Afin coordinate (x d, y d) To output as the calculation result.
  • the affine coordinates of the point P on the Montgomery-type elliptic curve input here are represented by (x, y), and the projective coordinates are represented by (XY ⁇ Zi).
  • the value of d is expressed as (X d , y d ) and the projected coordinates of the power point dP in the Montgomery elliptic curve are expressed as (X d , y d ) and the projected coordinates are expressed as (X d , Y d , Z d ).
  • the Afin coordinates of P d + 1, yd + 1 respectively representing the projective coordinates (X d + 1, Y d + i, Zd + 1) in.
  • step 3401 xXZ d is calculated and stored in the register T.
  • step 3402 is calculated.
  • xZ d is stored in the register, so xZ d + X d is calculated.
  • the result is stored in the register T 2.
  • step 3403 X d -c is calculated, where the register Contains xZ d , so xZ d -X d is calculated.
  • the result is stored in the register T 3.
  • the square of the register T 3 is calculated in step 3404.
  • the register T 3 xZ d - are stored X d, thus (X d - xZ d) 2 is calculated.
  • the result is stored in the register T 3.
  • step 3405 T 3 XX d + 1 is calculated.
  • (X d -xZ d ) 2 is stored in the register T 3 , and therefore X d + 1 (X d -xZ d ) 2 is calculated.
  • the result is stored in the register T 3.
  • 2AXZ d is calculated and stored in the register.
  • Ts + Ti is calculated.
  • xZ d + X d in register T 2 is the register T ⁇ and 2AZ d are stored respectively, Therefore xZ d + X d + 2AZ d is calculated.
  • the result is stored in the register T 2.
  • XXX d is calculated in the scan Tetsupu 3408 is stored in the register T 4.
  • T 4 + Z d is calculated.
  • step 3410 ⁇ 2 ⁇ 4 is calculated.
  • the xZ d + X d + 2AZ d registers T 4 in the register T 2 is stored xX d + Z d are each, thus (xZ d + X d + 2AZ d) (xX d + Z d ) Is calculated.
  • the result is stored in the register T 2.
  • T XZ d is calculated.
  • Register here! ⁇ Stores 2AZ d , so 2AZ d 2 is calculated.
  • the result is stored in register T. 1 ⁇ is calculated - T 2 in step 3412.
  • register T 2 is stored (xZ d + X d + 2AZ d) (xX d + Z d) is 2AZ d here to register T, respectively, thus (xZ d + X d + 2AZ d ) (xX d + Z d )-2 ⁇ ⁇ ⁇ is calculated.
  • the result is stored in register # 2 .
  • T 2 XZ d + 1 is calculated.
  • step 3417 T XZ d +1 is calculated.
  • 2ByZ d is stored in the register, and therefore 2ByZ d Z d + 1 is calculated.
  • the result is stored in register 1 ⁇ .
  • step 3418 XZ d is calculated.
  • it is stored 2ByZ d Z d + i in the register, thus 2ByZ d Z d + 1 Z d is calculated.
  • the result is stored in the register T 3.
  • step 3419 the inverse of register # 3 is calculated.
  • step 3420 T 2 XT 3 is calculated.
  • register ⁇ 2 has Z d + 1 ((xZ d + X d + 2AZ d ) (xX d + Z d )-2AZ d ") -X d + 1 (X d -xZ d ) 2 in register T 3 has l / 2ByZ d Z d + 1 Z d in each case, so that (Z d + 1 ((xZ d + X d + 2AZ d ) (xX d + Z d ) -2AZ d 2 ) -X d + ⁇ (X d -xZ d ) 2 ⁇ / 2ByZ d Z d + 1 Z d is calculated The result is stored in the register y d In step 3421, XX d is calculated.
  • y d ⁇ (x d x + l) (x d + x + 2A) -2A- (x d -x) 2 x d + 1 ⁇ / (2By) ... number 64
  • y d ⁇ Z d + 1 ((X d x + Z d ) (X d + xZ d + 2AZ d ) -2Azi)-(X d -xZ d ) 2 X d + 1 ⁇ / (2ByZ d Z d + 1 Z d )
  • X d (2ByZ d Z d + 1 X d ) / (2ByZ d Z d + 1 Z d )... number 66
  • the above procedure consists of step 3401, step 3405, step 3406, step 3408, step 3410, step 341, step 341 3, step 3415, step 3416, step 3417, step 3418, step 3420, step 3421, and step 3422.
  • Step 3404 the computational complexity of the square operation on the finite field is required.
  • step 3419 the amount of calculation of the inverse operation on the finite field is required.
  • the computational complexity of addition and subtraction over a finite field is relatively small compared to the computational complexity of multiplication, squaring, and the inverse operation, so they can be ignored.
  • the fast scalar multiplication method of the high-speed scalar multiplication unit 202 of the fourteenth embodiment the fast scalar multiplication method of the first embodiment is used.
  • a fast algorithm is achieved from the point P on the scalar value d ⁇ Pi Montgomery-form elliptic curve, x d, Z d, a Arugo rhythm for outputting X d + 1, Z d + ] L.
  • the high-speed scalar multiplication unit 202 outputs X d , Z d , X d + 1 , and Z d + i from the scalar value d and the point P on the Montgomery-type elliptic curve without using the above algorithm.
  • Other algorithms may be used as long as the algorithm is fast.
  • the scalar multiplication unit 103 calculates the scalar multiplication (X d , Y d , Z d ).
  • the high-speed scalar multiplication unit 202 receives them.
  • the scalar multiplication unit 103 restores the coordinates X d , Y d and Z d of the scalar multiplication point (X d , Y d , Z d ) is output as the calculation result.
  • the affine coordinates of the input point P on the Montgomery-type elliptic curve are represented by (X, y), and the projected coordinates are represented by (, Y, Zi).
  • the input scalar value is d
  • the affine coordinates of the stylus single point dP in the Montgomery-form elliptic curve are represented by (X d , y d ) and the projective coordinates are represented by (X d , Y d , Z d ).
  • the Montgomery-type elliptic curve on the point (d + l) Afin coordinates P in (x d + 1, y d + 1), respectively representing the projective coordinates (X d + i, Y d + i, Z d + i) with .
  • step 3501 xXZ d is calculated and stored in the register.
  • step 3502 X d + T 2 is calculated.
  • xZ d is stored in the register T2, and therefore xZ d + X d is calculated.
  • the result is stored in register T2.
  • step 3503 X d -T 1 is calculated, where xZ d is stored in the register, and thus xZ d -X d is calculated.
  • the result is stored in the register T 3.
  • step 3504 the square of register ⁇ 3 is calculated. Is calculated.
  • the register T 3 xZ d - are stored X d, thus (X d - xZ d) 2 is calculated.
  • the result is stored in the register T 3.
  • step 3505 T 3 XX d + 1 is calculated.
  • the register T 3 (X d - xZ d ) 2 is stored, thus X d + ⁇ (X d - xZ d) is calculated.
  • the result is stored in the register T 3.
  • 2AXZ d is calculated and stored in the register T.
  • step 3 507 T 2 + 1 ⁇ is calculated.
  • xZ d + X d is stored in the register T 2 and 2AZ d is stored in the register T i, so that xZ d + X d + 2AZ d is calculated.
  • the result is stored in the register T 2.
  • XXX d is calculated in the scan Tetsupu 3508 is stored in the register T 4.
  • step 3509 T 4 + Z d is calculated.
  • the register T 4 are stored xX d, thus xX d + Z d is calculated.
  • the result is stored in the register T 4.
  • step 3510 ⁇ 2 ⁇ 4 is calculated.
  • xZ d + X d + 2AZ d is stored in register ⁇ 2
  • ⁇ d + Z d is stored in register T 4 , so that (xZ d + X d + 2AZ d ) (xX d + Z d ) Is calculated.
  • the result is stored in the register T 2.
  • step 3511 T XZ d is calculated.
  • the result is stored in the register.
  • step 3512 T 2 -is calculated.
  • the register T 2 is stored (xZ d + X d + 2AZ d) (xX d + Z d) is 2AZ d 2 in the register T 1 is here respectively, thus (xZ d + X d + 2AZ d ) (xX d + Z d )-2AZ d 2 is calculated.
  • the result is stored in the register T 2.
  • T 2 XZ d + 1 is calculated in step 351 3.
  • register T 2 has Z d + 1 ((xZ d + X d + 2AZ d ) (xX d + Z d ) — 2AZ d 2 )
  • register T 3 has X d + 1 (X d — xZ d )
  • Z d +1 ((xZ d + X d + 2AZ d ) (xX d + Z d ) -2AZ d 2 ) -X d +1 (X d- xZ d ) 2 is calculated.
  • the result is stored in the register Y d.
  • step 3515 2BXy is calculated and stored in the register T.
  • 1 XZ d is calculated.
  • register T has 2By Is stored, so 2ByZ d is calculated.
  • the result is stored in the register.
  • XZ d + 1 is calculated.
  • 2ByZ d is stored in the register T
  • 2ByZ d Z d + force S is calculated.
  • the result is stored in register T.
  • XX d is calculated.
  • it is stored 2ByZ d Z d + 1 in the register, thus being 2ByZ d Z d + 1 X d month calculation.
  • the result is stored in register Xd .
  • XZ d is calculated.
  • Equation 64 Substituting into Equation 6, eliminating By d 2 and By 2 and rearranging the equation gives Equation 64.
  • X d X d / Z d
  • Equation 66 Equation 66
  • Y d Z d + 1 [(X d + X Z d + 2AZ d ) (X d x + Z d )-2 ⁇ ⁇ ]-(X d -xZ d ) 2 X d + 1 ... number 67
  • Step 3501, Step 3505, Step 3506, Step Step 3508, Step 3510, Step 351, Step 351, Step 3515, Step 3516, Step 3517, Step 3518, and Step 3519 require the computational complexity of multiplication over a finite field.
  • Step 3 504 the computational complexity of squaring over a finite field is required. The computational complexity of addition and subtraction over a finite field can be ignored since it is relatively small compared to the computational complexity of multiplication and squaring over a finite field.
  • the high-speed scalar multiplication method of the high-speed scalar multiplication unit 202 of the fifteenth embodiment is used.
  • the high-speed scalar multiplication unit 202 outputs X d , Z d , X d +1 , and Z d +1 from the scalar value d and the point P on the Montgomery-type elliptic curve without using the above algorithm.
  • Other algorithms may be used as long as the algorithm is fast and fast.
  • the required computational cost is approximately 160 OM, and the required computational cost has been reduced.
  • the scalar multiplication unit 103 calculates the scalar multiplication point (x d , y d ) is calculated and output.
  • the high-speed scalar single multiplication unit 202 receives them.
  • the scalar multiplication unit 103 outputs the scalar-multiplied point (x d given coordinate fully in Afin coordinates, y d) as a calculation result.
  • the coordinate recovering unit 203 represented by X d,
  • X d Xx is calculated in step 3601 is stored in the register.
  • step 3602 1 ⁇ + 1 is calculated.
  • x d x is stored in the register, so x d x + l is calculated.
  • the result is stored in register T.
  • X d + x is calculated at step 3603, Ru stored in the register T 2.
  • step 3604 ⁇ 2 + 2 ⁇ is calculated.
  • x d + x is stored in the register ⁇ 2, and therefore x d + x + 2A is calculated.
  • the result is stored in the register T 2.
  • step 3605 T i XT ⁇ is calculated.
  • x d x + l is stored in register T j and x d + x + 2A is stored in register T 2 , so (x d x + l) (x d + x + 2A) is calculated Is done.
  • the result is stored in register 1 ⁇ .
  • Ti-2 ⁇ is calculated.
  • the register Ding 1 ((1 + 1) ((1 + +2) is stored Ori, thus (x d x + l) ( x d + x + 2A) - 2A is calculated.
  • the result is stored in a register, x d -X is calculated in step 3607, and stored in register T.
  • the square of T 2 is calculated, where x is stored in register T 2 .
  • step 3609 T 2 Xx d + 1 is calculated.
  • (X d — X) 2 is stored in the register T 2 , and thus (x d — X) 2 x d +1 is calculated, and the result is stored in the register T 2 .
  • the register contains (D +1) (x d + x + 2A) -2A- (x d _x) 2 x d + j is in the register T 2 are each rated accommodated is l / 2By, thus (x d x + l ) (x d + x + 2A) -2A- (x d -x) 2 x d + 1 / 2By is calculated.
  • the result is stored in register y d.
  • the register y d thus stored is (x d x + l) ( x d + x + 2A) -2A- (x d -x) 2 x d + ⁇ SBy. Since the register xd is not updated at all, the input value is retained.
  • Equation 64 x d and y d are given by the processing of FIG. Therefore, the affine coordinates
  • the above procedure requires the computational complexity of multiplication over a finite field in steps 3601, 3605, 3609, 3611 and 3613. Also, in step 3608, the computational complexity of squaring over a finite field is required. Further, in step 3612, the computational complexity of the inverse operation on the finite field is required. The computational complexity of subtraction over a finite field is relatively small compared to the computational complexity of multiplication, squaring, and inverse operation, so they can be ignored. If the computational complexity of multiplication over a finite field is M, the computational complexity of squaring over a finite field is S, and the computational complexity of the inverse operation over a finite field is I, the above procedure reduces the computational complexity of 5M + S + I I need.
  • the high-speed scalar multiplication unit 202 inputs the point P on the Montgomery elliptic curve input to the scalar multiplication unit 103, and performs a scalar multiplication point expressed in affine coordinates on the Montgomery elliptic curve by the following procedure.
  • dP (x d, y d ) x d, the point on the Montgomery-form elliptic curve represented by Afin coordinates of (d + 1)
  • P x d + 1 of the (x d + 1, y d + 1) Is output.
  • the initial value 1 is substituted for the variable I.
  • a point 2 P that is twice the point P is calculated.
  • step 4303 the point P on the elliptic curve input to the scalar multiplication unit 103 and the point 2P obtained in step 4302 are stored as a pair of points (P, 2P).
  • point P and point 2P are represented by projective coordinates.
  • step 4304 it is determined whether or not the variable I matches the bit length of the scalar value d. If not, go to step 4305.
  • step 4305 the variable I is incremented by one.
  • step 4306 it is determined whether the value of the I-th bit of the scalar value is 0 or 1. If the value of that bit is 0, go to step 4307. If the value of that bit is 1, go to step 4310. In step 4307, the point mP and the point (m + l) P are added mP + (m + l) P from the set of points (mP, (m + l) P) represented by the projective coordinates, and the point (2m + l) Calculate P. Then go to step 4308.
  • the addition mP + (m + l) P is calculated using the addition formula in the projective coordinates of the Montgomery-type elliptic curve.
  • step 4308 the point raP is doubled 2 (mP) from the set of points (mP, (m + 1) P) represented by the projective coordinates, and the point 2mP is calculated. Then go to step 4309.
  • the doubling 2 (mP) is calculated using the doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 4309 the point 2mP obtained in step 4308 and the point (2m + l) P obtained in step 4307 are set as a set of points (2mP, (2m + l) P), and a set of points (mP, (m + l) Store instead of P). Thereafter, the flow returns to step 4304.
  • the point 2mP, the point (2m + l) P, the point mP, and the point (m + 1) P are all represented in projective coordinates.
  • a point mP and a point are calculated from the set of points (mP, (m + 1) P) represented by projective coordinates.
  • step 4 3 1 the addition mP + (m + 1) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 4 3 1 doubling 2 ((111 + 1)?) Of point (111 + 1)?
  • step 4 3 1 the doubling 2 ((m + 1) P) is calculated using the doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 43 1 2 the point (2m + l) P obtained in step 4 3 10 and the point (2m + 2) P obtained in step 4 3 1 1 are combined into a point set ((2m + l) P (2m + 2) P) is stored instead of the set of points (mP, (m + l) P). Then, the process returns to step 4304.
  • Y m + i, and Z m + i) respectively from X m + i and Z m + i Xd + i and Zd + i.
  • Y m and Y m + i are not determined because the addition formula and the doubling formula in the projective coordinates of the Montgomery-form elliptic curve cannot determine the Y coordinate.
  • step 4 3 1 output x d x d + 1.
  • m and the scalar value d have the same bit length, and the pattern of the bit is also Because they are the same, they are equal.
  • M is the complexity of multiplication over a finite field
  • S is the complexity of multiplication over a finite field.
  • the computational complexity of the doubling formula in the projective coordinates of the Montgomery-form elliptic curve is 3M + 2S. If the value of the I-th bit of the scalar value is 0, the calculation amount of addition is required in step 430, and the calculation amount of doubling is required in step 430. That is, a calculation amount of 6 M + 4 S is required.
  • the computational complexity of addition in step 4310 and the computational complexity of doubling in step 4311 are required. In other words, a calculation amount of 6M + 4S is required. In each case, the computational complexity of 6 M + 4 S is required.
  • the calculation amount of the algorithm in the above procedure is approximately 1512M.
  • the amount of computation per bit of a scalar value d is about 9.2M.
  • the algorithm that outputs x d and x d + 1 from the scalar value d and the point P on the Montgomery-form elliptic curve can be used.
  • Other algorithms may be used.
  • the amount of calculation required for the coordinate restoration of the coordinate restoration unit 203 in the scalar multiplication unit 103 is 5M + S + I, which is the amount of calculation required for the high-speed scalar multiplication unit 202 for the high-speed scalar multiplication (9.2. k + 40. 4) M, much smaller than M.
  • the seventeenth embodiment uses a Weierstrass-type elliptic curve as the elliptic curve. That is, the elliptic curve used for input and output of the scalar multiplication unit 103 is a Weierstrass-type elliptic curve. However, a Montgomery-type elliptic curve that can be converted from a given Weierstrass-type elliptic curve may be used as the elliptic curve used in the calculation inside the scalar multiplication unit 103. From the scalar value d and the point P on the Weierstrass-form elliptic curve, the scalar multiplication unit 103 obtains a simpler point (X d , y d ) is calculated and output.
  • the high-speed scalar single calculation unit 202 receives them.
  • the coordinate restoring unit 203 calculates a scalar single point expressed in affine coordinates on a Weierstrass-form elliptic curve from the given coordinate values X d , Z d , X d +1 , Z d +1 , x and y.
  • the coordinates X d and y d of dP (x d , y d ) are restored.
  • the scalar multiplication unit 103 outputs a scalar multiplication point (x d , y d ) whose coordinates are completely given in the affinity coordinates as a calculation result.
  • a Weierstrass-form elliptic curve is represented by projective coordinates.
  • P (X d + 1, Y d + 1, Z d + 1) of the X d + 1 and Z d + 1
  • Afin coordinate point P on Waierushuto lath form elliptic curve inputted into the scalar multiplication unit 1 03 of the coordinates Input (x, y) represented by, and output the scalar multiple (x d , y d ) given the perfect coordinates in the affinity coordinates in the following procedure.
  • the affine coordinates of the input point P on the Weierstrass-form elliptic curve are represented by (x, y), and the projective coordinates are represented by (X1, Y1, Z1).
  • the input scalar value be d
  • the affine coordinates of the stiffener single point dP in the Dielsstrahl elliptic curve are (X d , y d )
  • the projective coordinates are (X d , Y d , Z d ) Respectively.
  • step 3701 xXZ d is calculated and stored in the register.
  • step 3702 X d + T is calculated.
  • xZ d is stored in the register T, so that xZ d + X d is calculated.
  • the result is stored in the register T 2.
  • step 3703 is calculated, where xZ d is stored in the register, and therefore xZ d -X d is calculated.
  • the result is stored in the register T 3.
  • the square of the register T 3 is calculated in step 3704.
  • xZ d -X d is stored in the register ⁇ 3
  • (X d - ⁇ ⁇ ) ⁇ is calculated.
  • the result is stored in register # 3 .
  • step 3705 T 3 XX d + 1 is calculated.
  • the register T 3 (X d - xZ d ) 2 is stored, thus X d + 1 (X d - xZ d) is calculated.
  • the result is stored in the register T 3.
  • step 3706 xXX d is calculated and stored in the register.
  • step 3707 aXZ d is calculated and store in register T 4.
  • step 3708 ⁇ is calculated.
  • aZ d respectively in 4 xX d registers ⁇ in the register, thus x X d
  • Step 3712 T i + T 2 is calculated.
  • (xX d + aZ d ) (xZ d + X ri ) is stored in the register T ⁇
  • 2bZ d 2 is stored in the register T, so that (xX d + aZ d ) (xZ d + X d ) + 2bZ ri is calculated.
  • the result is stored in register T.
  • XZ d + 1 is calculated.
  • the register TJ has Z d + 1 ((xX d + aZ d ) (xZ d + X d ) + 2bZ d 2 ), and the register T 3 has X d + 1 (X d — xZ d ) 2
  • the stored force is calculated as Z d + 1 ((xX d + aZ d ) (xZ d + 'X d ) + 2bZ d 2 ) -X d + 1 (X d -xZ d ) 2 Is done.
  • the result is stored in the register.
  • step 37 1 5 2yXZ d is calculated and stored in the register T 2.
  • T 2 XZ d + 1 is calculated in step 3716.
  • register T 2 is stored is 2yz d, thus 2yZ d Z d + 1 is calculated.
  • T 2 XZ d is calculated.
  • the register T 2 is stored is 2yZ d Z d + 1, thus 2yZ d Z d + 1 Z d is calculated.
  • the result is stored in the register T 3.
  • Register T 3 of inverse is computed in step 371 8. Where register 2 has 2yZ d
  • Z d + 1 Z d are stored, so l / 2yZ d Z d + 1 Z d is calculated. As a result is stored in the register T 3.
  • ⁇ ⁇ 3 is calculated.
  • Z d +1 ((xX d + aZ d ) (xZ d + X d ) + 2bZ d 2 ) -X d +1 (X d -xZ d ) in the register and l / 2yZ in the register T 3 d
  • Z d + 1 Z d are stored respectively, and accordingly, (Z d + i ((xX d + aZ d ) (xZ d + X d ) + 2bZ d 2 )-X d + ! (X d -xZ d ) 2 ) / 2yZ d
  • step 3720 T 2 XX d is calculated.
  • the register T 2 is stored is 2yZ d Z d + 1, thus 2yZ d Z d + 1 X d is calculated.
  • the result is stored in the register T 2.
  • T9XT q is calculated.
  • Cash register here Star T in 2 2yZ d Z d +; for L X d registers T 3 l / 2yZ d Z d +: L Z d are stored respectively, force the connexion 2yZ d Z d + 1 X d / 2yZ d Z d + 1 Z d force S is calculated.
  • the result is stored in register xd .
  • y d ⁇ (x d x + a) (x d + x) + 2b- (x d -x) 2 x d + 1 ⁇ / (2y) ... number 70
  • y d ⁇ Z d + 1 ((X d x + aZ d ) (X d + xZ d ) -2bz
  • Step 3 701 The above procedure consists of Step 3 701, Step 3 705, Step 3 706, Step 3 707, Step 3 709, Step 3 71 0, Step 3 711, Step 371 3, Step 3 7 1 5, Step 3 71 6.
  • Steps 3 7 17, 3 7 19, 3 7 20 and 3 7 2 1 require computational complexity for multiplication over a finite field.
  • step 3704 the computational complexity of squaring over a finite field is required.
  • step 3 7 1 8 the computational complexity of the inverse operation on the finite field Need.
  • the computational complexity of addition and subtraction over a finite field is relatively small compared to the computational complexity of multiplication, squaring and inverse operation over a finite field, and may be ignored.
  • the computational complexity of multiplication over a finite field is M
  • the computational complexity of squaring over a finite field is S
  • the computational complexity of an inverse operation over a finite field is I
  • the above procedure requires 14M + S + I
  • the computational cost of the fast scalar multiplication is estimated to be slightly less than 150 OM.
  • the computational complexity for coordinate restoration is 54.8M, which is much smaller than the computational complexity of the fast scalar signal computation. Therefore, it was shown that the coordinates could be efficiently restored.
  • the point P on the Weierstrass-form elliptic curve input to the scalar one-time calculation unit 103 is input.
  • the scalar single point dP (X d , Y d , Z d ) X d and Z d
  • the point on the Weierstrass-form elliptic curve expressed in projective coordinates (d + l) P (X d + 1 , Yd + 1 , Zd + 1 ), Xd + i and Zd + i are output.
  • step 4416 the given point P on the Weierstrass-form elliptic curve is transformed into a point represented by projective coordinates on the Montgomery-form elliptic curve. Let this point be point P again.
  • an initial value 1 is substituted for a variable I.
  • step 4402 a point 2P that is twice the point P is calculated.
  • the point P is expressed as (X, y, l) in projective coordinates, and the double point 2P is calculated using the doubling formula in the projective coordinates of the Montgomery-type elliptic curve.
  • step 4403 the point P on the elliptic curve input to the scalar multiplication unit 103 and the point 2P obtained in step 4402 are stored as a pair of points (P, 2P).
  • point P and point 2P are represented by projective coordinates.
  • step 4404 it is determined whether or not the variable I matches the bit length of the scalar value d. Go to step 441-5. If not, go to step 4405.
  • step 4405 the variable I is incremented by one.
  • step 4406 it is determined whether the value of the I-th bit of the scalar value is 0 or 1. If the value of that bit is 0, go to step 4407. If the value of the bit is 1, go to step 4410.
  • step 4407 the addition of point mP and point (m + 1) P from the set of points (raP, (m + 1) P) represented by projective coordinates, mP + (m + 1) P, is performed. Calculate the point (2m + l) P. Then go to step 4408.
  • the addition mP + (ni + l) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 4408 doubling 2 (mP) of point mP is performed from the set of points (mP, (m + 1) P) represented by the projective coordinates to calculate point 2mP. Then go to step 4409.
  • doubling 2 (mP) is calculated using the formula of doubling in the projective coordinates of the Montgomery-form elliptic curve.
  • the point 2mP obtained in step 4408 and the point (2m + 1) P obtained in step 4407 are set as a set of points (2mP, (2m + 1) P), and a set of points (mP, (ra + 1) P) Store instead of. Thereafter, the flow returns to step 4404.
  • point 2mP, point (2m + 1) P, point mP and point (m + 1) P are all represented in projective coordinates.
  • step 4410 the point mP and the point (m + l) P are added mP + (m + l) P from the set of points (mP, (m + l) P) represented by the projective coordinates, and the point (2m + l) Calculate P.
  • step 4411 the addition mP + (m + 1) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 441 1 the point (m + 1) P is doubled 2 ((m + 1) P) from the set of points (mP, (m + 1) P) represented by the projective coordinates, and the point (2m + 2 ) Calculate P. Then go to step 4412.
  • the doubling 2 ((m + l) P) is calculated using the doubling formula in the projective coordinates of the Montgomery-type elliptic curve.
  • step 4412 the point (2m + l) P obtained in step 4410 and the point (2m + 2) P obtained in step 4411 are combined into a set of points ((2m + l) P, (2m + 2) P). Is stored instead of the set of points (mP, (m + 1) P). Thereafter, the flow returns to step 4404.
  • the point (2m + l) P, the point (2m + 2) P, the point raP, and the point (m + 1) P are all represented in projective coordinates.
  • step 4415 the point (ml) P in the Montgomery-form elliptic curve is transformed into a point represented by projective coordinates on the Weierstrass-form elliptic curve.
  • the X coordinate and the Z coordinate of the point are set to m-1 and Zm-l, respectively.
  • Y m and Y m + 1 are not determined because the addition formula and the doubling formula in the projective coordinates of the Montgomery-type elliptic curve cannot determine the Y coordinate.
  • Zm + 1 is output as Xd + 1 and Zd + 1 , respectively.
  • m and the scalar value d are equal because their bit lengths are equal and their bit patterns are also equal.
  • M is the complexity of multiplication over a finite field
  • S is the complexity of square multiplication over a finite field.
  • the computational complexity of the doubling formula in the projected coordinates of the Montgomery-form elliptic curve is 3M + 2S. If the value of the I-th bit of the scalar value is 0, the calculation amount of addition in step 4407 and the calculation amount of doubling in step 4408 are required. That is, a calculation amount of 6 M + 4 S is required.
  • the computational complexity of addition in step 4410 and the computational complexity of doubling in step 4411 are required. In other words, a calculation amount of 6M + 4S is required. In each case, the computational complexity of 6 M + 4 S is required.
  • Step 4404, Step 4405, Step 4406, Step 4407, Step 4408, Step 4409 or Step 4404, Step 4405, Step 4406, Step 4410, Step 4411, and Step 4412 is (the scalar value d (Bit length) Since it is one time, the computational complexity of doubling in step 4402, the computational complexity required to convert to a point on the Montgomery-form elliptic curve in step 4416, and the Weierstrass in step 4415 Taking into account the amount of computation required to convert to points on the elliptic curve, the overall computation is (6M + 4S) k + 2M-2S. Where k is the bit length of the scalar value d.
  • the calculation amount of the algorithm in the above procedure is approximately 1472 M.
  • the computational complexity per bit of the scalar value d is about 9,2M.
  • the scalar multiplication method using the mixed coordinate system centered on the Jacobian coordinate using the window method is described as a high-speed scalar multiplication method.
  • the amount of calculation per bit of the scalar value is estimated to be about 10M.
  • the algorithm of the procedure according to the present invention has a smaller amount of calculation and is faster.
  • the amount of calculation required for this scalar multiplication is approximately 1527M.
  • the amount of calculation required is approximately 1'640M, and the required amount of calculation is reduced.
  • the eighteenth embodiment uses a Weierstrass-type elliptic curve as the elliptic curve. It is. That is, the elliptic curve used for the input and output of the scalar multiplication unit 103 is a ⁇ Jelstrass-type elliptic curve. However, a Montgomery-type elliptic curve that can be converted from a given Weierstrass-type elliptic curve may be used as the elliptic curve used in the calculation inside the scalar multiplication unit 103.
  • the scalar multiplication unit 103 From the scalar value d and the point P on the Weierstrass-form elliptic curve, the scalar multiplication unit 103 obtains a scalar multiple point (X d , Y d , Z d ) is calculated and output.
  • the high-speed scalar multiplication unit 202 receives them.
  • scalar haploid calculation unit 103 outputs the scalar-multiplied point to the coordinate completely given in projective coordinates (X d, Y d, Z d) as calculation result.
  • point P on the Weierchuss-type elliptic curve input to the scalar multiplication unit 103 is represented by the affine coordinates (X, y) And output the scalar single point (X d , Y d , Z d ) given the projected coordinates and the complete coordinates in the following procedure.
  • the affine coordinates of the input point P on the Weierstrass-form elliptic curve are represented by ( ⁇ , y), and the projective coordinates are represented by ⁇ .
  • (XdJd) represent respectively the projective coordinates (X d, Yd, Z d ).
  • the affine coordinates of the point ( d + i) P on the Weiersch truss-shaped elliptic curve are ( xd + 1 , yd + 1 ), and the projective coordinates are
  • step 3801 xXZ d is calculated and stored in the register T ⁇ .
  • step 3802 Xd + T ⁇ is calculated.
  • xZ d is stored in the register T] L, so that xZ d + X d is calculated.
  • the result is stored in the register T 2.
  • step 3803 X d -is calculated, where
  • Is stored in AXZ d is calculated in step 3807 is stored in the register T 4.
  • T i + T 4 is calculated.
  • the register T ⁇ is stored aZ d respectively in the register T 4 is xX d
  • xX d + aZ d Te the month is calculated.
  • the result is stored in the register.
  • ⁇ 2 is calculated.
  • xX d + aZ d is stored in register 1 ⁇
  • xZ d + X d is stored in register T 2 , and therefore (xX d + aZ d ) (xZ d + X d ) is calculated .
  • the result is stored in the register.
  • step 38 19 T 2 XZ d force S is calculated.
  • the register T 2 is stored is 2yZ d Z d + 1, thus 2yZ d Z d + 1 Z d is calculated.
  • the result is stored in register Z d.
  • the register Z d are stored 2yZ d Z d + 1 Z d .
  • Register Y d i top step 3814 top end Z d + 1 ((xX d + aZ d ) (xZ d + X d ) + 2bZ d ") + X d + 1 (X d - X Z d ) is 2 force S stored, then since the update is not performed, the the value is held.
  • register X d is stored 2yZ d Z d + 1 X d in step 381 7, update is performed after its Since it is not, its value is retained.
  • X d +1 X d + i / Z d +: L.By substituting this value to convert it to the value of projective coordinates, Equation 71 is obtained. .
  • the computational complexity of multiplication on a finite field is M and the computational complexity of squaring on a finite field is S, the above procedure requires 11 M + 2S computational complexity. This is much smaller than the computational cost of fast scalar multiplication.
  • the scalar value d is 160 bits
  • the calculation amount of the high-speed scalar multiplication is estimated to be slightly less than 1500M.
  • S 0.8 M
  • the computational complexity of coordinate restoration is 12.6 M, which is much smaller than the computational complexity of the fast scalar one-time computation. Therefore, it was shown that the coordinates could be efficiently restored.
  • X d given by the above equation, Y d if calculated values of Z d X d, Y d, can restore the value of Z d.
  • the values of X d , Y d , Z d are selected so that x d , y d take the values given by the above formula, and if the values can be calculated, X d , Y d) Z d can be restored . In those cases, the amount of computation required for restoration generally increases.
  • the high-speed scalar multiplication calculation method of the high-speed scalar multiplication unit 202 of the eighteenth embodiment is used.
  • the high-speed scalar multiplication calculation method of the seventeenth embodiment is used.
  • x d, Z d, X d + 1, Z d + 1 output
  • a fast algorithm is achieved. Note that, even if the algorithm of the above procedure is not used in the high-speed scalar multiplication unit 202, X d , Z d , X d +1 , Z d
  • Other algorithms may be used as long as the algorithm outputs +1 and is fast.
  • the calculation amount required for this scalar multiplication is approximately 1485M.
  • the required computational cost is approximately 1600M, and the required computational cost has been reduced.
  • the nineteenth embodiment uses a Weierstrass-type elliptic curve as the elliptic curve. That is, the elliptic curve used for the input and output of the scalar multiplication unit 103 is a ⁇ Jelstrass-type elliptic curve. However, a Montgomery-type elliptic curve that can be converted from a given Weierstrass-type elliptic curve may be used as an elliptic curve used in the calculation inside the scalar one-time calculation unit 103.
  • the scalar multiplication unit 103 From the scalar value d and the point P on the Weierstrass-form elliptic curve, the scalar multiplication unit 103 obtains a scalar multiple point (x d , Y d ) is calculated and output.
  • the high-speed scalar multiplication unit 202 receives them.
  • the scalar multiplication unit 103 outputs a scalar single point (X d , y d ) to which coordinates are completely given in the affinity coordinates as a calculation result.
  • Input (X, y) which represents point P in affine coordinates, and output the scalar single point (x d , y d ) given complete coordinates in affine coordinates in the following procedure.
  • step 3901 x d Xx is calculated and stored in the register T.
  • step 3902 T + a is calculated.
  • x d x is stored in the register, so x d x + a is calculated.
  • the result is stored in the register.
  • X d + x is calculated at step 3903, Ru stored in the register T 2.
  • step 3904 Ti XT 2 is calculated.
  • the x d x + a is register T 2 to the register is stored each x d + x, hence
  • step 3905 T is calculated.
  • step 3 x d + x is stored, so (x d x + a) (x d + x) + 2b is calculated. The result is stored in the register.
  • step 3 x d - X is calculated and stored in the register T 2.
  • step 3907 the square of T 2 is calculated.
  • x d _x is stored in the register T 2 , and therefore (X d — X) 2 is calculated. It is.
  • the result is stored in register T2.
  • step 3908 ⁇ 2 X x2 d + 1 is calculated.
  • (x d — X) is stored in the register T 2 , so that x d + 1 (x d — X) 2 is calculated.
  • step 3909 ⁇ ⁇ - ⁇ 2 is calculated.
  • the register (x d x + a) ( x d + x) + 2b is in the register T 2 Ri Contact stored x d + 1 (x d _x ) 2 , respectively, thus (x d x + a ) ( xd + X ) + 2b- xd + 1 ( xd— x) 2 is calculated.
  • the result is stored in the register.
  • 2y of inverse at step 391 0 is calculated and stored in the register T 2.
  • step 391 1 ⁇ 2 is calculated.
  • Step 3 907 the computational complexity of squaring over a finite field is required.
  • step 3910 the calculation amount of the inverse operation on the finite field is required.
  • the computational complexity of addition and subtraction over a finite field is relatively small compared to the computational complexity of multiplication, squaring, and inverse operation over a finite field and can be ignored.
  • the computational complexity of multiplication over a finite field is M
  • the computational complexity of squaring over a finite field is S
  • the computational complexity of the inverse operation over a finite field is I
  • the above procedure requires 4M + S + I
  • the scalar value d is 160 bits
  • the point P on the Weierstrass-type elliptic curve input to the scalar one-time calculation unit 103 is input.
  • Scalar single point dP (X d , y d ) x d
  • a point on the Weierstrass-form elliptic curve expressed in Affine coordinates (d + l) P (x d + 1 , y d + Output x d + i in 1 ).
  • the given point P on the Weierstrass-form elliptic curve is transformed into a point represented by a projective coordinate on the Montgomery-form elliptic curve.
  • step 4401 the initial value 1 is assigned to the variable I.
  • step 4402 a point 2 P that is twice the point P is calculated.
  • the point P is expressed as (X, y, 1) in projective coordinates
  • the double point 2P is calculated using the formula of doubling in the projective coordinates of the Montgomery-type elliptic curve.
  • step 4403 the point P on the elliptic curve input to the scalar multiplication unit 103 and the point 2P obtained in step 4402 are stored as the point i (P, 2P).
  • the points P and 2P are represented by projective coordinates.
  • step 4404 it is determined whether or not the variable I and the bit length of the scalar value d match, and if they match, the procedure goes to step 4415. If not, go to step 4405.
  • step 4405 the variable I is increased by one.
  • step 4406 it is determined whether the value of the I-th bit of the scalar value is 0 or 1. If the value of that bit is 0, go to step 4406. If the value of the bit is 1, go to step 4410.
  • step 4407 the point mP and the point (m + l) P are added mP + (m + l) P from the set of points (mP, (ra + 1) P) represented by the projective coordinates, and the point (2m + l) Calculate P.
  • step 440-8 the addition mP + (m + l) P is the projected coordinate of the Montgomery-form elliptic curve.
  • step 4408 doubling 2 (mP) of the point mP is performed from the set of points (mP, (m + 1) P) represented by the projective coordinates to calculate the point 2mP.
  • step 4409 the doubling 2 (mP) is calculated using the doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 4409 the point 2mP obtained in step 4408 and the point (2m + 1) P obtained in step 4407 are set as a set of points (2mP, (2m + 1) P), and a set of points (mP, (m + 1) P ) Instead of). Then, return to step 4404.
  • the point 2 mP, the point (2 m + 1) P, the point mP, and the point (m + 1) P are all represented in projective coordinates.
  • step 4410 the points mP and (m + 1) P are added mP + (m + 1) P from the set of points (mP, (ra + 1) P) represented by the projective coordinates, and the point (2m + l) P Is calculated. Then go to step 4411.
  • the addition mP + (m + 1) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • Step 441 As point 1, the point set (mP, (m + 1) P) is multiplied by 2 ((111 + 1)?) Of the point (m + 1)? Calculate (2m + 2) P. Then go to step 44 1 2.
  • the doubling 2 ((111 + 1)?) Is calculated using the doubling formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 4412 the point (2m + l) P obtained in step 4410 and the point (2m + 2) P obtained in step 4411 are combined into a set of points ((2m + l) P, (2m + 2 ) P) is stored instead of the set of points (mP, (m + l) P). Then, return to step 4404.
  • the point (2m + l) P, the point (2m + 2) P, the point mP, and the point (m + 1) P are all represented in projective coordinates.
  • y m and y m + 1 are not determined because the addition formula and the doubling formula in the projective coordinates of the Montgomery-type elliptic curve cannot determine the Y coordinate. Then go to step 4413.
  • the computational amount of the addition formula in the projective coordinates of the Montgomery-form elliptic curve is 1, so that 3M + 2S is obtained.
  • M is the complexity of multiplication over a finite field
  • S is the complexity of square multiplication over a finite field.
  • the computational complexity of the doubling formula in the projective coordinates of the Montgomery-form elliptic curve is 3M + 2S. If the value of the I-th bit of the scalar value is 0, the calculation amount of addition in step 4407 and the calculation amount of doubling in step 4408 are required. That is, a calculation amount of 6 M + 4 S is required.
  • Step 4404, Step 4405, Step 4406, Step 4407, Step 4408, Step 4409 or Step 4404, Step 4405, Step 4406, Step 4410, Step 4411, Step 4412 is represented by (the bit length of the scalar value d.
  • the overall computation is (6 M + 4 S) k + 4M—2 S + I.
  • k is the bit length of the scalar value d.
  • the computational complexity of the algorithm in the above procedure is approximately 1514M.
  • the amount of computation per bit of the scalar value d is about 9.2M.
  • A. Miyaji, T. Ono, H. Cohen, Efficient elliptic curve exponentiation using mixed coordinates, Advances in Cryptology Proceedings of ASIACRYPT '98, LNCS 1514 (1998) pp.51-65 The fast scalar one-time calculation method using a mixed coordinate system centered on the Jacobian coordinates using the window method is described as a fast scalar one-time calculation method. In this case, the calculation amount per bit of the scalar value is estimated to be approximately 10M.
  • the calculation amount required for this scalar multiplication is 1559M.
  • the required computational cost is approximately 1640M, and the required computational cost has been reduced.
  • the twentieth embodiment uses a Weierstrass-form elliptic curve as an input-output elliptic curve, and uses a Montgomery-form elliptic curve that can be converted from a given Weierstrass-form elliptic curve for internal calculations. It was what was. From the scalar value d and the point P on the Weierstrass-form elliptic curve, the scalar multiplication unit 103 obtains a scalar multiplication point (X d, yd) is calculated and output. When the scalar value d and the point P on the Weierstrass-form elliptic curve are input to the scalar multiplication unit 103, the high-speed scalar multiplication unit 202 receives them.
  • 202 gives Xd , Zd , Xd + 1 , Zd + 1 , x, and y to the coordinate restoration unit 203.
  • the coordinate restoration unit 203 gives the given coordinate values Xd , Zd , Xd + 1.
  • the scalar multiplication unit 103 outputs a scalar multiplication point (x d , y d ) in which coordinates are completely given in the affine coordinates as a calculation result.
  • the point P on the Montgomery-form elliptic curve input to the scalar multiplication unit 103 is input as (X, y), which is expressed in the affine coordinates.
  • step 4001 xXZ d is calculated and stored in the register.
  • step 4002 Xd + Ti is calculated. Where the register T ⁇ F ) stored, so xZ d + X d is calculated. The result is stored in register T ⁇ .
  • step 4003 X d -1 is calculated, where xZ d is stored in the register, and xZ d -X d is calculated. The result is stored in the register T 3.
  • the square of the register T 3 in step 4004 is calculated. Here registers in ⁇ 3 xZ rt - X d is stored, thus (X d - xZ d ) 2 is calculated. The result is stored in the register T 3.
  • step 4005 T 3 XX d +1 is calculated.
  • step 4010 ⁇ 2 ⁇ 4 is calculated.
  • xZ d + X d + 2AZ d is stored in register ⁇ 2
  • xX d + Z d is stored in register T 4 , and therefore (xZ d + X d + 2AZ d ) (xX d + Z d ) Force S is calculated.
  • the result is stored in register T2.
  • T XZ d is calculated.
  • 2AZ d is stored in the register, so 2AZ d 2 is calculated.
  • the result is stored in register 1 ⁇ .
  • step 4012 ⁇ 2 -is calculated.
  • register T 2 is stored respectively (xZ d + ⁇ d + 2AZ d) (xX d + Z d) in the here register T ⁇ 2 ⁇ d ", therefore (xZ d + X d + 2AZ d) (xX d + Z d) -... 2AZ d is calculated and the result T 2 XZ d + 1 at step 401 3 stored in the register T 2 is computed here in the register T 2 Is (xZ d + X d +
  • T 3 is calculated here to register ⁇ 2 Z d + 1 (( xZ d + X d + 2AZ d) (xX d + Z d) - 2AZ d 2) in the register T 3 X d + (X d - xZ d) 2 are respectively stored, the force S connexion Z d + i ((xZ d + X d + 2AZ d ) (xX d + Z d ) -2AZ d 2 ) -X d + 1 (X d -xZ d ) 2.
  • the result is stored in register T 2.
  • 2BXy is calculated and stored in the register.
  • Step 4016 calculates ⁇ 1 XZ d .
  • the register T 3 is stored 2ByZ d Z d + 1 Z d force S, thus 2ByZ d Z d + 1 Z d s are calculated.
  • Inverse of register T 3 is calculated in step 4020.
  • the register T 3 are stored 2ByZ d Z d + 1 Z d s, Therefore l / 2ByZ d Z d + 1 Z d s are calculated.
  • T 2 XT 3 is calculated.
  • the register T 2 has Zd + i ((xZ d + X d + 2AZ d ) (xX d + Z d ) -2AZ d 2 ) —X d + ⁇ (X d — xZ d ) 2 in the register T 3
  • Z d + ((xZ d + X d + 2AZ d ) (xX d + Z d ) -2AZ d 2 )-X d + i (X d — xZ d ) 2 ⁇ / 2ByZ d Z d + Z d s is calculated.
  • step 4022 XX d is calculated.
  • the register is stored is 2ByZ d Z d + 1, the although connexion 2ByZ d Z d + 1 X d is calculated.
  • the result is stored in register 1 ⁇ .
  • step 4023 ⁇ 3 is calculated.
  • the register x d is stored the value of (X d / Z d s) + a.
  • y d has ⁇ Z d + 1 ((xZ d + X d + 2AZ d ) (xX d + Z d )-2AZ d 2 )-Xd + i (Xd—xZ d ) 2 ⁇ / 2ByZ d Z d + 1 Z d s is stored, and is not updated thereafter, so its value is retained. As a result, all the values of the affine coordinates (X d , y d ) in the Weierstrass-form elliptic curve are restored.
  • y d ⁇ Z d + 1 X d x + Z d ) (X d + xZ d + 2AZ d ) -2AZ)-(X d -xZ d ) 2 X d + 1 ⁇ / (2sByZ d Z d + 1 Z d )
  • Step 4001 The above procedure consists of Step 4001, Step 4005, Step 4006, Step 4008, Step 4010, Step 4011, Step 4013, Step 4015, Step 4016, Step4017, Step401 8, stets
  • step 4019 the computational complexity of step 4021, step 4022, and step 4023
  • step 4004 the amount of calculation of squaring on a finite field is required.
  • Step 4020 the amount of calculation of the inverse element operation on the finite field is required.
  • the computational complexity of addition and subtraction over a finite field is relatively small compared to the computational complexity of multiplication, squaring and inverse computation over a finite field, and may be ignored.
  • the above procedure reduces the computational complexity of 15 M + S + I I need. This is much smaller than the fast scalar multiplication.
  • the scalar value d is 160 bits
  • the calculation amount of the high-speed scalar multiplication is estimated to be slightly less than 150 OM.
  • the amount of calculation for coordinate restoration is 55.8M, which is much smaller than the amount of calculation for fast scalar multiplication. Therefore, it was shown that the coordinates could be efficiently restored.
  • the high-speed scalar multiplication method of the ninth embodiment (see FIG. 8) is used as the high-speed scalar multiplication method of the high-speed scalar multiplication unit 202 of the twentieth embodiment.
  • the required computational cost is approximately 1 64 OM, compared to the required computational cost.
  • the second embodiment uses a Weierstrass-form elliptic curve as an input-output elliptic curve, and uses a Montgomery-form elliptic curve that can be converted from a given Weierstrass-form elliptic curve for internal calculations. It was what was. From the scalar value d and the point P on the Weierstrass-form elliptic curve, the scalar multiplication unit 103 obtains a scalar multiplication point whose complete coordinates are given as projective coordinates on the Weierstrass-form elliptic curve,
  • the high-speed scalar multiplication unit 202 converts the received scalar value d and the given point P on the Weierstrass-form elliptic curve to the Montgomery-form elliptic curve to obtain a scalar single point d expressed in projective coordinates.
  • the high-speed scalar multiplication unit 202 provides the coordinate restoration unit 203 with X d , Z d , X d + 1 , Z d + 1 , x, and y.
  • the coordinate restoring unit 203 calculates a scalar single point expressed in projective coordinates on a Weierstrass-form elliptic curve from the given coordinate values X d , Z d , X d + 1 , Z d + 1 , x and y.
  • dP (X d W, Y d W, Z d W) coordinate X d W of the Y d w and Z d W Perform a restore.
  • Scalar multiplication unit 103 outputs the scalar-multiplied point the coordinate completely given et al was in projective coordinates (X d W, Y d W , Z d W) as calculation result.
  • the affine coordinates of the input point P on the Montgomery-type elliptic curve are represented by (x, y), and the projective coordinates are represented by YZ.
  • the input scalar value is d
  • the affine coordinates of the scalar multiple point dP in the Montgomery-form elliptic curve are
  • step 4101 xXZ d is calculated and stored in register 1 ⁇ .
  • step 4102 Xd + Ti is calculated.
  • xZ d is stored in the register T ⁇ , and therefore xZ d + X d is calculated.
  • the result is stored in the register T 2.
  • step 4103 X d -is calculated, where xZ d is stored in the register, and xZ d -X d is calculated.
  • the result is stored in the register T 3.
  • the square of the register T 3 is calculated in step 4104.
  • the register T 3 xZ d - are stored X d, thus (X d - xZ d) is calculated.
  • the result is stored in the register T 3.
  • step 4105 T 3 XX d + 1 is calculated.
  • the register T 3 (X d - xZ d ) 2 is stored, thus X d + 1 (X d - xZ d) 2 is calculated.
  • the result is stored in the register T 3.
  • 2AXZ d is calculated and stored in the register.
  • ⁇ 2 + ⁇ is calculated.
  • the xZ d + X d in register T 2 is the register T ⁇ is stored 2AZ d, respectively, were Thus, xZ d + X d + 2AZ d is calculated.
  • the result is stored in register T2.
  • XXX d is calculated in the scan Tetsupu 4108 is stored in the register T 4.
  • step 4109 T 4 + Z d is calculated.
  • the register T 4 are stored xX d, thus xX d + Z d is calculated.
  • the result is stored in the register T 4.
  • step 41 10 ⁇ 2 ⁇ 4 is calculated.
  • xZ d + X d + 2AZ d is stored in register ⁇ 2
  • xX d + Z d is stored in register T 4 , so that (xZ d + X d + 2AZ d ) (xX d + Z d ) is calculated.
  • the result is stored in the register T 2.
  • step 41 11 T ⁇ XZ d is calculated.
  • Register here! ⁇ Stores 2AZ d , so 2AZ d 2 is calculated.
  • the result is stored in register 1 ⁇ .
  • step 4112 T 2 -T ;! is calculated.
  • the register ⁇ 2 (xZ d + X d + 2AZ d) (xX d + Z d) is here register T! Stores 2AZ d ", and (xZ d + X d + 2AZ d ) (xX d + Z d ) -2AZ d is calculated.
  • the result is stored in the register T 2 . in 41 1 3 T 2 XZ d + 1 is calculated.
  • step 41 17 ⁇ XZ d + 1 is calculated.
  • 2ByZ d is stored in the register, and 2ByZ d Z d + ⁇ is calculated.
  • the result is stored in the register.
  • step 41 18 TXZ d is calculated.
  • it is stored 2ByZ d Z d + 1 in the register, and wanted to 2ByZ d Z d + 1 Z d is calculated.
  • the result is stored in the register T 3.
  • step 41 19 T 3 Xs is calculated. Where register T 3 contains 2ByZ d Z d + Z d mosquitoes are stored, it is the force S connexion 2ByZ d Z d + ⁇ Z d s force S calculated.
  • the result is stored in the register Z d W.
  • step 4120 T ⁇ XX d force S is calculated.
  • the register since the register is stored is 2ByZ d Z d + 1, 2ByZ d Z d + 1 X d Te the month is calculated. The result is stored in the register.
  • step 41 Z d W X a is calculated.
  • the register Z d W are stored 2ByZ d Z d + 1 Z d s force S, thus 2ByZ d Z d + 1 Z d so; is calculated.
  • As a result is stored in the T 3.
  • 1 2 2 T + Tg is calculated.
  • the register stores 2ByZ d Z d + 1 X d and the register T 3 stores 2ByZ d Z d + 1 Z d s, so 2ByZ d Z d + ⁇ ⁇ ⁇ + 2ByZ d Z d +1 Z d so; force S is calculated.
  • the result is stored in X d W.
  • the register x d 2ByZ d Z d + 1 X d + 2ByZ d Z d + 1 Z d sa being the values force S price in yarn Rereru.
  • step 4 1 1 4 Z Z d +1 ((xZ d + X d + 2AZ d ) (xX d + Z d ) -2AZ d ") -X d + 2 (X d- xZ d) is 2 force S price paid, then since the update is not performed, the value is held.
  • Z ri W 1 1 4 Z Z d +1 ((xZ d + X d + 2AZ d ) (xX d + Z d ) -2AZ d ") -X d + 2 (X d- xZ d) is 2 force S price paid, then since the update is not performed, the value is held.
  • X d X d / Z d , but by dividing it with the denominator of y d in order to reduce the number of inverse operations, it becomes Equation 66. As a result,
  • Y d Z d + 1 [(X d + xZ d + 2AZ d ) (X d x + Z d ) -2 Az]-(X d -xZ d ) 2 X d + 1 ... + 1 X d ... number 82
  • Z ' d 2ByZ d Z d + 1 Z d ... number 83
  • Step 4101 consists of step 4101, step 4105, step 4106, step 4108, step 41 10, step 41 1 1, step 4111, step 41 15, step 41 16, step 41 17, step 4118, step 41 19, Steps 4120 and 4121 require the computational complexity of multiplication over a finite field.
  • Step 4104 the computational complexity of squaring over a finite field is required.
  • the computational complexity of addition and subtraction over a finite field is relatively small compared to the computational complexity of multiplication and squaring over a finite field, so they can be ignored. If the computational complexity of multiplication over a finite field is M and the computational complexity of squaring over a finite field is S, the above procedure requires 14 M + S.
  • the fast scalar multiplication method of the ninth embodiment is used as the high-speed scalar multiplication method of the high-speed scalar multiplication unit 202 of the twenty-first embodiment.
  • a fast algorithm is achieved You.
  • x d , z d , x d +1 , z d +1 are obtained from the scalar value d and the point p on the Weierstrass-form elliptic curve. If it is an algorithm that outputs, and it is fast, other algorithms may be used.
  • the calculation amount required for the coordinate restoration of the coordinate restoration unit 203 in the scalar multiplication unit 103 is 14M + S, which is (9.2 k—3) of the calculation amount required for the fast scalar multiplication unit 202 for the high-speed scalar multiplication. 6) Much smaller than M.
  • the amount of calculation required for the scalar multiplication by the scalar multiplication unit 103 is almost equal to the amount of calculation required for the high-speed scalar multiplication by the high-speed scalar multiplication unit.
  • S 0.8M
  • this complexity can be estimated to be approximately (9.2 k + 11.2) M.
  • the calculation amount required for this scalar multiplication is 1483M.
  • Scalar multiplication unit 103 Force S, scalar value d and scalar multiplication point where complete coordinates are given as points of affine coordinates in Weierstrass-form elliptic curve from point P on Weierstrass-form elliptic curve
  • the scalar multiplication unit 103 outputs a scalar multiplication point ( Xd W , y d W ) whose coordinates are completely given in the affine coordinates on the Weierstrass-form elliptic curve as a calculation result.
  • step 4201 x d Xx is calculated and stored in the register T.
  • step 4202 T i + 1 is calculated.
  • x d x is stored in the register T, so x d x + l is calculated.
  • the result is stored in register ⁇ Is done.
  • X d + x is calculated at step 4203, Ru stored in the register T 2.
  • step 4204 T 2 + 2A is calculated.
  • the register T 2 is stored is x d + x, hence x d + x + 2A is calculated.
  • the result is stored in the register T 2.
  • step 4205 XT 2 is calculated.
  • register ⁇ stores x d x + l and register ⁇ 2 stores x d + x + 2A, and therefore (x d x + l) (x d + x + 2A) is calculated.
  • You. The result is stored in register T.
  • ⁇ ⁇ -2A is calculated.
  • the register T has been stored (X d x + 1) ( X d + x + 2A), thus (X d x + 1) ( X d + X + 2A) one 2A is calculated.
  • the result is stored in the register.
  • x d - X is calculated and stored in the register T 2.
  • the square of T 2 is calculated.
  • x d -X is stored in the register ⁇ 2
  • (x d — x) 2 is calculated accordingly.
  • the result is stored in the register T 2.
  • T 2 Xx d + 1 is calculated in Sutetsu flop 4209.
  • (x d — X) 2 is stored in the register T 2
  • (x d — X) 2 x d +1 is calculated.
  • the result is stored in the register T 2.
  • step 4210 - T 2 is calculated.
  • the register 1 ⁇ contains (X d x + 1) (x d + x + 2A) -2A- (x d — x ) 2 x d + 1 stores l / 2By in the register T 2 , so ((x d x + l) (x d + x + 2A) -2A- (x d -x) x d + 1 ⁇ / 2By is calculated The result is stored in the register T!
  • the register T] _ contains ⁇ (x d x + l) (x d + x + 2A) -2A- (x d -x) 2 x d + 1 1 / 2By ⁇ (x d x + l) (x d + x + 2A)-2A- (x d- 1 x) 2 x d + 1 ⁇ / 2Bys
  • the result is stored in register y d W.
  • stearyl-up 421 5 x d X (1 / s) is calculated and stored register T, a. stearyl In step 42 16 T i + h is calculated.
  • x d / s is stored in the register T, and therefore (x d / s) + o; is calculated.
  • the result is stored in the register x d W. Therefore, ( xd / s) + a is stored in the register xd .
  • the register makes ⁇ (x d x + l) (x d + x + 2A) -2A- (x d -x) "
  • Equation 64 For the correspondence between points on the Montgomery-form elliptic curve and points on the Weierstrass-form elliptic curve, see K. Okeya, H. Kurumatani, K. Sakurai, Elliptic Curves with the Montgomery-Form and Their Cryptographic Applications, Public Key
  • y 1 ⁇ (x d X + 1) (x d + x + 2A) -2A- (x d ⁇ x) 2 x d + 1 ⁇ / (2sBy)... number 8 7
  • Step 4208 a calculation amount of square multiplication over a finite field is required.
  • step 42 12 the amount of calculation of the inverse operation on the finite field is required.
  • the computational complexity of addition and subtraction over a finite field is relatively small compared to the computational complexity of multiplication, squaring, and inverse operation over a finite field, and may be ignored.
  • the above procedure reduces the computational complexity of 7 M + S + I I need. This is much smaller than the computational complexity of the fast scalar multiplication.
  • the scalar value d is 160 bits
  • the calculation amount of the fast scalar multiplication is about It is estimated to be around 1500M.
  • I 4 OM
  • the amount of calculation for coordinate restoration is 47.8M, which is much smaller than the amount of calculation for fast scalar multiplication. Therefore, it was shown that the coordinates could be efficiently restored.
  • the high-speed scalar one-time calculation unit 202 inputs the point P on the ⁇ elstrass-type elliptic curve input to the scalar one-time calculation unit 103, and performs the following procedure to express the point expressed by the affine coordinates in the Montgomery-type elliptic curve.
  • step 4516 the given point P on the Weierstrass-form elliptic curve is transformed into a point represented by projective coordinates on the Montgomery-form elliptic curve. This point is referred to as point P again.
  • step 4501 the initial value 1 is substituted for the variable I.
  • step 4502 a point 2P that is twice as large as the point P is calculated.
  • step 4503 the point P on the elliptic curve input to the scalar one-time calculator 103 and the point 2P obtained in step 4502 are stored as a pair of points (P, 2P).
  • point P and point 2P are represented by projective coordinates.
  • step 4504 it is determined whether or not the variable I and the bit length of the scalar value d match, and if they match, the process proceeds to step 4515. If not, go to step 4505. In step 4505, the variable I is increased by one.
  • step 4506 it is determined whether the value of the I-th bit of the scalar value is 0 or 1. If the value of that bit is 0, go to step 4507. If the value of the bit is 1, go to step 4510. As step 4507, Add the points mP and (m + 1) P from the set of points (mP, (m + 1) P) represented by the mark mP + (m + 1) P, and add the point (2m + l) P Is calculated. Then go to step 4508.
  • the addition mP + (m + l) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 4508 doubling 2 (mP) of the point mP is performed from the set of points (mP (m + 1) P) represented by the projective coordinates to calculate a point 2mP. Then go to step 4509.
  • doubling 2 (mP) is calculated using the formula of doubling in the projective coordinates of the Montgomery-type elliptic curve.
  • step 4509 the point 2mP obtained in step 4508 and the point (2m + 1) P obtained in step 4507 are set as a point set (2mP (2m + 1) P), and the point set (mP (m + l) Store instead of P). Thereafter, the flow returns to step 4504.
  • step 4150 the point mP and the point (m + l) P are added mP + (m + l) P from the point set (mP (m + DP)) represented by the projective coordinates, and the point (2m + l) Calculate P. Then go to step 451 1.
  • the addition mP + (m + l) P is calculated using the addition formula in the projective coordinates of the Montgomery-form elliptic curve.
  • step 45 1 From the set of points represented by the coordinates (mP (m + 1) P), double the point (m + 1) P 2 ((m + 1) P) and calculate the point (2m + 2) P. Then, go to step 45 1 2.
  • doubling 2 ((m + l) P) is calculated using the formula of doubling in the projective coordinates of the Montgomery-form elliptic curve.
  • the set of (mP (m + 1) is stored instead of P. Then, the process returns to step 4504.
  • the point (2m + l ) P, the point (2m + 2) P, the point mP and the point (m + l) P are all represented in projective coordinates.
  • Z m + 1 be X d +1 and Z d +1 where Y m and Y m + 1 are the Y coordinates in the addition formula and the doubling formula in the projective coordinates of the Montgomery elliptic curve.
  • X d , z d x d + 1
  • the calculation amount of the addition formula in the projective coordinates of the Montgomery-form elliptic curve is 3 ⁇ + 2 S by taking ⁇ ; ⁇ 1.
  • is the complexity of multiplication over a finite field
  • S is the complexity of square multiplication over a finite field.
  • the computational complexity of the doubling formula in the projective coordinates of the Montgomery-form elliptic curve is 3 ⁇ + 2S. If the value of the I-th bit of the scalar value is 0, the amount of calculation for addition in step 4507 and the amount of calculation for doubling in step 4508 are required. That is, a calculation amount of 6 ⁇ + 4 S is required.
  • the computational complexity of addition in step 4510 and the computational complexity of doubling in step 4511 are required. In other words, a calculation amount of 6M + 4S is required. In any case, a calculation amount of 6 ⁇ + 4S is required.
  • Step 45 1 2 is (scalar value d Since the number of calculations is one, taking into account the computational complexity of doubling in step 4502 and the computational complexity of converting to affine coordinates in step 4515, the overall computational complexity is (6M + 4S) k + 3M—2S + I. Where k is the bit length of the scalar value d.
  • the computational complexity of the algorithm in the above procedure is approximately 1513M.
  • the computational complexity per bit of the scalar value d is about 9.2M.
  • this algorithm outputs xd and xd + 1 from the scalar value d and the point P on the Weierstrass-form elliptic curve without using the algorithm of the above procedure in the fast scalar multiplication unit 202.
  • Other algorithms may be used if they are fast.
  • the amount of calculation required for this scalar multiplication is 1561M.
  • the required computational cost is approximately 1640M, and the required computational cost has been reduced.
  • the first to 22nd embodiments have been described as the encryption / decryption processing device shown in FIG. 1 as a device for performing the decryption process.
  • the encryption / decryption processing device shown in FIG. 1 is shown to be capable of performing both encryption and decryption, it is configured so that it can perform only encryption processing or only decryption processing.
  • the processing described in the first to second embodiments may be a program stored in a computer-readable storage medium. In this case, the program is read into the storage unit in FIG. 1, and a processing unit such as a CPU, which is a processing unit, performs processing according to the program.
  • FIG. 27 is a diagram showing an embodiment of a high-speed scalar multiplication calculation method in which complete coordinates of a scalar multiplication point are given in the encryption processing using secret information in the encryption processing system of FIG.
  • FIG. 33 is a flowchart showing the flow of processing in the embodiment of the scalar multiplication calculation method of FIG.
  • the scalar multiplication unit 2 701 in FIG. 27 calculates the scalar value and the point on the Weierstrass-form elliptic curve from Compute and output a scalar multiple given full coordinates.
  • the elliptic curve converter 2704 converts the point on the Weierstrass-form elliptic curve to Montgomery-type Convert to a point on an elliptic curve. (Step 331).
  • the high-speed scalar multiplication unit 2 7 0 2 calculates the points on the Montgomery type elliptic curve converted by the scalar 1-value calculation unit 2 7 0 1 and the elliptic curve conversion unit 2 7 0 4 Receive (Step 3302).
  • the high-speed scalar multiplication unit 27002 calculates a part of the coordinates of the scalar multiplication point on the Montgomery-form elliptic curve from the received scalar value and the point on the Montgomery-form elliptic curve (step 3303), The information is given to the coordinate restoring unit 2703 (step 3304).
  • the coordinate restoring unit 2703 determines the information on the given scalar multiple on the Montgomery-form elliptic curve and the point on the Montgomery-form elliptic curve transformed by the elliptic curve transforming unit 2704 from the point on the Montgomery-form elliptic curve.
  • the coordinates of the scalar multiple point of are restored (step 3305).
  • the elliptic curve inverse transformation unit 2705 transforms the scalar multiple on the Montgomery-form elliptic curve restored by the coordinate restoration unit 2703 into a scalar multiple on the Weierstrass-form elliptic curve (Step 330).
  • the scalar multiplication unit 27001 outputs a scalar multiplication that is completely given coordinates on the Weierstrass-form elliptic curve as a calculation result. (Step 337).
  • the scalar multiplication on the Montgomery-type elliptic curve executed by the high-speed scalar multiplication unit 2702 and the coordinate restoration unit 2703 in the scalar multiplication unit 2701 is described above.
  • the scalar one-time calculation method on the Montgomery-form elliptic curve described in the first to fifth and 14th to 16th embodiments is directly applied. Therefore, this scalar multiplication is a fast scalar multiplication method that gives complete coordinates of the scalar multiplication point.
  • FIG. 22 shows a configuration in the case where the cryptographic processing system of this embodiment of FIG. 1 is used as a signature creation device.
  • the cryptographic processing unit 102 in FIG. 1 becomes the signature unit 222 in the signature creation device 222 in FIG.
  • FIG. 28 is a flowchart showing the flow of processing in the signature creation device of FIG.
  • FIG. 29 is a sequence diagram showing a processing flow in the signature creation device of FIG.
  • the signature creation device 222 outputs a message 222 attached with a signature from the given message 222 in the following manner.
  • the signature unit 222 receives it (step 2801).
  • the signature unit 2202 gives a point on the elliptic curve according to the message 222 received by the scalar multiplication unit 2203 (step 28 ⁇ 2).
  • the scalar multiplication unit 2203 receives a scalar value, which is secret information, from the secret information storage unit 222 (step 2803).
  • the scalar multiplication unit 2 203 calculates a scalar multiplication point from the received point on the elliptic curve and the scalar value (step 2804) and sends the scalar multiplication point to the signature unit 2 202 (step 2 805).
  • the signature unit 2202 performs a signature creation process based on the scalar multiple received from the scalar multiple calculation unit 2203 (step 2806). The result is output as a message 222 attached with a signature (step 287).
  • the above processing procedure will be described with reference to the sequence diagram of FIG. First, the processing executed by the signature unit 2901 (2202 in FIG. 22) will be described.
  • the signature unit 2901 receives the input message.
  • the signature unit 29001 selects a point on the elliptic curve based on the input message, gives a point on the elliptic curve to the scalar multiplication unit 2902, and Receive a scalar multiple.
  • the signature unit 2901 performs a signature creation process using the received scalar multiple, and outputs the result as an output message.
  • the scalar multiplication unit 290 0 2 calculates the point on the elliptic curve from the signature unit 290 1 receive.
  • the scalar multiplication unit 2902 receives a scalar value from the secret information storage unit 2903.
  • the scalar multiplication unit 290 0 2 gives a complete coordinate from the received point on the elliptic curve and the scalar value and calculates a scalar single point by a high-speed scalar multiplication method. Send a scalar multiple to 1.
  • the secret information storage unit 2903 sends the scalar value to the scalar multiplication unit 2902 so that the scalar multiplication unit 2902 can calculate the scalar multiplication.
  • the scalar multiplication performed by the scalar multiplication unit 222 is the same as that described in the first to second embodiments described above. Therefore, this scalar multiplication is a fast scalar multiplication method that gives complete coordinates of scalar multiplication points. Therefore, the signature unit 222 can use the complete coordinates of the scalar multiple when performing the signature creation processing, and can execute the processing at high speed.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

明 細 書 楕円曲線ス力ラ一倍計算方法及び装置並びに記憶媒体 技術分野
本発明はコンピュータネットワークにおけるセキュリティ技術に係り、 特に楕 円曲線暗号における暗号処理実行方法に関する。
背景技術
楕円曲,锒暗号は N. Koblitz, V. S. Millerにより提案された公開鍵暗号の一種で ある。 公開鍵暗号には、 公開鍵と呼ばれる一般に公開してよい情報と、 秘密鍵と 呼ばれる秘匿しなければならない秘密情報がある。 与えられたメッセージの暗号 化や署名の検証には公開鍵を用い、 与えられたメッセージの複号化や署名の作成 には秘密鍵を用いる。 楕円曲線暗号における秘密鍵は、 スカラー値が担っている。 また、 楕円曲線暗号の安全性は楕円曲線上の離散対数問題の求解が困難であるこ とに由来している。 ここで楕円曲線上の離散対数問題とは、 楕円曲線上のある点 Pとそのスカラー倍の点 dPが与えられた時、 スカラー値 dを求める問題である。 こ こにおいて、 楕円曲線上の点とは、 楕円曲線の定義方程式をみたす数の組をいい、 楕円曲線上の点全体には、 無限遠点という仮想的な点を単位元とした演算、 すな わち楕円曲線上の加法 (乃至は加算) が定義される。 そして、 同じ点同士の楕円 曲線上の加法のことを、 特に楕円曲線上の 2倍算という。 楕円曲線上の 2点の加 法は次のようにして計算される。 2点を通る直線を引くとその直線は楕円曲線と 他の点において交わる。 その交わった点と X軸に関して対称な点を加法を行なつ た結果の点とする。 楕円曲線上の点の 2倍算は次のようにして計算される。 楕円 曲線上の点における接線をひくと、 その接線は楕円曲線上の他の点において交わ る。 その交わった点と X座標に関して対称な点を 2倍算を行なった結果の点とす る。 ある点に対し、 特定の回数だけ加法を行なうことをスカラー倍といい、 その 結果をスカラ一倍点、 その回数のことをスカラー値という。
情報通信ネットワークの進展と共に電子情報に対する秘匿や認証の為に暗号技 術は不可欠な要素となってきている。 そこでは暗号技術の安全性とともに高速化 が望まれている。 楕円曲線上の離散対数問題が非常に困難である為に、 素因数分 解の困難性を安全性の根拠にしている R S A暗号と比べて、 楕円曲線暗号は鍵長 を比較的短くすることができる。 そのため比較的高速な暗号処理が可能である。 し力 しながら、 処理能力の制限されているスマートカードゃ大量の暗号処理を行 なう必要のあるサーバ等においては、 必ずしも満足できる程高速であるとは限ら ない。 それゆえに暗号のさらなる高速化が必要となる。
楕円曲線暗号には、 ワイエルシュトラス型楕円曲線と呼ばれる楕円曲線が通常 用レヽられてレヽる。 A. Miyaji, T. Ono, H. Cohen, Efficient elliptic curve exponentiation using mixed coordinates, Advances in Cryptology
roceedings of ASIACRYPT' 98, LNCS 1514, Springer- Verlag, (1998) pp. 51-65 には、 ワイエルシュトラス型楕円曲線において、 ウィンドウ法を用いてヤコビア ン座標を中心とした混合座標系を用いたスカラー倍計算方法は高速なスカラー倍 計算方法として記載されている。 この計算方法は、 スカラー倍点の座標を、 省略 することなく正確に表示している。 すなわち、 ァフィン座標系であれば、 X座標 及び y座標、 射影座標乃至はヤコビアン座標であれば、 X座標、 Y座標及び Z座 標の値を全て与えている。
一方でモンゴメリ型楕円曲線 B Y 2 = X 3 + AX 2 + X (A, B e F p ) を用 いるとワイエルシュトラス型楕円曲線よりも高速に演算を実行できることが P. L. Montgomery, Speeding the Pollard and Elliptic Curve Methods of Factorization, Math. Comp. 48 (1987) pp. 243-264. に記載されている。 これ は、 スカラー値の特定のビッ トの値に依存して、 楕円曲線上の点の組 (mP, (m+1) P)から点の組 (2mP, (2m+l) P)乃至は点の組 ( (2m+l) P, (2m+2) P)を繰り返 し計算するスカラー倍計算方法において、 モンゴメリ型楕円曲線を利用すること により、 加算及び 2倍算の計算時間が短縮されることに由来する。 このスカラー 倍計算法は、 ワイエルシュトラス型楕円曲線における、 ウィンドウ法を用いてャ コビアン座標を中心とした混合座標系を用いた場合よりも、 高速に計算すること ができる。 しかしながら、 この方法は楕円曲線上の点の y座標の値は計算しなレ、。 多くの暗号処理においては、 本質的に y座標を用いないので、 この事は問題には ならないが、 一部の暗号処理を実行する又は完全な形で標準に準拠しょうとすれ ば、 y座標の値も必要となる。
以上は楕円曲線の定義体の標数が 5以上の素数の場合であるが、 他方、 標数 2 の有限体上定義された楕円曲線に対しては、 スカラー倍点の完全な座標を与え且 つ高速なスカラー倍計算方法力 S J. Lopez, R. Dahab, Fast Multiplication on Elliptic Curves over GF (2m) without Precomputation, Cryptographies Hardware and Embedded Systems: Proceedings of CHE¾ 99, LNCS 1717, Springer- Verlag, (1999) pp. 316-327. に記載されている。
上記従来技術により、 標数が 5以上の有限体上定義された楕円曲線を用いて楕 円曲線暗号を構成した場合、 ワイエルシュトラス型楕円曲線においてウィンドウ 法及び混合座標系を用いると、 スカラー倍点の座標を完全に計算することができ るが、 モンゴメリ型楕円曲線のスカラー倍計算方法を用いた場合程高速に計算す ることはできない。 モンゴメリ型楕円曲線におけるスカラー倍計算方法を用いる と、 ワイエルシュトラス型楕円曲線においてウィンドウ法及び混合座標系を用い た場合より高速に計算することが可能であるが、 スカラー倍点の座標を完全に与 えること、 すなわち y座標を計算することができない。 したがって、 スカラー倍 計算方法として、 高速化を計ろうとするとスカラー倍点の座標を完全に与えるこ とができず、 スカラー倍点の座標を完全に与えようとすると高速に計算ができな レヽという状態にあった。
発明の開示
本発明の目的は、 標数が 5以上の有限体上定義された楕円曲線において、 モン ゴメリ型楕円曲線におけるスカラー倍演算と同程度の高速さで、 スカラー倍点の 座標を完全に与えることができる、 即ち、 X座標と y座標を共に計算できるスカ ラー倍計算方法を提供することにある。
上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限体上 定義された楕円曲線において、 スカラー値及ぴ楕円曲線上の点からスカラー倍点 を計算するスカラ一倍計算方法であつて、 前記ス力ラ一倍点の部分情報を計算す るステップと、 前記スカラー倍点の部分情報から完全な座標を復元するステップ とを有することを特 ί敷とする。
また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義された楕円曲線において、 スカラ一値及ぴ楕円曲線上の点からスカラー 倍点を計算するスカラー倍計算方法であって、 前記スカラー倍点の部分情報を計 算するステップと、 前記ス力ラ一倍点の部分情報からァフィン座標において完全 な座標を復元するステップとを有することを特徴とする。
また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義された楕円曲線において、 スカラ一値及ぴ楕円曲線上の点からスカラー 倍点を計算するスカラー倍計算方法であって、 前記スカラー倍点の部分情報を計 算するステップと、 前記スカラー倍点の部分情報から射影座標において完全な座 標を復元するステップとを有することを特徴とする。
また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義されたモンゴメリ型楕円曲線において、 スカラー値及びモンゴメリ型楕 円曲線上の点からスカラ一倍点を計算するスカラ一倍計算方法であつて、 前記ス 力ラ一倍点の部分情報を計算するステップと、 前記ス力ラ一倍点の部分情報から 完全な座標を復元するステップとを有することを特徴とする。
また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義されたワイエルシュトラス型楕円曲線において、 スカラー値及びヮイエ ルシュトラス型楕円曲線上の点からスカラー倍点を計算するスカラー倍計算方法 であって、 前記スカラー倍点の部分情報を計算するステップと、 前記スカラー倍 点の部分情報から完全な座標を復元するステツプとを有することを特敷とする。 また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義されたモンゴメリ型楕円曲線において、 スカラー値及ぴモンゴメリ型楕 円曲線上の点からスカラ一倍点を計算するスカラ一倍計算方法であって、 前記ス カラー倍点の部分情報を計算するステップと、 前記スカラー倍点の部分情報とし て射影座標で与えられた前記ス力ラ一倍点の X座標及び Ζ座標並びに前記ス力ラ 一倍点と前記モンゴメリ型楕円曲線上の点を加算した点の射影座標における X座 標及ぴ Ζ座標を与え、 ァフィン座標において完全な座標を復元するステップとを 有することを特徴とする。
また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義されたモンゴメリ型楕円曲線において、 スカラー値及びモンゴメリ型楕 円曲線上の点からスカラ一倍点を計算するスカラ一倍計算方法であつて、 前記ス カラー倍点の部分情報を計算するステップと、 前記スカラー倍点の部分情報とし て射影座標で与えられた前記スカラー倍点の X座標及ぴ Z座標並びに前記スカラ 一倍点と前記モンゴメリ型楕円曲線上の点を加算した点の射影座標における X座 標及ぴ Z座標を与え、 射影座標において完全な座標を復元するステップとを有す ることを特徴とする。
また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義されたモンゴメリ型楕円曲線において、 スカラー値及びモンゴメリ型楕 円曲線上の点からスカラー倍点を計算するスカラー倍計算方法であって、 前記ス カラー倍点の部分情報を計算するステップと、 前記スカラー倍点の部分情報とし て射影座標で与えられた前記スカラー倍点の X座標及び z座標、 前記スカラー倍 点と前記モンゴメリ型楕円曲線上の点を加算した点の射影座標における X座標及 び z座標並びに前記ス力ラ一倍点と前記モンゴメリ型楕円曲線上の点を減算した 点の射影座標における X座標及び z座標を与え、 ァフィン座標において完全な座 標を復元するステップとを有することを特徴とする。
また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義されたモンゴメリ型楕円曲線において、 スカラー値及ぴモンゴメリ型楕 円曲線上の点からスカラー倍点を計算するスカラー倍計算方法であって、 前記ス カラー倍点の部分情報を計算するステップと、 前記スカラー倍点の部分情報とし て射影座標で与えられた前記スカラー倍点の X座標及ぴ Z座標、 前記スカラー倍 点と前記モンゴメリ型楕円曲線上の点を加算した点の射影座標における X座標及 び z座標並びに前記ス力ラ一倍点と前記モンゴメリ型楕円曲線上の点を減算した 点の射影座標における X座標及ぴ z座標を与え、 射影座標において完全な座標を 復元するステップとを有することを特徴とする。
また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義されたモンゴメリ型楕円曲線において、 スカラー値及びモンゴメリ型楕 円曲線上の点からスカラ一倍点を計算するスカラ一倍計算方法であつて、 前記ス カラー倍点の部分情報を計算するステップと、 前記スカラー倍点の部分情報とし ン座標で与えられた前記スカラー倍点の X座標、 前記スカラー倍点と前 記モンゴメリ型楕円曲線上の点を加算した点のァフィン座標における X座標並ぴ に前記スカラー倍点と前記モンゴメリ型楕円曲線上の点を減算した点のァフィン 座標における X座標を与え、 ァフィン座標において完全な座標を復元するステツ プとを有することを特 1敦とする。
また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義されたワイエルシュトラス型楕円曲線において、 スカラー値及ぴヮイエ ルシュトラス型楕円曲線上の点からスカラ一倍点を計算するスカラ一倍計算方法 であって、 前記スカラー倍点の部分情報を計算するステップと、 前記スカラー倍 点の部分情報として射影座標で与えられた前記スカラー倍点の X座標及ぴ Z座標、 前記スカラー倍点と前記ワイエルシュトラス型楕円曲線上の点を加算した点の射 影座標における X座標及び z座標並びに前記スカラー倍点と前記ワイエルシュト ラス型楕円曲線上の点を減算した点の射影座標における X座標及び z座標を与え、 ァフィン座標にぉレ、て完全な座標を復元するステツプとを有することを特徴とす る。
また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義されたワイエルシュトラス型楕円曲線において、 スカラー値及ぴヮイエ ルシュトラス型楕円曲線上の点からスカラ一倍点を計算するス力ラ一倍計算方法 であって、 前記スカラー倍点の部分情報を計算するステップと、 前記スカラー倍 点の部分情報として射影座標で与えられた前記スカラー倍点の X座標及び Z座標、 前記スカラー倍点と前記ワイエルシュトラス型楕円曲線上の点を加算した点の射 影座標における X座標及び Z座標並びに前記ス力ラ一倍点と前記ワイエルシュト ラス型楕円曲線上の点を減算した点の射影座標における X座標及び Z座標を与え、 射影座標において完全な座標を復元するステップとを有することを特徴とする。 また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義されたワイエルシュトラス型精円曲線において、 スカラー値及びワイェ ルシュトラス型楕円曲線上の点からスカラ一倍点を計算するスカラ一倍計算方法 であって、 前記スカラー倍点の部分情報を計算するステップと、 前記スカラー倍 点の部分情報としてァフィン座標で与えられた前記ス力ラ一倍点の X座標、 前記 スカラ一倍点と前記ワイエルシュトラス型楕円曲線上の点を加算した点のァフィ ン座標における X座標並びに前記ス力ラ一倍点と前記ワイエルシュトラス型楕円 曲線上の点を減算した点のァフィン座標における X座標を与え、 ァフィン座標に おいて完全な座標を復元するステップとを有することを特徴とする。
また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義されたワイエルシュトラス型楕円曲線において、 スカラー値及びワイェ ルシュトラス型楕円曲線上の点からスカラ一倍点を計算するスカラ一倍計算方法 であって、 前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円曲線に変換す るステップと、 モンゴメリ型楕円曲線におけるスカラー倍点の部分情報を計算す るステップと、 前記モンゴメリ型楕円曲線におけるスカラー倍点の部分情報から ワイエルシュトラス型楕円曲線において完全な座標を復元するステップとを有す ることを特徴とする。
また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義されたワイエルシュトラス型楕円曲線において、 スカラー値及びワイェ ルシュトラス型楕円曲線上の点からスカラ一倍点を計算するス力ラ一倍計算方法 であって、 前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円曲線に変換す るステップと、 モンゴメリ型楕円曲線におけるスカラー倍点の部分情報を計算す るステップと、 前記モンゴメリ型楕円曲線におけるスカラー倍点の部分情報から モンゴメリ型楕円曲線において完全な座標を復元するステップと、 前記モンゴメ リ型楕円曲線において完全な座標が復元されたスカラー倍点からワイエルシュト ラス型楕円曲線におけるスカラー倍点を計算するステップとを有することを特徴 とする。
また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義されたワイエルシュトラス型楕円曲線において、 スカラー値及ぴヮイエ ルシュトラス型楕円曲線上の点からスカラー倍点を計算するスカラ一倍計算方法 であって、 前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円曲線に変換す るステップと、 モンゴメリ型楕円曲線におけるスカラー倍点の部分情報を計算す るステップと、 前記モンゴメリ型楕円曲線におけるスカラー倍点の部分情報とし てモンゴメリ型楕円曲線において射影座標で与えられたスカラー倍点の X座標及 び Z座標並びに前記スカラー倍点とモンゴメリ型楕円曲線上の点を加算した点の 射影座標における x座標及び z座標を与え、 ワイエルシュトラス型楕円曲,線にお いてァフィン座標における完全な座標を復元するステップとを有することを特徴 とする。
また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 上定義されたワイエルシュトラス型楕円曲線において、 スカラー値及ぴワイエル シュトラス型楕円曲線上の点からスカラ一倍点を計算するスカラ一倍計算方法で あって、 前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円曲線に変換する ステップと、 モンゴメリ型楕円曲線におけるスカラー倍点の部分情報を計算する ステップと、 前記モンゴメリ型楕円曲線におけるスカラー倍点の部分情報として モンゴメリ型楕円曲線において射影座標で与えられたスカラー倍点の X座標及ぴ z座標並びに前記スカラ一倍点とモンゴメリ型楕円曲線上の点を加算した点の射 影座標における X座標及び Z座標を与え、 ワイエルシュトラス型楕円曲線におい て射影座標における完全な座標を復元するステップとを有することを特徴とする。 また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義されたワイエルシュトラス型楕円曲線において、 スカラー値及びワイェ ルシュトラス型楕円曲線上の点からスカラー倍点を計算するスカラー倍計算方法 であって、 前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円曲線に変換す るステップと、 モンゴメリ型楕円曲線におけるスカラー倍点の部分情報を計算す るステップと、 前記モンゴメリ型楕円曲線におけるスカラー倍点の部分情報とし てモンゴメリ型楕円曲線において射影座標で与えられたスカラー倍点の X座標及 び Z座標、 前記スカラー倍点とモンゴメリ型楕円曲線上の点を加算した点の射影 座標における X座標及ぴ z座標並びに前記スカラー倍点とモンゴメリ型楕円曲線 上の点を減算した点の射影座標における X座標及び Z座標を与え、 ワイエルシュ トラス型楕円曲線においてァフィン座標における完全な座標を復元するステップ とを含むことを特徴とする。
また本発明は、 楕円曲線暗号における標数 5以上の有限体上定義されたヮイエ ルシュトラス型楕円曲線において、 スカラー値及びワイエルシュトラス型楕円曲 線上の点からスカラ 倍点を計算するス力ラ一倍計算方法であつて、 前記ワイェ ルシュトラス型楕円曲線をモンゴメリ型楕円曲線に変換するステップと、 モンゴ メリ型楕円曲線におけるスカラー倍点の部分情報を計算するステップと、 前記モ ンゴメリ型楕円曲線におけるスカラー倍点の部分情報としてモンゴメリ型楕円曲 線において射影座標で与えられたスカラー倍点の X座標及ぴ Z座標、 前記スカラ 一倍点とモンゴメリ型楕円曲線上の点を加算した点の射影座標における X座標及 ぴ Z座標並びに前記スカラ一倍点とモンゴメリ型楕円曲線上の点を減算した点の 射影座標における X座標及ぴ z座標を与え、 ワイエルシュトラス型楕円曲線にお レ、て射影座標における完全な座標を復元するステップとを有することを特徴とす る。
また上記目的を達する一手段として、 楕円曲線暗号における標数 5以上の有限 体上定義されたワイエルシュトラス型楕円曲線において、 スカラー値及びワイェ ルシュトラス型楕円曲線上の点からスカラ一倍点を計算するスカラ一倍計算方法 であって、 前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円曲線に変換す るステップと、 モンゴメリ型楕円曲線におけるスカラー倍点の部分情報を計算す るステップと、 前記モンゴメリ型楕円曲線におけるスカラー倍点の部分情報とし てモンゴメリ型楕円曲線においてァフィン座標で与えられたスカラー倍点の X座 標、 前記スカラー倍点とモンゴメリ型楕円曲線上の点を加算した点のァフィン座 標における X座標並びに前記スカラー倍点とモンゴメリ型楕円曲線上の点を減算 した点のァフィン座標における X座標を与え、 ワイエルシュトラス型楕円曲線に おいてァフィン座標における完全な座標を復元するステップとを有することを特 徵とする。
図面の簡単な説明
図 1は本発明の暗号処理システムの構成図である。
図 2は本発明の実施例におけるスカラー倍計算方法及ぴ装置における処理の流 れを示す図である。
図 3は図 1の暗号処理システムでの処理の流れを示すシーケンス図である。 図 4は本発明の第 1、 第 2、 第 1 4及び第 1 5実施例のスカラー倍計算方法に おける高速スカラ一倍計算方法を示すフローチャート図である。
図 5は本発明の第 3及び第 4実施例のス力ラ一倍計算方法における高速ス力ラ 一倍計算方法を示すフローチヤ一ト図である。 図 6は本発明の第 5実施例のス力ラ一倍計算方法における高速ス力ラ一倍計算 方法を示すフローチャート図である。
図 7は本発明の第 6、 第 7及ぴ第 8実施例のスカラー倍計算方法における高速 スカラー倍計算方法を示すフローチャート図である。
図 8は本発明の第 9、 第 1 0、 第 2 0及ぴ第 2 1実施例のスカラー倍計算方法 における高速スカラ一倍計算方法を示すフローチャート図である。
図 9は本発明の第 2実施例のスカラー倍計算方法における座標復元方法を示す フローチヤ一ト図である。
図 1 0は本発明の第 1 1及び第 1 2実施例のスカラー倍計算方法における高速 スカラー倍計算方法を示すフローチャート図である。
図 1 1は本発明の第 1実施例のスカラー倍計算方法における座標復元方法を示 すフローチャート図である。
図 1 2は本 明の第 3実施例のスカラー倍計算方法における座標復元方法を示 すフローチャート図である。
図 1 3は本発明の第 4実施例のスカラー倍計算方法における座標復元方法を示 すフローチヤ一ト図である。
図 1 4は本発明の第 6実施例のスカラー倍計算方法における座標復元方法を示 すフローチヤ一ト図である。
図 1 5は本発明の第 7実施例のスカラー倍計算方法における座標復元方法を示 すフローチャート図である。
図 1 6は本発明の第 8実施例のスカラー倍計算方法における座標復元方法を示 すフローチャート図である。
図 1 7は本発明の第 9実施例のスカラー倍計算方法における座標復元方法を示 すフローチヤ一ト図である。
図 1 8は本発明の第 1 0実施例のスカラー倍計算方法における座標復元方法を 示すフローチャート図である。
図 1 9は本発明の第 1 1実施例のスカラー倍計算方法における座標復元方法を 示すフローチヤ一ト図である。
図 2 0は本発明の第 1 2実施例のスカラー倍計算方法における座標復元方法を 示すフローチャート図である。
図 2 1は本発明の第 1 3実施例のスカラー倍計算方法における座標復元方法を 示すフローチャート図である。
図 2 2は本発明の実施の形態に係る署名作成装置の構成図である。
図 2 3は本発明の実施の形態に係る復号ィ匕装置の構成図である。
図 2 4は本発明の第 1 3実施例のスカラー倍計算方法における高速スカラー倍 計算方法を示すフローチャート図である。
図 2 5は図 2のスカラ一倍計算部におけるスカラ一倍計算方法を示すフローチ ヤートである。
図 2 6は本発明の第 5実施例のスカラー倍計算方法における座標復元方法を示 すフローチャート図である。
図 2 7は本発明の実施例におけるスカラ一倍計算方法及び装置における処理の 流れを示す図である。
図 2 8は図 2 2の署名作成装置における署名作成方法を示すフローチャートで ある。
図 2 9は図 2 2の署名作成装置における処理の流れを示すシーケンス図である。 図 3 0は図 2 3の復号化装置における復号化方法を示すフローチャートである。 図 3 1は図 2 3の復号化装置における処理の流れを示すシーケンス図である。 図 3 2は図 1の暗号処理システムにおける暗号処理方法を示すフローチヤ一ト である。
図 3 3は図 2 7のスカラー倍計算部におけるスカラー倍計算方法を示すフロー チヤ一トである。
図 3 4は本発明の第 1 4実施例のスカラー倍計算方法における座標復元方法を 示すフローチャート図である。
図 3 5は本発明の第 1 5実施例のスカラー倍計算方法における座標復元方法を 示すフローチャート図である。
図 3 6は本発明の第 1 6実施例のスカラー倍計算方法における座標復元方法を 示すフローチヤ一ト図である。
図 3 7は本発明の第 1 7実施例のスカラー倍計算方法における座標復元方法を 示すフローチヤ一ト図である。
図 3 8は本発明の第 1 8実施例のスカラー倍計算方法における座標復元方法を 示すフローチヤ一ト図である。
図 3 9は本発明の第 1 9実施例のスカラー倍計算方法における座標復元方法を 示すフローチャート図である。
図 4 0は本発明の第 2 0実施例のスカラー倍計算方法における座標復元方法を 示すフローチヤ一ト図である。
図 4 1は本発明の第 2 1実施例のスカラー倍計算方法における座標復元方法を 示すフローチャート図である。
図 4 2は本発明の第 2 2実施例のスカラー倍計算方法における座標復元方法を 示すフローチャート図である。
図 4 3は本発明の第 1 6実施例のスカラー倍計算方法における高速スカラー倍 計算方法を示すフ口一チヤ一ト図である。
図 4 4は本発明の第 1 7、 第 1 8及び第 1 9実施例のスカラー倍計算方法にお ける高速スカラー倍計算方法を示すフローチャート図である。
図 4 5は本発明の第 2 2実施例のスカラー倍計算方法における高速スカラー倍 計算方法を示すフローチヤ一ト図である。
発明を実施するための最良の形態
以下、 本発明の実施例を図面により説明する。
図 1は暗号/復号処理装置の構成を示したものである。 この暗号/復号処理装置 1 0 1は、 入力されたメッセージの暗号化、 喑号化されたメッセージの複号^ (匕の いずれも行えるようにしたものである。 尚、 ここで扱う楕円曲線は標数 5以上の 楕円曲線とする。
入力されたメッセージを暗号化し、 暗号ィ匕されたメッセージを復号化する場合、 一般に次の数 1が成立する。
Pm+ k ( a Q) - a ( k Q) = Pm …数 1
ここで、 P mはメッセージであり、 kは乱数、 aは秘密鍵を示す定数、 Qは定 点である。 この式の P m+ k ( a Q) の a Qは、 公開鍵を示しており、 入力され たメッセージを公開鍵によって暗号ィ匕することを示している。 a ( k Q) の aは 秘密鍵を示しており、 秘密鍵により復号ィヒすることを示している。
従って、 図 1に示した暗号/復号処理装置 1 01をメッセージの暗号化だけに 用いる場合には、 Pm+k (a Q) 及び kQを計算して出力し、 複号化だけに用 いる場合には、 秘密鍵 a及ぴ k Qより一 a (kQ) を計算し、 (Pm+ k (a Q) ) -a (kQ) を計算して出力するようにすればよい。
図 1に示した暗号/復号処理装置 1 01は、 処理部 1 1 0と、 記憶部 1 20、 レジスタ部 130とを有している。 処理部 120は、 暗号化処理に必要な処理を 機能プロックで示しており、 入力されたメッセージの暗号ィ匕ゃ暗号ィ匕されたメッ セージの複号化を行う暗号/復号処理部 102、 暗号/復号処理部 102で暗号化 や復号ィ匕を行うのに必要なパラメータを演算するスカラー倍計算部 1 03とを有 している。 記憶部 120は、 定数、 秘密情報 (例えば、 秘密鍵である。 ) などを 記憶している。 レジスタ部 1 30は、 暗号ィ匕又は復号化処理において演算の結果 や、 記憶部 120に記憶された情報を一次的に記憶する。 尚、 処理部 110、 レ ジスタ部 130は以下に説明する処理を行う専用の演算装置や CPUなどにより 実現することができ、 記憶部 1 20は、 RAM、 ROMなどによって実現するこ とができる。
次に、 図 1に示した暗号/復号処理装置 1 01の動作について説明する。 図 3 は、 暗号/復号処理装置 101において暗号化、 復号化を行う場合の各部の情報 の伝達を示したものである。
暗号 Z復号処理部 102は暗号化処理を行なう場合は暗号化処理部 102と表 記し、 複号化処理を行なう場合は復号化処理部 102と表記する。
まず、 図 30により入力されたメッセージを暗号ィ匕する場合の動作について説 明する。
暗号/復号処理部 102へメッセージが入力されると (3001) 、 入力され たメッセージのビット長が予め定めたビット長カ否かを判断する。 予め定めたビ ット長より長い場合には、 予め定めたビット長となるようにメッセージを区切る (以下、 メッセージは所定のビット長に区切られているものとして説明する。 ) 。 次に、 暗号/復号処理部 102は、 メッセージのビット列によって表される数値 を X座標 (xl) にもつ楕円曲線上の y座標の値 (yl) を計算する。 例えば、 モ ンゴメリ型楕円曲線は、 B yl2=xl3+Axl2 + xlで表されるので、 これよ り y座標の値を求めることができる。 尚、 B Aはそれぞれ定数である。 暗号ィ匕 処理部 102は、 公開鍵 aQ及び Qの X座標、 y座標の値をスカラー倍計算部 1 03へ送る。 このとき、 暗号化処理部 1 02は乱数を生成し、 これをスカラー倍 計算部 103へ送る (3002) 。 スカラー倍計算部 103は、 Qの x座標、 y 座標の値、 乱数によるスカラー倍点 (xdl ydl) と、 公開鍵 a Qの X座標、 y 座標の値、 乱数によるスカラー倍点 (xd2 yd2) とを計算し (3003) 、 計 算されたスカラー倍点を暗号化処理部 102へ送る (3004) 。 暗号化処理部 102は、 送られたスカラー倍点を用いて、 暗号化処理を行う (3005) 。 例 えば、 モンゴメリ型の楕円曲線については、 次式により喑号ィ匕されたメッセージ xel xe2を得る。
xel=B ( (ydl-yl) I (xdl-xl) ) 2_A— xl—xdl …数 2
xe2= xd2 …娄女 3 暗号/復号処理装置 101は暗号/復号処理部 102で暗号化されたメッセージ を出力する。
次に、 図 32により暗号化されたメッセージを復号化する場合の動作について 説明する。
暗号 /復号処理部 1 02へ暗号化されたメッセージが入力されると (320 1) 、 暗号ィ匕されたメッセージのビット列によって表される数値を X座標にもつ 楕円曲線上の y座標の値を計算する。 ここで、 暗号ィ匕されたメッセージが xel xe2のビット列であり、 モンゴメリ型楕円曲線の場合、 y座標の値 (yel) は B yel2 = xel +Axel2 + xelから得られる。 尚、 B Aはそれぞれ定数であ る。 暗号 Z復号処理部 102は、 X座標、 y座標の値 (xel yel) をスカラー 倍計算部 103へ送る (3202) 。 スカラ一倍計算部 103は記憶部 120力、 ら秘密情報を読み出し (3203) X座標、 y座標の値、 秘密情報からスカラ 一倍点 (xd3 yd3) を計算し (3204) 、 計算されたスカラー倍点を暗号/ 復号処理部 1 02へ送る (3205) 。 暗号 Z復号処理部 102は、 送られたス カラー倍点を用いて、 復号ィ匕処理を行う (3206) 。 例えば、 暗号化されたメ ッセージが、 xel xe2のビット列であり、 モンゴメリ型の楕円曲線の場合は、 次式により x flを得る。
X f 1=B ( ( y e2+ y d3) / ( x e2- x d3) ) 2— A— x e2— x d3 …数 4
この x flは、 暗号化される前のメッセージ X 1に相当するものである。
復号処理部 1 0 2は復号ィ匕されたメッセージ xflを出力する (3 2 0 7 ) 以上のようにして、 暗号/復号処理部 1 0 2により暗号化、 または復号化処理 が行われる。
次に、 暗号化処理装置 1 0 1のスカラー倍計算部 1 0 3の処理について説明す る。 ここでは、 暗号化処理装置 1 0 1が、 復号ィ匕処理を行う場合を例に以下、 説 明する。
図 2は、 スカラー倍計算部 1 0 3の機能プロックを示したものである。 図 2 5 は、 スカラー倍計算部 1 0 3の動作を示したものである。
高速ス力ラ一倍計算部 2 0 2力 S、 秘密情報であるスカラ一値及び暗号化された メッセージと、 暗号化されたメッセージが X座標となる楕円曲線上の Y座標の値で ある楕円曲線上の点を受け取る (ステップ 2 5 0 1 ) と、 高速スカラー倍計算部 2 0 2は受け取ったスカラー値と楕円曲線上の点からスカラー倍点の座標の一部 の値を計算し (ステップ 2 5 0 2 ) 、 その情報を座標復元部 2 0 3に与える (ス テツプ 2 5 0 3 ) 。 座標復元部 2 0 3は与えられたスカラー倍点の情報及び入力 された楕円曲線上の点よりスカラ一倍点の座標の復元を行なう (ステップ 2 5 0 4 ) 。 スカラー倍計算部 1 0 3は完全に座標が与えられたスカラー倍点を計算結 果として出力する (ステップ 2 5 0 5 ) 。 ここで、 完全に座標が与えられたスカ ラー倍点とは、 y座標が計算されて出力されることを意味する (以下、 同じ。 ) 。 以下、 スカラー倍計算部 1 0 3の高速スカラー倍計算部 2 0 2、 座標復元部 2 0 3についていくつかの実施例を説明する。
第 1の実施例は、 スカラ一倍計算部 1 0 3がスカラー値 d及びモンゴメリ型楕 円曲線上の点 Pから、 モンゴメリ型楕円曲線におけるァフィン座標の点として完 全な座標が与えられたスカラー倍点 (x d , y d ) を計算し出力するものである。 スカラー値 d及びモンゴメリ型楕円曲線上の点 Pをスカラー倍計算部 1 0 3に入力 すると高速スカラー倍計算部 2 0 2がそれを受け取る。 高速スカラー倍計算部 2 0 2は受け取ったスカラー値 dと与えられたモンゴメリ型楕円曲線上の点 Pから リ型楕円曲線において射影座標で表されたスカラー倍点 dP=(Xd,Yd, Zd)の座標のうち Xd及び Zd、 射影座標で表されたモンゴメリ型楕円曲線上の点 (d+l)P=(Xd + 1,Yd + 1,Zd+ 1) の座標のうち Xd + ]L及び Zd + iを計算し、 ァフ ィン座標で表された入力されたモンゴメリ型楕円曲線上の点 P=(x, y)と共にそ の情報を座標復元部 203に与える。 座標復元部 203は与えられた座標の値 Xd、 Zd、 Xd + 1、 Zd + 1、 x及ぴ yよりモンゴメリ型楕円曲線においてァフィ ン座標で表されたスカラ一倍点 dP= (xd,yd)の座標 X d及び y dの復元を行なう。 スカラー倍計算部 103はァフィン座標において完全に座標が与えられたスカラ 一倍点 (xd,yd)を計算結果として出力する。
次に図 11により、 座標 (1,2(1(1+ 1,2£1+1が与ぇられた場合に (1, £1 を出力する座標復元部の処理について説明する。
座標復元部 203では、 モンゴメリ型楕円曲線において射影座標で表されたス 力ラ一倍点 dP= (X d , Y d, Z d )の座標のうち X d及ぴ Z d、 射影座標で表されたモン ゴメリ型楕円曲線上の点(d+l)P=(X d +l d+l,Zd+lノの J坐ネ¾のつつ X d + 1及 び Zd + 1、 スカラー倍計算部 103に入力されたモンゴメリ型楕円曲線上の点 P をァフィン座標で表した(x, y)を入力し、 以下の手順でァフィン座標おいて完全 な座標が与えられたスカラー倍点 (xd,yd)を出力する。 ここで入力されたモン ゴメリ型楕円曲線上の点 Pのァフィン座標を(x,y)で、 射影座標を (X Y Z で それぞれ表す。 入力されたスカラー値を dとしてモンゴメリ型楕円曲線における スカラー倍点 dPのァフィン座標を(xd,yd)で、 射影座標を(Xd,Yd,Zd)でそれぞ れ表す。 モンゴメリ型楕円曲線上の点(d - 1) Pのァフィン座標 ¾r(xd-i>yd-i) で、 射影座標を (Xd一 Yd— ^Zd— でそれぞれ表す。 モンゴメリ型楕円曲線 上の点(d+l)Pのァフィン座標を(xd + , y d + )で、 射影座標を(Xd + , Yd + , Zd + 1)でそれぞれ表す。
ステップ 1 101において Xd Xxが計算され、 レジスタ に格納される。 ス テツプ 1 102において Ti_Zdが計算される。 ここでレジスタ には XdXが 格納されており、 したがって Xdx - Zd が計算される。 その結果がレジスタ丁ェに 格納される。 ステップ 1 103において ZdXxが計算され、 レジスタ T2に格納 される。 ステップ 1 1 04において Xrt- Τ。が計算される。 ここでレジスタ T 2 には Zdxが格納されており、 したがって Xd - xZdが計算される。 その結果がレジ スタ T 2に格納される。 ステップ 1 105において Xd + 1 XT 2が計算される。 ここでレジスタ T 2には) (d - xZdが格納されており、 したがって; Xd+ i (Xd-xZd) が計算される。 その結果がレジスタ T3に格納される。 ステップ 1 1 06におい て Τ2の 2乗が計算される。 ここでレジスタ Τ2には(Xd - xZd)が格納されてお り、 したがって (Xd- xZd) 2が計算される。 その結果がレジスタ T 2に格納され る。 ステップ 1 1 07において T2xXd+ 1が計算される。 ここでレジスタ T 2 には (Xd xZd) 2が格納されており、 したがって Xd + 1 (Xd-xZd) 2が計算される。 その結果がレジスタ T 2に格納される。 ステップ 1 1 08において T 2xZd+ェ が計算される。 ここでレジスタ T 2には Xd + 1 (Xd- xZd) が格納されており、 した力 sつて Zd + 1Xd + 1 (Xd- xZd) 2が計算される。 その結果がレジスタ T 2に格 内される。 ステップ 1 109において T2Xyが計算される。 ここでレジスタ T2には Zd + 1Xd + 1 (Xd-xZd) 2力格糸内されており、 した力 sつて yzd + 1xd+ェ (Xd - xZd) "が計算される。 その結果がレジスタ T2に格納される。 ステップ 1 1 10において Τ2ΧΒが計算される。 ここでレジスタ Τ2には yZd+ 1Xd+ 1
(Xd-xZd) 2が格納されており、 し がって ByZd+ 1Xd + 1 (Xd-xZd) 2が計算さ れる。 その結果がレジスタ T 2に格納される。 ステップ 1 1 1 1において τ2χ Zdが計算される。 ここでレジスタ T2には ByZd + 1Xd + 1 (Xd- xZd) 2が格納さ れており、 したがって ByZd + 1Xd + i (Xd- xZd) 2Zdが計算される。 その結果が レジスタ T 2に格納される。 ステップ 1 1 1 2において T2xXdが計算される。 ここでレジスタ T2には ByZd+ 1Xd + !L (Xd- xZd) 2Zd力 S格納されており、 した 力 つて ByZd+ 1Xd+ 1 (Xd— xZd) 2ZdXd力 S計算される。 その結果がレジスタ T4 に格納される。 ステップ 1 1 13において Τ 2 xZdが計算される。 ここでレジス タ T2には ByZd + 1Xd + 1 (XdXZd) 2Zd力格糸内されており、 した力 Sつて
ByZd + 1Xd + i (Xd- xZd) Zdカ計算される。 その結果がレジスタ T 2に格納さ れる。 ステップ 1 1 14においてレジスタ T 2の逆元が計算される。 ここでレジ スタ T2には ByZd + 1Xd + 1 (Xd-xZd) 2Zd 2が格納されており、 したがって 1/ByZ d +丄 X d + (X d - xZ d ) Z d 2が計算される。 その結果がレジスタ T 2に格納 される。 ステップ 1115において T2XT4が計算される。 ここでレジスタ T2には l/ByZd + 1Xd+ 1 (Xd— xZd) 2Zd 2カ レジスタ T 4 こは ByZd+ iXd^^ェ (Xd-xZd) ZdXdがそれぞれ格納されており、 したがって(ByZd + 1Xd + 1 (Xd- xZd) 2ZdXd)/(ByZd+ 1Xd + 1 (Xd-xZd) 2Zd 2) (=Xd/Zd)が計算される。 その 結果がレジスタ X dに格納される。 ステップ 1 1 1 6において が計 算される。 ここでレジスタ には Xdx - Zdが格納されており、 したがって
Zd + 1 (Xdx - Zd)が計算される。 その結果がレジスタ T4に格納される。 ステツ プ 1 1 1 7においてレジスタ の 2乗が計算される。 ここでレジスタ には 0dx - Zd)が格納されており、 したがって (Xdx- Zd) 2が計算される。 その結果が レジスタ に格納される。 ステップ 1 1 1 8において XT 2が計算される。 ここでレジスタ T iには(X d X- Z d ) 2がレジスタ T 2には 1/ByZ d + 1Xd+ 1 (Xd- xZd) カそれぞれ格糸内されており、 したカつて(Xdx— Zd) 2/ByZd+ 1Xd + 1 (Xd - xZd) 2Zd 2 が計算される。 その結果がレジスタ T 2に格納される。 ステップ 1 1 1 9において T3+T4が計算される。 ここでレジスタ Τ3には Xd + 1 (Xd - xZd) がレジスタ T4には Zd + 1 (Xdx Zd)がそれぞれ格納されており、 したが つて Xd+ 1 (Xd- xZd)+Zd + 1 (Xdx—Zd);^計算される。 その結果がレジスタ に格納される。 ステップ 1 1 2 0において T 3- T4が計算される。 ここでレジ スタ Τ3には Xd + 1 (Xd- xZd)がレジスタ Τ4には Zd + 1 (Xdx- Zd)がそれぞれ格 納されており、 したがって Xd + 1 (Xd- xZd)- Zd + 1 (Xdx - Zd)が計算される。 そ の結果がレジスタ T3に格納される。 ステップ 1 1 2 1において ΧΤ3が計 算される。 ここでレジスタ には Xd + 1 (Xd - xZd)+Zd + 1 (Xdx- Zd)がレジス タ T3には Xd + 1 (Xd-xZd)-Zd + 1 (Xdx- Zd)がそれぞれ格納されており、 した 力 Sつて {Xd + 1 (Xd - xZd)+Zd + 1 (Xdx - Zd)} {Xd + 1 (Xd - xZd) - Zd + 1 (Xdx - Zd)} が計算される。 その結果がレジスタ T に格納される。 ステップ 1 1 2 2におい て XT2が計算される。 ここでレジスタ には {Xd+ 1 (Xd-xZd)+Zd + 1 (Xdx-Zd)} {Xd+ 1 (Xd - xZd)— Zd + i (Xdx- Zd)}がレジスタ T2には (Xdx- Zd) 2
/ByZd + 1Xd + 1 (Xd-xZd) 2Zd 2がそれぞれ格納されており、 したがって
{X^{Xd- ) + Zd+1 (Xdx一 Zd)}{Xd+l (Xd -xZd)- Zd+l {Xdx― Zd )}(Xdx -Zdf
ByZMXM{Xd-xZdfZ
■■■ 数 5 が計算される。 その結果が y dに格納される。 x dにはステップ 1 1 1 5におい T(ByZd + 1Xd + 1 (Xd-xZd) 2 ZdXd)/(ByZd+ 1Xd + 1 (Xd-xZd) 2 Xd 2)が格 納され、 その後更新が行なわれないので、 その値が保持されている。
上記手順により座標復元部 2 0 3へ与えられた x、 y、 Xd、 Zd、 Xd + 1、 Zd + ]Lからモンゴメリ型楕円曲線におけるスカラー倍点のァフィン座標(x d, y d)における値が全て復元される理由は以下の通りである。 尚、 点(d+l)Pは点 dPに点 Pを加算した点であり、 点(d - 1)Pは点 dPから点 Pを減算した点である。 モン ゴメリ型楕円曲線のァフィン座標における加算公式に代入すると、 次の式を得る。 (A + x + xd+ xd+l)(xd - x)2 = B(yd - y)2 … 数 6
(A + x + xd + xd_x )(xd - x)2 = B(yd + yf ··· 数 7
両辺を各々減算することにより、
(¾-ι一 χΜ )(¾― x)z = ^Bydy … 数 8
を得る。 したがって、
yd = (xd-i― x d+i)(xd― x)2/4By … 数 9
となる。 ここで X d=Xd/Zd、 x d+l==Xd + l/Zd + l、 x d- 1 =Xd- l/ z d一 iであり、 この値を代入することにより射影座標の値へと変換すると、 次の 式を得る。
yd = ( — A+1 -Zd_,Xd+l)(Xd -Zdxf l ByZd_xZMZd … 数 1 0
モンゴメリ型楕円曲線の射影座標での加算公式は
Xm+n = Zm_„[(Xm -Za)(X„ +Zn) + (Xm +Zm)(X„ -Z„) … 数 1 1
Zm+n = X -2m){Xn +Zn)-(Xm +ZmXX„ -Zn) - 数 1 2 である。 ここで Xm及び Zmはモンゴメ リ型楕円曲線上の点 Pの m倍点 mPの射影座 標における X座標及び Z座標、 Xn及び Znはモンゴメリ型楕円曲線上の点 Pの n倍 点 nPの射影座標における X座標及ぴ Z座標、 Xmn及び Zmnはモンゴメリ型楕円 曲線上の点 Pの (m- n)倍点 (m-n) Pの射影座標における X座標及ぴ Z座標、 Xm+ n及び Zm+ nはモンゴメリ型楕円曲線上の点 Pの (m+n)倍点 (m+n) Pの射影座標における X 座標及ぴ Z座標であり、 m, nは m>nをみたす正整数である。 この式は Xm/ Zm= xm、 Xn/Zn=x n、 Xmn/Zmn= xmnが不変のとき、 Xm+ n/Zm+ n = xm+nも不変となるので、 射影座標での公式としてうまく働いている。 他方、 X" = [{Xm一 Zm ){X„ +Z„) + (Xm + Zm )(Xn -Z„) …数 1 3
Figure imgf000021_0001
- ) ( +Zn)-(Xm +Zm)(Xn -Zn)f …数 1 4
とおくと、 この式で Xm/Zm=xm、 Xn/Zn=x n、 Xm+n/Zm+ n=xm+ nが不 変のとき、 X, mn/Z'mnも不変となる。 また、 X'mn/Z'mn=Xmn/ Zmnをみたすので、 xm_nの射影座標として X'^— n,Z,mnをとつてよい。 m=d、 n=lとして上記公式を用いて y dの式より Xd— i及ぴ Zd— iを消去し、 丄- 丄 丄とおくことにより、 次の式を得る。
( idX~^d) + s-d+l、 一 X^d ー {Xd - ΧΖα X_ 2
ByZMXM{Xd-xZdfZ]
…数 1 5
X d=Xd/Zdであるが、 逆元演算の回数を減らす目的で y dの分母と通分するこ とにより、
„ …来 i 6
Figure imgf000021_0002
となる。 ここで、 xd, ydは図 1 1の処理により与えられている。 したがって、 ァフィン座標 (xd,yd)の値が全て復元されていることになる。
上記手順はステップ 1 1 01、 ステップ 1 1 03、 ステップ 1 1 0 5、 ステツ プ 1 1 07、 ステップ 1 1 08、 ステップ 1 1 09、 ステップ 1 1 1 0、 ステツ プ 1 1 1 1、 ステップ 1 1 1 2、 ステップ 1 1 1 3、 ステップ 1 1 1 5、 ステツ プ 1 1 1 6、 ステップ 1 1 1 8、 ステップ 1 1 2 1及びステップ 1 1 2 2におレヽ て有限体上の乗算の計算量を必要とする。 また、 ステップ 1 1 06及びステップ 1 1 1 7において有限体上の 2乗算の計算量を必要とする。 また、 ステップ 1 1 14において有限体上の逆元演算の計算量を必要とする。 有限体上の加算及ぴ減 算の計算量は、 有限体上の乗算の計算量、 2乗算の計算量及び逆元演算の計算量 と比べて比較的小さいので無視してもよい。 有限体上の乗算の計算量を M、 有限 体上の 2乗算の計算量を S及び有限体上の逆元演算の計算量を Iとすると、 上記 手順は 1 5M+ 2 S+ Iの計算量を必要とする。 これは高速スカラー倍計算の計 算量と比べてはるかに小さい。 例えばスカラー値 dが 160ビットであれば、 高 速スカラー倍計算の計算量はおおよそ 1500M弱と見積もられる。 S = 0. 8 M、 I =40Mと仮定すると座標復元の計算量は 56. 6 Mであり、 高速スカラ 一倍計算の計算量と比べてはるかに小さい。 したがって効率的に座標を復元でき ていることが示された。 .
尚、 上記手順をとらなくても、 上記計算式により与えられた x d, y dの値が 計算できれば x d, y dの値が復元できる。 その場合においては一般的に復元に 必要となる計算量が増大する。 また、 楕円曲線のパラメータである Bの値を小さ くとることにより、 ステップ 1 1 10における乗算の計算量を削減することがで きる。
次に図 4により、 スカラー値 d及ぴモンゴメリ型楕円曲線上の点 Pから、 Xd, Zd,Xd + 1,Zd + 1を出力する高速ス力ラ一倍計算部の処理を説明する。
高速スカラー倍計算部 202では、 スカラー倍計算部 103に入力されたモン ゴメリ型楕円曲線上の点 Pを入力し、 以下の手順によりモンゴメリ型楕円曲線に おいて射影座標で表されたスカラー倍点 dP=(Xd,Yd,Zd)のうち Xd及び Zd、 射 影座標で表されたモンゴメリ型楕円曲線上の点(d+1) P= (Xd + 1,Yd + 1,Zd+ 1) のうち Xd + i及ぴ Zd + 1を出力する。 ステップ 401として、 変数 Iに初期値 1 を代入する。 ステップ 402として、 点 Pの 2倍点 2Pを計算する。 ここで点 Pは 射影座標において(x, y,l)として表し、 モンゴメリ型楕円曲線の射影座標にお ける 2倍算の公式を用いて 2倍点 2Pを計算する。 ステップ 403として、 スカラ 一倍計算部 1 03に入力された楕円曲線上の点 Pとステップ 402で求めた点 2P を、 点の組 (P,2P)として格納する。 ここで点 P及び点 2Pは射影座標で表されてい る。 ステップ 404として、 変数 Iとスカラー値 dのビット長とが一致するかど うかを判定し、 一致すればステップ 413へ行く。 一致しなければステップ 40 5へ行く。 ステップ 405として、 変数 Iを 1増加させる。 ステップ 406とし て、 スカラー値の I番目のビットの値が 0であるか 1であるかを判定する。 その ビットの値が 0であればステップ 407へ行く。 そのビットの値が 1であればス テツプ 410へ行く。 ステップ 407として、 射影座標により表された点の組 (raP, (m+1) P)から点 mPと点(m+1) Pの加算 mP+ (m+1) Pを行ない、 点(2m+l) Pを計算す る。 その後ステップ 408へ行く。 ここで、 加算 mP+(m+l)Pは、 モンゴメリ型楕 円曲線の射影座標における加算公式を用いて計算される。 ステップ 408として、 射影座標により表された点の組 (mP, (m+l)P)から点 mPの 2倍算 2 (mP)を行ない、 点 2mPを計算する。 その後ステップ 409へ行く。 ここで、 2倍算 2(mP)は、 モン ゴメリ型楕円曲線の射影座標における 2倍算の公式を用いて計算される。 ステツ プ 409として、 ステップ 408で求めた点 2mPとステップ 407で求めた点 (2m+ 1 )Pを点の組 (2mP, (2m+ 1 )P)として、 点の組 (mP, (m+ 1 )P)の代わりに格納 する。 その後ステップ 404へ戻る。 ここで、 点 2mP、 点(2m+l)P、 点 mP及び 点(m+l)Pは全て射影座標において表されている。 ステップ 410として、 射影 座標により表された点の組 (mP, (m+ 1 ) P)から点 mPと点 (m+ 1 ) Pの加算 mP+ (ra+l)P を行ない、 点 (2m+l)Pを計算する。 その後ステップ 41 1へ行く。 ここで、 加算 mP+(m+l)Pは、 モンゴメリ型楕円曲線の射影座標における加算公式を用いて計算 される。 ステップ 411として、 射影座標により表された点の組 (mP,(m+l)P)か ら点(111+1)?の2倍算2((111+1)?)を行なぃ、 点(2m+2)Pを計算する。 その後ステツ プ 412へ行く。 ここで、 2倍算 2 ((m+l)P)は、 モンゴメリ型楕円曲線の射影座 標における 2倍算の公式を用いて計算される。 ステップ 41 2として、 ステップ 4 1 0で求めた点(2m+l )Pとステップ 4 1 1で求めた点(2m+2) Pを点の組 ((2m+l)P, (2ra+2)P)として、 点の組 (mP, (m+1) P)の代わりに格納する。 その後ステ ップ 404へ戻る。 ここで、 点(2m+l)P、 点(2m+2)P、 点 mP及ぴ点 (m+1) Pは全て射 影座標において表されている。 ステップ 41 3として、 射影座標で表された点の 組 (mP, (m+ 1 ) P)から、 射影座標で表された点 mP= (Xm, Ym, Zm)より Xm及び Zmを それぞれ X d及ぴ Z dとして、 射影座標で表された点 (m+1) P= (Xm+! , Ym+ ! ,
Zm+ 1)より Xm+ 1及び Zm+ 1をそれぞれ Xd + 1及び Zd + 1として、 出力する。 こ こで、 Ym及び Ym+ 1は、 モンゴメリ型楕円曲線の射影座標における加算公式及 ぴ 2倍算の公式では Y座標を求める事ができないので、 求まっていない。 また上 記手順により、 mとスカラ一値 dはビット長が等しくさらにそのビットのパタ一 ンも同じとなる為、 等しくなる。
モンゴメリ型楕円曲線の射影座標における加算公式の計算量は、 = 1とと ることにより 3M+2 Sとなる。 ここで Μは有限体上の乗算の計算量、 Sは有限 体上の 2乗算の計算量である。 モンゴメリ型楕円曲線の射影座標における 2倍算 の公式の計算量は、 3M+2 Sである。 スカラー値の I番目のビットの値が 0で あれば、 ステップ 407において加算の計算量、 ステップ 408において 2倍算 の計算量が必要となる。 すなわち 6M+ 4 Sの計算量が必要となる。 スカラー値 の I番目のビットの値が 1であれば、 ステップ 410において加算の計算量、 ス テツプ 41 1において 2倍算の計算量が必要となる。 すなわち 6M+4 Sの計算 量が必要である。 いずれの場合においても 6 M+ 4 Sの計算量が必要である。 ス テツプ 404、 ステップ 405、 ステップ 406、 ステップ 407、 ステップ 4 08、 ステップ 409乃至はステップ 404、 ステップ 405、 ステップ 406、 ステップ 410、 ステップ 411、 ステップ 41 2の繰り返しの回数は、 (スカ ラー値 dのビット長) 一 1回となるので、 ステップ 402での 2倍算の計算量を 考慮に入れると、 全体の計算量は (6M+4 S) (k— 1) +3M+2 Sとなる。 ここで kはスカラー値 dのビット長である。 一般的には、 計算量 Sは、 S = 0. 8 M程度と見積もられるので、 全体の計算量はおおよそ (9. 2 k— 4. 6) M となる。 例えばスカラー値 dが 160ビット (k= 160) であれば、 上記手順 のアルゴリズムの計算量はおおよそ 1467Mとなる。 スカラー値 dのビットぁ たりの計算量としてはおよそ 9. 2Mとなる。 A.Miyaji, T. Ono, H.Cohen, : Efficient elliptic curve exponentiation using mixed coordinates, Advances in Cryptology Proceedings of ASIACRYPT' 98, LNCS 1514 (1998) pp.51- 65 には、 ワイエルシュトラス型楕円曲線において、 ウィンドウ法を用い てヤコビアン座標を中心とした混合座標系を用いたスカラー倍計算方法は高速な スカラー倍計算方法として記載されている。 この場合においては、 スカラー値の ビットあたりの計算量はおおよそ 1 0Mと見積もられる。 例えばスカラー値 dが 1 60ビット (k = 160) であれば、 このスカラー倍計算方法の計算量はおお よそ 1600Mとなる。 したがって、 上記手順のアルゴリズムの方が計算量が少 なく高速といえる。
尚、 高速スカラー倍計算部 202において上記手順のアルゴリズムを用いなく ても、 スカラー値 d及びモンゴメリ型楕円曲線上の点 Pから、 Xd, Yd, Xd + 1, Zd + 1を出力するアルゴリズムであり且つ高速であれば、 他のアルゴリズムを用 いていもよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 1 5M+ 2 S+ Iであり、 これは高速スカラー倍計算部 202の高速スカラー 倍計算に必要な計算量の (9. 2 k— 4. 6) Mとに比べてはるかに小さい。 し たがって、 スカラー倍計算部 1 03のスカラー倍計算に必要な計算量は、 高速ス カラー倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 1 =4 OM、 S = 0. 8Mと仮定すると、 この計算量はおおよそ (9. 2 k + 52) M と見積もることができる。 例えばスカラー値 dが 1 60ビット (k = 1 60) で あれば、 このスカラー倍計算に必要な計算量は 1 524Mとなる。 楕円曲線とし てワイエルシュトラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビアン座 標を中心とした混合座標系を用いたスカラー倍計算方法を用いて、 スカラー倍点 をァフィン座標として出力する場合に必要となる計算量はおおよそ 1640Mで あり、 これと比べて必要となる計算量は削減されている。
第 2の実施例は、 スカラ一倍計算部 103がスカラ一値 d及びモンゴメ リ型楕 円曲線上の点 Pから、 モンゴメリ型楕円曲線における射影座標の点として完全な 座標が与えられたスカラ一倍点 (X d, Y d , z d )を計算し出力するものである。 スカ ラー値 d及ぴモンゴメリ型楕円曲線上の点 Pをスカラー倍計算部 1 03に入力する と高速スカラー倍計算部 202がそれを受け取る。 高速スカラー倍計算部 202 は受け取ったスカラ一値 dと与えられたモンゴメ リ型楕円曲線上の点 Pからモンゴ メリ型楕円曲線において射影座標で表されたスカラー倍点 dP=(Xd,Yd,Zd)の座 標のうち xd及び zd、 射影座標で表されたモンゴメリ型楕円曲線上の点(d+l)P= (1+ :1^(1+ 1,2(1+ :1)の座標のぅち (1+1及ぴ2£1+ 1を計算し、 ァフィン座標 で表された入力されたモンゴメリ型楕円曲線上の点 P=(x, y)と共にその情報を座 標復元部 203に与える。 座標復元部 203は与えられた座標の値 Xd、 Zd、 Xd + 1、 Zd + 1、 x及び yよりモンゴメリ型楕円曲線において射影座標で表された スカラー倍点 dP=(Xd,Yd,Zd)の座標 Xd,Yd及び zdの復元を行なう。 スカラー 倍計算部 103は射影座標において完全に座標が与えられたスカラー倍点 (Xd, Yd, Zd)を計算結果として出力する。
次に図 9により、 座標 x、 y Xd、 Zd、 Xd+1、 Zd + 1が与えられた場合に Xd、 Yd、 Zdを出力する座標復元部の処理について説明する。
座標復元部 203では、 モンゴメリ型楕円曲線において射影座標で表されたス 力ラ一倍点 dP= (Xd,Yd,Zd)の座標のうち X d及び Z d、 射影座標で表されたモン ゴメリ型楕円曲線上の点((1+1)?=½(1+ 1,¥(1+ 1,2(1+ 1)の座標のぅち (1 + 1及 ぴ Zd + 1、 スカラー倍計算部 1 03に入力されたモンゴメリ型楕円曲線上の点 P をァフィン座標で表した(X, y)を入力し、 以下の手順で射影座標おいて完全な座 標が与えられたスカラ一倍点 (Xd,Yd,Zd)を出力する。 ここで入力されたモンゴ メリ型楕円曲線上の点 Pのァフィン座標を(x,y)で、 射影座標を (X Y^Z でそ れぞれ表す。 入力されたスカラー値を dとしてモンゴメリ型楕円曲線におけるス カラ一倍点 dPのァフィン座標を(X d, y d )で、 射影座標を(X d , Y d, Z d )でそれぞれ 表す。 モンゴメリ型楕円曲線上の点(d- 1)Pのァフィン座標を(xd— — で、 射影座標を (Xd一 ^Yd— 一 でそれぞれ表す。 モンゴメリ型楕円曲線上の 点(d+l)Pのァフィン座標を(xd + , y d +丄)で、 射影座標を(Xd + 1 , Yd + , Zd + 1)でそれぞれ表す。
ステップ 901において Xd Xxが計算され、 レジスタ に格納される。 ステ ップ 902において Ti— Zdが計算される。 ここでレジスタ には Xdxが格納 されており、 したがって Xdx— Zdが計算される。 その結果がレジスタ に格納 される。 ステップ 903において Zd Xxが計算され、 レジスタ T 2に格納される。 ステップ 904において Xd_T 2が計算される。 ここでレジスタ T2には Zdxが 格納されており、 したがって Xd— xZdが計算される。 その結果がレジスタ T 2に 格納される。 ステップ 905において Zd+ 1 XT が計算される。 ここでレジス タ T!には Xdx— Zdが格納されており、 したがって Zd+丄(Xdx— Zd)が計算され る。 その結果がレジスタ T 3に格納される。 ステップ 906において Xd + 1 X T 2が計算される。 ここでレジスタ T 2には Xd— xZdが格納されており、 したが つて Xd+ 1 (Xd— xZd)カ計算される。 その結果がレジスタ T 4に格納される。 ス テツプ 907において Τ の 2乗が計算される。 ここでレジスタ には Xdx— Zdが格納されており、 したがって(Xdx— Zd) 2が計算される。 その結果がレジ スタ に格納される。 ステップ 908において Τ2の 2乗が計算される。 ここ でレジスタ Τ 2には X d— xZ dが格納されており、 したがって(X d— xZ d ) 2が計算 される。 その結果がレジスタ T 2に格納される。 ステップ 909において T2x Zdが計算される。 ここでレジスタ T2には(Xd— xZd) Λが格納されており、 した がって Zd (Xd— xZd) 2が計算される。 その結果がレジスタ T2に格納される。 ステップ 91 0において T2xXd + 1が計算される。 ここでレジスタ T2には Zd (Xd— xZd) カ格糸内されており、 した力 Sつて Xd + 1Zd(Xd— xZd) 2カ計算さ れる。 その結果がレジスタ T 2に格納される。 ステップ 91 1において T2x zd + ]L力 s計算される。 ここでレジスタ T2に Xd + :LZd(Xd— xZd) 2が格納されて おり、 したがって Zd+ 1Xd+ 1Zd(Xd— xZd) 2が計算される。 その結果がレジス タ T2に格納される。 ステップ 91 2において Τ 2 Xyが計算される。 ここでレ ジスタ T2には Zd + 1Xd + 1Zd (Xd_xZd) 2力 S格糸内されており、 したがって yZd + 1Xd + 1Zd(Xd-xZd) 2が計算される。 その結果がレジスタ T 2に格納さ れる。 ステップ 91 3において T2 XBが計算される。 ここでレジスタ Τ2には yZd + 1Xd + 1Zd (Xd-xZd) 2力格糸内されており、 したカ って82(1+ 1 (1+ 12(1 (Xd-xZd) 2が計算される。 その結果がレジスタ T2に格納される。 ステップ 9 14において T2xXdが計算される。 ここでレジスタ T2には ByZd+ 1Xd + 1Zd (Xd— xZd) カ格糸内されており、 した;^つて ByZd + 1Xd + 1Zd (Xd— xZd) 2Xd が計算される。 その結果が Xdに格納される。 ステップ 91 5において T2xZdが 計算される。 ここでレジスタ T2には ByZd + 1Xd + 1Zd(Xd— xZd) 2が格納され ており、 した力 Sつて ByZd + iXd+ 1Zd(Xd— XZd) Zd力 S計算される。 その結果 がレジスタ Zdに格納される。 ステップ 916において T3 + T4が計算される。 ここでレジスタ Τ3には Zd+ 1 (Xdx— Zd)がレジスタ T4には Xd + 1 (Xd-xZd) が格納されており、 した力 Sつて Zd+ 1 (Xdx— Zd)+Xd + 1 (Xd— xZd)力 S計算され る。 その結果がレジスタ T2に格納される。 ステップ 91 7において Τ3— Τ4 が計算される。 ここでレジスタ Τ3には Zd + 1 (Xdx— Zd)がレジスタ Τ4には Xd+ 1 (Xd— xZd)力 S格糸内されており、 した力 Sつて Zd + 1 (Xdx— Zd)— Xd + 1
(Xd— xZd)が計算される。 その結果がレジスタ T3に格納される。 ステップ 91 8において ΧΤ2が計算される。 ここでレジスタ には(Xdx— Zd) 2がレ ジスタ T2には Zd + ]L (Xdx— Zd)+Xd + i (Xd— xZd)が格納されており、 したが つて {Zd + 1 (Xdx— Zd)+Xd + i (Xd— xZd)}(XdX— Zd) 2が計算される。 その結 果がレジスタ に格納される。 ステップ 91 9において T^xTgが計算される c ここでレジスタ Tiには {Zd + i (Xdx— Zd)+Xd + ;L (Xd—xZd)}(Xdx— Zd) 2が レジスタ T3には Zd + i (Xdx— Zd)—Xd+ 1 (Xd— xZd)が格納されており、 した 力 Sつて {Zd+ 1 (Xdx— Zd)+Xd + 1 (Xd— xZd)} {Zd + 1 (Xdx— Zd) - Xd + 1 (Xd— xZd)}(Xdx— Zd) 2が計算される。 その結果がレジスタ Ydに格納される。 したがってレジスタ Ydには {Zd+i (Xdx— Zd)+Xd + i (Xd— xZd)}{Zd + :L (Xdx-Zd)-Xd + 1 (Xd-xZd)} (Xdx-Zd) 2が格納されている。 レジスタ Xdに はステップ 914において ByZd + 1Xd+ 1Zd + 1 (Xd-xZd) 2Xd力格糸内され、 そ の後更新が行われないので、 その値が保持されている。 レジスタ Zdにはステツ プ 91 5におレヽて By Zd + 1Xd+ 1Zd + 1 (Xd— xZd) 2Zd力 S格糸内され、 その後更 新が行われないので、 その値が保持されている。
上記手順により与えられた x、 y、 Xd、 Zd、 Xd + 1、 Zd + 1からスカラー倍点 の射影座標 (X d , Y d, Z d )における値が全て復元される理由は以下の通りである。 点(d+1) Pは点 dPに点 Pを加算した点であり、 点(d - 1) Pは点 dPから点 Pを減算した点 である。 モンゴメリ型楕円曲線のァフィン座標における加算公式に代入すると、 次の数 6、 数 7を得る。 両辺を各々減算することにより、 数 8を得る。 したがつ て、 数 9となる。 ここで xd=Xd/Zd、 X d + i=Xd + :L/Zd+ ]L、 x d_! = X d— i /Z d _ iであり、 この値を代入することにより射影座標の値へと変換する と、 数 10を得る。
モンゴメリ型楕円曲線の射影座標での加算公式は数 1 1、 数 12である。 ここ で Xm及び Zmはモンゴメリ型楕円曲線上の点 Pの m倍点 mPの射影座標における X座 標及び Z座標、 Xn及び Znはモンゴメリ型楕円曲線上の点 Pの n倍点 nPの射影座標 における X座標及び Z座標、 Xmn及び Zm_nはモンゴメリ型楕円曲線上の点 Pの (m-n)倍点 (m_n) Pの射影座標における X座標及び Z座標、 Xm + n及ぴ Zm + nはモン ゴメリ型楕円曲線上の点 Pの (m+n)倍点 (m+n) Pの射影座標における X座標及ぴ Z座標 であり、 m, nは m〉nをみたす正整数である。 この式は Xm/Zm= x m、 Xn/
Zn = xn、 Xmn/Zmn = xmnが不変のとき、 Xm+n/Zm+n=xm+nも不 変となるので、 射影座標での公式としてうまく働いている。 他方、 数 14、 数 1 5とおくと、 この式で Xm/Zm=xm、 Xn/Zn = x n、 Xm+n/Zm+n= xm+nカ 不変のとき、 x'mn/z'mnも不変となる。 また、 x'mn/z,mn=xmn/ zmn= xmnをみたすので、 xmnの射影座標として x,mn,z,mnをとつ てよい。 m=d、 n=lとして上記公式を用いて y dの式より Xd— 及び Zd— を消 去し、 Xi^x'Z^L-lとおくことにより、 数 1 5を得る。 X d=Xd/Zdであるが、 y dの分母と通分することにより、 数 1 6となる。
その結果として、
¾ = {ZM ~Zd) + Xd+1 (Xd - Zd)}{ZM (Xdx -Zd)- Xd+l (Xd - xZd)}{Xdx - Zd)2
…数 1 7 とし、 xd及び zdをそれぞれ
ByZd+lXd+1Zd(Xd-xZd)2Xd …数 1 8
ByZd+lXd+lZd(Xd-xZd)2Zd …数 1 9
により更新すればよい。 ここで、 Xd, Yd, Zdは図 9の処理により与えられてい る。 したがって、 射影座標 (Xd,Yd,Zd)の値が全て復元されていることになる。 上記手順はステップ 9 0 1、 ステップ 9 0 3、 ステップ 9 05、 ステップ 9 0 6、 ステップ 90 9、 ステップ 9 1 0、 ステップ 9 1 1、 ステップ 9 1 2、 ステ ップ 9 1 3、 ステップ 9 1 4、 ステップ 9 1 5、 ステップ 9 1 8及ぴステップ 9 1 9において有限体上の乗算の計算量を必要とする。 また、 ステップ 9 0 7及び ステップ 908において有限体上の 2乗算の計算量を必要とする。 有限体上の加 算及ぴ減算の計算量は、 有限体上の乗算の計算量、 2乗算の計算量と比べて比較 的小さいので無視してもよい。 有限体上の乗算の計算量を M、 有限体上の 2乗算 の計算量を Sとすると、 上記手順は 1 3M+ 2 Sの計算量を必要とする。 これは 高速スカラー倍計算の計算量と比べてはるかに小さい。 例えばスカラー値 dが 1 6 0ビットであれば、 高速スカラー倍計算の計算量はおおよそ 1 5 0 0M弱と見 積もられる。 S== 0. 8 Mと仮定すると座標復元の計算量は 1 4. 6Mであり、 高速ス力ラ一倍計算の計算量と比べてはるかに小さい。 したがつて効率的に座標 を復元できていることが示された。
尚、 上記手順をとらなくても、 上記計算式により与えられた Xd、 Yd、 zdの値 が計算できれば Xd、 Υά、 Zdの値が復元できる。 また、 Xd、 ydが上記計算式に より与えられる値を取るように Xd、 Yd、 zdの値を選択し、 その値が計算できれ ば Xd、 Yd、 zdが復元できる。 それらの場合においては一般的に復元に必要とな る計算量が増大する。 また、 楕円曲線のパラメタである Bの値を小さくとること により、 ステップ 913における乗算の計算量を削減することができる。
次に、 スカラー値 d及ぴモンゴメリ型楕円曲線上の点 Pから、 Xd, Zd, Xd + 1, Zd + 1を出力するァルゴリズムについて説明する。
第 2実施例の高速スカラー倍計算部 202の髙速ス力ラー倍計算方法として、 第 1実施例の高速スカラー倍計算方法を用いる。 これにより、 スカラー値 d及び モンゴメリ型楕円曲線上の点 Pから、 xd, Zd, Xd + 1, Zd + 1を出力するァルゴ リズムとして、 高速であるアルゴリズムが達成される。 尚、 高速スカラー倍計算 部 202において上記アルゴリズムを用いなくても、 スカラー値 d及びモンゴメ リ型楕円曲線上の点 Pから、 Xd, Zd, Xd+1, Zd + iを出力するアルゴリズムで あり且つ高速であれば、 他のア^^ゴリズムを用いていもよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 13M+2Sであり、 これは高速スカラー倍計算部 202の高速スカラー倍計 算に必要な計算量の (9. 2k— 4. 6) Mとに比べてはるかに小さい。 したが つて、 スカラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速スカラ 一倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 S = 0. 8 Mと仮定すると、 この計算量はおおよそ (9. 2 k + 10) Mと見積もることが できる。 例えばスカラー値 dが 160ビット (k = 160) であれば、 このスカ ラー倍計算に必要な計算量は 1482Mとなる。 楕円曲線としてワイエルシュト ラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビアン座標を中心とした混 合座標系を用いたスカラー倍計算方法を用いて、 スカラー倍点をヤコビアン座標 として出力する場合に必要となる計算量はおおよそ 1600Mであり、 これと比 ベて必要となる計算量は削減されている。
第 3の実施例は、 スカラー倍計算部 1 03がスカラー値 d及ぴモンゴメリ型楕 円曲線上の点 Pから、 モンゴメリ型楕円曲線におけるァフィン座標の点として完 全な座標が与えられたスカラー倍点(xd,yd)を計算し出力するものである。 ス カラー値 d及ぴモンゴメリ型楕円曲線上の点 Pをスカラー倍計算部 103に入力す ると高速スカラー倍計算部 202がそれを受け取る。 高速スカラー倍計算部 20 2は受け取ったスカラ一値 dと与えられたモンゴメリ型楕円曲線上の点 Pからモン ゴメリ型楕円曲線において射影座標で表されたスカラ一倍点 dP= (X d, Y d, Z d )の 座標のうち Xd及ぴ Zd、 射影座標で表されたモンゴメリ型楕円曲線上の点(d+1) P= (Xd + 1 , Yd + 1, Zd+ 1 )の座ネ¾のつち Λά + 1及ぴ zd + 1、 射影座標で表された モンゴメリ型楕円曲線上の点(d— 1) P= (X d— i, Yd一 i , Z d _ i )の座標のうち
Xd_!及び Z d— を計算し、 ァフィン座標で表された入力されたモンゴメリ型楕 円曲線上の点 P=(x,y)と共にその情報を座標復元部 203に与える。 座標復元部 203は与えられた座標の値値 Xd、 Zd、 Xd + 1、 Zd + 1d_!, Zd_l s x 及び yよりモンゴメリ型楕円曲線においてァフィン座標で表されたスカラー倍点 dP=(xd,yd)の座標 xd及ぴ y dの復元を行なう。 スカラー倍計算部 1 03はァ フィン座標において完全に座標が与えられたスカラー倍点(xd,yd)を計算結果 として出力する。
次に図 1 2ίこより、 座標 x、 y、 Xd、 Zd、 Xd + 1、 Zd + 1、 Xd_!, Zd—ェカ 与えられた場合に xd、 ydを出力する座標復元部の処理について説明する。
座標復元部 203では、 モンゴメリ型楕円曲線において射影座標で表されたス 力ラ一倍点 dP= (Xd,Yd,Zd)の座標うち X d及ぴ Z d、 射影座標で表されたモンゴ メリ型楕円曲線上の点((1+ 1)?=(乂£1+ 1(:1+ 1,2(1+ 1)の座標のぅち (1+ :1及 ぴ Zd + 1、 射影座標で表されたモンゴメリ型楕円曲線上の点(d- l)P=(Xd
Yd— Zd—i)の座標のうち Xd— 及び Zd—い スカラー倍計算部 103に入力 されたモンゴメリ型楕円曲線上の点 Pをァフィン座標で表した(x, y)を入力し、 以 下の手順でァフィン座標おいて完全な座標が与えられたスカラ一倍点(X d , y d ) を出力する。 ここで入力されたモンゴメリ型楕円曲線上の点 Pのァフィン座標を
(x,y)で、 射影座標を でそれぞれ表す。 入力されたスカラー値を dと してモンゴメリ型楕円曲線におけるスカラー倍点 dPのァフィン座標を(xd,yd) で、 射影座標を d,Yd,zd)でそれぞれ表す。 モンゴメリ型楕円曲線上の点
(d- 1)Pのァフィン座標を (xd— ^yd— で、 射影座標を (Xd— i'Yd— Zd— でそれぞれ表す。 モンゴメリ型楕円曲線上の点(d+1) Pのァフィン座標を
(Xd+1'Yd + l)で、 射影座標を + ^ + + でそれぞれ表す。 ステップ 1 201において乂(11(1+ 1カ計算され、 レジスタ T丄に格納さ れる。 ステップ 1 202において Zd—iXXa + が計算され、 レジスタ T2に格 納される。 ステップ 1203において 一 Τ2が計算される。 ここでレジスタ Τェには X d _ュ Z d + 力《レジスタ Τ 2には Z d— X d + がそれぞれ格納されてお り、 したがって Xd— iZd + j- Zd— iXd+iが計算される。 その結果がレジスタ に格納される。 ステップ 1 204において Zd Χχが計算され、 レジスタ T2 に格納される。 ステップ 1 205において Xd - Τ2が計算さる。 ここでレジスタ 丁2には2 が格納されてぉり、 したがって Xd-xZdが計算される。 その結果が レジスタ T2に格納される。 ステップ 1 206において Τ2の 2乗が計算される。 ここでレジスタ Τ2には Xd- xZdが格納されており、 したがって(Xd-xZd) が計 算される。 その結果がレジスタ Τ 2に格納される。 ステップ 1 207において
Τ 1 ΧΤ2が計算される。 ここでレジスタ には Xd— ]^3+2-23一 iXd+ iが レジスタ T 2には (X d - χζ d ) 2がそれぞれ格納されており、 したがって(X d _ xZd) 2(Xd一 iZd + 1— Zd一 iXd + 1)力 S計算される。 その結果がレジスタ に格 納される。 ステップ 1208において 4 Β X yが計算される。 その結果がレジ スタ T 2に格納される。 ステップ 1 209にぉぃて丁2 2(1+1が計算される。 ここでレジスタ T 2には 4Byが格納されており、 したがって 4ByZ d + 1が計算され る。 その結果がレジスタ T 2に格納される。 ステップ 1210において T2X Zd— が計算される。 ここでレジスタ T 2には 4ByZd + 1が格納されており、 し たがって 4ByZd— ^a+ が計算される。 その結果がレジスタ T2に格納される。 ステップ 1211において T2 XZdが計算される。 ここでレジスタ T 2には 4ByZd+1Zd—丄カ格糸内されており、 した力 Sつて 4ByZd + 1Zd一 カ計算される。 その結果がレジスタ T 2に格納される。 ステップ 1 212において T2XXdが計 算される。 ここでレジスタ T2には 4ByZd— iZd+iZaが格納されており、 した 力 Sつて 4ByZd + 1Zd— iZdXd力 S計算される。 その結果がレジスタ T 3に格納され る。 ステップ 1213において Τ2ΧΖάが計算される。 ここでレジスタ T。には 4ByZd + 1Zd一 力格糸内されており、 したカ つて 4ByZd+ 1Zd— iZdZd力 S計算 される。 その結果がレジスタ T 2に格納される。 ステップ 1 2 14においてレジ スタ T 2の逆元が計算される。 ここでレジスタ T2には 4ByZd + 1Zd— iZaZdが 格納されており、 したがって l/4ByZd + 1Zd1ZdZdが計算される。 その結果が レジスタ T 2に格納される。 ステップ 1 2 1 5において T 2 XT3が計算される。 ここでレジスタ Τ 2には l/4ByZd + 1Zd— ^dZdがレジスタ Τ 3には4 ByZd + 1 zd-izdxd がそれぞれ格納されており、 したがって(4By2d + iZd一 iZd Xd)バ AByZd + ^d— ^dZd)が計算される。 その結果がレジスタ x dに格納され る。 ステップ 1 2 1 6において T丄 XT 2が計算される。 ここでレジスタ T iに は(Xd— xZd (X d— lZd+l— Zd— lXd+l)刀 レンスタ 2こ【 1/ 4ByZ d + 1
Zd— lZdZdカそれぞれ格糸内されており、 したカ って <1ー123 + 1—2(1— 1
Xd + 1) (Xd-Zdx) 2/4ByZd_1Zd + 1Zd が計算される。 その結果がレジスタ yd に格納される。 したがってレジスタ ydには (Xd— ^d + - Zd— (Xd - Zdx) 2/4ByZd
Figure imgf000033_0001
+ Zd 2カ格納されている。 レジスタ xdにはステップ 1 2 1 5におレヽて(4ByZd + 1Zd1ZdXd)/(4ByZd + 1Zd— jZdZd)力 S格納され、 そ の後更新が行なわれないので、 その値が保持されている。
上記手順により与えられた x、 y、 Xd、 Zd、 Xd + 1、 Zd + 1、 Xd一い
Zd— からモンゴメリ型楕円曲線におけるスカラー倍点のァフィン座標(x d, y d)における値が全て復元される理由は以下の通りである。 点(d+l)Pは点 dPに 点 Pを加算した点であり、 点( d— ) Pは点 dPから点 Pを減算した点である。
モンゴメリ型楕円曲線のァフィン座標における加算公式に代入すると、 数 6、 数 7を得る。 両辺を各々減算することにより、 数 8を得る。 したがって、 数 9と なる。 ここで X
Figure imgf000033_0002
— i/zd— l であり、 この値を代入することにより射影座標の値へと変換すると、 数 1 0を得 る。
X
Figure imgf000033_0003
である力 S、 逆元演算の回数を減らす目的で y dの分母と通分する ことにより、 = 1 ー 1ム …数 2 0
AByZMZd_xZdZd となる。 この xd, ydは図 1 2で示した処理により与えられ、 したがってァフィ ン座標 (xd, yd)の値が全て復元されていることになる。
上記手順はステップ 1 2 0 1、 ステップ 1 2 0 2、 ステップ 1 2 04、 ステツ プ 1207、 ステップ 1208、 ステップ 1209、 ステップ 1210、 ステツ プ 121 1、 ステップ 1212、 ステップ 1 21 3、 ステップ 121 5及ぴステ ップ 1 216において有限体上の乗算の計算量を必要とする。 また、 ステップ 1 206において有限体上の 2乗算の計算量を必要とする。 また、 ステップ 1 21 4において有限体上の逆元演算の計算量を必要とする。 有限体上の加算及び減算 の計算量は、 有限体上の乗算の計算量、 2乗算の計算量及び逆元演算の計算量と 比べて比較的小さいので無視してもよい。 有限体上の乗算の計算量を M、 有限体 上の 2乗算の計算量を S及ぴ有限体上の逆元演算の計算量を Iとすると、 上記手 順は 12M+S+ Iの計算量を必要とする。 これは高速スカラー倍計算の計算量 と比べてはるかに小さい。 例えばスカラー値 dが 1 60ビヅトであれば、 高速ス カラー倍計算の計算量はおおよそ 1500M弱と見積もられる。 S=0. 8M、 I =4 OMと仮定すると座標復元の計算量は 52. 8Mであり、 高速スカラー倍 計算の計算量と比べてはるかに小さい。 したがって効率的に座標を復元できてい ることが示された。
尚、 上記手順をとらなくても、 上記計算式により与えられた x d, y dの値が 計算できれば X d, y dの値が復元できる。 その場合においては一般的に復元に 必要となる計算量が増大する。 また、 楕円曲線のパラメタである Bの値を小さく とることにより、 ステップ 1208における乗算の計算量を削減することができ る。
次に図 5により、 スカラー値 d及ぴモンゴメリ型楕円曲線上の点 Pから Xd,
2(1,乂(1+1,2 (1+1, (1-1,2(1—1を出カする高速スカラー倍計算部の処理にっぃ て説明する。
高速スカラー倍計算部 202では、 スカラー倍計算部 103に入力されたモン ゴメリ型楕円曲線上の点 Pを入力し、 以下の手順によりモンゴメリ型楕円曲線に おいて射影座標で表されたスカラー倍点 dP=(Xd,Yd,Zd)のうち Xd及ぴ Zd、 射 影座標で表されたモンゴメリ型楕円曲線上の点(d+1) P=(Xd + 1,Yd + 1,Zd + 1) のうち Xd + :L及び Zd + i、 射影座標で表されたモンゴメリ型楕円曲線上の点
(d- l)P=(Xd— i,Yd— i,Zd— のうち Xd— 1及び Zd— を出力する。 ステップ 501として、 変数 Iに初期値 1を代入する。 ステップ 502として、 点 Pの 2 倍点 2Pを計算する。 ここで点 Pは射影座標において(x, y,l)として表し、 モン ゴメリ型楕円曲線の射影座標における 2倍算の公式を用いて 2倍点 2Pを計算する。 ステップ 503として、 スカラー倍計算部 103に入力された楕円曲線上の点 P とステップ 502で求めた点 2Pを、 点の組 (P,2P)として格納する。 ここで点 P及 ぴ点 2Pは射影座標で表されている。 ステップ 504として、 変数 I とスカラー値 dのビット長とがー致するかどうかを判定し、 一致すれば m=dとなり、 ステップ 5 14へ行く。 一致しなければステップ 505へ行く。 ステップ 505として、 変 数 Iを 1増カ卩させる。 ステップ 506として、 スカラー値の I番目のビッ トの値 が 0であるか 1であるかを判定する。 そのビットの値が 0であればステップ 50 7へ行く。 そのビットの値が 1であればステップ 510へ行く。 ステップ 507 として、 射影座標により表された点の組 (mP, (m+1) P)から点 mPと点 (m+1) Pの加算 mP+(m+l)Pを行ない、 点(2m+l)Pを計算する。 その後ステップ 508へ行く。 ここ で、 加算 mP+(m+l)Pは、 モンゴメリ型楕円曲線の射影座標における加算公式を用 いて計算される。 ステップ 5 08として、 射影座標により表された点の組 (mP, (m+l)P)から点 mPの 2倍算 2 (mP)を行ない、 点 2mPを計算する。 その後ステツ プ 509へ行く。 ここで、 2倍算 2(mP)は、 モンゴメリ型楕円曲線の射影座標に おける 2倍算の公式を用いて計算される。 ステップ 509として、 ステップ 50 8で求めた点 2mPとステップ 507で求めた点(2m+ 1 ) Pを点の組(2mP, (2m+ 1 ) P) として、 点の組 (mP, (m+l)P)の代わりに格納する。 その後ステップ 504へ戻 る。 ここで、 点 2mP、 点(2m+l)P、 点 mP及び点 (m+ 1 ) Pは全て射影座標において 表されている。 ステップ 5 1 0として、 射影座標により表された点の組 (mP, (m+ 1 ) P)から点 mPと点 (m+ 1 ) Pの加算 mP+ (m+ 1 ) Pを行ない、 点 (2ra+ 1 ) Pを計算す る。 その後ステップ 51 1へ行く。 ここで、 加算 mP+(m+l)Pは、 モンゴメリ型楕 円曲線の射影座標における加算公式を用いて計算される。 ステップ 51 1として、 射影座標により表された点の組 (mP, (m+ 1 ) P)から点 (m+ 1 ) Pの 2倍算 2 ((m+1) P) を行ない、 点(2I +2)Pを計算する。 その後ステップ 5 1 2へ行く。 ここで、 2倍 算 2 ((m+1) P)は、 モンゴメリ型楕円曲線の射影座標における 2倍算の公式を用レヽ て計算される。 ステップ 512として、 ステップ 510で求めた点(2m+l)Pとス テツプ 5 1 1で求めた点(2m+2) Pを点の組((2m+l) P, (2m+2) P)として、 点の組 (mP,(m+l)P)の代わりに格納する。 その後ステップ 504へ戻る。 ここで、 点 (2m+l)P、 点(2m+2)P、 点 mP及び点(m+l)Pは全て射影座標において表されている。 ステップ 514として、 射影座標で表された点の組 (mP, (m+l)P)から、 点(m - 1)P の射影座標における X座標 Xm— 1及び Z座標 Zm_!を求め、 それぞれ X d _ 及び Zd とする。 その後ステップ 51 3へ行く。 ステップ 51 3として、 射影座標 で表された点 mP=(Xm,Ym,Zm)より Xm及び Zmをそれぞれ Xd及び Zdとして、 射 影座標で表された点 (m+l)P= (Xm+ i, Ym+ i, Zm+ )より Xm+ i及び Zm+!をそ れぞれ Xd+ 1及び Zd+ 1として、 Xd 及ひ — と共に出力する。 ここで、 Ym 及ひ ^Yra+1は、 モンゴメリ型楕円曲線の射影座標における加算公式及び 2倍算の 公式では Y座標を求める事ができないので、 求まっていない。 また上記手順によ り、 mとスカラー値 dはビット長が等しくさらにそのビットのパターンも同じと なる為、 等しくなる。 またステップ 514において(m-l)Pを求める際に、 数 10、 数 1 1の公式により求めてもよいし、 mが奇数であれば、 ((m- 1)/2)Pの値をステ ップ 512の段階で別に保持しておき、 その値からモンゴメリ型楕円曲線の 2倍 算の公式より、 (m-l)Pを求めてもよい。
モンゴメリ型楕円曲線の射影座標における加算公式の計算量は、 Ζ1 = 1とと ることにより 3M+2 Sとなる。 ここで Μは有限体上の乗算の計算量、 Sは有限 体上の 2乗算の計算量である。 モンゴメリ型楕円曲線の射影座標における 2倍算 の公式の計算量は、 3M+2 Sである。 スカラー値の I番目のビットの値が 0で あれば、 ステップ 507において加算の計算量、 ステップ 508において 2倍算 の計算量が必要となる。 すなわち 6Μ+ 4 Sの計算量が必要となる。 スカラー値 の I番目のビットの値が 1であれば、 ステップ 510において加算の計算量、 ス テツプ 511において 2倍算の計算量が必要となる。 すなわち 6 Μ+ 4 Sの計算 量が必要である。 いずれの場合においても 6 Μ+ 4 Sの計算量が必要である。 ス テツプ 504、 ステップ 505、 ステップ 506、 ステップ 507、 ステップ 5 08、 ステップ 509乃至はステップ 504、 ステップ 505、 ステップ 506、 ステップ 510、 ステップ 51 1、 ステップ 512の繰り返しの回数は、 (スカ ラー値 dのビット長) 1回となるので、 ステップ 502での 2倍算の計算量と ステップ 514での (m-l)Pの計算に必要な計算量を考慮に入れると、 全体の計算 量は (6M+4 S) k+Mとなる。 ここで kはスカラー値 dのビット長である。 一般的に'は、 計算量 Sは、 S = 0. 8M程度と見積もられるので、 全体の計算量 はおおよそ (9. 2 k + 1 ) Mとなる。 例えばスカラー値 dが 160ビット (k = 160) であれば、 上記手順のアルゴリズムの計算量はおおよそ 1473Mと なる。 スカラー値 dのビットあたりの計算量としてはおよそ 9. 2Mとなる。 A.M iyaji, T. Ono, h. Cohen, Efricient elliptic curve exponentiation using mixed coordinates, Advances in Cryptology Proceedings of ASIACRYPT' 98, LNCS 1514 (1998) pp.51- 65 には、 ワイエルシュトラス型楕円曲線において、 ゥ ィンドウ法を用いてヤコビアン座標を中心とした混合座標系を用いたスカラー倍 計算方法は高速なスカラー倍計算方法として記載されている。 この場合において は、 スカラー値のビットあたりの計算量はおおよそ 10Mと見積もられる。 例え ばスカラー値 dが 1 60ビット (k=l 60) であれば、 このスカラー倍計算方 法の計算量はおおよそ 1600Mとなる。 したがって、 上記手順のアルゴリズム の方が計算量が少なく高速といえる。
尚、 高速スカラー倍計算部 202において上記手順のアルゴリズムを用いなく ても、 スカラー値 d及びモンゴメリ型楕円曲線上の点 Pから、 Xd, Zd ,Xd + 1, Zd + 1を出力するアルゴリズムであり且つ高速であれば、 他のアルゴリズムを用 いていもよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 12M+S+ Iであり、 これは高速スカラー倍計算部 202の高速スカラー倍 計算に必要な計算量の (9. 2 k + 1) Mとに比べてはるかに小さい。 したがつ て、 スカラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速スカラー 倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 I == 40M、 S = 0. 8Mと仮定すると、 この計算量はおおよそ (9. 2 k + 53. 8) Mと 見積もることができる。 例えばスカラー値 dが 160ビット (k = 1 60) であ れば、 このスカラー倍計算に必要な計算量はおおよそ 1 526Mとなる。 楕円曲 線としてワイエルシュトラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビ アン座標を中心とした混合座標系を用いたスカラー倍計算方法を用いて、 スカラ 一倍点をァフィン座標として出力する場合に必要となる計算量はおおよそ 1 64 0 Mであり、 これと比べて必要となる計算量は削減されている。
第 4の実施例は、 スカラ一倍計算部 103がスカラ一値 d及ぴモンゴメリ型楕 円曲線上の点 Pから、 モンゴメリ型楕円曲線における射影座標の点として完全な 座標が与えられたスカラー倍点 (Xd,Yd,Zd)を計算し出力する。 スカラー値 d及 ぴモンゴメリ型楕円曲線上の点 Pをスカラー倍計算部 103に入力すると高速ス カラー倍計算部 202がそれを受け取る。 高速スカラー倍計算部 202は受け取 つたスカラー値 dと与えられたモンゴメリ型楕円曲線上の点 Pからモンゴメリ型楕 円曲線にぉレヽて射影座標で表されたスカラ一倍点 dP= (X d, Y d, Z d )の座標のうち Xd及び Zd、 射影座標で表されたモンゴメリ型楕円曲線上の点(d+l)P=(Xd + 1, Yd + 1,Zd + 1)の座標のうち xd + ]L及び zd + 1、 射影座標で表されたモンゴメリ 型楕円曲線上の点(d— P ttd— Yd— ^Zd— を計算し、 ァフィン座標で 表された入力されたモンゴメリ型楕円曲線上の点 P=(x,y)と共にその情報を座標 復元部 203に与える。 座標復元部 203は与えられた座標の値 Xd、 Zd
Xd + i、 Zd+i、 Xd— i、 Zd一 i、 x及び yよりモンゴメリ型楕円曲 Hiこおレヽて射 影座標で表されたスカラ一倍点 dP= (X d, Y d , Z d )の座標 X d, Y d及ぴ Z dの復元を 行なう。 スカラー倍計算部 103は射影座標において完全に座標が与えられたス カラー倍点 (Xd,Yd,Zd)を計算結果として出力する。
次に図 1 3により、 座標 x、 y Xd、 Zd、 Xd + 1、 Zd + 1、 Xd一い Zd—丄カ;与 えられた場合に Xd、 Yd、 Zdを出力する座標復元部の処理について説明する。 座標復元部 203では、 モンゴメリ型楕円曲線において射影座標で表されたス 力ラ一倍点 dP= (Xd,Yd,Zd)の座標のうち X d及び z d、 射影座標で表されたモン ゴメリ型楕円曲線上の点(d+l)P= (Xd + 1,Yd + i,Zd + i)の座標のうち xd +ェ及 ぴ Zd + 1、 射影座標で表されたモンゴメリ型楕円曲線上の点 (d- l)P=(Xd— Yd—^Zd— 1)の座標のうち Xd— 1及び Zd— i、 スカラー倍計算部 103に入力 されたモンゴメリ型楕円曲線上の点 Pをァフィン座標で表した(x, y)を入力し、 以 下の手順で射影座標おいて完全な座標が与えられたスカラー倍点 (Xd, Yd, Zd)を 出力する。 ここで入力されたモンゴメリ型楕円曲線上の点 Pのァフィン座標を (x,y)で、 射影座標を
Figure imgf000038_0001
でそれぞれ表す。 入力されたスカラー値を dと リ型楕円曲線におけるスカラー倍点 dPのァフィン座標を(xd,yd) で、 射影座標を (Xd,Yd,Zd)でそれぞれ表す。 モンゴメリ型楕円曲線上の点 (d- 1)Pのァフィン座標を(xd— で、 射影座標を(Xd一 ^Yd— Zd— でそれぞれ表す。 モンゴメリ型楕円曲線上の点(d+l)Pのァフィン座標を
x d + 1 , Υ d + 1 )で、 射影座標を (Xd+l,Yd+l,Zd + l )でそれぞれ表す。
ステップ 1 301において Xd— が計算され、 レジスタ丁丄に格納さ れる。 ステップ 1 302において Zd1xXd + 1が計算され、 レジスタ T2に格 納される。 ステップ 1 303において 一 Τ2が計算される。 ここでレジスタ Τェには X d— Z d + カ レジスタ Τ 2には Z d— X d +丄がそれぞれ.格納されてお り、 したがって Xd—;^ +丄 - Zd1Xd + 1が計算される。 その結果がレジスタ に格納される。 ステップ 1 304において Zd Xxが計算され、 レジスタ T2 に格納される。 ステップ 1305において Xd- Τ2が計算さる。 ここでレジスタ 丁2には2(^が格納されてぉり、 したがって Xd - xZdが計算される。 その結果が レジスタ T 2に格納される。 ステップ 1306において T 2の 2乗が計算される。 ここでレジスタ T 2には X d - xZ dが格納されており、 したがって(X d - xZ d ) 2が計 算される。 その結果がレジスタ T 2に格納される。 ステップ 1307において T 1 XT 2が計算される。 ここでレジスタ丁1には (1_12(1+ 1—2(11 (1 + 1カ レジスタ T 2には(X d - xZ d ) 2がそれぞれ格納されており、 したがって(X d - xZd) 2(Xd一 一 Zd一 iXd + 1)カ計算される。 その結果力 sレジスタ Ydに格 納される。 ステップ 1 308において 4BXyが計算される。 その結果がレジスタ T2に格納される。 ステップ 1 309において T2XZd + 1が計算される。 ここ でレジスタ T 2には 4Byが格納されており、 したがって 4By Z d + が計算される。 その結果がレジスタ T 2に格納される。 ステップ 1 310において T2XZd—丄 が計算される。 ここでレジスタ T 2には 4ByZd + 1が格納されており、 したがつ て 4ByZd + 1Zd— が計算される。 その結果がレジスタ T 2に格納される。 ステ ップ 1311において T2XZdが計算される。 ここでレジスタ T2には
4ByZd + 1Zd— 力格納されており、 したがって 4ByZd + 1Zd一 が計算される。 その結果がレジスタ T 2に格納される。 ステップ 1 312において T2XXdが計 算される。 ここでレジスタ T2には 4ByZd+ 1Zd—;^ が格納されており、 した 力 Sつて 4ByZd + 1Zd— iZdXa力 S計算される。 その結果がレジスタ Xdに格納され る。 ステップ 1 3 1 3において T2 XZdが計算される。 ここでレジスタ T2には 4ByZd + 1Zd一 力 S格糸内されており、 したカ つて 4ByZd + 1Zd一 iZdZaカ計算 される。 その結果が Zdに格納される。 した力 Sつて Zdには 4ByZd+ 1Zd— iZdZa が格納されている。 レジスタ Ydにはステップ 1 3 07において(Xd-xZd) 2 (Xd— Zd— iXd + )カ格納され、 その後更新が行われないので、 その値 が保持されている。
上記手 J噴により与えられた x、 y、 Xd、 Zd、 Xd + 1、 Zd + 1、 Xd一い
Zd—丄からスカラー倍点の射影座標 (Xd,Yd,Zd)における値が全て復元される理 由は以下の通りである。 点(d+l)Pは点 dPに点 Pを加算した点である。 点(d-l)Pは 点 dPから点 Pを減算した点である。 これより、 先に述べた数 7を得ることができ る。 座標復元部 203はスカラー倍点の射影座標で表された完全な座標として
(Xd,Yd,zd)を出力する。
上記手 WIにより与えられた x、 y Xd、 Zd、 Xd + 1、 Zd + 1、 Xd一い Zd一ェ力、 らスカラ一倍点の射影座標 (X d, Y d, Z d )における値が全て復元される理由は以下 の通りである。 点( d + 1 )Pは点 dPに点 Pを加算した点である。 点(d-l) Pは点 dPか ら点 Pを減算した点である。 モンゴメリ型楕円曲線のァフィン座標における加算 公式に代入すると、 数 6、 数 7を得る。 両辺を各々減算することにより、 数 8を 得る。 したがって、 数 9となる。 ここで x d=Xd/Zd、 X d + 1=Xd + 1/Zd + 1、 X d— i-Xd— — であり、 この値を代入することにより射影座標の値へと 変換すると、 数 7を得る。 '
X d=Xd/Zdであるが、 y dの分母と通分することにより、 数 2 0となる。 その 結果として、
Yd = (X^ZM - Zd_,XM){Xd - Zdxf …数 2 1
とし、 xd及ぴ zdをそれぞれ
AByZd+xZd_xZdXd …数 2 2
AByZMZd_xZdZd …数 2 3
により更新すればよい。 ここで示した Xd, Yd, Zd, は図 1 3で示した処理によ り与えられている。 したがって、 射影座標の値^ 丫 ?^が全て復元されてぃ ることになる。 上記手順はステップ 1 3 0 1、 ステップ 1 302、 ステップ 1 304、 ステツ プ 1 307、 ステップ 1 3 08、 ステップ 1 309、 ステップ 1 3 1 0、 ステツ プ 1 31 1、 ステップ 1 3 1 2及ぴステップ 1 3 1 3において有限体上の乗算の 計算量を必要とする。 また、 ステップ 1 306において有限体上の 2乗算の計算 量を必要とする。 有限体上の減算の計算量は、 有限体上の乗算の計算量、 2乗算 の計算量と比べて比較的小さいので無視してもよレ、。 有限体上の乗算の計算量を M、 有限体上の 2乗算の計算量を Sとすると、 上記手順は 1 0 M+ Sの計算量を 必要とする。 これは高速スカラー倍計算の計算量と比べてはるかに小さい。 例え ばスカラー値 dが 1 6 0ビットであれば、 高速スカラー倍計算の計算量はおおよ そ 1 50 OM弱と見積もられる。 S = 0. 8 Mと仮定すると座標復元の計算量は 1 0. 8Mであり、 高速スカラー倍計算の計算量と比べてはるかに小さい。 した がつて効率的に座標を復元できていることが示された。
尚、 上記手順をとらなくても、 上記計算式により与えられた Xd,Yd,Zdの値が 計算できれば Xd,Yd,Zdの値が復元できる。 また、 Xd,ydが上記計算式により与 えられる値を取るように Xd,Yd,Zdの値を選択し、 その値が計算できれば Xd, Yd,Zdが復元できる。 それらの場合においては一般的に復元に必要となる計算 量が増大する。 また、 楕円曲線のパラメータである Bの値を小さくとることによ り、 ステップ 1 308における乗算の計算量を削減することができる。
次に、 スカラー値 d及びモンゴメリ型楕円曲線上の点 Pから、 Xd, Zd, Xd+ 1, Zd + 1, Xd_!, Zd一ュを出力するアルゴリズムについて説明する。
第 4実施例の高速スカラー倍計算部 202の高速スカラー倍計算方法として、 第 3実施例の高速スカラー倍計算方法を用いる。 これにより、 スカラー値 d及び モンゴメリ型楕円曲 ,線上の点 P力、ら、 Xd, Zd, Xd + 1, Zd + 1, Xd_l 5 Zd_1 を出力するアルゴリズムとして、 高速であるアルゴリズムが達成される。 尚、 高 速スカラー倍計算部 202において上記手順のアルゴリズムを用いなくても、 ス カラー値 d及びモンゴメリ型楕円曲線上の点 Pから、 Xd, Zd, Xd + 1, Zd + 1, Xd_ -, , Zd— iを出力するアルゴリズムであり且つ高速であれば、 他のアルゴリ ズムを用いていもよい。
スカラー倍計算部 1 03における座標復元部 203の座標復元に必要な計算量 は 1 OM+Sであり、 これは高速スカラー倍計算部 202の高速スカラー倍計算 に必要な計算量の (9. 2 k+ 1) Mとに比べてはるかに小さレ、。 したがって、 スカラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速スカラー倍計 算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 S = 0. 8Mと仮 定すると、 この計算量はおおよそ (9. 2 k +1 1. 8) Mと見積もることがで きる。 例えばスカラー値 dが 1 60ビット (k = l 60) であれば、 このスカラ 一倍計算に必要な計算量はおおよそ 1484Mとなる。 楕円曲線としてワイエル シュトラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビアン座標を中心と した混合座標系を用いたスカラー倍計算方法を用いて、 スカラー倍点をヤコビア ン座標として出力する場合に必要となる計算量はおおよそ 1600Mであり、 こ れと比べて必要となる計算量は削減されている。
第 5の実施例は、 スカラー倍計算部 1 03がスカラー値 d及ぴモンゴメリ型楕 円曲線上の点 Pから、 モンゴメリ型楕円曲線におけるァフィン座標の点として完 全な座標が与えられたスカラ一倍点 (xd,yd)を計算し出力する。 スカラ一値 d及 ぴモンゴメリ型楕円曲線上の点 Pをスカラー倍計算部 103に入力すると高速ス カラー倍計算部 202がそれを受け取る。 高速スカラー倍計算部 202は受け取 つたスカラー値 dと与えられたモンゴメリ型楕円曲線上の点 Pからモンゴメリ型楕 円曲線においてァフィン座標で表されたス力ラー倍点 dP= (x d , y d )の座標のう ち xd、 ァフィン座標で表されたモンゴメリ型楕円曲線上の点(d+l)P=(xd + 1, yd + 1)の座標のうち X d +い ァフィン座標で表されたモンゴメ リ型楕円曲線上 の点(d- 1) P= (xd_1 )yd_1)の座標のうち X d— を計算し、 ァフィン座標で表 された入力されたモンゴメリ型楕円曲線上の点 P=(x, y)と共にその情報を座標復 元部 203に与える。 座標復元部 203は与えられた座標の値 xd、 xd + 1、 xd— x及ぴ yよりモンゴメリ型楕円曲線においてァフィン座標で表されたスカ ラー倍点 dP=(xd,yd)の座標 ydの復元を行なう。 スカラー倍計算部 1 03はァ フィン座標におレ、て完全に座標が与えられたスカラ一倍点 (X d , y d )を計算結果 として出力する。
次に図 26により、 座標 x、 y、 xd、 xd+i、 xd— が与えられた場合に、 xd、 ydを出力する座標復元部の処理について説明する。 座標復元部 2 0 3では、 モンゴメリ型楕円曲線においてァフィン座標で表され たスカラ一倍点 dP= (xd)yd)の座標のうち X d、 ァフィン座標で表されたモンゴ メリ型楕円曲線上の点(d+1) P= (xd + 1,yd +!)の座標のうち xd + ]L、 ァフィン 座標で表されたモンゴメリ型楕円曲線上の点(d- 1) P= (xd_ 1,yd_ 1)の座標の うち xd— スカラー倍計算部 1 0 3に入力されたモンゴメリ型楕円曲線上の点 Pをァフィン座標で表した(x y)を入力し、 以下の手順でァフィン座標において完 全な座標が与えられたスカラ一倍点(xd yd)を出力する。
ステップ 2 6 0 1において xd— Xが計算され、 レジスタ 1^に格納される。 ス テツプ 2 6 02において丁;!の 2乗すなわち(xd— X) が計算され、 レジスタ T に格納される。 ステップ 2 6 0 3において xd— xd + 1が計算され、 レジ スタ T 2に格納される。 ステップ 2 6 04において ΧΤ 2が計算される。 こ こでレジスタ には(xd— X) がレジスタ Τ 2には 一 xd + 1がそれぞれ格 納されており、 したがって(xd— X) (xd— 一 xd + 1)が計算される。 その結果 がレジスタ Tュに格納される。 ステップ 2 6 0 5において 4BXyが計算され、 レ ジスタ丁2に格納される。 ステップ 2 6 0 6において T2の逆元が計算される。 ここでレジスタ Τ 2には 4Byが格納されており、 したがって l/4Byが計算される。 その結果がレジスタ T2に格納される。 ステップ 2 6 0 7において T XT 2力 S 計算される。 ここでレジスタ 1^には (xd— X) (xd— i—Xd + i)がレジスタ T 2 には l/4Byがそれぞれ格納されており、 したがって(xd— X) S d— i―
xd + 1)/4Byが計算される。 その結果がレジスタ ydに格納される。 したがってレ ジスタ ydには(xd—x) 2 (xd— ;L— xd+i)/4Byが格納されている。 レジスタ xdは 全く更新されないので入力された値が保持されている。
上記手順によりスカラー倍点の y座標 ydが復元される理由は以下の通りである。 尚、 点( d + i ) Pは点 dPに点 Pを加算した点であり、 点(d- 1) Pは点 dPから点 Pを減算 した点である。 モンゴメリ型楕円曲線のァフィン座標における加算公式に代入す ると、 数 6、 数 7を得る。
両辺を各々減算することにより、 数 8を得る。 したがって、 数 9となる。
ここで、 xd ydは図 2 6の処理により与えられる。 したがって、 ァフィン座 標 (X d y d )の値は全て復元されたことになる。 上記手順はステップ 2604、 ステップ 2605及ぴステップ 2607におレヽ て有限体上の乗算の計算量を必要とする。 また、 ステップ 2602において有限 体上の 2乗算の計算量を必要とする。 さらにステップ 2606において有限体上 の逆元演算の計算量を必要とする。 有限体上の減算の計算量は、 有限体上の乗算 の計算量、 2乗算の計算量、 逆元演算の計算量と比べて比較的小さいので無視し てもよい。 有限体上の乗算の計算量を M、 有限体上の 2乗算の計算量を S、 有限 体上の逆元演算の計算量を Iとすると、 上記手順は 3 M+ S + Iの計算量を必要 とする。 これは高速スカラー倍計算の計算量と比べてはるかに小さい。 例えばス カラー値 dが 160ビットであれば、 高速スカラー倍計算の計算量はおおよそ 1 500M弱と見積もられる。 S = 0. 8 M及び I =4 OMと仮定すると座標復元 の計算量は 43. 8Mであり、 高速スカラー倍計算の計算量と比べてはるかに小 さい。 したがつて効率的に座標を復元できていることが示された。
尚、 上記手順をとらなくても、 上記等式の右辺の値が計算できれば ydの値が 復元できる。 その場合は一般的に復元に必要となる計算量が増大する。 また、 楕 円曲線のパラメタである Bの値を小さくとることにより、 ステップ 2605にお ける乗算の計算量を削減することができる。
次に図 6により、 スカラー値 d及ぴモンゴメリ型楕円曲線上の点 Pから、 xd、 xd + 1, xd_!を出力する高速スカラー倍計算部の処理について説明する。
高速スカラー倍計算部 202では、 スカラー倍計算部 103に入力されたモン ゴメリ型楕円曲線上の点 Pを入力し、 以下の手順によりモンゴメリ型楕円曲線に おいてァフィン座標で表されたスカラー倍点 dP=(xd,yd)のうち xd、 ァフィン 座標で表されたモンゴメリ型楕円曲線上の点(d+1) P=(Xd + 1,yd + 1)のうち
X d + 1、 ァフィン座標で表されたモンゴメリ型楕円曲線上の点(d- 1) P=
(xd— iJd— のうち xd—丄を出力する。 ステップ 60 1として、 変数 Iに初 期値 1を代入する。 ステップ 602として、 点 Pの 2倍点 2 Pを計算する。 ここで 点 Pは射影座標において( X , y , 1)として表し、 モンゴメリ型楕円曲線の射影座標 における 2倍算の公式を用いて 2倍点 2Pを計算する。 ステップ 603として、 ス カラー倍計算部 1 03に入力された楕円曲線上の点 Pとステップ 602で求めた 点 2Pを、 点の組 (P,2P)として格納する。 ここで点 P及ぴ点 2Pは射影座標で表され ている。 ステップ 604として、 変数 I とスカラー値 dのビッ'ト長とが一致する かどうかを判定し、 一致すればステップ 6 14へ行く。 一致しなければステップ 6 05へ行く。 ステップ 605として、 変数 Iを 1増加させる。 ステップ 6 06 として、 スカラー値の I番目のビットの値が 0であるか 1であるかを判定する。 そのビットの値が 0であればステツプ 607へ行く。 そのビットの値が 1であれ ばステップ 6 1 0へ行く。 ステップ 60 7として、 射影座標により表された点の 組(mP, (m+1) P)から点 mPと点(m+1) Pの加算 mP+ (m+1) Pを行ない、 点(2m+l) Pを計算 する。 その後ステップ 6 08へ行く。 ここで、 加算 mP+(m+l)Pは、 モンゴメリ型 楕円曲線の射影座標における加算公式を用いて計算される。 ステップ 608とし て、 射影座標により表された点の組 (mP, (m+l)P)から点 mPの 2倍算 2 (mP)を行な い、 点 2mPを計算する。 その後ステップ 6 09へ行く。 ここで、 2倍算 2(mP)は、 モンゴメリ型楕円曲線の射影座標における 2倍算の公式を用いて計算される。 ス テツプ 609として、 ステップ 6 08で求めた点 2mPとステップ 60 7で求めた 点 (2m+ 1 ) Pを点の組 (2mP, (2m+ 1 ) P)として、 点の組 (mP, (m+ 1 ) P)の代わりに格 納する。 その後ステップ 604へ戻る。 ここで、 点 2raP、 点(2m+l)P、 点 mP及 び点 (m+1) Pは全て射影座標において表されている。 ステップ 6 1 0として、 射 影座標により表された点の組 (mP, (m+ 1 )P)から点 mPと点(m+ 1 )Pの加算 mP+(m+ 1)Pを行ない、 点 (2 1)Pを計算する。 その後ステップ 6 1 1へ行く。 ここで、 加算 raP+(m+l)Pは、 モンゴメリ型楕円曲線の射影座標における加算公式を用いて 計算される。 ステップ 6 1 1として、 射影座標により表された点の組 (mP, (m+ 1)?)から点(111+1)?の2倍算2((111+1)?)を行なぃ、 点(2m+2)Pを計算する。 その 後ステップ 6 1 2へ行く。 ここで、 2倍算 2((m+l)P)は、 モンゴメリ型楕円曲線 の射影座標における 2倍算の公式を用いて計算される。 ステップ 6 1 2として、 ステップ 6 1 0で求めた点(2m+l)Pとステップ 6 1 1で求めた点(2m+2)Pを点の 組((2m+l)P, (2m+2)P)として、 点の組 (mP,(m+1) P)の代わりに格納する。 その後ス テツプ 604へ戻る。 ここで、 点 (2m+l) P、 点 (2m+2) P、 点 mP及ぴ点 (m+1) Pは全て 射影座標において表されている。 ステップ 6 14として、 射影座標で表された点 の組 (mP, (m+1) P)から、 点 (m- 1) Pの射影座標における X座標 Xmχ及び Ζ座標 Zm— 1を求め、 それぞれ Xd— 1及ぴ Zd— 1とする。 その後ステップ 6 1 5へ行く。 ステップ 6 1 5として、 射影座標で表された点 mP== (Xm, Ym, Zm)より Xm及び Zm をそれぞれ X d及び Z dとし、 射影座標で表された点 (m+1) P= (Xm+!, Ym + !, Zm+ :L)より Xm+ 1及び Zm+ 1をそれぞれ Xd + ;1及び Zd + iとする。 ここで、 Ym 及び ^Ym+ 1は、 モンゴメリ型楕円曲線の射影座標における加算公式及ぴ 2倍算の 公式では Y座標を求める事ができないので、 求まっていない。 Xd— Zd_!,
Xd, Zd, Xd+ 1, Zd+ 1より、
xd-\ …数 2 4
Xd = …数^
xd+i
Figure imgf000046_0001
···数 2 6
として xd— xd, xd + 1を求める。 その後ステップ 6 1 3へ行く。 ステップ 6 1 3として、 xd_;L, xd, xd + 1を出力する。 上記手順により、 mとスカラ 一値 dはビット長が等しくさらにそのビットのパターンも同じとなる為、 等しく なる。 またステップ 6 1 4において(m-l)Pを求める際に、 数 1 3、 数 1 4の公式 により求めてもよいし、 mが奇数であれば、 ((m- 1)/2)Pの値をステップ 6 1 2の 段階で別に保持しておき、 その値からモンゴメリ型楕円曲線の 2倍算の公式より、 (m—l)Pを求めてもよい。
モンゴメリ型楕円曲線の射影座標における加算公式の計算量は、 Ζι =1ととる ことにより 3 M+ 2 Sとなる。 ここで Mは有限体上の乗算の計算量、 Sは有限体 上の 2乗算の計算量である。 モンゴメリ型楕円曲線の射影座標における 2倍算の 公式の計算量は、 3M+ 2 Sである。 スカラー値の I番目のビットの値が 0であ れば、 ステップ 6 07において加算の計算量、 ステップ 60 8において 2倍算の 計算量が必要となる。 すなわち 6 M+ 4 Sの計算量が必要となる。 スカラー値の I番目のビットの値が 1であれば、 ステップ 6 1 0において加算の計算量、 ステ ップ 6 1 1において 2倍算の計算量が必要となる。 すなわち 6 M+ 4 Sの計算量 が必要である。 いずれの場合においても 6 M+ 4 Sの計算量が必要である。 ステ ップ 6 04、 ステップ 6 0 5、 ステップ 6 06、 ステップ 6 0 7、 ステップ 6 0 8、 ステップ 6 0 9乃至はステップ 6 04、 ステップ 6 0 5、 ステップ 6 0 6、 ステップ 6 1 0、 ステップ 6 1 1、 ステップ 6 1 2の繰り返しの回数は、 (スカ ラ一値 dのビット長)一 1回となるので、 ステップ 6 0 2での 2倍算の計算量及 びステップ 614での(m-l)Pの計算に必要な計算量及ぴァフィン座標への変換の 計算量を考慮に入れると、 全体の計算量は (6M+4 S) k+ l lM+ I となる ここで kはスカラー値 dのビット長である。 一般的には、 計算量 Sは、 S==0. 8M程度、 計算量 Iは I =40M程度と見積もられるので、 全体の計算量はおお よそ (9. 2 k+51) Mとなる。 例えばスカラー値 dが 1 60ビット (k= l 60) であれば、 上記手順のアルゴリズムの計算量はおおよそ 1523Mとなる c スカラー値 dのビットあたりの計算量としてはおよそ 9. 2Mとなる。 A.Miyaji, T. Ono, H. Cohen, Efficient elliptic curve exponentiation using mixed coordinates, Advances in Cryptology Proceedings of ASIACRYPT' 98, LNCS 1514 (1998) pp.51- 65 には、 ワイエルシュトラス型楕円曲線において、 ウィン ドウ法を用いてャコビアン座標を中心とした混合座標系を用いたスカラ一倍計算 方法は高速なスカラー倍計算方法として記載されている。 この場合においては、 スカラー値のビットあたりの計算量はおおよそ 10Mと見積もられ、 これ以外に ァフィン座標への変換の計算量が必要となる。 例えばス力ラ一値 dが 160ビッ ト (k=160) であれば、 このスカラー倍計算方法の計算量はおおよそ 1 64 0Mとなる。 したがって、 上記手順のアルゴリズムの方が計算量が少なく高速と いえる。
尚、 高速スカラー倍計算部 202において上記手順のアルゴリズムを用いなく ても、 スカラー値 d及ぴモンゴメリ型楕円曲線上の点 Pから、 xd、 xd+ 1
を出力するアルゴリズムであり且つ高速であれば、 他のアルゴリズムを用 いていもよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 3M+S+ Iであり、 これは高速スカラー倍計算部 202の高速スカラー倍計 算に必要な計算量の (9. 2 k + 51) Mとに比べてはるかに小さい。 したがつ て、 スカラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速スカラー 倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 S = 0. 8M 及び I =40Mと仮定すると、 この計算量はおおよそ (9. 2 k+ 94. 8) M と見積もることができる。 例えばスカラー値 dが 1 60ビット (k=1 60) で あれば、 このスカラー倍計算に必要な計算量はおおよそ 1567Mとなる。 楕円 曲線としてワイエルシュトラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコ ビアン座標を中心とした混合座標系を用いたスカラー倍計算方法を用いて、 スカ ラー倍点をァフィン座標として出力する場合に必要となる計算量はおおよそ 1 6 40Mであり、 これと比べて必要となる計算量は削減されている。
第 6の実施例は、 楕円曲線としてワイエルシュトラス型楕円曲線を用いたもの である。 すなわち、 スカラー倍計算部 103の入出力に用いる楕円曲線はヮイエ ルシュトラス型楕円曲線である。 ただし、 スカラ一倍計算部 1 03の内部の計算 で使用する楕円曲線として、 与えられたワイエルシュトラス型楕円曲線から変換 可能であるようなモンゴメリ型楕円曲線を用いてもよい。 スカラー倍計算部 1 0 3がスカラー値 d及ぴワイエルシュトラス型楕円曲線上の点 Pから、 ワイエルシュ トラス型楕円曲線におけるァフィン座標の点として完全な座標が与えられたスカ ラ一倍点 (xd,yd)を計算し出力するものである。 スカラ一値 d及ぴワイエルシュ トラス型楕円曲線上の点 Pをスカラー倍計算部 103に入力すると高速スカラー 倍計算部 202がそれを受け取る。 高速スカラー倍計算部 202は受け取ったス カラー値 dと与えられたワイエルシュトラス型楕円曲線上の点 Pからワイエルシュ トラス型楕円曲線において射影座標で表されたス力ラ一倍点 dP= (X d , Y d, Z d )の 座標のうち Xd及び Zd、 射影座標で表されたワイエルシュ トラス型楕円曲線上の 点 (d + 1 )P= d+l,Yd + l,Zd + l)の挫 feのつち Xd + 1及び zd + 1、 射影座標 で表されたワイエルシュトラス型楕円曲線上の点(d— 1) P (X d一; L , Y d— ]_ , Zd_!)の座標のうち X d— TL及ぴ Z d―!を計算し、 ァフィン座標で表された入力 されたワイエルシュトラス型楕円曲線上の点 P=(x, y)と共にその情報を座標復元 部 203に与える。 座標復元部 203は与えられた座標の値値 Xd、 Zd、 Xd+ 1、 Zd + 1、 Xd_lN Zd—い x及ぴ yよりワイエルシュトラス型楕円曲線において ァフィン座標で表されたスカラ一倍点 dP= (xd,yd)の座標 X d及び y dの復元を 行なう。 スカラー倍計算部 103はァフィン座標において完全に座標が与えられ たスカラー倍点 (xd,yd)を計算結果として出力する。
次に図 14により、 座標 x、 yヽ Xdヽ Zdヽ Xd + 1、 Zd + 1、 Xd—ェ、 カ 与えられた場合に xd、 ydを出力する座標復元部の処理について説明する。
座標復元部 203では、 ワイエルシュトラス型楕円曲線において射影座標で表 されたスカラ一倍点 dP= (Xd,Yd,Zd)の座標うち X d及び z d、 射影座標で表され たワイエルシュ トラス型楕円曲線上の点( d + 1 )P= (Xd + , Yd + i, Z d + i )の座 標のうち X d + 及ぴ Z d + i、 射影座標で表されたワイエルシュトラス型楕円曲線 上の点(d- l)P=(Xd— ^Yd— ^Zd— の座標のうち Xd— 1及ぴ zd—い スカラ 一倍計算部 103に入力されたワイエルシュトラス型楕円曲線上の点 Pをァフィ ン座標で表した(X, y)を入力し、 以下の手順でァフィン座標おいて完全な座標が 与えられたスカラー倍点 (xd,yd)を出力する。 ここで入力されたワイエルシュ トラス型楕円曲線上の点 Pのァフィン座標を(χ, y)で、 射影座標を(X 1, Y 1 , Z i )で それぞれ表す。 入力されたスカラー値を dとしてワイエルシュトラス型楕円曲線 におけるスカラー倍点 dPのァフィン座標を(xd,yd)で、 射影座標を(Xd,Yd,Zd) でそれぞれ表す。 ワイエルシュトラス型楕円曲線上の点(d-l)Pのァフィン座標を (xd一 yd— で、 射影座標を(Xd— ;L,Yd一 一 でそれぞれ表す。 ヮイエ /レシュトラス型楕円曲線上の点(d+1) Pのァフィン座標を(X d + , y d + i )で、 射 影座標を(Xd + 1,Yd + 1,Zd+1)でそれぞれ表す。
ステップ 1401において Xd— が計算され、 レジスタ 1^に格納さ れる。 ステップ 1402において Zd— iXXd + 1が計算され、 レジスタ T2に格 納される。 ステップ 1403において T i—T が計算される。 ここでレジスタ Tェには X d— Z d +丄カ レジスタ T 2には Z d— X d + がそれぞれ格納されてお り、 したがって Xd— Zd+ -Zd— iXd+iが計算される。 その結果がレジスタ 丁 に格納される。 ステップ 1404において Zd Xxが計算され、 レジスタ T 2 に格納される。 ステップ 1405において Xd- T2が計算さる。 ここでレジスタ Τ2には Zdxが格納されており、 したがって Xd - xZdが計算される。 その結果が レジスタ T 2に格納される。 ステップ 1406において T 2の 2乗が計算される。 ここでレジスタ T 2には X d - xZ dが格納されており、 したがって(X d - xZ d ) 2が計 算される。 その結果がレジスタ T 2に格納される。 ステップ 1407において
XT 2が計算される。 ここでレジスタ Tiには Xd— iZa+ -Zd一 1xd+1力 s レジスタ T 2には(X d - xZ d ) 2がそれぞれ格納されており、 したがって
(Xd - xZd) 2(Xd— iZd+ 1- Zd一 が計算される。 その結果がレジスタ
T に格納される。 ステップ 1408において 4Xyが計算される。 その結果がレ ジスタ T 2に格納される。 ステップ 1409において T2XZd + 1が計算される。 ここでレジスタ T 2には 4yが格納されており、 したがって 4yZd + 1が計算される。 その結果がレジスタ T 2に格納される。 ステップ 1410において T2XZd— が計算される。 ここでレジスタ T2には 4yZd + 1が格納されており、 したがって 47∑(1+12(1_1カ計算される。 その結果がレジスタ T 2に格納される。 ステップ 141 1において T2XZdが計算される。 ここでレジスタ T2には 4yZd+ 1 Zd一 iが格納されており、 した力 って 4yZd + 1Zd一 カ計算される。 その結果 がレジスタ T 2に格納される。 ステップ 1412において T 2 XXdが計算される。 ここでレジスタ T2には 4yZd + 1Zd— が格納されており、 したがって
4yZd+ :LZd— iZdXd力 S計算される。 その結果がレジスタ T 3に格納される。 ス テツプ 1413において T 2 XZdが計算される。 ここでレジスタ T 2には
4yZd一 iZd + iZd力格糸内されており、 した力 Sつて 4yZd + 1Zd1ZdZdカ計算さ れる。 その結果がレジスタ T 2に格納される。 ステップ 1414においてレジス タ T 2の逆元が計算される。 ここでレジスタ T2には 4yZd + 1Zd一 dZdが格納 されており、 したがって l/4yZd + 1Zd— ^dZdが計算される。 その結果がレジ スタ T2に格納される。 ステップ 141 5において Τ2ΧΤ3が計算される。 こ こでレジスタ Τ2には l/4yZd + 1Zd一 jZdZdがレジスタ Τ3には 4yZd
ZdXd がそれぞれ格納されており、 した力 Sつて(4yZd + 1Zd— iZdXd)/
(4yZd + ]LZd— ^dZd)が計算される。 その結果が xdに格納される。 ステップ 1 416において XT2が計算される。 ここでレジスタ 1^には(Xd- xZd) 2
(Xd1Zd + 1— Zd— iXd+i)力 レジスタ T2に ίま 1/472(1+ 12(^_12(12(1カそれ ぞれ格 #1されており、 した力 Sつて(Xd— + 一 Zd1Xd + 1) (Xd-Zdx) 2/4y Zd + 1Zd一 iZd 2力計算される。 その結果がレジスタ ydに格納される。 したが つてレジスタ ydには (Xd— 厂 Zd— iXd+ 1)(Xd- Zdx) 2/4yZd_1Zd + 1 Zd 2が格納されている。 レジスタ xdにはステップ 141 5において(4yZd一ェ zd + iZdXd)バ 423— ^3+ iZdZd)が格納され、 その後更新が行なわれないの で、 その値が保持されている。
上記手順により与えられた x、 y、 Xd、 Zd、 Xd + 1、 Zd + 1、 Xd_l
Z d一 力 らワイエルシュトラス型楕円曲線におけるスカラ一倍点のァフィン座標 (χ d, y d)における値が全て復元される理由は以下の通りである。 点(d+l)Pは 点 dPに点 Pを加算した点である。 点(d-1) Pは点 dPから点 Pを減算した点である。 ヮ ィエルシュトラス型楕円曲線のァフィン座標における加算公式に代入すると、 次 の式を得る。
(x + xd -χΥ = (yd -yf …数 2 7
(x+xd+ - xf =(yd +yf …数 2 8
両辺を各々減算することにより、
(xd-i一 xM )(¾ - X)2 = 4ydy ···#: 9
を得る。 したがって、
yd = ( - χΜ )(xd -xf …数 3 0
となる。 ここで xd=Xd/Zd、 x d + i =xd+iZzd + i、 x d = i=xd = i/zd = i であり、 この値を代入することにより射影座標の値へと変換すると、 次の式を得 る。
yd = ( -Zd_,XM){Xd
Figure imgf000051_0001
…数 3 1
X d=Xd/Zdであるが、 逆元演算の回数を減らす目的で ydの分母と通分するこ とにより、
4yZd+1Zd^ZdXd
χα = 数 3 2 となる。 ここで、 x d, ydは図 1 4で示した処理により与えられる。 したがつ て、 ァフィン座標 (xd,yd)の値が全て復元されていることになる。
上記手順はステップ 140 1、 ステップ 1 402、 ステップ 1 404、 ステツ プ 1 407、 ステップ 1 409、 ステップ 1 41 0、 ステップ 1 4 1 1、 ステツ プ 1 4 1 2、 ステップ 141 3、 ステップ 1 41 5及ぴステップ 1 4 1 6におい て有限体上の乗算の計算量を必要とする。 ただし、 ステップ 1 408の乗算は、 被乗数の値が 4と小さいので、 その計算量は通常の乗算の計算量と比べて小さい 為無視してよい。 また、 ステップ 1406において有限体上の 2乗算の計算量を 必要とする。 また、 ステップ 1 414において有限体上の逆元演算の計算量を必 要と'する。 有限体上の減算の計算量は、 有限体上の乗算の計算量、 2乗算の計算 量及ぴ逆元演算の計算量と比べて比較的小さいので無視してもよい。 有限体上の 乗算の計算量を M、 有限体上の 2乗算の計算量を S及び有限体上の逆元演算の計 算量を Iとすると、 上記手順は 1 1M+S+ Iの計算量を必要とする。 これは高 速スカラー倍計算の計算量と比べてはるかに小さい。 例えばスカラー値 dが 1 6 0ビットであれば、 高速スカラー倍計算の計算量はおおよそ 1 500M弱と見積 もられる。 S = 0. 8M、 I =40Mと仮定すると座標復元の計算量は 51. 8 Mであり、 高速スカラー倍計算の計算量と比べてはるかに小さい。 したがって効 率的に座標を復元できていることが示された。
尚、 上記手順をとらなくても、 上記計算式により与えられた x d, ydの値力 S 計算できれば x d, ydの値が復元できる。 その場合においては一般的に復元に 必要となる計算量が増大する。
次に図 7により、 スカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 XdiZdJd + Zd+^Xd— ^Zd— iを出力する高速スカラー倍計算部の処理に ついて説明する。
高速ス力ラ一倍計算部 202では、 スカラ一倍計算部 103に入力されたワイ エルシュトラス型楕円曲線上の点 Pを入力し、 以下の手順によりワイエルシュト ラス型楕円曲線において射影座標で表されたス力ラ一倍点 dP= (Xd,Yd,Zd)のう ち xd及ぴ zd、 射影座標で表されたワイエルシュトラス型楕円曲線上の点(d+l)P = (Xd+ 1,Yd + 1,Zd+ 1) 5 Xd+ 1d + 1、 射影座標で表されたヮイエ ルシュトラス型楕円曲線上の点(d— l)P=(Xd— Yd— 一 のうち 及ぴ Zd— を出力する。 ステップ 71 6として、 与えられたワイエルシュトラス 型楕円曲線上の点 Pをモンゴメリ型楕円曲線上で射影座標により表された点に変 換する。 この点をあらためて点 Pとする。 ステップ 701として、 変数 Iに初期 値 1を代入する。 ステップ 702として、 点 Pの 2倍点 2 Pを計算する。 ここで点 Pは射影座標において(X, y, 1)として表し、 モンゴメリ型楕円曲線の射影座標に おける 2倍算の公式を用いて 2倍点 2Pを計算する。 ステップ 703として、 スカ ラ一倍計算部 1 03に入力された楕円曲線上の点 Pとステップ 702で求めた点 2Pを、 点の組 (P,2P)として格納する。 ここで点 P及び点 2Pは射影座標で表されて いる。 ステップ 704として、 変数 Iとスカラー値 dのビット長とがー致するか どうかを判定し、 一致すればステップ 714へ行く。 一致しなければステップ 7 05へ行く。 ステップ 705として、 変数 Iを 1増加させる。 ステップ 706と して、 スカラー値の I番目のビットの値が 0であるか 1であるかを判定する。 そ のビットの値が 0であればステップ 707へ行く。 そのビットの値が 1であれば ステップ 710へ行く。 ステップ 707として、 射影座標により表された点の組 (mP, (m+1) P)から点 mPと点(m+1) Pの加算 mP+ (m+1) Pを行ない、 点(2m+l) Pを計算す る。 その後ステップ 708へ行く。 ここで、 加算 raP+(m+l)Pは、 モンゴメリ型楕 円曲線の射影座標における加算公式を用いて計算される。 ステップ 708として、 射影座標により表された点の組 (mP, (m+1) P)から点 mPの 2倍算 2 (mP)を行ない、 点 2mPを計算する。 その後ステップ 709へ行く。 ここで、 2倍算 2(mP)は、 モン ゴメリ型楕円曲線の射影座標における 2倍算の公式を用いて計算される。 ステツ プ 709として、 ステップ 708で求めた点 2mPとステップ 707で求めた点 (2ra+ 1 ) Pを点の組(2raP, (2m+ 1 ) P)として、 点の組 (mP, (m+ 1 ) P)の代わりに格納 する。 その後ステップ 704へ戻る。 ここで、 点 2mP、 点(2m+l)P、 点 raP及ぴ 点 (m+1 )Pは全て射影座標において表されている。 ステップ 710として、 射影 座標により表された点の組 (mP, (m+ 1 ) P)から点 mPと点(m+ 1 ) Pの加算 mP+ (m+ 1 ) P を行ない、 点 (2m+l)Pを計算する。 その後ステップ 71 1へ行く。 ここで、 加算 mP+(m+l)Pは、 モンゴメリ型楕円曲線の射影座標における加算公式を用いて計算 される。 ステップ 71 1として、 射影座標により表された点の組 (mP, (m+l)P)か ら点 (m+l)Pの 2倍算 2((m+l)P)を行ない、 点(2m+2) Pを計算する。 その後ステツ プ 712へ行く。 ここで、 2倍算 2 ((m+1) P)は、 モンゴメリ型楕円曲線の射影座 標における 2倍算の公式を用いて計算される。 ステップ 712として、 ステップ 7 1 0で求めた点(2m+ 1 )Pとステップ 7 1 1で求めた点(2m+2)Pを点の糸且 ((2ra+l)P, (2m+2) P)として、 点の組 (mP, (ra+1) P)の代わりに格納する。 その後ステ ップ 704へ戻る。 ここで、 点(2m+l)P、 点(2m+2)P、 点 mP及ぴ点 (m+1) Pは全て射 影座標において表されている。 ステップ 714として、 射影座標で表された点の 組 (mP, (m+1) P) から、 点 (m - 1) Pの射影座標における X座標 Xm—!及び Z座標
Zm - 1を求める。 その後ステップ 71 5へ行く。 ステップ 715として、 モンゴ メリ型楕円曲線における点 (m-l)Pを、 ワイエルシュトラス型楕円曲線上で射影座 標により表された点に変換する。 その点の X座標及び Z座標をそれぞれあらためて Xm— i及び Zm— iとおく。 また、 モンゴメリ型楕円曲線において射影座標で表さ れた点の組 (mP,(m+l)P)に対して、 点 mP及ぴ点(m+l)Pをワイエルシュトラス型楕 円曲線上で射影座標で表された点に変換し、 それぞれ mP= (Xm,Ym,Zm) 及ぴ
Figure imgf000054_0001
とあらためて置き直す。 ここで、 Ym及び
Ym+ 1は、 モンゴメリ型楕円曲線の射影座標における加算公式及び 2倍算の公式 では Y座標を求める事ができないので、 求まっていない。 ステップ 71 3として、 ヮィエルシュトラス型楕円曲線上で射影座標で表された点 (m- 1) Pの X座標 Xm1 及び Z座標 Zm— iをそれぞれ Xd— 及ぴ Zd— として、 ワイエルシュ トラス型楕 円曲線上で射影座標で表された点 mP= (Xm, Ym, Zm) より Xm及ぴ Zmをそれぞれ Xd及び Zdとして、 ワイエルシュ トラス型楕円曲線上で射影座標で表された点 (m+l)P= (Xm+i,Ym+i,Zm+]L) より Xm+ 1及ぴ Zm+iをそれぞれ Xd + 1及び Zd + 1として、 出力する。 また上記手順により、 mとスカラー値 dはビット長が 等しくさらにそのビッ トのパターンも同じとなる為、 等しくなる。 またステップ 714において(m- 1)Pを求める際に、 数 1 3、 数 14の公式により求めてもよい し、 mが奇数であれば、 ((m - 1)/2)Pの値をステップ 71 2の段階で別に保持して おき、 その値からモンゴメリ型楕円曲線の 2倍算の公式より、 (m_l)Pを求めても よい。
モンゴメリ型楕円曲線の射影座標における加算公式の計算量は、 Ζ1=1ととる ことにより 3M+2 Sとなる。 ここで Μは有限体上の乗算の計算量、 Sは有限体 上の 2乗算の計算量である。 モンゴメリ型楕円曲線の射影座標における 2倍算の 公式の計算量は、 3M+2 Sである。 スカラー値の I番目のビットの値が 0であ れば、 ステップ 707において加算の計算量、 ステップ 708において 2倍算の 計算量が必要となる。 すなわち 6Μ+ 4 Sの計算量が必要となる。 スカラー値の I番目のビットの値が 1であれば、 ステップ 71 0において加算の計算量、 ステ ップ 71 1において 2倍算の計算量が必要となる。 すなわち 6Μ+4 Sの計算量 が必要である。 いずれの場合においても 6 Μ+ 4 Sの計算量が必要である。 ステ ップ 704、 ステップ 705、 ステップ 706、 ステップ 707、 ステップ 70 8、 ステップ 709乃至はステップ 704、 ステップ 705、 ステップ 706、 ステップ 710、 ステップ 71 1、 ステップ 71 2の繰り返しの回数は、 (スカ ラー値 dのビッ ト長) 一 1回となるので、 ステップ 702での 2倍算の計算量と ステップ 716でのモンゴメリ型楕円曲線上の点への変換に必要な計算量及ぴス テツプ 715でのワイエルシュトラス型楕円曲線上の点への変換に必要な計算量 を考慮に入れると、 全体の計算量は (6M+4 S) k + 4Mとなる。 ここで kは スカラー値 dのビット長である。 一般的には、 計算量 Sは、 S = 0. 8M程度と 見積もられるので、 全体の計算量はおおよそ (9. 2 k + 4) Mとなる。 例えば スカラー値 dが 1 60ビット (k == 160) であれば、 上記手順のアルゴリズム の計算量はおおよそ 1476Mとなる。 スカラー値 dのビットあたりの計算量と してはおよそ 9. 2Mとなる。 A.Miyaji, T.0no, H. Cohen, Efficient elliptic curve exponentiation using mixed coordinates, Advances in Cryptology
Proceedings of ASIACRYPT' 98, LNCS 1514 (1998) pp.51-65 には、 ワイエルシ ュトラス型楕円曲線において、 ウィンドウ法を用いてヤコビアン座標を中心とし た混合座標系を用いたスカラー倍計算方法は高速なスカラー倍計算方法として記 載されている。 この場合においては、 スカラー値のビットあたりの計算量はおお よそ 10Mと見積もられる。 例えばスカラー値 dが 160ビット (k = 160) であれば、 このスカラー倍計算方法の計算量はおおよそ 1600Mとなる。 した がって、 上記手順のアルゴリズムの方が計算量が少なく高速といえる。
尚、 高速スカラー倍計算部 202において上記手順のアルゴリズムを用いなく ても、 スカラー値 d及ぴワイエルシュトラス型楕円曲線上の点 Pから、 Xd、 Zd、 Xd + 1、 Zd + 1、 Xd—い を出力するアルゴリズムであり且つ高速であれ ば、 他のアルゴリズムを用いていもよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 1 1 M+ S + Iであり、 これは高速スカラー倍計算部 202の高速スカラー倍 計算に必要な計算量の (9. 2 k + 4) Mとに比べてはるかに小さい。 したがつ て、 スカラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速スカラー 倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 I = 40M、 S = 0. 8Mと仮定すると、 この計算量はおおよそ (9. 2 k + 55. 8) Mと 見積もることができる。 例えばスカラー値 dが 1 60ビット (k= 1 60) であ れば、 このスカラー倍計算に必要な計算量はおおよそ 1 528Mとなる。 楕円曲 線としてワイエルシュトラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビ アン座標を中心とした混合座標系を用いたスカラー倍計算方法を用いて、 スカラ 一倍点をァフィン座標として出力する場合に必要となる計算量はおおよそ 164 0 Mであり、 これと比べて必要となる計算量は削減されている。
第 7の実施例は楕円曲線としてワイエルシュトラス型楕円曲線を用いたもので ある。 すなわち、 スカラー倍計算部 103の入出力に用いる楕円曲線はワイエル シュトラス型楕円曲線である。 ただし、 スカラー倍計算部 103の内部の計算で 使用する楕円曲線として、 与えられたワイエルシュトラス型楕円曲線から変換可 能であるようなモンゴメリ型楕円曲線を用いてもよい。 スカラー倍計算部 103 がスカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 ワイエルシュト ラス型楕円曲線における射影座標の点として完全な座標が与えられたスカラー倍 点(Xd,Yd,Zd)を計算し出力する。 スカラー値 d及びワイエルシュトラス型楕円 曲線上の点 Pをスカラー倍計算部 1 03に入力すると高速スカラー倍計算部 20 2がそれを受け取る。 高速スカラー倍計算部 202は受け取ったスカラー値 と 与えられたワイエルシュトラス型楕円曲線上の点 Pからワイエルシュトラス型楕 円曲線において射影座標で表されたスカラ一倍点 dP= (Xd,Yd,Zd)の座標のうち Xd及び zd、 射影座標で表されたワイエルシュトラス型楕円曲線上の点(d+l)P= (Xd + 1,Yd+ 1,Zd + 1)の座標のうち Xd+ i及び Z d + i、 射影座標で表されたヮ ィエルシュトラス型楕円曲線上の点(d- 1) P=(Xd_1,Yd_1,Zd_!)の座標のう ち Xd— 1及び Zd—丄を計算し、 ァフィン座標で表された入力されたワイエルシュ トラス型楕円曲線上の点 P=(x,y)と共にその情報を座標復元部 203に与える。 座標復元部 203は与えられた座標の値 Xd、 Zd、 Xd +い Zd + 1、 Xd
Zd—い x及ぴ yよりワイエルシュトラス型楕円曲線において射影座標で表された スカラー倍点 dP=(Xd,Yd,Zd)の座標 Xd,Yd及び Zdの復元を行なう。 スカラー 倍計算部 103は射影座標において完全に座標が与えられたスカラー倍点 (Xd, Yd,Zd)を計算結果として出力する。
次に図 1 5により、 座標 x、 y Xd、 Zd、 Xd + 1、 Zd + 1、 Xd一 Ζάτが与 えられた場合に Xd、 Yd、 Zdを出力する座標復元部の処理について説明する。 座標復元部 203では、 ワイエルシュトラス型楕円曲線において射影座標で表 されたスカラ一倍点 dP= (X d, Y d, Z d )の座標のうち X d及ぴ z d、 射影座標で表さ れたワイエルシュトラス型楕円曲線上の点(d+1) P= (Xd + 1,Yd+ 1,Zd + 1)©J¾ 標のうち X d + i及び z d + 1, 射影座標で表されたワイエルシュトラス型楕円曲線 上の点(d-DP ^d-^Yd— ^Zd— i)の座標のうち 及び スカラ 一倍計算部 103に入力されたワイエルシュトラス型楕円曲線上の点 Pをァフィ ン座標で表した (X, y)を入力し、 以下の手順で射影座標おいて完全な座標が与え られたスカラー倍点 (Xd,Yd,Zd)を出力する。 ここで入力されたワイエルシュト ラス型楕円曲線上の点 Pのァフィン座標を(X, y)で、 射影座標を(X J , Y丄, Z i )でそ れぞれ表す。 入力されたスカラー値を dとしてワイエルシュトラス型楕円曲線に おけるスカラー倍点 dPのァフィン座標を(xd, yd)で、 射影座標を (Xd,Yd,Zd)で それぞれ表す。 ワイエルシュトラス型楕円曲線上の点(d-l)Pのァフィン座標を
(xd一 yd— で、 射影座標を(Xd一 丫 一 ^Zd— でそれぞれ表す。 ヮイエ ルシュトラス型楕円曲線上の点(d+1) Pのァフィン座標を(X d + j, y d + )で、 射 影座標を (Xd + 1,Yd+ :L,Zd + i)でそれぞれ表す。
ステップ 1501において Xd— XZd+ 1が計算され、 に格納される。 ス テツプ: 1 502において Zd— iXXa+iが計算され、 T 2に格納される。 ステツ プ 1503において T — T2が計算される。 ここで には Xd— が Τ2 には 2(1_1 (1+1カそれぞれ格糸内されており、 した力 Sつて — 一 Zd—ェ
Xd + 1が計算される。 その結果が TP に格納される。 ステップ 1504において Zd Xxが計算され、 T 2に格納される。 ステップ 1 505において Xd- T 2が計 算さる。 ここで T 2には Zdxが格納されており、 したがって Xd_xZdが計算され る。 その結果が T 2に格納される。 ステップ 1 506において T 2の 2乗が計算 される。 ここで T2には Xd- xZdが格納されており、 したがって(Xd- xZd) 2が計 算される。 その結果が T 2に格納される。 ステップ 1 507において XT。 力 S計算される。 ここで丁 には Xd— Zd1Xd + 1力 ST2には(Xd— xZd) 2 がそれぞれ格納されており、 した力 Sつて(Xd- xZd)2(Xd1Zd + 1- Zd—ェ Xd + 1)が計算される。 その結果がレジスタ Ydに格納される。 ステップ 1 508 において 4Xyが計算される。 その結果が T2に格納される。 ステップ 1 509に おいて T2XZd + 1が計算される。 ここで T 2には 4yが格納されており、 したが つて 4yZd + 1が計算される。 その結果が T 2に格納される。 ステップ 1 5 1 0に おいて T 2 XZd— が計算される。 ここで T 2には 4yZd + 1が格納されており、 したがって 4yZd + ;LZd— 1が計算される。 その結果が T 2に格納される。 ステツ プ 1 5 1 1において T 2 XZdが計算される。 ここで T 2には 4yZd + 1Zd一丄カ格 鈉されており、 したがって 4yZd + 1Zd— が計算される。 その結果が T 2に格 納される。 ステップ 1 5 1 2において T 2 XXdが計算される。 ここで T 2には 4yZd + :LZd一 力格糸内されており、 した力 って 4yZd + 1Zd— iZdXdカ計算さ れる。 その結果がレジスタ Xdに格納される。 ステップ 1 5 1 3において T 2 X Zdが計算される。 ここで T 2には 4yZd + 1Zd一;^ 力 S格納されており、 したが つて 4yZd + 1Zd— ZdZdカ計算される。 その結果がレジスタ Zdに格納される。 したがってレジスタ Zdには 4y Zd+ 1Zd— iZdZd力 S格糸内されている。 レジスタ Yd こはステップ 1 5 0 7におレヽて(Xd— xZd)2(Xd1Zd+ i— Zd1Xd + 1)力 S格 納され、 その後更新が行われないので、 その値が保持されている。 レジスタ Xd にはステップ 1 5 1 2におレヽて 4yZd + 1Zd— ZaXdカ格納され、 その後更新が 行われないので、 その値が保持されている。
上記手順により与えられた x、 y、 Xd、 Zd、 Xd + 1、 Zd + 1、 Xd_l
Zd— iからワイエルシュトラス型楕円曲線におけるスカラー倍点の射影座標 (X d, Y d, Z d )における値が全て復元される理由は以下の通りである。 点(d+l)Pは 点 dPに点 Pを加算した点である。 点(d-1) Pは点 dPから点 Pを減算した点である。 ヮ ィエルシュトラス型楕円曲線のァフィン座標における加算公式に代入すると、 数 2 7、 数 2 8を得る。 両辺を各々減算することにより、 数 2 9を得る。 したがつ て、 数 3 0となる。 ここで x d=Xd/Zd、 X d + 1 =Xd + 1/Zd + 1、 x d_! = X d— ;i /Z d一 iであり、 この値を代入することにより射影座標の値へと変換する と、 数 3 1を得る。 X d=Xd/Zdであるが、 ydの分母と通分することにより、 数 3 2となる。
その結果として
= (Xd^ZM -Zd_xXM){Xd ~Zdx)2 …数 3 3
とし、 xd及び zdをそれぞれ
^ΜΖά_λΖάΧά …数 3 4 yZd+Zd_xZdZd …数 3 5
により更新すればよい。
ここで、 Xd, Yd, Zdは図 1 5で示した処理により与えられる。 したがって、 射影座標 (X d, Y d , Z d )の値は全て復元されたことになる。
上記手順はステップ 1 501、 ステップ 1 50 5、 ステップ 1 504、 ステツ プ 1 507、 ステップ 1 509、 ステップ 1 5 1 0、 ステップ 1 5 1 1、 ステツ プ 1 5 1 2及びステップ 1 5 1 3において有限体上の乗算の計算量を必要とする。 ただ.し、 ステップ 1 508の乗算は、 被乗数の値が 4と小さいので、 その計算 量は通常の乗算の計算量と比べて小さい為無視してよい。 また、 ステップ 1 50 6において有限体上の 2乗算の計算量を必要とする。 有限体上の減算の計算量は、 有限体上の乗算の計算量、 2乗算の計算量と比べて比較的小さいので無視しても よい。 有限体上の乗算の計算量を M、 有限体上の 2乗算の計算量を Sとすると、 上記手順は 9 M+ Sの計算量を必要とする。 これは高速スカラー倍計算の計算量 と比べてはるかに小さい。 例えばスカラー値 dが 1 60ビットであれば、 高速ス カラー倍計算の計算量はおおよそ 1 500M弱と見積もられる。 S = 0. 8Mと 仮定すると座標復元の計算量は 9. 8Mであり、 高速スカラー倍計算の計算量と 比べてはる力に小さい。 したがつて効率的に座標を復元できていることが示され た。
尚、 上記手順をとらなくても、 上記計算式により与えられた Xd,Yd, Zdの値が 計算できれば Xd,Yd,Zdの値が復元できる。 また、 xd,ydが上記計算式により与 えられる値を取るように X d , Y d , Z dの値を選択し、 その値が計算できれば X d, Y d , z dが復元できる。 それらの場合においては一般的に復元に必要となる計算 量が増大する。
次に、 スカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 xd, zd, Xd + i, Zd + 1, Xd— Zd一丄を出力するアルゴリズムについて説明する。
第 7実施例の高速スカラー倍計算部 202の高速スカラー倍計算方法として、 第 6実施例の高速スカラー倍計算方法を用いる。 これにより、 スカラー値 d及び ワイエルシュトラス型楕円曲線上の点 pから、 Xd, zd, Xd + 1, Zd+丄, d_i, Zd— を出力するアルゴリズムとして、 高速であるアルゴリズムが達成される。 尚、 高速スカラー倍計算部 202において上記手順のアルゴリズムを用いなくて も、 スカラー値 d及ぴワイエルシュトラス型楕円曲線上の点 から、 Xd, Zd, Xd +1, Zd + 1, Xd— を出力するアルゴリズムであり且つ高速であれば、 他のアルゴリズムを用いていもよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 9M+Sであり、 これは高速スカラー倍計算部 202の高速スカラー倍計算に 必要な計算量の (9. 2 k + 4) Mとに比べてはるかに小さレ、。 したがって、 ス カラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速スカラー倍計算 部の高速スカラー倍計算に必要な計算量とほぼ同等である。 S = 0. 8Mと仮定 すると、 この計算量はおおよそ (9. 2 k+ 13. 8) Mと見積もることができ る。 例えばスカラー値 dが 160ビット (k=160) であれば、 このスカラー 倍計算に必要な計算量はおおよそ 1486Mとなる。 楕円曲線としてワイエルシ ュトラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビアン座標を中心とし た混合座標系を用いたスカラー倍計算方法を用いて、 スカラー倍点をヤコビアン 座標として出力する場合に必要となる計算量はおおよそ 1600Mであり、 これ と比べて必要となる計算量は削減されている。
第 8の実施例は楕円曲線としてワイエルシュトラス型楕円曲線を用いたもので ある。 すなわち、 スカラー倍計算部 103の入出力に用いる楕円曲線はワイエル シュトラス型楕円曲線である。 ただし、 スカラー倍計算部 103の内部の計算で 使用する楕円曲線として、 与えられたワイエルシュトラス型楕円曲線から変換可 能であるようなモンゴメリ型楕円曲線を用いてもよい。 スカラー倍計算部 103 がスカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 ワイエルシュト ラス型楕円曲線におけるァフィン座標の点として完全な座標が与えられたスカラ 一倍点 (xd,yd)を計算し出力する。 スカラ一値 d及びワイエルシュトラス型楕円 曲線上の点 Pをスカラー倍計算部 1 ◦ 3に入力すると高速スカラー倍計算部 20 2がそれを受け取る。 高速スカラー倍計算部 202は受け取ったスカラー値 dと 与えられたワイエルシュトラス型楕円曲線上の点 Pからワイエルシュトラス型楕 円曲線においてァフィン座標で表されたスカラ一倍点 dP= (xd)yd)の座標のう ち xd、 ァフィン座標で表されたワイエルシュトラス型楕円曲線上の点(d+l)P = (xd + 1, yd + 1)の座標のうち xd +i、 ァフィン座標で表されたワイエルシュト ラス型楕円曲線上の点(d- 1)Ρ= (Χ (1 _ υ ά— の座標のうち xd—丄を計算し、 ァフィン座標で表された入力されたワイエルシュトラス型楕円曲線上の点 P = (x, y)と共にその情報を座標復元部 20 3に与える。 座標復元部 20 3は与えら れた座標の値 xd、 xd + 1、 xd—い χ及ぴ yよりワイエルシュトラス型楕円曲線 においてァフィン座標で表されたスカラ一倍点 dP= (xd,yd)の座標 y dの復元を 行なう。 スカラー倍計算部 1 03はァフィン座標において完全に座標が与えられ たスカラー倍点 (xd,yd)を計算結果として出力する。
次に図 1 6により、 座標 x、 y、 xd、 xd + 1, xd— が与えられた場合に、 xd、 ydを出力する座標復元部の処理について説明する。
座標復元部 203では、 ワイエルシュトラス型楕円曲線においてァフィン座標 で表されたスカラー倍点 dP= (xd,yd)の座標のうち X d、 ァフィン座標で表され たワイエルシュトラス型楕円曲線上の点(d+1) P=(xd + 1,yd+ 1)の座標のうち xd + 1、 ァフィン座標で表されたワイエルシュトラス型楕円曲線上の点(d- 1)P= (xd一; L'ya— ;!)の座標のうち Xd—ぃ スカラー倍計算部 1 03に入力されたヮ ィエルシュトラス型楕円曲線上の点 Pをァフィン座標で表した(x, y)を入力し、 以 下の手順でァフィン座標において完全な座標が与えられたスカラー倍点(X d, yd)を出力する。
ステップ 1 6 01において xd— Xが計算され、 に格納される。 ステップ 1 6 0 2において の 2乗すなわち(xd— X) "が計算され、 に格納される。 ステップ 1 6 03において xd— 一 xd + 1が計算され、 T2に格納される。 ステ ップ 1 6 04において ΧΤ2が計算される。 ここで には(xd— χ2が Τ2 には X d一丄一 X d +ェ力 Sそれぞれ格内されており、 した;^つて(X d—X) (X d一ェ一 xd + 1)が計算される。 その結果が に格納される。 ステップ 1 6 0 5におい て 4Xyが計算され、 T2に格納される。 ステップ 1 606において Τ2の逆元が 計算される。 ここで Τ 2には 4yが格納されており、 したがって l/4yが計算される。 その結果が T 2に格納される。 ステップ 1 6 07において T 1 XT 2が計算され る。 ここで には (xd— X) 2 (xd— ;L—) d + 1)が T2には l/4yがそれぞれ格納さ れており、 したがって(xd— X) (xd一 ]L—Xrt + i)/4yが計算される。 その結果が レジスタ ydに格納される。 したがってレジスタ ydには(xd— χ) 2(xd—ェ一 xd + 1)/4yが格納されている。 レジスタ xdは全く更新されないので入力された 値が保持されている。
上記手順によりスカラー倍点の y座標 ydが復元される理由は以下の通りである。 点(d+1) Pは点 dPに点 Pを加算した点である。 点(d- 1) Pは点 dPから点 Pを減算した点 である。 ワイエルシュトラス型楕円曲線のァフィン座標における加算公式に代入 すると、 数 27、 数 28を得る。 両辺を各々減算することにより、 数 29を得る。 したがって、 数 30となる。 ここで xd,ydは図 1 6の処理によって与えられる。 したがって、 ァフィン座標 (xd,yd)の値を全て復元していることになる。
上記手順はステップ 1604、 ステップ 1607において有限体上の乗算の計 算量を必要とする。 ただし、 ステップ 1605の乗算は、 被乗数の値が 4と小さ いので、 その計算量は通常の乗算の計算量と比べて小さい為無視してよい。 また、 ステップ 1602において有限体上の 2乗算の計算量を必要とする。 さらにステ ップ 1606において有限体上の逆元演算の計算量を必要とする。 有限体上の減 算の計算量は、 有限体上の乗算の計算量、 2乗算の計算量、 逆元演算の計算量と 比べて比較的小さいので無視してもよい。 有限体上の乗算の計算量を M、 有限体 上の 2乗算の計算量を S、 有限体上の逆元演算の計算量を Iとすると、 上記手順 は 2M+S+ Iの計算量を必要とする。 これは高速スカラー倍計算の計算量と比 ベてはるかに小さレ、。 例えばスカラー値 dが 1 60ビットであれば、 高速スカラ 一倍計算の計算量はおおよそ 1500M弱と見積もられる。 S = 0. 8M及び I =40Mと仮定すると座標復元の計算量は 42. 8Mであり、 高速スカラー倍計 算の計算量と比べてはるかに小さい。 したがって効率的に座標を復元できている ことが示された。
尚、 上記手順をとらなくても、 上記等式の右辺の値が計算できれば ydの値が 復元できる。 その場合は一般的に復元に必要となる計算量が増大する。
次に図7により、 スカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 xd、 xd+い を出力するアルゴリズムについて説明する。
高速ス力ラ一倍計算部 202では、 スカラ一倍計算部 1 03に入力されたワイ エルシュトラス型楕円曲線上の点 Pを入力し、 以下の手順によりワイエルシュト ラス型楕円曲線においてァフィン座標で表されたスカラー倍点 dP = (X d, y d )の うち xd、 ァフィン座標で表されたワイエルシュトラス型楕円曲線上の点(d+l)P = (xd + 1,yd + 1)のうち xd + 1、 ァフィン座標で表されたワイエルシュトラス 型楕円曲線上の点(d- l)P=(xd1> Υ (1— のうち xd—丄を出力する。 ステップ 716として、 与えられたワイエルシュトラス型楕円曲線上の点 Pをモンゴメリ 型楕円曲線上で射影座標により表された点に変換する。 この点をあらためて点 P とする。 ステップ 701として、 変数 Iに初期値 1を代入する。 ステップ 702 として、 点 Pの 2倍点 2 Pを計算する。 ここで点 Pは射影座標にぉレ、て( X, y, 1)と して表し、 モンゴメリ型楕円曲線の射影座標における 2倍算の公式を用いて 2倍 点 2Pを計算する。 ステップ 703として、 スカラー倍計算部 103に入力された 楕円曲線上の点 Pとステップ 702で求めた点 2Pを、 点の糸且 (P,2P)として格納す る。 ここで点 P及ぴ点 2Pは射影座標で表されている。 ステップ 704として、 変 数 Iとスカラー値 dのビット長とが一致するかどうかを判定し、 一致すれば m=dと なり、 ステップ 714へ行く。 一致しなければステップ 705へ行く。 ステップ 705として、 変数 Iを 1増加させる。 ステップ 706として、 スカラー値の I 番目のビットの値が 0であるか 1であるかを判定する。 そのビットの値が 0であ ればステップ 707へ行く。 そのビットの値が 1であればステップ 710へ行く。 ステップ 707として、 射影座標により表された点の組 (mP, (m+1) P)から点 mPと 点(m+l)Pの加算 mP+(m+l)Pを行ない、 点(2m+l)Pを計算する。 その後ステップ 70 8へ行く。 ここで、 加算 mP+ (m+1) Pは、 モンゴメリ型楕円曲線の射影座標におけ る加算公式を用いて計算される。 ステップ 708として、 射景座標により表され た点の組 (mP,(m+l)P)から点 raPの 2倍算 2 (mP)を行ない、 点 2mPを計算する。 その 後ステップ 709へ行く。 ここで、 2倍算 2(mP)は、 モンゴメリ型楕円曲線の射 影座標における 2倍算の公式を用いて計算される。 ステップ 709として、 ステ ップ 7 0 8で求めた点 2mPとステップ 7 0 7で求めた点(2m+ 1 )Pを点の組 (2raP, (2m+ 1 ) P)として、 点の組 (mP, (m+ 1 )P)の代わりに格納する。 その後ステ ップ 704へ戻る。 ここで、 点 2mP、 点(2m+l)P、 点 mP及ぴ点 (m+ 1 )Pは全て射 影座標において表されている。 ステップ 710として、 射影座標により表された 点の組(mP, (m+ 1 ) P)から点 mPと点 (m+ 1 ) Pの加算 mP+ (m+ 1 ) pを行ない、 点 (2m+ 1)Pを計算する。 その後ステップ 71 1へ行く。 ここで、 加算 mP+(m+l)Pは、 モ ンゴメリ型楕円曲線の射影座標における加算公式を用いて計算される。 ステップ 71 1として、 射影座標により表された点の組 (mP, (m+ 1 )P)から点(ra+ 1 )Pの 2 倍算2((111+1)^を行なぃ、 点(2m+2)Pを計算する。 その後ステップ 7 1 2へ行く。 ここで、 2倍算 2((m+l)P)は、 モンゴメリ型楕円曲線の射影座標における 2倍算 の公式を用いて計算される。 ステップ 712として、 ステップ 710で求めた点 (2m+ 1)Pとステップ 71 1で求めた点(2m+2) Pを点の組((2m+l) P, (2m+2) P)とし て、 点の組 (mP, (m+l)P)の代わりに格納する。 その後ステップ 704へ戻る。 こ こで、 点 (2m+l)P、 点 (2m+2)P、 点 mP及び点 (m+1) Pは全て射影座標において表され ている。 ステップ 714として、 射影座標で表された点の組 (mP,(m+l)P)から、 点 (m- 1) Pの射影座標における X座標 Xm-1及び Z座標 Zm-1を求める。 その後ステップ · 71 5へ行く。 ステップ 71 5として、 モンゴメリ型楕円曲線における点(m - 1)P を、 ワイエルシュトラス型楕円曲線上でァフィン座標により表された点に変換す る。 その点の X座標をそれぞれあらためて xm - 1とおく。 また、 モンゴメリ型楕円 曲線において射影座標で表された点の組(mP,(m+l)P)に対して、 点 mP及ぴ点 (m+1) Pをワイエルシュトラス型楕円曲線上でァフィン座標で表された点に変換し、 それぞれ mP= (xm, ym) 及び (m+l)P= (xm+1, ym+1) とあらためて置き直す。 ここ で、 ym及ぴ ym+1は、 モンゴメリ型楕円曲線の射影座標における加算公式及び 2倍 算の公式では Y座標を求める事ができないので、 求まっていない。 その後ステツ プ 713へ行く。 ステップ 71 3として、 ワイエルシュトラス型楕円曲線上でァ フィン座標で表された点(m- 1)Pの X座標 xm-1を xd— として、 ワイエノレシュトラ ス型楕円曲線上で射影座標で表された点 mP= (xm, ym) より xmを xdとして、 ヮ ィエルシュトラス型楕円曲線上でァフィン座標で表された点 (m+l)P= (xm+1, ym+ 1) より xm+ 1を xd+ 1として、 出力する。 また上記手順により、 inとスカ ラー値 dはビット長が等しくさらにそのビッ トのパターンも同じとなる為、 等し くなる。 またステップ 714において(m- 1)Pを求める際に、 数 13、 数 14の公 式により求めてもよいし、 mが奇数であれば、. ((m- 1)/2)Pの値をステップ 71 2 の段階で別に保持しておき、 その値からモンゴメリ型楕円曲線の 2倍算の公式よ り、 (m_l)Pを求めてもよい。 モンゴメリ型楕円曲線の射影座標における加算公式の計算量は、 Z1- 1ととる ことにより 3M+2 Sとなる。 ここで Mは有限体上の乗算の計算量、 Sは有限体 上の 2乗算の計算量である。 モンゴメリ型楕円曲線の射影座標における 2倍算の 公式の計算量は、 3M+2 Sである。 スカラー値の I番目のビッ トの値が 0であ れば、 ステップ 707において加算の計算量、 ステップ 708において 2倍算の 計算量が必要となる。 すなわち 6 M + 4 Sの計算量が必要となる。 スカラ一値の I番目のビットの値が 1であれば、 ステップ 710において加算の計算量、 ステ ップ 71 1において 2倍算の計算量が必要となる。 すなわち 6M+4 Sの計算量 が必要である。 いずれの場合においても 6M+ 4 Sの計算量が必要である。 ステ ップ 704、 ステップ 705、 ステップ 706、 ステップ 707、 ステップ 70 8、 ステップ 709乃至はステップ 704、 ステップ 705、 ステップ 706、 ステップ 710、 ステップ 71 1、 ステップ 71 2の繰り返しの回数は、 (スカ ラー値 dのビット長) 一 1回となるので、 ステップ 702での 2倍算の計算量と ステップ 716でのモンゴメリ型楕円曲線上への点への変換に必要な計算量及び ステップ 715でのワイエルシュトラス型楕円曲線上の点への必要な計算量を考 慮に入れると、 全体の計算量は (6M+4 S) k+ 15M+ I となる。 ここで k はスカラー値 dのビット長である。 一般的には、 計算量 Sは、 S-0. 8M程度、 計算量 Iは、 I =40M程度と見積もられるので、 全体の計算量はおおよそ (9. 2 k + 55) Mとなる。 例えばスカラー値 dが 160ビット (k=1 60) であ れば、 上記手順のアルゴリズムの計算量はおおよそ 1527Mとなる。 スカラー 値 dのビットあたりの計算量としてはおよそ 9. 2Mとなる。 A.Miyaji, T. Ono, H.し ohen, efficient elliptic curve exponentiation using mixed coordinates, Advances in Cryptology Proceedings of AS1ACRYPT' 98, LNCS 1514 (1998) pp.51-65 には、 ワイエルシュ トラス型楕円曲線において、 ウィンドウ法を用レヽ てヤコビアン座標を中心とした混合座標系を用いたスカラー倍計算方法は高速な スカラー倍計算方法として記載されている。 この場合においては、 スカラー値の ビットあたりの計算量はおおよそ 1 0Mと見積もられる。 例えばスカラー値 dが 160ビット (k=160) であれば、 このスカラー倍計算方法の計算量はおお よそ 1640Mとなる。 したがって、 上記手順のアルゴリズムの方が計算量が少 なく高速といえる。
尚、 高速スカラー倍計算部 202において上記手順のアルゴリズムを用いなく ても、 スカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 xd
X d + 1, X d = 1を出力するアルゴリズムであり且つ高速であれば、 他のアルゴリ ズムを用いていもよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 2M+ S + Iであり、 これは高速スカラー倍計算部 202の高速スカラー倍計 算に必要な計算量の (9. 2 k + 55) Mとに比べてはるかに小さい。 したがつ て、 スカラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速スカラー 倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 I =40M、 S = 0. 8Mと仮定すると、 この計算量はおおよそ (9. 2 k + 97. 8) Mと 見積もることができる。 例えばスカラー値 dが 1 60ビット (k=1 60) であ れば、 このスカラー倍計算に必要な計算量は 157 OMとなる。 楕円曲線として ワイエルシュトラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビアン座標 を中心とした混合座標系を用いたスカラー倍計算方法を用いて、 スカラー倍点を ァフィン座標として出力する場合に必要となる計算量はおおよそ 1640Mであ り、 これと比べて必要となる計算量は削減されている。
第 9の実施例は、 入出力用の楕円曲線としてワイエルシュトラス型楕円曲線を、 内部の計算用には与えられたワイエルシュトラス型楕円曲線から変換可能である モンゴメリ型楕円曲線を用いたものである。 スカラー倍計算部 103がスカラー 値 d及ぴワイエルシュ トラス型楕円曲線上の点 Pから、 ワイエルシュトラス型楕 円曲線におけるァフィン座標の点として完全な座標が与えられたスカラー倍点
(x d, y d) を計算し出力するものである。 スカラー値 d及ぴワイエルシュトラ ス型楕円曲線上の点 Pをスカラー倍計算部 1 03に入力すると高速スカラー倍計 算部 202がそれを受け取る。 高速スカラー倍計算部 202は受け取ったスカラ 一値 dと与えられたワイエルシュトラス型楕円曲線上の点 Pからモンゴメリ型楕 円曲線において射影座標で表されたスカラ一倍点 dP= (Xd,Yd,Zd)の座標のうち xd及び zd、 射影座標で表されたモンゴメリ型楕円曲線上の点(d+l)P=(Xd + 1, Yd + 1,Zd + !) の座標のうち Xd + 1及び Zd + iを計算する。 また、 入力されたヮ -トラス型楕円曲線上の点 Pを、 与えられたワイエルシュトラス型楕円 曲線から変換可能であるモンゴメリ型楕円曲線上の点に変換し、 その点を新たに P=(x,y)とおく。 高速スカラー倍計算部 202は、 Xd、 Zd、 Xd+ 1、 Zd + 1, x及び yを座標復元部 203に与える。 座標復元部 203は与えられた座標の値 Xd、 Zd、 Xd + 1、 Zd + 1、 x及ぴ yよりワイエルシュトラス型楕円曲線におい てァフィン座標で表されたス力ラ一倍点 dP= (xd,yd)の座標 X d及ぴ y dの復元 を行なう。 スカラー倍計算部 1 03はァフィン座標において完全に座標が与えら れたスカラー倍点 (xd,yd)を計算結果として出力する。
次に図 17により、 座標 x,y,Xd,Zd,Xd+ 1,Zd + 1が与えられた場合に xd,yd を出力する座標復元部の処理について説明する。
座標復元部 203では、 モンゴメリ型楕円曲線において射影座標で表されたス 力ラ一倍点 dP= (Xd,Yd,Zd)の座標うち X d及び Z d、 射影座標で表されたモンゴ メリ型楕円曲線上の点(d+1) P= (Xd + 1,Yd + 1,Zd + 1)の座標のうち X d +丄及ぴ Zd + 1、 スカラー倍計算部 1 03に入力されたモンゴメリ型楕円曲線上の点 Pを ァフィン座標で表した (x,y)を入力し、 以下の手順でァフィン座標おいて完全な 座標が与えられたスカラ一倍点(xd,yd)を出力する。 ここで入力されたモンゴ メリ型楕円曲線上の点 Pのァフィン座標を(x, y)で、 射影座標を(X 1 , Y 1, Z 1 )で それぞれ表す。 入力されたスカラー値を dとしてモンゴメリ型楕円曲線における スカラー倍点 dPのァフィン座標を (xd Mo n,yd Mo n)で、 射影座標を (Xd,Yd, Zd)でそれぞれ表す。 モンゴメリ型楕円曲線上の点(d-l)Pのァフィン座標を
(Xd— ^ya— で、 射影座標を(Xd— Yd— ^Zd— でそれぞれ表す。 モンゴ メリ型楕円曲線上の点(d+1) Pのァフィン座標を(X d + ;L , y d +丄)で、 射影座標を (Xd + 1,Yd + 1,Zd+ 1)でそれぞれ表す。
ステップ 1701において Xd Xxが計算され、 レジスタ T丄に格納される。 ス テツプ 1 702において T Zdが計算される。 ここでレジスタ T には Xdxが 格納されており、 したがって Xdx-Zd が計算される。 その結果がレジスタ に 格納される。 ステップ 1 703において Zd Xxが計算され、 レジスタ T2に格納 される。 ステップ 1 704において Xd- Τ2が計算される。 ここでレジスタ Τ2 には Zdxが格納されており、 したがって Xd- xZdが計算される。 その結果がレジ スタ T 2に格納される。 ステップ 1 705において Xd + 1 XT 2が計算される。 ここでレジスタ T 2には Xd - xZdが格納されており、 したがって Xd+ 1 (Xd-xZd) が計算される。 その結果がレジスタ T3に格納される。 ステップ 1 706におい て Τ 2の 2乗が計算される。 ここでレジスタ Τ2には(Xd-xZd)が格納されてお り、 したがって(Xd- xZd) 2が計算される。 その結果がレジスタ T 2に格納され る。 ステップ 1 707において T2XXd + 1が計算される。 ここでレジスタ T 2 には (Xd - xZd) 2が格納されており、 したがって Xd + 1 (Xd - xZd) 2が計算される。 その結果がレジスタ T2に格納される。 ステップ 1 708において T2XZd + 1 が計算される。 ここでレジスタ T 2には X d + (X d - xZ d ) 2が格納されており、 したがって Zd + 1Xd+ 1 (Xd-xZd) 2が計算される。 その結果がレジスタ T 2に格 納される。 ステップ 1709において T 2 Xyが計算される。 ここでレジスタ T2には Zd + 1Xd + 1 (Xd— xZd) 2力格糸内されており、 したカ つて yzd + 1xd + 1 (Xd- XZd) 2が計算される。 その結果がレジスタ T 2に格納される。 ステップ 1 710において T 2 XBが計算される。 ここでレジスタ T2には yZd+ 1Xd + 1 (Xd—xZd) 2力 S格糸内されており、 した力 Sつて ByZd+ 1Xd+ 1 (Xd— xZd) カ計算さ れる。 その結果がレジスタ T2に格納される。 ステップ 1 71 1において Τ 2 X Zdが計算される。 ここでレジスタ T2には ByZd+ 1Xd+ 1 (Xd-xZd) 2が格納さ れており、 したカ つて ByZd + 1Xd + 1 (Xd— xZd) 2Zdカ計算される。 その結果力 S レジスタ T 2に格納される。 ステップ 1 71 2において T 2 XXdが計算される。 ここでレジスタ T2には ByZd+ 1Xd+ 1 (Xd- xZd) 2Zdが格納されており、 した カ つて ByZd + 1Xd + 1 (Xd - xZd) 2ZdXdが計算される。 その結果がレジスタ T4 に格納される。 ステップ 1 71 3において T 2 XZdが計算される。 ここでレジ スタ T2には ByZd + 1Xd + 1 (Xd- xZd) 2Zdが格納されており、 したがって ByZd + 1Xd + 1 (Xd-xZd) 2Zdが計算される。 その結果がレジスタ T 2に格納さ れる。 ステップ 1 714においてレジスタ T2Xsが計算される。 ここでレジス タ T2には ByZd + 1Xd + 1 (Xd— xZd) 2Zd2力 S格糸内されており、 した力 Sつて sByZd+ 1Xd + 1 (Xd-xZd) 2Zd2が計算される。 その結果がレジスタ T 2に格納 される。 ステップ 171 5において T2の逆元が計算される。 ここで、 Τ2には sByZd+ 1Xd + 1 (XdXZd) 2Zd2カ格糸内されており、 した力 Sつて 1/ sByZd + 1 Xd+ 1 (Xd- xZd) 2Zd2力 S計算される。 その結果が T 2に格納される。 ステップ 1 7 1 6において Τ2 ΧΤ4が計算される。 ここでレジスタ Τ2には l/sByZd+ 1 Xd + 1 (Xd-xZd) 2Zd2力 Sレジスタ T4には ByZd + iXd + i (Xd— xZd) dXdがそ れぞれ格納されており、 したカ つて(ByZd+ 1Xd + 1 (Xd— xZd) 2ZdXd)/
(sByZd + 1Xd + 1 (Xd- xZd) 2Zd 2)力 S計算される。 その結果がレジスタ T 4に格 納される。 ステップ 1 7 1 7において Τ4 + αが計算される。 ここでレジスタ Τ4には (ByZd + iXd+ ;t (Xd— xZd) 2ZdXd)/(sByZd + 1Xd + 1 (Xd-xZd) 2Zd 2) が格納されており、 従って、 数 36が計算される。
ByZd+1 d+i j d Xd - xZd ) Xd …数 3 6
sByZMXd+lZd{Xd -xZdY d その結果が、 レジスタ xdに格納される。 ステップ 1 7 1 8において XZd + 1 が計算される。 ここでレジスタ には Xdx - Zdが格納されており、 したがって Zd + 1 (Xdx - Zd)が計算される。 その結果がレジスタ T4に格納される。 ステツ プ 1 71 9においてレジスタ の 2乗が計算される。 ここでレジスタ には (Xdx- Zd)が格納されており、 したがって(Xdx - Zd) 2が計算される。 その結果が レジスタ に格納される。 ステップ 1 7 20において XT2が計算される。 ここでレジスタ には(Xdx- Zd) 2がレジスタ T2には l/sByZd + 1Xd + 1 (Xd-xZd) Zd 2がそれぞれ格納されており、 したがって(Xdx - Zd) 2/sByZd + 1 Xd + 1 (Xd-xZd) 2Zd 2力 S計算される。 その結果がレジスタ T 2に格納される。 ステップ 1 72 1において Τ34が計算される。 ここでレジスタ Τ3には Xd + 1 (Xd-xZd) がレジスタ T4には Zd + 1 (Xdx - Zd)がそれぞれ格納されてお り、 したがって Xd + 1 (Xd-xZd)+Zd+ 1 (Xdx - Zd)が計算される。 その結果がレ ジスタ丁丄に格納される。 ステップ 1 722において T 3- T4が計算される。 こ こでレジスタ Τ3には Xd + 1 (Xd- xZd)がレジスタ T4には Zd + 1 (Xdx- Zd)がそ れぞれ格納されており、 したがって Xd + 1 (Xd- xZd)- Zd + 1 (Xdx - Zd)が計算さ れる。 その結果がレジスタ T3に格納される。 ステップ 1 72 3において X T 3が計算される。 ここでレジスタ には Xd + 1 (Xd— xZd)+Zd + 1 (Xdx - zd)力 s レジスタ T 3には X d + i (X d - xZ d ) _Z d + i (X d x- Z d )がそれぞれ格納されており、 したがっての d + 1 d— xZ d ) +Z d + 1 (X d x一ん d ) ) d + 1 (X d -xZ d)~Zd + 1 (XdX~ Zd)}が計算される。 その結果がレジスタ に格納される。 ステップ 1 7 2 4 において XT 2が計算される。 ここでレジスタ Τ丄には {Xd + 1 (Xd-xZd)+Z d +i (Xdx- Zd)} {Xd + :L (Xd- xZd)— Zd + i (Xdx- Zd)}がレジスタ T 2には (Xdx -
Zd) VsByZd + 1Xd + 1 (Xd-xZd) Zd 2力 Sそれぞれ格糸内されており、 した力 Sつて +1 (Xdx -Zd) + Xd+1 (Xd - xZd)}{Zd+1 {Xdx -Zd)- XM (Xd -xZd)}{Xdx-Zdf
SByZMXM(Xd-xZdYZd 2
…数 3 7 が計算される。 その結果がレジスタ y dに格納される。 したがってレジスタ y d には数 3 7の値が格納されている。 レジスタ X dにはステップ 1 7 1 7において 数 3 6の値が格納され、 その後更新が行なわれないので、 その値が保持されてい る。 その結果として、 ワイエルシュトラス型楕円曲線におけるァフィン座標
(X d, y d)の値が全て復元されている。
上記手順により与えられた x、 y、 Xd、 Zd、 Xd + 1、 Zd + 1からワイエルシ ュトラス型楕円曲線におけるスカラー倍点のァフィン座標(X d, y d)における 値が全て復元される理由は以下の通りである。 点(d+l)Pは点 dPに点 Pを加算した 点である。 点(d - 1)Pは点 dPから点 Pを減算した点である。 モンゴメリ型楕円曲線 のァフィン座標における加算公式に代入すると、 次の式を得る。
(Λ+ Χ+ + - 2 = Biy " -yf …数 3 8
+ X + x + xd.Mx n - ^)2 = B(y^°" + yf …数 3 9
両辺を各々減算することにより、
…数 4 0
を得る。 したがって、
— ¾+1χ¾Μ° "- 2/ '数 4 1
となる。 ここで x d Mo n=Xd/Zd. x d + 1 =Xd + l /Zd + 1、 X d - 1 ~Xd - 1 /Zd—ェであり、 この値を代入する とにより射影座標の値へと変換すると、 次 の式を得る。
y n = ( — +1 -Ζ^ΧΜ)(Χά -Ζ,χγ/ΑΒγΖά_λΖΜΖ …数 4 2
モンゴメリ型楕円曲線の射影座標での加算公式は既に示した数 1 1、 数 1 2であ る。 ここで Xm及び Zmはモンゴメリ型楕円曲線上の点 Pの m倍点 mPの射影座標に おける X座標及ぴ Z座標、 Xn及び Znはモンゴメリ型楕円曲線上の点 Pの n倍点 nP の射影座標における X座標及び Z座標、 Xmn及び Zmnはモンゴメリ型楕円曲線 上の点 Pの (m- n)倍点 (m- n) Pの射影座標における X座標及び Z座標、 Xm+ n及び Zm+nはモンゴメリ型楕円曲線上の点 Pの(m+n)倍点 (m+n) Pの射影座標における X 座標及ぴ Z座標であり、 m, nは m>nをみたす正整数である。 この式は Xm/Zm = xm、 Xn/Zn = xn、 Xmn/Zmn=xmnが不変のとき、 Xm+n/Zm+n =
Xm+nも不変となるので、 射影座標での公式としてうまく働いている。 他方、 数 13、 数 14とおくと、 この式も Xm/Zm=xm、 Xn/Zn=xn、 Xmn/Zmn
= Xm— nが不変のとき、 Xm+n/Zm+ n= Xmnも不変となる。 また、 X,mn /Z'mn=Xmn/Zmn=xmnをみたすので、 xmnの射影座標として
X' m— n,Z'mnをとつてよい。 m=d、 n =lとして上記公式を用いて y dM°nの 式より Xd— i及び Zd— を消去し、 Χ1 = χ,Ζ1 = 1とおくことにより、 次の式を得 る。
{Zd+l(Xdx-Zd) + Xd+1(Xd -xZd)}\Zd+1(Xdx-Zd)-Xd+1(Xd-xZd)}(Xdx-Zd)2
ByZd+lXd+1(Xd~xZdTZ~
…数 4 3 x d Mn=Xd/Zdであるが、 逆元演算の回数を減らす目的で y d Mdの分母と 通分することにより、
ByZMXd+lZd{Xd -xZdfXd
··数 4 4
ByZMXd+lZd{Xd -xZdfZd となる。 モンゴメリ型楕円曲線上の点とワイエルシュトラス型楕円曲線上の点と の対応関係については、 Κ· Okeya, H. Kurumatani, K. Sakurai, Elliptic Curves with the Montgomery- Form and Their Cryptographic Applications, Public Key Cryptography, LNCS 1751 (2000) pp.238-257 に記載されている。 それによ ると、 変換パラメタを s, ひとして、 yd=s - lyd Mo n及び xd=s- lxd Mo n +ひの関 係がある。 結果として数 45、 数 46を得る。
{ZeM (Xdx -Zd) + XM (Xd - xZd)}{ZM (Xdx -Zd)- XiM (Xd - xZd)}{Xdx - Zdf y" sByZMXd+l(Xd-xZdyzd 2
数 4 5 xd ={ByZMXd^Zd{Xd -xZd)2Xd)l{SByZd+xXd+lZd{Xd -xZd)2Zd) + a
…数 4 6 ここで、 xd,ydは図 1 7より与えられる。 したがって、 ワイエルシュトラス 型楕円曲線におけるァフィン座標(xd,yd)の値が全て復元されていることにな る。
上記手順はステップ 1 7 0 1、 ステップ 1 70 3、 ステップ 1 7 0 5、 ステツ プ 1 70 7、 ステップ 1 7 0 8、 ステップ 1 7 0 9、 ステップ 1 7 1 0、 ステツ プ 1 7 1 1、 ステップ 1 7 1 2、 ステップ 1 7 1 3、 ステップ 1 7 1 4、 ステツ プ 1 7 1 6、 ステップ 1 7 1 8、 ステップ 1 7 2 0、 ステップ 1 7 2 3及びステ ップ 1 7 24において有限体上の乗算の計算量を必要とする。 また、 ステップ 1 7 06及びステップ 1 7 1 9において有限体上の 2乗算の計算量を必要とする。 また、 ステップ 1 Ί 1 5において有限体上の逆元演算の計算量を必要とする。 有 限体上の加算及び減算の計算量は、 有限体上の乗算の計算量、 2乗算の計算量及 ぴ逆元演算の計算量と比べて比較的小さいので無視してもよレ、。 有限体上の乗算 の計算量を M、 有限体上の 2乗算の計算量を S及び有限体上の逆元演算の計算量 を Iとすると、 上記手順は 1 6M+ 2 S+ Iの計算量を必要とする。 これは高速 スカラー倍計算の計算量と比べてはるかに小さい。 例えばスカラー値 dが 1 6 0 ビットであれば、 高速スカラー倍計算の計算量はおおよそ 1 5 0 0M弱と見積も られる。 S = 0. 8M、 I =40Mと仮定すると座標復元の計算量は 5 7. 6M であり、 高速スカラー倍計算の計算量と比べてはるかに小さい。 したがって効率 的に座標を復元できていることが示された。
尚、 上記手順をとらなくても、 上記計算式により与えられた xd, ydの値が計 算できれば xd, ydの値が復元できる。 その場合においては一般的に復元に必要 となる計算量が増大する。 また、 モンゴメリ型楕円曲線のパラメタである Bの値 やモンゴメリ型楕円曲線への変換パラメタである sを小さくとることにより、 ス テツプ 1 7 1 0における乗算の計算量やステップ 1 7 1 4における乗算の計算量 を削減することができる。
次に図 8により、 スカラ一値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 Xd, Zd, Xd + 1, Zd + 1を出力する高速スカラー倍計算部の処理について説明 する。
高速ス力ラ一倍計算部 2 0 2では、 スカラ一倍計算部 1 0 3に入力されたワイ エルシュトラス型楕円曲線上の点 Pを入力し、 以下の手順によりモンゴメリ型楕 円曲線において射影座標で表されたスカラ一倍点 dP= ½ (1,丫(1,2 (1 )のぅち (1及ぴ Z d、 射影座標で表されたモンゴメリ型楕円曲線上の点 (d+l) P= (Xd + 1,Y d + 1, Z d + 1 )のうち X d + 1及ぴ Z d + 1を出力する。 ステップ 8 1 6として、 与えられ たワイエルシュトラス型楕円曲線上の点 Pをモンゴメリ型楕円曲線上で射影座標 により表された点に変換する。 この点をあらためて点 Pとする。 ステップ 8 0 1 として、 変数 Iに初期値 1を代入する。 ステップ 8 0 2として、 点 Pの 2倍点 2P を計算する。 ここで点 Pは射影座標において(x, y, 1)として表し、 モンゴメリ型楕 円曲線の射影座標における 2倍算の公式を用いて 2倍点 2Pを計算する。 ステップ 8 0 3として、 スカラー倍計算部 1 0 3に入力された楕円曲線上の点 Pとステツ プ 8 0 2で求めた点 2Pを、 点の組(P,2P)として格納する。 ここで点 P及ぴ点 2Pは 射影座標で表されている。 ステップ 8 0 4として、 変数 I とスカラー値 dのビッ ト長とが一致するかどうかを判定し、 一致すればステップ 8 1 3へ行く。 一致し なければステップ 8 0 5へ行く。 ステップ 8 0 5として、 変数 Iを 1増加させる。 ステップ 8 0 6として、 スカラー値の I番目のビットの値が 0であるか 1である かを判定する。 そのビットの値が 0であればステップ 8 0 7へ行く。 そのビット の値が 1であればステップ 8 1 0へ行く。 ステップ 8 0 7として、 射影座標によ り表された点の組 (mP, (m+1) P)から点 mPと点(m+1) Pの加算 mP+ (m+1) Pを行ない、 点 (2m+l) Pを計算する。 その後ステップ 8 0 8へ行く。 ここで、 加算 mP+ (m+l) Pは、 モンゴメリ型楕円曲線の射影座標における加算公式を用いて計算される。 ステツ プ 8 0 8として、 射影座標により表された点の組 (niP,(m+1) P)から点 mPの 2倍算 2 (mP)を行ない、 点 2mPを計算する。 その後ステップ 8 0 9へ行く。 ここで、 2倍 算 2 (mP)は、 モンゴメリ型楕円曲線の射影座標における 2倍算の公式を用いて計 算される。 ステップ 8 0 9として、 ステップ 8 0 8で求めた点 2raPとステップ 8 0 7で求めた点(2m+l) Pを点の組(2mP, (2m+l) P)として、 点の組 (mP, (m+l) P)の代 わりに格納する。 その後ステップ 8 0 4へ戻る。 ここで、 点 2mP、 点(2m+ l)、 点 mP及ぴ点(m+1) Pは全て射影座標において表されている。 ステップ 8 1 0として、 射影座標により表された点の組 (mP, (m+1) P)から点 mPと点 (m+1) Pの加算 mP+ (m+1) P を行ない、 点(2m+l)を計算する。 その後ステップ 8 1 1へ行く。 ここで、 加算 mP+(m+l)Pは、 モンゴメリ型楕円曲線の射影座標における加算公式を用いて計算 される。 ステップ 81 1として、 射影座標により表された点の組 (mP,(ra+l)P)か ら点 (m+l)Pの 2倍算 2((m+l)P)を行ない、 点 (2m+2)Pを計算する。 その後ステップ 812へ行く。 ここで、 2倍算 2((m+l)P)は、 モンゴメリ型楕円曲線の射影座標 における 2倍算の公式を用いて計算される。 ステップ 81 2として、 ステップ 8 1 0で求めた点(2m+l)Pとステップ 8 1 1 で求めた点(2m+2)Pを点の組 ((2m+l)P, (2m+2)P)として、 点の組 (mP, (m+1) P)の代わりに格納する。 その後ステ ップ 804へ戻る。 ここで、 点(2m+l) P、 点(2m+2)、 点 mP及び点(m+ 1 ) Pは全て射 影座標において表されている。 ステップ 81 3として、 射影座標で表された点の 組 (mP, (m+1) P)から、 射影座標で表された点 mP= (Xm, Ym, Zm)より Xm及び Zmをそ れぞれ X d及ぴ Z dとして、 射影座標で表された点 (m+1) P= (Xm+ i,Ym+i,Zm+i) より Xm+ 1及び Zm+1をそれぞれ Xd + 1及び Zd + 1として、 出力する。 ここで、 Ym及び Ym+ 1は、 モンゴメリ型楕円曲線の射影座標における加算公式及び 2倍 算の公式では Y座標を求める事ができないので、 求まっていない。 また上記手順 により、 mとスカラー値 dはビット長が等しくさらにそのビットのパターンも同 じとなる為、 等しくなる。
モンゴメリ型楕円曲線の射影座標における加算公式の計算量は、 Zl=lととるこ とにより 3 M+ 2 Sとなる。 ここで Mは有限体上の乗算の計算量、 Sは有限体上 の 2乗算の計算量である。 モンゴメリ型楕円曲線の射影座標における 2倍算の公 式の計算量は、 3M+2 Sである。 スカラー値の I番目のビットの値が 0であれ ば、 ステップ 807において加算の計算量、 ステップ 808において 2倍算の計 算量が必要となる。 すなわち 6M+ 4 Sの計算量が必要となる。 スカラー値の I 番目のビットの値が 1であれば、 ステップ 810において加算の計算量、 ステツ プ 81 1において 2倍算の計算量が必要となる。 すなわち 6 M+ 4 Sの計算量が 必要である。 いずれの場合においても 6M+ 4 Sの計算量が必要である。 ステツ プ 804、 ステップ 805、 ステップ 806、 ステップ 807、 ステップ 808、 ステップ 809乃至はステップ 804、 ステップ 805、 ステップ 806、 ステ ップ 810、 ステップ 81 1、 ステップ 812の繰り返しの回数は、 (スカラー 値 dのビット長) 一 1回となるので、 ステップ 802での 2倍算の計算量及ぴス テツプ 816でのモンゴメリ型楕円曲線上の点への変換の計算量を考慮に入れる と、 全体の計算量は (6M+4 S) (k— 1) +4M+2 Sとなる。 ここで kは スカラー値 dのビット長である。 一般的には、 計算量 Sは、 S = 0. 8M程度と 見積もられるので、 全体の計算量はおおよそ (9. 2 k— 3. 6) Mとなる。 例 えばスカラー値 dが 1 60ビット (k==l 60) であれば、 上記手順のアルゴリ ズムの計算量はおおよそ 1468Mとなる。 スカラー値 dのビットあたりの計算 量としてはおよそ 9. 2Mとなる。 A.Miyaji, T. Ono, H.Cohen, Efficient elliptic curve exponentiation using mixed coordinates, Advances in
Cryptology Proceedings of ASIACRYPT' 98, LNCS 1514 (1998) pp.51-65 には、 ワイエルシュトラス型楕円曲線において、 ウィンドウ法を用いてヤコビアン座標 を中心とした混合座標系を用いたスカラ一倍計算方法は高速なスカラ一倍計算方 法として記載されている。 この場合においては、 スカラー値のビットあたりの計 算量はおおよそ 10Mと見積もられる。 例えばスカラー値 dが 160ビット (k = 160) であれば、 このスカラー倍計算方法の計算量はおおよそ 1 600Mと なる。 したがって、 上記手順のアルゴリズムの方が計算量が少なく高速といえる。 尚、 高速スカラー倍計算部 202において上記手順のアルゴリズムを用いなく ても、 スカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 Xd, Zd, Xd + 1, Zd+ 1を出力するアルゴリズムであり且つ高速であれば、 他のアルゴリ ズムを用いていもよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 16M+ 2 S + Iであり、 これは高速スカラー倍計算部 202の高速スカラー 倍計算に必要な計算量の (9. 2 k— 3. 6) Mとに比べてはるかに小さい。 し たがって、 スカラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速ス 力ラー倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 I = 4 0M、 S = 0. 8Mと仮定すると、 この計算量はおおよそ (9. 2 k + 54) M と見積もることができる。 例えばスカラー値 dが 1 60ビット (k=1 60) で あれば、 このスカラー倍計算に必要な計算量は 1526Mとなる。 楕円曲線とし てワイエルシュトラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビアン座 標を中心とした混合座標系を用いたスカラー倍計算方法を用いて、 スカラー倍点 をァフィン座標として出力する場合に必要となる計算量はおおよそ 1 64 OMで あり、 これと比べて必要となる計算量は削減されている。
第 10の実施例は入出力用の楕円曲線としてワイエルシュトラス型楕円曲線を、 内部の計算用には与えられたワイエルシュトラス型楕円曲線から変換可能である モンゴメリ型楕円曲線を用いたものである。 スカラー倍計算部 1 03がスカラー 値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 ワイエルシュトラス型楕円 曲線における射影座標の点として完全な座標が与えられたスカラ一倍点,
(Xd W,Yd W,Zd W)を計算し出力する。 スカラー値 d及びワイエルシュ トラス型楕 円曲線上の点 Pをスカラー倍計算部 103に入力すると高速スカラー倍計算部 2 02がそれを受け取る。 高速スカラー倍計算部 202は受け取ったスカラー値 d と与えられたワイエルシュトラス型楕円曲線上の点 Pからモンゴメリ型楕円曲線 において射影座標で表されたスカラ一倍点 dP= (X d , Y d, Z d )の座標のうち X d及び Zd、 射影座標で表されたモンゴメリ型楕円曲線上の点 d(d+l)P=(Xd + 1,
Yd + i,Zd + i)の座標のうち Xd + i及ぴ Zd + iを計算する。 また、 入力されたヮ ィエルシュトラス型楕円曲線上の点 Pを、 与えられたワイエルシュトラス型楕円 曲線から変換可能であるモンゴメリ型楕円曲線上の点に変換し、 その点を新たに
P=(x,y)とおく。 高速スカラー倍計算部 202は、 Xd, Zd, Xd + 1, Zd + 1, x 及び yを座標復元部 203に与える。 座標復元部 203は与えられた座標の値 Xd, Zd, Xd+ 1, Zd + 1, x及ぴ yよりワイエルシュトラス型楕円曲線において射影 座標で表されたスカラ一倍点 dP= (Xd W,Yd W,Zd W)の座標 X d w、 Y d w及び Z d Wの 復元を行なう。 スカラー倍計算部 1 03は射影座標において完全に座標が与えら れたスカラ一倍点 (X d W, Y d W, Z d W)を計算結果として出力する。
次に図 18により、 座標 x, y, Xd, Zd, Xd + 1, Zd + が与えられた場合に Xd W、 Yd W、 zd wを出力する座標復元部の処理について説明する。
座標復元部 203では、 モンゴメリ型楕円曲線において射影座標で表されたス 力ラ一倍点 dP= (Xd,Yd,Zd)の座標のうち X d及び Z d、 射影座標で表されたモンゴ メリ型楕円曲線上の点((1+ 1)?=^(1+ 1(1 + 1 (1+1)の座標のぅち (1+1及ぴ Zd+i、 スカラー倍計算部 103に入力されたモンゴメリ型楕円曲線上の点 Pを ァフィン座標で表した(x,y)を入力し、 以下の手順でワイエルシュトラス型楕円 曲線上で射影座標おいて完全な座標が与えられたスカラー倍点 (X d W, Y d w, Zd W)を出力する。 ここで入力されたモンゴメリ型楕円曲線上の点 Pのァフィン 座標を(x,y)で、 射影座標を Y Z でそれぞれ表す。 入力されたスカラー 値を dとしてモンゴメリ型楕円曲線におけるスカラー倍点 dPのァフィン座標を (xd,yd)で、 射影座標を (Xd,Yd,Zd)でそれぞれ表す。 モンゴメリ型楕円曲線上 の点(d- 1) Pのァフィン座標を (X D— , y d _ )で、 射影座標を(Xd一 ;L, Yd—ェ, Zd— でそれぞれ表す。 モンゴメリ型楕円曲線上の点(d+l)Pのァフィン座標を (xd + 1,yd + :L)で、 射影座標を(Xd+ 1,Yd + 1,Zd + 1)でそれぞれ表す。
ステップ 1801において Xd Xxが計算され、 レジスタ に格納される。 ス テツプ 1 802において T - Zdが計算される。 ここでレジスタ には Xdxが 格納されており、 したがって Xdx- Zdが計算される。 その結果がレジスタ に 格納される。 ステップ 1803において Zd Xxが計算され、 レジスタ T2に格納 される。 ステップ 1804において Xd- Τ 2が計算される。 ここでレジスタ Τ2 には Zdxが格納されており、 したがって Xd- xZdが計算される。 その結果がレジ スタ T2に格納される。 ステップ 1805において Zd + 1 ΧΤ^が計算される。 ここでレジスタ Τ には Xdx- Zdが格納されており、 したがって Zd+ 1 (Xdx-Zd) が計算される。 その結果がレジスタ T3に格納される。 ステップ 1806におい て Xd + 1 ΧΤ2が計算される。 ここでレジスタ Τ2には Xd- xZdが格納されてお り、 したがって Xd + 1 (Xd- xZd)が計算される。 その結果がレジスタ T 4に格納 される。 ステップ 1807において の 2乗が計算される。 ここでレジスタ には Xdx - Zdが格納されており、 したがって(Xdx- Zd) 2が計算される。 その 結果がレジスタ T丄に格納される。 ステップ 1808において T2の 2乗が計算 される。 ここでレジスタ Τ2には Xd-xZdが格納されており、 したがって(Xd- xZd) が計算される。 その結果がレジスタ T2に格納される。 ステップ 1809 において T2XZdが計算される。 ここでレジスタ T2には (Xd - xZd) 2が格納さ れており、 したがって Zd(Xd - xZd) "が計算される。 その結果がレジスタ T 2に 格納される。 ステップ 1810において T2XXd + 1が計算される。 ここでレジ スタ T2には Zd (Xd-xZd) 2カ格納されており、 したカ つて Xd + 1Zd (Xd-xZd) 2 が計算される。 その結果がレジスタ T2に格納される。 ステップ 18 1 1におい て T2XZd + 1が計算される。 ここでレジスタ T2には Xd + 1Zd (Xd-xZd) 2が格 納されており、 したカ つて Zd + 1Xd + 1Zd(Xd— xZd) 2力 S計算される。 その結果 がレジスタ T 2に格納される。 ステップ 1 812において T2 Xyが計算される。 ここでレジスタ丁2には∑(1 + 1(1+ 12(1 (Xd-xZd) 2が格納されており、 したが つて yZd+ 1Xd + 1Zd (Xd-xZd) 2が計算される。 その結果がレジスタ T 2に格納 される。 ステップ 1 8 1 3において T 2 XBが計算される。 ここでレジスタ T 2 には yZd + 1Xd+ 1Zd (Xd-xZd) 2力 S格糸内されており、 した力 って ByZd + 1Xd + 1 Zd (Xd- xZd) 2が計算される。 その結果がレジスタ T 2に格納される。 ステップ 1814において T 2 XXdが計算される。 ここでレジスタ T2には ByZd + 1 Xd + lZd(Xd— xZd) 2力 S格糸内されており、 したカ つて ByZd + 1Xd + 1Zd (Xd— xZd) 2Xdが計算される。 その結果がレジスタ T5に格納される。 ステップ 1 8 1 5において T2 XZdが計算される。 ここでレジスタ T2には ByZd + 1Xd+ 1Zd (Xd— xZd) 力 S格糸内されており、 した力 Sつて ByZd + 1Xd + 1Zd (Xd— xZd) Zd力 S 計算される。 その結果がレジスタ T2に格納される。 ステップ 181 6において T2 Xsが計算される。 ここでレジスタ下2には82(1+1 (1+ 12(1 (1— 2(1) 2Zd カ格納されており、 した力 Sつて SByZd + 1Xd + (Xd-xZd) 2Zdカ計算される。 その結果が ZdWに格納される。 ステップ 1 8 1 7において α XZdWが計算され る。 ここで ZdWには sByZd + 1Xd + 1Zd (Xd— xZd) 2Zd力 S格糸内されており、 した カ つて asByZd + 1Xd + 1Zd (Xd- xZd) 2Zdが計算される。 その結果がレジスタ T2に格納される。 ステップ 181 8において Τ25が計算される。 ここでレ ジスタ Τ 2には a; sByZ d + 1Xd + 1Zd(Xd— xZd) 2Zdカ レジスタ T5には ByZ d + 1 xd + lZd(xd—xZd)2xdカそれぞれ格納されており、 した力 sつて sByZ d + i Xd + 1Zd (Xd— xZd) 2Zd+ByZd + 1Xd + 1Zd (Xd— xZd) 2)((1カ計算される。 その 結果が Xd Wに格納される。 ステップ 181 9において T3+T4が計算される。 ここでレジスタ Τ3には Zd+ 1 (XdX- Zd)がレジスタ Τ4には Xd + 1 (Xd- xZd)が 格納されており、 したがって Zd + i (Xdx- Zd)+Xd + 1 (Xd - xZd)が計算される。 その結果がレジスタ T 2に格納される。 ステップ 1 820において T3_T4が計 算される。 ここでレジスタ T3には Zd + i (Xdx- Zd)がレジスタ T4には Xd + 1 (Xd- xZd)が格納されており、 したがって Zd + i (Xdx_Zd)- Xd + i (Xd - xZd)が 計算される。 その結果がレジスタ T3に格納される。 ステップ 1821において XT 2が計算される。 ここでレジスタ T丄には(Xdx- Zd) 2がレジスタ T 2に は Zd+ 1 (Xdx— Zd)+Xd + 1 (Xd— xZd)力 S格糸内されており、 した力 Sつて {Zd + 1 (Xdx-Zd)+Xd + 1 (Xd-xZd)} (Xdx-Zd) 2が計算される。 その結果がレジスタ
に格納される。 ステップ 1822において Ti XT 3が計算される。 ここで レジスタ には {Zd + 1 (Xdx- Zd)+Xd + i (Xd- xZd)}(Xdx-Zd) 2がレジスタ T3には Zd+ 1 (Xdx_Zd)— Xd+ 1 (Xd - xZd)力格糸内されており、 したがって {Zd + 1 (Xdx-Zd)+Xd + 1 (Xd-xZd)}{Zd+ 1 (Xdx-Zd)-Xd + 1 (Xd-xZd)}(Xd x - Zd) 2が計算される。 その結果が Yd Wに格納される。 したがって Yd Wには {Zd + 1 (Xdx-Zd)+Xd + 1 (Xd-xZd)}{Zd+ 1 (Xdx-Zd)-Xd + 1 (Xd-xZd)}(Xdx- Zd) 2が格納されている。 にはステップ 1818において ByZd + 1Xd+ 1Zd (Xd-xZd) 2Xd + asByZd + 1Xd + 1Zd(Xd-xZd) 2Zd力格糸内され、 その後更新力 S 行われないので、 その値が保持されている。 Xd Wにはステップ 1 8 1 6におレヽ て sByZ d + 1Xd + 1Zd(Xd-xZd) 2Zdが格納され、 その後更新が行われないので、 その値が保持されている。 その結果として、 ワイエルシュトラス型楕円曲線にお ける射影座標 (Xd W,Yd W,Zd W)の値が全て復元されている。
上記手順により与えられた x、 y、 Xd、 Zd、 Xd + 1、 Zd + 1からワイエルシュ トラス型楕円曲線におけるスカラ一倍点の射影座標 (X d W, Y d W, Z d W)における 値が全て復元される理由は以下の通りである。 点(d+1) Pは点 dPに点 Pを加算した 点である。 点(d - 1)Pは点 dPから点 Pを減算した点である。 モンゴメリ型楕円曲線 のァフィン座標における加算公式に代入すると、 数 6、 数 7を得る。 数 6、 数 7 の両辺を各々減算することにより、 数 8を得る。 したがって、 数 9のようになる。 ここで xd=Xd/Zd、 xd+ 1=Xd+ 1/Zd + 1、 xd—;^ー;^ であり、 この 値を代入することにより射影座標の値へと変換すると、 数 10を得る。 モンゴメ リ型楕円曲線の射影座標での加算公式は数 1 1、 数 12である。 ここで Xm及び Zmはモンゴメリ型楕円曲線上の点 Pの m倍点 mPの射影座標における X座標及ぴ Z座 標、 Xn及び Znはモンゴメリ型楕円曲線上の点 Pの n倍点 nPの射影座標における X 座標及ぴ Z座標、 Xmn及び Zm_nはモンゴメリ型楕円曲線上の点 Pの(m-n)倍点 (m- n)Pの射影座標における X座標及び Z座標、 Xm+ n及び Zm+ nはモンゴメリ型楕 円曲線上の点 Pの (m+n)倍点 (m+n)Pの射影座標における X座標及び Z座標であり、 m nは m>nをみたす正整数である。 この式は Xm/Zm=xm、 Xn/Zn=xn、 Xm_n/ Zmn=xmnが不変のとき、 Xm+ n/Zm+n=xm+ nも不変となるので、 射影座標 での公式としてうまく働いている。 他方、 数 1 3、 数 1 4とおくと、 この式も X
Figure imgf000080_0001
Xm+nも不変となる。 また、 X' m—n/Z' mn=Xmn/Zmn=xmnをみたすの で、 xmnの射影座標として X' mn,Z' mnをとつてよい。 m=d,n=lとして上記 公式を用 、て ydの式より Xd— 及び Zd— iを?肖去し、 Χ1=χ,Ζ1=1とおくことによ り、 数 1 5を得る。 xd=Xd/Zdであるが、 ydの分母と通分することにより、 数
1 6となる。 その結果として、
Y = {ZM(Xdx-Zd) + Xd+l(Xd一 xZd ( x-Zd) - Xd+l (Xd - xZd)}{Xdx -Zdf
…数 4 7 とし、
Xd' =ByZMXMZd(Xd -xZd)2Xd "数 4 8
2d' = ByZd+lXd+lZd(Xd -xZd)2Zd 数 4 9
とすると(Χ' d,Y' d,Z, d) = (Xd,Yd,Zd)となる。 モンゴメリ型楕円曲線上の点と ワイエルシュトラス型楕円曲線上の点との対応関係については、 K.Okeya, H. Kurumatani, K. Sakurai, Elliptic し urves with the Montgomery - Form and Their Cryptographic Applications, Public Key Cryptography, LNCS 1751 (2000) pp.238-257 に記載されている。 それによると、 変換パラメタを saとし て、 YdW=Y' d、 xd w=x' d+«Zd W、 及び Zd W=sZ' dという関係がある。 結果と して次の式を得る。
7/ = {Zrf+1( rfx-Z + Xrf+1(Xii- Zi/)}{Zrf+1(Xrfx-Zrf)- ;i+I(Xii-xZ(/)}( , -Zii)2
…数 5 0
X『 = ByZ Xd+1Z Xd - XZd)2 + aZj…数 5 1
+1Z - x )2Zd…数 5 2
により更新すればよい。 ここで、 Xd WYdW,Zd Wは図 1 8の処理により与えら れている。 したがって、 ワイエルシュトラス型楕円曲線における射影座標
(Xd W,Yd W,Zd W)の値が全て復元されていることになる。
上記手順はステップ 1 801、 ステップ 1803、 ステップ 1805、 ステツ プ 1806、 ステップ 1 809、 ステップ 181 0、 ステップ 1 81 1、 ステツ プ 1812、 ステップ 1 813、 ステップ 1814、 ステップ 181 5、 ステツ プ 1816、 ステップ 1 817、 ステップ 1821及びステップ 1822におレヽ て有限体上の乗算の計算量を必要とする。 また、 ステップ 1807及びステップ 1808において有限体上の 2乗算の計算量を必要とする。 有限体上の加算及ぴ 減算の計算量は、 有限体上の乗算の計算量、 2乗算の計算量と比べて比較的小さ いので無視してもよい。 有限体上の乗算の計算量を M、 有限体上の 2乗算の計算 量を Sとすると、 上記手順は 1 5 M+ 2 Sの計算量を必要とする。 これは高速ス カラー倍計算の計算量と比べてはるかに小さい。 例えばスカラー値 dが 1 60ビ ットであれば、 高速スカラー倍計算の計算量はおおよそ 1 500M弱と見積もら れる。 S = 0. 8 Mと仮定すると座標復元の計算量は 16. 6 Mであり、 高速ス カラー倍計算の計算量と比べてはるかに小さい。 したがって効率的に座標を復元 'できていることが示された。
尚、 上記手順をとらなくても、 上記計算式により与えられた Xd W、 Yd W、 zd wの値が計算できれば Xd W、 Yd W、 zd wの値が復元できる。 また、 ワイエル シュトラス型楕円曲線においてァフィン座標におけるスカラー倍点 dPを dP= (xd W,yd W)とすると、 xd W、 yd Wが上記計算式により与えられる値を取るよう に Xd W、 Yd W、 Zd Wの値を選択し、 その値が計算できれば Xd W、 Yd W、 Zd Wが 復元できる。 それらの場合においては一般的に復元に必要となる計算量が増大す る。 また、 モンゴメリ型楕円曲線のパラメタである Bの値やモンゴメリ型楕円曲 線への変換パラメタ sの値を小さくとることにより、 ステップ 181 3乃至はス テツプ 181 6における乗算の計算量を削減することができる。
次に、 スカラー値 d及ぴワイエルシュトラス型楕円曲線上の点 Pから、 Xd, Zd
Xd + 1, Zd + iを出力するアルゴリズムについて説明する。
第 10実施例の高速スカラー倍計算部 202の高速スカラー倍計算方法として、 第 9実施例の高速スカラー倍計算方法を用いる。 これにより、 スカラー値 d及び ワイエルシュトラス型楕円曲線上の点 pから、 xd, zd, Xd + 1, Zd+ 1を出力す るアルゴリズムとして、 高速であるアルゴリズムが達成される。 尚、 高速スカラ 一倍計算部 202において上記アルゴリズムを用いなくても、 スカラー値 d及び ワイエルシュトラス型楕円曲線上の点 Pから、 Xd, Zd, Xd + 1, Zd+ 1を出力す るアルゴリズムであり且つ高速であれば、 他のアルゴリズムを用いていもよい。 スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 1 5M+2 Sであり、 これは高速スカラー倍計算部 202の高速スカラー倍計 算に必要な計算量の (9. 2 k— 3. 6) Mとに比べてはるかに小さい。 したが つて、 スカラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速スカラ 一倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 S = 0. 8 Mと仮定すると、 この計算量はおおよそ (9. 2 k + 13) Mと見積もることが できる。 例えばスカラー値 dが 1 60ビット (k = 160) であれば、 このスカ ラー倍計算に必要な計算量は 1485Mとなる。 楕円曲線としてワイエルシュト ラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビアン座標を中心とした混 合座標系を用いたスカラー倍計算方法を用いて、 スカラー倍点をヤコビアン座標 として出力する場合に必要となる計算量はおおよそ 1600Mであり、 これと比 ベて必要となる計算量は削減されている。
第 11実施例は入出力用の楕円曲線としてワイエルシュトラス型楕円曲線を、 内部の計算用には与えられたワイエルシュトラス型楕円曲線から変換可能である モンゴメリ型楕円曲線を用いたものである。 スカラー倍計算部 103力 スカラ 一値 d及びワイエルシュ トラス型楕円曲線上の点 Pから、 ワイエルシュ トラス型楕 円曲線におけるァフィン座標の点として完全な座標が与えられたスカラー倍点
(XdJd)を計算し出力する。 スカラー値 d及びワイエルシュトラス型楕円曲線上 の点 Pをスカラー倍計算部 1 03に入力すると高速スカラー倍計算部 202がそ れを受け取る。 高速スカラー倍計算部 202は受け取ったスカラー値 dと与えら れたワイエルシュトラス型楕円曲線上の点 Pからモンゴメリ型楕円曲線において 射影座標で表されたスカラ一倍点 dP= (Xd,Yd,Zd)の座標のうち X d及ぴ Z d、 射影 座標で表されたモンゴメリ型楕円曲線上の点(d+1) P=(Xd + 1)Yd+ 1,Zd+ 座標のうち Xd+ 1及び Zd+i、 射影座標で表されたモンゴメリ型楕円曲線上の点
Figure imgf000083_0001
i,Yd— i,Zd— の座標のうち Xd—丄及び Zd一 iを計算する。 また、 入力されたワイエルシュトラス型楕円曲線上の点 Pを、 与えられたワイエルシュ トラス型楕円曲線から変換可能であるモンゴメリ型楕円曲線上の点に変換し、 そ の点を新たに P=(x,y)とおく。 高速スカラー倍計算部 202は、 Xd, Zd, Xd + 1, Zd + 1, Xd— Ζά_!, x及ぴ yを座標復元部 203に与える。 座標復元部 20 3は与えられた座標の値 Xd, Zd, Xd + 1, Zd + 1, Xd— i, Zd_1, x及び yよ りワイエルシュ トラス型楕円曲線においてァフィン座標で表されたスカラー倍点 dP=(xd,yd)の座標 xd及ぴ ydの復元を行なう。 スカラー倍計算部 1 03はワイ エルシュトラス型楕円曲線上でァフィン座標において完全に座標が与えられたス カラー倍点 (xd,yd)を計算結果として出力する。
次に図 1 9により、 座標 x, y, Xd, Zd, Xd + 1, Zd + 1, Xd一 Zd一 i力 S 与えられた場合に xd、 ydを出力する座標復元部の処理について説明する。
座標復元部 203では、 モンゴメリ型楕円曲線において射影座標で表されたス 力ラ一倍点 dP= (X d, Y d, Z d )の座標うち X d及ぴ Z d、 射影座標で表されたモンゴ メリ型楕円曲線上の点(d+1) P= (Xd+ 1,Yd + 1,Zd + 1)の座標のうち X d +丄及び Zd + 1、 射影座標で表されたモンゴメリ型楕円曲線上の点 (d - l)P=(Xd
Yd - l,Zd— 1)の座標のうち Xd— 1及び Zd— スカラー倍計算部 1 03に入力 されたモンゴメリ型楕円曲線上の点 Pをァフィン座標で表した(x,y)を入力し、 以 下の手順でワイエルシュトラス型楕円曲線上でァフィン座標おいて完全な座標が 与えられたスカラー倍点 (xd,yd)を出力する。 ここで入力されたモンゴメリ型 楕円曲線上の点 Pのァフィン座標を(X, y)で、 射影座標を(X i, Y i , Z i )でそれぞれ 表す。 入力されたスカラー値を dとしてモンゴメリ型楕円曲線におけるスカラー 倍点 dPのァフィン座標を (xd Mn,yd Mn) で、 射影座標を (Xd,Yd,Zd)でそ れぞれ表す。 モンゴメリ型楕円曲線上の点(d-l)Pのァフィン座標を(xd1 yd— で、 射影座標を (Xd— :L,Yd一 ;L,Zd— でそれぞれ表す。 モンゴメリ型楕 円曲線上の点(d+1) Pのァフィン座標を(X d + 1 , y d + i )で、 射影座標を (X d +ェ,
Y d + 1 , Z d + 1 )でそれぞれ表す。
ステップ 1 901において ∑(1+ 1カ計算され、 レジスタ に格納さ れる。 ステップ 1 902において Zd— 1 XXd + iが計算され、 レジスタ T2に格 納される。 ステップ 1 903において I^— T2が計算される。 ここでレジスタ Τェには Xd—丄 Z d + カ レジスタ Τ 2には Z d _ Xd + がそれぞれ格納されてお り、 したがって Xd一 iZd+ - Zd一 が計算される。 その結果がレジスタ に格納される。 ステップ 1 904において Zd XXが計算され、 レジスタ T 2 に格納される。 ステップ 1 905において Xd_T2が計算さる。 ここでレジスタ T2には Zdxが格納されており、 したがって Xd- xZdが計算される。 その結果が レジスタ T 2に格納される。 ステップ 1906において T 2の 2乗が計算される。 ここでレジスタ T 2には Xd- xZdが格納されており、 したがって(Xd - xZd) 2が計 算される。 その結果がレジスタ T 2に格納される。 ステップ 1 907において T^ XTsが計算される。 ここでレジスタ丁 には Xd— Zd + i- Zd一 が レジスタ T2には(Xd- xZd) 2がそれぞれ格納されており、 しだがつて(Xd- xZd) 2(xd_1zd + 1-zd_1xd + 1)が計算される。 その結果がレジスタ T jに格納さ れる。 ステップ 1 908において 4BXyが計算される。 その結果がレジスタ T2 に格納される。 ステップ 1 909において T2XZd + 1が計算される。 ここでレ ジスタ丁2には 4Byが格納されており、 したがって 4ByZd+ 1が計算される。 その 結果がレジスタ T 2に格納される。 ステップ 1 91 0において T2 XZd— が計 算される。 ここでレジスタ T2には 4ByZd + 1が格納されており、 したがって 4ByZd— iZd+iが計算される。 その結果がレジスタ T2に格納される。 ステツ プ 1911において T2XZdが計算される。 ここでレジスタ T2には AByZd— i Zd + ]^S格納されており、 した力 つて AByZa— iZd+iZd力 S計算される。 その結 果がレジスタ T 2に格納される。 ステップ 1912において T2XXdが計算され る。 ここでレジスタ T2には 4ByZd— Zd+iZdが格納されており、 したがって 4ByZd一 Zd + iZaXd力 S計算される。 その結果がレジスタ T3に格納される。 ス テツプ 1913において Τ 2 XZdが計算される。 ここでレジスタ T 2には
4ByZd一 iZa + i^d力格糸内されており、 した力 Sつて 4ByZd1Zd + iZaZd力 S計算 される。 その結果がレジスタ T 2に格納される。 ステップ 1 914において、 T2Xsが計算される。 ここでレジスタ T2には 4ByZd— iZd + 1ZdZdが格納され ており、 したがって AsByZd— iZa + ZdZdが計算される。 その結果がレジスタ T 2に格納される。 ステップ 1915においてレジスタ T 2の逆元が計算される。 ここでレジスタ T 2には 4sByZd— Zd iZdZdが格納されており、 したがって l/4sByZd— iZd +
Figure imgf000085_0001
が計算される。 その結果がレジスタ T 2に格納される。 ステップ 1 4 1 6において T 2 XT 3が計算される。 ここでレジスタ T 2には l/4sByZd— jZd + iZdZdカ レジスタ T3に fま 4ByZd一 iZd + iZdXaカそれぞれ格 糸内されており、 した力 Sつて(4ByZd1Zd + 1ZdXd)/(4sByZd一 iZd+iZdZa)力 S 計算される。 その結果がレジスタ T 3に格納される。 ステップ 1 9 1 7において T 3 + αが計算される。 ここでレジスタ Τ3には(4ByZd一 Zd +
Figure imgf000085_0002
(4sByZd一 iZd + iZaZd)力 S格糸内されており、 したカつて(4ByZ d一ェ Z d +ェ Z d Xd)/(4sByZd_1Zd + 1ZdZd) + カ計算される。 その結果がレジスタ x dに格納 される。 ステップ 1 9 1 8においてレジスタ Ti XT2が計算される。 ここでレ ジスタ丁 には(Xd- xZd) " (Xd— Zd一 がレジスタ T 2には l/4sByZd— iZa+iZdZd力 Sそれぞれ格糸内されており、 したカ つて(X d一ェ Z d +ェ ~Zd^1Id + 1) (Xd-Zdx) 2/4sByZd一 iZd + iZd 2力 S計算される。 その結果力 Sレ ジスタ ydに格納される。 したがってレジスタ ydには (Xa— iZd + - Zd一ュ Xd + 1) (Xd— Zdx) ^74sByZd一 iZd + iZd 2力格糸内されている。 レジスタ xdには ステップ 1 9 1 7 こおレヽて ByZa— jLZd + iZdXd / sByZd一 Zd + iZaZd) αが格納され、 その後更新が行なわれないので、 その値が保持されている。
上記手順により与えられた x、 y、 Xd、 Zd、 Xd + 1、 Zd + :L、 Xd—い
Zd—;!カ らワイエルシュトラス型楕円曲茅泉におけるスカラ一倍点のァフィン座標 (X d, y d)における値が全て復元される理由は以下の通りである。 点(d+l)Pは 点 dPに点 Pを加算した点である。 点(d- 1) Pは点 dPから点 Pを減算した点である。 モ ンゴメリ型楕円曲線のァフィン座標における加算公式に代入すると、 数 3 8、 数 3 9を得る。 両辺を各々減算することにより、 数 40を得る。 したがって、 数 4 1となる。 ここで X dMo n=Xd/Zd、 x d + 1=Xd + 1/Zd + 1, x d = 1 = Xd = 1/Zd == 1であり、 この値を代入することにより射影座標の値へと変換する と、 数 42を得る。 X d M°n=Xd/Zdであるが、 逆元演算の回数を減らす目的 で yd M°nの分母と通分することにより、 数 53となる。
M。" =
Figure imgf000085_0003
…数 5 3
モンゴメリ型楕円曲線上の点とワイエルシュトラス型楕円曲線上の点との対応 関係につレヽて (ま、 K. Okeya, H. Kurumatani, K. Sakurai, Elliptic Curves with the Montgomery-Form and Their Cryptographic Applications, Public Key Cryptography, LNCS 1751 (2000) pp.238-257 に記載されている。 それによると、 変換パラメタを s,ひとして、
Figure imgf000086_0001
1 Xd M°n+«の関係が ある。 結果として次の式を得る。
yd =(^ZM -Z^Xd+l)(Xd -Zdx)2l4sByZd_xZMZd 2…数 5 4
¾ =(4 — , ) /(4 +1 ^^ "…数 5 5
ここで、 X d, y dは図 1 9により与えられる。 したがって、 ワイエルシュト ラス型楕円曲線におけるスカラー倍点のァフィン座標(X d, y d)における値が 全て復元される'ことになる。
上記手順はステップ 1 9 0 1、 ステップ 1 9 0 2、 ステップ 1 904、 ステツ プ 1 9 07、 ステップ 1 9 08、 ステップ 1 9 0 9、 ステップ 1 9 1 0、 ステツ プ 1 9 1 1、 ステップ 1 9 1 2、 ステップ 1 9 1 3、 ステップ 1 9 1 4、 ステツ プ 1 9 1 6及ぴステップ 1 9 1 8において有限体上の乗算の計算量を必要とする。 また、 ステップ 1 9 0 6において有限体上の 2乗算の計算量を必要とする。 また、 ステップ 1 9 1 4において有限体上の逆元演算の計算量を必要とする。 有限体上 の加算及び減算の計算量は、 有限体上の乗算の計算量、 2乗算の計算量及び逆元, 演算の計算量と比べて比較的小さいので無視してもよい。 有限体上の乗算の計算 量を M、 有限体上の 2乗算の計算量を S及び有限体上の逆元演算の計算量を Iと すると、 上記手順は 1 3 M+S + Iの計算量を必要とする。 これは高速スカラー 倍計算の計算量と比べてはるかに小さい。 例えばスカラー値 dが 1 6 0ビットで あれば、 高速スカラー倍計算の計算量はおおよそ 1 5 0 0M弱と見積もられる。 S = 0. 8M、 I =40Mと仮定すると座標復元の計算量は 5 3. 8Mであり、 高速スカラ一倍計算の計算量と比べてはるかに小さレ、。 したがつて効率的に座標 を復元できていることが示された。
尚、 上記手順をとらなくても、 上記計算式により与えられた xd, ydの値が計 算できれば xd, ydの値が復元できる。 その場合においては一般的に復元に必要 となる計算量が増大する。 また、 モンゴメリ型楕円曲線のパラメタである Bの値 乃至はモンゴメリ型楕円曲線への変換パラメタである sの値をを小さくとること により、 ステップ 1 908乃至はステップ 1 914における乗算の計算量を削減 することができる。
次に図 10により、 スカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pか ら、 Xd, Zd, Xd + 1, Zd + 1, Xd + 1, Zd一 iを出力する高速スカラー倍計算 部の処理について説明する。
高速ス力ラ一倍計算部 202では、 スカラ一倍計算部 103に入力されたワイ エルシュトラス型楕円曲線上の点 Pを入力し、 以下の手順によりモンゴメリ型楕 円曲線にぉ 、て射影座標で表されたスカラ一倍点 dP= (Xd,Yd,Zd)のうち Xd及ぴ Zd、 射影座標で表されたモンゴメリ型楕円曲線上の点(d+l)P=(Xd+ 1,Yd + 1, zd + 1)のうち xd + 1及び Zd + :L、 射影座標で表されたモンゴメリ型楕円曲線上 の点 (d- l)P=(Xd一 ^Yd— Zd— のうち Xd— 及び Zd— iを出力する。 ステツ プ 1016として、 与えられたワイエルシュトラス型楕円曲線上の点 Pをモンゴ メリ型楕円曲線上で射影座標により表された点に変換する。 この点をあらためて 点 Pとする。 ステップ 1001として、 変数 Iに初期値 1を代入する。 ステップ 1002として、 点 Pの 2倍点 2Pを計算する。 ここで点 Pは射影座標において(x, y,l)として表し、 モンゴメリ型楕円曲線の射影座標における 2倍算の公式を用 いて 2倍点 2Pを計算する。 ステップ 1003として、 スカラー倍計算部 103に 入力された楕円曲線上の点 Pとステップ 1 002で求めた点 2Pを、 点の組(P,2P) として格納する。 ここで点 P及び点 2Pは射影座標で表されている。 ステップ 10 04として、 変数 I とスカラー値 dのビット長とが一致するかどうかを判定し、 一致すればステップ m二 dとなり、 1014へ行く。 一致しなければステップ 1 005へ行く。 ステップ 1005として、 変数 Iを 1増加させる。 ステップ 10 06として、 スカラー値の I番目のビットの値が 0であるか 1であるかを判定す る。 そのビットの値が 0であればステップ 1 007へ行く。 そのビットの値が 1 であればステップ 1010へ行く。 ステップ 1007として、 射影座標により表 された点の組(mP, (m+1) P)から点 mPと点(m+1) Pの加算 mP+ (m+1) Pを行ない、 点 (2m+l)Pを計算する。 その後ステップ 1008へ行く。 ここで、 加算 mP+(m+l) Pは、 モンゴメリ型楕円曲線の射影座標における加算公式を用いて計算される。 ステツ プ 1008として、 射影座標により表された点の組 (mP, (m+l)P)から点 mPの 2倍 算 2 (mP)を行ない、 点 2mPを計算する。 その後ステップ 1 009へ行く。 ここで、 2倍算 2(mP)は、 モンゴメリ型楕円曲線の射影座標における 2倍算の公式を用い て計算される。 ステップ 1 009として、 ステップ 1 008で求めた点 2mPとス テツプ 1007で求めた点(2m+l)Pを点の組 (2mP, (2m+ 1 ) P)として、 点の組 (mP, (m+l)P)の代わりに格納する。 その後ステップ 1004へ戻る。 ここで、 点 2mP、 点(2m+l)P、 点 mP及ぴ点(m+l)Pは全て射影座標において表されている。 ステツ プ 1010として、 射影座標により表された点の組 (mP, (m+ 1 ) P)から点 mPと点 (111+1)?の加算1^+(111+1)?を行なぃ、 点(2m+l)Pを計算する。 その後ステップ 1 01 1へ行く。 ここで、 加算 mP+(m+l)Pは、 モンゴメリ型楕円曲線の射影座標に おける加算公式を用いて計算される。 ステップ 101 1として、 射影座標により 表された点の組 (mP, (111+1)?)から点(111+1)?の2倍算2((111+1)?)を行なぃ、 点 (2m+2)Pを計算する。 その後ステップ 1 0 1 2へ行く。 ここで、 2倍算 2((m+ 1)P)は、 モンゴメリ型楕円曲線の射影座標における 2倍算の公式を用いて計算 される。 ステップ 101 2として、 ステップ 1010で求めた点(2m+l)Pとステ ップ 101 1で求めた点(2m+2)Pを点の組((2m+l)P, (2m+2) P)として、 点の組 (mP, (m+l)P)の代わりに格納する。 その後ステップ 1 004へ戻る。 ここで、 点 (2m+l)P、 点(2m+2)P、 点 mP及ぴ点(m+l)Pは全て射影座標において表さ τている。 ステップ 1014として、 射影座標で表された点の組 (mP, (111+ 1 ) P)から、 点 (m - 1)Pの射影座標における X座標 Xm— 1及び Z座標を Zm—!求め、 それぞれ Xd1及 ぴ とする。 その後ステップ 1013へ行く。 ステップ 1 01 3として、 射 影座標で表された点 mP=(Xm,Ym,Zm)より Xm及び Zmをそれぞれ Xd及び Zdとし て、 射影座標で表された点 (m+1) P= (Xm+丄, Ym+ ]_ , Zm+ i )より Xm+ i及び
Zm+iをそれぞれ Xd+i及び zd + iとして、 Xd— 1及ぴ Zd— 1と共に出力する。 ここで、 Ym及び Ym+ 1は、 モンゴメリ型楕円曲線の射影座標における加算公式 及ぴ 2倍算の公式では Y座標を求める事ができないので、 求まっていない。 また 上記手順により、 mとスカラー値 dはビット長が等しくさらにそのビットのパタ ーンも同じとなる為、 等しくなる。
また、 ステップ 1014において(m- 1)Pを求める際に、 数 13、 数 14の公式 より求めてもよいし、 mが奇数であれば、 ((m-l)/2)Pの値をステップ 1 01 2の 段階で別に保持しておき、 その値からモンゴメリ型楕円曲線の 2倍の公式より、 (m - 1)Pを求めてもよい。
モンゴメリ型楕円曲線の射影座標における加算公式の計算量は、 Zi-lととる ことにより 3M+ 2 Sとなる。 ここで Mは有限体上の乗算の計算量、 Sは有限体 上の 2乗算の計算量である。 モンゴメリ型楕円曲線の射影座標における 2倍算の 公式の計算量は、 3M+2 Sである。 スカラー値の. I番目のビットの値が 0であ れば、 ステップ 1007において加算の計算量、 ステップ 1008において 2倍 算の計算量が必要となる。 すなわち 6M+ 4 Sの計算量が必要となる。 スカラー 値の I番目のビットの値が 1であれば、 ステップ 1010において加算の計算量、 ステップ 101 1において 2倍算の計算量が必要となる。 すなわち 6M+4 Sの 計算量が必要である。 いずれの場合においても 6M+ 4 Sの計算量が必要である。 ステップ 1004、 ステップ 1005、 ステップ 1006、 ステップ 1007、 ステップ 1008、 ステップ 1009乃至はステップ 1004、 ステップ 1 00 5、 ステップ 1006、 ステップ 1010、 ステップ 101 1、 ステップ 101 2の繰り返しの回数は、 (スカラー値 dのビット長) 一 1回となるので、 ステツ プ 1002での 2倍算の計算量とステップ 1014での (m- 1) Pの計算に必要な計 算量を考慮に入れると、 全体の計算量は (6M+4 S) k+Mとなる。 ここで k はスカラー値 dのビット長である。 一般的には、 計算量 Sは、 S = 0. 8M程度 と見積もられるので、 全体の計算量はおおよそ (9. 2 k + 3) Mとなる。 例え ばスカラー値 dが 1 60ビット (k = 1 60) であれば、 上記手順のァルゴリズ ムの計算量はおおよそ 1475Mとなる。 スカラー値 dのビットあたりの計算量 としてはおよそ 9. 2Mとなる。 A.Miyaji, T. Ono, H. Cohen, Efficient elliptic curve exponentiation using mixed coordinates, Advances in
Cryptology Proceedings of ASIACRYPT' 98, LNCS 1514 (1998) pp.51 - 65 には、 ワイエルシュトラス型楕円曲線において、 ウィンドウ法を用いてヤコビアン座標 を中心とした混合座標系を用いたスカラ一倍計算方法は高速なスカラ一倍計算方 法として記載されている。 この場合においては、 スカラー値のビットあたりの計 算量はおおよそ 1 0Mと見積もられる。 例えばスカラー値 dが 160ビット (k = 160) であれば、 このスカラー倍計算方法の計算量はおおよそ 1 600Mと なる。 したがって、 上記手順のアルゴリズムの方が計算量が少なく高速といえる。 尚、 高速スカラー倍計算部 202において上記手順のアルゴリズムを用いなく ても、 スカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 Xd, Yd
Xd + 1, Zd+;Lを出力するアルゴリズムであり且つ高速であれば、 他のアルゴリ ズムを用いていもよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 13M+S+ Iであり、 これは高速スカラー倍計算部 202の高速スカラー倍 計算に必要な計算量の (9. 2 k+ 1) Mとに比べてはるかに小さい。 したがつ て、 スカラー倍計算部 1 03のスカラー倍計算に必要な計算量は、 高速スカラー 倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 I = 40M、 S = 0. 8Mと仮定すると、 この計算量はおおよそ (9. 2 k + 56. 8) Mと 見積もることができる。 例えばスカラー値 dが 160ビット (k=160) であ れば、 このスカラー倍計算に必要な計算量はおおよそ 1 529Mとなる。 楕円曲 線としてワイエルシュトラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビ アン座標を中心とした混合座標系を用いたスカラー倍計算方法を用いて、 スカラ 一倍点をァフィン座標として出力する場合に必要となる計算量はおおよそ 164 0 Mであり、 これと比べて必要となる計算量は削減されている。
第 12実施例は入出力用の楕円曲線としてワイエルシュトラス型楕円曲線を、 内部の計算用には与えられたワイエルシュトラス型楕円曲線から変換可能である モンゴメリ型楕円曲線を用いる。 スカラー倍計算部 103がスカラー値 d及ぴヮ
-トラス型楕円曲線上の点 Pから、 ワイエルシュトラス型楕円曲線にお ける射影座標の点として完全な座標が与えられたスカラ一倍点 (X d w, Y d w, Zd w)を計算し出力する。 スカラー値 d及びワイエルシュトラス型楕円曲線上の 点 Pをスカラー倍計算部 103に入力すると高速スカラー倍計算部 202がそれ を受け取る。 高速スカラー倍計算部 202は受け取ったスカラー値 dと与えられ たワイエルシュトラス型楕円曲線上の点 Pからモンゴメリ型楕円曲線において射 影座標で表されたスカラ一倍点 dP= (X d, Y d, Z d )の座標のうち X d及び Z d、 射影座 標で表されたモンゴメリ型楕円曲線上の点(<^1 = (1+ 1,¥(1+ 1 (1+ 1)の座 標のうち X d + 1及び Z d +i , 射影座標で表されたモンゴメリ型楕円曲線上の点 (d- l)P=(Xd— ^Yd— の座標のうち Xd = i及び zd—丄を計算し、 射影座 標で表された入力されたワイエルシュトラス型楕円曲線上の点 P=(x, y)と共にそ の情報を座標復元部 203に与える。 座標変換部 203は与えられた座標の値 Xd, Zd, Xd + 1, Zd + 1, Xd— Zd_1 ? x及び yよりワイエノレシュトラス型 楕円曲線において射影座標で表されたスカラー倍点 dP=(Xd W,Yd W,Zd W)の座標 Xd W、 Yd W及び Zd wの復元を行なう。 スカラー倍計算部 103はワイエルシュ トラス型楕円曲線上で座標射影座標において完全に座標が与えられたスカラー倍 点 (X d W, Y d w, z d w)を計算結果として出力する。
次に図 20により、 座標 x, y, Xd, Zd, Xd + 1, Zd + 1, Xd_l5 Zd—ェカ 与えられた場合に Xd W、 Yd W、 zd wを出力する座標復元部の処理について説明 する。
座標復元部 203では、 モンゴメリ型楕円曲線において射影座標で表されたス 力ラ一倍点 dP= (Xd,Yd,Zd)の座標のうち X d及ぴ Z d、 射影座標で表されたモンゴ メリ型楕円曲線上の点(d+l)P=(X d + 1, d + 1,ム d+ 1)の座標のつち Ad+ 1及ひ Zd + 1、 射影座標で表されたモンゴメリ型楕円曲線上の点
Figure imgf000091_0001
Yd— i,zd— 1)の座標のうち xd_i及び zd— i、 スカラー倍計算咅 I 03に入力 されたワイエルシュトラス型楕円曲線上の点 Pを射影座標で表した (X, y)を入力し、 以下の手順でワイエルシュトラス型楕円曲線上で射影座標おいて完全な座標が与 えられたスカラー倍点 (Xd W,Yd W,Zd W)を出力する。 ここで入力されたモンゴ メリ型楕円曲線上の点 Pのァフィン座標を(x, y)で、 射影座標を(X , Y i, Z )でそ れぞれ表す。 入力されたスカラー値を dとしてモンゴメリ型楕円曲線におけるス 力ラ一倍点 dPのァフィン座標を(X d, y d )で、 射影座標を(X d, Y d , Z d )でそれぞれ 表す。 モンゴメリ型楕円曲線上の点(d- I)Pのァフィン座標を(xd— i,yd - 1)で、 射影座標を (Xd— ^Yd— でそれぞれ表す。 モンゴメリ型楕円曲線上の 点(d+l)Pのァフィン座標を(xd+i,yd + i)で、 射影座標を(Xd + ^Ya + iL,
Zd + i)でそれぞれ表す。
ステップ 2001において XZd+ 1が計算され、 レジスタ に格納さ れる。 ステップ 2002において Zd— 1 XXd + iが計算され、 レジスタ T 2に格 納される。 ステップ 2003において T^—Tsが計算される。 ここでレジスタ には Xd— がレジスタ T2には zd1Xd + 1がそれぞれ格納されてお り、 したがって Xd— Zd一 iXd + iが計算される。 その結果がレジスタ に格納される。 ステップ 2 0 04において Zd Xxが計算され、 レジスタ T 2 に格納される。 ステップ 2 0 0 5において Xd- T 2が計算さる。 ここでレジスタ Τ 2には Zdxが格納されており、 したがって Xd - xZdが計算される。 その結果が レジスタ T 2に格納される。 ステップ 2 006において T 2の 2乗が計算される。 ここでレジスタ T 2には X d - xZ dが格納されており、 したがって(X d _xZ d ) 2が計 算される。 その結果がレジスタ T 2に格納される。 ステップ 2 00 7において T XT 2が計算される。 ここでレジスタ 1^には Xd_1Zd + 1— Zd1)((1+ 1カ レジスタ T2には(Xd xZd) 2がそれぞれ格納されており、 したがって(Xd- xZd) 2 (Xd1Zd + 1— Zd— iXd + カ計算される。 その結果力 Yd Wに格糸内され る。 ステップ 2 0 0 8において 4BXyが計算される。 その結果がレジスタ T 2に 格納される。 ステップ 2 0 0 9において T 2 XZd + 1が計算される。 ここでレジ スタ T 2には 4Byが格納されており、 したがって 4ByZd + 1が計算される。 その結 果がレジスタ T 2に格納される。 ステップ 2 0 1 0において T 2 XZd—ュが計算 される。 ここでレジスタ T 2には 4ByZd + 1が格納されており、 したがって 4ByZd + 1Zd— が計算される。 その結果がレジスタ T 2に格納される。 ステツ プ 2 0 1 1において T2 XZdが計算される。 ここでレジスタ T2には 4yZd + 1 Zd—丄が格納されており、 したがって 4ByZd + 1Zd— が計算される。 その結 果がレジスタ T 2に格納される。 ステップ 2 0 1 2において T2 XXdが計算され る。 ここでレジスタ T 2には 4ByZd + 1Zd— が格納されており、 したがって 4ByZd + 1Zd一 iZdXdカ計算される。 その結果がレジスタ T に格納される。 ス テツプ 2 0 1 3において T2 XZdが計算される。 ここでレジスタ T2には
4ByZd + iZd一 力 S格糸内されており、 した力 Sつて 4ByZd + 1Zd一 iZdZd力 S計算 される。 その結果がレジスタ T 2に格納される。 ステップ 2 0 1 4において Τ 2 Xsが計算される。 ここでレジスタ T 2には 4ByZd + 1Zd— ZdZdが格納されて おり、 したがって4 sByZd + 1Zd— ^dZdが計算される。 その結果がレジスタ Zd W格納される。 ステップ 2 0 1 5において a XZd Wが計算される。 ここでレ ジスタ Zd には 4sByZd + 1 Zd一 iZdZd力格納されており、 したがって 4aSByZd + 1Zd— ZdZd力 S計算される。 その結果がレジスタ T 2に格納される。 ステップ 201 6において T^+T 2が計算される。 ここでレジスタ 1^には 4ByZd + 1Zd一 iZdXdカ レジスタ Τ2に【ま 4ひ sByZd + 1Zd一 iZdZdカそれぞれ格 糸内されており、 L ;^ T4ByZd + 1Zd1ZdXd+4asByZd + 1Zd_1ZdZd;^fl" 算される。 その結果がレジスタ Xd Wに格納される。 したがってレジスタ Xd Wに は 4ByZd + 1Zd一 sByZd + 1Zd一 iZaZd力格糸内されてレヽる。 レジスタ
Yd Wにはステップ 2007におレヽて(Xd—xZd) 2(Xd— iZd+i— Zd一; LXd+ 1)力 S 格納され、 その後更新が行なわれないので、 その値が保持されている。 レジスタ Zd Wにはステップ 2014において 4sByZd + 1Zd一 ZdZaカ格納され、 その後 更新が行なわれないので、 その値が保持されている。
上記手順により与えられた x、 y、 Xd、 Zd、 Xd + 1、 Zd + 1、 Xd—
Z d— からワイエルシュトラス型楕円曲線におけるスカラ一倍点の射影座標 (Xd W, Yd W, Zd w)における値が全て復元される理由は以下の通りである。 尚、 点(d+1) Pは点 dPに点 Pを加算した点であり、 点(d-1) Pは点 dPから点 Pを減算した点 である。 モンゴメリ型楕円曲線のァフィン座標における加算公式に代入すると、 数 6、 数 7を得る。 両辺を各々減算することにより、 数 8を得る。 したがって、 数 9となる。 ここで xd=Xd/Zd、 X d + 1=Xd + 1/Zd + 1、 d-l=Xd-l Zd— iであり、 この値を代入することにより射影座標の値へと変換すると、 数 1 0を得る。
X d=Xd/Zdであるが、 y dの分母と通分することにより、 数 20となる。 その 結果として、
Y = (Xd-rZM - Zd_,XM ){Xd - Zdx)2…数 5 6
とし、
=4 …数 5 7
=4^; +1Zrfrf…数 5 8 とすると(X' d, Y, d, Z' d) = (Xd) xd, xd)となる。 モンゴメリ型楕円曲線上の 点とワイエルシュトラス型楕円曲線上の点との対応関係については、 K. Okeya, H. Kurumatani, K. Sakurai, Elliptic Curves with the Montgomery-Form and Their Cryptographic Applications, Public Key Cryptography, LNCS 1751 (2000) pp.238-257 に記載されている。 それによると、 変換パラメタを s, ひとし て、 YdW
Figure imgf000094_0001
dの関係がある。 結果として 次の式を得る。
Y =
Figure imgf000094_0002
…数 5 9
Χ = AByZMZd_xZdXd + a SByZMZd_xZdZd…数 6 0
Z =4sByZd+1Zd_lZdZd …数 6 1
となる。 ここで、 Xd W, Yd W, Zd Wは図 20により与えられる。 したがって、 トラス型楕円曲線における射影座標 (Xd W, Yd W, Zd W)の値が全 て復元されていることになる。
上記手順はステップ 2001、 ステップ 2002、 ステップ 2004、 ステツ プ 2007、 ステップ 2008、 ステップ 2009、 ステップ 2010、 ステツ プ 2011、 ステップ 2012、 ステップ 2013、 ステップ 2014及びステ ップ 2015において有限体上の乗算の計算量を必要とする。 また、 ステップ 2 006において有限体上の 2乗算の計算量を必要とする。 有限体上の加算及び減 算の計算量は、 有限体上の乗算の計算量、 2乗算の計算量と比べて比較的小さい ので無視してもよい。 有限体上の乗算の計算量を M、 有限体上の 2乗算の計算量 を Sとすると、 上記手順は 12 M+Sの計算量を必要とする。 これは高速スカラ 一倍計算の計算量と比べてはるかに小さい。 例えばスカラー値 dが 160ビット であれば、 高速スカラー倍計算の計算量はおおよそ 1500M弱と見積もられる。 S = 0. 8 Mと仮定すると座標復元の計算量は 12. 8Mであり、 高速スカラー 倍計算の計算量と比べてはるかに小さ 、。 したがつて効率的に座標を復元できて いることが示された。
尚、 上記手順をとらなくても、 上記計算式により与えられた Xd w、 Yd w、 zd wの値が計算できれば Xd W、 Yd W、 zd wの値が復元できる。 また、 ワイエル シュトラス型楕円曲線においてァフィン座標におけるスカラー倍点 dPを dP=
(xd w、 ,yd w)とすると、 xd W、 yd wが上記計算式により与えられる値を取るよ うに xd w、 Yd w、 zd wの値を選択し、 その値が計算できれば xd w、 Yd w、 zd w が復元できる。 それらの場合においては一般的に復元に必要となる計算量が増大 する。 また、 楕円曲線のパラメタである Bやモンゴメリ型楕円曲線への変換パラ メタである sの値を小さくとることにより、 ステップ 2008乃至はステップ 2 014における乗算の計算量を削減することができる。
次に、 スカラー値 d及ぴワイエルシュトラス型楕円曲線上の点 Pから、 xd, zd
Xd + 1, Zd + 1, Xd - 1, Zd一 を出力するアルゴリズムについて説明する。
第 12実施例の高速スカラー倍計算部 202の高速スカラー倍計算方法として、 第 11実施例の高速スカラー倍計算方法を用いる。 これにより、 スカラー値 d及 ぴワイエルシュトラス型楕円曲線上の点 pから、 xd, zd, xd + 1, zd + 1
Χά_1? Zd— を出力するアルゴリズムとして、 高速であるアルゴリズムが達成 される。 尚、 高速スカラー倍計算部 202において上記手順のアルゴリズムを用 いなくても、 スカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 xd, Zd, Xd + 1, Zd + 1, Xd一 Zd一 iを出力するアルゴリズムであり且つ高速で あれば、 他のアルゴリズムを用いていもよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 12M+Sであり、 これは高速スカラー倍計算部 202の高速スカラー倍計算 に必要な計算量の (9. 2 k + 1) Mとに比べてはるかに小さい。 したがって、 スカラ一倍計算部 103のスカラ一倍計算に必要な計算量は、 高速ス力ラ一倍計 算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 S = 0. 8Mと仮 定すると、 この計算量はおおよそ (9. 2 k + 1 3. 8) Mと見積もることがで きる。 例えばスカラー値 dが 160ビット (k=1 60) であれば、 このスカラ 一倍計算に必要な計算量はおおよそ 1486Mとなる。 楕円曲線としてワイエル シュトラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビアン座標を中心と した混合座標系を用いたスカラー倍計算方法を用いて、 スカラー倍点をヤコビア ン座標として出力する場合に必要となる計算量はおおよそ 1600Mであり、 こ れと比べて必要となる計算量は削減されている。
第 1 3実施例は入出力用の楕円曲線としてワイエルシュトラス型楕円曲線を、 内部の計算用には与えられたワイエルシュトラス型楕円曲線から変換可能である モンゴメリ型楕円曲線を用いたものである。 スカラー倍計算部 103が、 スカラ 一値 d及ぴワイエルシュトラス型楕円曲線上の点 Pから、 ワイエルシュトラス型楕 円曲線におけるァフィン座標の点として完全な座標が与えられたスカラー倍点 (x<iW,ydW)を計算し出力する。 スカラー値 d及びワイエルシュ トラス型楕円曲 線上の点 Pをスカラー倍計算部 1 0 3に入力すると高速スカラー倍計算部 20 2 がそれを受け取る。 高速スカラー倍計算部 202は受け取ったスカラー値 dと与 えられたワイエルシュトラス型楕円曲線上の点 Pからモンゴメリ型楕円曲線にお いてァフィン座標で表されたスカラー倍点 dP=(xd,yd)の座標のうち xd、 ァフ ィン座標で表されたモンゴメリ型楕円曲線上の点(d+1) P= (X d + , y d +丄)の座 標のうち x d + i、 ァフィン座標で表されたモンゴメリ型楕円曲線上の点( d— ;L ) P ^ (Xd-Ud— の座標のうち Xd— iを計算し、 ァフィン座標で表された入力 されたモンゴメリ型楕円曲線上の点 P=(x,y)と共にその情報を座標復元部 203 に与える。 座標復元部 20 3は与えられた座標の値 xd、 xd + 1、 xd—い x及び yよりワイエルシュトラス型楕円曲線においてァフィン座標で表されたスカラー 倍点 dP= (xd W,yd W)の座標 y d Wの復元を行なう。 スカラ一倍計算部 1 0 3はヮ
-トラス型楕円曲線上でァフィン座標において完全に座標が与えられた スカラー倍点 (xd W, yd W)を計算結果として出力する。
次に図 2 1により、 座標 x、 y、 xd、 xd + 1、 xd一丄が与えられた場合に、 xd W、 yd Wを出力する座標復元部の処理について説明する。
座標復元部 203では、 モンゴメリ型楕円曲線においてァフィン座標で表され たスカラー倍点 dP = (X d, y d )の座標のうち xd、 ァフィン座標で表されたモンゴ メリ型楕円曲線上の点 +1)?= (1 + 1£1 + 1)の座標のぅち £1 + 1、 ァフィン 座標で表されたモンゴメリ型楕円曲線上の点(d - l)P=(xd— ^yd— の座標の うち xd一い スカラー倍計算部 1 03に入力されたモンゴメリ型楕円曲線上の点 Pをァフィン座標で表した(x, y)を入力し、 以下の手順でァフィン座標において完 全な座標が与えられたスカラ一倍点 (X d W, y d W)を出力する。
ステップ 2 1 0 1において xd— xが計算され、 レジスタ T丄に格納される。 ス テツプ 2 1 02において T の 2乗すなわち(xd— X) 2が計算され、 レジスタ に格納される。 ステップ 2 1 03において xd— i—Xd + が計算され、 レジ スタ T2に格納される。 ステップ 2 1 04'において ΧΤ2が計算される。 こ こでレジスタ Τ には(X d—X) 2がレジスタ T 2には X d一ュ一 X d丄 がそれぞれ格 納されており、 したがって(xd—x) 2 (xd— xd+ 1)が計算される。 その結果 がレジスタ T に格納される。 ステップ 2 1 0 5において 4BXyが計算され、 レ ジスタ T2に格納される。 ステップ 2 1 0 6において Τ2の逆元が計算される。 ここでレジスタ Τ 2には 4Byが格納されており、 したがつて l/4Byが計算される。 その結果がレジスタ T 2に格納される。 ステップ 2 1 0 7において T丄 X T 2力 S 計算される。 ここでレジスタ には(xd—x) 2 (xd— xd + 1)がレジスタ Τ 2 には l/4Byがそれぞれ格納されており、 したがって(xd—X) 2 (xd_1 - xd + 1)/4Byが計算される。 その結果がレジスタ に格納される。 ステップ 2 1 0 8において Xs—1が計算される。 ここでレジスタ には(xd—x) 2
(Xd— 1一 xd + i)/4By力 S格納されており、 したがって(xd_x) 2 (xd— 1—
xd + 1)/4sByが計算される。 その結果がレジスタ yd Wに格納される。 尚、 sはあ らかじめ与えられている値であり、 したがってあらかじめ s一 1を計算できる。 ステップ 2 1 0 9において xd Xs一1が計算される。 その結果がレジスタ 1^に 格納される。 ステップ 2 1 1 0において 1^ +ひが計算される。 ここでレジスタ には s— が格納されており、 したがって s— +ひが計算される。 その 結果がレジスタ xd Wに格納される。 したがってレジスタ xd Wには s一 "1 "xd + aが 格納されている。 レジスタ yd Wはステップ 2 1 0 8において(xd— X) 2ά_ !
— xd + 1)/4sByが格納され、 その後更新されないので、 その値が保持されている。 上記手順によりスカラー倍点の y座標 ydが復元される理由は以下の通りである。 点(d+1) Pは点 dPに点 Pを加算した点である。 点(d-1) Pは点 dPから点 Pを減算した点 である。 モンゴメリ型楕円曲線のァフィン座標における加算公式に代入すると、 数 6、 数 7を得る。 両辺を各々減算することにより、 数 8を得る。 したがって、 数 9となる。 モンゴメリ型楕円曲線上の点とワイエルシュトラス型楕円曲線上の 点との対応関係については、 K. Okeya, H. Kurumatani, K. Sakurai, Elliptic Curves with the Montgomery— Form and Their Cryptographic Applications, Public Key Cryptography, LNCS 1751 (2000) pp.238-257 に記載されている。 それによると、 変換パラメタを s, aとして、 yd W= s— 及び xd W= s— ixd† αの関係がある。 結果として次の式を得る。
y = (¾-ι - ¾+1)(¾ -x)2/4sBy …数 6 2
xJ' =S-'Xrl +a …数 6 3 ここで、 xd W, yd Wは図 21により与えられる。 したがって、 ァフィン座標
(xd W, yd W)の値は全て復元されていることになる。
上記手順はステップ 2104、 ステップ 2105、 ステップ 2107、 ステツ プ 2108及びステップ 2109において有限体上の乗算の計算量を必要とする。 また、 ステップ 2102において有限体上の 2乗算の計算量を必要とする。 さら にステップ 2106において有限体上の逆元演算の計算量を必要とする。 有限体 上の加算及び減算の計算量は、 有限体上の乗算の計算量、 2乗算の計算量、 逆元 演算の計算量と比べて比較的小さいので無視してもよい。 有限体上の乗算の計算 量を M、 有限体上の 2乗算の計算量を S、 有限体上の逆元演算の計算量を I とす ると、 上記手順は 5 M+S+ Iの計算量を必要とする。 これは高速スカラー倍計 算の計算量と比べてはるかに小さい。 例えばスカラー値 dが 1 60ビットであれ ば、 高速スカラー倍計算の計算量はおおよそ 1 500M弱と見積もられる。 S = 0. 8M及び I =40Mと仮定すると座標復元の計算量は 45. 8 Mであり、 高 速スカラー倍計算の計算量と比べてはるかに小さい。 したがって効率的に座標を 復元できていることが示された。
尚、 上記手順をとらなくても、 上記等式の右辺の値が計算できれば yd Wの値 が復元できる。 その場合は一般的に復元に必要となる計算量が増大する。 また、 楕円曲線のパラメタである Bやモンゴメリ型楕円曲線への変換パラメタ sの値を小 さくとることにより、 ステップ 2105、 ステップ 2108乃至はステップ 21 09における乗算の計算量を削減することができる。
次に図 24により、 スカラー値 d及ぴワイエルシュトラス型楕円曲線上の点 Pか ら、 xd, xd+ 1, xd = 1を出力する高速スカラー倍計算部の処理について説明 する。
高速スカラー倍計算部 202では、 スカラー倍計算部 103に入力されたワイ エルシュトラス型楕円曲線上の点 Pを入力し、 以下の手順によりモンゴメリ型楕 円曲線においてァフィン座標で表されたスカラ一倍点 dP= (xd,yd) 5¾xd、 ァ フィン座標で表されたモンゴメリ型楕円曲線上の点(d+1) P=(xd + 1,yd + 1)のう ¾xd + i. ァフィン座標で表されたモンゴメリ型楕円曲線上の点(d- 1) P=
(xd— yd— Jのうち xd—丄を出力する。 ステップ 241 6として、 与えられ たワイエルシュトラス型楕円曲線上の点 Pをモンゴメリ型楕円曲線上で射影座標 により表された点に変換する。 この点をあらためて点 Pとする。 ステップ 240 1として、 変数 Iに初期値 1を代入する。 ステップ 2402として、 点 Pの 2倍 点 2Pを計算する。 ここで点 Pは射影座標において(X, y,l)として表し、 モンゴメ リ型楕円曲線の射影座標における 2倍算の公式を用いて 2倍点 2Pを計算する。 ス テツプ 2403として、 スカラー倍計算部 103に入力された楕円曲線上の点 P とステップ 2402で求めた点 2Pを、 点の組 (P, 2P)として格納する。 ここで点 P 及び点 2Pは射影座標で表されている。 ステップ 2404として、 変数 I とスカラ 一値 dのビット長とが一致するかどうかを判定し、 一致すれば m=dとなり、 ス テツプ 2414へ行く。 一致しなければステップ 2405へ行く。 ステップ 24 05として、 変数 Iを 1増加させる。 ステップ 2406として、 スカラー値の I 番目のビットの値が 0であるか 1であるかを判定する。 そのビットの値が 0であ ればステップ 2407へ行く。 そのビットの値が 1であればステップ 2410へ 行く。 ステップ 2407として、 射影座標により表された点の組 (mP,(m+l)P)か ら点 mPと点 (m+l)Pの加算 mP+(m+l)Pを行ない、 点(2m+l)Pを計算する。 その後ステ ップ 2408へ行く。 ここで、 加算 mP+(m+l)Pは、 モンゴメリ型楕円曲線の射影 座標における加算公式を用いて計算される。 ステップ 2408として、 射影座標 により表された点の組 (mP, (m+1) P)から点 mPの 2倍算 2 (mP)を行ない、 点 2mPを計 算する。 その後ステップ 2409へ行く。 ここで、 2倍算 2(mP)は、 モンゴメリ 型楕円曲線の射影座標における 2倍算の公式を用いて計算される。 ステップ 24 09として、 ステップ 2408で求めた点 2mPとステップ 2407で求めた点 (2m+ 1 ) Pを点の組 (2mP, (2m+ 1 ) P)として、 点の組 (mP, (m+ 1 ) P)の代わりに格納す る。 その後ステップ 2404へ戻る。 ここで、 点 2mP、 点(2m+l)P、 点 mP及ぴ点 (m+l)Pは全て射影座標において表されている。 ステップ 2410として、 射影座 標により表された点の組 (mP, (ra+ 1 ) P)から点 mPと点(ra+1) Pの加算 mP+ (ra+1) Pを行 ない、 点(2m+l)Pを計算する。 その後ステップ 24 1 1へ行く。 ここで、 加算 mP+(m+l)Pは、 モンゴメリ型楕円曲線の射影座標における加算公式を用いて計算 される。 ステップ 241 1として、 射影座標により表された点の組 (mP, (m+l)P) 力 ら点 (m+l)Pの 2倍算 2((m+l)P)を行ない、 点 (2m+2)Pを計算する。 その後ステ ップ 2412へ行く。 ここで、 2倍算 2 ( (m+ 1 ) P)は、 モンゴメリ型楕円曲線の射 影座標における 2倍算の公式を用いて計算される。 ステップ 2412として、 ス テツプ 241 0で求めた点(2ra+l)Pとステップ 241 1で求めた点(2m+2)Pを点 の組 ( (2m+ 1 ) P, (2m+2) P)として、 点の組 (mP, (m+1) Pの代わりに格納する。 その 後ステップ 2404へ戻る。 ここで、 点(2m+l)P、 点(2m+2)P、 点 mP及ぴ点 (m+l)Pは全て射影座標において表されている。 ステップ 2414として、 射影座 標で表された点の組 (mP,(m+l)P)から、 点(m_l)Pの射影座標における X座標 Xm— i及ぴ Z座標 を求め、 それぞれ Xd— 及び Zd一 1とする。 その後ステツ プ 241 5へ行く。 ステップ 241 5として、 射影座標で表された点 mP=(Xm, Ym, Zm)より Xm及び Zmをそれぞれ Xd及び Zdとし、 射影座標で表された点(m+l)P
= (Xm+ 1 , Ym+ 1 , Zm+ l )より Xm+ ;L及び Zm+ iをそれぞれ X d + 1及び Z d +ェと する。 ここで、 Ym及ひ Ym+ 1は、 モンゴメリ型楕円曲線の射影座標における加 算公式及び 2倍算の公式では Y座標を求める事ができないので、 求まつていない。 Xd_!, Zd + 1, Xd, Zd, Xd + 1, Zd + 1より、 数 24、 数 25、 数 26とし て xd— xd, xd + 1を求める。 その後ステップ 241 3へ行く。 ステップ 2 41 3として、 xd— xd, xd+ 1を出力する。 上記手順により、 mとスカラ 一値 dはビット長が等しくさらにそのビットのパターンも同じとなる為、 等しく なる。 またステップ 2414において(m-l)Pを求める際に、 数 13、 数 14の公 式により求めてもよいし、 mが奇数であれば、 (On- 1)/2)Pの値をステップ 241 2の段階で別に保持しておき、 その値からモンゴメリ型楕円曲線の 2倍算の公式 より、 (m - 1)Pを求めてもよレヽ。
モンゴメリ型楕円曲線の射影座標における加算公式の計算量は、 Ζ -Ιととる ことにより 3M+2 Sとなる。 ここで Mは有限体上の乗算の計算量、 Sは有限体 上の 2乗算の計算量である。 モンゴメリ型楕円曲線の射影座標における 2倍算の 公式の計算量は、 3M+ 2 Sである。 スカラー値の I番目のビットの値が 0であ れば、 ステップ 2407において加算の計算量、 ステップ 2408において 2倍 算の計算量が必要となる。 すなわち 6M+ 4 Sの計算量が必要となる。 スカラー 値の I番目のビットの値が 1であれば、 ステップ 2410において加算の計算量、 ステップ 241 1において 2倍算の計算量が必要となる。 すなわち 6M+4 Sの 計算量が必要である。 いずれの場合においても 6 M+ 4 Sの計算量が必要である。 ステップ 2404、 ステップ 2405、 ステップ 2406、 ステップ 2407、 ステップ 2408、 ステップ 2409乃至はステップ 2404、 ステップ 240 5、 ステップ 2406、 ステップ 2410、 ステップ 241 1、 ステップ 241 2の繰り返しの回数は、 (スカラー値 dのビット長) 一 1回となるので、 ステツ プ 2402での 2倍算の計算量、 ステップ 2414での(m- 1) Pの計算に必要な計 算量及ぴステップ 2415でのァフィン座標への変換の計算量を考慮に入れると、 全体の計算量は (6M+4 S) k + l lM+ Iとなる。 ここで kはスカラー値 d のビット長である。 一般的には、 計算量 Sは、 S = 0. 8M程度、 計算量 Iは I =40M程度と見積もられるので、 全体の計算量はおおよそ (9. 2 k + 51) Mとなる。 例えばスカラー値 dが 1 60ビット (k = 160) であれば、 上記手 順のアルゴリズムの計算量はおおよそ 1 523Mとなる。 スカラー値 dのビット あたりの計算量としてはおよそ 9. 2Mとなる。 A.Miyaji, T. Ono, H.Cohen, Efricient elliptic curve exponentiation using mixed coordinates,
Advances in Cryptology Proceedings of ASIACRYPT' 98, LNCS 1514 (1998) pp.51-65 には、 ワイエルシュトラス型楕円曲線において、 ウィンドウ法を用い てヤコビアン座標を中心とした混合座標系を用いたスカラー倍計算方法は高速な スカラー倍計算方法として記載されている。 この場合においては、 スカラー値の ビットあたりの計算量はおおよそ 10Mと見積もられ、 これ以外にァフィン座標 への変換の計算量が必要となる。 例えばスカラー値 dが 160ビット (k= 1 6 0) であれば、 このスカラー倍計算方法の計算量はおおよそ 1640Mとなる。 したがって、 上記手順のアルゴリズムの方が計算量が少なく高速といえる。
尚、 高速スカラー倍計算部 202において上記手順のアルゴリズムを用いなく ても、 スカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 xd_1; xd, xd + 1を出力するアルゴリズムであり且つ高速であれば、 他のアルゴリズ ムを用いていもよい。
第 14の実施例は、 スカラ一倍計算部 1 03がスカラ一値 d及びモンゴメリ型 楕円曲線上の点 Pから、 モンゴメリ型楕円曲線におけるァフィン座標の点として 完全な座標が与えられたスカラー倍点 (x d, y d) を計算し出力するものであ る。 スカラー値 d及びモンゴメリ型楕円曲線上の点 Pをスカラー倍計算部 1 03に 入力すると高速スカラー倍計算部 202がそれを受け取る。 高速スカラー倍計算 部 202は受け取ったスカラー値 dと与えられたモンゴメリ型楕円曲線上の点 P からモンゴメリ型楕円曲線において射影座標で表されたスカラー倍点 dP=(Xd, Yd,Zd)の座標のうち Xd及び Zd、 射影座標で表されたモンゴメリ型楕円曲線上 の点((1+1)?=½(1+ 1,¥(1+ 1,2£1+ 1) の座標のうち Xd + 1及び Zd+iを計算し、 ァフィン座標で表された入力されたモンゴメリ型楕円曲線上の点 P= ( X , y )と共 にその情報を座標復元部 203に与える。 座標復元部 203は与えられた座標の 値 Xd、 Zd、 Xd + 1、 Zd +い x及び yよりモンゴメリ型楕円曲線においてァフ ィン座標で表されたスカラー倍点 dP=(xd,yd)の座標 X d及び y dの復元を行な う。 スカラー倍計算部 103はァフィン座標において完全に座標が与えられたス カラー倍点 (xd,yd)を計算結果として出力する。
次に図 34により、 座標 £1,2(1, (1+1,2(5 +1が与ぇられた場合に (1 (1 を出力する座標復元部の処理について説明する。
座標復元部 203では、 モンゴメリ型楕円曲線において射影座標で表されたス 力ラ一倍点 dP- (X d, Y d , Z d )の座標うち X d及び z d、 射影座標で表されたモンゴ メリ型楕円曲線上の点(d+1) P= (X d+l,Yd+l,Zd+lノの J坐標のつち d + 1及び Zd+ 1、 スカラー倍計算部 103に入力されたモンゴメリ型楕円曲線上の点 Pを ァフィン座標で表した(X, y)を入力し、 以下の手順でァフィン座標おいて完全な 座標が与えられたスカラー倍点(xd,yd)を出力する。 ここで入力されたモンゴ メリ型楕円曲線上の点 Pのァフィン座標を(x,y)で、 射影座標を(X Y^Zi)でそ れぞれ表す。 入力されたスカラー値を dとしてモンゴメリ型楕円曲線におけるス 力ラ一倍点 dPのァフィン座標を(X d, y d )で、 射影座標を (X d, Y d , Z d )でそれぞれ 表す。 モンゴメリ型楕円曲線上の点(d+1) Pのァフィン座標を d + 1 , y d + 1 )で、 射影座標を (Xd + 1,Yd + i,Zd + 1)でそれぞれ表す。
ステップ 3401において xXZdが計算され、 レジスタ T に格納される。 ス テツプ 3402において が計算される。 ここでレジスタ には xZdが 格納されており、 したがって xZd+Xdが計算される。 その結果がレジスタ T 2に 格納される。 ステップ 3403において Xd-丁丄が計算され、 ここでレジスタ には xZd が格納されており、 したがって xZd- Xdが計算される。 その結果が レジスタ T 3に格納される。 ステップ 3404においてレジスタ T 3の 2乗が計 算される。 ここでレジスタ T3には xZd - Xdが格納されており、 したがって(Xd - xZd) 2が計算される。 その結果がレジスタ T3に格納される。 ステップ 3405 において T3XXd + 1が計算される。 ここでレジスタ T3には (Xd- xZd) 2が格納 されており、 したがって Xd+ 1 (Xd-xZd) 2が計算される。 その結果がレジスタ T 3に格納される。 ステップ 3406において 2AXZdが計算され、 レジスタ に格納される。 ステップ 3407において Ts+Tiが計算される。 ここでレジ スタ T 2には xZ d +X dがレジスタ T丄には 2AZ dがそれぞれ格納されており、 した がって xZd+Xd+2AZdが計算される。 その結果がレジスタ T 2に格納される。 ス テツプ 3408において xXXdが計算され、 レジスタ T4に格納される。 ステツ プ 3409において T4+Zdが計算される。 ここでレジスタ T4には xXdが格納 されており、 したがって xXd+Zdが計算される。 その結果がレジスタ T4に格納 される。 ステップ 3410において Τ2 ΧΤ4が計算される。 ここでレジスタ Τ 2には xZd+Xd+2AZdがレジスタ Τ4には xXd+Zdがそれぞれ格納されており、 したがって(xZ d+Xd +2AZ d) (xXd+Zd)が計算される。 その結果がレジスタ T 2に 格納される。 ステップ 341 1において T XZdが計算される。 ここでレジス タ!^には 2AZdが格納されており、 したがって 2AZd 2が計算される。 その結果 がレジスタ T に格納される。 ステップ 3412において T 2- 1^が計算される。 ここでレジスタ T 2には(xZd+Xd+2AZd) (xXd+Zd)がここでレジスタ T には 2AZ d がそれぞれ格納されており、 したがって(xZ d +X d +2AZ d) (xXd+Zd)- 2ΑΖά Λが計算される。 その結果がレジスタ Τ 2に格納される。 ステップ 341 3 において T2 XZd+ 1が計算される。 ここでレジスタ T2には(xZd+Xd +
2AZd) (xXd+Zd)-2AZd 2力格糸内されており、 したカつて Zd+ 1 ((xZd+Xd + 2AZd) (xXd+Zd)- 2AZd 2)が計算される。 その結果がレジスタ T 2に格納される。 ステップ 3414において T 2- T 3が計算される。 ここでレジスタ T 2には Zd + 1 ((xZd+Xd+2AZd) (xXd+Zd)- 2AZd 2)がレジスタ T3には Xd + 1 (Xd- xZd) 2がそれぞれ格納されており、 したがって Zd + 1 ((xZd+Xd+2AZd) (xXd+Zd) - 2AZd 2)-Xd + n (Xd- xZd) が計算される。 その結果がレジスタ T 2に格納され る。 ステップ 341 5において 2BXyが計算され、 レジスタ T iに格納される。 ステップ 341 6において XZdが計算される。 ここでレジスタ には 2By が格納されており、 したがって 2ByZdが計算される。 その結果がレジスタ に 格納される。 ステップ 341 7において T XZd + 1が計算される。 ここでレジ スタ には 2ByZdが格納されており、 したがって 2ByZdZd+ 1が計算される。 その結果がレジスタ 1^に格納される。 ステップ 3418において XZdが計 算される。 ここでレジスタ には 2ByZdZd+iが格納されており、 したがって 2ByZdZd + 1Zdが計算される。 その結果がレジスタ T3に格納される。 ステップ 341 9においてレジスタ Τ 3の逆元が計算される。 ここでレジスタ Τ 3には 2ByZdZd + 1Zdが格納されており、 したがって l/2ByZdZd+ が計算される。 その結果がレジスタ T 3に格納される。 ステップ 3420において T2XT3が 計算される。 ここでレジスタ Τ2には Zd+1 ((xZd+Xd+2AZd) (xXd+Zd) - 2AZd ")-Xd + 1 (Xd-xZd) 2がレジスタ T3には l/2ByZdZd + 1Zdがそれぞれ格 糸内されており、 したカ つて {Zd+ 1 ((xZd+Xd+2AZd) (xXd+Zd)-2AZd 2)-Xd+ χ (Xd-xZd) 2}/2ByZdZd + 1 Zdが計算される。 その結果がレジスタ ydに格納さ れる。 ステップ 3421において XXdが計算される。 ここでレジスタ丁ュに は 282(12(1+ 1カ格納されており、 したがって 2ByZd Z d + 丄 X dが計算される。 その結果がレジスタ に格納される。 ステップ 3422において Τ]_ ΧΤ3が 計算される。 ここでレジスタ Τ には 2ByZ d Z d + Xd力 Sレジスタ T 3には 1/ 2ByZdZd + 1Zdがそれぞれ格納されており、 したがって 2ByZdZd + /2ByZ d Zd + 1Zd( = Xd/Zd)が計算される。 その結果が xdに格納される。 ydにはステツ プ 3420におレ、て {Zd + 1 ((xZd+Xd+2AZd) (xXd+Zd)-2AZd 2)-Xd +! (Xd- xZd) 2}/2By ZdZd + 1Zdカ格納され、 その後更新が行なわれないので、 その値 が保持されている。
上記手順により座標復元部 203へ与えられた x、 y、 Xd、 Zd、 Xd + 1、 Z d + からモンゴメリ型楕円曲線におけるスカラ一倍点のァフィン座標( X d , y d)における値が全て復元される理由は以下の通りである。 尚、 点(d+l)Pは点 dPに点 Pを加算した点である。 モンゴメリ型楕円曲線のァフィン座標における加 算公式に代入すると、 数 6を得る。 点 P及び点 dPはモンゴメリ型楕円曲線上の点 であるので、 Byd 2=xd 3+Axd 2+xd及ぴ By2=x3+Ax2+xをみたす。 数 6に代入し、 By d 2及び By 2を消去し、 式を整理すると、
yd={(xdx+l) (xd+x+2A)-2A-(xd-x) 2xd + 1}/(2By) …数 64
を得る。 ここで X
Figure imgf000105_0001
+ 1/Zd + 1であり、 この値を代入す ることにより射影座標の値へと変換すると、 次の式を得る。
yd={Zd + 1 ((Xdx+Zd) (Xd+xZd+2AZd)-2Azi)-(Xd-xZd)2Xd + 1}/(2ByZdZd + 1Zd)
…数 65
X d=Xd/Zdであるが、 逆元演算の回数を減らす目的で y dの分母と通分するこ とにより、
Xd=(2ByZdZd + 1Xd)/(2ByZdZd + 1Zd) …数 66
となる。 ここで、 xd, ydは図 34の処理により与えられている。 したがって、 ァフィン座標 (xd,yd)の値が全て復元されていることになる。
上記手順はステップ 3401、 ステップ 3405、 ステップ 3406、 ステツ プ 3408、 ステップ 3410、 ステップ 341 1、 ステップ 341 3、 ステツ プ 3415、 ステップ 3416、 ステップ 341 7、 ステップ 3418、 ステツ プ 3420、 ステップ 3421及びステップ 3422において有限体上の乗算の 計算量を必要とする。 また、 ステップ 3404において有限体上の 2乗算の計算 量を必要とする。 また、 ステップ 341 9において有限体上の逆元演算の計算量 を必要とする。 有限体上の加算及び減算の計算量は、 有限体上の乗算の計算量、 2乗算の計算量及ぴ逆元演算の計算量と比べて比較的小さいので無視してもよレ、。 有限体上の乗算の計算量を M、 有限体上の 2乗算の計算量を S及び有限体上の逆 元演算の計算量を Iとすると、 上記手順は 14M+S + Iの計算量を必要とする。 これは高速ス力ラ一倍計算の計算量と比べてはる力に小さレ、。 例えばス力ラ一値 dが 160ビットであれば、 高速スカラー倍計算の計算量はおおよそ 1 500M 弱と見積もられる。 S = 0. 8M、 I =40Mと仮定すると座標復元の計算量は 54. 8Mであり、 高速スカラー倍計算の計算量と比べてはるかに小さい。 した がって効率的に座標を復元できていることが示された。
尚、 上記手順をとらなくても、 上記計算式により与えられた x d, y dの値が 計算できれば X Λ, y dの値が復元できる。 その場合においては一般的に復元に 必要となる計算量が増大する。 また、 楕円曲線のパラメタである A乃至は Bの値を 小さくとることにより、 ステップ 3406乃至はステップ 3415における乗算 の計算量を削減することができる。
次にスカラ一値 d及びモンゴメリ型楕円曲線上の点 Pから、 Xd,Zd,Xd+ 1, Zd + 1を出力する高速スカラー倍計算部の処理を説明する。
第 14実施例の高速スカラー倍計算部 202の高速スカラー倍計算方法として、 第 1実施例の高速スカラー倍計算方法を用いる。 これにより、 スカラー値 d及ぴ モンゴメリ型楕円曲線上の点 Pから、 xd, Zd, Xd + 1, Zd + ]Lを出力するァルゴ リズムとして、 高速であるアルゴリズムが達成される。 尚、 高速スカラー倍計算 部 202において上記アルゴリズムを用いなくても、 スカラー値 d及びモンゴメ リ型楕円曲線上の点 Pから、 Xd, Zd, Xd + 1, Zd + iを出力するアルゴリズムで あり且つ高速であれば、 他のアルゴリズムを用いていもよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 14M+S+ Iであり、 これは高速スカラー倍計算部 202の高速スカラー倍 計算に必要な計算量の (9. 2 k-4. 6) Mとに比べてはるかに小さい。 した がって、 スカラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速スカ ラー倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 1 =40 M、 S = 0. 8Mと仮定すると、 この計算量はおおよそ (9. 2 k+ 50) Mと 見積もることができる。 例えばスカラー値 dが 160ビット (k=1 60) であ れば、 このスカラー倍計算に必要な計算量は 1 522Mとなる。 楕円曲線として ワイエルシュトラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビアン座標 を中心とした混合座標系を用いたスカラー倍計算方法を用いて、 スカラー倍点を ァフィン座標として出力する場合に必要となる計算量はおおよそ 1640Mであ り、 これと比べて必要となる計算量は削減されている。
第 1 5の実施例は、 スカラー倍計算部 103がスカラー値 d及びモンゴメリ型 楕円曲線上の点 Pから、 モンゴメリ型楕円曲線における射影座標の点として完全 な座標が与えられたスカラー倍点 (Xd,Yd,Zd)を計算し出力するものである。 ス カラー値 d及ぴモンゴメリ型楕円曲線上の点 Pをスカラー倍計算部 103に入力す ると高速スカラー倍計算部 202がそれを受け取る。 高速スカラー倍計算部 20 2は受け取ったスカラ一値 dと与えられたモンゴメリ型楕円曲線上の点 Pからモン ゴメリ型楕円曲線において射影座標で表されたスカラ一倍点 dP= (X d , Y d , Z d )の 座標のうち Xd及び Zd、 射影座標で表されたモンゴメリ型楕円曲線上の点(d+l)P = + 1 , ?(1 + 1,2£1+ :1)の座標のぅち (1+ 1及ぴ2(1+ 1を計算し、 ァフィン座 標で表された入力されたモンゴメリ型楕円曲線上の点 P=(x,y)と共にその情報を 座標復元部 203に与える。 座標復元部 203は与えられた座標の値 Xd、 Zd、 Xd + 1、 Zd + 1、 x及び yよりモンゴメリ型楕円曲線において射影座標で表された スカラー倍点 dP=0(d,Yd,Zd)の座標 Xd,Yd及ぴ Zdの復元を行なう。 スカラー 倍計算部 103は射影座標において完全に座標が与えられたスカラー倍点 (Xd, Yd,Zd)を計算結果として出力する。
次に図 35により、 座標 x、 y Xd、 Zd、 Xd + 1、 Zd + 1が与えられた場合に Xd、 Yd、 Zdを出力する座標復元部の処理について説明する。
座標復元部 203では、 モンゴメリ型楕円曲線において射影座標で表されたス 力ラ一倍点 dP= (X d , Y d , Z d )の座標のうち X d及び Z d、 射影座標で表されたモン ゴメリ型楕円曲線上の点 (d+l)P=(Xd+ 1,Yd + 1,Zd + 1)の座標のうち Xd + 1及 び Z d + 、 スカラ一倍計算部 103に入力されたモンゴメリ型楕円曲線上の点 P をァフィン座標で表した(X, y)を入力し、 以下の手順で射影座標おいて完全な座 標が与えられたスカラ一倍点 (Xd,Yd,Zd)を出力する。 ここで入力されたモンゴ メリ型楕円曲線上の点 Pのァフィン座標を(X, y)で、'射影座標を( , Y , Z i )でそ れぞれ表す。 入力されたスカラー値を dとしてモンゴメリ型楕円曲線におけるス 力ラ一倍点 dPのァフィン座標を(X d, y d )で、 射影座標を(X d , Y d , Z d )でそれぞれ 表す。 モンゴメリ型楕円曲線上の点(d+l)Pのァフィン座標を(xd + 1,yd+ 1)で、 射影座標を (Xd + i,Yd + i,Zd+i)でそれぞれ表す。
ステップ 3501において xXZdが計算され、 レジスタ に格納される。 ス テツプ 3502において Xd+T 2が計算される。 ここでレジスタ T 2には xZdが 格納されており、 したがって xZd+Xdが計算される。 その結果がレジスタ T 2に 格納される。 ステップ 3503において Xd- T 1が計算され、 ここでレジスタ には xZd が格納されており、 したがって xZd - Xdが計算される。 その結果が レジスタ T3に格納される。 ステップ 3504においてレジスタ Τ 3の 2乗が計 算される。 ここでレジスタ T3には xZd - Xdが格納されており、 したがって(Xd - xZd)2が計算される。 その結果がレジスタ T 3に格納される。 ステップ 3505 において T3 XXd + 1が計算される。 ここでレジスタ T3には(Xd- xZd) 2が格納 されており、 したがって Xd+丄 (Xd- xZd) が計算される。 その結果がレジスタ T3に格納される。 ステップ 3506において 2AXZdが計算され、 レジスタ Tェ に格納される。 ステップ 3 507において T 2 + 1^が計算される。 ここでレジ スタ T 2には xZ d +X dがレジスタ T iには 2AZ dがそれぞれ格納されており、 した がって xZd+Xd+2AZdが計算される。 その結果がレジスタ T 2に格納される。 ス テツプ 3508において xXXdが計算され、 レジスタ T4に格納される。 ステツ プ 3509において T4+Zdが計算される。 ここでレジスタ T4には xXdが格納 されており、 したがって xXd+Zdが計算される。 その結果がレジスタ T4に格納 される。 ステップ 3510において Τ2ΧΤ4が計算される。 ここでレジスタ Τ 2には xZ d+Xd +2AZ dがレジスタ T 4には χΧ d+Zdがそれぞれ格納されており、 したがって(xZ d+Xd +2AZ d) (xXd+Zd)が計算される。 その結果がレジスタ T 2に 格納される。 ステップ 351 1において T XZdが計算される。 ここでレジス タ!^には 2AZdが格納されており、 したがって 2AZd 2が計算される。 その結果 がレジスタ に格納される。 ステップ 3512において T 2- が計算される。 ここでレジスタ T 2には(xZd+Xd+2AZd) (xXd+Zd)がここでレジスタ T 1には 2AZd 2がそれぞれ格納されており、 したがって(xZd+Xd+2AZd) (xXd+Zd) - 2AZd2が計算される。 その結果がレジスタ T2に格納される。 ステップ 351 3 において T2XZd + 1が計算される。 ここでレジスタ T2には(xZd+Xd +
2AZd) (xXd+Zd)_2AZd 2が格納されており、 したがって Zd + 1 ((xZd+Xd + 2AZ d) (xXd+Zd) -2AZ d 2 )が計算される。 その結果がレジスタ T 2に格納される。 ステップ 3514において T 2- T 3が計算される。 ここでレジスタ T 2には Zd + 1 ((xZd+Xd+2AZd) (xXd+Zd)— 2AZd 2)カ レジスタ T3に【ま Xd + 1 (Xd— xZd) 2力 Sそれぞれ格納されており、 したカつて Zd + 1 ((xZd+Xd+2AZd) (xXd + Zd)-2AZd 2)-Xd + 1 (Xd-xZd) 2が計算される。 その結果がレジスタ Ydに格納さ れる。 ステップ 351 5において 2BXyが計算され、 レジスタ T に格納される。 ステップ 351 6においてで 1 XZdが計算される。 ここでレジスタ T には 2By が格納されており、 したがって 2ByZdが計算される。 その結果がレジスタ に 格納される。 ステップ 3517において XZd + 1が計算される。 ここでレジ スタ T には 2ByZ dが格納されており、 したがって 2ByZ d Z d + 力 S計算される。 その結果がレジスタ T に格納される。 ステップ 3518において XXdが計 算される。 ここでレジスタ には 2ByZdZd + 1が格納されており、 したがって 2ByZdZd + 1Xdカ計算される。 その結果がレジスタ Xdに格納される。 ステップ 351 9において XZdが計算される。 ここでレジスタ には 2ByZdZd+ 1 が格納されており、 したがって 2ByZdZd + 1Zdが計算される。 その結果がレジス タ Zdに格納される。 Xdにはステップ 35 18におレ、て 2ByZdZd+ 1Xd力 S格納さ れ、 その後更新が行なわれないので、 その値が保持されている。 Ydにはステツ プ 3514 こおレヽて Zd + 1 ((xZd+Xd+2AZd) (xX d +Z d ) -2AZ d 2)-Xd + 1 (Xd- xZd)2が格納され、 その後更新が行なわれないので、 その値が保持されている。 上記手順により与えられた x、 y、 Xd、 Zd、 Xd + 1、 Zd + 1からスカラー倍点 の射影座標 (Xd,Yd,Zd)における値が全て復元される理由は以下の通りである。 点(d+l)Pは点 dPに点 Pを加算した点である。 モンゴメリ型楕円曲線のァフィン座 標における加算公式に代入すると、 次の数 6を得る。 点 P及び点 dPはモンゴメリ 型楕円曲線上の点であるので、 Byd 2=xd "+Axd 2+xd及び By2=x"+Ax2+xをみた す。 数 6に代入し、 By d 2及び By 2を消去し、 式を整理すると、 数 64を得る。 ここで X d=Xd/Zd、 X d + 1=Xd + 1/Zd + iであり、 この値を代入することに より射影座標の値へと変換すると、 数 6 5を得る。 x d=Xd/Zdであるが、 逆元 演算の回数を減らす目的で y dの分母と通分することにより、 数 66となる。 そ の結果として、
Yd =Zd + 1[(Xd+XZd+2AZd)(Xdx+Zd) - 2ΑΖ^] - (Xd - xZd)2Xd + 1 …数 67
とし、 Xd及び Zdをそれぞれ
2ByZdZd + 1Xd …数 68
2ByZdZd + 1Xd …数 69
により更新すればよい。 ここで、 Xd, Yd, Zdは図 35の処理により与えられて レ、る。 したがって、 射影座標 (Xd,Yd,Zd)の値が全て復元されていることになる。 上記手順はステップ 3501、 ステップ 3505、 ステップ 3506、 ステツ プ 3508、 ステップ 3510、 ステップ 351 1、 ステップ 351 3、 ステツ プ 3515、 ステップ 3516、 ステップ 351 7、 ステップ 351 8及びステ ップ 351 9において有限体上の乗算の計算量を必要とする。 また、 ステップ 3 504において有限体上の 2乗算の計算量を必要とする。 有限体上の加算及ぴ減 算の計算量は、 有限体上の乗算の計算量、 2乗算の計算量と比べて比較的小さい ので無視してもよい。 有限体上の乗算の計算量を M、 有限体上の 2乗算の計算量 を Sとすると、 上記手順は 1 2 M+Sの計算量を必要とする。 これは高速スカラ 一倍計算の計算量と比べてはるかに小さい。 例えばスカラー値 dが 1 60ビット であれば、 高速スカラー倍計算の計算量はおおよそ 1 500M弱と見積もられる。 S = 0. 8 Mと仮定すると座標復元の計算量は 12. 8Mであり、 高速スカラー 倍計算の計算量と比べてはるかに小さい。 したがつて効率的に座標を復元できて いることが示された。
尚、 上記手順をとらなくても、 上記計算式により与えられた Xd、 Yd、 zdの値 が計算できれば Xd、 Yd、 Zdの値が復元できる。 また、 xd、 ydが上記計算式に より与えられる値を取るように Xd、 Yd、 Zdの値を選択し、 その値が計算できれ ば Xd、 Yd、 zdが復元できる。 それらの場合においては一般的に復元に必要とな る計算量が増大する。 また、 楕円曲線のパラメタである A乃至は Bの値を小さくと ることにより、 ステップ 3506乃至はステップ 3515における乗算の計算量 を削減することができる。
次に、 スカラー値 d及びモンゴメリ型楕円曲線上の点 Pから、 Xd, Zd, Xd+ 1, zd + を出力するアルゴリズムについて説明する。
第 15実施例の高速スカラー倍計算部 202の高速スカラー倍計算方法として、 第 1実施例の高速スカラー倍計算方法を用いる。 これにより、 スカラー値 d及び モンゴメリ型楕円曲線上の点 Pから、 Xd, Zd, Xd + 1, Zd + 1を出力するァルゴ リズムとして、 高速であるアルゴリズムが達成される。 尚、 高速スカラー倍計算 部 202において上記アルゴリズムを用いなくても、 スカラー値 d及ぴモンゴメ リ型楕円曲線上の点 Pから、 Xd, Zd, Xd + 1, Zd + 1を出力するアルゴリズムで あり且つ高速であれば、 他のアルゴリズムを用いていもよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 12M+Sであり、 これは高速スカラー倍計算部 202の高速スカラー倍計算 に必要な計算量の (9. 2 k— 4. 6) Mとに比べてはるかに小さい。 したがつ て、 スカラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速スカラー 倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 S = 0. 8M と仮定すると、 この計算量はおおよそ (9. 2 k + 8) Mと見積もることができ る。 例えばスカラー値 dが 160ビット (k = 160) であれば、 このスカラー 倍計算に必要な計算量は 148 OMとなる。 楕円曲線としてワイエルシュトラス 型楕円曲線を使用し、 ウィンドウ法を用いてヤコビアン座標を中心とした混合座 標系を用いたスカラー倍計算方法を用いて、 スカラー倍点をヤコビアン座標とし て出力する場合に必要となる計算量はおおよそ 160 OMであり、 これと比べて 必要となる計算量は削減されている。
第 16の実施例は、 スカラー倍計算部 103がスカラー値 d及びモンゴメリ型 楕円曲線上の点 Pから、 モンゴメリ型楕円曲線におけるァフィン座標の点として 完全な座標が与えられたスカラー倍点 (xd,yd)を計算し出力する。 スカラー値 d 及びモンゴメリ型楕円曲線上の点 Pをスカラー倍計算部 103に入力すると高速 スカラ一倍計算部 202がそれを受け取る。 高速ス力ラ一倍計算部 202は受け 取ったスカラー値 dと与えられたモンゴメリ型楕円曲線上の点 Pからモンゴメリ型 楕円曲線においてァフィン座標で表されたスカラー倍点 dP = (X d, y d )の座標の うち xd、 ァフィン座標で表されたモンゴメリ型楕円曲線上の点(d+l)P==
( ( + 17(1 + 1)の座標のぅち (1+ 1を計算し、 ァフィン座標で表された入力さ れたモンゴメリ型楕円曲線上の点 P= (X, y)と共にその情報を座標復元部 203に 与える。 座標復元部 203は与えられた座標の値 xd、 xd + 1、 x及び yよりモン ゴメリ型楕円曲線においてァフィン座標で表されたスカラー倍点 dP=(xd,yd) の座標 ydの復元を行なう。 スカラー倍計算部 103はァフィン座標において完 全に座標が与えられたスカラー倍点 (xd,yd)を計算結果として出力する。
次に図 36により、 座標 x、 y、 xd、 xd + 1が与えられた場合に、 xd、 ydを出 力する座標復元部の処理について説明する。
座標復元部 203では、 モンゴメリ型楕円曲線においてァフィン座標で表され たスカラ一倍点 dP= (X d, y d )の座標のうち X d、 ァフィン座標で表されたモンゴ メリ型楕円曲線上の点(£1+ 1)?=( 01 +1,7(1+ 1)の座標のぅち (1+ 1、 スカラー 倍計算部 103に入力されたモンゴメリ型楕円曲線上の点 Pをァフィン座標で表 した (x,y)を入力し、 以下の手順でァフィン座標において完全な座標が与えられ たスカラー倍点 (xd,yd)を出力する。
ステップ 3601において xd Xxが計算され、 レジスタ に格納される。 ス テツプ 3602において 1^+1が計算される。 ここでレジスタ には xdxが格 納されており、 したがって xdx+lが計算される。 その結果がレジスタ T に格納 される。 ステップ 3603において xd+xが計算され、 レジスタ T2に格納され る。 ステップ 3604において Τ 2+2Αが計算される。 ここでレジスタ Τ 2には xd+xが格納されており、 したがって xd+x+2Aが計算される。 その結果がレジス タ T2に格納される。 ステップ 3605において T i XT丄が計算される。 ここ でレジスタ T jには xdx+lがレジスタ T 2には xd+x+2Aがそれぞれ格納されてお り、 したがって(xdx+l) (xd+x+2A)が計算される。 その結果がレジスタ 1^に格 納される。 ステップ 3606において Ti- 2Αが計算される。 ここでレジスタ 丁1には( (1 +1)( (1+ +2 )が格納されてぉり、 したがって(xdx+l) (xd+x+2A) - 2Aが計算される。 その結果がレジスタ に格納される。 ステップ 3607にお いて xd- Xが計算され、 レジスタ T に格納される。 ステップ 3608において T 2の 2乗が計算される。 ここでレジスタ T 2には xd-xが格納されており、 した がって(xd2が計算される。 その結果がレジスタ T 2に格納される。 ステツ プ 3609において T2Xxd+ 1が計算される。 ここでレジスタ T 2には(xd— X) 2が格納されており、 したがって(xd— X) 2xd + 1が計算される。 その結果が レジスタ T 2に格納される。 ステップ 3610において Ti- T2が計算される。 ここでレジスタ Τ丄には(X d χ+1) (X d +x+2A) - 2Aがレジスタ T 2には(x d— x) 2 xd + 1がそれぞれ格納されており、 したがって(xdx+l) (xd+x+2A)-2A-( d- x) 2xd+ 1カ計算される。 その結果がレジスタ に格納される。 ステップ 36 1 1において 2BXyが計算され、 レジスタ T 2に格納される。 ステップ 361 2 において T 2の逆元が計算される。 ここでレジスタ T 2には 2Byが格納されてお り、 したがって l/2Byが計算される。 その結果がレジスタ T 2に格納される。 ス テツプ 361 3において XT 2が計算される。 ここでレジスタ には ( d +1) (x d +x+2A) -2A- (x d _x) 2 x d + jがレジスタ T 2には l/2Byがそれぞれ格 納されており、 したがって(xdx+l) (xd+x+2A)-2A-(xd-x) 2xd + 1/2Byが計算 される。 その結果がレジスタ ydに格納される。 したがってレジスタ ydには (xdx+l) (xd+x+2A)-2A-(xd-x) 2xd + ^SByが格納されている。 レジスタ xdは 全く更新されないので入力された値が保持されてレ、る。
上記手順によりスカラー倍点の y座標 ydが復元される理由は以下の通りである。 尚、 点(d + 1)Pは点 dPに点 Pを加算した点である。 モンゴメリ型楕円曲線のァフ ィン座標における加算公式に代入すると、 数 6を得る。 点 P及ぴ点 dPはモンゴメ リ型楕円曲線上の点であるので、 By d 2=x d 3 +Ax d 2+xd及ぴ By 2=x ° +A +xをみ たす。 数 6に代入し、 By d 2及び By 2を消去し、 式を整理すると、 数 64を得る。 ここで、 xd, ydは図 36の処理により与えられる。 したがって、 ァフィン座標
(Xd, Yd)の値は全て復元されたことになる。
上記手順はステップ 3601、 ステップ 3605、 ステップ 3609、 ステツ プ 3611及ぴステップ 3613において有限体上の乗算の計算量を必要とする。 また、 ステップ 3608において有限体上の 2乗算の計算量を必要とする。 さら にステップ 3612において有限体上の逆元演算の計算量を必要とする。 有限体 上の減算の計算量は、 有限体上の乗算の計算量、 2乗算の計算量、 逆元演算の計 算量と比べて比較的小さいので無視してもよレ、。 有限体上の乗算の計算量を M、 有限体上の 2乗算の計算量を S、 有限体上の逆元演算の計算量を Iとすると、 上 記手順は 5M+S+ Iの計算量を必要とする。 これは高速スカラー倍計算の計算 量と比べてはるかに小さい。 例えばスカラー値 dが 160ビットであれば、 高速 スカラー倍計算の計算量はおおよそ 1500M弱と見積もられる。 S = 0. 8M 及び I =40Mと仮定すると座標復元の計算量は 45. 8Mであり、 高速スカラ 一倍計算の計算量と比べてはるかに小さい。 したがって効率的に座標を復元でき ていることが示された。
尚、 上記手順をとらなくても、 上記等式の右辺の値が計算できれば ydの値が 復元できる。 その場合は一般的に復元に必要となる計算量が増大する。 また、 楕 円曲線のパラメタである Bの値を小さくとることにより、 ステップ 2605にお ける乗算の計算量を削減することができる。 次に図 43により、 スカラー値 d及びモンゴメリ型楕円曲線上の点 Pから、 xd、 xd + 1を出力する高速スカラー倍計算部の処理について説明する。
高速スカラー倍計算部 202では、 スカラー倍計算部 103に入力されたモン ゴメリ型楕円曲線上の点 Pを入力し、 以下の手順によりモンゴメリ型楕円曲線に おいてァフィン座標で表されたスカラー倍点 dP=(xd,yd)のうち xd、 ァフィン 座標で表されたモンゴメリ型楕円曲線上の点 (d+1) P=(xd + 1,yd+ 1)のうち xd + 1を出力する。 ステップ 4301として、 変数 Iに初期値 1を代入する。 ス テツプ 4302として、 点 Pの 2倍点 2 Pを計算する。 ここで点 Pは射影座標にお いて(X, y,l)として表し、 モンゴメリ型楕円曲線の射影座標における 2倍算の 公式を用いて 2倍点 2Pを計算する。 ステップ 4303として、 スカラー倍計算部 1 03に入力された楕円曲線上の点 Pとステップ 4302で求めた点 2Pを、 点の 組 (P,2P)として格納する。 ここで点 P及び点 2Pは射影座標で表されている。 ステ ップ 4304として、 変数 I とスカラー値 dのビット長とが一致するかどうかを 判定し、 一致すればステップ 4315へ行く。 一致しなければステップ 4305 へ行く。 ステップ 4305として、 変数 Iを 1増加させる。 ステップ 4306と して、 スカラー値の I番目のビットの値が 0であるか 1であるかを判定する。 そ のビットの値が 0であればステップ 4307へ行く。 そのビットの値が 1であれ ばステップ 4310へ行く。 ステップ 4307として、 射影座標により表された 点の組 (mP, (m+l)P)から点 mPと点(m+l)Pの加算 mP+(m+l)Pを行ない、 点(2m+l)Pを 計算する。 その後ステップ 4308へ行く。 ここで、 加算 mP+(m+l)Pは、 モンゴ メリ型楕円曲線の射影座標における加算公式を用いて計算される。 ステップ 43 08として、 射影座標により表された点の組 (mP, (m+l)P)から点 raPの 2倍算 2 (mP)を行ない、 点 2mPを計算する。 その後ステップ 4309へ行く。 ここで、 2 倍算 2(mP)は、 モンゴメリ型楕円曲線の射影座標における 2倍算の公式を用いて 計算される。 ステップ 4309として、 ステップ 4308で求めた点 2mPとステ ップ 4307で求めた点(2m+l)Pを点の組 (2mP, (2m+l)P)として、 点の組 (mP, (m+l)P)の代わりに格納する。 その後ステップ 4304へ戻る。 ここで、 点 2mP、 点(2m+l)P、 点 mP及び点 (m+l)Pは全て射影座標において表されている。 ステツ プ 431 0として、 射影座標により表された点の組 (mP, (m+ 1 ) P)から点 mPと点 (111+1 )?の加算1^+(111+1)?を行なぃ、 点(2m+l )Pを計算する。 その後ステップ 4 3 1 1へ行く。 ここで、 加算 mP+ (m+ 1 ) Pは、 モンゴメリ型楕円曲線の射影座標に おける加算公式を用いて計算される。 ステップ 4 3 1 1として、 射影座標により 表された点の組 (mP, (01+1 )?)から点(111+ 1 )?の2倍算2((111+1 )?)を行なぃ、 点 (2m+2)Pを計算する。 その後ステップ 4 3 1 2へ行く。 ここで、 2倍算 2((m+ 1)P)は、 モンゴメリ型楕円曲線の射影座標における 2倍算の公式を用いて計算 される。 ステップ 43 1 2として、 ステップ 4 3 1 0で求めた点(2m+l)Pとステ ップ 4 3 1 1で求めた点(2m+2) Pを点の組((2m+l) P (2m+2) P)として、 点の組 (mP, (m+l)P)の代わりに格納する。 その後ステップ 4 304へ戻る。 ここで、 点 (2m+l)P、 点(2m+2)P、 点 raP及ぴ点 (ra+l)Pは全て射影座標において表されている。 ステップ 4 3 1 5として、 射影座標で表された点 mP= (Xm, Ym Zm)より Xm及び Zmをそれぞれ X d及び Z dとし、 射影座標で表された点 (m+1) P= (Xm
Ym+ i,Zm+ i)より Xm+i及び Zm+ iをそれぞれ Xd+ i及び Zd + iとする。 ここ で、 Ym及ぴ Ym+iは、 モンゴメリ型楕円曲線の射影座標における加算公式及ぴ 2倍算の公式では Y座標を求める事ができないので、 求まっていない。 Xd Zd,
Λ(1 + 1 Zd+1より、 xd=Xd d + l/ZdZd + 1 x d + 1 =Z d X d + 1 d Z d + 1と レ て xd Xd + lを求める。 その後ステップ 4 3 1 3へ行く。 ステップ 4 3 1 3と して、 xd xd + 1を出力する。 上記手順により、 mとスカラー値 dはビット長が 等しくさらにそのビットのパターンも同じとなる為、 等しくなる。
モンゴメリ型楕円曲線の射影座標における加算公式の計算量は、 Z ;L =1ととる ことにより 3 M+ 2 Sとなる。 ここで Mは有限体上の乗算の計算量、 Sは有限体 上の 2乗算の計算量である。 モンゴメリ型楕円曲線の射影座標における 2倍算の 公式の計算量は、 3M+ 2 Sである。 スカラー値の I番目のビットの値が 0であ れば、 ステップ 4 3 0 7において加算の計算量、 ステップ 4 3 0 8において 2倍 算の計算量が必要となる。 すなわち 6 M+ 4 Sの計算量が必要となる。 スカラー 値の I番目のビットの値が 1であれば、 ステップ 4 3 1 0において加算の計算量、 ステップ 4 3 1 1において 2倍算の計算量が必要となる。 すなわち 6M+ 4 Sの 計算量が必要である。 いずれの場合においても 6 M+ 4 Sの計算量が必要である。 ステップ 4 3 04、 ステップ 43 0 5、 ステップ 4 3 0 6、 ステップ 4 3 0 7 ステップ 4308、 ステップ 4309乃至はステップ 4304、 ステップ 430 5、 ステップ 4306、 ステップ 4310、 ステップ 43 1 1、 ステップ 431 2の繰り返しの回数は、 (スカラー値 dのビット長) 一 1回となるので、 ステツ プ 4302での 2倍算の計算量及ぴァフィン座標への変換の計算量を考慮に入れ ると、 全体の計算量は (6M+4 S) k + 2M— 2 S+ I となる。 ここで kはス カラー値 dのビット長である。 一般的には、 計算量 Sは、 S = 0. 8M程度、 計 算量 Iは I =40M程度と見積もられるので、 全体の計算量はおおよそ (9. 2 k + 40. 4) Mとなる。 例えばスカラー値 dが 1 60ビッ ト (k= 160) で あれば、 上記手順のアルゴリズムの計算量はおおよそ 15 1 2Mとなる。 スカラ 一値 dのビットあたりの計算量としてはおよそ 9. 2Mとなる。 A.Miyaji, T.0no, H. Cohen, Efficient elliptic curve exponentiation using mixed
coordinates, Advances in Cryptology Proceedings of ASIACRYPT' 98, LNCS 1514 (1998) pp.51-65 には、 ワイエルシュ トラス型楕円曲線において、 ウィン ドウ法を用いてヤコビアン座標を中心とした混合座標系を用いたスカラー倍計算 方法は高速なスカラー倍計算方法として記載されている。 この場合においては、 スカラー値のビットあたりの計算量はおおよそ 10Mと見積もられ、 これ以外に ァフィン座標への変換の計算量が必要となる。 例えばス力ラ一値 dが 1 60ビッ ト (k=l 60) であれば、 このスカラー倍計算方法の計算量はおおよそ 164 0Mとなる。 したがって、 上記手順のアルゴリズムの方が計算量が少なく高速と いえる。
尚、 高速スカラー倍計算部 202において上記手順のアルゴリズムを用いなく ても、 スカラー値 d及ぴモンゴメリ型楕円曲線上の点 Pから、 xd、 xd+ 1を出力 するアルゴリズムであり且つ高速であれば、 他のアルゴリズムを用いていもよい。 スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 5M+S+ Iであり、 これは高速スカラー倍計算部 202の高速スカラー倍計 算に必要な計算量の (9. 2 k + 40. 4) Mとに比べてはるかに小さレ、。 した がって、 スカラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速スカ ラー倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 S = 0. 8M及び I =40Mと仮定すると、 この計算量はおおよそ (9. 2 k + 86. 2) Mと見積もることができる。 例えばスカラー値 dが 1 60ビット (k= 1 6 0) であれば、 このスカラー倍計算に必要な計算量はおおよそ 1558Mとなる。 楕円曲線としてワイエルシュトラス型楕円曲線を使用し、 ウィンドウ法を用いて ヤコビアン座標を中心とした混合座標系を用いたスカラー倍計算方法を用いて、 スカラー倍点をァフィン座標として出力する場合に必要となる計算量はおおよそ 1 640Mであり、 これと比べて必要となる計算量は削減されている。
第 17の実施例は、 楕円曲線としてワイエルシュトラス型楕円曲線を用いたも のである。 すなわち、 スカラー倍計算部 103の入出力に用いる楕円曲線はワイ エルシュトラス型楕円曲線である。 ただし、 スカラー倍計算部 103の内部の計 算で使用する楕円曲線として、 与えられだワイエルシュトラス型楕円曲線から変 換可能であるようなモンゴメリ型楕円曲線を用いてもよい。 スカラー倍計算部 1 03がスカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 ワイエルシ ュトラス型楕円曲線におけるァフィン座標の点として完全な座標が与えられたス 力ラ一倍点 (X d , y d)を計算し出力するものである。 スカラ一値 d及びワイエルシ ュトラス型楕円曲線上の点 Pをスカラー倍計算部 1 03に入力すると高速スカラ 一倍計算部 202がそれを受け取る。 高速スカラー倍計算部 202は受け取った スカラー値 dと与えられたワイエルシュトラス型楕円曲線上の点 Pからワイエルシ ュトラス型楕円曲線において射影座標で表されたスカラ一倍点 dP= (Xd,Yd,Zd) の座標のうち Xd及び Zd、 射影座標で表されたワイエルシュトラス型楕円曲線上 の 、 (d+l)P= (Xd + 1,Yd + n,Zd+ 1)の J坐標のつち Xd + 1及ぴ Zd + iを計算し、 ァフィン座標で表された入力されたワイエルシュ トラス型楕円曲線上の点 P=(x, y)と共にその情報を座標復元部 203に与える。 座標復元部 203は与え られた座標の値値 Xd、 Zd、 Xd + 1、 Zd + 1、 x及び yよりワイエルシュトラス 型楕円曲線においてァフィン座標で表されたスカラ一倍点 dP= (xd,yd)の座標 X d及び y dの復元を行なう。 スカラー倍計算部 103はァフィン座標において 完全に座標が与えられたスカラー倍点 (xd,yd)を計算結果として出力する。
次に図 37により、 座標 x、 y、 Xd、 Zd、 Xd + i、 Zd + 1が与えられた場合に xd、 ydを出力する座標復元部の処理について説明する。
座標復元部 203では、 ワイエルシュトラス型楕円曲線において射影座標で表 されたスカラ一倍点 dP二(X d , Y d , Z d )の座標うち X d及び z d、 射影座標で表され たワイエルシュトラス型楕円曲線上の点(d+1) P=(Xd + 1,Yd + 1,Zd+ 1)の座標 のうち Xd+ 1及び Zd + 1、 スカラー倍計算部 1 03に入力されたワイエルシュト ラス型楕円曲線上の点 Pをァフィン座標で表した (x, y)を入力し、 以下の手順でァ フィン座標おいて完全な座標が与えられたスカラー倍点(xd,yd)を出力する。 ここで入力されたワイエルシュトラス型楕円曲線上の点 Pのァフィン座標を(x, y) で、 射影座標を(X 1, Y 1 , Z 1 )でそれぞれ表す。 入力されたスカラー値を dとして ヮィエルシュトラス型楕円曲線におけるス力ラ一倍点 dPのァフィン座標を(X d, yd)で、 射影座標を (Xd,Yd,Zd)でそれぞれ表す。 ワイエルシュトラス型楕円曲 線上の点(d+l) Pのァフィン座標を(X d + i, y d +丄)で、 射影座標を(X d +ェ, Yd + 1,Zd +!)でそれぞれ表す。
ステップ 3701において xXZdが計算され、 レジスタ に格納される。 ス テツプ 3702において Xd+T が計算される。 ここでレジスタ T には xZdが 格納されており、 したがって xZd+Xdが計算される。 その結果がレジスタ T 2に 格納される。 ステップ 3703において が計算され、 ここでレジスタ には xZdが格納されており、 したがって xZd-Xdが計算される。 その結果が レジスタ T3に格納される。 ステップ 3704においてレジスタ Τ 3の 2乗が計 算される。 ここでレジスタ Τ3には xZd - Xdが格納されており、 したがって(Xd - χΖά) ώが計算される。 その結果がレジスタ Τ 3に格納される。 ステップ 3705 において T3 XXd+ 1が計算される。 ここでレジスタ T3には (Xd- xZd) 2が格納 されており、 したがって Xd + 1 (Xd - xZd) が計算される。 その結果がレジスタ T3に格納される。 ステップ 3706において xXXdが計算され、 レジスタ に格納される。 ステップ 3707において aXZdが計算され、 レジスタ T4に格 納される。 ステップ 3708において Τ が計算される。 ここでレジスタ には xXdがレジスタ Τ4には aZdがそれぞれ格納されており、 したがって xXd
+aZdが計算される。 その結果がレジスタ に格納される。 ステップ 3709 において T! XT 2が計算される。 ここでレジスタ T丄には xXd+aZdがレジスタ T 2には xZ d +X dsそれぞれ格納されており、 したがって(xX d +aZ d ) (xZ d +X d ) が計算される。 その結果がレジスタ Tiに格納される。 ステップ 3710におい てレジスタ Zdの 2乗が計算され、 レジスタ T2に格納される。 ステップ 3 7 1 1において Τ 2 X 2bが計算される。 ここでレジスタ T 2には Z d 2が格納されてお り、 したがって 2bZd が計算される。 その結果がレジスタ T2に格納される。 ス テツプ 371 2において T i+T 2が計算される。 ここでレジスタ T丄には(xX d +aZd)(xZd+Xri)がレジスタ Tりには 2bZd 2がそれぞれ格納されており、 したが つて(xXd+aZd) (xZd+Xd)+2bZri が計算される。 その結果がレジスタ T に格 納される。 ステップ 371 3において XZd + 1が計算される。 ここでレジス タ丁 には(xXd+aZd) (xZd+Xd)+2bZd 2が格納されており、 したがって Zd + ((xXd+aZd)(xZd+Xd)+2bZd 2)が計算される。 その結果がレジスタ T に格納 される。 ステップ 3714において T3が計算される。 ここでレジスタ T J には Zd + 1 ((xXd+aZd) (xZd+Xd)+2bZd 2)カ レジスタ T3 こ ίま Xd + 1 (Xd— xZd) 2がそれぞれ格納されており、 した力 Sつて Zd + 1 ((xXd+aZd) (xZd+' Xd)+2bZd 2)-Xd + 1 (Xd-xZd) 2が計算される。 その結果がレジスタ に格納 される。 ステップ 37 1 5において 2yXZdが計算され、 レジスタ T2に格納さ れる。 ステップ 3716において T2 XZd + 1が計算される。 ここでレジスタ T2には 2yZdが格納されており、 したがって 2yZdZd + 1が計算される。 その結 果がレジスタ T 2に格納される。 ステップ 371 7において T2XZdが計算され る。 ここでレジスタ T2には 2yZdZd+ 1が格納されており、 したがって 2yZd Zd + 1Zdが計算される。 その結果がレジスタ T3に格納される。 ステップ 371 8においてレジスタ Τ3の逆元が計算される。 ここでレジスタ Τ3には 2yZd
Zd + 1Zdカ格納されており、 したがって l/2yZdZd + 1Zdが計算される。 その結 果がレジスタ T3に格納される。 ステップ 371 9において Τ ΧΤ3が計算さ れる。 ここでレジスタ には Zd + 1 ((xXd+aZd) (xZd+Xd)+2bZd 2)-Xd + 1 (X d - xZ d ) がレジスタ T 3には l/2yZ dZd + 1Zdがそれぞれ格納されており、 し たがって(Zd + i ((xXd+aZd) (xZd+Xd)+2bZd 2)-Xd +! (Xd-xZd) 2) /2yZd
Zd + 1Zdが計算される。 その結果がレジスタ ydに格納される。 ステップ 372 0において T2 XXdが計算される。 ここでレジスタ T2には 2yZdZd + 1が格納 されており、 したがって 2yZdZd+ 1Xdが計算される。 その結果がレジスタ T2 に格納される。 ステップ 3721において T9XTqが計算される。 ここでレジ スタ T2には 2yZdZd + ;LXdがレジスタ T3には l/2yZdZd + :LZdがそれぞれ格納 されており、 した力 つて 2yZdZd + 1Xd/2yZdZd + 1Zd力 S計算される。 その結果 がレジスタ xdに格納される。 したがってレジスタ xdには 2yZdZd + 1Xd/2yZd Zd + 1Zd力 S格納されてレヽる。 レジスタ ydにはステップ 3 7 1 9におレヽて(Zd+ 1 ( (xX d +aZ d ) (xZ d +X d ) +2bZ d 2 ) -X d + x (X d -xZ d ) 2)/2yZdZd +丄 Zd力 S格納され、 その後更新が行なわれないので、 その値が保持されている。
上記手順により、 与えられた x、 y、 Xd、 Zd、 Xd + 1、 Zd + 1からワイエル シュトラス型楕円曲線におけるスカラ一倍点のァフィン座標(X d , y d )における 値が全て復元される理由は以下の通りである。 点(d+l)Pは点 dPに点 Pを加算した 点である。 ワイエルシュトラス型楕円曲線のァフィン座標における加算公式に代 入すると、 数 27を得る。 点 P及ぴ点 dPはワイエルシュトラス型楕円曲線上の点 であるので、 yd =xd 3+axd+b及ぴ y2=x3+ax+bをみたす。 数 2 7に代入し、 yd 2及び y2を消去し、 式を整理すると、
yd={(xdx+a) (xd+x)+2b-(xd-x) 2xd + 1}/(2y) …数 70
を得る。 ここで x d=Xd/Zd、 X d+ :L=Xd + :L/Zd + :Lであり、 この値を代入す ることにより射影座標の値へと変換すると、 次の式を得る。
yd={Zd + 1((Xdx+aZd) (Xd+xZd)-2bz|)-(Xd-xZd)2Xd+1}/(2yZdZd + 1Zd)
…数 7 1
X d==Xd/Zdであるが、 逆元演算の回数を減らす目的で y dの分母と通分するこ とにより、
xd=(2yZdZd + 1Xd)/(2yZdZd + 1Zd) …数 72
となる。 ここで、 x d, ydは図 3 7で示した処理により与えられる。 したがつ て、 ァフィン座標(xd,yd)の値が全て復元されていることになる。
上記手順はステップ 3 701、 ステップ 3 705、 ステップ 3 706、 ステツ プ 3 707、 ステップ 3 709、 ステップ 3 7 1 0、 ステップ 3 7 1 1、 ステツ プ 371 3、 ステップ 3 7 1 5、 ステップ 3 71 6、 ステップ 3 7 1 7、 ステツ プ 3 7 1 9、 ステップ 3 7 20及びステップ 3 7 2 1において有限体上の乗算の 計算量を必要とする。 また、 ステップ 3 704において有限体上の 2乗算の計算 量を必要とする。 また、 ステップ 3 7 1 8において有限体上の逆元演算の計算量 を必要とする。 有限体上の加算及び減算の計算量は、 有限体上の乗算の計算量、 2乗算の計算量及び逆元演算の計算量と比べて比較的小さいので無視してもよい。 有限体上の乗算の計算量を M、 有限体上の 2乗算の計算量を S及び有限体上の逆 元演算の計算量を Iとすると、 上記手順は 14M+S+ Iの計算量を必要とする。 これは高速スカラー倍計算の計算量と比べてはるかに小さレ、。 例えばスカラー値 dが 160ビットであれば、 高速スカラー倍計算の計算量はおおよそ 1 50 OM 弱と見積もられる。 S = 0. 8M、 I =40Mと仮定すると座標復元の計算量は 54. 8 Mであり、 高速スカラー信計算の計算量と比べてはるかに小さい。 した がつて効率的に座標を復元できていることが示された。
尚、 上記手順をとらなくても、 上記計算式により与えられた X d, ydの値が 計算できれば x d, ydの値が復元できる。 その場合においては一般的に復元に 必要となる計算量が増大する。
次に図 44により、 スカラー値 d及ぴワイエルシュトラス型楕円曲線上の点 Pか ら、 Xd,Zd,Xd + 1,Zd + 1を出力する高速スカラー倍計算部の処理について説明 する。
高速ス力ラ一倍計算部 202では、 スカラ一倍計算部 103に入力されたワイ エルシュトラス型楕円曲線上の点 Pを入力し、 以下の手順によりワイエルシュト ラス型楕円曲線において射影座標で表されたスカラ一倍点 dP= (X d, Y d, Z d )のう ち Xd及び Zd、 射影座標で表されたワイエルシュトラス型楕円曲線上の点(d+l)P =(Xd+ 1,Yd + 1,Zd + 1)のうち Xd+i及び Zd + iを出力する。 ステップ 441 6として、 与えられたワイエルシュトラス型楕円曲線上の点 Pをモンゴメリ型楕 円曲線上で射影座標により表された点に変換する。 この点をあらためて点 Pとす る。 ステップ 4401として、 変数 Iに初期値 1を代入する。 ステップ 4402 として、 点 Pの 2倍点 2Pを計算する。 ここで点 Pは射影座標において(X, y,l)と して表し、 モンゴメリ型楕円曲線の射影座標における 2倍算の公式を用いて 2倍 点 2Pを計算する。 ステップ 4403として、 スカラー倍計算部 103に入力され た楕円曲線上の点 Pとステップ 4402で求めた点 2Pを、 点の組 (P,2P)として格 納する。 ここで点 P及び点 2Pは射影座標で表されている。 ステップ 4404とし て、 変数 Iとスカラー値 dのビット長とがー致するかどうかを判定し、 一致すれ ばステップ 441 5へ行く。 一致しなければステップ 4405へ行く。 ステップ 4405として、 変数 Iを 1増加させる。 ステップ 4406として、 スカラー値 の I番目のビットの値が 0であるか 1であるかを判定する。 そのビットの値が 0 であればステップ 4407へ行く。 そのビットの値が 1であればステップ 441 0へ行く。 ステップ 4 4 0 7 と して、 射影座標により表された点の組 (raP, (m+1) P)から点 mPと点(m+1) Pの加算 mP+ (m+1) Pを行なレ、、 点(2m+l) Pを計算す る。 その後ステップ 4408へ行く。 ここで、 加算 mP+(ni+l)Pは、 モンゴメリ型 楕円曲線の射影座標における加算公式を用いて計算される。 ステップ 4408と して、 射影座標により表された点の組 (mP, (m+1) P)から点 mPの 2倍算 2 (mP)を行 ない、 点 2mPを計算する。 その後ステップ 4409へ行く。 ここで、 2倍算 2(mP) は、 モンゴメリ型楕円曲線の射影座標における 2倍算の公式を用いて計算される。 ステップ 4409として、 ステップ 4408で求めた点 2mPとステップ 4407 で求めた点(2m+ 1 ) Pを点の組 (2mP, (2m+ 1 ) P)として、 点の組 (mP, (ra+ 1 ) P)の代 わりに格納する。 その後ステップ 4404へ戻る。 ここで、 点 2mP、 点(2m+ 1)P、 点 mP及び点 (m+1 )Pは全て射影座標において表されている。 ステップ 44 10として、 射影座標により表された点の組 (mP,(m+l)P)から点 mPと点 (m+l)P の加算 mP+(m+l)Pを行ない、 点(2m+l)Pを計算する。 その後ステップ 441 1へ 行く。 ここで、 加算 mP+ (m+ 1 ) Pは、 モンゴメリ型楕円曲線の射影座標における加 算公式を用いて計算される。 ステップ 441 1として、 射影座標により表された 点の組 (mP, (m+ 1 ) P)から点(m+ 1 ) Pの 2倍算 2 ( (m+ 1 ) P)を行ない、 点(2m+2) Pを計 算する。 その後ステップ 4412へ行く。 ここで、 2倍算 2((m+l)P)は、 モンゴ メリ型楕円曲線の射影座標における 2倍算の公式を用いて計算される。 ステップ 4412として、 ステップ 4410で求めた点(2m+l)Pとステップ 441 1で求 めた点(2m+2) Pを点の組((2m+l ) P, (2m+2) P)として、 点の組(mP,(m+1 ) P)の代わり に格納する。 その後ステップ 4404へ戻る。 ここで、 点(2m+l)P、 点(2m+2)P、 点 raP及び点 (m+1) Pは全て射影座標において表されている。 ステップ 4415とし て、 モンゴメリ型楕円曲線における点 (m-l)Pを、 ワイエルシュトラス型楕円曲線 上で射影座標により表された点に変換する。 その点の X座標及ぴ Z座標をそれぞれ あらためて m-1及び Zm-lとおく。 また、 モンゴメリ型楕円曲線において射影座標 で表された点の組 (mP, (m+1) P)に対して、 点 mP及び点(m+1) Pをヮィエルシュトラ ス型楕円曲線上で射影座標で表された点に変換し、 それぞれ raP= (Xm,Ym,Zm) 及ぴ (m+l)P= (Xm+ 1,Ym+ 1,Zm+i) とあらためて置き直す。 ここで、 Ym及ぴ Ym+ 1は、 モンゴメリ型楕円曲線の射影座標における加算公式及び 2倍算の公式 では Y座標を求める事ができないので、 求まっていない。 ステップ 441 3とし て、 ワイエルシュトラス型楕円曲線上で射影座標で表された点 mp= (Xm, Ym, zm) より xm及ぴ∑111をそれぞれ xd及び zdとして、 ワイエルシュトラス型楕円曲 線上で射影座標で表された点 (m+1) P= (Xm+l.Ym+l^m+l) より Xm+ 1及ぴ
Zm+ 1をそれぞれ Xd + 1及び Zd+ 1として、 出力する。 また上記手順により、 m とスカラー値 dはビット長が等しくさらにそのビットのパターンも同じとなる為、 等しくなる。
モンゴメリ型楕円曲線の射影座標における加算公式の計算量は、 Zl=lととるこ とにより 3M+2 Sとなる。 ここで Mは有限体上の乗算の計算量、 Sは有限体上 の 2乗算の計算量である。 モンゴメリ型楕円曲線の射影座標における 2倍算の公 式の計算量は、 3M+2 Sである。 スカラー値の I番目のビットの値が 0であれ ば、 ステップ 4407において加算の計算量、 ステップ 4408において 2倍算 の計算量が必要となる。 すなわち 6 M+ 4 Sの計算量が必要となる。 スカラー値 の I番目のビットの値が 1であれば、 ステップ 4410において加算の計算量、 ステップ 441 1において 2倍算の計算量が必要となる。 すなわち 6M+4 Sの 計算量が必要である。 いずれの場合においても 6 M+ 4 Sの計算量が必要である。 ステップ 4404、 ステップ 4405、 ステップ 4406、 ステップ 4407、 ステップ 4408、 ステップ 4409乃至はステップ 4404、 ステップ 440 5、 ステップ 4406、 ステップ 4410、 ステップ 441 1、 ステップ 441 2の繰り返しの回数は、 (スカラー値 dのビット長) 一 1回となるので、 ステツ プ 4402での 2倍算の計算量とステップ 4416でのモンゴメリ型楕円曲線上 の点への変換に必要な計算量及びステップ 4415でのワイエルシュトラス型楕 円曲線上の点への変換に必要な計算量を考慮に入れると、 全体の計算量は (6M + 4 S) k + 2M—2 Sとなる。 ここで kはスカラー値 dのビット長である。 一 般的には、 計算量 Sは、 S = 0. 8 M程度と見積もられるので、 全体の計算量は おおよそ (9. 2 k + 0. 4) Mとなる。 例えばスカラー値 dが 1 60ビット (k= 160) であれば、 上記手順のアルゴリズムの計算量はおおよそ 1472 Mとなる。 スカラー値 dのビットあたりの計算量としてはおよそ 9, 2Mとなる。 A. Miyaji, T. Ono, H. Cohen, Efficient elliptic curve exponentiation using mixed coordinates, Advances in Cryptology Proceedings of ASIACRYPT' 98, LNCS 1514 (1998) pp.51-65 には、 ワイエルシュトラス型楕円曲線において、 ゥ ィンドウ法を用いてヤコビアン座標を中心とした混合座標系を用いたスカラー倍 計算方法は高速なスカラー倍計算方法として記載されている。 この場合において は、 スカラー値のビットあたりの計算量はおおよそ 10Mと見積もられる。 例え ばスカラー値 dが 1 60ビット (k = 1 60) であれば、 このスカラー倍計算方 法の計算量はおおよそ 1600Mとなる。 したがって、 上記本発明による手順の アルゴリズムの方が計算量が少なく高速といえる。
尚、 高速スカラー倍計算部 202において上記手順のアルゴリズムを用いなく ても、 スカラー値 d及ぴワイエルシュトラス型楕円曲線上の点 Pから、 Xd、 Zd、 Xd+ 1、 Zd + 1を出力するアルゴリズムであり且つ高速であれば、 他のアルゴリ ズムを用いていもよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 14M+S+ Iであり、 これは高速スカラー倍計算部 202の高速スカラー倍 計算に必要な計算量の (9. 2 k + 0. 4) Mとに比べてはるかに小さい。 した がって、 スカラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速スカ ラー倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 1 =40 M、 S = 0. 8Mと仮定すると、 この計算量はおおよそ (9. 2 k+ 55. 2) Mと見積もることができる。 例えばスカラー値 dが 1 60ビット (k= 1 60) であれば、 このスカラー倍計算に必要な計算量はおおよそ 1527Mとなる。 楕 円曲線としてワイエルシュトラス型楕円曲線を使用し、 ウィンドウ法を用いてャ コビアン座標を中心とした混合座標系を用いたスカラー倍計算方法を用いて、 ス カラー倍点をァフィン座標として出力する場合に必要となる計算量はおおよそ 1 ' 640Mであり、 これと比べて必要となる計算量は削減されている。
第 18の実施例は楕円曲線としてワイエルシュトラス型楕円曲線を用いたもの である。 すなわち、 スカラー倍計算部 103の入出力に用いる楕円曲線はヮイエ ルシュトラス型楕円曲線である。 ただし、 スカラー倍計算部 103の内部の計算 で使用する楕円曲線として、 与えられたワイエルシュトラス型楕円曲線から変換 可能であるようなモンゴメリ型楕円曲線を用いてもよい。 スカラー倍計算部 1 0 3がスカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 ワイエルシュ トラス型楕円曲線における射影座標の点として完全な座標が与えられたスカラー 倍点 (Xd,Yd,Zd)を計算し出力する。 スカラー値 d及びワイエルシュ トラス型楕 円曲線上の点 Pをスカラー倍計算部 103に入力すると高速スカラー倍計算部 2 02がそれを受け取る。 高速スカラー倍計算部 202は受け取ったスカラー値 d と与えられたワイエルシュトラス型楕円曲線上の点 Pからワイエルシュ トラス型 楕円曲線にぉレ、て射影座標で表されたスカラ一信点 dP= (X d , Y d , z d )の座標のう ち X d及び z d、 射影座標で表されたワイエルシュトラス型楕円曲線上の点
((1+1)?= (1 + 1,¥(1+ 1,2£1+1)の座標のぅち ( +1及び2£1+ ;1を計算し、 了 フィン座標で表された入力されたワイエルシュトラス型楕円曲線上の点 P= (x, y) と共にその情報を座標復元部 203に与える。 座標復元部 203は与えられた座 標の値 Xd、 Zd、 Xd+ 1、 Zd + 1、 x及ぴ yよりワイエルシュトラス型楕円曲線に ぉレヽて射影座標で表されたスカラ一倍点 dP= (Xd,Yd,Zd)の座標 X d, Y d及び Z d の復元を行なう。 スカラ一倍計算部 103は射影座標において完全に座標が与え られたスカラー倍点 (Xd,Yd,Zd)を計算結果として出力する。
次に図 38により、 座標 x、 y Xd、 Zd、 Xd + 1、 Zd + が与えられた場合に
Xd、 Yd、 zdを出力する座標復元部の処理について説明する。
座標復元部 203では、 ワイエルシュトラス型楕円曲泉において射影座標で表 されたスカラ一倍点 dP= (X d, Y d, Z d )の座標のうち X d及ぴ Z d、 射影座標で表さ れたワイエルシュ トラス型楕円曲線上の点(d +
Figure imgf000125_0001
+ Yd + Zd + i)の 座標のうち X d + 及び Z d + 1, スカラ一倍計算部 103に入力されたワイエルシ ュトラス型楕円曲線上の点 Pをァフィン座標で表した (X, y)を入力し、 以下の手順 で射影座標おレ、て完全な座標が与えられたスカラ一倍点 (Xd,Yd,Zd)を出力する。 ここで入力されたワイエルシュトラス型楕円曲線上の点 Pのァフィン座標を(χ, y) で、 射影座標を 丫 でそれぞれ表す。 入力されたスカラー値を dとして -トラス型楕円曲線におけるスカラ一倍点 dPのァフィン座標を
(XdJd)で、 射影座標を (Xd,Yd,Zd)でそれぞれ表す。 ワイエルシュ トラス型楕 円曲線上の点(d + i)Pのァフィン座標を (xd+ 1,yd + 1)で、 射影座標を
(Xd + 1,Yd + 1,Zd+ 1)でそれぞれ表す。
ステップ 3801において xXZdが計算され、 レジスタ T丄に格納される。 ス テツプ 3802において Xd+T^が計算される。 ここでレジスタ T ]Lには xZdが 格納されており、 したがって xZd+Xdが計算される。 その結果がレジスタ T 2に 格納される。 ステップ 3803において Xd- が計算され、 ここでレジスタ
には xZdが格納されており、 したがって xZd - Xdが計算される。 その結果が レジスタ T 3に格納される。 ステップ 3804においてレジスタ T3の 2乗が計 算される。 ここでレジスタ Τ3には xZd - Xd が格納されており、 したがって(Xd - xZd) 2が計算される。 その結果がレジスタ T 3に格納される。 ステップ 380 5において T3 XXd + 1が計算される。 ここでレジスタ T3には(Xd-xZd) が格. 納されており、 したがって Xd + 1 (Xd- xZd) 2が計算される。 その結果がレジス タ丁3に格納される。 ステップ 3806において xXXdが計算され、 レジスタ
に格納される。 ステップ 3807において aXZdが計算され、 レジスタ T4 に格納される。 ステップ 3808において T i+T4が計算される。 ここでレジ スタ T丄には xXdがレジスタ T4には aZdがそれぞれ格納されており、 したがつ て xXd+aZdが計算される。 その結果がレジスタ に格納される。 ステップ 38 09において ΧΤ2が計算される。 ここでレジスタ 1^には xXd+aZdがレジ スタ T 2には xZ d +X dカそれぞれ格納されており、 したがって(xX d +aZ d ) (xZ d + Xd)が計算される。 その結果がレジスタ丁 に格納される。 ステップ 381.0に おいてレジスタ Zdの 2乗が計算され、 レジスタ T 2に格納される。 ステップ 3 8 1 1において T2X2bが計算される。 ここでレジスタ T 2には Zd 2が格納され ており、 したがって 2bZd 2が計算される。 その結果がレジスタ T 2に格納される。 ステップ 3812において T^+T 2が計算される。 ここでレジスタ には (xXd+aZd) (xZd+Xd)がレジスタ T 2には 2bZd 2がそれぞれ格納されており、 し たがって(xXd+aZd) (xZd+Xd)+2bZd 2が計算される。 その結果がレジスタ Tェ に格納される。 ステップ 381 3において XZd + 1が計算される。 ここでレ ジスタ丁 には(xXd+aZd) (xZd+Xd)+2bZd 2が格納されており、 したがって Zd + 1 ((xXd+aZd) (xZd+Xd)+2bZd 2)が計算される。 その結果がレジスタ 格納される。 ステップ 3814において Ti- T3が計算される。 こ
タ丁 には Zd + 1 ((xXd+aZd) (xZd+Xd)+2bZdつがレジスタ T 3には Xd +ェ (Xd— xZd) 2がそれぞれ格納されており、 した力 Sつて Zd + 1 ((xXd+aZd) (xZd +
Xd)+2bZd 2)-Xd + 1 (Xd-xZd) 2が計算される。 その結果がレジスタ Ydに格納さ れる。 ステップ 381 5において 2yXZdが計算され、 レジスタ T2に格納され る。 ステップ 381 6において T2XZd+ :Lが計算される。 ここでレジスタ T2 には 2yZdが格納されており、 したがって 2yZdZd + 1が計算される。 その結果が レジスタ T2に格納される。 ステップ 3817において T2XXdが計算される。 ここでレジスタ T2には 2yZdZd + 1が格納されており、 したがって 2yZdZd+ 1 Xdが計算される。 その結果がレジスタ Xdに格納される。 ステップ 38 1 9にお いて T 2 XZd力 S計算される。 ここでレジスタ T 2には 2yZdZd + 1が格納されて おり、 したがって 2yZdZd + 1Zdが計算される。 その結果がレジスタ Zdに格納さ れる。 したがってレジスタ Zdには 2yZdZd + 1Zdが格納されている。 レジスタ Ydiこ ίまステップ 3814ίこお ヽて Zd + 1 ((xXd+aZd) (xZ d +X d ) +2bZ d ")+Xd + 1 (Xd- XZd) 2力 S格納され、 その後更新が行なわれないので、 その値が保持されて いる。 レジスタ Xdにはステップ 381 7において 2yZdZd + 1Xdが格納され、 そ の後更新が行なわれないので、 その値が保持されている。
上記手順により与えられた x、 y、 Xd、 Zd、 Xd + 1、 Zd + 1からワイエルシ ュトラス型楕円曲線におけるスカラ一倍点の射影座標 (X d, Y d, z d )における値が 全て復元される理由は以下の通りである。 点(d+l)Pは点 dPに点 Pを加算した点で ある。 ワイエルシュトラス型楕円曲線のァフィン座標における加算公式に代入す ると、 数 27を得る。 点 P及ぴ点 dPはワイエルシュ トラス型楕円曲線上の点であ るので、 yd 2=Xd 3+aXd+b及び y2=xo+ax+bをみたす。 数 27に代入し、 yd 及 ぴ y2を消去し、 式を整理すると、 数 70を得る。 ここで x d=Xd/Zd、 X d + 1 = Xd + i/Zd+ :Lであり、 この値を代入することにより射影座標の値へと変換す ると、 数 71を得る。 xd=Xd/Zdであるが、 逆元演算の回数を減らす目的で y dの分母と通分することにより、 数 72となる。 その結果として Yd=Zd + 1[(Xdx+aZd) (Xd+xZd)+2bz|]-(Xd-xZd)2Xd + 1 …数 73
とし、 Xd及び Zdをそれぞれ
2yZdZd + 1Xd …数 74
2yZdZd + 1Zd …数 75
により更新すればよい。 ここで、 Xd, Yd, Zdは図 38で示した処理により与え られる。 したがって、 射影座標 (Xd,Yd,Zd)の値は全て復元されたことになる。 上記手順はステップ 3801、 ステップ 3805、 ステップ 3806、 ステツ プ 3807、 ステップ 3809、 ステップ 381 1、 ステップ 3813、 ステツ プ 3815、 ステップ 3816、 ステップ 381 7及ぴステップ 3818におい て有限体上の乗算の計算量を必要とする。 また、 ステップ 3804およびステツ プ 3810において有限体上の 2乗算の計算量を必要とする。 有限体上の加算及 び減算の計算量は、 有限体上の乗算の計算量、 2乗算の計算量と比べて比較的小 さいので無視してもよい。 有限体上の乗算の計算量を M、 有限体上の 2乗算の計 算量を Sとすると、 上記手順は 1 1M+ 2 Sの計算量を必要とする。 これは高速 スカラー倍計算の計算量と比べてはるかに小さい。 例えばスカラー値 dが 1 60 ビットであれば、 高速スカラー倍計算の計算量はおおよそ 1 500M弱と見積も られる。 S = 0. 8 Mと仮定すると座標復元の計算量は 12. 6Mであり、 高速 スカラ一倍計算の計算量と比べてはるかに小さい。 したがつて効率的に座標を復 元できていることが示された。
尚、 上記手順をとらなくても、 上記計算式により与えられた Xd,Yd,Zdの値が 計算できれば Xd,Yd,Zdの値が復元できる。 また、 xd,ydが上記計算式により与 えられる値を取るように Xd,Yd,Zdの値を選択し、 その値が計算できれば Xd, Yd)Zdが復元できる。 それらの場合においては一般的に復元に必要となる計算 量が増大する。
次に、 スカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 Xd, Zd, xd + 1, zd + 1を出力するアルゴリズムについて説明する。
第 18実施例の高速スカラー倍計算部 202の高速スカラー倍計算方法として、 第 17実施例の高速スカラー倍計算方法を用いる。 これにより、 スカラー値 d及 ぴワイエルシュトラス型楕円曲線上の点 Pから、 xd, Zd, Xd + 1 , Zd+1を出力 するアルゴリズムとして、 高速であるアルゴリズムが達成される。 尚、 高速スカ ラー倍計算部 202において上記手順のアルゴリズムを用いなくても、 スカラー 値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 Xd, Zd, Xd + 1, Zd + 1 を出力するアルゴリズムであり且つ高速であれば、 他のアルゴリズムを用いてい もよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 1 1M+2 Sであり、 これは高速スカラー倍計算部 202の高速スカラー倍計 算に必要な計算量の (9. 2 k + 0. 4) Mとに比べてはるかに小さい。 したが つて、 スカラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速スカラ 一倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 S = 0. 8 Mと仮定すると、 この計算量はおおよそ (9. 2 k + 1 3) Mと見積もることが できる。 例えばスカラー値 dが 1 60ビット (k=160) であれば、 このスカ ラー倍計算に必要な計算量はおおよそ 1485Mとなる。 楕円曲線としてワイェ ルシュトラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビアン座標を中心 とした混合座標系を用いたスカラー倍計算方法を用いて、 スカラー倍点をヤコビ アン座標として出力する場合に必要となる計算量はおおよそ 1600Mであり、 これと比べて必要となる計算量は削減されている。
第 19の実施例は楕円曲線としてワイエルシュトラス型楕円曲線を用いたもの である。 すなわち、 スカラー倍計算部 103の入出力に用いる楕円曲線はヮイエ ルシュトラス型楕円曲線である。 ただし、 スカラ一倍計算部 103の内部の計算 で使用する楕円曲線として、 与えられたワイエルシュトラス型楕円曲線から変換 可能であるようなモンゴメリ型楕円曲線を用いてもよい。 スカラー倍計算部 10 3がスカラー値 d及ぴワイエルシュトラス型楕円曲線上の点 Pから、 ワイエルシュ トラス型楕円曲線におけるァフィン座標の点として完全な座標が与えられたスカ ラー倍点 (xd,yd)を計算し出力する。 スカラー値 d及びワイエルシュトラス型楕 円曲線上の点 Pをスカラー倍計算部 1 03に入力すると高速スカラー倍計算部 2 02がそれを受け取る。 高速スカラー倍計算部 202は受け取ったスカラー値 d と与えられたワイエルシュトラス型楕円曲線上の点 Pからワイエルシュトラス型 楕円曲線においてァフィン座標で表されたスカラ一倍点 dP =(xd,yd)の座標の うち xd、 ァフィン座標で表されたワイエルシュトラス型楕円曲線上の点(d+l)P = (xd + 1,yd + 1)の座標のうち xd + 、 ァフィン座標で表されたワイエルシュ トラス型楕円曲線上の点(d- l)P=(xd- l,yd- 1)の座標のうち xd- 1を計算し、 ァ フィン座標で表された入力されたワイエルシュトラス型楕円曲線上の点 P= (x, y) と共にその情報を座標復元部 203に与える。 座標復元部 203は与えられた座 標の値 xd、 xd + 1、 xd— i、 x及ぴ yよりワイエルシュトラス型楕円曲線におい てァフィン座標で表されたスカラ一倍点 dP= (xd,yd)の座標 y dの復元を行なう。 スカラー倍計算部 103はァフィン座標において完全に座標が与えられたスカラ 一倍点 (X d, y d)を計算結果として出力する。
次に図 39により、 座標 x、 y、 xd、 xd + 1が与えられた場合に、 xd、 ydを出 力する座標復元部の処理について説明する。
座標復元部 203では、 ワイエルシュトラス型楕円曲線においてァフィン座標 で表されたスカラ一倍点 dP= (xd,yd)の座標のうち X d、 ァフィン座標で表され たワイエルシュトラス型楕円曲線上の点(d+1) P=(xd + 1,yd + 1)の座標のうち xd + 1、 スカラー倍計算部 103に入力されたワイエルシュトラス型楕円曲線上 の点 Pをァフィン座標で表した (X, y)を入力し、 以下の手順でァフィン座標におい て完全な座標が与えられたスカラ一倍点 (xd,yd)を出力する。
ステップ 3901において xd Xxが計算され、 レジスタ T に格納される。 ス テツプ 3902において T +aが計算される。 ここでレジスタ には xdxが格 納されており、 したがって xdx+aが計算される。 その結果がレジスタ に格納 される。 ステップ 3903において xd+xが計算され、 レジスタ T2に格納され る。 ステップ 3904において Ti XT 2が計算される。 ここでレジスタ に は xdx+aがレジスタ Τ 2には xd+xがそれぞれ格納されており、 したがって
(xdx+a) (xd+x)が計算される。 その結果がレジスタ に格納される。 ステップ 3905において T が計算される。 ここでレジスタ Tュには(xdx+a)
(xd+x)が格納されており、 したがって(xdx+a) (xd+x)+2bが計算される。 その結 果がレジスタ に格納される。 ステップ 3 906において xd- Xが計算され、 レジスタ T 2に格納される。 ステップ 3907において T 2の 2乗が計算される。 ここでレジスタ T 2には xd_xが格納されており、 したがって(X d— X) 2が計算さ れる。 その結果がレジスタ T 2に格納される。 ステップ 3908において Τ 2 X x2d + 1が計算される。 ここでレジスタ T 2には(xd— X) が格納されており、 し たがって xd + 1 (xd— X) 2が計算される。 その結果がレジスタ T2に格納される。 ステップ 3909において Τ^-Τ 2が計算される。 ここでレジスタ には (xdx+a) (xd+x)+2bがレジスタ T2には xd+ 1 (xd_x) 2がそれぞれ格納されてお り、 したがって(xdx+a) (xd+X)+2b-xd + 1 (xd—x) 2が計算される。 その結果が レジスタ に格納される。 ステップ 391 0において 2yの逆元が計算され、 レ ジスタ T2に格納される。 ステップ 391 1において ΧΤ2が計算される。 ここでレジスタ T Jには(xdx+a) (xd+x)+2b-xd+! (xd-x) 2がレジスタ T 2に は l/2yがそれぞれ格納されており、 したがって((xdx+a) (xd+x)+2b-xd + 1 (xd 一 x) 2)/2yが計算される。 その結果がレジスタ ydに格納される。 したがってレ ジスタ ydには((xdx+a) (xd+x)+2b-xd + 1 (xd— x) 2)/2yが格納されている。 レ ジスタ X dは全く更新されなレ、ので入力された値が保持されている。
上記手順によりスカラー倍点の y座標 ydが復元される理由は以下の通りである。 点(d+l)Pは点 dPに点 Pを加算した点である。 ワイエルシュトラス型楕円曲線のァ フィン座標における加算公式に代入すると、 数 27を得る。 点 P及び点 dPはワイ エルシュトラス型楕円曲線上の点であるので、 yd 2=xd 3+axd+b及び y2=x +ax+bをみたす。 数 27に代入し、 yd 及ぴ y2を消去し、 式を整理すると、 数 7 0を得る。 ここで xd,ydは図 39の処理によって与えられる。 したがって、 ァ フィン座標 (xd,yd)の値を全て復元していることになる。
上記手順はステップ 3901、 ステップ 3904、 ステップ 3908及ぴステ ップ 391 1において有限体上の乗算の計算量を必要とする。 また、 ステップ 3 907において有限体上の 2乗算の計算量を必要とする。 さらにステップ 391 0において有限体上の逆元演算の計算量を必要とする。 有限体上の加算及び減算 の計算量は、 有限体上の乗算の計算量、 2乗算の計算量、 逆元演算の計算量と比 ベて比較的小さいので無視してもよい。 有限体上の乗算の計算量を M、 有限体上 の 2乗算の計算量を S、 有限体上の逆元演算の計算量を I とすると、 上記手順は 4M+S+ Iの計算量を必要とする。 これは高速スカラー倍計算の計算量と比べ てはるかに小さい。 例えばスカラー値 dが 1 60ビットであれば、 高速スカラー 倍計算の計算量はおおよそ 150 OM弱と見積もられる。 S = 0. 8M及ぴ 1 = 4 OMと仮定すると座標復元の計算量は 44. 8Mであり、 高速スカラー倍計算 の計算量と比べてはるかに小さい。 したがって効率的に座標を復元できているこ とが示された。
尚、 上記手順をとらなくても、 上記等式の右辺の値が計算できれば ydの値が 復元できる。 その場合は一般的に復元に必要となる計算量が増大する。
次に図 44により、 スカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pか ら、 xd、 xd + 1を出力するアルゴリズムについて説明する。
高速ス力ラ一倍計算部 202では、 スカラ一倍計算部 103に入力されたワイ エルシュトラス型楕円曲線上の点 Pを入力し、 以下の手順によりワイエルシュト ラス型楕円曲線においてァフィン座標で表されたスカラ一倍点 dP= (X d, y d )の うち xd、 ァフィン座標で表されたワイエルシュトラス型楕円曲線上の点(d+l)P = (xd + 1,yd + 1)のうち xd + iを出力する。 ステップ 441 6として、 与えら れたワイエルシュトラス型楕円曲線上の点 Pをモンゴメリ型楕円曲線上で射影座 標により表された点に変換する。 この点をあらためて点 Pとする。 ステップ 44 01として、 変数 Iに初期値 1を代入する。 ステップ 4402として、 点 Pの 2 倍点 2 Pを計算する。 ここで点 Pは射影座標において( X, y, 1)として表し、 モン ゴメリ型楕円曲線の射影座標における 2倍算の公式を用いて 2倍点 2Pを計算する。 ステップ 4403として、 スカラー倍計算部 103に入力された楕円曲線上の点 Pとステップ 4402で求めた点 2Pを、 点の i(P, 2P)として格納する。 ここで点 P 及び点 2Pは射影座標で表されている。 ステップ 4404として、 変数 Iとスカラ 一値 dのビット長とが一致するかどうかを判定し、 一致すればステップ 441 5 へ行く。 一致しなければステップ 4405へ行く。 ステップ 4405として、 変 数 Iを 1増加させる。 ステップ 4406として、 スカラー値の I番目のビットの 値が 0であるか 1であるかを判定する。 そのビットの値が 0であればステップ 4 406へ行く。 そのビットの値が 1であればステップ 4410へ行く。 ステップ 440 7として、 射影座標により表された点の組 (mP, (ra+1) P)から点 mPと点 (m+l)Pの加算 mP+(m+l)Pを行ない、 点(2m+l)Pを計算する。 その後ステップ 440 8へ行く。 ここで、 加算 mP+(m+l)Pは、 モンゴメリ型楕円曲線の射影座標におけ る加算公式を用いて計算される。 ステップ 4408として、 射影座標により表さ れた点の組 (mP,(m+l)P)から点 mPの 2倍算 2 (mP)を行ない、 点 2mPを計算する。 そ の後ステップ 4409へ行く。 ここで、 2倍算 2 (mP)は、 モンゴメリ型楕円曲線 の射影座標における 2倍算の公式を用いて計算される。 ステップ 4409として、 ステップ 4408で求めた点 2mPとステップ 4407で求めた点(2m+ 1 ) Pを点の 組 (2mP, (2m+l)P)として、 点の組 (mP, (m+ 1 ) P)の代わりに格納する。 その後ス テツプ 4404へ戻る。 ここで、 点 2 mP、 点( 2 m+ 1 ) P、 点 mP及ぴ点 (m+ 1 ) Pは全 て射影座標において表されている。 ステップ 4410として、 射影座標により表 された点の組 (mP, (ra+ 1 ) P)から点 mPと点(m+ 1 ) Pの加算 mP+ (m+ 1 ) Pを行ない、 点 (2m+l)Pを計算する。 その後ステップ 441 1へ行く。 ここで、 加算 mP+ (m+ 1 ) P は、 モンゴメリ型楕円曲線の射影座標における加算公式を用いて計算される。 ス テツプ 441 1として、 射影座標により表された点の組 (mP, (m+ 1 ) P)から点 (m+ 1)?の2倍算2((111+1)?)を行なぃ、 点(2m+2)Pを計算する。 その後ステップ 44 1 2へ行く。 ここで、 2倍算2((111+1)?)は、 モンゴメリ型楕円曲線の射影座標に おける 2倍算の公式を用いて計算される。 ステップ 4412として、 ステップ 4 4 1 0で求めた点(2m+l)Pとステップ 44 1 1で求めた点(2m+2)Pを点の組 ((2m+l)P, (2m+2)P)として、 点の組 (mP, (m+l)P)の代わりに格納する。 その後ス テツプ 4404へ戻る。 ここで、 点(2m+l) P、 点(2m+2) P、 点 mP及び点(m+1) Pは全 て射影座標において表されている。 ステップ 441 5として、 モンゴメリ型楕円 曲線において射影座標で表された点の組(mP,(m+l)P)に対して、 点 mP及び点 (m+1) Pをワイエルシュトラス型楕円曲線上でァフィン座標で表された点に変換し、 それぞれ mP= (xm, ym) 及び (m+l)P= (xm+ 1,ym+ 1) とあらためて置き直す。 ここで、 ym及ぴ ym+ 1は、 モンゴメリ型楕円曲線の射影座標における加算公式 及び 2倍算の'公式では Y座標を求める事ができないので、 求まっていない。 その 後ステップ 4413へ行く。 ステップ 441 3として、 ワイエルシュトラス型楕 円曲線上で射影座標で表された点 mP= (xm) ym) より xmを xdとして、 ワイエル シュトラス型楕円曲線上でァフィン座標で表された点 (m+1) P= (xm+ 1, ym+1) より xm+ 1を xd + 1として、 出力する。 また上記手順により、 mとスカ ラー値 dはビット長が等しくさらにそのビットのパターンも同じとなる為、 等し くなる。
モンゴメリ型楕円曲線の射影座標における加算公式の計算量は、 1とと ることにより 3M+2 Sとなる。 ここで Mは有限体上の乗算の計算量、 Sは有限 体上の 2乗算の計算量である。 モンゴメリ型楕円曲線の射影座標における 2倍算 の公式の計算量は、 3M+2 Sである。 スカラー値の I番目のビットの値が 0で あれば、 ステップ 4407において加算の計算量、 ステップ 4408において 2 倍算の計算量が必要となる。 すなわち 6 M+ 4 Sの計算量が必要となる。 スカラ 一値の I番目のビットの値が 1であれば、 ステップ 441 0において加算の計算 量、 ステップ 441 1において 2倍算の計算量が必要となる。 すなわち 6M+4 Sの計算量が必要である。 いずれの場合においても 6 M+ 4 Sの計算量が必要で ある。 ステップ 4404、 ステップ 4405、 ステップ 4406、 ステップ 44 07、 ステップ 4408、 ステップ 4409乃至はステップ 4404、 ステップ 4405、 ステップ 4406、 ステップ 4410、 ステップ 4411、 ステップ 4412の繰り返しの回数は、 (スカラー値 dのビット長) 一 1回となるので、 ステップ 4402での 2倍算の計算量とステップ 4416でのモンゴメリ型楕円 曲線上への点への変換に必要な計算量及ぴステップ 441 5でのワイエルシュト ラス型楕円曲線上の点への必要な計算量を考慮に入れると、 全体の計算量は (6 M+4 S) k + 4M— 2 S+ I となる。 ここで kはスカラー値 dのビット長であ る。 一般的には、 計算量 Sは、 S = 0. 8M程度、 計算量 Iは、 I =40M程度 と見積もられるので、 全体の計算量はおおよそ (9. 2 k + 42. 4) Mとなる。 例えばスカラー値 dが 160ビット (k = 160) であれば、 上記手順のァルゴ リズムの計算量はおおよそ 1 514Mとなる。 スカラー値 dのビットあたりの計 算量としてはおよそ 9. 2Mとなる。 A.Miyaji, T. Ono, H.Cohen, Efficient elliptic curve exponentiation using mixed coordinates, Advances in Cryptology Proceedings of ASIACRYPT' 98, LNCS 1514 (1998) pp.51-65 には、 ワイエルシュトラス型楕円曲線において、 ウィンドウ法を用いてヤコビアン座標 を中心とした混合座標系を用いたスカラ一倍計算方法は高速なスカラ一倍計算方 法として記載されている。 この場合においては、 スカラー値のビットあたりの計 算量はおおよそ 1 0Mと見積もられる。 例えばスカラ^ "値 dが 160ビット (k = 160) であれば、 このスカラー倍計算方法の計算量はおおよそ 1 640Mと なる。 したがって、 上記手順のアルゴリズムの方が計算量が少なく高速といえる。 尚、 高速スカラー倍計算部 202において上記手順のアルゴリズムを用いなく ても、 スカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 xd, xd + i,xd=1を出力するアルゴリズムであり且つ高速であれば、 他のアルゴリズ ムを用いていもよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 4M+S+ Iであり、 これは高速スカラー倍計算部 202の高速スカラー倍計 算に必要な計算量の (9. 2 k + 42. 4) Mとに比べてはるかに小さい。 した がって、 スカラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速スカ ラー倍計算部の高速スカラー倍訐算に必要な計算量とほぼ同等である。 1 =40 M、 S = 0. 8 Mと仮定すると、 この計算量はおおよそ (9. 2 k + 87. 2) Mと見積もることができる。 例えばスカラー値 dが 160ビット (k = 1 60) であれば、 このスカラー倍計算に必要な計算量は 1559Mとなる。 楕円曲線と してワイエルシュトラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビアン 座標を中心とした混合座標系を用いたスカラー倍計算方法を用いて、 スカラー倍 点をァフィン座標として出力する場合に必要となる計算量はおおよそ 1640M であり、 これと比べて必要となる計算量は削減されている。
第 20の実施例は、 入出力用の楕円曲線としてワイエルシュトラス型楕円曲線 を、 内部の計算用には与えられたワイエルシュトラス型楕円曲線から変換可能で あるモンゴメリ型楕円曲線を用いたものである。 スカラー倍計算部 1 03がスカ ラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 ワイエルシュトラス 型楕円曲線におけるァフィン座標の点として完全な座標が与えられたスカラー倍 点 (X d, y d) を計算し出力するものである。 スカラー値 d及びワイエルシュト ラス型楕円曲線上の点 Pをスカラー倍計算部 103に入力すると高速スカラー倍 計算部 202がそれを受け取る。 高速スカラー倍計算部 202は受け取ったスカ ラー値 dと与えられたワイエルシュ トラス型楕円曲線上の点 Pからモンゴメリ型 楕円曲線において射影座標で表されたスカラ一倍点 dP= (Xd,Yd,Zd)の座標のう ち Xd及び Zd、 射影座標で表されたモンゴメリ型楕円曲線上の点(d+ 1)P= {1 +1,丫(1 +1,2(1 +1)の座標のぅち 3+1及ぴ2£1+ 1を計算する。 また、 入力 されたワイエルシュトラス型楕円曲線上の点 Pを、 与えられたワイエルシュトラ ス型楕円曲線から変換可能であるモンゴメリ型楕円曲線上の点に変換し、 その点 を新たに P=(x,y)とおく。 高速スカラー倍計算部 202は、 Xd、 Zd、 Xd + 1、 Zd + 1、 x及び yを座標復元部 203に与える。 座標復元部 203は与えられた 座標の値 Xd、 Zd、 Xd+ 1、 Zd + 1、 x及ぴ yよりワイエルシュトラス型楕円曲 線においてァフィン座標で表されたス力ラ一倍点 dP= (xd,yd)の座標 X d及び ydの復元を行なう。 スカラー倍計算部 103はァフィン座標において完全に座 標が与えられたスカラー倍点 (xd,yd)を計算結果として出力する。
次に図 40により、 座標 , <3,2(1(1+ 1,2(1+ 1が与ぇられた場合に^,7£1 を出力する座標復元部の処理について説明する。
座標復元部 203では、 モンゴメリ型楕円曲線において射影座標で表されたス 力ラ一倍点 dP= (Xd,Yd,Zd)の座標うち X d及ぴ Z d、 射影座標で表されたモンゴ メリ型楕円曲線上の点((1+1)?= (1+ 1(1+1,2(1+1)の座標のぅち £1+1及ぴ Zd + 1、 スカラー倍計算部 103に入力されたモンゴメリ型楕円曲線上の点 Pを ァフィン座標で表した(X, y)を入力し、 以下の手順でァフィン座標おいて完全な 座標が与えられたスカラ一倍点(X d , y d )を出力する。 ここで入力されたモンゴ メリ型楕円曲線上の点 Pのァフィン座標を(X, y)で、 射影座標を(X 1, Y 1, Z 1 )で それぞれ表す。 入力されたスカラー値を dとしてモンゴメリ型楕円曲線における スカラー倍点 dPのァフィン座標を (xd Mo n,yd Mo n)で、 射影座標を (Xd
Yd,Zd)でそれぞれ表す。 モンゴメリ型楕円曲線上の点(d+l)Pのァフィン座標を d + i>yd + i )で、 射影座標を (xd + i,Yd + i,zd + 1)でそれぞれ表す。
ステップ 4001において xXZdが計算され、 レジスタ に格納される。 ス テツプ 4002において Xd + Tiが計算される。 ここでレジスタ T丄
Figure imgf000136_0001
カ 格納されており、 したがって xZd+Xdが計算される。 その結果がレジスタ Tゥに 格納される。 ステップ 4003において Xd- 1 が計算され、 ここでレジスタ には xZdが格納されており、 したがって xZd - Xdが計算される。 その結果が レジスタ T 3に格納される。 ステップ 4004においてレジスタ T3の 2乗が計 算される。 ここでレジスタ Τ3には xZrt - Xdが格納されており、 したがって(Xd- xZd)2が計算される。 その結果がレジスタ T3に格納される。 ステップ 4005 において T3 XXd + 1が計算される。 ここでレジスタ T3には(Xd- xZd) 2が格納 されており、 したがって Xd+ 1 (Xd- xZd)2が計算される。 その結果がレジスタ T 3に格納される。 ステップ 4006において 2AXZdが計算され、 レジスタ T丄 に格納される。 ステップ 4007において T 2 + 1^が計算される。 ここでレジ スタ T 2には xZ d +X dがレジスタ Τ には 2ΑΖ dがそれぞれ格納されており、 した がって xZd+Xd+2AZdが計算される。 その結果がレジスタ T 2に格納される。 ス テツプ 4008において xXXdが計算され、 レジスタ T4に格納される。 ステツ プ 4009において T4+Zdが計算される。 ここでレジスタ T 4には xXdが格納 されており、 したがって xXd+Zdが計算される。 その結果がレジスタ T4に格納 される。 ステップ 401 0において Τ2 ΧΤ4が計算される。 ここでレジスタ Τ 2には xZ d+Xd +2AZ dがレジスタ T 4には xX d+Zdがそれぞれ格納されており、 したがって(xZ d+Xd +2AZ d ) (xX d +Z d )力 S計算される。 その結果がレジスタ T 2に 格納される。 ステップ 401 1において T XZdが計算される。 ここでレジス タ丁 には 2AZdが格納されており、 したがって 2AZd 2が計算される。 その結果 がレジスタ 1^に格納される。 ステップ 4012において Τ 2 - が計算される。 ここでレジスタ Τ 2には(xZ dd +2AZ d ) (xX d +Z d )がここでレジスタ T丄には 2ΑΖ d "がそれぞれ格納されており、 したがって(xZ d +X d +2AZ d) (xXd+Zd)- 2AZd が計算される。 その結果がレジスタ T 2に格納される。 ステップ 401 3 において T2 XZd + 1が計算される。 ここでレジスタ T2には(xZd+Xd +
2AZ d) (xXd+Zd) -2AZ d "力格糸内されており、 した力 Sつて Z d + ((xZ d +X d + 2AZ d) (xXd+Zd) -2AZ d 2 )が計算される。 その結果がレジスタ T 2に格納される。 ステップ 4014において T 2- T3が計算される。 ここでレジスタ Τ 2には Zd + 1 ((xZd+Xd +2AZ d) (xXd+Zd) - 2AZ d 2 )がレジスタ T 3には X d + (X d - xZd) 2がそれぞれ格納されており、 した力 Sつて Zd + i ((xZd+Xd+2AZd) (xXd + Zd)-2AZd 2)-Xd + 1 (Xd-xZd) 2が計算される。 その結果がレジスタ T 2に格納 される。 ステップ 401 5において 2BXyが計算され、 レジスタ に格納され る。 ステップ 4016において Τ 1 XZdが計算される。 ここでレジスタ Tiには 2Byが格納されており、 したがって 2ByZdが計算される。 その結果がレジスタ に格納される。 ステップ 401 7において XZd + 1が計算される。 ここ でレジスタ T iには 2ByZ dが格納されており、 したがつて 2ByZ dZd + 1が計算さ れる。 その結果がレジスタ に格納される。 ステップ 401 8において T丄 X Zdが計算される。 ここでレジスタ には 2ByZdZd + 1が格納されており、 した がって 2ByZdZd + 1Zdが計算される。 その結果がレジスタ T 3に格納される。 ス テツプ 4019において T3 Xsが計算される。 ここでレジスタ T3には 2ByZd Zd + 1Zd力 S格納されており、 したがって 2ByZdZd + 1Zdsが計算される。 その結 果がレジスタ T 3に格納される。 ステップ 4020においてレジスタ T 3の逆元 が計算される。 ここでレジスタ T 3には 2ByZdZd + 1Zdsが格納されており、 し たがって l/2ByZdZd + 1Zdsが計算される。 その結果がレジスタ T 3に格納され る。 ステップ 4021において T 2 XT 3が計算される。 ここでレジスタ T2に は Zd + i ((xZd+Xd+2AZd) (xXd+Zd)-2AZd 2)—Xd +ュ(Xd— xZd) 2がレジスタ T3 には l/2ByZdZd+1Zdsがそれぞれ格納されており、 したがって {Z d + ( (xZd + X d +2AZ d)(xXd+Zd) -2AZ d 2 ) - X d + i (X d— xZ d ) 2 } /2ByZ d Z d + Z d sが計算され る。 その結果がレジスタ ydに格納される。 ステップ 4022において XXd が計算される。 ここでレジスタ には 2ByZdZd + 1が格納されており、 したが つて 2ByZdZd + 1Xdが計算される。 その結果がレジスタ 1^に格納される。 ステ ップ 4023において ΧΤ3が計算される。 ここでレジスタ Τ には 2ByZd Zd + 1Xdがレジスタ T 3には l/2ByZdZd + 1Zdsがそれぞれ格納されており、 し た力 Sつて 2ByZdZd + 1Xd/2ByZdZd + 1Zds(=Xd/Zds)カ計算される。 その結果 が 1^に格納される。 ステップ 4024において + αが計算される。 ここで レジスタ T には X d /Z d sが格納されており、 したがって(X d /Z d s) + が計算さ れる。 その結果が xdに格納される。 したがってレジスタ xdには(Xd/Zds) + aの 値が格納されている。 ydにはステップ 4021において {Zd + 1 ((xZd+Xd + 2AZd)(xXd+Zd)- 2AZd 2) - Xd+i (Xd—xZd) 2}/2ByZdZd+ 1Zdsが格納され、 そ の後更新が行なわれないので、 その値が保持されている。 その結果として、 ワイ エルシュ トラス型楕円曲線におけるァフィン座標(X d, y d)の値が全て復元さ れている。
上記手順により与えられた x、 y、 Xd、 Zd、 Xd + 1、 Zd + 1力 らワイエルシ ュトラス型楕円曲線におけるスカラー倍点のァフィン座標(x d, y d)における 値が全て復元される理由は以下の通りである。 点(d+l)Pは点 dPに点 Pを加算した 点である。 モンゴメリ型楕円曲線のァフィン座標における加算公式に代入すると、 数 38を得る。 点 P及ぴ点 dPはモンゴメリ型楕円曲線上の点であるので、
r> Mo n 2_ Mo n 3 Mo n 2 , M o n -n, >jD 2 3 ιΛ 2 , 'マ, a¾. Byd =xd +Axd +xd 及ひ By =x +Ax +χ·^みたす。 数 3
8に代入し、 Byd Mo n 2及び By2を消去し、 式を整理すると、
Figure imgf000139_0001
2xd + 1}/(2By) …数 7 6 を得る。 ここで X d Mo n=Xd/Zd、 X d+ 1=Xd+ 1/Zd + 1であり、 この値を代 入することにより射影座標の値へと変換すると、 次の式を得る。
y^on={Zd + 1 Xdx+Zd) (Xd+xZd+2AZd)-2Az )-(xd-xZd)2Xd + 1}/
(2ByZdZd + 1Zd) …数 7 7
x d M°n=Xd/Zdであるが、 逆元演算の回数を減らす目的で y d Mnの分母と 通分することにより、
xio n=(2ByZdZd + 1Xd)/(2ByZdZd + 1Zd) …数 78
となる。 モンゴメリ型楕円曲線上の点とワイエルシュトラス型楕円曲線上の点と の対応関係については、 K.0keya, H. Kurumatani, K. Sakurai, Elliptic Curves with the Montgomery-Form and Their Cryptographic Applications, Public Key Cryptography, LNCS 1751 (2000) pp.238-257 に記載されている。 それによ ると、 変換パラメタを s, ひとして、 yd=s一1 yd Mo n及び xd=s— 1xd Mo n + の 関係がある。 結果として数 79、 数 80を得る。
yd={Zd+1 Xdx+Zd) (Xd+xZd+2AZd)-2AZ )-(Xd-xZd)2Xd+1}/(2sByZdZd+1Zd)
…数 7 9 xd = ((2ByZdZd + 1Xd)/(2sByZdZd + 1Zd)) + o; …数 8 0
ここで、 xd,ydは図 40より与えられる。 したがって、 ワイエルシュトラス 型楕円曲線におけるァフィン座標 (X d , y d )の値が全て復元されていることにな る。
上記手順はステップ 4001、 ステップ 4005、 ステップ 400 6、 ステツ プ 4008、 ステップ 40 1 0、 ステップ 40 1 1、 ステップ 40 1 3、 ステツ プ 40 1 5、 ステップ 401 6、 ステップ 40 1 7、 ステップ 40 1 8、 ステツ プ 401 9、 ステップ 4021、 ステップ 4022及びステップ 4023におレヽ て有限体上の乗算の計算量を必要とする。 また、 ステップ 4004において有限 体上の 2乗算の計算量を必要とする。 また、 ステップ 4020において有限体上 の逆元演算の計算量を必要とする。 有限体上の加算及び減算の計算量は、 有限体 上の乗算の計算量、 2乗算の計算量及ぴ逆元演算の計算量と比べて比較的小さい ので無視してもよい。 有限体上の乗算の計算量を M、 有限体上の 2乗算の計算量 を S及び有限体上の逆元演算の計算量を Iとすると、 上記手順は 15 M+ S + I の計算量を必要とする。 これは高速スカラー倍計算の計算量と比べてはるかに小 さい。 例えばスカラー値 dが 1 60ビットであれば、 高速スカラー倍計算の計算 量はおおよそ 150 OM弱と見積もられる。 S = 0. 8M、 I =40Mと仮定す ると座標復元の計算量は 55. 8Mであり、 高速スカラー倍計算の計算量と比べ てはるかに小さい。 したがって効率的に座標を復元できていることが示された。 尚、 上記手順をとらなくても、 上記計算式により与えられた xd, ydの値が計 算できれば xd, ydの値が復元できる。 その場合においては一般的に復元に必要 となる計算量が増大する。 また、 モンゴメリ型楕円曲線のパラメタである A乃至 は Bの値やモンゴメリ型楕円曲線への変換パラメタである sを小さくとることに より、 ステップ 4006乃至はステップ 401 5における乗算の計算量ゃステツ プ 401 9における乗算の計算量を削減することができる。
次に、 スカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 Xd, Zd, Xd + 1, Zd + 1を出力する高速スカラー倍計算部の処理について説明する。
この場合、 第 20実施例の高速スカラー倍計算部 202の高速スカラー倍計算 方法として、 第 9実施例の高速スカラー倍計算方法 (図 8参照) を用いる。 これ により、 スカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 Xd, Zd
Xd + 1, Zd+ 1を出力するアルゴリズムとして、 高速であるアルゴリズムが達成 される。 尚、 高速スカラー倍計算部 202において上記アルゴリズムを用いなく ても、 スカラー値 d及ぴワイエルシュトラス型楕円曲線上の点 Pから、 Xd, Zd, Xd + l, Zd + ]Lを出力するアルゴリズムであり且つ高速であれば、 他のアルゴリ ズムを用いていもよい。
スカラー倍計算部 1 03における座標復元部 203の座標復元に必要な計算量 は 1 5M+S+ Iであり、 これは高速スカラー倍計算部 202の高速スカラー倍 計算に必要な計算量の (9. 2 k- 3. 6) Mとに比べてはるかに小さい。 した がって、 スカラー倍計算部 1 03のスカラー倍計算に必要な計算量は、 高速スカ ラー倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 1 =40 M、 S = 0. 8Mと仮定すると、 この計算量はおおよそ (9. 2 k + 5 2. 2) Mと見積もることができる。 例えばスカラー値 dが 1 6 0ビット (k= 1 6 0) であれば、 このスカラー倍計算に必要な計算量は 1 524Mとなる。 楕円曲線と してワイエルシュトラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビアン 座標を中心とした混合座標系を用いたスカラー倍計算方法を用いて、 スカラー倍 点をァフィン座標として出力する場合に必要となる計算量はおおよそ 1 64 OM であり、 これと比べて必要となる計算量は削減されている。
第 2 1の実施例は入出力用の楕円曲線としてワイエルシュトラス型楕円曲線を、 内部の計算用には与えられたワイエルシュトラス型楕円曲線から変換可能である モンゴメリ型楕円曲線を用いたものである。 スカラー倍計算部 1 03がスカラー 値 d及びワイエルシュトラス型楕円曲線上の点 Pから、 ワイエルシュトラス型楕円 曲線における射影座標の点として完全な座標が与えられたスカラー倍点,
(Xd W,Yd W,Zd W)を計算し出力する。 スカラー値 d及びワイエルシュトラス型楕 円曲線上の点 Pをスカラー倍計算部 1 0 3に入力すると高速スカラー倍計算部 2 0 2がそれを受け取る。 高速スカラー倍計算部 202は受け取ったスカラー値 d と与えられたワイエルシュトラス型楕円曲線上の点 Pからモンゴメリ型楕円曲線 におレ、て射影座標で表されたス力ラ一倍点 d P= (X d, Y d, Z d )の座標のうち X d及ぴ Zd、 射影座標で表されたモンゴメリ型楕円曲線上の点 d(d + 1)P=(Xd + 1
Yd + 1,Zd + 1)の座標のうち xd + 1及び zd + 1を計算する。 また、 入力されたヮ ィエルシュトラス型楕円曲線上の点 Pを、 与えられたワイエルシュ トラス型楕円 曲線から変換可能であるモンゴメ リ型楕円曲線上の点に変換し、 その点を新たに P=(x,y)とおく。 高速スカラー倍計算部 20 2は、 Xd, Zd, Xd+ 1, Zd + 1, x 及ぴ yを座標復元部 203に与える。 座標復元部 203は与えられた座標の値 Xd, Zd, Xd + 1, Zd + 1, x及ぴ yよりワイエルシュトラス型楕円曲線において射影 座標で表されたスカラ一倍点 dP= (X d W, Y d W, Z d W)の座標 X d W、 Y d w及び Z d Wの 復元を行なう。 スカラー倍計算部 103は射影座標において完全に座標が与えら れたスカラー倍点 (Xd W,Yd W,Zd W)を計算結果として出力する。
次に図 41により、 座標 X, y, Xd, Zd, Xd + 1, Zd + 1が与えられた場合に XdW、 YdW、 Zd Wを出力する座標復元部の処理について説明する。
座標復元部 203では、 モンゴメリ型楕円曲線において射影座標で表されたス 力ラ一倍点 dP= (X d, Y d, Z d )の座標のうち X d及ぴ Z d、 射影座標で表されたモンゴ メリ型楕円曲線上の点(d+l)P=(Xd +!, Yd+ 1,Zd + 1)の座標のうち Xd +丄及び Zd + 1、 スカラー倍計算部 103に入力されたモンゴメリ型楕円曲線上の点 Pを ァフィン座標で表した (x,y)を入力し、 以下の手順でワイエルシュトラス型楕円 曲線上で射影座標おいて完全な座標が与えられたスカラ一倍点 d w, γ d w, zd w)を出力する。 ここで入力されたモンゴメリ型楕円曲線上の点 Pのァフィン 座標を(x,y)で、 射影座標を Y Z でそれぞれ表す。 入力されたスカラー 値を dとしてモンゴメリ型楕円曲線におけるスカラー倍点 dPのァフィン座標を
(xd,yd)で、 射影座標を (Xd,Yd,Zd)でそれぞれ表す。 モンゴメリ型楕円曲線上 の点((1+1)?のァフィン座標を £1+ 1 (1+1)で、 射影座標を(Xd + 1,Yd+ 1, zd + 1)でそれぞれ表す。
ステップ 4101において xXZdが計算され、 レジスタ 1^に格納される。 ス テツプ 41 02において Xd+Tiが計算される。 ここでレジスタ T丄には xZdが 格納されており、 したがって xZd+Xdが計算される。 その結果がレジスタ T 2に 格納される。 ステップ 4103において Xd - が計算され、 ここでレジスタ には xZdが格納されており、 したがって xZd - Xdが計算される。 その結果が レジスタ T 3に格納される。 ステップ 4104においてレジスタ T 3の 2乗が計 算される。 ここでレジスタ T3には xZd - Xdが格納されており、 したがって(Xd - xZd) が計算される。 その結果がレジスタ T 3に格納される。 ステップ 4105 において T3 XXd + 1が計算される。 ここでレジスタ T 3には(Xd - xZd) 2が格納 されており、 したがって Xd + 1 (Xd- xZd) 2が計算される。 その結果がレジスタ T 3に格納される。 ステップ 4106において 2AXZdが計算され、 レジスタ に格納される。 ステップ 4107において Τ 2+Τ が計算される。 ここでレジ スタ T 2には xZ d+Xdがレジスタ T丄には 2AZ dがそれぞれ格納されており、 した がって xZd+Xd+2AZdが計算される。 その結果がレジスタ T 2に格納される。 ス テツプ 4108において xXXdが計算され、 レジスタ T4に格納される。 ステツ プ 4109において T 4+Zdが計算される。 ここでレジスタ T4には xX dが格納 されており、 したがって xXd+Zdが計算される。 その結果がレジスタ T4に格納 される。 ステップ 41 1 0において Τ2 ΧΤ4が計算される。 ここでレジスタ Τ 2には xZ d+Xd +2AZ dがレジスタ T 4には xX d+Zdがそれぞれ格納されており、 したがつて(xZ d +X d +2AZ d) (xXd+Zd)が計算される。 その結果がレジスタ T 2に 格納される。 ステップ 41 1 1において T丄 XZdが計算される。 ここでレジス タ!^には 2AZdが格納されており、 したがって 2AZd 2が計算される。 その結果 がレジスタ 1^に格納される。 ステップ 41 12において T2- T;!が計算される。 ここでレジスタ Τ 2には(xZd+Xd+2AZd) (xXd+Zd)がここでレジスタ T!には 2AZ d "がそれぞれ格納されており、 したがって(xZ d +X d +2AZ d) (xXd+Zd)- 2AZd が計算される。 その結果がレジスタ T2に格納される。 ステップ 41 1 3 において T2 XZd + 1が計算される。 ここでレジスタ T2には(xZd+Xd +
2AZd) (xXd+Zd)— 2AZd 2力格系内されており、 した力 Sつて Zd +ェ((xZd+Xd +
2AZd) (xXd+Zd)-2AZd 2)が計算される。 その結果がレジスタ T 2に格納される。 ステップ 41 14において T2- T3が計算される。 ここでレジスタ Τ2には Zd + 1 ((xZd+Xd+2AZd) (xXd+Zd)-2AZdつがレジスタ T 3には Xd + (Xd- xZd) 2がそれぞれ格納されており、 した力 Sつて Zd+ ]L ((xZd+Xd+2AZd) (xXd + Zd)-2AZd 2)-Xd + 1 (Xd-xZd) 2が計算される。 その結果がレジスタ Yd Wに格納 される。 ステップ 41 1 5において 2BXyが計算され、 レジスタ に格納され る。 ステップ 41 16において XZdが計算される。 ここでレジスタ には 2Byが格納されており、 したがって 2ByZdが計算される。 その結果がレジスタ
に格納される。 ステップ 41 1 7において Τ XZd + 1が計算される。 ここ でレジスタ には 2ByZdが格納されており、 したがって 2ByZdZd+丄が計算さ れる。 その結果がレジスタ に格納される。 ステップ 41 1 8において T X Zdが計算される。 ここでレジスタ には 2ByZdZd + 1が格納されており、 した がって 2ByZdZd + 1Zdが計算される。 その結果がレジスタ T 3に格納される。 ス テツプ 41 1 9において T3Xsが計算される。 ここでレジスタ T3には 2ByZ d Z d + Z dカ格納されており、 した力 Sつて 2ByZ d Z d +丄 Z d s力 S計算される。 その結果がレジスタ Zd Wに格納される。 ステップ 4 1 2 0において T丄 XXd力 S 計算される。 ここでレジスタ には 2ByZdZd + 1が格納されており、 したがつ て 2ByZdZd + 1Xdが計算される。 その結果がレジスタ に格納される。 ステツ プ 41 2 1において Zd WX aが計算される。 ここでレジスタ Zd Wには 2ByZd Zd + 1Zds力 S格納されており、 したがって 2ByZdZd + 1Zdso;が計算される。 そ の結果が T3に格納される。 ステップ 4 1 2 2において T +Tgが計算される。 ここでレジスタ には 2ByZdZd + 1Xdがレジスタ T3には 2ByZdZd + 1Zdsひが それぞれ格納されており、 したがって 2ByZ dZd + χΧά +2ByZ dZd + 1Zdso;力 S計算 される。 その結果が Xd Wに格納される。 したがってレジスタ xdには 2ByZd Zd + 1Xd+2ByZdZd + 1Zdsaの値力 S格糸内されてレヽる。 Yd Wにはステップ 4 1 1 4ίこおレヽて Zd + 1 ((xZd+Xd+2AZd) (xXd+Zd)-2AZd ")-Xd + 2 (Xd-xZd) 2力 S格 納され、 その後更新が行なわれないので、 その値が保持されている。 Zri Wには
1 1 9において 2ByZdZd + 1Zds力 S格納され、 その後更新が行なわれ ないので、 その値が保持されている。 その結果として、 ワイエルシュトラス型楕 円曲線における射影座標 (X d w, Y d W, Z d の値が全て復元されている。
上記手順により与えられた x、 y、 Xd、 Zd、 Xd + 1、 Zd + 1からワイエルシュ トラス型楕円曲線におけるスカラ一倍点の射影座標 (X d w, Y d w, Z d w)における 値が全て復元される理由は以下の通りである。 点(d+l)Pは点 dPに点 Pを加算した 点である。 モンゴメリ型楕円曲線のァフィン座標における加算公式に代入すると、 数 6を得る。 点 P及ぴ点 dPはモンゴメリ型楕円曲線上の点であるので、 Byd 2 = xd 3+Axd +xd
Figure imgf000144_0001
消去し、 式を整理すると、 数 64をを得る。 ここで x d=Xd/Zd、 X d + 1 = Xd + 1/Zd + 1であり、 この値を代入することにより射影座標の値へと変換する と、 数 6 5を得る。 X d=Xd/Zdであるが、 逆元演算の回数を減らす目的で y d の分母と通分することにより、 数 6 6となる。 その結果として、
Yd=Zd+1[(Xd+xZd+2AZd) (Xdx+Zd)- 2Az ]- (Xd- xZd)2Xd + 1…数 81 とし、
Figure imgf000144_0002
+ 1Xd …数 82 Z'd=2ByZdZd + 1Zd …数 83
とすると(X, d,Y, d,Z, d) = (Xd,Yd,Zd)となる。 モンゴメリ型楕円曲線上の点と ワイエルシュトラス型楕円曲線上の点との対応関係については、 K. Okeya, H. Kurumatani, . Sakurai, Ellipticし urves with the Montgomery— Form and Their Cryptographic Applications, Public Key Cryptography, LNCS 1751
(2000) pp.238-257 に記載されている。 それによると、 変換パラメタを saとし て、 Yd w=Y' d、 xd w=x' d+aZd W、 及び Zd W=sZ' dという関係がある。 結果と して次の式を得る。
+ 1 [(Xd+xZd+2AZd) (Xdx+Zd)-2AZg]-(Xd-xZd) 2Xd + 1 …数 84 X^=2ByZdZd + 1Xd + aZl …数 85
Figure imgf000145_0001
…数 86
により更新すればよい。 ここで、 Xd W,Yd W,Zd Wは図 41の処理により与えら れている。 したがって、 ワイエルシュトラス型楕円曲線における射影座標
(Xd W,Yd W, Zd W)の値が全て復元されていることになる。
上記手順はステップ 4101、 ステップ 4105、 ステップ 4106、 ステツ プ 4108、 ステップ 41 10、 ステップ 41 1 1、 ステップ 411 3、 ステツ プ 41 1 5、 ステップ 41 16、 ステップ 41 1 7、 ステップ 4118、 ステツ プ 41 1 9、 ステップ 4120及ぴステップ 41 21において有限体上の乗算の 計算量を必要とする。 また、 ステップ 4104において有限体上の 2乗算の計算 量を必要とする。 有限体上の加算及び減算の計算量は、 有限体上の乗算の計算量、 2乗算の計算量と比べて比較的小さいので無視してもよレ、。 有限体上の乗算の計 算量を M、 有限体上の 2乗算の計算量を Sとすると、 上記手順は 14 M+ Sの計 算量を必要とする。 これは高速ス力ラ一倍計算の計算量と比べてはるかに小さレ、。 例えばスカラー値 dが 160ビットであれば、 高速スカラー倍計算の計算量はお およそ 1 500M弱と見積もられる。 S = 0. 8 Mと仮定すると座標復元の計算 量は 14. 8Mであり、 高速スカラー倍計算の計算量と比べてはるかに小さい。 したがって効率的に座標を復元できていることが示された。
尚、 上記手順をとらなくても、 上記計算式により与えられた Xd W、 Yd W、 Zd Wの値が計算できれば Xd W、 Yd w、 zd wの値が復元できる。 また、 ワイエル シュトラス型楕円曲線においてァフィン座標におけるスカラー倍点 dPを dP=
(XdW,ydW)とすると、 xaw、 yd wが上記計算式により与えられる値を取るよう に xd w、 Yd w、 zd wの値を選択し、 その値が計算できれば xd w、 Yd W、 zd wが 復元できる。 それらの場合においては一般的に復元に必要となる計算量が増大す る。 また、 モンゴメリ型楕円曲線のパラメタである A乃至は Bの値やモンゴメリ型 楕円曲線への変換パラメタ sの値を小さくとることにより、 ステップ 4106、 ステップ 41 15乃至はステップ 41 1 9における乗算の計算量を削減すること ができる。
次に、 スカラー値 d及ぴワイエルシュトラス型楕円曲線上の点 Pから、 Xd, Zd, xd + 1, zd + 1を出力するアルゴリズムについて説明する。
第 21実施例の高速スカラー倍計算部 202の高速スカラー倍計算方法として、 第 9実施例の高速スカラー倍計算方法を用いる。 これにより、 スカラー値 d及ぴ ワイエルシュトラス型楕円曲線上の点 Pから、 xd, zd, Xd + 1, Zd + 1を出力す るアルゴリズムとして、 高速であるアルゴリズムが達成される。 尚、 高速スカラ 一倍計算部 202において上記アルゴリズムを用いなくても、 スカラー値 d及び ワイエルシュトラス型楕円曲線上の点 pから、 xd, zd, xd + 1, zd + 1を出力す るアルゴリズムであり且つ高速であれば、 他のアルゴリズムを用いていもよレ、。 スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 14M+ Sであり、 これは高速スカラー倍計算部 202の高速スカラー倍計算 に必要な計算量の (9. 2 k— 3. 6) Mとに比べてはるかに小さい。 したがつ て、 スカラー倍計算部 1 03のスカラー倍計算に必要な計算量は、 高速スカラー 倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 S = 0. 8M と仮定すると、 この計算量はおおよそ (9. 2 k+ 1 1. 2) Mと見積もること ができる。 例えばスカラー値 dが 1 60ビット (k = 160) であれば、 このス カラー倍計算に必要な計算量は 1483Mとなる。 楕円曲線としてワイエルシュ トラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビアン座標を中心とした 混合座標系を用いたスカラー倍計算方法を用いて、 スカラー倍点をヤコビアン座 標として出力する場合に必要となる計算量はおおよそ 1600Mであり、 これと 比べて必要となる計算量は削減されている。 第 22実施例は入出力用の楕円曲線としてワイエルシュトラス型楕円曲線を、 内部の計算用には与えられたワイエルシュトラス型楕円曲線から変換可能である モンゴメリ型楕円曲線を用いたものである。 スカラー倍計算部 103力 S、 スカラ 一値 d及ぴワイエルシュトラス型楕円曲線上の点 Pから、 ワイエルシュ トラス型楕 円曲線におけるァフィン座標の点として完全な座標が与えられたスカラー倍点
(X dW,ydW)を計算し出力する。 スカラー値 d及びワイエルシュトラス型楕円曲 線上の点 Pをスカラー倍計算部 1 03に入力すると高速スカラー倍計算部 202 がそれを受け取る。 高速スカラー倍計算部 202は受け取ったスカラー値 dと与 えられたワイエルシュトラス型楕円曲線上の点 Pからモンゴメリ型楕円曲線にお いてァフィン座標で表されたスカラー倍点 dP=(xd,yd)の座標のうち xd、 ァフ ィン座標で表されたモンゴメリ型楕円曲線上の点(d+1) P= (X d + j, y d +丄)の座 標のうち xd + 1を計算し、 ァフィン座標で表された入力されたモンゴメリ型楕円 曲線上の点 P= (x, y)と共にその情報を座標復元部 203に与える。 座標復元部 2 03は与えられた座標の値 xd、 xd + 1、 x及び yよりワイエルシュトラス型楕円 曲線においてァフィン座標で表されたスカラー倍点 dP=(xd W,yd W)の座標 yd W の復元を行なう。 スカラー倍計算部 103はワイエルシュトラス型楕円曲線上で ァフィン座標において完全に座標が与えられたスカラー倍点(Xd W,yd W)を計算 結果として出力する。
次に図 42により、 座標 x、 y、 xd、 xd+ 1が与えられた場合に、 xd W、 yd W を出力する座標復元部の処理について説明する。
座標復元部 203では、 モンゴメリ型楕円曲線においてァフィン座標で表され たスカラ一倍点 dP= (xd,yd)の座標のうち xd、 ァフィン座標で表されたモンゴ メリ型楕円曲線上の点(01+1)?=( + 17(1+ 1)の座標のぅち + ;1、 スカラー 倍計算部 1 03に入力されたモンゴメリ型楕円曲線上の点 Pをァフィン座標で表 した (x,y)を入力し、 以下の手順でァフィン座標において完全な座標が与えられ たスカラー倍点 (xd W,yd W)を出力する。
ステップ 4201において xd Xxが計算され、 レジスタ T に格納される。 ス テツプ 4202において T i+1が計算される。 ここでレジスタ T には xdxが格 納されており、 したがって xdx+lが計算される。 その結果がレジスタ Τ に格納 される。 ステップ 4203において xd+xが計算され、 レジスタ T 2に格納され る。 ステップ 4204において T2+2Aが計算される。 ここでレジスタ T2には xd+xが格納されており、 したがって xd+x+2Aが計算される。 その結果がレジス タ T 2に格納される。 ステップ 4205において XT2が計算される。 ここ でレジスタ Τ には xdx+lがレジスタ Τ 2には xd+x+2Aがそれぞれ格納されてお り、 したがって(xdx+l) (xd+x+2A)が計算される。 その結果がレジスタ T に格 納される。 ステップ 4206において Τ^- 2Aが計算される。 ここでレジスタ T には(X d x+1) (X d +x+2A)が格納されており、 したがって(X d x+1) (X d +X+2A)一 2Aが計算される。 その結果がレジスタ に格納される。 ステップ 4207にお いて xd- Xが計算され、 レジスタ T 2に格納される。 ステップ 4208において T2の 2乗が計算される。 ここでレジスタ Τ 2には xd - Xが格納されており、 した がって(xd—x) 2が計算される。 その結果がレジスタ T 2に格納される。 ステツ プ 4209において T 2 Xxd + 1が計算される。 ここでレジスタ T 2には(xd— X) 2が格納されており、 したがって(xd— X) 2xd + 1が計算される。 その結果が レジスタ T 2に格納される。 ステップ 4210において - T 2が計算される。 ここでレジスタ T には(xdx+l) (xd+x+2A)- 2Aがレジスタ T 2には(xd— X) " xd + 1がそれぞれ格納されており、 したがって(xdx+l) (xd+x+2A)- 2A -(xd— X) 2xd + 1力 S計算される。 その結果がレジスタ に格納される。 ステップ 42 1 1において 2BXyが計算され、 レジスタ T 2に格納される。 ステップ 421 2 において T 2の逆元が計算される。 ここでレジスタ T 2には 2Byが格納されてお り、 したがって l/2Byが計算される。 その結果がレジスタ T2に格納される。 ス テツプ 4213において XT 2が計算される。 ここでレジスタ 1^には (X d x+1) (x d +x+2A) -2A- (xd— x) 2xd + 1がレジスタ T2には l/2Byがそれぞれ格 納されており、 したがって {(xdx+l) (xd+x+2A)-2A-(xd-x) xd+ 1}/2Byが計 算される。 その結果がレジスタ に格納される。 ステップ 4214において T! X (1/s)が計算される。 ここでレジスタ T ]_には {(xdx+l) (xd+x+2A)-2A-(xd -x) 2xd+ 1}/2Byが格納されており、 したがって {(xdx+l) (xd+x+2A) - 2A- (xd 一 x) 2xd + 1}/2Bysが計算される。 その結果がレジスタ yd Wに格納される。 ステ ップ 421 5において xd X (1/s)が計算され、 レジスタ T,に格納される。 ステ ップ 42 1 6において T i +ひが計算される。 ここでレジスタ T には xd/sが格 納されており、 したがって(xd/s) + o;が計算される。 その結果がレジスタ xd Wに 格納される。 したがってレジスタ xd には(xd/s) + aが格納されている。 レジス タ はステップ 42 14において {(xdx+l) (xd+x+2A)-2A-(xd-x) "
xd + 1}/2Bysが格納され、 その後更新されないので、 その値が保持されている。 上記手順によりスカラー倍点の y座標 ydが復元される理由は以下の通りである。 点(d+l)Pは点 dPに点 Pを加算した点である。 モンゴメリ型楕円曲線のァフィン座 標における加算公式に代入すると、 数 6を得る。 点 P及び点 dPはモンゴメリ型楕 円曲線上の点であるので、 Byd 2=xd °+Axd 2 1及ぴ87 3+ 2+ をみたす。 数 6に代入し、 By d 2及び By 2を消去し、 式を整理すると、 数 64を得る。 モン ゴメリ型楕円曲線上の点とワイエルシュトラス型楕円曲線上の点との対応関係に つレヽては、 K. Okeya, H. Kurumatani, K. Sakurai, Elliptic Curves with the Montgomery - Form and Their Cryptographic Applications, Public Key
Cryptography, LNCS 1751 (2000) pp.238-257 に記載されている。 それによると、 変換パラメタを s, αとして、 yd W=s— 及ぴ xd W=s— ^d + aの関係がある。 結果として数 87、 数 63を得る。
y 1= { (x d X + 1 ) (x d +x+2A) -2A- (xd~x)2xd + 1} / (2sBy) …数 8 7
ここで、 xd W yd Wは図 42により与えられる。 したがって、 ァフィン座標 (xd W, yd W)の値は全て復元されていることになる。
上記手順はステップ 420 1、 ステップ 420 5、 ステップ 4209、 ステツ プ 42 1 1、 ステップ 42 1 3、 ステップ 42 1 4及ぴステップ 42 1 5におい て有限体上の乗算の計算量を必要とする。 また、 ステップ 4208において有限 体上の 2乗算の計算量を必要とする。 さらにステップ 42 1 2において有限体上 の逆元演算の計算量を必要とする。 有限体上の加算及び減算の計算量は、 有限体 上の乗算の計算量、 2乗算の計算量、 逆元演算の計算量と比べて比較的小さいの で無視してもよい。 有限体上の乗算の計算量を M、 有限体上の 2乗算の計算量を S、 有限体上の逆元演算の計算量を Iとすると、 上記手順は 7 M+ S + Iの計算 量を必要とする。 これは高速スカラー倍計算の計算量と比べてはるかに小さい。 例えばスカラー値 dが 1 60ビットであれば、 高速スカラー倍計算の計算量はお およそ 1 500M弱と見積もられる。 S==0. 8M及ぴ I =4 OMと仮定すると 座標復元の計算量は 47. 8Mであり、 高速スカラー倍計算の計算量と比べては るかに小さレ、。 したがつて効率的に座標を復元できていることが示された。 尚、 上記手順をとらなくても、 上記等式の右辺の値が計算できれば yd Wの値 が復元できる。 その場合は一般的に復元に必要となる計算量が増大する。 また、 楕円曲線のパラメータである A乃至は Bやモンゴメリ型楕円曲線への変換パラメ一 タ sの値を小さくとることにより、 ステップ 4206、 ステップ 421 1、 ステ ップ 4214乃至はステップ 4215における乗算の計算量を削減することがで さる。
次に図 45により、 スカラー値 d及びワイエルシュトラス型楕円曲線上の点 Pか ら、 xd, xd + 1を出力する高速スカラー倍計算部の処理について説明する。 高速ス力ラ一倍計算部 202では、 スカラ一倍計算部 103に入力されたヮイエ ルシュトラス型楕円曲線上の点 Pを入力し、 以下の手順によりモンゴメリ型楕円 曲線においてァフィン座標で表されたス力ラ一倍点 dP= (xd,yd) 5 xd、 ァフ イン座標で表されたモンゴメリ型楕円曲線上の点(d+l)P=(xd + 1,yd + 1)のうち xd+ 1を出力する。 ステップ 4516として、 与えられたワイエルシュトラス型 楕円曲線上の点 Pをモンゴメリ型楕円曲線上で射影座標により表された点に変換 する。 この点をあらためて点 Pとする。 ステップ 4501として、 変数 Iに初期 値 1を代入する。 ステップ 4502として、 点 Pの 2倍点 2Pを計算する。 ここで 点 Pは射影座標において(x, y, 1)として表し、 モンゴメリ型楕円曲線の射影座標 における 2倍算の公式を用いて 2倍点 2Pを計算する。 ステップ 4503として、 スカラ一倍計算部 103に入力された楕円曲線上の点 Pとステップ 4502で求 めた点 2Pを、 点の組 (P,2P)として格納する。 ここで点 P及ぴ点 2Pは射影座標で表 されている。 ステップ 4504として、 変数 Iとスカラー値 dのビット長とがー 致するかどうかを判定し、 一致すればステップ 4515へ行く。 一致しなければ ステップ 4505へ行く。 ステップ 4505として、 変数 Iを 1増カ卩させる。 ス テツプ 4506として、 スカラー値の I番目のビットの値が 0であるか 1である かを判定する。 そのビットの値が 0であればステップ 4507へ行く。 そのビッ トの値が 1であればステップ 4510へ行く。 ステップ 4507として、 射影座 標により表された点の組 (mP, (m+1) P)から点 mPと点 (m+1) Pの加算 mP+ (m+1) Pを行な い、 点(2m+l)Pを計算する。 その後ステップ 4 5 0 8へ行く。 ここで、 加算 mP+(m+l)Pは、 モンゴメリ型楕円曲線の射影座標における加算公式を用いて計算 される。 ステップ 4508として、 射影座標により表された点の組 (mP (m+l)P) から点 mPの 2倍算 2 (mP)を行ない、 点 2mPを計算する。 その後ステップ 4509へ 行く。 ここで、 2倍算 2(mP)は、 モンゴメリ型楕円曲線の射影座標における 2倍 算の公式を用いて計算される。 ステップ 4509として、 ステップ 4508で求 めた点 2mPとステップ 4507で求めた点(2m+l)Pを点の組(2mP (2m+ 1 ) P)とし て、 点の組 (mP (m+l)P)の代わりに格納する。 その後ステップ 4504へ戻る。 ここで、 点 2mP、 点(2m+l)P、 点 mP及ぴ点(m+1) Pは全て射影座標において表されて いる。 ステップ 451 0として、 射影座標により表された点の組 (mP (m+DP) から点 mPと点 (m+l)Pの加算 mP+(m+l)Pを行ない、 点(2m+l)Pを計算する。 その後ス テツプ 451 1へ行く。 ここで、 加算 mP+(m+l)Pは、 モンゴメリ型楕円曲線の射 影座標における加算公式を用いて計算される。 ステップ 451 1として、 射影座 標により表された点の組 (mP (m+ 1 ) P)から点 (m+ 1 ) Pの 2倍算 2 ((m+1) P)を行な い、 点(2m+2)Pを計算する。 その後ステップ 45 1 2へ行く。 ここで、 2倍算 2((m+l)P)は、 モンゴメリ型楕円曲線の射影座標における 2倍算の公式を用いて 計算される。 ステップ 4512として、 ステップ 4510で求めた点(2m+l)Pと ステップ 451 1で求めた点(2m+2)Pを点の組((2m+l)P, (2m+2) P)として、 点の 組 (mP (m+1) Pの代わりに格納する。 その後ステップ 4504へ戻る。 ここで、 点 (2m+l)P、 点(2m+2)P、 点 mP及び点 (m+l)Pは全て射影座標において表されている。 ステップ 4515として、 射影座標で表された点 mP=(Xm Ym Zm)より Xm及ぴ Zm をそれぞれ X d及び Z dとし、 射影座標で表された点 (m+1) P=(Xm+ 1,Ym+ 1, Zm+ 1)より Xm+ 1及び Zm+ 1をそれぞれ Xd + 1及び Zd + 1とする。 ここで、 Ym 及ひ Ym+ 1は、 モンゴメリ型楕円曲線の射影座標における加算公式及び 2倍算の 公式では Y座標を求める事ができないので、 求まっていない。 xd, zd xd + 1,
Zd+1より、 xd—AdZd+ l/ d d+ 1 x d + 1 =Z dA d + 1ノ2 d A d + 1として x d xd + 1を求める。 その後ステップ 451 3へ行く。 ステップ 4513として、 xd, xd + 1を出力する。 上記手順により、 πιとスカラー値 dはビット長が等しく さらにそのビットのパターンも同じとなる為、 等しくなる。
モンゴメリ型楕円曲線の射影座標における加算公式の計算量は、 Ζ;^1ととる ことにより 3 Μ+ 2 Sとなる。 ここで Μは有限体上の乗算の計算量、 Sは有限体 上の 2乗算の計算量である。 モンゴメリ型楕円曲線の射影座標における 2倍算の 公式の計算量は、 3Μ+ 2 Sである。 スカラー値の I番目のビットの値が 0であ れば、 ステップ 4507において加算の計算量、 ステップ 4508において 2倍 算の計算量が必要となる。 すなわち 6 Μ+ 4 Sの計算量が必要となる。 スカラー 値の I番目のビットの値が 1であれば、 ステップ 4510において加算の計算量、 ステップ 451 1において 2倍算の計算量が必要となる。 すなわち 6M+4 Sの 計算量が必要である。 いずれの場合においても 6 Μ+ 4 Sの計算量が必要である。 ステップ 4504、 ステップ 4505、 ステップ 4506、 ステップ 4507、 ステップ 4508、 ステップ 4509乃至はステップ 4504、 ステップ 450 5、 ステップ 4506、 ステップ 4510、 ステップ 451 1、 ステップ 45 1 2の繰り返しの回数は、 (スカラー値 dのビット長) 一 1回となるので、 ステツ プ 4502での 2倍算の計算量及ぴステップ 451 5でのァフィン座標への変換 の計算量を考慮に入れると、 全体の計算量は (6M+4S) k + 3M— 2 S+ I となる。 ここで kはスカラー値 dのビット長である。 一般的には、 計算量 Sは、 S = 0. 8M程度、 計算量 Iは I =40M程度と見積もられるので、 全体の計算 量はおおよそ (9. 2 k + 41. 4) Mとなる。 例えばスカラー値 dが 1 60ビ ット (k = l 60) であれば、 上記手順のアルゴリズムの計算量はおおよそ 1 5 1 3Mとなる。 スカラー値 dのビットあたりの計算量としてはおよそ 9. 2Mと なる。 A. Miyaji, T. Ono, H. Cohen, Efficient elliptic curve exponentiation using mixed coordinates, Advances in Cryptology Proceedings of
ASIACRYPT' 98, LNCS 1514 (1998) pp.51-65 には、 ワイエルシュトラス型楕円曲 線において、 ウィンドウ法を用いてヤコビアン座標を中心とした混合座標系を用 いたスカラー倍計算方法は高速なスカラー倍計算方法として記載されている。 こ の場合においては、 スカラー値のビットあたりの計算量はおおよそ 10Mと見積 もられ、 これ以外にァフィン座標への変換の計算量が必要となる。 例えばスカラ 一値 dが 1 60ビット (k = 1 60) であれば、 このスカラー倍計算方法の計算 量はおおよそ 1640Mとなる。 したがって、 上記手順のアルゴリズムの方が計 算量が少なく高速といえる。
尚、 高速スカラー倍計算部 202において上記手順のアルゴリズムを用いなく ても、 スカラー値 d及ぴワイエルシュトラス型楕円曲線上の点 Pから、 xd, xd + 1を出力するアルゴリズムであり且つ高速であれば、 他のアルゴリズムを用 いていもよい。
スカラー倍計算部 103における座標復元部 203の座標復元に必要な計算量 は 7M+S+ Iであり、 これは高速スカラー倍計算部 202の高速スカラー倍計 算に必要な計算量の (9. 2 k + 41. 4) Mとに比べてはるかに小さレ、。 した がって、 スカラー倍計算部 103のスカラー倍計算に必要な計算量は、 高速スカ ラー倍計算部の高速スカラー倍計算に必要な計算量とほぼ同等である。 1 =40 M、 S = 0. 8Mと仮定すると、 この計算量はおおよそ (9. 2 k + 89. 2) Mと見積もることができる。 例えばスカラー値 dが 1 60ビット (k= 160) であれば、 このスカラー倍計算に必要な計算量は 1 561Mとなる。 楕円曲線と してワイエルシュトラス型楕円曲線を使用し、 ウィンドウ法を用いてヤコビアン 座標を中心とした混合座標系を用いたスカラー倍計算方法を用いて、 スカラー倍 点をァフィン座標として出力する場合に必要となる計算量はおおよそ 1640M であり、 これと比べて必要となる計算量は削減されている。
以上、 図 1に示した暗号 Z復号処理装置を復号化処理を行う装置として第 1か ら第 22の実施例を説明したが、 同様に暗号化処理を行う装置としても利用でき る。 その場合には、 既に説明したように喑号 Z復号処理装置のスカラー倍計算部
103は、 既に説明した楕円曲線上の点 Q、 乱数 kによるスカラー倍点と、 公開 鍵 a Qと乱数 kによるスカラー倍点を出力する。 このとき、 実施例 1から 22で 説明したスカラー値 dを乱数 k、 楕円曲線上の点 Pを楕円曲線上の点 Q、 公開鍵 a Qとして同様の処理を行うことにより、 それぞれのスカラー倍点を求めること ができる。
尚、 図 1に示した暗号/復号処理装置は、 暗号化、 複号化の両方を行えるよう に示したが、 暗号化の処理のみ、 あるいは復号化の処理のみを行えるように構成 また、 第 1から第 2 2の実施例で説明した処理については、 コンピュータ読み 取り可能な記憶媒体に格納されたプログラムであってもよい。 この場合は、 その プログラムを図 1の記憶部へ読み込み、 処理部である C P Uなどの演算装置がこ のプログラムに従って、 処理を行う。
図 2 7は、 図 1の暗号処理システムにおける秘密情報を用いた暗号処理におい て、 スカラー倍点の完全な座標を与え且つ高速なスカラー倍計算方法の実施例を 示す図である。 図 3 3は、 図 2 7のスカラー倍計算方法の実施例における処理の 流れを示すフローチャートである。
図 3 3において、 図 2 7のスカラー倍計算部 2 7 0 1は以下のようにして、 ス カラー値及ぴワイエルシュトラス型楕円曲線上の点から、 ワイエルシュトラス型 楕円曲線上で完全な座標が与えられたスカラー倍点を計算し出力する。 スカラー 値及ぴワイエルシュトラス型楕円曲線上の点をスカラー倍計算部 2 7 0 1に入力 すると、 楕円曲線変換部 2 7 0 4がワイエルシュトラス型楕円曲線上の点をモン ゴメリ型楕円曲線上の点に変換する。 (ステップ 3 3 0 1 ) 。 高速スカラー倍計 算部 2 7 0 2はス力ラ一倍計算部 2 7 0 1に入力されたスカラ一値及ぴ楕円曲線 変換部 2 7 0 4が変換したモンゴメリ型楕円曲線上の点を受け取る (ステップ 3 3 0 2 ) 。 高速スカラー倍計算部 2 7 0 2は受け取ったスカラー値とモンゴメリ 型楕円曲線上の点からモンゴメリ型楕円曲線上のスカラー倍点の座標の一部の値 を計算し (ステップ 3 3 0 3 ) 、 その情報を座標復元部 2 7 0 3に与える (ステ ップ 3 3 0 4 ) 。 座標復元部 2 7 0 3は与えられたモンゴメリ型楕円曲線上のス カラー倍点の情報及び楕円曲線変換部 2 7 0 4により変換されたモンゴメリ型楕 円曲線上の点よりモンゴメリ型楕円曲線上のスカラー倍点の座標の復元を行なう (ステップ 3 3 0 5 ) 。 楕円曲線逆変換部 2 7 0 5は、 座標復元部 2 7 0 3によ り復元されたモンゴメリ型楕円曲線上のスカラー倍点をワイエルシュトラス型楕 円曲線上のスカラー倍点に変換する (ステップ 3 3 0 6 ) 。 スカラー倍計算部 2 7 0 1はワイエルシュトラス型楕円曲線上で完全に座標が与えられたスカラー倍 点を計算結果として出力する。 (ステップ 3 3 0 7 ) 。
スカラー倍計算部 2 7 0 1における高速スカラー倍計算部 2 7 0 2及び座標復 元部 2 7 0 3が実行するモンゴメリ型楕円曲線上のスカラー倍計算は、 上述した 第 1〜第 5及び第 1 4〜第 1 6実施例で説明したモンゴメリ型楕円曲線上におけ るスカラ一倍計算方法がそのまま適応される。 したがつてこのスカラ一倍計算は、 スカラー倍点の完全な座標を与え且つ高速なスカラー倍計算方法である。
図 2 2は、 図 1の本実施形態の暗号処理システムを署名作成装置として利用す る場合の構成を示す。 図 1の暗号処理部 1 0 2は、 図 2 2の署名作成装置 2 2 0 1では署名部 2 2 0 2になる。 図 2 8は、 図 2 2の署名作成装置における処理の 流れを示すフローチャートである。 図 2 9は、 図 2 2の署名作成装置における処 理の流れを示すシーケンス図である。
図 2 8において、 署名作成装置 2 2 0 1は以下のようにして、 与えられたメッ セージ 2 2 0 5から署名が付随しているメッセージ 2 2 0 6を出力する。 メッセ ージ 2 2 0 5を署名作成装置 2 2 0 1に入力すると署名部 2 2 0 2がそれを受け 取る (ステップ 2 8 0 1 ) 。 署名部 2 2 0 2はスカラー倍計算部 2 2 0 3に受け 取ったメッセージ 2 2 0 5に応じて楕円曲線上の点を与える (ステップ 2 8〇 2 ) 。 スカラー倍計算部 2 2 0 3は秘密情報格納部 2 2 0 4より秘密情報である スカラー値を受け取る (ステップ 2 8 0 3 ) 。 スカラー倍計算部 2 2 0 3は受け 取った楕円曲線上の点とスカラー値よりスカラー倍点を計算し (ステップ 2 8 0 4 ) 、 そのスカラー倍点を署名部 2 2 0 2に送る (ステップ 2 8 0 5 ) 。 署名部 2 2 0 2はスカラー倍計算部 2 2 0 3より受け取ったスカラー倍点をもとにして 署名作成処理を行なう (ステップ 2 8 0 6 ) 。 その結果を署名が付随したメッセ ージ 2 2 0 6として出力する (ステップ 2 8 0 7 ) 。
上記処理手順を図 2 9のシーケンス図を用いて説明する。 まず、 署名部 2 9 0 1 (図 2 2の 2 2 0 2 ) の実行する処理について説明する。 署名部 2 9 0 1は、 入力メッセージを受け取る。 署名部 2 9 0 1は、 入力メッセージをもとに楕円曲 線上の点を選び、 スカラー倍計算部 2 9 0 2に楕円曲線上の点を与え、 そしてス カラー倍計算部 2 9 0 2からスカラー倍点を受け取る。 署名部 2 9 0 1は、 受け 取ったスカラー倍点を用いて署名作成処理を行ない、 その結果を出カメッセージ として出力する。
次にスカラー倍計算部 2 9 0 2 (図 2 2の 2 2 0 3 ) の実行する処理について 説明する。 スカラー倍計算部 2 9 0 2は、 署名部 2 9 0 1より楕円曲線上の点を 受け取る。 スカラー倍計算部 2 9 0 2は、 秘密情報格納部 2 9 0 3よりスカラー 値を受け取る。 スカラー倍計算部 2 9 0 2は、 受け取った楕円曲線上の点及びス カラー値から、 完全な座標を与え且つ高速なスカラー倍計算方法により、 スカラ 一倍点を計算し、 署名部 2 9 0 1にスカラー倍点を送る。
最後に秘密情報格納部 2 9 0 3 (図 2 2の 2 2 0 4 ) の実行する処理について 説明する。 秘密情報格納部 2 9 0 3は、 スカラー倍計算部 2 9 0 2がスカラー倍 を計算できるように、 スカラー値をスカラー倍計算部 2 9 0 2に送る。
スカラ一倍計算部 2 2 0 3が実行するスカラ一倍計算は、 上述した第 1〜第 2 2実施例で説明したものがそのまま適応される。 したがつてこのスカラ一倍計算 は、 スカラー倍点の完全な座標を与え且つ高速なスカラー倍計算方法である。 そ のため署名部 2 2 0 2において、 署名作成処理を行なう際に、 スカラー倍点の完 全な座標を用いることができ、 その上高速に実行できる。
図 2 3は、 図 1の本実施形態の暗号処理システムを復号化装置として利用する 場合の構成を示す。 図 1の暗号処理部 1 0 2は、 図 2 3の復号化装置 2 3 0 1で は復号部 2 3 0 2になる。 図 3 0は、 図 2 3の復号化装置における処理の流れを 示すフローチャートである。 図 3 1は、 図 2 3の復号化装置における処理の流れ を示すシーケンス図である。
図 3 0において、 復号装置 2 3 0 1は以下のようにして、 与えられたメッセ一 ジ 2 3 0 5から復号化されたメッセージ 2 3 0 6を出力する。 メッセージ 2 3 0 5を復号装置 2 3 0 1に入力すると復号部 2 3 0 2がそれを受け取る (ステップ 3 0 0 1 ) 。 復号部 2 3 0 2はスカラー倍計算部 2 3 0 3に受け取ったメッセー ジ 2 3 0 5に応じて楕円曲線上の点を与える (ステップ 3 0 0 2 ) 。 スカラー倍 計算部 2 3 0 3は秘密情報格納部 2 3 0 4より秘密情報であるスカラー値を受け 取る (ステップ 3 0 0 3 ) 。 スカラー倍計算部 2 3 0 3は受け取った楕円曲線上 の点とスカラー値よりスカラー倍点を計算し (ステップ 3 0 0 4 ) 、 そのスカラ 一倍点を復号部 2 3 0 2に送る (ステップ 3 0 0 5 ) 。 復号部 2 3 0 2はスカラ 一倍計算部 2 3 0 3より受け取ったスカラー倍点をもとにして復号化処理を行な う (ステップ 3 0 0 6 ) 。 その結果を復号化されたメッセージ 2 3 0 6として出 力する (ステップ 3 0 0 7 ) 。 上記処理手順を図 3 1のシーケンス図を用いて説明する。 まず、 復号化部 3 1 0 1 (図 2 3の 2 3 0 2 ) の実行する処理について説明する。 復号化部 3 1 0 1 は、 入力メッセージを受け取る。 復号化部 3 1 0 1は、 入力メッセージをもとに 楕円曲線上の点を選び、 スカラー倍計算部 3 1 0 2に楕円曲線上の点を与え、 そ してスカラー倍計算部 3 1 0 2からスカラー倍点を受け取る。 復号化部 3 1 0 1 は、 受け取ったスカラー倍点を用いて復号ィ匕処理を行ない、 その結果を出力メッ セージとして出力する。
次にスカラー倍計算部 3 1 0 2 (図 2 3の 2 3 0 3 ) の実行する処理について 説明する。 スカラー倍計算部 3 1 0 2は、 複号化部 3 1 0 1より楕円曲線上の点 を受け取る。 スカラー倍計算部 3 1 0 2は、 秘密情報格納部 3 1 0 3よりスカラ 一値を受け取る。 スカラー倍計算部 3 1 0 2は、 受け取った楕円曲線上の点及び スカラー値から、 完全な座標を与え且つ高速なスカラー倍計算方法により、 スカ ラー倍点を計算し、 複号化部 3 1 0 1にスカラー倍点を送る。
最後に秘密情報格納部 3 1 0 3 (図 2 3の 2 3 0 4 ) の実行する処理について 説明する。 秘密情報格納部 3 1 0 3は、 スカラー倍計算部 3 1 0 2がスカラー倍 を計算できるように、 スカラー値をスカラー倍計算部 3 1 0 2に送る。
スカラー倍計算部 2 3 0 3が実行するスカラー倍計算は、 上述した第 1〜第 2 2実施例で説明したものがそのまま適応される。 したがつてこのスカラ一倍計算 は、 スカラー倍点の完全な座標を与え且つ高速なスカラー倍計算方法である。 そ のため復号部 2 3 0 2において、 復号化処理を行なう際に、 スカラー倍点の完全 な座標を用いることができ、 その上高速に実行できる。
以上述べたように本発明によれば、 暗号処理システムにおける秘密情報を用い た暗号処理にぉレ、て用いられるスカラ一倍計算が高速化されており、 暗号処理の 高速化が計れる。 また、 スカラー倍点の座標を完全に与えることができるので、 全ての暗号処理を行なうことができる。

Claims

請 求 の 範 囲
1. 楕円曲線暗号における標数 5以上の有限体上定義された楕円曲線において、 スカラ一値及ぴ楕円曲線上の点からスカラ一倍点を計算するスカラ一倍計算方法 であって、
前記ス力ラ一倍点の部分情報を計算するステップと、 前記ス力ラ一倍点の部分 情報から完全な座標を復元するステップとを有するスカラ一倍計算方法。
2. 楕円曲線暗号における標数 5以上の有限体上定義された楕円曲線において、 スカラ一値及び楕円曲線上の点からスカラ一倍点を計算するスカラ一倍計算方法 であって、
前記スカラー倍点の部分情報を計算するステップと、 前記スカラー倍点の部分 情報からァフィン座標にお!/、て完全な座標を復元するステツプとを有するスカラ 一倍計算方法。
3. 楕円曲線暗号における標数 5以上の有限体上定義された楕円曲線において、 スカラ一値及ぴ楕円曲線上の点からスカラ一倍点を計算するスカラ一倍計算方法 であって、 前記スカラー倍点の部分情報を計算するステップと、 前記スカラー 倍点の部分情報から射影座標において完全な座標を復元するステップとを有する スカラー倍計算方法。
4. 楕円曲線暗号における標数 5以上の有限体上定義されたモンゴメリ型楕円 曲線において、 スカラー値及びモンゴメリ型楕円曲線上の点からスカラー倍点を 計算するスカラ一倍計算方法であって、
前記スカラー倍点の部分情報を計算するステツプと、 前記スカラー倍点の部分 情報から完全な座標を復元するステップとを有するスカラ一倍計算方法。
5. 楕円曲線暗号における標数 5以上の有限体上定義されたワイエルシュトラ ス型楕円曲線において、 スカラー値及びワイエルシュトラス型楕円曲線上の点か らスカラ一倍点を計算するス力ラ一倍計算方法であつて、
前記スカラ一倍点の部分情報を計算するステップと、 前記スカラ一倍点の部分 情報から完全な座標を復元するステツプとを有するスカラ一倍計算方法。
6. 楕円曲線暗号における標数 5以上の有限体上定義されたモンゴメリ型楕円 曲線において、 スカラー値及びモンゴメリ型楕円曲線上の点からスカラー倍点を 計算するスカラ一倍計算方法であって、 前記スカラ一倍点の部分情報を計算す るステップと、 前記スカラー倍点の部分情報として射影座標で与えられた前記ス 力ラ一倍点の X座標及び Z座標並びに前記ス力ラ一倍点と前記モンゴメリ型楕円 曲線上の点を加算した点の射影座標における X座標及ぴ Z座標を与え、 ァフィン 座標にぉレヽて完全な座標を復元するステツプとを有するス力ラ一倍計算方法。
7. 楕円曲線暗号における標数 5以上の有限体上定義されたモンゴメリ型楕円 曲線において、 スカラー値及ぴモンゴメリ型楕円曲線上の点からスカラー倍点を 計算するスカラ一倍計算方法であって、
前記スカラー倍点の部分情報を計算するステップと、 前記スカラー倍点の部分 情報として射影座標で与えられた前記スカラー倍点の X座標及び z座標並びに前 記スカラー倍点と前記モンゴメリ型楕円曲線上の点を加算した点の射影座標にお ける X座標及ぴ z座標を与え、 射影座標において完全な座標を復元するステップ とを有するスカラ一倍計算方法。
8. 楕円曲線暗号における標数 5以上の有限体上定義されたモンゴメリ型楕円 曲線において、 スカラ一値及ぴモンゴメリ型楕円曲線上の点からスカラ一倍点を 計算するスカラ一倍計算方法であって、
前記スカラー倍点の部分情報を計算するステップと、 前記スカラー倍点の部分 情報として射影座標で与えられた前記スカラー倍点の X座標及び Z座標、 前記ス カラー倍点と前記モンゴメリ型楕円曲線上の点を加算した点の射影座標における X座標及ぴ z座標並びに前記スカラー倍点と前記モンゴメリ型楕円曲線上の点を 減算した点の射影座標における X座標及び Z座標を与え、 ァフィン座標において 完全な座標を復元するステップとを有するスカラ一倍計算方法。
9. 楕円曲線暗号における標数 5以上の有限体上定義されたモンゴメリ型楕円 曲線において、 スカラー値及びモンゴメリ型楕円曲線上の点からスカラー倍点を 計算するス力ラ一倍計算方法であつて、
前記スカラー倍点の部分情報を計算するステップと、 前記スカラー倍点の部分 情報として射影座標で与えられた前記スカラー倍点の X座標及び Z座標、 前記ス 力ラ一倍点と前記モンゴメリ型楕円曲線上の点を加算した点の射影座標における x座標及び z座標並びに前記ス力ラ一倍点と前記モンゴメリ型楕円曲線上の点を 減算した点の射影座標における X座標及ぴ Z座標を与え、 射影座標において完全 な座標を復元するステップとを有するスカラ一倍計算方法。
10. 楕円曲線暗号における標数 5以上の有限体上定義されたモンゴメリ型楕円 曲線において、 スカラー値及ぴモンゴメリ型楕円曲線上の点からスカラー倍点を 計算するスカラ一倍計算方法であって、
前記スカラー倍点の部分情報を計算するステツプと、 前記スカラー倍点の部分 情報としてァフィン座標で与えられた前記スカラー倍点の X座標、 前記スカラー 倍点と前記モンゴメリ型楕円曲線上の点を加算した点のァフィン座標における X 座標並びに前記スカラー倍点と前記モンゴメリ型楕円曲線上の点を減算した点の ァフィン座標における X座標を与え、 ァフィン座標において完全な座標を復元す るステップとを有するスカラ一倍計算方法。
11. 楕円曲線暗号における標数 5以上の有限体上定義されたワイエルシュトラ ス型楕円曲線において、 スカラー値及ぴワイエルシュトラス型楕円曲線上の点か らスカラー倍点を計算するスカラー倍計算方法であって、 - 前記ス力ラ一倍点の部分情報を計算するステップと、 前記スカラ一倍点の部分 情報として射影座標で与えられた前記スカラー倍点の X座標及び Z座標、 前記ス 力ラ一倍点と前記ワイエルシュトラス型楕円曲線上の点を加算した点の射影座標 における X座標及ぴ Z座標並びに前記ス力ラ一倍点と前記ワイエルシュトラス型 楕円曲線上の点を減算した点の射影座標における X座標及び Z座標を与え、 ァフ ィン座標において完全な座標を復元するステップとを有するスカラー倍計算方法。
12. 楕円曲線暗号における標数 5以上の有限体上定義されたワイエルシュトラ ス型楕円曲線において、 スカラー値及ぴワイエルシュトラス型楕円曲線上の点か らスカラ一倍点を計算するスカラ一倍計算方法であって、
前記スカラー倍点の部分情報を計算するステップと、 前記スカラー倍点の部分 情報として射影座標で与えられた前記スカラー倍点の X座標及び Z座標、 前記ス カラ 倍点と前記ワイエルシュトラス型楕円曲線上の点を加算した点の射影座標 における X座標及ぴ Z座標並びに前記ス力ラ一倍点と前記ワイエルシュトラス型 楕円曲線上の点を減算した点の射影座標における X座標及び Z座標を与え、 射影 座標において完全な座標を復元するステップとを有するスカラー倍計算方法。
13. 楕円曲線暗号における標数 5以上の有限体上定義されたワイエルシュトラ ス型楕円曲線において、 スカラー値及びワイエルシュトラス型楕円曲線上の点か らスカラー倍点を計算するスカラ一倍計算方法であって、
前記スカラー倍点の部分情報を計算するステップと、 前記スカラー倍点の部分 情報としてァフィン座標で与えられた前記スカラー倍点の X座標、 前記スカラー 倍点と前記ワイエルシュトラス型楕円曲線上の点を加算した点のァフィン座標に おける X座標並びに前記スカラー倍点と前記ワイエルシュトラス型楕円曲線上の 点を減算した点のァフィン座標における X座標を与え、 ァフィン座標において完 全な座標を復元するステップとを有するスカラ一倍計算方法。
14. 楕円曲線喑号における標数 5以上の有限体上定義されたワイエルシュトラ ス型楕円曲線において、 スカラー値及びワイエルシュトラス型楕円曲線上の点か らスカラ一倍点を計算するスカラ一倍計算方法であって、
前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円曲線に変換するステツ プと、 モンゴメリ型楕円曲線におけるスカラー倍点の部分情報を計算するステツ プと、 前記モンゴメリ型楕円曲線におけるスカラ一倍点の部分情報からワイエル シュトラス型楕円曲線において完全な座標を復元するステップとを有するスカラ 一倍計算方法。
15. 楕円曲線暗号における標数 5以上の有限体上定義されたワイエルシュトラ ス型楕円曲線において、 スカラー値及びワイエルシュトラス型楕円曲線上の点か らスカラ一倍点を計算するスカラ一倍計算方法であって、
前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円曲線に変換するステツ プと、 モンゴメリ型楕円曲線におけるスカラー倍点の部分情報を計算するステツ プと、 前記モンゴメリ型楕円曲線におけるスカラー倍点の部分情報からモンゴメ リ型楕円曲線において完全な座標を復元するステップと、 前記モンゴメリ型楕円 曲線において完全な座標が復元されたスカラー倍点からワイエルシュトラス型楕 円曲線におけるスカラ一倍点を計算するステップとを有するスカラ一倍計算方法。
16. 楕円曲線暗号における標数 5以上の有限体上定義されたワイエルシュトラ ス型楕円曲線において、 スカラー値及ぴワイエルシュトラス型楕円曲線上の点か らスカラ一倍点を計算するスカラ一倍計算方法であって、
前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円曲線に変換するステツ プと、 モンゴメリ型楕円曲線におけるスカラー倍点の部分情報を計算するステツ プと、 前記モンゴメリ型楕円曲線におけるスカラー倍点の部分情報としてモンゴ メリ型楕円曲線において射影座標で与えられたスカラー倍点の X座標及び Z座標 並びに前記ス力ラ一倍点とモンゴメリ型楕円曲線上の点を加算した点の射影座標 における X座標及ぴ Z座標を与え、 ワイエルシュトラス型楕円曲線においてァフ ィン座標における完全な座標を復元するステップとを有するスカラ一倍計算方法。
17. 楕円曲線喑号における標数 5以上の有限体上定義されたワイエルシュトラ ス型楕円曲線において、 スカラー値及びワイエルシュトラス型楕円曲線上の点か らスカラ一倍点を計算するスカラ一倍計算方法であって、
前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円曲線に変換するステツ プと、 モンゴメリ型楕円曲線におけるスカラー倍点の部分情報を計算するステツ プと、 前記モンゴメリ型楕円曲線におけるスカラー倍点の部分情報としてモンゴ メリ型楕円曲線において射影座標で与えられたスカラー倍点の X座標及び Z座標 並びに前記ス力ラ一倍点とモンゴメリ型楕円曲線上の点を加算した点の射影座標 における X座標及び Z座標を与え、 ワイエルシュトラス型楕円曲線において射影 座標における完全な座標を復元するステップとを有するスカラ一倍計算方法。
18. 楕円曲線暗号における標数 5以上の有限体上定義されたワイエルシュトラ ス型楕円曲線において、 スカラー値及ぴワイエルシュトラス型楕円曲線上の点か らスカラ一倍点を計算するスカラ一倍計算方法であつて、
前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円曲線に変換するステツ プと、 モンゴメリ型楕円曲線におけるスカラー倍点の部分情報を計算するステツ プと、 前記モンゴメリ型楕円曲線におけるスカラー倍点の部分情報としてモンゴ メリ型楕円曲線において射影座標で与えられたスカラー倍点の X座標及ぴ Z座標、 前記スカラー倍点とモンゴメリ型楕円曲線上の点を加算した点の射影座標におけ る X座標及び z座標並びに前記ス力ラ一倍点とモンゴメリ型楕円曲線上の点を減 算した点の射影座標における X座標及び Z座標を与え、 ワイエルシュトラス型楕 円曲線においてァフィン座標における完全な座標を復元するステップとを有する スカラー倍計算方法。
19. 楕円曲線暗号における標数 5以上の有限体上定義されたワイエルシュトラ ス型楕円曲線において、 スカラー値及びワイエルシュトラス型楕円曲線上の点か らスカラ一倍点を計算するスカラ一倍計算方法であって、
前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円曲線に変換するステツ プと、 モンゴメリ型楕円曲線におけるスカラー倍点の部分情報を計算するステツ プと、 前記モンゴメリ型楕円曲線におけるスカラー倍点の部分情報としてモンゴ メリ型楕円曲線において射影座標で与えられたスカラ一倍点の X座標及び Z座標、 前記スカラー倍点とモンゴメリ型楕円曲線上の点を加算した点の射影座標におけ る X座標及ぴ Z座標並びに前記スカラー倍点とモンゴメリ型楕円曲線上の点を減 算した点の射影座標における X座標及び Z座標を与え、 ワイエルシュトラス型楕 円曲線において射影座標における完全な座標を復元するステップとを有するス力 ラー倍計算方法。
20. 楕円曲線暗号における標数 5以上の有限体上定義されたワイエルシュトラ ス型楕円曲線において、 スカラー値及ぴワイエルシュトラス型楕円曲線上の点か らスカラ一倍点を計算するスカラ一倍計算方法であって、
前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円曲線に変換するステツ プと、 モンゴメリ型楕円曲線におけるスカラー倍点の部分情報を計算するステツ プと、 前記モンゴメリ型楕円曲線におけるスカラー倍点の部分情報としてモンゴ メリ型楕円曲線においてァフィン座標で与えられたスカラー倍点の X座標、 前記 スカラー倍点とモンゴメリ型楕円曲線上の点を加算した点のァフィン座標におけ る X座標並びに前記スカラー倍点とモンゴメリ型楕円曲線上の点を減算した点の ァフィン座標における X座標を与え、 ワイエルシュトラス型楕円曲線においてァ フィン座標における完全な座標を復元するステップとを有するスカラ一倍計算方 法。
21. 第 1のデータから第 2のデータを生成するデータ生成方法であって、 請求 項 1から 2 0の何れか一つに記載のスカラー倍計算方法を用いてスカラー倍を計 算するステップを有することを特徴とするデータ生成方法。
22. データから署名データを生成する署名生成方法であって、 請求項 1から 2 0の何れか一つに記載のス力ラ一倍計算方法を用いてスカラ一倍を計算するステ ップを有することを特徴とする署名生成方法。
23. 暗号化されたデータから複号化されたデータを生成する複号化方法であつ て、 請求項 1から 2 0の何れか一つに記載のスカラー倍計算方法を用いてスカラ 一倍を計算するステップを有することを特徴とする復号化方法。
24. 楕円曲線暗号における標数 5以上の有限体上定義された楕円曲線において、 スカラ一値及び楕円曲線上の点からスカラ一倍点を計算するスカラ一倍計算部で あって、
前記スカラー倍点の部分情報を計算する高速スカラー倍計算部と、 前記スカラ 一倍点の部分情報から完全な座標を復元する座標復元部とを有し、
前記スカラー倍計算部は、 高速スカラー倍計算部により前記スカラー倍点の部 分情報を計算した後、 座標復元部により前記スカラー倍点の部分情報から完全な 座標を復元し、 スカラー倍点を計算することを特徴とする。
25. 楕円曲線暗号における標数 5以上の有限体上定義された楕円曲線において、 スカラー値及びワイエルシュトラス型楕円曲線上の点からスカラー倍点を計算す るスカラ一倍計算部であつて、
前記ワイエルシュトラス型楕円曲線をモンゴメリ型楕円曲線に変換する楕円曲 線変換,部と、 前記スカラー倍点の部分情報を計算する高速スカラー倍計算部と、 前記スカラー倍点の部分情報から完全な座標を復元する座標復元部と、 モンゴメ リ型楕円曲線をワイエルシュトラス型楕円曲線に変換する楕円曲線逆変換部とを 有し、
前記スカラー倍計算部は、 楕円曲線変換部により前記ワイエルシュトラス型楕 円曲線をモンゴメリ型楕円曲線に変換し、 高速スカラー倍計算部によりモンゴメ リ型楕円曲線におけるスカラー倍点の部分情報を計算し、 座標復元部により前記 モンゴメリ型楕円曲線におけるスカラー倍点の部分情報からモンゴメリ型楕円曲 線において完全な座標を復元し、 楕円曲線逆変換部によりモンゴメリ型楕円曲線 において完全な座標が復元されたスカラ一倍点からワイエルシュトラス型楕円曲 線におけるスカラー倍点を計算し、 スカラー倍点を計算することを特徴とする。
26. 請求項 1カゝら 2 0の何れか一つに記載のスカラー倍計算方法に係るプログ ラムを格納したことを特徴とする記憶媒体。
27. 楕円曲線暗号における標数 5以上の有限体上定義された楕円曲線において、 不完全な座標で与えられた楕円曲線上の点から完全な座標を復元する座標復元方 法であって、
前記不完全な座標を持つ点及び前記不完全な座標を持つ点と完全な座標を持つ 点との加算及ぴ減算によって得られる点により、 前記不完全な座標を持つ点の座 標を計算するステップを有する座標復元方法。
28. 楕円曲線喑号における標数 5以上の有限体上定義された楕円曲線において、 不完全な座標で与えられた楕円曲線上の点から完全な座標を復元する座標復元方 法であって、
前記不完全な座標を持つ点及ぴ前記不完全な座標を持つ点と完全な座標を持つ 点との加算によつて得られる点から、 前記不完全な座標を持つ点と完全な座標を 持つ点との減算によって得られる点を計算するステップと、 前記不完全な座標を 持つ点の座標を計算するステツプを有する座標復元方法。
29. 楕円曲線暗号における標数 5以上の有限体上定義されたモンゴメリ型楕円 曲線において、 不完全な座標で与えられたモンゴメリ型楕円曲線上の点からワイ エルシュトラス型楕円曲線において完全な座標を復元する座標復元方法であって、 前記モンゴメリ型楕円曲線において不完全な座標を持つ点及び前記モンゴメリ 型楕円曲線において不完全な座標を持つ点と完全な座標を持つ点との加算及び減 算によって得られる点から、 前記モンゴメリ型楕円曲線において不完全な座標を 持つ点の座標を計算するステップと、 前記完全な座標が計算されたモンゴメリ型 楕円曲線の点をワイエルシュトラス型楕円曲線の点に変換するステップとを有す る座標復元方法。
30. 楕円曲線暗号における標数 5以上の有限体上定義されたモンゴメリ型楕円 曲線において、 不完全な座標で与えられだモンゴメリ型楕円曲線上の点からワイ エルシュ トラス型楕円曲線において完全な座標を復元する座標復元方法であって、 前記モンゴメリ型楕円曲線において不完全な座標を持つ点及び前記モンゴメリ 型楕円曲線において不完全な座標を持つ点と完全な座標を持つ点との加算によつ て得られる点から、 前記モンゴメリ型楕円曲線において不完全な座標を持つ点と 完全な座標を持つ点との減算によって得られる点を計算するステップと、 前記モ ンゴメリ型楕円曲線において不完全な座標を持つ点の座標を計算するステツプと、 前記完全な座標が計算されたモンゴメリ型楕円曲線の点をワイエルシュトラス型 楕円曲線の点に変換するステップとを有する座標復元方法。
PCT/JP2001/009781 2000-11-08 2001-11-08 Procede et dispositif de calcul multiple et scalaire de courbe elliptique, et dispositif de stockage WO2002039664A2 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP01982747A EP1445891A4 (en) 2000-11-08 2001-11-08 METHOD AND APPARATUS FOR MULTIPLE CALCULATION AND SCALING OF ELLIPTICAL CURVE, AND STORAGE DEVICE

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2000-345457 2000-11-08
JP2000345457 2000-11-08
JP2000393279A JP3794266B2 (ja) 2000-11-08 2000-12-21 楕円曲線スカラー倍計算方法及び装置並びに記憶媒体
JP2000-393279 2000-12-21

Publications (1)

Publication Number Publication Date
WO2002039664A2 true WO2002039664A2 (fr) 2002-05-16

Family

ID=26603869

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2001/009781 WO2002039664A2 (fr) 2000-11-08 2001-11-08 Procede et dispositif de calcul multiple et scalaire de courbe elliptique, et dispositif de stockage

Country Status (4)

Country Link
US (1) US20030156714A1 (ja)
EP (1) EP1445891A4 (ja)
JP (1) JP3794266B2 (ja)
WO (1) WO2002039664A2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4034585B2 (ja) 2002-01-28 2008-01-16 松下電器産業株式会社 楕円曲線演算装置及び楕円曲線演算方法
AU2003304629A1 (en) * 2003-07-22 2005-02-04 Fujitsu Limited Tamper-resistant encryption using individual key
US7853790B2 (en) * 2004-03-19 2010-12-14 Microsoft Corporation Enhancement to volume license keys
US8396213B2 (en) * 2005-01-21 2013-03-12 Certicom Corp. Elliptic curve random number generation
US8913739B2 (en) * 2005-10-18 2014-12-16 Telecom Italia S.P.A. Method for scalar multiplication in elliptic curve groups over prime fields for side-channel attack resistant cryptosystems
US7499552B2 (en) * 2006-01-11 2009-03-03 International Business Machines Corporation Cipher method and system for verifying a decryption of an encrypted user data key
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
CN101169776B (zh) * 2006-10-27 2012-01-25 松下电器产业株式会社 提升中央处理单元运算效能的数据加密方法及加密装置
US8102998B2 (en) * 2007-05-02 2012-01-24 King Fahd University Of Petroleum And Minerals Method for elliptic curve scalar multiplication using parameterized projective coordinates
US8559625B2 (en) * 2007-08-07 2013-10-15 Inside Secure Elliptic curve point transformations
US8619977B2 (en) * 2008-01-15 2013-12-31 Inside Secure Representation change of a point on an elliptic curve
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
US9645794B2 (en) * 2014-09-23 2017-05-09 Texas Instruments Incorporated Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307935B1 (en) * 1991-09-17 2001-10-23 Apple Computer, Inc. Method and apparatus for fast elliptic encryption with direct embedding
EP0874307B2 (en) * 1997-03-25 2016-12-28 Certicom Corp. Accelerated finite field operations on an elliptic curve
JP3796993B2 (ja) * 1998-12-22 2006-07-12 株式会社日立製作所 楕円曲線暗号実行方法及び装置並びに記録媒体

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
EP1445891A4 (en) 2006-07-26
JP2002207424A (ja) 2002-07-26
JP3794266B2 (ja) 2006-07-05
EP1445891A1 (en) 2004-08-11
US20030156714A1 (en) 2003-08-21

Similar Documents

Publication Publication Date Title
US7308096B2 (en) Elliptic scalar multiplication system
WO2002039664A2 (fr) Procede et dispositif de calcul multiple et scalaire de courbe elliptique, et dispositif de stockage
US6307935B1 (en) Method and apparatus for fast elliptic encryption with direct embedding
US7904498B2 (en) Modular multiplication processing apparatus
US10430162B2 (en) Quantum resource estimates for computing elliptic curve discrete logarithms
JPWO2005015526A1 (ja) 楕円曲線暗号装置,楕円曲線暗号方法および楕円曲線暗号プログラム
US20030059043A1 (en) Elliptic curve signature verification method and apparatus and a storage medium for implementing the same
CN109039640A (zh) 一种基于rsa密码算法的加解密硬件系统及方法
JP2008293034A (ja) タイミング攻撃を阻止する標準化されたモジュラべき乗を計算することにより復号メカニズムを実行する方法と装置
JP2002521724A (ja) タイミングアタック防止暗号システム
JP2001526416A (ja) 楕円曲線暗号化演算の最適化用変換方法
Noor et al. Self-adaptive projection algorithms for general variational inequalities
US7177422B2 (en) Elliptic curve encryption processing method, elliptic curve encryption processing apparatus, and program
CN101842824A (zh) 配对计算装置、配对计算方法以及记录配对计算程序的记录媒体
US20070053506A1 (en) Elliptic curve encryption processor, processing method of the processor using elliptic curves, and program for causing a computer to execute point scalar multiplication on elliptic curves
JP4202701B2 (ja) 多項式剰余系演算装置、方法及びプログラム
JP4502817B2 (ja) 楕円曲線スカラー倍計算方法および装置
JP2000137436A (ja) 素体上楕円曲線上の点の演算方法およびその装置
JP2005316267A (ja) 楕円曲線ペアリング演算装置
JP2000181347A (ja) 素体上楕円曲線上の点の演算方法およびその装置
KR100377185B1 (ko) 암호시스템의 연산속도 개선 방법
KR20020086005A (ko) 타원곡선 암호 시스템을 위한 역원 연산기
JP2005316038A (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびプログラム
JP2007212768A (ja) 楕円曲線暗号における事前計算テーブル作成装置
Sung et al. A Lightweight Hardware Accelerator for Public-Key Cryptography

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2001982747

Country of ref document: EP

AK Designated states

Kind code of ref document: A2

Designated state(s): US

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

WWE Wipo information: entry into national phase

Ref document number: 10049264

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 2001982747

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 2001982747

Country of ref document: EP