Chiffrement/Déchiffrement CAST5 (CAST-128)
Chiffrement par bloc symétrique sécurisé avec longueur de clé variable (40-128 bits)
Avertissement de sécurité
Cet outil est destiné à des fins éducatives et de test. Pour les environnements de production nécessitant une haute sécurité, envisagez d'utiliser AES-256 ou d'autres algorithmes de chiffrement modernes. Ne partagez jamais vos clés de chiffrement.
À propos du chiffrement CAST5 (CAST-128)
CAST5 (également appelé CAST-128) a été conçu par Carlisle Adams et Stafford Tavares chez Nortel (Northern Telecom) et publié en tant que RFC 2144 en 1996. Le nom CAST vient des initiales des concepteurs : Carlisle Adams Stafford Tavares. Il utilise un bloc de 64 bits avec des longueurs de clé variables de 40 à 128 bits par pas de 8 bits, et a été sélectionné comme chiffrement symétrique obligatoire dans OpenPGP (RFC 4880) et comme chiffrement en bloc par défaut dans GnuPG 1.x jusqu'à la version 1.4.
CAST5 emploie trois fonctions de round distinctes — Type 1 (sortie XOR), Type 2 (sortie soustraction) et Type 3 (sortie addition) — sélectionnant à chaque tour différentes paires de huit S-boxes à sortie 32 bits dans un ordre fixe. Les clés de 80 bits ou moins utilisent 12 rounds ; les clés plus longues en utilisent 16. Les huit S-boxes ont été construites à l'aide de fonctions booléennes courbées, conférant à CAST5 des bornes de résistance prouvables contre la cryptanalyse différentielle, formellement établies dès la conception.
Caractéristiques principales
- Longueur de clé variable : 40–128 bits par pas de 8 bits — supporte simultanément le niveau 40 bits soumis aux restrictions d'exportation américaines des années 1990 et la pleine résistance 128 bits
- Trois fonctions de round distinctes (Type 1 XOR / Type 2 Soustraction / Type 3 Addition) alternant par tour, chacune sélectionnant une paire différente des huit S-boxes 32×8 bits
- 12 rounds pour les clés ≤ 80 bits ; 16 rounds pour les clés de 81–128 bits — compensation explicite du nombre de tours pour compenser l'entropie réduite des courtes clés
- Algorithme libre de droits sans restrictions de brevet
Modes de chiffrement
- CBC: Cipher Block Chaining — chaque bloc CAST5 de 64 bits est XORé avec le chiffrement précédent avant la séquence de 12 ou 16 fonctions de round Feistel. Remarque : OpenPGP (RFC 4880 §13.9) mandate CFB-avec-resync plutôt que CBC pour le chiffrement en bloc ; CBC est le bon mode lors de l'utilisation de CAST5 dans SSH2 (CAST128-CBC, RFC 4253).
- ECB: Electronic Codebook — chaque bloc CAST5 de 64 bits est traité indépendamment par tous les 12 ou 16 rounds. Des blocs de texte clair identiques produisent toujours un chiffrement identique, révélant les motifs de répétition. À une largeur de bloc de 64 bits, une collision born-anniversaire a 50% de probabilité après ~2³² blocs (~32 Go chiffrés sous une seule clé) — éviter ECB entièrement.
- CTR: Mode compteur - Convertit le chiffrement par blocs en chiffrement par flux, permet le traitement parallèle
- CFB: Cipher Feedback — le mode mandaté par OpenPGP (RFC 4880 §13.9) : CAST5 en CFB 64 bits avec une étape de resynchronisation de deux blocs au début du message. Ce CFB-avec-resync spécifique à OpenPGP permet aux destinataires de récupérer la synchronisation et de détecter les blocs initiaux altérés.
- OFB: Output Feedback — la fonction de bloc CAST5 re-chiffre itérativement l'IV pour générer un flux de clé indépendant du texte clair. Avec un IV de 64 bits, la période statistique du keystream est bornée par le problème d'anniversaire à ~2³² cycles ; pour les flux volumineux ou de longue durée, actualiser périodiquement l'IV.
- RAW: Mode bloc unique - Chiffrement direct sans chaînage, pour un seul bloc de 8 octets uniquement
Comparaison des algorithmes
| Algorithme | Longueur de clé | Taille de bloc | Sécurité | Vitesse |
|---|---|---|---|---|
| CAST5 (CAST-128) | 40-128 bits | 64 bits | Bonne | Rapide |
| Blowfish | 32-448 bits | 64 bits | Bonne | Rapide |
| AES | 128/192/256 bits | 128 bits | Excellente | Rapide |
| Twofish | 128/192/256 bits | 128 bits | Excellente | Rapide |
Considérations de sécurité
- Aucune attaque pratique à tout-round n'existe contre CAST5-128 ; la meilleure cryptanalyse publiée n'atteint que 6 des 16 rounds. Cependant, CAST5 avec des clés de 40 bits (grade exportation) est trivialement cassé par force brute — ne jamais utiliser des clés inférieures à 128 bits dans tout déploiement moderne.
- La taille de bloc de 64 bits est la principale limitation de CAST5 : en mode CBC ou CFB, une fuite statistique born-anniversaire apparaît après ~2³² blocs (~32 Go par clé). OpenPGP le compense avec des clés de session par message, mais les utilisations en streaming longue durée nécessitent une rotation des clés pour les grands volumes.
- OpenPGP (RFC 4880 §9.2) désigne CAST5 comme algorithme MUST-implement pour la compatibilité avec la base installée de clients GnuPG 1.x et PGP 8.x. Les nouvelles implémentations DEVRAIENT préférer AES-256 pour les messages fraîchement générés — CAST5 est une exigence côté réception, pas un défaut recommandé pour les nouvelles sorties.
- Pour toutes les nouvelles conceptions, remplacer CAST5 par AES-128-CBC ou AES-256-GCM. La limite du bloc de 64 bits plutôt que toute faiblesse cryptanalytique est le principal moteur de migration ; CAST5-128 lui-même reste incassé lorsqu'il est utilisé avec des clés suffisamment grandes et une gestion IV correcte.
Cas d'utilisation courants
- Compatibilité de chiffrement de courrier et de fichiers OpenPGP : RFC 4880 §9.2 mandate CAST5 dans toutes les implémentations OpenPGP conformes, nécessaire pour l'interopérabilité avec la base installée d'utilisateurs GnuPG 1.x et PGP 8.x n'ayant pas mis à jour leurs préférences de chiffrement
- Chiffrement symétrique GnuPG 1.x : GnuPG 1.0 à 1.4.x utilisait CAST5 par défaut pour le chiffrement à clé symétrique (phrase secrète). Déchiffrer des fichiers ou messages signés de ces versions GnuPG nécessite CAST5, sauf si l'expéditeur a explicitement sélectionné AES
- Chiffrement de transport SSH2 CAST128-CBC : RFC 4253 définit CAST128-CBC comme chiffrement SSH SHOULD-support. Les serveurs SSH anciens et appareils embarqués à firmware contraint peuvent encore négocier CAST128-CBC si les suites AES sont indisponibles
- Décryptage forensique et d'archivage : les courriers chiffrés PGP, archives disque et ensembles de sauvegardes de la fin des années 1990 au milieu des années 2000 utilisent couramment CAST5. La récupération de données nécessite CAST5 même si les systèmes actuels ne génèrent plus de contenu CAST5
Références
Outils Connexes
Chiffrement/Déchiffrement Blowfish
Chiffrement par blocs symétrique rapide conçu par Bruce Schneier, avec longueur de clé variable (32-448 bits)
Chiffrement/Déchiffrement Twofish
Finaliste AES, chiffrement symétrique à blocs de 128 bits et clés de 128/192/256 bits, conçu par Bruce Schneier
Cryptage/Décryptage AES
Crypter et décrypter du texte en toute sécurité à l'aide de l'algorithme AES