Go to content

Evolutions de la Cryptographie

Un peu d’histoire

Défini universellement comme un procédé cryptographique s’attachant à rendre incompréhensible tout document à une personne ne possédant pas la clef de chiffrement, le chiffrement (ou cryptage) a connu un réel essor avec l’augmentation significative des puissances de calcul. Entre les données bancaires, les informations personnelles et toutes les données générées par les objets connectés du quotidien qui transitent sur les réseaux, il est désormais plus que nécessaire d’échanger ces informations de manière confidentielle et sécurisée afin d’éviter tout abus de la part de personnes ou de groupes mal intentionnés.

On pourrait penser que la cryptographie (du grec kruptos « caché » et graphein « écrire ») ne présentait que peu d’intérêt avant l’arrivée de l’informatique et des moyens de communications modernes. Cependant les premières traces de documents chiffrés remontent à l’Antiquité et plus précisément XVième siècle av. J.-C où un potier iraquien aurait inscrit sa recette secrète de manière chiffré sur un pot en supprimant les consonnes et en effectuant des inversions de lettres.

On retrouve alors tout au long de l’histoire diverses méthodes de cryptologies et de stéganographie (l’art de cacher une communication) diverses et variés. Si certaines faisaient appels à des procédés très originaux comme le roi de Babylone Nabuchodonosor qui écrivait sur le crâne de ses esclaves avant de laisser leurs cheveux repousser pour dissimuler les communications, d’autres utilisant des procédés simples ont étés utilisées pendant des millénaires comme notamment le chiffrement de César, probablement l’un des algorithmes de chiffrements les plus connus. Nous détaillerons ici un seul algorithme de chiffrement par période de l’histoire.

Antiquité : Le chiffrement de César

Tenant son nom du célèbre Empereur Romain qui l’utilisait fréquemment, le chiffrement de César repose sur la substitution des lettres du messages par d’autres situés à une distance fixe. Cette distance constitue la clé de chiffrement. Ainsi avec une clé de chiffrement égale à 2 on obtient un tableau de Chiffrement de la forme :

On appelle ce genre de chiffrement, le chiffrement par décalage. On remarquera que la clé de chiffrement sera très souvent comprise entre 1 et 26 puisqu’au-delà de cette valeur, le chiffrement serait équivalent à un chiffrement avec une clé entre 1 et 26. Au-delà de 26, un chiffrement avec pour clé N équivaut à un chiffrement de N modulo 26 (ie au reste de la division euclidienne de N par 26). Si ce chiffrement est extrêmement simple à déchiffrer avec les techniques modernes comme la force brute ou encore l’analyse des fréquences d’apparitions des lettres (analyse fréquentielle), il a toutefois été réutilisé pendant la guerre de Sécession et par l’armée Russe en 1915. Aujourd’hui les rares utilisations du chiffrement de César sont souvent dans sa forme ROT13 (correspondant à un décalage de 13 lettres) afin de masquer la réponse à une énigme par exemple.

Moyen-Age : Le chiffrement de Vigenère

Après plusieurs siècles, au Moyen-Age, le mystère des chiffrements par substitution mono alphabétique ayant été percé de nombreuses fois, de nouvelles méthodes apparurent et c’est en 1586 que Blaise de Vigenère décrit le chiffrement de Vigenère dans son livre Traicté des chiffres ou secrètes manières d’escrire qui, bien que très simple d’utilisation, ne sera cryptanalysé et cassé que 270 plus tard, en 1854.

Ce chiffrement utilisant une technique de substitution polyalphabétique, c’est-à-dire que chaque lettre subira un décalage différent, permet de choisir parmi une infinité de clé ce qui explique notamment le temps qu’il a fallu pour le casser. Afin de chiffrer un message en utilisant le chiffrement de Vigenère, il faut choisir un mot ou une phrase servant de clé puis l’aide d’un tableau de Vigenère opérer aux décalages des lettres du message :

Un tableau de Vigenère se présente comme ci -dessus. Il faut maintenant choisir une clé de chiffrement. Dans notre cas nous utiliserons le mot « Secret » ainsi pour chiffrer un message nous opérons comme ceci :

Message en clair

M

E

S

S

A

G

E

Clé de chiffrement

S

E

C

R

E

T

S

 

On répète la clé de chiffrement autant de fois qu’il le faut si elle est plus courte que le message.

Afin de Chiffrer le message on regarde dans le tableau de Vigenère l’intersection entre la lettre du message et celle de la clé (cases en rouge dans le tableau). Ce qui donne le message codé suivant.

Message Chiffré

E

I

U

J

E

Z

W

 

Bien que ce chiffrement soit cassable de nos jours avec les puissances de calculs dont nous disposons, il était extrêmement puissant et complexe pour l’époque. A noter que si la clé de chiffrement utilisée est une suite de caractères aléatoires de même longueur que le message, le chiffre de Vigenère ne peut être cassé (cas du Chiffre de Vernam).

L’intégralité du cassage de ce code réside dans le fait de trouver la longueur de la clé de chiffrement. Effectivement si la longueur de la clé est connue, on peut découper le message chiffré en bloc de la longueur de la clé. On aura alors chaque Nième lettre de tous les blocs qui sera chiffré avec le même chiffre de César et à l’aide d’une analyse fréquentielle des lettres, il est possible de déchiffrer le texte. Pour en savoir plus sur les méthodes afin de trouver la longueur de la clé, vous pouvez consulter la partie dédiée à la cryptanalyse du chiffrement de Vigenère sur Wikipédia.

Chiffrement moderne mécanique : Enigma

