La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Cryptanalyse du Chiffrement Damier Alexandre -M2 CCS.

Présentations similaires


Présentation au sujet: "Cryptanalyse du Chiffrement Damier Alexandre -M2 CCS."— Transcription de la présentation:

1 Cryptanalyse du Chiffrement Damier Alexandre -M2 CCS

2 Sommaire 1.Introduction 2.Le chiffrement 3.Vulnérabilité 4.Détection 5.Décryptement 6.Trappes ?

3 Introduction 1.2.3.4.5.6. Chiffrement allant de XOR (le plus faible) à RC4 avec une clé de 128 bits Le XOR est un opérateur logique qui correspond à un « OU exclusif » Même principe que le cryptage de Vigenère, puis on effectue un XOR, bit par bit. L'algorithme est complètement symétrique. Exemple

4 Introduction 1.2.3.4.5.6. Chiffrement allant de XOR (le plus faible) à RC4 avec une clé de 128 bits Chiffrement présent jusqu’à Office 2003 75% des particuliers et près de 80% des licences professionnelles En 2005, Hongjun Wu met en évidence une faiblesse dans l’utilisation de RC4 128 de la suite Office Les clés restent les mêmes pour toutes les versions modifiées !

5 Le chiffrement 1.2.3.4.5.6. Via un mot de passe Outils -> Options -> Onglet Sécurité -> Options avancées XOR utilisé par défaut si on ne clique pas sur Paramètres avancés Ce que font la plupart des utilisateurs ! XOR est un algorithme simple et facile mais pitoyable en terme de sécurité (utilisation d’un dérivé du mot de passe) Le cas XOR …

6 Le chiffrement 1.2.3.4.5.6. Plusieurs options proposées (comme la signature numérique) Différentes longueurs de clés Celui censé offrir la meilleure sécurité est RC4 avec clé de 128 bits C’est celui que nous allons cryptanalyser Algorithme RC4

7 Le chiffrement 1.2.3.4.5.6. Chiffrement de type flot Le texte clair M est combiné à une séquence aléatoire Sig produite par l’expansion de la clé K pour produire le texte chiffré C C t = M t  Sig t Chiffrement symétrique M t = C t  Sig t Algorithme RC4

