L’ordinateur, as du chiffre
Avec Enigma et les « bombes » de Turing, les cryptanalystes s’étaient livrés une véritable guerre des machines. L’étape suivante fut de remplacer rouages et valves par des systèmes électroniques, ce qui marqua l’avènement des premiers ordinateurs. Avantages certains : ils étaient plus rapides, mais surtout programmables. Et donc capables de simuler le fonctionnement de n’importe quelle machine à chiffrer sans qu’il faille en reconstruire une à chaque fois !
Le premier calculateur fit son apparition à Bletchley Park dès décembre 1943 : conçu par le mathématicien Max Newman — qui s’était inspiré des principes de la « machine universelle » de Turing —, il fut détruit juste après la guerre et ses plans jetés au feu. Nécessité de maintenir le secret sur les activités du GC & CS oblige… Mais les travaux furent très rapidement relancés. La machine s’emballa même en 1947 avec l’invention du transistor, puis explosa littéralement douze ans plus tard avec les premiers circuits intégrés : comme le reste du monde, la cryptologie entrait dans l’ère de l’informatique.
Par nature, les ordinateurs ne jonglent pas avec les lettres de l’alphabet, mais manipulent des nombres. Ou plus exactement des 0 et des 1 qui constituent le langage binaire (ainsi baptisé parce qu’il n’utilise que deux chiffres). C’est un peu leur langue maternelle, en somme. Il existe bien sûr des « protocoles de conversion » qui permettent de transformer un texte alphabétique en binaire (et vice versa), comme le code ASCII : à chaque lettre, symbole ou signe de ponctuation correspond un nombre binaire composé d’un mélange de sept 0 et 1. Partant de là, il est déjà possible d’appliquer toutes les méthodes de cryptage connues, simplement et rapidement (voir « La valse des 0 et des 1 » ci-dessous).
La valse des 0 et des 1
Imaginons qu’on veuille crypter le mot JUNIOR avec la clef CHEVAL. On commence par convertir les deux mots en binaire selon le code ASCII.
Grille 1 | Grille 2 | |||||||||||||||
J : | 1 | 0 | 0 | 1 | 0 | 1 | 0 | C : | 1 | 0 | 0 | 0 | 0 | 1 | 1 | |
U : | 1 | 0 | 1 | 0 | 1 | 0 | 1 | H : | 1 | 0 | 0 | 1 | 0 | 0 | 0 | |
N : | 1 | 0 | 0 | 1 | 1 | 1 | 0 | E : | 1 | 0 | 0 | 0 | 1 | 0 | 1 | |
I : | 1 | 0 | 0 | 1 | 0 | 0 | 1 | V : | 1 | 0 | 1 | 0 | 1 | 1 | 0 | |
O : | 1 | 0 | 0 | 1 | 1 | 1 | 1 | A : | 1 | 0 | 0 | 0 | 0 | 0 | 1 | |
R : | 1 | 0 | 1 | 0 | 0 | 1 | 0 | L : | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
Puis on superpose les mots ainsi codés pour ensuite les « additionner ». En binaire, cette opération est un peu spéciale car elle suit les deux règles suivantes :
- si les deux chiffres superposés sont identiques (1 + 1 ou 0 + 0), le résultat est 0 ;
- si les chiffres sont différents (1 + 0 ou 0 + 1), le résultat est 1.
Ce texte chiffré est ensuite transmis au destinataire qui utilise à son tour la même clef (CHEVAL). Ce qui est très pratique, c’est qu’il lui suffit « d’additionner » (en suivant les deux règles ci-dessus) la clef au chiffre… et il retombe exactement sur le code binaire du message en clair (JUNIOR). Essayez vous-même, vous verrez c’est la magie des nombres binaires ! Pour finir, une simple reconversion en ASCII et l’on retrouve JUNIOR en toutes lettres.
Tags: Adi Shamir, Alan Turing, Arthur Conan Doyle, Arthur Scherbius, Arthur Zimmermann, Bletchley Park, Charles Babbage, Clef de chiffrement, Code ADFGVX, Code binaire, Codes secrets, cryptanalyse, Cryptographie, Cryptographie asymétrique, cryptologie, cryptologue, Edgar Allan Poe, Enigma, George Painvin, Leonard Adleman, Marian Rejewski, Martin Hellman, PGP, Philip R. Zimmermann, Première Guerre mondiale, Ralph Merkle, Ronald Rivest, RSA, Seconde Guerre mondiale, Sherlock Holmes, Substitution, Transposition, Whitfield Diffie