Sécurité des chiffres symétriques en bloc Bruno MARTIN, Université de Nice - Sophia Antipolis Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 1
Rappels de probabilités Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 2
Probabilités Rappels sur les probabilités Ensemble fondamental : S ensemble fini dont les éléments sont des événements élémentaires assimilables à la réalisation d une expérience Evénement : sous-ensemble de S ; est l événement vide et S l événement certain Deux événements sont en exclusion mutuelle ssi leur intersection est vide Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 3
Distribution de probabilités, V.A. X S [0, 1] fonction = distribution de probabilités si : 1 événement A X, Pr(A) 0 2 si A B =, Pr(A B) = Pr(A) + Pr(B) 3 Pr(S)=1 X : S R une V.A. discrète si l événement x X est l ensemble {s S : X (s) = x} ; la proba associée est : Pr(X = x) = s S:X (s)=x Pr(s) Exemple Une paire de D6, V.A. = maximum des valeurs. Pr(X = 3) = 5 36 Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 4
Probabilité conditionnelle et indépendance Pr(A B) = Pr(A B) PR(B) A, B 2 événements indép. ssi Pr(A B) = Pr(A).Pr(B) ; si Pr(B) 0, A, B indép. Pr(A B) = Pr(A) Formule de Bayes : Pr(A B) = Pr(B A) = Pr(B)Pr(A B) = Pr(A)Pr(B A) et si Pr(B) 0, on a Pr(A B) = Pr(A)Pr(B A) Pr(B) Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 5
Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 6
P 1... clair... P 16 mélange avec la clé de tour S 11 S 12 S 13 S 14 tour 1 mélange avec la clé de tour S 21 S 22 S 23 S 24 tour 2 mélange avec la clé de tour S 31 S 32 S 33 S 34 tour 3 mélange avec la clé de tour tour 4 S 41 S 42 S 43 S 44 mélange avec la clé de tour C 1... crypto... C 16 Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 7
Présentation du chiffre utilisé Réseau de substitution/permutation simplifié. Entrée : 16 bits : fonctionnement en 4 tours. Chaque tour consiste en un mélange avec la clé : xor entre la clé de tour et le bloc d entrée du tour. Opération répétée à l issue du dernier tour. une substitution. 16 bits scindés en 4 sous-blocs qui entrent dans 4 boîtes-s identiques à 4 4. (MSB à gauche) in 0 1 2 3 4 5 6 7 8 9 A B C D E F out E 4 D 1 2 F B 8 3 A 6 C 5 9 0 7 une transposition définie par la i e sortie de la j e boîte-s est reliée à la j e entrée de la i e boîte-s Déchiffrement obtenu en faisant «remonter» le cryptogramme. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 8
0 0000 1110 e 8 1000 0011 3 1 0001 0100 4 9 1001 1010 a 2 0010 1101 d a 1010 0110 6 3 0011 0001 1 b 1011 1100 c 4 0100 0010 2 c 1100 0101 5 5 0101 1111 f d 1101 1001 9 6 0110 1011 b e 1110 0000 0 7 0111 1000 8 f 1111 0111 7 Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 9
Bref historique Inventée à la fin des années 1980 par Biham et Shamir [1] avec des applications -peu fructueuses- à la cryptanalyse de DES. DES conçu pour résister à la cryptanalyse différentielle? chiffres de la même époque vulnérables, p.e. FEAL. Présentation de la cryptanalyse différentielle de [2]. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 10
Principe de l attaque Exploite proba d apparition d occurrences de différences entre des clairs et d occurrences de différences entre des chiffrés en entrée du dernier tour du chiffre. Entrées X = [X 1... X n ] sorties Y = [Y 1... Y n ] ; on étudie X = X X (2 entrées) et Y = Y Y (2 sorties). Chiffre idéal : Pr( Y X ) doit valoir 1/2 n. Cryptanalyse exploite les apparitions d un Y particulier pour un certain X avec forte proba p D. ( X, Y ) = différentiel. Attaque à clair choisi. Choisir des paires d entrées X, X = X tq le X considéré mène avec une forte proba à un Y particulier. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 11
Principe de l attaque Trouver les ( X, Y ) les plus probables examiner les propriétés des boîtes-s et construire les caractéristiques différentielles considérer les X et Y des boîtes-s pour trouver les plus fréquentes combiner l information sur les boîtes-s pour construire une approximation globale Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 12
Analyse d une boîte-s -1- On examine tous les ( X, Y ) et on cherche la proba d apparition de Y étant donné X. Revient à énumérer 16 valeurs pour X, X étant fixé pour la valeur de X recherchée. Exemple on cherche les valeurs de Y pour chaque paire (X, X X ) pour les valeurs X = 1011, 1000, 0100 (resp en hexa B, 8 et 4). Celles qui apparaîssent avec le plus d écart sont Y = 0010 pour X = 1011 (8/16), Y = 1011 pour X = 1000 (4/16) et Y = 1011 pour X = 0100 (4/16). Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 13
Exemple Rappels sur les probabilités X Y Y X = 1011 X = 1000 X = 0100 0000 1110 0010 1101 1100 0001 0100 0010 1110 1011 0010 1101 0111 0101 0110 0011 0001 0010 1011 1001 0100 0010 0101 0111 1100 0101 1111 1111 0110 1011 0110 1011 0010 1011 0110 0111 1000 1101 1111 1001 1000 0011 0010 1101 0110 1001 1010 0111 1110 0011 1010 0110 0010 0101 0110 1011 1100 0010 1011 1011 1100 0101 1101 0111 0110 1101 1001 0010 0110 0011 1110 0000 1111 1011 0110 1111 0111 0101 1111 1011 Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 14
Analyse d une boîte-s 2 Boîte-S parfaite, toutes ces proba = 1/16. Construire table des différentiels qui résume les possibilités. Chaque case représente le nombre d occurrences de Y étant donnée X. Valeur max pour X =B et Y =2. Autrement dit, la proba pour que Y =2 pour une paire d entrées dont la différence vaut X =B est de 1/2. Le minimum est 0 atteint pour un grand nombre de paires. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 15
Table des différentiels Y > 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 2 0 0 0 2 0 2 4 0 4 2 0 0 2 0 0 0 2 0 6 2 2 0 2 0 0 0 0 2 0 3 0 0 2 0 2 0 0 0 0 4 2 0 2 0 0 4 4 0 0 0 2 0 0 6 0 0 2 0 4 2 0 0 0 5 0 4 0 0 0 2 2 0 0 0 4 0 2 0 0 2 6 0 0 0 4 0 4 0 0 0 0 0 0 2 2 2 2 7 0 0 2 2 2 0 2 0 0 2 2 0 0 0 0 4 8 0 0 0 0 0 0 2 2 0 0 0 4 0 4 2 2 9 0 2 0 0 2 0 0 4 2 0 2 2 2 0 0 0 A 0 2 2 0 0 0 0 0 6 0 0 2 0 0 4 0 B 0 0 8 0 0 2 0 2 0 0 0 0 0 2 0 2 C 0 2 0 0 2 2 2 0 0 0 0 2 0 6 0 0 D 0 4 0 0 0 0 0 4 2 0 2 0 2 0 2 0 E 0 0 2 4 2 0 0 0 6 0 0 0 0 0 2 0 F 0 2 0 0 6 0 0 0 0 4 0 2 0 0 2 0 Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 16
Propriétés Rappels sur les probabilités La somme de tous les éléments par ligne ou colonne vaut 2 n = 16. Tous les éléments sont pairs (la différence est symétrique). Si X =0, il doit en être de même pour Y. Si la boîte-s était parfaite, tous les éléments du tableau devraient être égaux à 1, ce qui n est pas possible. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 17
Influence de la clé sur un différentiel W 1 W 2 W 3 W 4 K 1 K2 K3 K 4 X 1 X 2 X 3 X 4 4x4 boîte-s Y 1 Y 2 Y 3 Y 4 X = entrée boîte-s (on oublie l influence de la clé) et Y sortie. Si on prend en compte l influence de la clé à l entrée, Il faut considérer W comme étant l entrée de la boîte-s de clé K. Pour un différentiel W i = W i W i on a W i W i = (X i K i ) (X i K i ) = X i X I = X car K i K i = 0. Les bits de la clé n ont pas d influence sur les différentiels. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 18
Construire la caractéristique différentielle du chiffre Une fois obtenue la table des différentiels des boîtes-s, il faut construire la caractéristique différentielle du chiffre par concaténation des paires de différences adéquates entre les boîtes-s. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 19
Exemple Rappels sur les probabilités On utilise les paires de différences suivantes : S 12 : X = B Y = 2 proba 8/16 S 23 : X = 4 Y = 6 proba 6/16 S 32 : X = 2 Y = 5 proba 6/16 S 33 : X = 2 Y = 5 proba 6/16 La différence sur l entrée du chiffre est P = [0000 1011 0000 0000] et, à l entrée du dernier tour, U 4 = [0000 0110 0000 0110] avec comme proba (6/16) 2 étant donné U 3 qui a comme proba 6/16 étant donné U 2 de proba 8/16 étant donné P. Sachant qu on a entré P, la proba d avoir U 4 = [0000 0110 0000 0110] (1) est le produit des probas précédentes : (6/16) 2 (6/16)(8/16) = 27/1024. (On suppose l indépendance). Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 20
!P=[0000 1011 0000 0000] S 11 S 12 S 13 S 14 tour 1!Y=[0010]!X=[0100] S 21 S 22 S 23 S 24 tour 2!Y=[0110]!X=[0010]!X=[0010] S 31 S 32 S 33 S 34!Y=[0101]!Y=[0101] tour 3!U 4,5...!U 4,8!U 4,13...!U 4,16 tour 4 S 41 S 42 S 43 S 44 K 5,5... K 5,8 K 5,13... K 5,16 Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 21
Retrouver des bits de la clé Avec la caractéristique différentielle de R 1 tours d un chiffre à R tours et une proba suffisante, on tente de retrouver des bits de la dernière clé de tour (ici K 5 ). Ils sont déterminés par les 2 dernières boîtes-s du dernier tour et les bits obtenus par la caractéristique différentielle. Il faut effectuer une cryptanalyse exhaustive partielle du dernier tour : pour toutes les valeurs possibles des bits cherchés de la dernière clé de tour, on xor avec les bits correspondants du chiffré et on les fait passer à l envers dans les deux boîtes-s concernées pour obtenir les entrées des boîtes-s au dernier tour. On effectue cette opération pour un grand nombre de couples clairs/cryptos et on compte le nombre de fois où la caractéristique différentielle est vérifiée. La clé qui satisfait l expression le plus souvent est la plus vraissemblable. Les autres bits de la clé sont déterminés par une recherche exhaustive. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 21
Récupération des clés Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 22
Sur l exemple Rappels sur les probabilités La caractéristique différentielle affecte les entrées de S 42 et S 44. Pour tous les couples clair/crypto, on cherche les 256 valeurs possibles des bits de K 5 concernés : [K 5,5... K 5,8, K 5,13... K 5,16 ]. Pour chaque valeur, on compte le nombre de fois où (1) est satisfaite en calculant les valeur de [ U 4,5... U 4,8, U 4,13... U 4,16 ]. On compte, pour chaque clé, le nombre de fois où (1) est satisfaite et on choisit la clé qui a maximisé cette valeur. Expérimentation : avec 5000 couples, en appliquant la technique, la clé la plus vraissemblable est (en hexadécimal) 24. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 23
Complexité de l attaque Mesure la quantité de données requise pour réussir cette attaque : N D clairs. Il est généralement compliqué de déterminer le nombre de clairs choisis nécessaires. Cependant, expérimentalement, on évalue N D c/p D où p D est la probabilité de la caractéristique différentielle des R 1 tours et c une petite constante. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 24
Cas du DES Rappels sur les probabilités Dans [1], il est dit qu un DES limité à 6 tours peut être attaqué avec succès en 0,3 s avec 240 clairs. Le DES à 16 tours nécessite 2 58 étapes de calcul (ce qui est supérieur à la recherche exhaustive). Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 25
Et la cryptanalyse linéaire? Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 26
Cryptanalyse linéaire Schéma général comparable à la cryptanalyse différentielle attaque des S-boxes en cherchant des relations linéaires ou affines qui s écartent d une distribution uniforme. relation linéaire(/affine) entre un sous-ens des entrées et un sous-ens des sorties Problème : combiner ces relations (utilisation du pilling-up lemma de Matsui [4]) Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 27
Principe de la peau d oignon Outil de base pour concaténer les approximations linéaires des boîtes-s. Soient X 1 et X 2 2 VA binaires, l expression linéaire X 1 X 2 = 0 X 1 = X 2 et l expression { affine X 1 X 2 = 1 X 1 X 2. Pr(Xi = 0) = p Les distributions de proba sont : i. Pr(X i = 1) = 1 p i Les deux VA sont supposées indépendantes et p 1 p 2 i = j = 0 p Pr(X 1 = i, X 2 = j) = 1 (1 p 2 ) i = 0, j = 1 (1 p 1 )p 2 i = 1, j = 0 (1 p 1 )(1 p 2 ) i = j = 1 Pr(X 1 X 2 = 0) = Pr(X 1 = X 2 ) = p 1 p 2 +(1 p 1 )(1 p 2 ) = 1 2 +2ε 1ε 2 = 1 2 +ε 1,2 si p i = 1/2 + ε i, ε i représente le biais de chaque X i et ε 1,2 le biais de X 1 X 2 = 0. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 28
Généralisation à plusieurs VA La propriété précédente se généralise à plusieurs variables. Lemme Soient X 1,..., X n n VA binaires indépendantes. { 1 Pr(X 1... X n = 0) = 2 + 2n 1 n i=1 ε i 1 2 + ε 1,2,...,n Observons que si p i = 0 (resp. 1) pour tout i, alors Pr(X 1... X n = 0) (resp. 1) et si un seul des p i = 1/2, Pr(X 1... X n = 0) = 1/2. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 29
Application au DES Plus efficace que la cryptanalyse différentielle : au départ, on avait besoin de 2 47 couples (P, C), améliorations successives jusqu à 2 43. DES pas robuste à une cryptanalyse linéaire Pour en savoir plus sur la cryptanalyse linéaire, voir [4], [2] ou [5], [3]. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 30
Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 31
P clair (16 bits) clé (16 bits) AK 0 Add round key w[0,1] NS Nibble substitution Expand key SR Shift Row MC AK 1 Mix columns Add round key w[2,3] NS Nibble substitution SR Shift Row AK 2 Add round key w[4,5] C chiffré (16 bits) Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 32
State matrix & nibbles 1 nibble = mot de 4 bits (E/S des composants de SAES) b 0 b 1 b 2 b 3 b 8 b 9 b 10 b 11 b 4 b 5 b 6 b 7 b 12 b 13 b 15 b 15 = S 0,0 S 0,1 S 1,0 S 1,1 représentation de la clé : k 0 k 1... k }{{} 7 w[0] k 8... k }{{ 15 } w[1] Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 33
Opérations dans GF (16) F 2 /x 4 + x + 1 m(x) = x 4 + x + 1 est un irréductible de F 2 éléments : nibble b 0 b 1 b 2 b 3 θ b0 x 3 + b 1 x 2 + b 2 x + b 3 addition : par addition des coefficients : (x 3 + x + 1) + (x 2 + 1) multiplication : produit des polynômes codage octet : dans extension quadratique GF (16) F 2 [z]/z 2 + 1 attention! z 2 + 1 non inversible dans GF (16) mod m(x) Rappel : trouver l inverse d un élément : Euclide étendu sur polynômes (x + 1, m) = (x 3 + x 2 + x)(x + 1) + 1 m Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 34
Inverses dans F 16 1 0001 1 1 0001 1 2 0010 x x 3 + 1 1001 9 3 0011 x + 1 x 3 + x 2 + x 1110 e 4 0100 x 2 x 3 + x 2 + 1 1101 d 5 0101 x 2 + 1 x 3 + x + 1 1011 b 6 0110 x 2 + x x 2 + x + 1 0111 7 7 0111 x 2 + x + 1 x 2 + x 0110 6 8 1000 x 3 x 3 + x 2 + x + 1 1111 f 9 1001 x 3 + 1 x 0010 2 a 1010 x 3 + x x 3 + x 2 1100 c Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 35
Boîte S utilisée dans Nibble substitution i 00 01 10 11 00 9 4 a b 01 d 1 8 5 10 6 2 0 3 11 c e f 7 = 1001 0100 1010 1011 1101 0001 1000 0101 0110 0010 0000 0011 1100 1110 1111 0111 nibble : b 0 b }{{} 1 b 2 b }{{} 3 ligne colonne : 00 01 S 01 00 0001 0001 1100 1110 S 0100 0100 1100 1111 = 4 4 c f Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 36
Retrouver la boîte S algébriquement 1 initialiser la boîte S avec les nibbles rangés en tableau 1D ligne à ligne 2 convertir chaque nibble en polynôme 3 inverser chaque nibbble dans F 16 4 associer à l inverse son polynôme dans F 2 [y]/y 4 1 = N(y) 5 calculer a(y)n(y) + b(y) mod y 4 + 1 avec a = y 3 + y + 1 et b = y 3 + 1 Normalement S(0011) = 1011 S(3) = b Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 37
Autres transformations Shift row : transposition bits nibble : b 0 b 1 b 2 b 3 b 2 b 3 b 0 b 1. 4 4 4 4 c f f c Mix columns : modification de la représ. pol. des colonnes de N l état i. ; on associe c(z) = N N j. i z + N j F 2 [z]/z 2 + 1 ; calculer c(z).(x 2 z + 1) mod z 2 + 1. Exemple Pour 4f 0100 1111 c(z) = x 2 z + x 3 + x 2 + x + 1 : (x 3 + x 2 + 1)z + (x 3 + x 2 ) = N k z + N l 1101 1100 car z 2 = 1, x 4 = x + 1 et x 5 = x 2 + x. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 38
Mix columns (version matrice) On travaille directement sur l état : ( ). 1 x 2 x 2 1 ( ) ( ) S0,0 S 0,1 S 1,0 S 1,1 = F16 ( 1 4 4 1 ). S0,0 S 0,1 S 1,0 S 1,1 Exemple ( 1 x 2 x 2 1 ) (. ) x 2 x 2 x 3 +x 2 +x+1 x 3 +x 2 ( ) = x 3 +x 2 +1 1 x 3 +x 2 x 3 +x 2 +x+1 = ( ) d 1 c f Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 39
Séquencement de la clé initialisation : w[0] = k 0... k 7 w[1] = k 8... k 15 2 i 5 { w[i] = w[i 2] RCON(i/2) SubNib(RotNib(w[i 1])) i pair w[i] = w[i 2] w[i 1] i impair Avec RCON[i]=RC[i]0000 RC[i] = x i+2 F 16 (RC[1]=x 3 1000) RotNib(N 0 N 1 )=N 1 N 0 SubNib(N 0 N 1 )=S(N 0 )S(N 1 ) où S est la S-box Exemple avec w[0]w[1] = 0101 1001 0111 1010, on a w[2] = 1101 1100, w[3] = 1010 0101, w[4] = 0110 1100 et w[5] = 1100 1010 Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 40
Pourquoi SAES? introduit dans [6] pour des raisons pédagogiques version simplifiée de AES sur laquelle on peut travailler à la main permet de voir le fonctionnement des cryptanalyses illustre tous les principes de fonctionnement de AES Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 41
Encore d autres? dernière catégorie : type Lai-Massey ilustrée par IDEA -un des candidatsau concours AES strucure comparable à celle de Feistel + - F + K 1 ajout d opérations algébriques, + Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 42
de ces chiffres Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 43
Mode ECB : electronic codebook mode Celui décrit précédemment, étant donné un clair, chaque bloc x i est chiffré avec la clé K, donnant le cryptogramme y 1 y 2......, x 2, x 1..., y 2, y 1 e K Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 44
Mode CBC : cipher block chaining mode Chaque cryptogramme y i agit sur le bloc de clair suivant x i+1 avant son chiffrement par une opération de ou exclusif. x 1 x 2 IV=y 0 e K e K y 1 y 2 Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 45
Mode CBC Déchiffrement y 1 y 2 d K d K IV=y 0 x 1 x 2 Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 46
Modes OFB (output feedback mode) et CFB (cipher feedback mode) Le chiffrement du clair se fait par une suite de ou exclusifs avec des clés qui sont issues du chiffrement par le DES. OFB : suite des clés est un chiffrement itéré d une valeur initiale IV de 64 bits. On définit z 0 =IV et on calcule la suite z 1 z 2... par z i = e K (z i 1 ). Le clair est alors chiffré par y i = x i z i CFB : on commence avec y 0 =IV (un bloc de 64 bits) et la clé suivante est produite en chiffrant le cryptogramme précédent z i = e K (y i 1 ).. Sinon, tout se passe comme pour le mode OFB Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 47
Chiffrement CFB x 1 x 2 IV=y 0 ek e K y 1 y 2 Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 48
Déchiffrement CFB y 1 y 2 IV=y 0 ek e K x 1 x 2 Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 49
MAC-MDC Rappels sur les probabilités Pour Message Authentication Code (Modification Detection Code), également appelé empreinte du message (MAC=MDC+IV 0). Possible avec CBC et CFB. On démarre avec IV dont tous les bits sont nuls. On construit ensuite le chiffré y 1... y n avec la clé K en mode CBC et le MAC est le bloc y n. Alice transmet donc le message x 1... x n avec comme empreinte le MAC y n. Quand Bob reçoit x 1... x n, il construit y 1... y n en utilisant la clé K et vérifie que y n est identique au MAC reçu. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 50
UNIX passwords utilisation 25 fois d un DES modifié H = {... {IV } P...} P H est enregistré dans /etc/passwd à chaque connexion, l utilisateur fournit P et on vérifie H? = {... {IV } P...} P le «sel» aléatoire : 12 bits pour modifier la fonction E de DES en lui ajoutant une permutation parmi 4096 enregistrée dans /etc/password Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 51
P tronqué à 8 car. ASCII et bourrage 0 IV=0...0 DES* DES* DES* /etc/passwd 12 sel Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 52
et ses attaques par dictionnaire Consiste à tester une série de mots de passe potentiels. Repose sur le constat que de nombreuses personnes utilisent des mots de passe courants. Attaque utilisée en complément de l attaque par force brute. Voir Cain & Abel, John the ripper, L0phtCrack, RainbowCrack Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 53
E. Biham and A. Shamir. Differential cryptanalysis of DES-like cryptosystems. In Crypto 90, 1990. H. M. Heys. A tutorial on linear and differential cryptanalysis. Electrical and Computer Engineering, Faculty of engineering and applied science, Memorial university of Newfoundland, St John s, NF, Canada A1B 3X5. S.D Mansoori and H.K Bizaki. On the vulnerability of simplified aes algorithm against linear cryptanalysis. International Journal of computer science and network security, 7(7) :257 263, Jul 2007. M. Matsui. Linear cryptanalysis method for DES cipher. In Eurocrypt 93, 1993. M.A Musa, E.F Schaefer, and S Wedig. A simplified aes algorithm and its linear and differential cryptanalyses. Cryptologia, 17(2) :148 177, Apr 2003. W. Stallings. Cryptography and Network Security. Prentice-Hall, 4th. edition, 2006. Bruno MARTIN, Université de Nice - Sophia Antipolis Sécurité des chiffres symétriques en bloc 54