IP Library › Granted Patent US 11,303,436
Granted Patent B2
US 11,303,436 · App. 16/311,148 · Granted Apr 12, 2022

Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks

Inventor: Elke De Mulder (Kirkland, WA)
Assignee: CRYPTOGRAPHY RESEARCH, INC.
H04L9/085G06F11/30H04L9/0631H04L2209/04H04L2209/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 11,303,436
App. No.
16/311,148
Granted
Apr 12, 2022
Kind
B2
Abstract

Systems and methods for performing cryptographic data processing operations employing non-linear share encoding for protecting from external monitoring attacks. An example method includes: receiving a plurality of shares representing a secret value employed in a cryptographic operation, such that the plurality of shares includes a first share represented by an un-encoded form and a second share represented by an encoded form; producing a transformed form of the second share; and performing the cryptographic operation using the transformed form of the second share.

Claims (37)

1. A method, comprising:

generating, by a processor, a plurality of shares, wherein a linear combination of the plurality of shares represents a secret value to be employed in a cryptographic operation, wherein the plurality of shares comprises an un-encoded form of a first share and an encoded form of a second share, wherein the encoded form of the second share is produced by applying a non-linear encoding function to the second share;

producing a transformed form of the second share by applying, to the encoded form of the second share, a non-linear decoding function and a masking operation, wherein the non-linear decoding function reverses the non-linear encoding function;

determining an S-box input value by combining the first share, the transformed form of the second share, and a round key by a linear operation;

feeding the S-box input value to an S-box; and

re-masking a masked output value produced by the S-box.

2. The method of claim 1 , wherein the cryptographic operation is represented by one of an encryption operation based on Advanced Encryption Standard (AES) or a decryption operation based on AES.

3. The method of claim 1 , wherein re-masking the masked output value comprises combining the masked output value, the transformed form of the second share, and an output mask by a linear operation.

4. The method of claim 1 , wherein producing the transformed form of the second share prevents the plurality of shares from simultaneously appearing in an un-encoded form in at least one of: a memory, a register bank, or a communication bus.

5. The method of claim 1 , wherein producing the transformed form of the second share prevents the plurality of shares from sequentially appearing in an un-encoded form in at least one of: a memory, a register bank, or a communication bus.

6. The method of claim 1 , wherein the non-linear encoding function is implemented by a look-up table.

7. The method of claim 1 , wherein the non-linear decoding function is implemented by a look-up table.

8. A computer-readable non-transitory storage medium comprising executable instructions that, when executed by a computing device, cause the computing device to:

generate a plurality of shares, wherein a linear combination of the plurality of shares represents a secret value to be employed in a cryptographic operation, wherein the plurality of shares comprises an un-encoded form of a first share and an encoded form of a second share, wherein the encoded form of the second share is produced by applying a non-linear encoding function to the second share;

produce a transformed form of the second share by applying, to the encoded form of the second share, a non-linear decoding function and a masking operation, wherein the non-linear decoding function reverses the non-linear encoding function;

determining an S-box input value by combining the first share, the transformed form of the second share, and a round key by a linear operation;

feeding the S-box input value to an S-box; and

re-masking a masked output value produced by the S-box.

9. The computer-readable non-transitory storage medium of claim 8 , wherein the transformed form of the second share is represented by a masked decoded form of the second share.

10. The computer-readable non-transitory storage medium of claim 8 , wherein re-masking the masked output value comprises combining the masked output value, a masked form of the second share, and an output mask by a linear operation.

11. The computer-readable non-transitory storage medium of claim 8 , wherein the cryptographic operation is represented by one of an encryption operation based on Advanced Encryption Standard (AES) or a decryption operation based on AES.

12. The computer-readable non-transitory storage medium of claim 8 , wherein producing the transformed form of the second share prevents the plurality of shares from simultaneously appearing in an un-encoded form in at least one of: a memory, a register bank, or a communication bus.

13. The computer-readable non-transitory storage medium of claim 8 , wherein producing the transformed form of the second share prevents the plurality of shares from sequentially appearing in an un-encoded form in at least one of: a memory, a register bank, or a communication bus.

14. A system, comprising:

a memory; and

a processor, coupled to the memory, the processor configured to:

generate a plurality of shares, wherein a linear combination of the plurality of shares represents a secret value to be employed in a cryptographic operation, wherein the plurality of shares comprises an un-encoded form of a first share and an encoded form of a second share, wherein the encoded form of the second share is produced by applying a non-linear encoding function to the second share;

produce a transformed form of the second share by applying, to the encoded form of the second share, a non-linear decoding function and a masking operation, wherein the non-linear decoding function reverses the non-linear encoding function;

determine an S-box input value by combining the first share, the transformed form of the second share, and a round key by a linear operation;

feed the S-box input value to an S-box; and

re-mask a masked output value produced by the S-box.

15. The system of claim 14 , wherein re-masking the masked output value comprises combining the masked output value, a masked form of the second share, and an output mask by a linear operation.

16. The system of claim 14 , wherein the transformed form of the second share is represented by a masked decoded form of the second share.

17. The system of claim 14 , wherein the cryptographic operation is represented by one of an encryption operation based on Advanced Encryption Standard (AES) or a decryption operation based on AES.

18. The system of claim 14 , wherein producing the transformed form of the second share prevents the plurality of shares from simultaneously appearing in an un-encoded form in at least one of: a memory, a register bank, or a communication bus.

19. The system of claim 14 , wherein producing the transformed form of the second share prevents the plurality of shares from sequentially appearing in an un-encoded form in at least one of: a memory, a register bank, or a communication bus.

20. The system of claim 14 , wherein the non-linear encoding function is implemented by a look-up table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2019
From: MULDER, ELKE DE
To: CRYPTOGRAPHY RESEARCH, INC.
Reel/Frame 051031/0438 →
Continuity (3)
Provisional Application 62410527 · Oct 20, 2016
Provisional Application 62354062 · Jun 23, 2016
Related Publication 20190296898A1 · Sep 26, 2019