Glossary · XChaCha20-Poly1305
XChaCha20-Poly1305
An authenticated symmetric encryption algorithm used to encrypt every Are We Friends? DM payload.
XChaCha20-Poly1305 is an Authenticated Encryption with Associated Data (AEAD) construction combining the XChaCha20 stream cipher (a variant of Daniel Bernstein's ChaCha20) with the Poly1305 message authentication code. It is one of two AEAD primitives (alongside AES-GCM) recommended by the IETF for modern protocols.
The "X" prefix on XChaCha20 refers to its 192-bit nonce, large enough to be safely chosen at random for every message — a critical property when you don't have a per-stream counter you can trust. Together with Poly1305's authentication tag, the construction provides confidentiality and integrity in a single pass.
XChaCha20-Poly1305 is faster than AES on most non-AES-NI hardware (notably mobile devices), is implemented in libsodium, and powers the Signal protocol's payload encryption. Are We Friends? uses it for every DM payload — the message body itself is encrypted with a per-thread symmetric key wrapped via X25519.
Related terms
End-to-end encryption (E2EE)
A messaging architecture where only the two parties can decrypt a message. The server never sees plaintext. Friends? DMs use this.
X25519
An elliptic-curve key agreement protocol. Are We Friends? uses it to wrap the per-thread DM keys.
Argon2id
A memory-hard password-hashing function. Are We Friends? uses it to derive your master encryption key from your passphrase.
Give it five minutes
Meet people who actually fit — and do something real.
Free tier, Big Five test, three matches nearby. No ads, ever.