![]() ![]() ![]() ![]() |
Systèmes historiques3. substitutions polyalphabétiques (1)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GénéralitésStéganographieCryptanalyseLittératureTranspositionsSubs. monoα
|
Dans
une substitution polyalphabétique, le passage du clair au chiffré
résulte toujours d'un procédé arithmétique. Mais ici, une lettre
donnée, disons a, du clair, peut être rendue par différentes lettres
dans le chiffré. Une telle substitution modifie donc globalement la répartition des lettres (bigrammes, trigrammes...) dans le chiffré -- plutôt que de simplement la décaler ou la permuter. Les fréquences sont uniformisées. L'histogramme de départ ne peut pas être reconstitué simplement. L'analyse des fréquences est ainsi compliquée, voire impossible (cf. One-time pad). Ce type de système remonte au XVIème siècle. Il a connu son apogée au milieu du XXème siècle avec l'apparition de machine électromécaniques (la plus connue étant ENIGMA) réalisant des cryptages de ce type souvent très élaborés. Nous préférons étudier en détail les forces et faiblesses du système original : Le cryptage VigenèreLe principe du cryptage Vigenère est souvent présenté sous forme d'un tableau à double entrée qui donne une idée faussement complexe du système. Il s'agit d'une simple addition modulo 26 du clair avec un mot-clef que l'on répète pour atteindre la longueur du clair :
où p est suffisamment grand pour que la répétition de la clef
"couvre" la totalité du clair. La dernière occurrence de la clef est
tronquée si nécessaire. ExempleLes lettres sont indexées de 0 à 25. Le mot-clef est CLE. Le clair est "Tout va bien".
RemarqueLes cryptages de type "César" sont des cas particuliers du cryptage Vigenère pour lesquels la clef est de longueur 1. Par exemple, le "César" original (décalage de 3 unités) est le Vigenère de clef "D", tandis que le ROT13 correspond à la clef "N". Choisir une clef de longueur 1 ne présente donc aucun intérêt. Plus généralement, nous le verrons, le Vigenère est d'autant plus efficace que la clef est longue par rapport au clair.AnalyseLe cryptage Vigenère aplanit le graphe des fréquences. Voici à titre d'exemple l'histogramme d'un texte chiffré qui va nous servir un peu plus loin d'exemple de cryptanalyse :Le point faible du Vigenère est la répétition de la clef. Si celle-ci est de longueur k, on peut subdiviser le chiffré en k "sous-chiffrés" Cj (0 ≤ j < k) formés des caractères d'indices ≡ j [k]. Chacun d'entre eux a été chiffré grâce à une seule lettre de la clef, donc selon un simple chiffre de César. Il est donc crucial de déterminer la longueur k de la clef. Comment réaliser ceci ? La méthode "historique" a consisté en l'étude des répétitions au sein du message chiffré. Nous en avons donné un aperçu ici. Nous préférons présenter le point de vue actuel. ![]() méthode récente : coïncidences
"Récente" est à relativiser. Plus aucun cryptage de type Vigenère n'est
utilisé actuellement. Mais cette méthode, perfectionnée, est à la base
du décryptage des machines utilisées pendant et après la 2nde guerre
mondiale, à commencer par l'ENIGMA. |
P(coïncidence C/C(i)) ≃ 1/26 (cas 1.) |
preuve. Supposons qu'on observe une coïncidence du caractère x entre le clair M et son décalé M(k), en position i. Cela signifie que x se situe dans M en positions i et i−k. Ces deux occurrences de x distantes de k sont chiffrées avec la même lettre du mot-clef [1], disons y. Appelons z le caractère résultant : z se situe donc en positions i et i−k dans C. Donc une coïncidence (de z) se produit entre C et C(k) (en position i). La réciproque s'obtient de même en inversant l'argument.
P(coïncidence C/C(k)) ≃ 1/13 (cas 2.) |