Cryptographie

[ Part One ]

Voici le sommaire d'un long article consacré à la cryptographie :  

     Introduction [ Part One ]*

     I ] Introduction à la cryptographie*

     II] Les chiffrements par transposition*
          1°) Principes de fonctionnement
          2°) Techniques
               a) La scytale
               b) "Dent de scie"
               c) Transpositions à clé
              
d) Cryptanalyse de chiffrements par transposition
          3°) Identifier un texte transposé

     Conclusion [ Part One ]*

     Exercices [ Part One ]*

     III ] Les chiffrements par substitution
          1°) Principes de fonctionnement
          2°) Deux types de substitution
               a) La substitution mono-alphabétique
                    - De quoi s'agit-il ?
                    - César
                    - etc...
               b) La substitution poly-alphabétique
                    - De quoi s'agit-il
                    - etc...
                    - Vigenère

     IV ] Les techniques "modernes"
          1°) Enigma
          2°) DES
          3°) RSA

     V ] PGP

     VI ] Lois et cryptographie en France



        Les titres suivis de * sont ceux qui seront traités au cours de ce numéro. Les endroits où il y a un "etc" signifient qu'il y aura sans doute d'autres parties, mais qu'elles ne sont pas encore exactement définies. Ce sommaire évoluera peut-être légèrement au cours des numéros. Chaque numéro comptera une petite introduction et une conclusion, ainsi qu'une petite partie "Exercice" (enfin d'article) qui ne rentreront pas dans le sommaire ci-dessus. Nous vous souhaitons une bonne lecture :-D.

 

-----------------------------------------------------------------------

Introduction [ Part One ]

             Dans ce premier opus, vous allez découvrir ce qu'est la cryptographie, ses origines, son utilité. Nous commencerons bien sûr par les bases, que vous pourrez passer si vous n'êtes pas complètement débutant dans le domaine. Vous apprendrez aussi les principales techniques de cryptages par transposition, comment les utiliser, et comment les contrer. Nous essaierons d'être le plus clair et le plus complet possible, ce qui n'est pas une mince affaire dans un domaine aussi vaste.

            Si certains points vous paraissent encore obscurs à la fin de cet article, vous pourrez nous contacter, nous tenterons de vous aider dans la mesure de notre disponibilité.




I ] Introduction à la cryptographie

 

            Depuis toujours, l'homme a éprouvé (et éprouve encore) le besoin de dissimuler des informations : par honte, par nécessité, par jeu, presque toujours par intérêt; mais peu importe. De ce besoin est née, chez les Grecs (400 ans av. JC), une science appelée "Cryptographie".

            Longtemps presque exclusivement réservée au domaine militaire, afin de dissimuler des informations cruciales à l'ennemi, elle prend aujourd'hui toute son ampleur avec l'arrivée de nouvelles technologies telles qu'Internet. Celles-ci nécessitent un niveau de sécurité élevé : les informations circulant sur la toile ne sont pas toujours destinées au premier internaute venu, par conséquent leur contenu doit rester confidentiel. Je pense par exemple aux mots de passe, aux numéros de cartes bancaires donnés lors d'achats en ligne, ainsi qu'à vos mails, etc... La liste est loin d'être exhaustive.

            Qu'est donc cet "art" auquel nous allons tenter de vous initier ? Commençons par quelques points de vocabulaire : le message que vous désirez communiquer est "en clair". Ce que vous êtes en train de lire est du texte clair, c'est-à-dire qu'il est aisément lisible par le premier idiot venu (ça ne vous était pas destiné :) ...), à la seule condition que celui-ci ait appris à lire. En transformant le texte afin de le rendre illisible à des yeux non avertis, vous le "cryptez" (ou "chiffrez"). Le texte illisible ainsi créé est appelé "cryptogramme", et le destinataire du message devra le "décrypter" s'il veut en comprendre le contenu. L'art de casser le codage d'un message qui ne vous est pas destiné (donc sans avoir en main tous les éléments vous permettant de le déchiffrer normalement) a pour nom "cryptanalyse". Enfin, tous ces éléments réunis forment ce que l'on appelle la cryptographie (ou bien aussi cryptologie).

            En résumé, la cryptographie, c'est remplacer un message compréhensible par d'autres signes (chiffres, lettres ou autres...) qui semblent n'avoir aucun sens quand on ne connaît pas le moyen de revenir au texte original.

            Voilà pour cette introduction qui aura été, j'espère, assez claire. Si vous n'avez pas encore tout compris, ne vous en faites pas, il s'agissait seulement d'un peu de vocabulaire auquel vous vous ferez très vite. Rentrons maintenant dans le vif du sujet.

 

 

