title: Construction de Miyaguchi-Preneel
text: # Construction de Miyaguchi-Preneel
  
  Une construction de Miyaguchi-Preneel (ou fonction de Miyaguchi-Preneel) est une technique utilisée dans les fonctions de hachage cryptographiques. Elle a été inventée par Bart Preneel et Shoji Miyaguchi.
  
  Cette structure utilise un algorithme de chiffrement par bloc en tant que fonction de compression. Son architecture est encore sûre du point de vue cryptographique puisque aucune attaque connue n'existe à son sujet. Des recherches menées par Black, Rogaway et Shrimpton valident la robustesse de la construction de Miyaguchi-Preneel. Elle est en fait une variante renforcée de la construction de Matyas-Meyer-Oseas.
  
  La construction de Miyaguchi-Preneel est présente dans la fonction de hachage cryptographique Whirlpool.
  
  ## Définition formelle
  
  Les fonctions de hachage cryptographiques chaînent plusieurs blocs, chaque bloc contient une fonction de compression qui prend une donnée, la "compresse" (à perte) et transmet le résultat au bloc suivant. La sortie du dernier bloc constitue en général l'empreinte finale.
  
  Soit $H_{i-1}~$ la sortie du bloc précédent et $H_{i}~$ la sortie du bloc actuel. Le schéma de Miyaguchi-Preneel se présente alors comme suite :
  
  $H_{i}=H_{i-1}\oplus X_{i}\oplus f(H_{i-1},X_{i})$
  
  où $f(H_{i-1},X_{i})~$ est la fonction de compression qui prend en entrée un bloc de données $X_{i}~$ (bloc provenant du fichier à hacher) et la sortie du bloc précédent $H_{i-1}~$. Cette fonction de compression est formée d'un chiffrement par bloc $E~$ qui accepte deux données en entrée. L'entrée provenant du bloc précédent passe au préalable à travers une fonction $g~$. On peut formuler le schéma de cette manière :
  
  $H_{i}=H_{i-1}\oplus X_{i}\oplus E(g(H_{i-1}),X_{i})$
  
  Dans le cas de Whirlpool, le chiffrement $E~$ est dérivé de Rijndael et se nomme "W".
  
  