title: Optimal Asymmetric Encryption Padding
text: # Optimal Asymmetric Encryption Padding
  
  En cryptologie, l'OAEP (Optimal Asymmetric Encryption Padding) est un schéma de remplissage, utilisé généralement avec le chiffrement RSA. Cet algorithme fut introduit en 1994 par Mihir Bellare et Phil Rogaway. L'OAEP est une forme de réseau de Feistel qui nécessite une source d'aléa ainsi que deux fonctions de hachage.
  
  ## Description de l'algorithme
  
  Si l'on note
  
  * $m$ le message d'origine (complété ici par des zéros),
  * $r$ des données aléatoires,
  * $G,H$ les deux fonctions déterministes de génération de masque (elles transforment, via une fonction de hachage, une entrée de longueur quelconque en une sortie de la longueur voulue mais attention il ne s'agit pas d'un générateur de hasard car la sortie générée est fonction de l'entrée fournie).
  
  Pour les étapes de chiffrement, on a
  
      $X=m\oplus G(r)$
      $Y=H(X)\oplus r$
      $\mathrm {OAEP} (m)=X||Y$,
  
  où « || » désigne la concaténation et $\oplus$ l'opérateur « ou exclusif ».
  
  Pour les étapes de déchiffrement/vérification, il suffit de calculer :
  
      $r=H(X)\oplus Y$,
  
  on a alors
  
      $m=X\oplus G(r)$.
  
  La réversibilité de l'algorithme, permet de vérifier que le des données déchiffrées correspondent bien à celles attendues. C'est généralement une étape du chiffrement RSA, on parle d'ailleurs dans ce cas de RSA-OAEP, la fonction de hachage communément utilisée est le SHA-1. L'un des intérêts de RSA-OAEP est de pouvoir être prouvé sûr dans un modèle théorique idéalisé, celui de l'oracle aléatoire. Cet algorithme est recommandé par la directive PKCS (Public Key Cryptography Standard) 1, version 2.1 (juin 2002).
  
  