Transpositions rectangulaires

Une transposition rectangulaire consiste à écrire le message dans une grille rectangulaire, puis à arranger les colonnes de cette grille selon un mot de passe donné (le rang des lettres dans l'alphabet donne l'agencement des colonnes). Dans l'exemple ci-dessous, on a choisi comme clef GRAIN pour chiffrer le message SALUT LES PETITS POTS. En remplissant la grille, on constate qu'il reste deux cases vides, que l'on peut remplir avec des nulles ou pas.

G R A I N
2 5 1 3 4
S A L U T
L E S P E
T I T S P
O T S (A) (B)
A G I N R
1 2 3 4 5
L S U T A
S L P E E
T T S P I
S O (A) (B) T

Il existe ensuite plusieurs variantes:

Transposition par lignes incomplètes.
Lire le texte ligne par ligne.
LSUTA SLPEE TTSPI SOT
Transposition par lignes complètes.
Lire le texte ligne par ligne (après avoir rempli les cases vides).
LSUTA SLPEE TTSPI SOABT
Transposition par colonnes incomplètes.
Lire le texte colonne par colonne.
LSTSS LTOUP STEPA EIT
Transposition par colonnes complètes.
Lire le texte colonne par colonne (après avoir rempli les cases vides).
LSTSS LTOUP SATEP BAEIT


Le programme javascript ci-dessous vous permettra de faire des transpositions par lignes complètes.

Texte clair

Mot-clef
Texte chiffré


Exercice

Programmation

Ecrivez un programme Python qui chiffre et déchiffre une transposition par colonnes complètes. Solution.


Comment décrypter une transposition rectangulaire ?

Soit le cryptogramme: RTFSA NRENU ERIMO ILLDN LOEDA LUSRS MROC ONPMN ETEUS ESIS

Tout d'abord, on doit pouvoir reconnaître un tel chiffre. Pour ce faire, on détermine les fréquences des lettres dans le texte codé. Si elles sont proches de celles établies, on peut penser à une transposition, puisque chaque lettre est représentée par elle-même.
L'étape suivante consiste à deviner la longueur de la clef. Il arrive que l'on devine un ou des mots selon le contexte. Imaginons que l'on suspecte que la séquence "MILLION DE DOLLARS" doit apparaître dans le texte. On observe que les bigrammes MN, ID, LE, LD, IO, OL apparaissent. Sachant qu'entre M et N, entre I et D, entre L et E, etc, il y a cinq lettres, on déduit une longueur de clef de 6. On découpe alors le texte codé en blocs de six lettres que l'on dispose les uns en dessous des autres:

R
T
F
S
A
N
R
E
N
U
E
R
I
M
O
I
L
L
D
N
L
O
E
D
A
L
U
S
R
S
M
R
O
C
O
N
P
M
N
E
T
E
U
S
E
S
I
S

Il ne reste plus qu'à réarranger les colonnes, ce qui est facile car on sait que l'on doit passer de IMOILL à MILLIO (en vert dans le tableau).

Le message clair est (surlignez la fin de la ligne): Transférer un million de dollars sur mon compte en Suisse.

Si on a affaire à une transposition par lignes ou par colonnes complètes, on sait que les dimensions du tableau seront des diviseurs du nombre total de lettres. Dans notre exemple, il y a 42 lettres; 42 = 2x21 = 3x14 = 6x7 = 7x6 = 14x3 = 21x2. Le rectangle a forcément une de ces six dimensions et, par conséquent, la clef a une longueur de 2, 3, 6, 7, 14 ou 21 lettres.


Lien


  Didier Müller, 29.7.23