Enveloped data
Construction
- generate at random a new key
- encrypt the data (of any type) using this key
- encrypt the key with the recipient public key
Verification
- decrypt the key using the private key (authentication)
- decrypt the contents using the recovered key (privacy)