Accueil » Rubriques » Enrichir vos histoire » Le message codé

Le message codé

Temps de lecture : 11 minutes

Finalement, à l’issue d’une longue cavale pour intercepter le messager du roi, vos personnages découvrent qu’il portait un message codé… hahaha !

Et c’est après avoir intercepté le messager du roi que les PJ tombent enfin sur l’importante missive qui est malheureusement pour eux, un message codé. Nous avons parlé il y a quelques temps des moyens de communications à travers les âges. Lorsqu’il s’agit de transmettre une information de la plus haute importance, il faut veiller à ce que le message ne tombe pas entre de mauvaises mains et que seul son destinataire puisse l’avoir. Très vite, il a fallu trouver des ruses et des stratégies pour mettre au point une transmission codée de l’information.

Briser le code

Bien entendu, décoder un message codé à l’aide de son code est chose aisée. Plus généralement, lors d’une partie de jeu de rôle, ce genre de message est intercepté par les joueurs qui auront pour tâche d’en percer le secret. Il sera alors nécessaire de briser le code du message codé.

Les techniques n’ont fait que s’améliorer pour résister au mieux… je vous propose un petit panorama des techniques les plus utilisées, mais avant quelques notions de cryptanalyse :

  • Les chiffrements par substitutions monoalphabétiques sont assez simples à briser, puisqu’une lettre est toujours représentée par un seul et unique symbole.
  • Les chiffrements par substitution polyalphabétique sont un peu plus difficile puisqu’un caractère sera représenté par plusieurs caractères différents.
  • Les chiffrements par transposition sont rigolos aussi… plutôt que de substituer les lettres, on les présente dans le désordre, le destinataire disposant des techniques de classement.
  • Les chiffrements modernes quant à eux utilisent des formules mathématiques permettant de masquer les lettres dans un charabia de chiffres totalement absconds pour l’être humain !

Le code César (monoalphabétique)

L’une des techniques les plus basiques de codage hérite du code César, qui porte ce nom car Jules César utilisait celui-ci pour communiquer secrètement.

Il y employait, pour les choses tout à fait secrètes, une espèce de chiffre qui en rendait le sens inintelligible, et qui consistait, je le dis pour ceux qui voudront les déchiffrer, à ranger des lettres dans l’alphabet, en écrivant la quatrième pour la première, c’est-à-dire le d pour le a, et ainsi de suite. – Suétone, Vie des douze Césars, Livre I, paragraphe 56

Le principe est simple, il suffit de décaler l’alphabet d’un certain nombre de lettres pour obtenir le code… le code original décale l’alphabet de 3 lettres, voici la table de correspondance :

Original : ABCDEFGHIJKLMNOPQRSTUVWXYZ
Chiffré :  DEFGHIJKLMNOPQRSTUVWXYZABC

Des variantes du code permettent de changer la valeur du décalage… ainsi, une fois qu’une correspondance est trouvée, il ne reste plus qu’à faire correspondre le reste de l’alphabet… Le code avec une valeur de décalage de 13 est particulier :

Original : ABCDEFGHIJKLMNOPQRSTUVWXYZ
Chiffré :  NOPQRSTUVWXYZABCDEFGHIJKLM

Ce code s’appelle code ROT-13, et la lettre l’originale d’une lettre chiffrée (par exemple O pour B), correspond toujours à la version chiffrée de l’originale (soit B pour O).

Un outil automatisé pour décoder/coder : http://www.dcode.fr/chiffre-cesar

Les alphabets codés (monoalphabétique)

Les alphabets codés forment une technique de chiffrement très simple par l’intermédiaire d’un alphabet connu que d’un petit nombre de personnes. Souvent lié à une organisation, ces alphabets disposent souvent d’une écriture logique.

Dans l’aventure de Nephilim : Initiation, les personnages-joueurs découvrent le journal d’un templier célèbre, celui-ci est codé dans le chiffre des Templiers, décodable à partir de la croix des huit béatitudes, le symbole de l’ordre des Templiers.

Par Alphabet_templier.jpg: Gattacaderivative work: McSush (talk) — Alphabet_templier.jpg, Domaine public, https://commons.wikimedia.org/w/index.php?curid=10190056

Le principe est simple, chaque symbole correspond à une branche stylisée de la croix et à une lettre, voici l’aide de jeu que les personnages trouvent (une croix avec les lettres disposées dessus). Notez que ce code a réellement existé.

La croix des huit béatitude, extrait du livret des annexes de Nephilim Initiation. © 2005 UBIK

Au passage, une astuce… le J n’existait pas !

