Post-Quantum Password Security

Secrets that outlast the Sun.

PassQ wraps every secret in cryptography built for the era after quantum computers arrive. A strong passphrase isn't just hard to crack — by every credible measure, it cannot be cracked before the star powering the attacker burns out.

ML-KEM-768 encapsulation ML-DSA-65 signatures ChaCha20-Poly1305 sealing Argon2id 256 MiB hardening
Scroll

01 — Classical brute force

The Sun runs out of fuel first.

Suppose an attacker steals your encrypted vault and every public value with it. To open it they must guess a 12-character passphrase, and each guess has to survive Argon2id — a memory-hard function that turns 256 MiB of work into a single attempt. Even a planetary-scale cluster manages only about a million guesses per second.

5.4 × 10²³
possible passphrases
~10⁶ / s
Argon2id guess rate
~5 × 10⁹ yr
Sun's fuel remaining
~17 × 10⁹ yr
to exhaust the keyspace
0
years elapsed
100%
solar fuel left
keyspace searched
Sun dies
vault opens
08.5B yr17B yr
Infeasible — the Sun expires ~12 billion years before the search completes

Figures assume 12 characters drawn uniformly from the 95 printable ASCII symbols (≈78.8 bits) and an attacker who has already obtained the wrapped vault. In practice PassQ also mixes in a device secret, so the passphrase alone is never sufficient — this scenario is the best case for the attacker.

02 — Quantum brute force

Quantum changes far less than the headlines.

Shor's algorithm shatters RSA and elliptic curves. PassQ uses neither. Its public-key layer is built on NIST's post-quantum standards, so a quantum computer gains nothing there. The only quantum lever left is Grover's algorithm against the passphrase — and it only square-roots the exponent.

① equal superposition round 0 of √N
the correct passphrase average amplitude

Grover's only trick is amplitude amplification: an oracle flips the correct answer's phase, then a diffusion step reflects every amplitude about the mean — ratcheting the right answer up a sliver each round. Because each round gains only ~1/√N, you need √N ≈ 10¹¹ rounds, and every one must run the full Argon2id computation coherently. On optimistic fault-tolerant hardware that still lands near 23 million years — and Grover can't be parallelized to escape it.

√N = 10¹¹
Grover rounds (was 10²³)
~2.3 × 10⁷ yr
quantum time-to-crack
ML-KEM-768Post-quantum
ML-DSA-65Post-quantum
Shor's algorithmNot applicable
Infeasible — a 12-character passphrase stays out of reach of quantum hardware

03 — Creating an item

From Face ID to sealed blob.

Saving a password never exposes plaintext to the server. Your device unlocks the vault key, mints a fresh per-entry key, seals the secret, and signs the result — all locally, in the time it takes to glance at your phone.

01
🔓

Unlock

Face ID releases the device secret; combined with your passphrase it derives the wrapping key.

Argon2id
02
🗝️

Unwrap master key

The wrapping key decrypts the master keypair into memory. The server never sees it.

ChaCha20-Poly1305
03
🎲

Fresh entry key

A random 32-byte DEK is generated for this entry alone — never reused across items.

CSPRNG · DEK
04
🔒

Encrypt

The secret is padded and sealed under the DEK with authenticated encryption.

ChaCha20-Poly1305
05
✍️

Sign

The finished blob is signed so any reader can verify authorship before trusting it.

ML-DSA-65
"hunter2" → seal → + sign →

04 — Sharing a secret

One key, re-wrapped for everyone.

Sharing doesn't copy your passphrase or hand the server any plaintext. The entry's data key is encapsulated separately to each recipient's public key, so only their private key can open it — add or remove people by adding or removing wraps.

Each wrap is ML-KEM-768-Encap(recipient_pk) → (kem_ct, shared), then wrapped_dek = dek ⊕ HKDF(shared). The server stores the wraps but can't combine them into the DEK — only a holder of the matching private key can.

Local-first · zero-knowledge · post-quantum

Your secrets, sealed against the future.

Everything is encrypted before it leaves your device. The server holds nothing but ciphertext, public keys, and metadata — and even a quantum adversary runs out of time long before it runs out of universe.