Cryptage complexe

28 mars 2008, par Otarie

Plus complexe que les codes qu’on trouve d’habitude chez les scouts, mais pourtant très facile d’utilisation. Ce système a deux points forts, par rapport aux autres codes. 1° Les lettres sont codées deux à deux. 2° Un mot-clef est nécessaire pour le déchiffrer.

Description

Voici une technique de codage avancée assez complexe pour ne pas pouvoir être déchiffrée sur un coup de chance. Je considère cette technique comme étant du cryptage pour débutants. Alors que les codes habituels sont facilement déchiffrables (il suffit pour les codes de décalage de faire tous les décalages afin de trouver le bon), celui-ci est relativement sûr puisqu’il possède environs 15 quadrillions de possibilités de codage (15x10^24) contre 25 pour les codes de décalages, par exemple. Néanmoins, il est utilisable et compréhensible par des enfants de 12 ans. Pour une activité scoute ou d’autres mouvements de jeunesse, elle est assez sécurisée contre le déchiffrage sauvage au hasard. En effet, elle nécessite en plus du message crypté, un mot-clef de déchiffrage. Vous avez sans doute vu un film ou un autre où le héros dit "Je ne peux pas le décrypter. Il me faut un mot de cinq lettres"... Et bien il s’agit surement de ce code.

Préparation

Pour coder/décoder les messages, une grille de 5x5 cases est nécessaire. Dans chaque case sera placée une lettre de l’alphabet, sans répétition ("i/j" étant une lettre unique). Dans les premières cases, insérez le mot-clef. Puis complétez les autres cases avec le reste de l’alphabet, dans l’ordre.

Exemple

Prenons comme exemple la phrase "Bonne chasse" et le mot-clef "SCOUT".

JPEG - 6.1 ko
Grille
Grille de codage avec le mot-clef SCOUT.

Pour coder

Après, les lettres sont codées deux à deux. Il faut déjà séparer la phrase : BO NN EC HA SS EX. Notez qu’un nombre impair de lettre est facilement réparable en ajoutant une lettre inutile et repérable à la fin.

Pour coder les binômes, il faut trouver les deux lettres sur la grille et se déplacer horizontalement jusqu’à être au-dessus ou au-dessous de l’autre lettre. Exemple pour BO :

On part horizontalement de B pour arriver en-dessous du O. (Donc à D).

On part horizontalement de O pour arriver en-dessus du B. (Donc à C).

On pourait aussi dire qu’il faut "trouver les deux autres coins du rectangle".

BO se code donc DC.

Problème pour la suite !

Aïe... Comment coder "NN" ? La manière la plus simple est de rajouter une lettre inutile entre les deux. Notre nouvelle phrase à coder est donc : BO NX NE CH AS SE. Selon le même modèle, NX se code PW.

Pas de souci pour NE, puisqu’il se code QB.

En revanche, C et H sont sur la même colonne. Si les deux lettres sont sur la même ligne ou sur la même colonne, on échange simplement leurs positions. CH donne donc HC.

AS, pour la même raison, se code SA.

SE, finalement, se code UA, comme pour les autres cas habituels.

Nous avons donc comme code final : DC PW QB HC SA UA.

A noter

Deux lettres identiques dans le message de base ne sont pas forcément codées de la même manière, puisqu’elles dépendent de leur voisine. Le premier N est codé en P, le second en Q.

Deux lettres identiques dans le message déjà codé n’ont pas focrément la même signification, pour la même raison. Le premier A signifie S, le second signifie E.

Si vous devez coder deux lettres identiques consécutives mais qu’elles ne se trouvent pas dans le même binôme, il n’y a pas besoin de placer une lettre inutile entre les deux. Exemple : ALLONS se sépare en AL LO NS, donc "LL" ne pose aucun problème.

Pour coder/décoder, déplacez-vous toujours horizontalement sur la grille. Sinon BO pourait se coder CD au lieu de DC.

Et pour décoder ?

A l’instar du ROT13, ce système permet de coder et de décoder en utilisant le même processus... EXACTEMENT le même processus. En effet, puisque BO se code DC, il suffit de recoder DC pour obtenir à nouveau BO. Les lettres étant sur les mêmes colonnes ont des résultats qui restent sur les mêmes colonnes, idem pour les lignes. Nul besoin d’ajouter les lettres inutiles entre les doubles lettres et à la fin, il faudra juste les identifier et les enlever après le décodage.

Idées

  • Organisez un jeu en deux parties. Dans la première, les participants doivent découvrir le message secret ; dans la seconde ils doivent trouver le mot-clef. Deux équipes peuvent ainsi participer sans se marcher sur les pieds puisqu’elles peuvent chacune faire une partie puis échanger. Aucune ne sera avantagée.
  • Le mot-clef n’est pas limité à 5 lettres. Il peut être plus long, il peut être plus court. Il peut même s’agir d’un pangramme (PORTEZ CE VIEUX WHISKY AU JUGE BLOND QUI FUME, quand les lettres répétées ont été enlevées, il reste la grille dans l’ordre. Toutes les lettres étant mélangées).
  • Vous pouvez donner le mot-clef sous forme d’énigme, exactement comme dans "Benjamin Gates et le Livre des Secrets" ("La dette que tout homme doit payer" pour trouver le mot-clef "DEATH", "mort") ou dans "Le Prestige" ("Le mot-clef et l’explication du tour de magie ne font qu’un" pour trouver "TESLA"). (Note : si vous n’avez pas vu ces films, rassurez-vous. Ces informations ne dévoilent rien de l’intrigue).
  • Si la lettre que vous devez inscrire au codage est I/J, utilisez tantôt I, tantôt J, pour dérouter le décodeur.
  • Vous pouvez donner un mot-clef dont les lettres se répètent. Il suffira simplement de supprimer les lettres doubles. BONJOUR peut être utilisé, mais il faut l’écrire BONJUR.

Portfolio

Grille

P.-S.

Comme tout bon codeur, vous pourrez sans doute trouver vous-même les variantes de cette technique.

Répondre à cet article