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.
|
![]() |
|
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.
Ecrivez
un programme Python qui chiffre et déchiffre une transposition par colonnes
complètes. Solution.
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.
![]() |
![]() ![]() |