IP Library Granted Patent US 9,274,977
Granted Patent B2
US 9,274,977 · App. 13/270,654 · Granted Mar 1, 2016

Storing data integrity information utilizing dispersed storage

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,274,977
App. No.
13/270,654
Granted
Mar 1, 2016
Kind
B2
Abstract

A method begins by a processing module generating an integrity check value for each encoded data slice of a set of encoded data slices to produce a set of integrity check values. The method continues with the processing module encoding the set of integrity check values to produce encoded integrity check values. The method continues with the processing module sending the encoded integrity check values for storage in a memory system.

Claims (39)

1. A method for execution by a processing module of a computing device, the method comprises:

generating a set of encoded data slices from a data segment in accordance with an error coding function, wherein X number of encoded data slices are produced when error coding the data segment and wherein at least a threshold number T of the X number of encoded data slices are needed to reconstruct the data segment, where T is less than X, in which the X number of encoded data slices are to be stored in X number of storage locations of a dispersed storage network;

generating an integrity check value for each of the encoded data slices to produce a set of integrity check values;

encrypting the set of integrity check values;

encoding the encrypted set of integrity check values in accordance with the error coding function to produce a set of encoded integrity check slices;

sending the set of encoded data slices to the dispersed storage network for storage at the X number of storage locations within a first set of dispersed storage (DS) units in the dispersed storage network; and

sending, separately from the sending of the set of encoded data slices, the set of encoded integrity check slices for storage at different locations within a second set of DS units in the dispersed storage network.

2. The method of claim 1 ,

wherein the first and second sets of DS units overlap such that the first and second sets of DS units are not mutually exclusive.

3. The method of claim 1 , wherein the encrypting of the set of integrity check values comprises at least one of:

encrypting the set of integrity check values utilizing an all or nothing (AONT) transformation;

encrypting the set of integrity check values utilizing a public-key;

encrypting the set of integrity check values utilizing a private-key; or

signing the set of integrity check values utilizing the private-key.

4. The method of claim 1 further comprises:

storing the integrity check values in a local memory.

5. The method of claim 1 , wherein the generating of the integrity check values comprises:

applying an integrity check function on respective ones of the encoded data slices to generate the integrity check values, wherein the integrity check function includes at least one of a hashing function, a cyclic redundancy check function, a parity check function, or a mask generating function (MGF).

6. A computer comprises:

an interface;

a memory; and

a processing module operably coupled to the memory, wherein the processing module is configured to:

generate a set of encoded data slices from a data segment in accordance with an error coding function, wherein X number of encoded data slices are produced when error coding the data segment and wherein at least a threshold number T of the X number of encoded data slices are needed to reconstruct the data segment, where T is less than X, in which the X number of encoded data slices are to be stored in X number of storage locations of a dispersed storage network;

generate an integrity check value for each of the encoded data slices to produce a set of integrity check values;

encrypt the set of integrity check values;

encode the encrypted set of integrity check values in accordance with the error coding function to produce a set of encoded integrity check slices;

send, via the interface, the set of encoded data slices to the dispersed storage network for storage at the X number of storage locations within a first set of dispersed storage (DS) units in the dispersed storage network; and

send, via the interface and separately from the sending of the set of encoded data slices, the set of encoded integrity check slices for storage at different locations within a second set of DS units in the dispersed storage network.

7. The computer of claim 6 ,

wherein the first and second sets of DS units overlap such that the first and second sets of DS units are not mutually exclusive.

8. The computer of claim 6 , wherein the processing module functions to encrypt the set of integrity check values by at least one of:

encrypting the set of integrity check values utilizing an all or nothing (AONT) transformation;

encrypting the set of integrity check values utilizing a public-key;

encrypting the set of integrity check values utilizing a private-key; or

signing the set of integrity check values utilizing the private-key.

9. The computer of claim 6 , wherein the processing module further functions to:

store the integrity check values in a local memory.

10. The computer of claim 6 , wherein the processing module functions to generate the integrity check values by:

applying an integrity check function on respective ones of the encoded data slices to generate the integrity check values, wherein the integrity check function includes at least one of a hashing function, a cyclic redundancy check function, a parity check function, or a mask generating function (MGF).

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 11, 2011
From: RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 027045/0343 →