Aller au contenu
uencoder

Serpent

Serpent est un chiffrement par blocs symétrique conçu par Ross Anderson et d'autres pour le concours AES, utilisant des blocs de 128 bits et des clés de 128/192/256 bits, réputé pour sa large marge de sécurité.

Objectif

Il offrait une marge de sécurité plus conservatrice que Rijndael (32 tours contre 10), échangeant de la vitesse contre la confiance face à la cryptanalyse.

Mécanisme

C'est un réseau de substitution-permutation (SPN) à 32 tours. Chaque tour applique huit boîtes S 4×4 en parallèle, une transformation linéaire et un XOR avec la clé de tour. Les boîtes S sont implémentées par bitslicing pour éviter les attaques temporelles ; le calendrier de clés produit 33 sous-clés de 128 bits.

Cas d’usage

  • Recherche sur le concours AES
  • Exigences de marge de sécurité élevée
  • Enseignement de la cryptographie
  • Analyse de conceptions conservatrices

Exemples

  • entrée
    key=256bit, data=16bytes
    Output
    16-byte ciphertext

    AES finalist

Erreurs courantes

Misusing an unoptimized software implementation yields poor performance
Use bitslice-optimized implementations

Termes associés

Outils associés

References