QR Crypt - Exchange keys in person. Encrypt text permanently offline.

by
In-person key exchange. Encryption and decryption stay on permanently offline devices. Only ciphertext crosses the air gap, via QR codes.

Add a comment

Replies

Best
Maker
📌

Hey Product Hunt. I'm transparent-pegasus, and I built QR Crypt.

Why I built it


Mercenary spyware takes the whole device. A Pegasus-class implant reads your

keyboard, your screen, your camera, and your keys at rest, and no cipher saves

you from an attacker who watches you type. So I stopped trying to harden the

protocol and asked where the plaintext could live instead. The answer costs you

a second device that never connects to anything, with a camera as its only way in.


How it works


You keep one device offline from setup onward. You type there, the app encrypts,

and it draws the ciphertext on screen as a QR code. Your everyday phone scans

that code, and you paste the resulting text into whatever messenger you already

use. Your recipient works backward through the same steps. You swap public keys

face to face as QR codes, so no server ever holds them.


What the crypto is


AES-256-GCM by default. ML-KEM-1024 with HKDF-SHA256 when a message has to stay

secret for decades, and ML-DSA-87 when your recipient needs to verify who sent

it. I wrote none of these primitives.


On the quantum question, the loose version gets the facts wrong, so here is the

careful one. Grover buys an attacker a quadratic speedup against AES-256 and

leaves about 128 bits, so AES-256 holds. Shor breaks the asymmetric layer, and

the risk there is harvest-now-decrypt-later: someone records your ciphertext

today and opens it when the hardware arrives. The default mode gives an attacker

no asymmetric key agreement to target, because you pass the key over in person.

ML-KEM and ML-DSA cover what an in-person key misses.


What it does not do


An attacker who owns your OS, browser, or firmware defeats it. So does a

keylogger, a screen recorder, malware that reads your camera, or a thief who

pockets the device. The offline indicator reports your current network state and

nothing beyond that. wipe-on-online deletes at the logical level, which on flash

storage leaves your data recoverable. Nobody has audited the post-quantum

suites, so treat them as experimental.


The repo carries the full threat model, both QR protocol versions, and the boot

and wipe contract. Tell me where the design breaks.