Start for free
Pivlu AI Assistant

Client-Side Encryption —
your browser does all the cryptography

Every cryptographic operation in Vault runs in your browser using the native Web Crypto API. No third-party crypto libraries, no server-side decryption, no framework overhead. Just the browser's own battle-tested, hardware-accelerated crypto primitives.

Web Crypto
Native browser API
0
Crypto JS libraries
AES-256
+ RSA-4096
FIPS 140
-compliant algorithms

The Web Crypto API

Why we use the browser's built-in crypto instead of JavaScript libraries.

Native Browser Implementation

crypto.subtle is implemented in C/C++ by browser vendors (Google, Mozilla, Apple, Microsoft) — the same teams responsible for TLS, HTTPS, and certificate handling. It's compiled native code, not JavaScript. Hardware-accelerated on CPUs with AES-NI instructions for performance orders of magnitude faster than JS libraries.

No JavaScript Crypto Libraries

We have zero third-party crypto dependencies — no CryptoJS, no forge, no tweetnacl, no sjcl. Pure JavaScript crypto implementations are difficult to audit, susceptible to timing attacks, and add supply chain risk. Any npm package in a dependency chain could introduce a backdoor or vulnerability. We use none of them.

Independently Audited

The Web Crypto API specification is maintained by the W3C and has been reviewed, criticized, and improved by the cryptographic research community for over a decade. Each browser's implementation is independently security-audited and has been subjected to enormous real-world scrutiny across billions of devices.

Hardware Acceleration

Modern CPUs include AES-NI (Advanced Encryption Standard New Instructions) — dedicated silicon for AES operations. The Web Crypto API uses these instructions automatically. AES-256-GCM encryption on a modern laptop runs at multiple gigabytes per second. Your vault operations complete in milliseconds.

Cryptographic Algorithms

Every algorithm is a well-established standard — no experimental or proprietary crypto.

AES-256-GCM

Symmetric encryption for all vault data — passwords, notes, files, metadata. GCM mode provides both confidentiality and authenticity in one operation: the authentication tag detects any tampering with the ciphertext. 256-bit key size is considered post-quantum secure against Grover's algorithm. Each item uses a unique random 96-bit IV.

PBKDF2-SHA256

Key derivation from your master password. 600,000 iterations with a 256-bit random salt. PBKDF2 is NIST-approved and OWASP-recommended for password-based key derivation. The iteration count deliberately slows down brute-force attacks while remaining fast enough for interactive login.

RSA-OAEP 4096

Asymmetric encryption for vault sharing. Each user has an RSA-4096 key pair. When sharing a vault, the vault's AES key is encrypted with the recipient's public key. Only the recipient's private key (derived from their master password) can decrypt it. 4096-bit keys provide a wide security margin above the minimum 2048-bit recommendation.

SHA-256

One-way hashing for the auth key sent to the server. SHA-256 is used to hash the derived auth key before transmission — the server stores only this hash for identity verification. Even if the server is compromised and the hash is obtained, it cannot be reversed to recover the auth key or master password.

crypto.getRandomValues()

The Cryptographically Secure Pseudo-Random Number Generator (CSPRNG) for all random values — IVs, salts, key generation, and the password generator. Draws from OS entropy (hardware events, timing noise, CPU thermal noise). Not Math.random(), which is unsuitable for security use.

Double Encryption in Transit

Data sent to the server is already AES-256-GCM encrypted at the application layer. It's then wrapped again in TLS (HTTPS) at the transport layer. An attacker who could somehow break TLS (they can't) would still face AES-256-GCM ciphertext they cannot decrypt without your encryption key.

Why client-side matters vs. server-side encryption

Server-Side Encryption Is a Marketing Claim

"Encrypted at rest" usually means the server encrypts your data after receiving it. The server holds the key. A breached server, malicious employee, or legal demand can decrypt everything. Client-side encryption means the server never had the plaintext to begin with.

You Hold the Only Key

With client-side encryption, the decryption key exists only in your browser session, derived from your master password. There is no copy of your key on any server. Pivlu cannot be compelled by any authority to produce a key it doesn't have.

Works in Every Browser

The Web Crypto API is supported in Chrome, Firefox, Safari, Edge, and all modern browsers. No plugins, no extensions, no downloads. Open your vault URL and the full cryptographic system is available instantly, anywhere.