IP Library Granted Patent US 8,045,714
Granted Patent B2
US 8,045,714 · App. 11/053,212 · Granted Oct 25, 2011

Systems and methods for managing multiple keys for file encryption and decryption

Assignee: Microsoft Corporation
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,045,714
App. No.
11/053,212
Granted
Oct 25, 2011
Kind
B2
Abstract

Systems and methods for managing multiple keys for file encryption and decryption may provide an encrypted list of previously used keys. The list itself may be encrypted using a current key. To decrypt files that are encrypted in one or more of the previous keys, the list can be decrypted, and the appropriate previous key can be retrieved. To re-key files, an automated process can decrypt any files using previous keys and encrypt them using the current key. If a new current key is introduced, the prior current key can be used to decrypt the list of keys, the prior current key can be added to the list, and the list can be re-encrypted using the new current key.

Claims (60)

1. A processor-implemented method for managing multiple keys for file encryption and decryption, the method comprising:

providing, via the processor, a key list for maintaining key history;

storing in the key list, a first key useable for decrypting a first file;

encrypting the key list with a second key useable for decrypting a second file that is different than the first file, the second key being different from the first key;

executing a first re-keying operation comprising:

decrypting the key list with the second key;

retrieving the first key from the key list;

decrypting the first file using the first key; and

encrypting the first file using a third key, the third key being used as a current key for file encryption and being different from the first key and the second key;

executing a second re-keying operation comprising:

retrieving the second key; decrypting the second file using the second key; and

encrypting the second file using the third key;

storing the second key in the key list; and

encrypting the key list with the third key, the third key useable thereafter for decrypting the first file, the second file, and the key list.

2. The method of claim 1 , wherein executing a first re-keying operation further comprises determining the encryption key used for encrypting the first file as the second key, wherein said determining comprises checking a pointer associated with said first file.

3. The method of claim 1 , further comprising prompting a person to enter at least one key, and adding said at least one key to the key list.

4. The method of claim 1 , wherein the key list is stored with a user profile.

5. The method of claim 1 , wherein the third key is stored on a portable device.

6. The method of claim 1 , further comprising:

storing a fourth key that is not available in said key list, in a cache memory;

using the fourth key for at least one of a) encrypting a third file or b) decrypting the third file; and

deleting the fourth key from the cache memory upon logout.

7. The method of claim 1 , wherein the re-keying operation is a background re-keying operation that is carried out over a period of time subject to availability of computing resources thereby reducing impact upon current usage of the computing resources.

8. A storage medium, the storage medium not being a transient signal, the storage medium having stored thereon instructions for managing multiple keys for file encryption and decryption, the instructions, when executed performing acts of:

providing a key list for maintaining key history;

storing in the key list, a first key useable for decrypting a first file;

encrypting the key list with a second key useable for decrypting a second file that is different than the first file, the second key being different from the first key;

executing a first re-keying operation comprising:

decrypting the key list with the second key;

retrieving the first key from the key list;

decrypting the first file using the first key; and

encrypting the first file using a third key, the third key being used as a current key for file encryption and being different from the first key and the second key;

executing a second re-keying operation comprising:

retrieving the second key; decrypting the second file using the second key; and

encrypting the second file using the third key;

storing the second key in the key list; and

encrypting the key list with the third key, the third key useable thereafter for decrypting the first file, the second file, and the key list.

9. The storage medium of claim 8 , list wherein the re-keying operation is a background re-keying operation that is carried out over a period of time subject to availability of computing resources thereby reducing impact upon current usage of the computing resources.

10. The storage medium of claim 8 , further comprising instructions for prompting a person to indicate at least one additional key, and instructions for adding said at least one additional key to the new key list.

11. The storage medium of claim 8 , wherein the new key list is stored with a user profile.

12. The storage medium of claim 8 , wherein the third key is stored on a portable device.

13. The storage medium of claim 8 , further comprising instructions for storing an additional key that is not available in said current key list, in a cache memory.

14. The storage medium of claim 8 , wherein executing a first re-keying operation further comprises determining the encryption key used for encrypting the first file as the second key, wherein said determining comprises checking a pointer associated with said first file.

15. The storage medium of claim 8 , wherein the instructions, when executed, further prompting a person to enter at least one key, and adding said at least one key to the key list.

16. A hardware computing device configured to:

provide a key list for maintaining key history;

store in the key list, a first key useable for decrypting a first file;

encrypt the key list with a second key useable for decrypting a second file that is different than the first file, the second key being different from the first key;

execute a first re-keying operation comprising:

decrypt the key list with the second key;

retrieve the first key from the key list;

decrypt the first file using the first key; and

encrypt the first file using a third key, the third key being used as a current key for file encryption and being different from the first key and the second key;

execute a second re-keying operation comprising:

retrieve the second key; decrypting the second file using the second key; and

encrypt the second file using the third key;

store the second key in the key list; and

encrypt the key list with the third key, the third key useable thereafter for decrypting the first file, the second file, and the key list.

17. The computing device of claim 16 , wherein the re-keying operation is a background re-keying operation that is carried out over a period of time subject to availability of computing resources thereby reducing impact upon current usage of the computing resources.

18. The computing device of claim 16 , wherein executing a first re-keying operation further comprises determining the encryption key used for encrypting the first file as the second key, wherein said determining comprises checking a pointer associated with said first file.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2005
From: CROSS, DAVID B.; BRYCE, DUNCAN G.; GU, JIANRONG; YIU, KELVIN SHEK; ENE-PIETROSANU, MONICA IOANA
To: MICROSOFT CORPORATION
Reel/Frame 016380/0582 →
Continuity (1)
Related Publication 20060179309A1 · Aug 10, 2006