IP Library › Granted Patent US 9,819,486
Granted Patent B2
US 9,819,486 · App. 14/577,342 · Granted Nov 14, 2017

S-box in cryptographic implementation

Inventors: Wil Michiels (Reusel, NL); Jan Hoogerbrugge (Helmond, NL)
Assignee: NXP B.V.
H04L9/0838H04L9/06H04L2209/16H04L2209/24
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,819,486
App. No.
14/577,342
Granted
Nov 14, 2017
Kind
B2
Abstract

A method of implementing a cryptographic operation using a substitution box, comprising: specifying a set of self-equivalent functions for the substitution box; determining the minimum diversification number of the substitution box over the set of self-equivalent functions; comparing the minimum diversification number to a threshold value; including and implementing a cryptographic operation with selected substitution box when the minimum diversification number is greater or equal to a threshold value.

Claims (46)

1. A method of producing a white-box implementation of a cryptographic operation using a substitution box, comprising:

specifying a set of self-equivalent functions α(x), β(y) for the substitution box S(x), wherein when α(x) is input to the substitution box the output of the substitution box is β(y) when S(x)=y, wherein x in an input to the substitution box and y is the output of the substitution box;

determining a minimum diversification number of the substitution box over the set of self-equivalent functions;

comparing the minimum diversification number to a threshold value; and

implementing the white-box implementation of the cryptographic operation with selected substitution box when the minimum diversification number is greater than or equal to the threshold value, wherein the white-box implementation of the cryptographic operation is software that securely performs the cryptographic operation on an untrusted user device.

2. The method of claim 1 , wherein:

set of self-equivalent functions includes a set of input functions and a set of output functions for the substitution box;

determining the minimum diversification number of the substitution box further comprises determining the diversification number for each input of each of the input functions; and

determining the minimum diversification number among the diversification numbers for each input of each of the input functions.

3. The method of claim 2 , wherein the cryptographic operation comprises:

receiving input data;

splitting the input data using the self-equivalent functions;

inputting the split input data into the substitution box to obtain output data; and

combining the output data.

4. The method of claim 1 , wherein the cryptographic operation comprises:

receiving input data;

encoding the input data using the self-equivalent functions;

inputting the encoded input data into the substitution box to obtain output data; and

decoding the output data using the output functions.

5. The method of claim 4 , wherein encoding the input data further comprises:

selecting one of the set of self-equivalent functions based upon the input data having an associated identifier; and

securely communicating the associated identifier to a decoder decoding the output data.

6. The method of claim 5 , wherein decoding the output data further comprises decoding the output data using an self-equivalent function identified by the securely communicated identifier.

7. The method of claim 1 , wherein input functions of the self-equivalent functions are affine.

8. The method of claim 7 , wherein output functions of the self-equivalent functions are affine.

9. The method of claim 1 , wherein the threshold value is 5.

10. A method of performing a white-box implementation of a cryptographic operation using a substitution box, comprising:

receiving, by an untrusted user device, input data;

encoding, by the untrusted user device, the input data using input functions of self-equivalent functions α(x), β(y) associated with the substitution box S(x), wherein when α(x) is input to the substitution box the output of the substitution box is β(y) when S(x)=y, wherein x in an input to the substitution box and y is the output of the substitution box;

applying, by the untrusted user device, the substitution box to the encoded data to produce output data wherein the substitution box has a minimum diversification number greater than or equal to a predetermined threshold; and

decoding, by the untrusted user device, the output data using output functions of the self-equivalent functions associated with the substitution box.

11. The method of claim 10 , wherein the predetermined threshold is 5.

12. The method of claim 10 , wherein encoding the input data further comprises:

selecting one of the input functions based upon the input data having an associated identifier; and

securely communicating the associated identifier to a decoder decoding the output data.

13. The method of claim 12 , wherein decoding the output data further comprises decoding the output data using the output function identified by the securely communicated identifier.

14. A method of performing a white-box implementation of a cryptographic operation using a substitution box, comprising:

receiving, by an untrusted user device, input data;

splitting, by the untrusted user device, the input data using input functions of self-equivalent functions α(x), β(y) associated with the substitution box S(x), wherein when α(x) is input to the substitution box the output of the substitution box is β(y) when S(x)=y, wherein x in an input to the substitution box and y is the output of the substitution box;

applying, by the untrusted user device, the substitution box to the split data to produce output data wherein the substitution box has a minimum diversification number greater than or equal to a predetermined threshold; and

combining, by the untrusted user device, the output data.

15. The method of claim 14 , wherein the predetermined threshold is 5.

16. The method of claim 14 , wherein:

splitting the input data further comprises splitting the input data into N split input data using N input functions based upon the input data; and

inputting the split input data into the substitution box to obtain output data further comprises inputting the N encoded input data into the substitution box to obtain N output data.

17. The method of claim 16 , wherein combining the output data further comprises combining the N output data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2014
From: MICHIELS, WIL; HOOGERBRUGGE, JAN
To: NXP, B.V.
Reel/Frame 034559/0127 →
Continuity (1)
Related Publication 20160182227A1 · Jun 23, 2016