What is post-quantum encryption?
Nearly all encryption on the internet today relies on RSA or elliptic-curve cryptography (ECC).
These systems are secure against classical computers but will be broken by sufficiently powerful
quantum computers using Shor's algorithm. Post-quantum cryptography uses mathematical problems
that are believed to be hard for both classical and quantum computers.
PQ Secure uses ML-KEM-768 (formerly CRYSTALS-Kyber), the
NIST-standardized post-quantum key encapsulation mechanism. It provides security roughly
equivalent to AES-192 against quantum attackers.
Cryptographic chain
Every encrypted message passes through three layers:
ML-KEM-768
→
HKDF-SHA256
→
AES-256-GCM
- ML-KEM-768 — Post-quantum key encapsulation. Generates a shared secret that only the intended recipient can recover.
- HKDF-SHA256 — Derives a strong symmetric key from the shared secret with domain separation.
- AES-256-GCM — Authenticated encryption of the actual message data.
How PQ Secure works
No pre-shared keys needed. Every encryption generates a fresh one-time ML-KEM-768 keypair.
The secret key is embedded directly in the share link when the recipient opens it,
their browser recovers the key from the URL and decrypts locally.
1
Sender
Generates a one-time ML-KEM-768 keypair
2
Sender
Encapsulates with the public key → derives an ML-KEM shared secret
3
Sender
Encrypts the message with AES-256-GCM using the shared secret
4
Sender
POSTs the ciphertext to the server → server stores it and returns an ID
5
Sender
Builds a share link with the server ID and one-time secret key embedded
6
Recipient
Opens the link → browser extracts the secret key from the URL
7
Recipient
Requests ciphertext from the server → decapsulates with the secret key
8
Recipient
Decrypts with AES-256-GCM → reads the plaintext
Zero-knowledge architecture
The server never sees your encryption keys, plaintext, or decrypted content.
It stores only ciphertext data that is computationally indistinguishable from random
noise. Even with full server access, an attacker gains nothing but unbreakable ciphertext.
- Key generation, encryption, and decryption all happen in your browser
- Cryptographic operations use the Web Crypto API and WebAssembly
- The server stores only ciphertext with no access to keys
- No third-party scripts, no CDN, no tracking
Why this matters
"Harvest now, decrypt later" attacks are already underway adversaries collect encrypted
communications today, waiting for quantum computers to break them retroactively.
Post-quantum cryptography protects your data against both current threats and future quantum
attacks, especially critical for information with long-term sensitivity.
Technical details
- Key encapsulation: ML-KEM-768 via liboqs WebAssembly
- Symmetric encryption: AES-256-GCM via Web Crypto API
- Key derivation: HKDF-SHA256 via Web Crypto API
- File encryption: PBKDF2 (100k iterations) + AES-256-GCM
- File size limit: 10 MB
- Message expiry: 7 days (auto-cleaned)
- Rate limit: 5 requests/minute/IP
- Zero external dependencies no CDN, no third-party scripts
- Backend: PHP 8+ with zero crypto (ciphertext storage only)
View source on GitHub
· Open Source (MIT) · Independently audited