Patent ID: 7849318

Claim:
A method for securing communication between client and server computing systems, comprising: receiving at a server computing system an encrypted version of a secret string, the secret string having been generated at a client computing system, and the secret string having been encrypted at the client computing system using a public key associated with a private key of the server computing system; decrypting the encrypted secret string at the server computing system using the private key of the server computing system, such that only the client and server computing systems know the secret string; receiving at the server computing system a non-encrypted version of a message from the client computing system, a message counter value, and a first hash value generated using a first hash algorithm, the first hash value based on a content of the message, the message counter value, and the secret string, wherein the message counter value is incremented for each message received from the client computing system; generating a second hash value at the server computing system using the first hash algorithm, wherein the second hash value is generated using the content of the received message, the received message counter value, and the secret string; and accepting the non-encrypted version of the message received from the client computing system as authentic upon determining at the server computing system that the second hash value matches the first hash value.