La machine Enigma

L'entre-deux-guerres voit le début de la mécanisation de la cryptographie. Des outils mécaniques, comme les cylindres chiffrants, sont mis à disposition des opérateurs, et des machines électromécaniques, sont mises au point. Ces machines fonctionnent sur le principe des rotors et des contacts électriques, afin de réaliser des formes de substitution polyalphabétique dont la clef a une longueur gigantesque de l'ordre de centaines de millions de lettres, au lieu de quelques dizaines dans les méthodes artisanales, comme le chiffre de Vigenère.
Enigma est la machine à chiffrer et déchiffrer qu'utilisèrent les armées allemandes du début des années trente jusqu'à la fin de Seconde Guerre Mondiale. Elle automatise le chiffrement par substitution. Comme on peut le voir ci-contre, cette machine ressemble à une machine à écrire. Quand on presse sur une touche, deux choses se passent. Premièrement, une lettre s'allume sur un panneau lumineux: c'est la lettre chiffrée. Deuxièmement, un mécanisme fait tourner le rotor de droite d'un cran; toutes les 26 frappes, le deuxième rotor tourne d'un cran, toutes les 676 frappes (26 au carré), c'est le troisième rotor qui tourne d'un cran. Certaines Enigmas avaient 3 rotors, celles de la Kriegsmarine en avaient 4 ou 5. Ces rotors tournants modifient les connexions électriques dans la machine, ce qui fait que la touche "A" allumera peut-être le "B" la première fois, mais le "X" la deuxième, le "E" la troisième, etc.

Le côté génial de cette machine est que même si elle tombe entre les mains ennemies, sa sécurité n'est pas compromise. En effet, c'est le nombre faramineux de réglages de la machine qui fait sa force et les réglages changeaient évidemment chaque jour. On peut en effet changer l'ordre des rotors, leur orientation initiale et les branchement du tableau de connexions. Par exemple, on pouvait spécifier la clef du jour ainsi:

  • Position des rotors : 2 - 3 - 1
  • Orientations des rotors : 2 - 23 - 5
  • Branchements des connexions : A/L - P/R - T/D - B/W - K/F - O/Y
  • Indicateurs : B - W - E

Au final, on a:

  • 26 x 26 x 26 = 17'576 combinaisons liées à l'orientation des chacun des trois rotors,
  • 6 combinaisons possibles liées à l'ordre dans lequel sont disposés les rotors,
  • 100'391'791'500 branchements possibles quand on relie les six paires de lettres dans le tableau de connexions.

Les machines Enigma à 3 rotors peuvent donc chiffrer un texte selon 17'576 x 6 x 100'391'791'500 = 10'000'000'000'000'000 combinaisons différentes!

Ainsi, connaître le fonctionnement de la machine n'aide (presque) pas à décrypter les messages qu'elle produit. Tout le problème est de retrouver le bon réglage. C'est dans ce but qu'ont été produites les bombes de Turing.

Le principe de l'Enigma

Le principe de base des machines Enigma conçues par Scherbius repose sur l'utilisation de rotors qui transforment l'alphabet clair en alphabet chiffré.

Si on frappe la lettre E sur le clavier, un courant électrique est envoyé dans le rotor, suit la câblage interne, puis ressort à droite pour allumer la lettre S sur le tableau lumineux.

Autre principe de base: chaque fois qu'une lettre est tapée au clavier, le rotor tourne d'un cran. Ainsi, E devient S la première fois, F la deuxième, P la troisième, etc. Par contre, et c'est une faiblesse de la machine qui sera exploitée pour la casser, E ne sera jamais chiffré E.

Le tableau de fiches (Steckerbrett) permet de brouiller les pistes en reliant deux lettres du clavier entre elles (ici E et J). Ainsi, quand on tape E, le courant prend en fait le circuit prévu pour J.

Les trois rotors multiplient ainsi le nombre de combinaisons. Le deuxième et le troisième avancent respectivement d'un cran quand le premier et le deuxième ont fait un tour complet.

Quant au réflecteur, il renvoie le courant dans le dispositif jusqu'au panneau lumineux où la lettre cryptée s'affiche. Son rôle n'est pas d'augmenter le nombre de combinaisons possibles, mais de faciliter considérablement la tâche du destinataire. En effet, si E devient S dans notre exemple, on a aussi S devient E. Et c'est valable pour toutes les paires de lettres claire/cryptée. Conséquence: si le mot EFFACE est chiffré ACBFEB par l'émetteur, il suffira à l'opérateur qui reçoit le message crypté de taper ACBFEB sur son clavier pour voir les lettres E, F, F, A, C, E s'allumer. Seule condition: les deux opérateurs distants doivent avoir réglé leur machine Enigma de la même façon.

Si vous voulez manipuler une machine Enigma, allez sur la page Enigma Machine Emulator de 101Computing.net. Vous pouvez aussi télécharger le programme de Dirk Rijmenants Enigma Simulator.


Références

Revues, articles, dossiers

Vidéos et podcasts

Sites web

Bricolage

Programmation (en Python)


  Didier Müller, 21.8.23