dimanche 26 janvier 2014

Oh Fkliiuh Gh Fhvdu. (Le Chiffre De César, si vous préférez...)


                                        Quel enfant n'a jamais joué à l'espion ? Qui ne s'est jamais pris, l'espace de quelques instants, pour James Bond ou Mata Hari ? Et c'est vrai qu'a priori, c'est un des jobs les plus cools du monde, ne serait-ce que pour les stylos explosifs, les montres lasers, les chaussures-poignards et autres gadgets improbables piqués à Q. Fatalement, tout agent secret doit, à un moment ou à un autre, se confronter à un message codé : pour ma part, j'avais mis au point un chiffre assez astucieux, qui me permettait d'échanger des messages avec mes amies lors des études surveillées, sans craindre les éventuelles interceptions par notre Dr No de surveillant - chat inclus, mais c'est une autre histoire...

                                        La cryptographie représente en effet un atout majeur et, dans l'Histoire, les Hommes ont très vite compris tout l'intérêt de pouvoir échanger des messages qui resteraient abscons aux yeux des ennemis. Car enfin, pourquoi se casser la tête à élaborer une stratégie impeccable, si vous ne pouvez la communiquer à vos alliés sans risquer de la dévoiler au camp d'en face ? A ce petit jeu, les Romains ne sont pas les derniers.

Vignette extraite de l'album "Le Devin". (©Goscinny & Uderzo.)

                                        L'un des codes les plus anciens, et sans doute l'un des plus célèbres, porte le nom de "chiffre de César". S'il existait déjà d'autres méthodes de cryptage plus perfectionnées et si César n'a sans doute pas inventé le chiffre auquel il a laissé son nom, c'est pourtant grâce à lui que cette technique particulière est passée à la postérité. Selon Suétone, il l'utilisait dans sa correspondance secrète, en particulier militaire :
"On a conservé en outre ses lettres à Cicéron, et celles qu'il adressait à ses familiers sur ses affaires domestiques : quand il avait à leur faire quelque communication secrète, il usait d'un chiffre, c'est-à-dire qu'il brouillait les lettres de telle façon qu'on ne pût reconstituer aucun mot : si l'on veut en découvrir le sens et les déchiffrer, il faut substituer à chaque lettre la troisième qui la suit dans l'alphabet, c'est-à-dire le D à l'A, et ainsi de suite. " (Suétone, "Vie De César", LVI.)

"Jules César Écrivant Et Dictant A Ses Scribes" (Toile de Jacques de Gheyn II - Ham House.)
 
                                        Le chiffre de César nous apparaît aujourd'hui d'une simplicité enfantine, mais mettez-vous à la place des premiers types qui sont tombés sur un de ces messages apparemment sans queue ni tête : en admettant qu'ils sachent lire (ce qui n'était pas forcément le cas), ils ont dû être sacrément déstabilisés ! Voire supposer qu'il s'agissait d'une quelconque langue étrangère...

                                        Il s'agit donc d'une substitution mono-alphabétique, par décalage de lettres : le texte codé s'obtient en remplaçant chaque lettre du texte original par une lettre à distance fixe, toujours du même côté, dans l'ordre de l'alphabet. Arrivé au terme des 26 lettres, on reprend depuis le début.

Prenons l'exemple d'un décalage de 3 lettres vers la droite, tel que César l'utilisait dans sa correspondance. On obtient le code suivant :

