IP Library › Granted Patent US 9,607,177
Granted Patent B2
US 9,607,177 · App. 14/042,675 · Granted Mar 28, 2017

Method for securing content in dynamically allocated memory using different domain-specific keys

Inventors: Ravindra R. Jejurikar (San Diego, CA); Ivan McLean (San Diego, CA)
Assignee: QUALCOMM Incorporated
G06F21/78G06F12/14H04L9/08
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,607,177
App. No.
14/042,675
Granted
Mar 28, 2017
Kind
B2
Abstract

A method operational within a memory controller is provided for securing content stored in memory. The memory controller may allocate logical memory regions within a memory device to different domains. A different domain-specific key is obtained for each of the different domains, where each domain-specific key is a function of at least a master key and domain-specific information. During write operations, content/data is encrypted, at the memory controller, as it is written into each logical memory region using a domain-specific key corresponding to a domain providing the content and to which the logical memory region is allocated. Similarly, during read operations, content/data is decrypted, at the memory controller, as it is read from each memory region using a domain-specific key corresponding to a domain requesting the content and to which the logical memory region, where the content is stored, is allocated.

Claims (57)

1. A method operational within a memory controller for securing content comprising:

allocating, at the memory controller, logical memory regions within a memory device to different domains, the memory device being external to the memory controller;

defining, at the memory controller, access permissions within access control settings for one or more masters within a domain, the access permissions specifying at least one of read and/or write access for the one or more masters within the domain;

obtaining, at the memory controller, a different domain-specific key for each of the different domains, where each domain-specific key is a function of at least a master key and domain-specific information, the domain-specific information including the access permissions that specify at least one of read and/or write access for the one or more masters within the domain;

storing the domain-specific keys at a secure memory space that is separate from and independent of the memory device;

updating a domain-specific key stored at the secure memory space when a change to access control settings for one or more masters within a domain is detected; and

encrypting content, at the memory controller, written into each logical memory region using a domain-specific key corresponding to a domain to which each logical memory region is allocated.

2. The method of claim 1 , further comprising:

decrypting, at the memory controller, content read from each logical memory region using a domain-specific key corresponding to a domain to which each logical memory region, where the content is stored, is allocated.

3. The method of claim 1 , further comprising:

restricting access to a first logical memory region to all masters associated with a first domain to which the first memory region is allocated.

4. The method of claim 1 , wherein the domain-specific keys are generated or selected from a pre-generated set of keys.

5. The method of claim 1 , further comprising:

generating the domain-specific keys at the memory controller or a secured processor.

6. The method of claim 1 , wherein a first memory page within a first memory region is associated with a first domain-specific key and allocated to a first domain and a second page within the first memory region is associated with a second domain-specific key and allocated to a second domain.

7. The method of claim 1 , further comprising:

dynamically reallocating a first logical memory region from a first domain to a second domain, where the first domain and second domain are associated with different domain-specific keys.

8. The method of claim 7 , wherein the reallocation of the first logical memory region from the first domain to the second domain is done without clearing content from the first logical memory region.

9. The method of claim 1 , wherein the domain-specific keys are automatically changed upon reset of the memory controller.

10. The method of claim 1 , wherein a first domain-specific key is associated with a first logical memory region and allocated to a first domain and a second domain, the first domain-specific key is a function of at least a master key, first domain-specific information from the first domain, and second domain-specific information from the second domain.

11. A memory controller, comprising:

a memory allocation circuit configured to allocate logical memory regions within a memory device to different domains, the memory device being external to the memory controller;

an access control circuit configured to define access permissions within access control settings for one or more masters within a domain, the access permissions specifying at least one of read and/or write access for the one or more masters within the domain;

a domain-specific key generator circuit configured to obtain a different domain-specific key for each of the different domains, where each domain-specific key is a function of at least a master key and domain-specific information, the domain-specific information including the access permissions that specify at least one or read and/or write access for the one or more masters within the domain, and the domain-specific key generator circuit is further configured to store the domain-specific keys at a secure memory space that is separate from and independent of the memory device, and update a domain-specific key stored at the secure memory space when a change to access control settings for one or more masters within a domain is detected; and

a content encryption circuit configured to encrypt content written into each logical memory region using a domain-specific key corresponding to a domain to which each logical memory region is allocated.

