Verschlüsselungsalgorithmus für den Datenstrom

Da es sich beim B-Kanal um einen Bytestrom handelt, der auch fehlerhafte Bytes enthalten kann, müssen ein paar besondere Anforderungen an den Algorithmus gestellt werden. Zum einen muß es ein Stromchiffrierer sein, der einen kontinuierlichen Byte Strom verarbeitet. Zum anderen muß er selbstsynchronisierend sein, da auf dem B-Kanal nur die Nutzdaten und keine zusätzlichen Steuersignale übertragen werden können. Außerdem kann es vorkommen, daß ein Byte ausfällt oder ein Byte zuviel erkannt wird.
Als Verschlüsselungsalgorithmus wird in dieser Arbeit der IDEA verwendet. Er läßt sich im Gegensatz zum DES, der für Hardware optimiert wurde, relativ einfach als Software realisieren. Mit seinem 128 Bit langen Schlüssel ist er sehr sicher. Es existieren 3,4 · 1038 mögliche Schlüsselkombinationen. DES mit 56 bittigem Schlüssel hat ",nur" 7,2 · 1016 Kombinationen. Selbst wenn man es schafft, zehn Milliarden Schlüssel pro Sekunde auszutesten, dafür werden etwa 100000 schnelle PCs benötigt, dauert es etwa 5,4 · 1020 Jahre um den Schlüssel zu "knacken"! Beim DES wären es nur 41,7 Tage. Statt der PCs eignen sich FPGAs oder ASICs wesentlich besser zum Austesten von Verschlüsselungen. Gerüchteweise schaffen es gewisse Geheimdienste, einen DES Schlüssel in 5 Minuten zu bestimmen, aber beim IDEA wäre es immer noch ein astronomischer Wert von 4,5 · 1016 Jahren. Der IDEA wird auch in vielen anerkannten Verschlüsselungsprogrammen wie PGP eingesetzt. IDEA ist ein Blockchiffrierer, der noch mit einem geeigneteten Rahmenalgorithmus zum Stromchiffrierer umfunktioniert werden muß. Eine gute Möglichkeit ist der "Cipher-Feedback Mode" (Abbildung 8).


Abbildung 8: Cipher-Feedback Mode mit IDEA

Das wesentliche am Cipher-Feedback Mode ist, daß er die letzten acht verschlüsselten Bytes die übertragen werden, in einem Schieberegister sammelt. Damit hat er den 64Bit Eingangswert für die IDEA-Verschlüsselung. Da ja die verschlüsselten übertragenen Bytes auf beiden Seiten (Sender und Empfänger) in die Schieberegister gelangen, sind die Inhalte beider Schieberegister spätestens nach 8 Berechnungs Zyklen (8·125ms = 1ms) gleich und bleiben gleich, solange kein Übertragungsfehler auftritt. Somit ist der Ergebnis der IDEA-Verschlüsselung auf beiden Seiten gleich, wenn, voraussetzungsgemäß der Schlüssel (k) gleich ist. Von dem 64Bit IDEA Verschlüsselungsergebnis wird ein Byte genommen, meist das MSB, und mit dem Byte aus dem Datenstrom verexclosivodert (Abbildung 8). Der einzige Nachteil dieses Cipher Feedback Algorithmus ist, daß die achtfache Menge an IDEA-Berechnungen durchgeführt werden muß, wie wenn der IDEA direkt eingesetzt würde.
Nun aber zum eigentlichen IDEA-Algorithmus (Abbildung 9). Der IDEA hat nur drei verschiedene Grundoperationen: XOR, Addition ohne Übertrag auf das 17. Bit und eine "IDEA-spezifische Multiplikation". Zum XOR und der Addition gibt es nichts weiter zu sagen, aber zur IDEA-spezifischen Multiplikation. Diese Operation lautet "x = (a*b) mod (26+1)“. Der Ausdruck (216+1) mit dem Resultat 65537 ist eine Primzahl. Folgende Festlegung ist zu beachten: Ist einer der Faktoren (a oder b) gleich Null, dann wird er zu 216, und wenn das Ergebnis x der IDEA-spezifischen Multiplikation gleich 216 ist, wird es auf Null gesetzt.

Abbildung 9: IDEA-Algorithmus

Es existiert ein eleganter Weg, die Modulodivision durch 65537 zu umgehen und damit viel Rechenzeit und Speicher einzusparen. Nach der Multiplikation erfolgt eine Subtraktion des Low Word vom High Word des Produkts, und ist dabei ein Übertrag entstanden, wird eine Eins auf das Ergebnis addiert. Zur Veranschaulichung dient eine C Funktion, die genau diese Operation durchführt (Abbildung 10):

Abbildung 10: IDEA-spezifische Multiplikation in C

Vor der Ausführung des IDEA-Algorithmus muß jedoch der Schlüssel expandiert werden. Dieser ist 128 Bit lang, aber der Algorithmus benötigt 52 mal den 16Bit Teilschlüssel (k1,1 - k1,6 / k2,1 - k2,6 / ... / k8,1 - k8,6 / k9,1 - k9,4). Der Ablauf gestaltet sich folgendermaßen:
Aus dem 128bitigem Schlüssel werden die ersten acht Teilschlüssel (k1,1 - k2,2) entnommen, dann erfolgt eine Rotation des Schlüssels um 25 Bit nach links, es werden wiederum die nächsten acht Teilschlüssel (k2,3 - k3,4) entnommen, und so weiter bis sämtliche 52 Teilschlüssel vorliegen. Zum Entschlüsseln werden die Teilschlüssel erstens in den acht Runden vertauscht und zweitens für die Teilschlüssel die inversen Elemente gesucht. Das bedeutet, für alle Teilschlüssel, die an der Addition beteiligt sind, ist es das 2er-Complement. Für die Teilschlüssel, die an der IDEA-Multiplikation beteiligt sind, wird das inverse Element mit dem "Erweitertem Euklidischen Algorithmus" ausfindig gemacht. In der vorliegenden Anwendung ist die IDEA-Entschlüsselung nicht von Bedeutung, weil beim Cipher-Feedback Mode auf beiden Seiten nur die Verschlüsselung erforderlich ist.
Noch eine Anmerkung zum IDEA. Dieser Algorithmus ist urheberrechtlich geschützt. Der kommerzielle Einsatz ist nicht erlaubt ohne Entrichtung entsprechender Lizenzgebühren. Aber für private und schulische Zwecke ist er frei verfügbar. Demnach darf das Endprodukt nicht mit diesem Algorithmus verkauft werden, aber erlaubt ist die (kostenlose) Verteilung der Software als Freeware. So ist es auch bei PGP, es ist Freeware.


zurück