Alphabet d'origine : ABCDEFGHIJKLMNOPQRSTUVWXYZ
Alphabet encodé : DEFGHIJKLMNOPQRSTUVWXYZABC

                                        Le nombre de lettres d'écart correspond à la clé du code, qu'il suffit de transmettre au destinataire afin que celui-ci soit en mesure de déchiffrer le message. A l'origine, cette clé était implicite, puisque le chiffre de César correspondait à un décalage de 3 lettres vers le droite. Ce n'est que plus tard que le terme "chiffre de César" en est venu à désigner tout système de substitution similaire. Dans certains jeux, on s'amuse parfois à désigner le code choisi par un jeu de mots : le code avocat (A vaut K) correspond à un décalage de 10, le code Hélène (L - N) à un décalage de 2.    

                                        Admettons que je veuille transmettre le message suivant : "ATTENTION, JULES ! BRUTUS EST DERRIÈRE TOI!" Avec mon code, j'obtiens le texte : "DWWHQWLRQ, MXOHV ! EUXWXV HVW GHUULHUH WRL!" Ce qui n'avancera guère César : même en connaissant la clé de cryptage, il y a fort à parier que Brutus l'aura poignardé avant qu'il ait fini de décoder ma mise en garde... Mais l'idée générale est là.


                                        L'inconvénient majeur de ces codes par décalage tient au fait que, puisque l'alphabet latin ne comporte que 26 lettres, il n'existe que 26 manières de crypter un message. Et encore ceci inclut-il la clé nulle, c'est-à-dire celle qui ne modifie pas le texte. C'est donc un code peu sûr. Dès lors que l'on sait que l'on est en présence de ce type de cryptage, il suffit au pire de tester toutes les possibilités (ce qu'on appelle l'attaque par force brute), ou d'employer une méthode plus subtile, efficace surtout en cas de textes plus longs : le décryptage séquentiel. Elle consiste à analyser la fréquence d'apparition des lettres, puisqu'on sait que, dans une langue donnée, certaines lettres se rencontrent plus fréquemment que d'autres. Il suffit donc de repérer dans le texte codé des lettres qui, apparaissant fréquemment, ont de bonnes chances de correspondre aux lettres les plus souvent utilisées dans la langue du message d'origine. La méthode est plus délicate à mettre en œuvre avec un message court, pour lequel plusieurs possibilités de décodage apparaîtront.

Edgar Allan Poe.
 
Elle est notamment détaillée par Edgar Allan Poe, dans sa nouvelle "Le Scarabée d'Or." :
"Or, la lettre qui se rencontre le plus fréquemment en anglais est e. Les autres lettres se succèdent dans cet ordre : a o i d h n r s t u y c f g l m w b k p q x z. E prédomine si singulièrement, qu'il est très rare de trouver une phrase d'une certaine longueur dont il ne soit pas le caractère principal. (...) Pour vérifier cette supposition, voyons si le 8 se rencontre souvent double ; car l'e se redouble très fréquemment en anglais, comme par exemple dans les mots meet, fleet, speed, seen, been, agree, etc. Or, dans le cas présent, nous voyons qu'il n'est pas redoublé moins de cinq fois, bien que le cryptogramme soit très court. Donc, 8 représentera e. Maintenant, de tous les mots de la langue, the est le plus utilisé ; conséquemment, il nous faut voir si nous ne trouvons pas répétée plusieurs fois la même combinaison de trois caractères, ce 8 étant le dernier des trois. Si nous trouvons des répétitions de ce genre, elle représenteront très probablement le mot the." (Edgar Poe, "Le Scarabée d'Or".)

                                        On ignore quelle était l'efficacité du chiffre de César dans l'antiquité, mais l'absence de traces écrites relatives à des techniques susceptibles de casser ce code, aussi basique soit-il, peut laisser penser qu'il présentait plus de sécurité que de nos jours. Les traces les plus anciennes de décryptage séquentiel qui nous sont parvenues remontent seulement au IXème siècle, et sont l’œuvre du philosophe et mathématicien arabe Al-Kindi.

Disque permettant de décrypter le chiffre de César. (©mr.santak via wikipedia)

                                        Mais en dépit ou peut-être à cause de sa simplicité, le chiffre de César fut longtemps utilisé. On le retrouve par exemple sur la Mezuzah juive, où les noms de Dieu apparaissent ainsi cryptés. Les militaires y ont aussi eu recours, y compris plus récemment - comme par exemple les sudistes pendant la guerre de Sécession, ou encore l'armée russe en 1915.

                                        Étrangement, le chiffre de César a également été employé sur internet, et plus particulièrement sur les forums, sous la forme du ROT-13. Le ROT-13 désigne simplement une substitution (ou rotation) par 13 lettres d'écart dans l'alphabet. Il ne s'agit pas ici de diffuser une quelconque message codé, mais de faire en sorte que le message en question ne puisse pas être lu de façon involontaire - lorsqu'il dévoile l'intrigue d'un film ou d'un livre, ou qu'il apporte la réponse à une énigme. Le système est cependant tombé en désuétude avec les progrès technologiques, qui permettent désormais de dissimuler le texte dans un cadre blanc, et de le dévoiler d'un simple clic. César y aurait perdu son Latin !

