What encryption schemes support this workflow?
Vendor encrypts and publishes information for the client
- Client generates public and private key
- Vendor encrypts private information
- Vendor publishes that
ENCRYPT(PRIVATE_INFORMATION, CLIENT_PUBLIC_KEY) --> Publish
Client re-encrypts for benefit of a third party
- Client generates re-encryptor using its own private key and third party's public key
- Client publishes that
CREATE_REENCRYPTOR(CLIENT_PRIVATE_KEY, THIRD_PARTY_PUBLIC_KEY) --> Publish
Third-party decrypts data
- The third-party decrypts the data
Other people
- Nobody can decrypt
PRIVATE_INFORMATION
unless they have theTHIRD_PARTY_PRIVATE_KEY
orCLIENT_PUBLIC_KEY
.
I know that the asymmetric scheme supports most of this workflow. However, it violates requirement 7. Is there another scheme that fully supports this workflow?
THIRD_PARTY_PRIVATE_KEY
be able to decrypt? $\endgroup$CLIENT_PRIVATE_KEY
would be able to obtain it, and presumably the Vendor is not aware that the client is going to reencrypt it. It would be possible to have a reencryptor that is only given the encryption header and changes the encryption from CLIENT_PRIVATE_KEY into THIRD_PARTY_PUBLIC_KEY. The reencryptor would have the simmetric key, but not the contents, while the caller would have the contents but not CLIENT_PRIVATE_KEY. I don't know if this separation of tasks would be acceptable for Will though. $\endgroup$