Only Once Share
encryptionzero-knowledgeprivacy

What Is Zero-Knowledge Encryption? A Simple Guide

You've probably seen the term "zero-knowledge" used by privacy-focused tools and services. But what does it actually mean? And how can you tell if a service truly implements zero-knowledge encryption versus just using it as a marketing buzzword?

The Core Concept

Zero-knowledge encryption (also called zero-knowledge proof or zero-access encryption) is an architecture where the service provider cannot access your data β€” not because of a policy, but because of mathematics. The provider literally does not possess the keys needed to decrypt your information.

Think of it like a safety deposit box at a bank. The bank stores the box, but only you have the key. Even the bank manager cannot open it. Zero-knowledge encryption applies this same principle to digital data.

How It Works in Practice

In a zero-knowledge system, encryption and decryption happen on the client side β€” your browser or device. The workflow looks like this:

  1. Key generation β€” Your device generates a cryptographic key (e.g., AES-256)
  2. Client-side encryption β€” Your data is encrypted on your device before being sent anywhere
  3. Server storage β€” The server receives and stores only encrypted ciphertext
  4. Key management β€” The encryption key is kept on your device (or in a URL fragment) and never sent to the server
  5. Client-side decryption β€” When you (or a recipient) access the data, it's decrypted on the client device

The critical point is step 4: the key never touches the server. Without the key, the server stores what is essentially random noise.

Zero-Knowledge vs. Standard Encryption

Many services claim to use encryption but implement it in a way that gives the provider access to your data:

FeatureServer-Side EncryptionZero-Knowledge Encryption
Where encryption happensOn the serverIn your browser/device
Who has the keyThe serverOnly the client
Can the provider read your data?YesNo
Vulnerability to server breachData exposedOnly encrypted blobs exposed
Vulnerability to legal ordersProvider can complyProvider has nothing to hand over

Real-World Examples

Zero-knowledge services: Signal (messaging), Proton Mail (email), Only Once Share (secret sharing), Tresorit (cloud storage). These services encrypt data on your device and never have access to the decryption keys.

Non-zero-knowledge services: Standard Gmail, Slack, most cloud storage. These services encrypt data in transit and at rest, but hold the encryption keys themselves. They can read your data if required (and do, for features like search indexing and spam detection).

How Only Once Share Implements Zero-Knowledge

In Only Once Share, zero-knowledge is achieved through a clever use of URL fragments:

  1. Your browser generates an AES-256-GCM key and encrypts your secret
  2. Only the encrypted ciphertext is sent to the server
  3. The encryption key is placed after the # symbol in the URL (the "fragment")
  4. URL fragments are never sent to servers in HTTP requests β€” this is defined in RFC 3986
  5. When the recipient opens the link, their browser reads the key from the fragment and decrypts locally

This is zero-knowledge by design: the server physically cannot access the key because web browsers are built not to transmit URL fragments.

Why It Matters

Zero-knowledge encryption protects you against:

  • Server breaches β€” Attackers who compromise the server only get encrypted data they can't read
  • Insider threats β€” Employees of the service provider can't access your data
  • Government surveillance β€” The provider can't hand over data they can't decrypt
  • Data mining β€” The provider can't analyze your data for advertising or profiling

How to Verify Zero-Knowledge Claims

Not all services that claim "zero-knowledge" truly implement it. Here's how to verify:

  • Check if it's open source β€” Can you audit the encryption code? Tools like Only Once Share let you verify the implementation yourself
  • Check where encryption happens β€” Use browser developer tools (Network tab) to see if plaintext data is ever sent to the server
  • Check key management β€” Does the key stay on the client, or is it uploaded to the server?
  • Check the threat model β€” Does the documentation clearly explain what the server can and cannot access?

Conclusion

Zero-knowledge encryption is the gold standard for privacy. It means you don't have to trust the service provider β€” the math ensures they can't access your data. When choosing tools for sharing sensitive information, always prefer zero-knowledge implementations that encrypt data in the client and keep keys out of the server's reach.

Share secrets securely β€” for free

Only Once Share uses AES-256-GCM encryption with zero-knowledge architecture. No account required.

Try Only Once Share
All posts