Xx messenger

xx messenger is a cross-platform decentralized encrypted instant messaging service developed by PrivaTegrity Corporation. Messages are delivered over a variety of mix network first described in 2016. Users can send one-to-one and group messages, which can include voice notes and images.

xx messenger uses usernames as identifiers which can be optionally attached to standard cellular telephone numbers or email addresses for contact discovery. All communications between users are secured with quantum-resistant end-to-end encryption.

xx messenger's software is free and open-source. Its mobile clients are published under the 2-clause BSD License, while its server software is published under a modified, patent-protected Business Source License.

History
An alpha version of xx messenger was first presented on January 6, 2016 by David Chaum at the Real World Crypto conference with the stated goal of demonstrating a new type of mix network encryption scheme. The encryption scheme, known as PrivaTegrity, was described by Chaum and team of academic partners at Purdue University, Radboud University Nijmegen, University of Birmingham, and other schools.

xx messenger was released to the public as a mobile app on Android and IOS on 25 January 2022.

cMix
xx messenger uses cMix - a network of decentralized servers that are run by independent operators in approximately 80 countries - for data transmission. cMix attempts to address traditional latency and scalability limitations of mix networks by performing computationally expensive public-key operations between mix nodes prior to any client data being transmitted over the network. Messages sent by users of xx messenger are grouped in batches of 1,000 and routed through a subset of cMix nodes. Once the mixing process is complete, each message can be retrieved and decrypted by their recipient.

Encryption protocols
The cMix protocol uses XChaCha20, BLAKE2b, HMAC-SHA-256, Diffie–Hellman key exchange, and Supersingular isogeny key exchange as cryptographic primitives. Messages are encrypted in two layers. The inner layer is encrypted with ChaCha20 symmetric encryption. This payload is then encrypted once more for transmission over the mixnet using multi-party ElGamal encryption. The encryption protocols, in addition to the properties provided by the mixnet, allow both anonymity preservation and traditional end-to-end security guarantees, as well as preliminary post-quantum security with a traditional fallback mechanism.