8 Le chiffrement 1.2.3.4.5.6. Clé de chiffrement généré par le logiciel Obtenue à partir du mot de passe de l’utilisateur et d’un vecteur d’initialisation (IV généré aléatoirement par Word) K= F ( H ( IV || mot de passe ) F fonction de dérivation, K la clé de chiffrement, H la fonction de hachage (SHA1) et || l’opérateur de concaténation. Algorithme RC4

9 Le chiffrement 1.2.3.4.5.6. L’utilisation d’un même mot de passe pour plusieurs documents n’affaiblit pas la clé… hachage avec IV censé être généré aléatoirement à chaque fois ! Algorithme RC4

10 Vulnérabilité 1.2.3.4.5.6. Microsoft Word viole une règle fondamentale en cryptologie Utilisation du même IV pour différentes versions d’un document Obtention de messages parallèles Profondeur de parallélisme : nombre de messages parallèles relativement à une même suite chiffrante. Principe général

11 Vulnérabilité 1.2.3.4.5.6. Création de deux fichiers « message1.doc » et « message2.doc » Word avec une modification Mot de passe « protection » Nous allons ici utiliser Hackman 9.0 qui est un éditeur hexadécimal, un désassembleur et un débuggeur tout en un Analyse technique

12 Vulnérabilité 1.2.3.4.5.6. 37 premiers octets identiques ! Donc même suite chiffrante, donc même IV ! Analyse technique

13 Vulnérabilité 1.2.3.4.5.6. Comparaison des IV Après le marqueur 10 00 00 00 Analyse technique

14 Vulnérabilité 1.2.3.4.5.6. Word positionne toujours le début du texte à l’offset 0xA00 IV visible après le marqueur 10 00 00 00 La taille des données (nombres de caractères) se détermine en lisant les valeurs x et y situées respectivement aux offsets 0x21D et 0x21C. T (en octets) = (x-8) * 2 8 + y Données toujours accessibles en clairs même avec l’option « chiffrer les propriétés du document » Structure d’un document Word

15 Détection 1.2.3.4.5.6. C 1 = M 1  Sig 1 C 2 = M 2  Sig 2 ( C 1  C 2 ) = ( M 1  M 2 )  ( Sig 1  Sig 2 ) M 1  M 2 possède un profil statistique aisément identifiable La valeur Sig 1  Sig 2 aura un profil statistique aléatoire Des messages parallèles… Principe général

16 Détection 1.2.3.4.5.6. Deux cas de figure pour déterminer si M 1 et M 2 sont parallèles (H 0 ) : Les textes ne sont pas parallèles et donc le texte chiffré exhibe un profil statistique totalement aléatoire (H 1 ) : Les textes sont parallèles et donc Sig 1 et Sig 2 du fait de la mauvaise gestion de la clé. ( C 1  C 2 ) = ( M 1  M 2 ) On bâtit alors un test d’hypothèses simples pour décider du parallélisme Des messages parallèles… Principe général

17 Détection 1.2.3.4.5.6. Estimateur Z =  i=0..n ( C 1 i  C 2 i  1 ) n étant la taille commune entre C 1 et C 2 C k i représente le bit i du message k L’estimateur Z compte le nombre de bits valant 0 dans le texte ( C1  C2 ) Z suit une loi Binomiale de paramètre n et p, où p est la probabilité pour que les bits de ( C1  C2 ) valent 0. Des messages parallèles… Algorithme de détection

18 Détection 1.2.3.4.5.6. Cette loi binomiale peut être approximée lorsque Z   par : Une loi normale de paramètres np et ( np ( 1-p )) 1/2 (Théorème central limite) Sous H 0 (messages non parallèles), Z suit la loi N( n/2,  n/2 ) Sous H 1 (messages parallèles), Z suit la loi N ( np, ( np ( 1-p )) 1/2 ) avec p > 1/2 Des messages parallèles… Algorithme de détection

19 Détection 1.2.3.4.5.6. Le test est alors simple, on choisit un seuil S défini par les probabilités d’erreur que l’on se fixe et la décision s’établit comme suit : Si Z<S alors les textes ne sont pas parallèles Si Z>S les textes sont parallèles Les différentes expériences montrent des pics très importants de l’estimateur Z pour les textes parallèles. La détection est ainsi aisée par la simple présence d’un pic Des messages parallèles… Algorithme de détection

20 Détection 1.2.3.4.5.6. Cela ne permet pas de distinguer plusieurs groupes différents de textes parallèles Mais le parallélisme est une relation d’équivalence, tout groupe de messages parallèles sera une classe d’ équivalence pour cette relation On compare alors deux à deux nos N textes chiffrés et extrayons les groupes de messages parallèles. Des messages parallèles… Algorithme de détection

21 Détection 1.2.3.4.5.6. À venir… Des messages parallèles… Résultats

22 Décryptement 1.2.3.4.5.6. Exemple connu Construction d’un corpus LettreFréqLettreFréqLettreFréq a8,40j0,31s8,08 b1,08k0,05t7,07 c3,03l6,01u5,74 d4,18m2,96v1,32 e17,26n7,13w0,04 f1,12o5,26x0,45 g1,27p3,01y0,30 h0,92q0,99z0,12 i7,34r6,55

23 Décryptement 1.2.3.4.5.6. Plus généralement, les n-grammes Construction d’un corpus 3-gFréq3-gFréq3-gFréq ENT0,90EME0,47ESD0,35 LES0,80ELA0,44TDE0,35 EDE0,63RES0,43 DES0,61MEN0,42 QUE0,60ESE0,42 AIT0,54DEL0,40 LLE0,51ANT0,40 SDE0,51TIO0,38 ION0,48PAR0,36

24 Décryptement 1.2.3.4.5.6. Pour répondre à nos besoin un tel corpus doit être : Suffisamment représentatif de la langue cible De taille raisonnable pour permettre un traitement rapide Nous définissons alors une variable aléatoire discrète X et nous appelons P i la probabilité que notre événement soit égal à l’élément x i de notre corpus En réalité, il faudra également prendre en compte certains éléments de ponctuations, espacement, … Construction d’un corpus

25 Décryptement 1.2.3.4.5.6. C 1, C 2, …, C p les textes chiffrés que l’on se donne x 1, x 2, …, x N les n-grammes de notre corpus Pour chaque n-gramme Cg 1 du premier texte chiffré C 1  Hypothèse sur la valeur du n-gramme Mg 1 du texte clair Calcul du n-gramme chiffrant k  Mg 1  Cg 1 A partir de ce n-gramme chiffrant, calcul des Mg i  k  Cg i Principe du décryptement

26 Décryptement 1.2.3.4.5.6. Réitération du procédé pour chaque élément du corpus Constitution pour chaque n-gramme des textes N p-uplets (Mg 1, …, Mg i,…, Mg p ) Ce sont autant de possibilités pour les textes en clair M 1, …, M p Association aux N p-uplets trouvés les N p-uplets de probabilités (P(Mg 1 ), …, P(Mg i ),…, P(Mg p )) Principe du décryptement

27 Décryptement 1.2.3.4.5.6. Il nous faut alors maximiser le p-uplet de probabilités Choix d’un bon estimateur Z dépendant de la nature des textes Z est fonction positive strictement croissante du vecteur de probabilités Principe du décryptement

28 Décryptement 1.2.3.4.5.6. Pour chaque n-gramme Cg 1 de C 1 faire : Z   Pour m 1  {x 0, x 1, …, x N } faire l’hypothèse Mg 1  m 1 Calculer k  m 1  Cg 1 Pour i  {2, …, p} Calculer m i  k  Cg i Calculer P(m i ) Fin pour Si Z[P(m 1 ), …, P(m i ),…, P(m p )] > Z Z  Z[P(m 1 ), …, P(m i ),…, P(m p )] Pour i  {1, …, p} Mg i  m i Fin pour Fin si Fin pour Algorithme général

29 Décryptement 1.2.3.4.5.6. De nombreux choix possibles de la fonction du cumul des fréquences Utilisation de Z +   i=1..p f i a où f i est la fréquence des n-grammes trouvés Le choix de a dépend de la nature du texte Pour des textes riches en noms propres et termes techniques rare, le choix optimal est a  0.3 Optimisations et paramètres optimaux – Choix de Z

30 Décryptement 1.2.3.4.5.6. Méthode d’extraction sans recouvrement Exemple d’extraction de 4-grammes Méthode d’extraction avec recouvrement Exemple d’extraction de 4-grammes Ainsi les n-grammes clairs trouvés se chevauchent (n-1 caractères communs entres deux n-grammes consécutifs) Optimisations et paramètres optimaux – n-grammes

31 Décryptement 1.2.3.4.5.6. À venir… Résultats expérimentaux

32 Trappes ? 1.2.3.4.5.6. Obtention des textes parallèles par les fichiers temporaires de Word Création de fichiers temporaires à chaque modification de document Utilisation de PC inspector file recovery

33 Trappes ? 1.2.3.4.5.6. Vulnérabilité partagée entre l’OS et le l’application Deux failles indépendantes non critiques  faille critique Méthode classique pour l’implémentation de trappes Vulnérabilité présente version après version


Télécharger ppt "Cryptanalyse du Chiffrement Damier Alexandre -M2 CCS."

Présentations similaires


Annonces Google