IP Library Granted Patent US 8,745,415
Granted Patent B2
US 8,745,415 · App. 13/627,444 · Granted Jun 3, 2014

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.
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 8,745,415
App. No.
13/627,444
Granted
Jun 3, 2014
Kind
B2
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 (85)

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

use a device key to encrypt data on each storage device of the plurality of storage devices, wherein each storage device uses a separate device key;

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

store each encrypted key on the respective storage device;

generate a plurality of shares from the master secret, wherein the plurality of shares are generated from the master secret independent of data being encrypted on any given storage device; and

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

2. The computing system as recited in claim 1 , 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.

3. The computing system 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.

4. The computing system as recited in claim 3 , 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.

5. The computing system as recited in claim 1 , 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.

6. A method comprising:

using a device key to encrypt data on each storage device of the plurality of storage devices, wherein each storage device uses a separate device key; and

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

storing each encrypted key on the respective storage device;

generating a plurality of shares from the master secret, wherein the plurality of shares are generated from the master secret independent of data being encrypted on any given storage device; and

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

7. The method as recited in claim 6 , 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.

8. The method as recited in claim 6 , 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.

9. The method as recited in claim 8 , 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.

10. The method as recited in claim 6 , 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.

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

use a device key to encrypt data on each storage device of the plurality of storage devices, wherein each storage device uses a separate device key; and

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

store each encrypted key on the respective storage device;

generate a plurality of shares from the master secret, wherein the plurality of shares are generated from the master secret independent of data being encrypted on any given storage device; and

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

12. The non-transitory computer readable storage medium as recited in claim 11 , 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.

13. The non-transitory computer readable storage medium as recited in claim 11 , 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.

14. The non-transitory computer readable storage medium as recited in claim 11 , 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.

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

use a device key to encrypt data on each storage device of the plurality of storage devices, wherein each storage device uses a separate device key;

encrypt each device key using a master secret;

generate a plurality of shares from the master secret; and

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

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.

16. A method comprising:

using a device key to encrypt data on each storage device of the plurality of storage devices, wherein each storage device uses a separate device key; and

encrypting each device key using a master secret;

generating a plurality of shares from the master secret; and

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

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.

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

use a device key to encrypt data on each storage device of the plurality of storage devices, wherein each storage device uses a separate device key; and

encrypt each device key using a master secret;

generate a plurality of shares from the master secret; and

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

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 Sep 26, 2012
From: MILLER, ETHAN; COLGROVE, JOHN; HAYES, JOHN
To: PURE STORAGE, INC.
Reel/Frame 029030/0276 →
Continuity (1)
Related Publication 20140089683A1 · Mar 27, 2014