1) Histoire du chiffrement

La cryptographie (ou Chiffrement) est née, d'apres les dires de Plutarque, au cinquième siècle avant notre ère. Les premiers utilisateurs de la stéganographie, les Spartiates, utilisaient deux scytales : des bâtons de même longueur et de même diamètre auxquels on enroulait le message enroulé en spires jointives et écrit sur un papyrus. Une autre méthode de l'antiquité fut celle d'Enée le tacticien qui, dans son message, remplaçait les voyelles par un nombre de points correspondant au code a,e,i,o,u,y. Ainsi, le message "Histoire du Chiffrement" devenait "h...st....r.. d..... Ch...ffr..m..nt" (A l'époque on écrivait des points minuscules).

Code de César

En 58 avant notre ère, Jules César, pour communiquer avec ses généraux, utilisait une technique de chiffrement assez simple. Cette technique consistait en un décalage circulaire de trois lettres par rapport à l'alphabet normal. De nos jours, cette technique est très peu utilisée du fait de sa simplicité à déchiffrer. Ainsi le message "Envahissez la ville d'Alésia" devenait "Bksdefvvbw id sfoob a' Xibpfx" ce qui était à l' époque indéchiffrable par les généraux ennemis. Code de César Ce code a pourtant été rapidement cassé à l'aide de la logique.


Le ROT 13

Le ROT 13 utilise un codage très simple, semblable au code de César, du fait de l'utilisation d'un nombre de caractères restreint (26 lettres de l'alphabet). En voici le codage :

Soit Nc le numéro du caractère choisi (compris entre 1 et 26) et X celui du caractère codé. On a alors 2 cas possibles :

La fonction qui à Nc associe Nc', le reste de la division euclidienne de Nc+12 par 26 est appelée Modulo. En langage informatique on note ici cette fonction modulo : X=(Nc+12)%26+1

ROT 13

Le fait que le même algorithme soit appliqué aux données pour le chiffrement et le déchiffrement, et sa simplicité (relative), nous a encouragé à le choisir comme chiffrement pour notre Chiffreur Mini-Din à protocole PS/2. Voir section relative.

Exemple : Le message « Barycentre de deux points » deviendrait « Ondlprzf qr qrgk bavzfe ».


Le code de Vigenère

Le diplomate Blaise de Vigenère a amélioré le code de César en y ajoutant une clé.

La méthode est relativement simple : on prend une phrase sous laquelle on écrit une clé, en l'occurrence on choisissait un mot au hasard. On écrit cette clé autant de fois qu'il est nécessaire pour parvenir au nombre de caractères du message. On décale alors chaque lettre du message à chiffrer du numéro de la lettre située en dessous (il s'agit d'une lettre de la clé). Par exemple on chiffre, avec la clé TPE, un message dont la première lettre est un C. On décalera alors la lettre C de T rangs c'est à dire de 19 rangs (on considère que A=0). C'est alors une méthode semblable à celle du ROT 13 mais le nombre de rangs à décaler diffère pour chaque lettre du message.

Algorithme en langage informatique : X=(Nc+Clef)%26+1 pour le chiffrement, et NC=(X-Clef-2)%26+1 pour le déchiffrement (Avec X le caractère chiffré, Nc le caractère clair, et Clef la clef du chiffrement)

Ce code sera cassé par le mathématicien anglais Babbage, qui chercha les répétitions à l'intérieur des messages cryptés pour trouver des informations à propos de la longueur et de la nature de la clé. NB : une clef d'un seul caractère revient donc à une substitution monoalphabétique.

Le Carré de Vigenère

Prenons un exemple : texte à chiffrer => crypto ; clé => clé L'on inscrit le mot clé en-dessous du mot crypto, en le répétant deux fois de façon à obtenir le même nombre de lettres. Ensuite, pour obtenir le texte chiffré on utilise le "Carré de Vigenère" : la 1ère lettre chiffrée est l'intersection de la ligne correspondant à la première lettre du texte à chiffrer et de la colonne correspondant à la première lettre de la clé. Ainsi de suite jusqu'à la fin du texte. Ici, le mot crypto chiffré avec clé devient : ECCRES

Vigenère


Plus tard, au IX ème siècle après notre ère, le savant arabe Abu Yusuf al-Kindi calcula, à partir de la vérification de l' authenticité de textes de l' Islam, les fréquences des lettres présentes dans un texte pour les comparer à celles de la langue dans laquelle ce texte était écrit. A partir de la table de pourcentage de ces lettres, il comparait ses résultats à ceux de la langue qu'on utilisait dans le texte et, ainsi, déduisait les lettres utilisées pour vérifier l' authenticité du texte ou déchiffrer un code secret. Toutefois les méthodes de ce philosophe arabe sont limitées ; en effet, plus un texte est court, plus l'analyse et le déchiffrage sont complexes et plus on a de chances d'obtenir une analyse erronée.


Le code de Vernam

Le cryptographe Vernam a perfectionné le code de Vigenère.

En effet, il eût l'idée de garder le principe de ce code mais, au lieu de prendre une clé de quelques caractères, il découpe le texte en plusieurs petits messages (une phrase ou deux) et y insère une clé de même longueur que le message. Il change ainsi de clé à chaque petit message et les jette après usage.

Algorithme en langage informatique : X=(Nc+Clef[n%taille_clef])%26 pour le chiffrement, et NC=(X-Clef[n%taille_clef])%26 pour le déchiffrement (Avec X le caractère chiffré, Nc le caractère clair, Clef [n] le caractère n de la clef du chiffrement, car cette clef doit dans ce chiffrement avoir plusieurs caractères).

Le fait d'utiliser une clé "aléatoire" rend ce code plutôt bon. Il est de nos jours peu utilisé à cause des difficultés rencontrées à propos de la transmission des clés.


Enigma

Pendant la Seconde Guerre Mondiale, des ingénieurs allemands inventèrent la machine à chiffrer nommée Enigma.

Cette machine possédait à l'époque trois, puis quatre rotors, un brouilleur et un tableau de connections. Chaque rotor pouvait permuter 26 fois (le nombre de lettres de l'alphabet) et, chaque lettre pressée était codée trois ou quatre fois (selon le nombre de rotors) ce qui rendait plus difficile son déchiffrement. Chaque rotor possède des connections qui déterminent le codage de chaque lettre. Quand on presse la première lettre, le premier rotor tourne une fois, quand on presse la deuxième il tourne une deuxième fois et ainsi de suite jusqu'à la 26e lettre. A la 26ème lettre pressée, c'est au deuxième rotor de tourner et ainsi de suite jusqu'au troisième rotor, à la pression de la 26e lettre de celui-ci, un dispositif réfléchit le signal vers le premier rotor et l'opération se réitère le nombre de fois qu'il faut pour taper le message. Les virgules, points et autres signes de ponctuation sont remplacés par des petits groupes de lettres comme XX ou XY qui sont très peu utilisés et les caractères sont groupés par cinq pour empêcher le déchiffrage par identification de mots ne comportant qu'un nombre restreint de lettres.

Les connections du brouilleur d'Enigma (donc son chiffrage) furent découvertes par un mathématicien polonais et grâce à la capture de deux sous marins allemands (U-110 et U-559) qui livrèrent ainsi leur machine à analyse. Les nazis ne surent jamais que leurs transmissions étaient écoutées par les britanniques, jusqu'à la fin de la guerre.


Bibliographie :