IP Library Granted Patent US 8,649,521
Granted Patent B2
US 8,649,521 · App. 12/954,884 · Granted Feb 11, 2014

Obfuscation of sequenced encoded data slices

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,649,521
App. No.
12/954,884
Granted
Feb 11, 2014
Kind
B2
Abstract

A method begins by a processing module receiving data to produce received data segments. The method continues with the processing module, in order of receiving the data segments, encrypting a data segment to produce an encrypted data segment, dispersed storage error encoding the encrypted data segment to produce a set of encoded data slices, buffering at least a number of encoded data slices of the set of encoded data slices to produce first buffered encoded data slices, and buffering remaining encoded data slices of the set of encoded data slices to produce second buffered encoded data slices. The method continues with the processing module outputting the first buffered encoded data slices and, at most, some of the second buffered encoded data slices in accordance with a pseudo random output sequencing order when a number of first buffered encoded data slices compares favorably to an outputting threshold.

Claims (116)

1. A method for execution by one or more processing modules of a computing device, the method comprises:

receiving, by an interface of the computing device, data segments of a data stream to produce received data segments;

in order of receiving the data segments:

entering a loop that includes:

encrypting a current data segment of the received data segments to produce an encrypted data segment;

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

buffering at least a number of encoded data slices of the set of encoded data slices in accordance with a decode threshold setting in a first buffer to produce first buffered encoded data slices; and

buffering remaining encoded data slices of the set of encoded data slices in a second buffer to produce second buffered encoded data slices;

comparing a number of the first buffered encoded data slices stored in the first buffer with an outputting threshold;

when the number of first buffered encoded data slices is less than the outputting threshold, repeating the loop for a next data segment of the received data segments as the current data segment;

when the number of first buffered encoded data slices is equal to or greater than the outputting threshold, existing the loop;

outputting the first buffered encoded data slices and, at most, some of the second buffered encoded data slices in accordance with a pseudo random output sequencing order,

wherein the outputting includes:

converting the first buffered encoded data slices and, at most, some of the second buffered encoded data slices into a symbol stream in accordance with a wireless communication protocol, converting the symbol stream into an outbound radio frequency (RF) signal in accordance with the wireless communication protocol, and transmitting the outbound RF signal; and

sending the first buggered encoded data slices and, at most, some of the second buffered encoded data slices to a dispersed storage network (DSN) memory for storage therein;

when remaining data segments of the received data segments have not been processed via the loop:

resetting a count of the first buffered encoded data slices stored in the first buffer; and re-entering the loop for at least some of the remaining data segments.

2. The method of claim 1 further comprises:

dispersed storage error encoding auxiliary data to produce a set of encoded auxiliary data slices;

buffering the set of encoded auxiliary data slices to produce buffered encoded auxiliary data slices; and

when the number of first buffered encoded data slices compares favorably to the outputting threshold, outputting the first buffered encoded data slices, the buffered encoded auxiliary data slices, and, at most, some of the second buffered encoded data slices in accordance with the pseudo random output sequencing order.

3. The method of claim 2 further comprises at least one of:

scrambling data utilizing a low processing utilization scrambling algorithm to produce the auxiliary data;

encrypting the data utilizing an all or nothing transformation (AONT) to produce the auxiliary data;

encrypting the data utilizing a stored encryption key to produce the auxiliary data;

encrypting the data utilizing a random encryption key to produce the auxiliary data;

encrypting the data utilizing an encryption key associated with at least one recipient to produce the auxiliary data;

encrypting the data utilizing the AONT to produce AONT encrypted auxiliary data and encrypting the AONT encrypted auxiliary data utilizing the stored encryption key to produce the auxiliary data;

obfuscating the data utilizing an obfuscating method to produce the auxiliary data;

selecting an encryption method based on a data type and encrypting the data utilizing the encryption method to produce the auxiliary data;

encrypting the data utilizing a null encryption method to produce the auxiliary data; and

replicating at least one data segment of the data stream to produce the auxiliary data.

4. The method of claim 3 , wherein the data comprises at least one of:

null data;

authentication information;

a next pseudo random output sequencing order;

a pseudo random output sequencing order identifier;

a next outputting threshold;

a random number generator output;

an encryption key;

a starting point for the pseudo random output sequencing order;

a device identifier;

