Cryptographie : Sécurité

 

III) Quelques attaques

            Il n'est pas question ici de donner toutes les méthodes utilisées pour casser un cryptosystème, mais plutôt de présenter quelques types d'attaques qui peuvent être menées.

        A) Les substitutions monoalphabétiques

            Les substitutions monoalphabétiques sont des chiffres qu'il est aisé de casser. N'importe qui, armé d'un crayon et d'un morceau de papier peu s'y attaquer. La méthode est basée sur une petite étude statistique : il suffit d'établir les statistiques des lettres utilisées dans le message crypté. En français, comme en anglais, la lettre la plus fréquente est normalement le 'e'. On peut partir de cette supposition et essayer de voir les mots qui apparaissent en complétant au fur et à mesure que des lettres sont identifiées. Ceux-ci donnent alors d'autres lettres qui permettent de trouver d'autres mots... Dans le cas du chiffre de Jules César, on voit que cette méthode est vraiment efficace puisque la seule identification du 'e' suffit pour décrypter le texte.

        B) XOR et addition

            Les algorithmes basés sur des opérations simples, comme le "ou exclusif" ou l'addition, sont des algorithmes qui peuvent être cassés relativement vite. Supposons que le fichier à décrypter soit un texte. Une première peut être de trouver la longueur de la clé. Pour cela, il suffit de comparer le fichier à lui-même, décalé de 1 octet, puis 2, puis 3... en comptant à chaque fois le nombre d'octets égaux. Lorsque le texte aura été décalé de la longueur de la clé, le nombre de coïncidence va augmenter significativement (lorsque le décalage n'est pas un multiple de la longueur de la clé, le nombre d'octets égaux sera d'environ 0.4%, alors qu'une fois la longueur de la clé atteinte, la proportion se situera aux alentours de 6%). Une fois la longueur L de la clé trouvée, on fait une supposition : le caractère le plus présent dans un fichier texte est généralement l'espace. En découpant le fichier en blocs de L octets, on réalise un XOR (ou une soustraction selon l'algorithme) entre les premiers caractères des blocs et un espace. Le caractère qui revient le plus souvent est le caractère de la clé. On procède de la même manière pour tous les autres caractères de la clé.

            Supposons maintenant que le fichier ne soit pas un texte mais une image, par exemple, au format bitmap. Ce format n'est pas compressé et comporte donc beaucoup de redondance. Il suffit alors de chercher pour chaque caractère de la clé celui qui donne le plus de redondance. Ce genre d'analyses statistiques peut être élargit à la plupart des types de fichiers. En effet, tous les types de fichiers ont des particularités statistiques qui permettent de casser les algorithmes faibles.

        C) Cryptanalyse différentielle

            La cryptanalyse différentielle a été inventé par Biham et Shamir. C'est une technique de cryptanalyse très efficace. Cette technique étudie les différences qu'il existe entre différents messages chiffrés et le lien avec les différences entre les messages en clair correspondants grâce à des XOR. Les algorithmes comme le DES sont optimisés pour résister à ce type d'attaque (en fait, DES est vulnérable à ce type d'attaque lorsqu'il exécute jusqu'à 15 rondes, c'est pourquoi aujourd'hui il en comporte 16). Vous trouverez un exemple de la cryptanalyse différentielle du DES à 3 rondes sur : http://www.mines.u-nancy.fr/~tisseran/I33_Reseaux/cryptage/DES/attaque.htm

Copyright © BLANC David - 2000