# US 2019/0319781 A1 · Deterministic Encryption Key Rotation

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

- Number: US 2019/0319781 A1
- Document ID: US20190319781A1
- Status: Published application
- Kind: A1
- Application number: 16/454,321
- Filed: 2019-06-27
- Published: 2019-10-17
- Earliest claimed: 2019-06-27
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Siddhartha Chhabra; David M. Durham
- Web page: https://patentgrep.com/patent/US20190319781A1

## CPC

- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- G06F 3/062: {Securing storage systems}
- G06F 3/0655: {Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices}
- G06F 3/0673: {Single storage device}
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/78: to assure secure storage of data (address-based protection against unauthorised use of memory G06F12/14; record carriers for use with machines and with at least a part designed to carry digital markings G06K19/00)
- H04L 9/0891: {Revocation or update of secret information, e.g. encryption key update or rekeying}
- H04L 9/0894: {Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage}
- H04L 9/14: using a plurality of keys or algorithms
- H04L 9/3242: {involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC}
- 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

There is disclosed in one example a microprocessor, including: an execution unit; a memory integrity engine (MIE) including a key rotation engine to rotate encryption keys for a secure memory region; and a memory hash register (MHR) to maintain a hash of a secure memory region state.

## Claims

### Claim 1

A microprocessor, comprising:
an execution unit;
a memory integrity engine (MIE) comprising a key rotation engine to rotate encryption keys for a secure memory region;
a memory hash register (MHR) to maintain a hash of a secure memory region state; and
logic to maintain the MHR according to a present state of the key rotation engine.

### Claim 2 (depends on 1)

The processor of claim 1, further comprising a message authentication code (MAC) data structure for encryption keys, wherein the key rotation engine is to read a MAC with an old key and re-encrypt the MAC with a new key.

### Claim 3 (depends on 1)

The processor of claim 1, wherein the MIE is to iterate over the encryption keys periodically.

### Claim 4 (depends on 1)

The processor of claim 1, wherein the MIE is to update the MHR periodically.

### Claim 5 (depends on 1)

The processor of claim 1, wherein the MIE is to update the MHR after each rotation of an encryption key.

### Claim 6 (depends on 5)

The processor of claim 5, wherein a next value of the running hash is a function of a previous value of the running hash and an encryption key being updated.

### Claim 7 (depends on 6)

The processor of claim 6, wherein the function is an exclusive-OR (XOR).

### Claim 8 (depends on 6)

The processor of claim 6, wherein the function is a Galois field multiplication function (GFMUL).

### Claim 9 (depends on 1)

The processor of claim 1, wherein the MIE is to store a per-cycle MHR value.

### Claim 10 (depends on 9)

The processor of claim 9, wherein the per-cycle MHR value is stored on-die.

### Claim 11 (depends on 9)

The processor of claim 9, wherein the MIE is to compare the per-cycle MHR value to a running MHR value at the end of a key rotation cycle.

### Claim 12 (depends on 11)

The processor of claim 11, wherein the MIE is to raise a security exception in the case of a mismatch between the per-cycle MHR value and the running MHR value.

### Claim 13

A computing system, comprising:
a memory;
a trusted execution environment operable to secure a region of the memory;
a memory integrity engine with deterministic rotation (MIE-DR) to encrypt the secure region of the memory, the MIE-DR comprising a key rotation engine to rotate message authentication code (MAC) keys within a MAC table for the secure region, and a memory hash register (MHR) to maintain a current hash of the MAC table.

### Claim 14 (depends on 13)

The computing system of claim 13, further comprising a basic input-output system (BIOS), comprising instructions to initialize the MAC table.

### Claim 15 (depends on 14)

The computing system of claim 14, wherein the BIOS further comprises instructions to initialize the MHR.

### Claim 16 (depends on 13)

The computing system of claim 13, further comprising an error correction code (ECC) memory for correcting memory errors.

### Claim 17 (depends on 13)

The computing system of claim 13, wherein the MIE-DR is to store the MAC table in the ECC memory.

### Claim 18 (depends on 13)

The computing system of claim 13, wherein the MIE-DR is to combine the MAC table with the ECC memory.

### Claim 19

A method of providing deterministic key rotation for an encrypted computer memory, comprising:
initializing an encrypted message authentication code (MAC) table, the encrypted MAC table comprising MAC values for accessing an encrypted memory, the MAC values encrypted with an encryption key each;
initializing a memory hash register (MHR) with a hash of the MAC table;
periodically sequentially obsoleting and refreshing MAC values in the MAC tables; and
after an update to the MAC table, recalculating the hash of the MHR.

### Claim 20 (depends on 19)

The method of claim 19, wherein periodically sequentially obsoleting and refreshing MAC values in the MAC tables comprises reading a MAC with an old encryption key and re-encrypting the MAC with a new encryption key.
