Encryption explained · iPhone and Android

End-to-end vs zero-knowledge encryption: what each term promises

Both phrases appear on app store pages, and both sound reassuring. Neither has a legal definition, so each company can use them as it likes. Knowing what they were meant to say helps you tell a real promise from a slogan.

End-to-end encryption

The “ends” are the two devices at either end of a journey, for example your phone and your friend’s. Data is encrypted on the first and decrypted only on the second. Everything between, such as servers and networks, carries scrambled data it can’t read.

Compare this with encryption in transit, where data is protected on the road but the server at the other side can open it. Many services do this, and it keeps out someone on the café Wi-Fi, but not the service itself.

A simple picture: sending a sealed letter that only the recipient can open, rather than sending it to a post office that opens it, reads it and reseals it.

Zero-knowledge

This phrase describes what the service knows: nothing about your content. The service never holds your key, never sees your data in readable form, and so can’t hand it over, lose it in a breach in a readable state, or reset your password.

The cost is that a forgotten password can’t be recovered by support. That is why such apps give you a recovery phrase.

(There is another meaning in mathematics: a “zero-knowledge proof” lets you prove you know something without revealing it. That is a different technique, and most apps using the phrase don’t mean it.)

How they overlap

An app can be end-to-end encrypted and still know things about you, such as your account, contacts and file sizes. An app can claim zero-knowledge for your files while still learning who you are.

Question End-to-end Zero-knowledge
Focus How data travels between devices What the provider can know
Typical use Messaging, sharing Storage, backup, vaults
Provider can read content? Not in transit Never
Provider can see metadata? Often yes Depends on the app

Why the labels don’t settle it

Words on a page don’t tell you how keys are handled. Cases where the claim breaks down:

  • The company keeps a copy of your key. Convenient for resets, but it means the company can open your data.
  • The password is sent to the server, and the key is derived there.
  • The backup is stored unencrypted, even though the live data is encrypted.
  • Metadata is collected, such as file names, sizes, times or contacts.

Questions to ask an app

  1. Where is my key made, and does it ever leave my device?
  2. If I forget my password, can you get my data back? (If yes, you hold a way in.)
  3. Is my backup encrypted before it is uploaded, with a key you don’t have?
  4. Is the file format published, or has anyone outside the company reviewed it?
  5. What do you still see, such as my email, purchases, file names and sizes?

How Silo fits

Silo has no account and no server of its own. Photos and files are encrypted on the phone and never leave it unless you choose to export or back them up. Backup, arriving with launch, is encrypted on the phone and goes to your own cloud storage, which Silo’s developer can’t open. The format is published at /format/ so the claims can be checked. These are zero-knowledge properties in the sense above, because there is nobody who knows your key.

Questions

Are end-to-end and zero-knowledge the same thing?

They overlap but are not identical. End-to-end describes how data travels between devices. Zero-knowledge describes what the service provider knows. A well-built private app is usually both.

Can an end-to-end encrypted service still see my data?

It can often see metadata, such as who you talk to, when, and how large the files are. It may also read content if the app keeps a copy of your key, or if the message is backed up unencrypted.

Who checks whether an app's claim is true?

Nobody, by default. The terms are not legally defined. Independent audits, published formats and open code let others check the claim.

Does a vault app that works offline need end-to-end encryption?

There is no one to send data to, so the question becomes who holds the key. A vault with no account and no server can't hand your data to anyone.

What about encrypted backups?

They are only as private as the key. If the backup is encrypted on your phone with a key the service never sees, the storage provider can't read it.

Sources

  1. NIST Computer Security Resource Center glossary: encryption
  2. RFC 8439: ChaCha20 and Poly1305 for IETF Protocols
  3. Silo vault format, version 1