IP Library Granted Patent US 7,206,408
Granted Patent B1
US 7,206,408 · App. 09/959,944 · Granted Apr 17, 2007

Countermeasure method in an electronic component using a dynamic secret key cryptographic algorithm

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,206,408
App. No.
09/959,944
Granted
Apr 17, 2007
Kind
B1
Abstract

A countermeasure method in a first electronic component communicating with a second electronic component uses a secret key K[0] cryptographic algorithm A of size k. The countermeasure implementation employs a systematic and regular evolution of K[i] by a function K[i]=f(k[i−1]), and transmission of i to the second component. A computational shortcut enables the second component to compute K[i] from K[0] without having to generate the i−1 keys K[1] to K[i−1] separating K[0] and K[i].

Claims (53)

1. A countermeasure method in a first electronic component communicating with a second electronic component using a cryptographic algorithm A with a secret key K[i] of size k, said method comprising the step of changing K[i] between successive uses of A, i being the number of executions of the algorithm A,

wherein the secret key K[i] for the next iteration i of the algorithm A is calculated in the second electronic component by means of the formula:

K[i]=f [( K[i− 1])],

where f is a function taking a key as an input and returning a key as an output, and

wherein said first electronic component performs a calculation shortcut enabling it to calculate K[i] from K[0], for i>1, without having to generate the i−1 keys K[1], . . . , K[i−1] separating K[0] and K[i].

2. A countermeasure method according to claim 1 , wherein i is supplied to said first electronic component by said second electronic component.

3. A countermeasure method according to claim 1 , wherein the function f(x), x being a variable, is such that:

f ( x )= x^e mod z,

in which z is a constant such that the calculation shortcut used by the second electronic component is K[i]=K[0]^(e^i) mod z, in which e is an integer and the calculation of e^i is performed modulo phi(z).

4. A countermeasure method according to claim 1 , wherein the function f(x), x being a variable, is such that

f ( x )= x*c mod z

in which z and c are constants such that the calculation shortcut used by the second electronic component is K[i]=K[0]*c^i mod z.

5. A countermeasure method according to claim 4 , wherein z is the largest prime number less than 2^k.

6. A countermeasure method according to claim 1 , wherein the algorithm A is one of DES, IDEA, AES, FEAL, triple DES, BlowFish, SAFER, SHA-MAC, RIPEMD, DFC, RC5, RC6 or SEAL.

7. A smart card that communicates with another electronic component using a cryptographic algorithm A with a secret key K[i] of size k and implementing a countermeasure method that includes changing K[i] between successive uses of A, i being the number of executions of the algorithm A,

wherein the secret key K[i] for the next iteration i of the algorithm A is calculated in the smart card by means of the formula:

K[i]=f [( K[i− 1])],

where f is a function taking a key as an input and returning a key as an output, and

wherein said other electronic component performs a calculation shortcut enabling it to calculate K[i] from K[0], for i>1, without having to generate the i−1 keys K[1], . . . , K[i−1] separating K[0] and K[i].

8. An electronic terminal that communicates with another electronic component using a cryptographic algorithm A with a secret key K[i] of size k and implementing a countermeasure method that includes changing K[i] between successive uses of A, i being the number of executions of the algorithm A,

wherein the secret key K[i] for the next iteration i of the algorithm A is calculated in the other electronic component by means of the formula:

K[i]=f [( K[i− 1])],

where f is a function taking a key as an input and returning a key as an output, and

wherein said electronic terminal performs a calculation shortcut enabling it to calculate K[i] from K[0], for i>1, without having to generate the i−1 keys K[1], . . . , K[i−1] separating K[0] and K[i].

9. A countermeasure method in a first electronic component communicating with a second electronic component using a cryptographic algorithm B with a secret key K[i] that comprises a series of bytes and a key K[i−1] comprises a series of L bytes, said method comprising the step of changing K[i−1] between successive uses of B[i−1], i being the number of executions of the algorithm B, using the rule:

K[i− 1 ]={B[ 1 ,i− 1 ], . . . ,B[L,i− 1]},

said rule being transformed into K[i] by undergoing the following transformation for t ranging from 1 to L:

B[t, i]=B[t, i−1]^2 mod U where U is a prime number of a byte,

and calculating the key K[i] using the following calculation shorthand for t ranging from 1 to L:

B[t, i]=B[t, i−1]^(2^i) mod U where the quantity 2^i is calculated modulo phi(U).

10. A countermeasure method according to claim 1 wherein the key K[i−1] consists of a series of L bytes:

K[i− 1 ]={B[ 1 ,i− 1 ], . . . ,B[L,i− 1]},

and is transformed into K[i] by undergoing the following transformation for t ranging from 1 to L:

B[t, i]=B[t, i−1]*c[t] mod U where U is a prime number of a byte,

and the key K[i] is calculated using the following calculation shortcut for t ranging from 1 to L:

B[t,i]=B[t,i]− 1 *c[t]^i mod U.

11. A countermeasure method according to claim 10 , where the electronic components perform the calculation of the session key K[i] over more than the number of bytes necessary for the secret-key enciphering algorithm in which this key is to be used and then chop the resulting key in order to obtain the number of bytes necessary for the secret-key enciphering algorithm, in order to compensate for a loss in entropy resulting from the use of modules U smaller than the number 256.

12. A countermeasure method according to claim 11 , where the number U is of one, two, three, four, five or six bytes.

13. A smart card that communicates with another electronic component using a cryptographic algorithm B with a secret key K[i] that comprises a series of bytes and a key K[i−1] comprises a series of L bytes, and implementing a countermeasure method comprising the step of changing K[i−1] between successive uses of B[i−1], i being the number of executions of the algorithm B, using the rule:

K[i− 1 ]={B[ 1 ,i− 1 ], . . . ,B[L,i− 1]},

said rule being transformed into K[i] by undergoing the following transformation for t ranging from 1 to L:

B[t, i]=B[t, i−1]^2 mod U where U is a prime number of a byte,

and calculating the key K[i] using the following calculation shorthand for t ranging from 1 to L:

B[t, i]=B[t, i−1](2^i) mod U where the quantity 2^i is calculated modulo phi(U).

14. An electronic terminal that communicates with another electronic component using a cryptographic algorithm B with a secret key K[i] that comprises a series of bytes and a key K[i−1] comprises a series of L bytes, and implementing a countermeasure method comprising the step of changing K[i−1] between successive uses of B[i−1], i being the number of executions of the algorithm B, using the rule:

K[i− 1 ]={B[ 1 ,i− 1 ], . . . ,B[L,i− 1]},

said rule being transformed into K[i] by undergoing the following transformation for t ranging from 1 to L:

B[t, i]=B[t, i1]^2 mod U where U is a prime number of a byte,

and calculating the key K[i] using the following calculation shorthand for t ranging from 1 to L:

B[t, i]=B[t, i−1]^(2^i) mod U where the quantity 2^i is calculated modulo phi(U).

15. A countermeasure method according to claim 1 , wherein z is the largest prime number less than 2^k.

16. A countermeasure method according to claim 9 , where the electronic components perform the calculation of the session key K[i] over more than the number of bytes necessary for the secret-key enciphering algorithm in which this key is to be used and then chop the resulting key in order to obtain the number of bytes necessary for the secret-key enciphering algorithm, in order to compensate for a loss in entropy resulting from the use of modules U smaller than the number 256.

17. A countermeasure method according to claim 16 , where the number U is of one, two, three, four, five or six bytes.

Assignments (1)
MERGER Recorded Aug 31, 2010
From: GEMPLUS
To: GEMALTO SA
Reel/Frame 024906/0868 →