Blowfish
Blowfish est un chiffrement symétrique par blocs conçu par Bruce Schneier en 1993, utilisant des clés de longueur variable (32-448 bits) et des blocs de 64 bits ; il est rapide et libre de tout brevet.
Objectif
Elle offrait une alternative sûre à DES avec des clés longues et sans restriction de licence.
Mécanisme
C'est un réseau de Feistel à 16 tours. Le calendrier de clés construit un tableau P (18 mots de 32 bits) et quatre S-boxes (256 entrées chacune), initialisés avec la clé et des constantes fixes (chiffres hexadécimaux de π). Le chiffrement itère les deux moitiés par XOR avec la fonction F.
Cas d’usage
- Algorithme optionnel d'OpenPGP
- Chiffrement sous-jacent du hachage de mots de passe bcrypt
- Chiffrement embarqué et logiciel
- Exemples pédagogiques
Exemples
- entrée
key=128bit, data=8bytesOutput8-byte ciphertextThe 64-bit block is now considered small
Erreurs courantes
- The 64-bit block invites Sweet32 attacks on large data volumes
- Use AES or Twofish with 128-bit blocks
Termes associés
AES
AES (Advanced Encryption Standard) est un chiffrement par blocs symétrique établi par NIST en 2001, prenant en charge les clés de 128/192/256 bits, standard de facto du chiffrement moderne. GLOSSAIRE
Twofish
Twofish est un chiffrement par blocs symétrique conçu par Bruce Schneier et d'autres pour le concours AES ; il utilise des blocs de 128 bits avec des clés de 128/192/256 bits et fut l'un des finalistes de l'AES. GLOSSAIRE
DES
DES (Data Encryption Standard) est le chiffrement par blocs symétrique standardisé en 1977, utilisant une clé de 56 bits et des blocs de 64 bits ; il est obsolète en raison de sa clé trop courte. GLOSSAIRE
Block Cipher
Un chiffrement par blocs est un chiffrement symétrique qui chiffre et déchiffre des blocs de longueur fixe (p. ex. 128 bits) et nécessite un mode d'opération pour traiter des données de longueur arbitraire. GLOSSAIRE