II ] Les chiffrements par transposition

  1°) Principes de fonctionnement

            Le principe d’un cryptage par transposition est très simple. Il s’agit en fait de réordonner les lettres du message : les lettres du cryptogramme sont donc les mêmes que celle du texte en clair, mais dans un ordre différent. Cette répartition des lettres peut se faire de plusieurs façons, par l’intermédiaire d’objets (comme la scytale que nous allons voir tout de suite), ou bien d’instructions données pour lire les lettres. En plus succinct, les lettres du texte clair sont redistribuées, pour donner une anagramme.

Dans ce simple petit passage en italique, pour vous donner une idée, il peut y avoir exactement 87 178 291 200 combinaisons différentes de codage (les espaces et la ponctuation ne sont pas pris en compte, et le "é" est considéré comme un "e" normal). Comme quoi, une technique très simple à la base se retrouve vite très efficace voire même redoutable si l’on ne sait pas vraiment comment la déjouer (ce que nous verrons dans la sous partie d).

 

  2°) Techniques

        a) La scytale

 

            Pour le cours d'histoire, la transposition la plus célèbre reste due à l'invention de la scytale. Il s’agissait d’une sorte de bâton de bois, souvent octogonal, possédant plusieurs facettes et autour duquel était enroulée une fine bandelette de cuir ou de parchemin qui faisait plusieurs fois le tour de la scytale, de façon à la recouvrir le mieux possible. Une fois le message inscrit, on le déroulait et ses lettres étaient naturellement mélangées. Le destinataire n’avait plus qu’à l’enrouler autour de sa propre scytale, de mêmes dimensions, pour lire le texte en clair. Cette technique a vu le jour en Grèce et date du Vème siècle avant notre ère, comme quoi la cryptographie n’est pas toute neuve ;-) . Il s'agit là de la première utilisation connue de la cryptographie, car avant on se contentait de cacher le message (il s'agissait alors de sténographie), et non de le coder ! Un petit pas pour l’homme, un grand pas pour la cryptanalyse….

            Expliquons rapidement à quoi revient cette technique concrètement : en réalité, on écrit la première lettre, puis la seconde un peu plus loin, la troisième encore un peu plus loin (en conservant le même écart entre deux lettres), et etc...

            Bien sûr, un exemple : le texte "salut je suis un texte" deviendrait <senastlueuixtstjue>.

Pour le décrypter, on prend une lettre sur trois en partant de la première lettre, puis quand on arrive au bout du cryptogramme, on recommence en partant de la seconde et ainsi de suite. Ce qui diffère d'une scytale à l'autre, en fonction de son épaisseur, c'est le "bond" que l'on fait pour aller d'une lettre à la suivante. Ici, il est de 3 : il aurait très bien pu être de 2, de 9 ou même de 52 (mais après, ça fait une scytale un peu lourde à trimballer :-D...).

 

        b) "Dent de scie"

 

            Ce principe de redistribution en dent de scie est, lui aussi,tout simple. Il obéit à ce que l'on l’on appelle dans le jargon un protocole (des instructions si vous préférez) connu par le crypteur et le décrypteur, qui leur permet de coder et décoder le message. Pour faire simple, les protocoles les plus courants, mais aussi les plus faciles à casser, sont du style :

            - « prendre une lettre sur deux »

            - « partir de la fin, puis du début…. »

            - « la première lettre, puis celle du milieu, puis la deuxième... ».

Si vous ne comprenez pas, voici une petite démonstration :

Par exemple, la phrase <vive espionet> avec l'instruction « la première lettre, puis celle du milieu, puis la deuxième, puis celle qui suit celle du milieu, etc... », nous obtenons :

