TPE - Enigma v2.0

Enigma sur le cloud, des engrenages au nuage...


Introduction

Le chiffrement des communications militaires a toujours été une préoccupation majeure des diverses forces armées. Dés l'antiquité, Jules César utilisait un système, très simple mais suffisant pour l'époque, afin de rendre inintelligibles par ses ennemis les messages qu'il envoyait à ses généraux.

Les techniques de chiffrement se sont perfectionnées au fil des siècles pour faire sans cesse face aux cryptanalystes qui "cassaient" les codes. Dans le début du 19° siècle, tous les chiffres inventés étaient des reprises ou variantes de chiffres existants, ainsi la quasi-totalité des nouveaux codes étaient rapidement cassés. Etait-ce la fin de la cryptologie, tout avait-il déjà été inventé ?...

I. Présentation d'Enigma

A - Invention de la machine

En 1918, l'inventeur allemand Alfred Scherbius et son ami Richard Ritter fondèrent la société Scherbius & Ritter, une entreprise qui cherchait à apporter des innovations techniques dans tous les domaines, depuis les turbines jusqu'aux oreillers chauffants. L'un des projets favoris de Scherbius était de remplacer les systèmes dépassés de cryptographie en usage durant la Première Guerre mondiale en balayant crayons et papiers au profit d'une nouvelle forme de cryptage qui exploiterait la technologie du XX° siècle.

Il avait étudié les applications techniques de l'électricité à Hanovre et à Munich, et il mit au point une machine cryptographique électromécanique qui était une version électrifiée du disque d'Alberti, qu'il appela Enigma. Son invention allait se révéler comme l'un des plus redoutables systèmes de cryptage de l'histoire...

Un disque d'Alberti
Un disque d'Alberti
Arthur Scherbius
Arthur Scherbius
Une machine Enigma
Enigma

B - Utilisation pendant la guerre

La machine Enigma a été massivement utilisée par l'armée allemande pendant la Deuxième Guerre mondiale. Le modèle utilisé à la fin de la guerre avait trois rotors, qu'on pouvait choisir parmi un lot de six, et plusieurs réflecteurs interchangeables. Les opérateurs avaient une clef du jour, et envoyaient leurs premiers messages de la journée avec celle-ci. Ils choisissaient ensuite eux-mêmes une autre clef pour éviter que tous les messages de la journée (des dizaines de milliers) ne soient chiffrés avec la même clef.

La machine Enigma a d'abord fait la suprématie des Allemands : les français avaient abandonné tout espoir de casser ce code jugé imprenable...

C - Cryptanalyse

Finalement, ce sont les Polonais puis les Anglais qui ont permis la cryptanalyse d'Enigma, qui a été responsable de la chute d'Hitler...

Cependant la machine n'offre pas de failles apparentes. Les cryptanalystes se sont donc basés sur des erreurs humaines commises par les opérateurs ou des consignes qu'ils avaient (ils répétaient deux fois la nouvelle clef au début de chaque message, ce qui aidait grandement la cryptanalyse de la machine, ou alors il était impossible qu'un rotor reste à la même position deux jours de suite, ou bien la forte probabilité de présence du mot WETTER dans le message à l'heure du bulletin météo)

Ainsi ce n'est pas une faiblesse du mécanisme d'Enigma qui a permis sa cryptanalyse, mais l'erreur humaine. Cependant, cela aurait été impossible sans le génie d'hommes comme Marian Rejewski et Alan Turing.

II. Fonctionnement d'Enigma

A - Fonctionnement général

Le chiffrement effectué par la machine Enigma est à la fois simple et astucieux. Chaque lettre est remplacée par une autre, et la substitution opérée change d'une lettre à l'autre, un peu comme si on chiffrait chaque lettre avec une méthode différente. La machine Enigma est alimentée par une pile électrique. Quand on appuie sur une touche du clavier, un circuit électrique est fermé, et une lampe s'allume qui indique par quelle lettre on doit remplacer la lettre que l'on vient de frapper.

La machine comporte un clavier similaire à celui d'une machine à écrire. Il permet à l'opérateur de saisir la lettre à chiffrer. Au dessus du clavier se trouve un tableau lumineux, correspondant au clavier. La lettre chiffrée par Enigma s'y allume.

Schéma du fonctionnement global d'Enigma
Fonctionnement global d'Enigma

La machine comporte également un tableau de connexions. Il permet d'échanger des paires de l'alphabet, deux à deux. Les opérateurs le règlent au moyen de fiches qui échangent le circuit entre les deux lettres. Un tableau de connections est donc une permutation simple.

Cet élément augmente considérablement le nombre de clefs possibles pour la machine, mais n'a pas un grand intérêt pour la cryptanalyse (si on trouve JONBOUR, on peut deviner facilement que le B et le J sont inversés).

B - Les rotors

Ils fonctionnent comme des brouilleurs, associant à chaque lettre une autre lettre. De plus, à chaque fois que l'opérateur saisit une lettre au clavier, les rotors tournent à la manière d'un compteur kilométrique. (le premier tourne à chaque fois, le deuxième tourne d'un cran quand le premier a fini un tour, etc.)

Les rotors de la machine Enigma
Les rotors d'Enigma
Circuit électrique des rotors
Schéma électrique des rotors, A donne C
Circuit électrique des rotors
La rotation d'un rotor
C - Le réflecteur

C'est une sorte de rotor, mais qui ne tourne pas, et n'a qu'une face. Tout ce qui entre sort donc du même côté, permettant ainsi d'inverser la procédure de chiffrement (si A donne D, D donne A pour les memes réglages)

Circuit des rotors et du réflecteur
Ajout du réflecteur au circuit, A est chiffré D

III. Virtualiser Enigma

A - Le stockage des rotors

La question de l'enregistrement des rotors dans la mémoire est importante pour la mise en place d'un programme de simulation. Il a donc fallu prendre en compte toutes les permutations possibles.

image montrant la technique d'enregistrement des rotors
Enregistrement des rotors
B - L'algorithme

Nous avons décidé de faire une simulation de la machine Enigma, de manière modulaire, en représentant chaque organe par un programme spécifique.

Nous avons commencé par définir un algorithme (suite d'instructions):

DEBUT DE L'ALGORITHME
├ Initialisation des rotors
├ Saisie des positions des rotors (clef) par l'utilisateur
├ Rotation des rotors pour atteindre les positions saisies
├ Saisie du message par l'utilisateur
├ POUR chaque caractère
│ ├ Calcul de la lettre de sortie
│ ├ Enregistrement du caractère dans le message chiffré
│ └ Rotation des rotors
├ FIN POUR
└ Affichage du message chiffré
FIN DE L'ALGORITHME

image de l'algorithme

C - Démonstration

Démonstration de communication entre l'ordinateur et la TI.