Mix network
# Mix network

En informatique, un mix network, 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é pour la première fois décrit par David Chaum en 1981. Des exemples d'applications du principe de mix network sont le système de relai de courriel Mixmaster) ou le projet Tor.

## 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}$.

