[go: up one dir, main page]

WO2005008955A1 - 個人鍵を用いた耐タンパ暗号処理 - Google Patents

個人鍵を用いた耐タンパ暗号処理 Download PDF

Info

Publication number
WO2005008955A1
WO2005008955A1 PCT/JP2003/009284 JP0309284W WO2005008955A1 WO 2005008955 A1 WO2005008955 A1 WO 2005008955A1 JP 0309284 W JP0309284 W JP 0309284W WO 2005008955 A1 WO2005008955 A1 WO 2005008955A1
Authority
WO
WIPO (PCT)
Prior art keywords
point
value
elliptic curve
encryption
initial
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2003/009284
Other languages
English (en)
French (fr)
Inventor
Kouichi Itoh
Tetsuya Izu
Masahiko Takenaka
Naoya Torii
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to AU2003304629A priority Critical patent/AU2003304629A1/en
Priority to EP03741543.7A priority patent/EP1648111B1/en
Priority to PCT/JP2003/009284 priority patent/WO2005008955A1/ja
Priority to JP2005504397A priority patent/JP4632950B2/ja
Publication of WO2005008955A1 publication Critical patent/WO2005008955A1/ja
Priority to US11/272,916 priority patent/US20070177721A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/723Modular exponentiation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7228Random curve mapping, e.g. mapping to an isomorphous or projective curve
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7238Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Definitions

  • the present invention relates to the field of cryptographic processing, and in particular to tamper-proof protection against power analysis attacks such as SPA, DPA and RPA in processors for public key cryptography such as RSA and elliptic curve cryptography. It relates to encryption and decryption.
  • Smart cards that include IC chips that store user confidential information are expected to become widespread as user devices in the above services.
  • the smart card has the functions of encryption and digital signature authentication, and uses the secret information as a key.
  • confidential information is stored in the IC chip's memory, so security or tamper resistance against unauthorized access by a third party is much higher than that of a magnetic card.
  • FIG. 1 shows an example of the configuration of a cryptographic decryption using a secret key in a cryptographic device such as a smart card.
  • the cryptographic device provides an output ciphertext / / plaintext message processes the input plaintext / ciphertext message using private ⁇ in forms well known in the dark / decoding Yunitto therein.
  • encryption methods include a public key encryption method and a common key encryption method.
  • the public-key-and-sin method uses different keys for encryption and decryption.
  • the plaintext is encrypted using a public key, and the ciphertext is decrypted using a private or private key, so that the ciphertext can be transmitted securely.
  • the plaintext is encrypted using the private key, and the ciphertext is decrypted using the public key, thereby identifying the user who encrypted the plaintext.
  • Public key cryptography does not need to share secrets between sender and receiver, but the computational complexity is much larger than that of common key cryptography.
  • Cryptographic functions based on the RSA cipher relate to encryption, decryption, signature generation and signature verification.
  • decryption and signature generation the secret information of the user is used as a personal key.
  • a represents the input data
  • n represents the modulus of the remainder
  • d represents the private key.
  • Elliptic curve cryptography is based on scalar multiplication of points. Point scalar multiplication finds a point that satisfies-for a scalar value d and a point A on an elliptic curve.
  • Cryptographic functions based on elliptic curve cryptography involve ECES encryption / decryption, ECDSA signature generation, Z signature verification, and ECDH secret key sharing.
  • the processes for ECES decryption, ECDSA signature generation, and ECDH secret key sharing use the user's secret information as a personal key.
  • A represents the point of the public key sharing the secret key
  • d represents the scalar value of the private key.
  • Decryption or tamper deduces secret information, including private keys, from available information such as ciphertext.
  • a power analysis attack one of the cryptanalysis, was devised in 1998 by Paul Kocher.
  • a cryptographic processor included in a cryptographic device such as a smart card, and for example, as shown in FIG. It measures power consumption changes, collects a statistically sufficient number of power consumption change curves, analyzes them, and estimates key information inside the cryptographic processor. This applies to both symmetric key cryptography and public key cryptography. Applicable to
  • Power analysis attacks include Simple Power Analysis (SPA) and Differential Power Analysis (DPA).
  • SP A estimates a secret key or a private key from the characteristics of one power consumption change curve in a cryptographic processor.
  • DPA estimates the secret key by analyzing the differences between a number of different power consumption change curves (hereinafter referred to as power difference curves).
  • power difference curves a number of different power consumption change curves
  • Elliptic curve curve expressed by a function of the variables X and y are expressed by the following equation is referred to as elliptic curve (prime field): y 2 - x 3 + ax + b (modp)
  • p represents a prime number
  • a and b represent elliptic curve parameters (0 ⁇ a, b ⁇ p).
  • Elliptic curve (2 power): y 2 + xy x 3 + ax 2 + b (mo df (x)) where f is a polynomial of GF (2 m ), and a and b are elliptic curve parameters (a , b, CGF (2 m )).
  • An elliptic curve mainly consists of a prime field and a binary field.
  • the elliptic curve is uniquely determined by the elliptic curve parameters a and b.
  • the point on the elliptic curve is a set of coordinates (x, y) satisfying the expression expressed by the elliptic curve.
  • it is a set of integers, y) satisfying 0 ⁇ x, y and p.
  • 2 is the set of (X, y) elements, y) that satisfy EGF (2 ra ).
  • + represents addition of points.
  • a base point is a point on an elliptic curve, denoted G. The base point is shared between users of the elliptic curve cryptosystem, and is used for generating a pair of public keys Z individuals and other processes using the elliptic curve cryptosystem.
  • the representation of points using two-dimensional vectors (x, y) is called affinity coordinates.
  • (X, y) (X / Z 2, Y / Z 3) satisfies the 3-dimensional vector (X, Y, Z) representing a point with is called the Jacobian coordinates (Jacobian coordinates).
  • This operation 2A is called point doubling.
  • Elliptic scalar multiplication is an operation that derives V on an elliptic curve defined by V-d A from a point A and a scalar value d on an elliptic curve. It consists of a combination of point subtraction and doubling.
  • V a base point G and a scalar value d representing a private key
  • a public key is a point on an elliptic curve.
  • the private key is a scalar single value.
  • Algorithms for implementing scalar multiplication of modular exponentiation or points include, for example, the binary method, the signed pinary method, and the window method. It is assumed that the attacker knows the algorithm of scalar multiplication of power-residue or point in smart card.
  • Figure 2 shows the power-residue algorithm using the ordinary binary method.
  • Figure 3 shows an algorithm for scalar multiplication of points by the ordinary binary method.
  • d represents an m-bit binary value.
  • the string value of the j-th bit value (i>j> 0) is represented by d [i, j].
  • EC ADD represents point addition
  • E CDBL represents point doubling.
  • SPA seeks a private key based on the correlation (COR. 1).
  • DP A estimates the private key based on the correlation (COR. 2).
  • RPA estimates a private key based on any of the correlations (COR. 1) and (COR. 2).
  • SPA estimates a private key by measuring a single power waveform and estimating the processing being performed on the smart card part.
  • the power consumption of a smart card that processes the algorithm of FIG. 3 is measured and the power waveform illustrated in FIG. 4 is obtained.
  • the obtained power consumption waveforms A and D have shapes that can distinguish between EC AD D and ECDBL
  • the power waveform D and the subsequent waveform A follow the correlation (COR. 1).
  • the pair corresponds to bit value 1
  • the sole waveform D corresponds to bit value 0. In this way, the bit IJ "00110" of the private key is obtained.
  • add-and-double-always (add-and-double-always, always adding and doubling) and repeating Montgomery, which repeat a certain calculation procedure irrespective of the bit value of the private key d Ladder (Montgomery-Ladder) and the like are known.
  • Figure 5 shows the normal add-and-double-always algorithm.
  • the calculation procedure is ECAD D, ECDBL, ECADD, ECDBL,..., ECADD, ECDBL irrespective of each bit value of the private key d.
  • DP A estimates a private key by measuring and analyzing multiple power waveforms.
  • the following steps (DPA. 01) to (DPA. 03) show examples of DPA for the algorithm in Fig. 3.
  • ⁇ (t) ⁇ average of C (A ;, t) belonging to G 1 ⁇ ⁇ ⁇ Average of C (A t) belonging to G 0 ⁇
  • DPA is based on the property that the power consumption of a smart card is proportional to the number of "1" s in the data value.
  • the method prevents the DPA from estimating data values by concealing or randomizing variable data using random numbers generated inside the smart card.
  • a method called randomization coordinates randomizes the data representation of a point in projected coordinates or Jacobian coordinates.
  • the work variable is converted into a projected coordinate (rXx, rXy, rXz) or a Jacobian.
  • coordinates (r 2 X x, r 3 X y, r X z) is converted to.
  • r represents a random number. All coordinate data is randomized by the random number r, the value of the work variable becomes unpredictable, and DPA can be prevented.
  • the values of the work variables are randomized, but the values of the work variables all represent the same point regardless of the value of the random number r. Therefore, after the calculation of d [0] to d [m ⁇ 1], By inversely transforming the obtained coordinates into the fine coordinates, the same operation result dA ” ⁇ as in the normal processing is uniquely obtained.
  • the RPA estimates the bit value of the private key d, selects a specific input point based on that value, and provides it as input to the scalar multiplication of the cryptographic device. By estimating the private key d. If the value of the work variable at a particular timing of scalar multiplication is 0, the RPA determines that the estimation of the bit value is correct; otherwise, it determines that the estimation is incorrect. Whether or not the work variable value is 0 can be determined by using a single power waveform in SPA or by using a difference between a plurality of power waveforms in DPA.
  • 7A and 7B illustrate the power waveform at RP A.
  • RPA can be prevented by creating an algorithm so that the coordinate value of the work variable does not become 0 at the timing intended by the attacker.
  • RP A can be prevented by DP A measures that basically randomize data, but there are exceptions.
  • randomized coordinates a measure of DPA
  • the work data in the processing without the DPA countermeasure is Y, Z
  • the work data using the randomized coordinates is (r XX, r XY, r XZ). That is, when the coordinate value in the process without the DPA countermeasure is 0, the coordinate value in the randomized coordinates is also 0 regardless of the value of r.
  • Table 1 shows the comparison of the security against SPA, DPA and RPA when using the add-and-double-always method and the processing amount required for scalar multiplication of points.
  • Table 1 Comparison of security of public key cryptography and processing time of scalar multiplication of points
  • E represents the processing time of scalar multiplication of points by the add'and double alwayss method in Fig. 5
  • A represents the processing amount of addition, subtraction, and doubling of points
  • I represents the processing time of the inverse element calculation. It represents the processing amount.
  • RPC and RC are fast but vulnerable to RPA.
  • ES and PB are safe for RPA, but their processing is slow.
  • FIG. 8A shows an algorithm of RPC based on projected coordinates.
  • FIG. 8B shows the algorithm of RPC based on Jacobian coordinates.
  • FIG. 8C shows the algorithm of RC based on the Abbein coordinates.
  • These algorithms include (i) randomization of the coordinate data of the input point A (steps 401 to 402 in FIG. 8A; steps 501 to 502 in FIG. 8B; steps 601 to 602 in FIG. 8C), (ii) Scalar multiplication using add and double always (steps 403 to 408 in FIG. 8A; steps 503 to 508 in FIG. 8B; steps 603 to 608 in FIG. 8C), and (iii) randomization of data De-randomize (de-randomize) and output the operation result (Steps 409 to 410 in FIG. 8A; Steps 509 to 510 in FIG. 8B; 609 to 610 in FIG. 8C) )).
  • Step (i) is the process for DPA countermeasures.
  • a x , ⁇ ⁇ , and A z represent the coordinates (Z, ⁇ , ⁇ ) of point A, respectively.
  • Step (iii) is a process for de-randomizing the data and outputting the same processing value as the normal encryption process.
  • V (V [0] X / V [0] z, V [01 Bruno V [01 z)
  • V (V [0 in FIG. 8 B] Roh (V [0] z) ) 2 , V [0] no (V [0] z) 3
  • V (V [0] X Zr 2 , V [0] Y Zr 3 ) is processed.
  • step (i) the work variable data without randomization
  • V (V x , V Y )
  • the processing time is one time for RPC and RC, one for the add-and-double-always operation, and one for the inverse operation for canceling the randomization.
  • FIG. 9A shows the algorithm of ES.
  • Figure 9B shows the PB's anoregorhythm.
  • these algorithms are used to (i) randomize the coordinate data of the input point A (steps 70 ;! to 702 in FIG. 9A; steps 801 to 802 in FIG. 9B). ), (Ii) scalar multiplication using add 'and' double 'always (steps 703-704 in FIG. 9A; steps 803-804 in FIG. 9B), and (iii) de-randomize the data And outputs the operation result (steps 705 to 706 in FIG. 9A; 805 to 806 in FIG. 9B).
  • step (i) for input point A, a random point satisfying A Aj + As and A 2 are generated.
  • Work variables are randomized by Suller multiplication for random points A i and A 2 , thereby implementing DP A measures.
  • Steps (i) and (i) prevent the coordinate value of the work variable from becoming 0 at the timing intended by the attacker, and implement the RPA countermeasure.
  • the processing time is 2 E + A in total since two add-and-double-always operations and one addition of points are required to cancel the randomization.
  • the processing time is 2 E + in total because two add 'and' double always operations are required and three points are added or subtracted when data is randomized and canceled. 3 A.
  • the known public-key cryptographic processing method that has a small amount of scalar multiplication of points is weak against RPC, and the known public-key cryptographic processing method that is secure against RPC requires only a small amount of processing. More.
  • An object of the present invention is to realize a public key cryptography processing method which requires a small amount of scalar multiplication and is secure against SPAPA and RPC.
  • the encryption device performs a modular exponentiation process using a private key, and sets an integer r generated based on a random number to an initial value V. And an initial value V according to an m-bit sequence representing a certain value d for the power-residue encryption.
  • V V X X r " 1 (mo dn) of the value Vi obtained by the operation and the inverse r— 1 (modn) of r (modn) X a m , where H a is the product a.
  • X a, ⁇ ... X a m — is provided with means for providing as output the value V obtained by the randomization cancellation means.
  • a to d represent a d .
  • the present invention relates to a program for realizing the above-described encryption device.
  • the present invention relates to a method for realizing the above-described cryptographic device.
  • ADVANTAGE OF THE INVENTION According to the present invention, a processing method of public key cryptography that requires a small amount of scalar multiplication and is secure against SPADPA and RPC can be realized.
  • FIG. 1 shows an example of a configuration of encryption / decryption using a secret key in an encryption device such as a storage card.
  • Figure 2 shows the modular exponentiation algorithm using the ordinary binary method.
  • Figure 3 shows the algorithm for scalar point multiplication by the ordinary binary method.
  • Fig. 4 shows the power waveform obtained by measuring the power consumption of the smart card.
  • Fig. 5 shows the algorithm of the usual "ad & dubnore always”.
  • FIG. 6A shows a curve of power consumption against time with spikes.
  • FIG. 6B shows a flat power difference curve over time.
  • 7A and 7B illustrate the power waveform at RPA.
  • FIG. 8A shows an algorithm of RPC based on projected coordinates.
  • FIG. 8B shows an algorithm of RPC based on Jacobian coordinates.
  • FIG. 8C shows the RC algorithm based on the affinity coordinates.
  • FIG. 9A shows the algorithm of the ES encryption.
  • FIG. 9B shows the algorithm of P B ⁇ .
  • FIG. 10 shows a schematic configuration of a cryptographic processing device according to the present invention.
  • FIG. 11 shows an algorithm executed by the encryption device of FIG. 10 for a public key cryptographic process to which the power analysis attack countermeasures of the present invention have been applied.
  • FIG. 12 shows a basic algorithm executed by the encryption device of FIG. 10 and applying the power analysis attack countermeasures according to the present invention to elliptic curve cryptography.
  • FIG. 13 shows a basic algorithm executed by the encryption device of FIG. 10 and applying the power analysis attack countermeasure according to the present invention to the RSA encryption.
  • FIGS. 14 to 16 show an algorithm for generating the random point R in FIG.
  • FIG. 17 shows an algorithm for generating a point R at the projected coordinates in FIG.
  • FIG. 18 shows an algorithm for generating a point R in Jacobian coordinates in FIG.
  • FIG. 19 shows an embodiment of the point doubling for the work variable V [2] in FIG. Is shown.
  • FIG. 20 shows an embodiment of the basic algorithm according to the invention shown in FIG. 12, which combines the algorithms of FIGS. 16, 20 and 19.
  • FIG. 10 shows a schematic configuration of the cryptographic processing device 10 according to the present invention.
  • the cryptographic processing device 10 includes an input unit 12 for inputting and supplying a value a, d, and n or a value A, d, a random number generation unit 14 for generating a random number R or r, and a random number generation unit 1
  • memory 18 for storing the variables V '[0], V [1] and V [2].
  • PUBADD represents the addition of a point or the modulo n modulo
  • PUBDBL represents the point doubling or the modulo n square modulo.
  • the operation procedure of PUBADD and PUBDBL does not depend on the d-bit value.
  • the public key subtraction PUB SUB represents a point subtraction or a modular multiplication in the modulus n using the inverse of r.
  • R or r is a value that is generated inside the cryptographic device 10 and cannot be accessed from outside.
  • the encryption device 10 further includes a processor 32 and a program memory 34 such as a ROM.
  • the processor 32 controls these elements 12 to 24 according to a program stored in the memory 34.
  • processor 32 may implement elements 12-26 by executing a program in memory 34 that implements functions corresponding to elements 12-24.
  • FIG. 10 can be viewed as a flow diagram.
  • FIG. 11 shows a basic algorithm for a public key cryptographic process that is executed by the encryption device 10 of FIG. 10 and is provided with a countermeasure against a power analysis attack according to the present invention. This algorithm can be applied to both elliptic curve cryptography and RSA cryptography.
  • the algorithm in FIG. 11 uses (i) data randomization (steps 1004 to 1006), (ii) add-and-double scalar multiplication using allways (Step 1008) and (iii)
  • step 1002 the input unit 12 inputs the values a, d and n or the values A and d.
  • the generation unit 14 generates random data R or r.
  • R is data of a random point on the elliptic curve in the elliptic curve cryptosystem, and is a random integer value in the RSA.
  • step 1008 the point scalar multiplication execution unit 20 sets the work variable V '
  • SPA measures are implemented by repeating the predetermined operation pattern of Add & Double Always.
  • V, [0] R or r the values of the work variables V '[0] and V, [1] are randomized, and DPA can be prevented.
  • the value of V [2] is not randomized. The reason is that in the add-and-double-always method, the DPA and VPA using the value of V [2] are used. ⁇ It is not necessary to randomize V [2] because SPA is not possible. Since the value of V [2] is a value obtained by repeatedly performing doubling or squaring of A regardless of the bit value of the private key d, use this value to execute DP A. Can not.
  • FIG. 12 shows a basic algorithm executed by the encryption device 10 of FIG. 10 and applying the power analysis attack countermeasures according to the present invention to elliptic curve cryptography.
  • step 1101 the random number point generation unit 14 generates or selects a random point R on an elliptic curve.
  • the initialization unit 16 sets R to the work variable V ′ [0] as an initial value in step 1102, and sets A to the work variable V [2] as an initial value in step 1103.
  • the loop containing steps 1104-1108 performs a scalar multiplication of the points by the add-and-double's method on the work variables V '[0], V [1] and V [2].
  • This loop performs the same processing as the 'ad' and ⁇ ⁇ ⁇ double alwayss method without RPA measures in steps 303 to 307 in FIG. 5, but the random point R is set as the initial value of V '[0] As a result, RPA countermeasures are realized.
  • V [0] + R and V '[1] V [1] + R, and these values depend on R It changes randomly. That is, unlike RPC and RC, the coordinate data of ⁇ V, [0] and V '[1] related to the random value R never becomes zero. Therefore, it becomes impossible for the attacker to intentionally set the coordinate data value of the work variable to 0, thereby preventing RPA.
  • the algorithm according to the present invention realizes a signal processing that is safe for R ⁇ .
  • the additional processing for the RPA countermeasure is the generation of point R shown in step 1101 and the subtraction of point R in step 1109. Only. That is, since the speed reduction related to the RPA countermeasure is limited to only these two processes, high-speed processing is realized as compared with ES and PB which require twice the processing time of FIG.
  • FIG. 13 shows a basic algorithm executed by the encryption device 10 of FIG. 10 and applying the power analysis attack countermeasure according to the present invention to the RSA encryption.
  • step 1201 the random number generation unit 14 generates a tongue number r.
  • the initialization unit 16 sets r to the work variable V '[0] as an initial value in step 1202, and sets a to the work variable V [2] as an initial value in step 1203.
  • the loop including steps 1204 to 1208 updates the work variables by performing the power remainder operation by the add and double method for the work variables V '[0], V, [1] and V [2]. I do.
  • step 1209 the output unit 24 calculates a modular multiplication of the inverse element r of r— 1 (mo dn) and V ′ [0], thereby obtaining a random number by r. Based on the converted data, the value V is output.
  • the SPA is prevented by the loop using the add 'and' double always method in steps 1204-1209, and the initial value of the work variable V '[0] is set to a random number r Is set, the work variable in the loop is randomly changed, and DPA is prevented.
  • step 1201 Additional processing is generation of r and shown in step 1209. It is just the remainder of the multiplication of r.
  • step 1301 the random point generation unit 14 randomly generates a value of an arbitrary coordinate X that can be taken, and sets the value X to Rx . That is, by giving an integer satisfying 0 ⁇ R X ⁇ p in the case of elliptic curve cryptography using the prime elliptic curve parameter, and by giving a random value of GF (2 m ) in the case of an elliptic curve parameter of 2 power. Generate.
  • step 1 302 a coordinate Y corresponding to a given coordinate X is obtained to generate R Y.
  • R ( Rx , RY ) is set.
  • the algorithm for obtaining the coordinates Y from the coordinates X is described in the above-mentioned document IE EE P1363ZD13.
  • the generation unit 14 generates a random number s in step 1401, and in step 1402 s G obtained by multiplying the base point G by s by R'and 'double alwayss in FIG. Set to.
  • the random number s is an arbitrary value, but if it exceeds the bit length of the scalar value d, the computation overhead due to the scalar multiplication in step 1402 is large.
  • s is preferably a value of 20 to 30 bits.
  • Fig. 16 shows that the value of point R is updated each time the cryptographic process protected from the power analysis attack according to the present invention is called after randomly giving the initial value of point R in the initialization of the smart card etc. 4 shows an algorithm.
  • step 1501 the generation unit 14 reads the value of R used in a normal power analysis attack countermeasure from a specific area in the memory.
  • the initial value of the point R may be given, for example, using the method shown in FIGS.
  • step 1502 the generating unit 14 updates its value by performing doubling on the point R.
  • step 1503 the generation unit 14 stores the updated value of the point R for the next processing.
  • FIG. 17 shows an algorithm for generating a point R at the projected coordinates in FIG.
  • FIG. 18 shows an algorithm for generating a point R in Jacobian coordinates in FIG.
  • the generator 14 randomly generates an initial value of the point R when the smart card is initialized, as in the algorithm of FIG. Each time the encryption program according to the invention is called, the generation unit 14 updates the point R initial value.
  • the generating unit 14 multiplies the components of the coordinate values R (R x , R Y , R z ) by constants t, t 2 and t 3 in step 1602 to thereby generate an initial value R To update.
  • t 3
  • FIG. 19 shows the work variable V [2] in step 1107 in FIG. 2 shows an embodiment of doubling the number of points.
  • V [2] 2 i + 1 A.
  • a technique for speeding up calculation by (2 k multiplication of a point) doubling to be repeated for the same points two in the present inventor, Takenaka and It is disclosed in Japanese Patent Publication No. 2000-137436 (A) published by Ito on May 16, 2000, and is incorporated herein by reference.
  • Figure 19 the method of 2 k multiplication of points shown in Figure 2 in that publication are used.
  • I in FIG. 19 is the same as the value of the loop variable i in FIG.
  • the work variable Reusing the values reduces the computational complexity
  • 10 multiplications are required each time Requires only eight multiplications at a time using the algorithm of Figure 19. That is, by using the algorithm shown in Figure 19, The amount of computation required for doubling points can be reduced by 20% compared to using .
  • Figure 20 shows Figure 15 (R initialization), 16 (Step 1101, R generation) and 19 (Step R). 1 106, a combination of 2 k multiplication algorithm) of the point, illustrates an embodiment of a basic algorithm according to the present invention shown in FIG 2.
  • step 1101 of FIG. 7 a combination of any one of FIGS. 14 to 18 as step 1101 of FIG. 7 and any one of FIG. 19 and the above-mentioned document IEEE 1363 as step 1106 may be used.
  • FIG. 18 is an embodiment as it is. The reason is that there is no modification in the example of generating the random number r in step 1201 and squaring in step 1206.
  • countermeasures for all analyzes of SPA, DPA, and RPA can be realized, and calculation is performed in comparison with ES and PB which are generally known to be safe. The amount is smaller.
  • Table 2 shows a comparison between normal public key cryptography against power analysis attack and elliptic curve cryptography according to the present invention.
  • Table 3 shows a comparison between ordinary public key cryptography against power analysis attack and RSA cryptography according to the present invention.
  • RPC, RC, and PB ciphers are excluded because they cannot be applied to elliptic curve ciphers.
  • Table 2 Comparison of countermeasures against power analysis attacks for elliptic curves
  • the processing time of the scalar calculation is denoted by E
  • the processing time of the inverse calculation is denoted by I
  • the addition, subtraction and doubling of points are denoted by A.
  • A is negligibly small compared to E.
  • Table 1 shows the amount of processing performed by normal encryption.
  • the processing amount of the algorithm of FIG. 20 according to the present invention is the same as that of the ado'and'dubnore'always in FIG. 5, except for doubling the points in step 1702 and subtracting the points in step 1711. Therefore, the total is expressed as E + 2A.
  • the ciphers that are secure for all of SPA, DPA and RPA are ES encryption, PB encryption and the encryption of the present invention. Comparing the processing times, A is negligibly smaller than E, so the processing time of the encryption of the present invention is almost half of the processing time of the secure ES and PB encryptions.
  • FIG. 13 The processing of FIG. 13 according to the present invention is composed of the add-and-dub-no-leways shown in steps 1201 to 1208 and the operation of the inverse r ⁇ 1 (mo dn) in step 1210, so that the processing amount is Is represented as a sum E + I. That is, for E> I, the present invention can realize faster processing than ES.
  • the magnitude relationship between E and I depends on the processing environment, but in general, E is proportional to the cube of the operation bit length and I is proportional to the square of the operation bit length, so the assumption that E> I is reasonable.
  • the present invention can perform processing without impairing security against power analysis attacks. The processing time is small.

