IP Library Granted Patent US 12,153,526
Granted Patent B2
US 12,153,526 · App. 17/832,998 · Granted Nov 26, 2024

Re-duplication of de-duplicated encrypted memory

Inventors: Henri Han Van Riel (Westford, MA); Michael Tsirkin (Yokneam Illit, IL)
Assignee: Red Hat, Inc.
G06F12/1408G06F2212/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 12,153,526
App. No.
17/832,998
Granted
Nov 26, 2024
Kind
B2
Abstract

Technology for performing data duplication on data that was previously consolidated (e.g., deduplicated or merged). An example method may involve receiving a request to modify a memory page; causing the data at a first storage location to be decrypted using location dependent cryptographic input and then encrypted using a location independent cryptographic input; copying the encrypted data of the memory page from the first storage location to a second storage location; causing the encrypted data at the first and second storage locations to be decrypted using location independent cryptographic input and to each be encrypted using a different location dependent cryptographic input; updating, by the supervisor, one of the references of the plurality of memory pages from pointing to the first storage location in the physical memory to pointing to the second storage location; and modifying the memory page by altering data in the physical memory.

Claims (43)

1. A method comprising:

receiving, by a processing device, a request to modify a memory page of a plurality of memory pages, wherein the plurality of memory pages are duplicate memory pages that each comprise a reference to a first storage location in physical memory and wherein the first storage location comprises data encrypted using a location dependent cryptographic input;

causing, by a supervisor executed by the processing device, the data at the first storage location to be decrypted using the location dependent cryptographic input and then encrypted using a location independent cryptographic input to produce encrypted data, wherein the supervisor is a portion of an operating system that comprises a container runtime and a container;

copying, by the supervisor, the encrypted data of the memory page that is encrypted using the location independent cryptographic input from the first storage location to a second storage location, wherein the first storage location and the second storage location are different storage locations, wherein the encrypted data at the first storage location and the encrypted data at the second storage location are accessible to the container in an unencrypted form without being accessible to the supervisor or the container runtime in the unencrypted form;

causing, by the supervisor, the encrypted data at the first storage location and the encrypted data at the second storage location to be decrypted using the location independent cryptographic input and to each be encrypted using a different location dependent cryptographic input;

updating, by the supervisor, one of the references of the plurality of memory pages from pointing to the first storage location in the physical memory to pointing to the second storage location; and

modifying the memory page by altering data at the first storage location or the second storage location.

2. The method of claim 1 , wherein the encrypted data at the first storage location comprises non-modifiable data and the encrypted data at the second storage location comprises modifiable data.

3. The method of claim 1 , wherein the location independent cryptographic input and the location dependent cryptographic input are accessible to a hardware device performing a cryptographic function and are concealed from the supervisor that is copying the encrypted data, wherein the supervisor is a portion of a host operating system or a guest operating system.

4. The method of claim 1 , wherein the first storage location comprises first encrypted data of a first memory page and the second storage location comprises second encrypted data of a second memory page, and wherein the first memory page and second memory page are assigned to different containers.

5. The method of claim 4 , wherein the second storage location comprises data that is encrypted using a second location dependent cryptographic input that corresponds to the second storage location and is based on a hardware feature of a device storing the second memory page, wherein the hardware feature comprises a physical address for the second storage location.

6. The method of claim 1 , wherein the location independent cryptographic input comprises a cryptographic key generated in view of a cryptographic bit sequence provided by the supervisor.

7. The method of claim 6 , wherein the cryptographic bit sequence provided by the supervisor is generated by the supervisor in view of data that is associated with a particular container.

8. The method of claim 1 , wherein causing the data to be encrypted using the location independent cryptographic input comprises:

instructing, by the supervisor, a hardware device to encrypt the data at the first storage location using the location independent cryptographic input.

9. The method of claim 1 , wherein causing the data to be decrypted and then encrypted comprises use of an in-place cryptographic function that avoids copying the data in the physical memory to another location in the physical memory during the decryption and during the encryption of the data of the memory page.

10. The method of claim 1 , wherein updating one of the references comprises:

updating a page table entry;

invalidating a corresponding entry within a translation lookaside buffer; and

flushing the translation lookaside buffer.

