title: Chiffrement de flux
text: # Chiffrement de flux
  
  Le chiffrement de flux, chiffrement par flot ou chiffrement en continu (en anglais stream cipher) est une des deux grandes catégories de chiffrements modernes en cryptographie symétrique, l'autre étant le chiffrement par bloc. Un chiffrement par flot arrive à traiter les données de longueur quelconque et n'a pas besoin de les découper.
  
  Une liste non exhaustive de chiffrements par flot :
  
  * A5/1, algorithme publié en 1994, utilisé dans les téléphones mobiles de type GSM pour chiffrer la communication par radio entre le mobile et l'antenne-relais la plus proche ;
  * RC4, le plus répandu, conçu en 1987 par Ronald Rivest, utilisé notamment par le protocole WEP du Wi-Fi ;
  * Py, un algorithme récent de Eli Biham ;
  * E0 utilisé par le protocole Bluetooth.
  
  Un chiffrement par flot se présente souvent sous la forme d'un générateur de nombres pseudo-aléatoires avec lequel on opère un XOR entre un bit à la sortie du générateur et un bit provenant des données. Toutefois, le XOR n'est pas la seule opération possible ; la seule contrainte sur cette opération est qu’elle doit être inversible (la disjonction exclusive est même involutive), comme l’opération d'addition dans un groupe est également envisageable (par exemple, addition entre deux octets, modulo 256). Un chiffrement par bloc peut être converti en un chiffrement par flot grâce à un mode opératoire qui permet de chaîner plusieurs blocs et traiter des données de taille quelconque.
  
  ## Chiffrement et déchiffrement à l’aide du « OU exclusif »
  
  Soit $\oplus ~$ l'opération booléenne XOR, et $G_{m}:\{0,1\}^{n}\to \{0,1\}^{m}$ un générateur pseudo-aléatoire. Ce mécanisme construit sur le principe du masque jetable utilise la propriété involutive du OU exclusif.
  
  * Chiffrement du message $M\in \{0,1\}^{m}$ avec la clé $K\in \{0,1\}^{n}$ : $M\oplus G_{m}(K)=C$.
  * Déchiffrement du message $C$ avec la clé $K$ : $C\oplus G_{m}(K)=(M\oplus G_{m}(K))\oplus G_{m}(K)=M\oplus (G_{m}(K)\oplus G_{m}(K))=M~$
  
  ## « Stream cipher : Dead or Alive? »
  
  Lors de la conférence Asiacrypt en 2004, Adi Shamir posa cette question. En réponse, le projet eStream du réseau ECRYPT a vu le jour, celui-ci ayant pour but, après quatre ans, de produire un portfolio pour promouvoir de nouveaux systèmes de chiffrement par flot. À la suite de ces quatre ans de recherche, le portfolio est maintenant disponible et recommande au total sept algorithmes dans deux catégories différentes: quatre adaptés à une utilisation logicielle et trois adaptés à une utilisation matérielle (par ordre alphabétique) :
  
  | Logiciel | Matériel |
  | - | - |
  | HC-128 | Grain v1 |
  | Rabbit | MICKEY v2 |
  | Salsa20/12 | Trivium |
  | Sosemanuk | |
  