Sancho Fock/ Oktober 19, 2018/ Crytonomicon/ 0Kommentare

Eine etwas detaillierte Betrachtung findet sich in der Simplecryt Dokumentation simplecryt in englischer Sprache.

Zunächst ein paar Worte zur Geschichte welche auch noch deutlich ausführlicher auf Wikipedia nachzulesen ist. Interessante Artikel zu dem Thema auf Wikipedia sind:

Enigma, Kryptosystem, Kryptographie, KryptoanalyeCesar Code, Rotor Schlüsselmaschine, Kerkhoffs‘ Prinzip

Aber hier eine kleine Zusammenfassung

Bereits in der Antike hat man begonnen Nachrichten zu Verschlüsseln. Zu der Zeit musste das Cryptosystem einfach genug sein um manuell eine Verschlüsselung durchführen zu können. Das vermutlich bekannteste Cryptosystem ist der sogenannte Cesar Code. Hierbei werden die Buchstaben des Alphabetes um eine feste Anzahl Stellen verschoben also zum Beispiel A wird zu B, B zu C, C zu D etc.

Das ist ziemlich einfach, aber leider auch ziemlich einfach zu entschlüsseln.

Im Mittelalter kamen dann noch einige Verbesserungen hinzu, wie beispielsweise zusätzliche Transpositionen. So konnte der Schlüsselraum vergrößert und die Dechiffrierung erschwert werden.

Zu Beginn des zwanzigsten Jahrhunderts wurde es möglich Maschinen für die Verschlüsselung einzusetzen. Dadurch boten sich völlig neue Möglichkeiten. Die deutsche Enigma ist so eine elektromechanische Maschine. Das Grundprinzip des Cesar Code bleibt erhalten, da auch hier ein Alphabet verwendet wird. Ein Rotor (Walze) definiert dabei ein Alphabet. Durch die Verwendung von mehreren Walzen finden mehrere Transpositionen mit unterschiedlichen Alphabeten statt. Die Revolution, die erst durch die Verwendung von Maschinen möglich wurde ist jedoch, dass die Rotoren nach jedem verschlüsselten Zeichen ihre Position ändern und damit ihr eigenes Alphabet dynamisch ändern. Ein Rotor definiert also gleichzeitig je nach Position so viel verschiedene Alphabete wie Zeichen im Alphabet vorhanden sind. Dadurch werden einfache Krytoanalytische Methoden wie die Häufigkeitszählung unwirksam und der Schlüsselraum wurde im Verhältnis riesengroß. Die manuelle Entschlüsselung ist so vermutlich unmöglich und auch für heutige Verhältnisse ist der theoretische Schlüsselraum der Enigma noch beträchtlich und ohne den Einsatz von Computertechnik (Turing Bomb) und der gezielten Ausnutzung der konstruktionsbedingten Schwächen der Enigma und der unprofessionellen Verwendung durch das deutsche Militär wäre die Enigma wohl nicht zu knacken gewesen.

Bis in die 80er Jahre hinein wurden elektromechanische rotorbasierte Verschlüsselungsmaschinen genutzt.

Was kann man also aus den Fehlern der Enigma lernen?

Also zum einen hielten die Deutschen die Enigma für unknackbar, dadurch sind sie teilweise fast schlampig mit der Verschlüsselung umgegangen. So haben sie beispielsweise oft leicht zu erratene Inhalte in den Nachrichten sogenannte Cribs in den Nachrichten wie „OBERKOMMANDO“ verwendet oder es wurden Nachrichten wie der Wetterbericht sowohl mit einfacheren Kryptosystemen versendet und dann erneut mit der Enigma. Das macht es den Code Brechern deutlich einfacher den richtigen Schlüssel zu finden.

Am schwersten wiegt jedoch die Tatsache, dass der ein Teil des Schlüssels ein Teil des Algorhytmus ist. Da es sich um eine mechanische Maschine handelt legt die Verdrahtung einer Walze das Alphabet fest. Ist die Verdrahtung dem Code Brecher bekannt reduziert sich der Schlüsselraum gewaltig. Da die Verdrahtung nicht geändert werden kann kompromittiert dies die Enigma Sicherheit maßgeblich.

Hinzu kamen noch ein paar Konstruktionsbedingte Fehler. Beispielsweise verwendete man einen Reflektor. Dieser sorgte dafür, dass der Strom von der ersten Walze bis zur letzten und dann wieder zurück zur ersten Walze floss. Man dachte damit die Sicherheit zu erhöhen, da ja jetzt jedes Zeichen doppelt (hin und her) Verschlüsselt wurde. Da Strom aber nicht dort ankommen kann wo er angelegt wird war es so nicht mehr möglich Zeichen in sich zu Verschlüsseln. Ein „A“ im Chiffretext konnte also kein „A“ im Schlüsseltext sein. Damit wurde der Schlüsselraum effektiv verkleinert statt vergrößert. Zwar führte man später die sogenannte Umkehrwalze statt des Reflektors ein, die konnte das eigentliche Problem jedoch nicht lösen.

Eine weitere Schwachstelle war die Verwendung von nur einer Kerbe (Notch). Insbesondere bei kurzen Nachrichten wurden die Nachrichten somit effektiv nur auf einer Walze verschlüsselt. Auch das konnten sich die Code Brecher zunutze machen.

Was lernen wir daraus?

In Simplecrypt wurden die Schwachstellen beseitigt. Die Verwendung von Software anstatt von Mechanik macht es möglich die Schwachstellen zu beseitigen.

Die wichtigste Änderung in Simplecrypt ist, dass das Alphabet wieder ein Teil des Schlüssels und nicht des Algorhytmus ist, damit ist der theoretische Schlüsselraum auch wieder der tatsächliche. Der Reflektor bzw. die Umkehrwalze wurde weggelassen, dafür können beliebig viele Rotoren in den Schlüssel aufgenommen werden um den Schlüsselraum zu vergrößern.

Die Enigma war für die Verschlüsselung von Funk/Morse Nachrichten konzipiert. Daher wurden auch nur Funkbare Zeichen verschlüsselt. Die Alphabete hatten also nur 26 Zeichen. Simplecrypt erlaubt Alphabete bis 256 Zeichen. Die Anzahl der möglichen Alphabete je Rotor vergrößert sich so enorm.

Die Anzahl der verwendeten Rotoren ist bei Simplecrypt theoretisch unbegrenzt damit ist auch der Schlüsselraum theoretisch unbegrenzt, zudem erlaubt Simplecrypt eine freie Definition von Rotoren und Rotrorpositionen, während die Enigma auf die Auswahl von 5 Rotoren auf 3 Positionen begrenzt war.

Wie auch die Rotoren sind bei Simplecrypt auch die Kerben teil des Schlüssels geworden. Ihre Anzahl je Rotor ist ebenso frei definierbar von min=1 bis max=Anzahl Zeichen im Alphabet.

Share this Post

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Sie sollten das verwenden HTML Schlagworte und Attribute: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*