IP Library Granted Patent US 8,839,368
Granted Patent B2
US 8,839,368 · App. 13/647,533 · Granted Sep 16, 2014

Acquiring a trusted set of encoded data slices

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,839,368
App. No.
13/647,533
Granted
Sep 16, 2014
Kind
B2
Abstract

A method begins by a dispersed storage (DS) processing module receiving a decode threshold number of encoded data slices of a set of encoded data slices. The method continues with the DS processing module determining whether to evoke a trust verification function and when the trust verification function is to be evoked, selecting one or more encoded data slices of the set of encoded data slices for trust verification to produce one or more selected encoded data slices. The method continues with the DS processing module sending, to a trusted source, a request to receive the one or more selected encoded data slices and when the one or more selected encoded data slices are received from the trusted source, determining that a trusted set of encoded data slices is available based on the decode threshold number of encoded data slices and the received one or more selected encoded data slices.

Claims (62)

1. A method comprises:

receiving, in response to a data segment access request, a decode threshold number of encoded data slices, wherein a data segment of data is encoded using a dispersed storage error coding function to produce a set of encoded data slices and wherein the decode threshold number of encoded data slices is a subset of the set of encoded data slices;

determining whether to evoke a trust verification function after receiving the decode threshold number of encoded data slices;

when the trust verification function is to be evoked, selecting one or more encoded data slices of the set of encoded data slices for trust verification to produce one or more selected encoded data slices;

sending, to a trusted source, a request to receive the one or more selected encoded data slices; and

when the one or more selected encoded data slices are received from the trusted source, determining that a trusted set of encoded data slices is available based on the decode threshold number of encoded data slices and the received one or more selected encoded data slices.

2. The method of claim 1 further comprises:

receiving the decode threshold number of encoded data slices via a private wireless communication network;

sending the request to the trusted source via a public wireless communication network or the private wireless communication network; and

receiving the one or more selected encoded data slices via the public wireless communication network.

3. The method of claim 1 , wherein the determining whether to evoke the trust verification function comprises at least one of:

an automated process that is triggered upon receiving the decode threshold number of encoded data slices; and

determining that at least one of the decode threshold number of encoded data slices is of questionable trustworthiness.

4. The method of claim 3 , wherein the determining that at least one of the decode threshold number of encoded data slices is of questionable trustworthiness comprises at least one of:

detecting an integrity verification failure of the at least one of the decode threshold number of encoded data slices;

detecting a time delay in receiving the at least one of the decode threshold number of encoded data slices;

decoding the decode threshold number of encoded data slices yields an error in reproducing the data segment;

detecting a communication path variance of the at least one of the decode threshold number of encoded data slices; and

detecting a time stamp variance of the at least one of the decode threshold number of encoded data slices.

5. The method of claim 1 , wherein the selecting one or more encoded data slices comprises at least one of:

an automated process that selects the one or more encoded data slices after evoking the trust verification function; and

selecting the one or more encoded data slices based on questionable trustworthiness of at least one of the decode threshold number of encoded data slices.

6. The method of claim 1 further comprises:

receiving, in response to the request, a message from the trusted source indicating that the decode threshold number of encoded data slices is not to be trusted.

7. The method of claim 1 , wherein the determining that the trusted set of encoded data slices is available comprises at least one of:

decoding different combinations of the decode threshold number of encoded data slices and the received one or more selected encoded data slices, wherein each different decoding combination reproduces the data segment; and

comparing a trusted data segment integrity value with a calculated data segment integrity value that is derived from decoding the decode threshold number of encoded data slices and the received one or more selected encoded data slices.

8. The method of claim 1 further comprises:

when the trusted set of encoded data slices is available, decoding the trusted set of encoded data slices to reproduce a trusted data segment.

9. A dispersed storage (DS) module comprises:

a first module, when operable within a computing device, causes the computing device to:

receive, in response to a data segment access request, a decode threshold number of encoded data slices, wherein a data segment of data is encoded using a dispersed storage error coding function to produce a set of encoded data slices and wherein the decode threshold number of encoded data slices is a subset of the set of encoded data slices;

a second module, when operable within the computing device, causes the computing device to:

determine whether to evoke a trust verification function after receiving the decode threshold number of encoded data slices; and

when the trust verification function is to be evoked, select one or more encoded data slices of the set of encoded data slices for trust verification to produce one or more selected encoded data slices; and

a third module, when operable within the computing device, causes the computing device to:

send, to a trusted source, a request to receive the one or more selected encoded data slices; and

when the one or more selected encoded data slices are received from the trusted source, determine that a trusted set of encoded data slices is available based on the decode threshold number of encoded data slices and the received one or more selected encoded data slices.

10. The DS module of claim 9 further comprises:

the first module further functions to receive the decode threshold number of encoded data slices via a private wireless communication network;

the third module further functions to:

send the request to the trusted source via a public wireless communication network or the private wireless communication network; and

receive the one or more selected encoded data slices via the public wireless communication network.

11. The DS module of claim 9 , wherein the second module functions to determine whether to evoke the trust verification function by at least one of:

an automated process that is triggered upon receiving the decode threshold number of encoded data slices; and

determining that at least one of the decode threshold number of encoded data slices is of questionable trustworthiness.

12. The DS module of claim 11 , wherein the second module functions to determine that at least one of the decode threshold number of encoded data slices is of questionable trustworthiness by at least one of:

detecting an integrity verification failure of the at least one of the decode threshold number of encoded data slices;

detecting a time delay in receiving the at least one of the decode threshold number of encoded data slices;

decoding the decode threshold number of encoded data slices yields an error in reproducing the data segment;

detecting a communication path variance of the at least one of the decode threshold number of encoded data slices; and

detecting a time stamp variance of the at least one of the decode threshold number of encoded data slices.

13. The DS module of claim 9 , wherein the second module functions to select one or more encoded data slices by at least one of:

an automated process that selects the one or more encoded data slices after evoking the trust verification function; and

selecting the one or more encoded data slices based on questionable trustworthiness of at least one of the decode threshold number of encoded data slices.

14. The DS module of claim 9 further comprises:

the third module further functions to receive, in response to the request, a message from the trusted source indicating that the decode threshold number of encoded data slices is not to be trusted.

15. The DS module of claim 9 , wherein the third module functions to determine that the trusted set of encoded data slices is available by at least one of:

decoding different combinations of the decode threshold number of encoded data slices and the received one or more selected encoded data slices, wherein each different decoding combination reproduces the data segment; and

comparing a trusted data segment integrity value with a calculated data segment integrity value that is derived from decoding the decode threshold number of encoded data slices and the received one or more selected encoded data slices.

16. The DS module of claim 9 further comprises:

when the trusted set of encoded data slices is available, the third module further functions to decode the trusted set of encoded data slices to reproduce a trusted data segment.

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 9, 2012
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 029096/0537 →