Enigma-Maschine
Ein wesentlicher Fehler des Enigma-Codes bestand darin, dass ein Buchstabe niemals als er selbst verschlüsselt werden konnte. Mit anderen Worten, ein „M“ würde niemals als „M“ kodiert werden. Dies war ein großer Fehler im Enigma-Code, da er den Codebrechern eine Information lieferte, die sie zur Entschlüsselung von Nachrichten verwenden konnten. Wenn die Codebrecher ein Wort oder einen Satz erraten konnten, der wahrscheinlich in der Nachricht vorkommen würde, konnten sie diese Information nutzen, um den Code zu knacken. Da die Deutschen zu Beginn der Nachricht immer einen Wetterbericht schickten und am Ende der Nachricht in der Regel den Satz „Heil Hitler“ einfügten, gab es Phrasen, nach denen die Entschlüsseler suchen konnten. Die Decoder konnten eine bestimmte Phrase mit den Buchstaben im Code vergleichen, und wenn ein Buchstabe in der Phrase mit einem Buchstaben im Code übereinstimmte, wussten sie, dass dieser Teil des Codes die Phrase nicht enthielt. Die Dekodierer konnten dann damit beginnen, den Code nach dem Ausschlussverfahren zu knacken.
Finden Sie mögliche Kandidaten für die Kodierung des Wortes „RAIN“ in der folgenden kodierten Zeichenfolge. (Das Symbol % wird verwendet, um unbekannte Buchstaben zu kennzeichnen).
Codierte Nachricht E R W N I K O L K M M M M Phrase R A I N % % % % % % % % % RAIN kann nicht als ERWN kodiert werden, weil das N in RAIN und das N in ERWN übereinstimmen. Da N nicht als sich selbst kodiert werden kann, ist dies nicht die Kodierung.
Lassen Sie uns unsere Nachricht um einen Slot nach rechts verschieben und sehen, ob das Ergebnis eine gültige Kodierung ist.
Codierte Nachricht E R W N I K O L K M M M M Phrase % R A I N % % % % % % % % RAIN kann nicht als RWNI kodiert werden, weil das R in RAIN mit dem R in RWNI übereinstimmt. Schieben wir noch einmal.
Codierte Nachricht E R W N I K O L K M M M M Phrase % % R A I N % % % % % % % % RAIN kann nicht als WNIK kodiert werden, weil das I in RAIN mit dem I in WNIK übereinstimmt.
Codierte Nachricht E R W N I K O L K M M M M Phrase % % % R A I N % % % % % % RAIN kann als NIKO kodiert werden, da die beiden Sätze keine übereinstimmenden Buchstaben haben. NIKO ist also eine mögliche Kodierung von RAIN.
Wenn wir diesen Vorgang wiederholen, werden wir feststellen, dass NIKO, IKOL, KOLK, OLKM, LKMM, KMMM und MMMM alle mögliche Kodierungen von RAIN sind, da keine Buchstaben zwischen RAIN und der Kodierung übereinstimmen. Es ist in Ordnung, dass MMMM RAIN verschlüsseln könnte, auch wenn dies bedeutet, dass M R, A, I und N verschlüsseln würde, weil man sich daran erinnert, dass sich bei jedem Tastendruck die Buchstabenzuordnung in einer Enigma-Maschine ändert.
Es ist jedoch nicht garantiert, dass RAIN überhaupt in dieser Zeichenkette verschlüsselt ist, aber es gab den Decodern einen guten Ausgangspunkt für das Entschlüsseln von Nachrichten.
Alan Turing und Gordon Welchman entwarfen eine Maschine namens Bombe, die mit Hilfe elektrischer Schaltungen eine Enigma verschlüsselte Nachricht in weniger als 20 Minuten entschlüsseln konnte. Die Bombe-Maschine würde versuchen, die Einstellungen der Rotoren und der Steckplatte der Enigma-Maschine zu bestimmen, um eine bestimmte verschlüsselte Nachricht zu senden.
Die britische Standard-Bombenmaschine bestand im Wesentlichen aus 36 miteinander verdrahteten Enigma-Maschinen, so dass die Bombenmaschine mehrere Enigma-Maschinen gleichzeitig simulieren konnte. Die meisten Enigma-Maschinen hatten drei Rotoren, und um dies in der Bombe darzustellen, hatte jeder der Enigma-Simulatoren in der Bombe drei Trommeln, eine für jeden Rotor.
Trommeln der Bombe-Maschine
Die Trommeln der Bombe waren farblich codiert, um zu zeigen, welchen Rotor sie simulierten. Während eine 3-Rotoren-Enigma-Maschine nur drei Rotoren gleichzeitig benutzte, gibt es mehr zur Auswahl. Die Trommeln waren so angeordnet, dass die oberste der drei Trommeln den linken Rotor der Enigma-Verschlüsselungsmaschine simulierte, die mittlere den mittleren Rotor und die unterste den rechten Rotor. Die Trommeln würden sich drehen, um eine neue Konfiguration auszuprobieren. Bei jeder vollen Umdrehung der oberen Trommeln wurden die mittleren Trommeln um eine Position erhöht, ebenso die mittlere und die untere Trommel, so dass sich insgesamt 26 × 26 × 26 = 17.576 Positionen des 3-Rotoren-Enigma-Scramblers ergaben.
Dann würde die Bombe-Maschine für eine gegebene Rotorkonfiguration (bei jeder Umdrehung der Trommeln) eine Vermutung über eine Steckplatteneinstellung anstellen, z.B. „A ist mit Z verbunden.“ Dann ging sie durch und stellte fest, wie alle anderen Buchstaben auf dem Steckbrett eingestellt sein müssen. Wenn sich Widersprüche ergaben, z. B. „A ist mit W verbunden“, dann muss A nicht mit Z verbunden sein, es entsteht ein Widerspruch. Da die anderen Buchstabenkombinationen, die die Maschine gerade herausgefunden hat, auf einer falschen Annahme beruhen (nämlich der Annahme, dass A mit Z verbunden ist), sind alle diese Kombinationen ungültig, und die Bombe-Maschine weiß, dass sie keine Zeit damit verschwenden sollte, diese Kombinationen später zu überprüfen. Angenommen, die Maschine vermutet, dass A mit Z verbunden ist, dann folgert sie, dass, wenn A mit Z verbunden ist, B mit E verbunden sein muss. Wenn sie später feststellt, dass A nicht mit Z verbunden ist, weiß sie, dass B nicht mit E verbunden ist. Die Bombenmaschine verschiebt die Rotorpositionen, wählt eine neue Vermutung und wiederholt diesen Vorgang, bis sich eine zufriedenstellende Anordnung von Einstellungen ergibt. Da elektrische Schaltkreise sehr schnell Berechnungen durchführen können, kann die Bombe-Maschine alle Rotorkombinationen in etwa 20 Minuten durchspielen.
Bei jeder Position der Trommeln würde die Konfiguration getestet, um zu sehen, ob die Konfiguration zu einem logischen Widerspruch führt und diese Einstellung ausschließt. Wenn der Test keinen Widerspruch ergibt, wird die Maschine angehalten und der Decoder notiert diese Konfiguration als Lösungsvorschlag. Dann wird die Maschine neu gestartet und weitere Konfigurationen werden getestet. Diese Tests würden die Liste der möglichen Konfigurationen eingrenzen, und die Lösungsvorschläge würden weiter getestet, um diejenigen auszuschließen, die nicht funktionieren würden. In der Regel gab es viele erfolglose Lösungsvorschläge, bevor die richtige Lösung gefunden wurde.