a data identifier;

a data type;

a data size indictor;

a priority indicator;

a security indicator; and

a performance indicator.

5. The method of claim 1 further comprises:

on a data segment by data segment basis, determining the threshold setting based on at least one of:

a lookup;

an available channel bandwidth indicator;

a channel power indicator;

a security indicator;

a performance indicator;

a random number;

a real time clock value; and

an environmental condition indicator.

6. A computer comprises:

an interface

a memory; and

a processing module operable to:

receive, via the interface, data segments of a data stream to produce received data segments;

enter a loop that includes:

encrypt a current data segment of the received data segments to produce an encrypted data segment;

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

buffer, in a first buffer of the memory, at least a number of encoded data slices of the set of encoded data slices in accordance with a decode threshold setting to produce first buffered encoded data slices; and

buffer, in a second buffer of the memory, remaining encoded data slices of the set of encoded data slices to produce second buffered encoded data slices compare a number of the first buffered encoded data slices stored in the first buffer with an outputting threshold;

when the number of first buffered encoded data slices is less than the outputting threshold, repeat the loop for a next data segment of the received data segments as the current data segment;

when the number of first buffered encoded data slices is equal to or greater than the outputting threshold, exist the loop;

output, via the interface, the first buffered encoded data slices and, at most, some of the second buffered encoded data slices in accordance with a pseudo random output sequencing order, wherein the outputting includes:

converting the first buffered encoded data slices and, at most, some of the second buffered encoded data slices into a symbol stream in accordance with a wireless communication protocol, converting the symbol stream into an outbound radio frequency (RF) signal in accordance with the wireless communication protocol, and transmitting the outbound RF signal; and

sending the first buggered encoded data slices and, at most, some of the second buffered encoded data slices to a dispersed storage network (DSN) memory for storage therein;

when remaining data segments of the received data segments have not been processed via the loop:

reset a count of the first buffered encoded data slices stored in the first buffer; and re-enter the loop for at least some of the remaining data segments.

7. The computer of claim 6 , wherein the processing module further functions to:

dispersed storage error encode auxiliary data to produce a set of encoded auxiliary data slices;

buffer, in the memory, the set of encoded auxiliary data slices to produce buffered encoded auxiliary data slices; and

output, via the interface, the first buffered encoded data slices, from the memory, the buffered encoded auxiliary data slices, from the memory, and, at most, some of the second buffered encoded data slices, from the memory, in accordance with the pseudo random output sequencing order when the number of first buffered encoded data slices compares favorably to the outputting threshold.

8. The computer of claim 7 , wherein the processing module further functions to perform at least one of:

scramble data utilizing a low processing utilization scrambling algorithm to produce the auxiliary data;

encrypt the data utilizing an all or nothing transformation (AONT) to produce the auxiliary data;

encrypt the data utilizing a stored encryption key to produce the auxiliary data;

encrypt the data utilizing a random encryption key to produce the auxiliary data;

encrypt the data utilizing an encryption key associated with at least one recipient to produce the auxiliary data;

encrypt the data utilizing the AONT to produce AONT encrypted auxiliary data and encrypt the AONT encrypted auxiliary data utilizing the stored encryption key to produce the auxiliary data;

obfuscate the data utilizing an obfuscating method to produce the auxiliary data;

select an encryption method based on a data type and encrypt the data utilizing the encryption method to produce the auxiliary data;

encrypt the data utilizing a null encryption method to produce the auxiliary data; and

replicate at least one data segment of the data stream to produce the auxiliary data.

9. The computer of claim 7 , wherein the data comprises at least one of:

null data;

authentication information;

a next pseudo random output sequencing order;

a pseudo random output sequencing order identifier;

a next outputting threshold;

a random number generator output;

an encryption key;

a starting point for the pseudo random output sequencing order;

a device identifier;

a data identifier;

a data type;

a data size indictor;

a priority indicator;

a security indicator; and

a performance indicator.

10. The computer of claim 6 , wherein the processing module for the functions to:

on a data segment by data segment basis, determine the threshold setting based on at least one of:

a lookup;

an available channel bandwidth indicator;

a channel power indicator;

a security indicator;

a performance indicator;

a random number;

a real time clock value; and

an environmental condition indicator.

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 Nov 28, 2010
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 025424/0282 →