IP Library Granted Patent US 9,548,972
Granted Patent B2
US 9,548,972 · App. 14/258,826 · Granted Jan 17, 2017

Multi-drive cooperation to generate an encryption key

Inventors: Ethan Miller (Santa Cruz, CA); John Colgrove (Los Altos, CA); John Hayes (Mountain View, CA)
Assignee: Pure Storage, Inc.
H04L63/061G06F21/78H04L9/085G06F2221/2107G06F2221/2131
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 9,548,972
App. No.
14/258,826
Filed
Apr 22, 2014
Granted
Jan 17, 2017
Kind
B2
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:

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;

use a 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 master secret; and

for a first storage device of the plurality of storage devices, store a first share of the plurality of shares from the master secret, a first device key encrypted using the master secret, and first storage device data encrypted with the first device key.

2. The method as recited in claim 1 , wherein the plurality of shares are generated from the 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 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 master secret using a given number of shares of the plurality of shares and decrypt encrypted device keys using the 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 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:

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;

use a 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 master secret; and

for a first storage device of the plurality of storage devices, store a first share of the plurality of shares from the master secret, a first device key encrypted using the master secret, and first storage device data encrypted with the first device key.

9. The computing system as recited in claim 8 , wherein the plurality of shares are generated from the 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 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 master secret using a given number of shares of the plurality of shares and decrypt encrypted device keys using the 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 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:

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;

use a 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 master secret; and

for a first storage device of the plurality of storage devices, store a first share of the plurality of shares from the master secret, a first device key encrypted using the master secret, and first storage device data encrypted with the first device key.

16. The non-transitory computer readable storage medium as recited in claim 15 , wherein the plurality of shares are generated from the 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 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 master secret using a given number of shares of the plurality of shares and decrypt encrypted device keys using the 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 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 13627444 · Sep 26, 2012
Related Publication 20140250303A1 · Sep 4, 2014