IP Library Granted Patent US 11,295,025
Granted Patent B2
US 11,295,025 · App. 16/427,977 · Granted Apr 5, 2022

Probabilistic memory safety using cryptography

Inventors: Marcel Medwed (Graz, AT); Jan Hoogerbrugge (Helmond, NL); Ventzislav Nikov (Haasrode, BE); Asier Goikoetxea Yanci (Glasgow, GB)
Assignee: NXP B.V
G06F21/602G06F17/18G06F21/6218
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 11,295,025
App. No.
16/427,977
Granted
Apr 5, 2022
Kind
B2
Abstract

A chip for securing storage of information includes a manager to access a pointer and a cipher engine to decrypt stored data. The pointer includes a first area and a second area. The first area includes an address indicating a storage location of the data and the second area includes a safety tag. The cipher engine decrypts the data output from the storage location based on a key and the safety tag in the second area of the pointer. These and other operations may be performed based on metadata that indicate probabilities that a correct safety tag was used to decrypt the data. In another embodiment, the manager may be replaced with an L1 cache.

Claims (51)

1. A chip for securing storage of information, comprising:

a manager configured to access a first pointer;

a first cipher engine configured to decrypt stored data; and

a cache including a storage area and a first slot, wherein the storage area is to store metadata, and the first slot is to store the decrypted data, wherein the cache is configured to output the decrypted data from the first slot based on a first set of values of the metadata, the decrypted data output from the first slot based on a read request,

wherein the first pointer includes a first area and a second area,

wherein the first area includes an address indicating a storage location of the data and the second area includes a safety tag,

wherein the first cipher engine is configured to decrypt the data output from the storage location based on a key and the safety tag in the second area of the first pointer, and

wherein including the safety tag with the first pointer improves storage security without requiring space in the cache or another memory.

2. The chip of claim 1 , wherein the first pointer has a size corresponding to an N-bit architecture, a size of the first area is M bits, and a size of the second area is X bits, where X+M≤N.

3. The chip of claim 1 , wherein the first cipher engine is configured to encrypt the data for storage at the storage location in response to a write request, and the data is encrypted based on the key and the safety tag.

4. The chip of claim 1 , wherein the cache is configured to change the metadata stored in the storage area when the decrypted data is output from the first slot based on the read request.

5. The chip of claim 1 , further comprising:

a second cipher engine,

wherein the cache includes a second slot to store the data in encrypted form,

wherein the cache is configured to output the data in encrypted form from the second slot to the second cipher engine based on a second set of values of the metadata, and

wherein the second cipher engine is configured to decrypt the data from the second slot based on the key and the safety tag and output the decrypted data in response to a read request.

6. The chip of claim 5 , wherein the cache is configured to change the metadata stored in the storage area when the second cipher engine decrypts the data.

7. The chip of claim 5 , wherein at least one value of the second set of values of the metadata indicates a probability that the first cipher engine used a wrong or corrupted safety tag to decrypt the data.

8. The chip of claim 1 , further comprising:

a second cipher engine,

wherein the cache is configured to output the decrypted data from the first slot to the first cipher engine based on the metadata, the first cipher engine configured to encrypt the data a second time based on the key and the safety tag, and

wherein the second cipher engine is configured to decrypt the data encrypted for the second time and output the data in response to a read request.

9. The chip of claim 1 , further comprising:

a cache configured to store a plurality of pointers including the first pointer,

wherein the cache is coupled to or included within the manager and the pointers indicate storage locations for a respectively plurality of data, and

wherein the pointers include different safety tags used to encrypt respective ones of the plurality of data.

10. The chip of claim 1 , wherein the first cipher engine is configured to encrypt the data for storage in the storage location.

11. A method for securing storage of information, comprising:

accessing a pointer;

decrypting stored data based on the pointer; and

outputting the decrypted data in response to a read request

storing the decrypted data in a first slot of a cache;

storing metadata in a storage area corresponding to the first slot; and

outputting the decrypted data from the first slot based on a first set of values of the metadata,

wherein the first pointer includes a first area and a second area,

wherein the first area includes an address indicating a storage location of the data and the second area includes a safety tag,

wherein decrypting the stored data includes decrypting the data based on a key and the safety tag included in the second area of the first pointer, and

wherein including the safety tag with the first pointer improves storage security without requiring space in the cache or another memory.

12. The method of claim 11 , wherein the first pointer has a size corresponding to an N-bit architecture and wherein a size of the first area is M bits and a size of the second area is X bits, where X+M≤N.

13. The method of claim 11 , further comprising:

encrypting the data for storage at the storage location based on a write request, the data encrypted based on the key and the safety tag.

14. The method of claim 11 , further comprising:

storing the data corresponding to the first pointer in a second slot of the cache, the data stored in the second slot stored in encrypted form, and

decrypting the data stored in the second slot in encrypted form based on a second set of values of the metadata, the data stored in the second slot decrypted based on the key and the safety tag corresponding to the first pointer.

15. The method of claim 14 , further comprising:

changing the metadata stored in the storage area when encrypted data stored in the second slot is decrypted.

16. The method of claim 14 , wherein each of the first set of values of the metadata and the second set of values of the metadata includes at least one value.

17. The method of claim 11 , further comprising:

encrypting the decrypted data stored in the first slot based on the metadata, the decrypted data encrypted a second time based on the key and the safety tag.

18. The method of claim 11 , further comprising:

encrypting the data for storage in the storage location.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2019
From: MEDWED, MARCEL; HOOGERBRUGGE, JAN; NIKOV, VENTZISLAV; GOIKOETXEA YANCI, ASIER
To: NXP B.V.
Reel/Frame 049331/0272 →
Continuity (1)
Related Publication 20200380140A1 · Dec 3, 2020
Cited By (2)
US 12,399,834 US 12,556,372