IP Library › Granted Patent US 11,256,478
Granted Patent B2
US 11,256,478 · App. 16/626,887 · Granted Feb 22, 2022

Method for securing a cryptographic process with SBOX against high-order side-channel attacks

Inventor: David Vigilant (Meudon, FR)
Assignee: THALES DIS FRANCE SA
G06F7/764G06F21/755H04L9/003H04L9/0631G06F2207/7233H04L2209/04H04L2209/16
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 11,256,478
App. No.
16/626,887
Granted
Feb 22, 2022
Kind
B2
Abstract

The present invention relates to a method for securing against N-order side-channel attacks a cryptographic process using in a plurality of encryption rounds an initial Substitution box S 0 comprising the steps of: —generating (E 12 ) a first randomized substitution box S 1 by masking said initial substitution box S 0 such that S 1 (x XOR m 1 )=S 0 (x) XOR m 2 , with m 1 , m 2 uniformly-distributed random values, for any input value x of the initial substitution box S 0 , —generating (E 13 ) a first transrandomized Substitution box S(1,1) from the first randomized substitution box S 1 and from masks m 1,1 , m′ 1,1 such that S(1, 1)[x]=S 1 [x xor (m 1 xor m 1,1 )] xor (m 2 xor m′ 1,1 ) for any input value x of the first transrandomized Substitution box S(1,1), —generating (E 14 ) from the first transrandomized Substitution box S(1,1) a N−1th transrandomized Substitution box S(1, N−1) by performing iteratively N−2 times a step of generation of a ith transrandomized Substitution box S(1, i) from a i−1th transrandomized substitution box S(1, i−1) and from a plurality of masks m 1,i, m′ 1,i , m 1,i−1 , m′ 1,i−1 such that S(1, i)[x]=S(1, i−1)[x xor (m 1,i-1 xor m 1,i )] xor (m′ 1,i−1 xor m′ 1,i ) for any input value x of the ith transrandomized substitution box S(1, i), with i an integer comprised in {2, . . . N−1}, —performing the cryptographic process using (E 15 ) the N−1th transrandomized Substitution box S(1, N−1) instead of the initial Substitution box S 0 in at least said first round of the cryptographic process.

Claims (60)

1. A method for securing a cryptographic device against N-order side-channel attacks, wherein N is a predetermined integer, wherein the method comprises:

performing the following steps by a processing system of the cryptographic device using a cryptographic process, comprising a plurality of encryption rounds including an initial Substitution box S 0 , stored in a computer readable memory circuit of the cryptographic device that includes the processing system having at least one hardware processor:

accessing in the computer readable memory circuit said initial Substitution box S0,

generating a first randomized substitution box S 1 by masking said initial substitution box S0 such that S 1 (x XOR m 1 )=S 0 (x) XOR m 2 , with m 1 , m 2 uniformly-distributed random values, for any input value x of the initial substitution box S 0 ,

generating a first transrandomized Substitution box S(1,1) from the first randomized substitution box S 1 and from masks m 1,1 , m′ 1,1 such that S(1, 1) [x]=S 1 [x xor (m 1 xor m 1,1 )] xor (m 2 xor m′ 1,1 ) for any input value x of the first transrandomized Substitution box S(1,1),

generating from the first transrandomized Substitution box S(1,1) a N−1th transrandomized Substitution box S(1, N−1) by performing iteratively N−2 times a step of generation of a ith transrandomized Substitution box S(1, i) from a i−1th transrandomized substitution box S(1, i−1) and from a plurality of masks m 1,i , m′ 1,i , m 1,i−1 , m′ 1,i−1 such that S(1, i)[x]=S(1, i−1)[x xor (m 1,i−1 xor m 1,i )] xor (m′ 1,i−1 xor m′ 1,i ) for any input value x of the ith transrandomized substitution box S(1, i), with i an integer comprised in {2, . . . N−1},

performing the cryptographic process using the N−1th transrandomized Substitution box S(1, N−1) instead of the initial Substitution box S0 in at least said first round of the cryptographic process,

where said masks are uniformly-distributed random values, XOR is the Boolean exclusive OR operation, and performing said transrandomization of a Substitution box S from (m i , m j ) to (m k , m l ) consists in computing said Substitution box S masked with said masks m k and m l , called transrandomized Substitution box, from said Substitution box S masked with said masks m i and m j with i, j, k and l comprising integers in {2, . . . N−1}.

2. The method of claim 1 , wherein the N−1th transrandomized Substitution box S(1, N−1) is used instead of the initial Substitution box S 0 in all rounds of the cryptographic process.

3. The method of claim 1 , further comprising when performing each round r, r>1, among said plurality of encryption rounds, called a current round:

