# US 2014/0157002 A1 · Systems and methods for protecting symmetric encryption keys

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0157002 A1
- Document ID: US20140157002A1
- Status: Published application
- Kind: A1
- Application number: 13/996,453
- Filed: 2011-12-21
- Published: 2014-06-05
- Earliest claimed: 2011-12-21
- Assignees: Intel Corporation
- Inventors: Steven L. Grobman; Jason W. Brandt
- Web page: https://patentgrep.com/patent/US20140157002A1

## CPC

- H04L 9/0861: {Generation of secret information including derivation or calculation of cryptographic keys or passwords}
- G06F 21/60: Protecting data
- H04L 9/0631: {Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms}
- H04L 9/0822: {using key encryption key}
- H04L 9/0877: {using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]}
- H04L 2209/127: Trusted platform modules [TPM]
- H04L 2209/24: Key scheduling, i.e. generating round keys or sub-keys for block encryption
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for protecting symmetric encryption keys when performing encryption are described. In one embodiment, a computer-implemented method includes retrieving at least one real key from a secure area and executing, with a processor, a key transform instruction to generate at least one transformed key based on receiving the at least one real key. The at least one transformed key is an encrypted version of at least one round key that is encrypted by the processor using the at least one real key. The processor is able to decrypt the at least one transformed key and encrypt the at least one round key.

## Claims

### Claim 1

A computer-implemented method, comprising:
retrieving at least one real key from a secure area;
executing, with a processor, an assist key generation instruction that assists in at least one round key generation based on retrieving the at least one real key; and
executing, with the processor, a key transform instruction to generate at least one transformed key in response to generation of the at least one round key.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
storing the at least one transformed key in memory during multiple phases of an early platform boot of a platform.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, further comprising:
decrypting the at least one transformed key with the processor that is associated with the platform; and
erasing the at least one round key from system memory.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, wherein the at least one transformed key is an encrypted version of the at least one round key that is encrypted by the processor using the at least one real key, wherein the at least one real key comprises a session key that is randomly derived at power initialization, wherein only the processor is able to decrypt the at least one transformed key and encrypt the at least one round key.

### Claim 5 (depends on 2)

The computer-implemented method of claim 2, wherein the at least one transformed key is an encrypted version of the at least one round key that is encrypted by the processor using the at least one real key, wherein the at least one real key comprises a unique key for the processor that is derived and persisted internally through a derived key that is based on fusing.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the at least one transformed key comprises a plurality of transformed round keys.

### Claim 7 (depends on 2)

The computer-implemented method of claim 2, wherein retrieving real keys from a secure area comprises unsealing real keys from a trusted platform module (TPM).

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, wherein the TPM interacts with the early platform boot to generate the transformed keys when the processor has executed limited software code to reduce the trusted code base and area of attack.

### Claim 9

A machine-accessible medium including data that, when accessed by a machine, cause the machine to perform operations comprising:
retrieving at least one real key from a secure area;
executing, with a processor, an assist key generation instruction that assists in at least one round key generation based on retrieving the at least one real key; and
executing, with the processor, a key transform instruction to generate at least one transformed key in response to generation of the at least one round key.

### Claim 10 (depends on 9)

The machine-accessible medium of claim 9, further comprising:
storing the at least one transformed key in memory during multiple phases of an early platform boot of a platform;
decrypting the at least one transformed key with the processor that is associated with the platform; and
erasing the at least one round key from system memory.

### Claim 11 (depends on 10)

The machine-accessible medium of claim 10, wherein the at least one transformed key is an encrypted version of the at least one round key that is encrypted by the processor using the at least one real key, wherein the at least one real key comprises a session key that is randomly derived at power initialization, wherein only the processor is able to decrypt the at least one transformed key and encrypt the at least one round key.

### Claim 12

A system, comprising:
a processor having access to at least one real key; and
memory coupled to the processor, the memory to store at least one transformed key, the processor is configured to execute a key transform instruction to generate at least one transformed key based on the at least one real key.

### Claim 13 (depends on 12)

The system of claim 12, wherein the memory comprises a cache to store a mapping to map transformed keys to corresponding round keys that are based on the at least one real key.

### Claim 14 (depends on 13)

The system of claim 13, wherein the processor is further configured to decrypt the transformed keys if a cache miss occurs.

### Claim 15 (depends on 12)

The system of claim 12, wherein the memory has limited storage for the transformed keys and the processor executes instructions to specify an index for selecting a transformed key.

### Claim 16 (depends on 12)

The system of claim 12, wherein the memory comprises a table or other structure to store a mapping to map transformed keys to corresponding real keys.

### Claim 17 (depends on 12)

The system of claim 12, wherein the processor is configured to receive a single key and automatically generate a plurality of round keys to be stored and accessed by the processor, wherein the processor is configured to execute the key transform instruction to generate at least one transformed key in response to generating at least one round key.

### Claim 18

A processor, comprising:
a processing unit to retrieve at least one real key from a secure area and to generate at least one round key based on the at least one real key; and
cache coupled to the processing unit, the processing unit is configured to execute a key transform instruction to generate at least one transformed key based on the at least one round key, wherein the cache to store the at least one round key and the at least one transformed key.

### Claim 19 (depends on 18)

The processor of claim 18, wherein the at least one transformed key is an encrypted version of the at least one round key that is encrypted by the processor unit using a session key that is randomly derived at power initialization, wherein only the processing unit is able to decrypt the at least one transformed key and encrypt the at least one round key.

### Claim 20 (depends on 18)

The processor of claim 18, wherein the at least one transformed key is an encrypted version of the at least one round key that is encrypted by the processor unit using a unique key for the processing unit that is derived and persisted internally through a derived key that is based on fusing.
