IP Library Granted Patent US 9,792,229
Granted Patent B2
US 9,792,229 · App. 14/669,226 · Granted Oct 17, 2017

Protecting a memory

Inventors: Eugene M. Kishinevsky (Hillsboro, OR); Siddhartha Chhabra (Hillsboro, OR); Men Long (Beaverton, OR); Jungju Oh (San Jose, CA); David M. Durham (Beaverton, OR)
Assignee: Intel Corporation
G06F12/1408G06F21/00G06F2212/1052
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 9,792,229
App. No.
14/669,226
Granted
Oct 17, 2017
Kind
B2
Abstract

In an embodiment, a processor includes: at least one core to execute instructions; and a memory protection logic to encrypt data to be stored to a memory coupled to the processor, generate a message authentication code (MAC) based on the encrypted data, the MAC to have a first value according to a first key, obtain the encrypted data from the memory and validate the encrypted data using the MAC, where the MAC is to be re-keyed to have a second value according to a second key and without the encrypted data. Other embodiments are described and claimed.

Claims (30)

1. At least one non-transitory computer readable medium comprising instructions that when executed cause a system to:

responsive to a read request from a hardware core of a processor, obtain, in a memory protection logic of the processor, encrypted data from a memory and decrypt the encrypted data according to a data dependent decryption mode to obtain decrypted data;

generate a validation integrity value based on the encrypted data;

decrypt an encrypted integrity value with a first key, the encrypted integrity value associated with the encrypted data;

provide the decrypted data to the hardware core of the processor based on a comparison of the decrypted integrity value and the validation integrity value if the decrypted integrity value matches the validation integrity value, and if the decrypted integrity value does not match the validation integrity value, report an integrity violation and not provide the decrypted data to the hardware core of the processor;

obtain the encrypted integrity value from the memory and again decrypt the encrypted integrity value with the first key;

encrypt the decrypted integrity value with a second key to obtain a second encrypted integrity value, wherein the decryption again of the encrypted integrity value and the encryption of the integrity value with the second key are performed during a re-keying operation; and

according to a re-keying schedule, re-key a plurality of integrity values each associated whit a data segment stored in the memory;

arbitrate between a memory request and the re-keying operation for the integrity value; and

select the re-keying operation for the integrity value when a first priority associated with the re-keying operation is greater than a second priority associated with the memory request.

2. The at least one non-transitory computer readable medium of claim 1 , further comprising instructions that when executed cause the system to obtain the encrypted integrity value from a cache memory of the processor.

3. The at least one non-transitory computer readable medium of claim 1 , further comprising instructions that when executed cause the system to maintain a pointer to a next integrity value of the plurality of integrity values to be re-keyed.

4. The at least one non-transitory computer readable medium of claim 1 , further comprising instructions that when executed cause the system to re-key at least some of the plurality of integrity values when the memory protection logic is idle.

5. The at least one non-transitory computer readable medium of claim 1 , further comprising instructions that when executed cause the system to provide the decrypted data to the hardware core of the processor before comparison of the decrypted integrity value and the validation integrity value, and if the comparison results in a mismatch, raise a fault to prevent the decrypted data from being committed to a state of the processor.

6. The at least one non-transitory computer readable medium of claim 1 , further comprising instructions that when executed cause the system to:

responsive to a write request, receive in the memory protection logic, unencrypted data from the hardware core of the processor;

encrypt the unencrypted data according to a data dependent encryption mode to generate the encrypted data; and

send the encrypted data to the memory.

7. The at least one non-transitory computer readable medium of claim 6 , further comprising instructions that when executed cause the system to:

generate an integrity value based on the encrypted data;

encrypt the integrity value with the first key to obtain the encrypted integrity value; and

send the encrypted integrity value to the memory, the encrypted integrity value to be stored in the memory in association with the encrypted data.

8. A processor comprising:

at least one core to execute instructions; and

a memory protection logic comprising hardware circuitry to encrypt data to be stored to a memory coupled to the processor, generate a message authentication code (MAC) based on the encrypted data, the MAC to have a first value according to a first key, obtain the encrypted data from the memory and validate the encrypted data using the MAC, wherein the MAC is re-keyed to have a second value according to a second key and without the encrypted data, wherein the memory protection logic is configured to re-key a region of MACs stored in a storage according to a pointer, wherein first MACs of the region of MACs stored in the storage at a location below the pointer are keyed with the second key and second MACs of the region stored in the storage at a location above the pointer are keyed with the first key.

9. The processor of claim 8 , wherein the memory protection logic is configured to encrypt all data to be sent to the memory.

10. The processor of claim 8 , wherein the memory protection logic is configured to enforce confidentiality, integrity and rollback protection.

11. The processor of claim 8 , wherein the processor further comprises a cache memory to store a plurality of MACs, each of the plurality of MACs associated with a portion of data to be stored to the memory.

12. The processor of claim 11 , wherein the processor further comprises a key storage to store the first key and the second key.

13. The processor of claim 8 , wherein the memory protection logic is configured to obtain the MAC from the memory for the re-keying; while the encrypted data is to remain in the memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2015
From: KISHINEVSKY, EUGENE M.; CHHABRA, SIDDHARTHA; LONG, MEN; OH, JUNGJU; DURHAM, DAVID M.
To: INTEL CORPORATION
Reel/Frame 035357/0790 →
Continuity (1)
Related Publication 20160285892A1 · Sep 29, 2016