A5 (Algorithmus)
aus Wikipedia, der freien Enzyklopädie
A5 ist der in GSM-Mobilfunknetzen eingesetzte Algorithmus zur Verschlüsselung der Funkstrecke zwischen Mobiltelefon und Mobilfunkbasisstation. Es gibt den A5 klassischerweise in zwei ähnlichen Varianten - A5/1 und A5/2. Beide basieren auf der Verschaltung von linear rückgekoppelten Schieberegistern (LFSR). A5/2 unterscheidet sich von A5/1 nur insofern, als die enthaltenen Taktkontrollbits in ein viertes LFSR ausgelagert sind. Auf diese Weise wird der Algorithmus geschwächt. Diese Version des A5 kommt in Ländern mit Verschlüsselungsbeschränkungen zum Einsatz. A5 wurde unter strengster Geheimhaltung in den achtziger Jahren entwickelt. Die Spezifikation des Algorithmus wurde der Öffentlichkeit nie zur Verfügung gestellt. Allerdings wurde ungefähr zeitgleich mit der Entwicklung des Algorithmus auch die Diskussion über den internen Aufbau des A5 begonnen. So haben sich einige findige Mathematiker daran gemacht, den Algorithmus zu rekonstruieren. Im Sommer 1994 veröffentlichte R. Anderson die erste Annäherung an den geheimen A5 im Usenet. Fünf Jahre später veröffentlichten M. Bricenco, I. Goldberg und D. Wagner eine genaue Beschreibung des A5/1, die inzwischen auch allgemein als korrekt angesehen wird.
A5/2 wurde aufgrund seiner Schwächen ab 3GPP Release 6 aus dem Standard herausgenommen.
Im Herbst 2002 wurde die Spezifikation für einen neuen Standard mit dem Namen A5/3 angekündigt. Dieser unterscheidet sich grundlegend vom ursprünglichen A5. So handelt es sich nun um eine Blockverschlüsselung. Der A5/3 wurde im Gegensatz zu seinen Vorgängern nicht unter strengster Geheimhaltung entwickelt, sondern von der Security Algorithms Group of Experts (SAGE), einer Abteilung des European Telecommunications Standards Institutes (ETSI), entworfen und veröffentlicht.
Inhaltsverzeichnis |
[Bearbeiten] A5/0
A5/0 wurde erst später in den Standard aufgenommen und enthält keine Verschlüsselung. Quelle
[Bearbeiten] A5/1
Der Algorithmus A5/1 besteht aus drei Schieberegistern mit den Längen 19, 22 und 23 Bit, deren Ausgänge miteinander XOR-verknüpft werden, und liefert 328 pseudozufällige Bits pro Rahmen. Dazu kommt eine Taktsteuerung, die dynamisch eine Auswahl der zu taktenden Register trifft. Der Ausgang der drei LFSR (linear feedback shift register) wird bitweise auf den Datenstrom des jeweiligen Rahmens addiert. Bevor die eigentliche Verschlüsselung stattfindet sind die drei Register zu initialisieren. Dabei findet die Taktkontrolle noch keine Verwendung! Die Initialisierung der LFSR sieht konkret wie folgt aus:
- Alle drei Register werden mit dem Nullvektor geladen.
- Anschließend wird der Sitzungsschlüssel Kc in jedes Register geladen. Jedes Register wird 64 mal getaktet, mit jedem Takt t wird das Bit t des Sitzungsschlüssel eingespeist. Hierbei findet also schon eine Vermischung statt - nach 8, 14 und 21 Takten „fängt der jeweilige LFSR an zu arbeiten“. Die Ausgabebits verfallen dabei ungenutzt.
- Als nächstes wird auf die selbe Weise die aktuelle Framenummer in jedes Register geladen.
Nun befindet sich der A5/1 im initialisierten Zustand S(0) und kann mit der Verschlüsselung beginnen. Mathematisch gesehen ist folgendes passiert: Es wurden nacheinander die Werte Kc mit einer Länge von 64 Bit5 und Nf mit einer Länge von 22 Bit in jedes einzelne Register geschrieben. Das Ergebnis war der innere Zustand S(0). Es handelt sich also um eine lineare Abbildung , wobei und . Der anschließend erzeugte Schlüsselstrom hat eine Länge von 328 Bit. Naiv betrachtet könnte man zu dem Schluss kommen, dass 2328 unterschiedliche Schlüsselströme möglich sind. Das trifft aber wegen der Initialisierung mit 264 Möglichkeiten nicht zu. Für die nun folgende Verschlüsselung der Rahmendaten wird die Taktkontrolle zugeschaltet. Ohne die Taktsteuerung wäre der A5 linear. Es würden lediglich die Ausgänge der drei Schieberegister miteinander verknüpft und man könnte durch Lösen eines linearen Gleichungssystems den Anfangszustand S(0) rekonstruieren. Mit Hilfe der Taktung werden die Schieberegister zu unterschiedlichen Zeitpunkten angesprochen. Man kann sich vorstellen, dass der Ausgangsstrom dadurch unlinearer wird. Zur Taktung der einzelnen Register dienen drei Taktkontrollbits τ, von denen je eines in jedem Register enthalten ist. Man geht davon aus, dass τ 1 = 11, τ 2 = 12 und τ 3 = 13 gilt. Die Ansteuerfunktion der LFSR lässt sich leicht wie folgt beschreiben:
- Wenn höchstens ein Taktkontrollbit den logischen Wert 1 hat, dann takte alle Register, deren Taktkontrollbits auf 0 stehen.
- Wenn mehr als ein Taktkontrollbit auf 1 steht, dann takte alle Register, deren Taktkontrollbits auf 1 stehen.
Es werden also immer zwei respektive drei Register getaktet. Die Chance eines Register, getaktet zu werden, liegt bei 75% Eine interessante Beobachtung ist, dass die Schlüssellänge nichts mit der Gesamtlänge der drei Register zu tun hat. Anderson stellte in seiner Publikation die Vermutung an, dass Kc auf die drei LFSR verteilt würde. Das hätte einen Angriff stark erleichtert. Allerdings muss man dazu sagen, dass er parallel zu dieser Annahme davon ausging, dass die Taktsteuerung bereits zur Einspeisung der Rahmennummer aktiviert würde. Dieses hätte wiederum zur Folge, dass sich aus dem bekannten Initialisierungswert der Register nicht unmittelbar der Sitzungsschlüssel Kc ableiten ließe. Aber auch diese Annahme trifft nicht zu. Für die Verschlüsselung werden nicht alle 328 Bit benötigt; lediglich 114 Bit sollen in jeder Richtung übertragen werden. Es ergibt sich folgende Struktur:
- Die ersten 100 Bit verfallen ungenutzt.
- Nun folgen 114 Bit, die Bitweise auf den gesendeten Datenstrom6 addiert werden.
- Abschließend werden die 114 empfangenen Bits mit den restlichen Bits des A5 XOR-verknüpft.
Damit ist ein Rahmen abgewickelt worden und der A5 wird neu initialisiert. Eine Wiederholung des Bitstroms tritt erst nach etwa 209 Minuten ein.
[Bearbeiten] A5/2
Der A5/2 unterscheidet sich vom A5/1 nur darin, dass die Taktkontrollbits in ein viertes Register ausgelagert wurden. Das hat aber eine enorme Abschwächung des Algorithmus zur Folge. Das Problem des im vorhergehenden Abschnitt aufgeführten Angriffs nach Anderson und Roe waren genau die Taktkontrollbits. Ohne diese ließe sich aus zwei beliebig gewählten Registern leicht der Inhalt des dritten ermitteln. Beim A5/2 ist das also prinzipiell möglich. Es gibt allerdings noch eine bessere Möglichkeit. Beim Angriff von S. Petrović, A. Fúster-Sabater werden nicht die drei Register analysiert, die den Schlüsselstrom liefern. Stattdessen wird das vierte Register analysiert. Hierzu werden innere Zustände geraten und daraus abgeleitet, wie die ersten drei Register getaktet wurden. Auf diesem Weg lässt sich wiederum der Inhalt der drei Register ermitteln.
[Bearbeiten] Angriffe auf A5/1 und A5/2
Das Grundprinzip für einen Angriff auf die Stromchiffre A5 sieht üblicherweise so aus, dass man versucht den Weg vom Initialisierungstupel (Kc, Nf) zu den 328 ausgegebenen Bits rückwärts abzugehen. Man spricht dann auch von einem Inversionsangriff. Die Schwierigkeit eines solchen Angriffs besteht darin, S(0) zu bestimmen. Das Tupel (Kc, Nf) lässt sich aus S(0) relativ leicht berechnen. Die andere Alternative, also das Ausprobieren von verschiedenen Schlüsseln, wird als Vorwärtsangriff bezeichnet. Die Voraussetzung für einen Angriff ist üblicherweise das Vorhandensein von einigen Klartextstücken mit den zugehörigen Chiffraten. Wenn der Klartext überhaupt nicht bekannt ist, dann wird die Schlüsselsuche verkompliziert - das System muss eine sinnvolle von einer schlechten Lösung unterscheiden können. Da im GSM eine Komprimierung der Sprachdaten vorgesehen ist, kann man eine sinnvolle Lösung aber relativ leicht anhand der spezifischen Eigenschaften des Kompressionsverfahrens erkennen. Die hier bekannten Angriffe führen den Angreifer nicht zum Zustand S(0). Lediglich der Zustand vor Beginn der Verschlüsselung wird erreicht. Es fehlen also noch die 100 verworfenen Bits. Diese lassen sich durch statistische Auswertungen und auch durch bestimmte Vorberechnungen relativ leicht ermitteln. Aus S(0) den geheimen Sitzungsschlüssel Kc zu ermitteln ist dann auch kein großes Problem mehr. Hier nur eine kurze Auflistung der "populären" Vorschläge möglicher Angriffe:
- Vollständige Suche, von M. Briceno, I.Goldberg und D. Wagner
- Rekursiver Angriff, von R. Anderson und M. Roe
- Time-Memory-Tradeoff, J. Golić
- "Verbesserung des TMT", von A. Biryukov, A. Shamir und D. Wagner
- Divide and Conquer-Verfahren, von J. Golić
- Kollisionen in den Schieberegistern, von G. Gong
Für genauere Informationen zu den Angriffen sei auf die jeweilige Veröffentlichung verwiesen (vergleiche Quellenangaben).
[Bearbeiten] A5/3
Der A5/3 unterscheidet sich völlig von den beiden anderen Versionen. Zum einen handelt es sich hierbei nicht mehr um eine Strom- sondern um eine Blockchiffre. Außerdem wurde der A5/3 im Gegensatz zu seinen Vorgängern nicht geheim entwickelt. Statt dessen kann sich jeder Interessent die Spezifikationen im Internet herunterladen (vergleiche [10]). A5/3 und der in UMTS-Netzen verwendete KASUMI Algorithmus sind identisch. Beide stammen vom MISTY-Algorithmus ab, welcher von Mitsubishi erfunden wurde.
Der A5/3 wurde durch die ETSI unter dem Markenzeichen 3GPP8 veröffentlicht. Diese Bezeichnung soll die Zusammenarbeit zwischen Industrie und Forschung bei der Entwicklung neuer Algorithmen für die Mobilfunknetze der dritten Generation hervorheben. A5/3 verschlüsselt immer einen 64 Bit Block mit Hilfe eines 128 Bit langen Schlüssels. Der Algorithmus wurde als Feistelchiffre mit 8 Runden entworfen. Im A5/3 kommen zwei S-Boxen zum Einsatz. Insgesamt finden pro Runde 2 Funktionsaufrufe und 12 Substitutionen statt. Hierbei ist zu bemerken, dass die beiden aufgerufenen Funktionen wiederum Unterfunktionen aufrufen. Für eine genauere Betrachtung des Algorithmus sei auf die Spezifikation verwiesen.
[Bearbeiten] Quellenangaben
- Alex Biryukov, Adi Shamir, David Wagner: Real Time Cryptanalysis of A5/1 on a PC, The Weizmann Institute, Israel, University of California, USA
- Erik Zenner: Kryptographische Protokolle im GSM-Standard: Beschreibung und Kryptanalyse, Diplomarbeit, Professur für theoretische Informatik, Universität Mannheim, 1999
- Marc Briceno, Ian Goldberg, David Wagner: A pedagogical implementation of A5/1
- Jovan Dj. Golić: Cryptanalysis of Alleged A5 Stream Cypher, proceedings of EUROCRYPT´97, LNCS 1233, S. 239-255, Springer 1997, http://downloads.securityfocus.com/library/a5-hack.html
- 3rd Generation Partnership Project: Technische Spezifikation zum Kasumi-Algorithmus, http://www.3gpp.org/TB/other/algorithms/35202-311.pdf
- Philipp Südmeyer: Die Stromchiffre A5, Seminararbeit, http://www.suedmeyer.net/inhalte/pdf/a5_thesis.pdf