Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 pierre-louis.cayrel@xlim.fr Licence professionnelle Administrateur de Réseaux et de Bases de Données IUT Limoges
Sommaire Système de chiffrement par blocs Les modes de chiffrement Le DES L AES
Classes de chiffrements symétriques Chiffrement symétrique par flot Traitement à la volée ; chiffrement à la one-time pad : M = n et avec une petite clé K, générer K / K = n Sécurité : Substitution rapide ( typiquement) Générateur pseudo aléatoire : impossible à prédire Kerckhoffs : la sécurité repose sur le générateur de clé! Ex : LFSR, RC4 (Rivest), E0[Bluetooth],A5/1[GSM]
Système de chiffrement par blocs
Définition du chiffrement par blocs On désigne par chiffrement par blocs (block-cipher en anglais), tout système de chiffrement (symétrique) dans lequel le message clair est découpé en blocs d une taille fixée, et chacun de ces blocs est chiffré. La longueur n des blocs et la taille l des clés sont deux caractéristiques des systèmes de chiffrement par blocs.
Découpage en blocs Le message m à chiffrer est découpé en blocs de n bits. m = m 1 m 2...m k. Si la longueur du message n est pas un multiple de la longueur d un bloc, on le complète : c est le bourrage ou padding en anglais. Plusieurs techniques de bourrage existent.
Une technique de bourrage Une façon de bourrer (RFC2040) consiste à compléter le dernier bloc par autant d octets que nécessaire, chaque octet ayant pour valeur le nombre d octets ajoutés. Par exemple, s il manque trois octets au message m = o 1 o 2 o 3 o 4 o 5 pour obtenir un bloc de huit octets, on ajoute trois octets égaux à 3 o 1 o 2 o 3 o 4 o 5 03 03 03 S il se trouve que la taille de la donnée à chiffrer est un multiple de la taille d un bloc, on ajoute un bloc entier dont chaque octet a pour valeur la taille en octet d un bloc. Par exemple, pour des blocs de huit octets, on ajoute le bloc 08 08 08 08 08 08 08 08
Chiffrement itératif Tous les sytèmes de chiffrement par blocs actuels suivent le schéma suivant Le bloc clair m est transformé r fois successivement à l aide d une fonction f qui dépend d une sous-clé k i. Le chiffré c est le résultat de la dernière transformation. c = f (...f (f (m, k 1 ), k 2 ),...), k r ). r est appelé nombre de tours ou de rondes.
Classes de chiffrements symétriques (2) Chiffrement symétrique par bloc (bloc cypher) M = M 1 M 2... M s : s blocs de r = n s bits Sécurité : Pour chaque bloc : Ci = E K (M i ) dépend de E Pour chaque message : dépend aussi du mode de chiffrement! Ex : DES, AES, IDEA, BLOWFISH, RC6
Les modes de chiffrement
Objectifs des modes opératoires Ils ne concernent que le chiffrement par bloc. Ils doivent masquer les blocs clairs identiques. Deux messages identiques chiffrés avec la même clé ne donnent pas les mêmes chiffrés.
Les modes de chiffrement : Le mode ECB Mode ECB (Electronic Code Book) Chiffrement : chaque bloc clair mi est chiffré indépendamment et donne un bloc chiffré c i = E k (m i ). Déchiffrement : chaque chiffré est déchiffré indépendamment pour donner le clair correspondant m i = D k (c i ). Conséquence : deux blocs clairs identiques donnent toujours le même bloc chiffré pour une clé k fixée. Aucune sécurité, pas d utilisation
Les modes de chiffrement : Le mode CBC Mode CBC (Cipher Bloc Chaining) Chiffrement : un vecteur d initialisation IV est généré aléatoirement. c i = E k (m i c i 1 ). Le vecteur IV est transmis avec les blocs chiffrés. Déchiffrement : mi = D k (c i ) c i 1. Conséquence : deux blocs clairs identiques chiffrés différemment. Mode le plus utilisé
Les modes de chiffrement : Le mode OFB Mode OFB (Output FeedBack) Chiffrement : un vecteur d initialisation IV est généré aléatoirement. c i = r i m i, où r 0 = IV et pour i 1, r i = E k (r i 1 ). Le vecteur IV est transmis avec les blocs chiffrés. Déchiffrement : mi = c i r i. Conséquence : deux blocs clairs identiques chiffrés différemment. Remarque : c est du chiffrement à flot. Totalement symétrique Moins de cablage Utilisé dans les satellites
Les modes de chiffrement : Le mode CFB Mode CFB (Cipher FeedBack) Chiffrement : un vecteur d initialisation IV est généré aléatoirement. c i = r i m i, où r 1 = E k (IV ) et pour i 2, r i = E k (m i 1 r i 1 ). Le vecteur IV est transmis avec les blocs chiffrés. Déchiffrement : mi = c i r i. Conséquence : deux blocs clairs identiques chiffrés différemment. Moins sûr, parfois plus rapide Utilisé dans les réseaux
Les modes de chiffrement : Le mode CTR Mode CTR (CounTeR mode) Chiffrement : ci = r i m i, où r 1 = E k (cpt) et pour i 2, r i = E k (cpt + i 1). Déchiffrement : mi = c i r i. Conséquence : deux blocs clairs identiques chiffrés différemment.
Le DES Partie tirée en partie de www.commentcamarche.net/crypto/des.php3
Les standards de chiffrement par bloc D.E.S (Data Encryption Standard) - 1977 Standard américain FIPS 46-2 de 64 bits Clé de 64 bits dont 8 bit de parité : 56 bits effectifs (plaidé par la NSA) Diversification en 16 sous-clés de 48 bits Structure générale : Permutation initiale IP 16 rondes de Feistel : L i = R i 1 ; R i = L i 1 f (R i 1, K i ) Permutation finale IP 1
Les grandes lignes de l algorithme sont les suivantes Fractionnement du texte en blocs de 64 bits (8 octets) ; Permutation initiale des blocs ; Découpage des blocs en deux parties : gauche et droite, nommées G et D ; Etapes de permutation et de substitution répétées 16 fois (appelées rondes) ; Recollement des parties gauche et droite puis permutation initiale inverse.
L algorithme du DES
Permutation initiale Dans un premier temps, chaque bit d un bloc est soumis à la permutation initiale, pouvant être représentée par la matrice de permutation initiale (notée PI) suivante : PI 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 Cette matrice de permutation indique, en parcourant la matrice de gauche à droite puis de haut en bas, que le 58ème bit du bloc de texte de 64 bits se retrouve en première position, le 50ème en seconde position et ainsi de suite.
Scindement en blocs de 32 bits Une fois la permutation initiale réalisée, le bloc de 64 bits est scindé en deux blocs de 32 bits, notés respectivement G et D (pour gauche et droite). On note G 0 et D 0 l état initial de ces deux blocs : G 0 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 D 0 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7
Rondes Les blocs G n et D n sont soumis à un ensemble de transformation itératives appelées rondes, explicitées dans ce schéma, et dont les détails sont donnés plus bas :
Fonction d expansion Les 32 bits du bloc D 0 sont étendus à 48 bits grâce à une table (matrice) appelé table d expansion (notée E), dans laquelle les 48 bits sont mélangés et 16 d entre eux sont dupliqués : E 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 Ainsi, le dernier bit de D 0 (c est-à-dire le 7ème bit du bloc d origine) devient le premier, le premier devient le second,... De plus, les bits 1,4,5,8,9,12,13,16,17,20,21,24,25,28 et 29 de D 0 (respectivement 57, 33, 25, l, 59, 35, 27, 3, 6l, 37, 29, 5, 63, 39, 31 et 7 du bloc d origine) sont dupliqués et disséminés dans la matrice.
OU exclusif avec la clé La matrice résultante de 48 bits est appelée D 0 ou bien E[D 0]. L algorithme DES procède ensuite à un OU exclusif entre la première clé K 1 et E[D 0 ]. Le résultat de ce OU exclusif est une matrice de 48 bits que nous appelerons D 0 par commodité (il ne s agit pas du D 0 de départ!).
Fonction de substitution D 0 est ensuite scindé en 8 blocs de 6 bits, noté D 0i. Chacun de ces blocs passe par des fonctions de sélection (appelées parfois boîtes de substitution ou fonctions de compressionou encore boîtes S (S-box)), notées généralement S i. Les premiers et derniers bits de chaque D 0i détermine (en binaire) la ligne de la fonction de sélection, les autres bits (respectivement 2, 3, 4 et 5) déterminent la colonne. La sélection de la ligne se faisant sur deux bits, il y a 4 possibilités (0,1,2,3). La sélection de la colonne se faisant sur 4 bits, il y a 16 possibilités (0 à 15). Grâce à cette information, la fonction de sélection sélectionne une valeur codée sur 4 bits.
Fonction de substitution Voici la première fonction de substitution, représentée par une matrice de 4 par 16 : 0 1 2 3 4 5 6 7 8 9 10 0 14 4 13 1 2 15 11 8 3 10 6 1 0 15 7 4 14 2 13 1 10 6 12 2 4 1 14 8 13 6 2 11 15 12 9 3 15 12 8 2 4 9 1 7 5 11 3 11 12 13 14 15 0 12 5 9 0 7 1 11 9 5 3 8 2 7 3 10 5 0 3 14 10 0 6 13
Fonction de substitution Soit D 01 égal à 101110. Les premiers et derniers bits donnent 10, c est-à-dire 2 en binaire. Les bits 2,3,4 et 5 donnent 0111, soit 7 en binaire. Le résultat de la fonction de sélection est donc la valeur situé à la ligne numéro 2, dans la colonne numéro 7. Il s agit de la valeur 11, soit en binaire 1011. Chacun des 8 blocs de 6 bits est passé dans la fonction de sélection correspondante, ce qui donne en sortie 8 valeurs de 4 bits chacune.
Permutation Le bloc de 32 bits obtenu est enfin soumis à une permutation P dont voici la table : P 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
Caractéristiques des boîtes S de DES Propriétés cryptanalytiques intéressantes Non linéaire (substitution différente de César ou Vernam) : pas d attaque simple Spécialement conçues pour contrer la cryptanalyse différentielle [Coppersmith 94] Même de très petites modifications des S -box peuvent affaiblir considérablement le chiffre A la base de controverse autour de DES cf secret entourant la génération de {Si } 1 i 8 et de P
OU Exclusif et Itération L ensemble de ces résultats en sortie de P est soumis à un OU Exclusif avec le G 0 de départ (comme indiqué sur le premier schéma) pour donner D 1, tandis que le D 0 initial donne G 1. L ensemble des étapes précédentes (rondes) est réitéré 16 fois.
Permutation initiale inverse A la fin des itérations, les deux blocs G 16 et D 16 sont recollés, puis soumis à la permutation initiale inverse : PI 1 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25
Génération des clés Etant donné que l algorithme du DES présenté ci-dessus est public, toute la sécurité repose sur la complexité des clés de chiffrement. L algorithme ci-après montre comment obtenir à partir d une clé de 64 bits (composé de 64 caractères alphanumériques quelconques) 8 clés diversifiées de 48 bits chacune servant dans l algorithme du DES :
Génération des clés
Génération des clés Dans un premier temps les bits de parité de la clé sont éliminés afin d obtenir une clé d une longueur utile de 56 bits. La première étape consiste en une permutation notée CP 1 dont la matrice est présentée ci-dessous : 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4
Génération des clés Cette matrice peut en fait s écrire sous la forme de deux matrice G i et D i (pour gauche et droite) composées chacune de 28 bits : 57 49 41 33 25 17 9 63 55 47 39 31 23 15 1 58 50 42 34 26 18 7 62 54 46 38 30 22 10 2 59 51 43 35 27 14 6 61 53 45 37 29 19 11 3 60 52 44 36 21 13 5 28 20 12 4 On note G 0 et D 0 le résultat de cette première permutation. Ces deux blocs subissent ensuite une rotation à gauche, de telles façons que les bits en seconde position prennent la première position, ceux en troisième position la seconde,... Les bits en première position passent en dernière position.
Génération des clés Les 2 blocs de 28 bits sont ensuite regroupés en un bloc de 56 bits. Celui-ci passe par une permutation, notée CP 2, fournissant en sortie un bloc de 48 bits, représentant la clé K i. 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 Des itérations de l algorithme permettent de donner les 16 clés K 1 à K 16 utilisées dans l algortihme du DES. 1 2 4 6 8 10 12 14 15 17 19 21 23 25 27 28
Caractéristiques de DES Après 5 tours, chaque bit du chiffré dépend de chaque bit du message en clair et de chaque bit de la clef. Résultat du chiffrement statistiquement plat Quelques exemples d utilsation : Cartes de crédit : UEPS (Universal Electronic Payment System) Protocole d authentification sur réseaux : Kerberos Messagerie éléctronique : PEM (Privacy-Enhanced Mail) Implémentation hardware aisée Opération facilement implémentables Puce spécifique bas de gamme1 ( 60euros) : 190Mo/s. Propriété de completion et clés faibles (pas une menace) : DES K (M) = C DES K (M ) = C
Cryptanalyse de DES Précalcul exhaustif Stocker le résultat de DES sur un texte choisi K Recherche exhaustive Chiffrer un texte connu jusqu à retrouver le chiffrement permet de connaître la clef Assez peu de progrès au début - attaques sur 8/16 rondes (1975-1990) Cryptanalyse différentielle (16 rondes) [Biham-Shamir 1990] Etude des différences de chiffrement entre des textes similaires Permet de sélectionner des clefs probables Cryptanalyse linéaire (16 rondes) [Matsui 1993] Utiliser des relations linéaires pour interpoler des bits de la clef
Complexité et coût des attaques sur DES Méthode d attaque Texte connu Texte choisi Stock. Calculs Précalcul exhaust. 1 2 56 1 tableau Rech. exhaust. 1 2 55 Crypta. diff. 2 47 puis 2 36 Text. 2 47 puis 2 36 Crypta. lin. 2 55 2 47 Text. 2 47
Coût des attaques sur DES en 1996 Attaquant Budget Outil Clé 56 bits Hacker 300 euro Soft circuit 38 ans PME 7500 euro Circuit 18 mois Gde Entreprise 225 Keuro Circuit ASIC 19 j. 3 h Multinationale 7,5 Meuro ASIC 6 min Gouvernement 225 Meuro ASIC 12 s
Et aujourd hui? Problème du DES : clé devenu trop petite! cassable en 8h avec 100 PCs (2 56 7, 2 10 16 ) 7, 2 10 16 10 9 3600 24 100 8heures Solution 1 : double DES? C = E2(E 1(M))etM = D 1(D 2(C)) Pb : cassage effectif le rend seulement 56 fois plus difficile que DES et non 256 fois Solution 2 : triple DES? 3 clefs : C = E1(E 2(E 3(M))) et M = D 3(D 2(D 1(C))) 2 clefs : C = E1(D 2(E 1(M))) et M = D 1(E 2(D 1(C))) retombe sur DES si K 2 == K 1 Clef moins longue et sécurité effective identique Attaque similaire double DES clé effective 112 bits CC : Triple DES double seulement la sécurité!
TDES, une alternative au DES En 1990 Eli Biham et Adi Shamir ont mis au point la cryptanalyse différentielle qui recherche des paires de texte en clair et des paires de texte chiffrées. Cette méthode marche jusqu à un nombre de rondes inférieur à 15, or un nombre de 16 rondes sont présentes dans l algorithme présenté ci-dessus. D autre part, même si une clé de 56 bits donne un nombre énorme de possibilités, de nombreux processeurs permettent de calculer plus de 106 clés par seconde, ainsi, utilisés parallèlement sur un très grand nombre de machines, il devient possible pour un grand organisme (un Etat par exemple) de trouver la bonne clé... Une solution à court terme consiste à chaîner trois chiffrement DES à l aide de deux clés de 56 bits (ce qui équivait à une clé de 112 bits). Ce procédé est appelé Triple DES, noté TDES (parfois 3DES ou 3-DES).
Le Triple-DES Le TDES permet d augmenter significativement la sécurité du DES, toutefois il a l inconvénient majeur de demander également plus de ressources pour les chiffrement et le déchiffrement. On distingue habituellement plusieurs types de chiffrement triple DES : DES-EEE3 : 3 chiffrements DES avec 3 clés différentes ; DES-EDE3 : une clé différente pour chacune des 3 opérations DES (chiffrement, déchiffrement, chiffrement) ; DES-EEE2 et DES-EDE2 : une clé différente pour la seconde opération (déchiffrement).
L AES Partie tirée en partie de http://fr.wikipedia.org/wiki/aes
RijmenDaemen
Advanced Encryption Standard - AES (2000) 1996 : Evaluation DES Il faut un remplacant! 1997 : Appel à candidature international 1. Rijndael (Daemen,Rijmen BE) 10/12/14 rondes Bloc : 128 bits ; Clé : 128/192/156 bits 2. Serpent (Anderson,Biham,Knudsen UK) 32 rondes Bloc : 128 bits ; Clé : 128/192/156 bits (en fait : n = 8x [0, 2048]) 3. Twofish (Schneier et al US) 16 rondes Bloc : 128 bits ; Clé : 128/192/156 bits 4. RC6 (Rivest US) 20 rondes Bloc : 128 bits ; Clé : 128/192/156 bits (en fait : n = 8x [0, 2048]) 5. MARS (Coppersmith/IBM US) 16 rondes Bloc : 128 bits ; Clé : 128!448 bits (128+32k bits) 2000 : Standard NIST : AES-Rijndael
Les conventions dans AES Entrée - Sortie : blocs de 128 bits (N b = 4) Clé : 128, 192 ou 256 bits (N k = 4, 6 ou 8) Nb rondes N r : dépend de N b et N k (N r {10, 12, 14}) 1 octet = élément du corps fini à 256 éléments F 256
AES-Rijndael Standart NIST 2000 ; Bloc : 128 bits ; Clé : 128/192/256 bits Structure générale : AddRoundKey Addition initiale de clé Nr 1 rondes, chacune constituées de 4 étapes : SubBytes : substitution non-linéaire via S-Box. ShiftRows : transposition matricielle par décalage à gauche MixColumns : produit matriciel sur colonne AddRoundKey Addition avec les octets des sous-clé FinalRound : ronde finale (sans MixColumns)
Etape SubBytes Substitution de chaque élément de la matrice via une SBox SBox dérive de la fontion inverse t : a a 1 sur F 256. fonction bien connue pour sa non-linéarité on combine avec une transformation affine inversible f : SBox[a] = f (t(a)) a F 256 SBox 1 [a] = t 1 (f 1 (a)) = t(f 1 (a)) a F 256
Etape Shiftrows Opération sur les lignes de matrice La ligne i est décalé de Ci éléments à gauche Le nombre de décalage dépend de Nb (Rijndael) : Opération inverse : la ligne i est décalée à droite de C i éléments.
Etape MixColumns Operation sur les colonnes de la matrice Considéré un polynôme a(x) de degré 3 dans F256[X ] Réalise l opération : (03x3 + x2 + x + 02) a(x) mod (x4 + 1) Bonne propriétés de diffusion cryptographique
Etape MixColumns 1 idem mais en utilisant la multiplication par d(x) = c 1 (x) (03x3 + x2 + x + 02) d(x) = 01 mod (x 4 + 1) d(x) = 0Bx3 + 0Dx2 + 09x + 0E
Etape MixColumns 1 Addition matricielle dans F 256 avec une sous-clé
Sécurité de l AES Propriétés cryptanalytiques SBox : sans point fixe ni opposé, ni inverse ShiftRow diffuse les données en séparant les consécutifs MixColumn : chaque bit de sortie dépend de tous les bits en entrée (code correcteur linéaire sur chaque colonne) Implémentations simple efficace FPGA : jusqu à 21.54 Go/s pour le chiffrement Cryptanalyse : Aucune attaque significative révélée MAIS seulement 5 ans de recherche (to be continued)
Quelques applications utilisant Rijndael SONET (Synchronous Optical NETwork) Routeurs Internet Switch Ethernet ATM (Asynchronous Transfert Mode) Communications Sattelites VPN (Réseaux privés virtuels) Téléphonie mobile Transactions électroniques
Projets de standardisation/recommendations NIST(National Institute of Standards and Technology) (US00) AES-Rijndael (Bloc : 128 bits ; Clé : 128/192/256 bits) 25 cycles/octet sur un PIII/Linux. KICS (Korean Information and Communication Standards) (Corée01) SEED (Bloc : 128 bits ; Clé : 128 bits) 45 cycles/octet sur un PIII. ARIA (proposition) (Bloc : 128 bits ; Clé : 128 bits) 37 cycles/octet sur un PIII.
Projets de standardisation/recommendations (2) NESSIE (New European Schemes for Signatures, Integrity and Encryption)(EU03) Chiffrement symétriques par bloc : MISTY1 (Bloc : 64 bits ; Clé : 128 bits) 47 cycles/octet sur un PIII/Linux. AES-Rijndael Camellia (Bloc : 128 bits ; Clé : 128/192/256 bits) 35 cycles/octet sur un PIII/Linux. SHACAL-2 (Bloc : 256 bits ; Clé : 512 bits) 44 cycles/octet sur un PIII/Linux. Fonctions de hachage à sens unique Whirlpool SHA-256, SHA-384 et SHA-512 (clairvoyant! cf SHA-1) Chiffrement asymétriques : PSEC-KEM, RSA-KEM, ACE-KEM Signature électronique : RSA-PSS, ECDSA, SFLASH
Projets de standardisation/recommendations (3) CRYPTREC (Cryptography Research and Evaluation Committee) (Jap03) Chiffrement symétrique (blocs : 64 bits, clé 128 bits) : CipherUnicorn-E, Hierocrypt-L1, MISTY1, Triple DES Chiffrement symétrique (blocs : 128 bits, clé 128 bits) : AES, Camelia, CipherUnicorn-A, Hierocrypt-3, SC2000 Chiffrement symetrique par flot : Mugi, Multi-S01, RC4 Fonctions de hachage à sens unique RIPEMD-160, SHA-1, SHA-256/384/512
Principe général de la cryptanalyse statistique sur les chiffrements par bloc 1. Etude d une version réduite en ronde 2. Etude la propagation de propriété non aléatoire à travers les rondes 3. Etre capable de détecter un chiffré d une permutation aléatoire 4. Ajouter quelques roundes en début/fin tout en assurant la découverte de la clé 5. Compromis entre compléxité des données et temps d analyse
Illustration sur des études de cas FEAL-4 (Fast Data Encipherment Algorithm - Miyagushi 87) 4 tours, blocs et clé de 64 bits 88 : 100 à 10000 textes choisis 90 : 20 textes choisis 92 : 5 textes connus FEAL-8/FEAL-N/FEAL-NX (Miyagushi 90) 90 : 20.000 textes choisis (Découverte cryptanalyse différentielle!) 92 : 215 textes connus (Découverte cryptanalyse linéaire!) 96 : 12 textes choisis IDEA (8 rondes) (Lai, Massey 91) Blocs de 64 bits, clé de 128 bits, 8 rondes 90 : PES ; 91 : PES cassé IPES=IDEA 93 : Cassage sur 2 rondes 97 : Cassage sur 3 rondes 2003 : Cassage sur 5 rondes (2 24 textes clairs)