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.
octets2

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.

Pages : 1 2 3 4 5 6 7 8 9

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Cet article a été publié le Samedi 31 janvier 2009 à 15 h 13 min et est classé dans Cryptographie, Histoire, Histoire des Sciences. Vous pouvez suivre les commentaires sur cet article en vous abonnant au flux RSS 2.0 des commentaires. Les commentaires et les pings sont actuellement fermés.

Les commentaires sont fermés pour le moment.