Décryptement d'une transposition rectangulaire

Chapitre: VI. Chiffres de transposition Prérequis: Transpositions rectangulaires

Nous supposons que l'expéditeur de le destinataire ont choisi une permutation de période p, disons a=(a1,a2,...,ap) où chaque ai prend sa valeur dans l'ensemble {1,2,...,p} et où il n'y a pas deux ai identiques. Le message clair est découpé en blocs de longueur p, puis chaque bloc est transposé par la permutation a. Par exemple, si le (i+1)ème bloc du texte clair est Xip+1,Xip+2,...,Xip+p, alors le (i+1)ème bloc du cryptogramme sera Xip+a1,Xip+a2,...,Xip+ap. On parle donc d'une permutation rectangulaire par lignes complètes.

Ce système de chiffrement est vulnérable à une analyse des fréquences des bigrammes, car les lettres qui sont côte à côte dans le message clair auront tendance à rester côte à côte dans le cryptogramme.

Utilisation de l'applet java

Pour casser un chiffre de transposition rectangulaire, on cherche par tâtonnement la période (le nombre de colonnes de la grille) puis, on utilise une matrice pour valider la longueur que l'on a supposée. Deux cas se présentent:

  1. Toutes les entrées de la matrice sont approximativement les mêmes.
  2. Chaque ligne exceptée une a un maximum qui est beaucoup plus grand que les autres entrées de la ligne. De même, chaque colonne exceptée une a un maximum qui est beaucoup plus grand que les autres entrées de la colonne.
Dans le cas 1, on conclura que la période supposée n'est pas la bonne. Il faut essayer avec une autre période.
Dans le cas 2, la période est juste. Il faut maintenant reconstruire la permutation en cliquant sur les cellules qui contiennent la valeur maximum.

L'applet ci-dessous est programmée pour illustrer le processus de décryptement.

Remarque: si vous entrez un texte à chiffrer, assurez-vous que le nombre de lettres est un multiple de la période de la permutation (au besoin ajoutez des nulles), sinon la fin du message risque de disparaître.


Référence


Didier Müller, 9.11.02