IP Library Granted Patent US 10,855,440
Granted Patent B1
US 10,855,440 · App. 15/806,471 · Granted Dec 1, 2020

Generating new encryption keys during a secure communication session

Inventors: Joël Alwen (Vienna, AT); Thomas Michael Leavy (River Edge, NJ)
Assignee: Wickr Inc.
H04L9/00H04L9/0819H04L9/0816H04L9/0838
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,855,440
App. No.
15/806,471
Granted
Dec 1, 2020
Kind
B1
Abstract

The present application describes a method, system, and non-transitory computer-readable medium for generating new keys during a secure communication session. A key derivation function is operatively connected to both a counter and a memory. The key derivation function generates new key material from a first input and a second input in response to a signal provided by the counter. The key derivation function generates the new key material and outputs it to the memory.

Claims (69)

1. A method for generating new encryption keys during a secure communication session, the method comprising:

deriving, by a first device, a first encryption key and a first nonce;

receiving, by the first device and from at least one second device, a second encryption key;

storing, by the first device, the first encryption key, the second encryption key, and the first nonce in a memory;

encrypting, by the first device, first communication data using the first encryption key;

transmitting, by the first device, the encrypted first communication data to the at least one second device during a first secure communication session;

receiving, by the first device and from the at least one second device, encrypted second communication data during the first secure communication session;

decrypting the second communication data using the second encryption key;

detecting, during the first secure communication session, an event;

inputting, by the first device and based on detecting the event, the first encryption key and the first nonce into a key derivation function to generate a third encryption key and a second nonce;

inputting, by the first device and based on detecting the event, the second encryption key and the first nonce into the key derivation function to generate a fourth encryption key; and

storing, by the first device, the third encryption key, the fourth encryption key, and the second nonce in the memory.

2. The method of claim 1 , wherein the memory is a buffer.

3. The method of claim 1 , further comprising:

encrypting, by the first device, third communication data using the third encryption key after to the event; and

transmitting, by the first device and to the at least one second device, the encrypted third communication data during the first secure communication session.

4. The method of claim 1 , further comprising:

receiving, by the first device and from the at least one second device, encrypted fourth communication data after the event; and

decrypting, by the first device, the fourth communication data using the fourth encryption key.

5. The method of claim 1 , wherein the event is an exchange of a predetermined number of packets.

6. The method of claim 1 , wherein the event is a predetermined amount of time elapsing.

7. The method of claim 1 , further comprising:

storing, on the first device, the first encryption key for a predetermined period after the event.

8. The method of claim 1 , wherein the second nonce is equal to the first nonce.

9. A non-transitory computer-readable medium comprising instructions that when, executed by at least one processor, perform the steps of:

deriving a first encryption key and a first nonce;

receiving, from at least one second device, a second encryption key;

storing the first encryption key, the second encryption key, and the first nonce in a memory;

encrypting first communication data using the first encryption key;

transmitting the encrypted first communication data to the at least one second device during a first secure communication session;

receiving, from the at least one second device, encrypted second communication data during the first secure communication session;

decrypting the second communication data using the second encryption key;

detecting, during the first secure communication session, an event;

inputting the first encryption key and the first nonce into a key derivation function in response to an event to generate a third encryption key and a second nonce;

inputting, by the first device and based on detecting the event, the second encryption key and the first nonce into the key derivation function to generate a fourth encryption key; and

storing the third encryption key, the fourth encryption key, and the second nonce in the memory.

10. The non-transitory computer-readable medium of claim 9 , further comprising instructions for:

encrypting third communication data using the third encryption key after the event; and

transmitting the encrypted third communication data to the at least one second device during the first secure communication session.

11. The non-transitory computer-readable medium of claim 9 , wherein the event comprises a predetermined number of packets exchanged between a first device and the at least one second device.

12. The non-transitory computer-readable medium of claim 9 , wherein the event is a predetermined amount of time elapsing.

13. The non-transitory computer-readable medium of claim 9 , comprising instructions for:

receiving encrypted fourth communication data from the at least one second device after the event; and

decrypting the fourth communication data using the fourth encryption key after the event.

14. A computing device comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the computing device to:

derive a first encryption key and a first nonce;

receive, from at least one second device, a second encryption key;

store the first encryption key, the second encryption key, and the first nonce;

encrypt first communication data using the first encryption key;

transmit the encrypted first communication data to the at least one second device during a first secure communication session;

receive, from the at least one second device, encrypted second communication data during the first secure communication session;

decrypt the second communication data using the second encryption key;

detect, during the first secure communication session, an event;

input, based on detecting the event, the first encryption key and the first nonce into a key derivation function to generate a third encryption key and a second nonce;

input, based on detecting the event, the second encryption key and the first nonce into the key derivation function to generate a fourth encryption key; and

store the third encryption key, the fourth encryption key, and the second nonce.

15. The computing device of claim 14 , wherein the instructions, when executed by the one or more processors, cause the computing device to:

encrypt third communication data using the third encryption key after to the event; and

transmit, to the at least one second device, the encrypted third communication data during the first secure communication session.

16. The computing device of claim 14 , wherein the instructions, when executed by the one or more processors, cause the computing device to:

receive, from the at least one second device, encrypted fourth communication data after the event; and

decrypt the fourth communication data using the fourth encryption key.

17. The computing device of claim 14 , wherein the event is an exchange of a predetermined number of packets.

18. The computing device of claim 14 , wherein the event is a predetermined amount of time elapsing.

19. The computing device of claim 14 , wherein the instructions, when executed by the one or more processors, cause the computing device to:

store the first encryption key for a predetermined period after the event.

20. The computing device of claim 14 , wherein the second nonce is equal to the first nonce.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2021
From: WICKR LLC
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 057366/0573 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2017
From: ALWEN, JOËL; LEAVY, THOMAS MICHAEL
To: WICKR INC
Reel/Frame 044070/0143 →
Cited By (8)
US 12,212,561 US 12,301,703 US 12,326,823 US 12,549,354 US 12,567,982 US 12,598,061 US 12,621,130 US 12,683,771