La Première Guerre mondiale agira comme un véritable catalyseur pour la cryptographie, ainsi qu’une victoire notable de la cryptanalyse sur le chiffrement. lors de la Seconde. Si la cryptanalyse de la machine Enigma a été largement connue du grand public de part des films tel qu’Imitation Game, le fonctionnement de cette machine mérite d’être étudié car il constitue un exemple typique de ce que représente le chiffrement moderne utilisant des procédés électromécaniques.

Enigma est une machine électromécanique créée en 1919 par Arthur Scherbius, un ingénieur allemand. Cette machine avait pour but d’être commercialisée au grand public, cependant c’est au près des militaires qu’elle rencontrera un franc succès. Cette machine réputée inviolable par ses créateurs sera utilisée pendant la seconde guerre mondiale par l’Allemagne nazie alors que de nombreux messages avait déjà été déchiffrés dès 1931.

Tout comme le chiffrement de Vigenère, Enigma utilise un chiffrement par substitution polyalphabétique. Cependant Enigma fait appel à une machine électromécanique. Cette machine dans sa version standard est constituée :

  • D’un clavier afin de taper le message à chiffrer
  • Du dispositif de cryptage
  • Du tableau lumineux qui affiche la lettre chiffrée

Ainsi lors de la frappe sur le clavier, un courant électrique passe dans le système de chiffrement pour enfin allumer la lettre chiffrée sur le tableau lumineux.

Le dispositif de chiffrement est composé des éléments suivants :

Le brouilleur, l’élément clé du dispositif de cryptage fonctionne grâce à des rotors et un réflecteur. Initialement, Enigma dispose de 5 rotors et seuls 3 aux choix sont utilisés. Ce choix de 3 rotors parmi 5 assure 60 combinaisons différentes.

Les rotors sont des cylindres métalliques sur lesquels sont inscrits chaque lettre de l’alphabet.

Pour taper et chiffrer un message sur Enigma, il faut tout d’abord établir le tableau de fiches. 10 paires de lettres différentes (dans la version utilisée par l’armée) sont choisies arbitrairement pour être interverties avec une autre.

 

 

Ce tableau de fiches arbitraire permet d’intervertir déjà 20 lettres avant même le processus de chiffrement commencé. Ce choix de lettre arbitraire (20 paires parmi 26 lettres différentes) offre au total 1 507 382 749 377 25 possibilités de réglages de fiches différents.

Exemples de tableau de fiches

Chaque lettre tapée sur le clavier passe ensuite dans les 3 rotors ce qui chiffre la lettre et décale le premier rotor de 1 cran.

Ici un exemple simple du fonctionnement des Rotors, la lettre est tapée, le signal électrique passe dans le rotor, la lettre chiffrée s’allume sur le tableau et le rotor tourne d’un cran.

Dans le cas réel, il y a non seulement le tableau de fiche entre le clavier et le premier rotor mais il y a également plusieurs rotors, une fois que le premier rotor a complètement tourné, le deuxième se met tourner puis le troisième.

Ainsi grâce à ce système il y a au total 26 *26*26 positions de rotors possibles soit 17 576 possibilités.

 

Au total en multipliant le nombre de choix de rotors possibles, le nombre de positions de départ des rotors et le nombre de branchement des fiches différents, on obtient le nombre de clés de chiffrement possibles pour une machine Enigma soit environ 16 milliards de milliards de possibilités de clé différentes. C’est ici la combinaison d’un chiffrement monoalphabétique puis d’un chiffrement polyalphabétique qui fait la force d’Enigma.

Afin de déchiffrer un message chiffré par Enigma, il faut connaitre la clé de chiffrement (ou clé du jour car changée toute les 24heures pendant la guerre) qui est composée de la sorte :

DatumWalzenlageRingstellungSteckerverbindungen
30II IV V12 25 4LT FG ND KG JM …
28III I IV7 18 2BQ WA IU YX ZP …

 

Datum : Jour du mois
Walzenlage : Rotors utilisés
Ringstellung : Positions initiales des rotors
Steckerverbindungen : Couples utilisés dans le tableau de fiches

En connaissant la clé de chiffrement il est alors possible de déchiffrer le message en retapant le message chiffré avec les mêmes réglages. Effectivement grâce au Réflecteur présent dans la machine pour faciliter le déchiffrement des messages, le chiffrement et le déchiffrement s’effectuait en tapant le message chiffré (pour le déchiffrement) ou déchiffré (pour le chiffrement) avec les mêmes réglages d’Enigma. Cependant la présence de ce réflecteur conduit à un effet de bord crucial pour la cryptanalyse d’Enigma, une lettre ne peut pas être chiffré par elle-même.

Si vous souhaitez en savoir plus sur l’histoire, la cryptanalyse ou le fonctionnement détaillé de Engima, vous pouvez lire le travail très complet «  Enigma et la Seconde guerre mondiale » de Guillaume MUNCH et Julien MILLI.

En guise de transition vers le prochain article traitant de la cryptographie moderne et de ses enjeux, nous pouvons mentionner la librairie Crypt anciennement utilisée sur UNIX. Cette librairie est une modélisation informatique de la machine Enigma. Initialement développée par un étudiant, elle a été utilisée puis délaissée se voyant devenir obsolète due aux attaques par force brute de plus en plus efficaces avec les puissances de calcul grandissantes.

Sources

https://faculty.etsu.edu/beelerr/ENIGMA.pdf

https://fr.wikipedia.org/wiki/Histoire_de_la_cryptologie

https://fr.wikipedia.org/wiki/Cryptanalyse_du_chiffre_de_Vigen%C3%A8re

http://www.irem.unilim.fr/fileadmin/user_upload/Convergences/tpe_enigma.pdf

https://www.thawte.fr/assets/documents/guides/history-cryptography.pdf

https://www.frenchweb.fr/petit-histoire-de-la-cryptographie-de-jules-cesar-a-lordinateur-quantique