Generating new encryption keys during a secure communication session
AssigneeWickr Inc.
InventorsJoël Alwen, Thomas Michael Leavy
Life of this patent
Estimating the term…
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.
Claims20
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.
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.
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.
Dependencies are inferred from the claim text.