IP Library Granted Patent US 10,403,174
Granted Patent B2
US 10,403,174 · App. 15/525,224 · Granted Sep 3, 2019

Hardened white box implementation

Inventors: Hermann Drexler (München, DE); Sven Bauer (Vaterstetten, DE); Jürgen Pulkus (München, DE)
Assignee: GIESECKE+DEVRIENT MOBILE SECURITY GMBH
G09C1/06G06F9/4403G06F21/12G09C1/00H04L9/002H04L9/0618H04L9/0625H04L9/0631H04L9/0822H04L2209/043H04L2209/08H04L2209/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 10,403,174
App. No.
15/525,224
Granted
Sep 3, 2019
Kind
B2
Abstract

A processor device has an executable implementation of a cryptographic algorithm implemented thereon that is white-box-masked by a function f. The implementation comprises an implemented computation step S by which input values x are mapped to output values s=S[x], and which is masked to a white-box-masked computation step T′ by means of an invertible function f. As a mapping f there is provided a combination (f=(c1, c2, . . . )*A) of an affine mapping A having an entry width BA and a number of one or several invertible mappings c1, c2, . . . having an entry width Bc1, Bc2, . . . respectively, wherein BA=Bc1+Bc2+ . . . . Output values w are generated altogether by the mapping f. The affine mapping A is constructed by a construction method coordinated with the invertible mappings c1, c2, and etc.

Claims (31)

1. A processor device having an executable white-box-masked implementation of a cryptographic algorithm implemented thereon, which is configured to generate an output text from an input text while employing a secret key K, wherein the implementation comprises an implemented computation step S by which input values x are mapped to output values s=S[x], and which is masked to a white-box-masked computation step T′ by means of an invertible function f, by which output values w of f are formed, wherein

a) as a mapping f, a combination (f=(c1, c2, . . . )*A) is provided of an affine mapping A having an entry width BA and a number of one or several invertible mappings c1, c2, . . . having an entry width Bc1, Bc2, . . . respectively, wherein BA=Bc1+Bc2+ . . . , wherein through the mapping f output values w are generated;

b) the affine mapping A is configured to be applied to output values s of the computation step S and additionally to one or several obfuscation values y which are statistically independent of the output values s of the computation step S, according to a=A(S[x], y)=A(s, y);

c) the one or several invertible mappings c1, c2, . . . are configured to map output values a of the affine mapping A to output values w of the mapping f, according to w=(c1, c2, . . . )(A(s,y));

d) the affine mapping A is constructed by a construction method coordinated with the invertible mappings c1, c2, . . . , wherein:

d1) the output values a of the affine mapping A are represented as a concatenation of output-value parts a=a1|a2 . . . and the output values w of the mapping f are represented as a concatenation of output-value parts w=w1|w2 . . . , wherein output-value parts a1, a2, . . . and w1, w2, . . . respectively have the same entry width Bc1, Bc2, . . . as the invertible mappings c1, c2, . . . ;

d2) an input value x=xi is set; and

d3) the affine mapping A is selected or formed such that for fixed input value xi—by applying A on s=S [xi] with all possible obfuscation values y, all possible output-value parts a1 or/and all possible output-value parts

a2, . . . of the affine mapping A are generated, namely for at least one individual output-value part a1, a2, . . . or for each individual output-value part a1, a2, . . . .

2. The processor device according to claim 1 , wherein the number of obfuscation values y is stipulated equal to the entry width Bc1=Bc2= . . . of the invertible mappings c1, c2, . . . and comprises feature d3), that the affine mapping A is split up into partial mappings P1, Q1, P2, Q2, . . . so that it holds: a1(x,y)=P1(x)+Q1(y), a2(x,y)=P2(x)+Q2(y) . . . , wherein at least one or all of the partial mappings Q1, Q2, . . . are invertible mappings.

3. The processor device according to claim 2 , wherein the affine mapping A comprises a linear mapping which is formed by a matrix MA, which is organized in columns and rows, wherein:

the output values s of the computation step S are associated with a number n of columns N in the matrix MA and the statistically independent obfuscation values y are associated with a number m of columns M—separated from columns N—in the matrix MA, wherein the number m columns M for the obfuscation values y is equal to the number m of the obfuscation values y;

