IP Library Granted Patent US 10,616,189
Granted Patent B2
US 10,616,189 · App. 16/024,115 · Granted Apr 7, 2020

Storing decrypted body of message and key used to encrypt and decrypt body of message

Inventors: Laetitia Baudoin (Cupertino, CA); Brian Goodman (Mountain View, CA)
Assignee: GOOGLE LLC
H04L63/0435G06F12/1408H04L9/0816H04L9/0819H04L9/0822H04L9/0825H04L9/3263H04L63/061H04L63/123
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 10,616,189
App. No.
16/024,115
Granted
Apr 7, 2020
Kind
B2
Abstract

A non-transitory computer-readable storage medium comprising instructions stored thereon. When executed by at least one processor, the instructions may be configured to cause a computing system to at least receive a message, the message including a header, an encrypted symmetric key, and an encrypted body, decrypt the encrypted symmetric key using a private key to generate a decrypted symmetric key, decrypt the encrypted body using the decrypted symmetric key to generate a decrypted body, and store the header, the decrypted symmetric key, and the decrypted body in long-term storage.

Claims (67)

1. A non-transitory computer-readable storage medium comprising instructions stored thereon that, when executed by at least one processor, are configured to cause a computing system to at least:

receive a message, the message including a header, an encrypted symmetric key, and an encrypted body;

decrypt the encrypted symmetric key using a private key to generate a decrypted symmetric key;

decrypt the encrypted body using the decrypted symmetric key to generate a decrypted body;

erase the encrypted body; and

store the header, the decrypted symmetric key, and the decrypted body in long-term storage.

2. The non-transitory computer-readable storage medium of claim 1 , wherein the receiving the message includes receiving an email message via an electronic network.

3. The non-transitory computer-readable storage medium of claim 1 , wherein the instructions are further configured to cause the computing system to re-encrypt the decrypted symmetric key to generate a re-encrypted symmetric key, and the storing of the decrypted symmetric key includes storing the re-encrypted symmetric key.

4. The non-transitory computer-readable storage medium of claim 1 , wherein the instructions are further configured to cause the computing system to respond to a request to read the message by displaying the stored decrypted body.

5. The non-transitory computer-readable storage medium of claim 1 , wherein the instructions are further configured to cause the computing system to respond to a request to read the message by retrieving the header and the decrypted body from the long-term storage and displaying the header and the stored decrypted body.

6. The non-transitory computer-readable storage medium of claim 1 , wherein the instructions are further configured to cause the computing system to respond to a request to forward the message to a recipient by:

re-encrypting the decrypted body using the decrypted symmetric key;

re-encrypting the decrypted symmetric key using a public key associated with the private key; and

sending the header, the re-encrypted symmetric key, and the re-encrypted body to the recipient.

7. The non-transitory computer-readable storage medium of claim 1 , wherein the instructions are configured to cause the computing system to not store the encrypted body after decrypting the encrypted body.

8. The non-transitory computer-readable storage medium of claim 1 , wherein the long-term storage includes a magnetic disk.

9. The non-transitory computer-readable storage medium of claim 1 , wherein the long-term storage includes a flash drive.

10. A non-transitory computer-readable storage medium comprising instructions stored thereon that, when executed by at least one processor, are configured to cause a computing system to at least:

receive a message, the message including:

a primary header including a sender of the message and a recipient of the message,

a cryptographic message syntax (CMS) header identifying at least one recipient and including at least one encrypted copy of a symmetric key encrypted according to a public key associated with the at least one recipient, and

an encrypted body encrypted according to the symmetric key;

decrypt the at least one encrypted copy of the symmetric key using a private key associated with the at least one recipient to generate a decrypted symmetric key;

decrypt the encrypted body using the decrypted symmetric key to generate a decrypted body;

erase the encrypted body;

re-encrypt the decrypted symmetric key to generate a re-encrypted symmetric key; and

store the primary header, the identification of the at least one recipient, the re-encrypted symmetric key, and the decrypted body, in long-term storage.

11. The non-transitory computer-readable storage medium of claim 10 , wherein:

the CMS header includes at least:

a first identifier, identifying a first recipient, and a first copy of the symmetric key, the first copy of the symmetric key being encrypted according to a first public key associated with the first recipient; and

