What we protect against
We designed GhostCrypt assuming the worst: that servers will be seized, that networks will be tapped, and that some devices will be stolen. Here's how each threat is neutralized.
The stack, layer by layer
Four primitives form our cryptographic core. Each is battle-tested, peer-reviewed, and deployed at scale. Here's what they do and why we chose them.
X3DH
X3DH establishes a shared secret between two parties who have never met before, using a bundle of pre-published public keys. It's asynchronous — you can send the first message to someone who's offline. This is how the very first message in a new conversation is encrypted.
Double Ratchet
After the initial handshake, every message uses a fresh encryption key derived from a ratcheting chain. If a key is compromised, past messages stay safe (forward secrecy). New messages recover automatically (post-compromise security). This is the same protocol Signal and WhatsApp use.
AES-256-GCM
The actual message bytes are encrypted with AES-256 in Galois/Counter Mode — a widely deployed AEAD (Authenticated Encryption with Associated Data) cipher. It provides both confidentiality and integrity in a single operation. Hardware-accelerated on every modern CPU.
ML-KEM-768 (Kyber)
A classical Diffie-Hellman handshake can be broken by a sufficiently powerful quantum computer. ML-KEM-768 (formerly Kyber) is the NIST-standardized post-quantum KEM that we combine with X25519 in a hybrid construction. If quantum computers break ECC tomorrow, your messages stay safe.
What we can and cannot see
Privacy isn't a promise — it's a mathematical constraint. Here's a complete list of what our servers have access to.
11 layers of security
We don't rely on a single security mechanism. Every layer below is independently secure — and we use all of them at once.