S/MIME vs PGP: email encryption compared
The two standards for end-to-end email encryption, and how their approaches to keys and trust differ.
TLS is not end-to-end encryption
Most email today travels over TLS, which encrypts the connection between your app and your provider and, usually, between providers. But the message is decrypted at each server and stored there in readable form. Your provider, and anyone with access to its servers, can read it.
End-to-end encryption means only the recipient can decrypt the message. For standard email, the two main ways to do that are S/MIME and PGP. Both use public-key cryptography: you encrypt with the recipient's public key, and only their private key can decrypt it. Both can also sign messages with your private key so recipients can verify they came from you and were not altered.
S/MIME: certificates from an authority
S/MIME (Secure/Multipurpose Internet Mail Extensions, currently RFC 8551) uses X.509 certificates, the same kind used for HTTPS websites. A certificate authority checks that you control an email address (and for some certificate types, your identity or organization) and issues a certificate that binds your public key to that address.
Trust follows the authority: if your mail app trusts the certificate authority, it trusts the certificate. S/MIME is built into Apple Mail, Outlook and many corporate systems, which is why it is common inside companies and governments, where IT can issue certificates to everyone. The usual hurdle for individuals is getting and renewing a certificate.
To exchange encrypted mail, you first need each other's certificates. The easy way is to send a signed message, which includes your certificate, and have the other person do the same.
PGP: keys you manage yourself
PGP (Pretty Good Privacy) and its open standard OpenPGP (RFC 9580, published in 2024 and replacing RFC 4880) let you create your own key pair without any authority. You share your public key directly, on your website, or through key servers such as keys.openpgp.org.
Trust is up to you. You can compare a key's fingerprint with its owner in person, or rely on the web of trust, where people sign each other's keys. This gives you full control and costs nothing, but it asks more of users. PGP is popular with journalists, open-source projects and security researchers. Most mail apps need a plug-in or separate tool to use it, and GnuPG is the common free implementation.
-----BEGIN PGP MESSAGE-----
hF4DxbJ8k4Lm1QQSAQdAZ3m9VtJcA0fQ2b7nP...
=Xk4r
-----END PGP MESSAGE-----What neither one hides
Both encrypt the body and attachments. In standard use, neither encrypts the headers: the sender, recipients, date and usually the subject line stay readable to every server along the way. Some newer clients can protect the subject, but support is uneven.
Both also depend on the mail app handling decryption carefully. In 2018, researchers disclosed EFAIL, a set of flaws in how many clients displayed decrypted HTML mail, which could leak the plain text to an attacker. Clients have since been patched, but it showed that the app matters as much as the cryptography.
Questions
- Which should I use?
- Use whichever your recipients already use. In a company that issues certificates, that is usually S/MIME. For personal use with technical contacts, PGP is more common. Encryption only works if both sides support the same standard.
- Can S/MIME and PGP users email each other encrypted?
- No. They use different formats and key systems, so a message encrypted with one cannot be read with the other.