Patent ID: 7874010

Claim:
A method for managing secret keys for messages, comprising: receiving a desired expiration time T and a nonce N at a server that manages keys, wherein T (and possibly N) is received from an encrypter of a message M, wherein if N is not received from the encrypter, N is chosen by the server; ensuring that a secret S T associated with the expiration time T is stored on the server so that S T can be looked up using an identifier ID S ; calculating a hash H=h(N,S T ), thereby generating a key H for encrypting and decrypting message M; sending H and ID S from the server to the encrypter, thereby allowing the encrypter to encrypt M with H to form {M}H, and to communicate ({M}H,N,ID S ) to a message reader; deleting H and N at the server before expiration time T and after sending H and ID S to the encrypter; subsequently receiving N and ID S at the server from the message reader; using ID S to lookup S T ; recalculating H=h(N,S T ); and sending H to the message reader, thereby enabling the message reader to decrypt {M}H to obtain M; wherein by using the secret S T associated with the expiration time T and the nonce N, the server is able to reconstruct the secret key H for the message M.