AESend
Overview
AESend is an end-to-end encrypted messaging platform. There are no accounts or passwords — just cryptographic keys. You register a username and generate an RSA key pair in your browser. Your public key is uploaded to the server; your private key never leaves your device. Anyone can send you encrypted messages that only you can read.
Architecture
All cryptography is performed client-side via the Web Crypto API. AESend uses a hybrid encryption scheme: each message is encrypted with a fresh symmetric key, which is itself encrypted under the recipient’s public key.
Let denote the recipient’s 4096-bit RSA-OAEP public key, secret key pair. To send a message , the sender’s browser:
- Fetches from the server.
- Samples a fresh key and initialization vector .
- Finds .
- Computes .
The tuple is sent to the server. Since GCM provides authenticated encryption, guarantees both confidentiality and integrity of . Without , none of the transmitted values reveal anything about the plaintext.
To decrypt, the recipient computes:
The private key never leaves the recipient’s device. The server stores only opaque ciphertext.
Stack: Web Crypto API FastAPI SQLite