US2013238900A1PendingUtilityA1

Dispersed storage network secure hierarchical file directory

Assignee: CLEVERSAFE INCPriority: Dec 12, 2011Filed: Apr 18, 2013Published: Sep 12, 2013
Est. expiryDec 12, 2031(~5.4 yrs left)· nominal 20-yr term from priority
G06F 3/064G06F 21/6218H04L 63/06G06F 9/5083H04L 67/1097G06F 21/602G06F 11/2069G06F 3/067H04L 67/10G06F 11/1076G06F 11/1008G06F 11/1092G06F 11/2058H04L 63/10H04L 63/0428G06F 9/5077H04L 67/1017H03M 13/1515H04L 63/08G06F 2211/1028G06F 11/1451H03M 13/09G06F 3/0619
56
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method to generate a secure hierarchical file directory system begins by a processing module, for a child level directory of the secure hierarchical file directory system, obtaining a unique inner encryption key for encrypting the child level directory and creating one or more outer encryption keys for encrypting the unique inner encryption key. For each of the one or more outer encryption keys, the method continues with the processing module encrypting the unique inner encryption key to create one or more encrypted inner encryption keys. The method continues with the processing module creating one or more entries in a parent level directory, where each entry includes a path name, a dispersed storage network (DSN) address of the child level directory, a corresponding one of the one or more encrypted inner encryption keys, and an indicator for a corresponding one of the one or more outer encryption keys.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method for execution by a processing module to generate a secure hierarchical file directory system, the method comprises:
 for a child level directory of the secure hierarchical file directory system, obtaining a unique inner encryption key for encrypting the child level directory;   creating one or more outer encryption keys for encrypting the unique inner encryption key based on an access security level for accessing the child level directory;   for each of the one or more outer encryption keys, encrypting the unique inner encryption key to create one or more encrypted inner encryption keys; and   creating one or more entries in a parent level directory of the secure hierarchical file directory system, wherein each of the one or more entries includes a path name, a dispersed storage network (DSN) address of the child level directory, a corresponding one of the one or more encrypted inner encryption keys, and an indicator for a corresponding one of the one or more outer encryption keys.   
     
     
         2 . The method of  claim 1 , wherein the creating the one or more outer encryption keys comprises at least one of:
 creating one of the one or more outer encryption keys based on a user identification code;   creating the one of the one or more outer encryption keys based on a password associated with a user device or a group of user devices; and   creating the one of the one or more outer encryption keys based on a public key of a public/private key associated with the user device.   
     
     
         3 . The method of  claim 1 , wherein the creating the one or more outer encryption keys comprises:
 determining the access security level to be one of:
 each valid user device having an individual outer encryption key; 
 a group of user devices having a common group outer encryption key; and 
 valid user devices using a common outer encryption key; and 
   creating the one or more outer encryption keys in accordance with access security level.   
     
     
         4 . The method of  claim 1  further comprises:
 encrypting the child level directory using the unique inner encryption key to produce an encrypted child level directory; 
 dispersed storage error encoding the encrypted child level directory to produce a set of child directory encoded slices; and 
 storing the set of child directory encoded slices in a DSN memory in accordance with the DSN address. 
 
     
     
         5 . The method of  claim 1  further comprises:
 for a second child level directory of the secure hierarchical file directory system, obtaining a second unique inner encryption key for encrypting the second child level directory; 
 creating one or more second outer encryption keys for encrypting the second unique inner encryption key based on a second access security level for accessing the second child level directory; 
 for each of the one or more second outer encryption keys, encrypting the second unique inner encryption key to create one or more second encrypted inner encryption keys; and 
 creating one or more new entries in the parent level directory of the secure hierarchical file directory system, wherein each of the one or more new entries includes a second path name, a second DSN address of the second child level directory, a corresponding one of the one or more second encrypted inner encryption keys, and a second indicator for a corresponding one of the one or more second outer encryption keys. 
 
     
     
         6 . A method comprises:
 receiving a request to retrieve a data object stored in a dispersed storage network (DSN) memory;   obtaining a directory file associated with the data object from the DSN memory;   identifying a directory entry of the directory file based on the request to access the data object to produce an identified directory entry;   entering a loop that includes:
 extracting a DSN address of an encrypted child object from the identified directory entry; 
 extracting an encrypted content key from the identified directory entry based on a requesting entity identifier (ID) of the request to access the data object; 
 decrypting the encrypted content key utilizing an affinity key associated with the requesting entity ID to produce a content key; 
 retrieving the encrypted child object from the DSN memory using the DSN address of the child object; 
 decrypting the encrypted child object using the content key to produce a child object; 
 determining whether the child object is the data object; 
 when the child object is the data object, exiting the loop; and 
 when the child object is not the data object, identifying a next directory entry of the child object as the identified directory entry and repeating the loop. 
   
     
     
         7 . The method of  claim 6 , wherein the obtaining the directory file associated with the data object from the DSN memory comprises:
 identifying a DSN address of the directory file based on the request to retrieve the data object;   retrieving at least a decode threshold number of encoded directory slices from the DSN memory utilizing the DSN address of the directory file;   decoding the at least the decode threshold number of encoded directory slices using a dispersed storage error coding function to produce an encrypted directory file; and   decrypting the encrypted directory file to produce the directory file.   
     
     
         8 . The method of  claim 6 , wherein the identifying the directory entry of the directory file comprises:
 comparing a pathname of the request to retrieve the data object to one or more pathnames of the first directory file; and   identifying the directory entry associated with a favorably comparing pathname of the one or more pathnames of the first directory file to produce the identified directory entry.   
     
     
         9 . The method of  claim 6 , wherein the affinity key comprises at least one of:
 a private key of a public-private key pair associated with the requesting entity ID;   an access key obtained from a parent directory;   a common group key associated with a group of requesting entity identifiers, wherein the group of requesting identifiers includes the requesting entity ID; and   a stored key.   
     
     
         10 . The method of  claim 6 , wherein the identifying the next directory entry of the child object as the identified directory entry comprises:
 comparing a pathname of the request to retrieve the data object to one or more pathnames of the child object; and   identifying the directory entry associated with a favorably comparing pathname of the one or more pathnames of the child object to produce the identified next directory entry.   
     
     
         11 . A dispersed storage (DS) module comprises:
 a first module, when operable within a computing device, causes the computing device to:
 for a child level directory of a secure hierarchical file directory system, obtain a unique inner encryption key for encrypting the child level directory; 
   a second module, when operable within the computing device, causes the computing device to:
 create one or more outer encryption keys for encrypting the unique inner encryption key based on an access security level for accessing the child level directory; and 
 for each of the one or more outer encryption keys, encrypt the unique inner encryption key to create one or more encrypted inner encryption keys; and 
   a third module, when operable within the computing device, causes the computing device to:
 create one or more entries in a parent level directory of the secure hierarchical file directory system, wherein each of the one or more entries includes a path name, a dispersed storage network (DSN) address of the child level directory, a corresponding one of the one or more encrypted inner encryption keys, and an indicator for a corresponding one of the one or more outer encryption keys. 
   
     
     
         12 . The DS module of  claim 11 , wherein the second module functions to create the one or more outer encryption keys by at least one of:
 creating one of the one or more outer encryption keys based on a user identification code;   creating the one of the one or more outer encryption keys based on a password associated with a user device or a group of user devices; and   creating the one of the one or more outer encryption keys based on a public key of a public/private key associated with the user device.   
     
     
         13 . The DS module of  claim 11 , wherein the second module functions to create the one or more outer encryption keys by:
 determining the access security level to be one of:
 each valid user device having an individual outer encryption key; 
 a group of user devices having a common group outer encryption key; and 
 valid user devices using a common outer encryption key; and 
   creating the one or more outer encryption keys in accordance with access security level.   
     
     
         14 . The DS module of  claim 11  further comprises:
 a fourth module, when operable within the computing device, causes the computing device to:
 encrypt the child level directory using the unique inner encryption key to produce an encrypted child level directory; 
 dispersed storage error encode the encrypted child level directory to produce a set of child directory encoded slices; and 
 store the set of child directory encoded slices in a DSN memory in accordance with the DSN address. 
 
 
     
     
         15 . The DS module of  claim 11  further comprises:
 the first module further functions to, for a second child level directory of the secure hierarchical file directory system, obtain a second unique inner encryption key for encrypting the second child level directory; 
 the second module further functions to:
 create one or more second outer encryption keys for encrypting the second unique inner encryption key based on a second access security level for accessing the second child level directory; and 
 for each of the one or more second outer encryption keys, encrypt the second unique inner encryption key to create one or more second encrypted inner encryption keys; and 
 
 the third module further functions to create one or more new entries in the parent level directory of the secure hierarchical file directory system, wherein each of the one or more new entries includes a second path name, a second DSN address of the second child level directory, a corresponding one of the one or more second encrypted inner encryption keys, and a second indicator for a corresponding one of the one or more second outer encryption keys. 
 
     
     
         16 . A dispersed storage (DS) module comprises:
 a first module, when operable within a computing device, causes the computing device to:
 receive a request to retrieve a data object stored in a dispersed storage network (DSN) memory; and 
 obtain a directory file associated with the data object from the DSN memory; 
   a second module, when operable within the computing device, causes the computing device to:
 identify a directory entry of the directory file based on the request to access the data object to produce an identified directory entry; and 
   a third module, when operable within the computing device, causes the computing device to enter a loop where the third module causes the computing device to:
 extract a DSN address of an encrypted child object from the identified directory entry; 
 extract an encrypted content key from the identified directory entry based on a requesting entity identifier (ID) of the request to access the data object; 
 decrypt the encrypted content key utilizing an affinity key associated with the requesting entity ID to produce a content key; 
 retrieve the encrypted child object from the DSN memory using the DSN address of the child object; 
 decrypt the encrypted child object using the content key to produce a child object; 
 determine whether the child object is the data object; 
 when the child object is the data object, exit the loop; and 
 when the child object is not the data object, identify a next directory entry of the child object as the identified directory entry and repeat the loop. 
   
     
     
         17 . The DS module of  claim 16 , wherein the first module functions to obtain the directory file associated with the data object from the DSN memory by:
 identifying a DSN address of the directory file based on the request to retrieve the data object;   retrieving at least a decode threshold number of encoded directory slices from the DSN memory utilizing the DSN address of the directory file;   decoding the at least the decode threshold number of encoded directory slices using a dispersed storage error coding function to produce an encrypted directory file; and   decrypting the encrypted directory file to produce the directory file.   
     
     
         18 . The DS module of  claim 16 , wherein the second module functions to identify the directory entry of the directory file by:
 comparing a pathname of the request to retrieve the data object to one or more pathnames of the directory file; and   identifying the directory entry associated with a favorably comparing pathname of the one or more pathnames of the directory file to produce the identified directory entry.   
     
     
         19 . The DS module of  claim 16 , wherein the affinity key comprises at least one of:
 a private key of a public-private key pair associated with the requesting entity ID;   an access key obtained from a parent directory;   a common group key associated with a group of requesting entity identifiers, wherein the group of requesting identifiers includes the requesting entity ID; and   a stored key.   
     
     
         20 . The DS module of  claim 16 , wherein the third module functions to identify the next directory entry of the child object as the identified directory entry by:
 comparing a pathname of the request to retrieve the data object to one or more pathnames of the child object; and   identifying the directory entry associated with a favorably comparing pathname of the one or more pathnames of the child object to produce the identified next directory entry.

Join the waitlist — get patent alerts

Track US2013238900A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.