generating a first transrandomized Substitution box for the current round r S(r, 1) from a N−1th transrandomized substitution box S(r−1, N−1) used instead of the initial Substitution box S0 in the last round (r−1) performed before the current round r and from masks m r,1 , m′ r,1 such that S(r, 1)[x]=S(r−1, N−1)[x xor (m r−1, N−1 xor m r,1 )] xor (m′ r−1,N−1 xor m′ r,1 ) for any input value x of the first transrandomized substitution box for the current round S(r, 1),

generating from the first transrandomized Substitution box for the current round r S(r, 1) a N−1th transrandomized Substitution box for the current round r S(r, N−1) by performing iteratively N−2 times a step of generation of a ith transrandomized Substitution box for the current round r S(r, i) from a i−1th transrandomized substitution box for the current round r S(r, i−1) and from a plurality of masks m r,i , m′ r,i , m r,i−1 , m′ r,i−1 such that S(r, i)[x]=S(r,i−1)[x xor (m r,i−1 xor m r,i )] xor (m′ r,i−1 xor m′r,i) for any input value x of the ith transrandomized substitution box for the current round S(r, 1), with i an integer comprised in {2, . . . N−1}, and

using the N−1th transrandomized Substitution box for the current round r S(r, N−1) instead of the initial Substitution box S 0 in said current round r of the cryptographic process.

4. The method of claim 1 , wherein the cryptographic process is a block cipher algorithm.

5. The method of claim 4 , wherein the block cipher algorithm is selected among the set including Advanced Encryption Standard (AES) algorithm, Data Encryption Standard (DES) algorithm, Blowfish algorithm, Serpent algorithm, and Gost algorithm.

6. The method of claim 3 , wherein a memory scrambling is performed to generate the transrandomized Substitution box S(r,i) at round r with i an integer comprised in (1, . . . N−1).

7. A computer program product stored in the memory of at least one cryptographic device, having at least one hardware processor, comprising software code instructions, when executed by the at least one processor, secures the at least one cryptographic device against N-order side-channel attacks, wherein N is a predetermined integer, the software instructions comprising instructions causing the at least one hardware processor to:

perform the following steps using a cryptographic process, comprising a plurality of encryption rounds including an initial Substitution box S 0 , stored in a computer readable memory circuit of the cryptographic device:

accessing in the computer readable memory circuit said initial Substitution box S0,

generating a first randomized substitution box S 1 by masking said initial substitution box S0 such that S 1 (x XOR m 1 )=S 0 (x) XOR m 2 , with m1, m2 uniformly-distributed random values, for any input value x of the initial substitution box S 0 ,

generating a first transrandomized Substitution box S(1,1) from the first randomized substitution box S 1 and from masks m 1, 1 , m′ 1,1 such that S(1, 1) [x]=S 1 [x xor (m 1 xor m 1,1 )] xor (m 2 xor m′ 1,1 ) for any input value x of the first transrandomized Substitution box S(1,1),

generating from the first transrandomized Substitution box S(1,1) a N−1th transrandomized Substitution box S(1, N−1) by performing iteratively N−2 times a step of generation of a ith transrandomized Substitution box S(1, i) from a i−1th transrandomized substitution box S(1, i−1) and from a plurality of masks m 1,i , m′ 1,i , m 1,i−1 , m′ 1,i−1 such that S(1, i)[x]=S(1, i−1)[x xor (m 1,i−1 xor m 1,i )] xor (m′ 1,i−1 xor m′ 1,i ) for any input value x of the ith transrandomized substitution box S(1, i), with i an integer comprised in {2, . . . N−1},

performing the cryptographic process using (E 15 ) the N−1th transrandomized Substitution box S(1, N−1) instead of the initial Substitution box S0 in at least said first round of the cryptographic process,

where said masks are uniformly-distributed random values, XOR is the Boolean exclusive OR operation, and performing said transrandomization of a Substitution box S from (m i , m j ) to (m k , m l ) consists in computing said Substitution box S masked with said masks m k and m l called transrandomized Substitution box, from said Substitution box S masked with said masks m i and m j , with i, j, k and l comprising integers in {2, . . . N−1}.

8. A non-transitory computer readable medium storing executable computer code that when executed by a cryptographic device, having a processing system including at least one hardware processor, secures the at least one cryptographic device against N-order side-channel attacks, wherein N is a predetermined integer, the computer code comprising computer code for causing the at least one hardware processor to:

perform the following steps using a cryptographic process, including a plurality of encryption rounds including an initial Substitution box S 0 , stored in a computer readable memory circuit of the cryptographic device:

accessing in the computer readable memory circuit said initial Substitution box S0,

generating a first randomized substitution box S 1 by masking said initial substitution box S0 such that S 1 (x XOR m 1 )=S 0 (x) XOR m 2 , with m1, m2 uniformly-distributed random values, for any input value x of the initial substitution box S 0 ,

