Un projet ambitieux : reproduire une machine Enigma fonctionnelle en Lego dans le cadre du projet Artishow organisé par Telecom Paris.
Introduction
Votre équipe de choc de gauche à droite : Ghislain (en haut), Mao (en bas), Ambre, Elisa et Gwendal.
Télécom Paris demande à ses étudiants de première année de choisir et réaliser un projet : c'est l'UE (unité d'enseignement) Artishow. L'un des projets proposés consistait à construire une machine Enigma en Lego.
Tous, nous sommes passionnés de Lego et voulons travailler dans la cybersécurité : ce projet semblait fait pour nous ! Après avoir été sélectionnés par M. Canard, nous nous sommes lancés dans le design puis la construction en lego de la plus connue des machines de chiffrement : Enigma.
Planification
Après discussion avec notre encadrant, nous nous sommes alignés sur sa proposition de méthodologie par phase :
Phase 1 : Construction de Enigma en lego non fonctionnelle
Phase 2 : Création d'une version en lego fonctionnant à l'aide d'une carte Arduino afin de réaliser le chiffrement
Phase 3 : Elaboration du système de rotors en lego et en impression 3D afin que la machine fonctionne comme sa version historique
Phase 4 : Conception d'une machine de chiffrement selon le concept d'Enigma, uniquement composée de legos. (Au vu de la difficulté de l'exercice, cette dernière étape est optionnelle.)
Etape 1 : Version non fonctionnelle
Il s'agit de la reproduction, aussi fidèle que possible, d'une machine Enigma d'époque - mais entièrement construite en legos.
Etape 2 : Avec une carte arduino
Simulation du montage Arduino
Il s'agit maintenent de disposer d'une machine fonctionnelle au niveau des touches et du résultat : les transformations sont déterminées par des calculs effectués par une carte Arduino. La forme n'est pas nécessairement ressemblante.
Nous avons fait le choix d'associer des boutons et des LEDs à des brickboards, pour mieux les relier à la carte Arduino.
Etape 3 : Enigma en lego
Le chiffrement est fait avec des pièces de lego ou en impression 3D, sans calculateur. On a recréé des rotors, des anneaux, et un système de bascule. Dans cette étape, on se permet l’utilisation d'un générateur et de câbles électriques : c'est la version la plus proche de la machine Enigma originale.
Etape 4 : Entièrement en legos
Le but final de cette machine serait de fournir les capacités de cryptages d'Enigma, alors que l'intégralité des composants sont des legos. Ce but-ci est techniquement très ambitieux, et notre avancée dans le projet ne nous a pas permis de la traiter.
Histoire
Si vous avez vu The Imitation Game, ou si vous êtes un passionné de la Seconde Guerre Mondiale, le nom "Enigma" n'aura pour vous rien d'énigmatique.
La machine Enigma était centrale dans les communications allemandes durant la deuxième Guerre Mondiale : c'était l'outil principal de codage des messages nazis.
Mais l'appellation "machine Enigma" désigne en réalité plusieurs générations de machines, qui ont évolué au fil du temps.
L'apparition de cette première machine de cryptage par substitution poly-alphabétique est dûe à deux officiers de la marine néerlandaise, Theo A. van Hengel et R. P. C. Spengler, en 1915. La première Guerre Mondiale ayant confronté la marine néerlandaise à un besoin de système cryptologique, elle chargea ces deux officiers d'y pallier. Ils avaient déjà travaillés en tant qu'ingénieurs dans ce cadre-ci - sur des torpilles - , et mirent au point une machine de chiffrement poly-alphabétique à rotors. La première en son genre. L'efficacité de la machine fut reconnue, mais sa conception jugée trop coûteuse.
Une fois la guerre finie, les deux hommes tentèrent de déposer un brevet sur leur invention. Cette initiative n'était pas au goût de la marine, qui voyait d'un mauvais oeil la publication de leur modus operanti de cryptage : elle fit obstacle à ce processus.
Néanmoins, les discussions juridiques firent fuiter dans le cercle familial des avocats concernés les schémas de la machine.
Il est généralement accepté qu'un inventeur néerlandais, Hugo Koch, a pu avoir accès à ces dessins, et s'en est largement inspiré pour sa conception d'une machine de chiffrement par rotors (même s'il ne l'a jamais reconnu formellement, les faits sont accablants).
De gauche à droite : Theo A. van Hengel, Edward Hebern, Arthur Scherbius
Koch le fit breveter le 7 octobre 1919, ne le construisit jamais, et finit par revendre son brevet à un dénommé Arthur Scherbius en 1927.
Scherbius était un ingénieur en électricité allemand, qui créa parallèlement une machine semblable. Il semblerait qu'il ait néanmoins travaillé en collaboration avec Koch, par le biais de plusieurs sociétés-écran, pour contourner les interdictions du Traité de Versailles.
Le 23 février 1918, année de fondation de son entreprise, Scherbius & Ritter, il déposa le brevet d'une machine cryptographique. Il la nomma Enigma, la traduction latine d' "énigme".
La première version, surnommée "Modèle A", pesait 50kg, et avait la taille et la forme d'une caisse enregistreuse. Elle fut bientôt suivie par les Modèle B et Modèle C. Ce dernier avait l'aspect d'une machine à écrire engoncée dans un support de bois, avec un tableau de lampes où sont incrustées les lettres de l'alphabet. C'est sur ces lampes que l'on lit la sortie.
Un manque d'enthousiasme initial retarda la production des machines. Mais de premières machines furent fabriquées en 1921, et la production industrielle démarra en 1923, simultanément à sa commercialisation.
Deux autres hommes ont également mis au point une machine semblable - i.e. une machine de chiffrement par rotors - à cette époque : cette fois-ci de manière complètement indépendante. Le premier est un inventeur et homme d’affaires américain, Edward Hebern. Il construisit un modèle en 1917, et déposa son brevet en 1921. Malheureusement pour lui, William Friedman trouva rapidement une faiblesse dans le chiffrement, et la commercialisation de la machine le ruina. Bien après cet épisode, Friedman inventa la machine SIGABA, une version améliorée d’Enigma.
Le second est un ingénieur suédois, Arvid Damm. Il déposa en octobre 1919 un brevet pour une machine au concept de fonctionnement semblable à celui d'Enigma. Celle-ci fut commercialisée par l'entreprise de cryptographie qu'il avait co-fondée, AB Cryptograph.
L'armée allemande s'empara rapidement de cet outil : la marine allemande l'adopta en 1926, l'armée de Terre et l'aviation allemandes peu de temps après. Toutes utilisaient une version légèrement modifiée.
De gauche à droite : Henryk Zygalski, Marian Rejewski, Jerzy Różycki
Les efforts pour cryptanalyser la machine Enigma démarrèrent très tôt. Ce sont les polonais qui obtiennent le plus tôt des résultats, par le biais du Biuro Szyfrów, le bureau de cryptographie et de renseignement militaire de l'état polonais. Des efforts ont été documentés dès 1929, lorsqu'une machine Enigma commerciale, envoyée par erreur hors d'une valise diplomatique, est interceptée à la douane polonaise. Les équipes de cryptanalyse polonaises s'en emparent pour deux jours, durée durant laquelle ils réalisent que cette machine est utilisée pour le chiffrement des messages militaires allemands. Le Biuro Szyfrów réussit à décrypter une version ancienne d'Enigma, nommée O-Bar, utilisée à une époque par la marine allemande.
Mais la version qu'utilisait à l'époque les militaires allemands était plus avancée, et leur efforts furent vains. Jusqu'à 1932.
Le bureau de décryptage de l'intelligence polonaise avait embauché trois jeunes mathématiciens, qui avaient suivi un cours de cryptographie dispensé par le bureau du chiffre : Henryk Zygalski, Marian Rejewski et Jerzy Różycki.
Fin 1932, Rejewski est chargé de travailler de son côté sur la machine Enigma. Il développe un système d'équations En décembre, l'arrivée d'informations fournies par les services secrets français lui permettent de réduire le nombre d'inconnues à une taille acceptable pour la vérification exhaustive des solutions.
Les services de renseignement français tenaient leurs informations d'une taupe dans les forces allemandes, Hans-Thilo Schmidt, par le biais d'un agent intermédiaire à l'allégeance floue, dit "Rex"
Cinq semaines avant la guerre, le bureau du chiffre polonais convoque ses équivalents français et britanniques pour leur partager leurs découvertes sur la machine Enigma. L'équipe polonaise leur offre notamment une version militaire de la machine Enigma, et
De gauche à droite : Gustave Bertrand, officier français responsable des efforts de décryptage d'Enigma avant la guerre, puis du PC Bruno une fois celle-ci entamée ; Rodolphe Lemoine, dit Rex, agent trouble qui servait d'intermédiaire, et Hans-Thilo Schmidt, espion dans les services secrets allemands.
Septembre 1939. La Pologne est envahie, la guerre éclate : les cryptanalystes polonais fuient en France.
Cryptanalyse d'Enigma
GLOSSAIRE
Chiffrement / Cryptage : processus consistant à coder un message afin de le rendre incompréhensible pour quelqu'un n'ayant pas l'astuce du chiffrement.
Substitution mono-alphabétique : Technique de chiffrement où chaque lettre d'un message est remplacée par une autre.
Subsitution poly-alphabétique : Aussi appellée "chiffre de Vigenère", elle est similaire à la substitution mono-alphabétique à l'exception faite qu'une même lettre peut être remplacée par deux lettres différentes dans un même message. Par exemple, un chiffrement du mot "paela" avec la clé (l'astuce afin de décoder le message chiffré) "soleil" donne "hoppi" ; ici le "a" a été remplacé par un "o" et un "i" et le "p" remplace un "e" et un "l".
La machine Enigma possède deux claviers : le clavier de touches et le clavier pour le résultat. Le premier est constitué de 26 touches, alors que le second est fait de 26 LED.
Au chiffrement, l'utilisateur tape son message en clair sur le clavier de touches. A chaque frappe, une lettre s'allume sur le clavier lumineux. C'est la lettre chiffrée.
Il obtient donc ainsi le message codé en écrivant successivement toutes les lettres qu'il a obtenues.
Au déchiffrement, l'opération est identique. Il suffit de presser la touche correspondant à la lettre chiffrée pour voir s'allumer la lettre en clair.
Il existe différents modèles de la machine Enigma :
La machine standard
Elle est simplement composée de 3 rotors. C'est la première version d'Enigma. Elle a été commercialisée mais n'a pas connu un grand succès à ses débuts. Les trois prototypes suivants sont des machines utilisées par les différents corps de l'armée allemande.
La machine M3
Utilisée par la marine allemande dès 1933, elle dispose également de 3 rotors, mais eux sont choisis dans un ensemble de 5 rotors.
La machine M4
Mise à profit vers 1942 dans les sous-marins allemands, elle utilise 3 rotors sélectionnés dans un total de 8 rotors, et un dernier rotor pioché parmi 2 autres. Comme la machine M3, elle est dotée d'un tableau de fiches pour augmenter sa robustesse au décryptage.
La machine G
Cette version, adoptée par les renseignements allemands, ne possède plus de tableau de fiches.
Évidemment, plus le nombre de rotors disponibles est élevée, et plus le nombre de rotors effectivement utilisée est grand, plus le nombre de configurations de la machine Enigma est important. Cela complexifie la tâche pour les décrypteurs!
Les célèbres rotors d'Enigma
La rotation des rotors
Le système de chiffrement d'Enigma utilise comme clé la disposition de chacun des rotors. La complexité du codage repose sur la modification en temps réel de cette clé. La machine est placée dans une position initiale commune entre les interlocuteurs. A partir de cette position initiale, la configuration est modifiée au cours de son utilisation comme suit :
Prenons 3 rotors, que nous appellerons pour l'illustration unité, dizaine et centaine. Chacun est composé de 26 positions différentes. Le rotor unitaire tourne à chaque pression de touche. Lorsque celui-ci est revenu dans sa position initiale, soit après 26 frappes, c'est le rotor des dizaines qui tourne. Une fois que le rotor des dizaines a fait ses 26 positions, soit après 26x26 = 676 lettres, c'est le rotor des centaines qui tourne d'un cran. Les positions des rotors reprennent donc la mécanique du comptage du nombre de touches pressées en base 26.
Le branchement d'un rotor
On imagine un rotor comme un disque constitué de plusieurs éléments (dont ceux cités précédemment), pouvant tourner selon un axe.
Cette rotation est commandée par le cliquet au niveau de la roue à rochets.
Pour les connexions électriques, il y a 3 éléments majeurs : une plaque isolante avec des petits rectangles conducteurs, et deux plaques identiques à celle-ci dont une (au moins) qui tourne.
La rotation d'une des plaques extérieures va donc modifier les correspondances entre les plaques reliées.
Chaque rectangle d'une plaque extérieure est relié par câble électrique au reste du circuit. La plaque en sortie d'un rotor est reliée à la plaque d'entrée du rotor suivant.
La composition d'un rotor
Les rotors sont constitués en particulier d'une roue à rochets de 26 dents, bloquée dans un sens de rotation par un cliquet, et d'un anneau contenant une seule encoche.
Une rotation d'un rotor fait tourner à la fois la roue à rochets (c'est le but) et l'anneau encoché pour compter le nombre de rotations.
Selon moi, le cliquet doit être un peu plus large que le roue pour être aussi autour de l'anneau du rotor précédent.
Les rotations du rotor précédent vont finir par aligner le cliquet du rotor suivant avec l'encoche de l'anneau du rotor précédent.
A ce moment, le cliquet sera enfoncé dans la roue à rochets car son mouvement vers le bas sera autorisé, étant dans l'encoche de l'anneau d'avant.
A chaque pression de touche, tous les cliquets sont poussés dans le sens de rotation des roues qui tourneront seulement quand les cliquets seront enfoncés, et donc quand ils seront alignés avec le précédent.
Ainsi, le rotor N+1 tournera toutes les 26 rotations du N-ième rotor.
Le tableau de fiches
Le tableau de connexion, aussi appelé tableau de fiches, est un composant ajouté sur les modèles militaires de la machine Enigma. Le principe est relativement simple : les lettres de l'alphabet peuvent être agencées par paires. Si tel est le cas, une lettre est codée en utilisant le circuit électrique d'une autre. La substitution ainsi réalisée ne complexifie pas l'utilisation d'Enigma. En effet, le chiffrement reste symétrique. Si A et F sont appariés, alors la lettre A se verra codée comme la lettre F. Elle fournira donc une lettre chiffrée F'. Au déchiffrage, il suffit de rentrer la lettre F', ce qui donnera la lettre F. Sachant que F est relié à A, on retrouve la lettre qui figure bien dans le texte en clair.
Vidéo explicative
Une vidéo explicative (en anglais mais doublée en français et dans 26 langues au total) d'une vingtaine de minutes explique extrêmement bien le fonctionnement en détail de la machine Enigma, retraçant le parcours du courant électrique dans la machine :
Comment fonctionnait la machine Enigma ? (YouTube)
Photos
<
Construction
Tu souhaites impressionner tes convives, tu es passionné des technologies du 20e siècle, tu te lances dans
la cryptographie, tu cherches une activtés à faire avec ta famille ou tes amis ? No worries on a ce qu'il te faut.
Grâce aux carnets de construction tu vas pouvoir commander exactement les legos qu'il te faut et étapes
après étapes tu verras se dresser devant tes yeux ébahis la machine de tes rêves.
Phase 1 : un compromis entre low budget et bijou épatant
La construction de la phase 1 a avant tout une vocation esthétique. Elle est principalement conçue
dans un but décoratif, ce qui implique des exigences techniques moindre par rapport aux autres phases du projet et donc un coût moindre. Malgré sa relative simplicité, cette phase présente une
structure robuste, pensée pour résister aux ollicitatiions d'un environnement légèrement instable ou perturbé. Elle s'adapte ainsi efficacement à un contexte un peu
turbulent, tout en conservant sa focntion ornementale.
La boîte de la phase 2 présente une structure plus complexe et décicate à réaliser.
Sa fabrication demande davantage de minutie, ce qui la rend plus fragile et implique un budget légèrement supérieur. Cependant, une fois équipée de la partie
électronique (notamment grâce à l'intégration d'une carte Arduino) elle se transforme en un véritable objet de collection. A la croisée de l'art et de la technologie,
cette boîte interactive a le potentiel de captiver et d'émerveiller, même les esprits les plus avertis.
Phase 3 : un prototype de la machine historique
Cette version est bien plus délicate à réaliser techniquement.
Sa conception a nécessité un travail de modélisation approfondi sur plusieurs composants clés liés aux rotors, ainsi que sur le clavier couplé à un système de LED. Chaque élément a été pensé avec précision pour garantir à la fois fonctionnalité et esthétique, tout en répondant aux contraintes mécaniques et électroniques du projet. La bascule a été réalisée en lego et sa poussée permet la rotation des rotors.