Enigma (machine)
Un article de Wikipédia, l'encyclopédie libre.
Enigma est une machine électro-mécanique portable d'origine allemande, faisant appel à des rotors montés sur cylindres pour le chiffrement et le déchiffrement de l'information. Plus précisément, Enigma est une famille de machines, car il en a existé de nombreuses et subtiles variantes. Enigma fut commercialisée en Europe et dans le reste du monde dès le début des années 1920. Elle fut aussi adaptée pour une utilisation par les services militaires et diplomatiques de nombreuses nations.
Son utilisation la plus fameuse fut celle de l'Allemagne nazie et de ses alliés, avant et pendant la Seconde Guerre mondiale.
Bien qu'elle fut considérée avant la Seconde Guerre mondiale comme sûre par ses utilisateurs, les cryptologues britanniques (reprenant les travaux commencés par leurs homologues polonais) furent, à plusieurs reprises et sur de longues durées, capables de décrypter les messages protégés par ces machines avec des bombes électromécanique (voir Cryptanalyse d'Enigma pour plus de détails). Les informations obtenues grâce à cette source leur donnèrent un net avantage dans la poursuite de la guerre. Il a été estimé que la guerre en Europe s'est terminée au moins un an plus tôt grâce à la cryptanalyse du code allemand, dans lequel le déchiffrage des informations codées par Enigma a joué une part importante (voir Ultra). Bien que la machine ait des faiblesses intrinsèques, les erreurs faites par les codeurs utilisant Enigma, ainsi que les piètres décisions politiques des autorités, ont aussi joué un rôle important en diminuant la complexité du décodage des messages.
Brièvement, la machine Enigma chiffre les informations en réalisant le passage d'un courant électrique à travers une série de composants. Le courant est transmis en pressant une lettre sur le clavier. Après sa traversée dans un réseau complexe de fils, une lampe indique la lettre chiffrée. Le premier composant est une série de roues adjacentes, appelées rotors, qui contiennent les fils électriques utilisés pour coder le message. Les rotors tournent, variant la configuration complexe du réseau chaque fois qu'une lettre est tapée. La machine Enigma utilise habituellement une autre roue, nommée « réflecteur », et un composant, appelé plugboard, permettant de complexifier encore plus le processus de chiffrement.
Sommaire |
[modifier] Description
Enigma est une machine électro-mécanique, ce qui signifie qu'elle utilise une combinaison de parties mécaniques et électriques. La partie mécanique est composée d'un clavier, d'un jeu de disques rotatifs adjacents appelés « rotors » arrangés le long d'un axe, et d'un mécanisme entraînant en rotation un ou plusieurs des rotors chaque fois qu'une touche est pressée. Le mécanisme exact varie, mais la forme la plus commune est celle où le rotor du côté droit tourne chaque fois qu'une touche est pressée et où occasionnellement 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 pression sur une touche. La partie électrique de l'appareil est constituée par une pile reliant les touches du clavier à des lampes. Lorsque que 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 presse la touche A et la lampe Z pourrait s'allumer ; dans ce cas, Z est la première lettre du texte chiffré. L'opérateur procède alors au chiffrage de la lettre N de la même manière, et ainsi de suite pour les lettres suivantes.
Le courant part de la batterie et traverse l'interrupteur à deux positions contrôlées par la touche pressée. 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 à l'aller (fait unique 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 pressée.
[modifier] Les rotors
Les rotors (aussi appelés roues ou tambours — Walzen en allemand) forment le cœur de la machine Enigma. D'un diamètre d'environ 10 cm, 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).
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 chiffrage 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. 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.
|
Une fois installé dans la machine, un rotor peut donc être placé à l'une de ses 26 positions. Cela peut être réalisé manuellement par l'opérateur, au moyen de la roue dentée, ou automatiquement lors de la pression d'une touche du clavier. De telle façon que l'opérateur connaisse la position du rotor, chacun d'eux est équipé d'une « roue alphabet », comportant donc 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, indiquant donc à 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 du mouvement du rotor. 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 nombreux rotors, trois exactement 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 Wehrmacht pour la marine a toujours été équipée de plus de rotors que les autres versions. Au départ, cinq rotors équipaient les machines, puis sept et finalement huit. Les rotors supplémentaires étaient numérotés VI, VII et VIII, et avaient donc 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 différente.
La machine Enigma à quatre rotors de la marine (M4) comptait, elle, quatre rotors dans la machine à la place des trois des autres versions. Ceci fut possible 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 aléatoire de chaque rotor, la séquence exacte de ces substitutions dépendait de la position initiale des rotors, de leur ordre d'installation, et du choix des rotors (câblage interne). Ces réglages appelés configuration initiale étaient inscrits dans un livre et changeaient une fois par mois au début de la Seconde Guerre mondiale. Ces changements devinrent de plus en plus fréquents jusqu'à devenir journaliers vers la fin de la guerre, voire plusieurs fois par jour sur certains réseaux.
Les versions les plus courantes d'Enigma sont dites symétriques dans le sens que le chiffrement et le déchiffrement de l'information fonctionne 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
Pour plus de détails sur le câblage des rotors et le réglage de l'anneau élastique ainsi que leurs effets sur le chiffrement, consulter (en) Enigma rotor details.
[modifier] Disque d'entrée
Le disque d'entrée (Eintrittswalze en Allemand) réalise la connexion entre le pupitre de connexions (ou le clavier pour les modèles ne possédant pas de pupitre de connexions) et l'ensemble constitué par les rotors. Bien que le câblage utilisé dans le disque d'entrée soit d'une très faible importance pour la sécurité, cela s'avéra être un obstacle pour le 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 (QWERTY), les versions militaires les reliaient dans l'ordre alphabétique (ABCDEF). Rejewski dut faire quelques suppositions pour comprendre la modification avant de pouvoir résoudre les équations.
[modifier] Analyse mathématique du codage
Le codage 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 :
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 codage devient ρiDρ − 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écrit par j et k rotations de M et G. Le codage peut alors s'écrire de la façon suivante :
[modifier] Histoire d'Enigma
Enigma est développée par Arthur Scherbius à partir de 1919. Il fonde une société à Berlin qui produit et vend la première version commerciale (Enigma-A) en 1923. Trois autres versions commerciales vont suivre, 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 allemande en 1929. À partir de ce moment, son usage est étendu à toute l'organisation militaire allemande et une grande partie de la hiérarchie nazie. La Marine allemande surnomme Enigma « la machine M ».
Pendant la Seconde Guerre mondiale, des versions d'Enigma sont utilisées pour pratiquement toutes les communications radio allemandes (mais aussi celles d'autres puissances de l'Axe), ainsi que pour les communications télégraphiques. Même les bulletins météos sont codés avec Enigma. Les Espagnols (lors de la guerre civile espagnole) puis les Italiens (pendant la Seconde Guerre mondiale) utilisent une des versions commerciales de la machine, inchangée, pour leurs communications militaires. Cette imprudence bénéficie aux Britanniques qui n'en cassent le code que plus vite. Cela contribue à la victoire britannique face à la flotte italienne à Matapan.
Le code a en fait été cassé dès 1933 par des mathématiciens polonais (Marian Rejewski, Jerzy Różycki et Henryk Zygalski) aidés de moyens électromécaniques (surnommés « bombes de Rejewski »). Le Deuxième Bureau français achète à Hans Thilo Schmidt, frère cadet du lieutenant-colonel Rudolf Schmidt qui sera en mai-juin 1940 le supérieur direct du général Erwin Rommel, les clés mensuelles d'Enigma, aussitôt transmises aux Polonais.
Peu après, la Pologne fut prise par les Allemands, et le bureau de chiffrement anglais récupère les travaux de Rejewski, dans le plus grand secret. Les Allemands améliorèrent Enigma, en ne doublant plus la clef au début des messages, et en ajoutant des rotors, mais les Anglais réussirent à en venir à bout. A la fin de la guerre, Rejewski, qui croyait que ses travaux n'avaient servis à rien fut impressionné.
Il ne suffisait pas de décrypter toutes les communications de l'ennemi : il fallait aussi que celui-ci l'ignore, faute de quoi il aurait progressivement changé de matériel codant. La destruction de chaque navire allemand dont la position était connue était donc précédée de l'envoi d'un avion de reconnaissance censé passer là « par hasard ». Celui-ci prenait soin de bien se faire voir, et l'attaque pouvait ensuite être lancée sans alerter l'état-major ennemi (qui devait se dire que les Alliés avaient soit beaucoup de chance, soit beaucoup d'avions !) En revanche, là où l'on ne pouvait envoyer ces avions pour des raisons d'autonomie, les Alliés devaient laisser partir des convois dont ils savaient qu'ils n'arriveraient jamais : les annuler eût été alerter immédiatement l'ennemi.
La machine de codage britannique Typex, et plusieurs des machines américaines comme par exemple SIGABA ou le M-134-C, fonctionnent selon des principes analogues à Enigma, mais de manière beaucoup plus sûre. La première machine à cylindres chiffrants moderne de 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.
[modifier] Sécurité
L'utilisation de plusieurs rotors par Enigma fournit une manière simple pour déterminer quel alphabet de substitution est utilisé pour chiffrer ou déchiffrer une lettre particulière. Cependant, contrairement à la plupart des variantes du chiffrement polyalphabétique, Enigma n'a pas une clé à proprement parler. En effet, ces rotors produisent un nouvel alphabet de substitution à chaque pression de touche. De plus, la séquence de ces alphabets de substitution peut être complètement changée en faisant tourner l'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 x 26 x 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. Pourtant, cette « clé » peut être communiquée de manière très facile à un autre utilisateur : il s'agit de valeurs très simples, du type numéro de rotors, position de l'anneau et position de départ.
[modifier] Exemple de messages Enigma originaux
Le contenu du texte clair est bien entendu en allemand. Les numéros de messages ont été ajoutés par les services d'interception britanniques. Personne ne sait si ces messages ont été chiffrés par une Enigma à 3 ou à 4 rotors.
- 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 - 232 - KPL ZFT - IKPKE WZVTB TXWID JCJAN MPWQZ RKUGF TBBAL IERPD BCDVM ARZEL XXWKF ABVKI WFXDV HJGRR CUCQN YQGAE PNOYN LIYLC DGKYL TXTYP IVDGP YMZLY UXWQS FQLCB DELAN PXXWH TDMNQ ENFWA TJVHO EUPGO CQJCF WSLJR EJJFL TJFJT UIYKT - 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 - 272 - PPS QJH - QSDCK HQOGN OSAIC GADNM PJIAI NPWBM VLTKQ YUDII GWSHT TZEYE CCHFJ CNYBC HXZNE KOOMV SOLLS NDDGR RXPMS GFOPY SJFSY SBYBS CSKDP IOBQM HSFKV MCSMD HYJNO CHB
[modifier] Anecdote
L'algorithme de chiffrement d'Enigma a été développé par un étudiant en tant que commande UNIX (crypt), intégré dans la distribution de ce système et a été utilisé par des laboratoires civils et militaires qui croyaient protéger ainsi leurs communications (les travaux de déchiffrement de Bletchley Park étaient en effet classifiés jusqu'en 1974[1]), ce qui a bien entendu pu faciliter l'espionnage industriel.
Notons toutefois que dans l'aide en ligne de la commande était précisé que cette commande 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 caractères possibles d'un octet).
[modifier] Notes et références
- ↑ Révélation en 1974 du décryptage d'Enigma dans la publication de The ULTRA Secret., de Fred Winterbotham
[modifier] Voir aussi
[modifier] Articles connexes
Autres machines de chiffrement de la Seconde Guerre mondiale :
[modifier] Liens externes
- (fr) Ars Cryptographia, Enigma
- (fr) Principe de fonctionnement de la Machine Enigma
- (fr) Dossier très complet (92 pages) et Simulateur en php
- (fr) Si les Allemands avaient changé leurs rotors plus souvent
- (fr) Dossier complet et simulateur
- (en) The world's first electronic Enigma machine (YouTube video)
[modifier] Bibliographie
- La Guerre secrète - Anthony Cave Brown
L'histoire des codes secrets(version traduite) de Simon Singh
Machines et dispositifs de chiffrement |
À rotors : Enigma | Fialka | Machine de Hebern | HX-63 | KL-7 | M-325 | NEMA | SIGABA | Typex |
Mécaniques : Cylindre de Bazeries | C-52 | CD-57 | HC-9 | Kryha | Cylindre de Jefferson | M-94 | M-209 |C-36 | Scytale |
Téléscripteurs : 5-UCO | BID 770 | KW-26 | KW-37 | Lorenz SZ 40/42 | Siemens and Halske T52 |
Sécurité de la voix : KY-57 | KY-58 | Secure Terminal Equipment | SIGSALY | STU-III | VINSON | SCIP |
Autres : Cryptex | JADE | KG-84 | PURPLE | Engrenage |