IP Library Granted Patent US 11,968,296
Granted Patent B2
US 11,968,296 · App. 17/196,169 · Granted Apr 23, 2024

Utilization of a memory device for per-user encryption

Inventors: Zhan Liu (Cupertino, CA); Lance W. Dover (Fair Oaks, CA)
Assignee: Micron Technology, Inc.
H04L9/0841H04L9/0825H04L9/0861H04L61/5007H04L2101/622
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,968,296
App. No.
17/196,169
Granted
Apr 23, 2024
Kind
B2
Abstract

Disclosed are methods for encrypting communications with a remote endpoint via a memory device. In one embodiment, a memory device is configured to receive, from the application, a request to establish a communications session with a remote computing device, establish a shared symmetric key, the shared symmetric key shared between the memory device and the remote computing device, receive a message from the application, the message including an identifier of the remote computing device and a payload, generate a ciphertext using the symmetric key and the payload, and return the ciphertext to the application.

Claims (50)

1. A method comprising:

receiving, via a memory controller of a memory device of a computing device from an application executing on a processor of the computing device wherein the processor and the memory device are communicatively coupled via a memory bus, a command to establish a communications session with a remote computing device communicatively connected to the computing device over a network, the command comprising a command to access a network supported by firmware of the memory controller;

generating, by the memory controller, a shared symmetric key, the shared symmetric key shared between the memory device and the remote computing device;

storing, by the memory controller, the shared symmetric key in a secure area of the memory device inaccessible by the processor of the computing device;

receiving, at the memory controller, a second command from the application, the second command including a network identifier of the remote computing device and a payload to transmit to the remote computing device;

retrieving, by the memory controller, the shared symmetric key from the secure area based on the network identifier;

generating, by the memory controller, a ciphertext by encrypting the payload using the shared symmetric key;

returning, by the memory controller, the ciphertext to the processor, causing the processor to transmit the ciphertext to the remote computing device;

receiving, by the memory controller, a third command from the processor including an encrypted response, the encrypted response generated by the remote computing device responsive to the ciphertext;

retrieving, by the memory controller, the shared symmetric key from the secure area based on the network identifier;

decrypting, by the memory controller, the encrypted response using the shared symmetric key to obtain a decrypted response; and

returning, by the memory controller, the decrypted response as a response to the third command.

2. The method of claim 1 , wherein receiving the command to establish the communications session comprises receiving the network identifier of the remote computing device.

3. The method of claim 2 , wherein receiving the network identifier of the remote computing device comprises receiving a network address of the remote computing device.

4. The method of claim 3 , wherein receiving a network address of the remote computing device comprises receiving an address selected from the group consisting of an Internet Protocol (IP) address, Media Access Control (MAC) address, Uniform Resource Locator (URL), or Uniform Resource Identifier (URI).

5. The method of claim 1 , wherein establishing the shared symmetric key comprises establishing the shared symmetric key via a Diffie-Hellman key exchange protocol.

6. The method of claim 1 , further comprising transmitting, by the memory device, the shared symmetric key to the application in response to a signed key request message.

7. The method of claim 1 , wherein establishing the shared symmetric key comprises communicating, by the memory device, with the remote computing device via the application.

8. The method of claim 1 , wherein establishing the shared symmetric key comprises generating a volatile, derived key from a static symmetric key.

9. A device comprising:

a host processor configured to execute an application; and

a memory device coupled to the host processor over a local memory bus, the memory device comprising a storage area configured to store data and a memory controller configured to:

receive, from the application, a command to establish a communications session with a remote computing device communicatively connected to the device over a network, the command comprising a command to access a network supported by firmware of the memory controller,

generate a shared symmetric key, the shared symmetric key shared between the memory device and the remote computing device,

store the shared symmetric key in a secure area of the storage area inaccessible by the host processor,

receive a second command from the application, the second command including a network identifier of the remote computing device and a payload to transmit to the remote computing device,

retrieve the shared symmetric key from the secure area based on the network identifier,

generate a ciphertext by encrypting the payload using the shared symmetric key and the payload,

return the ciphertext to the processor, causing the processor to transmit the ciphertext to the remote computing device,

receive a third command from the processor including an encrypted response, the encrypted response generated by the remote computing device responsive to the ciphertext;

retrieve the shared symmetric key from the secure area based on the network identifier;

decrypt the encrypted response using the shared symmetric key to obtain a decrypted response; and

return the decrypted response as a response to the third command.

10. The device of claim 9 , wherein receiving the command to establish the communications session comprises receiving the network identifier of the remote computing device.

11. The device of claim 9 , wherein establishing the shared symmetric key comprises establishing the shared symmetric key via a Diffie-Hellman (DH) key exchange protocol.

12. The device of claim 9 , the memory controller further configured to transmit the shared symmetric key to the application in response to a signed key request message.

13. The device of claim 9 , wherein establishing the shared symmetric key comprises communicating, by the memory device, with the remote computing device via the application.

14. The device of claim 9 , wherein establishing the shared symmetric key comprises generating a volatile, derived key from a static symmetric key.

15. A non-transitory computer-readable storage medium for tangibly storing computer program instructions capable of being executed by a computer processor, the computer program instructions defining steps of:

receiving, via a memory controller of a memory device communicatively coupled to the computer processor over a local memory bus, a command to establish a communications session with a remote computing device from an application executed by the computer processor communicatively connected to the computer processor over a network, the command comprising a command to access a network supported by firmware of the memory controller;

generating, by the memory controller, a shared symmetric key, the shared symmetric key shared with the remote computing device, the shared symmetric key comprising a volatile, derived key generated from a static symmetric key;

storing, by the memory controller, the shared symmetric key in a secure area of the memory device inaccessible by the processor of the computing device;

receiving, by the memory controller, a second command from the application, the second command including a network identifier of the remote computing device and a payload to transmit to the remote computing device;

retrieving, by the memory controller, the shared symmetric key from the secure area based on the network identifier;

generating, by the memory controller, a ciphertext by encrypting the payload using the shared symmetric key and the payload;

returning, by the memory controller, the ciphertext to the processor, causing the processor to transmit the ciphertext to the remote computing device;

receiving, by the memory controller, a third command from the processor including an encrypted response, the encrypted response generated by the remote computing device responsive to the ciphertext;

retrieving, by the memory controller, the shared symmetric key from the secure area based on the network identifier;

decrypting, by the memory controller, the encrypted response using the shared symmetric key to obtain a decrypted response; and

returning, by the memory controller, the decrypted response as a response to the third command.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2021
From: LIU, ZHAN; DOVER, LANCE W.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 055535/0868 →
Continuity (1)
Related Publication 20220294614A1 · Sep 15, 2022