IP Library Granted Patent US 9,432,341
Granted Patent B2
US 9,432,341 · App. 14/256,472 · Granted Aug 30, 2016

Securing 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 9,432,341
App. No.
14/256,472
Granted
Aug 30, 2016
Kind
B2
Abstract

A method begins by a source processing module securing data based on a key stream to produce secured data, where the key stream is derived from a unilateral encryption key accessible only to the source processing module, and sending the secure data to an intermediator processing module, where desecuring the secured data is divided into two partial desecuring stages. The method continues with the intermediator processing module partially desecuring the secure data in accordance with a first partial desecuring stage to produce partially desecured data and sending the partially desecured data to a destination processing module. The method continues with the destination processing module further partially desecuring the partially desecured data in accordance with a second desecuring stage to recover the data, where the destination processing module does not have access to the encryption key or to the key stream.

Claims (81)

1. A method comprises:

a first set of steps performed by a first computing unit of a dispersed storage network (DSN) includes:

converting an encryption key into a key stream;

encrypting data based on the key stream and an encryption function to produce encrypted data;

dispersed storage error encoding the key stream to produce a set of encoded key stream slices;

dispersed storage error encoding the encrypted data to produce a set of encoded and encrypted data slices; and

outputting the set of encoded key stream slices and the set of encoded and encrypted data slices to storage units of the DSN for storage therein;

a second set of steps performed by one of the storage units includes:

receiving a retrieval request regarding an encoded key stream slice of the set of encoded key stream slices and an encoded and encrypted data slice of the set of encoded and encrypted data slices;

partially dispersed storage error decoding the encoded key stream slice to produce a partially decoded key stream vector;

partially dispersed storage error decoding the encoded and encrypted data slice to produce a partially decoded and encrypted data vector; and

partially decrypting the partially decoded and encrypted data vector in accordance with the encryption function and based on the partially decoded key stream vector to produce a partially decrypted and decoded data vector; and

a third set of steps performed by a second computing unit of the DSN includes:

receiving partially decrypted and decoded data vectors in response to sent retrieval requests that includes the retrieval request; and

reproducing, without access to the encryption key and without access to the key stream, the data from the partially decrypted and decoded data vectors based on a function in accordance with the encryption function, wherein the function includes an exclusive OR.

2. The method of claim 1 , wherein the encryption function comprises:

an exclusive OR function.

3. The method of claim 1 , wherein the partially dispersed storage error decoding the encoded key stream slice to produce the partially decoded key stream vector comprises:

obtaining a square matrix, wherein the square matrix is derived from an encoding matrix of the dispersed storage error encoding; and

generating the partially decoded key stream vector based on the square matrix and the encoded key stream slice.

4. The method of claim 1 , wherein the partially dispersed storage error decoding the encoded and encrypted data slice to produce the partially decoded and encrypted data vector comprises:

obtaining a square matrix, wherein the square matrix is derived from an encoding matrix of the dispersed storage error encoding; and

generating the partially decoded and encrypted data vector based on the square matrix and the encoded and encrypted data slice.

5. The method of claim 1 , wherein the partially decrypting the partially decoded and encrypted data vector in accordance with the encryption function and based on the partially decoded key stream vector to produce the partially decrypted and decoded data vector comprises:

exclusive ORing the partially decoded and encrypted data vector with the partially decoded key stream vector to produce the partially decrypted and decoded data vector.

6. A method comprises:

securing, by a source processing module, data based on a key stream and in accordance with at least one securing function to produce secured data, wherein the key stream is derived from a unilateral encryption key accessible only to the source processing module;

sending, by the source processing module, the secure data to an intermediator processing module, wherein desecuring the secured data is divided into two partial desecuring stages;

partially desecuring, by the intermediator processing module, the secure data in accordance with a first partial desecuring stage of the two partial desecuring stages to produce partially desecured data;

sending, by the intermediator processing module, the partially desecured data to a destination processing module; and

further partially desecuring, by the destination processing module, the partially desecured data in accordance with a second desecuring stage of the two partial desecuring stages to recover the data, wherein the destination processing module does not have access to the unilateral encryption key or to the key stream, and wherein the further partially desecuring the partially desecured data includes: separating the partially desecured data into partially desecured data vectors; and

exclusive ORing the partially desecured data vectors to produce the recovered data.

7. The method of claim 6 , wherein the securing the data comprises:

exclusive ORing the data with the key stream to produce encrypted data; and

dispersed storage error encoding the encrypted data to produce a set of encoded data slices as the secure data.

8. The method of claim 6 , wherein the partially desecuring the secure data comprises:

partially decoding the secure data to produce partially desecured data;

partially decoding secured information regarding the key stream to produce partially desecured key stream; and

exclusive ORing the partially desecured data and the partially desecured key stream to produce the partially desecured data.

9. A non-transitory computer readable storage medium comprises:

a first memory section that stores operational instructions that, when executed by one or more processing modules of a first computing device of a dispersed storage network (DSN), causes the first computing device to:

convert an encryption key into a key stream;

encrypt data based on the key stream and an encryption function to produce encrypted data;

