Deux fois

En cryptographie, Twofish est un algorithme de cryptage conçu par Bruce Schneir. Il s'agit d'un chiffrement par bloc de clé symétrique, ce qui signifie qu'une seule clé est utilisée à la fois pour le chiffrement et le déchiffrement. Twofish a une taille de bloc de 128 bits et des tailles de clé jusqu'à 256 bits.

Twofish est lié au chiffrement par blocs précédent Blowfish, qui est un chiffrement d'horloge 64 bits qui utilise une longueur de clé variant entre 32 et 448 bits également développé par Bruce Schneir. Twofish est également lié à Advanced Encryption Standard (AES), un chiffrement par blocs de 128 bits que le gouvernement des États-Unis a adopté comme spécification pour le cryptage des données électroniques par le National Institute of Standards and Technology des États-Unis en 2001. Alors que Twofish était finaliste pour devenir la norme de l'industrie pour le cryptage, il a été battu par AES en raison de la vitesse plus lente de Twofish.


Caractéristiques de Twofish

Twofish possède des caractéristiques distinctives qui le distinguent des autres protocoles cryptographiques, notamment l'utilisation d'une S-box précalculée et dépendante de la clé (boîte de substitution), qui est un composant de base de tout algorithme de clé symétrique qui effectue une substitution. La S-box fonctionne pour masquer la relation entre la clé et le texte chiffré. En raison du précalcul, Twofish est vulnérable aux attaques de canaux secondaires.

L'algorithme de chiffrement utilise une matrice séparable à distance maximale, ou une matrice qui représente une fonction avec certaines propriétés de diffusion qui ont des applications utiles en cryptographie. Twofish a une structure Fiestel, qui est une structure symétrique utilisée dans la construction de chiffrements par blocs. Cette même structure est également utilisée dans Data Encryption Standard (DES), une norme de cryptage influente qui était populaire dans les années 1970.

Twofish n'a pas été breveté et l'implémentation de référence a été placée dans le domaine public, ce qui signifie que l'algorithme est libre d'utilisation pour quiconque sans restrictions. Twofish a une utilisation moins répandue que Blowfish.