IP Library Granted Patent US 7,770,213
Granted Patent B2
US 7,770,213 · App. 11/405,980 · Granted Aug 3, 2010

Method and apparatus for securely forgetting secrets

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 7,770,213
App. No.
11/405,980
Granted
Aug 3, 2010
Kind
B2
Abstract

One embodiment of the present invention provides a system that facilitates securely forgetting a secret. During operation, the system obtains a set of secrets which are encrypted with a secret key S i , wherein the set of secrets includes a secret to be forgotten and other secrets which are to be remembered. Next, the system decrypts the secrets to be remembered using S i , and also removes the secret to be forgotten from the set of secrets. The system then obtains a new secret key S i+1 , and encrypts the secrets to be remembered using S i+1 . Finally, the system forgets S i .

Claims (87)

1. A method for securely forgetting a secret, comprising:

obtaining a set of secrets which are encrypted with a secret key S i , wherein the set of secrets includes a secret to be forgotten and other secrets which are to be remembered, wherein each secret comprises a unique key that is used to encrypt and decrypt one or more associated files;

decrypting the secrets to be remembered using S i , wherein decrypting the secrets includes using Si to decrypt all of the secrets;

removing the secret to be forgotten from the set of secrets;

obtaining a new secret key S i+1 ;

encrypting the secrets to be remembered using S i+1 ; and

forgetting S i , wherein forgetting S i involves making all copies of the secret to be forgotten permanently unretrievable.

2. The method of claim 1 ,

wherein the set of secrets is divided into subsets which are encrypted with different subset keys;

wherein each subset key K j,k is encrypted either directly or indirectly using S i prior to being stored;

wherein decrypting the secrets to be remembered involves decrypting secrets to be remembered within a target subset containing the secret to be forgotten, which involves using S i to either directly or indirectly to decrypt a subset key K j,k for the target subset, and then decrypting the secrets to be remembered using K j,k ; and

wherein removing the secret to be forgotten from the set of secrets involves removing the secret to be forgotten from the target subset;

wherein obtaining the new secret key S i+1 also involves obtaining a new subset key K j,k+1 for the target subset; and

wherein encrypting the secrets to be remembered involves, encrypting the secrets to be remembered in the target subset using K j,k+1 , and then using S i+1 either directly or indirectly to encrypt K j,k+1 .

3. The method of claim 2 , wherein the subsets of the set of secrets and the corresponding subset keys are stored in a lookup structure, which facilitates looking up the secrets.

4. The method of claim 3 ,

wherein the lookup structure is a tree;

wherein the subsets are stored in corresponding nodes which form the tree; and

wherein each parent node in the tree contains keys which are used to encrypt associated child nodes in the tree, wherein the secret key S i is used to encrypt the root node of the tree.

5. The method of claim 4 , further comprising retrieving a desired secret by:

performing a lookup in the tree to obtain a target node containing the desired secret, and also to obtain a corresponding key K j,k for the target node, wherein the lookup involves using S i to decrypt the root node of the tree, and thereafter using keys contained in parent nodes to decrypt child nodes as the lookup progresses from the parent nodes to the child nodes; and

using K j,k to decrypt the desired secret contained in the target node.

6. The method of claim 4 , further comprising storing a new secret by:

performing a lookup in the tree to identify a target node in which to store the new secret, and also to obtain a corresponding key K j,k for the target node, wherein the lookup involves using S i to decrypt the root node of the tree, and thereafter using keys contained in parent nodes to decrypt child nodes as the lookup progresses from the parent nodes to the child nodes;

using K j,k to encrypt the new secret; and

inserting the encrypted new secret into the subset of secrets contained in the target node.

7. The method of claim 1 ,

wherein the set of secrets is maintained on a general-purpose computer which communicates with a smart card;

wherein the encryption and decryption operations are performed on the smart card; and

wherein all secret keys, including the secret key S i and the new secret key S i+1 , are stored only on the smart card and never leave the smart card.

8. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for securely forgetting a secret, the method comprising:

obtaining a set of secrets which are encrypted with a secret key S i , wherein the set of secrets includes a secret to be forgotten and other secrets which are to be remembered, wherein each secret comprises a unique key that is used to encrypt and decrypt one or more associated files;

decrypting the secrets to be remembered using S i , wherein decrypting the secrets includes using Si to decrypt all of the secrets;

removing the secret to be forgotten from the set of secrets;

obtaining a new secret key S i+1 ;

encrypting the secrets to be remembered using S i+1 ; and

forgetting S i , wherein forgetting S i involves making all copies of the secret to be forgotten permanently unretrievable.

9. The computer-readable storage medium of claim 8 ,

wherein the set of secrets is divided into subsets which are encrypted with different subset keys;

wherein each subset key K j,k is encrypted either directly or indirectly using S i prior to being stored;

wherein decrypting the secrets to be remembered involves decrypting secrets to be remembered within a target subset containing the secret to be forgotten, which involves using S i to either directly or indirectly to decrypt a subset key K j,k for the target subset, and then decrypting the secrets to be remembered using K j,k ; and

wherein removing the secret to be forgotten from the set of secrets involves removing the secret to be forgotten from the target subset;

wherein obtaining the new secret key S i+1 also involves obtaining a new subset key K j,k+1 for the target subset; and

