![]() ![]() ![]() ![]() |
Systèmes historiques4. substitutions polyalphabétiques (2)
|
|||||||||||||||||||||||||||||||||||
GénéralitésStéganographieCryptanalyseLittératureTranspositionsSubs. monoα
|
Nous effectuons ici la cryptanalyse d'un message chiffré selon le système Vigenère.Le chiffréBSEVGGGXREMBACDNFCTZQUEZZQUGMICIRLBBIVYWIl comporte ℓ = 964 caractères, un matériel suffisant pour appliquer les techniques décrites précédemment. ![]() Détermination de la longueur de clef kSelon ces méthodes, nous commençons par décaler cycliquement le texte chiffré de 1, 2, ... 50 [1] positions vers la droite. Pour chaque décalage s, nous comptons le nombre de coïncidences cs entre le texte chiffré initial C et sa version décalée C(s). Nous dressons ensuite l'histogramme des valeurs de cs (en ordonnée) en fonction de s (en abscisse) :N'est-ce pas explicite ? Les nombres de coïncidences s'établissent en deux populations clairement distinctes :
Les "grandes valeurs" sont toutes obtenues pour des indices multiples de 7 ! La cause est entendue : notre mot-clef est de longueur k = 7. ![]() Détermination de la 1ère lettre du mot-clefNous formons le "sous-texte" obtenu en sélectionnant une lettre sur 7 du chiffré en partant de la 1ère, soit C1 = (C[7i+1])1≤i≤E((ℓ−1)/k). Ces lettres ont toutes été chiffrées à l'aide de la 1ère lettre du mot-clef -- autant dire que ce sous-texte provient d'un chiffrage de César.Nous lui appliquons une analyse des fréquences [2]. Voici l'histogramme obtenu (à gauche) avec pour référence l'histogramme de base (à droite) :
Conclusion : le mot-clef commence par un "J". ![]() Détermination des lettres suivantes du mot-clefOn poursuit de même l'étude des autres sous-textes Cj = (C[7i+j])1≤i≤E((ℓ−j)/k) pour 2 ≤ j ≤ 7. Le décalage nécessaire est déterminé d'après l'abscisse du pic le plus élevé. Il est confirmé par la bonne corrélation entre l'histogramme décalé et la répartition de référence.Les résultats sont présentés dans le tableau suivant :
Conclusion : le mot-clef est "JERICHO". DécryptageIl est alors trivial de reconstituer le clair. On effectue simplement la soustraction modulaire du chiffré avec le mot-clef concaténé à lui-même autant de fois que nécessaire.Voici le résultat (où les espaces ont été rajoutées pour la lisibilité du beau texte de V. Hugo [Les Châtiments]) : sonnez sonnez toujours clairons de la pensee
... tout comme est tombé le message chiffré en Vigenère après que la septième lettre du mot-clef ait été déterminée ! ![]() ConclusionHistoriquement, les attaques initiales sur le Vigenère ont été menées "à la main". Ici, bien évidemment, nous avons eu recours à l'ordinateur pour dénombrer les auto-coïncidences et tracer les histogrammes correspondants. L'ensemble du processus pourrait d'ailleurs être largement automatisé. D'évidence, le Vigenère n'est plus le "chiffre indéchiffrable" qu'il semblait à son invention.Bien sûr, les substitutions polyalphabétiques ont connu des raffinements depuis le Vigenère. La mécanisation des processus de (dé)chiffrage a connu son apogée au tournant de la seconde guerre mondiale. Nous décrivons par ailleurs l'exemple remarquable de la machine ENIGMA allemande, ainsi que les efforts accomplis pour décrypter ses messages. Dans cette course au calcul, pour prendre les décrypteurs de vitesse, le recours à des systèmes de chiffrage résolument nouveaux s'imposait. ![]() Notes[1] Cette valeur est arbitraire ; nous parions sur une clef de longueur k < 50.[2] Celle-ci fonctionne, parce que l'extraction d'une lettre sur k dans un message chiffré monoalphabétiquement ne modifie pas globalement l'histogramme des fréquences, si le message d'origine est suffisamment long. |