Can anyone tell me if an encryption / decryption scheme like the following exists?
Encrypted1 = SomeCryptoFunction(Data, Key1)
Encrypted2 = SomeAdditionalCryptoFunction(Encrypted1, Key2)
Data = SomeDecryptFunction(Encrypted1, Key1)
Data = SomeDecryptFunction(Encrypted2, Key2)
In words, the idea is follows.
- Provider encrypts data (In a general fashion, using
Key1
) - User requests encrypted (With
Key1
) data - User runs additional encryption process to provide data decryptable by user key (
Key2
). - User decrypts with their key (
Key2
).
Note: I am looking for this overall process, it does not have to be exactly the same, just the general idea.
Does this exist, or have I got a case of wishful thinking?
Edit (For clarity after seeing the comments)
The idea for application is as follows:
- A company shares media encrypted with their key (
Key1
) over p2p. - The companies users share the encrypted media between themselves.
- A user wishes to access the information.
- It is undesirable to have everyone share a common key, so The idea is to give each user a small routine to run on the already encrypted data, and a key to decrypt it with. Each routine and key combination would be "unique".
- The user fetches the key and routine from the company server
- Run's the routine on the data
- And decrypts with their own key
SomeAdditionalCryptoFunction
it,SomeDecryptFunction
it, and arrive at the original $Data$. Is this really what you mean? $\endgroup$