PGP, or OpenPGP, encrypts and signs messages and other data with hybrid encryption. It emerged to give people control over email privacy, but email itself still exposes subjects and other headers. section 10.3 section 10.3.1
A simplified OpenPGP message flow looks like this:
- Compress the email, generate a random symmetric key, and encrypt the content with that key. section 10.3.1
- Encrypt the symmetric key separately with each recipient’s public key, then attach those encrypted keys to the encrypted message. section 10.3.1
- Hash and sign the plaintext with the sender’s private key; include the sender’s public key so recipients can verify the signature. section 10.3.1
- Treat key discovery as a separate trust problem: the web of trust lets users rely on signatures from people whose keys they already trust. section 10.3.2
The practical warning
Suppose Alice encrypts a message for Bob, and Bob re-encrypts it for Charles. Charles may believe Alice intended the message for him. A signature over the encrypted message can also be replaced by an interceptor’s signature, illustrating why composition and email-client integration matter. section 10.3.3
