title: PANAMA
text: # PANAMA
  
  PANAMA est une primitive cryptographique qui peut faire office de fonction de hachage cryptographique ou de chiffrement de flot. Elle a été conçue par Joan Daemen et Craig Clapp en 1998 à partir de StepRightUp.
  
  ## Fonctionnement
  
  PANAMA est basée sur une machine à états finis de 544 bits, l'automate emploie un registre à décalage à rétroaction linéaire de 8192 bits pour ses opérations. La machine travaille selon trois modes lors d'une itération :
  
  * Push (introduction d'une entrée, pas de sortie)
  * Pull (pas d'entrée, mais production d'une sortie)
  * Blank (comme Pull mais la sortie est ignorée)
  
  Le registre à décalage est mis à jour grâce aux Push et Pull commandés depuis l'automate fini. Le hachage se fait grâce à une série de Push dont les entrées proviennent du message à hacher. Une suite de Blank permet à l'algorithme d'assurer la diffusion des informations une fois arrivé à la fin du message.
  
  De par son architecture, PANAMA est similaire à un grand nombre de chiffrements de flot et diffère sensiblement des algorithmes basés sur une construction de Merkle-Damgård. Ces derniers (MD5, SHA-1, etc.) appliquent un grand nombre de tours sur un bloc alors que PANAMA effectue un seul « tour » complexe mais parallèle. De plus, PANAMA a une variable interne de l'ordre d'un kilooctet alors que la variable principale de la famille MD-x ou SHA-x a une taille égale à l'empreinte.
  
  PANAMA a l'avantage d'être polyvalente, elle peut faire office de hachage, de chiffrement ou encore de code d'authentification de message ce qui peut être intéressant pour du matériel embarqué aux capacités limitées et aux critères de sécurité peu élevés.
  
  Lors de la conférence NIST Second Cryptographic Hash Workshop en 2006, Guido Bertoni, Joan Daemen, Michaël Peeters et Gilles Van Assche ont proposé une variante de PANAMA appelée RadioGatún. En tant que fonction de hachage, RadioGatún n'a pas les faiblesses connues de PANAMA.
  
  ## Cryptanalyse
  
  En 2001, Bart Van Rompay, Vincent Rijmen, Bart Preneel et al. présentent une attaque pour trouver des collisions sur PANAMA. La méthode nécessite $2^{82}$ opérations pour un hachage de 256 bits.
  
  Lors de la conférence FSE 2007, Joan Daemen et Gilles Van Assche ont présenté une attaque pratique sur la fonction de hachage de PANAMA, qui peut générer une collision en $2^6$ évaluations de la fonction de mise à jour (Push).
  
  