Send a file from one device to another, end-to-end encrypted with post-quantum key exchange.
The short version. SealHop sends a file from one device to
another. On the way, only the sender and the devices it lets in can read the
file, and every connection between two devices uses post-quantum key
exchange. It is in development: there is no download yet.
What it does
Post-quantum key exchange on every connection between devices.
Each one uses X25519MLKEM768, the hybrid of ML-KEM-768 and X25519 that
RFC 10024 defines, and a connection that agreed anything else is closed.
Both screens show the same 6-digit code. Unless told not
to ask, the sender is asked to let the device in and the receiver to
accept the file, each seeing the code, before anything is written.
Compare it with the other person by voice or in person: a device in the
middle gets one guess per connection at making the two screens match, one
chance in a million. The code only helps if you compare it.
The file arrives exactly as offered. The sharing code
carries a hash of the offer. Every piece is checked against it before it
is written, and the finished file is moved into place only when every
piece is verified.
A sharing code serves one device by default. Other
devices are refused, and no new device can claim it after it expires:
60 minutes by default, never more than 24 hours.
It uses the internet
Unlike SenseVault and SenseScan, SealHop needs a network, and
the app always uses relay and address-lookup servers run by n0. n0 can see which
device keys are active and from which addresses, and a relay sees which two
devices exchange data through it, when, and how much. None of this shows the
file's contents, and device keys are new for every share and every receive.
Not yet
Not released, and not yet tested between two different networks. The app
has run on one phone so far.
Device identities are not post-quantum. Devices prove who they are with
Ed25519 keys; a recording cannot later be used to impersonate anyone, so
an attacker would need a quantum computer at the moment of the
connection.
n0's relay and lookup servers refuse post-quantum key exchange, so
SealHop's own connections to them use X25519. What a relay carries between
two devices is already encrypted end to end with the post-quantum
exchange.
Files are not encrypted once they are saved, whether partly or fully
downloaded.