1
Add a comment
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.
Replies
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.