Bernardo Provenzano.
Deux exemples relativement récents méritent encore être cités pour illustrer cet article. D'abord celui de Bernardo Provenano, le parrain de Cosa Nostra arrêté en Sicile en Avril 2006 après une cavale de plusieurs décennies : il communiquait avec ses hommes par des messages cryptés selon le chiffre de César et remplaçait ensuite les lettres par des chiffres. Le A devenait un 4, le B un 5, etc. Deuxième exemple, le cas de Rajib Karim, condamné en 2011 en Grande-Bretagne pour terrorisme après avoir utilisé le chiffre de César pour communiquer avec des islamistes Bangladeshi et préparer, entre autres réjouissances, des attentats contre la British Airways.

                                        Dans un registre plus pacifique, le site wikipedia rapporte que le chiffre de César a parfois été utilisé au XIXème siècle, dans les pages d'annonces personnelles de journaux tels que le Times, par des couples d'amants qui échangeaient ainsi de manière confidentielle.

                                        Plus proche de César, son sucesseur Auguste utilisait le même type de code, avec un décalage de 1 et sans boucle alphabétique :
"Lorsqu'il se sert d'un chiffre, il remplace A par B, B par C et ainsi de suite pour les autres lettres; quant à l'X, il le remplace par deux A." (Suétone, "Vie d'Auguste", LXXXVIII.)

Jules César.


Pour en revenir à Jules César, plusieurs auteurs antiques évoquent également un ouvrage traitant des différents chiffres qu'il aurait employés, ce qui tendrait à prouver qu'il utilisait d'autres codes ou d'autres clés, sans doute plus complexes. Du reste, le chiffre de César a donné lieu à de nombreuses variantes et améliorations, visant à le complexifier de sorte qu'il soit moins facile à casser.

                                        Le chiffre de Vigenère (nommé après son inventeur, Blaise de Vigenère), par exemple, se base sur le chiffre de César. Pour résumer, la valeur du décalage est définie selon un mot convenu à l'avance et change selon la position de la lettre codée dans l'alphabet. (voir ici pour plus de détails) Ce type de code peut se révéler complètement incassable, mais les conditions à réunir sont telles que, dans les faits, ce n'est guère faisable : il faut un mot-clé aussi long que le texte, utilisé une seule fois, choisi au hasard, et connu seulement de l'auteur du message et de son destinataire. L'utilisation d'un mot-clé plus court que le message à décoder, en revanche, induit la présence d'un décalage cyclique, que la technique permet aujourd'hui de détecter plus facilement.

                                        Pour conclure, il me faut citer Hérodote, qui rapporte un autre procédé beaucoup plus original, permettant de communiquer de façon secrète :
" Sur ces entrefaites, il arriva de Suses un courrier qui lui enjoignait de prendre les armes. Cet ordre était empreint sur la tête du courrier. Histiée, voulant mander à Aristagoras de se soulever, ne trouva pas d'autre moyen pour le faire avec sûreté, parce que les chemins étaient soigneusement gardés. Il fit raser la tête au plus fidèle de ses esclaves, y imprima des caractères, et attendit que ses cheveux fussent revenus. Lorsqu'ils le furent, il l'envoya aussitôt à Milet, avec ordre seulement de dire, à son arrivée, à Aristagoras de lui raser la tête, et de l'examiner ensuite." (Hérodote, "Histoires", V - 35.)
Ingénieux, et certainement très efficace. A moins, on en conviendra, qu'il s'agisse d'un message urgent...


Si le cœur vous en dit, je vous signale une petite fiche sur le sujet, ici.

4 commentaires:

  1. Promis…le prochain commentaire sera codé! mais avant il faut que je m'entraîne …. en attendant le résultat ,Bravo !

    RépondreSupprimer
  2. Codé ou pas, merci pour le commentaire ! En attendant de maîtriser parfaitement le code de César, il y a un site qui fait le travail tout seul : par ici.

    Ah, si Vercingétorix avait connu internet, qui sait comment aurait tourné la guerre des Gaules ?!

    RépondreSupprimer

Réactions, commentaires, messages : exprimez-vous !