Patent ID: 7716484

Claim:
A method comprising: implementing a multi-party secure computation protocol between a client which has a client secret and a server which has a server secret to compute a third secret from the client secret and the server secret, wherein the protocol is implemented so that the client obtains the third secret and cannot feasibly determine the server secret, and the server cannot feasibly determine the client secret and cannot feasibly determine the third secret; authenticating the client by a device, the device storing an encrypted secret and configured not to provide the encrypted secret without authentication and the device being distinct from the server; and after authenticating, providing to the client by the device the encrypted secret, wherein the encrypted secret is capable of being decrypted using a decryption key derived from the third secret and wherein the multi-party secure computation protocol implemented between the client and the server is the only multi-party computation protocol that is implemented in generating the third secret and the decryption key derived from the third secret; wherein implementing the multi-party secure computation protocol involves: at the client, using the client secret to compute client information to harden the client secret and then sending the client information to the server; at the server, using the client information and the server secret to compute intermediate data and sending the intermediate data to the client; and at the client, deriving the third secret from the intermediate data.