The present invention relates to a field of encryption, and more specifically to the tamper-resistant technology for protecting a secret key in an encryption processor against power analyzing attacks.
Encrypting systems can be roughly classified into a common key encrypting system and a public key encrypting system. The common key encrypting system uses the same key (secret key) in encrypting and decoding processes, and maintains the security by defining the secret key as the information unknown to the third parties other a transmitter and a receiver. The public key encrypting system uses keys different between encrypting and decoding processes, and maintains the security by defining a key (secret key) for decoding cipher text as secret information for only a receiver instead of publishing to common users a key (public key) for encryption.
One of the techniques in the field of encryption is decrypting technique. The decrypting technique is to estimate secret information such as a secret key from available information such as cipher text etc., and there are a number of methods. One of the techniques recently receiving widespread attention is a method called power analyzing attacks. The power analyzing attacks was devised by Paul Kocher in 1998 to estimate key information in an encryption processor by collecting and analyzing power consumption data obtained when various input data are provided for an encryption processor loaded into a smart card etc. It is known that a secret key of both common key encryption and public key encryption can be estimated from an encryption processor by using the power analyzing attacks.
There are two types of power analyzing attacks, that is, a simple power analysis (hereinafter referred to as an SPA) and a differential power attacks (hereinafter referred to as a DPA). The SPA is a system of estimating a secret key from the characteristics of a single piece of power consumption data in the encryption processor, and the DPA is a system of estimating a secret key by analyzing a difference in a large number of pieces of power consumption data.
The estimating method using the SPA and the DPA for the common key encrypting systems such as a DES and an AES is described in detail in the following non-patent document 1 (hereinafter referred to as the Kocher 99).
The estimating using the SPA and the DPA for the public key encryption such as the RSA encryption, the oval curve encryption, etc. is described in the documents such as the non-patent document 2 (Messerges 99), the non-patent document 3 (Coron 99), etc.
Calculating Method of RSA Encryption (Prior Art)
In the process of decoding an RSA encryption, an exponential remainder calculating process is performed. The exponential remainder calculation is to calculate plain text v by v=ad (mod n) on a secret key d, cipher text a, and a modulo n. Generally, since the bit length of the secret key d in the RSA encryption is 1024 bits or more, it is necessary to perform 21024 multiplications if the d-th powered multiplication is performed in a simple method, thereby disabling the entire calculation to be completed within a practical time.
There is a binary method or a window method as an algorithm for efficiently performing the process. The binary method is described on page 614, algorithm 14.79 of the following non-patent document 4. The window method is described on page 615, algorithm 14.82 of the document 4. Using these methods, the necessary calculation frequency for the d-th powered multiplication can be reduced from 21024 to a multiple of a constant (1.5 or less) of 1024, thereby realizing an efficiency calculation.
The secret key d is expressed by a u-bit value, and the binary expression is d=(du−1, du−2, . . . , d0) 2. However, di indicates a bit value of each “d”.
The process illustrated in
The process illustrated in
In the following explanation, the sequence bi used in the table index in the window method is referred to as a “window sequence”.
<Power Analyzing Attacks Against the RSA Encrypting Process (Prior Art)>
The power analyzing attacks against the RSA encrypting process described with reference to
The means and results of attacks depend on the RSA processing method, that is, whether the RSA processing method is the binary method or the window method described below.
Binary Method
Information determined by an attacker from power consumption: Squaring or multiplication is identified.
Key information obtained by an attacker: All bit values (all u bits) of a secret key
Window Method
Information determined by an attacker from power consumption: Whether each window sequence bi is an even number or an odd number.
Key information obtained by an attacker: Ceiling(u/k) bits in u bits of a secret key are decrypted. One bit is decrypted every k-th bit.
As described above, if the bit value of a secret key is 1 in the binary method, then a multiplication and a squaring are performed. If the bit value is 0, then only the squaring is performed. Therefore, in the binary method, if the squaring or the multiplication can be identified depending on the power consumption, all bits of d can be decrypted.
However, in the window method, the execution patterns of the squaring and the multiplication are always constant regardless of the value of the secret key. Therefore, no attacks can be effective in the method of identifying squaring or multiplication as described above. Instead, it is determined whether each window sequence bi is an even number or an odd number using a power consumption waveform. By performing the determination, the least significant bit of bi as the k-bit value can be decrypted. As illustrated in
<Power Analyzing Attacks Against the Binary Method (FIG. 1)>
The method of identifying squaring or multiplication is described below using a power consumption waveform. The identifying method is known as the two following attack methods, that is, the attack method 1 and the attack method 2. Used in these identifying methods is the characteristic that the power consumption waveform of a multiplying process depends on the data value of a multiplication.
Attack Method 1
After inputting a=−1 (mod n) as a value of the cipher text a, the decoding process is performed using the secret key d, and the power consumption is measured. By inputting the cipher text, that is, a=−1 (mod n), the pattern of the data value of the multiplication performed in the decoding process is limited to the following three types.
Multiplication: one type—(1)×(−1)
Squaring: two types—(1)×(1), (−1)×(−1)
The attacker has to identify the three types of waveform patterns, and then determines whether each waveform pattern corresponds to the multiplication or the squaring. However, since there are at most six variations of combinations of three types of waveform patterns and the multiplication and the squaring, the values of the key can be limited to 6 types. When the value of d is 1024 bits, 21024 operations are required to obtain a key by a round robin algorithm, but this method can limit the operations to 6 calculations.
When the characteristics of the algorithm in
When the value other than −1 is input to a, the data value of the multiplication performed in the loop of the multiplication and squaring of i=u−1, . . . , 1, 0 in
Attack Method 2
In the attack method 1, squaring or multiplication is identified by inputting a=−1(mod n) and observing a single power waveform. On the other hand, in the attack method 2 described below, the power consumption waveform obtained when a=s(mod n) is input and the power consumption waveform obtained when a=−s(mod n) is input are separately measured, and the difference waveforms are observed, thereby identifying squaring or multiplication. In this case, s indicates an optional data value, and can be freely selected by an attacker.
As with the attack method 1, the identifying method of the attack method 2 also has the characteristic that the power consumption waveform in the multiplying process depends on the data value of multiplication.
The difference waveform between the power consumption waveform obtained when a=s(mod n) is input and the power consumption waveform obtained when a=−s(mod n) is input is limited to three patterns depending on whether the calculation being performed is multiplication or squaring. The principle is first described below.
When the power consumption waveform obtained when a=s(mod n) is input is compared with the power consumption waveform obtained when a=−s(mod n) is input with the same timing, the contents of the calculations performed with the respective power consumption waveforms are described below.
Multiplication: The available pattern of the data values of multiplication is one pattern below.
[Pattern 1]
When a=s is input, the multiplication of vs=v×s (mod n) is performed. where v is intermediate data being calculated, and a variable v in
When a=−s is input, the multiplication of −vs=v×−s (mod n) is performed. where v is intermediate data being calculated, and a variable v in
In the case of “pattern 1”, the difference in data value in the multiplying process of C=A×B (mod n) between when a=s is input and when a=−s is input is considered. The values of A are the same, but the values of C and B are different. Therefore, as for the difference waveform between when a=s is input and when s=−s is input in the multiplying process, the waveform difference of the processed portion for the value of A is flat while the processed portions for the values of B and C indicate waveforms of large amplitude because of different data values.
Squaring: The available patterns of the data values of squaring is two patterns below.
[Pattern 2]
When a=s is input, the squaring of v2=v×v (mod n) is performed. where v is intermediate data being calculated, and a variable v in
When a=−s is input, the squaring of v2=−v×−v (mod n) is performed. where v is intermediate data being calculated, and a variable v in
In the case of “pattern 2”, the difference in data value in the multiplying process of C=A×B (mod n) between when a=s is input and when a=−s is input is considered. The values of C are the same, but the values of A and B are different. Therefore, as for the difference waveform between when a=s is input and when s=−s is input in the multiplying process, the waveform difference of the processed portion for the value of C is flat while the processed portions for the values of A and B indicate waveforms of large amplitude because of different data values.
[Pattern 3]
When a=s is input, the multiplication of v2=v×v (mod n) is performed. where v is intermediate data being calculated, and a variable v in
When a=−s is input, the multiplication of v2=v×v (mod n) is performed. where v is intermediate data being calculated, and a variable v in
In the case of “pattern 3”, the difference in data value in the multiplying process of C=A×B (mod n) between when a=s is input and when a=−s is input is considered. All values of A, B, and C are the same. Therefore, as for the difference waveform between when a=s is input and when s=−s is input in the multiplying process, the waveform is completely flat because all values of A, B, and C are the same values.
As described above, the difference waveform obtained between when a=s is input and when a=−s is input can be limited to the waveforms of three patterns depending on the calculation being performed, that is, multiplication of squaring.
As illustrated in
As described above, the attacker identifies the waveform of the “pattern 1”, “pattern 2”, or “pattern 3”, thereby identifying squaring or multiplication and obtaining all values of secret key.
<Power Analyzing Attacks Against Window Method (FIG. 2)>
The method of identifying the window sequence bi as an even number or an odd number is described below using a power consumption waveform. The identifying method is known as the two following attack methods, that is, the attack method 3 and the attack method 4. Used in these identifying methods is the characteristic that the power consumption waveform of a multiplying process depends on the data value of a multiplication.
Attack Method 3
As with the attack method 1, after inputting a=−1(mod n) as a value of the cipher text a, the decoding process is performed using the secret key d, and the power consumption is measured. By inputting the cipher text, that is, a=−1(mod n), the pattern of the data value of the multiplication performed in the decoding process is limited to the following three types as with the attack method 1.
Multiplication: two types—(1)×(−1) or (1)×(1)
Squaring to be performed k times: two types—After once performing (−1)×(−1), (1)×(1) is performed k−1 times or (1)×(1) is performed k times.
In the calculations above, the attacker has to identify two types of multiplication. (It is not necessary to identify two types of squaring.) The identification of the multiplication is necessary because the multiplication of (1)×(−1) indicates bi as an odd number, and the multiplication of (1)×(1) indicates bi as an even number. The cooperation of the even number and the odd number of bi and the type of multiplication is performed because the multiplication v=v×w[bi] using a table w[bi] expressed by w[bi]=abi (mod n) is performed as illustrated in
As described above, if two types of multiplication can be identified by a power waveform, it can be determined whether bi is an even number or an odd number. Afterwards, two types of multiplication can be identified if an attacker is informed of the timing of the performance of the multiplication, which is quite simple because, from the characteristic of the algorithm illustrated in
Therefore, the attacker can identify the window sequence bias an even number or an odd number by identifying the two types of multiplication only on the waveform with the timing of the performance of the multiplication.
Then, after the squaring of (−1)×(1) is once performed and the squaring of (1)×(1) is twice performed, the multiplication by w[b0] is performed. The multiplication waveform is the eighth form from the left (or the rightmost waveform), and has the same form as the multiplication waveform of (1)×(1). Therefore, b0 can be identified as an even number.
As described above, the attacker can decrypt that the bit value of d is d=(**1**0)2, and can decrypt two bits in 6 bits of d for every 3 bits.
Attack Method 4
As with the attack method 2, each of the power consumption waveform obtained when a=s(mod n) is input and the power consumption waveform obtained when a=−s(mod n) is input is measured, and the difference waveform is observed with respect to the multiplication, thereby allowing bi to be determined as an even number or an odd number where s is an arbitrary data value and the attacker can freely select the value.
As with the description of the attack method 3, the multiplication of v=v×w[bi] using the table w[bi] expressed in w[bi]=abi (mod n) is performed in the algorithm in
When bi is an even number, a=s and a=−s generate the same data w[bi]=sbi (mod n). Therefore, when the difference between a=s and a=−s is obtained on the multiplication waveform of v=v×w[bi], a flat waveform is obtained. On the other hand, when bi is an odd number, a=s generates w[bi]=sbi (mod n), but a=−s generates w[bi]=−sbi (mod n). Therefore, when the difference between a=s and a=−s is obtained on the multiplication waveform of v=v×w[bi], a waveform having large amplitude is obtained.
Then, after the squaring is performed three times, the multiplication by w[b0] is performed. The multiplication waveform is the eighth form from the left (or the rightmost waveform), the difference waveform is completely flat. Therefore, b0 can be identified as an even number.
As described above, the attacker can decrypt that the bit value of d is d=(**1**0)2, and can decrypt two bits in 6 bits of d for every 3 bits.
By the consideration above, the present invention solves the following problems.
Problem 1: Using the binary method, a safe RSA encrypting process is performed on the attack methods 1 and 2.
Problem 2: Using the window method, a safe RSA encrypting process is performed on the attack methods 3 and 4.
To solve the problems 1 and 2, it is necessary to perform a safe process on the attack methods 1, 2, 3, and 4. Each attack method has the characteristic that the power consumption in the multiplying process depends on the data value of the multiplication. That is, the characteristic with respect to the power consumption causes the problems. The descriptions can be summed up as follows
Attack Method 1
When a=−1 is input, only the following three types of calculations are performed. By identifying these three types by the power waveform, all bit values of d are decrypted.
multiplication: one type of (1)×(−1)
squaring: two types of (1)×(1) and (−1)×(−1).
Attack Method 2
The waveform difference obtained between when a=s is input and when a=−s is input occurs in the following three types of calculations. By identifying these three types by the power waveform, all bit values of d are decrypted.
multiplication: the difference between the waveform of (v)×(s) and the waveform of (v)×(−s) (one type)
squaring: the difference between the waveform of (−v)×(−v) and (v)×(v), or the difference between the waveform of (v)×(v) and (v)×(v) (two types).
Attack Method 3
When a=−1 is input, only the following two types of calculations are performed. By identifying these two types by the power waveform, 1/k bit values of all of d are decrypted.
multiplication: (1)×(−1), (1)×(1)
Attack Method 4
The waveform difference obtained between when a=s is input and when a=−s is input occurs only in the following two types of multiplications. By identifying these two types by the power waveform, 1/k bit values of all of d are decrypted.
multiplication: the difference between the waveform of (v)×(s) and the waveform of (v)×(−s), or the difference between the waveform of (v)×(s) and the waveform of (v)×(s) (two types).
The following non-patent documents 1 through 4 are cited in the explanation above.
Non-patent Document 1: Paul Kocher, Joshua Jaffe, and Benjamin Jun, “Differential Power Analysis,” in proceedings of Advances in Cryptology-CRYPTO' 99, Lecture Notes in Computer Science vol. 1666, Springer-Verlag, 1999, pp. 388-397 (hereinafter referred to as Kocher 99)
Non-patent Document 2: Thomas S. Messerges, Ezzy A. Dabbish and Robert H. Sloan “Power Analysis Attacks of Modular Exponentiation in Smartcards”, Cryptographic Hardware and Embedded Systems (CHES' 99), Lecture Notes in Computer Science vol. 1717, Springer-Verlag, pp. 144-157 (hereinafter referred to as Messerges 99)
Non-patent Document 3: Jean-Sebastein Coron “Resistance against Differential Power Analysis for Elliptic Curve Crytosystems”, Cryptographic Hardware and Embedded Systems (CHES' 99), Lecture Notes in Computer Science vol. 1717, Springer-Verlag, pp. 292-302, 1999 (hereinafter referred to as as Coron 99)
Non-patent Document 4: Alfred J. Menezes et al. “HANDBOOK OF APPLIED CRYPTOGRAPHY” (CRC press), (http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf) In addition, relating to the problems of the present invention, the following patent documents 1 through 3 describe published examples.
Patent Document 1: National Publication of International Patent Application No. 2004-519132
Patent Document 2: Japanese Laid-open Patent Publication No. 2002-261753
Patent Document 3: Japanese Laid-open Patent Publication No. 2004-226674
The documents above are common in that the attacker identifies the difference in plus and minus data values using the power waveform in the multiplication or the squaring. Therefore, all attack methods 1, 2, 3, and 4 can be rejected if the identification of the plus and minus data values can be rejected.
The present invention is a countermeasure technique for preventing the estimation of a secret key by the SPA and the DPA for the processor for processing public key encryption such as RSA encryption, oval curve encryption, etc., and makes it hard to estimate a secret key using the SPA and the DPA by applying the technique according to the present invention, thereby realizing an encryption processor having high tamper-resistance.
The first aspect of the present invention has the following configuration based on the encrypting method of performing an exponential remainder calculation y=ad (mod n) from an u-bit exponent d=(du−1, . . . , d0)2, input data a, and a modulo n.
First, calculating a′=a2(mod n) is performed.
Next, calculating y=(a′)f(mod n) is performed on f=(du−1, du−2, . . . , d1)2.
Then, when d0=1, calculating y=y×a (mod n) is performed.
Then, outputting y=ad (mod n) is performed.
The second aspect of the present invention has the following configuration based on the encrypting method of performing an exponential remainder calculation y=ad (mod n) from an u-bit exponent d=(du−1, . . . , d0)2, input data a, and a modulo n using a binary method.
First, performing an initializing process with v=1 is performed.
Next, calculating a′=a2(mod n) is performed.
Then, repeating in the order of i=u−1, u−2, . . . , 2, 1 a substep of calculating v=v×v (mod n), and a substep of calculating v=v×a′ (mod n) with di=1 is performed.
Furthermore, calculating v=v×a (mod n) with d0=1 is performed
Then, outputting v as y=ad (mod n) is performed.
The third aspect of the present invention has the following configuration based on the encrypting method of performing an exponential remainder calculation y=ad (mod n) from an u-bit exponent d=(du−1. . . , d0)2, input data a, and a modulo n using a binary method.
First, calculating a′=a2(mod n) is performed.
Next, performing an initializing process with v=a′ is performed.
Then, repeating a substep of calculating v=v×v (mod n) on i=u−1, u−2, . . . , 2, 1 and a substep of calculating v=v×a′ (mod n) with di=1 is performed.
Furthermore, calculating v=v×a (mod n) with g=1 is performed for g=d0.
Then, outputting v as y=ad (mod n) is performed.
The fourth aspect of the present invention has the following configuration based on the encrypting method of performing an exponential remainder calculation y=ad (mod n) from an u-bit exponent d=(du−1, . . . , d0)2, input data a, and a modulo n using a window method.
First, generating a table w[x] satisfying w[x]=(a2)x(mod n) for x=0, 1, . . . , 2k−1 is performed with k as a bit width of window.
Next, performing an initializing process with v=1 is performed.
Then, repeating in the order of i=Ceiling((u−1)/k)−1, . . . , 2, 1, 0 a substep of repeating a squaring process on v=v×v (mod n) k times, a substep of calculating bi=(dik+k, . . . , dik+1)2 from d, i, k, and a substep of calculating v=v×w[bi] (mod n) is performed using e×u as a calculation expressing a minimum value of a set of integer values equal to or exceeding x.
Furthermore, calculating v=v×a (mod n) with d0=1 is performed.
Then, outputting v as y=ad (mod n) is performed.
The fifth aspect of the present invention has the following configuration based on the encrypting method of performing an exponential remainder calculation y=ad (mod n) from an u-bit exponent d=(du−1, . . . , d0)2, input data a, and a modulo n using a window method.
First, generating a table w[x] satisfying w[x]=(a2)x(mod n) for x=0, 1, . . . , 2k−1 is performed with k as a bit width of window.
Next, performing an initializing process of v=w[bi] for i=Ceiling((u−1)/k)−1 using Ceiling(x) as a calculation expressing a minimum value of a set of integer values equal to or exceeding x is performed.
Then, repeating in the order of i=Ceiling((u−1)/k)−2, . . . , 2, 1, 0 a substep of repeating the squaring process of v=v×v (mod n) k times, a substep of calculating bi=(dik+k, . . . , dik+1)2 from d, i, k, and a substep of calculating v=v×w[bi] (mod n) is performed.
Furthermore, calculating v=v×a (mod n) with d0=1 is performed.
Then, outputting v as y=ad (mod n) is performed.
The sixth aspect of the present invention has the following configuration based on the encrypting method of performing a scalar multiplication Y=dA from the u-bit exponent d=(du−1, . . . , d0)2, and the point A on the oval curve.
First, calculating A′=2 A is performed.
Next, calculating the f multiple point of A′ Y=fA′ is performed on f=(du−1, du−2, . . . , d1)2.
Furthermore, calculating Y=Y+A is performed with d0=1.
Then, outputting Y=dA is performed.
The seventh aspect of the present invention has the following configuration based on the encrypting method of performing a scalar multiplication Y=dA using the binary method from the u-bit exponent d=(du−1, . . . , d0)2, and the point A on the oval curve.
First, performing an initializing process with V=0 is performed using 0 as an infinity point satisfying A+0=0+A=A on all points A.
Next, calculating A′=2 A is performed.
Then, repeating in the order of i=u−1, u−2, . . . , 2, 1 a substep of calculating V=2V, and a substep of calculating V=V+A′ with di=1 is performed.
Furthermore, calculating V=V+A with d0=1 is performed.
Then, outputting V as Y=dA is performed.
The eighth aspect of the present invention has the following configuration based on the encrypting method of performing a scalar multiplication Y=dA using the binary method from the u-bit exponent d=(du−1, . . . , d0)2, and the point A on the oval curve.
First, calculating A′=2 A is performed.
Next, performing the initializing process of V=A′ is performed.
Then, repeating in the order of i=u−1, u−2, . . . , 2, 1 a substep of calculating V=2V, and a substep of calculating V=V+A′ with di=1 is performed.
Furthermore, calculating V=V+A with g=1 for g=d0 is performed.
Then, outputting V as Y=dA is performed.
The ninth aspect of the present invention has the following configuration based on the encrypting method of performing a scalar multiplication Y=dA using the window method from the u-bit exponent d=(du−1, . . . , d0)2, and the point A on the oval curve.
First, generating a table W[x] satisfying W[x]=(2x)A for x=0, 1, . . . , 2k−1 using k as a bit width of the window is performed.
Next, performing an initializing process with V=0 is performed using 0 as an infinity point satisfying A+0=0+A=A on all points A.
Then, repeating in the order of i=Ceiling((u−1)/k)−1, . . . , 2, 1, 0 a substep of repeating k times the doubling process at the point of V=2V and a substep of calculating bi=(dik+k, . . . , dik+1)2 from d, i, k is performed using Ceiling(x) as a calculation expressing a minimum value of a set of integer values equal to or exceeding x.
Furthermore, calculating V=V+W[bi] is performed.
In addition, calculating V=V+A with d0=1 is performed.
Then, outputting V as Y=dA is performed.
The tenth aspect of the present invention has the following configuration based on the encrypting method of performing a scalar multiplication Y=dA using the window method from the u-bit exponent d=(du−1, . . . , d0)2, and the point A on the oval curve.
First, generating a table W[x] satisfying W[x]=(2x)A(mod n) for x=0, 1, . . . , 2k−1 using k as a bit width of the window is performed.
Next, performing an initializing process of v=w[bi] for i=Ceiling((u−1)/k)−1 using e×u as a calculation expressing a minimum value of a set of integer values equal to or exceeding x is performed.
Then, repeating in the order of i=Ceiling((u−1)/k)−2, . . . , 2, 1, 0 a substep of repeating k times the doubling process of the point of V=2V, a substep of calculating bi=(dik+k, . . . , dik+1) 2 from d, i, k, and a substep of calculating v=v×w[bi] is performed.
Furthermore, calculating V=V+A with d0=1 is performed.
Then, outputting V as Y=dA is performed.
Other aspects of the present invention can be realized as an encryption device, program, or incorporated equipment device with the encryption device incorporated into the equipment device for realizing the aspects above.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
The best mode for embodying the present invention is described below in detail with reference to the attached drawings.
The common point in the principles of the attack methods 1, 2, 3, and 4 described in the Background Art above is that an attacker inputs a=−1 and a pair of a=s and −s, thereby intentionally generating a difference between plus and minus data values in multiplication or squaring, and allowing the attacker to identify the difference in data values using a power waveform.
Paradoxically, although an attacker inputs these pieces of data to a, a countermeasure method for protection against the attacks can be realized if a difference in plus and minus data values cannot be intentionally generated in multiplication or squaring.
The basic idea for realizing the countermeasure method is described below. Although an attacker inputs data including a minus value such as a=−1 and a=s, −s, etc., the above-mentioned countermeasure method can be realized if only a plus value can be constantly generated in multiplication and squaring. To constantly generate a plus value, the first input data is squared. That is, when the binary method or the window method illustrated in
Using the solving means above, the RSA calculation is in accordance with the following procedure in
As the entire calculating procedure, (a2)f (mod n) is calculated and then ag (mod n) on the result is multiplied. The calculation of (a2)f (mod n) is performed by the procedure-2, and the multiplication of ag (mod n) on the result is performed by the procedure-3. The multiplication by the procedure-3 is not performed with g=0. However, since g=0 means ag=a0=1, it is to be noted that no multiplication is required.
In these calculating procedures, the procedure-1 realizes the protection against the attack methods 1, 2, 3, and 4. The procedure-1 is a process of squaring the input a, and a resultant output of a′ is constantly a plus value. For example, when a=−1 is input, a′=(−1)2=1 is obtained. When a=s is input, a′=(s)2=s2 is obtained. When a=−s is input, a′=(−s)2=s2 is obtained. Thus, using a′ as a constantly plus value, the calculation of (a′)f (mod n) as described in the procedure-2 is performed, thereby protecting against all of the attack methods 1, 2, 3, and 4.
When a=−1 is input in the attack methods such as the attack methods 1 and 3, a′=1 is obtained. Therefore, when the calculation of (a′)f (mod n) is performed in the binary method or the window method, an occurring multiplication or squaring is constantly (1)×(1) only (
As in the attack methods 2 and 4 in which a=s and a=−s are input and the difference between the power consumption waveforms is obtained, a′=s2 is obtained by a=s or a=−s. Therefore, the power consumption waveform in the calculation of (a′)f (mod n) indicates the same waveform by a=s or a=−s. As a result, the difference waveform is constantly a flat waveform (
Since f is a higher order u−1 bit value of the secret key d, most calculations relating to the secret key d are performed by the procedure-2. However, since calculations using a′ as a constantly plus value are performed in the procedure-2, the attacker cannot obtain the information about the secret key. Although a calculation using a not a′ is performed only by the procedure-3, the calculations using only the least significant bit of the secret key d are performed in the procedure-3. Therefore, the information obtained by the attacker is the information about the least significant one bit of the secret key. Accordingly, no significant information can be obtained.
The calculation of a′=a2(mod n) in the procedure-1 is performed by the description 1402.
The calculation process by the binary method by (a′)f (mod n) in the procedure-2 is performed by the loop process of the description 1403 through 1408. To realize the binary method calculation for f=(du−1, . . . , d1)2, it is to be noted that the loop process of the description 1403 starts with i=u−1 and ends with u=1.
The calculation of the procedure-3 is performed by the description 1409.
The characters in bold type in descriptions 1501, 1502, 1503, and 1509 refer to the process using the solving means in
The calculation of a′=a2(mod n) in the procedure-1 is performed by the descriptions 1501 and 1502. The calculation process by the binary method of (a′)f (mod n) in the procedure-2 is performed by the loop process in the descriptions 1503 through 1508. Since du−1=1 is known, it is to be noted that the process relating to du−1 is skipped in the loop process. To realize the binary method calculation for f=(du−1, . . . , d1)2, the loop process of the description 1503 starts with i=u−2, and ends with u=1.
The calculation in the procedure-3 is performed by the description 1509.
The calculation of a′=a2(mod n) in the procedure-1 is performed by the table generating process of w[x] by the descriptions 1601 and 1602. In the table generating process in
The calculation process by the window method of (a′)f (mod n) in the procedure-2 is performed by the loop process by the descriptions 1604 through 1611. To realize the binary method calculation for f=(du−1, . . . , d1)2, it is to be noted that the loop process of the description 1604 starts with i=Ceiling((u−1)/k)−1 and ends with i=0. In
In addition, the bit string from which the least significant bit of d is deleted is f, that is, d and f are shifted by one bit. Therefore, the window sequence bi is provided as bi=(dik+k−1, . . . , dik)2 in
The process by the procedure-3 is performed by the description 1612.
The window method algorithm obtained by improving the calculation of the algorithm in
The characters in bold type in descriptions 1701 through 1706, and 1714 refer to the process using the solving means in
The calculation of a′=a2(mod n) in the procedure-1 is performed by the table generating process of w[x] described in 1701 and 1072 as in the third embodiment. In the descriptions 1703 through 1705, unlike in
However, bi is a value satisfying bi=(dik+k, . . . , dik+1)2 for i=Ceiling((u−1)/k)−1.
The calculation process by the binary method of (a′)f (mod n) in the procedure-2 is performed by the loop process in 1706 through 1713. By the initializing process of v described in 1703 through 1705, the calculation process relating to i=Ceiling((u−1)/k)−1 has been completed. Therefore, it is to be noted that the loop process of i starts with i=Ceiling((u−1)/k)−2 and ends with i=0.
In 1710, as in
The process in the procedure-3 is performed by the description 1714.
The first through fourth embodiments above can be applied not only to the RSA encryption but also to all public key encryption calculations using exponential remainder calculations in which output data y is described by y=cd(mod n) from the exponent d and input data c such as ElGamal encryption, Diffie-Hellman key exchange, DSA signature, etc.
Furthermore, the embodiments can also be applied to the calculations of oval curve encryption. In the ECDSA signature, the ECDH key exchange, etc, a process of calculating a point Y as output data by Y=dA for the secret key d of the RSA and the point A on the oval curve. The calculation is referred to as a scalar multiplication of a point. A point on the oval curve is a vector expressed by A=(X, Y) using two values X and Y. The X and Y are values satisfying E(X,Y)=0 (mod p) for the function E(X,Y) called an oval curve and a prime number p.
In the oval curve encryption, addition of points (Y, A, and B are points on the oval curve) expressed by Y=A+B is performed instead of the multiplication expressed by y=a×b(mod n), and a doubling process of points (Y and A are points on the oval curve) expressed by Y=2 A is performed instead of the squaring. Therefore, to apply the present invention to the oval curve encryption, the decomposition of d=2f+g and the decomposition of Y=fA′+gA (A′=2 A) are performed, and the normal binary method or window method is performed to the scalar doubling process of fA.
The embodiments of applying the first embodiment (
The calculations are performed by the addition of a point expressed by Y=A+B (Y, A, and B are the points on the oval curve) instead of the multiplication expressed by y=a×b(mod n), and the doubling process of a point expressed by Y=2 A (Y and A are the points on the oval curve) instead of the squaring for each of the first through fourth embodiments.
Finally,
In
An exponentiation remainder calculation unit 2204 performs a calculation of the procedure 2 in
An ending time multiplication unit 2205 performs a calculation of the procedure 3 in
In addition, the process of each embodiment of the present invention illustrated in
As described above, in each of the embodiments of the present invention, all of the attack methods 1, 2, 3, and 4 which cannot be rejected by the related art illustrated in
By the effect of the present invention, a characteristic indicating a sign of a secret key does not appear in a power consumption waveform. Therefore, an attacker cannot obtain the information about a secret key.
The effect can be clearly understood by comparing the power consumption waveform of the related art illustrated in
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
This application is a continuation of PCT application No. PCT/JP2008/000833, which was filed on Mar. 31, 2008, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2008/000833 | Mar 2008 | US |
Child | 12890212 | US |