Published 2026-04-28 9 min read Topic: cryptography

Why E2EE Without Forward Secrecy Lies to You

"End-to-end encrypted" is a marketing phrase. The honest version of the question is: if my private key is stolen tomorrow, can the attacker decrypt last month's messages? If the answer is yes, the encryption is doing far less than its label implies. The property that says "no" is forward secrecy — and it's not optional.

The threat that matters

The classic encryption threat model imagines a passive observer trying to decrypt messages in real time. That's the easy case. The harder case, and the one nation-state services and large platforms actually face, is store now, decrypt later: an adversary records every encrypted message it can, indefinitely, on the assumption that a key will eventually be compromised — through legal compulsion, server breach, endpoint malware, or future quantum capability.

If your encryption uses a long-lived key directly to encrypt every message, then the day that key falls, your entire archived history falls with it. Forward secrecy (sometimes called perfect forward secrecy, PFS) is the design property that prevents this. It guarantees that compromise of the long-term private key does not enable decryption of any prior session.

How forward secrecy works

The mechanism is conceptually simple: don't use the long-term key to encrypt messages. Use it to authenticate a fresh, short-lived key generated by ephemeral Diffie-Hellman. The session key is computed and then immediately destroyed. Without that exact key, the captured ciphertext is uncrackable even if the attacker later steals every long-term secret on both endpoints.

// Sketch of an ephemeral DH handshake
1. Alice generates ephemeral keypair (a, A=g^a)
2. Bob   generates ephemeral keypair (b, B=g^b)
3. Both sign their ephemeral public key with their LONG-TERM identity key
4. Both compute shared secret K = g^(ab)
5. Both ZEROIZE a and b in memory
6. K is used to derive the session encryption key
7. When the session ends, K is also destroyed

The signature in step 3 is what authenticates the handshake — it proves you're really talking to Bob's identity key. But the identity key never directly encrypts anything. Compromising it later lets the attacker impersonate Bob in a future handshake, but it cannot decrypt any past K because a and b are gone.

The Signal protocol's double upgrade

Signal goes a step further. The Double Ratchet derives a new key for every individual message, not just every session. The "ratchet" combines a Diffie-Hellman ratchet (new ephemeral keys when a reply arrives) with a symmetric ratchet (a one-way hash chain advancing with each message). The result has two properties that go beyond classical PFS:

This is the single most important property to look for in a modern messenger. The TLS 1.3 handshake also has forward secrecy by default — but it doesn't have PCS, because TLS sessions don't ratchet through messages the way Signal does.

The messenger scoreboard

MessengerE2EE by default?Forward secrecy?Post-compromise security?
SignalYesYes (Double Ratchet)Yes
WhatsAppYes (Signal protocol)YesYes — but cloud backups break it (see below)
iMessage (pre-Contact Key Verification)YesNo (long-lived RSA keys per device)No
iMessage (PQ3, 2024+)YesYes (rachet + PQ KEM)Yes
Telegram default chatsNo (server-side stored)N/AN/A
Telegram Secret ChatsYesYes (MTProto 2.0)No
Matrix / ElementOptional, default-on for DMsYes (Olm/Megolm)Partial (Megolm rotates per session)
PGP emailYes (when used)NoNo
DiscordNoN/AN/A

Two entries deserve particular attention.

PGP: the cautionary tale

PGP is the canonical example of E2EE without forward secrecy. Your private key is the same for every email you receive over years or decades. Subpoena it, steal it, brute-force a weak passphrase — and a fifteen-year archive of "encrypted" mail decrypts in a single batch. PGP is not a bad protocol; it is a 1991 protocol, and the threats have changed. For long-form encrypted communication today, the modern advice is "use Signal" or "use age + ephemeral keys," not "use PGP."

iMessage's quiet upgrade

For most of its history, iMessage authenticated with long-lived RSA-1280 keys per device. Apple shipped PQ3 in early 2024, replacing this with a Signal-style ratchet plus post-quantum KEM (Kyber-1024). It's now arguably the strongest deployed messaging protocol on the planet. The upgrade was nearly invisible to users — which is exactly how cryptography upgrades should happen.

The cloud backup problem

The leak everyone forgets. WhatsApp uses Signal's protocol on the wire — flawless forward secrecy. Then it offers iCloud and Google Drive backups that, until recently, uploaded the plaintext message database. Forward secrecy on the network is irrelevant if the messages are sitting in cleartext in someone else's cloud.

WhatsApp now offers end-to-end encrypted backups (off by default). Signal's backups stay on-device. iMessage backups via iCloud are E2EE only if Advanced Data Protection is enabled — which most users have not turned on. The lesson: forward secrecy is a property of the entire system, not just the protocol. A backup that defeats it defeats it completely.

How to actually verify the property

You can't visually inspect a chat to know if forward secrecy is in play. You can:

  1. Read the protocol documentation. Real implementations document their handshake. If a service uses generic phrases like "military-grade encryption" without naming the protocol or a peer-reviewed paper, that is the answer.
  2. Check for ratcheting language. "Per-message keys," "Double Ratchet," "TreeKEM" (the MLS group construction), "ephemeral DH" — these are the markers.
  3. Check for backup behavior. If the messenger stores messages off-device in any unencrypted form, FS is meaningless against any attacker who reaches the backup.
  4. Check for safety numbers / verification. Without out-of-band identity verification, you can have all the FS in the world and still be talking to a man-in-the-middle.

The post-quantum shoe drop

Forward secrecy in the classical sense protects against future key theft. It does not, on its own, protect against a future quantum computer breaking the underlying Diffie-Hellman exchange itself. If an adversary records ECDH handshakes today and quantum-breaks them in 2035, those past sessions decrypt — even with classical PFS.

This is why 2024 was the year hybrid post-quantum key exchange went mainstream. Signal's PQXDH, iMessage's PQ3, and TLS 1.3's X25519+Kyber768 hybrid all add a quantum-resistant KEM next to the classical ECDH. Either one breaking is fine; both breaking is required to compromise the session. For "store now, decrypt later" threats with a 10–15 year horizon, this is the only credible defense.

The takeaway

The honest E2EE checklist: ephemeral keys per session (FS), per-message ratcheting (PCS), on-device or E2E-encrypted backups, hybrid post-quantum handshakes, out-of-band identity verification, open implementation. Anything claiming end-to-end encryption that doesn't tick the first three is selling you a slogan.

End-to-end encryption is not a binary. The cryptographic difference between Signal's ratchet and a generic "we encrypt your messages" service is the difference between a sealed envelope and a sealed envelope you also burn after reading. They look similar from the outside. Only one of them survives the day someone gets the keys.

← All articles 0data.net home