<vpiivoeneest>.

            Ici, vous remarquez que nous ne conservons pas l'espace présent dans la phrase originale : c'est souvent le cas en cryptographie. Il en va de même pour la ponctuation, les lettres accentuées, etc... Du moins, dans les techniques de cryptage manuelles, c'est-à-dire non informatisées à la base. Je suppose que vous avez compris cette première technique, il n’y à là aucune difficulté. Cependant, il y a une petite subtilité (vraiment petite :-D) : pour le destinataire du message, l'instruction de décryptage ne sera pas là même que celle qui a servie à crypter le message ! Et oui, ici, en réfléchissant deux petites secondes, on voit que l'on peut reconstituer le message original en prenant une lettre du cryptogramme sur deux. Essayez pour vérifier.

            La technique "dent de scie" n'est en fait qu'une instruction spéciale : on prend une lettre sur deux du message à crypter : <salut> devient <sltau>. Elle est appelée comme ceci, car on la représente ainsi : imaginez les dents d'un scie (ben, ça peut aussi marcher avec un peigne mais bon...), et maintenant posez votre phrase dessus. Vous vous retrouvez avec une lettre sur deux qui est sur le "pic" de la dent (les lettres en position impaire dans le texte), et les autres, qui sont dans le creux, entre deux dents (les lettres en position paire). Vous commencez par recopier les lettres supérieures, puis les autres, et votre message est crypté ! J'espère que vous avez compris l'image :).

            Voilà, toutes les techniques de transposition tournent autour de cela. Il s’agit juste d’une variation de protocole, celui-ci devenant de plus en plus ingénieux pour passer outre les regards indiscrets. A vous d'en inventer d'autres.

 

        c) Transpositions à clé

            Une notion fondamentale en cryptographie, est la notion de clé. Les techniques de cryptographie se composent la plupart du temps d'un "algorithme" et d'une "clé". L'algorithme est le principe du cryptage, le "protocole", qui permet de transformer votre texte clair (vous avez vu cela dans le paragraphe précédent : par exemple « prendre une lettre sur deux » est un algorithme). La clé est un élément qui permet faire varier le cryptage : l'expéditeur et le destinataire doivent être les seuls à la connaître. A quoi sert cette clé ? Et bien tout simplement, quand un algorithme est connu, il devient facile de décrypter tout ce qui a été codé grâce à celui-ci, pas vrai ? Cependant, si on y ajoute une clé, pour décrypter, il faut non seulement connaître l'algorithme, mais aussi cette clé ! Il s'agit donc d'une protection supplémentaire.

            Voyons, une technique "à clé" : prenons un texte, disons : <Il faut manger pour vivre.>. L'algorithme va être difficile à résumer en une phrase, et comme un bon exemple vaut mieux qu'un long discours :)...

            Choisissons une clé, disons PIED. Ecrivons notre texte, sur quatre colonnes (quatre est la longueur de la clé, le mot PIED), comme ceci :

                                    I   L   F  A

                                    U  T  M  A

                                    N  G   E  R

                                    P  O  U   R

                                    V  I   V   R

                                    E

            Nous associons la première colonne à la première lettre de la clé (P), la seconde à la seconde lettre, et ainsi de suite. Réorganisons les lettres de la clé par ordre alphabétique : PIED devient DEIP. On fait de même avec les colonnes associées : la colonne associée au D (la quatrième) devient la première colonne, etc... On obtient alors :

                                    A  F   L  I

                                    A  M  T  U

                                    R  E   G  N

                                    R  U   O  P

                                    R  V   I   V

                                                 E

            Le texte ainsi réorganisé, on réécrit le texte verticalement en a partant du haut de la colonne de gauche, puis en remontant par le bas de la colonne suivante, etc... On obtient ainsi, un texte assez difficile à décrypter : <AARRRVUEMFLTGOIEVPNUI>.

            Voici une méthode déjà un peu plus ardue.

 

        d) Cryptanalyse de chiffrements par transposition

 

            A part la technique du "mot probable", il n'existe pas de réelle technique de cryptanalyse pour ces types de codage. La technique du "mot probable" consiste en fait, à supposer qu'un mot est dans le cryptogramme : pour ce faire, il faut avoir quelques informations sur le message (par exemple : le destinataire, l'expéditeur, le contexte de cet envoi, parfois même une idée du message lui-même). Après, on recherche les lettres composant ce mot dans le cryptogramme, et si on les trouve toutes, on essaie de reconstituer le protocole à partir de la position  des lettres dans le message chiffré. Il est naturellement possible de trouver toutes les lettres d'un mot, sans que le mot soit dans le texte original, il faut donc tester, tester... C'est assez fastidieux.

            Allez, un petit exemple. Regardez ce petite texte crypté : <sltanblihmrauhniangtae>. Supposons que vous venez d'intercepter ce message : vous ne savez pas à qui il est destiné, mais vous savez que je viens de l'envoyer ! Je l'ai donc probablement signé. On suppose donc que le mot Nightmare se trouve dans ce cryptogramme. Si l'on prend les cinq dernière lettres du message, on trouve les lettres "ngtae". Tiens, si l'on prend un lettre sur deux du mot Nightmare, on obtient n g t a e ! Ceci doit vous rappeler quelque chose... La technique en "dent de scie" ! On divise alors le texte crypté en deux parties de 11 lettres (le cryptogramme en fait 22) : "sltanblihmr" et "auhniangtae", puis on prend la première lettre du premier, la première du second, la seconde du premier, etc...

            On reconstitue alors le texte <saluthannibalnightmare>, soit "Salut Hannibal. Nightmare".

            Sachez que l'on peut aussi bidouiller avec des bigrammes (suite de 2 lettres) et des trigrammes (suite de 3 lettres), mais nous verrons leur utilisation ailleurs et  un peu plus tard, car c'est ici moyennement utile et souvent très hasardeux.

 

 

  3°) Identifier un texte transposé

 

            Ici, vous avez peut-être envie de me dire : "C'est bien beau tout ça, mais comment sait-on qu'un texte a été transposé ?". Et bien, c'est assez simple (en supposant que votre texte n'a été QUE transposé et n'a pas subi d'autres transformations...). Dans la langue française, vous savez sûrement que certaines lettres reviennent plus souvent que d'autres. Le E par exemple, est la lettre la plus souvent utilisée en français, suive du S, puis du A, etc... On appelle le pourcentage d'apparition d'une lettre dans un texte, sa fréquence : celle du E, en français, est d'environ 17,7%.

            Voici la liste des fréquences des monogrammes (1 lettre) :

 

                        E : 17.7 %         P : 3.1 %         W : 0.02 %

                        S : 8.3 %         M : 3 %             K : 0.00 %

                        A : 7.5 %         Q : 1.35 %

                        N : 7.4 %         V : 1.27 %

                        T : 7.3 %         F : 1.06 %

                        I : 7.25 %         B : 0.87 %

                        R : 6.6 %         G : 0.85 %

                        U : 6.2 %         H : 0.81 %

                        L : 5.7 %         J : 0.6 %

                        O : 5.4 %         X : 0.3 %

                        D : 3.6 %         Y : 0.21 %

                        C : 3.2 %         Z : 0.07 %

            (les pourcentages de bigrammes et trigrammes viendront dans un prochain numéro)

 

            Ces chiffres sont vraiment "à peu près" (ça ne fait même pas 100 % au total), car de toutes manières ces fréquences évoluent au cours du temps. Cependant, on voit nettement la différence entre les lettres, et il n'est pas très important de connaître les fréquences exactes, surtout que, sur des cryptogrammes courts, elles sont rarement respectées. Il faut donc faire "en gros". Si vous trouvez 40 % de K, 0 % de E, 22 % de X, il y a sans doute quelque chose qui cloche. En cryptographie, on n'est jamais sûr de rien, on réfléchit en termes de "probabilités d'une suppostion", si vous voyez ce que je veut dire.

            Revenons à nos moutons : si dans votre cryptogramme, vous trouvez des fréquences équivalentes à celles présentées ci-dessus, il y a beaucoup de chances pour que le texte ait été uniquement transposé. Cependant, plus votre texte est court, moins vous devrez être exigeant niveau fréquences. Pour information, dans ce long article, on compte : environ 16.67 % de E, 8 % de S, et 0.024 % de K (ceci sans compter la partie "Exercice" et ses cryptogrammes, et en ne prenant que les lettres de cet article).

 

 

 

