# Mix network

En informatique, un mix network ou « mixnet », parfois appelé réseau de mélange est une famille de modes de routage favorisant l'anonymat par l'usage de serveurs intermédiaires multiples re-routant l'information sans avoir accès à celle-ci ni connaitre son origine ou sa destination finale.
Le concept de mix network a été décrit pour la première fois par David Chaum en 1979 (et publié en 1981). Ces travaux ont contribué, dans les années 2000, au développement de réseaux anonymes tels que Tor (« routage en oignon ») ou I2P (« routage en ail »), qui, sans être des mix networks, en sont inspirés dans leur architecture ; Il a également inspiré les systèmes de serveurs de courriel anonymes, tels que Mixmaster.
Les premiers « vrais » mix networks apparaissent dans les années 2020, après le développement des systèmes décentralisés à grande échelle, et les avancées académiques dans les systèmes de protection de la vie privée.

## Historique
### 1979 : Origines et travaux de David Chaum

Le concept des réseaux de mélange (mix networks) a été introduit en 1979 (puis publié en 1981) par David Chaum dans son article (et mémoire de maîtrise) Untraceable electronic mail, return addresses, and digital pseudonyms, rédigé après sa découverte des travaux sur la cryptographie à clé publique de Martin Hellman, Whitfield Diffie et Ralph Merkle. Chaum y identifie des vulnérabilités relatives à la vie privée liées aux métadonnées des communications. Parmi ces vulnérabilités figurent l’horodatage des messages envoyés et reçus, la taille des messages et l’adresse de l’expéditeur d’origine. Il cite notamment l’article New Directions in Cryptography (1976) de Martin Hellman et Whitfield Diffie comme une source d’inspiration majeure.

### Années 1990 : l’ère des cypherpunks et des chercheurs

Dans les années 1990, des informaticiens et cypherpunks tels que Ian Goldberg et Adam Back s'emparent du concept de mix network et y apportent d’importantes contributions. Les avancées dans le domaine de la cryptographie facilitent la mise en œuvre pratique des mix networks, et les milieux académiques s'emparent du sujet, conduisant à des recherches approfondies visant à améliorer leur efficacité et leur sécurité (voir Bibliographie). Toutefois, les applications pratiques des mix networks restent limitées, et ceux-ci demeurent largement expérimentaux. On note le développement de cypherpunk remailers permettant aux utilisateurs d’envoyer des courriels anonymes en exploitant les mixnets.

### Années 2000 : implémentation des concepts par d'autres réseaux anonymes

Au cours des années 2000, les préoccupations croissantes concernant la protection de la vie privée en ligne mettent en évidence l’importance des concepts techniques développés dans le cadre des mix networks. Tor (The Onion Router), le plus connu, basé sur le « routage en oignon » apparaît au début des années 2000. Sans en être une implémentation directe, il s’inspire fortement des idées initiales de David Chaum. Cette période voit également l'apparition d’autres réseaux intégrant certains principes des mix networks pour renforcer la sécurité et l’anonymat des communications (Freenet en 2000, I2P en 2003).

### Années 2010 : relance des travaux suite aux révélations Snowden

À partir de 2013, les révélations d’Edward Snowden sur les programmes de surveillance globale américain et britannique renforcent l'intérêt pour le concept de mix networks pour la protection de la vie privée, et en particulier pour les métadonnées.
L'architecture « Loopix », présentée en 2017, rassemble plusieurs éléments techniques pré-éxistants (dont le format de paquet « Sphinx », l'envoi des paquets selon un processus de Poisson, les délais de mixage selon des lois exponentielles, le trafic factice « en boucles », ou encore la disposition des nœuds de mixage selon une topologie stratifiée) pour arriver à l'architecture contemporaine d'un mix network. L'essor des blockchains laisse envisager le développement de systèmes décentralisés à grande échelle.

### Années 2020 : premières implémentations

Différents programmes de recherche et développement publics et privés aboutissent et permettent la réalisation des premiers « vrais » mix networks à grande échelle. En 2025, plusieurs réseaux dont 0KN, HOPR, Katzenpost, Nym ou xx.network (dirigé par David Chaum) sont en développement actif.

## Principe

Le protocole s'appuie sur un ensemble de serveurs de re-transmission des messages. Le réseau utilise des algorithmes de cryptographie asymétrique pour protéger ses communications.
Supposons qu'Alice souhaite envoyer un message à Bob à travers un mix network.

### Notations

Soient:
* $\scriptstyle \ Mess$ le message texte clair à transmettre.
* $N$ le nombre de serveurs/nœuds appartenant au mix network
* soit pour $i\in [1..N]$:
** $S_{i}$ les noms des serveurs du réseau
** $A_{i}$ leurs adresses respectives
** $K_{p_{i}}$ leurs clés publiques respectives
* Par convention, on notera que Alice opère le serveur $S_{A}$ et Bob le serveur $S_{B}$, avec adresses $A_{A}$, $A_{B}$ et clé publiques $K_{p_{A}}$, $K_{p_{B}}$
* $K_{p_{x}}(\scriptstyle \ data$ $)$ le résultat du chiffrement de la donnée $\scriptstyle \ data$ par la clé publique $K_{p_{x}}$.
* soit l'entier $n$ la longueur du chemin d'envoi choisie par Alice (voir plus loin)
* soit $C$ le chemin de l'envoi (voir plus bas), une n-uplet $(C_{j})$ avec $_{j}\in [1..n]$ de $n$ nœuds du réseau sur $(S_{0},...S_{N})$ , avec possible répétition.

### Fonctionnement
#### Initialisation du réseau

Chaque nœud se déclare auprès de tous les autres participants en indiquant son adresse (suivant un protocole de communication quelconque) et sa clé publique.

#### Préparation de l'envoi

Alice décide de la longueur de la chaîne d'envoi $n$ en fonction du niveau de sécurisation (chaîne plus longue) et de rapidité (chaîne plus courte) qu'elle estime acceptable.
Alice choisit suivant une méthode discrétionnaire un chemin représenté par une liste $C$ de $n$ éléments de $(S_{1},...S_{N})$. Cette liste représente, dans l'ordre, la liste des serveurs par lesquels le message va transiter.

## Cas simple

Considérons le cas simple où $n=1$, soit le message va être transmis par Alice à un unique serveur qui va le renvoyer à Bob. Dans ce cas la liste $C$ comporte unique élément $C_{1}$ tel qu'il existe un indice $j\in [0..N]$ tel que $C_{1}=S_{j}$.