IP Library Granted Patent US 9,076,138
Granted Patent B2
US 9,076,138 · App. 12/817,165 · Granted Jul 7, 2015

Method and apparatus for obfuscating slice names in a dispersed storage system

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,076,138
App. No.
12/817,165
Granted
Jul 7, 2015
Kind
B2
Abstract

A method begins by a processing module receiving a data segment for dispersed storage. The method continues with the processing module encoding the data segment in accordance with an error coding dispersed storage function to produce a plurality of error coded data slices. The method continues with the processing module generating a slice name for an error coded data slice of the plurality of error coded data slices, wherein the slice name includes a dispersed storage routing information section and a data identification section. The method continues with the processing module performing a securing function on at least the data identification section to produce a secure data identification section. The method continues with the processing module replacing, within the slice name, the data identification section with the secure data identification section to produce a secure slice name.

Claims (64)

1. A method for execution by a dispersed storage (DS) processing module of a computing device to secure a slice name, the method comprises:

receiving, by an interface of the computing device, a data segment for dispersed storage;

encoding, by the DS processing module of the computing device, the data segment in accordance with an error coding dispersed storage function to produce a plurality of error coded data slices;

generating, by the DS processing module of the computing device, a slice name for an error coded data slice of the plurality of error coded data slices, wherein the slice name includes a dispersed storage routing information section and a data identification section;

performing, by the DS processing module of the computing device, a securing function on at least the data identification section to produce a secure data identification section; and

replacing, by the DS processing module of the computing device, within the slice name, the data identification section with the secure data identification section to produce a secure slice name.

2. The method of claim 1 , wherein the performing the securing function comprises calculating a hash of the slice name.

3. The method of claim 1 , wherein the performing the securing function comprises performing a deterministic mathematical function on the slice name.

4. The method of claim 1 , wherein the data identification section comprises identification of the data segment and a data object, wherein the data segment is one of a plurality of data segments of the data object.

5. The method of claim 1 further comprises:

generating, by the DS processing module, slice names for remaining ones of the plurality of error coded data slices to produce a plurality of slice names;

for each of at least a pillar width minus a decode threshold number of the plurality of slice names, securing the slices names by:

performing, by the DS processing module, a securing function on at least the data identification section to produce a secure data identification section; and

replacing, by the DS processing module, the data identification section with the secure data identification section.

6. A method for execution by a dispersed storage (DS) processing module of a computing device, the method comprises:

receiving, by an interface of the computing device, an access request to a data segment, wherein the data segment is encoded in accordance with an error coding dispersed storage function to produce a plurality of error coded data slices that are stored in a plurality of DS storage units;

generating, by the DS processing module of the computing device, a slice name for an error coded data slice of the plurality of error coded data slices, wherein the slice name includes a dispersed storage routing information section and a data identification section;

performing, by the DS processing module of the computing device, a securing function on at least the data identification section to produce a secure data identification section;

replacing, by the DS processing module of the computing device, within the slice name, the data identification section with the secure data identification section to produce a secure slice name; and

accessing, by the DS processing module of the computing device, the error coded slice based on the secure slice name.

7. The method of claim 6 , wherein the performing the securing function comprises calculating a hash of the slice name.

8. The method of claim 6 , wherein the performing the securing function comprises performing a deterministic mathematical function on the slice name.

9. The method of claim 6 , wherein the data identification section comprises identification of the data segment and a data object, wherein the data segment is one of a plurality of data segments of the data object.

10. The method of claim 6 further comprises:

generating, by the DS processing module, slice names for remaining ones of the plurality of error coded data slices to produce a plurality of slice names;

for each of at least a decode threshold minus one number of the plurality of slice names, securing the slices names to produce secure slices names by:

performing, by the DS processing module, a securing function on at least the data identification section to produce a secure data identification section; and

replacing, by the DS processing module, the data identification section with the secure data identification section; and

accessing, by the DS processing module, the remaining ones of the plurality of error coded data slices based on the secure slice names.

11. A computing device comprises:

an interface;

memory; and

a processor operably coupled to the memory, wherein the processor is operable to:

receive, via the interface, a data segment for dispersed storage;

encode the data segment in accordance with an error coding dispersed storage function to produce a plurality of error coded data slices;

generate a slice name for an error coded data slice of the plurality of error coded data slices, wherein the slice name includes a dispersed storage routing information section and a data identification section;

perform a securing function on at least the data identification section to produce a secure data identification section; and

replace, within the slice name, the data identification section with the secure data identification section to produce a secure slice name.

12. The computing device of claim 11 , wherein the processor further functions to perform the securing function by calculating a hash of the slice name.

13. The computing device of claim 11 , wherein the processor further functions to perform the securing function by performing a deterministic mathematical function on the slice name.

14. The computing device of claim 11 , wherein the data identification section includes identification of the data segment and a data object, wherein the data segment is one of a plurality of data segments of the data object.

15. The computing device of claim 11 , wherein the processor further functions to:

generate slice names for remaining ones of the plurality of error coded data slices to produce a plurality of slice names;

for each of at least a pillar width minus a decode threshold number of the plurality of slice names, secure the slices names by:

performing a securing function on at least the data identification section to produce a secure data identification section; and

replacing the data identification section with the secure data identification section.

16. A computing device comprises:

an interface;

memory; and

a processor coupled to the memory and the interface, wherein the processor is operable to:

receive, via the interface, an access request to a data segment, wherein the data segment is encoded in accordance with an error coding dispersed storage function to produce a plurality of error coded data slices that are stored in a plurality of DS storage units;

generate a slice name for an error coded data slice of the plurality of error coded data slices, wherein the slice name includes a dispersed storage routing information section and a data identification section;

perform a securing function on at least the data identification section to produce a secure data identification section;

replace, within the slice name, the data identification section with the secure data identification section to produce a secure slice name; and

access, via the interface, the error coded slice based on the secure slice name.

17. The computing device of claim 16 , wherein the processor further functions to perform the securing function by calculating a hash of the slice name.

18. The computing device of claim 16 , wherein the processor further functions to perform the securing function by performing a deterministic mathematical function on the slice name.

19. The computing device of claim 16 , wherein the data identification section includes identification of the data segment and a data object, wherein the data segment is one of a plurality of data segments of the data object.

20. The computing device of claim 16 , wherein the processor further functions to:

generate slice names for remaining ones of the plurality of error coded data slices to produce a plurality of slice names;

for each of at least a decode threshold minus one number of the plurality of slice names, secure the slices names to produce secure slices names by:

performing a securing function on at least the data identification section to produce a secure data identification section; and

replacing the data identification section with the secure data identification section; and

accessing, via the interface, the remaining ones of the plurality of error coded data slices based on the secure slice names.

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 18, 2010
From: RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 024556/0201 →