Poof is a private chatroom that lives in a browser tab. No account, no phone number, no email. You open a room, share it, talk. When the timer runs out, the room is gone. Poof.
These docs explain what Poof is, why it exists, how it works, what it protects you from, what it does not, and how you can check every claim yourself.
Poof at a glance
What
Details
Identity
None. No accounts, no email, no phone number, no username.
Classic Room
10 minutes, 2 people, text. Free.
Super Room
1 hour or 24 hours, up to 10 people, file sharing. Unlocked by burning Poof tokens. More
Joining
A link, a QR code or a four-word phrase.
Encryption
End-to-end, in your browser: AES-GCM-256 with a hybrid key (classical + ML-KEM-768). More
Transport
Directly between browsers over WebRTC. Poof's servers never carry your messages.
Storage
No messages are stored anywhere. Room state on the server expires on its own. More
Privacy is not only about hiding information. It is also about reducing how much information exists in the first place.
Storage is cheap, so most of the internet keeps everything, just in case. Every message, contact list and login stays on someone's server for years. Each of those copies is something that has to be protected, forever.
MORE DATA ──▶ MORE STORAGE ──▶ MORE METADATA ──▶ MORE ATTACK SURFACE ──▶ MORE TO PROTECT, FOREVER
Poof starts from the opposite default. A conversation exists for as long as people are having it, and not much longer.
LESS DATA ──▶ LESS RETENTION ──▶ SMALLER ATTACK SURFACE ──▶ LESS LONG-TERM EXPOSURE
Honest footnote
Keeping less does not make a system secure on its own. It removes some risks completely: a breached database, a subpoena for old messages, someone decrypting an archive years from now. Other risks stay exactly where they were, like a compromised phone or someone taking a screenshot. The threat model lists both.
Privacy is not the same as security
Idea
The question it answers
Privacy
Who can learn things about me?
Security
Can someone without permission read or change my data?
Confidentiality
Who can read the content?
Integrity
Could it be changed without anyone noticing?
Authenticity
Can I tell who really sent it?
Anonymity
Can this activity be tied to a real person?
Ephemerality
How long does any of it exist?
Poof is built around confidentiality and ephemerality. It helps with privacy because it never asks who you are. It is not an anonymity tool on its own: the network still sees which IP addresses connect, and when.
Create, use, expire, poof Concept
Grass grows, exists for a season, then returns to the soil. Nothing about it is meant to last forever, and that is not a flaw. Poof treats a conversation the same way.
NATURE POOF
────── ────
seed ──▶ create room
grow ──▶ people join
exist ──▶ messages are used
change ──▶ timer runs down
return ──▶ room state disappears · poof
An analogy, not a security proof. What actually expires, and where, is described in Data lifecycle.
Why “Poof”?
Because that is what the room does at the end.
How it works
The life of a room.
From the moment you press “Create a room” to the moment it disappears.
YOU POOF SERVER GUEST
│ │ │
│ 1 create room ──────────────▶│ room id + expiry, in memory │
│ 2 your browser makes the │ │
│ room key (never sent) │ │
│ 3 share: link · QR · 4 words ─────────────────────────────▶ │
│◀──── 4 signaling relay: "how to reach each other" ─────────▶│
│ │ (no keys, no messages) │
│◀═══════════ 5 direct encrypted channel (WebRTC) ═══════════▶│
│◀═══════════ 6 post-quantum upgrade (ML-KEM-768) ═══════════▶│
│◀═══════════ 7 talk: every message encrypted in-browser ════▶│
│ │ │
│ 8 timer ends ─▶ room state expires ─▶ poof
1–2 · Creating a room
Your browser asks Poof's server for a new room. The server records two things in memory only, with an expiry equal to the room lifetime: that the room exists and when it ends. Meanwhile your browser generates a random 256-bit room key with the Web Crypto API. The key goes into the part of the link after the #, the fragment. Browsers never send the fragment to servers, so Poof's server never receives it.
3 · Sharing it
Method
How
Trade-off
Link
Send the full link through a channel you trust.
The key travels inside the link. Anyone who sees the link can join, so share it privately.
QR code
Your guest scans your screen in person.
The key never touches the network.
Four words
Read a phrase like amber otter quiet lantern over a call.
Four everyday words, picked at random from a list of 2,048. Your browser turns the phrase into a key (PBKDF2 with SHA-256) and uses it to lock the room link. Poof keeps only the locked copy, filed under a one-way hash of the phrase. The first person to use it opens it, and then it's gone. Unused, it disappears after 3 minutes. Don't reuse a phrase as a password.
4–6 · Connecting
To find each other, the browsers exchange connection details through Poof's server (“signaling”). The server passes them along without storing them. Once a direct WebRTC data channel is open, the browsers run a post-quantum key exchange directly between themselves and combine the result with the room key. From then on, messages are protected by both. If a direct path is impossible, traffic goes through a relay that forwards encrypted data without being able to read it.
You can follow it in the room: waiting → connected → sealed. Messages are only sent once the room is sealed.
7 · Talking
Each message is encrypted in your browser with AES-GCM-256 and a fresh random 96-bit IV, then sent over the data channel. Poof's servers are not on the message path.
8 · Poof
When someone leaves, the conversation is wiped from the other person's screen immediately and their input is disabled. When the timer ends, the server's record of the room expires on its own, and opening the link again only shows that the room no longer exists. There is nothing to recover.
What the server knows
Sees
Never sees
That a room exists and when it expires
The room key
IP addresses of browsers while they connect
Messages or files
Roughly when people connect
Names, emails, phone numbers (there are none)
Rooms
When ten minutes isn't enough.
Every room has the same privacy architecture. A Super Room just gives the conversation more room to breathe.
Classic Room
Super Room
Lifetime
10 minutes
1 hour or 24 hours
People
2
Up to 10
Messaging
Text
Text and files
Encryption
Hybrid post-quantum, end-to-end
Hybrid post-quantum, end-to-end
Cost
Free
Poof tokens
How a group stays private
In a Super Room every message is still encrypted in the sender's browser and opened only in the other participants' browsers, with the same hybrid post-quantum protection as a Classic Room. No server ever holds a group key or sees content. The room's size limit is enforced, so nobody can squeeze in once it's full.
Files
Files travel over their own encrypted channel, cut into small pieces that are each locked before they leave your browser. Poof never sees a file's name, type or contents. Direct connections allow larger files than connections that need the relay.
Why tokens, not accounts
Poof doesn't need to know who you are to give you more. Instead of signing up and paying from a profile, you burn a Poof token when you create a Super Room.
Tokens use blind signatures. After you pay, your browser “blinds” a token and Poof signs it without seeing it (RSA blind signature). Your browser then unblinds it. When you spend it, Poof can check its own signature, but it has never seen that token before, so it cannot link the payment to the room or to you. Each token works exactly once.
TOKENS ──▶ BURN ──▶ SUPER ROOM ──▶ TIMER ENDS ──▶ POOF
│ │
└── no account, └── same encryption,
no profile same nothing-kept
Prices for the 1-hour and 24-hour options are shown when you create a Super Room.
Quantum, part 1
What happens to today's secrets when tomorrow's computers arrive?
Encryption is a bet that some maths problems are too hard to solve. Quantum computers change which problems are hard. This page explains how, without the hype.
Bits and qubits
A normal bit is 0 or 1. A qubit can be in a combination of both, called superposition, until you measure it, and then it becomes a plain 0 or 1. Quantum algorithms use quantum gates to arrange those combinations so that wrong answers cancel out and right answers become likely when you measure. That is not “trying every answer at once”. It only helps for problems with special structure. Try it in the Quantum Lab.
Two kinds of encryption, two kinds of risk
Public-key cryptography (RSA, elliptic curves, ECDH key exchange, digital signatures) lets two strangers agree on a secret. It relies on problems like factoring large numbers or computing discrete logarithms. Symmetric cryptography (AES) encrypts the actual data once both sides share a key. It relies on the key simply being too big to guess.
CLASSICAL COMPUTER QUANTUM COMPUTER
│ │
┌────────▼────────┐ ┌─────────▼─────────┐
│ RSA · ECC │ │ Shor's algorithm │
│ factoring / │ │ factoring and │
│ discrete logs │ │ discrete logs │
└────────┬────────┘ └─────────┬─────────┘
▼ ▼
impractical to solve solvable, on a large enough
error-corrected machine
A picture of the idea, not a description of how Shor's algorithm works inside. Concept
Algorithm
Used for
Quantum attack
Effect
RSA
Key exchange, signatures
Shor
Broken by a large enough quantum computer
ECDH, ECDSA, Ed25519
Key exchange, signatures
Shor
Broken by a large enough quantum computer
AES-256
Encrypting data
Grover
Weakened (roughly the strength of a 128-bit key). Still considered strong.
SHA-256
Hashing
Grover-type
Margins shrink, still considered safe for most uses
So the weak spot is the handshake
The data itself (AES-256) holds up well. The vulnerable moment is when two parties agree on a key with RSA or elliptic curves. If someone can later recover that key exchange, they can unlock everything it protected.
Today vs tomorrow
No quantum computer is publicly known to break RSA or elliptic-curve keys at the sizes used on the internet. That would take a large, error-corrected machine, often called a “cryptographically relevant quantum computer”. Nobody can give a reliable date for one. The reason to act now anyway is on the next page.
Quantum, part 2
Harvest now, decrypt later.
You do not need a quantum computer today to attack today's messages. You only need to record them and wait.
TODAY SOMEDAY
───── ───────
encrypted traffic quantum capability
│ │
▼ ▼
┌──────────────┐ store ┌──────────────┐ ┌──────────────────┐
│ attacker │ ────────▶ │ encrypted │──▶│ try to recover │
│ records it │ │ archive │ │ the key exchange │
└──────────────┘ └──────────────┘ └──────────────────┘
Anyone who can watch a network (an internet provider, a compromised router, a state agency) can save encrypted traffic cheaply and keep it for years. If that traffic relied only on RSA or elliptic-curve key exchange, a future quantum computer could unlock it. For conversations that must stay private for a long time, the risk starts the day they are recorded.
How Poof answers it
MINIMIZE WHAT EXISTS nothing stored on servers, rooms expire
+ HYBRID POST-QUANTUM KEYS classical key + ML-KEM-768
+ FRESH KEYS PER ROOM each room gets new keys, then they're gone
+ KEYS STAY IN THE BROWSER the server never holds them
──────────────────────────
= LESS LONG-TERM EXPOSURE
Ephemerality alone is not enough. Poof deleting things does not stop someone else from recording traffic on the network. That is why the encryption itself holds up against future quantum attacks, which is the job of the hybrid post-quantum key. See it play out in the Quantum Lab.
What this does not solve
A compromised device. If your phone or browser is infected, messages can be read before they are encrypted.
The link. The classical half of the key travels in the room link. Someone who captured the link and broke the post-quantum exchange could read the room. Both are needed.
Metadata. A recorder still sees that two IP addresses talked, when, and for how long.
Quantum, part 3
Two locks on every room.
Post-quantum cryptography is ordinary software that runs on today's devices, built on maths problems believed to be hard even for quantum computers.
The NIST standards
In 2024 the U.S. National Institute of Standards and Technology published the first post-quantum standards:
Standard
Name
Job
Based on
FIPS 203
ML-KEM
Agreeing on a shared key
Module lattices
FIPS 204
ML-DSA
Digital signatures
Module lattices
FIPS 205
SLH-DSA
Digital signatures
Hash functions only
Poof uses ML-KEM-768 for its key exchange.
What a KEM does Concept
A key encapsulation mechanism works like a lockbox. Your guest publishes an open padlock (public key). You put a random secret in a box, snap the padlock shut and send it (ciphertext). Only your guest has the key that opens it. Now you both share the same secret, and anyone who watched only saw a locked box.
ML-KEM-768 in numbers
Item
ML-KEM-768
For comparison: X25519
Public key
1,184 bytes
32 bytes
Ciphertext
1,088 bytes
32 bytes
Shared secret
32 bytes
32 bytes
Security level
NIST category 3
Not quantum-resistant
The keys are bigger, but for a chat handshake a couple of kilobytes, once per room, makes no noticeable difference.
Why hybrid
Post-quantum algorithms are newer than RSA or elliptic curves. A hybrid design does not bet everything on one of them: it combines a classical secret with a post-quantum one, so an attacker has to break both.
ROOM KEY (classical) ML-KEM-768 SHARED SECRET
256-bit, made in your browser, agreed directly between browsers
carried in the link after # over the encrypted data channel
│ │
└──────────────┐ ┌───────────────┘
▼ ▼
┌────────────────────┐
│ HKDF-SHA-256 │ one fixed, labelled derivation
└─────────┬──────────┘
▼
HYBRID SESSION KEY · AES-GCM-256
used for every message in the room
The room key is the HKDF salt, the ML-KEM shared secret is the input key material, and a fixed, versioned Poof context string keeps the derivation separate from anything else. Before switching, both browsers prove they hold the same post-quantum secret with an HMAC-SHA-256, each side using its own label, so a confirmation can't simply be bounced back. Only then does the room use the hybrid key. A tampered handshake fails this check and the room refuses to upgrade.
Implementation notes
In the browser. Browsers don't ship ML-KEM natively yet, so Poof uses the browser's built-in ML-KEM-768 where it exists, and otherwise a pinned open-source implementation shipped with the app itself, never fetched from a third-party server at runtime. AES-GCM, HKDF and HMAC come from the browser's own Web Crypto API.
Side channels. Secret-dependent operations run in constant-time implementations.
Signatures. Poof does not use post-quantum signatures. Room integrity comes from the shared keys and key confirmation, not from long-term identities.
Quantum Lab Concept
Play with the ideas.
Three small experiments that make the quantum chapters tangible. They are teaching models, not simulations of real hardware or of Poof's code.
1 · A qubit, measured
|0⟩
|1⟩
Before measurement the qubit holds both possibilities. Each measurement gives a plain 0 or 1, and the pattern of results reveals the probabilities.
2 · Two locks
The session key comes from both secrets. Knowing one of them is not enough.
3 · Harvest now, decrypt later
Recorded conversation
Status
Classical key exchange only (RSA / ECDH)
Poof: hybrid key (classical + ML-KEM-768)
Copies on Poof's servers
You choose the year. Nobody can reliably predict it, which is exactly why protection has to be in place before it.
Security
Every lock, and what it rests on.
For each protection: the threat it answers, the mechanism, what has to be true for it to work, and where it stops.
┌─────────────────────── YOUR BROWSER ───────────────────────┐
│ room key (Web Crypto) ─┐ │
│ ├─▶ HKDF ─▶ session key ─▶ AES-GCM │──┐
│ ML-KEM-768 secret ─────┘ │ │ ciphertext only
└─────────────────────────────────────────────────────────────┘ │
│ signaling (no keys, no content) ▼
┌───────▼────────┐ ┌────────────────────┐
│ POOF SERVER │ room id + expiry, in memory │ WebRTC data channel│
│ no message │ │ direct, or via a │
│ storage │ │ TURN relay │
└────────────────┘ └────────────────────┘
Protection
Threat
Mechanism
Assumption
Limitation
End-to-end encryption
Servers or networks reading messages
AES-GCM-256 in the browser, fresh nonce per message
Your browser and device are not compromised
Doesn't protect what's on screen
Key in the fragment
The server learning the key
Key lives after #, never sent in requests
The code you run is genuine
Anyone with the link has the key
Hybrid post-quantum key
Recorded traffic decrypted later
Room key + ML-KEM-768 via HKDF-SHA-256
At least one of the two stays secret
Metadata stays visible to recorders
Key confirmation
Tampering with the handshake
Mutual HMAC-SHA-256 check with per-side labels before switching keys
The room link reached the right person
A leaked link lets someone join instead
Ephemeral state
Old data leaking later
Room state lives only in memory, with an expiry; no message storage
Server configuration as published
Can't erase copies someone else made
No-log production
Logs revealing who talked to whom
Logging switched off in production; links never leak through the Referer header
Hosting layers follow the same policy
Network providers keep their own logs
Hardened page
Injected scripts stealing keys
Strict Content Security Policy with one-time nonces; the page can't be embedded in other sites
Browser enforces CSP
A malicious extension sits outside CSP
Relay (TURN)
Networks that block direct connections
Relay access with short-lived credentials, over TLS
Relay only forwards
Relay sees IP addresses and volume
Four-word phrase
Guessing the phrase
Phrase-derived key (PBKDF2), hashed lookup, works once, gone after 3 minutes
Phrase used within minutes
Short phrases are not long-term secrets
Where does data go?
Everything Poof touches, and when it's gone.
CREATE ──▶ PROCESS ──▶ TRANSMIT ──▶ USE ──▶ EXPIRE ──▶ DELETE ──▶ POOF
Data
Created
Lives in
How long
Then
Room id + expiry
When you create a room
Server memory
The room lifetime (10 min, 1 h or 24 h)
Expires automatically
Room key
In your browser
The link fragment, browser memory
While the tab is open
Gone when the tab closes
ML-KEM keys and secret
In each browser, per connection
Browser memory
The handshake
Discarded after the session key is derived
Session key
After key confirmation
Browser memory
The room
Gone when the room ends
Messages
When you type
Your screen and your guest's
The room
Wiped from the page when the room ends
Files
When you send one
Sender and receiver browsers
Until saved or the room ends
Never touch Poof's servers
Four-word phrase blob
When you show a phrase
Server memory, encrypted
Up to 3 minutes, or one read
Deleted after retrieval or expiry
IP addresses
When browsers connect
Connection handling, TURN relay
Only while connecting; Poof doesn't log them
Not stored
Backups
None. Room state only ever exists in memory, so there is nothing to back up.
What Poof can't erase
Screenshots, copied text, files your guest saved, and logs kept by internet providers along the way. Ephemerality covers what Poof controls.
Threat model
Who can learn what.
A security promise is only useful if it says who it protects you from, and who it doesn't.
Protects against
Poof's own servers reading your messages
Network eavesdroppers reading content
Old servers or databases leaking conversations later
Recorded traffic being decrypted by a future quantum computer (both keys needed)
Does not protect against
A compromised phone, computer or browser extension
The person you are talking to (screenshots, copying)
Someone who gets the room link or phrase
Network observers seeing that you connected, and when
Attacker by attacker
Attacker
Can learn
Cannot learn
Passive network observer
That you use Poof, timing, traffic size
Message content
Active network attacker
The same, and can block connections
Content. Tampering fails key confirmation.
Malicious or hacked Poof server
Room ids, IP addresses, timing. Could serve altered code.
Content, as long as the code you run is genuine (see Verify)
Compromised TURN relay
IP addresses, traffic volume
Content
Malicious guest
Everything you send them
Nothing protects you here
Malware or bad browser extension
Everything on screen
Nothing protects you here
Future quantum attacker with recordings
Metadata
Content, unless they also captured the room link and broke ML-KEM
The web-app problem
Any website can be changed by whoever runs the server. In theory, a compromised server could send you code that leaks your key. Poof's answer is to make the running code checkable: open source, reproducible builds and signed attestations, so a change can't go unnoticed. See Verify it yourself.
Transparency
Don't trust the docs. Check the code.
Every claim on these pages points to something you can inspect.
Claim
Evidence
How to check
The key never reaches the server
How browsers handle the # fragment
DevTools → Network: requests contain no #…
Messages are end-to-end encrypted
The crypto module in the source
Read it; the data channel carries only ciphertext
Post-quantum key exchange
The ML-KEM-768 implementation in the source
Check the dependency and its tests
Nothing is stored
Server configuration, expiry settings
Read the config and the code paths
The site runs the published code
Reproducible build and signed checksums for every release
See the commands below
Open source
The public repository (linked in the site footer)
Read it
Check the build
Poof's build is reproducible: the same source always produces the same files, byte for byte. Every release publishes the checksums of what's served, signed by the build system, so you can check that usepoof.chat is running exactly the published code.
1 download the signed checksums from the latest release
2 verify the signature with GitHub's CLI: gh attestation verify
3 hash the files your browser loaded and compare
Try one right now
You can check the first claim without trusting Poof. It is how every browser works:
Open any link with a #something at the end.
Open DevTools (F12) → Network and reload.
Look at the request URL. Everything after # is missing. It never left your browser.
Security reports
Found something? Tell us first.
If you believe you've found a security issue in Poof, we want to hear about it, privately, before anyone else does.
How to report
Email security@usepoof.chat with a description, steps to reproduce and the impact you expect.
Please don't test against other people's rooms, and don't publish details until we've had time to fix it.
Include your PGP key if you'd like an encrypted reply.
We acknowledge every report within 48 hours, assess severity, agree a fix plan and coordinate the disclosure date with you. We credit reporters publicly if they wish.
Joining rooms without the link or phrase, linking token payments to rooms
Medium
Metadata leaks beyond what the threat model describes
Low
Hardening gaps without a direct impact
Safe harbour
We won't take legal action against good-faith research that avoids privacy violations, data destruction and service disruption, accesses no more than needed to show the issue, and gives us reasonable time to fix it before disclosure.
Out of scope
Attacks that need a compromised device or browser, social engineering, denial of service through volume, and issues in third-party services outside Poof's control.
For developers
The protocol, step by step.
How a Poof client talks to the server and to other clients. Read it next to the source.
Building blocks
Layer
Technology
Transport
WebRTC (RTCPeerConnection + DataChannel)
Signaling
WebSocket relay; connection details are passed through, never stored
Room state
In-memory store with automatic expiry; no chat data, ever
Client
Plain browser JavaScript; nothing loaded from third-party servers at runtime
Classical crypto
Web Crypto API: AES-GCM-256, HKDF-SHA-256, HMAC-SHA-256, PBKDF2
Post-quantum
ML-KEM-768 (FIPS 203)
NAT traversal
STUN + TURN over TLS
Handshake
CLIENT A (creator) CLIENT B (guest)
────────────────── ────────────────
key K = random 256 bits (fragment) reads K from fragment
── SDP offer / ICE via signaling ──────────────▶
◀──────────────── SDP answer / ICE ────────────
════════ data channel open (DTLS) ════════
(pk, sk) = ML-KEM.KeyGen()
1 ── public key pk ─────────────────────────────────▶
(ct, ss) = ML-KEM.Encaps(pk)
cB = HMAC(ss, label_B)
2 ◀──────────────────────── ciphertext ct + proof cB ──
ss = ML-KEM.Decaps(sk, ct)
check cB
3 ── proof cA = HMAC(ss, label_A) ──────────────────▶ check cA
S = HKDF-SHA-256(salt = K, ikm = ss, info = poof context) (both sides)
every message: AES-GCM(S, random 96-bit IV, plaintext)
If a confirmation fails, the upgrade is rejected and the room reports it instead of switching keys silently.
Message envelope
base64( IV (12 bytes) ‖ AES-GCM ciphertext + 16-byte tag )
files: each chunk = IV (12 bytes) ‖ ciphertext + tag
Example Concept
// Illustrative only: shows the order of operations, not the production API.
const K = crypto.getRandomValues(new Uint8Array(32)); // room key
const kem = mlKem768KeyGen(); // post-quantum keypair
// ... exchange pk / ct over the data channel ...
const S = await hkdf(K, sharedSecret, POOF_CONTEXT); // session key
const msg = await aesGcmEncrypt(S, randomNonce(), "hello");
Running it locally
Clone the public repository (linked in the site footer) and follow its README: it lists the requirements and the two commands to start Poof on your machine. Open two browser windows on the local address and create a room between them; you'll see the handshake above happen in your browser's developer console.
Reference
Glossary.
Every term in three steps: plain words, the technical version, and why it matters to Poof.
Qubit
simpleA bit that can be 0, 1, or a mix of both until measured.
technicalThe basic unit of quantum information, described by complex amplitudes; measurement yields a classical bit.
for poofLarge numbers of reliable qubits are what would threaten today's key exchanges.
Superposition
simpleBeing in a combination of states at once.
technicalA qubit state is a linear combination of basis states.
for poofIt's why quantum algorithms can do things classical ones can't, for some problems.
Entanglement
simpleQubits whose results are linked, however far apart.
technicalA joint state that can't be written as separate per-qubit states.
for poofA resource quantum algorithms rely on.
Quantum gate
simpleAn operation that changes qubits.
technicalA unitary transformation applied to one or more qubits.
for poofAlgorithms like Shor's are sequences of gates.
Physical vs logical qubit
simpleRaw hardware qubits vs error-corrected ones built from many of them.
technicalError correction encodes one logical qubit across many noisy physical qubits.
for poofBreaking RSA needs many logical qubits, which is why it isn't possible yet.
Quantum error correction
simpleFixing quantum errors without looking at the data.
technicalCodes that detect and correct errors on encoded qubits.
for poofThe main engineering hurdle between today's machines and dangerous ones.
Quantum advantage
simpleA quantum computer beating classical ones at some task.
technicalDemonstrations exist for specific, mostly artificial problems.
for poofNot the same as breaking encryption. Headlines often mix them up.
Shor's algorithm
simpleA quantum recipe for factoring and discrete logarithms.
technicalPolynomial-time algorithm for integer factorization and discrete log.
for poofBreaks RSA and elliptic-curve key exchange on a big enough machine.
Grover's algorithm
simpleA quantum speed-up for searching.
technicalQuadratic speedup for unstructured search.
for poofWeakens symmetric keys; AES-256 stays strong.
Post-quantum cryptography
simpleEncryption designed to resist quantum attacks, running on normal computers.
technicalSchemes based on problems like lattices or hash functions.
for poofPoof's handshake uses it (ML-KEM-768).
Quantum-safe
simpleExpected to hold up against quantum computers.
technicalInformal term; depends on assumptions and correct implementation.
for poofWe say “designed to resist”, never “unbreakable”.
Harvest now, decrypt later
simpleRecord encrypted data today, unlock it later.
technicalStore-and-wait attack against long-lived ciphertext.
for poofThe reason post-quantum matters before quantum computers exist.
KEM
simpleA way to agree on a shared secret using a public key.