# Enigma (machine)

Enigma est une machine électromécanique portative servant au chiffrement et au déchiffrement de l'information. Elle fut inventée par l'Allemand Arthur Scherbius, reprenant un brevet du Néerlandais Hugo Koch, datant de 1919$^,$. Enigma fut utilisée principalement par l’Allemagne nazie (Die Chiffriermaschine Enigma) pendant la Seconde Guerre mondiale. Le terme « Enigma » désigne en fait toute une famille de machines, car il en a existé de nombreuses et subtiles variantes, commercialisées en Europe et dans le reste du monde à partir de 1923. Elle fut aussi adoptée par les services militaires et diplomatiques de nombreuses nations.
Son utilisation la plus célèbre fut celle faite par l'Allemagne nazie et ses alliés, avant et pendant la Seconde Guerre mondiale, la machine étant réputée inviolable selon ses concepteurs. Néanmoins un nombre important de messages Enigma ont pu être déchiffrés près de sept ans avant la guerre.
Dès 1931, le Service français de renseignement (surnommé le « 2e Bureau ») était parvenu à recruter une source (Hans-Thilo Schmidt) au sein même du bureau du chiffre du ministère de la Reichswehr. Il obtient de lui des premières copies de la documentation ; il les proposa à l'Intelligence Service britannique, qui se montra sceptique, et au service polonais, qui fut très intéressé. Une coopération s'instaura, qui allait durer jusqu'en 1939. Les Français continuèrent de fournir de nouveaux renseignements obtenus de la même source et les Polonais montèrent une équipe qui parvint à reproduire la machine à partir de la documentation de plus en plus précise qui leur parvenait.
En décembre 1932, trois mathématiciens polonais (Marian Rejewski, Jerzy Różycki et Henryk Zygalski) ont réussi à déchiffrer des messages de l'Enigma. En octobre 1938, Rejewski a mis en place un déchiffrage par une machine électromécanique (appelée une « bombe cryptologique » — il fallait deux heures pour déchiffrer la clef du jour). Le 25 juillet 1939 à Pyry près de Varsovie, les Polonais ont transmis un exemplaire d'Enigma ainsi que la documentation sur le décryptage aussi bien aux représentants de renseignement français qu'aux représentants de renseignement britannique.
Pendant le second conflit mondial, les cryptanalystes britanniques, dont Alan Turing, purent continuer les travaux du mathématicien polonais Marian Rejewski. Ils furent par la suite, dans des circonstances favorables et pendant des intervalles de temps plus ou moins longs, capables de déchiffrer les messages Enigma en perfectionnant les « bombes électromécaniques » inventées et mises au point par Rejewski.
Les informations obtenues grâce au déchiffrement des messages d'Enigma donnèrent au camp des Alliés un avantage certain dans la poursuite de la guerre. On a estimé que le conflit en Europe a été écourté d'au minimum deux ans grâce à la cryptanalyse des chiffres et des codes allemands$^,$.

## Description

