IP Library Granted Patent US 10,810,138
Granted Patent B2
US 10,810,138 · App. 16/008,418 · Granted Oct 20, 2020

Enhanced storage encryption with total memory encryption (TME) and multi-key total memory encryption (MKTME)

Inventors: Samantha Edirisooriya (Tempe, AZ); Robert Z. Papp (Chandler, AZ)
Assignee: Intel Corporation
G06F12/1408G06F3/0623G06F3/0634G06F3/0659G06F3/0661G06F3/0673G06F3/0679G06F13/4221G06F21/602G06F21/78G06F21/85G06F2213/0026
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 10,810,138
App. No.
16/008,418
Granted
Oct 20, 2020
Kind
B2
Abstract

This disclosure is directed to a processing device including a memory to store data, processing circuitry to process data, the processing circuitry including a memory controller to control access to the memory and encryption circuitry to encrypt and decrypt data, and I/O circuitry. The I/O circuitry includes an I/O port to write data to a storage device and to read data from the storage device and an enable encryption bit associated with the I/O port, the I/O port to receive a request to read data from the memory, to send a read command to the memory controller with an enable encryption attribute set when the enable encryption bit is set, and to send a read command to the memory controller with the enable encryption attribute not set when the enable encryption bit is not set. The memory controller is configured to get the data from the memory, to forward the data to the I/O port without decrypting the data when the enable encryption attribute is set, and to cause the encryption circuitry to decrypt the data and to forward the decrypted data to the I/O port when the enable encryption attribute is not set.

Claims (33)

1. A device comprising:

a memory to store data;

processing circuitry to process data, the processing circuitry including a memory controller in the processing circuitry to control access to the memory and encryption circuitry in the processing circuitry to encrypt and decrypt data; and

I/O circuitry including an I/O port to write data to a storage device and to read data from the storage device and an enable encryption bit associated with the I/O port, the I/O port to receive a request to read data from the memory, to send a read command to the memory controller with an enable encryption attribute set when the enable encryption bit is set, and to send the read command to the memory controller with the enable encryption attribute not set when the enable encryption bit is not set;

wherein the memory controller to get the data from the memory, to forward the data to the I/O port without decrypting the data when the enable encryption attribute is set, and to cause the encryption circuitry to decrypt the data and to forward the decrypted data to the I/O port when the enable encryption attribute is not set;

wherein the I/O port to receive a request to write data to the memory, to send a write command to the memory controller with an enable encryption attribute set when the enable encryption bit is set, and to send the write command to the memory controller with the enable encryption attribute not set when the enable encryption bit is not set and

wherein the memory controller to write the data to the memory without encrypting the data when the enable encryption attribute is set, and to cause the encryption circuitry to encrypt the data and to write the encrypted data to the memory when the enable encryption attribute is not set.

2. The device of claim 1 , wherein the I/O port to send data to the storage device and to get data from the storage device.

3. The device of claim 1 , wherein the I/O port comprises one of a Peripheral Component Interface express (PCIe) root port and a PCIe integrated endpoint.

4. The device of claim 1 , wherein the processing circuitry comprises circuitry to implement total memory encryption (TME) and multi-key total memory encryption (MKTME) to encrypt and decrypt data stored in the memory.

5. The device of claim 1 , wherein the device comprises a system on a chip (SOC).

6. The device of claim 1 , wherein the storage device comprises a non-volatile memory express (NVMe) solid-state drive (SSD), a serial AT attachment (SATA) SSD, or a universal flash storage (UFS) SSD.

7. The device of claim 1 , comprising interconnect circuitry to communicatively couple the memory, the processing circuitry, and the I/O circuitry, wherein data transferred over the interconnect circuitry is encrypted.

8. A system comprising:

communications circuitry to support wired and/or wireless communications; and

a system on a chip (SOC) coupled to the communications circuitry, the SOC including a memory to store data;

