Zero-knowledge is not a marketing claim — it's an architectural constraint. All encryption and decryption happens in your browser. Pivlu servers store only ciphertext they cannot decrypt. No master key, no employee access, no backdoor.
Most cloud services encrypt data in transit but decrypt it on the server. Vault never does.
Every piece of data — passwords, notes, files, item titles, folder names — is encrypted using the Web Crypto API before any network request leaves your browser. What gets sent to our servers is ciphertext that looks like random bytes with no structure an attacker or employee could exploit.
The server receives and stores encrypted blobs indexed by item ID. It has no knowledge of what any blob contains — whether it's a password, a file, or a note. A full database dump would reveal nothing about any user's vault contents, only the encrypted ciphertext.
Pivlu employees have no mechanism to view your vault contents. There is no admin panel with a "decrypt" button. There is no master decryption key. Support staff can help with account access issues but cannot read your passwords or files under any circumstances.
If Pivlu's database were breached tomorrow, the attacker would obtain only encrypted ciphertext with no way to decrypt it — they don't have your master password, and they cannot derive your encryption key from anything stored server-side. Your vault remains secure even after a breach.
How your master password becomes encryption keys without the server ever knowing it.
Vault uses a three-level key hierarchy: (1) Master password → PBKDF2 → master key; (2) Master key decrypts a symmetric key stored server-side; (3) Symmetric key decrypts per-vault AES-256-GCM keys. Each vault item is encrypted with its vault's specific key.
PBKDF2 derives 512 bits from your master password. The first 256 bits are your encryption key — used only in the browser, never transmitted. The second 256 bits are your auth key — hashed with SHA-256 and sent to the server for login verification. The server only stores the auth key hash.
When you share a vault, the vault's AES key is encrypted with the recipient's RSA-4096 public key. Only their private key (derived from their master password, stored only in their browser) can decrypt it. Sharing requires no server-side decryption and no plaintext key transmission.
Your master password + a random 256-bit salt (stored server-side) are fed through PBKDF2-SHA256 for 600,000 iterations in your browser, producing 512 bits — split into an auth key and an encryption key.
The encryption key decrypts your protected symmetric key, which decrypts your vault keys. These AES-256-GCM vault keys decrypt individual items locally. All of this happens in browser memory — nothing plaintext hits the server.
A hash of the auth key is sent to the server to confirm your identity. The server confirms the hash matches and returns the encrypted vault data. It never touches the encryption key or any plaintext. Login and encryption are completely separate operations.
A court order requiring us to hand over your data produces only encrypted ciphertext. We literally cannot comply with a request to reveal your vault contents — we don't have the decryption keys.
The price of zero-knowledge is that we cannot recover your vault if you lose your master password. There is no "forgot master password" option. Write it down and store it somewhere physically secure.
You don't need to trust that Pivlu employees behave well or that our servers are never breached. The architecture makes it mathematically impossible for anyone without your master password to read your data.