La cryptanalyse est un art qui vise à rendre intelligibles des messages cryptés (cryptogrammes). Pour ce faire, un individu (cryptanalyste) devra utiliser un ensemble de techniques plus ou moins élaborées pour décrypter un cryptogramme. Il existe plusieurs méthodes de cryptages et certaines sont si élaborées que seul un ordinateur peut les décrypter. D’autres, en revanche, sont si simples que même un profane peut les décrypter. C’est le cas du cryptage par substitution monoalphabétique.
Le cryptage par substitution monoalphabétique consiste à substituer les lettres qui composent un texte par des symboles graphiques (lettres, chiffres ou pictogrammes) de manière à ce qu’un même symbole remplace toujours une seule et même lettre (monoalphabétique). Le code morse et le braille sont de bons exemples de codes de substitution monoalphabétique (figure 1), car un seul et même symbole remplace toujours la seule et même lettre.
Les textes ainsi codés sont inintelligibles à la personne qui n’est pas familière avec ces types de codes, mais ils sont par ailleurs très faciles à décrypter pour un profane en cryptanalyse.
En effet, en se servant d’indices suggérés par l’agencement des symboles dans le cryptogramme, le cryptanalyste suppose certaines lettres probables qu’il transcrit, à titre d’hypothèse, aux symboles correspondants dans le reste du message crypté. Si ces lettres l’aident à compléter des mots, alors son hypothèse est validée et il continu sur la même piste. Ces mots qui l’a découvert lui révèlent encore d’autres lettres qu’il transcrit aux symboles correspondants et répète ce processus jusqu’au décryptage complet du message. Ce processus de résolution s’apparente à celui utilisé pour résoudre un mot croisé et, de fait, est aussi simple. À la différence que les indices ne sont pas donnés d’emblée ; le cryptanalyste doit les découvrir lui-même. Ces indices, il les recherche notamment dans la fréquence d’occurrence des symboles, dans la ponctuation, l’agencement des symboles, les règles grammaticales, le contexte du message, etc.
En français, les lettres de l’alphabet apparaissent dans des proportions spécifiques dans un texte. C’est ce qui permet au cryptanalyste d’en identifier quelques-unes. C’est l'une des premières choses à faire pour décrypter un message codé par substitution monoalphabétique. Par exemple, le « E » en français est la lettre qui revient le plus souvent et de façon disproportionnée par rapport aux autres (plus du double). Voici dans quelle proportion apparaissent toutes les lettres de l’alphabet dans un texte en français (Figure 2) :
Comme n’importe quelle mesure statistique, ces pourcentages de fréquence d’occurrences ne doivent pas être considérés comme une mesure précise. La longueur du message et sa teneur sont des raisons susceptibles d’influencer la fréquence d’occurrence des lettres. Comme nous le verrons plus loin, ces valeurs peuvent même être trompeuses dans certains cas.
Un bon moyen mnémotechnique pour retenir les dix lettres les plus utilisées est de créer un acronyme à partir de celles-ci :
ESANTIRULO
Il est à noter que l'ordre des lettres de l'acronyme ne coïncide pas parfaitement avec l'ordre décroissant des données statistiques d'occurrence ; le « A » viendrait avant le « S » si c'était le cas. L'ordre est plus ou moins important, car les proportions peuvent varier selon la longueur du message, sa teneur ou son contexte. Par contre, la prépondérance du « E » en français est si dominante qu’il mérite la première place. Ce qui est certain, c'est que vous retrouverez l'une de ces lettres dans la plupart des messages cryptés.
Une autre forme de code par substitution monoalphabétique et le plus vieux code jamais conçu : le code de César. Il est appelé ainsi, car il était employé par les armées romaines, il y a plus de deux-mille ans. Il consiste à substituer une lettre en utilisant un décalage arithmétique par rapport à l’ordre des lettres dans l’alphabet. Par exemple, le « A » qui est à la position 1 dans l’alphabet peut être décalé de (+5) positions et se retrouver à la position 6. Dans les fait, c’est la lettre F qui se retrouve naturellement à cette position, alors si le message en clair contient la lettre A, elle deviendra la lettre F dans le message codé (figure 3).
Avec la clé (+5), la phrase « Le chien est l’ami de l’homme et souvent son modèle. » devient :
QJ HMNJS JXY Q’FRN IJ Q’HTRRJ JY XTZAJSY XTS RTIJQJ.
ou
17/10 8/13/14/10/19 10/24/25 17’/6/18/14/ 9/10 17’/13/20/18/18/10 10/25 24/20/26/1/10/19/25 24/20/19 18/20/9/10/17/10.
Donc, en soustrayant 5 aux valeurs numériques des lettres du message codé, il devient facile à décoder pour celui qui détient la clé (+5). Ce type de code est aussi très facile à décrypter, car, pour le cryptanalyste, il lui suffit de trouver un seul mot pour déterminer la clé du code. Et pour trouver ce mot, le cryptanalyste procédera de la même manière que dans l'exemple de décryptage qui suit.
Prenons un exemple concret de décryptage pour mettre en pratique les quelques principes que nous venons d’aborder.
L’exemple choisi est un proverbe chinois. Le contexte du message est assez particulier pour nous suggérer quelques mots au moment opportun. Gardons ceci en mémoire, car le message est très court et nous aurons besoin du moindre indice si l'on veut émettre des hypothèses pertinentes. Voici donc un cryptogramme qui n’utilise pas le code de César, mais une substitution monoalphabétique aléatoire.
JYOF TYFOQ AOQ X YIMVOLDY FX VKODY TKLLXQD FX MVKEKLWYOV WYJ DVKOJ.
D’abord, j’attire votre attention sur le quatrième mot ; le symbole « X » qui est seul. En français, une lettre seule ne peut être que l’interjection « ô », le pronom personnel « y », le verbe avoir « a » ou la préposition « à ». Or, comme le « X » se retrouve à la fin de deux mots de deux lettres et qu’il n’y a aucun mot de deux lettres en français qui se termine par « o » ou « y », on peut assurément conclure qu’il s’agit de la lettre « a » ou « à ». Remplaçons donc toutes les occurrences de « X » par « a » dans le cryptogramme.
JYOF TYFOQ AOQ a YIMVOLDY Fa VKODY TKLLaQD Fa MVKEKLWYOV WYJ DVKOJ.
Nos deux mots de deux lettres ne peuvent être que la, ma, va, ta, sa, ou ça. Or, le premier mot « JYOF » se termine par le symbole « F », il serait donc impossible que nos mots de deux lettres commencent par « m », ou « v ». Et si « F » est « c » notre premier mot « JYOF » ne pourrait être que « avec », ce qui attribuerait la lettre « v » au symbole « Y » qui lui se retrouve à la fin et au début du cinquième mot « YIMVOLDY ». Il est moins que probable qu’un mot se termine par « v » dans un proverbe chinois, alors on peut aussi exclure le « c » comme probabilité pour le symbole « F ». Donc, nos mots de deux lettres sont la, ta ou sa et notre premier mot doit donc se terminer par « l », « t » ou « s ».
Maintenant nous allons compter la fréquence d’occurrence de toutes les lettres du cryptogramme afin de les comparer avec les statistiques d’occurrence des lettres en français (ESANTIRULO).
Y=7, O=7,
V=5,
D=4, X=4, L=4, F=4,
J=3, Q=3,
M=2, T=2, W=2,
A=1, E=1, I=1, K=1,
À première vu, les sept occurrences des symboles « Y » et « O » suggère le « e » et le « s ». Or, aucune combinaison n’est adéquate avec les lettres « e » et « s » dans un mot de quatre lettres qui se terminerait par « l » ou « t ». D’ailleurs, l’emploie du singulier avec les mots la, ta ou sa nous suggère qu’il n’y a peut-être pas autant de « s » dans cette phrase. Comme vous voyez, un texte aussi court fausse nos données statistiques et peut nous envoyer sur de mauvaises pistes. Il faut donc changer de tactique et essayer d’autres combinaisons pour les symboles « Y » et « O ».
Comme ces symboles sont ceux reviennent les plus souvent dans le cryptogramme l’un des deux est sûrement le « e ». Essayons donc la combinaison « e » pour « Y » et « u » pour « O ». Une supposition culottée, étant donné que le « u » n’est pas censé être une lettre très utilisée. Mais, le bigramme « eu » à la fin du mot « MVKEKLWYOV » semble prometteur, car il suggère une terminaison en « eur » ou « eux ».
JeuF TeFuQ AuQ a eIMVuLDe Fa VKuDe TKLLaQD Fa MVKEKLWeuV WeJ DVKuJ.
Cette combinaison semble plus plausible, car le « u » se combine bien au « e » dans le premier mot aussi. Si l’on retourne à nos propositions de départ à propos de nos mots de deux lettres, la solution nous saute aux yeux.
En effet, les premières lettres de nos deux mots de deux lettres étaient probablement « l », « t » ou « s ». En supposant que le symbole « F » est un « l », voyez maintenant ce que cela suggère :
Jeul TeluQ AuQ a eIMVuLDe la VKuDe TKLLaQD la MVKEKLWeuV WeJ DVKuJ.
Dans le contexte d’un proverbe chinois, et si nos suppositions sont vraies, alors les trois premiers mots ne peuvent être que « Seul celui qui…». De plus, le symbole « J » en tant que « s » se retrouve à la fin des deux derniers mots. Ceci suggère l’emploi du pluriel et est donc tout à fait cohérent ; nous sommes sur la bonne piste !
seul celui qui a eIMVuLDe la VKuDe TKLLaiD la MVKEKLWeuV Wes DVKus.
Maintenant, le dixième mot se termine par « eu » avec une dernière lettre, représentée par le symbole « V », qui ne peut-être que « x » ou « r ». Or, le symbole « V » se retrouve au début du septième mot ; ce n’est donc pas un « x », mais un « r ».
seul celui qui a eIMVuLDe la rKuDe TKLLaiD la MrKEKLWeur Wes DVKus.
Ceci suggère le mot « route » au septième mot et une route s’« emprunte » au cinquième mot.
seul celui qui a emprunte la route Tonnait la proEonWeur Wes trous.
Toutes nos suppositions semblent cohérentes par rapport à l’agencement des symboles du cryptogramme, alors notre solution doit être la bonne :
Seul celui qui a emprunté la route connaît la profondeur des trous.
Vous ne retrouverez pas d’autres types de code sur le site. À moins, bien sûr, que la clé du code fasse partie de l’énigme elle même. Quoi qu’il en soit, vous découvrirez qu’il est très facile de décrypter un message ; il suffit de s’y mettre. Pour vous prouver ceci, je vous propose d’essayer la série de codes dans le document PDF déposé en pièce jointe en bas de cette page.
© Pierre Mailloux 2011 — Tous droits réservés.