IP Library Granted Patent US 9,231,768
Granted Patent B2
US 9,231,768 · App. 13/154,740 · Granted Jan 5, 2016

Utilizing a deterministic all or nothing transformation in a dispersed storage network

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,231,768
App. No.
13/154,740
Granted
Jan 5, 2016
Kind
B2
Abstract

A method begins by a processing module generating a deterministic key from data and encrypting the data using the deterministic key to produce encrypted data. The method continues with the processing module generating transformed data from the encrypted data and generating a masked key from the deterministic key and the transformed data. The method continues with the processing module combining the masked key and the encrypted data to produce a secure package.

Claims (81)

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

performing a function to generate a deterministic key from a data segment, in which the data segment is one of a plurality of data segments generated by segmenting a data object and in which the data segments are processed separately for storage to store the data object;

encrypting the data segment using the deterministic key to produce encrypted data;

performing a transform function on the encrypted data to produce transformed data;

performing a masking function on the deterministic key and the transformed data to generate a masked key;

combining the masked key and the encrypted data to produce a secure package; and

error encoding the secure package to generate a plurality of data slices for storage, wherein a threshold number of data slices of the secure package are needed to reconstruct the secure package when retrieved, the threshold number of data slices being less than the plurality of data slices generated.

2. The method of claim 1 further comprises:

outputting the plurality of data slices to a wireless communication device for wireless communication of the plurality of data slices.

3. The method of claim 1 further comprises:

outputting the plurality of data slices to a dispersed storage network (DSN) memory for storage therein.

4. The method of claim 1 further comprises:

receiving a second plurality of data slices to recover a second secure package from a dispersed storage network (DSN) memory; and

facilitating storage of the plurality of data slices in the DSN memory when the secure package compares favorably to the second secure package.

5. The method of claim 1 , wherein the performing the function to generate the deterministic key comprises:

performing one or more of a hashing function, a checksum function, a hash-based message authentication code (HMAC), a mask generating function (MGF), and a compression function on the data segment to produce the deterministic key.

6. The method of claim 1 , wherein the transform function comprises at least one of:

a hashing function, a checksum function, a hash-based message authentication code (HMAC), a mask generating function (MGF), and a compression function.

7. The method of claim 1 , wherein the performing the masking function to generate the masked key comprises at least one of:

exclusive ORing (XOR) the deterministic key and the transformed data;

adding the deterministic key and a modulo conversion of the transformed data; and

modifying the deterministic key to produce a modified key and exclusive ORing the modified key and the transformed data.

8. A method for execution by a computing device, the method comprises:

retrieving a threshold number of data slices to recover a secure package, in which the secure package was initially error encoded to generate a plurality of data slices for storage, wherein the threshold number of data slices of the plurality of data slices are needed to reconstruct the secure package when retrieved, the threshold number of data slices being less than the plurality of data slices generated;

extracting a masked key and encrypted data from the secure package;

performing a transform function on the encrypted data to produce transformed data;

performing a de-masking function on the masked key and the transformed data to generate a deterministic key; and

decrypting the encrypted data based on the deterministic key to recover a data segment of a data object, in which the data segment is one of a plurality of data segments generated by segmenting the data object, wherein the data segments were processed separately for storage to store the data object.

9. The method of claim 8 , wherein the transform function comprises at least one of:

a hashing function, a checksum function, a hash-based message authentication code (HMAC), a mask generating function (MGF), and a compression function.

10. The method of claim 8 , wherein the generating the deterministic key comprises at least one of:

exclusive ORing (XOR) the masked key and the transformed data;

subtracting a modulo conversion of the transformed data from the masked key; and

exclusive ORing the transformed data and the masked key to produce a modified key; and

modifying the modified key to produce the deterministic key.

11. The method of claim 8 further comprises:

transforming the data segment into a validation key utilizing a hashing function; and

indicating that the data segment is valid when the validation key compares favorably to the deterministic key.

12. A computer comprises:

an interface;

a memory; and

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

perform a function to generate a deterministic key from a data segment, in which the data segment is one of a plurality of data segments generated by segmenting a data object and in which the data segments are processed separately for storage to store the data object;

encrypt the data segment using the deterministic key to produce encrypted data;

perform a transform function on the encrypted data produce transformed data;

perform a masking function on the deterministic key and the transformed data to generate a masked key;

combine the masked key and the encrypted data to produce a secure package; and

error encode the secure package to generate a plurality of data slices for storage, wherein a threshold number of data slices of the secure package are needed to reconstruct the secure package when retrieved, the threshold number of data slices being less than the plurality of data slices generated.

13. The computer of claim 12 , wherein the processing module further functions to:

output, via the interface, the plurality of data slices to a wireless communication device for wireless communication of the plurality of data slices.

14. The computer of claim 12 , wherein the processing module further functions to:

output, via the interface, the plurality of data slices to a dispersed storage network (DSN) memory for storage therein.

15. The computer of claim 12 , wherein the processing module further functions to:

receive, via the interface, a second plurality of data slices to recover a second secure package from a dispersed storage network (DSN) memory; and

facilitate storage of the plurality of data slices in the DSN memory when the secure package compares favorably to the second secure package.

16. The computer of claim 12 , wherein the processing module functions to perform the function to generate the deterministic key by:

performing one or more of a hashing function, a checksum function, a hash-based message authentication code (HMAC), a mask generating function (MGF), and a compression function on the data segment to produce the deterministic key.

17. The computer of claim 12 , wherein the transform function comprises at least one of:

a hashing function, a checksum function, a hash-based message authentication code (HMAC), a mask generating function (MGF), and a compression function.

18. The computer of claim 12 , wherein the processing module functions to perform the masking function to generate the masked key by at least one of:

exclusive ORing (XOR) the deterministic key and the transformed data;

adding the deterministic key and a modulo conversion of the transformed data; and

modifying the deterministic key to produce a modified key and exclusive ORing the modified key and the transformed data.

19. A computer comprises:

an interface;

a memory; and

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

retrieve, via the interface, a threshold number of data slices to recover a secure package, in which the secure package was initially error encoded to generate a plurality of data slices for storage, wherein the threshold number of data slices of the plurality of data slices are needed to reconstruct the secure package when retrieved, the threshold number of data slices being less than the plurality of data slices generated;

extract a masked key and encrypted data from the secure package;

perform a transform function on the encrypted data to produce transformed data;

perform a de-masking function on the masked key and the transformed data to generate a deterministic key; and

decrypt the encrypted data based on the deterministic key to recover a data segment of a data object, in which the data segment is one of a plurality of data segments generated by segmenting the data object, wherein the data segments were processed separately for storage to store the data object.

20. The computer of claim 19 , wherein the transform function comprises at least one of:

a hashing function, a checksum function, a hash-based message authentication code (HMAC), a mask generating function (MGF), and a compression function.

21. The computer of claim 19 , wherein the processing module functions to generate the deterministic key by at least one of:

exclusive ORing (XOR) the masked key and the transformed data;

subtracting a modulo conversion of the transformed data from the masked key; and

exclusive ORing the transformed data and the masked key to produce a modified key and modifying the modified key to produce the deterministic key.

22. The computer of claim 19 , wherein the processing module further functions to:

transform the data segment into a validation key utilizing a hashing function; and

indicate that the data segment is valid when the validation key compares favorably to the deterministic key.

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 Jun 7, 2011
From: RESCH, JASON K.; LEGGETTE, WESLEY
To: CLEVERSAFE, INC.
Reel/Frame 026402/0330 →