IP Library Patent Application 16240390
Patent Application
App. No. 16/240,390

ENCODING DATA UTILIZING A ZERO INFORMATION GAIN FUNCTION

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 None
App. No.
16/240,390
Abstract

A method begins by dispersed storage error encoding a data segment of data in accordance with dispersed data storage parameters to produce a set of encoded data slices (EDSs). The method continues with selecting a subset of EDSs from the set of EDSs. A number of encoded data slices included the subset of EDSs is less than a decode threshold number of EDSs that is required to reproduce the data segment. The method continues with generating a subset of zero information gain (ZIG) encoded data slices, where the data segment is able to be reproduced utilizing the subset of EDSs and the subset of ZIG encoded data slices. The method continues with sending the subset of EDSs to a first memory of the DSN for storage therein and sending the subset of ZIG encoded data slices to a second memory of the DSN for storage therein.

Claims (50)

1 . A method for execution by a computing device of a dispersed storage network (DSN), the method comprises:

dispersed storage error encoding, by the computing device, a data segment of data in accordance with dispersed data storage parameters to produce a set of encoded data slices, wherein the dispersed data storage parameters include a decode threshold number, and wherein the decode threshold number of encoded data slices of the set of encoded data slices is required to recover the data segment;

selecting, by the computing device, a subset of encoded data slices from the set of encoded data slices, wherein a number of encoded data slices included the subset of encoded data slices is less than the decode threshold number;

generating, by the computing device, a subset of zero information gain (ZIG) encoded data slices, wherein a first ZIG encoded data slice of the subset of ZIG encoded data slices is generated by matrix multiplying a first decoding matrix and a first encoded data slice of the set of encoded data slices, wherein the first encoded data slice is not included in the subset of encoded data slices, and wherein the data segment is able to be reproduced utilizing the subset of encoded data slices and the subset of ZIG encoded data slices;

sending, by the computing device, the subset of encoded data slices to a first memory of the DSN for storage therein; and

sending, by the computing device, the subset of ZIG encoded data slices to a second memory of the DSN for storage therein.

2 . The method of claim 1 , wherein generating the first ZIG encoded data slice further comprises:

matrix multiplying the first decoding matrix and the first encoded data slice to produce a vector; and

matrix multiplying the vector by a row of an encoding matrix corresponding to the first encoded data slice to produce the first ZIG encoded data slice.

3 . The method of claim 1 further comprises:

generating the first decoding matrix by:

reducing an encoding matrix to produce a square matrix that exclusively includes rows associated with the subset of encoded data slices and an encoded data slice being represented by the first ZIG encoded data slice; and

inverting the square matrix to produce the decoding matrix.

4 . The method of claim 1 , wherein the sending the subset of ZIG encoded data slices comprises:

prior to sending, obfuscating the first ZIG encoded data slice using an obfuscating function.

5 . The method of claim 4 , wherein the obfuscating function comprises one of:

exclusive ORing the first ZIG encoded data slice with an obfuscating value;

masking the first ZIG encoded data slice;

encrypting the first ZIG encoded data slice; and

performing a deterministic function on the first ZIG encoded data slice.

6 . The method of claim 1 , wherein generating the first ZIG encoded data slice further comprises:

generating a first partial encoded data slice based on the first decoding matrix, the first encoded data slice and a row of the encoding matrix corresponding to the first encoded data slice;

generating a second partial encoded data slice based on a second decoding matrix, a second encoded data slice and a row of the encoding matrix corresponding to the second encoded data slice, wherein the second encoded data slice is an encoded data slice of the set of encoded data slices and is not included in the subset of encoded data slices; and

combining the first and second partial encoded data slices to produce the first ZIG encoded data slice.

7 . A computing device of a dispersed storage network (DSN) comprises:

memory;

an interface; and

a processing module operably coupled to the memory and the interface, wherein the processing module is operable to:

dispersed storage error encode a data segment of data in accordance with dispersed data storage parameters to produce a set of encoded data slices, wherein the dispersed data storage parameters include a decode threshold number, and wherein the decode threshold number of encoded data slices of the set of encoded data slices is required to recover the data segment;

select a subset of encoded data slices from the set of encoded data slices, wherein a number of encoded data slices included the subset of encoded data slices is less than the decode threshold number;

generate a subset of zero information gain (ZIG) encoded data slices, wherein a first ZIG encoded data slice of the subset of ZIG encoded data slices is generated by matrix multiplying a first decoding matrix and a first encoded data slice of the set of encoded data slices, wherein the first encoded data slice is not included in the subset of encoded data slices, and wherein the data segment is able to be reproduced utilizing the subset of encoded data slices and the subset of ZIG encoded data slices;

send, via the interface, the subset of encoded data slices to a first memory of the DSN for storage therein; and

send, via the interface, the subset of ZIG encoded data slices to a second memory of the DSN for storage therein.

8 . The computing device of claim 7 , wherein the processing module is further operable to generate the first ZIG encoded data slice by:

matrix multiplying the first decoding matrix and the first encoded data slice to produce a vector; and

matrix multiplying the vector by a row of an encoding matrix corresponding to the first encoded data slice to produce the first ZIG encoded data slice.

9 . The computing device of claim 7 , wherein the processing module is further operable to generate the first decoding matrix by:

reducing an encoding matrix to produce a square matrix that exclusively includes rows associated with the subset of encoded data slices and an encoded data slice being represented by the first ZIG encoded data slice; and

inverting the square matrix to produce the decoding matrix.

10 . The computing device of claim 7 , wherein prior to the sending, via the interface, the subset of ZIG encoded data slices, the processing module is further operable to:

obfuscate the first ZIG encoded data slice using an obfuscating function.

11 . The computing device of claim 10 , wherein the processing module is operable to perform the obfuscating function by one of:

exclusive ORing the first ZIG encoded data slice with an obfuscating value;

masking the first ZIG encoded data slice;

encrypting the first ZIG encoded data slice; and

performing a deterministic function on the first ZIG encoded data slice.

12 . The computing device of claim 7 , wherein the processing module is further operable to generate the first ZIG encoded data slice by:

generating a first partial encoded data slice based on the first decoding matrix, the first encoded data slice and a row of the encoding matrix corresponding to the first encoded data slice;

generating a second partial encoded data slice based on a second decoding matrix, a second encoded data slice and a row of the encoding matrix corresponding to the second encoded data slice, wherein the second encoded data slice is an encoded data slice of the set of encoded data slices and is not included in the subset of encoded data slices; and

combining the first and second partial encoded data slices to produce the first ZIG encoded data slice.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2019
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 047906/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2019
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 048012/0576 →