IP Library › Granted Patent US 9,092,644
Granted Patent B2
US 9,092,644 · App. 13/976,935 · Granted Jul 28, 2015

Method and system for protecting memory information in a platform

Inventors: Alpa T. Narendra Trivedi (Hillsboro, OR); David M. Durham (Beaverton, OR); Men Long (Beaverton, OR); Siddhartha Chhabra (Hillsboro, OR); Uday R. Savagaonkar (Portland, OR); Carlos V. Rozas (Portland, OR)
Assignee: Intel Corporation
G06F21/64G06F12/1408G06F21/78G06F21/79H04L9/0643H04L2209/12
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,092,644
App. No.
13/976,935
Granted
Jul 28, 2015
Kind
B2
Abstract

A method and system to provide an effective, scalable and yet low-cost solution for Confidentiality, Integrity and Replay protection for sensitive information stored in a memory and prevent an attacker from observing and/or modifying the state of the system. In one embodiment of the invention, the system has strong hardware protection for its memory contents via XTS-tweak mode of encryption where the tweak is derived based on “Global and Local Counters”. This scheme offers to enable die-area efficient Replay protection for any sized memory by allowing multiple counter levels and facilitates using small counter-sizes to derive the “tweak” used in the XTS encryption without sacrificing cryptographic strength.

Claims (100)

1. A processor comprising:

a global counter;

a multilevel counter tree comprising a plurality of local counters, wherein a last level of the multilevel counter tree is associated with a plurality of Message Authentication Code (MAC) lines; and

logic to perform a write operation to a memory address, wherein the logic is to decrypt one of the MAC lines associated with the memory address using a tweak based on one or more of the memory address, the global counter, a local counter associated with the one MAC line, and a counter indication bit to obtain a MAC value.

2. The processor of claim 1 , wherein the logic to perform the write operation to the memory address is further to:

determine whether an address of the local counter associated with the one MAC line is greater than a counter index;

assert the counter indication bit in response to a determination that the address of the local counter associated with the one MAC line is lesser than the counter index; and

de-assert the counter indication bit in response to a determination that the address of the local counter associated with the one MAC line is greater than the counter index.

3. The processor of claim 2 , wherein the logic to perform the write operation to the memory address is further to:

write data to the memory address; and

update the one MAC line associated with the memory address with the MAC value.

4. The processor of claim 3 , wherein the logic to perform the write operation to the memory address is further to:

determine whether an update interval has been reached;

if so,

reset one of the plurality of local counters associated with the current counter; and

increment the counter index by one; and

if not so,

increment the local counter associated with the one MAC line by one.

5. The processor of claim 4 , wherein the logic to perform the write operation to the memory address is further to:

determine another tweak based on one or more of the memory address, the global counter, the local counter associated with the one MAC line, and the counter indication bit; and

encrypt the one MAC line associated with the memory address using the other tweak.

6. The processor of claim 1 , wherein the logic is further to:

determine whether a counter index is set to its maximum value; and

in response to a determination that the counter index is set to its maximum value, increment the global counter by one; and

set the counter index to zero.

7. The processor of claim 1 , wherein the logic is further to perform a read operation to the memory address, wherein the logic is to decrypt the one MAC line associated with the memory address using the tweak to obtain the MAC value.

8. The processor of claim 7 , wherein the logic to perform the read operation to the memory address is further to:

determine whether an address of the local counter associated with the one MAC line is greater than a counter index;

assert the counter indication bit in response to a determination that the address of the local counter associated with the one MAC line is lesser than the counter index; and

de-assert the counter indication bit in response to a determination that the address of the local counter associated with the one MAC line is greater than the counter index.

9. The processor of claim 8 , wherein the logic to perform the read operation to the memory address is further to:

authenticate a data line associated with the memory address using the MAC value; and

read contents of the data line in response to a successful authentication of the data line associated with the memory address using the MAC value.

10. A system comprising:

a memory; and

a processor coupled with the memory, the processing comprising:

a global counter;

a multilevel counter tree comprising a plurality of local counters, wherein a last level of the multilevel counter tree is associated with a plurality of Message Authentication Code (MAC) lines; and

logic to perform a write operation to a memory address, wherein the logic is to decrypt one of the MAC lines associated with the memory address using a tweak based on one or more of the memory address, the global counter, the local counter associated with the one MAC line, and a counter indication bit to obtain a MAC value.

11. The system of claim 10 , wherein the logic to perform the write operation to the memory address is further to:

determine whether an address of the local counter associated with the one MAC line is greater than a counter index;

assert the counter indication bit in response to a determination that the address of the local counter associated with the one MAC line is lesser than the counter index; and