11. A system comprising:

a memory;

a processing device operatively coupled to the memory, the processing device to:

receive a request to modify a memory page of a plurality of memory pages, wherein the plurality of memory pages are duplicate memory pages that each comprise a reference to a first storage location in physical memory and wherein the first storage location comprises data encrypted using a location dependent cryptographic input;

cause, by a supervisor, the data at the first storage location to be decrypted using the location dependent cryptographic input and then encrypted using a location independent cryptographic input to produce encrypted data, wherein the supervisor is a portion of an operating system that comprises a container runtime and a container;

copy, by the supervisor, the encrypted data of the memory page that is encrypted using the location independent cryptographic input from the first storage location to a second storage location, wherein the first storage location and the second storage location are different storage locations, wherein the encrypted data at the first storage location and the encrypted data at the second storage location are accessible to the container in an unencrypted form without being accessible to the supervisor or the container runtime in the unencrypted form;

cause, by the supervisor, the encrypted data at the first storage location and the encrypted data at the second storage location to be decrypted using the location independent cryptographic input and to each be encrypted using a different location dependent cryptographic input; and

update one of the references of the plurality of memory pages from pointing to the first storage location in the physical memory to pointing to the second storage location.

12. The system of claim 11 , wherein the encrypted data at the first storage location comprises non-modifiable data and the encrypted data at the second storage location comprises modifiable data.

13. The system of claim 11 , wherein the location independent cryptographic input and the location dependent cryptographic input are accessible to a hardware device performing a cryptographic function and are concealed from the supervisor that is copying the encrypted data, wherein the supervisor is a portion of a host operating system or a guest operating system.

14. A non-transitory machine-readable storage medium storing instructions that cause a processing device to:

consolidate, by a supervisor executed by the processing device, a plurality of memory pages into a consolidated storage block in physical memory, wherein the plurality of memory pages are duplicate memory pages that each comprise a reference to the consolidated storage block at a first storage location in the physical memory and wherein the first storage location comprises data encrypted using a location dependent cryptographic input;

receive a request to modify a memory page of the plurality of memory pages;

cause, by the supervisor, the data of the consolidated storage block to be decrypted using the location dependent cryptographic input and then encrypted using a location independent cryptographic input to produce encrypted data, wherein the supervisor is a portion of an operating system that comprises a container runtime and a container;

copy, by the supervisor, the encrypted data of the memory page that is encrypted using the location independent cryptographic input from the first storage location to a second storage location, wherein the encrypted data at the first storage location and the encrypted data at the second storage location are accessible to the container in an unencrypted form without being accessible to the supervisor or the container runtime in the unencrypted form;

cause, by the supervisor, the encrypted data at the first storage location and the encrypted data at the second storage location to be decrypted using the location independent cryptographic input and to each be encrypted using a different location dependent cryptographic input; and

update one of the references of the plurality of memory pages from pointing to the first storage location in the physical memory to pointing to the second storage location.

15. The non-transitory machine-readable storage medium of claim 14 , wherein the encrypted data at the first storage location comprises non-modifiable data and the encrypted data at the second storage location comprises modifiable data.

16. The non-transitory machine-readable storage medium of claim 14 , wherein the location independent cryptographic input and the location dependent cryptographic input are accessible to a hardware device performing a cryptographic function and are concealed from the supervisor.

17. The non-transitory machine-readable storage medium of claim 14 , wherein the first storage location comprises first encrypted data of a first memory page and the second storage location comprises second encrypted data of a second memory page, and wherein the first memory page and second memory page are assigned to different containers.

18. The system of claim 11 , wherein the location independent cryptographic input comprises a cryptographic key generated in view of a cryptographic bit sequence provided by the supervisor.

19. The system of claim 18 , wherein the cryptographic bit sequence provided by the supervisor is generated by the supervisor in view of data that is associated with a particular container.

20. The non-transitory machine-readable storage medium of claim 14 , wherein the location independent cryptographic input comprises a cryptographic key generated in view of a cryptographic bit sequence provided by the supervisor.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2022
From: VAN RIEL, HENRI HAN; TSIRKIN, MICHAEL
To: RED HAT, INC.
Reel/Frame 060109/0833 →