Correction des messages codés du livre Mathématiques d’école

Premier message

Le premier est YHQL YLGL YLFL, on devine rapidement que la transformation utilisée est une simple translation. La longueur des trois mots et le contexte historique permettent vite de trouver laquelle : x↦x+3. Le message s’obtient en utilisant la translation réciproque : x↦x−3. Il s’agit bien sûr de VENI VIDI VICI.

Deuxième message

Méthode des fréquences

Calcul de la table des fréquences

Pour l’autre message, on va utiliser la méthode des fréquences, ligne par ligne.

NGWBLOINOAPMPOWBUWQMBBQDMQPOIIGWVVLOIWBA
OVMQPOAOPMQPHMTGBHWZOTLGWQIIOSOZPHOPGQPIH
OAJOSQZOOIHOBWOIHONLMAOIHOVLOAJOIHOALGAJOBI

Commençons par un tableau comptant les lettres par lignes :

LettreABCDEFGHIJKLMNOPQRSTUVWXYZVérification
Ligne 12512423253312540
Ligne 211343137641212241
Ligne 3521453311131111143
Total881681236732598221483124

Essai utilisant la table moyenne

Les lettres les plus utilisées en français sont dans l’ordre ESARTILUNOC, ESARINTUOL ou encore EASITNRULO selon les auteurs, je parie que le O est le E et que le I est le S. Remplaçons :

NGWBLOINOAPMPOWBUWQMBBQDMQPOIIGWVVLOIWBA
ESEEESSES
OVMQPOAOPMQPHMTGBHWZOTLGWQIIOSOZPHOPGQPIH
EEEESSEEES
OAJOSQZOOIHOBWOIHONLMAOIHOVLOAJOIHOALGAJOBI
EEEESEESEESEEESEES

Si on cherche les lettres suivantes dans l’ordre de fréquence, elles sont proches et il n’est pas facile de les distinguer. ABHPQ sont assez indistinctes.

Avec deux lettres

Essayons les paires de lettres identiques, car on sait que LL, EE ou SS sont courants en français :

PaireBBIIVVOO
Effectif1211

Fausse piste, il n’y en a pas assez.

Cherchons alors les articles comme LE qui devraient être courant, d’ailleurs on note que HO est fréquent :

PaireLONOPOAOZOSOHOJOWO
Effectif313321631

Essayons si HO est LE, soit H est L :

NGWBLOINOAPMPOWBUWQMBBQDMQPOIIGWVVLOIWBA
ESEEESSES
OVMQPOAOPMQPHMTGBHWZOTLGWQIIOSOZPHOPGQPIH
EEELLESSEELESL
OAJOSQZOOIHOBWOIHONLMAOIHOVLOAJOIHOALGAJOBI
EEEESLEESLEESLEEESLEES

Là, je ne vois pas.

Application affine de n

En fait, l’auteur parle peu avant de transformation affine dans l’anneau n , cherchons si les deux lettres trouvées au début ne permettent pas de la trouver. On a O=15, I=9 et E=5, S=19.

En fait, on cherche à trouver a et b tels que l’application affine x↦ax+b [26] envoie 5 sur 15 et 19 sur 9.

On a 5a+b=15 [26] et 19a+b=9 [26], soit par soustraction, 14a=20 [26], c’est-à-dire 7a=10 [13].

On a 14=1 [13], donc 140=10 [13] mais aussi 49=10 [13], donc soit a=20 et b=9, soit a=7 et b=6.

La première solution ne permet pas d’obtenir toutes les lettres de l’alphabet, puisque 20∧26≠1, il reste x↦7x+6 [26] qui est la fonction d’encodage. Pour trouver la fonction de décodage, remarquons que 15×7=1 [26], donc 15y=x+90 [26] et x=15y+14 [26]. Essayons :

NGWBLOINOAPMPOWBUWQMBBQDMQPOIIGWVVLOIWBA
POURLESPECTATEURQUIARRIVAITESSOUFFLESURC
OVMQPOAOPMQPHMTGBHWZOTLGWQIIOSOZPHOPGQPIH
EFAITECETAITDABORDUNEBLOUISSEMENTDETOITSD
OAJOSQZOOIHOBWOIHONLMAOIHOVLOAJOIHOALGAJOBI
ECHEMINEESDERUESDEPLACESDEFLECHESDECLOCHERS

Ça marche !

Oh le canaillou qui a volontairement trafiqué la table de fréquences.

L’auteur et l’œuvre sont DQAPGBJWCGZGPBOHMSOHOBMBQI, à vous de décoder, vous avez ce qu’il faut. Si vraiment vous ne trouvez pas, compilez donc ce bout de code en C (et l’exécutable pour Linux) en utilisant gcc melange.c -o melange. Il s’utilise en ligne de commande comme suit : echo "ALGAJOBI"|./melange 15 14 pour décoder avec le choix de a=7 et b=6, de la même manière pour encoder : echo "CLOCHERS"|./melange 6 7 et pour obtenir ça : echo "CLOCHERS"|./melange 0 1.

Une autre technique

Cette page expose une autre technique de codage.

Maison