KEIBIDROP: Building Post-Quantum Encrypted File Sync

11,000+ lines of Go and counting.

May 2026

By Marius-Florin Cristian

Index

Harvest now, decrypt later is the threat that justifies this

Quantum computers will eventually break RSA and elliptic curve cryptography, which is not controversial, and the open question is when.

The real threat is "harvest now, decrypt later." Adversaries collect encrypted data today, knowing they can decrypt it once quantum computers arrive. If your data has long-term value, this matters now.

KEIBIDROP is a file sync tool that uses post-quantum cryptography. It lets you share files between devices with encryption that will remain secure even after quantum computers arrive.

We pair ML-KEM-1024 with X25519, and ChaCha20-Poly1305 carries the traffic

We use a hybrid key exchange combining classical and post-quantum algorithms, with symmetric encryption for the transport layer:

The hybrid approach provides defense in depth: if ML-KEM is broken (it is new), X25519 still protects you, and if X25519 is broken by quantum computers, ML-KEM still protects you.

Go 1.24 includes ML-KEM in the standard library (crypto/mlkem), which made implementation straightforward. For a deeper look at the handshake protocol, see Post-Quantum gRPC. For how keys rotate during long sessions, see Forward Secrecy and Automatic Key Rotation.

There are three components: a relay, a Go engine and a native UI

KEIBIDROP has three components:

The connection flow:

  1. Both peers generate ML-KEM and X25519 keypairs
  2. Public keys uploaded to relay server
  3. Peers exchange fingerprints out-of-band (via chat, email, etc.)
  4. Direct P2P connection established over IPv6
  5. All file transfers encrypted end-to-end

We chose IPv6 only to avoid the complexity of NAT traversal, and having no STUN or TURN servers means no metadata leakage to third parties.

The FUSE layer took longer than everything else combined

KEIBIDROP mounts as a folder on your computer, so you drag files in and they appear on the peer with no special app involved.

Building a FUSE filesystem was the hardest part. Some of the challenges:

One Go engine across five platforms, with Rust and Slint on top

One codebase runs on macOS (Intel + Apple Silicon), Windows, Linux, iOS, and Android.

The stack:

The result is a 20MB binary. Compare that to Electron apps that ship ~150-200MB of Chromium.

Go 1.24 ships ML-KEM, and FUSE is harder than it looks

The codebase continues to grow. What started as a focused prototype is now a full cross-platform file sharing system with three interfaces (desktop GUI, interactive CLI, agent CLI), a FUSE virtual filesystem, and a post-quantum encrypted transport layer.

8 min read | KEIBIDROP Series | Post-Quantum gRPC | Relay Privacy | Forward Secrecy | Agent CLI | Testing P2P