IP Library Granted Patent US 10,284,367
Granted Patent B1
US 10,284,367 · App. 15/398,898 · Granted May 7, 2019

Encrypting data in a storage system using a plurality of encryption keys

Inventors: Ethan Miller (Santa Cruz, CA); John Colgrove (Los Altos, CA); John Hayes (Mountain View, CA)
Assignee: Pure Storage, Inc.
H04L9/085G06F21/602
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,284,367
App. No.
15/398,898
Filed
Jan 5, 2017
Granted
May 7, 2019
Kind
B1
Art Unit
2435
USPC
713/171
Abstract

A system, method, and computer-readable storage medium for protecting a set of storage devices using a secret sharing scheme. The data of each storage device is encrypted with a key, and the key is encrypted based on a shared secret and a device-specific value. Each storage device stores a share and its encrypted key, and if a number of storage devices above a threshold are available, then the shared secret can be reconstructed from the shares and used to decrypt the encrypted keys. Otherwise, the secret cannot be reconstructed if less than the threshold number of storage devices are accessible, and then data on the storage devices will be unreadable.

Claims (64)

1. A method comprising:

transforming an initial master secret into a final master secret using one or more external secrets, wherein the one or more external secrets are stored separately from a computing system;

for each storage device of a plurality of storage devices of the computing system, encrypting data on the storage device with a device key, wherein the device key that encrypts the data on one storage device is different than another device key that encrypts data on another storage device; and

using the final master secret to both encrypt all of the device keys used to encrypt data on the plurality of storage devices, and to generate a plurality of shares from the final master secret.

2. The method as recited in claim 1 , wherein the plurality of shares are generated from the final master secret independent of data being encrypted on any given storage device.

3. The method as recited in claim 2 , further comprising:

encrypting each device key using the final master secret and a value unique to a respective storage device of the plurality of storage devices; and

storing each encrypted device key on the respective storage device.

4. The method as recited in claim 3 , further comprising:

reconstructing the final master secret using a given number of shares of the plurality of shares and decrypt encrypted device keys using the final master secret to generate decrypted device keys;

storing the decrypted device keys in a volatile memory; and

using the decrypted device keys to perform a plurality of accesses to one or more storage devices.

5. The method as recited in claim 1 , wherein a number of shares needed to reconstruct the final master secret is greater than a number of shares associated with any single physical grouping of storage devices.

6. The method as recited in claim 5 , wherein in response to detecting a failed storage device, the method further comprises:

generating a new master secret;

encrypting each device key using the new master secret;

generating a plurality of new shares from the new master secret; and

storing a separate new share of the plurality of new shares on each storage device of the plurality of storage devices.

7. The method as recited in claim 1 , further comprising:

periodically generating a new master secret on a predetermined schedule;

encrypting each device key using the new master secret;

generating a plurality of new shares from the new master secret; and

storing a separate new share of the plurality of new shares on each storage device of the plurality of storage devices, wherein each new share replaces a previous share stored on each storage device.

8. A computing system comprising a plurality of storage devices, wherein the computing system is configured to:

transform an initial master secret into a final master secret using one or more external secrets, wherein the one or more external secrets are stored separately from the computing system;

for each storage device of the plurality of storage devices, encrypt data on the storage device with a device key, wherein the device key that encrypts the data on one storage device is different than another device key that encrypts data on another storage device; and

use the final master secret to both encrypt all of the device keys used to encrypt data on the plurality of storage devices, and to generate a plurality of shares from the final master secret.

9. The computing system as recited in claim 8 , wherein the plurality of shares are generated from the final master secret independent of data being encrypted on any given storage device.

10. The computing system as recited in claim 9 , wherein the computing system is further configured to:

encrypt each device key using the final master secret and a value unique to a respective storage device of the plurality of storage devices; and

store each encrypted device key on the respective storage device.

11. The computing system as recited in claim 10 , wherein the computing system is further configured to:

reconstruct the final master secret using a given number of shares of the plurality of shares and decrypt encrypted device keys using the final master secret to generate decrypted device keys;

store the decrypted device keys in a volatile memory; and

use the decrypted device keys to perform a plurality of accesses to one or more storage devices.

12. The computing system as recited in claim 8 , wherein a number of shares needed to reconstruct the final master secret is greater than a number of shares associated with any single physical grouping of storage devices.

13. The computing system as recited in claim 12 , wherein in response to detecting a failed storage device, the computing system is further configured to:

generate a new master secret;

encrypt each device key using the new master secret;

generate a plurality of new shares from the new master secret; and

store a separate new share of the plurality of new shares on each storage device of the plurality of storage devices.

14. The computing system as recited in claim 8 , wherein the computing system is further configured to:

periodically generate a new master secret on a predetermined schedule;

encrypt each device key using the new master secret;

generate a plurality of new shares from the new master secret; and

store a separate new share of the plurality of new shares on each storage device of the plurality of storage devices, wherein each new share replaces a previous share stored on each storage device.

15. A non-transitory computer readable storage medium comprising program instructions, wherein the program instructions are executable to:

transform an initial master secret into a final master secret using one or more external secrets, wherein the one or more external secrets are stored separately from a computing system;

for each storage device of a plurality of storage devices of the computing system, encrypt data on the storage device with a device key, wherein the device key that encrypts the data on one storage device is different than another device key that encrypts data on another storage device; and

use the final master secret to both encrypt all of the device keys used to encrypt data on the plurality of storage devices, and to generate a plurality of shares from the final master secret.

16. The non-transitory computer readable storage medium as recited in claim 15 , wherein the plurality of shares are generated from the final master secret independent of data being encrypted on any given storage device.

17. The non-transitory computer readable storage medium as recited in claim 16 , wherein the program instructions are further executable to:

encrypt each device key using the final master secret and a value unique to a respective storage device of the plurality of storage devices; and

store each encrypted device key on the respective storage device.

18. The non-transitory computer readable storage medium as recited in claim 17 , wherein the program instructions are further executable to:

reconstruct the final master secret using a given number of shares of the plurality of shares and decrypt encrypted device keys using the final master secret to generate decrypted device keys;

store the decrypted device keys in a volatile memory; and

use the decrypted device keys to perform a plurality of accesses to one or more storage devices.

19. The non-transitory computer readable storage medium as recited in claim 15 , wherein a number of shares needed to reconstruct the final master secret is greater than a number of shares associated with any single physical grouping of storage devices.

20. The non-transitory computer readable storage medium as recited in claim 15 , wherein the program instructions are further executable to:

periodically generate a new master secret on a predetermined schedule;

encrypt each device key using the new master secret;

generate a plurality of new shares from the new master secret; and

store a separate new share of the plurality of new shares on each storage device of the plurality of storage devices, wherein each new share replaces a previous share stored on each storage device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2017
From: MILLER, ETHAN; COLGROVE, JOHN; HAYES, JOHN
To: PURE STORAGE, INC.
Reel/Frame 040858/0846 →
Continuity (2)
Continuation 14258826 · Apr 22, 2014
Continuation 13627444 · Sep 26, 2012
Cited By (3)
US 12,317,113 US 12,519,503 US 12,696,492