Key management and dynamic perfect forward secrecy
AssigneeWickr Inc.
InventorsRobert Statica, Christopher A. Howell
Life of this patent
Estimating the term…
Abstract
An indication is received from a server that a first pool of public keys should be transmitted to a server. At least one public-private keypair is generated in response to the received indication. The public key portion of the generated keypair is transmitted to the server. A subsequent indication is received from the server that an additional public key should be transmitted to the server.
Claims19
A system, comprising:
- an interface configured to:
- receive a pool of public keys from a first device, wherein the pool has a first pool size that reflects a target number of keys to be included in the pool;
- a processor configured to:
- designate one of the received public keys included in the pool of public keys as a reserve key;
- and
- select a public key from the pool of public keys for use in conjunction with encrypting a communication to the first device, wherein the selecting includes preferentially selecting a public key that is not designated as a reserve key when at least one such key is present in the pool in addition to the reserve key, and
- select the reserve key for use in conjunction with encrypting the communication when the reserve key is the only key remaining in the pool without deleting the reserve key from the pool until the pool is replenished;
- and
- a memory coupled to the processor and configured to provide the processor with instructions.
A method, comprising:
- receiving a pool of public keys from a first device, wherein the pool has a first pool size that reflects a target number of keys to be included in the pool;
- designating one of the received public keys included in the pool of keys as a reserve key;
- and
- selecting a public key from the pool of received public keys for use in conjunction with encrypting a communication to the first device, wherein the selecting includes preferentially selecting a public key that is not designated as a reserve key, if at least one such key is present in the pool in addition to the reserve key;
- and
- selecting the reserve key for use in conjunction with encrypting the communication when the reserve key is the only key remaining in the pool without deleting the reserve key from the pool until the pool is replenished.
A computer program product, the computer program product being embodied in a non-transitory tangible computer readable storage medium and comprising computer instructions for:
- receiving a pool, having a first pool size, of public keys from a first device, wherein the pool size reflects a target number of keys to be included in the pool;
- designating one of the received public keys included in the pool of keys as a reserve key;
- selecting a public key from the pool of received public keys for use in conjunction with encrypting a communication to the first device, wherein the selecting includes preferentially selecting a public key that is not designated as a reserve key, if at least one such key is present in the pool in addition to the reserve key, and
- selecting the reserve key for use in conjunction with encrypting the communication when the reserve key is the only key remaining in the pool without deleting the reserve key from the pool until the pool is replenished.
Dependencies are inferred from the claim text.