Aller au contenu
uencoder

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=8bytes
    Output
    8-byte ciphertext

    The 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

Outils associés

References