Encrypt Share

Write a message or choose a file. A one-time keypair is generated automatically every time. The secret key is embedded in the share link no pre-shared keys needed.

No file selected

🔒 Decrypt

Paste encrypted data and your secret key to decrypt a message received from someone.

Paste the encrypted content from the share link.

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