IP Library Granted Patent US 8,468,368
Granted Patent B2
US 8,468,368 · App. 12/885,160 · Granted Jun 18, 2013

Data encryption parameter dispersal

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,468,368
App. No.
12/885,160
Granted
Jun 18, 2013
Kind
B2
Abstract

A method begins with a processing module obtaining encoded key slices from a plurality of user devices and decoding a threshold number of the encoded key slices utilizing a first error coding dispersal storage function to produce a key when the threshold number of the encoded key slices has been obtained. The method continues with the processing module receiving encoded data slices and decoding a threshold number of encoded data slices utilizing a second error coding dispersal storage function to produce encrypted data when the threshold number of the encoded data slices has been received. The method continues with the processing module decrypting the encrypted data utilizing the key and an encryption function to produce data.

Claims (72)

1. A method comprises:

obtaining encoded key slices from a plurality of devices;

when a threshold number of the encoded key slices have been obtained, decoding the threshold number of the encoded key slices utilizing a first error coding dispersal storage function to produce a key;

receiving encoded data slices;

when a threshold number of the encoded data slices have been received, decoding the threshold number of encoded data slices utilizing a second error coding dispersal storage function to produce encrypted data;

obtaining encoded encryption function slices; and

when a threshold number of encoded encryption function slices have been obtained, decoding the encoded encryption function slices in accordance with the first or second error coding dispersal storage function to produce an encryption function; and

decrypting the encrypted data utilizing the key and the encryption function to produce data.

2. The method of claim 1 , wherein the obtaining the encoded key slices further comprises at least one of:

retrieving an encoded key slice of the encoded key slices from a local memory of a user device of the plurality of user devices and retrieving other encoded key slices of the encoded key slices from other user devices of the plurality of user devices; and

receiving the encoded key slices from the other user devices of the plurality of user devices.

3. The method of claim 1 , wherein the receiving the encoded data slices further comprises at least one of:

receiving the encoded data slices from a dispersed storage network (DSN) memory in response to a request; and

receiving the encoded data slices from the plurality of user devices in response to a user device request.

4. The method of claim 1 further comprises:

the first error coding dispersal storage function is substantially equal to the second error coding dispersal storage function.

5. A method comprises:

obtaining a key;

encoding the key utilizing a first error coding dispersal storage function to produce a set of encoded key slices;

outputting the set of encoded key slices;

encrypting a portion of data utilizing the key in accordance with an encryption function to produce an encrypted portion of data;

encoding the encrypted portion of data utilizing a second error coding dispersal storage function to produce a set of encoded data slices;

outputting the set of encoded data slices;

encoding the encryption function using the first or second error coding dispersal storage function to produce a set of encoded encryption function slices; and

outputting the set of encoded encryption function slices.

6. The method of claim 5 , wherein the outputting of the encoded key slices further comprises at least one of:

storing at least one encoded key slice of the set of encoded key slices in a local memory of a user device and outputting at least one other encoded key slice of the set of encoded key slices to a second user device for storage therein; and

outputting the set of encoded key slices to a plurality of user devices for storage therein.

7. The method of claim 5 , wherein the outputting the set of encoded data slices further comprises at least one of:

outputting the set of encoded data slices to a dispersed storage network (DSN) memory for storage therein; and

outputting the set of encoded data slices to a plurality of user devices for storage therein.

8. The method of claim 5 further comprises:

the first error coding dispersal storage function is substantially equal to the second error coding dispersal storage function.

9. A computer comprises:

an interface;

a local memory; and

a processing module operable to:

obtain encoded key slices from a plurality of devices;

decode a threshold number of the encoded key slices utilizing a first error coding dispersal storage function to produce a key when the threshold number of the encoded key slices have been obtained;

receive, via the interface, encoded data slices;

decode a threshold number of the encoded data slices utilizing a second error coding dispersal storage function to produce encrypted data when the threshold number of the encoded data slices have been received;

obtain encoded encryption function slices;

decode the encoded encryption function slices in accordance with the first or second error coding dispersal storage function to produce an encryption function when a threshold number of encoded encryption function slices have been obtained; and

decrypt the encrypted data utilizing the key and the encryption function to produce data.

10. The computer of claim 9 , wherein the processing module further functions to obtain the encoded key slices by at least one of:

retrieving an encoded key slice of the encoded key slices from the local memory of a user device of the plurality of user devices and retrieving, via the interface, other encoded key slices of the encoded key slices from other user devices of the plurality of user devices; and

receiving, via the interface, the encoded key slices from the other user devices of the plurality of user devices.

11. The computer of claim 9 , wherein the processing module further functions to receive the encoded data slices by at least one of:

receiving, via the interface, the encoded data slices from a dispersed storage network (DSN) memory in response to a request; and

receiving, via the interface, the encoded data slices from the plurality of user devices in response to a user device request.

12. The computer of claim 9 further comprises:

the first error coding dispersal storage function is substantially equal to the second error coding dispersal storage function.

13. A computer comprises:

an interface;

a local memory; and

a processing module operable to:

obtain a key;

encode the key utilizing a first error coding dispersal storage function to produce a set of encoded key slices;

output, via the interface, the set of encoded key slices;

encrypt a portion of data utilizing the key in accordance with an encryption function to produce an encrypted portion of data;

encode the encrypted portion of data utilizing a second error coding dispersal storage function to produce a set of encoded data slices; and

output, via the interface, the set of encoded data slices

encode the encryption function using the first or second error coding dispersal storage function to produce a set of encoded encryption function slices; and

output, via the interface, the set of encoded encryption function slices.

14. The computer of claim 13 , wherein the processing module further functions to output the encoded key slices by at least one of:

storing at least one encoded key slice of the set of encoded key slices in the local memory of a user device and outputting, via the interface, at least one other encoded key slice of the set of encoded key slices to a second user device for storage therein; and

outputting, via the interface, the set of encoded key slices to a plurality of user devices for storage therein.

15. The computer of claim 13 , wherein the processing module further functions to output the set of encoded data slices by at least one of:

outputting, via the interface, the set of encoded data slices to a dispersed storage network (DSN) memory for storage therein; and

outputting, via the interface, the set of encoded data slices to a plurality of user devices for storage therein.

16. The computer of claim 13 further comprises:

the first error coding dispersal storage function is substantially equal to the second error coding dispersal storage function.

Assignments (6)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2010
From: GLADWIN, S. CHRISTOPHER; ABHIJEET, KUMAR; DHUSE, GREG; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 025199/0287 →