What is end-to-end encryption (E2EE)?
End-to-end encryption (E2EE) means data is encrypted on the sender's device and can be decrypted only on the recipient's device. The service in the middle, such as a messaging server, only ever handles ciphertext because it never holds the keys. The Electronic Frontier Foundation puts it as a message being turned into a secret message by its original sender and decoded only by its final recipient.
How E2EE works
- Each user's device generates a key pair. The public key is shared through the service, the private key never leaves the device.
- The sender encrypts with keys derived from the recipient's public key material and sends the ciphertext through the server.
- The server stores and forwards the ciphertext without being able to read it.
- The recipient's device decrypts it with its private key.
Modern messengers add a key-update scheme on top. Signal's Double Ratchet algorithm gives each message its own key, so a later key leak does not expose earlier messages (forward secrecy), and fresh Diffie-Hellman exchanges let a conversation recover after a brief compromise. The Double Ratchet needs a separate protocol, such as PQXDH, to agree the first shared secret. For groups, the IETF standardized Messaging Layer Security in RFC 9420, which supports groups from two to thousands of members and provides forward secrecy and post-compromise security.
E2EE compared with encryption in transit and at rest
TLS, the protocol behind HTTPS, protects data between a client and a server so that only those two endpoints can read it (RFC 8446). That is encryption in transit. The server, however, sees the plaintext. Encryption at rest protects stored data, but the service usually holds the keys. In E2EE the service never has the keys, so even its own staff, or an attacker who breaks into its servers, cannot read message content. If a server can decrypt a large share of messages, the system is not end-to-end encrypted. Most E2EE products still use TLS as well, because the two cover different threats.
Example
You send a photo in a messenger. Your phone encrypts it, the app uploads the encrypted file and the server delivers it to your friend. Your friend's phone decrypts and shows it. The server saw a blob of bytes, its size and the time it arrived.
What E2EE does not protect
- A compromised device. Malware on the sender's or recipient's phone sees the message after decryption.
- Metadata. Who talks to whom and when often stays visible to the service, in the way an envelope shows sender, receiver and destination even when the letter is sealed (an analogy from the EFF's guide to metadata).
- Backups. If a chat is backed up unencrypted or under a key the provider holds, the protection ends there.
- People. A recipient can copy or screenshot what you send, and a user can be tricked into trusting a wrong key.
It also does not replace the rest of your security work. Accounts, sessions and device trust still need identity and access management, the APIs that carry the ciphertext need API security, and stored metadata still needs database security. See also the common cyber security threats that E2EE does not stop.
Common mistakes
- Calling HTTPS end-to-end encryption. HTTPS ends at the server.
- Letting the server see keys. A key escrow or a server-side "recovery" copy can quietly turn E2EE into ordinary encryption.
- Skipping key verification. Without a way to check safety numbers or fingerprints, a server could substitute a key and sit in the middle.
- Writing your own cryptography. Use a reviewed protocol and library.
E2EE, load testing and monitoring
LoadFocus does not provide encryption products, and a load test cannot read E2EE content, which is the point. What it can do is test the backend that carries it. The server still has to accept uploads of ciphertext, hand out public keys, store messages and deliver them quickly to many devices at once. Use load testing with synthetic test accounts and opaque payloads of realistic size to see how those endpoints behave as virtual users grow, and API monitoring to check them on a schedule. Never use real user data. For wider guidance, read cloud testing security best practices.
FAQ: End-to-end encryption
Is end-to-end encryption the same as HTTPS?
No. HTTPS (TLS) protects the connection between your device and a server, but the server can read the data. End-to-end encryption keeps the data unreadable to the server as well.
Can the company that runs the service read my E2EE messages?
Not the content, if the system is genuinely end-to-end encrypted, because the company does not hold the decryption keys. It may still see metadata such as who contacted whom and when.
What is forward secrecy?
It means a key leaked later cannot decrypt past messages. Signal's Double Ratchet gives each message its own key to achieve this.
Does E2EE work for group chats?
Yes. Messaging Layer Security (RFC 9420) is an IETF standard for group key agreement that supports groups from two to thousands of members.
Does end-to-end encryption make an app immune to attacks?
No. It protects message content in transit and on the server, but not a compromised device, unencrypted backups or weak account security.
Related terms
Related LoadFocus Tools
Put this concept into practice with LoadFocus, the same platform that powers everything you just read about.