IP Library Granted Patent US 8,971,526
Granted Patent B2
US 8,971,526 · App. 13/547,098 · Granted Mar 3, 2015

Method of counter-measuring against side-channel attacks

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 8,971,526
App. No.
13/547,098
Granted
Mar 3, 2015
Kind
B2
Abstract

According to the present invention there is provided a method of counter-measuring against side channel attacks, the method comprising executing a block-cipher algorithm to mask intermediate variables, wherein the block-cipher algorithm comprises one or more non-linear functions, characterized in that at least one of the non-linear functions is implemented using a match-in-place function.

Claims (149)

1. A method of counter-measuring against side channel attacks, the method comprising executing a block-cipher algorithm on a processor to mask intermediate variables, wherein the block-cipher algorithm comprises one or more non-linear functions, such that at least one of the non-linear functions is implemented using the processor executing a match-in-place function.

2. The method according to claim 1 wherein, the match-in-place function is a bit-randomized match-in place function (MIP I (data; adr,b)).

3. The method according to claim 2 wherein, the bit-randomized match-in place function is defined as:

MIP

I

(

data

;

adr

,

b

)

=

{

b

if

read

(

adr

)

=

data

b

_

otherwise

wherein adr is an address in a memory, data is a variable which can be stored at an address in a memory, and b is a value which is returned if the data variable is equal to actual data which is present at the address adr in memory; otherwise the complement of b is returned.

4. The method according to claim 3 wherein MIP I (data; adr; b)=MIP (data; adr)⊕ b wherein b is the complement of b.

5. The method according to claim 2 wherein, the at least one of the non-linear function comprises a compare b function, defined by:

compare

b

(

x

;

y

)

=

{

b

if

x

=

y

b

_

if

x

y

wherein x is the first input variable of the compare b function and y is the second input variable of the compare b function, and b is a value which is returned if x is equal to y, and b is a value which is returned if x is not equal to y, such that the compare b function can be implemented by; writing the variable x to an address adr in memory; executing the bit-randomized match-in place function defined as:

MIP

I

(

data

;

adr

,

b

)

=

{

b

if

read

(

adr

)

=

y

b

_

otherwise

and

,

returning

MIP

I

(

y

;

adr

,

b

)

.

6. The method according to claim 1 wherein, the non-linear function is comprised in a SubByte operation.

7. The method according to claim 1 wherein, the block-cipher algorithm further comprises one or more linear functions, wherein at least one of the one or more linear functions are encrypted by XORing the variables of the function.

8. The method according to claim 1 wherein, the block-cipher algorithm is an Advanced Encryption Standard (AES) algorithm.

9. A non-transitory computer readable medium comprising a computer program which is configured to implement a method of counter-measuring against side channel attacks, the method comprising executing a block-cipher algorithm to mask intermediate variables, wherein the block-cipher algorithm comprises one or more non-linear functions, characterised in that at least one of the non-linear functions is implemented using a match-in-place function.

10. A cipher apparatus operatively arranged to execute, with a computer comprising processor configured to execute a computer program including a block-cipher algorithm to mask intermediate variables, wherein the block-cipher algorithm comprises one or more nonlinear functions, at least one of the non-linear functions being implemented using a match-in-place function of the processor.

11. A method of counter-measuring against side channel attacks, the method comprising using a computer to execute a computer program including a block-cipher algorithm to mask intermediate variables, wherein the block-cipher algorithm comprises one or more non-linear functions, at least one of the non-linear functions being implemented using a processor having a match-in-place function, further comprising computing a second order masked Sbox function from a second order masked input, by the steps of:

(i) b←rand(1)

(ii) for a=0 to 2 n −1 do

(a) write (r 1 ⊕a; adr)

(b) cmp←MIP 1 (r 2 ; adr; b)

(c) Rcmp←(S({tilde over (x)}⊕a)⊕s 1 )⊕s 2

(iii) Return R b .

12. A method of counter-measuring against side channel attacks, the method comprising using a computer to execute a computer program including a block-cipher algorithm to mask intermediate variables, wherein the block-cipher algorithm comprises one or more non-linear functions, characterised in that at least one of the non-linear functions is implemented using a match-in-place function defined as:

MIP

I

(

data

;

adr

,

b

)

=

{

b

if

read

(

adr

)

=

data

b

_

otherwise

wherein adr is an address in a memory, data is a variable which can be stored at an address in a memory, and b is a value which is returned if the data variable is equal to actual data which is present at the address adr in memory; otherwise the complement of b is returned.

13. The method of claim 12 , wherein MIP I (data; adr; b)=MIP(data; adr)⊕ b wherein b is the complement of b.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE RECEIVING PARTY DATA PREVIOUSLY RECORDED AT REEL: 28850 FRAME: 337. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 21, 2024
From: CORON, JEAN-SEBASTIEN
To: CROCUS TECHNOLOGY SA
Reel/Frame 066848/0185 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2024
From: CROCUS TECHNOLOGY SA
To: ALLEGRO MICROSYSTEMS, LLC
Reel/Frame 066350/0669 →
RELEASE OF SECURITY INTEREST Recorded Aug 30, 2023
From: LLC "SBERBANK INVESTMENTS"
To: CROCUS TECHNOLOGY, INC.
Reel/Frame 064783/0420 →
CHANGE OF ADDRESS Recorded Aug 21, 2023
From: CROCUS TECHNOLOGY SA
To: CROCUS TECHNOLOGY SA
Reel/Frame 064658/0730 →
SECURITY INTEREST Recorded Apr 13, 2018
From: CROCUS TECHNOLOGY, INC.
To: LLC "SBERBANK INVESTMENTS"
Reel/Frame 045938/0810 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2012
From: CORON, JEAN-SEBASTIEN
To: CROCUS-TECHNOLOGY SA
Reel/Frame 028850/0337 →