Patent ID: 8479304

Claim:
A computer-implemented method comprising: generating an encryption key for use in encrypting first data for a first client of a plurality of clients, wherein the encryption key is based upon a hash of the first data to be encrypted; detecting that the first client has specified that a higher level of security is to be applied to the first data, wherein the detecting comprises accessing information specific to the first client on a storage device, and wherein the detecting is based on one or more of an attribute of the first data, an identity of the first data, or a data pattern included within or associated with the first data; in response to detecting that the higher level of security has been specified for the first data, modifying at least one of the first data to be encrypted and the encryption key, based upon a client-specific value confidential to the first client; subsequent to the modifying, generating a first identifier for the first data to be encrypted, based upon at least one of the first data to be encrypted and the encryption key, wherein the first identifier is different from a second identifier, wherein the second identifier is generated to identify second data for a second client of the plurality of clients, and wherein the second data is identical to the first data; detecting whether an encrypted copy of the first data is already stored by a storage system that performs data deduplication, based upon whether the first identifier matches any of a plurality of identifiers associated with data at the higher security level, stored by the storage system, and wherein the storage system is operated by a third-party entity that is not one of the plurality of clients; generating a third identifier for third data for the first client; detecting that the first client has specified that the higher level of security is not to be applied to the third data; in response to the detecting that the higher level of security is not to be applied, generating a fourth identifier for the third data, wherein the fourth identifier is identical to a fifth identifier, wherein the fifth identifier is generated to identify fourth data for the second client of the plurality of clients, and wherein the third data is identical to the fourth data; and detecting whether an encrypted copy of the third data is already stored by the storage system, based upon whether the fourth identifier matches any of the plurality of identifiers.