Zero-Knowledge Encryption Explained

Written for buyers who are not cryptographers.

· Updated · By the Cyphorm Team

Zero-knowledge (in the product sense) means the operator of the service does not possess the secret that unlocks your data. For forms, the strongest version is: encrypt in the browser with keys the server never sees.

Public and private keys

Your browser creates a keypair. You share the public key so anyone can encrypt messages to you. The private key stays local. Cyphorm stores ciphertext produced with the public key—without the private key, it is not recoverable by us.

This is the same fundamental principle behind technologies like PGP email and Signal messaging. The difference is that Cyphorm applies it to web forms, so any respondent can submit encrypted data to you without needing special software or a shared secret.

Why this beats "we encrypt at rest"

Disk encryption protects drives—but the application still decrypts data to show it to you. Whoever runs that application typically can access plaintext when needed. Zero-knowledge targets a different goal: the vendor should not be in that path at all.

Consider the difference: with encryption at rest, the vendor's servers decrypt your data every time someone views submissions, exports a CSV, or triggers a notification. The plaintext exists in memory on their infrastructure. With zero-knowledge, your browser performs the decryption locally—the vendor's servers never see the plaintext at any point in the workflow.

How Cyphorm implements this

When you create a Cyphorm account, your browser generates a 4096-bit RSA keypair using the Web Crypto API. The public key is sent to our servers so respondents can encrypt submissions. The private key is wrapped (encrypted) with a key derived from your password and stored only in your browser's local storage.

When a respondent fills out your form, their browser:

  1. Generates a random AES-256 session key
  2. Encrypts the form data with that AES key
  3. Encrypts the AES key with your RSA public key
  4. Sends both ciphertexts to our server

Our server stores the encrypted payload, the encrypted session key, and an initialization vector. It never receives anything it can decrypt.

Backing up your key

Because we cannot recover your private key, backups are essential. Cyphorm supports two backup methods: printable QR code recovery sheets and password manager export. We strongly recommend maintaining at least two independent backup copies. If all copies of the key are lost, encrypted responses cannot be decrypted—by anyone, including us.

Learn more

See the architecture in action with our interactive ciphertext demo, or dive deeper into the trust model.

Explore zero-knowledge forms Can vendors read your data? Try Cyphorm free