IP Library Granted Patent US 11,263,353
Granted Patent B2
US 11,263,353 · App. 16/835,063 · Granted Mar 1, 2022

Mixed sequencing of polynomial-diverse encryption and decryption operations for side channel attack protection

Inventors: Sudhir Satpathy (Redmond, WA); Wojciech Stefan Powiertowski (Kirkland, WA); Neeraj Upasani (Redmond, WA)
Assignee: Facebook Technologies, LLC
G06F21/75G06F21/72H04L9/0631
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,263,353
App. No.
16/835,063
Granted
Mar 1, 2022
Kind
B2
Abstract

This disclosure describes systems on a chip (SOCs) that prevent side channel attacks (SCAs). An example SoC of this disclosure includes an engine configured to encrypt transmission (Tx) channel data using an encryption operation set configured with a first polynomial, and to decrypt encrypted received (Rx) channel data using a decryption operation set configured with a second polynomial different from the first polynomial. The SoC further includes a security processor configured to multiplex the encryption operation set against the decryption operation set with a varied sequence of selection inputs on a round-by-round basis to generate a mixed sequence of encryption rounds and decryption rounds, and to control the engine to encrypt the Tx channel data and decrypt the encrypted Rx channel data in a combined datapath according to the mixed sequence of encryption rounds and decryption rounds.

Claims (72)

1. A system on a chip (SoC) comprising:

an encryption/decryption engine configured to:

encrypt transmission (Tx) channel data using an encryption operation set configured with a first polynomial; and

decrypt encrypted received (Rx) channel data using a decryption operation set configured with a second polynomial that is different from the first polynomial; and

a security processor configured to:

select a pairing of the first polynomial and the second polynomial based on a determination that a first power profile associated with the first polynomial differs by at least a threshold power profile differential from a second power profile associated with the second polynomial;

multiplex the encryption operation set against the decryption operation set with a varied sequence of selection inputs on a round-by-round basis to generate a mixed sequence of encryption rounds and decryption rounds; and

control the encryption/decryption engine to encrypt the Tx channel data and decrypt the encrypted Rx channel data in a combined data path according to the mixed sequence of encryption rounds and decryption rounds.

2. The SoC of claim 1 , wherein the security processor is configured to generate the varied sequence of selection inputs as one of a random sequence, a pseudo-random sequence, or a deterministic sequence.

3. The SoC of claim 1 , wherein the security processor is configured to generate the varied sequence of selection inputs as a non-static sequence.

4. The SoC of claim 1 ,

wherein the first polynomial comprises a first ground-field polynomial and a first extension-field polynomial,

wherein the second polynomial comprises a second ground-field polynomial and a second extension-field polynomial,

wherein the encryption/decryption engine applies the first ground-field polynomial to split 8-bit data blocks of the Rx channel data into respective 4-bit Rx channel data segments,

wherein the encryption/decryption engine applies the second ground-field polynomial to split 8-bit data blocks of the Tx channel data into respective 4-bit Tx channel data segments,

wherein the encryption/decryption engine applies the first extension-field polynomial to encrypt a first subset of the 4-bit data segments, and

wherein the encryption/decryption engine applies the second extension-field polynomial to decrypt a second subset of the 4-bit data segments.

5. The SoC of claim 4 , wherein the security processor is further configured to execute a scripting agent to explore a pool of mappings that include a first mapping of the first ground-field polynomial to the first extension-field polynomial and a second mapping of the second ground-field polynomial to the second extension-field polynomial to select the first polynomial and the second polynomial.

6. The SoC of claim 1 , wherein the encryption/decryption engine is further configured to:

execute a byte substitution computational stage of the encryption operation set using finite-field byte substitution; and

execute an inverse byte substitution computational stage of the decryption operation set using finite-field inverse byte substitution.

7. The SoC of claim 1 , wherein the SoC is integrated into one of a head-mounted device (HMD) of an artificial reality system or a peripheral device of the artificial reality system.

8. A head-mounted device (HMD) comprising:

a system on a chip (SoC) comprising:

an encryption/decryption engine configured to:

encrypt transmission (Tx) channel data using an encryption operation set configured with a first polynomial; and

decrypt encrypted received (Rx) channel data using a decryption operation set configured with a second polynomial that is different from the first polynomial; and

a security processor configured to:

select a pairing of the first polynomial and the second polynomial based on a determination that a first power profile associated with the first polynomial differs by at least a threshold power profile differential from a second power profile associated with the second polynomial;

multiplex the encryption operation set against the decryption operation set with a varied sequence of selection inputs on a round-by-round basis to generate a mixed sequence of encryption rounds and decryption rounds; and

control the encryption/decryption engine to encrypt the Tx channel data and decrypt the encrypted Rx channel data in a combined datapath according to the mixed sequence of encryption rounds and decryption rounds; and

