I'm working with documents encrypted in long term storage. When a client requests the document, the document should be delivered encrypted under a distinct key (distinct from the long term storage key).
For efficiency, I want to avoid decrypting the document under its long term key and then re-encrypting under a client delivery key.
Are there any FIPS 140-2 block cipher modes of operation that are amicable to a simple XOR for the transformation? That is:
- Client Key = Long Term Key ⊕ Random Key
- Client Encrypted Document = Long Term Encrypted Document ⊕ Keystream based on Random Key
When the client receives the document, he/she would:
- Decrypted Document = Decrypt (Client Key, Client Encrypted Document)
I think a mode like CTR is close to what I want since it Encrypts the Counter and then XORs it with the plain text, but I would like to avoid the "Encrypts New Counter" if possible.
The block cipher and approved modes are important because I'm constrained by FIPS 140-2.
Any insight or help would be greatly appreciated.