CyberGlossary

Cryptographie

Blowfish

Définition

Chiffrement de Feistel à blocs de 64 bits et clé de longueur variable conçu par Bruce Schneier en 1993 ; cryptanalytiquement solide mais limité par sa petite taille de bloc et supplanté par AES.

Blowfish est un chiffrement symétrique par blocs conçu par Bruce Schneier en 1993 comme alternative rapide et libre de droits à DES et IDEA. Il utilise un réseau de Feistel à 16 tours sur des blocs de 64 bits, des clés de 32 à 448 bits et de grandes boîtes S dépendant de la clé. Cryptanalytiquement, Blowfish dans sa version complète à 16 tours est toujours considéré comme intact, mais sa taille de bloc de 64 bits le rend vulnérable aux attaques de l'anniversaire comme Sweet32 lorsque plusieurs gigaoctets sont chiffrés sous une même clé. NIST et les protocoles modernes recommandent donc des chiffrements à blocs de 128 bits comme AES. Blowfish reste historiquement important et subsiste dans des dérivés (notamment le hachage de mots de passe bcrypt et Twofish), mais n'est plus recommandé pour de nouveaux usages.

Exemples

  • Les anciennes versions d'OpenSSH et OpenVPN proposaient Blowfish en mode CBC.
  • Le hachage de mots de passe bcrypt dérive son ordonnancement de clés de Blowfish.

Termes liés