a second identifier, identifying a second recipient, and a second copy of the symmetric key, the second copy of the symmetric key being encrypted according to a second public key associated with the second recipient;

the decrypting the at least one encrypted copy of the symmetric key includes decrypting the first copy of the symmetric key using a first private key associated with the first recipient to generate the decrypted symmetric key; and

the storing the identification of the at least one recipient includes storing the first identifier and the second identifier in the long-term storage.

12. The non-transitory computer-readable storage medium of claim 10 , wherein:

the decrypted body includes length indicators indicating lengths of lines of data in the decrypted body; and

the instructions are further configured to cause the computing system to store the length indicators in the long-term storage.

13. The non-transitory computer-readable storage medium of claim 10 , wherein:

the message further includes at least one Secure/Multipurpose Internet Mail Extensions (S/MIME) header; and

the instructions are further configured to cause the computing system to store the at least one S/MIME header.

14. The non-transitory computer-readable storage medium of claim 10 , wherein the message further includes a CMS trailer.

15. The non-transitory computer-readable storage medium of claim 10 , wherein the instructions are configured to cause the computing system to erase the encrypted body after decrypting the encrypted body.

16. The non-transitory computer-readable storage medium of claim 10 , wherein the instructions are further configured to cause the computing system to respond to a request to read the message by displaying the stored decrypted body.

17. The non-transitory computer-readable storage medium of claim 10 , wherein the instructions are further configured to cause the computing system to respond to a request to read the message by retrieving the header and the decrypted body from the long-term storage and displaying the header and the stored decrypted body.

18. The non-transitory computer-readable storage medium of claim 10 , wherein the instructions are further configured to cause the computing system to respond to a request to forward the message to the at least one recipient by:

re-encrypting the decrypted body using the decrypted symmetric key;

re-generating the encrypted copy of the symmetric key; and

sending the primary header, the re-generated symmetric key, and the re-encrypted body to the recipient.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the re-generating the encrypted copy of the symmetric key includes:

decrypting the re-encrypted symmetric key according to a key associated with the computing system; and

re-encrypting the symmetric key according to the public key associated with the at least one recipient.

20. A non-transitory computer-readable storage medium comprising instructions stored thereon that, when executed by at least one processor, are configured to cause a computing system to at least:

receive a message, the message including:

a primary header including a sender of the message and a recipient of the message,

a cryptographic message syntax (CMS) header including at least:

a first identifier, identifying a first recipient, and a first copy of a symmetric key, the first copy of the symmetric key being encrypted according to a first public key associated with the first recipient; and

a second identifier, identifying a second recipient, and a second copy of the symmetric key, the second copy of the symmetric key being encrypted according to a second public key associated with the second recipient; and

an encrypted body encrypted according to the symmetric key;

decrypt the first copy of the symmetric key using a private key associated with the first recipient to generate a decrypted symmetric key;

decrypt the encrypted body using the decrypted symmetric key to generate a decrypted body, the decrypted body including length indicators indicating lengths of lines of data in the decrypted body;

erase the encrypted body after decrypting the encrypted body;

re-encrypt the decrypted symmetric key, using a key associated with the computing system, to generate a re-encrypted symmetric key;

store the primary header, the first identifier, the second identifier, the re-encrypted symmetric key, the decrypted body, and the length indicators, in long-term storage;

respond to a request to read the message by displaying the stored decrypted body; and

respond to a request to forward the message to a forwarding recipient by:

re-encrypting the decrypted body using the re-encrypted symmetric key;

re-generating the first copy of the symmetric key, the regenerating the first copy of the symmetric key including decrypting the re-encrypted symmetric key according to the key associated with the computing system and re-encrypting the symmetric key according to a public key associated with the first recipient and corresponding to the private key associated with the first recipient; and

sending the primary header, the re-generated symmetric key, and the re-encrypted body to the recipient.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2018
From: BAUDOIN, LAETITIA; GOODMAN, BRIAN
To: GOOGLE INC.
Reel/Frame 046634/0794 →
CHANGE OF NAME Recorded Aug 16, 2018
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 047881/0748 →
Continuity (2)
Continuation 14882233 · Oct 13, 2015
Related Publication 20200076776A1 · Mar 5, 2020