an interface coupled to the SoC, the interface being configured to:

transmit the Tx traffic; and

receive the encrypted Rx traffic.

9. The HMD of claim 8 , wherein the security processor is configured to generate the varied sequence of selection inputs as one of a random sequence, a pseudo-random sequence, or a deterministic sequence.

10. The HMD of claim 8 , wherein the security processor is configured to generate the varied sequence of selection inputs as a non-static sequence.

11. The HMD of claim 8 ,

wherein the first polynomial comprises a first ground-field polynomial and a first extension-field polynomial,

wherein the second polynomial comprises a second ground-field polynomial and a second extension-field polynomial,

wherein the encryption/decryption engine applies the first ground-field polynomial to split 8-bit data blocks of the Rx channel data into respective 4-bit Rx channel data segments,

wherein the encryption/decryption engine applies the second ground-field polynomial to split 8-bit data blocks of the Tx channel data into respective 4-bit Tx channel data segments,

wherein the encryption/decryption engine applies the first extension-field polynomial to encrypt a first subset of the 4-bit data segments, and

wherein the encryption/decryption engine applies the second extension-field polynomial to decrypt a second subset of the 4-bit data segments.

12. The HMD of claim 11 , wherein the security processor is further configured to execute a scripting agent to explore a pool of mappings that include a first mapping of the first ground-field polynomial to the first extension-field polynomial and a second mapping of the second ground-field polynomial to the second extension-field polynomial to select the first polynomial and the second polynomial.

13. The HMD of claim 8 , wherein a encryption/decryption engine is further configured to:

execute a byte substitution computational stage of the encryption operation set using finite-field byte substitution; and

execute an inverse byte substitution computational stage of the decryption operation set using finite-field inverse byte substitution.

14. A peripheral device comprising:

a system on a chip (SoC) comprising:

an encryption/decryption engine configured to:

encrypt transmission (Tx) channel data using an encryption operation set configured with a first polynomial; and

decrypt encrypted received (Rx) channel data using a decryption operation set configured with a second polynomial that is different from the first polynomial; and

a security processor configured to:

select a pairing of the first polynomial and the second polynomial based on a determination that a first power profile associated with the first polynomial differs by at least a threshold power profile differential from a second power profile associated with the second polynomial;

multiplex the encryption operation set against the decryption operation set with a varied sequence of selection inputs on a round-by-round basis to generate a mixed sequence of encryption rounds and decryption rounds; and

control the encryption/decryption engine to encrypt the Tx channel data and decrypt the encrypted Rx channel data in a combined data path according to the mixed sequence of encryption rounds and decryption rounds; and

an interface coupled to the SoC, the interface being configured to:

transmit the Tx traffic; and

receive the encrypted Rx traffic.

15. The peripheral device of claim 14 , wherein the security processor is configured to generate the varied sequence of selection inputs as one of a random sequence, a pseudo-random sequence, or a deterministic sequence.

16. The peripheral device of claim 15 , wherein the security processor is configured to generate the varied sequence of selection inputs as a non-static sequence.

17. The peripheral device of claim 14 ,

wherein the first polynomial comprises a first ground-field polynomial and a first extension-field polynomial,

wherein the second polynomial comprises a second ground-field polynomial and a second extension-field polynomial,

wherein the encryption/decryption engine applies the first ground-field polynomial to split 8-bit data blocks of the Rx channel data into respective 4-bit Rx channel data segments,

wherein the encryption/decryption engine applies the second ground-field polynomial to split 8-bit data blocks of the Tx channel data into respective 4-bit Tx channel data segments,

wherein the encryption/decryption engine applies the first extension-field polynomial to encrypt a first subset of the 4-bit data segments, and

wherein the encryption/decryption engine applies the second extension-field polynomial to decrypt a second subset of the 4-bit data segments.

18. The peripheral device of claim 11 , wherein the security processor is further configured to execute a scripting agent to explore a pool of mappings that include a first mapping of the first ground-field polynomial to the first extension-field polynomial and a second mapping of the second ground-field polynomial to the second extension-field polynomial to select the first polynomial and the second polynomial.

19. The peripheral device of claim 14 , wherein the encryption/decryption engine is further configured to:

execute a byte substitution computational stage of the encryption operation set using finite-field byte substitution; and

execute an inverse byte substitution computational stage of the decryption operation set using finite-field inverse byte substitution.

Assignments (2)
CHANGE OF NAME Recorded Jul 21, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060802/0799 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2020
From: SATPATHY, SUDHIR; POWIERTOWSKI, WOJCIECH STEFAN; UPASANI, NEERAJ
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 052652/0031 →
Continuity (2)
Provisional Application 62946875 · Dec 11, 2019
Related Publication 20210182437A1 · Jun 17, 2021