the matrix MA comprises an invertible partial matrix which is formed: by those m columns M of the matrix MA which are associated with the obfuscation values y, and the same number m of mutually adjacent rows of the matrix MA; in particular by the last m columns M of the matrix MA in combination with either the first, second, . . . or last m rows of the matrix MA.

4. The processor device according to claim 3 , wherein the number of obfuscation values y is four or an integral multiple of four, in particular eight, and the invertible partial matrix is formed by the last four columns of the matrix MA and in addition the first, or the second, or the third . . . or last four rows of the matrix MA, or according to the integral multiple, several such groups of four columns and four rows.

5. The processor device according to claim 1 , wherein for carrying out the implementation of the white-box-masked computation step T′ there has been supplied a look-up table STab[x] representing the computation step S, or a look-up table STab[x,y] representing the computation step S and the obfuscation values y.

6. The processor device according to claim 1 , wherein the white-box-masked computation step T′ is represented by a white-box-masked look-up table T′Tab [x, y] in which values f(s, y) are recorded, in particular the result of the application of one or several invertible mappings c1, c2, . . . to A(s, y).

7. The processor device according to claim 1 , wherein the implementation additionally comprises a further invertible function g to be applied to input values x of the computation step S, or to input values x of the computation step S and to obfuscation values y according to g −1 (x) or g −1 (x, y).

8. The processor device according to claim 1 , wherein there is provided as an algorithm a block cipher having several rounds, in particular DES or AES, and as a computation step S:

one or several SBox operations or one or several inverse SBox operations, respectively of one round; or

a combination of one or several SBox operations or one or several inverse SBox operations, respectively of one round, with one or several further operations of the round.

9. The processor device according to claim 8 with algorithm DES, wherein

as an input value x, there is/are provided either one or several expanded right entry bits r′i (r′1|r′2| . . . ) of a round, or a linkage (x=r′1 XOR k1|r′2 XOR k2| . . . ) of one or several expanded right entry bits r′i of a round with one or several key bits ki; or/and

one or several left entry bits li of the round go into the obfuscation values y.

10. The processor device according to claim 8 having algorithm DES, wherein the obfuscation values y are computed by means of a function V from one or several left entry bits li of the round or/and from one or several expanded right entry bits r′i of the round, wherein in particular V is electively a linear mapping or a hash function.

11. The processor device according to claim 10 , wherein the algorithm has several rounds and the function V is newly chosen for every round.

12. The processor device according to claim 8 having algorithm DES, wherein the further operations comprise one or several of the following: permutation P; expansion E; addition of left and right entry bits l, r or left and expanded right entry bits l, r′.

13. The processor device according to claim 8 having algorithm AES, wherein there is provided as an input value x an input value or part of an input value of an AddRoundKey operation or a SubBytes operation or an inverse SubBytes operation of an AES round; or/and

the further operations comprise one or several of the following: MixColumn operation or one or several substeps of the MixColumn operation or inverse MixColumn operation or one or several substeps of the inverse MixColumn operation.

14. The processor device according to claim 1 , wherein the obfuscation values y are computed respectively by means of a function V from bits of the input text, wherein in particular V is electively a linear mapping or a hash function.

15. The processor device according to claim 14 , wherein the algorithm has several rounds and the function V is newly chosen for every round.

16. The processor device according to claim 1 , wherein the computation step S has been implemented on the processor device as a white-box-masked computation step T′ in that: (i) the computation step S has been carried out to generate output values s, and (ii) the invertible function f has been applied to the generated output values s of the computation step S and the obfuscation values y, and a thereby achieved result T′ has been implemented on the processor device.

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 May 8, 2017
From: DREXLER, HERMANN; BAUER, SVEN; PULKUS, JÜRGEN
To: GIESECKE & DEVRIENT GMBH
Reel/Frame 042281/0494 →
Priority Claims (1)
DE 10 2014 016 548 · Nov 10, 2014 · national
Continuity (1)
Related Publication 20170324542A1 · Nov 9, 2017