IP Library Granted Patent US 11,783,027
Granted Patent B2
US 11,783,027 · App. 17/540,220 · Granted Oct 10, 2023

Systems and methods for managing state

Inventor: Stephen G. Mitchell (Ben Lomond, CA)
Assignee: Intertrust Technologies Corporation
G06F21/54H04L9/3242H04L9/3263G06F2221/2107
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,783,027
App. No.
17/540,220
Granted
Oct 10, 2023
Kind
B2
Abstract

The disclosure relates to systems and methods for managing state using relatively small assistance from protected hardware. Obfuscated code segments may communicate with supporting protected hardware, store encrypted state values in main memory, and/or communicate via secure channels to secure platform hardware components. In various embodiments, consistent state may be achieved, at least in part, by computing secure tag information and storing the secure tag information in a secure and/or otherwise protected device register. Consistent with embodiments disclosed herein, the tag information may be used to derive keys used to encrypt and/or decrypt stored state information. Tag information may further be used in connection with verification operations prior to using the information to derive associated keys.

Claims (28)

1. A method for managing program state information associated with a protected software function performed by a computing system comprising secure hardware, a processor, and a non-transitory computer-readable medium storing instructions that, when executed by the processor, cause the computing system to perform the method, the method comprising:

receiving software function inputs;

receiving encrypted initial program state information;

retrieving a previous secure tag and a current secure tag associated with the encrypted initial program state information from a protected memory register of the secure hardware;

decrypting the encrypted initial program state information using a fixed key to generate decrypted initial program state information and a third secure tag;

determining that the previous secure tag and the third secure tag match;

based on determining that the previous secure tag and the third secure tag match, executing the protected software function using, at least in part, the software function inputs and the decrypted initial program state information to generate updated program state information; and

generating an updated current secure tag based, at least in part, on a shared key, the software function inputs, and the current secure tag.

2. The method of claim 1 , wherein the method further comprises:

encrypting the updated program state information using the fixed key; and

storing the encrypted updated program state information in system memory maintained on the non-transitory computer-readable medium.

3. The method of claim 2 , wherein encrypting the updated program state information using the fixed key is performed using an authenticated encryption function.

4. The method of claim 1 , wherein the fixed key comprises a protected fixed key.

5. The method of claim 1 , wherein the shared key comprises a key shared by the protected software function and the secure hardware.

6. The method of claim 1 , wherein the method further comprises storing the updated current secure tag in the protected memory register.

7. The method of claim 1 , wherein the updated current secure tag comprises a message authentication code tag and wherein generating the updated current secure tag comprises cryptographically signing information including at least the protected software function inputs and the current secure tag using the shared key.

8. The method of claim 1 , wherein the software function inputs comprise at least one of an external program input, a dynamic device resource input, and a static device resource input.

9. The method of claim 1 , wherein the previous secure tag and the current secure tag comprise message authentication code tags.

10. The method of claim 9 , wherein the previous secure tag and the current secure tag comprise sequential tags included in the protected memory register.

11. The method of claim 9 , wherein the previous secure tag and the current secure tag comprise sequential tags included in a hash chain maintained in the protected memory register.

12. The method of claim 1 , wherein the encrypted initial program state information is retrieved from memory of the computing system.

13. The method of claim 1 , wherein the protected software function comprises an obfuscated software function.

14. The method of claim 1 , wherein the protected software function comprises a whitebox-protected software function.

15. The method of claim 1 , wherein the method further comprises:

generating a state encryption key using a key derivation function with the fixed key and the current secure tag as inputs to the key derivation function; and

encrypting the updated program state information using the state encryption key.

16. The method of claim 1 , wherein decrypting the encrypted initial program state information using the fixed key is performed using an authenticated decryption function.

17. The method of claim 1 , wherein the method further comprises validating the integrity of the previous secure tag and the current secure tag.

Assignments (4)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 26, 2024
From: INTERTRUST TECHNOLOGIES CORPORATION
To: JERA CO., INC.
Reel/Frame 068173/0212 →
RELEASE OF SECURITY INTEREST Recorded Feb 14, 2023
From: ORIGIN FUTURE ENERGY PTY LTD.
To: INTERTRUST TECHNOLOGIES CORPORATION
Reel/Frame 062747/0742 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2022
From: MITCHELL, STEPHEN G.
To: INTERTRUST TECHNOLOGIES CORPORATION
Reel/Frame 060154/0993 →
SECURITY INTEREST Recorded Jun 9, 2022
From: INTERTRUST TECHNOLOGIES CORPORATION
To: ORIGIN FUTURE ENERGY PTY LTD
Reel/Frame 060328/0889 →