1) La substitution monoalphabétique au cours de l'histoire.

a) Le principe du codage par substitution monoalphabétique

      Le codage par substitution monoalphabétique est très simple à imaginer. Il consiste à remplacer chaque lettre du message clair par une et une seule autre lettre de l’alphabet pour donner le message codé. Voici un exemple concret :

      Le texte que nous souhaitons coder 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 :

RAGYN CNQDM YWRUW MRZZC GDRQZ WCQYZ QYUCQ IKYQX YKWRN YYNND RNIYG QYYNI YMHDR VMWRI YMYNI YQRCM MYWRL RCEKW ANYWR MMC.

      Vous pouvez expérimenter ce cryptosystème grâce au script suivant.

      Cependant l’un des inconvénients du code par substitution monoalphabétique est qu’il faut se souvenir de la permutation des lettres ; il est en effet difficile de se souvenir d’un alphabet dans un ordre abscond. C’est pourquoi il existe une variante : le chiffre de César, qui est basée sur un décalage de lettres.


b) Le code de César

      Le code de César est donc considéré comme le plus ancien algorithme de chiffrage par substitution. Sa technique est élémentaire : il suffit de remplacer chaque lettre du texte à chiffrer par la lettre qui est située à n place plus loin dans l’alphabet. Par exemple, si l’on pose n = 3, A deviendra D, B deviendra E etc……….

      L’algorithme est donc le suivant :

Soit n = la clé, c’est-à-dire le décalage
Soit k = la place de la lettre à crypter dans l’alphabet normal
Soit c = la place de la lettre cryptée dans l’alphabet normal

c = [(n + k - 1) modulo 26] + 1.

Expliquons le script : Basiquement on pourrait penser que le chiffre de César équivaut à additionner n et k et ainsi à obtenir la position de la nouvelle lettre cryptée.
Seulement il est possible que n + k > 26. Donc, dans ce cas-là, il est nécessaire d'appliquer le modulo, qui est en fait le reste de la division euclidienne.
Donc si n + k < 26, [(n + k) modulo 26] sera égal à n + k.
Et si n + k > 26, [(n + k) modulo 26] sera égal à n + k - 26 et ainsi, dans tous les cas, [( n + k) modulo 26] sera compris entre 0 et 26.
Seulement pour le cas où n + k = 26, [(n+k) modulo 26] est égal à 0, et non à 26! Donc, pour éviter ceci,il faut soustraire 1 avant d'appliquer le modulo et rajouter 1 après le modulo.
Ainsi si n + k - 1 = 26, [(n + k - 1) modulo 26] + 1 sera égal à 1.
Et si n + k = 26, [(n + k - 1) modulo 26] + 1 sera égal à 26.

Exemple : Prenons le décalage de 3

Si nous voulons coder le mot TPE par exemple, cela donne WSH.
Nous pouvons maintenant vérifier ce cryptage avec l’algorithme de Jules César :

Dans ce cas, n = 3, k = 20 pour le lettre T, k = 16 pour la lettre P et k = 5 pour la lettre E.

[(3 + 20 – 1) modulo 26] + 1 = 22 modulo 26 +1 = 23

On constate que la lettre W est bien à la place 23 dans l’alphabet clair.

De même, [(3 + 16 – 1) modulo 26] + 1 = 19 (ce qui donne la lettre S) et [(3 + 5 – 1) modulo 26] + 1 = 8 (ce qui donne la lettre H).

      Ainsi la cryptologie par substitution monoalphabétique avec sa principale variante – le code de César – est bel et bien un recours aux mathématiques qui fait intervenir un algorithme.

      De plus, on sait que César utilisait ce code car Suétone (écrivain romain 70-127) le relate une œuvre intitulée « la vie des 12 Césars » dont voici un extrait :

      « On possède enfin de César des lettres à Cicéron, et sa correspondance avec ses amis sur ses affaires domestiques. Il y employait, pour les choses tout à fait secrètes, une espèce de chiffre qui en rendait le sens inintelligible (les lettres étant disposées de manière à ne pouvoir jamais former un mot), et qui consistait, je le dis pour ceux qui voudront les déchiffrer, à changer le rang des lettres dans l'alphabet, en écrivant la quatrième pour la première, c'est-à-dire le D pour l'A, et ainsi de suite ».

      Enfin, preuve de l’importance de ce code, le code de César réutilisé lors de l’avènement d’Internet (non plus pour crypter bien sur, puisque depuis ce crypto système est facilement cassable) pour dissimuler des textes qui ne devaient pas être lus par inadvertance.


c) Le chiffre des Templiers

      Ce cryptosystème fut inventé beaucoup plus tard par des moines appartenant au « Temple » (ordre de moine apparu au courant du XII° siècle). Leur mission était de s’occuper des pèlerins en terre Sainte mais très vite, les templiers profitèrent de cette opportunité pour s’enrichir considérablement au profit des pèlerins ; si bien qu’il leur fallu inventer un système (autre que le chiffre de César, puisque celui-ci avait déjà était cassé) pour dissimuler les lettres de crédits avec le Pape.
      Le principe de ce « chiffre des templiers » est donc tout aussi basique que le code de César. Le principe consiste simplement à remplacer chaque lettre par un symbole (et un seul), on peut donc parler d’une forme de cryptologie par substitution monoalphabétique, bien que les templiers ne travaillent plus avec des lettres mais avec des symboles.

Voici leurs substitutions :

Exemple :       Si l’on code TPE grâce au chiffre des templiers, on obtient :


      Cependant, les templiers n’avaient pas fait de réelles découvertes car leur cryptosystème souffrait de la même faiblesse de que le code de César ou que n’importe quel cryptosystème utilisant un procédé par substitution mono alphabétique ; il était tout aussi vulnérable à l’analyse des fréquences (Cf. la partie suivante) car chaque lettre su message clair ne pouvait être remplacé par un ou une unique lettre ou symbole.
d) Anecdote de l’histoire

      La cryptographie par substitution monoalphabétique n’est pas apparue d’un seul coup. Ainsi le précurseur de cette technique de cryptographie, nommé Polybe, fut un historien grec qui vécut au II° siècle avant Jésus-Christ. Il donna son nom à sa trouvaille, le carré de Polybe, dont la méthode est la suivante :
      Dans le tableau ci-dessous, Polybe remplaçait la lettre qu’il voulait crypter par le couple de chiffre (indice colonne ; indice ligne).

Exemple : A correspond donc a 11, P à 35, C à 13 etc…….

      Cette technique de cryptage possède plusieurs avantages et en particulier le nombre réduit de symboles utilisés (en effet dans le message crypté on ne trouve que des 1, 2, 3, 4, 5) – ce qui rend plus difficile le cassage du code et qui fait de cette technique un précurseur des techniques modernes. De plus, ce carré de Polybe offre la possibilité de changer l’ordre des lettres dans le carré, ce qui permet quelques variantes de la méthode de base.

      Grâce à ces qualités, le carré de Polybe inventé bien avant le chiffre de César et celui des Templiers, est une méthode de cryptage plus fiable et plus difficile à casser. Pourquoi donc cette technique fut-elle considérablement moins utilisée que le code de César ? Probablement parce qu’elle était moins simple d’utilisation et que jusqu’au IX° siècle, les 2 méthodes étaient tout aussi valables puisque le code de César n’avait jamais été cassé auparavant.