dispersed storage error encode the key stream to produce a set of encoded key stream slices;

dispersed storage error encode the encrypted data to produce a set of encoded and encrypted data slices; and

output the set of encoded key stream slices and the set of encoded and encrypted data slices to storage units of the DSN for storage therein;

a second memory section that stores operational instructions that, when executed by one or more processing modules of one of the storage units of the DSN, causes the one of the storage units to:

receive a retrieval request regarding an encoded key stream slice of the set of encoded key stream slices and an encoded and encrypted data slice of the set of encoded and encrypted data slices;

partially dispersed storage error decode the encoded key stream slice to produce a partially decoded key stream vector;

partially dispersed storage error decode the encoded and encrypted data slice to produce a partially decoded and encrypted data vector; and

partially decrypt the partially decoded and encrypted data vector in accordance with the encryption function and based on the partially decoded key stream vector to produce a partially decrypted and decoded data vector; and

a third memory section that stores operational instructions that, when executed by one or more processing modules of a second computing device of the DSN, causes the second computing device to:

receive partially decrypted and decoded data vectors in response to sent retrieval requests that includes the retrieval request; and

reproduce, without access to the encryption key and without access to the key stream, the data from the partially decrypted and decoded data vectors based on a function in accordance with the encryption function, wherein the function includes an exclusive OR.

10. The non-transitory computer readable storage medium of claim 9 , wherein the encryption function comprises:

an exclusive OR function.

11. The non-transitory computer readable storage medium of claim 9 , wherein the one or more processing modules of the one of the storage units functions to execute the operational instructions stored by the second memory section to cause the one of the storage units to partially dispersed storage error decode the encoded key stream slice to produce the partially decoded key stream vector by:

obtaining a square matrix, wherein the square matrix is derived from an encoding matrix of the dispersed storage error encoding; and

generating the partially decoded key stream vector based on the square matrix and the encoded key stream slice.

12. The non-transitory computer readable storage medium of claim 9 , wherein the one or more processing modules of the one of the storage units functions to execute the operational instructions stored by the second memory section to cause the one of the storage units to partially dispersed storage error decode the encoded and encrypted data slice to produce the partially decoded and encrypted data vector by:

obtaining a square matrix, wherein the square matrix is derived from an encoding matrix of the dispersed storage error encoding; and

generating the partially decoded and encrypted data vector based on the square matrix and the encoded and encrypted data slice.

13. The non-transitory computer readable storage medium of claim 9 , wherein the one or more processing modules of the one of the storage units functions to execute the operational instructions stored by the second memory section to cause the one of the storage units to partially decrypt the partially decoded and encrypted data vector in accordance with the encryption function and based on the partially decoded key stream vector to produce the partially decrypted and decoded data vector by:

exclusive ORing the partially decoded and encrypted data vector with the partially decoded key stream vector to produce the partially decrypted and decoded data vector.

14. A non-transitory computer readable storage medium comprises:

a first memory section that stores operational instructions that, when executed by a source processing module of one or more processing modules of one or more computing devices of a dispersed storage network (DSN), causes the one or more computing devices to:

secure data based on a key stream and in accordance with at least one securing function to produce secured data, wherein the key stream is derived from a unilateral encryption key accessible only to the source processing module; and

send the secure data to an intermediator processing module of the one or more processing modules, wherein desecuring the secured data is divided into two partial desecuring stages;

a second memory section that stores operational instructions that, when executed by the intermediator processing module of the one or more computing devices of the DSN, causes the one or more computing devices to:

partially desecure the secure data in accordance with a first partial desecuring stage of the two partial desecuring stages to produce partially desecured data; and

send the partially desecured data to a destination processing module of the one or more processing modules; and

a third memory section that stores operational instructions that, when executed by the destination processing module of the one or more computing devices of the DSN, causes the one or more computing devices to:

further partially desecure the partially desecured data in accordance with a second desecuring stage of the two partial desecuring stages to recover the data, wherein the destination processing module does not have access to the unilateral encryption key or to the key stream, and wherein the further partially desecuring the partially desecured data includes: separating the partially desecured data into partially desecured data vectors; and

exclusive ORing the partially desecured data vectors to produce the recovered data.

15. The non-transitory computer readable storage medium of claim 14 , wherein the source processing module functions to execute the operational instructions stored by the first memory section to cause the one or more computing devices of the DSN to secure the data by:

exclusive ORing the data with the key stream to produce encrypted data; and

dispersed storage error encoding the encrypted data to produce a set of encoded data slices as the secure data.

16. The non-transitory computer readable storage medium of claim 14 , wherein the intermediator processing module functions to execute the operational instructions stored by the second memory section to cause the one or more computing devices of the DSN to partially desecure the secure data by:

partially decoding the secure data to produce partially desecured data;

partially decoding secured information regarding the key stream to produce partially desecured key stream; and

exclusive ORing the partially desecured data and the partially desecured key stream to produce the partially desecured data.

Assignments (4)
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 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2014
From: RESCH, JASON K.; DHUSE, GREG
To: CLEVERSAFE, INC.
Reel/Frame 032728/0482 →