Patent ID: 8397084

Claim:
In a computing environment, a method comprising: receiving at a server and from a client, a hash value computed by the client from a hash of data in its unencrypted form located at the client; maintaining, at the client, a key identifier (ID) and an encryption key in a keys data store, the encryption key for encrypting and decrypting the data, and the key ID indexing the encryption key in the keys data store; determining, by the server, from the hash value whether an instance of the data in an encrypted form corresponding to the unencrypted form is already stored at the server; in response to determining from the hash value that an instance of the data in an encrypted form corresponding to the unencrypted form is already stored at the server, returning an acknowledgement to the client indicating that the instance is already stored; and in response to determining from the hash value that an instance of the data in an encrypted form corresponding to the unencrypted form is not already stored, returning a message to the client indicating that the instance is not already stored, receiving from the client an instance of the data in an encrypted form along with the key ID, and storing, at the server, the instance of the data in the encrypted form and the key ID in association with the data in the encrypted form, wherein at least one of the receiving, maintaining, determining, returning and storing steps is performed by a processing unit.