Décryptement d'une transposition rectangulaire
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:
- Toutes les entrées de la matrice sont approximativement les mêmes.
- 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.
- Presser le bouton Random Cyphertext pour que l'applet affiche un texte chiffré selon une transposition rectangulaire par lignes complètes avec une clef choisie au hasard.
- Presser le bouton Break pour commencer le processus. L'applet suppose (le plus souvent de manière erronée) que la période p=2.
- Presser le bouton Period + plusieurs fois (si nécessaire) jusqu'à ce qu'une valeur appropriée soit obtenue (voir critère ci-dessus).
- Cliquer ensuite sur les cellules de la matrice qui contiennent la plus grande valeur dans chaque ligne (sauf une). Des flèches vont être dessinées pour représenter la permutation envisagée. Par exemple, après avoir cliqué sur la ième ligne et jème colonne, une flèche est dessinée de i à j pour indiquer que la ième lettre du cryptogramme était plus probablement suivie par la jème lettre du cryptogramme.
- Une fois terminée l'étape précédente, vous pourrez presser le bouton Decrypt.
L'applet décryptera alors le cryptogramme donné en utilisant les valeurs de a1,a2,...,ap que vous aurez déterminées.
Vous pourrez alors constater de visu si aviez deviner la bonne permutation.
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