processor circuitry to process data, the processing circuitry including a memory controller in the processing circuitry to control access to the memory and encryption circuitry in the processing circuitry to encrypt and decrypt data; and

I/O circuitry including an I/O port to write data to a storage device and to read data from the storage device and an enable encryption bit associated with the I/O port, the I/O port to receive a request to read data from the memory, to send a read command to the memory controller with an enable encryption attribute set when the enable encryption bit is set, and to send the read command to the memory controller with the enable encryption attribute not set when the enable encryption bit is not set;

wherein the memory controller to get the data from the memory, to forward the data to the I/O port without decrypting the data when the enable encryption attribute is set, and to cause the encryption circuitry to decrypt the data and to forward the decrypted data to the I/O port when the enable encryption attribute is not set;

wherein the I/O port to receive a request to write data to the memory, to send a write command to the memory controller with an enable encryption attribute set when the enable encryption bit is set, and to send the write command to the memory controller with the enable encryption attribute not set when the enable encryption bit is not set; and wherein the memory controller to write the data to the memory without encrypting the data when the enable encryption attribute is set, and to cause the encryption circuitry to encrypt the data and to write the encrypted data to the memory when the enable encryption attribute is not set.

9. The system of claim 8 , wherein the I/O port to send data to the storage device and to get data from the storage device.

10. The system of claim 8 , wherein the I/O port comprises one of a Peripheral Component Interface express (PCIe) root port and a PCIe integrated endpoint.

11. The system of claim 8 , wherein the processing circuitry comprises circuitry to implement total memory encryption (TME) and multi-key total memory encryption (MKTME) to encrypt and decrypt data stored in the memory.

12. The system of claim 8 , wherein the storage device comprises a non-volatile memory express (NVMe) solid-state drive (SSD), a serial AT attachment (SATA) SSD, or a universal flash storage (UFS) SSD.

13. The system of claim 8 , comprising interconnect circuitry to communicatively couple the memory, the processing circuitry, and the I/O circuitry, wherein data transferred over the interconnect circuitry is encrypted.

14. A method comprising:

receiving, by an I/O port of I/O circuitry, the I/O port for writing data to a storage device and reading data from the storage device, a request to read data from a memory, sending a read command to a memory controller of processor circuitry coupled to the memory, the memory controller for controlling access to the memory, with an enable encryption attribute set when an enable encryption bit associated with the I/O port is set, and sending a the read command to the memory controller with the enable encryption attribute not set when the enable encryption bit is not set;

getting, by the memory controller, the data from the memory, forwarding the data to the I/O port without decrypting the data when the enable encryption attribute is set, and causing encryption circuitry of the processing circuitry for encrypting and decrypting data to decrypt the data and forwarding the decrypted data to the I/O port when the enable encryption attribute is not set

receiving, by the I/O port, a request to write data to the memory, sending a write command to the memory controller with an enable encryption attribute set when the enable encryption bit is set, and sending the write command to the memory controller with the enable encryption attribute not set when the enable encryption bit is not set and

writing, by the memory controller, the data to the memory without encrypting the data when the enable encryption attribute is set, and causing the encryption circuitry to encrypt the data and writing the encrypted data to the memory when the enable encryption attribute is not set.

15. The method of claim 14 , comprising, sending data to the storage device from the I/O port and getting data from the storage device to the I/O port.

16. The method of claim 14 , comprising implementing, by the processing circuitry total memory encryption (TME) and multi-key total memory encryption (MKTME) to encrypt and decrypt data stored in the memory.

17. The method of claim 14 , comprising transferring encrypted data over interconnect circuitry communicatively coupled to the memory, the processing circuitry, and the I/O circuitry.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2018
From: EDIRISOORIYA, SAMANTHA; PAPP, ROBERT Z.
To: INTEL CORPORATION
Reel/Frame 046546/0564 →
Continuity (1)
Related Publication 20190042474A1 · Feb 7, 2019
Cited By (1)
US 12,572,702