Patent ID: 8762743

Claim:
A method, comprising: maintaining, by a client, a client private key in a computer readable storage medium; generating a data object comprising a plurality of chunks to store at a server, wherein the server stores the chunks in a storage; encrypting a first portion of the chunks in the data object with the client private key; sending the first portion of the chunks in the data object encrypted with the client private key to the server to store; encrypting a second portion of the chunks in the data object with a shared key to generate an encrypted second portion of the chunks; determining an identifier from the encrypted second portion of the chunks; using the determined identifier to determine whether the second portion of the chunks are stored in the server; sending the encrypted second portion of the chunks to the server in response to determining that the second portion of chunks are not stored in the server; and sending an identifier for each of the chunks in the second portion of the chunks in the data object in response to determining that the second portion of the chunks are already stored at the server.