Le chiffrement par substitution consiste à remplacer dans un message une ou plusieurs
entités (généralement des lettres) par une ou plusieurs autres entités.
On distingue généralement plusieurs types de cryptosystèmes par substitution:
- La substitution monoalphabétique consiste à remplacer chaque lettre du message par une autre lettre de l'alphabet
- La substitution polyalphabétique consiste à utiliser une suite de chiffres monoalphabétique réutilisée périodiquement
- La substitution homophonique permet de faire correspondre à chaque lettre du message en clair un ensemble possible d'autres caractères
- La substitution de polygrammes consiste à substituer un groupe de caractères (polygramme) dans le message par un autre groupe de caractères
Ce code de chiffrement est un des plus anciens, dans la mesure où Jules César
l'aurait utilisé. Le principe de codage repose sur l'ajout d'une valeur constante à
l'ensemble des caractères du message, ou plus exactement à leur code ASCII.
Il s'agit donc simplement de décaler l'ensemble des valeurs des caractères du message d'un
certain nombre de positions, c'est-à-dire en quelque sorte de substituer chaque lettre par une autre.
Par exemple, en décalant le message "COMMENT CA MARCHE"
de 3 positions, on obtient "FRPPHQW FD PDUFKH". Lorsque l'ajout de la valeur donne une lettre
dépassant la lettre Z, il suffit de continuer en partant de A, ce qui revient à effectuer un modulo 26.
A titre d'exemple, dans le film L'odyssée de l'espace, l'ordinateur porte le
nom de HAL. Ce surnom est en fait IBM décalé de 1 position vers le bas...
On appelle clé le caractère correspondant à la valeur que l'on ajoute au
message pour effectuer le cryptage. Dans notre cas la clé est C, car c'est la 3ème lettre
de l'alphabet.
Ce système de cryptage est certes simple à mettre en oeuvre, mais il a pour
inconvénient d'être totalement symétrique, cela signifie qu'il suffit de faire une soustraction
pour connaître le message initial. Une méthode primaire peut consister à une bête
soustraction des nombres 1 à 26 pour voir si l'un de ces nombres donne un message compréhensible.
Une méthode plus évoluée consiste à calculer les fréquences d'apparition
des lettres dans le message codé (cela est d'autant plus facile à faire que le message est long).
Effectivement, selon la langue, certaines lettres reviennent plus couramment que d'autres (en français,
par exemple, la lettre la plus utilisée est la lettre E), ainsi la lettre apparaissant le plus souvent dans
un texte crypté par le chiffrage de César correspondra vraisemblablement à la lettre E, une simple
soustraction donne alors la clé de cryptage...
Dans le cas spécifique du chiffrement de Jules César
où la clé de cryptage est N (13ème lettre
de l'alphabet), on appelle ce cryptage ROT13 (le nombre 13, la moitié de
26) a été choisi pour pouvoir crypter et décrypter facilement
les messages...).
|