1. A method comprising: a decrypter receiving at least one data block for storage, and determining that the received data block comprises ciphertext encrypted with a key associated with an encryption algorithm; instantiating a decryption algorithm to decrypt the received data block, wherein the instantiation comprises: determining the encryption algorithm used to encrypt the received data block; gathering auxiliary data to decrypt the received data block, wherein the auxiliary data is associated with the encryption algorithm; obtaining the key; and determining an additional input from the auxiliary data; decrypting the received data block to a non-encrypted data block, the decrypting employing the key and the additional input; transforming the non-encrypted block, including performing one or more storage efficiency functions to the non-encrypted data block; and re-encrypting the transformed data block with the key and the additional input prior to the re-encrypted data leaving the decrypter.