IP Library Granted Patent US 10,623,386
Granted Patent B1
US 10,623,386 · App. 16/155,946 · Granted Apr 14, 2020

Secret sharing data protection in a storage system

Inventors: Andrew Bernat (Mountain View, CA); Damian Yurzola (San Jose, CA); Timothy Brennan (San Francisco, CA); Ethan Miller (Santa Cruz, CA); John Colgrove (Los Altos, 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 10,623,386
App. No.
16/155,946
Granted
Apr 14, 2020
Kind
B1
Abstract

In a storage system that includes a plurality of storage devices, data protection may include, for each of the plurality of storage devices: encrypting data of the storage device using the device key for the storage device; and encrypting the device key for the storage device using a master secret; generating a plurality of shares from the master secret; and storing the encrypted data, the encrypted device key, and a separate share of the plurality of shares in each storage device.

Claims (59)

1. A method of data protection in a storage system, the storage system comprising a plurality of storage devices, the method comprising:

for each of the plurality of storage devices, wherein each storage device is associated with a unique device key:

encrypting data of the storage device using the device key for the storage device; and

encrypting the device key for the storage device using a master secret;

generating a plurality of shares from the master secret; and

storing the encrypted data, the encrypted device key, and a separate share of the plurality of shares in each storage device.

2. The method of claim 1 , wherein encrypted data of each storage device is accessible without the device key and prohibited from decryption without the device key.

3. The method as recited in claim 2 , wherein encrypting the device key further comprises encrypting the device key using the master secret and a value unique to the corresponding 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, wherein the given number of shares is greater than one, and decrypting 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 decrypt data stored on one or more of the 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 the 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 of the plurality of new shares in each storage device.

7. The method as recited in claim 6 , wherein generating a new master secret further comprises generating the new master secret periodically on a predetermined schedule.

8. A storage system configured for data protection, wherein

the storage system includes a plurality of storage devices and a controller, wherein the controller is configured to carry out the steps of:

for each of the plurality of storage devices, wherein each storage device is associated with a unique device key:

encrypting data of the storage device using the device key for the storage device; and

encrypting the device key for the storage device using a master secret;

generating a plurality of shares from the master secret; and

storing the encrypted data, the encrypted device key, and a separate share of the plurality of shares in each storage device.

9. The storage system of claim 8 , wherein encrypted data of each storage device is accessible without the device key and prohibited from decryption without the device key.

10. The storage system as recited in claim 9 , wherein encrypting the device key further comprises encrypting the device key using the master secret and a value unique to the corresponding storage device.

11. The storage system of claim 10 , wherein the controller is further configured to carry out the steps:

reconstructing the master secret using a given number of shares of the plurality of shares, wherein the given number of shares is greater than one;

decrypting one or more encrypted device keys using the master secret;

storing the decrypted device keys in a volatile memory; and

using the decrypted device keys to decrypt data stored on one or more of the storage devices.

12. The storage system of 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 the storage devices.

13. The storage system of claim 12 , wherein in response to detecting a failed storage device, the controller is further configured to carry out the steps of:

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 of the plurality of new shares in each storage device.

14. The storage system of claim 13 , wherein generating a new master secret further comprises generating the new master secret periodically on a predetermined schedule.

15. A computer program product for data protection in a storage system, wherein the storage system includes a plurality of storage devices, the computer program product is disposed upon a non-transitory computer readable medium, and the computer program product comprising computer program instructions that, when executed, cause a controller of the storage system to carry out the steps of:

for each of the plurality of storage devices, wherein each storage device is associated with a unique device key:

encrypting data of the storage device using the device key for the storage device; and

encrypting the device key for the storage device using a master secret;

generating a plurality of shares from the master secret; and

storing the encrypted data, the encrypted device key, and a separate share of the plurality of shares in each storage device.

16. The computer program product of claim 15 , wherein encrypted data of each storage device is accessible without the device key and prohibited from decryption without the device key.

17. The computer program product as recited in claim 16 , wherein encrypting the device key further comprises encrypting the device key using the master secret and a value unique to the corresponding storage device.

18. The computer program product of claim 17 , further comprising computer program instructions that, when executed, cause the controller of the storage system to carry out the steps:

reconstructing the master secret using a given number of shares of the plurality of shares, wherein the given number of shares is greater than one;

decrypting one or more encrypted device keys using the master secret;

storing the decrypted device keys in a volatile memory; and

using the decrypted device keys to decrypt data stored on one or more of the storage devices.

19. The computer program product of 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 the storage devices.

20. The computer program product of claim 19 , further comprising computer program instructions that, when executed, cause the controller of the storage system, in response to detecting a failed storage device, to carry out the steps of:

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 of the plurality of new shares in each storage device.

Assignments (3)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2018
From: BERNAT, ANDREW; YURZOLA, DAMIAN; BRENNAN, TIMOTHY; MILLER, ETHAN; COLGROVE, JOHN
To: PURE STORAGE, INC.
Reel/Frame 047116/0170 →
Cited By (35)
US 12,212,586 US 12,217,079 US 12,219,048 US 12,219,053 US 12,236,338 US 12,244,627 US 12,244,634 US 12,267,326 US 12,277,216 US 12,278,819 US 12,278,840 US 12,278,897 US 12,284,220 US 12,287,899 US 12,353,474 US 12,395,488 US 12,406,071 US 12,411,937 US 12,411,957 US 12,443,720 US 12,443,722 US 12,489,781 US 12,495,049 US 12,505,200 US 12,506,755 US 12,524,550 US 12,531,881 US 12,547,765 US 12,556,377 US 12,579,251 US 12,639,396 US 12,645,785 US 12,647,483 US 12,688,277 US 12,694,294