Je me rappelle d’avoir entendu parler pour la première fois de la machine Enigma en introduction du cours de cryptographie, tout informaticien normalement devrait connaître au moins de nom cette machine, elle a un lourd pesant historique et technologique. Historiquement c’est la première machine et la plus célèbre à avoir initié la cryptographie moderne, inventée par les Allemands au début du XX-ième siècle, elle était considérée très en avance en son temps, c’était même la machine principale utilisée par l’armée Allemande en Seconde Guerre mondiale pour le cryptage de ses communications, elle était considérée par les Allemands comme la machine infaillible. Et pourtant les Anglais ont réussi à la craquer, essentiellement grâce aux efforts du brillant mathématicien aujourd’hui considéré comme le père de l’informatique Alan Turing. Pour beaucoup d’historiens, le détournement du cryptage d’Enigma avait contribué énormément à basculer la balance en faveur des alliés dans la Seconde Guerre mondiale, et cet exploit intellectuel de Turing l’a propulsé au rang de héros national, et même son histoire avec Enigma est actuellement réinterprétée dans plusieurs romans et réalisations cinématographiques.
Sincèrement, la machine m’a subjugué ces derniers jours, personnellement et pour beaucoup d’autres je suppose, la machine reste d’après son nom une machine énigmatique, mystique, et incompréhensible, mais en réalité loin de là, c’est une machine très simple à utiliser, sur la vidéo en haut de la chaîne Numberphile, une brève démonstration de comment cette machine fonctionne est exposée, son utilisation reste assez simple et plus que ça encore, son fonctionnement interne à base de circuits électriques et engrenages mécaniques n’est pas si difficile à comprendre non plus, une petite recherche sur Google devrait suffire pour comprendre comment la machine fonctionne en interne dans ses moindres détails.
Malgré cela, il ne suffit pas de comprendre son fonctionnement pour pouvoir la craquer, spécialement avec les moyens de l’époque, Turing a dû exploiter plusieurs brèches pour détourner son chiffrement, la principale est sans doute le fait que la machine mécaniquement lui est impossible de crypter une lettre par la lettre elle-même, elle doit impérativement changer de lettre après chiffrement, il a aussi utilisé une brèche dans le protocole de communication Nazie, le fait d’utiliser les mêmes mots pour chaque message, comme par exemple »heil Hitler », ou le fait aussi que la machine n’arrive pas mélanger l’ordre des lettres dans un message, ça réduit énormément l’espace de recherche lors du décryptage du code. Dans la vidéo aussi on peut suivre le développement du calcul probabiliste sur les différents cas initiaux possibles de la machine, les chiffres évoqués sont impressionnants, et ils le sont réellement avec les moyens de l’époque, mais de nos jours ces nombres sont ridicules en comparaison avec les algorithmes de cryptages actuels, je me demande combien de temps faudra-il pour craquer le code d’Enigma en brute force avec les machines modernes ?
J’ai aussi réussi à trouver une vidéo très intéressante montant avec le minimum de moyens, dans ce cas une feuille de papier imprimée et une boîte cylindrique de chips, de pouvoir répliquer le fonctionnement interne de la machine d’Enigma. Sans doute ce genre de procédé est utilisé pour des fins éducatifs, ça devrait permettre aux étudiants d’avoir un aperçu réel sur le fonctionnement d’une machine réel de cryptage. Le PDF pour la reconstruction des rotors de la machine est disponible juste ci-dessous :
enigma-rotors-sheet