de-assert the counter indication bit in response to a determination that the address of the local counter associated with the one MAC line is greater than the counter index.

12. The system of claim 11 , wherein the logic to perform the write operation to the memory address is further to:

write data to the memory address; and

update the one MAC line associated with the memory address with the MAC value.

13. The system of claim 12 , wherein the logic to perform the write operation to the memory address is further to:

determine whether an update interval has been reached;

if so,

reset one of the plurality of local counters associated with the current counter; and

increment the counter index by one; and

if not so,

increment the local counter associated with the one MAC line by one.

14. The system of claim 13 , wherein the logic to perform the write operation to the memory address is further to:

determine another tweak based on one or more of the memory address, the global counter, the local counter associated with the one MAC line, and the counter indication bit; and

encrypt the one MAC line associated with the memory address using the other tweak.

15. The system of claim 10 , wherein the logic is further to:

determine whether a counter index is set to its maximum value; and

in response to a determination that the counter index is set to its maximum value, increment the global counter by one; and

set the counter index to zero.

16. The system of claim 10 , wherein the logic is further to perform a read operation to the memory address, wherein the logic is to decrypt the one MAC line associated with the memory address using the tweak to obtain the MAC value.

17. The system of claim 16 , wherein the logic to perform the read operation to the memory address is further to:

determine whether an address of the local counter associated with the one MAC line is greater than a counter index;

assert the counter indication bit in response to a determination that the address of the local counter associated with the one MAC line is lesser than the counter index; and

de-assert the counter indication bit in response to a determination that the address of the local counter associated with the one MAC line is greater than the counter index.

18. The system of claim 16 , wherein the logic to perform the read operation to the memory address is further to:

authenticate a data line associated with the memory address using the MAC value; and

read contents of the data line in response to a successful authentication of the data line associated with the memory address using the MAC value.

19. A method comprising:

performing a write operation to a memory address, wherein performing the write operation comprises decrypting one of a plurality of the Message Authentication Code (MAC) lines associated with the memory address using a tweak based on one or more of the memory address, a global counter, a local counter associated with the one MAC line, and a counter indication bit to obtain a MAC value, wherein the one of the plurality of MAC lines is associated with a last level of a multilevel counter tree.

20. The method of claim 19 , wherein performing the write operation comprises:

determining whether an address of the local counter associated with the one MAC line is greater than a counter index;

asserting the counter indication bit in response to a determination that the address of the local counter associated with the one MAC line is lesser than the counter index; and

de-asserting the counter indication bit in response to a determination that the address of the local counter associated with the one MAC line is greater than the counter index.

21. The method of claim 20 , wherein performing the write operation comprises:

writing data to the memory address; and

updating the one MAC line associated with the memory address with the MAC value.

22. The method of claim 21 , wherein performing the write operation comprises:

determining whether an update interval has been reached;

if so,

resetting one of the plurality of local counters associated with the current counter; and

incrementing the counter index by one; and

if not so,

incrementing the local counter associated with the one MAC line by one.

23. The method of claim 19 , wherein performing the write operation comprises:

determining another tweak based on one or more of the memory address, the global counter, the local counter associated with the one MAC line, and the counter indication bit; and

encrypting the one MAC line associated with the memory address using the other tweak.

24. The method of claim 19 , wherein performing the write operation comprises:

determining whether a counter index is set to its maximum value; and

in response to a determination that the counter index is set to its maximum value, incrementing the global counter by one; and

setting the counter index to zero.

25. The method of claim 19 , further comprising:

performing a read operation to the memory address, wherein performing the read operation comprises decrypting the one MAC line associated with the memory address using the tweak to obtain the MAC value.

26. The method of claim 25 , wherein performing the read operation further comprises:

determining whether an address of the local counter associated with the one MAC line is greater than a counter index;

asserting the counter indication bit in response to a determination that the address of the local counter associated with the one MAC line is lesser than the counter index; and

de-asserting the counter indication bit in response to a determination that the address of the local counter associated with the one MAC line is greater than the counter index.

27. The method of claim 26 , wherein performing the read operation further comprises:

authenticating a data line associated with the memory address using the MAC value; and

reading contents of the data line in response to a successful authentication of the data line associated with the memory address using the MAC value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2013
From: NARENDRA TRIVEDI, ALPA T.; DURHAM, DAVID M.; LONG, MEN; CHHABRA, SIDDHARTHA; SAVAGAONKAR, UDAY R.; ROZAS, CARLOS V.
To: INTEL CORPORATION
Reel/Frame 031000/0507 →
Continuity (1)
Related Publication 20140208109A1 · Jul 24, 2014