Enigma chiffre les informations en faisant passer un courant électrique à travers une série de composants. Ce courant est transmis en pressant la touche d'une lettre sur le clavier ; il traverse un réseau complexe de fils puis allume une lampe qui indique la lettre chiffrée. Le premier composant du réseau est une série de roues adjacentes, appelées « rotors », qui contiennent les fils électriques utilisés pour chiffrer le message. Les rotors tournent, modifiant la configuration complexe du réseau chaque fois qu'une lettre est tapée. Enigma utilise habituellement une autre roue, appelée « réflecteur », et un composant appelé « tableau de connexion », ce qui permet de rendre plus complexe encore le processus de chiffrement.
Enigma est une machine électromécanique, ce qui signifie qu'elle utilise une combinaison de parties mécaniques et électriques. La partie mécanique est composée du clavier, des différents « rotors » rangés le long d'un axe et d'un mécanisme entraînant en rotation un ou plusieurs des rotors chaque fois qu'on appuie sur une touche. Le mécanisme exact varie, mais la forme la plus commune est celle où le rotor du côté droit tourne chaque fois qu'on appuie sur une touche et où régulièrement les rotors voisins sont déplacés, de manière similaire au fonctionnement d'un odomètre. Le mouvement continu des rotors permet l'obtention de transformations cryptographiques différentes chaque fois qu'on utilise une touche. La partie électrique de l'appareil est constituée par une pile reliant les touches du clavier à des lampes. Lorsque l'on appuie sur l'une des touches, l'une des lampes s'allume. Par exemple, lorsqu'un message commence par la séquence ANX…, l'opérateur appuie sur la touche A et la lampe Z s'allume alors ; dans ce cas, Z est la première lettre du texte chiffré. L'opérateur procède alors au chiffrement de la lettre N de la même manière et ainsi de suite pour les lettres suivantes.
* Chiffrement effectué par Enigma pour deux lettres consécutives. Le courant passe à travers un assemblage de rotors, puis par le réflecteur et enfin à nouveau par les rotors. La lettre A est chiffrée de façon différente lorsqu'on appuie deux fois consécutivement sur la même touche, la première étant chiffrée en G, la seconde en C selon cet exemple. Cela est dû au fait que le rotor droit a tourné d'un pas entre les deux fois, conduisant à un circuit électrique totalement différent.
* Schéma électrique complet montrant le chemin suivi par le courant : quand on appuie sur la touche « A », la lampe « D » s'allume. De même, la lettre « D » est encodée en « A ». Par contre, la lettre « A » n'est jamais encodée en « A ».
Dans le détail, le courant part de la batterie et traverse l'interrupteur à deux positions contrôlées par la touche sur laquelle on appuie. Il arrive alors au pupitre de connexions. Ce pupitre, situé sur la face avant de la machine, permet à l'utilisateur de facilement modifier les connexions entre le clavier et le disque d'entrée, afin de modifier l'encodage des touches. Le courant se dirige ensuite vers le disque d'entrée. Il parcourt alors l'assemblage des rotors, suivant la position de chacun de ceux-ci. Il passe ainsi de rotor en rotor, jusqu'à atteindre le réflecteur, qui renvoie le signal jusqu'au disque d'entrée, mais par un autre chemin que celui utilisé à l'aller (originalité qui distingue la famille des machines Enigma des autres machines à rotors de l'époque qui ne disposaient pas de réflecteur). Le courant passe enfin par un autre des interrupteurs à deux positions et allume l'une des lampes, correspondant à l'encodage de la touche utilisée.
Pour déchiffrer un message, il faut soit disposer d'une machine Enigma absolument identique à celle qui a été utilisée par l'expéditeur pour le chiffrement de ce message, et que cette machine soit réglée de la même façon, soit avoir une connaissance approfondie du fonctionnement extraordinairement complexe de cette machine, ce dont peu de gens étaient capables, même sur la base militaire britannique de Bletchley Park. Une fois la clef quotidienne d'encodage découverte, tous les messages échangés ce jour-là par le réseau concerné peuvent être très rapidement décryptés.

### Rotors

Les rotors (aussi appelés rouleaux ou tambours — Walzen en allemand) forment le cœur de la machine Enigma. D'un diamètre d'environ dix centimètres, chaque rotor est un disque fabriqué à partir de caoutchouc dur ou de bakélite. Sur une face sont disposés en cercle des contacts électriques à aiguilles, donc équipés de ressorts. Sur l'autre face, le même nombre de contacts plats sont disposés. Les contacts plats et à aiguilles représentent l'alphabet — généralement les 26 lettres (on fera cette supposition dans la suite de cette description, même si parfois des chiffres pouvaient être utilisés suivant le même principe).
* Alignement des rotors.
* Face d'un rotor de la machine Enigma, montrant les contacts à aiguille. Le chiffre romain V sous la tête de vis en rouge indique le câblage interne du rotor.
* Autre face du rotor, montrant les contacts plats. L'encoche entraînant le mouvement du rotor est visible à la gauche du disque.
Une fois les rotors assemblés, les contacts à aiguilles d'un rotor se positionnent en face des contacts plats du rotor voisin, formant ainsi la connexion électrique. À l'intérieur du rotor, un ensemble de 26 câbles électriques assurent les connexions entre les contacts à aiguilles et les contacts plats suivant un schéma compliqué, qui permet le chiffrement des lettres. Par exemple, sur un rotor particulier, le premier contacteur d'une face peut être relié au quatorzième contacteur de la face opposée, le deuxième contacteur relié au vingt-deuxième de l'autre face, et ainsi de suite. D'un rotor à l'autre, les connexions internes ne sont pas les mêmes. La version d'Enigma utilisée par l'armée allemande et le parti national-socialiste possède un jeu de rotors avec des connexions différentes des versions commerciales.
Le rotor utilisé tout seul ne réalise en fait qu'un chiffrement très simple — le chiffrement par substitution. Par exemple, le contact à aiguille correspondant à la lettre E peut être connecté sur la face opposée au contact plat de la lettre T. La complexité de la machine Enigma provient de l'utilisation de plusieurs rotors en série, généralement trois ou quatre, ainsi que le mouvement régulier de ces rotors (à chaque frappe de touche pour le premier). Lorsque 26 lettres ont été pressées, une came entraîne le rotor de la fente suivante et le fait tourner. L'alphabet de substitution est ainsi modifié à chaque pression de touche. Ces deux mécanismes forment un type de chiffrement beaucoup plus performant.
* Assemblage de trois rotors tels qu'ils sont placés dans la machine Enigma.
* Trois rotors de la machine Enigma et l'axe sur lequel ils sont assemblés.
* Vue éclatée de l'assemblage des rotors de la machine Enigma. 1. Anneau encoché 2. Point indiquant le contact « A » pour l'assemblage 3. Roue de l'alphabet 4. Contacts plats 5. Connexions électriques 6. Contacts à aiguille 7. Anneau élastique de réglage 8. Moyeu 9. Roue dentée de positionnement manuel du rotor 10. Roue à rochet.
Une fois installé dans la machine, un rotor peut donc être placé à l'une de ses 26 positions. Cela peut être réalisé soit manuellement par l'opérateur, au moyen de la roue dentée, soit automatiquement lors de la pression d'une touche du clavier. Pour que l'opérateur connaisse la position du rotor, chacun d'eux est équipé d'une « roue alphabet », comportant les 26 lettres de l'alphabet (ou 26 numéros) ; en fonctionnement, seule l'une d'entre elles peut être vue par une petite fenêtre et indiquer à l'opérateur la position exacte de chacun des rotors. Dans les premières machines Enigma, la « roue alphabet » était fixe sur le rotor. Une complication a été ajoutée dans les dernières versions, avec la possibilité de déplacer cette roue par rapport au rotor lui-même. La position de la roue se nomme le Ringstellung (« positionnement de l'anneau »).
Chaque rotor comporte enfin une encoche (parfois plusieurs), assurant le contrôle de son mouvement. Dans les versions militaires de la machine Enigma, cette encoche est située directement sur la « roue alphabet ».
Les machines Enigma de l'armée et de l'aviation allemandes étaient équipées de trois rotors, pour les premières versions. Le 15 décembre 1938, ce nombre fut porté à cinq, dont seulement trois étaient choisis pour être installés dans la machine. Chaque rotor était marqué d'un chiffre romain afin de pouvoir les distinguer : I, II, III, IV et V. Tous n'étaient équipés que d'une seule encoche.
La version de la machine Enigma de la Kriegsmarine (marine de guerre allemande) a toujours été fournie avec plus de rotors que les autres versions. Au départ, six rotors équipaient les machines, puis sept et finalement huit. Les rotors supplémentaires étaient numérotés VI, VII et VIII et possédaient des connexions électriques différentes des autres rotors. Ils étaient en outre équipés de deux encoches, ce qui entraînait donc une fréquence de rotation supérieure. Cette version, « M4 », comptait quatre rotors dans la machine à la place des trois des autres versions. Cette variante fut construite sans modifier grandement la machine, en remplaçant simplement le réflecteur d'origine par un autre beaucoup plus fin et en ajoutant un rotor spécial en quatrième position. Ce quatrième rotor pouvait être de deux types : Beta ou Gamma. Il ne tournait cependant jamais automatiquement, mais pouvait être placé manuellement sur l'une de ses 26 positions par l'opérateur.
Grâce à l'interconnexion pseudo-aléatoire de chaque rotor, la séquence exacte de ces substitutions dépendait du choix des rotors (câblage interne), de l'ordre d'installation de ceux-ci, et enfin de leur position initiale. Ces réglages forment la configuration initiale de la machine.
Les versions les plus courantes d'Enigma sont dites symétriques dans le sens où le chiffrement et le déchiffrement de l'information fonctionnent de la même manière. En effet, si l'on tape le texte chiffré dans Enigma, la séquence des lampes allumées correspondra au texte en clair. Mais cela ne fonctionne que dans le cas où la machine possède la même configuration initiale que celle qui a chiffré le message.

### Mécanisme d'entraînement

Afin d'éviter de réaliser un simple chiffrement par substitution monoalphabétique, chaque touche pressée sur le clavier provoque l'entraînement d'au moins un rotor, changeant ainsi la substitution alphabétique utilisée. Cela assure que la substitution est différente pour chaque nouvelle frappe sur le clavier, créant un chiffrement par substitution polyalphabétique.
C'est un mécanisme à base de roue à rochets qui était le plus fréquemment utilisé. À cette roue à 26 dents était associé un fin anneau métallique à encoches, solidaire du rotor. Chaque frappe de touche, via les cliquets, poussait sur la roue de chaque rotor pour la faire avancer d'un cran. Ce sont les anneaux métalliques qui permettaient ou non l'avancée des rotors. Pour qu'un rotor avance, il fallait que l'anneau du rotor à sa gauche présente une encoche alignée avec son cliquet. Le premier rotor n'étant pas bloqué par un anneau, il avançait d'un cran à chaque frappe. L'avancée des autres rotors dépendait du nombre d'encoches : une seule pour les rotors de type I à V, deux pour les rotors de type VI à VIII.
Position des encoches :
| Rotor | Positions | Effet |
| I | Q | la transition Q vers R provoque l'avancée du rotor suivant |
| II | E | la transition E vers F provoque l'avancée du rotor suivant |
| III | V | la transition V vers W provoque l'avancée du rotor suivant |
| IV | J | la transition J vers K provoque l'avancée du rotor suivant |
| V | Z | la transition Z vers A provoque l'avancée du rotor suivant |
| VI, VII et VIII | Z et M | une transition Z vers A, ou M vers N, provoque l'avancée du rotor suivant |
Si les machines Enigma se bornaient à ce mécanisme simple, le rotor I avancerait de 26 crans pour provoquer une avancée du rotor II, qui lui-même avancerait de 26 crans pour provoquer une avancée du rotor III. Toutefois, le mécanisme incluait également « une double avancée ». L'alignement du cliquet avec une encoche lui permettait de pousser sur la roue à rochet de son rotor, mais lui permettait aussi de pousser sur l'encoche de l'anneau solidaire du précédent rotor. Ce sont donc à la fois le rotor du cliquet et le rotor de l'anneau qui avançaient d'un cran. Pour une machine à trois rotors, seul le second était affecté par cette double avancée, le premier rotor avançant à chaque frappe de toute façon. C'est ce dispositif qui fait dériver l'entraînement des rotors de l'Enigma de celui d'un odomètre.
Avec trois rotors et une seule encoche pour les rotors I et II, une Enigma a une période de 26 × 25 × 26 = 16 900 (et non pas 26 × 26 × 26 à cause de la double avancée). Historiquement, les messages étaient limités à quelques centaines de lettres évitant toute chance de répétition de combinaisons des rotors, empêchant par là même les cryptanalystes d'accéder à des indices importants.
La frappe d'une touche provoquait d'abord une avancée sur les rotors et ensuite seulement une connexion électrique.

### Disque d'entrée

Le disque d'entrée (Eintrittswalze en allemand) relie le pupitre de connexions (ou le clavier des modèles sans pupitre de connexions) à l'ensemble des rotors. Bien que le câblage du disque d'entrée soit d'une très faible importance pour la sécurité, il posa des difficultés au cryptanalyste polonais Marian Rejewski lors du calcul du câblage des rotors. Alors que la version commerciale d'Enigma reliait les touches dans leur ordre sur le clavier (QWERTZ), les versions militaires les reliaient dans l'ordre alphabétique (ABCDEF). Rejewski dut construire quelques hypothèses avant de comprendre la modification et de résoudre les équations.

### Réflecteur

À l'exception des machines Enigma modèles A et B, le dernier rotor était suivi d'un réflecteur (Umkehrwalze en allemand, signifiant rotor d'inversion). Le réflecteur connecte les sorties du dernier rotor par paire, redirigeant le courant dans les rotors selon un chemin différent. C'est ce réflecteur qui garantit le caractère involutif de l'Enigma : chiffrer est identique à déchiffrer, comme pour le chiffrement par masque jetable. Cependant, le réflecteur empêche également l'Enigma de substituer une lettre à elle-même dans le texte chiffré. C'est une faille majeure qui a été utilisée par les cryptanalystes.
Dans la version commerciale qu'est le modèle C, le réflecteur pouvait être inséré dans deux positions. Dans le modèle D, il pouvait l'être dans 26 positions, mais restait fixe. Dans la version utilisée par l'Abwehr, il était entraîné par un mécanisme semblable à celui des rotors.
Dans les versions pour l'Armée de terre et Armée de l'air, le réflecteur était fixe. Le réflecteur existait en quatre versions. La version d'origine, dite « A », fut remplacée par l'Umkehrwalze B le 1er novembre 1937. Une troisième version, l’Umkehrwalze C, fut brièvement utilisée en 1940, peut-être par erreur, et fut cassée par la Hutte 6 de Bletchley Park. La quatrième version, détectée pour la première fois le 2 janvier 1944, avait un réflecteur reconfigurable dénommé l’Umkehrwalze D permettant à un opérateur de modifier les connexions pour la mise à la clef.

### Tableau de connexion

Les machines des armées, et non les machines commerciales, avaient un tableau de connexion (Steckerbrett) à l'avant de la machine, composé de l'alphabet. Avec des simili-prise jack, des câbles se connectent face à un alphabet pour permuter les deux lettres interconnectés. Quand une touche est pressée, le courant électrique passe d'abord par le câble de la lettre échangé, avant de traverser les rotors, qui fonctionnent normalement. Dix paires de lettres sont ainsi permutées chaque jour. C'est la partie de la machine qui possédait les possibilités de connexions les plus élevés, bien plus que les rotors.

### Analyse mathématique du chiffrement

Le chiffrement de chaque lettre par Enigma peut être considéré mathématiquement comme un produit de permutations. Considérons en effet une machine Enigma de l'Armée de l'air/ Marine allemande. Soit $P$ la transformation réalisée par le clavier, $U$ le réflecteur, et $G,M$ et $D$ les actions des rotors de gauche, du milieu et de droite respectivement. Le codage $C$ s'écrit alors :
    $C=PDMGUG^{-1}M^{-1}D^{-1}P^{-1}~$.
Après chaque action sur une lettre du clavier, le rotor tourne, changeant ainsi la transformation cryptographique. Par exemple, si le rotor de droite $D$ tourne de $i$ positions, le chiffrement devient $\rho ^{i}D\rho ^{-i}$, avec $\rho$ désignant la permutation circulaire permettant de passer de $A$ à $B$, de $B$ à $C$ et ainsi de suite. De même, le rotor du milieu et celui de gauche peuvent être décrits par $j$ et $k$ rotations de $M$ et $G$. Le chiffrement peut alors s'écrire de la façon suivante :
    $C=P(\rho ^{i}D\rho ^{-i})(\rho ^{j}M\rho ^{-j})(\rho ^{k}G\rho ^{-k})U(\rho ^{k}G^{-1}\rho ^{-k})(\rho ^{j}M^{-1}\rho ^{-j})(\rho ^{i}D^{-1}\rho ^{-i})P^{-1}~$.

## Mise en œuvre

La mise en œuvre est effectuée par deux chiffreurs. La procédure est entièrement manuelle. Dans l'Armée de terre et la Luftwaffe, jusqu'à la fin avril 1940 (à partir du 1er mai 1940, la clef brute n'est plus entrée qu'une fois), les choses se passent comme suit.

### Préparation de la machine

Chaque mois de l'année, dans chaque réseau, de nouvelles instructions de mise en œuvre spécifient des modifications (quotidiennes ou plus fréquentes) de plusieurs réglages. Les réglages internes sont les trois premiers pas de la procédure :
* Ordre des rotors (Walzenlage) : choix et positionnement des trois rotors prescrits par les instructions (ex. : I-V-III) ;
* Disposition de la bague (Ringstellung) des rotors gauche, milieu et droit (ex. : 06-20-24 affichés FTX) prescrite par les instructions ;
* Permutations des fils du tableau de connexions (Steckerverbindungen) (ex. : UA PF) prescrites par les instructions. Un des chiffreurs dispose la machine en conséquence. La procédure continue avec les réglages externes ;
* Le premier chiffreur dispose les trois rotors sur la position initiale (Grundstellung) définie par les instructions quotidiennes, ex. : JCM (c'est la source du « Herivel Tip » qui réduit les spéculations des cryptanalystes à quelques dizaines de combinaisons) ;
* Le premier chiffreur choisit au hasard un réglage initial de rotors et le frappe deux fois, ex. : BGZBGZ. C'est la clef brute du message (et la source des fameuses « cillies ») ;
* Le second chiffreur note le résultat affiché par les voyants ; c'est l'indicateur ou clef chiffrée (ex. : TNUFDQ) ;
* Le premier chiffreur dispose ses rotors sur BGZ puis entre au clavier le texte du message en clair, lettre par lettre ; le second chiffreur note les lettres signalées par l'allumage des voyants.

### Formatage et émission du message

Le message est formaté de la façon suivante, avant émission :
* Préambule, en clair, avant le message proprement dit : indicatif radio, groupe date-heure et nombre de lettres du message, plus le Grundstellung (ex. : JCM) ;
* Groupe de cinq lettres comprenant deux lettres-tampons (Füllbuchstaben) suivies du discriminant (Kenngruppe), ex. : JEU, qui distingue les différents réseaux de trafic Enigma et identifie le dossier d'instructions utilisé pour la mise en position initiale (Grundstellung) journalière. Les Britanniques désignent ces réseaux par des mots-codes : exemples Red (trafic général de la Luftwaffe), Yellow (liaisons Heer/Luftwaffe mais en Norvège seulement) ;
* Les six lettres de l'indicateur ou clef chiffrée (ex. : TNUFDQ) ;
* Le message chiffré, en groupes de cinq lettres. Au maximum, 50 groupes de 5 lettres. Les messages plus longs sont découpés en plusieurs messages transmis séparément. Il existe des manuels expliquant comment préparer des messages les plus courts possibles.
Les états-majors allemands multiplient les astuces, certains mots ou expressions sont codés, les alphabets et les nombres sont manipulés, les coordonnées topographiques sont transposées. Il arrive que les textes une fois correctement déchiffrés par les services alliés ne soient qu'une suite de lettres sans aucun sens pour qui ne dispose pas des documents de référence… La Wehrmacht emploie un jargon de métier et des abréviations mal connus des spécialistes alliés (les fameux cribs tiennent de la devinette). La situation est aggravée par les erreurs de manipulation et de lecture du morse, la mauvaise qualité de réception des transmissions, l'état de fatigue des personnes impliquées, etc.
Le message chiffré et formaté est alors émis en morse au moyen d'un poste radio.

### Réception et déchiffrement du message

À l'autre bout du réseau, le destinataire capte le message au moyen d'un autre poste radio. Le message est noté noir sur blanc. Il est remis à un chiffreur dont la machine Enigma est déjà réglée en fonction des mêmes instructions quotidiennes (1-2-3) que l'autorité émettrice. Le chiffreur dispose ses rotors sur JCM (4), frappe TNUFDQ (6) et note le résultat, BGZBGZ (5). Ensuite, le chiffreur dispose ses rotors sur BGZ. Le texte est déchiffré lettre par lettre, le second chiffreur note à mesure.
Cette procédure ne s'applique qu'à l'Enigma standard de la Heer (armée de terre) et de la Luftwaffe. La Kriegsmarine emploie des variantes plus complexes, avec la version M4 de la machine Enigma mise en service le 1er février 1942. Pendant onze mois, les Alliés ne réussirent pas à décrypter ces messages. Les chemins de fer, la police et la poste utilisent des modèles plus anciens. L'Abwehr met en œuvre des machines plus évoluées, mais sans tableau de connexions.

### Interception par les Alliés

Les stations d'écoute alliées enregistrent les messages, tout en relevant la fréquence et l'angle d'arrivée de l'émission, l'heure de réception est notée ainsi que tous les paramètres associés. Les fréquences les plus importantes sont doublement surveillées, afin d'éviter de manquer des émissions et d'avoir confirmation éventuelle de textes douteux. Certains opérateurs alliés reconnaissent les opérateurs radio allemands à leur toucher, ce qui aide à identifier à nouveau les unités ennemies qui ont changé d'indicatif radio ou de fréquence. L'ensemble de ces informations est transmis à Bletchley Park, où la procédure de mise en œuvre est connue par cœur. Les fautes des chiffreurs allemands sont mises à profit par des cryptanalystes comme John Herivel ou Leslie Yoxall.
Dans la Heer et la Luftwaffe, les chiffreurs ne sont exemptés ni de corvée, ni de garde, ni de sport, ni de revues ; ils subissent des punitions et des brimades. En campagne, ils sont exposés à la faim, à la soif, à la peur, à l'épuisement et au manque de sommeil. Or la minutieuse procédure de mise en œuvre est longue et fastidieuse.

## Histoire

Enigma est brevetée et développée par l'ingénieur en électricité allemand Arthur Scherbius à partir de 1918. Il achète cependant en 1927, afin de protéger ses propres brevets, les droits d'une « machine à rotors », développée et brevetée dès 1919 par le chercheur néerlandais Hugo Alexander Koch. Il fonde une société à Berlin qui produit et vend la première version commerciale (Enigma-A) en 1923. Le prix exorbitant de cette machine à l'époque (équivalent à 30 000 euros aujourd'hui) en fit un échec cuisant. Trois autres versions commerciales suivent, et l'Enigma-D devient le modèle le plus répandu après son adoption par la Marine allemande en 1926. L'appareil est ensuite repris par l'Armée de terre allemande en 1929. À partir de ce moment, son usage est étendu à toutes les forces armées allemandes et une grande partie de la hiérarchie nazie. La Kriegsmarine surnomme Enigma « la machine M ».
Le Deuxième Bureau français (dont le chargé des chiffres allemands, le capitaine Bertrand), est parvenu en 1931 à recruter une source, Hans-Thilo Schmidt, au sein même du bureau du chiffre du ministère de la Reichswehr. Il obtient de lui de premières copies de la documentation d'une machine de chiffrement électromécanique à cylindres nommée Enigma.
Sur ordre de sa hiérarchie, le capitaine Gustave Bertrand, officier traitant de la Source D, fait parvenir ces documents aux services de renseignement britanniques et polonais. Comme le bureau du chiffre français, le chiffre de l'Intelligence Service britannique considère qu'il est impossible de casser un chiffre à cryptage mécanique.
Le capitaine Bertrand se rend à Varsovie et conclut un accord de coopération avec le lieutenant-colonel Gwido Langer, chef du Biuro Szyfrów, service polonais du chiffre. Les officiers polonais sont enthousiastes et s'attaquent à l'analyse du système Enigma. Ils sont aidés régulièrement, au fil des ans, par de nouveaux renseignements français, dont des photographies de la structure d'Enigma et de son plan d'assemblage, et le plan de câblage interne du système de roues permettant le réglage quotidien, en 1932. Ils obtiennent dès 1933 de premiers résultats concluants. Le mathématicien Marian Rejewski, assisté de Jerzy Różycki et Henryk Zygalski, parvient à reproduire manuellement le fonctionnement de la machine. Cinq ans après, ils conçoivent des engins électromécaniques, les « bombes », qui automatisent le processus, ce qui est rendu indispensable par l'accroissement de la fréquence de changement des codes allemands.
Face à l'imminente invasion allemande, les Polonais en juillet 1939, transmettent au commandant Bertrand l'ensemble de leurs travaux. Ils se heurtent à une nouvelle accélération par les Allemands du rythme des changements de code.
En août 1939, les Français lancent secrètement la fabrication d'une série de quarante machines Enigma pour capter les messages allemands sur la base de celles obtenues de Pologne. Avec l'accord du général Maurice Gamelin, le commandant Bertrand apporte à Londres une des machines polonaises pour servir de base aux travaux britanniques. Pour que l'opération passe inaperçue, la machine aurait été convoyée dans les bagages de Sacha Guitry, accompagnée de son épouse, Yvonne Printemps, le 16 août 1939.
Les services britanniques reçoivent également des services français la totalité des documents détenus et, sur cette base, prennent le relais des travaux polonais.
À de nombreuses occasions, les Allemands renforcent la sécurité d'Enigma. Au prix de mille difficultés, les Britanniques reconstituent les réglages et parviennent petit à petit à décrypter un nombre croissant de messages, malgré de longues périodes de trous noirs. À la fin de la guerre, Rejewski, qui a cru que ses travaux n'avaient servi à rien, en est impressionné.
Pendant la Seconde Guerre mondiale, différentes versions d'Enigma sont utilisées pour les transmissions allemandes (mais aussi celles d'autres puissances de l'Axe) au niveau de la division et au-dessus. Certains bulletins météos sont chiffrés avec Enigma. Les Espagnols (lors de la Guerre d'Espagne) puis les Italiens (pendant la Seconde Guerre mondiale) utilisent une des versions commerciales de la machine, qui est inchangée, pour leurs communications militaires. Cette imprudence favorise les Britanniques et contribue à la victoire britannique face à la flotte italienne au cap Matapan.
La Royal Navy organise plusieurs coups de main contre des chalutiers armés et des navires-météo. Des équipes de prise montent à bord de U-Boote abandonnés par leur équipage. À chaque fois, des manuels et des documents sont capturés, notamment :
* le 9 mai 1941, l'U-110 est pris par les marins du destroyer HMS Bulldog qui rapportent un jeu de tables de bigrammes, le manuel utilisé pour chiffrer les rapports météo et le manuel utilisé pour chiffrer les messages courts ;
* le 30 octobre 1942, trois marins britanniques se glissent à l’intérieur du sous-marin allemand U-559, qui venait d’être abandonné par son équipage pour récupérer les documents. Un des trois marins parvient à ressortir avant que le sous-marin ne coule ;
* le 4 juin 1944, la capture par l'US Navy de l'U-505 intact avec son livre de bord et ses codes, qui est remorqué jusqu'aux États-Unis.
Les signaux de l'armée allemande sont décryptés, puis croisés avec une autre source d'informations importantes, les réseaux de résistants français, qui ont infiltré les bases des sous-marins allemands de Brest, La Rochelle, Saint-Nazaire, et surtout Lorient où Jacques Stosskopf, l'un des plus importants espions de la Seconde Guerre mondiale devient sous-directeur de la base où se trouve le quartier général de l'Amiral Karl Dönitz : les écussons sur les kiosques des U-boote, les fanions, les sorties et les retours de missions, des bons de commande adressés à l'arsenal français ; les sacs de linge déposés en blanchisserie avec le nom des soldats, les indiscrétions des marins allemands dans les bars, rien n'échappe à son équipe.
Pour que ce système d'espionnage reste durablement efficace, il fallait aussi que les Allemands ne se doutent de rien, faute de quoi la sécurité de leurs transmissions aurait été modifiée. En Méditerranée, les messages allemands et italiens qui annoncent la route et le calendrier des convois de ravitaillement des forces de l'Axe en Tunisie et en Libye sont couramment décryptés par les spécialistes britanniques, mais l'attaque est précédée d'une reconnaissance aérienne qui trouve le convoi « par hasard ».
La machine de codage britannique Typex et plusieurs des machines américaines comme SIGABA, le M-134-C ou le TSEC/KL-7 connu sous le nom de code ADONIS, utilisées par les forces de l'OTAN, fonctionnaient selon des principes analogues à Enigma, mais de manière beaucoup plus sûre. La première machine à cylindres chiffrants moderne d'Edward Hebern est considérée comme moins sûre, un fait noté par William F. Friedman lors de son acquisition par le gouvernement américain.

## Sécurité

Contrairement à la plupart des variantes du chiffrement polyalphabétique, Enigma, à proprement parler, n'a pas de clef. En effet, les rotors produisent un nouvel alphabet de substitution à chaque pression de touche. De plus, on peut complètement changer la séquence de ces alphabets de substitution, en faisant tourner un ou plusieurs des rotors à la main, en changeant l'ordre des rotors, etc., avant de commencer à utiliser Enigma. De manière plus simple, on peut dire qu'Enigma possède une banque de 26 × 26 × 26 = 17 576 alphabets de substitution pour toute combinaison de trois rotors. La séquence d'utilisation de ces alphabets varie selon que l'on met les rotors en position ABC, ou ACB, etc. Et tant que le message ne dépasse pas 17 576 caractères, il n'y a aucune répétition de l'alphabet de substitution. Ces paramètres de réglage sont connus des chiffreurs du destinataire : il s'agit de valeurs très simples, du type numéro de rotors, position de l'anneau et position de départ, qui figurent dans les instructions distribuées à tous les chiffreurs d'un même réseau. Du côté chiffrement, il n'y a plus qu'à entrer la clef brute qui, après chiffrement, donne l'indicateur ou clef chiffrée.

## Combinaisons

Le principe de la machine Enigma était connu. Ce qui fit son efficacité, c'est le nombre immense de combinaisons possibles pour les réglages initiaux de la machine et le choix de la clef brute du message. Les calculs utilisent les factorielles.
Le calcul du nombre des combinaisons se décompose en trois parties à analyser : l'arrangement des rotors, l'alphabet des rotors et le tableau de connexions.
* Les rotors : il y a trois rotors à arranger parmi cinq, soit $A_{3}^{5}={\dfrac {5!}{2!}}\ =5\times 4\times 3=60$ possibilités.
* Les alphabets : il y a 26 lettres sur chaque rotor ; sachant qu'on utilise trois rotors, cela fait $26\times 26\times 26=17\,576$ possibilités pour arranger trois lettres initialement.
* Le tableau de connexions : à l'aide de dix câbles, on relie 20 lettres deux-à-deux ; ainsi 20 lettres sont permutées et 6 d'entre elles restent inchangées, le nombre de combinaisons s'écrit donc ${\dfrac {26!}{6!\times 10!\times 2^{10}}}=150\,738\,274\,937\,250$ permutations possibles. Dans le détail, les combinaisons totales de connexions donnent des possibilités de $26!$, auquel on retranche : 6 lettres non-connectés soit $6!$, l'ordre des paires, interchangeable, sans ordre ou classification unique, donc $10!$ et le fait que les paires de lettres marchent dans les deux sens, sans cheminement à sens unique, soit $2^{10}$.
Le nombre total de combinaisons, soit le produit des combinaisons des choix des rotors, de leurs positions de départ et du tableau de connexion, est donc $60\times 17\,576\times 150\,738\,274\,937\,250=158\,962\,555\,217\,826\,360\,000\approx 1,59\times 10^{20}$.
Bien sûr, il existe des machines encore plus complexes comme la machine Enigma-M4 (en) qui ajoute un rotor. Plus nous ajoutons de rotors, plus nous augmentons le nombre de combinaisons possibles.

## Exemple de messages Enigma originaux (de 1941)

Source.
Les numéros indiquent le nombre de lettres dans le message.
Le premier groupe de trois lettres indique la position initiale (Grundstellung) des rotors de la machine qui a chiffré (et la position initiale (Grundstellung) de la machine qui va déchiffrer). Cette position initiale des rotors est prescrite par les instructions quotidiennes de tous les chiffreurs d'un même réseau.
Le second groupe de trois lettres est l'indicateur du message. C'est le résultat du chiffrement des trois lettres de la clef choisie par le chiffreur qui a chiffré le message.
| - 83 - ADJ JNA - LMHNX WEKLM UERDS EVHLC JSQQK VLDES ANEVT YEDGI ZQDOD RMDKG SXGSQ SHDQP VIEAP IENLI CLZCL LAGWC BJZD | - 149 - TLS CMU - FTMKV DRJMG FBUDK LZCTR FLTUU IWVJL OYKYX GDCKJ TMDFB WNLZQ JAXHP GGKFG SBZOQ KQKUK TINMH BAJOO AUILA QVFTK LSTMM XGAQL CNHUW LFHKA ULTXT BIVIF EWWDY PUCNS TPJHR OBWHE KYUSB CANYC W | - 167 - MRJ LLT - KLIBM ERJAR WMMHJ STHOY OOIQB HSSZU EOOKF TASXN XVYWE SCTCH NRNBL ZPEBH XPAQE DFNYS XHMNI HRARO UNBMD ZRZDN WTGUI UCBZN ZTFJA EKOMJ AZILN RKVFD UNIEW ILZVL KQYYJ ANKXG NNNHT EMAVD FXKAY MLWCV QDFWX LO | - 186 - DOQ VHZ - PBNXA SMDAX NOOYH RCZGV VZCBI GIBGW HMXKR RVQCF JCZPT UNSWA DDSTI GQQCS AGPKR XXLOM GFXAP HHMRF SDKYT MYPMV ROHAS QYRWF WVAVG CCUDB IBXXD YZSAC JSYOT MWUCN WOMHH JPYWD CCLUP GSWCL MBCZS SYXPG MGMQX AUFUL NOZEQ ENHEI ZZAKL C |
| - 195 - EHW TNH - ABTWU GWDMP OGKMQ KBHGK HROUP RMYQY INHSA MWFBP CDQRG LDBFK YNXPP DIQHE AOIFQ AOLRZ ZFPDJ MCGEC TAHHQ MVUYA JIAWM WSOYU UTLEP AVZKG HJWCD LOQHW IMSTC LQDNP VCFCN FRUYR GSSJH ORQMU IFFYU WYNTA XPYIX MYTEE FTDCV EHUOA DCPLM APCAU JJYUK | | - 241 - SDV RUD - TAZUK DVNNF AZOUV YYSXO ZLRJO TMMXK AWPVU TTUXS LAQOX GQUKX XKXAL URHGR SUOHD FJTRE TLFKD MGDXE MWIXX INTLG EDKVL RTJFX RFOIE NNIRR WFKTI BVFVE LLAWR GJNVB YHBZS CJVTZ PDBGV PBNNA LNAKX OUOJG WLJXO UXHDS HXJOU HVBVF DOLMN LYNVC MRGKK YTOCP DUEVN FMIPT GGJYA YBDES P | |

## Commande crypt

L'algorithme de chiffrement d'Enigma a été mis en œuvre par un étudiant en tant que commande intégrée dans Unix (crypt). Cette commande a été utilisée par des laboratoires civils et militaires qui croyaient protéger ainsi leurs communications (les travaux de déchiffrement de Bletchley Park restèrent en effet secrets jusqu'en 1974), ce qui a pu faciliter l'espionnage industriel.
Toutefois, dans l'aide en ligne de la commande était précisé qu'elle ne devait pas être utilisée pour chiffrer des informations sensibles. En effet, la version internationale de la commande n'utilisait l'équivalent que d'un seul rotor de 256 positions (pour chiffrer les 256 valeurs possibles d'un octet).

## Dans les arts et la culture
### Filmographie
#### Cinéma

* 1981 : Enigma de Jeannot Szwarc.
* 2000 : U-571 de Jonathan Mostow.
* 2001 : Enigma de Michael Apted.
* 2014 : Imitation Game de Morten Tyldum.

### Littérature
#### Bande dessinée

* Qui a cassé Enigma ? - La véritable histoire du code secret nazi par Fabien Tillon et Lelio Bonaccorso.

## Simulateurs

| Nom | Plateforme | Types | Uhr | UKW-D |
| Web Encryptor - The Online Encrypter | React (développée par Facebook) | Enigma I, M3 (Army/Navy), M4 (Army/Navy), Railway, Tirpitz, Zahlwerk (Default/G-260/G-312), Swiss-K (Air Force/Commercial) | Non | Oui |
| Franklin Heath Enigma Simulator | Android | K Railway, Kriegsmarine M3,M4 | Non | Non |
| EnigmAndroid | Android | Wehrmacht I, Kriegsmarine M3, M4, Abwehr G31, G312, G260, D, K, Swiss-K, KD, R, T | Non | Non |
| Andy Carlson Enigma Applet (Standalone Version) | Java | Kriegsmarine M3, M4 | Non | Non |
| Minarke (Minarke Is Not A Real Kriegsmarine Enigma) | C/Posix/CLI (MacOS, Linux, UNIX, etc.) | Wehrmacht, Kriegsmarine, M3, M4 | Non | Non |
| Russell Schwager Enigma Simulator | Java | Kriegsmarine M3 | Non | Non |
| PA3DBJ G-312 Enigma Simulator | Javascript | G312 Abwehr | Non | Non |
| Virtual Enigma 3D | JavaScript | Wehrmacht, Kriegsmarine M4 | Non | Non |
| Terry Long Enigma Simulator | MacOS | Kriegsmarine M3 | Non | Non |
| Paul Reuvers Enigma Simulator for RISC OS | RISC OS | Kriegsmarine M3, M4, G-312 Abwehr | Non | Non |
| Dirk Rijmenants Enigma Simulator v7.0 | Windows | Wehrmacht, Kriegsmarine M3, M4 | Non | Non |
| Simulateur Windows d'Enigma Wehrmacht/Luftwaffe en français | Windows | M3 Wehrmacht, Luftwaffe | Non | Non |
| Frode Weierud Enigma Simulators | Windows | Abwehr, Kriegsmarine M3, M4, Railway | Non | Non |
| Alexander Pukall Enigma Simulator | Windows | Wehrmacht, Luftwaffe | Non | Non |
| CrypTool 2 — Enigma component and cryptanalysis | Windows | A/B/D (commercial), Abwehr, Reichsbahn, Swiss-K, Enigma M3, Enigma M4 | Non | Non |

## Conclusion

Après la guerre, les cryptographes allemands furent interrogés par des spécialistes de la mission TICOM. Les interrogateurs furent surpris que leurs prisonniers sachent qu'Enigma n'était pas indécryptable. Ce qui leur semblait inconcevable en revanche, c'est que leur ennemi arrive à faire fonctionner « un bâtiment plein d'équipements » pour y arriver.