Landscapes

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

Abstract

個人鍵を用いて楕円曲線暗号処理を行う暗号装置(10)は、乱数に基づいて生成された楕円曲線上の点Rを初期点V0にセットするランダム化手段(16)と、その楕円曲線暗号のための或るスカラー値dのビット・シーケンスに従って、その初期点V0と楕円曲線上の或る入力点Aのスカラー倍との和V1=V0+dAの演算を実行する演算手段(20)と、その演算によって得られた和V1からその初期点V0を減算する演算V=V1−V0を実行するランダム化解除手段(22)と、そのランダム化解除手段によって得られた点Vを出力として供給する手段(24)と、を具えている。

Description

明 細 誊 個人鍵を用いた耐タンパ暗号処理
発明の分野
本発明は、 暗号処理の分野に関し、 特に、 R S Aおよび楕円曲線暗号のような 公開鍵暗号のためのプロセッサにおける S P A、 D P Aおよび R P Aのような電 力解析攻擊を防止する耐タンパ (tamper-proof) 暗号化ノ復号に関する。
発明の背景
例えば電子決済および日本の住民基本台帳ネットワークのようなネットワーク を利用したサービスが普及しつつある。 これらのサービスには情報セキュリティ のために暗号が用いられる。
上述のサービスにおけるユーザ側のデバイスとして、 ユーザの秘密情報を格納 した I Cチップを含むスマ一トカードが広く普及すると予想される。 スマート力 ードは、 暗号、 ディジタル署名おょぴ認証の機能を有し、 その秘密情報を鍵とし て用いる。 スマートカードでは、 秘密情報は I Cチップ' メモリに格納されるの で、 第三者による不正なアクセスに対する安全性または耐タンパ性が磁気カー- に比べて非常に高い。
図 1は、 スマートカードのような暗号デバイスにおける秘密鍵を用いた暗号ィヒ ノ復号の構成の例を示している。 図 1において、 暗号デバイスは、 その内部の暗 化/復号ュニットにおいて周知の形態で個人鐽を用いて入力平文/暗号文メッ セージを処理して出力暗号文 / /平文メッセージを供給する。 暗号方式には一般的 に公開鍵暗号方式と共通鍵暗号方式が含まれる。
公開鍵喑晉方式は、 暗号化と復号に異なる鍵 (キー) を用いる。 典型的には、 公開鍵を用いて平文 (plaintext) が暗号化され、 個人または秘密鍵を用いて暗 号文 (ciphertext) が復号され、 それによつて暗号文が安全に送信できる。 また は、 個人鍵を用いて平文が暗号化され、 公開鍵を用いて暗号文が復号され、 それ によって平文を暗号化したユーザが識別される。 公開鍵暗号は、 送受信者間で秘 密鐽を共有する必要がないが、 計算量が共通鍵暗号と比べて非常に大きい。 公開 鍵暗号には R S Aおよび楕円曲線暗号が含まれる。 RSA暗号は、 z = a x (mo d n) で表される冪 (べき) 乗剰余演算 ( modular exponentiation) に基づくものである。 RS A暗号に基づく暗号機能 は、 暗号化、 復号、 署名生成および署名確認に関係する。 復号および署名生成で はユーザの秘密情報を個人鍵として用いる。 べき乗剰余演算は、 v = a d (mo d n) を満たすは出力データ vを生成する。 ここで、 aは入力データを表し、 nは剰余の法を表し、 dは個人鍵を表す。
楕円曲線暗号は、 点のスカラー倍算に基づくものである。 点のスカラー倍算は 、 スカラー値 d、 および楕円曲線上の点 Aに対して、 - を満たす点 を 求める。 楕円曲線暗号に基づく暗号機能は、 ECES暗号化 /復号、 ECDSA 署名生成 Z署名確認および ECDH秘密鍵共有に関係する。 ECES復号、 EC D S A署名生成および E C D H秘密鍵共有のための処理は、 ユーザの秘密情報を 個人鍵として用いる。 例えば、 ECDH秘密鍵共有処理は、 秘密共有値を表す点 Vを計算するために V= d Aで表される点のスカラー倍算を行う。 ここで、 Aは 秘密鍵を共有する公開鍵の点を表し、 dは個人鍵のスカラー値を表す。
RSA暗号における乗算剰余 c = a Xb (mo d n) 、 2乗剰余 c = a 2お よびべき乗剰余 c = ax (mo d n) は、 楕円曲線暗号における点の加算 C = A + B、 点の 2倍算 C = 2 Aおよび点のスカラ一倍算 C = X Aにそれぞれ対応す る。
暗号解読 (分析) またはタンパ (tamper) は、 暗号文のような入手可能な情 報から個人鍵を含めた秘密情報を推定する。 暗号解読の 1つである電力解析攻撃 が、 1998年に PaulKocher (ポーノレ コーチャ) によって考案された。
電力解析攻撃は、 文献、 R Kocher, J. Jaffe and B. Jun "Differential Power Anaysis", Crypto'99, LNCS 1666, pp.388- 397, Springer-Verlag, 1999に記載さ れている。
この電力解析攻擊は、 スマートカードのような暗号デバイスに含まれる暗号プ ロセクサに相異なる入力データを与え、 例えば図 1に示されているようにオシ口 スコープ等を用いてその処理中における時間に対する消費電力の変化を測定し、 統計的に充分な数の消費電力変化の曲線を収集しそれを解析し、 それによつて暗 号プロセッサ内部の鍵情報を推定する。 これは、 共通鍵暗号と公開鍵暗号の双方 に適用できる。
電力解析攻撃には、 単純電力解析 (Simple Power Analysis) (以下、 S P A という) および電力差分攻撃 (Differential Power Analysis) (以下、 D P Aと いう) が含まれる。 S P Aは暗号プロセッサにおける 1つの消費電力変化曲線の 特徴から秘密鍵または個人鍵の推定を行う。 D P Aは相異なる多数の消費電力変 化曲線の差分 (以下、 電力差分曲線という) を用いて解析することによって秘密 鍵の推定を行う。 一般的には D P Aの方が強力である。
電力解析攻撃を防止する必要性が各種国際標準に記載されている。 例えば、 セ キユリティの国際標準 I S O I 5 4 0 8によるスマート力一ド用プロテクション 'プロファイル (p p ) では電力解析攻撃への対策が必須である。 また、 暗号モ ジュールに関する米国標準 F I P S 1 4 0 - 2には、 現在は電力 ^^攻撃対策の 必要性に関するコメントがあるだけであるが、 将来的に電力解析攻撃対策が必須 になるであろう。
R S Aと楕円曲線暗号に対する電力解析攻撃 S P Aおよび D P Aを防止するた めの様々な対策が開発された。 しかし、 2 0 0 3年に、 改善された電力解析攻撃 (Refined Power Analysis) ( R P A) 力、、 L. Goubin, "A Renned Power- Analysis Attack on Elliptic Curve Crypto-systems", PKC 2003, LNCS 2567, Springer-Verlag, 2003 によって発表された。 この攻撃は、 楕円曲線暗号に対す る電力解析攻撃を防止する公開鍵暗号の中の一部の暗号を攻撃するのに有効であ る。
次に、 楕円曲線暗号に用いられる用語を説明する。 詳細は文献 IEEE P1363/D13 (Draft Version 13, November 12, 1999) main document, Standard Specifications for Public Key Cryptography, Mtp '·// rouper.ieee .org/ roup s/ 1363/Pl363/draft.htmlの標準を参照されたい。
次の式で表される変数 Xおよび yの関数で表される曲線が楕円曲線と呼ばれる 楕円曲線 (素体) : y 2 - x 3 + a x + b (m o d p )
ここで、 pは素数を表し、 aおよび bは楕円曲線パラメータ (0≤a, b < p ) を表す。 楕円曲線 (2べき) : y2+x y = x3+a x2+b (mo d f (x) ) ここで、 f は GF (2m) の多項式を表し、 aおよび bは楕円曲線パラメータ ( a, b, CGF (2m) ) を表す。
楕円曲線は、 主に素体 (prime field) と 2べき (binary field) からなる。 楕 円曲線は楕円曲線パラメータ aおよび bによつて一意的に決定される。
楕円曲線上の点 (elliptic point) は、 楕円曲線で表される式を満たす座標 (x , y) であり、 素体の場合 0≤x, yく pを満たす整数 , y) の集合であり 、 2べきの場合は (X, y) EGF (2ra) を満たす要素 , y) の集合であ る。
無限遠点 (infinite point) は、 Oと表記され、 任意の点 Aに対し A + 0==0 + A = Aを満たす楕円曲線上の特殊な点である。 ここで、 +は点の加算を表す。 ベースポイント (base point) は、 楕円曲線上の 1点であり、 Gと表記される 。 ベースポイントは楕円曲線暗号のユーザ間で共有され、 公開鍵 Z個人鐽のペア の生成、 および楕円曲線暗号を用いたその他の処理に用いられる。
2次元ベク トル (x, y) を用いた点の表現は、 ァファイン座標 (Affine coordinates) と呼ばれる。 (x, y) = (X/Z, Y/Z) を満たす 3次元べ クトル (Χ, Υ, Ζ) を用いた点の表現は、 投影座標 (projective coordinates ) と呼ばれる。 (X , y) = (X/Z2, Y/Z3) を満たす 3次元ベク トル ( X, Y, Z) を用いた点の表現は、 ヤコビアン座標 (Jacobian coordinates) と 呼ばれる。 3次元ベクトル表現の使用によって、 点のスカラ一倍算における除算 の回数を大幅に減らし、 全体の演算を高速化できる。
点 Aおよび Bに対する演算 A+Bは、 点の加算 (elliptic point addition) と呼 ばれる。 A + B = B+Aが成立する。 点 Aおよび Bに対する演算 A— Bは、 点の 減 (elliptic point subtraction) と呼ばれ ·ο。
点の 2倍算 (elliptic point doubling) は、 楕円曲線上の点 Aから C = 2 Aで 表される楕円曲線上の点 Cが定義される。 この演算 2 Aを点の 2倍算と呼ぶ。 点のスカラー倍算 (elliptic scalar multiplication) は、 楕円曲線上の点 Aお ょぴスカラー値 dから、 V- d Aによって定義される楕円曲線上の Vを導出する 演算であり、 点の加算、 点の減算および 2倍算の組み合わせからなる。 ベースポイント Gと、 個人鍵を表すスカラー値 dとに対し、 公開鍵は V= dG を満たす Vにより与えられる。 公開鍵は楕円曲線上の点である。 個人鍵はスカラ 一値である。
次に、 電力解析攻撃について説明する。
べき乗剰余または点のスカラー倍算を実現するためのアルゴリズムには、 例え ばバイナリ法、 符号付きパイナリ法およびウィンドゥ法等が含まれる。 攻撃者は スマートカードにおけるべき乗剰余または点のスカラー倍算のアルゴリズムを知 つているものと仮定する。
図 2は通常のバイナリ法によるべき乗剰余のアルゴリズムを示している。 与え られた基数 a、 指数 dおよぴ法 nに対して、 べき乗剰余値 v= a d (mo d n ) が求められる。 図 3は、 通常のバイナリ法による点のスカラー倍算のアルゴリ ズムを示している。 与えられた点 Aおよびスカラー値 dに対して、 点のスカラー 倍を表す点 V= d Aが求められる。 ここで、 dは mビットの 2進値を表す。 2進 値 d中の i番目のビット値は d [ i ] で表される (i = 0, 1 , . . . m— 1 ) 。 2進値 d中の i番目から: j番目のビット値 ( i > j >0) のストリングの値 は d [ i , j ] で表される。 例えば、 d= 1 9 = (1 0 0 1 1 ) 2のとき、 d [ 4] = 1、 d [3] =0、 d [2] =0、 d [1] = 1、 d [0] = 1であり、 d [0, 0] = ( 1) 2= 1、 d [ 1, 0] = ( 1 1) 2= 3、 d [ 2, 0] = (O i l) 2= 3、 d [3 , 0] = (0 0 1 1) 2= 3 , d [4, 0] = ( 1 0 O i l ) 2= 1 9、 d [4, 1 ] = ( 1 0 0 1 ) 2 = 9である。 EC ADDは点 の加算を表し、 E CD B Lは点の 2倍算を表す。
図 2を参照すると、 ステップ 1 0 2においてワーク変数 tおよび Vがそれぞれ t = aおよび v= lと初期ィ匕される。 ステップ 1 0 3〜: L 0 6は、 iに対するル ープ処理であり、 i =0, 1, . . . m- 1について順次、 d [ i ] =0に対し てステップ 1 0 5における 2乗算が実行され、 d [ i ] - 1に対してステップ 1 04における乗算とステップ 1 0 5における 2乗算が実行される。 ステップ 1 0 6の後、 ワーク変数 Vの値は v = a d [i' 0] (mo d n) で表される。
図 3 を参照すると、 ステップ 2 0 2においてワーク変数 Tおよび Vが T = A および V == Oと初期化される。 ステップ 20 3〜 2 06は、 iに対するループ処 理であり、 i=0, 1, . . . m— 1について順次、 d [i] =0に対してステ ップ 205における 2倍算が実行され、 d [i] =1に対してステップ 204に おける点の加算 (EC ADD) とステップ 205における 2倍算 (ECDBL) とが実行される。 ステップ 206の後、 ワーク変数 Vの値は V=d [i, 0] で 表される。
図 2および 3のアルゴリズムと個人鍵 dの間には、 次の (COR. 1) および (COR. 2) の相関関係がある。
(COR. 1) 値 dのビット値と実行される演算の間に相関関係がある。 図 3 のァノレゴリズムにおいて、 dの各ビット値に従って、 ECDBL、 または ECD B Lおよび EC ADDが行われる。
(COR. 2) 値 dのビット値とワーク変数の値の間に相関関係がある。 図 3 のアルゴリズムにおいて、 ステップ 106の後の Vの値は V- (d [i, 0] ) A = (21 d [i] ) A+ (d [ i一 1, 0] ) Aで表される。
SPAは相関関係 (COR. 1) に基づいて個人鍵を求める。 DP Aは相関関 係 (COR. 2) に基づいて個人鍵を推定する。 RPAは相関関係 (COR. 1 ) および (COR. 2) の任意のいずれかに基づいて個人鍵を推定する。
SPAは、 単一の電力波形を測定し、 スマ一トカード內部で行われている処理 を推定することによつて個人鍵を推定する。
例えば、 図 3のアルゴリズムを処理するスマートカードの消費電力を測定し、 図 4に例示された電力波形が得られたと仮定する。 図 4のように、 得られた消費 電力波形 Aおよび Dが E C AD Dと E C D B Lを識別できるような形状を有する とき、 相関関係 (COR. 1) に従って、 電力波形 Dとその後続の波形 Aの組は ビット値 1に対応し、 単独の波形 Dはビット値 0に対応する。 このようにして、 個人鍵のビット歹 IJ "00110" が求まる。
SPAに対する対策として、 個人鍵 dのビット値に関係なく一定の演算手順を 繰り返すァド ·アンド'ダブル ·オールウェイズ (add-and-double-always, 常 に加算と 2倍算を行う) およびモンゴメリ 'ラダー (Montgomery-Ladder) 等 が知られている。
アド ·アンド 'ダブル ·オールウェイズ法は、 文献、 J. Coron, "Resistance against differential power analysis for elliptic curve cryptographic cryptosystme", CHES'99, LNCS 1717, pp.292- 302, Springer-Verlag, 1999に記 載されている。
モンゴメリ ·ラダー法は、 文献、 R Montgomery, "Speeding the Pollard and elliptic curve methods for factorizations", Math of Comp, vol.48, pp.243-264, 1987に記載されている。
図 5は、 通常のァド 'アンド ·ダブル ·オールウェイズのアルゴリズムを示し ている。 この場合、 演算の手順は、 個人鍵 dの各ビット値に関係なく、 ECAD D, ECDBL, ECADD, E CDB L, . . . , ECADD, ECDBLと なる。
DP Aは、 複数の電力波形を測定して解析することによって個人鍵を推定する 。 次の手順 (DPA. 01) 〜 (DPA. 03) は、 図 3のアルゴリズムに対す る DPAの例を示している。
(DPA. 01) k個のランダムな与えられた点 A0, Aい A0> . . , Aト に対して、 各 A jの d倍算を行っている期間の消費電力が測定される。 Ajに対 するスカラー倍算において測定された k個の消費電力データの集合が C (A』, t) で表される (j =0, 1, . . . k一 1) 。
(DPA. 02) 以下の手順に従って、 d [0] の値が推定され、 その推定が 正しいどうかが判定される。
- 推定値 d [0] が正しいと仮定する。 この仮定に基づいて、 i =0について ステップ 203〜206が終了した時点における、 スマートカード内部の変数 V の座標 Xのデータ値をそれぞれの A jについて予想する。 例えば d [0] =1と 仮定した場合、 図 3のアルゴリズムに従って V = Ajと予想できる。 予想の結果 、 Vのデータ値の最下位ビットが 1であるとき、 C (A t) を Gユに分類し 、 Vのデータ値の最下位ビットが 0であるとき、 C (As, t) を G。に分類す る。 分類に用いられる Vのデータ値は、 Xの代わりに yまたは zのデータ値であ つてもよい。
― 上述の分類に基づいて、 次の式で表される電力差分曲線を作成する。
Δ (t) = {G1に属する C (A;, t) の平均 } ― {G0に属する C (Aい t) の平均 }
一 その電力差分曲線が図 6 Aに示すようなスパイクを有するときは、 d [0] の推定値が正しいと判定する。 その電力差分曲線が図 6 Bに示すように平坦なと きは、 d [0] の推定値が誤りであると判定する。
(DPA. 03) 手順 (DP A. 02) を、 d [1] , d [2] , . . . d [ m— 1] に対して順に操り返し実行することによって個人鍵 dの値を求める。 d
[h] に対して手 j暖 (DPA. 02) を実行するとき、 手順 (DPA. 02) に おける分類の基準となる Vのデータとして、 i = hについて終了した時点のデー タが用いられる。 Vのデータ値の予想にあたっては、 既に求められた d [0] 〜 d [h- 1] の値と今回推定した d [h] の値が用いられる。 その理由は、 Vの 値が、 V=2hd [h] A+d [ - 1, 0] A、 即ち既に求められた d [0] 〜d [h-1] と今回推定した d [h] によって決定される値だからである。
DP Aは、 スマートカードの消費電力がデータ値の "1" の数に比例するとい う性質に基づいている。
DP Aに対する一般的な対策として乱数を用いた方法が知られている。 その方 法は、 スマートカード内部で生成された乱数を用いて変数データを隠蔽またはラ ンダム化することによって、 DP Aによるデータ値の推定を防止する。
例えば、 ランダムィ匕座標と呼ばれる方法は、 投影座標またはヤコビアン座標の 点のデータ表現をランダム化する。 この場合、 通常の暗号処理において、 ァファ イン座標を表すワーク変数 (X, y) に対して、 ワーク変数が、 投影座標 (r X x, r X y, r X z) に変換され、 またはヤコビアン座標 ( r 2 X x , r 3X y , r X z) に変換される。 ここで、 rは乱数を表す。 乱数 rによって全ての 座標データがランダム化され、 ワーク変数の値は予測不可能となり、 DP Aが防 止できる。 それによつてワーク変数の値はランダム化されるが、 乱数 rの値に関 係なくワーク変数の値はいずれも同一の点を表すので、 d [0] 〜d [m— 1] の計算後に、 求めた座標をァファイン座標に逆変換することによって、 通常の処 理と同じ演算結果 d A」·が一意的に求められる。
次に、 RPAを説明する。 RPAは、 個人鍵 dのビット値を推定し、 その値に 基づいて特定の入力点を選択してそれを暗号装 ίのスカラー倍算の入力として供 給することによって、 個人鍵 dを推定する。 スカラー倍算の特定のタイミングに おけるワーク変数値が 0であれば、 RPAはビット値の推定が正しいと判定し、 そうでない場合は推定が誤りであると判定する。 ワーク変数値が 0であるか否か は、 S P Aにおける単一の電力波形を用いても、 また DP Aにおける複数の電力 波形の差分を用いても判定できる。
次の手順 (RPA. 01) 〜 (RPA. 04) は、 図 3のアルゴリズムに対す る RP Aの例を示している。 ; P Aにおいて、 攻撃者は、 既に求められた d [0 ] , d [1] , · . . d [h- 1] に基づいて、 次のビット値 d [h] を求める
(RPA. 01) 既知の値 d [0] , d [1] , . . . d [h-1] と、 推定 値 d [h] と力 ら、 A= (d [ , 0] 一1 (mo d φ ) ) Qを求める。 ここ で、 ^は位数 (order) の値であり、 Qは Q= ( , 0) または (0, y) を満 たす楕円曲線上の点、 即ち座標 Xまたは yが 0となる座標である。
(RPA. 02) スマートカードに d Aを演算させて、 消費電力波形 C (A, d) を測定する。
(RPA. 03) 消費電力波形 C (A, d) の曲線のうち、 ステップ 203〜 206の i =h, + 1に対応する部分波形を観察して、 ワーク変数 Vの座標 X が 0であるかどうかを判定する。 Vの座標 Xが 0力 どうかの判定法については、 前述の Goubinの文献を参照されたい。
RPAが可能な理由は、 d [h] の推定が正しいとき、 ステップ 203〜20 6のループが i = hについて完了した後、 ワーク変数 Vの座標 Xまたは yが 0と なるからである。 Vの座標 Xまたは yが 0となると、 この値が i = h + 1に対す る演算に用いられるときに、 例外的処理が発生し、 この例外処理は電力波形によ つて観察できる。
図 7 Aおよび 7 Bは、 RP Aにおける電力波形を例示している。
d [h] の推定が正しいときに i =hに対するループ処理の後に Vの座標値を 表す波形が出現する理由は、 手順 (RPA. 01) に従って Aが与えられるから である。 このような Aを与えることによって、 d [h] の推定が正しいときに i =hに対するステップ 203〜206のループ処理の後の Vの値が Qに一致し、 座標 xまたは yの値が 0となる。
従って、 ワーク変数の座標値が攻撃者の意図したタイミングにおいて 0となる ことを回避するようアルゴリズムを作成することによって RP Aを防止すること ができる。
. 基本的にデータをランダム化する DP A対策によって RP Aを防止できるが、 例外がある。 例えば、 DP A対策の 1つであるランダム化座標は、 RPAに対し て脆弱である。 これは、 DP A対策なしの処理におけるワークデータを は, Y , Z) としたとき、 ランダム化座標を用いた場合のワークデータは (r XX, r XY, r XZ) となるからである。 即ち、 D P A対策なしの処理における座 檩値が 0である場合、 ランダム化座標における座標値も rの値に関係なく 0とな る。
本発明者によって公表された、 伊豆、 他の文献、 "楕円曲線暗号向けサイドチ ャネル対策方式の比較評価" 、 2003年、 暗号と情報セキュリティシンポジゥ ム (SC I S 2003) 、 8 D— 3には、 楕円曲線暗号に対応する公開鍵暗号の 電力解析攻撃の対策として、 S P Aおよび DP Aに対して最も安全な対策は、 ラ ンダム化座標 (Randomized Projective Coordinates) (RPC) 、 ランダムィヒ 曲線 (Randomized Curve) (RC) 、 指数分割法 (Exponent Splitting) (E S) 、 点の隠蔽 (Point Blinding) (PB) の 4つの対策であることが記載され ている。 これらは、 DPA対策であるが、 SPA对策とともに用いることによつ て DP Aと S PAの双方を防止できる。
表 1は、 アド ·アンド'ダブル ·オールウェイズ法を併用した場合の、 SPA 、 DPAおよび RPAに対する安全性と、 点のスカラー倍算に必要な処理量の比 較を示している。 表 1 公開鍵暗号の安全性と、 点のスカラー倍算の処理時間の比較
Figure imgf000013_0001
ここで、 Sは電力解析攻撃に対して安全であること、 Vは電力解析攻撃に対して 脆弱であることを表す。 Eは、 図 5のアド'アンド ·ダブル ·オールウェイズ法 による点のスカラー倍算の処理時間を表し、 Aは、 点の加算、 減算および 2倍算 の処理量を表し、 Iは逆元計算の処理量を表している。
R PCおよび RCはその処理が高速であるが、 RP Aに対して弱い。 ESおよ び P Bは R P Aに対し安全であるがその処理が遅レ、。
図 8 Aは、 投影座標に基づく R PCのアルゴリズムを示している。 図 8Bは、 ヤコビアン座標に基づく R PCのアルゴリズムを示している。 図 8Cは、 アブァ ィン座標に基づく R Cのアルゴリズムを示している。
これらのアルゴリズムは、 ( i ) 入力点 Aの座標データのランダム化 (図 8 A のステップ 401〜 402 ;図 8 Bのステップ 501— 502 ;図 8 Cのステツ プ 601〜602) 、 ( i i ) アド 'アンド ·ダブル ·オールウェイズを用いた スカラー倍算 (図 8 Aのステップ 403〜408 ;図 8 Bのステップ 503〜 5 08 ;図 8 Cのステップ 603〜608) 、 および ( i i i ) データのランダム 化を解除して元に戻して (de-randomize) (逆ランダム化) 、 演算結果を出力 する (図 8 Aのステップ 409〜410 ;図 8 Bのステップ 509〜510 ;図 8Cの 609〜610) の 3段階で構成される。
段階 ( i) は DP A対策のための処理である。 乱数 rを生成し、 図 8 Aにおい ては A' = (r X Av, r XAY, r X Αζ) 、 図 8 Βにおいては Α, = ( X Ax, r 3XAY, r X Az) 、 図 8 Cにおいては A' = (r 2X Ax, r 3XAY) に従って座標データをランダム化し、 それによつて、 これらのデータが攻擊者に よって推定されるのを防ぐ。 ここで、 Ax, Αγ, Azはそれぞれ点 Aの座標 (Z , Υ, Ζ) を表す。
段階 (i i i) は、 データのランダム化を解除して、 通常の暗号処理と同じ処 理値を出力するための処理である。 図 8 Aにおいては V- (V [0] X/V [0 ] z, V [01ノ V [01 z) 、 図 8 Bにおいては V= (V [0] ノ (V [0 ] z) ) 2, V [0] ノ (V [0] z) 3) 、 図 8Cにおいては V= (V [0] XZ r 2, V [0] YZr 3) が処理される。
し力 し、 これらの対策は RP Aには無効である。 その理由は、 段階 (i) のラ ンダム化において座標値と乱数 rの積を導入するからである。 例えば、 図 8じに おいて、 ランダム化を行わない場合のワーク変数データを V= (Vx, VY) と すると、 段階 (i) ステップ 603〜608のワーク変数データは V' = (r 2 XVX, r 3XVY) で表される。 即ち、 ランダム化を行わない時の Vの座標 X, Yの値いずれかが 0のとき、 V' の座標 X, Yの値いずれかも乱数 rに関係なく
0となり、 RP Aが適用できる条件を満たす。 図 8 Aおよび 8 Bに示した R PC および R PAについても同様である。
処理時間は、 RPCおよび RCにおいてァド ·アンド ·ダブル ·オールウェイ ズ演算が 1回、 ランダム化の解除のための逆元演算が 1回必要であり、 合計 E +
Iである。
図 9 Aは E Sのアルゴリズムを示している。 図 9 Bは PBのァノレゴリズムを示 している。
これらのアルゴリズムは、 図 8 A〜 8 Cのァルゴリズムと同様に、 ( i ) 入力 点 Aの座標データのランダム化 (図 9 Aのステップ 70;!〜 702 ;図 9 Bのス テツプ 801-802) 、 ( i i ) アド 'アンド 'ダブル'オールウェイズを用 いたスカラー倍算 (図 9Aのステップ 703〜704 ;図 9Bのステップ 803 〜804) 、 および (i i i) データのランダム化を解除して元に戻し、 演算結 果を出力する (図 9 Aのステップ 705〜706 ;図 9 Bの 805〜 806 ) の 3段階で構成される。 図 9 Aにおいて、 段階 (i) ではスカラー値 dに対して、 d-di+dgを満 たすランダムなスカラー値 (!ェおよび d2が生成される。 段階 ( i では、 前 述の d およぴ(12に対して V2= c^Aおよび V2= d2Aで表されるスカラー倍 算を、 図 5のアド 'アンド .ダブル ·オールウェイズ演算に従って行う。 ランダ ムな d ^および d2に対するスカラー倍算によってワーク変数をランダム化し、 それによつて DP A対策が実現される。 段階 (i) および (i i) によって攻撃 者の意図したタイミングでワーク変数の座標値が 0となることが防止されて、 R P A対策が実現される。 段階 (i i i) では、 V = V1 + V2=dA+ (d- r ) A=dAの演算によって、 データのランダム化を解除して元に戻し、 dAを出 力する。
図 9 Bにおいて、 段階 (i) では入力点 Aに対し、 A Aj + Asを満たすラ ンダムな点 および A2を生成している。 段階 (i i) では前述の点 およぴ A2に対して = d および V2= d A2で表されるスカラー倍算を、 図 5のァ ド ·アンド 'ダブル ·オールウェイズ演算に従つて行う o ランダムな点 A iおよ び A 2に対するス力ラー倍算によってワーク変数をランダム化し、 それによつて DP A対策が実現される。 段階 (i) および (i によって攻擊者の意図した タイミングでワーク変数の座標値が 0となることが防止されて、 R P A対策が実 現される。 段階 ( i i i) では、 V = V1+V2=d (Α, + Α^ =dAの演算 によって、 データのランダム化を解除して元に戻し、 dAを出力する。
E Sの場合、 アド 'アンド 'ダブル 'オールウェイズ演算を 2回と、 ランダム 化の解除の際に点の加算を 1回を必要とするので、 処理時間は合計で 2 E+Aで ある。 PBの場合、 アド 'アンド 'ダブル ·オールウェイズ演算を 2回と、 デー タのランダム化とその解除の際に点の加算または減算を 3回を必要とするので、 処理時間は合計で 2 E + 3 Aである。
従って、 点のスカラー倍算の処理量が少ない公知の公開鍵暗号処理法では R P Cに対して弱く、 R P Cに対して安全な公知の公開鍵暗号処理法ではス力ラ一倍 算の処理量が多くなる。
発明者たちは、 スカラ一倍算の処理量が少なく、 力つ SPA、 DPAおよび R P Cに対して安全な公開鍵暗号の処理法を実現することの必要性を認識した。 本発明の目的は、 スカラー倍算の処理量が少なく、 かつ S PA DP Aおよび RP Cに対して安全な公開鍵暗号の処理法を実現することである。
発明の概要
本発明の特徴によれば、 個人鍵を用いて楕円曲線暗号処理を行う暗号装置は、 乱数に基づいて生成された楕円曲線上の点 Rを初期点 V。にセットするランダム 化手段と、 その楕円曲線暗号のための或るスカラー値 dのビット ·シーケンスに 従って、 その初期点 V。と楕円曲線上の或る入力点 Aのスカラー倍との和 ニ V。+ d Aの演算を実行する演算手段と、 その演算によって得られた和 から その初期点 V。を減算する演算 V = V 一 V。を実行するランダム化解除手段と、 そのランダム化解除手段によって得られた点 Vを出力として供給する手段と、 を 具えている。
本発明の別の特徴によれば、 暗号装置は、 個人鍵を用いてぺき乗剰余暗号処理 を行う暗号装置であって、 乱数に基づいて生成された整数 rを初期値 V。にセッ トするランダム化手段と、 そのべき乗剰余暗号のための或る値 dを表す mビット •シーケンスに従って、 その初期値 V。と或る入力値 aに対するべき乗剰余演算 V^VoXlI a ~ (2 ' d [ i ] ) (mo d n) = r X a d (mo d n) の 演算 (i =0 1 . . . m— 1) を実行する演算手段と、 その演算によって得 られた値 V iと r (m o d n) の逆元 r— 1 (m o d n ) との乗算剰余演算 V = VXX r "1 (mo d n) を実行するランダム化解除手段と、 そのランダム化 解除手段によって得られた値 Vを出力として供給する手段と、 を具える。 ここで H a;は積 a。X a , Χ. . . X am— を表し、 a ~ dは a dを表す。
本発明は、 上述の暗号装置を実現するプログラムに関する。
本発明は、 上述の暗号装置を実現する方法に関する。
本発明によれば、 スカラー倍算の処理量が少なく、 かつ S PA DPAおよぴ RPCに対して安全な公開鍵暗号の処理法を実現できる。
図面において同じ要素には同じ参照番号が付されている。
図面の簡単な説明
図 1は、 ス トカードのような暗号デバイスにおける秘密鍵を用いた暗晉化 /復号の構成の例を示している。 図 2は、 通常のバイナリ法によるべき乗剰余のアルゴリズムを示している。 図 3は、 通常のバイナリ法による点のスカラ一倍算のァルゴリズムを示してい る。
図 4は、 スマートカードの消費電力を測定して得られた電力波形を示している 図 5は、 通常ァド ·アンド'ダブノレ ·オールウェイズのァルゴリズムを示して いる。
図 6 Aは、 スパイクを有する、 時間に対する消費電力の曲線を示している。 図 6 Bは、 平坦な、 時間に対する電力差分曲線を示している。
図 7 Aおよび 7 Bは、 R P Aにおける電力波形を例示している。
図 8 Aは、 投影座標に基づく R P Cのアルゴリズムを示している。
図 8 Bは、 ヤコビアン座標に基づく R P Cのアルゴリズムを示している。 図 8 Cは、 ァフアイン座標に基づく R Cのァルゴリズムを示している。
図 9 Aは、 E S暗号のアルゴリズムを示している。
図 9 Bは、 P B喑号のアルゴリズムを示している。
図 1 0は、 本発明による暗号処理装置の概略的構成を示している。
図 1 1は、 図 1 0の暗号化装置によって実行される、 本発明の電力解析攻撃対 策が施された公開鍵暗号処理のためのアルゴリズムを示している。
図 1 2は、 図 1 0の暗号ィ匕装置によって実行される、 本発明による電力解析攻 撃対策を楕円曲線暗号に適用した基本的アルゴリズムを示す。
図 1 3は、 図 1 0の暗号ィ匕装置によって実行される、 本発明による電力解析攻 擊対策を R S A暗号に適用した基本的アルゴリズムを示す。
図 1 4〜1 6は、 図 1 2におけるランダムな点 Rの生成のァルゴリズムを示し ている。
図 1 7は、 図 1 2における投影座標における点 Rの生成のアルゴリズムを示し ている。
図 1 8は、 図 1 2におけるヤコビアン座標における点 Rの生成のアルゴリズム を示している。
図 1 9は、 図 1 2におけるワーク変数 V [ 2 ] に対する点の 2倍算の実施形態 を示している。
図 20は、 図 1 6、 20および 1 9のアルゴリズムを組み合わせた、 図 1 2に 示された本発明による基本的アルゴリズムの実施形態を示している。
好ましい実施形態の説明
図 1 0は、 本発明による暗号処理装置 1 0の概略的構成を示している。 暗号処 理装置 1 0は、 値 a、 dおよび nまたは値 Aおょぴ dを入力して供給する入力部 1 2と、 乱数 Rまたは rを発生する乱数生成部 14と、 乱数生成部 1 4からの乱 数 Rまたは rに従ってワーク変数を V' [0] : =R (または!:)、 V [2] -A (または a) として初期化するワーク変数初期化部 1 6と、 ワーク変数 V' [0 ] 、 V [1] および V [2] を格納するメモリ 1 8と、 を具えている。 暗号処 理装置 1 0は、 さらに、 値 dの各ビット値を検出しながら初期化部 1 6のワーク 変数に対して公開鍵加算 (PUB ADD) および公開鍵 2倍算 (PUBDBL) を繰り返し実行して、 V' [0] =cLA+Rまたは a dX r (mo d n) を計 算するスカラー倍算処理部 20を具えている。 ここで、 PUBADDは点の加算 または法 nの乗算剰余を表し、 PUBDBLは点の 2倍算または法 nの 2乗剰余 を表す。 PUBADDと PUBDBLの演算手順は dビット値に依存しなレヽ。 喑 号処理装置 1 0は、 さらに、 V' [0] から V=PUB SUB (V [0] , または r ) を計算して Rまたは rの影響を取り除いた V = d Aを計算するランダ ム 'データ除去部を具えている。 ここで、 公開鍵減算 PUB SUBは点の減算ま たは rの逆元を用いた法 nにおける乗算剰余を表す。 暗号処理装置 1 0は、 さら に、 演算結果の値 V= d Aまたは v = a d (mo d n) を出力する出力部 24 を含んでいる。 Rまたは rは、 暗号装置 1 0内部で生成され、 外部からはァクセ スできない値である。
暗号化装置 1 0は、 さらに、 プロセッサ 32と、 ROMのようなプログラム ' メモリ 34とを含んでいる。 プロセッサ 3 2は、 メモリ 34に格納されているプ ログラムに従ってこれらの要素 1 2〜24を制御する。 代替構成として、 プロセ ッサ 32は、 要素 1 2〜 24に対応する機能を実現するメモリ 34中のプログラ ムを実行することによって要素 1 2〜26を実現してもよレ、。 この場合、 図 1 0 はフロー図として見ることができる。 図 11は、 図 10の暗号化装置 10によって実行される、 本発明による電力解 析攻撃への対策が施された公開鍵暗号処理のための基本的ァルゴリズムを示して いる。 このァルゴリズムは楕円曲線暗号と R S A暗号の双方に適用できる。
図 11のアルゴリズムは、 図 8 A〜8 Cのアルゴリズムと同様に、 (i) デー タのランダム化 (ステップ 1004〜1006) 、 (ii) ァド ·アンド ·ダブル ♦オールウェイズを用いたスカラー倍算 (ステップ 1008) 、 および (iii) デ
^"タのランダム化を解除して元に戾し、 演算結果 Vを出力する (ステップ 101
0) の 3段階で構成される。
図 11を参照すると、 ステップ 1002において、 入力部 12は、 値 a、 dお よび nまたは値 Aおよび dを入力する。 ステップ 1004において、 生成部 14 は、 ランダムなデータ Rまたは rを生成する。 Rは、 楕円曲線暗号において楕円 曲線上のランダムな点のデータであり、 R S Aにおいてランダムな整数値である ステップ 1006において、 初期化部 16は、 アド ' アンド ·ダブル ·オール ウェイズ法で用いられるワーク変数を、 V, [0] =Rまたは r、 V [2] =A または aと、 初期化する。
ステップ 1008において、 点のスカラー倍算実行部 20は、 ワーク変数 V'
[0] 、 V [0] 、 V [2] を用いてァド ·アンド 'ダブル ·オールウェイズ を実行する。 即ち、 i=0, 1, . . . , m— 1に対して、 楕円曲線暗号におい て V' [1] =ECADD (V' [0] , V [2] ) , V [2] =ECDBL (
V [2] ) 、 および V' [0] =V [d [i] ] の演算を繰り返し実行し、 ま たは R S A暗号において V, [1] =V [0] XV [2] (mo d n) 、
V [2] =V [2] 2 (mo d n) 、 および V' [0] =V [d [ i ] ] の 演算を繰り返し実行する。 個人鍵 dのビット値に関係なく、 アド ·アンド ·ダブ ル ·オールウェイズの所定の演算パターンを繰り返すことによって S P A対策を 実現する。 ステップ 1004において V, [0] 二 Rまたは rとセットすること によって、 ワーク変数 V' [0] および V, [1] の値がランダム化されて、 D P Aを防止できる。 V [2] の値はランダム化されない。 その理由は、 アド 'ァ ンド 'ダブル 'オールウェイズ法においては V [2] の値を利用した D P Aおよ ぴ SPAが不可能なので、 V [2] をランダム化する必要がないからである。 V [2] の値は、 個人鍵 dのビット値と関係なく、 Aの 2倍算または 2乗算を繰り 返し実行することによって求められる値なので、 この値を利用して DP Aを実行 することはできない。
ステップ 1010において、 ランダム *データ除去部 22はランダム化された データを元に戻す。 そのために、 ステップ 1004で生成され Rに対して、 楕円 曲線暗号においては V = V' [0] 一 Rが計算され、 ; RSAにおいては V = V, [0] XR— 1または r一1が求められる。 ステップ 1012において、 出力部 2 4は演算結果 Vを出力する。
このようにして、 図 1 1に示されたアルゴリズムによって S P Aおよび DP A が防止される。 次に、 図 11のアルゴリズムを楕円曲線暗号に適用したとき、 R P Aが防止されることを説明する。
図 12は、 図 10の暗号ィ匕装置 10によって実行される、 本発明による電力解 析攻撃対策を楕円曲線暗号に適用した基本的アルゴリズムを示す。
図 12を参照すると、 ステップ 1101において、 乱数点生成部 14は楕円曲 線上のランダムな点 Rを生成または選択する。 初期化部 1 6は、 ステップ 1 10 2において初期値として Rをワーク変数 V ' [0] にセットし、 ステップ 1 10 3において初期値として Aをワーク変数 V [2] にセットする。
ステップ 1 104〜1 108を含むループは、 ワーク変数 V' [0] 、 V [ 1] および V [2] に対してアド .アンド ·ダブル'オールウェイズ法による点 のスカラー倍箅を実行する。 このループは、 図 5のステップ 303〜 307の R P A対策無しのァド 'アンド 'ダブル ·オールウェイズ法と同じ処理を行ってい るが、 V' [0] の初期値としてランダム点 Rがセットされることによって、 R P A対策が実現される。
そのような初期値によって、 図 12のワーク変数 V' [0] および V, [1] と図 5の V [0] および V [1] の間の関係は、 V' [0] =V [0] +Rおよ び V' [1] =V [1] +Rで表される。 即ち、 図 5で計算されるワーク変数の
V [0] および V [1] の値に対して、 図 12のアルゴリズムは、 V' [0] =
V [0] +Rおよび V' [1] =V [1] +Rを求め、 これらの値は Rに応じて ランダムに変化する。 即ち、 RPCおよび RCのように、 ランダム値 Rに関係な 〈V, [0] および V' [1] の座標データが 0となることはない。 従って、 攻 擊者は意図的にワーク変数の座標データ値を 0とすることが不可能となり、 RP Aが防止される。
ステップ 1 104〜1 108のループが終了した後、 ステップ 1109におい て出力部 24は V = V' [0] 一 Rを計算することによって、 Rによってランダ ム化されたデータを元に戻して、 その値 Vを出力する。
このようにして、 本発明によるァルゴリズムは R Ρ Αに対して安全な喑号処理 を実現する。 RP A対策なしの図 5のアルゴリズムと本発明による図 12のアル ゴリズムを比較すると、 RP A対策のための追加的処理はステップ 1101に示 す点 Rの生成と、 ステップ 1109における点 Rの減算だけである。 即ち、 RP A対策に関係する速度低下は、 これら 2つの処理分だけに限定されるので、 図 5 の 2倍の処理時間を必要とする ESおよび PBと比較すると高速な処理が実現さ れる。
図 13は、 図 10の暗号化装置 10によって実行される、 本発明による電力解 析攻撃対策を R S A暗号に適用した基本的アルゴリズムを示す。
図 1 3を参照すると、 ステップ 1201において、 乱数生成部 14は舌し数 rを 生成する。 初期化部 16は、 ステップ 1202において初期値として rをワーク 変数 V' [0] にセットし、 ステップ 1203において初期値として aをワーク 変数 V [2] にセットする。
ステップ 1204〜 1208を含むループは、 ワーク変数 V' [0] 、 V, [ 1] および V [2] に対してアド .アンド 'ダブル.オールウェイズ法により べき剰余演算を実行してワーク変数を更新する。
ステップ 1204〜 1208の.ループが終了した後、 ステップ 1209におい て出力部 24は rの逆元 r—1 (mo d n) と V' [0] の乗算剰余を計算す ることによって、 rによってランダム化されたデータを元に戾して、 その値 Vを 出力する。
ステップ 1204〜 1209におけるアド 'アンド'ダブル ·オールウェイズ 法によるループによって SPAを防ぎ、 ワーク変数 V' [0] の初期値に乱数 r がセットされることによって、 そのループにおけるワーク変数をランダムに変ィ匕 させ DP Aを防ぐ。
処理のオーバ一^、ッドについて、 図 5を RS Aに適用する場合と比較すると、 R P A対策のための追加的処理はステップ 1 201に示す追加処理は rの生成と 、 ステップ 1 209に示す rの逆元の乗算剰余だけである。
次に、 図 1 2の楕円曲線暗号用の基本的アルゴリズムの実施形態について説明 する。
図 1 2におけるステップ 1 1 0 1における点 Rの生成、 ステップ 1 1 07にお ける V [2] の 2倍算として、 必要な計算量が異なる複数の実施形態が存在する 図 14〜 1 8は、 図 1 2におけるステップ 1 1 0 1を実現する相異なるランダ ムな点 Rの生成のアルゴリズムを示している。
図 14を参照すると、 ステップ 1 30 1において、 乱数点生成部 14は、 取り 得る任意の座標 Xの値をランダムに生成し、 値 Xを Rxにセットする。 即ち、 素 体の楕円曲線パラメータを用いた楕円曲線暗号の場合、 0<RX< pを満たす整 数を、 2べきの楕円曲線パラメータの場合 GF (2m) のランダムな値を与える ことによって生成する。 ステップ 1 302において所与の座標 Xに対応する座標 Yを求め RYを生成する。 ステップ 1 3 03および 1 304において、 R= (R x, RY) とセットする。 座標 Xから座標 Yを求めるためのアルゴリズムは、 前 記文献 I E EE P 1 36 3ZD 1 3に記載されている。
図 1 5を参照すると、 生成部 1 4は、 ステップ 140 1において乱数 sを生成 し、 ステップ 1402において図 5のァド'アンド 'ダブル ·オールウェイズに よってベースボイント Gを s倍した s Gを Rにセットする。 あるいは、 図 5のァ .ルゴリズムの代わりに、 図 1 2のアルゴリズムを R = 0、 d = sおよび A = Gに ついて実行してもよい。 このように同一アルゴリズムを共用することによって、 リソースの利用を効率化できる。 乱数 sは任意の値であるが、 それがスカラー値 dのビット長を超える場合、 ステップ 1 402のスカラー倍算による計算オーバ 一へッドが大きい。 例えば 1 60ビットの楕円曲線暗号において s力 1 60ビッ トの乱数であるとき、 ステップ 1 402の計算量が大きくなる。 その結果、 本発 明によるアルゴリズム全体の計算量が図 5のアルゴリズムの概ね 2倍となつて処 理速度が低下する。 従って、 sは 2 0〜3 0ビットの値であることが好ましい。 図 1 6は、 スマートカードの初期化等において点 Rの初期値をランダムに与え た後、 本発明による電力解析攻撃から保護された暗号処理が呼び出される度にそ の点 Rの値を更新するアルゴリズムを示している。 その更新を簡単な演算で実現 することによって、 図 1 4および 1 5に示されたアルゴリズムと比べて、 その処 理時間を短くできる。
ステップ 1 5 0 1において、 生成部 1 4は、 通常の電力解析攻撃対策において 使用される Rの値をメモリ上の特定の領域から読み込む。 代替構成として、 例え ば図 1 4および 1 5に示した方法を用いて点 Rの初期値を与えてもよい。 ステツ プ 1 5 0 2において、 生成部 1 4は、 点 Rに対して 2倍算を行うことによってそ の値を更新する。 ステップ 1 5 0 3において、 生成部 1 4はその更新した点 Rの 値を次回の処理のために格納する。
図 1 7は、 図 1 2における投影座標における点 Rの生成のアルゴリズムを示し ている。 図 1 8は、 図 1 2におけるヤコビアン座標における点 Rの生成のァルゴ リズムを示している。
これらのアルゴリズムにおいては、 生成部 1 4は、 図 1 6のアルゴリズムと同 様にスマートカードが初期化されるとき等にぉレ、て点 Rの初期値をランダムに生 成し、 その後、 本発明による暗号プログラムが呼び出される度に、 生成部 1 4は 点 R初期値を更新する。
図 1 6のアルゴリズムと同様に、 生成部 1 4は、 ステップ 1 6 0 1においてメ モリ 1 8に格納されている前回の R読み込み、 ステップ 1 6 0 3において更新さ れた Rを格納する。 図 1 7において、 生成部 1 4は、 ステップ 1 6 0 2において 定数 tを座標値 R = ( X J R Y, R z) に乗算することによって初期値 Rを更新 する。 図 1 8において、 生成部 1 4は、 ステップ 1 6 0 2において定数 t、 t 2 および t 3を座標値 R ( R x, R Y, R z) の各成分に乗算することによって初期 値 Rを更新する。 tの値として、 例えば t = 3のような小さな値を選択すること によって、 Rの更新に必要な計算量を小さくできる。
図 1 9は、 図 1 2におけるステップ 1 1 0 7におけるワーク変数 V [ 2 ] に対 する点の 2倍算の実施形態を示している。
ステップ 1107における点の 2倍算は、 同一ワーク変数 V [2] に対して繰 り返し実行され、 V [2] の値はループ変数 iを用いて V [2] =2 i + 1Aと表 される。 ヤコビアン座標および素体の場合について、 同一の点に対して繰り返し 実行される 2倍算 (点の 2k倍算) によって計算を高速化する手法が、 本発明者 の中の 2人、 武仲および伊藤によって 2000年 5月 16日付けで公開された特 開 2000— 137436号公報 (A) に開示されており、 ここでこの文献を引 用して組み込む。 図 19では、 その公報における図 2に示されている点の 2k倍 算の手法が用いられる。
図 1 9における iは、 図 1 7におけるループ変数 iの値と同じである。 このァ ルゴリズムは、 変数 Pとしての A [2] = (X;, Yい Ζ = 2 ; Aの入力か ら A [2] = (Xi + 1, Yi + 1, Z i + =2 i +1 Aの出力までの演算を表してい る。 i =0のときは、 i f文によって i =0に対する処理に分岐することによつ て、 通常の素体ヤコビアン座標における 2倍算と同じ処理を行う。 i>lのとき は、 i f文によって i>lに対する処理に分岐する。 このとき、 点の 2倍算のた めのワーク変数 を計算するために、 i一 1におけるワーク変数 の値を 再利用することによって計算量が削減される。 前記文献 I EEE P 1363に 記載されている標準的な点の 2倍算を用いたとき、 1回当たり 10回の乗算が必 要であるが、 図 19のアルゴリズムを用いたとき 1回当たり 8回の乗算のみを必 要とする。 即ち、 図 19に示されたアルゴリズムを用いることによって、 標準的 な方法を用いるのと比較して点の 2倍算に必要な計算量を 2割だけ削減できる。 図 20は、 図 1 5 (R初期化) 、 16 (ステップ 1101、 Rの生成) および 19 (ステップ 1 106、 点の 2 k倍算) のアルゴリズムを組み合わせた、 図 1 2に示された本発明による基本的アルゴリズムの実施形態を示している。
代替構成として、 図 7のステップ 1 101として図 14〜 18のいずれかと、 ステップ 1 106として図 1 9および前記文献 I EEE P 1363のいずれか 、 の組み合わせであってもよい。
次に、 図 13の R S A暗号用の基本的アルゴリズムの実施形態について説明す る。 R S A暗号用の電力解析攻撃対策の場合、 図 18がそのまま実施例となる。 その理由は、 ステップ 1201における乱数 rの生成、 ステップ 1206におけ る 2乗算の実現例には変形形態がないからである。
以上説明したように、 本発明の実施形態によれば、 S PA、 DPAおよび RP Aの全ての解析に対する対策が実現でき、 かつ通常安全なものとして知られてい た E Sおよび P Bと比較して計算量が小さくなる。
表 2は、 電力解析攻撃対策の通常の公開鍵暗号と本発明による楕円曲線暗号の 比較を示している。 表 3は、 電力解析攻撃対策の通常の公開鍵暗号と本発明によ る RS A暗号の比較を示している。 表 3において RPC、 RCおよび PB暗号は 楕円曲線暗号に適用できないので除外されている。 表 2 楕円曲線用の電力解析攻撃への対策の比較
Figure imgf000025_0001
表 3 R S A用の電力解析攻撃への対策の比較
Figure imgf000025_0002
.で、 Sは解析に対して安全であること、 Vは解析に対して脆弱であることを 表す。 電力解析攻擊対策なしのァド'アンド'ダブル ·オールウェイズにおいて
、 スカラー算の処理時間が Eで表され、 逆元計算の処理時間が Iで表され、 点の 加算、 減算および 2倍算が Aで表されるものとする。 Aは Eに比べて無視できる ほど小さい。
通常の暗号ィ匕による処理量は表 1のものである。 本発明による図 20のァルゴ リズムの処理量は、 ステップ 1 702における点の 2倍算とステップ 171 1に おける点の減算以外は、 図 5におけるァド 'アンド'ダブノレ 'オールウェイズと 同じ演算を行うので、 合計 E+ 2 Aと表される。
表 2から分かるように、 SPA、 DP Aおよび R PAの全てに対して安全な暗 号は、 ES暗号、 PB暗号および本発明の暗号である。 処理時間を比較すると、 Aは Eに比べて無視できるほど小さいので、 本発明の暗号の処理時間は、 安全な E S暗号および P B暗号の処理時間のほぼ半分である。
Aが Eと比べて無視できるほど小さいのは、 アド ·アンド'ダブノレ ·オールゥ エイズにおいて点の加算と 2倍算がそれぞれ m回実行され、 合計 2m回実行され ることから明らかである。 例えば、 160ビット楕円曲線暗号において m= 16 0としたとき、 E:= 32 OAとなる。
E Sに必要な計算は、 R S Aにおける E Sの演算手順が次の通りなので、 2 E となる。
丄 = a 1 (mod n) ,
v2 = ad2 (mod n) ,
v = vi V2 (mod n) = ad (mod n)
ここで、 V lおよび v2の乗算剰余はべき乗剰余演算と比べて非常に小さく無視 できると仮定している。 本発明による図 13の処理は、 ステップ 1201〜 12 08に示すァド ·アンド ·ダブノレ ·オールウェイズと、 ステップ 1210におけ る逆元 r— 1 (mo d n) の演算で構成されるので、 処理量は合計 E+ Iと表 される。 即ち、 E> Iに対して、 本発明の方が E Sよりも高速な処理を実現でき る。 Eと Iの大小関係は、 処理環境によって異なるが、 一般的に Eは演算ビット 長の 3乗、 Iは演算ビット長の 2乗に比例するので、 E > Iという仮定は妥当で ある。 このように、 本発明は電力解析攻撃に対する安全性を損なうことなく、 処 理時間が小さい。
以上説明した実施形態は典型例として挙げたに過ぎず、 その変形およびバリェ ーションは当業者にとって明らかであり、 当業者であれば本発明の原理および請 求の範囲に記載した発明の範囲を逸脱することなく上述の実施形態の種々の変形 を行えることは明らカである。

Claims

請 求 の 範 囲
1. 個人鍵を用いて楕円曲線暗号処理を行う暗号装置であって、
乱数に基づいて生成された楕円曲線上の点 Rを初期点 V。にセットするランダ ム化手段と、
前記楕円曲線暗号のための或るスカラー値 dのビット ·シーケンスに従って、 前記初期点 V。と楕円曲線上の或る入力点 Aのスカラー倍との和 d A の演算を実行する演算手段と、
前記演算によって得られた和 V iから前記初期点 V。を減算する演算 V = V i― V 0を実行するランダムィ匕解除手段と、
前記ランダム化解除手段によつて得られた点 Vを出力として供給する手段と、 を具える、 暗号装置。
2. 前記演算手段は次の演算を繰り返し実行し、
一 点の加算 V [1] : =V [0] +V [2] 、
一 点の 2倍算 V [2] : =2 V [2] 、 および
一 代入 V [0] : =V [d [i] ]
ここで、 V [2] は別の変数を表し、 前記入力点 Aが変数 V [2] の初期値とし てセットされ、 前記スカラー値 dは mビット 'シーケンスであり、 d [ i ] は、 i =0, 1, . . . m— 1について前記スカラー値 dの i番目の L SBの値を表 すものである、 請求項 1に記載の暗号装置。
3. 前記ランダム化手段は、 前記楕円曲線上の点 Rの座標 Xを生成し、 前記座 標 Xに従って前記点 Rの座標 Yを生成して、 前記生成された座標 (X, Y) を前 記点 Rとして前記初期点 V。にセットするものである、 請求項 1に記載の暗号装 置。
4. 前記ランダム化手段は、 乱数 sを生成し、 ベースポイント Gの s倍を求め 、 前記求められた s Gを前記点 Rとして前記初期点 V。にセットするものである 、 請求項 1'に記載の暗号装置。
5. 前記ランダム化手段は、 前記 sGを求めるために、 無限遠点 Oをワーク変 数 V [0] に初期値としてセットし、 前記 Gをワーク変数 V [2] に初期値とし てセットし、
次の演算を繰り返し実行し、
一 点の加算 V [1] : =V [0] +V [2] 、
一 点の 2倍算 V [2] : = 2 V [2] 、 および
一 代入 V [0] : =V [d [ i ] ]
ここで、 前記スカラー値 dは mビット 'シーケンスであり、 d [ i] は、 i =0 , 1, . . . m— 1について前記スカラー値 dの i番目の L S Bの値を表すもの である、 請求項 4に記載の暗号装置。
6. 前記ランダム化手段は、 前記 s Gを求めるために、 乱数 sを前記スカラー 値 dにセットし、 前記入力点 Aを前記ベースボイント Gにセットし、 無限遠点 O を前記点 Rにセットすることによって、 前記演算 V1 = V。+ d Aを用いて s G =0+ s Gを求めるものである、 請求項 4に記載の暗号装置。
7. 最初にランダムに発生された前記楕円曲線上の点 R0が前記点 Rにセット され、 その後前記点 Rとして関数 Rn= f (Rn-1, c) で表される前記楕円曲 線上の点 R nが用いられ、 ここで R nは n回目の楕円曲線暗号処理を表すもので あり、 cは定数を表すものである、 請求項 1に記載の暗号装置。
8. 前記楕円曲線上の前回の点 が投影座標の点 (Rx, RY, Rz) で表 されるとき、 前記楕円曲線上の今回の点 Rnが投影座標の点 (c XRx, c XRY , c XRZ) で表されるものである、 請求項 7に記載の暗号装置。
9. 前記楕円曲線上の前回の点 がヤコビアン座標の点 (Rx, RY, Rz ) で表されるとき、 前記楕円曲線上の今回の点 Rnがヤコビアン座標の点 (c 2 XRX, c 3XRY, c XR2) で表されるものである、 請求項 7に記載の暗号装
1 0. 前記楕円曲線暗号処理は素体の楕円曲線パラメータに対するヤコビヤン 座標を用いた演算であり、 P=V [2] = (Χ Y;, Z j =2 iAであり、 i
Figure imgf000029_0001
a Riを順 に実行することによって Riを求め、
i>lについて、 演算 Ri : =RiTi1を実行することによって Riを求め、 ここで!^ は i一 1についての中間データを表し、 前記求められた Riに従って、 演算 Mi :
Figure imgf000030_0001
S , : = 4XiQい 1 : =8(3 ヽ Z i + 1 : =2Y;Zい Xi + 1 : =M; 2- 2 Sい および Yi +1 :
Figure imgf000030_0002
(S j—Xi) — を、 この順にまたは別の順に実行して P= (Xi + 1, Yi +い Z i + = 2 i + 1Aを求め、 V [2] として出力するもの である、
請求項 2に記載の暗号装置。
1 1. 個人鍵を用いてべき乗剰余暗号処理を行う暗号装置であって、
乱数に基づいて生成された整数 rを初期値 V。にセットするランダム化手段と 前記べき乗剰余暗号のための或る値 dのビット ·シーケンスに従って、 前記初 期値 V。と或る入力値 aに対するべき乗剰余演算 Vi-VQ a d (mo d n) = r X a d (mo d n) の演算を実行する演算手段と、
前記演算によって得られた値 と r (mo d n) の逆元 r一1 (mo d n ) との乗算剰余演算 V = ViX r— 1 (mo d n) を実行するランダム化解除手 段と、
前記ランダム化解除手段によって得られた値 Vを出力として供給する手段と、 を具える、 暗号装置。
1 2. 前記演算手段は、 次の演算を繰り返し実行するものである、
一 乗算 V [1] : =V [0] XV [2] (mo d n) 、
一 2乗算 V [2] : =V [2] 2 (mo d n) 、 および
一 代入 V [0] : =V [d [i] ]
ここで、 V [2] は別の変数を表し、 前記値 dは mビット 'シーケンスであり、 d [i] は、 i =0, 1, . . . m—lについて前記値 dの i番目の LSBの値 を表すものである、
請求項 1 1に記載の暗号装置。
13. 情報処理装置において使用するための、 個人鐽を用いて楕円曲線暗号処 理を行う記憶媒体に格納されたプログラムであって、
乱数に基づレ、て生成された楕円曲線上の点 Rをランダムに発生するステップと 前記点 Rを初期点 V。にセットする
前記楕円曲線暗号のための或るスカラー値 dのビット ·シーケンスに従って、 前記初期点 V。と楕円曲線上の或る入力点 Aのスカラー倍との和 V = V。 + d A の演算を実行するステツプと、
前記演算によつて得られた和 V xから前記初期点 V。を減算する演算 V = VX -
V。を実行するステップと、
前記減算によって得られた点 Vを出力として供給するステップと、
を実行させるよう動作可能なプログラム。
14. 情報処理装置において使用するための、 個人鍵を用いてべき乗剰余暗号 処理を行う記憶媒体に格納されたプログラムであって、
乱数に基づいて生成された整数 rを初期値 V。にセットするステップと、 前記べき乗剰余暗号のための或る値 dのビット ·シーケンスに従って、 前記初 期値 V。と或る入力値 aに対するべき乗剰余演算 Vi-Vo a d (mo d n) = r X a d (mo d n) の演箅を実行するステップと、
前記演算によって得られた値 と r (mo d n) の逆元 r— 1 (mo d n )
Figure imgf000031_0001
r— 1 (mo d n) を実行するステップと、 前記逆元との乗算剰余演算によって得られた値 Vを出力として供給するステツ プと、
を実行させるよう動作可能なプログラム。
15. 情報処理装置において使用するための、 個人鍵を用いて楕円曲線暗号処 理を行う方法であって、
乱数に基づレ、て生成された楕円曲線上の点 Rをランダムに発生するステップと 前記点 Rを初期点 V。にセットするステップと、
前記楕円曲線暗号のための或るスカラー値 dのビット ·シーケンスに従って、 前記初期点 V。と楕円曲線上の或る入力点 Aのスカラー倍との和 V i = V。十 d A の演算を実行するステップと、
前記演算によって得られた和 V iから前記初期点 V。を減算する演算 V-Vi— V。を実行するステップと、 前記減算によつて得られた点 Vを出力として供給するステツプと、
を含む方法。
1 6. 情報処理装置において使用するための、 個人鍵を用いてべき乗剰余暗号 処理を行う方法であって、
乱数に基づいて生成された整数 rを初期値 V。にセットするステップと、 前記べき乗剰余暗号のための或る値 dのビット ·シーケンスに従って、 前記初 期値 V。と或る入力値 aに対するべき乗剰余演算 V Vo a d (mo d n) = r X a d (mo d n) の演算を実行するステップと、
前記演算によって得られた値 ェと r (mo d n) の逆元 r— 1 (mo d n ) との乗算剰余演算 V-VtX r— 1 (mo d n) を実行するステップと、 前記逆元との乗算剰余演算によつて得られた値 Vを出力として供給するステッ プと、
を含む方法。
PCT/JP2003/009284 2003-07-22 2003-07-22 個人鍵を用いた耐タンパ暗号処理 Ceased WO2005008955A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
AU2003304629A AU2003304629A1 (en) 2003-07-22 2003-07-22 Tamper-resistant encryption using individual key
EP03741543.7A EP1648111B1 (en) 2003-07-22 2003-07-22 Tamper-resistant encryption using a private key
PCT/JP2003/009284 WO2005008955A1 (ja) 2003-07-22 2003-07-22 個人鍵を用いた耐タンパ暗号処理
JP2005504397A JP4632950B2 (ja) 2003-07-22 2003-07-22 個人鍵を用いた耐タンパ暗号処理
US11/272,916 US20070177721A1 (en) 2003-07-22 2005-11-15 Tamper-proof elliptic encryption with private key

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/009284 WO2005008955A1 (ja) 2003-07-22 2003-07-22 個人鍵を用いた耐タンパ暗号処理

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/272,916 Continuation US20070177721A1 (en) 2003-07-22 2005-11-15 Tamper-proof elliptic encryption with private key

Publications (1)

Publication Number Publication Date
WO2005008955A1 true WO2005008955A1 (ja) 2005-01-27

Family

ID=34074135

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/009284 Ceased WO2005008955A1 (ja) 2003-07-22 2003-07-22 個人鍵を用いた耐タンパ暗号処理

Country Status (5)

Country Link
US (1) US20070177721A1 (ja)
EP (1) EP1648111B1 (ja)
JP (1) JP4632950B2 (ja)
AU (1) AU2003304629A1 (ja)
WO (1) WO2005008955A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007325219A (ja) * 2006-06-05 2007-12-13 Sony Corp 暗号処理システムおよび暗号処理装置
JP2009500710A (ja) * 2005-06-29 2009-01-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法
JP2009500892A (ja) * 2005-06-29 2009-01-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法
JP2009537025A (ja) * 2006-03-31 2009-10-22 アクサルト・エス・アー サイドチャネル攻撃からの保護
WO2012090284A1 (ja) * 2010-12-27 2012-07-05 三菱電機株式会社 演算装置、演算装置の楕円スカラー倍算方法、楕円スカラー倍算プログラム、演算装置の剰余演算方法、剰余演算プログラム、演算装置のゼロ判定方法およびゼロ判定プログラム

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2820576B1 (fr) * 2001-02-08 2003-06-20 St Microelectronics Sa Procede de cryptage protege contre les analyses de consommation energetique, et composant utilisant un tel procede de cryptage
US7555122B2 (en) * 2002-12-04 2009-06-30 Wired Communications LLC Method for elliptic curve point multiplication
US7961873B2 (en) * 2004-03-03 2011-06-14 King Fahd University Of Petroleum And Minerals Password protocols using XZ-elliptic curve cryptography
US7961874B2 (en) * 2004-03-03 2011-06-14 King Fahd University Of Petroleum & Minerals XZ-elliptic curve cryptography with secret key embedding
KR100891323B1 (ko) * 2005-05-11 2009-03-31 삼성전자주식회사 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치
DE102005024609A1 (de) * 2005-05-25 2006-11-30 Siemens Ag Bestimmung einer modularen Inversen
KR100850202B1 (ko) * 2006-03-04 2008-08-04 삼성전자주식회사 Ecc 패스트 몽고매리 전력 래더 알고리즘을 이용하여dfa 에 대응하는 암호화 방법
ATE472133T1 (de) * 2006-04-06 2010-07-15 Nxp Bv Entschlüsselungsverfahren
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
US8233615B2 (en) * 2008-01-15 2012-07-31 Inside Secure Modular reduction using a special form of the modulus
US8401179B2 (en) * 2008-01-18 2013-03-19 Mitsubishi Electric Corporation Encryption parameter setting apparatus, key generation apparatus, cryptographic system, program, encryption parameter setting method, and key generation method
FR2926652B1 (fr) * 2008-01-23 2010-06-18 Inside Contactless Procede et dispositifs de contre-mesure pour cryptographie asymetrique a schema de signature
WO2009118795A1 (ja) * 2008-03-28 2009-10-01 富士通株式会社 サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法
US8369517B2 (en) * 2008-08-12 2013-02-05 Inside Secure Fast scalar multiplication for elliptic curve cryptosystems over prime fields
US20100172492A1 (en) * 2009-01-08 2010-07-08 National Tsing Hua University Method for scheduling elliptic curve cryptography computation
US8549299B2 (en) * 2011-02-28 2013-10-01 Certicom Corp. Accelerated key agreement with assisted computations
FR2977952A1 (fr) 2011-07-13 2013-01-18 St Microelectronics Rousset Protection d'un calcul d'exponentiation modulaire par multiplication par une quantite aleatoire
FR2977954B1 (fr) 2011-07-13 2015-06-26 St Microelectronics Rousset Protection d'un calcul sur courbe elliptique
FR2977953A1 (fr) 2011-07-13 2013-01-18 St Microelectronics Rousset Protection d'un calcul d'exponentiation modulaire par addition d'une quantite aleatoire
FR3010210B1 (fr) * 2013-08-29 2017-01-13 Stmicroelectronics Rousset Protection d'un calcul contre des attaques par canaux caches
FR3017476B1 (fr) 2014-02-12 2017-06-09 Secure-Ic Sas Procede de contremesure pour un composant electronique mettant en œuvre un algorithme de cryptographie sur une courbe elliptique
WO2016053792A1 (en) 2014-10-03 2016-04-07 Cryptography Research, Inc. Exponent splitting for cryptographic operations
US9590805B1 (en) * 2014-12-23 2017-03-07 EMC IP Holding Company LLC Ladder-based cryptographic techniques using pre-computed points
US10181944B2 (en) * 2015-06-16 2019-01-15 The Athena Group, Inc. Minimizing information leakage during modular exponentiation and elliptic curve point multiplication
FR3055444B1 (fr) * 2016-08-23 2022-02-04 Maxim Integrated Products Dispositif et procedes de commande de dispositif de cryptage sur courbe elliptique securises
US10341098B2 (en) * 2017-01-24 2019-07-02 Nxp B.V. Method of generating cryptographic key pairs
WO2018148819A1 (en) * 2017-02-15 2018-08-23 Infosec Global Inc. Cryptographic scheme with fault injection attack countermeasure
US11983280B2 (en) * 2019-01-07 2024-05-14 Cryptography Research, Inc. Protection of cryptographic operations by intermediate randomization
CN112217643B (zh) * 2019-07-09 2021-12-10 华为技术有限公司 运算方法、装置及设备
JP2022045614A (ja) * 2020-09-09 2022-03-22 キオクシア株式会社 演算装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000137436A (ja) 1998-10-30 2000-05-16 Fujitsu Ltd 素体上楕円曲線上の点の演算方法およびその装置
JP2000187438A (ja) * 1998-12-22 2000-07-04 Hitachi Ltd 楕円曲線暗号実行方法及び装置並びに記録媒体
WO2000059157A1 (fr) 1999-03-26 2000-10-05 Gemplus Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique
WO2001024439A1 (en) * 1999-09-29 2001-04-05 Hitachi, Ltd. Device, program or system for processing secret information
JP2001195555A (ja) * 2000-01-12 2001-07-19 Hitachi Ltd Icカードとマイクロコンピュータ
JP2001337599A (ja) * 2000-05-30 2001-12-07 Hitachi Ltd 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
JP2002540483A (ja) * 1999-03-26 2002-11-26 ジェムプリュス 楕円曲線型公開鍵暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法
JP2003177668A (ja) * 2001-09-06 2003-06-27 Stmicroelectronics Sa 秘密量をもった計算をスクランブルする方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW536672B (en) * 2000-01-12 2003-06-11 Hitachi Ltd IC card and microcomputer
JP2003098962A (ja) * 2001-09-20 2003-04-04 Hitachi Ltd 楕円曲線スカラー倍計算方法及び装置並びに記録媒体
JP3794266B2 (ja) * 2000-11-08 2006-07-05 株式会社日立製作所 楕円曲線スカラー倍計算方法及び装置並びに記憶媒体
JP2003131568A (ja) * 2001-10-26 2003-05-09 Hitachi Ltd 楕円曲線署名検証方法及び装置並びに記憶媒体

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000137436A (ja) 1998-10-30 2000-05-16 Fujitsu Ltd 素体上楕円曲線上の点の演算方法およびその装置
JP2000187438A (ja) * 1998-12-22 2000-07-04 Hitachi Ltd 楕円曲線暗号実行方法及び装置並びに記録媒体
WO2000059157A1 (fr) 1999-03-26 2000-10-05 Gemplus Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique
JP2002540483A (ja) * 1999-03-26 2002-11-26 ジェムプリュス 楕円曲線型公開鍵暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法
JP2002540484A (ja) * 1999-03-26 2002-11-26 ジェムプリュス 楕円曲線型の公開鍵暗号化アルゴリズムを用いる電子構成部品における対抗措置方法
WO2001024439A1 (en) * 1999-09-29 2001-04-05 Hitachi, Ltd. Device, program or system for processing secret information
JP2001195555A (ja) * 2000-01-12 2001-07-19 Hitachi Ltd Icカードとマイクロコンピュータ
JP2001337599A (ja) * 2000-05-30 2001-12-07 Hitachi Ltd 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
JP2003177668A (ja) * 2001-09-06 2003-06-27 Stmicroelectronics Sa 秘密量をもった計算をスクランブルする方法

Non-Patent Citations (1)

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

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009500710A (ja) * 2005-06-29 2009-01-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法
JP2009500892A (ja) * 2005-06-29 2009-01-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法
US8738927B2 (en) 2005-06-29 2014-05-27 Irdeto B.V. Arrangement for and method of protecting a data processing device against an attack or analysis
JP2009537025A (ja) * 2006-03-31 2009-10-22 アクサルト・エス・アー サイドチャネル攻撃からの保護
US8402287B2 (en) 2006-03-31 2013-03-19 Gemalto Sa Protection against side channel attacks
JP2007325219A (ja) * 2006-06-05 2007-12-13 Sony Corp 暗号処理システムおよび暗号処理装置
WO2012090284A1 (ja) * 2010-12-27 2012-07-05 三菱電機株式会社 演算装置、演算装置の楕円スカラー倍算方法、楕円スカラー倍算プログラム、演算装置の剰余演算方法、剰余演算プログラム、演算装置のゼロ判定方法およびゼロ判定プログラム
US9176707B2 (en) 2010-12-27 2015-11-03 Mitsubishi Electric Corporation Arithmetic apparatus, elliptic scalar multiplication method of arithmetic apparatus, elliptic scalar multiplication program, residue operation method of arithmetic apparatus, and residue operation program

Also Published As

Publication number Publication date
JPWO2005008955A1 (ja) 2006-09-07
US20070177721A1 (en) 2007-08-02
EP1648111A1 (en) 2006-04-19
EP1648111A4 (en) 2008-03-19
JP4632950B2 (ja) 2011-02-16
AU2003304629A1 (en) 2005-02-04
EP1648111B1 (en) 2014-01-15

Similar Documents

Publication Publication Date Title
JP4632950B2 (ja) 個人鍵を用いた耐タンパ暗号処理
Coron Resistance against differential power analysis for elliptic curve cryptosystems
US7536011B2 (en) Tamper-proof elliptic encryption with private key
Izu et al. Improved elliptic curve multiplication methods resistant against side channel attacks
US8391477B2 (en) Cryptographic device having tamper resistance to power analysis attack
US7864951B2 (en) Scalar multiplication method with inherent countermeasures
US7162033B1 (en) Countermeasure procedures in an electronic component implementing an elliptical curve type public key encryption algorithm
US20080260143A1 (en) Xz-elliptic curve cryptography with secret key embedding
EP1840732A1 (en) Protection against side channel attacks
US6914986B2 (en) Countermeasure method in an electronic component using a public key cryptography algorithm on an elliptic curve
US8817973B2 (en) Encrypting method having countermeasure function against power analyzing attacks
US7286666B1 (en) Countermeasure method in an electric component implementing an elliptical curve type public key cryptography algorithm
JP5182364B2 (ja) サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法
CN100403674C (zh) 使用rsa类型公开密钥加密算法的电子部件中的对策方法
CN101180606A (zh) 模逆元的确定
Itoh et al. Efficient countermeasures against power analysis for elliptic curve cryptosystems
Smart et al. Randomised representations
Somsuk The alternative method to finish modular exponentiation and point multiplication processes
KR100772550B1 (ko) 전력분석공격에 안전한 메시지 블라인딩 방법
Park et al. An improved side channel attack using event information of subtraction
Okeya et al. On the importance of protecting Δ in SFLASH against side channel attacks
Tunstall et al. Coordinate blinding over large prime fields
Mamiya et al. Secure elliptic curve exponentiation against RPA, ZRA, DPA, and SPA
Sakai et al. Simple power analysis on fast modular reduction with generalized mersenne prime for elliptic curve cryptosystems
Takemura et al. ECC Atomic Block with NAF against Strong Side-Channel Attacks on Binary Curves

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

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

AL Designated countries for regional patents

Kind code of ref document: A1

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

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

Ref document number: 2005504397

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2003741543

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11272916

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2003741543

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 11272916

Country of ref document: US