IP Library Granted Patent US 12,130,704
Granted Patent B2
US 12,130,704 · App. 18/479,236 · Granted Oct 29, 2024

Encoding and encrypting data in a storage network

Inventors: Scott M. Horan (Clarendon Hills, IL); Wesley B. Leggette (Chicago, IL); Jason K. Resch (Warwick, RI)
Assignee: Pure Storage, Inc.
G06F11/108G06F3/0604G06F3/0605G06F3/061G06F3/0619G06F3/0622G06F3/0643G06F3/0644G06F3/0647G06F3/065G06F3/0653G06F3/0668G06F3/067G06F3/0689G06F11/1076G06F11/1662G06F11/3034G06F13/4282G06F16/122G06F16/1824G06F16/24578G06F21/6218G06F21/645H03M13/2906H03M13/3761H04L9/0861H04L67/1097H04L67/63G06F3/064G06F2201/805H03M13/1515
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,130,704
App. No.
18/479,236
Filed
Oct 2, 2023
Granted
Oct 29, 2024
Kind
B2
Art Unit
2112
USPC
713/165
Abstract

A storage network operates by: receiving a encoded data slice for storage by the storage network, wherein the encoded data slice is associated with a vault; generating a encryption key corresponding to the encoded data slice based on a vault identifier associated with the vault; utilizing the encryption key to generate a encrypted data slice and that corresponds to, and is based on, the encoded data slice; storing the encrypted data slice in a storage unit of the storage network; receiving a request to retrieve the encoded data slice; retrieving the encrypted data slice corresponding to the encoded data slice from the storage unit of the storage network; generating a decryption key corresponding to the encoded data slice based on the vault identifier, wherein the decryption key is different from the encryption key; and regenerating the encoded data slice using the decryption key.

Claims (70)

1. A method for execution by a processing system of a storage network that includes a processor, the method comprising:

receiving a first encoded data slice for storage by the storage network, wherein the first encoded data slice is associated with a first vault;

generating a first encryption key corresponding to the first encoded data slice based on a first vault identifier associated with the first vault;

utilizing the first encryption key to generate a first encrypted data slice and that corresponds to, and is based on, the first encoded data slice;

storing the first encrypted data slice in a first storage unit of the storage network;

receiving a request to retrieve the first encoded data slice;

retrieving the first encrypted data slice corresponding to the first encoded data slice from the first storage unit of the storage network;

generating a first decryption key corresponding to the first encoded data slice based on the first vault identifier, wherein the first decryption key is different from the first encryption key; and

regenerating the first encoded data slice using the first decryption key.

2. The method of claim 1 , further comprising:

receiving a second encoded data slice for storage by the storage network, wherein the second encoded data slice is associated with a second vault;

generating a second encryption key corresponding the second encoded data slice based on on a second vault identifier associated with the second vault;

generating a second encrypted data slice using the second encryption key; and

storing the second encrypted data slice in a second storage unit of the storage network.

3. The method of claim 2 , further comprising:

receiving a third encoded data slice for storage by the storage network, wherein the third encoded data slice is associated with the first vault;

generating a third encrypted data slice by utilizing the first encryption key; and

storing the third encrypted data slice in the first storage unit of the storage network.

4. The method of claim 2 , wherein the first encryption key is generated by performing a deterministic function on the first vault identifier.

5. The method of claim 4 , wherein the first encryption key is generated by performing the deterministic function further on a slice identifier of the first encoded data slice.

6. The method of claim 4 , wherein the second encryption key is generated by performing the deterministic function on the second vault identifier.

7. The method of claim 1 , further comprising:

re-encrypting the first encoded data slice with a new encryption key in response to a transfer of the first encoded data slice from the first storage unit to another storage unit.

8. A processing system of a storage network comprises:

an interface; and

processing circuitry, coupled to the interface, configured by operational instructions to perform operations that include:

receiving a first encoded data slice for storage by the storage network, wherein the first encoded data slice is associated with a first vault;

generating a first encryption key corresponding to the first encoded data slice based on a first vault identifier associated with the first vault;

utilizing the first encryption key to generate a first encrypted data slice and that corresponds to, and is based on, the first encoded data slice;

