IP Library Granted Patent US 11,734,197
Granted Patent B2
US 11,734,197 · App. 16/944,892 · Granted Aug 22, 2023

Methods and systems for resilient encryption of data in memory

Inventors: Walter A. O'Brien, III (Westborough, MA); Thomas N. Dibb (Rutland, MA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F12/1433G06F9/45558G06F12/063G06F12/0646G06F21/602G06F21/79G06F2009/45583G06F2009/45587G06F2221/0751
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,734,197
App. No.
16/944,892
Granted
Aug 22, 2023
Kind
B2
Abstract

A method for encrypting and decrypting data, that includes using an encryption key and an address associated with a memory device or a software instance. The method for encrypting and decrypting data may be performed by a hypervisor or by a configured processor. The method may include receiving a read or write request specifying an address; performing a first lookup, in an address mapping table, to identify a memory module address of a memory module associated with the address; performing a second lookup to identify an encryption key associated with the read or write request; generating a decryption or encryption request that includes the memory module address; and the encryption key; and sending the decryption or encryption request to the memory module.

Claims (44)

1. A method for decrypting data, comprising:

receiving, by a hypervisor and from a virtual machine, a read request specifying a virtual machine address and a virtual machine identifier for the virtual machine;

performing a first lookup, in an address mapping table, to identify a memory module address of a memory module corresponding to the virtual machine address and a memory module identifier of the memory module;

performing a second lookup, in the address mapping table using at least one of the virtual machine identifier and the memory module identifier, to identify an encryption key associated with the read request;

generating a decryption request that comprises:

the memory module address; and

the encryption key;

sending the decryption request to a first node, wherein the first node comprises the memory module;

detecting a configuration change of the memory module prior to receiving the read request; and

in response to detecting the configuration change, updating the address mapping table prior to receiving the read request.

2. The method of claim 1 , wherein the configuration change indicates the memory module is installed in the first node and the address mapping table indicates the memory module is installed in a second node, and the address mapping table is updated to indicate that the memory module is installed in the first node.

3. The method of claim 1 , wherein after sending the decryption request to the first node, the method further comprises:

receiving unencrypted data from the first node; and

sending the unencrypted data to a virtual machine, wherein the virtual machine sent the read request.

4. A method for encrypting data, comprising:

receiving, by a hypervisor, a write request, wherein the write request comprises the data, wherein the write request specifies a virtual machine address and a virtual machine identifier for a virtual machine, wherein the write request originated from the virtual machine;

performing a first lookup, in an address mapping table, to identify a memory module address of a memory module associated with the virtual machine address and a memory module identifier of the memory module;

performing a second lookup using the virtual machine identifier to identify a first encryption key;

performing a third lookup, in the address mapping table, using the memory module identifier to identify a second encryption key;

generating an encryption request that comprises:

the memory module address; and

the first encryption key;

the second encryption key; and

sending the encryption request to a first node, wherein the first node comprises the memory module;

detecting a configuration change of the memory module prior to receiving the write request; and

in response to detecting the configuration change, updating the address mapping table prior to receiving the write request.

5. The method of claim 4 , wherein the second lookup is performed in a memory module encryption table, and wherein the second encryption key is a memory module encryption key.

6. The method of claim 5 , wherein the second lookup is performed in a virtual machine encryption table, and wherein the first encryption key is a virtual machine encryption key.

7. The method of claim 4 , wherein the configuration change indicates the memory module is installed in the first node and the address mapping table indicates the memory module is installed in a second node, and the address mapping table is updated to indicate that the memory module is installed in the first node.

8. A first node, comprising:

a memory module; and

a processor, wherein the processor is configured to perform a method for decrypting data, comprising:

receiving a read request specifying a virtual machine address associated with the memory module;

performing a first lookup, in an address mapping table, to identify a memory module address of the memory module and a memory module identifier;

performing a second lookup, using the memory module identifier, to identify an encryption key associated with the read request;

performing a third lookup to identify a processor address associated with the memory module address;

reading, using the processor address, encrypted data from the memory module; and

decrypting the encrypted data to obtain decrypted data, wherein decrypting the encrypted data uses the encryption key and the memory module address;

detecting a configuration change of the memory module prior to receiving the read request; and

in response to detecting the configuration change, updating the address mapping table prior to receiving the read request.

9. The first node of claim 8 , wherein the second lookup is performed in a memory module encryption table, and wherein the encryption key is a memory module encryption key.

10. The first node of claim 8 , wherein the configuration change indicates the memory module is installed in the first node and the address mapping table indicates the memory module is installed in a second node, and the address mapping table is updated to indicate that the memory module is installed in the first node.

11. The first node of claim 8 , wherein after decrypting the encrypted data, the method further comprises:

sending, to the virtual machine, the decrypted data, wherein the virtual machine is associated with the virtual machine address.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2020
From: O'BRIEN, WALTER A., III; DIBB, THOMAS N.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053580/0705 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →