1 / 33

Cryptanalyse du Chiffrement

Cryptanalyse du Chiffrement. Damier Alexandre -M2 CCS. Sommaire. 1. Introduction 2. Le chiffrement 3. Vulnérabilité 4. Détection 5. Décryptement 6. Trappes ?. Introduction 1. 2.3.4.5.6 . Chiffrement allant de XOR (le plus faible) à RC4 avec une clé de 128 bits

adora
Download Presentation

Cryptanalyse du Chiffrement

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Introduction1.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. Le cas XOR … • 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)

  6. Le chiffrement 1.2.3.4.5.6. Algorithme RC4 • 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

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

  8. Le chiffrement 1.2.3.4.5.6. Algorithme RC4 • 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.

  9. Le chiffrement 1.2.3.4.5.6. Algorithme RC4 • 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 !

  10. Vulnérabilité 1.2.3.4.5.6. Principe général • 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.

  11. Vulnérabilité 1.2.3.4.5.6. Analyse technique • 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

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

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

  14. Vulnérabilité 1.2.3.4.5.6. Structure d’un document Word • Word positionne toujours le début du texte à l’offset0xA00 • IV visible après le marqueur 10 00 0000 • 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) * 28 + y Données toujours accessibles en clairs même avec l’option « chiffrer les propriétés du document »

  15. Détection 1.2.3.4.5.6. Des messages parallèles… Principe général C1 = M1 Sig1 C2 = M2 Sig2 ( C1 C2 ) = ( M1 M2 )  ( Sig1 Sig2 ) • M1 M2 possède un profil statistique aisément identifiable • La valeur Sig1 Sig2 aura un profil statistique aléatoire

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

  17. Détection 1.2.3.4.5.6. Des messages parallèles… Algorithme de détection Estimateur Z = i=0..n ( C1i  C2i  1 ) n étant la taille commune entre C1 et C2 Ckirepré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 .

  18. Détection 1.2.3.4.5.6. Des messages parallèles… Algorithme de détection • 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 H0 (messages non parallèles), Z suit la loi N( n/2 , n/2 ) • Sous H1(messages parallèles), Z suit la loi N ( np , ( np ( 1-p ))1/2 ) avec p > 1/2

  19. Détection 1.2.3.4.5.6. Des messages parallèles… Algorithme de détection • 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

  20. Détection 1.2.3.4.5.6. Des messages parallèles… Algorithme de détection • 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.

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

  22. Décryptement 1.2.3.4.5.6. Construction d’un corpus Exemple connu

  23. Décryptement 1.2.3.4.5.6. Construction d’un corpus Plus généralement, les n-grammes

  24. Décryptement 1.2.3.4.5.6. Construction d’un corpus 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 Pi la probabilité que notre événement soit égal à l’élément xi de notre corpus En réalité, il faudra également prendre en compte certains éléments de ponctuations, espacement, …

  25. Décryptement 1.2.3.4.5.6. Principe du décryptement • C1, C2, …, Cp les textes chiffrés que l’on se donne • x1, x2, …, xN les n-grammes de notre corpus • Pour chaque n-gramme Cg1 du premier texte chiffré C1  Hypothèse sur la valeur du n-gramme Mg1 du texte clair • Calcul du n-gramme chiffrant k  Mg1 Cg1 • A partir de ce n-gramme chiffrant, calcul des Mgi k Cgi

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

  27. Décryptement 1.2.3.4.5.6. Principe du décryptement • 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

  28. Décryptement 1.2.3.4.5.6. Algorithme général Pour chaque n-gramme Cg1 de C1 faire : Z   Pour m1  {x0, x1, …, xN} faire l’hypothèse Mg1  m1 Calculer k  m1 Cg1 Pour i  {2, …, p} Calculer mi  k  Cgi Calculer P(mi) Fin pour Si Z[P(m1), …, P(mi),… , P(mp)] > Z Z  Z[P(m1), …, P(mi),… , P(mp)] Pour i  {1, …, p} Mgi  mi Fin pour Fin si Fin pour Fin pour

  29. Décryptement 1.2.3.4.5.6. Optimisations et paramètres optimaux – Choix de Z • De nombreux choix possibles de la fonction du cumul des fréquences Utilisation de Z+  i=1..p fia où fi 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

  30. Décryptement 1.2.3.4.5.6. Optimisations et paramètres optimaux – n-grammes • 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)

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

  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

More Related