IP Library Patent Application 16125043
Patent Application
App. No. 16/125,043

SECURE SHARED VAULT WITH ENCRYPTED PRIVATE INDICES

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 None
App. No.
16/125,043
Abstract

A store-data-object request, which includes a data object and a data identifier, is received from a requesting device. The data object is stored in a shared vault at a shared-vault-data-object address, and an entry in a private index is updated using a private credential associated with the requesting device. The private index includes private information identifying a storage location of the data object in a non-private shared vault. The entry in the private index includes the data identifier.

Claims (74)

1 . A method comprising:

receiving a store-data-object request from a requesting device, the store-data-object request including a data object and a data identifier;

storing the data object in a shared vault at a shared-vault-data-object address; and

updating an entry in a private index using a private credential associated with the requesting device, the private index includes private information identifying a storage location of the data object in a non-private shared vault, and the entry in the private index includes the data identifier.

2 . The method of claim 1 , wherein updating the entry in a private index includes:

accessing the private index using the private credential.

3 . The method of claim 1 , wherein updating the entry in a private index includes:

retrieving encoded data slices from the shared vault;

decoding the encoded data slices to recover an index node;

updating an index node to generate an updated index node;

encoding the updated index node to produce updated slices; and

storing information associated with the updated slices in the private index.

4 . The method of claim 1 , further comprising:

deriving a source name of a root index node by applying a deterministic function to the private credential.

5 . The method of claim 1 , further comprising:

choosing names of intermediate index nodes and leaf nodes to include a random component.

6 . The method of claim 1 , further comprising:

deriving names of intermediate index nodes and leaf nodes from the private credential.

7 . The method of claim 1 , further comprising:

receiving a retrieve data request including the data identifier;

extracting a shared-vault-data-object address associated with the data identifier from the private index using the private credential; and

recovering the data object from the shared vault using the shared-vault-data-object address.

8 . A distributed storage (DS) processing module comprising:

a processor;

memory coupled to the processor;

at least one network interface coupled to a requesting device and a distributed storage network (DSN) memory;

the processor configured to:

receive, via the at least one network interface, a store-data-object request from a requesting device, the store-data-object request including a data object and a data identifier;

store the data object in a shared vault at a shared-vault-data-object address, the shared vault included in the DSN memory; and

update an entry in a private index using a private credential associated with the requesting device, the entry in the private index includes the data identifier, wherein the private index is maintained in a DSN memory and includes private information identifying a storage location of the data object in a non-private shared vault.

9 . The distributed storage (DS) processing module of claim 8 , wherein the processor is further configured to:

update the entry in a private index by accessing the private index using the private credential.

10 . The distributed storage (DS) processing module of claim 8 , wherein:

the processor is configured to update the entry in a private index by:

retrieving encoded data slices from the shared vault;

decoding the encoded data slices to recover an index node;

updating an index node to generate an updated index node;

encoding the updated index node to produce updated slices; and

storing information associated with the updated slices in the private index.

11 . The distributed storage (DS) processing module of claim 8 , wherein the processor is further configured to:

derive a source name of a root index node by applying a deterministic function to the private credential.

12 . The distributed storage (DS) processing module of claim 8 , wherein the processor is further configured to:

choose names of intermediate index nodes and leaf nodes to include a random component.

13 . The distributed storage (DS) processing module of claim 8 , wherein the processor is further configured to:

derive names of intermediate index nodes and leaf nodes from the private credential.

14 . The distributed storage (DS) processing module of claim 8 , wherein the processor is further configured to:

receive a read data request including the data identifier from the requesting device;

extract a shared-vault-data-object address associated with the data identifier from the private index using the private credential; and

recover the data object from the shared vault using the shared-vault-data-object address.

15 . A distributed storage network (DSN) comprising:

a DSN memory including a processor and associated memory, the DSN memory configured to maintain a shared vault and an index vault;

the shared vault configured to provide shared storage for a plurality of different requesting devices;

the index vault configured to store a plurality of private indexes associated with the plurality of requesting device, wherein each private index includes private information identifying a storage location of data objects stored in the shared vault;

a distributed storage (DS) processing module coupled to the DSN memory, and including a second processor and associated memory, the DS processing module configured to:

receive a store-data-object request from a requesting device, the store-data-object request including a data object and a data identifier;

store the data object in a shared vault at a shared-vault-data-object address, the shared vault included in the DSN memory; and

update an entry in a private index using a private credential associated with the requesting device, the entry in the private index includes the data identifier.

16 . The distributed storage network (DSN) of claim 15 , wherein the DS processing module is further configured to:

update the entry in a private index by accessing the private index using the private credential.

17 . The distributed storage network (DSN) of claim 15 , wherein the DS processing module is further configured to:

retrieve encoded data slices from the shared vault;

decode the encoded data slices to recover an index node;

update an index node to generate an updated index node;

encode the updated index node to produce updated slices; and

store information associated with the updated slices in the private index.

18 . The distributed storage network (DSN) of claim 15 , wherein the DS processing module is further configured to:

derive a source name of a root index node by applying a deterministic function to the private credential; and

choose names of intermediate index nodes and leaf nodes to include a random component.

19 . The distributed storage network (DSN) of claim 15 , wherein the DS processing module is further configured to:

derive names of intermediate index nodes and leaf nodes from the private credential.

20 . The distributed storage network (DSN) of claim 15 , wherein the DS processing module is further configured to:

receive a read data request including the data identifier from the requesting device;

extract a shared-vault-data-object address associated with the data identifier from the private index using the private credential; and

recover the data object from the shared vault using the shared-vault-data-object address.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2018
From: VOLVOVSKI, ILYA; GLADWIN, S. CHRISTOPHER; GRUBE, GARY W.; MARKISON, TIMOTHY W.; RESCH, JASON K.; SHIRLEY, THOMAS F., JR.; DHUSE, GREG R.; MOTWANI, MANISH; BAPTIST, ANDREW D.; LEGGETTE, WESLEY B.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046854/0223 →