Chiffrement par substitution

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Le chiffrement par substitution est une technique de chiffrement utilisée depuis bien longtemps puisque le chiffre de César en est un cas particulier. Sans autre précision, elle désigne en général un chiffrement par substitution monoalphabétique, qui consiste à substituer dans un message chacune des lettres de l'alphabet par une autre (du même alphabet ou éventuellement d'un autre alphabet), par exemple, ainsi que procédait César a par d, b par e et ainsi de suite. Quand l'alphabet d'arrivée est le même, la substitution est définie par une permutation des lettres de l'alphabet. Mais le chiffrement par substitution se distingue donc des chiffrements par permutation, définis eux par une permutation des lettres du message.

Le simple chiffrement par substitution est facile à casser par analyse des fréquences des lettres du texte chiffré, mais demeure cependant en tant que composant élémentaire des chiffrements modernes (ce sont les S-Boxes des réseaux de substitution-permutation).

Pour brouiller la cryptanalyse par analyse de fréquences, diverses techniques de substitution plus ou moins élaborées ont été inventées au cours des siècles, comme les chiffrements par substitution homophonique (une lettre fréquente peut être remplacée par des signes différents), ou par substitution polyalphabétique.

Les chiffrements par substitution monoalphabétique[modifier | modifier le code]

La substitution monoalphabétique est une des plus anciennes méthodes de chiffrement. Elle consiste à remplacer systématiquement dans le message clair une lettre donnée de l'alphabet par un signe donné (qui peut être simplement une autre lettre). Deux lettres distinctes doivent être chiffrées en deux signes distincts, sinon il y aurait ambiguïté lors du déchiffrement. Une même lettre est toujours chiffrée par le même signe : c'est le principe de la substitution monoalphabétique. Voici un exemple où l'alphabet du clair et celui du chiffré sont tous deux les 26 lettres de l'alphabet latin :

ABCDEFGHIJKLMNOPQRSTUVWXYZ
AZERTYUIOPQSDFGHJKLMWXCVBN

le message SUBSTITUTION devient LWZLMOMWMOGF.

L'ordre de l'alphabet latin étant connu, il suffit de donner la suite des 26 signes correspondant, qui est la clef de chiffrement. L'alphabet du chiffré peut être le même que celui du clair (en changer n'introduit pas de sécurité supplémentaire). Pour l'alphabet latin, ceci permet de construire 26! ≈ 4 × 1026 substitutions (soit de l'ordre de 288), à savoir le nombre de permutations des 26 lettres.

Pour pouvoir retenir plus facilement la clef du chiffre (une suite de 26 lettres quand on chiffre avec l'alphabet latin), il est possible de l'obtenir à partir d'un mot clef, complété ensuite par les lettres restantes dans l'ordre de l'alphabet (en partant du début de l'alphabet ou de la dernière lettre du mot clef).

Chiffres l'utilisant[modifier | modifier le code]

La substitution polyalphabétique[modifier | modifier le code]

La substitution polyalphabétique consiste à substituer une lettre du message en clair, par une autre choisie en fonction d'un état du cryptosystème, et non plus de manière fixe comme pour la monosubstitution. Ce changement de lettre tout au long du processus, s'obtient à l'aide d'une clé, qui indique le nombre de décalage à réaliser à ce moment. Pour chiffrer la lettre suivante on utilise alors le caractère suivant de la clé et ainsi de suite. On recommence au début de la clé quand tous ses caractères sont épuisés. La plus célèbre utilisation de cette technique reste la machine allemande Enigma, utilisée pendant la Seconde Guerre mondiale.

L'exemple suivant montre une polysubstitution simple avec une clé de longueur 3 qui va décaler les lettres de l'alphabet :

On définit la clé '123' qui indique que le premier caractère sera décalé d'une position, le second de 2 et le troisième de 3 positions, etc.

Le mot : WIKIPEDIA donne donc dans ce cas XKNJRHEKD.

Mais si on chiffre le mot : AAAAAAAAA cela donnera BCDBCDBCD.

On s'aperçoit tout de suite que chiffrer une suite identique de lettres donne une indication (entre autres) sur la longueur de la clé utilisée.

On sait depuis le XIXe siècle que ce principe de polysubstitution possède de nombreuses failles, comme le montre l'officier prussien Friedrich Kasiski dans son test.


Chiffres l'utilisant[modifier | modifier le code]

Faiblesses[modifier | modifier le code]

Ces chiffres, y compris les chiffres polyalphabétiques, ne sont plus utilisés, du moins sérieusement, et n'ont plus qu'un intérêt historique ou de divertissement. Les chiffres utilisant la simple substitution monoalphabétique sont faciles à casser par analyse fréquentielle, technique qui s'est utilisée également pour les chiffres par substitution homophonique. Pour les chiffres par substitution polyalphabétique il est nécessaire de connaître la longueur de la clef (le nombre de substitutions monoalphabétiques utilisées) pour pratiquer l'analyse de fréquence. La longueur de la clef peut se déceler par recherche de répétitions dans le chiffré (voir cryptanalyse du chiffre de Vigenère), ou par des méthodes statistiques (voir indice de coïncidence).

Voir aussi[modifier | modifier le code]

Bibliographie[modifier | modifier le code]