Cryptographie!

La cryptographie par substitution mono-alphabétique

  Le chiffrement par substitution mono-alphabétique (on dit aussi les alphabets désordonnés) est le plus simple à imaginer. Dans le message clair (que nous convenons toujours écrit en majuscule), on remplace chaque lettre par une lettre différente. Donnons un exemple; nous opérons la substitution suivante :

Texte clairABCDEFGHIJKLMNOPQRSTUVWXYZ
Texte codéWXEHYZTKCPJIUADGLQMNRSFVBO

Le texte que nous souhaitons crypter est le suivant :
UN PETIT ROSEAU M'A SUFFI POUR FAIRE FREMIR L'HERBE HAUTE ET TOUT LE PRE ET LES DOUX SAULES ET LE RUISSEAU QUI CHANTE AUSSI.
Le texte codé est alors :
RA GYNCN QDMYWR U'W MRZZCN GDRQ ZWCQY ZQYUCQ I'KYQXY KWRNY YN NDRN IY GQY YN IYM HDRV MWRIYM LRC EKWANYAN WRMMC.
  Ces méthodes de chiffrement ont plusieurs avantages :
  • un nombre impressionant de méthodes de chiffrement différentes possibles. En effet, pour la première lettre de la substitution, il y a 26 choix possibles, pour la seconde, 25 choix, etc.... Il existe donc 26! (lire : factorielle 26) façons de coder distinctes. C'est un nombre assez impressionnant (de l'ordre de 4×1026). Elle donne une impression de sûreté à ce chiffre, car par exemple il est impossible de déchiffrer un message codé en essayant toutes les combinaisons possibles. Cette impression de sûreté est toutefois trompeuse…
  • une grande facilité pour réaliser le chiffrement ou le déchiffrement : il suffit d'écrire le tableau comme ci-dessus, et de lire du haut vers le bas (chiffrement) ou du bas vers le haut (déchiffrement).
  Cependant, un des problèmes du code par substitution est de se souvenir de la clé (c'est-à-dire de la permutation) employée. Il n'est en effet pas facile de se souvenir de 26 lettres dans un ordre aléatoire. C'est pourquoi il existe des variantes pour se simplifier la vie :
  • Le chiffre de César, fondé sur un simple décalage de lettres.
  • Le chiffre Atbash. Il consiste simplement à écrire l'alphabet en sens contraire :

    Texte clairABCDEFGHIJKLMNOPQRSTUVWXYZ
    Texte codé ZYXWVUTSRQPONMLKJIHGFEDCBA

      Bien sûr, la sûreté d'un tel codage est quasi-nulle, puisqu'il suffit de connaitre l'algorithme de codage pour pouvoir décoder immédiatement (il n'y a pas de clé à choisir). Remarquons toutefois une propriété du code Atbash : il est réversible, c'est-à-dire que c'est le même algorithme qui code et décode le texte.
  Une autre des façons les plus courantes de définir une subsitution est de se mettre d'accord sur un mot-clé facile à retenir, mettons MATHWEB, et de compléter ensuite le tableau par ordre alphabétique. Ceci donne ici :

Texte clairABCDEFGHIJKLMNOPQRSTUVWXYZ
Texte codéMATHWEBCDFGIJKLNOPQRSUVXYZ

Il existe aussi d'autres méthodes pour remplir un tel tableau à partir de matrices.

Consulter aussi