IP Library Granted Patent US 8,819,452
Granted Patent B2
US 8,819,452 · App. 12/885,124 · Granted Aug 26, 2014

Efficient storage of encrypted data 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 8,819,452
App. No.
12/885,124
Granted
Aug 26, 2014
Kind
B2
Abstract

A method begins with a processing module obtaining data to store and determining whether substantially similar data to the data is stored. When the substantially similar data is not stored, the method continues with the processing module generating a first encryption key based on the data, encoding the first encryption key into encoded data slices in accordance with an error coding dispersal storage function, and storing the encoded data slices in a dispersed storage network (DSN) memory. The method continues with the processing module encrypting the data using an encryption key of the substantially similar data in accordance with an encryption function to produce encrypted data, compressing the encrypted data in accordance with a compression function to produce compressed data, storing the compressed data when the substantially similar data is stored.

Claims (90)

1. A method comprises:

obtaining data to store;

determining whether similar data to the data is stored; and

when the similar data is stored:

encrypting the data using an encryption key of the similar data in accordance with an encryption function to produce encrypted data;

compressing the encrypted data in accordance with a compression function to produce compressed data; and

storing the compressed data; and

when the similar data is not stored:

generating a first encryption key based on the data;

encrypting the data using the first encryption key in accordance with the encryption function to produce first encrypted data;

compressing the first encrypted data in accordance with the compression function to produce first compressed data; and

storing the first compressed data.

2. The method of claim 1 , wherein the generating the first encryption key comprises at least one of:

setting the first encryption key to be equal to the data; and

performing a function on the data to produce a representation of the data and setting the first encryption key to be equal to the representation of the data.

3. The method of claim 1 further comprises:

encoding the first encryption key into a plurality of encoded data slices in accordance with an error coding dispersal storage function; and

storing the plurality of encoded data slices in a dispersed storage network (DSN) memory.

4. The method of claim 1 further comprises:

generating a key reference based on the first encryption key, wherein the key reference contains storage location information of the first encryption key.

5. The method of claim 1 , wherein the determining whether similar data to the data is stored comprises:

generating a first encryption key based on the data;

comparing a representation of the first encryption key with a representation of the encryption key of the similar data; and

when the representation of first encryption key compares favorably with the representation of the encryption key of the similar data, indicating that the similar data is stored.

6. The method of claim 1 , wherein the compressing the encrypted data comprises one or more of:

compressing the encrypted data using one or more of a run-length encoding function, a Lempel-Ziv-Welch compression algorithm, a Huffman compression algorithm, a Golomb compression algorithm, a fractal compression algorithm, a wavelet compression algorithm; and

encrypting the encrypted data utilizing a second encryption algorithm to produce further encrypted data.

7. A method comprises:

obtaining data to store;

determining whether similar data to the data is stored; and

when the similar data is not stored:

generating an encryption key to be similar to the data;

generating a key reference regarding the encryption key;

performing a mathematical function on the data based on the encryption key to produce a data result having a near constant bit pattern;

compressing the data result in accordance with a compression function to produce compressed data;

storing the compressed data and the key reference in a first storage manner; and

storing the encryption key in a second storage manner.

8. The method of claim 7 further comprises:

storing the compressed data and the key reference in local secure memory; and

storing the encryption key as a plurality of encoded data slices in dispersed storage network memory.

9. The method of claim 7 , wherein the determining whether similar data to the data is not stored comprises:

comparing a representation of the encryption key with a representation of the encryption key of the similar data; and

when the representation of encryption key compares unfavorably with the representation of the encryption key of the similar data, indicating that the similar data is not stored.

10. A computer comprises:

an interface; and

a processing module operable to:

obtain data to store;

determine whether similar data to the data is stored; and

when the similar data is stored:

encrypt the data using an encryption key of the similar data in accordance with an encryption function to produce encrypted data;

compress the encrypted data in accordance with a compression function to produce compressed data; and

store, via the interface, the compressed data; and

when the substantially similar data is not stored:

generate a first encryption key based on the data;

encrypt the data using the first encryption key in accordance with the encryption function to produce first encrypted data;

compress the first encrypted data in accordance with the compression function to produce first compressed data; and

store, via the interface, the first compressed data.

11. The computer of claim 10 , wherein the processing module further functions to generate the first encryption key by at least one of:

setting the first encryption key to be equal to the data; and

performing a function on the data to produce a representation of the data and setting the first encryption key to be equal to the representation of the data.

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

encode the first encryption key into a plurality of encoded data slices in accordance with an error coding dispersal storage function; and

control storing of the plurality of encoded data slices in a dispersed storage network (DSN) memory.

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

generate a key reference based on the first encryption key, wherein the key reference contains storage location information of the first encryption key.

14. The computer of claim 10 , wherein the processing module further functions to determine whether similar data to the data is stored by:

generating a first encryption key based on the data;

comparing a representation of the first encryption key with a representation of the encryption key of the similar data; and

when the representation of first encryption key compares favorably with the representation of the encryption key of the similar data, indicating that the similar data is stored.

15. The computer of claim 10 , wherein the processing module further functions to compress the encrypted data by one or more of:

compressing the encrypted data using one or more of a run-length encoding function, a Lempel-Ziv-Welch compression algorithm, a Huffman compression algorithm, a Golomb compression algorithm, a fractal compression algorithm, a wavelet compression algorithm; and

encrypting the encrypted data utilizing a second encryption algorithm to produce further encrypted data.

16. A computer comprises:

an interface; and

a processing module operable to:

obtain data to store;

determine whether similar data to the data is stored; and

when the similar data is not stored:

generate an encryption key to be similar to the data;

generate a key reference regarding the encryption key;

perform a mathematical function on the data based on the encryption key to produce a data result having a near constant bit pattern;

compress the data result in accordance with a compression function to produce compressed data;

store, via the interface, the compressed data and the key reference in a first storage manner; and

store, via the interface, the encryption key in a second storage manner.

17. The computer of claim 16 , wherein the processing module further functions to:

control storing of the compressed data and the key reference in local secure memory; and

control storing of the encryption key as a plurality of encoded data slices in dispersed storage network memory.

18. The computer of claim 16 , wherein the processing module further functions to determine whether similar data to the data is not stored by:

comparing a representation of the encryption key with a representation of the encryption key of the similar data; and

when the representation of encryption key compares unfavorably with the representation of the encryption key of the similar data, indicating that the similar data is not stored.

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 Feb 10, 2011
From: GLADWIN, S. CHRISTOPHER; ABHIJEET, KUMAR; DHUSE, GREG; RESCH, JASON K.; GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 025794/0005 →