Un outil automatisé pour décoder/coder : http://www.dcode.fr/chiffre-templiers

Il existe aussi le code Pig Pen des Francs-Maçons qui utilise la même logique… cette fois avec un dièse (#) et une croix (×). Chaque lettre est disposée dans le symbole, un point ajouté permet de gérer la répétition.

Par Original téléversé par Dake sur Wikipedia français — Transféré de fr.wikipedia à Commons., FAL, https://commons.wikimedia.org/w/index.php?curid=2347090

Un outil automatisé pour décoder/coder : http://www.dcode.fr/chiffre-pig-pen-francs-macons

Rien ne vous interdit d’imaginer d’autres alphabets codés…

Le chiffre de Vigenère (polyalphabétique)

Les codes monoalphabétiques se brisent très facilement… le chiffre de Vigenère (16ème siècle) utilise une clé pour briser la monotonie du chiffre, sans la clé, il va être très difficile de décoder le message. La clé peut avoir n’importe quelle taille, et là, ça devient vraiment rigolo !

Le chiffrement commence simultanément à la première lettre du message et de la clé. Pour chaque lettre à chiffrer, nous allons additionner la lettre du message et la lettre de la clé correspondante, une fois la clé terminée, il suffit de boucler au début…

L’addition se fait en ajoutant les positions des deux lettres et en les passant par un modulo 26, le résultat donnant la position de la lettre chiffrée… tout le monde a suivi ? non ? En clair, si je chiffre R avec la lettre E, j’obtiens : 18 + 5 = 23, soit le … V

Le modulo permet de soustraire 26 lorsque le nombre est supérieur ou égal à 26, donc on reboucle sur les premières lettres de l’alphabet… si je chiffre R avec M, j’obtiens 18 + 13 = 31 outch, ça dépasse 26, donc, 31 – 26 = 5, donc la lettre E, ça va ? En vrai, le modulo, c’est la partie « restante » de la division euclidienne, vous savez, la division posée comme en primaire… bon, et si vous n’avez pas compris, je ne vous veux pas à une de mes tables de Rolemaster !

Si je veux chiffrer la phrase « AUX PORTES DE L IMAGINAIRE UN SITE QUI EST TROP GENIAL » avec la clé « GARTHH », j’obtiens :

Original : AUXPORTESDELIMAGINAIREUNSITEQUIESTTROPGENIAL
Clé :      GARTHHGARTHHGARTHHGARTHHGARTHHGARTHHGARTHHGA
Chiffré :  GUOIVYZEJWLSOMRZPUGIIXBUYIKXXBOEJMAYUPXXUPGL

Comme vous pouvez le remarquer le A va être codé en G, puis en R, en G, puis pour finir en G… avec ce code, on piège la technique de l’analyse de fréquence. D’ailleurs, cette dernière nous désigne le X et le U comme étant les lettres les plus présentes… le X correspond effectivement au E (3 fois… 1er rang en français), mais aussi au Q et au G… le U au U, au N (3 fois, 5ème rang en français) et au 0… cette analyse n’est pas totalement fausse, mais elle est belle est bien faussée… plus la clé est complexe (éviter les A, les répétitions de caractères et d’une taille importante), plus l’analyse sera faussée !

Un outil automatisé pour décoder/coder : http://www.dcode.fr/chiffre-vigenere

Code Enigma (polyalphabétique)

Avec le code Enigma, on commence à atteindre les limites du déchiffrement par l’homme. Le processus de chiffrement étant assuré par une machine pouvant utiliser un grand nombre de paramètres, le temps nécessaire à son décodage demande bien plus de travail qu’avec un chiffre Vigenère… voir, il est impossible dans un temps imparti de trouver la clé de chiffrement.

Par Gind2005Travail personnel, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=21490368

Je ne renterai pas dans les détails du fonctionnement de cette machine, mais il aura fallu plusieurs années, plusieurs grands mathématiciens (dont Alan Turing) pour venir à bout du chiffrement de la version M4 de la machine Enigma… Le problème n’était pas tant l’algorithme de chiffrement, mais la vitesse à laquelle les clés changeaient qui empêchait de briser le code avant changement.

Original : AUXPORTESDELIMAGINAIREUNSITEGENIAL
Chiffré :  IDBVSYGGOHYEUDESRHYUJVERWZUMXOTVRH

Un outil automatisé pour décoder/coder : http://www.dcode.fr/chiffre-machine-enigma

Une technique plus littéraire…

Une technique de codage assez amusante est d’utiliser une œuvre commune aux deux correspondants et de coder les messages en utilisant les mots du livre : chaque correspondant reçoit une liste de nombres qui correspondent, à la page, à la ligne et au numéro du mot dans la ligne… pour détecter ce genre de code, c’est assez simple, les nombres sont toujours par trois et le couple deuxième/troisième est souvent dans une fourchette identique… Le plus dur consiste à trouver le livre utilisé pour le codage… ha, oui, c’est peut-être un détail… mais il faut que les deux correspondants disposent exactement de la même édition ! Il faut aussi trouver une convention de comptage pour les apostrophes… généralement, deux mots séparés d’une apostrophe comptent pour un seul.

Si vous avez Le Malade Imaginaire en édition Classiques Illustrés Hachette, vous devriez trouver sans mal :

52/20/5/93/7/4/27/22/3/69/13/2/30/5/4/60/34/8/113/13/5/45/7/8

Les techniques chiffrement moderne

Une grosse partie d’Internet et de l’économie numérique repose sur le chiffrement des connexions (vous savez, les fameux « HTTPS »). Aujourd’hui, il est quasi impossible de briser un chiffrement sans un indice important, la meilleure solution consiste donc à se tourner vers le social engineering pour obtenir les informations souhaitées de la part de l’utilisateur lui-même.

Le code ASCII, du texte vers le numérique

Si nous parlons de numérique, c’est parce qu’un système informatique ne peut comprendre que des nombres, mais il les comprend très vite, et bien plus vite que n’importe quel être humain. Pour stocker du texte, un ordinateur doit donc le convertir en nombres, le code ASCII est le code de base permettant de représenter des caractères au format numérique, chacun d’entre eux étant représenté par un nombre, un texte devient donc une suite organisée de nombres.

La table ASCII – By ZZT32Own work, Public Domain, https://commons.wikimedia.org/w/index.php?curid=2253615

Le code ASCII est un code 8 bits, il faut donc 1 octet pour stocker un seul caractère dans un fichier texte, voici un exemple de fichier texte vu avec un éditeur Hexadécimal d’un côté la version hexadécimale, de l’autre, la version ASCII du même texte… si vous comparez avec plus haut, ça doit correspondre.

Le fichier texte vu avec un éditeur hexadécimal (FrHed)

Le chiffrement moderne

Et puisque mon ordinateur est capable d’effectuer quasi 3 millions de calculs à la seconde (au moins !), il va être capable d’appliquer tout un tas de transformées mathématiques sur cette suite de nombre pour le rendre totalement illisible par un être humain ! Donc, je le répète, le chiffrement moderne est quasi inviolable sans une faille humaine… généralement, on trouve toujours le mot de passe pour accéder aux fichiers chiffrés dans un fichier texte appelé « mot_de_passe_des_fichiers_privés.txt » !

Voici une vue du même fichier texte que précédemment, mais cette fois après être passé dans un outil de chiffrement simple (le logiciel gratuit Axcrypt chiffré avec la phrase « je ne donnerais pas cette passphrase »).

Le même fichier, chiffré avec AxCrypt

Ce n’est pas que moi qui le dis, mais de nombreux experts de la question… si vous avez une petite heure et demie à perdre, voici une petite conférence enregistrée en 2013 avec Benjamin Bayard et Jérémy Zimmermann sur le chiffrement, la sécurité et Internet.

Autre solution amusante pour cacher un message avec des techniques modernes, la stéganographie… elle consiste à masquer des données, en l’occurrence du texte brut (donc, une sorte de « code ASCII » très léger) dans une photo, une musique… ces « gros » fichiers de données (3Mo, ça veut donc dire qu’ils contienne 3 millions de caractères ASCII !) peuvent très facilement cacher à la fin du fichier, dans une zone que ni un afficheur de photo, ni un lecteur MP3 ne peut accéder, des données textes… quelle différence fait-on sur une photographie de 5Mo qui contient quelques 16 octets de textes à la fin ?

Décoder un message codé

Il n’existe que deux solutions pour parvenir à décoder un message codé quand on ne dispose pas du code :

  • Soit vous essayez de trouver la logique du code, pas si simple avec les systèmes plus avancés utilisant des clés… ça fonctionne bien sur les codes César et assimilés et les alphabets codés qui disposent toujours d’une logique pour déterminer la succession des symboles.
  • Soit vous le brute-forcez, en clair, vous essayez de trouver les combinaisons les plus appropriées pour que le texte veuille dire quelque chose…

Dans tous les cas, vous devez trouver un point de départ… il existe une technique : l’analyse de fréquence. Selon la langue du message, certains caractères sont plus représentés que d’autres : en français, les lettres les plus présentes sont, dans l’ordre, le E, le A, le S et le I. Notez qu’il est possible d’utiliser l’analyse de fréquence sur le message codé et de comparer la fréquence des lettres codées avec la fréquence des lettres d’une langue… statistiquement, un code César n’y résiste pas trop, surtout si il est long !

Une fois le « E » repéré, il faut s’attaquer soit, au A et au S, soit trouver les doublons de lettres (communs aussi sur le E, mais aussi sur le S, le N, le T…). Attention, sans doublon, soit le hasard a fait en sorte qu’il n’y en ait pas dans le texte… soit nous ne sommes pas en présence d’un chiffrement par substitution monoalphabétique… et là, ça va être plus dur !

Pour terminer, soit vous continuez à y aller en force brute en cherchant des mots « évidents » comme ELLE, ET, EST, … soit, vous cherchez à trouver la logique dans le code : trouver la valeur de décalage, la logique des symboles utilisé dans cet alphabet…

Utiliser un message codé dans une aventure

Bon, maintenant, que j’ai donné toutes les clés aux joueurs pour briser un code, à vous MJ de voir ce que vous pouvez en faire…

Où, quand, comment ?

Déjà, il faut savoir une chose, c’est que lors d’une partie, faites bien attention à la diffusion à vos joueurs d’une aide de jeu codée… il y a de grande chance qu’ils se jettent tout de suite sur le décodage de celle-ci et qu’ils perdent alors le fil de l’aventure…

A mon sens, un bon message codé dans une aventure doit :

  • Arriver à un moment où les PJ « rament », une petite séance de décodage peut réveiller des joueurs endormis…
  • Ne pas être indispensable à la suite de l’aventure, et peut être décodé en parallèle de l’action si nécessaire. Il ne faut pas que l’information contenue dans le message soit bloquante.
  • Apporter des informations complémentaires importantes. Si les joueurs se prennent la tête pendant une heure pour avoir le message, ce n’est pas pour constater que le grand méchant envoie son lieutenant faire ses courses avec un liste de marchandises codées !

Création de l’aide de jeu

Là, c’est l’étape la plus décisive… et je m’adresse aussi aux auteurs professionnels, traducteurs, éditeurs… l’aide de jeu doit être lisible, très lisible… les torchons faits vite fait à la main avec pas deux symboles identiques alors qu’ils devraient l’être sont à proscrire.

Par pitié, les oublis de mots, les fautes d’orthographe, les erreurs de ponctuation, … tout ça, non ! Relisez, testez, décodez… Comment pouvez-vous faire décoder un message s’il y a une faute par ligne ? Même dans des scénarios officiels, édités et vendus, ça arrive !

Ce qu’il ne faut pas faire… extrait de Nephilim Initiation © 2005 UBIK

Si je déchiffre le bout de message codé ci-dessus, j’obtiens sur la première ligne : EN/CE/JOUR/DE/GRCE/DU/25/JUIN/1218… Ben le A de GRACE, il est où ?

Ensuite, histoire de ne pas pourrir un peu plus les joueurs, pensez à avoir la belle aide de jeu mise en forme, toute belle, et tout… et à côté une version plus « utilisable » avec les caractères espacés, et peut être, un petit tableau qui regroupe les différents symboles utilisés… cette version de travail est indispensable, et surtout, prévoyez au moins un exemplaire par joueur et quelques-uns de plus !

Utilisation d’accessoires

Cryptex
By XarkesOwn work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=38877761

Je suis l’heureux possesseur d’un cryptex… finalement, l’édition collector de Da Vinci Code a au moins eu un intérêt ! Après, il existe tout un tas d’objets, de casse-têtes qui peuvent permettre de symboliser une boîte contenant un message… ne serait-ce qu’un Rubix Cube. L’intérêt de mettre un objet entre les mains des joueurs c’est qu’ils pourront essayer à des temps perdus de manipuler la chose et d’y revenir à l’occasion… c’est assez cocasse quand en plein combat, un joueur s’exclame, « j’y suis arrivé » parce qu’il vient de parvenir à ouvrir le cryptex et à trouver le message !

Et si mes joueurs sortent un smartphone pour décoder ?

Haha, si vous êtes dans un jeu moderne et qu’il trouve un outil pour décoder le message, je crois qu’il mérite un paquet de PIX en plus celui-là ! Après, la question à se poser, est-ce possible d’avoir une assistance externe ou pas ? Que se passera-t-il, dans le jeu, si le message secret vient qu’à se promener sur Internet ?

Sources


Crédits photographiques : Alan Turing (Benedict Cumberbatch) devant sa machine © 2014 Ampersand Pictures