1. A system for storing encrypted data, comprising: a processor configured to: receive an encrypted segment, wherein the encrypted segment is determined by breaking a data stream, a data block, or a data file into one or more segments and encrypting each of the one or more segments; determine whether the encrypted segment has been previously stored; in the event that the encrypted segment has not been previously stored, store the encrypted segment; and a memory coupled to the processor and configured to provide the processor with instructions.