![]() ![]() ![]() ![]() |
Substitutions polyalphabétiques |
Avant...MécanisationCommercialisationElectricitéSouvenirs...CryptographieOrdinateursDivers |
Voici un cylindre M94 de l'armée américaine (1922) dont on a prétendu avec une grande exagération qu'il assurait un secret absolu... Il comporte 25 alphabets (désordonnés) agencés sur autant de disques dont l'ordre est susceptible d'être modifié. Pour chiffrer un message, il suffit de le faire apparaître en tournant les disques et de choisir une des substitutions possibles. Le déchiffrage nécessite bien sûr un cylindre du même type avec le même réglage. Même si le nombre de combinaisons possibles semble confortable, on reste bien loin pouvoir réaliser toute permutation. Malgré cela, ce chiffre est plus résistant que le ``Jules César'', car le décalage n'est pas le même pour chaque lettre. Ainsi, les fréquences d'apparition des lettres sont perturbées et ne se conforment plus à l'histogramme ``canonique'', même décalé. ![]() Mais la substitution effectuée reste grossière. Si par exemple X code A, il en sera de même toutes les 25 lettres du message. On est ainsi confronté non pas à une, mais 25 substitutions monoalphabétiques en considérant les ``sous-messages'' formés des lettres 1, 26, 51,... puis 2, 27, 52,... , 3, 28, 53,... etc. Chacun de ces sous-message se prête à l'analyse des fréquences. Si le texte codé est assez long, c'est jouable. Et comment peut-on savoir que la période est 25 ? Cela se détermine en analysant les répétitions. Un même mot sera codé de la même façon s'il se représente à 25, 50, 75... lettres d'intervalle. Une portion de texte codé qui se répète a donc quelque chance de fournir un multiple de la période. En répétant cela pour plusieurs mots simples (qui ont une forte probabilité de présence dans le message), et en recoupant les informations obtenues, on a finalement accès à la valeur de la période. |