generating a first transrandomized Substitution box S(1,1) from the first randomized substitution box S 1 and from masks m 1,1 , m′ 1,1 such that S(1, 1)[x]=S 1 [x xor (m 1 xor m 1,1 )] xor (m 2 xor m′ 1,i ) for any input value x of the first transrandomized Substitution box S(1,1),

generating from the first transrandomized Substitution box S(1,1) a N−1th transrandomized Substitution box S(1, N−1) by performing iteratively N−2 times a step of generation of a ith transrandomized Substitution box S(1, i) from a i−1th transrandomized substitution box S(1, i−1) and from a plurality of masks m 1,i , m′ 1,i , m 1,i−1 , m′ 1,i−1 such that S(1, i)[x]=S(1, i−1)[x xor (m 1,i−1 xor m 1,i )] xor (m′ 1,i−1 xor m′ 1,i ) for any input value x of the ith transrandomized substitution box S(1, i), with i an integer comprised in {2, . . . N−1},

performing the cryptographic process using (E 15 ) the N−1th transrandomized Substitution box S(1, N−1) instead of the initial Substitution box S0 in at least said first round of the cryptographic process,

where said masks are uniformly-distributed random values, XOR is the Boolean exclusive OR operation, and performing said transrandomization of a Substitution box S from (m i , m j ) to (m k , m l ) consists in computing said Substitution box S masked with said masks m k and m l called transrandomized Substitution box, from said Substitution box S masked with said masks m i and m j , with i, j, k and l comprising integers in {2, . . . N−1}.

9. A cryptographic device comprising:

a processing system having at least one hardware processor,

a computer readable memory circuit configured for storing substitution boxes,

wherein the processing system performs the following steps to secure against N-order side-channel attacks, wherein N comprises a predetermined integer, using a cryptographic process in a plurality of encryption rounds:

accessing in the computer readable memory circuit of the cryptographic device an initial Substitution box S 0 ,

generating a first randomized substitution box S 1 by masking said initial substitution box S 0 such that S 1 (x XOR m 1 )=S 0 (x) XOR m 2 , with m 1 , m 2 uniformly-distributed random values, for any input value x of the initial substitution box S 0 ,

generating a first transrandomized Substitution box S(1,1) from the first randomized substitution box S 1 and from masks m 1,1 , m′ 1,1 such that S(1, 1) [x]=S 1 [x xor (m 1 xor m 1,1 )] xor (m 2 xor m′ 1,1 ) for any input value x of the first transrandomized Substitution box S(1,1),

generating from the first transrandomized Substitution box S(1,1) a N−1th transrandomized Substitution box S(1, N−1) by performing iteratively N−2 times a step of generation of a ith transrandomized Substitution box S(1, i) from a i−1th transrandomized substitution box S(1, i−1) and from a plurality of masks m 1,i , m′ 1,i , m 1,i−1 , m′ 1,i−1 such that S(1, i)[x]=S(1, i−1)[x xor (m 1,i−1 xor m 1,i )] xor (m′ 1,i−1 xor m′ 1,i ) for any input value x of the ith transrandomized substitution box S(1, i), with i an integer comprised in {2, . . . N−1},

performing the cryptographic process using the N−1th transrandomized Substitution box S(1, N−1) instead of the initial Substitution box S 0 in at least said first round of the cryptographic process,

where said masks are uniformly-distributed random values, XOR is the Boolean exclusive OR operation, and said transrandomization operation of a Substitution box S from (m i , m j ) to (m k , m l ) consists in computing said Substitution box S masked with said masks m k and m l called a transrandomized Substitution box, from said Substitution box S masked with said masks m i and m j , with i, j, k and l comprising integers in {2, . . . N−1}.

10. The computer program of claim 7 , wherein the N−1th transrandomized Substitution box S(1, N−1) is used instead of the initial Substitution box S 0 in all rounds of the cryptographic process.

11. The computer program of claim 7 , wherein the method further includes, when performing each round r, r>1, among said plurality of encryption rounds, called current round:

generating a first transrandomized Substitution box for the current round r S(r, 1) from a N−1th transrandomized substitution box S(r−1, N−1) used instead of the initial Substitution box S0 in the last round (r−1) performed before the current round r and from masks m r,1 , M′ r,1 such that S(r, 1)[x]=S(r−1, N−1)[x xor (m r−1,N−1 xor m r,1 )] xor (m′ r−1,N−1 xor m′ r,1 ) for any input value x of the first transrandomized substitution box for the current round S(r, 1),

generating from the first transrandomized Substitution box for the current round r S(r, 1) a N−1th transrandomized Substitution box for the current round r S(r, N−1) by performing iteratively N−2 times a step of generation of a ith transrandomized Substitution box for the current round r S(r, i) from a i−1th transrandomized substitution box for the current round r S(r,i−1) and from a plurality of masks m r,i , m′ r,i , m r,i−1 , m′ r,i−1 such that S(r, i)[x]=S(r, i−1)[x xor (m r,i−1 xor m r,i )] xor (m′ r,i−1 xor m′ r,i ) for any input value x of the ith transrandomized substitution box for the current round S(r, 1), with i an integer comprised in {2, . . . N−1}, and

