IP Library Granted Patent US 11,599,680
Granted Patent B2
US 11,599,680 · App. 16/721,701 · Granted Mar 7, 2023

Encryption and decryption engines with hybrid masking to prevent side channel attacks

Inventor: Sudhir Satpathy (Redmond, WA)
Assignee: META PLATFORMS TECHNOLOGIES, LLC
G06F21/755G06F15/7807G06T19/006H04N13/332
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,599,680
App. No.
16/721,701
Granted
Mar 7, 2023
Kind
B2
Abstract

A system on a chip (SoC) includes a security processor configured to form a Boolean mask, to form a shifted-row Boolean mask from the Boolean mask, and to add the shifted-row Boolean mask to cipher text to form Boolean-masked cipher text. The SoC includes a decryption engine configured to apply a shift rows operation to the Boolean-masked cipher text to form byte-aligned Boolean-masked cipher text, to apply a product of the Boolean mask and a multiplicative mask to the byte-aligned Boolean-masked cipher text to form multiplicatively masked cipher text, to perform an inverse byte substitution operation on the multiplicatively masked cipher text by applying a product of the Boolean mask and an inverse of the multiplicative mask to the multiplicatively masked cipher text to form Boolean-masked intermediate data, and to apply mix columns logic to the Boolean-masked intermediate data to form byte-shifted Boolean-masked output data.

Claims (62)

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

a security processor comprising first processing circuitry configured to:

form a Boolean mask,

perform a shift operation on the Boolean mask to obtain a shifted-row Boolean mask, and

add the shifted-row Boolean mask to cipher text to form Boolean-masked cipher text; and

a decryption engine comprising second processing circuitry configured to:

apply a shift rows operation to the Boolean-masked cipher text to form byte-aligned Boolean-masked cipher text,

apply a product of the Boolean mask and a multiplicative mask to the byte-aligned Boolean-masked cipher text to form multiplicatively masked cipher text,

perform an inverse byte substitution operation on the multiplicatively masked cipher text at least in part by applying a product of the Boolean mask and an inverse of the multiplicative mask to the multiplicatively masked cipher text to form Boolean-masked intermediate data, and

apply mix columns logic to the Boolean-masked intermediate data to form byte-shifted Boolean-masked output data.

2. The SoC of claim 1 , wherein the security processor is further configured to modify the multiplicative mask to form a modified multiplicative mask for a subsequent decryption round.

3. The SoC of claim 1 , wherein the security processor is further configured to:

generate the Boolean mask as a first random number; and

generate the multiplicative mask as a second random number.

4. The SoC of claim 1 , wherein the decryption engine is further configured to add a round key to the Boolean-masked cipher text to form key-mingled Boolean-masked cipher text, and wherein to apply the shift rows operation to the Boolean-masked cipher text, the decryption engine is configured to apply the shift rows operation to the key-mingled Boolean-masked cipher text.

5. The SoC of claim 1 , wherein the SoC is configured to support an artificial reality application.

6. The SoC of claim 1 , wherein the SoC is integrated into a head-mounted device (HMD).

7. The SoC of claim 1 , wherein the SoC is integrated into a peripheral device that is communicatively coupled to a head-mounted device (HMD).

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

a security processor comprising first processing circuitry configured to:

form a Boolean mask,

perform a shift operation on the Boolean mask to obtain a shifted-row Boolean mask, and

add the shifted-row Boolean mask to input data to form Boolean-masked input data; and

an encryption engine comprising second processing circuitry configured to:

apply a shift rows operation to the Boolean-masked input data to form byte-aligned Boolean-masked input data,

apply a product of the Boolean mask and a multiplicative mask to the byte-aligned Boolean-masked input data to form multiplicatively masked input data,

perform a byte substitution operation on the multiplicatively masked input data at least in part by applying a product of the Boolean mask and an inverse of the multiplicative mask to the multiplicatively masked input data to form Boolean-masked intermediate data, and

apply mix columns logic to the Boolean-masked intermediate data to form byte-shifted Boolean-masked cipher text.

9. The SoC of claim 8 , wherein the security processor is further configured to modify the multiplicative mask to form a modified multiplicative mask for a subsequent encryption round.

10. The SoC of claim 8 , wherein the security processor is further configured to:

generate the Boolean mask as a first random number; and

generate the multiplicative mask as a second random number.

11. The SoC of claim 8 , wherein the encryption engine is further configured to add a round key to the Boolean-masked input data to form key-mingled Boolean-masked input data, and wherein to apply the shift rows operation to the Boolean-masked input data, the encryption engine is configured to apply the shift rows operation to the key-mingled Boolean-masked input data.

12. The SoC of claim 8 , wherein the SoC is configured to support an artificial reality application.

13. The SoC of claim 8 , wherein the SoC is integrated into a head-mounted device (HMD).

14. The SoC of claim 8 , wherein the SoC is integrated into a peripheral device that is communicatively coupled to a head-mounted device (HMD).

15. An artificial reality system comprising:

a security processor configured to:

form a Boolean mask,

perform a shift operation on the Boolean mask to obtain a shifted-row Boolean mask, and

add the shifted-row Boolean mask to cipher text to form Boolean-masked cipher text; and

a decryption engine configured to:

apply a shift rows operation to the Boolean-masked cipher text to form byte-aligned Boolean-masked cipher text,

apply a product of the Boolean mask and a multiplicative mask to the byte-aligned Boolean-masked cipher text to form multiplicatively masked cipher text,

perform an inverse byte substitution operation on the multiplicatively masked cipher text at least in part by applying a product of the Boolean mask and an inverse of the multiplicative mask to the multiplicatively masked cipher text to form Boolean-masked intermediate data, and

apply mix columns logic to the Boolean-masked intermediate data to form byte-shifted Boolean-masked output data; and

a head-mounted device (HMD) configured to output artificial reality content including unmasked decrypted data formed from the byte-shifted Boolean-masked output data.

16. The artificial reality system of claim 15 , wherein the security processor is configured to form the unmasked decrypted data by adding the shifted-row Boolean mask to the byte-shifted Boolean-masked output data.

17. The artificial reality system of claim 15 , wherein the security processor and the decryption engine are integrated into the HMD.

18. An artificial reality system comprising:

a peripheral device configured to receive input data;

a security processor configured to:

form a Boolean mask,

perform a shift operation on the Boolean mask to obtain a shifted-row Boolean mask, and

add the shifted-row Boolean mask to the input data to form Boolean-masked input data; and

an encryption engine configured to:

apply a shift rows operation to the Boolean-masked input data to form byte-aligned Boolean-masked input data,

apply a product of the Boolean mask and a multiplicative mask to the byte-aligned Boolean-masked input data to form multiplicatively masked input data,

perform a byte substitution operation on the multiplicatively masked input data at least in part by applying a product of the Boolean mask and an inverse of the multiplicative mask to the multiplicatively masked input data to form Boolean-masked intermediate data, and

apply mix columns logic to the Boolean-masked intermediate data to form byte-shifted Boolean-masked cipher text.

19. The artificial reality system of claim 18 , wherein the security processor and the encryption engine are integrated into the peripheral device.

20. The artificial reality system of claim 19 , wherein the artificial reality system further comprises a head-mounted device (HMD) that is communicatively coupled to the peripheral device, and wherein the peripheral device is configured to transmit the byte-shifted Boolean-masked cipher text to the HMD.

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 Dec 23, 2019
From: SATPATHY, SUDHIR
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 051357/0806 →
Continuity (2)
Provisional Application 62938067 · Nov 20, 2019
Related Publication 20210150070A1 · May 20, 2021