storing the first encrypted data slice in a first storage unit of the storage network;

receiving a request to retrieve the first encoded data slice;

retrieving the first encrypted data slice corresponding to the first encoded data slice from the first storage unit of the storage network;

generating a first decryption key corresponding to the first encoded data slice based on the first vault identifier, wherein the first decryption key is different from the first encryption key; and

regenerating the first encoded data slice using the first decryption key.

9. The processing system of claim 8 , wherein the operations further include:

receiving a second encoded data slice for storage by the storage network, wherein the second encoded data slice is associated with a second vault;

generating a second encryption key corresponding the second encoded data slice based on on a second vault identifier associated with the second vault;

generating a second encrypted data slice using the second encryption key; and

storing the second encrypted data slice in a second storage unit of the storage network.

10. The processing system of claim 9 , wherein the operations further include:

receiving a third encoded data slice for storage by the storage network, wherein the third encoded data slice is associated with the first vault;

generating a third encrypted data slice by utilizing the first encryption key; and

storing the third encrypted data slice in the first storage unit of the storage network.

11. The processing system of claim 9 , wherein the first encryption key is generated by performing a deterministic function in the first vault identifier.

12. The processing system of claim 11 , wherein the first encryption key is generated by performing the deterministic function further on a slice identifier of the first encoded data slice.

13. The processing system of claim 11 , wherein the second encryption key is generated by performing the deterministic function on the second vault identifier.

14. The processing system of claim 8 , wherein the operations further include:

re-encrypting the first encoded data slice with a new encryption key in response to a transfer of the first encoded data slice from the first storage unit to another storage unit.

15. A non-transitory computer readable storage medium comprises:

at least one memory that stores operational instructions that, when executed by a processing system of a storage network having a processor, causes the processing system to perform operations including:

receiving a first encoded data slice for storage by the storage network, wherein the first encoded data slice is associated with a first vault;

generating a first encryption key corresponding to the first encoded data slice based on a first vault identifier associated with the first vault;

utilizing the first encryption key to generate a first encrypted data slice and that corresponds to and is based on the first encoded data slice;

storing the first encrypted data slice in a first storage unit of the storage network;

receiving a request to retrieve the first encoded data slice;

retrieving the first encrypted data slice corresponding to the first encoded data slice from the first storage unit of the storage network;

generating a first decryption key corresponding to the first encoded data slice based on the first vault identifier, wherein the first decryption key is different from the first encryption key; and

regenerating the first encoded data slice using the first decryption key.

16. The non-transitory computer readable storage medium of claim 15 , wherein the operations further include:

receiving a second encoded data slice for storage by the storage network, wherein the second encoded data slice is associated with a second vault;

generating a second encryption key corresponding the second encoded data slice based on on a second vault identifier associated with the second vault;

generating a second encrypted data slice using the second encryption key; and

storing the second encrypted data slice in a second storage unit of the storage network.

17. The non-transitory computer readable storage medium of claim 16 , wherein the operations further include:

receiving a third encoded data slice for storage by the storage network, wherein the third encoded data slice is associated with the first vault;

generating a third encrypted data slice by utilizing the first encryption key; and

storing the third encrypted data slice in the first storage unit of the storage network.

18. The non-transitory computer readable storage medium of claim 16 , wherein the first encryption key is generated by performing a deterministic function on the first vault identifier.

19. The non-transitory computer readable storage medium of claim 18 , wherein the first encryption key is generated by performing the deterministic function further on a slice identifier of the first encoded data slice.

20. The non-transitory computer readable storage medium of claim 18 , wherein the second encryption key is generated by performing the deterministic function on the second vault identifier.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2023
From: HORAN, SCOTT M.; LEGGETTE, WESLEY B.; RESCH, JASON K.
To: PURE STORAGE, INC.
Reel/Frame 065103/0188 →
Continuity (5)
Continuation 17449189 · Sep 28, 2021
Continuation In Part 16555035 · Aug 29, 2019
Continuation 15144080 · May 2, 2016
Provisional Application 62199816 · Jul 31, 2015
Related Publication 20240028455A1 · Jan 25, 2024