Patent ID: 7899184

Claim:
A computer-implemented method for encryption of a message comprising: generating by a processor a refresher public key, a one-time public key and a repeater public key, the one-time public key and the repeater public key each having an associated private key; generating a shared secret value based upon the refresher public key and one of a latest received one-time public key or the repeater public key, wherein the one-time public key is given priority over the repeater public key and the one-time public key expires after a single use; assigning to the message a Diffie-Hellman identification value to include a message number of a last decrypted message and a value indicating whether the shared secret value was generated using the one-time public key or the repeater public key; assigning to the message history data including a list of sent refresher public keys and associated Diffle-Hellman identification values created after a last sent message that has been received by a receiver; retrieving one or more states for sending from the computer-readable storage medium; generating one or more new keys using a key generator based upon the one or more states for sending, and the shared secret value; generating one or more new states for sending using a key generator based upon the one or more states for sending and the shared secret value; encrypting the message using the one or more new keys; storing in the computer-readable storage medium the one or more new states for sending, the private keys associated with the one-time public key and the repeater public key, and the message number for the message.