IP Library Granted Patent US 9,098,441
Granted Patent B2
US 9,098,441 · App. 13/937,400 · Granted Aug 4, 2015

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,098,441
App. No.
13/937,400
Granted
Aug 4, 2015
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 (45)

1. A method comprises:

obtaining at least a decode threshold number of encoded data slices of a set of encoded data slices that are stored in a first set of dispersed storage (DS) units in a memory system;

obtaining, separately from the obtaining the encoded data slices, encoded integrity check values that are stored in a second set of dispersed storage (DS) units in the memory system;

decoding the encoded integrity check values to produce a set of stored integrity check values, wherein each integrity check value of the set of stored integrity check values is associated with a corresponding encoded data slice of the set of encoded data slices, wherein the set of stored integrity check values were encoded using encryption or a dispersed storage error encoding function to produce the encoded integrity check values;

calculating an integrity check value for each of the at least the decode threshold number of encoded data slices to produce a set of calculated integrity check values;

for each the at least the decode threshold number of encoded data slices, comparing a corresponding integrity check value of the set of stored integrity check values with a corresponding integrity check value of the set of calculated integrity check values; and

when the comparing of the corresponding integrity check values for each of the at least the decode threshold number of encoded data slices is favorable, indicating that the at least the decode threshold number of encoded data slices is valid.

2. The method of claim 1 , wherein the decoding the encoded integrity check values comprises at least one of:

decrypting the encoded integrity check values to produce decrypted integrity check values; and

dispersed storage error decoding the encoded integrity check values or the decrypted integrity check values to produce dispersed storage error decoded integrity check values, wherein the set of stored integrity check values includes the decrypted integrity check values or the dispersed storage error decoded integrity check values.

3. The method of claim 2 , wherein the decrypting the encrypted integrity check values comprises at least one of:

decrypting the integrity check values utilizing an all or nothing (AONT) transformation;

decrypting the integrity check values utilizing a public-key;

decrypting the integrity check values utilizing a private key; and

verifying a signature of the integrity check values utilizing the private key.

4. The method of claim 1 further comprises:

when the at least the decode threshold number of encoded data slices is valid, dispersed storage error decoding the at least the decode threshold number of encoded data slices to reproduce a data segment.

5. The method of claim 1 further comprises:

when the comparing of the corresponding integrity check values for each of the at least the decode threshold number of encoded data slices is unfavorable, indicating that the at least the decode threshold number of encoded data slices is invalid.

6. The method of claim 1 , wherein the calculating the integrity check value for each of the at least the decode threshold number of encoded data slices comprises:

applying an integrity check function on the encoded data slice to generate the integrity check value, wherein the integrity check function includes at least one of a hashing function, a cyclic redundancy check function, a parity check function, and a mask generating function (MGF).

7. A computer comprises:

an interface;

a memory; and

a processing module operable to:

obtain at least a decode threshold number of encoded data slices of a set of encoded data slices that are stored in a first set of dispersed storage (DS) units in a memory system;

obtain, separately from the obtaining the encoded data slices, encoded integrity check values that are stored in a second set of dispersed storage (DS) units in the memory system;

decode the encoded integrity check values to produce a set of stored integrity check values, wherein each integrity check value of the set of stored integrity check values is associated with a corresponding encoded data slice of the set of encoded data slices, wherein the set of stored integrity check values were encoded using encryption or a dispersed storage error encoding function to produce the encoded integrity check values;

calculate an integrity check value for each of the at least the decode threshold number of encoded data slices to produce a set of calculated integrity check values;

for each the at least the decode threshold number of encoded data slices, compare a corresponding integrity check value of the set of stored integrity check values with a corresponding integrity check value of the set of calculated integrity check values; and

when the comparing of the corresponding integrity check values for each of the at least the decode threshold number of encoded data slices is favorable, indicate that the at least the decode threshold number of encoded data slices is valid.

8. The computer of claim 7 , wherein the processing module functions to decode the encoded integrity check values by at least one of:

decrypting the encoded integrity check values to produce decrypted integrity check values; and

dispersed storage error decoding the encoded integrity check values or the decrypted integrity check values to produce dispersed storage error decoded integrity check values, wherein the set of stored integrity check values includes the decrypted integrity check values or the dispersed storage error decoded integrity check values.

9. The computer of claim 8 , wherein the processing module functions to decrypt the encrypted integrity check values by at least one of:

decrypting the integrity check values utilizing an all or nothing (AONT) transformation;

decrypting the integrity check values utilizing a public-key;

decrypting the integrity check values utilizing a private key; and

verifying a signature of the integrity check values utilizing the private key.

10. The computer of claim 7 , wherein the processing module further functions to:

when the at least the decode threshold number of encoded data slices is valid, dispersed storage error decode the at least the decode threshold number of encoded data slices to reproduce a data segment.

11. The computer of claim 7 , wherein the processing module further functions to:

when the comparing of the corresponding integrity check values for each of the at least the decode threshold number of encoded data slices is unfavorable, indicate that the at least the decode threshold number of encoded data slices is invalid.

12. The computer of claim 7 , wherein the processing module functions to calculate the integrity check value for each of the at least the decode threshold number of encoded data slices by:

applying an integrity check function on the encoded data slice to generate the integrity check value, wherein the integrity check function includes at least one of a hashing function, a cyclic redundancy check function, a parity check function, and a mask generating function (MGF).

Assignments (5)
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 →