Wie die Enigma während des zweiten Weltkrieges geknackt wurde
Transcription
Wie die Enigma während des zweiten Weltkrieges geknackt wurde
Wie die Enigma während des zweiten Weltkrieges geknackt wurde Eine Beschreibung der Arbeitsweise von Alan Turings „Bombe“ und Gordon Welchmans „Diagonalboard“ Von Thomas Seeger, erarbeitet zum 5.6.2002 Seminar Kryptographie: Angriffe auf symmetrische Kryptosysteme (Leitung: Prof. Dr. J. von zur Gathen, Dipl. Inf. Volker Krummel) Einleitung Das Thema dieses Dokumentes ist der erfolgreiche Angriff britischer Kryptoanalytiker auf die deutsche Verschlüsselungsmaschine „Enigma“. Dazu werde ich zunächst die Funktionsweise der „Enigma“ in ihren Grundzügen erklären, um dabei Schwachstellen aufzuzeigen, die zum Brechen der Verschlüsselung ausgenutzt werden konnten. Anschließend werde ich schrittweise die Idee hinter dem Angriff auf den Verschlüsselungsmechanismus der „Enigma“ und deren Umsetzung in Form der „Bombe“ und des „Diagona lboards“ erklären. Die Enigma zur Zeit des zweiten Weltkrieges Die Enigma war eine seit ca. 1923 eingesetzte, ursprünglich zivile, Verschlüsselungsmaschine. Das deutsche Militär modifizierte sie schließlich und benutzte sie während des zweiten Weltkrieges zur Verschlüsselung des militärischen Funkverkehrs. Während des Krieges entstanden viele Varianten der „Enigma“, um sie sicherer zu machen, jedoch blieb das Grundprinzip unverändert. In diesem Dokument möchte ich mich auf die bei Luftwaffe und Heer standardmäßig eingesetzte „Enigma“ mit insgesamt 5 Walzen , von denen 3 in die Maschine eingesetzt werden konnten, einer festen Umkehrwalze und einem Steckerbrett mit 10 gesteckten Verbindungen beschränken. Die „Enigma“ bestand aus einer Tastatur, einem Lampenbrett mit 26 Lampen (eine für jeden Buchstaben des Alphabets), einem Steckerbrett mit 26 Buchsen (auch wieder eine für jeden Buchstaben des Alphabets), einer Batterie, die den nötigen Strom zur Verfügung stellte, und im oberen Bereich aus einem Schaft, auf den die Walzen aufgesteckt werden konnten. Flüchtig betrachtet, gab ihr dies das Aussehen einer Schreibmaschine. Wie funktionierte die Verschlüsselung der Enigma? Die Enigma führte eine Verschlüsselung durch, indem sie zu einem Buchstaben, der auf der Tastatur gedrückt wurde, eine Lampe des Lampenbretts zum Glühen brachte, die den zugehörigen, verschlüsselten Buchstaben darstellte. Welcher Buchstabe dabei auf dem Lampenbrett erhellt wurde, hing von den Einstellungen der Enigma ab. Also von den gesteckten Verbindungen des Steckerbretts, welche Walzen in welcher Reihenfolge in die Enigma eingebaut waren, in welcher Stellung sich diese Walzen zueinander gerade befanden und welche Stellung der Ringe der Walzen gewählt worden war. Zur Erinnerung will ich hier noch einmal den Ablauf der Verschlüsselung grob umreissen: Es existierten in der Regel 5 verschiedene Walzen, die jeder Enigma beilagen. Jede dieser Walzen, die mit den römischen Ziffern I, II, III, IV und V bezeichnet wurden, hatte eine andere interne Verdrahtung, die für eine eigene Permutation der 26 Buchstaben des Alphabets 1 sorgte. Drei dieser Walzen wurden in einer bestimmten Reihenfolge zusammengesteckt und im oberen Teil der Enigma zwischen der Eingangswalze und der Umkehrwalze montiert. Diese beiden Walzen waren unbeweglich und drehten sich nicht, wie die zwischen ihnen Montierten, bei jedem Tastendruck um einen Schritt weiter. Dieses schrittweise Weiterdrehen funktionierte ähnlich dem eines Kilometerzählers. Die rechte Walze drehte sich bei jedem Tastendruck einen Schritt weiter, während die Mittlere sich nur einmal während einer vollen Umdrehung der Rechten einen Schritt weiter bewegte. Nämlich dann, wenn eine Kerbe, die an jeder Walze an ihrem äußeren Ring angebracht war, die entsprechende Mechanik an einer Stelle auslöste. Zusätzlich war der äußere Ring jeder Walze, auf dessen Oberfläche Buchstaben oder auch Zahlen eingestanzt waren, relativ zur Walze drehbar. Dies hatte in Verbindung mit dem Nachrichtenschlüssel, den ich weiter unten erklären werde, Auswirkungen auf die Verschlüsselung. Zusätzlich besaß die Enigma ein Steckerbrett, auf dem Verbindungen zwischen zwei Buchstaben gesteckt werden konnten. Die Anzahl der gesteckten Verbindungen wurde im Verlauf des Krieges von den Deutschen immer weiter erhöht, bis schließlich 10 gesteckte Verbindungen als Standard galten. Wurde nun also eine Taste der Enigma gedrückt, so geschah folgendes: Zuerst drehte sich der rechte Rotor um einen Schritt weiter und löste dabei evtl. den Mechanismus aus, der dafür sorgte, dass sich die anderen beiden Walzen auch weiter bewegten. Danach wurde eine Spannung an den Draht angelegt, der dem Buchstaben entsprach. Diese Spannung floss durch das Steckerbrett, wo sie evtl. das erste Mal einer Vertauschung unterworfen wurde, an den Kontakt der Eingangswalze und wurde von dort durch die drei Walzen geleitet. Schließlich erreicht sie die Umkehrwalze, wird dort ein weiteres Mal vertauscht und wieder durch die Walzen zurückgeschickt. Als nächste Station stand wieder das Steckerbrett an, damit sie schließlich das Lampenbrett erreichte und dort eine Lampe erhellte, die dann den zugehörigen, verschlüsselten Buc hstaben zum Eingegebenen darstellte. In der nebenstehenden Grafik noch einmal eine grobe Skizze dieses Vorganges (1. Umkehrwalze, 2. Walzen, 3. Lampenbrett, 4. Stromquelle / Batterie, 5. Tastatur, 6. Steckerbrett). 2 Das Verschicken einer Nachricht Sollte eine Nachricht durch die Enigma verschlüsselt und gesendet werden, ging dies zu Ze iten des Krieges folgendermaßen: Der Bediener der Enigma stellte die Maschine gemäß des Tagesschlüssels ein. Dieser stand auf einem Dokument, dass jede Einheit mit einer Enigma erhielt. Darauf waren die Walzen mit deren Reihenfolge und Ringstellung sowie die zu steckenden Steckerverbindungen für jeden Tag des aktuellen Monats eingetragen. Sobald die Enigma so eingestellt war, wählte der Bediener eine Startstellung für die drei Walzen, indem er sie an eine Stelle drehte und anschließend, den im Sichtfenster des Walzengehäuses erscheinenden Buchstaben für jede Walze aufschrieb. Dies war der sog. Indikator. Hier sehen wir auch, das die Ringstellung hier sehr wichtig war. Schließlich standen die im Fenster erscheinenden Buchstaben auf dem äußeren, drehbaren Ring, weshalb man auch bei Kenntnis des Indikators nicht auf die folgende Verschlüsselung schließen konnte, ohne zu wissen, wie der Ring relativ zum Internen der Walze verdreht war. Dies befähigte die Deutschen den Ind ikator als Klartext zu übertragen, was auch in der Tat geschah. Nachdem der Indikator festgelegt worden war, wählte sich der Bediener den sog. Nachrichtenschlüssel, der wiederum eine Startstellung der Walzen darstellte und somit auch aus drei Buchstaben bestand. Diese drei Buchstaben des Nachrichtenschlüssels wurden nun in die Enigma eingetippt und somit unter Verwendung des Indikators verschlüsselt. Anschliessend wurden die Walzen auf die Stellung des Nachrichtenschlüssels gedreht und die eigentliche Nachricht verschlüsselt. Die Nachricht, die dann übertragen wurde, setzte sich also folgendermaßen zusammen: Zuerst die drei Buchstaben des Indikators in Klartext, danach die drei mit dem Indikator verschlüsselten Buchstaben des Nachrichtenschlüssels und schließlich der mit dem Nachrichtenschlüssel verschlüsselte Text der Nachricht. Der Empfänger musste nun unter Verwendung des Tagesschlüssels und des Indikators zuerst den Nachrichtenschlüssel entschlüsseln und konnte anschließend die Nachricht entschlüsseln. Schlüsselraum der Enigma Zum Schlüsselraum der Enigma gehörten die Auswahl und Anordnung der Walzen, die gesteckten Verbindungen des Steckerbretts, die Ringstellung und die Startstellung der Walzen. Die interne Verdrahtung der Walzen war durch die Vorarbeit der polnischen Mathematiker um Marian Rejewski zum Glück bekannt. Somit ergibt sich folgende Anzahl von möglichen Schlüsseln: Möglichkeiten der Walzenauswahl und - anordnung: 60 Möglichkeiten der Walzenstartposition: 263 Möglichkeiten der Ringstellungen:262 Möglichkeiten der gesteckten Verbindungen:1.507 * 1014 Im Folgenden werden wir sehen, wie die Kryptoanalysten von Bletchley Park diesen Schlüsselraum auf 60 * 263 verkleinerten, wodurch ein einfaches Ausprobieren der restlichen Möglichkeiten mit maschineller Hilfe möglich wurde. Schwachstellen der Enigma Um den Angriff der Bombe auf die Enigma zu verstehen, ist es wichtig, folgende Tatsachen im Hinterkopf zu behalten: Die Enigma war involutorisch. D. h. wenn sie in einer Stellung „A“ zu „X“ verschlüsselt, verschlüsselt sie in der gleichen Stellung auch „X“ zu „A“. Gleiches gilt für das Steckerbrett, da, sobald dort „B“ mit „C“ gesteckert ist, auch „C“ mit „B“ gesteckert sein muss. Das Set aus den drei Walzen und der Umkehrwalze, besaß nur einen Ein- bzw. Ausgang, wodurch kein Buchstabe zu sich selbst verschlüsselt werden konnte. 3 Abschließend sollte man sich auch noch einmal klar machen, dass sich der rechte Rotor bei jedem Tastendruck weiter bewegt, während sich der Mittlere nur einmal in einer vollen Umdrehung des Rechten und der Linke noch seltener bewegt. Die Entschlüsselung der Enigma Alan Turings und Gordon Welchmans Idee zur Entschlüsselung der Enigma beruhte auf der Analyse von bekanntem Klartext einer verschlüsselten Nachricht, eines sog. „Crib“. Mit den Erkenntnissen aus dieser Analyse konnte der zu durchsuchende Schlüsselraum soweit eingegrenzt werden, dass er durch eine Maschine, der sog. „Bombe“, durchsucht werden konnte. Im folgenden werde ich zuerst den Aufbau der „Bombe“ erklären, um dann die Technik der Analyse der „Cribs“ und der daraus resultierenden Verdrahtung der „Bombe“ zu schildern. Die Bestandteile der „Bombe“ Die „Bombe“ war eine Maschine, die in ihrer Form an einen großen Schrank erinnerte. Auf ihrer Frontseite waren in mehreren Reihen und Spalten die Rotoren drehbar angebracht. Diese Rotoren hatten intern die gleiche Verdrahtung, wie die Walzen der Enigma, mit dem Unterschied, dass sie zwei Ausgänge bzw. Eingänge besaßen. Drei dieser Rotoren konnten also, mit einer Umkehrwalze versehen, die ebenfalls der der Enigma entsprach, die Verschlüsselung der Enigma simulieren. Eine „Bombe“ besaß 12 dieser 3-er Sets oder „Scrambler“, wie ich sie im Folgenden bezeichnen will. Hier eine Grafik der Rotoren und ihrer Anordnung auf der „Bombe“: Auf der Skizze der Rotoren sieht man, dass sie im einzelnen aus vier konzentrischen Kreisen bestanden. Dabei waren jeweils die beiden äußeren und inneren Kreise auf die gleiche Weise, wie die Walzen der Enigma miteinander verbunden. Zusammen mit der Umkehrwalze erhält man die oben erKompakte Darstellung 4 wähnten zwei Ein- bzw. Ausgangspunkte. Diese waren wic htig, um mehrere dieser Scrambler miteinander zu verbinden. Im Folgenden werden wir immer ein Set aus drei dieser Rotoren betrachten und deshalb nur noch die kompakte Darstellung benutzen. Da sich diese Rotoren nach dem gleichen Schema , wie die Walzen der Enigma zueinander drehen sollten, waren sie auf der Rückseite mit Bürstenkontakten versehen, welche an Kontakten, die sich auf der Bombe befanden, vorbeistrichen und so während der Drehung die Verbindungen schalteten. Die Analyse der „Cribs“ Zur Entschlüsselung der Enigma wurde ein sog. „Crib“ benötigt. Dies war ein Stück Klartext, das man einer verschlüsselten Nachricht zuordnen konnte. Nützliche Cribs waren z.B. Wetterberichte, da diese immer in einer festen Form abgefasst wurden und man vom aktuellen Wetter, das ja auch für die Briten zu erkennen war, auf ihren Inhalt schließen konnte. Wir wollen jetzt ein „Crib“ und dessen zugehörigen, verschlüsselten Text betrachten (dieses Beispiel stammt ebenso, wie die folgenden Grafiken aus “The Hut Six Story – Breaking the Enigma codes”) : Unser „Crib“ ist: „TOTHEPRESIDENTOFTHEUNITEDSTATES“. Der zugehörige, verschlüsselte Text lautet: „CQNZPVLILPEUIKTEDCGLOVWVGTUFLNZ“. Wir schreiben diese Buchstaben jetzt paarweise untereinander: 1 2 T O C Q 3 4 T H N Z 5 6 E P P V 7 8 R E L I 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 S I D E N T O F T H E U N I T E D S T A T E S L P E U I K T E D C G L O V W V G T U F L N Z In dieser Tabelle suchen wir nun nach sog. „Loops“. Diese stellen durch mehrere Verschlüsselungsschritte eine Verschlüsselung eines Buchstabens auf sich selbst dar. Ein Beispiel aus obiger Tabelle wäre Folgendes: An Stelle 10 wird „I“ zu „P“, an Stelle 6 wiederum wird „P“ zu „V“ und schließlich an Stelle 22 „V“ wieder zu „I“ (wir nutzen hier aus, dass die Enigma involutorisch ist und somit „I“ zu „V“, aber auch „V“ zu „I“ verschlüsselt), wodurch wir durch eine Hintereinanderschaltung dieser Verschlüsselungen ein „I“ zu sich selbst verschlüsseln könnten. Da diese „Loops“ für die Funktionsweise der Bombe sehr wichtig waren, erze ugen wir einen Graphen aus ihnen. Die Zahlen an den Verbindungslinien stehen dabei für die Stelle, an der das Buchstabenpaar im Crib auftaucht. 8 E I P 6 3 N 22 10 5 13 T 15 21 O V Die Funktionsweise der „Bombe“ Schritt 1: Kein Steckerbrett / Keine Beachtung der Ringstellung Wir wollen schrittweise vorgehen und zunächst versuchen, eine Enigma ohne Beachtung des Steckerbretts und der Ringstellung entschlüsseln. 5 Dazu kommen wir wieder auf unseren zuvor erstellten Grafen zurück. Wie wir an unserer „Loop“ sehen konnten, wurde an Stelle 10 unseres Textes „I“ zu „P“ verschlüsselt, an Stelle 6 „P“ zu „V“ und an Stelle 22 „V“ zu „I“. Wir müssen nun also herausfinden, welche Kombination der Walzen benutzt wurde und welche Startposition sie hatten. Um dies herauszufinden benutzen wir 3 unserer Scrambler und geben ihnen Startpositionen, entsprechend zu unserem Graphen. D.h. wir wählen für den ersten „Scrambler“ eine Startposition und verbinden dessen Ausgang mit dem Eingang des Nächsten, dessen Startposition um zwei Schritte vor derjenigen des vorherigen eingestellt wird. Der Ausgang des zweiten „Scramblers“ wird mit dem Dritten verbunden, der zwölf Schritte weiter, als der erste „Scrambler“, gestellt wird. Durch diese Anordnung, erhalten wir praktisch 3 hintereinander geschaltete Enigmaverschlüsselungen. Wenn wir also die richtige Auswahl der Rotoren und deren Startstellung gefunden haben, sollte sich eine Spannung, die am Eingang „I“ unseres ersten Scramblers angelegt wird, diesen am Kontakt „P“ wieder verlassen. Der Nächste Scrambler sollte „P“ zu „V“ verschlüsseln und der Folgende „V“ wieder zu „I“. Dadurch erkennen wir, dass, sobald wir die richtige Rotorenstellung gefunden haben, eine Spannung an Kontakt „I“ des ersten Scramblers unseren Schaltkreis auch wieder als „I“ verlassen sollte. Sollten wir einen anderen Buchstaben erha lten, so ist dies ein Widerspruch zu unserem Crib, die Rotorstellung ist nicht geeignet, um aus den Buchstaben des Klartextes, die des verschlüsselten zu generieren und wir müssen die nächste Rotorstellung ausprobieren. Somit können wir die Rotoren alle 263 Möglichen Stellungen durchlaufen lassen, während wir dabei immer eine Spannung an Kontakt „I“ des ersten Scramblers anlegen. Dabei brauchen wir immer nur zu testen, ob das Ergebnis, der 3 hintereinander geschalteten Verschlüsselungen „I“ ist und somit das „Crib“ logisch erfüllt. Wir realisieren diesen Test, indem wir den Eingang unseres ersten Scramblers mit einem Eingangsregister und den Ausgang des letzten Scramblers mit einem Testregister verbinden, die auch wieder 26 Kontakte, einen für jeden Buchstaben des Alphabets, besitzen. Wir legen nun am Kontakt „I“ unseres Eingangsregisters eine Spannung an und beginnen den Suchlauf der Rotoren. Registrieren wir am Testregister bei einer bestimmten Stellung der Rotoren eine Spannung am Kontakt „I“ so haben wir eine mögliche Stellung der Rotoren gefunden, die aus dem „Crib“ den verschlüsselten Text erzeuge n kann. Diese Situation möchte ich im folgenden einen „Stop“ nennen. Unglücklicherweise gibt es viele Rotorenstellungen, die diese einzelne Bedingung erfüllen, da bei jeder Rotorenstellung eine Chance von 1/26 besteht, dass wir am Ausgang ein „I“ erha lten. In der Praxis wurden daher weitere Loops aus den erstellten Graphen herausgezogen und der Verschaltung der „Bombe“ hinzugefügt. Nehmen wir an, wir würden unserer „Bombe“ zwei weitere Loops hinzufügen, deren Ein- und Ausgangsbuchstabe ebenfalls das „I“ wäre, so würden wir zwei weitere Bedingungen für die logische Konsistenz unserer Rotorenstellung erhalten. Auf unserem Testregister würden wir dann die ausgegebenen Buchstaben jedes Loops registrieren und unsere Suche stoppen, wenn wir nur am Kontakt „I“ eine Spannung registrieren (da wir drei Loops haben, könnten wir an maximal drei Kontakten eine Spannung feststellen). Für jeden Loop haben wir eine Wahrscheinlichkeit von 1/26 für einen falschen Stop, wodurch wir mit drei Loops nur noch eine Wahrscheinlichkeit von 1/263 für einen zufälligen Stop haben. Bei 263 zu testenden Rotorstellungen, benötigen wir also mindestens 3 Loops um eine effiziente Suche starten zu können. Schritt 2: Das Steckerbrett Um den folgenden Schritt der Spannungsrückkopplung zu verstehen, wollen wir uns vorher folgendes klar machen: Unsere zuvor angestellten Überlegungen beruhten auf der Ignorierung des Steckerbretts. Wir haben praktisch eine Enigma ohne Steckerbrett, die nur die Verschlüsselung ihrer Walzen benutzt, geknackt. Dies taten wir, indem wir überprüften, ob unser einge6 hender Buchstabe, das „I“, unsere Loops aus Scramblern auch wieder als „I“ verlässt. Dabei haben wir außer Acht gelassen, dass das „I“ in der Enigma vor und nach den Walzen noch das Steckerbrett passieren muss. Nehmen wir nun also vorerst an, dass der Buchstabe „I“ mit dem Buchstaben „X“ gesteckert war. Im Zusammenspiel mit unserem Loop bedeutet dies folgendes: Da unser Loop nur die Verschlüsselung der Walzen der Enigma nachbildet, müssen wir an unserem ersten Scrambler die Spannung am Kontakt „X“ anlegen, da das Steckerbrett „I“ mit „X“ vertauschen würde, wodurch ein „X“ die Walzen erreicht. Nach der Verschlüsselung der Walzen müssen wir auch wieder ein „X“ erhalten, damit das Steckerbrett daraus wieder ein „I“ produzieren könnte. Wichtig ist also, dass wir eine richtige Rotorstellung daran erkennen können, dass sie genau den Buchstaben als einzigen wieder herausgibt, den man hineingibt. Um mit dieser Überlegung auf die gesteckten Verbindungen der Enigma zu schließen, erze ugen wir in der „Bombe“ eine Spannungsrückkopplung. D.h. wir lassen unser Eingangsregister als Testregister fungieren und schicken somit jeden Buchstaben, den wir aus unseren Loops als Ergebnis erhalten wieder zurück in den nun entstandenen Stromkreis. Oben haben wir gesehen, dass wir für eine falsche Rotorenstellung drei unterschiedliche Buchstaben auf dem Testregister registrieren konnten. Wenn wir diese drei Buchstaben erneut durch die Loops schicken, werden wir weitere Buchstaben als Ergebnisse aus den Loops auf dem Testregister auffangen. Dieser Vorgang wiederholt sich immer wieder, bis wir schließlich an allen Kontakten des Testregisters eine Spannung registrieren. Das bedeutet für uns, dass es ausreicht an unserem Eingangsregister die Spannung an irgendeinen Kontakt des Eingangsregisters zu legen. Wir wollen dafür den Kontakt „A“ benutzen. Durch die Rückkopplung werden wir dann bei einer falschen Rotorstellung im Idealfall an jedem Kontakt des Eingangsregisters eine Spannung feststellen. Ta tsächlich kann es aber auch sein, dass unsere Loops zusammen mit der Spannungsrückkopplung nicht jeden Buchstaben produzieren und wir somit die Rotorstellung nicht eindeutig als falsch oder richtig identifizieren können. Dieses Problem wird durch das Diagonalboard gelöst, dass zusätzliche Wege für die Spannungsrückkopplung bereitstellt und im folgenden Abschnitt erklärt wird. Doch was passiert bei einer richtigen Rotorstellung? Gehen wir wieder von unseren Beispiel und dessen Loops aus. Nehmen wir weiterhin an, dass in der Enigma, die unser Beispiel produziert hat, die Buchstaben „I“ und „X“ gesteckert waren. Wie wir uns nun oben überlegt haben, werden unsere Loops, wenn ihre Scrambler in der richtigen Stellung zueinander sind, ein eingehendes „X“ wieder in ein „X“ verwandeln. Im Umkehrschluss bedeutet dies aber auch, dass die Loops nur bei einem eingehenden „X“ ein „X“ ausgeben, sonst einen anderen Buchstaben. Wenn wir nun an unserem Eingangsregister eine Spannung an „A“ anlegen, kann die Spannungsrückkopplung jeden Buchstaben, bis auf das „X“ 7 produzieren. Wäre das „I“ mit dem „A“ gesteckert gewesen, hätten wir bei einer an „A“ angelegten Spannung folglich nur an Kontakt „A“ des Eingangsregisters eine Spannung feststellen können. Somit müssen wir während unserer Suche nur auf zwei Zustände des Eingangsregisters achten: Wir registrieren nur an einem Kontakt eine Spannung oder an allen Kontakten bis auf einen. Dieser eine Kontakt mit, bzw. ohne Spannung ist dann der zugehörige Steckerpartner zu dem Buchstaben des Graphen, an den wir unser Eingangsregister angeschlossen haben. Auf den Nachrichtenschlüssel lässt sich durch die Stellung der Rotoren beim Stop schließen. In der hier gezeigten Grafik wird ein Beispiel für einen solchen Stromkreis dargestellt. Das Eingangsregister ist mit dem Buchstaben „I“ verbunden, während wir eine Spannung an den Kontakt „A“ des Registers anlegen. Bei der richtigen Rotorstellung wird der Kontakt des Steckerpartners des Buchstaben „I“ als einziger eine Spannung oder keine Spannung vorweisen können. Schritt 3: Die Ringstellung / Das Diagonalboard Bisher benötigten wir drei Loops, um eine effiziente Suche mit der „Bombe“ durchzuführen. Um einen Graphen zu erhalten, der drei Loops enthält, benötigt man ein langes „Crib“. Der Nachteil dabei ist, dass in einem langen „Crib“ eine sehr große Chance für eine Weiterschaltung der mittleren Walze besteht. Sollte dies tatsächlich innerhalb des „Cribs“ geschehen sein, wird unsere bisherige Methode nicht zum Erfolg führen. Um dieses Risiko auf ein akzeptables Niveau zu drücken, sollten wir nur Buchstaben für unsere Loops verwenden, die maximal 13 Stellen auseinanderliegen. Die Chance für eine Weiterschaltung der mittleren Walze wird damit bei 1/2 gehalten. Weil dies aber aller Wahrscheinlichkeit nach nicht zu vielen Loops führen wird, müssen wir die „Bombe“ erweitern, um auch bei wenigen Loops genügend Bedingungen für die logische Konsistenz des „Cribs“ mit der Rotorstellung überprüfen zu können. Gordon Welchman entwickelte dafür das „Diagonalboard“, welches ich im folgenden erklären will. Das Diagonalboard basiert auf der Eigenschaft des Steckerbretts, immer zwei Buchstaben symmetrisch miteinander zu verbinden ( wenn „A“ mit „B“ gesteckert ist, ist auch „B“ mit „A“ gesteckert). Um dies in einem Stromkreis nachzubilden, wurde ein Brett entworfen, das 26 Reihen á 26 Steckkontakten enthielt. In dieser so entstandenen 26 x 26 Matrix stand jede Reihe und jede Spalte für einen Buchstaben. Anschließend wurden auf diesem Brett die Verbindungen folgendermaßen gesteckt: In der Reihe des Buchstabens „A“ wurde der zweite Kontakt, der für das „B“ stand, mit dem ersten Kontakt in der Reihe des „B“’s verbunden. Die so entstehenden diagonalen Verbindungen (von denen das Board auch seinen Namen erhielt) bildeten die eingangs erwähnte Eigenschaft des Steckerbretts nach. Anstatt nun, wie das Eingangsregister, erst nach der Verschlüsselung eines kompletten Loops anzusetzen, wurde das Diagonalboard mit jedem einzelnen Scrambler verbunden. Die Logik dahinter war folgende: An Hand des Cribs wusste man, welcher Buchstabe an welcher Stelle durch die Scrambler entstehen sollte. An Stelle 10 unseres Cribs soll z.B. das „I“ zu „P“ werden. Folglich kann man den Ausgang dieses Scramblers mit der Reihe „P“ unseres Diagona lboards verbinden. Sollte nun an diesem Scrambler ein anderer Buchstabe als das „P“ herauskommen, z.B. ein „E“, suggeriert dies, dass das „P“ mit dem „E“ gesteckert sein muss. Folglich ist auch „E“ mit „P“ gesteckert und unser Diagonalboard leitet daher den Strom weiter in die Reihe des „E“’s an den Kontakt des „P“’s. Da die Reihe „E“ des Boards wieder mit den Scramblern verbunden ist, die laut unserem Graph ein „E“ produzieren sollen (in unserem Beispiel ist dies an den Stellen 5, 8, 11 und 12 der Fall). Dadurch entstehen weitere Spannungsrückkopplungen, die auch bei kürzeren Cribs und weniger Loops eine effiziente Suche erlauben und die Anzahl der falschen „Stops“ verringern. 8 Was geschah, nachdem die „Bombe“ stoppte Wenn die „Bombe“ stoppte und damit signalisierte, dass sie eine mögliche Rotorstellung gefunden hatte, musste diese schließlich noch auf ihre Richtigkeit überprüft werden. Der „Stop“ lieferte eine Startstellung für die Walzen und eine Steckerverbindung. Die weiteren Steckerverbindungen fand man durch den Graphen und die sog. „checking machine“, welche eine Art Enigma ohne Steckerbrett war. Nehmen wir an, wir hätten unsere Startstellung gefunden und wüssten, dass „I“ mit „D“ gesteckert ist. Wenn wir nun unseren Graphen anschauen, sehen wir, dass an Stelle „8“ das „I“ zu einem „L“ werden soll. Wir drehen nun also die Walzen unserer „checking machine“ um 8 Schritte von der gefundenen Startstellung weiter und und tippen anstatt des „I“ ein „D“ ein (das „I“ würde in der Enigma durch das Steckerbrett zu einem „D“ bevor es die Walzen erreicht). Die „checking machine“ führt nun die gleiche Verschlüsselung, wie die Enigma aus und gibt uns einen Buchstaben zurück. Laut Graph sollte dies ein „L“ sein. Wenn unserer „checking machine“ uns auch ein „L“ ausgibt, dann war dieser Buchstabe in der Enigma nicht gesteckert. Bei jedem anderen Buchstaben können wir annehmen, dass dieser der Steckerpartner des „L“’s ist. Auf diese Weise können wir jeden Buchstaben unseres Graphen auf seinen Steckerpartner prüfen und erha lten somit weitere Steckerverbindungen. Um die Restlichen und auch die Ringstellung herauszufinden, bleibt uns nichts anderes übrig, als eine Enigma mit unseren bisher herausgefundenen Einstellungen vorzubereiten und zu versuchen den verschlüsselten Text damit zu dechiffrieren. Mit Kenntnissen über die deutsche Sprache, sollte es uns möglich sein, zu erkennen, ob ein sinnvoller Text bei der Entschlüsselung entsteht. Außerdem können wir an Hand des Kontextes die fehlenden Steckerverbindungen finden. Die Ringstellung enthüllt sich uns schließlich dadurch, dass wir Stellen finden werden, an denen der sinnvolle Text plötzlich abbricht und wieder zu Unsinn dechiffriert wird. Haben wir alle diese Einstellungen gefunden, können wir sie für den gesamten Tag benutzen und müssen nur noch für jede Nachricht den Nachrichtenschlüssel an Hand des Indikators entschlüsseln. Sollten wir jedoch während der Überprüfung der Steckerverbindungen einen Widerspruch finden (z.B. zwei unterschiedliche Steckerpartner für den gleichen Buchstaben) oder bei der 9 abschließenden Entschlüsselung keinen sinnvollen Text erhalten, so hat uns die „Bombe“ einen falschen „Stop“ geliefert und wir müssen sie ihre Suche fortsetzen lassen. Referenzen: Textquellen: “The Bletchley Park Trust Reports – The Turing Bombe” von Frank Carter, Januar 2000 “The Bombe – A remarkable logic machine” von Donald W. Davies, Cryptologia April 1999 “The Hut Six Story – Breaking the Enigma codes” von Gordon Welchman, 1982 Bildquellen: Seite 2: http://www.codesandciphers.co.uk/enigma/enigma2.htm Seite 4: http://www.codesandciphers.co.uk/enigmafilm/efilm10.htm Seite 7: “The Hut Six Story – Breaking the Enigma codes” von Gordon Welchman, 1982 Seite 9: “The Hut Six Story – Breaking the Enigma codes” von Gordon Welchman, 1982 10