Conclusion [ Part One ]

            Nous avons fait ici un large tour d'horizon des techniques de cryptage par transposition, et vous connaissez déjà une importante partie de tout ce qu'il y a à savoir sur cette branche de la cryptographie. Vous pouvez donc aller exercez vos nouveaux talents, dans la partie "Exercice", où vous devrez parfois faire appel à votre imagination pour trouver le protocole utilisé.

            N'oubliez pas tout de même que ce type de protection, ne consistant qu’à déplacer les lettres, est certes efficace dans un premier temps, tant que l’on ne connaît pas bien cette méthode, mais devient vite dérisoire et dépassé. En effet, que ce soit d’objets comme la scytale ou bien de protocoles, les instructions pour lire les messages ne sont pas infinies, bien que nombreuses, et un cryptanalyste patient, ou même équipé d’un ordinateur quelconque (dans ce cas, d’après moi il serait plutôt cryptologue que cryptanalyste, c’est ma différenciation entre les deux termes) peut déchiffrer aisément le texte et donc casser le code sans peine.      

            C’est pour cela que l’homme à inventé un nouveau système de cryptage révolutionnaire pour l’époque : la substitution...


Exercices [ Part One ]

            Voici 7 petits cryptogrammes qui vont vous permettre de vous exercer :

              - 1) TMHSUPNCARIYSIQTBSUAILELEADENTECELOCA

              - 2) VUEEVUDMNEORUIACOSPECMELOSTSOSEADPUQOJIHIIIDOMCE

              - 3) CSESINQEENRDVNYETNCATULOADEIC

              - 4) STTCALCQGTTLALDQSMIUEOVEUURUEEVEOUEAUELIAVEIINUCCTECGTVHTRTAEEAISSS

              - 5) LRUESTAANQIUCPEUTIRHSIETYICNDIPEIEEOTEECLNOSNEIGTCSN

              - 6) QEULABNIDSOSNONPEESTAIIVTSPUALSPOEULARLELLELRAIYLTFUA

              - 7) LMUSLTSTNEVEREEUEIUESIEQALNSTREUREDCEMRTLEMBEBARIEIPE

 

            Maintenant, quelques petits coups de pouces pour vous aider dans vos recherches :

              Pour la 1) et la 2), il s'agit juste de voir si vous avez compris deux techniques expliquées dans cet article : la première fonctionne selon le système de la scytale, et la seconde grâce à la technique en "dent de scie".

              Je ne vous dis presque rien sur les quatre suivants, si ce n'est qu'il ne s'agit pas forcément de techniques vues ici, certaines pourraient bien sortir tout droit de mon cerveau tordu. Je vous aide simplement pour la 4) en vous disant que le texte en clair comporte 18 mots... Cherchez en quoi cela peut vous être utile.

            La dernière, la 7) est un peu plus difficile d'après moi : il s'agit en fait de la technique décrite dans le petit c du II. Je ne vous donne pas la clé, je peux simplement vous dire que la longueur de celle-ci n'excède pas 7 caractères. Je veux pas faire trop dur non plus !!!

 

            Les chaînes de caractères qui suivent sont en fait les cryptages (à ma manière) des 7 textes textes clairs à l'origine des 7 cryptogrammes que vous devez déchiffrer au-dessus. Si quelqu'un arrive à trouver mon algorithme de cryptage qu'il m'envoie un mail pour que je le félicite... Pour lire les textes originaux des épreuves précédentes, soumettez les textes ci-dessous (le premier cryptogramme donné correspond à l'épreuve 1 et ainsi de suite...) au script qui est à l'adresse suivante : http://www.espionet.com/zine/script/crypto_sol.php.

            J'ai préféré ce moyen que celui de vous mettre directement les réponses en clair dans le fichier : on peut trop facilement les lire "par mégarde" :-D... Et en plus, cet algorithme de cryptage fera sans doute l'objet d'un nouvel article.

            Voici les précieux sésames qui vous permettront de vérifier, ou d'obtenir les solutions sur le site :

              - 1) GFATRRHVVCMTRLJJICHABRZZGHMUFDCVXGRU

              - 2) IKXCUHVRXWGJDMIBQAWAEONLHHKYTTEZPPVQMDUFCULIUVCO

              - 3) PLBVWHPAWMEEANVWGVYBEGPFRHAZO

              - 4) FPISZGLENQFRGNVEXVACTMHTHMICJECFWYRSDUJBBRVIQWIECNLPSAEXPLRLDQBSVRL

              - 5) YPANIVAREIOFNUVYMHKZYKGAPXQEUPTZPSDBVEYBNFBQZIERRNTR

              - 6) DADEGVWABCMWOOCQWYZVDAHZNNQAMONGDFGFTAKALYIMMMTRJLIVS

              - 7) VLTRGZLYBTYOIEVYTEYMSKOYGKMEEEMVLYRBDUZOSGMMETEEVBGHP

 

            Nous espérons que cette première partie vous a plu et satisfait. Sur ce, à vos crayons, et amusez vous bien !


-----------------------------------------------------------------------

Hannibal & Nightm4re

           

Pour nous contacter :

Hannibal : vinakin@hotmail.com (MSN et mail)

Nightm4re : nightm4re@espionet.com (mail)
nightm4re0024@hotmail.com (MSN)