IP Library Granted Patent US 9,860,065
Granted Patent B2
US 9,860,065 · App. 14/431,012 · Granted Jan 2, 2018

Side-channel-protected masking

Inventor: Jurgen Pulkus (Munich, DE)
Assignee: GIESECKE+DEVRIENT MOBILE SECURITY GMBH
H04L9/3006G06F17/30339H04L9/003H04L2209/043
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 9,860,065
App. No.
14/431,012
Granted
Jan 2, 2018
Kind
B2
Abstract

The invention provides a method, in a processor, for executing a cryptographic computation. Upon the execution of the computation there is applied a base masking through which intermediate values are incorporated into the computation as masked intermediate values. Upon the execution of the computation a secondary masking is additionally applied, wherein for each intermediate value masked by means of the base masking the one's complement of the masked intermediate value is formed, the masked intermediate value and the one's complement of the masked intermediate value are made available, and randomly the computation is executed either with the masked intermediate value or with the one's complement of the masked intermediate value.

Claims (24)

1. A method, in a processor, for executing a cryptographic computation (AES) wherein output data (C) are generated from input data (P) employing a cryptographic key (K) and via the generation of intermediate values (x, y),

wherein upon the execution of the computation (AES) a base masking (XOR; α) is applied through which at least some, preferably all, intermediate values (x, y, . . . ) are incorporated into the computation as masked intermediate values (x XOR , y XOR , . . . ; x α , y α , . . . ),

wherein upon the execution of the computation (AES) a secondary masking (00/FF) is additionally applied, wherein for each intermediate value (x XOR ; x α ) masked by means of the base masking (XOR; α) the one's complement ( x XOR ; x α ) of the masked intermediate value (x XOR ; x α ) is formed, the masked intermediate value (x XOR ; x α ) and the one's complement ( x XOR ; x α ) of the masked intermediate value (x XOR ; x α ) are made available, and randomly the computation (AES) is executed either with the masked intermediate value (x XOR ; x α ) or with the one's complement ( x XOR ; x α ) of the masked intermediate value (x XOR ; x α ),

wherein the computation (AES) comprises a sub-computation through which an intermediate value (y=S[x]) is generatable from an input value (x=p⊕k) while executing a table access to a table (S) having a plurality of table entries (y), wherein for executing the computation or at least the sub-computation

the table (S) is masked with the base masking (XOR; α) to a masked table (S′), and the masked table (S′) is masked with the secondary masking (00/FF), wherein

the masked table (S′) is complemented, so that at least one masked complementary table ( S ′) is computed,

the masked table (S′) and the at least one masked complementary table ( S ′) are made available, and

the sub-computation is executed by executing the table access randomly on either the masked table (S′) or the, or a, masked complementary table ( S ′).

2. The method according to claim 1 , wherein there is provided as a base masking a simple or multiple XOR masking, or an affine masking (α), or a decomposition masking, or a chaining of two or more of the above-mentioned base maskings.

3. The method according to claim 1 , wherein the randomized accessing of either the masked table (S′) or the, or a, masked complementary table ( S ′) is executed by extending the input value (x), for generating the intermediate value (y=S[x]), by a table selection portion (a; a 1 . . . a 0 ) through which the table that is accessed is specified.

4. The method according to claim 1 , wherein the table (S) has a table input (x) and has a table output (y), and wherein exactly one masked complementary table ( S ′) is computed in which both the table input (x) and the table output (y) are complemented by the positions of the table entries in the table (S) being complemented and the values of the table entries in the table (S) being complemented.

5. The method according to claim 1 , wherein the table (S) has a table input (x) and has a table output (y), and wherein three masked complementary tables ( S ′) are computed, wherein

in a first masked complementary table ( S ′) only the table input (x) is complemented by the positions of the table entries in the masked table (S′) being complemented,

in a second masked complementary table ( S ′) only the table output (y) is complemented by the values of the table entries in the masked table (S′) being complemented, and

in a third masked complementary table ( S ′) both the table input (x) and the table output (y) are complemented by the positions of the table entries in the masked table (S′) being complemented and the values of the table entries in the table (S) being complemented.

6. The method according to claim 1 , wherein the masked table (S′) and the at least one complementary table ( S ′) are entered into a single extended table (S″) which contains the table entries of the masked table (S′) and the at least one complementary table ( S ′) in a predetermined arrangement (one after the other; alternating like a checkerboard; . . . ).

7. The method according to claim 1 , wherein the processor has associated therewith a permanent memory (ROM) and a volatile working memory (RAM), and wherein the table (S) is stored in the permanent memory (ROM), and the masked table (S′) and the at least one masked complementary table ( S ′) are computed in the volatile working memory (RAM).

8. The method according to claim 1 , wherein

the masked table (S′) and at least one complementary table ( S ′) are employed for a plurality of table accesses to the table (S), electively for at least one total execution of the cryptographic computation (AES), and

within the plurality of table accesses it is newly randomly specified at least once, preferably for each table access, that the computation (AES) is executed either with the masked intermediate value (x XOR ; x α ) or with the one's complement ( x XOR ; x α ) of the masked intermediate value (x XOR ; x α ), and the computation is executed in accordance with said specifying.

9. The method according to claim 1 , wherein the table (S) has a table input (x) and has a table output (y), and wherein the masked table (S′)

has a masked table input (x),

or has a masked table output (y),

or has a masked table input (x) and a masked table output (y), wherein the table input (x) and the table output (y) further either are masked with the same base masking (XOR; α) or are masked with different base maskings (XOR; α).

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2017
From: GIESECKE & DEVRIENT GMBH
To: GIESECKE+DEVRIENT MOBILE SECURITY GMBH
Reel/Frame 043230/0485 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2015
From: PULKUS, JURGEN
To: GIESECKE & DEVRIENT GMBH
Reel/Frame 035250/0963 →
Priority Claims (1)
DE 10 2012 018 924 · Sep 25, 2012 · national
Continuity (1)
Related Publication 20150244524A1 · Aug 27, 2015