wherein encrypting the secrets to be remembered involves, encrypting the secrets to be remembered in the target subset using K j,k+1 , and then using S i+1 either directly or indirectly to encrypt K j,k+1 .

10. The computer-readable storage medium of claim 9 , wherein the subsets of the set of secrets and the corresponding subset keys are stored in a lookup structure, which facilitates looking up the secrets.

11. The computer-readable storage medium of claim 10 ,

wherein the lookup structure is a tree;

wherein the subsets are stored in corresponding nodes which form the tree; and

wherein each parent node in the tree contains keys which are used to encrypt associated child nodes in the tree, wherein the secret key S i is used to encrypt the root node of the tree.

12. The computer-readable storage medium of claim 11 , wherein the method further comprises retrieving a desired secret by:

performing a lookup in the tree to obtain a target node containing the desired secret, and also to obtain a corresponding key K j,k for the target node, wherein the lookup involves using S i to decrypt the root node of the tree, and thereafter using keys contained in parent nodes to decrypt child nodes as the lookup progresses from the parent nodes to the child nodes; and

using K j,k to decrypt the desired secret contained in the target node.

13. The computer-readable storage medium of claim 11 , wherein the method further comprises storing a new secret by:

performing a lookup in the tree to identify a target node in which to store the new secret, and also to obtain a corresponding key K j,k for the target node, wherein the lookup involves using S i to decrypt the root node of the tree, and thereafter using keys contained in parent nodes to decrypt child nodes as the lookup progresses from the parent nodes to the child nodes;

using K j,k to encrypt the new secret; and

inserting the encrypted new secret into the subset of secrets contained in the target node.

14. The method of claim 1 , wherein obtaining the new key S i+1 includes computing key S i+1 using a one-way hash function h for which Si is an input.

15. An apparatus for securely forgetting a secret, comprising:

a receiving mechanism configured to receive a set of secrets which are encrypted with a secret key S i , wherein the set of secrets includes a secret to be forgotten and other secrets which are to be remembered, wherein each secret comprises a unique key that is used to encrypt and decrypt one or more associated files;

a decryption mechanism configured to decrypt the secrets to be remembered using S i , wherein decrypting the secrets includes using Si to decrypt all of the secrets;

a removal mechanism configured to remove the secret to be forgotten from the set of secrets;

a key-obtaining mechanism configured to obtain a new secret key S i+1 ;

an encryption mechanism configured to encrypt the secrets to be remembered using S i+1 ; and

a deletion mechanism configured to forget S i , wherein forgetting S i involves making all copies of the secret to be forgotten permanently unretrievable.

16. The apparatus of claim 15 ,

wherein the set of secrets is divided into subsets which are encrypted with different subset keys;

wherein each subset key K j,k is encrypted either directly or indirectly using S i prior to being stored;

wherein while decrypting the secrets to be remembered, the decryption mechanism is configured to decrypt secrets to be remembered within a target subset containing the secret to be forgotten, which involves using S i to either directly or indirectly to decrypt a subset key K j,k for the target subset, and then decrypting the secrets to be remembered using K j,k ; and

wherein the removal mechanism is configured to remove the secret to be forgotten from the target subset;

wherein while obtaining the new secret key S i+1 , the key-obtaining mechanism is configured to obtain a new subset key K j,k+1 for the target subset; and

wherein while encrypting the secrets to be remembered, the encryption mechanism is configured to encrypt the secrets to be remembered in the target subset using K j,k+1 , and to then use S i+1 either directly or indirectly to encrypt K j,k+1 .

17. The apparatus of claim 16 , further comprising a lookup structure, which stores the subsets of the set of secrets and the corresponding subset keys, wherein the lookup structure facilitates looking up the secrets.

18. The apparatus of claim 17 ,

wherein the lookup structure is a tree;

wherein the subsets are stored in corresponding nodes which form the tree; and

wherein each parent node in the tree contains keys which are used to encrypt associated child nodes in the tree, wherein the secret key S i is used to encrypt the root node of the tree.

19. The apparatus of claim 18 , further comprising a retrieval mechanism configured to retrieve a desired secret by:

performing a lookup in the tree to obtain a target node containing the desired secret, and also to obtain a corresponding key K j,k for the target node, wherein the lookup involves using S i to decrypt the root node of the tree, and thereafter using keys contained in parent nodes to decrypt child nodes as the lookup progresses from the parent nodes to the child nodes; and

using K j,k to decrypt the desired secret contained in the target node.

20. The apparatus of claim 18 , further comprising a storage mechanism configured to store a new secret by:

performing a lookup in the tree to identify a target node in which to store the new secret, and also to obtain a corresponding key K j,k for the target node, wherein the lookup involves using S i to decrypt the root node of the tree, and thereafter using keys contained in parent nodes to decrypt child nodes as the lookup progresses from the parent nodes to the child nodes;

using K j,k to encrypt the new secret; and

inserting the encrypted new secret into the subset of secrets contained in the target node.

21. The apparatus of claim 16 ,

wherein the set of secrets is maintained on a general-purpose computer which communicates with a smart card;

wherein the encryption and decryption operations are performed on the smart card; and

wherein all secret keys, including the secret key S i and the new secret key S i+1 , are stored only on the smart card and never leave the smart card.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037306/0514 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2006
From: PERLMAN, RADIA J.; RANG, ANTON B.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 017785/0058 →