using the N−1th transrandomized Substitution box for the current round r S(r, N−1) instead of the initial Substitution box S 0 in said current round r of the cryptographic process.

12. The computer program of claim 7 , wherein a memory scrambling is performed to generate the transrandomized Substitution box S(r,i) at round r with i an integer comprised in {1, . . . N−1}.

13. The non-transitory memory of claim 8 wherein the N−1th transrandomized Substitution box S(1, N−1) is used instead of the initial Substitution box S0 in all rounds of the cryptographic process.

14. The non-transitory memory of claim 8 , wherein the method further includes, when performing each round r, r>1, among said plurality of encryption rounds, called current round:

generating a first transrandomized Substitution box for the current round r S(r, 1) from a N−1th transrandomized substitution box S(r−1, N−1) used instead of the initial Substitution box S0 in the last round (r−1) performed before the current round r and from masks m r,1 , m′ r,1 such that S(r, 1)[x]=S(r−1, N−1)[x xor (m r−1,N−1 xor m r,1 )] xor (m′ r−1,N−1 xor m′ r,1 ) for any input value x of the first transrandomized substitution box for the current round S(r, 1),

generating from the first transrandomized Substitution box for the current round r S(r, 1) a N−1th transrandomized Substitution box for the current round r S(r, N−1) by performing iteratively N−2 times a step of generation of a ith transrandomized Substitution box for the current round r S(r, i) from a i−1th transrandomized substitution box for the current round r S(r,i−1) and from a plurality of masks m r,i , m′ r,i , m r,i−1 , m′ r,i−1 such that S(r, i)[x]=S(r,i−1)[x xor (m r,i−1 xor m r,i )] xor (m′ r,i−1 xor m′r,i) for any input value x of the ith transrandomized substitution box for the current round S(r, 1), with i an integer comprised in {2, . . . N−1}, and

using the N−1th transrandomized Substitution box for the current round r S(r, N−1) instead of the initial Substitution box S 0 in said current round r of the cryptographic process.

15. The non-transitory memory of claim 8 , wherein a memory scrambling is performed to generate the transrandomized Substitution box S(r,i) at round r with i an integer comprised in {1, . . . N−1}.

16. The cryptographic device of claim 9 , wherein the N−1th transrandomized Substitution box S(1, N−1) is used instead of the initial Substitution box S0 in all rounds of the cryptographic process.

17. The cryptographic device of claim 9 , wherein the method further includes, when performing each round r, r>1, among said plurality of encryption rounds, called current round:

generating a first transrandomized Substitution box for the current round r S(r, 1) from a N−1th transrandomized substitution box S(r−1, N−1) used instead of the initial Substitution box S0 in the last round (r−1) performed before the current round r and from masks m r,1 , m′ r,1 such that S(r, 1)[x]=S(r−1, N−1)[x xor (m r−1,N−1 xor m r,1 )] xor (m′ r−1,N−1 xor m′ r,1 ) for any input value x of the first transrandomized substitution box for the current round S(r, 1),

generating from the first transrandomized Substitution box for the current round r S(r, 1) a N−1th transrandomized Substitution box for the current round r S(r, N−1) by performing iteratively N−2 times a step of generation of a ith transrandomized Substitution box for the current round r S(r, i) from a i−1th transrandomized substitution box for the current round r S(r,i−1) and from a plurality of masks m r,i , m′ r,i , m r,i−1 , m′ r,i−1 such that S(r, i)[x]=S(r,i−1)[x xor (m r,i−1 xor m r,i )] xor (m′ r,i−1 xor m′ r,i ) for any input value x of the ith transrandomized substitution box for the current round S(r, 1), with i an integer comprised in {2, . . . N−1}, and

using the N−1th transrandomized Substitution box for the current round r S(r, N−1) instead of the initial Substitution box S 0 in said current round r of the cryptographic process.

18. The cryptographic device of claim 9 , wherein a memory scrambling is performed to generate the transrandomized Substitution box S(r,i) at round r with i an integer comprised in {1, . . . N−1}.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2023
From: THALES DIS FRANCE SA
To: THALES DIS FRANCE SAS
Reel/Frame 064235/0673 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2020
From: VIGILANT, DAVID
To: THALES DIS FRANCE SA
Reel/Frame 051633/0774 →
Priority Claims (1)
EP 17305806 · Jun 28, 2017 · regional
Continuity (1)
Related Publication 20200125333A1 · Apr 23, 2020
Cited By (1)
US 12,750,206