12. The memory controller of claim 11 , further comprising:

a content decryption circuit configured to decrypt content read from each memory region using a domain-specific key corresponding to a master requesting the content and to a domain to which each logical memory region, where the content is stored, is allocated.

13. The memory controller of claim 11 , wherein the access control circuit is further configured to restrict access to a first logical memory region to only a first master associated with a first domain to which the first memory region is allocated.

14. The memory controller of claim 11 , wherein the domain-specific keys are dynamically generated or selected from a pre-generated set of keys.

15. The memory controller of claim 11 , wherein the domain-specific key generator circuit is further configured to store the domain-specific keys in registers only accessible to the memory controller.

16. The memory controller of claim 11 , wherein the domain-specific circuit is configured to generate the domain-specific keys at the memory controller or obtain the domain-specific keys from a secured processor.

17. The memory controller of claim 11 , wherein a first memory page within a first memory region is associated with a first domain-specific key and allocated to a first domain and a second page within the first memory region is associated with a second domain-specific key and allocated to a second domain.

18. The memory controller of claim 11 , wherein the memory allocation circuit is further configured to dynamically reallocate a first logical memory region from a first domain to a second domain, where the first domain and second domain are associated with different domain-specific keys.

19. The memory controller of claim 18 , wherein the reallocation of the first logical memory region from the first domain to the second domain is done without clearing content from the first logical memory region.

20. The memory controller of claim 11 , wherein the domain-specific keys are automatically changed upon reset of the memory controller.

21. The memory controller of claim 11 , wherein a first domain-specific key is associated with a first logical memory region and allocated to a first domain and a second domain, the first domain-specific key is a function of at least a master key, first domain-specific information from the first domain, and second domain-specific information from the second domain.

22. A memory controller, comprising:

means for allocating logical memory regions within a memory device to different domains, the memory device being external to the memory controller;

means for defining access permissions within access control settings for one or more masters within a domain, the access permissions specifying at least one of read and/or write access for the one or more masters within the domain;

means for obtaining a different domain-specific key for each of the different domains, where each domain-specific key is a function of at least a master key and domain-specific information, the domain-specific information including the access permissions that specify at least one of read and/or write access for the one or more masters within the domain;

means for storing the domain-specific keys at a secure memory space that is separate from and independent of the memory device;

means for updating a domain-specific key stored at the secure memory space when a change to access control settings for one or more masters within a domain is detected; and

means for encrypting content written into each logical memory region using a domain-specific key corresponding to a domain to which each logical memory region is allocated.

23. The memory controller of claim 22 , further comprising:

means for decrypting content read from each memory region using a domain-specific key corresponding to a domain to which each logical memory region, where the content is stored, is allocated.

24. A non-transitory machine-readable storage medium having instructions stored thereon which when executed by at least one processor within a memory controller causes the at least one processor to:

allocate logical memory regions within a memory device to different domains, the memory device being external to the memory controller;

define access permissions within access control settings for one or more masters within a domain, the access permissions specifying at least one of read and/or write access for the one or more masters within the domain;

obtain a different domain-specific key for each of the different domains, where each domain-specific key is a function of at least a master key and domain-specific information, the domain-specific information including the access permissions that specify at least one of read and/or write access for the one or more masters within the domain;

store the domain-specific keys at a secure memory space that is separate from and independent of the memory device;

update a domain-specific key stored at the secure memory space when a change to access control settings for one or more masters within a domain is detected; and

encrypt content written into each logical memory region using a domain-specific key corresponding to a domain to which each logical memory region is allocated.

25. The method of claim 1 , wherein the secure memory space is located within an integrated circuit that includes the memory controller.

26. The method of claim 1 , wherein the secure memory space is inaccessible to a user controlled application.

27. The memory controller of claim 11 , wherein the secure memory space is located within an integrated circuit that includes the memory controller.

28. The memory controller of claim 22 , wherein the secure memory space is located within an integrated circuit that includes the memory controller.

29. The non-transitory machine-readable storage medium of claim 24 , wherein the secure memory space is located within an integrated circuit that includes the memory controller.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2013
From: JEJURIKAR, RAVINDRA R.; MCLEAN, IVAN
To: QUALCOMM INCORPORATED
Reel/Frame 031514/0272 →
Continuity (1)
Related Publication 20150095662A1 · Apr 2, 2015