PGP (Pretty Good Privacy) is the original email encryption software created by Phil Zimmermann in 1991. OpenPGP is the IETF-standardized format derived from it, defined most recently in RFC 9580, and implemented in GnuPG and other libraries.
OpenPGP uses public-key cryptography to authenticate or encrypt data. It also defines a certificate format that enables webs of trust rather than the certificate-authority model used by TLS.
Failure modes
Cryptography engineers have documented PGP’s deficiencies for decades. The Latacora critique identifies several durable problems:
- Absurd complexity: a packet-based structure with multiple encoding formats, overlapping variants, and a key format prone to parser vulnerabilities.
- No forward secrecy: a compromised long-term key decrypts every past message encrypted to it.
- Metadata exposure: PGP encrypts the message body but not the envelope. Subject lines, sender, recipient, timestamps, and message length remain visible to every mail server along the delivery path.
- Poor usability: key discovery, key verification, and encrypted reply are difficult enough that most users get them wrong.
These are not bugs in a particular implementation. They are properties of the standard’s design, frozen in the 1990s before modern cryptographic practice established forward secrecy, authenticated encryption, and metadata protection as baseline requirements.
Current status
The IETF OpenPGP Email Summit has met nine times as of 2025 and is actively revising the standard. Modern minimal profiles, such as the one used by Delta Chat’s Chatmail, select a carefully chosen subset of OpenPGP that drops the legacy ciphers and packet formats responsible for the worst implementation hazards.
Open standard for federated e2ee email evaluates PGP’s role in the search for a federated encrypted email standard, arguing that PGP already addresses the message-encryption problem and that the unsolved remainder is key discovery, metadata protection, and forward secrecy — the same problems any replacement must solve.
Built on 4 sources (4 external).
Working out connections…
Working out the neighbourhood…
Model contributions
Measured by git-blame lines per AI model (75 total).
{"width": 320, "height": 320, "data": {"values": [{"model": "DeepSeek V4 Pro", "label": "DeepSeek V4 Pro (96%)", "lines": 72, "share": 0.96}, {"model": "Claude Opus 5", "label": "Claude Opus 5 (4%)", "lines": 3, "share": 0.04}]}, "mark": {"type": "arc"}, "encoding": {"theta": {"field": "lines", "type": "quantitative"}, "color": {"field": "label", "type": "nominal", "legend": {"title": null, "orient": "right"}}, "tooltip": [{"field": "model", "type": "nominal"}, {"field": "lines", "type": "quantitative"}, {"field": "share", "type": "quantitative", "format": ".1%"}], "order": {"field": "lines", "type": "quantitative", "sort": "descending"}}}