IP Library Granted Patent US 10,015,152
Granted Patent B2
US 10,015,152 · App. 15/217,242 · Granted Jul 3, 2018

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 10,015,152
App. No.
15/217,242
Granted
Jul 3, 2018
Kind
B2
Abstract

A method for execution by a dispersed storage and task (DST) processing unit includes transforming a counter seed into a set of counter values; obtaining an encryption key; encrypting at least two portions of data utilizing the encryption key and at least two of the set of counter values, in parallel, to produce at least two ciphertexts; performing a first deterministic function on the at least two ciphertexts, in parallel, to produce at least two transformed ciphertexts; performing a second deterministic function on the at least two transformed ciphertexts to produce a mask; masking the encryption key using the mask to produce a masked key; and combining the at least two ciphertexts and the masked key to produce secure data.

Claims (44)

1. A method for execution by a dispersed storage and task (DST) processing unit that includes a processor, the method comprises:

transforming a counter seed into a set of counter values;

obtaining an encryption key;

encrypting, via an encryption module having a first block cipher module and a second block cipher module, at least two portions of data utilizing the encryption key and at least two of the set of counter values, in parallel, to produce at least two ciphertexts, wherein the encrypting the at least two portions in parallel to produce at least two ciphertexts includes encrypting a first portion of the data using the first block cipher module to produce a first ciphertext and encrypting a second portion of the data using the second block cipher module to generate a second ciphertext;

performing, via a deterministic function module having a first deterministic function unit and a second deterministic function unit, a first deterministic function on the at least two ciphertexts, in parallel, to produce at least two transformed ciphertexts, wherein the performing the first deterministic function on the at least two ciphertexts in parallel includes processing the first ciphertext using the first deterministic function unit to produce a first transformed ciphertext and processing the second ciphertext using the second deterministic function unit to produce a second transformed ciphertext;

performing, via the deterministic function module, a second deterministic function on the first transformed ciphertext and the second transformed ciphertext to produce a mask;

masking the encryption key using the mask to produce a masked key; and

combining the at least two ciphertexts and the masked key to produce secure data.

2. The method of claim 1 wherein obtaining the encryption key includes at least one of retrieving, receiving, generating based on a random number, and generating based on a pseudo-random algorithm and a key seed.

3. The method of claim 1 wherein the second deterministic function is an exclusive OR function.

4. The method of claim 1 wherein the masking includes applying a masking function based on the mask.

5. The method of claim 1 wherein the masking includes performing an exclusive OR function on the encryption key and the mask to produce the masked key.

6. The method of claim 1 wherein combining the at least two ciphertexts and the masked key includes appending the masked key to the at least two ciphertexts to produce the secure data.

7. The method of claim 1 wherein combining the at least two ciphertexts and the masked key includes interleaving the masked key with the at least two ciphertexts to produce the secure data.

8. A processing system of a dispersed storage and task (DST) processing unit comprises:

a plurality of processors;

a memory that stores operational instructions, that when executed by the plurality of processors cause the processing system to:

transform a counter seed into a set of counter values;

obtain an encryption key;

encrypt, via an encryption module having a first block cipher module and a second block cipher module, at least two portions of data utilizing the encryption key and at least two of the set of counter values, in parallel, to produce at least two ciphertexts, wherein encrypting the at least two portions in parallel to produce at least two ciphertexts includes encrypting a first portion of the data using the first block cipher module to produce a first ciphertext and encrypting a second portion of the data using the second block cipher module to generate a second ciphertext;

perform, via a deterministic function module having a first deterministic function unit and a second deterministic function unit, a first deterministic function on the at least two ciphertexts, in parallel, to produce at least two transformed ciphertexts, wherein performing the first deterministic function on the at least two ciphertexts in parallel includes processing the first ciphertext using the first deterministic function unit to produce a first transformed ciphertext and processing the second ciphertext using the second deterministic function unit to produce a second transformed ciphertext;

perform, via the deterministic function module, a second deterministic function on the first transformed ciphertext and the second transformed ciphertext to produce a mask;

mask the encryption key using the mask to produce a masked key; and

combine the at least two ciphertexts and the masked key to produce secure data.

9. The processing system of claim 8 wherein obtaining the encryption key includes at least one of retrieving, receiving, generating based on a random number, and generating based on a pseudo-random algorithm and a key seed.

10. The processing system of claim 8 wherein the second deterministic function is an exclusive OR function.

11. The processing system of claim 8 wherein the masking includes applying a masking function based on the mask.

12. The processing system of claim 8 wherein the masking includes performing an exclusive OR function on the encryption key and the mask to produce the masked key.

13. The processing system of claim 8 wherein combining the at least two ciphertexts and the masked key includes appending the masked key to the at least two ciphertexts to produce the secure data.

14. The processing system of claim 8 wherein combining the at least two ciphertexts and the masked key includes interleaving the masked key with the at least two ciphertexts to produce the secure data.

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

at least one memory section that stores operational instructions that, when executed by a processing system of a dispersed storage network (DSN) that includes a plurality of processors and a memory, causes the processing system to:

transform a counter seed into a set of counter values;

obtain an encryption key;

encrypt, via an encryption module having a first block cipher module and a second block cipher module, at least two portions of data utilizing the encryption key and at least two of the set of counter values, in parallel, to produce at least two ciphertexts, wherein encrypting the at least two portions in parallel to produce at least two ciphertexts includes encrypting a first portion of the data using the first block cipher module to produce a first ciphertext and encrypting a second portion of the data using the second block cipher module to generate a second ciphertext;

perform, via a deterministic function module having a first deterministic function unit and a second deterministic function unit, a first deterministic function on the at least two ciphertexts, in parallel, to produce at least two transformed ciphertexts, wherein performing the first deterministic function on the at least two ciphertexts in parallel includes processing the first ciphertext using the first deterministic function unit to produce a first transformed ciphertext and processing the second ciphertext using the second deterministic function unit to produce a second transformed ciphertext;

perform, via the deterministic function module, a second deterministic function on the first transformed ciphertext and the second transformed ciphertext to produce a mask;

mask the encryption key using the mask to produce a masked key; and

combine the at least two ciphertexts and the masked key to produce secure data.

16. The non-transitory computer readable storage medium of claim 15 wherein obtaining the encryption key includes at least one of retrieving, receiving, generating based on a random number, and generating based on a pseudo-random algorithm and a key seed.

17. The non-transitory computer readable storage medium of claim 15 wherein the second deterministic function is an exclusive OR function.

18. The non-transitory computer readable storage medium of claim 15 wherein masking includes applying a masking function based on the mask.

19. The non-transitory computer readable storage medium of claim 15 wherein masking includes performing an exclusive OR function on the encryption key and the mask to produce the masked key.

20. The non-transitory computer readable storage medium of claim 15 wherein combining the at least two ciphertexts and the masked key includes appending the masked key to the at least two ciphertexts to produce the secure data.

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 Jul 22, 2016
From: RESCH, JASON K.; LEGGETTE, WESLEY B.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039235/0071 →
Cited By (2)
US 12,197,285 US 12,283,971