Sécurité des chiffres symétriques en bloc

Documents pareils
INF 4420: Sécurité Informatique Cryptographie II

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

TP 2 : Chiffrement par blocs

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Modes opératoires pour le chiffrement symétrique

Université d Aix-Marseille Master Réseaux & Télécoms Cryptographie

ÉPREUVE COMMUNE DE TIPE Partie D

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Cryptologie et physique quantique : Espoirs et menaces. Objectifs 2. distribué sous licence creative common détails sur

Fonction de hachage et signatures électroniques

CRYPTOGRAPHIE. Chiffrement par flot. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Cryptographie. Master de cryptographie Architectures PKI. 23 mars Université Rennes 1

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Informatique Générale

Objets Combinatoires élementaires

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Journées MATHRICE "Dijon-Besançon" DIJON mars Projet MySafeKey Authentification par clé USB

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Définitions. Numéro à préciser. (Durée : )

Résolution de systèmes linéaires par des méthodes directes

Nouveaux résultats en cryptographie basée sur les codes correcteurs d erreurs

Programmation linéaire

Logiciel de Base. I. Représentation des nombres

Probabilités sur un univers fini

Cryptographie et fonctions à sens unique

Analyse de PRESENT avec peu de données

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Optimisation des fonctions de plusieurs variables

TECHNIQUES DE CRYPTOGRAPHIE

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Introduction à MATLAB R

Représentation des Nombres

Les opérations binaires

Algorithme. Table des matières

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux

Formats d images. 1 Introduction

Rapport de certification ANSSI-CSPN-2010/07. KeePass Version 2.10 Portable

Licence Sciences et Technologies Examen janvier 2010

I- Définitions des signaux.

Travail d intérêt personnel encadré : La cryptographie

Les Protocoles de sécurité dans les réseaux WiFi. Ihsane MOUTAIB & Lamia ELOFIR FM05

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

TABLE DES MATIÈRES. PRINCIPES D EXPÉRIMENTATION Planification des expériences et analyse de leurs résultats. Pierre Dagnelie

Optimisation Discrète

La cryptographie du futur

1 Introduction au codage

Cours 14. Crypto. 2004, Marc-André Léger

Pascal Gachet Travail de diplôme Déploiement de solutions VPN : PKI Etude de cas

Gestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader

Système binaire. Algèbre booléenne


Représentation d un entier en base b

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Cours d Analyse. Fonctions de plusieurs variables

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Sécurité et sûreté des systèmes embarqués et mobiles

La classification automatique de données quantitatives

CHAPITRE VIII : Les circuits avec résistances ohmiques

3 Approximation de solutions d équations

Quelques tests de primalité

MODELES DE DUREE DE VIE

Quantification Scalaire et Prédictive

Algorithmique et programmation : les bases (VBA) Corrigé

Conversion d un entier. Méthode par soustraction

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Transmission d informations sur le réseau électrique

Les Réseaux sans fils : IEEE F. Nolot

Authentification de messages et mots de passe

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Activité 4. Tour de cartes Détection et correction des erreurs. Résumé. Liens pédagogiques. Compétences. Âge. Matériels

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Résolution d équations non linéaires

INFO006 (ex INFO913) - Cryptologie et Sécurité Informatique

Les fonctions de hachage, un domaine à la mode

Structures algébriques

MEMOIRE DE MAGISTER EN ELECTRONIQUE. OPTION : Télédétection. Application des techniques de cryptage pour la transmission sécurisée d images MSG

Programmation linéaire

TD : Codage des images

ARBRES BINAIRES DE RECHERCHE

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Codage d information. Codage d information : -Définition-

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN

Oracles Cryptographiques. Trouver une joke de padding

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Probabilités sur un univers fini

Cours de Probabilités et de Statistique

Qu est-ce qu une probabilité?

La sécurité dans un réseau Wi-Fi

0x700. Cryptologie Pearson France Techniques de hacking, 2e éd. Jon Erickson

Probabilités. C. Charignon. I Cours 3

Architectures PKI. Sébastien VARRETTE

Transcription:

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