E2EE
How it works
Each party generates a key pair (public and private); the private key never leaves the device. The parties establish a shared secret over an insecure channel via key exchange (e.g., Diffie-Hellman, X3DH) and then encrypt content with an authenticated symmetric cipher (AEAD, e.g., AES-GCM or ChaCha20-Poly1305). Modern protocols such as the Signal Protocol use a ratchet mechanism (Double Ratchet) that rotates keys per message, providing forward secrecy and post-compromise security. To prevent man-in-the-middle attacks, parties verify key identity out-of-band (fingerprints/safety numbers, QR codes).
Problem solved
It addresses the problem of trusting intermediaries: in systems that encrypt only in transit or store data in a server-decryptable form, the provider (or anyone with access to its infrastructure, a backdoor, or a court order) can read the content. E2EE removes the provider as an access point to the data, reducing the risk of breaches, mass surveillance, and unauthorized access.
Components
Establishes a shared secret between parties over an insecure channel without prior key exchange.
Each party holds a key pair; public keys are distributed while private keys never leave the device.
Encrypts the message payload with authentication, e.g., AES-256-GCM or ChaCha20-Poly1305.
Out-of-band verification of fingerprints/safety numbers or QR codes to prevent man-in-the-middle attacks.
The Double Ratchet rotates keys per message, providing forward secrecy and post-compromise security.
Implementation
Without key authentication, an attacker can substitute their own key during exchange and decrypt traffic.
E2EE does not protect when an endpoint device is compromised โ plaintext is visible at the ends.
E2EE protects content but typically not metadata (who communicates with whom and when).
Introducing a backdoor or key escrow by the provider or via regulation defeats E2EE guarantees.
Evolution
Whitfield Diffie and Martin Hellman publish a method to establish a shared secret over a public channel, laying the foundation for public-key cryptography and E2EE.
Phil Zimmermann creates PGP, the first widely used E2EE for email and files.
OTR brings forward secrecy and deniability to instant messaging.
Trevor Perrin and Moxie Marlinspike (Open Whisper Systems) begin the protocol and the Double Ratchet algorithm.
Migration to the Axolotl Ratchet enables asynchronous communication (offline messages).
WhatsApp enables E2EE by default for over a billion users; the protocol is named Signal Protocol and the ratchet renamed Double Ratchet.
Signal introduces PQXDH, adding post-quantum resistance to the initial key agreement.
Hyperparameters (configurable axes)
Method of establishing the shared secret, e.g., Diffie-Hellman, X3DH, post-quantum PQXDH.
AEAD cipher protecting the payload, e.g., AES-256-GCM or ChaCha20-Poly1305.
Whether and how keys are rotated (e.g., Double Ratchet) so that compromising one key does not expose earlier/later messages.
Key authentication mechanism: safety numbers, fingerprints, QR codes.
Hardware requirements
E2EE relies on standard cryptographic operations executable on any CPU; it requires no specialized hardware.