Feature
Zero-Knowledge Encryption: What It Means and How to Verify It
"Zero-knowledge" has become one of the most abused phrases in privacy marketing. Used precisely, it describes a system where the operator cannot read user content even if it wants to. Used loosely, it describes a company that has promised not to look.
A precise definition
A service is zero-knowledge with respect to your content when no key capable of decrypting that content ever exists on the provider's systems. Not stored, not held in memory during processing, not derivable from anything the provider has.
The test is not about intent or policy. It is about capability. If a provider *could* decrypt your data under some circumstance — a court order, a rogue employee, a new feature — it is not zero-knowledge, regardless of what its privacy page says.
A note on terminology
How to verify the claim on any service
You do not need to read source code to apply real pressure to a zero-knowledge claim. Four questions do most of the work.
1. Can they reset your password and preserve your data?
This is the highest-signal question. If forgetting your password means the provider can restore access to your existing content, they hold a key. Some services offer recovery keys or escrowed keys — those are legitimate designs with real usability benefits, but they are not zero-knowledge.
2. Do they offer server-side search or previews?
Full-text search across your content, server-generated thumbnails, or content-based recommendations all require the server to see plaintext. A service can genuinely have these features, or it can genuinely be zero-knowledge. Claiming both should prompt a very specific technical explanation.
3. Where does the encryption run?
Look for a clear statement that encryption happens client-side, before transmission. Phrases like "encrypted in transit and at rest" describe TLS plus disk encryption — both good, neither zero-knowledge, because the provider handles plaintext in between.
4. What exactly is stored?
A service confident in this claim will tell you precisely which fields exist in its database. Vagueness here is informative.
How Inkrypt answers those questions
| Question | Inkrypt | Detail |
|---|---|---|
| Can you reset my password and keep my note? | No | There is no key to re-encrypt with. Lost password means lost note. |
| Do you offer server-side search? | No | We cannot read note bodies, so we cannot index them. |
| Where does encryption run? | In your browser | Web Crypto API, before any network request is made. |
| What is stored per note? | Four fields | Ciphertext, salt, IV, and a key-derivation parameter label. |
The full field-level breakdown, including what our request logs do and do not contain, is on the security architecture page.
The honest limitations of browser-delivered crypto
Any web application that encrypts in the browser shares one structural weakness, and a page like this is not credible unless it names it.
We serve the code that does the encrypting. Each time you load the page, your browser fetches JavaScript from our servers and runs it. A malicious or compromised operator could serve a modified script that quietly transmits your password. Nothing about client-side encryption prevents that, because the client-side code arrives from the server.
This is a real and well-documented limitation of web crypto generally — it applies to every browser-based encryption tool, not just this one. Installed applications with signed, verifiable builds have a meaningfully stronger position here.
- What it means in practice: browser-based encryption protects you strongly against database breaches, network interception, and legal demands for content. It protects you less well against a provider that has itself been fully compromised at the delivery layer.
- What partially mitigates it: Subresource Integrity, strict Content Security Policy, reproducible builds, and independent auditing all raise the cost of a silent script swap.
- What actually resolves it: a signed, installable client that you can verify once and re-verify on update. That is a different product shape, and we would rather say so than imply we have solved a problem we have not.
Match the tool to the adversary
Frequently asked questions
Does zero-knowledge mean nobody can ever read my note?
How is this different from 'encrypted at rest'?
Can Inkrypt be compelled to hand over my notes?
Is browser-based encryption as strong as a desktop app?
Why can't you offer search across my notes?
Related reading
Zero-knowledge encryption, in depth
The long-form article, with worked examples and verification checklists.
Read moreClient-side encryption
The mechanism that makes zero-knowledge possible.
Read moreThreat model
Which adversaries this design defeats, and which it does not.
Read moreSecurity architecture
Field-level detail on exactly what our database holds.
Read moreWrite your first encrypted note
No account, no email address, no download. Type a note, set a password, share the link.
Open the notepad