Você está na página 1de 36

Seminarausarbeitung

Die Stromchiffre A5

Philipp Südmeyer
Matr.-Nr.: 108 000 21 85 23

Letzte Änderung: 7. November 2003

Ruhr-Universität Bochum
Lehrstuhl für Kommunikationssicherheit
http://www.crypto.rub.de
Betreuer: Dipl.-Ing. Kai Schramm
In dieser Ausarbeitung zum Seminar IT-Sicherheit wird der auf der Verschaltung
von linear rückgekoppelten Schieberegistern ( LFSR ) basierende Algorithmus A5 und
die bisher gefundenen Angriffstechniken beleuchtet. Dazu kommt eine kleine Einführung
in Form eines historischen Überblicks, sowie die kurze Betrachtung der Infrastruktur
eines auf dem GSM-Standard basierenden Kommunikationsnetzes.
Inhaltsverzeichnis

1. GSM - Etwas Hintergrundwissen 5


1.1. Ein chronologischer Überblick . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Die Infrastruktur des GSM-Netzes . . . . . . . . . . . . . . . . . . . . . . 6
1.3. Verbindungsaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2. Stromchiffre A5 10
2.1. Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2. Aufbau des A5/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3. Angriffe auf A5/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.1. Grundsätzliches . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.2. Vollständige Suche . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.3. Angriff von R. Anderson und M. Roe . . . . . . . . . . . . . . . . 14
2.3.4. Time-Memory-Tradeoff nach J. Golić . . . . . . . . . . . . . . . . 15
2.3.5. Angriff nach A. Biryukov, A. Shamir und D. Wagner . . . . . . . 15
2.3.6. „Divide and Conquer“-Verfahren nach Golić . . . . . . . . . . . . 16
2.3.7. Ansatz von G. Gong . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4. A5/2 - Aufbau und Angriff . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5. Aufbau des A5/3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3. Fazit 20

A. 22
A.1. A5/1/2 nach Briceno, Goldberg & Wagner . . . . . . . . . . . . . . . . . 22

3
Abbildungsverzeichnis

1.1. Teilnehmerzahlen weltweit (Quelle: [1]) . . . . . . . . . . . . . . . . . . . 6


1.2. Logischer Aufbau eines GSM-Netzes . . . . . . . . . . . . . . . . . . . . . 7

2.1. Funktionsprinzip des A5/1 . . . . . . . . . . . . . . . . . . . . . . . . . . 12


2.2. Funktionsprinzip des A5/2 . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4
1. GSM - Etwas Hintergrundwissen

1.1. Ein chronologischer Überblick


In den frühen achtziger Jahren wurde die Entwicklung auf dem Markt der zellularen
Telefonsysteme in Europa immer klarer. Besonders in Skandinavien, aber auch in vielen
anderen Ländern Europas, machte sich ein starkes Wachstum bemerkbar. Jede Nation
entwickelte ihr eigenes System, keines war kompatibel zum nächsten. Wie man sich leicht
denken kann, war dadurch weder der Aufbau eines internationalen, noch der eines preis-
werten Handynetzes möglich. Dieses Problem wurde sehr früh erkannt, so dass durch die
CEPT 1 die Groupe Spécial Mobile 2 ( GSM ), eine Arbeitsgemeinschaft zur Entwicklung
eines neuen Mobilfunknetzes, ins Leben gerufen wurde. Die Entwicklung des neuen, in-
ternational standardisierten Kommunikationsprotokolls dauerte bis 1987. In diesem Jahr
wurde von 17 Staaten ein Abkommen über den neuen Standard unterzeichnet. Damit
begann der langsame Aufbau eines global kompatiblen Telefonnetzes, mit den folgenden
Primärzielen:

• möglichst gute Sprachqualität

• Kompatibilität zu ISDN-Netzen

• Grenzüberschreitende Kompatibilität

• Erweiterbarkeit ( SMS, WAP, . . . )

• Sicherheit bzgl. der Authentifikation und Kommunikation

1
Conférance Européenne des Administrations des Postes et des Télécommunications
2
später umbenannt in Global System for Mobile Communication

5
Abbildung 1.1.: Teilnehmerzahlen weltweit (Quelle: [1])

Im Jahr 1992 zählte man auf der Welt ca. 1 Mio. Teilnehmer, 5 Jahre später waren
es bereits 71,2 Mio. Die Teilnehmerzahl stieg rasend schnell an und ist heute, gut fünf
Jahre später, dabei die Milliardenmarke zu überschreiten. Weiterführende Informationen
lassen sich in [1] und [3] finden.

1.2. Die Infrastruktur des GSM-Netzes


Die Infrastruktur besteht zunächst einmal aus der vom Endbenutzer verwendeten Mobile
Station (MS) 3 sowie dem vom Netzbetreiber installierten Netzwerk. Um über die MS eine
Verbindung aufbauen zu können, wird ein Subscriber Identity Module (SIM) benötigt.
Auf der SIM-Karte sind alle Daten gespeichert, die zur Identifizierung des Teilnehmers
von Nöten sind. Hierbei sind die International Mobile Subscriber Identity (IMSI) 4 und
der geheime Schlüssel Ki besonders hervorzuheben. Darüber hinaus können auf der SIM-
Karte private Daten wie z.B. das Adressbuch gespeichert werden.

3
üblicherweise ein Mobiltelefon
4
weltweit eindeutig, wie die persönliche Telefonnummer

6
Das Netzwerk lässt sich in drei Gruppen einteilen, welche unterschiedlichen Zwecken
dienen und jeweils aus verschiedenen Komponenten bestehen:

• Base Station Subsystem (BSS)

• Network and Switching Subsystem (NSS)

• Operation Subsystem (OSS)

Base Station Subsystem Network and


Switching Subsystem

HLR
Mobile Station Ric
htf

VLR
un
k

BTS MSC
EIR
AuC
SIM
MS

BSC
Operation Subsystem
BTS
Erdkabel
OMC
Abbildung 1.2.: Logischer Aufbau eines GSM-Netzes

Das BSS beinhaltet unterschiedlich viele Base Transceiver Stations (BTS) 5 und einen
Base Station Controller (BSC). Der BSC steuert die in seinem Bereich liegenden BTS
und dient darüber hinaus als Bindeglied zum NSS. Es ist noch erwähnenswert, daß die
Datenübertragung zwischen BTS und BSC üblicherweise durch eine unverschlüsselte
Richtfunkstrecke, teilweise auch über Erdkabel realisiert wird.
Die NSS beherbergen alle Verwaltungstechnischen Dienste. Hier sind besonders die Mo-
bile Switching Centers (MSC) zu nennen, welche als Vermittlungsstelle6 dienen.

5
Sendemasten
6
zur Vermittlung in Fremdnetze gibt es Gateway MSCs

7
Um diese Aufgabe zu bewältigen haben sie Zugriff auf die folgenden Datenbanken:

• Home Location Register (HLR)

• Visited Location Register (VLR)

• Equipment Identity Register (EIR)

• Authentification Center (AuC)

Das HLR ist das Herzstück eines GSM-Netzes und existiert im Allgemeinen genau einmal
im gesamten Netzwerk eines Betreibers7 . Hier werden alle Kundendaten gespeichert. Von
dem jeweilig zuständigen VLR werden beim HLR alle benötigten Informationen über die
im Bereich eines MSC befindlichen MS angefragt und lokal gespeichert8 . Das EIR dient
der Speicherung von Endgerätedaten, insbesondere der Individual Mobile Equipment
Identity (IMEI). Anhand der IMEI ist jedes Handy weltweit eindeutig identifizierbar.
Mit dem EIR läßt sich beispielsweise eine schwarze Liste gestohlener Handys erstellen.
Im AuC werden alle sensiblen Daten gespeichert, die der Authentifizierung und ver-
schlüsselten Kommunikation einer MS dienen. Dieses gesamte Szenario wird durch das
OSS, welches in erster Linie aus dem Operation And Maintenance Center (OMC) be-
steht, gesteuert und kontrolliert. Man kann sich leicht denken, daß OMC und MSC stark
zusammenhängen.

1.3. Verbindungsaufbau
Jedesmal wenn eine MS beim nächstgelegenen BTS den Aufbau einer Verbindung an-
fordert laufen folgende Schritte ab:

• MS sendet TMSI9 bzw. IMSI an die nächstgelegene BTS

• BTS leitet Anfrage an AuC weiter

• AuC antwortet mit Tripel aus Zufallswert RAND 10 und dazugehöriger Signed Re-
sponse (SRES) 11 sowie geheimem Sitzungsschlüssel Kc 12

7
Das HLR entspricht also in etwa dem root-DNS einer Top-Level-Domain im Internet
8
Analog zum HLR entspricht das VLR also einem „normalen“ DNS im Internet
9
Durch die zuständige VLR vergebene, temporäre Identifikationsnummer. Dient dem Datenschutz.
10
16 Byte
11
4 Byte
12
8 Byte

8
• Anschließend sendet die BTS den Zufallswert RAND an die MS

• MS erzeugt aus RAND und Ki ebenfalls eine Signed Response (SRES’) und sendet
Sie an die BTS

• BTS vergleicht SRES und SRES’

Bei Übereinstimmung hat sich die MS korrekt am System angemeldet und darf eine
Verbindung aufbauen. Bei der Authentifizierung wurde gleichzeitig ein geheimer Sit-
zungsschlüssel erzeugt, der beiden Parteien bekannt ist. Die weitere Kommunikation
kann also verschlüsselt ablaufen. Außerdem ist der sensibelste Bestandteil, nämlich der
geheime Schlüssel Ki , nicht preisgegeben worden. Lediglich SIM und AuC kennen diesen
Schlüssel und geben ihn nie preis. Bei diesem Prozedere kommen die durch die GSM de-
finierten Schnittstellen A3 und A8 zum Einsatz. A3 ist dabei für die Authentifizierung
und A8 für die Schlüsselgenerierung verantwortlich. Jeder Anbieter hat also die Möglich-
keit, hier seiner eigenen Kreativität freien Lauf zu lassen. Als Beispiel führte die GSM
den kombinierten Algorithmus COMP128 13 auf, welcher weltweit von vielen Anbietern
eingesetzt wird14 . Der COMP128 ist jedoch relativ leicht brechbar. Für weitergehende
Informationen sei auf [7] verwiesen. Bei der Gesprächsverschlüsselung kommt der im
folgenden genauer besprochene Algorithmus A5 zum Einsatz. Dieser Algorithmus ist
allerdings durch die GSM genau definiert, wenn auch geheim gehalten. Es dürfte dann
auch klar sein, daß die Algorithmen A3 und A8 auf der vom Anbieter bereitgestellten
SIM-Karte enthalten sind. Der A5 befindet sich hingegen in der MS.

13
erzeugt aus (RAN D + K i ) ∗ 16Byte einen 128 Bit langen Hashwert mit SRES und Kc
14
Ein großer Teil der europäischen Anbieter nutzt heute eigene Protokolle

9
2. Stromchiffre A5

2.1. Allgemeines
Wie der Leser im vorhergehenden Kapitel erfahren konnte, läuft eine Kommunikation
unmittelbar zwischen Mobiltelefon und Base Transceiver Station ab. Lediglich dieser
Teil der Verbindung wird i. A. verschlüsselt. Die BTS hat jedoch die Möglichkeit, sogar
die Verschlüsselung auf dieser so genannten Luftschnittstelle zu deaktivieren. Das kann
zum Beispiel bei Empfangsproblemen geschehen.
In jedem Fall fordert das Übertragungsprotokoll den Austausch von je 114 Bit in beiden
Richtungen. Es wird hierbei von einem Rahmen bzw. Frame gesprochen. Jeder dieser
Rahmen entspricht einer Zeiteinheit von 4,615ms (vgl. [2] S. 40 ff.). Zu jedem Rahmen
gehört eine 22 Bit lange Rahmennummer Nf 1 . Die Verschlüsselung der Luftschnittstelle
findet bis heute in Form einer Stromchiffrierung2 statt. Es stellt sich nun die Frage, wie
die für jeden Rahmen benötigten 228 Schlüsselbits zustande kommen.
An dieser Stelle setzt der A5 an. Es gibt den A5 klassischerweise in zwei ähnlichen Va-
rianten - A5/1 und A5/2. A5/2 unterscheidet sich von A5/1 nur dahingehend, daß 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üsse-
lungsbeschränkungen3 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 wurde durch die Herren M. Bricenco, I. Goldberg und
D.Wagner eine genaue Beschreibung des A5/1 veröffentlicht, die inzwischen auch allge-
1
für Frame Number
2
also der Bitweisen XOR-Verknüpfung der ein- bzw. ausgehenden Daten mit den jeweils identischen
Zufallsbits
3
z.B. Australien und China

10
mein als korrekt angesehen wird. Die dazugehörige Implementation in C befindet sich im
Anhang (vgl. A). Bei Recherchen zum Aufbau des A5 tauchen kleinere Ungereimtheiten
auf, die sich auf Grund der Geheimhaltung der Spezifikation nicht genau überprüfen las-
sen. So spricht z.B. E. Zenner in [7] von 428 Bit, die bei jedem Durchlauf des A5 erzeugt
werden. In der Literatur, auf die sich Zenner bezieht (z.B. [8]), werden i. A. jedoch nur
328 Bit aufgeführt. An anderer Stelle war die Rede von lediglich 114 Bit, was jedoch
offensichtlich falsch sein wird.
Im Herbst des vergangenen Jahres wurde die Spezifikation für einen neuen Standard mit
dem Namen A5/3 angekündigt. Dieser unterscheided sich grundlegend vom ursprüngli-
chen A5. So handelt es sich nun um eine Blockverschlüsselung. Der A5/3 wurde im Ge-
gensatz 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)4, entworfen und veröffentlicht.

2.2. Aufbau des 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 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 Regis-


ter 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.

4
offizielles europäisches Standardisierungsinstitut mit Sitz in Frankreich

11
R1
18 CLK 0

Klartext

21 CLK 0

R2
Pseudo-
Schlüsseltext zufallszahlen

R3
22 CLK 7 0

Abbildung 2.1.: Funktionsprinzip des A5/1

Nun befindet sich der A5/1 im initialisierten Zustand S(0) und kann mit der Verschlüs-
selung 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
f : (K c , N f ) −→ S(0), wobei
(K c , N f ) = 264+22 = 286 und S(0) = 219+22+23 = 264 .
Der Anschließend erzeugte Schlüsselstrom hat eine Länge von 328 Bit. Naiv betrachtet
könnte man zu dem Schluß kommen, daß 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 zugeschal-
tet. 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 wer-
den die Schieberegister zu unterschiedlichen Zeitpunkten angesprochen. Man kann sich
vorstellen, daß 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, daß τ 1 = 11, τ 2 = 12 und τ 3 = 13 gilt. Die Ansteuerfunktion
der LFSR läßt sich leicht wie folgt beschreiben:

5
üblicherweise wird in Verbindung mit COMP128 die Schlüssellänge, durch auffüllen mit Nullen in
den untersten Bitstellen, auf 54 Bit verkürzt

12
• Wenn höchsten ein Taktkontrollbit den logischen Wert 1 hat, dann takte alle Re-
gister, 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, daß die Schlüssellänge nichts mit der Gesamtlänge
der drei Register zu tun hat. Anderson stellte in seiner Publikation die Vermutung an,
daß Kc auf die drei LFSR verteilt würde. Das hätte einen Angriff stark erleichtert.
Allerdings muß man dazu sagen, daß er parallel zu dieser Annahme davon ausging, daß
die Taktsteuerung bereits zur Einspeisung der Rahmennummer aktiviert würde. Dieses
hätte wiederum zur Folge, daß 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 (vgl. [7]):

• 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 Wie-
derholung des Bitstroms tritt erst nach ca. 209 Minuten ein (vgl. [5]).

6
aus Sicht des Teilnehmers

13
2.3. Angriffe auf A5/1
2.3.1. Grundsätzliches
Das Grundprinzip für einen Angriff auf den A5 sieht üblicherweise so aus, daß man ver-
sucht den Weg vom Initialisierungstupel (Kc , Nf ) zu den 328 ausgegebenen Bis 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äßt sich aus S(0)
relativ leicht berechnen. Die andere Alternative, also das Ausprobieren von verschiede-
nen 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 muß eine sinnvolle von einer Schlechten Lösung unterschei-
den 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 vorgestellten Angriffe führen den Angreifer
nicht zum Zustand S(0). Lediglich der Zustand vor Beginn der Verschlüssellung wird er-
reicht. 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.
Im folgenden werden die bekannten Angriffstechniken kurz angeschnitten. Tiefergehende
Informationen finden sich in [6], [7] und [9].

2.3.2. Vollständige Suche


M. Briceno, I.Goldberg und D. Wagner (vgl. [8]) stellten in ihrer Veröffentlichung zum
A5/1 fest, daß die Länge von Kc üblicherweise auf 54 Bit gekürzt würde. Das ermöglicht
eine Brute-Force-Attacke (Vorwärtsangriff) mit einem Aufwand O(254). Im Durchschnitt
würde also nach 253 Versuchen der richtige Schlüssel gefunden. Für diese Form des An-
griffs ist nicht einmal die innere Struktur des A5 von Interesse!

2.3.3. Angriff von R. Anderson und M. Roe


Der älteste rekursive Angriff wurde von Anderson und Roe veröffentlicht. Es soll sich
durch beliebige Wahl der ersten beiden Register das dritte einfach berechnen lassen.
Damit liesse sich eine Komplexität von O(41) erreichen. Hierbei wählt man die ersten

14
beiden Registerinhalte beliebig und berechnet anschließend die sich daraus ableitenden
23 Bit des dritten LFSR. Leider wurde bei diesem Ansatz die Taktkontrolle mißachtet.
Um den Angriff praktisch durchführen zu können, müssen vom dritten Register zumin-
dest die für den Takt aktuell relevanten Bits geraten werden. „Mit diesem verbesserten
Angriff würde man somit 11 Bit gegenüber der volständigen Suche einsparen. Die Kom-
plexität liegt also im Worst Case bei etwa 263,32−11 = 253,32 Rateversuchen“ (vgl. [7]).
Wenn man davon ausgeht, daß ein heutzutage gängiger PC ca. 20 Mio. Tests pro Se-
kunde durchführen kann, so würde ein solcher Angriff immerhin ca. einen Monat Zeit in
Anspruch nehmen.

2.3.4. Time-Memory-Tradeoff nach J. Golić


Time-Memory-Tradeoff meint das Abwägen eines guten Verhältnisses zwischen den auf
einem Festspeicher gesicherten Vorberechnungen bzw. nutzbaren Informationen und der
daraus resultierenden Arbeitsintensität einer Schlüsselsuche.
Konkret zielt der Angriff von Golić auf das so genannte Geburtstagsparadoxon ab. Dabei
geht es um die Frage, wie groß eine Personengruppe sein muß, damit die Wahrscheinlich-
keit über 50% liegt, daß zwei Personen am selben Tag Geburtstag haben. Die Lösung ist
24. Bei Golićs Ansatz wird die Frage noch etwas verkompliziert. Sie lautet nun: wieviele
Personen müssen im Durchschnitt befragt werden, damit die Chance größer 50% ist, daß
der Fragende und der Befragte den selben Geburtstag haben?
Um wieder auf den A5 zu kommen: es stellt sich die Frage, wieviele mögliche Über-
tragungsrahmen (maximal 264 ) in einer Datenbank abzuspeichern sind, damit die War-
scheinlichkeit einer Kollision mit den mitgeschnittenen Rahmen eines Telefonats sehr
groß ist. Sehr groß meint natürlich nicht mehr 50%, sondern ungefähr 100%. Nun muß
man abwägen, zwischen der mindestens benötigten Gesprächsdauer - also den potentiel-
len Kollisionspartnern - und der daraus resultierenden größe der benötigten Datenbank.
Der Angriff erweist sich als unpraktikabel. Zum einen liegt es daran, daß selbst bei großen
Vorberechnungen noch ein sehr langes Gespräch abgehört werden muß um Kollisionen
zu finden. Außerdem würde alleine die für den Datenvergleich benötigte Zugriffszeit auf
eine Festplatte viele Tage dauern.

2.3.5. Angriff nach A. Biryukov, A. Shamir und D. Wagner


Bei diesem Angriff handelt es sich um die selbe Grundidee, die auch schon Golić hatte.
Allerdings wird hierbei die Datenbank der Vorberechnungen nach ganz bestimmmten

15
Kriterien generiert. So macht man sich zum Beispiel die regelmäßgie Neuinitialisierung
mit dem selben geheimen Schlüssel zunutze. Das Konzept ist in gewissen Grenzen va-
riabel. Die Komplexität der Vorberechnungen liegt zwischen O(238 ) und O(248 ). Dabei
ergibt sich eine benötigte Festplattenkapazität zwischen 146 und 292 GB. Je nach mit-
geschnittener Gesprächsdauer ist ein solcher Angriff dann nahezu in Echtzeit möglich!

2.3.6. „Divide and Conquer“-Verfahren nach Golić


Diese Angrifftechnik basiert auf dem Lösen von linearen Gleichungssystemen. Gesucht
ist der innere Zustand des Systems, zu Beginn des Übetragungsrahmens. Wegen der
unsynchronen Taktung der drei Register besteht zunächst einmal keine lineare Abhän-
gigkeit zwischen dem Ausgangstrom des A5 und den drei Ausgängen der Register. Wenn
man jedoch den Zustand der drei Taktkontrollbits beliebig annimt, dann kann man dar-
aus schließen, welche Register mit dem nächsten Takt angesprochen werden. Bei den
entsprechenden Registern wäre es nun interessant, wie wohl der Folgezustand ist. Auch
dise Bits kann man wieder raten und damit auch die beim nächsten Takt angesteuerten
Register ausmachen u.s.w. Das willkürliche vorgeben der jeweiligen Bits hat nun aber
einige Nebenwirkungen. So hängt es von diesen Bits ab, welcher Zustand rückgekoppelt
wird. Auf diese Weise lassen sich schon zwei verschiedene Gleichungstypen aufstellen.
Ein dritter Typ ergibt sich aus dem Schlüsselstrom des Systems, der ja von den drei
LFSR-Ausgängen direkt abhängig ist.
Auf diese Weise lassen sich durch das Raten der Taktkontrollbits 64 linear unabhängige
Gleichungen bestimmen, die es zu Lösen gilt. Daraus resultiert dann ein innerer Zu-
stand, der noch gegengeprüft werden muß. Man läßt den A5 also mit seinem errechneten
Zustand vorwärts laufen und vergleicht mit dem abgehörten Schlüsselstrom. Stimmen
die beiden Ströme überein, so ist der korrekte innere Zustand errechnet worden. Ist dies
nicht der Fall, muß man auf die selbe Weise 64 neue Gleichungen suchen.

2.3.7. Ansatz von G. Gong


Guang Gong machte im vergangenen Jahr die Enteckung, daß es im A5 Kollisionen gibt.
Es führt also nicht jede der 264 möglichen Initialisierungen auf einen individuellen Schlüs-
selstrom. Wenn man zwei vermeintlich unterschiedliche Schlüsselströme vergleicht, dann
stellt man, zumindest nach kleinen Verschiebungen, oftmals Deckungsgleichheiten fest.
Nach Gongs Aussagen liegt die Warscheinlichkeit für eine solche Kollision bei immerhin
30%. Frau Gong fand heraus, daß die Periodenlänge des A5/1 bei lediglich 43 (223 − 1)

16
liegt. Die drei LFSR haben jeweils maximale Periodenlänge7 . Ohne die Taktung ergibt
sich also eine Periodenlänge von 264 − 1. Guang Gong vermutet hinter diesen Tatsachen
eine Schwäche in der Verschlüsselung, die allerdings noch zu finden ist.

7
also 2n − 1

17
R1
18 0

Klartext

21 0

R2
Pseudo-
Schlüsseltext zufallszahlen

R3
22 7 0

CLK1 CLK2 CLK3 0

R4

Abbildung 2.2.: Funktionsprinzip des A5/2

2.4. A5/2 - Aufbau und Angriff


Der A5/2 unterscheidet sich vom A5/1 nur dahingehend, daß die Taktkontrollbits in ein
viertes Register ausgelagert wurde. Das hat aber eine enorme Abschwächung des Algo-
rithmus zur Folge. Das Problem des im vorhergehenden Abschnitt aufgeführten Angriff
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 ana-
lysiert, die den Schlüsselstrom liefern. Stattdessen wird das vierte Register analysiert.
Hierzu werden innere Zustände geraten und daraus abgeleitet, wie die ersten drei Re-
gister getaktet würden. Auf diesem Weg läßt sich wiederum der Inhalt der drei Register
ermitteln.

18
2.5. Aufbau des 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 (vgl. [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 Bezeichung
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, daß die beiden aufgerufenen Funktionen
wiederum Unterfunktionen aufrufen.
Für eine genauere Betrachtung des Algorithmus sei auf die Spezifikation verwiesen.

8
3rd Generation Partnership Project

19
3. Fazit
Zusammenfassend läßt sich sagen, daß der in den meißten Industrienationen zum Ein-
satz kommende A5/1 als relativ sicher anzusehen ist. Es gibt lediglich eine realistische
Möglichkeit, den Algorithmus zu brechen – den Angriff von A. Biryukov, A. Shamir und
D. Wagner. Alle anderen bisher veröffentlichten Angriffe erweisen sich für die Praxis als
unrelevant. Für den eben genannten Angriff ist nicht nur eine gute Rechnerausstattung
notwendig, sondern auch die entsprechende Meßtechnik. Es handelt sich also bei weitem
nicht um eine Attacke, die jedem Interessierten zur Verfügung steht. Lediglich Großun-
ternehmen und Nachrichtendienste dürften über die entsprechenden finanziellen Mittel
verfügen.
Für den A5/2 gilt, daß er durch entsprechend finanzkräftige Institutionen leicht zu bre-
chen ist.
Der A5/3 wird momentan als sehr sicher eingeschätzt. David Wagner äußerte sich dazu
am 04. 03. 2003 im Usenet wie folgt:

A5/3 is Kasumi. I don’t know of any problems with Kasumi. I think it’s
great that they’ve moved from A5/1 and A5/2 to Kasumi; that’s a big step
forwards, and we should applaud that. I consider it unlikely that anyone will
break 3GPP’s security by attacking Kasumi. (This is in contrast to previous
digital cellphone standards, where the cryptography had serious problems.)

Derjenige der nicht die Sicherheit des einzelnen Algorithmus betrachtet, sondern die
Abhörsicherheit eines Telefonats im GSM-Netz, kommt zu einem etwas differenzierte-
ren Ergebnis. Es gibt durchaus Möglichkeiten ein Handygespräch abzuhören, ohne dazu
den verwendeten Kryptalgorithmus brechen zu müssen. So lassen sich mit so genann-
ten IMSI-Catchern auf leichte Weise „man in the middle“-Attacken durchführen. Dazu
gibt sich das Gerät gegenüber dem anzugreifenden Mobilfunkgerät als Basisstation und
gegenüber einer realen Basisstation als Handy aus. Einzige Vorraussetzung ist hierbei,
daß sich der Angreifer möglichst nah am abzuhörenden Gerät befindet, damit dieses den
IMSI-Catcher und nicht irgend eine andere BTS als Basisstation benutzt. IMSI-Catcher

20
sind natürlich nicht auf dem freien Markt erhältlich. Im Internet kursiert allerdings das
Gerücht, daß unter anderem die Firma „Rohde & Schwarz“ ein solches Gerät an einen
exklusiven Kundenkreis vertreibt. Außerdem wird davon ausgegangen, daß sowohl Nach-
richtendienste, als auch bestimmte Polizeieinheiten über solche Geräte verfügen.
Da die Kommunikation innerhalb des Betreibernetzes üblicherweise unverschlüsselt statt-
findet, ist auch ein Abhören der Verbindung zwischen BTS und BSC denkbar – gerade
dann, wenn die Verbindung über eine Richtfunkstrecke realisiert wird. Auch eine In-
filtrierung des AuC ist nicht auszuschließen. Solch ein Vorgehen würde dem Angreifer
ungeahnte Möglichkeiten eröffnen.
Wenn man als Mobilfunknutzer sicher sein will, daß das Gespräch von keiner dritten
Person mitgehört wird, dann sollte man den Kauf eines Krypto-Handys in Erwägung
ziehen. Beispielsweise ist von Rohde & Schwarz ein Handy erhältlich, welches nach dem
1024-Bit starken Schlüsslaustausch das gesamte Gespräch mit einer 128 Bit Stromchiffre
verschlüsselt.

21
A.

A.1. A5/1/2 nach Briceno, Goldberg & Wagner


/∗
∗ A p e d a g o g i c a l i m p l e m e n t a t i o n o f t h e GSM A5/ 1 and A5/2 " v o i c e p r i v a c y "
∗ encryption algorithms .

∗ C o p y r i g h t (C) 1998 − 1999: Marc Briceno , Ian G oldberg , and David Wagner

∗ The s o u r c e code b e l o w i s o p t i m i z e d f o r i n s t r u c t i o n a l v a l u e and c l a r i t y .
∗ Performance w i l l be t e r r i b l e , b u t t h a t ’ s n ot t h e p o i n t .

∗ This s o f t w a r e may be e x p o r t −c o n t r o l l e d by US law .

∗ This s o f t w a r e i s f r e e f o r commercial and non−commercial us e as l o n g as
∗ t h e f o l l o w i n g c o n d i t i o n s are adhered t o .
∗ C o p y r i g h t remains t h e a u t h o r s ’ and as s uch any C o p y r i g h t n o t i c e s i n
∗ t h e code are n ot t o be removed .
∗ R e d i s t r i b u t i o n and us e i n s o u r c e and b i n a r y forms , w i t h or w i t h o u t
∗ m o d i f i c a t i o n , are p e r m i t t e d p r o v i d e d t h a t t h e f o l l o w i n g c o n d i t i o n s
∗ are met :

∗ 1 . R e d i s t r i b u t i o n s o f s o u r c e code must r e t a i n t h e c o p y r i g h t
∗ n o t i c e , t h i s l i s t o f c o n d i t i o n s and t h e f o l l o w i n g d i s c l a i m e r .
∗ 2 . R e d i s t r i b u t i o n s i n b i n a r y form must r e p r o d u c e t h e above c o p y r i g h t
∗ n o t i c e , t h i s l i s t o f c o n d i t i o n s and t h e f o l l o w i n g d i s c l a i m e r i n t h e
∗ documentation and/ or o t h e r m a t e r i a l s p r o v i d e d w i t h t h e d i s t r i b u t i o n .

∗ THIS SOFTWARE IS PROVIDED ‘ ‘ AS IS ’ ’ AND ANY EXPRESS OR IMPLIED
∗ WARRANTIES, INCLUDING , BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
∗ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.

22
∗ IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY
∗ DIRECT, INDIRECT , INCIDENTAL , SPECIAL , EXEMPLARY, OR CONSEQUENTIAL
∗ DAMAGES ( INCLUDING , BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
∗ GOODS OR SERVICES ; LOSS OF USE, DATA, OR PROFITS ; OR BUSINESS
∗ INTERRUPTION ) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY , WHETHER
∗ IN CONTRACT, STRICT LIABILITY , OR TORT ( INCLUDING NEGLIGENCE OR
∗ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
∗ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

∗ The l i c e n s e and d i s t r i b u t i o n term s f o r any p u b l i c l y a v a i l a b l e v e r s i o n
∗ or d e r i v a t i v e o f t h i s code can n ot be changed . i . e . t h i s code can n ot
∗ s i m p l y be c o p i e d and p u t under a n o t h e r d i s t r i b u t i o n l i c e n s e
∗ [ i n c l u d i n g t h e GNU P u b l i c L i c e n s e ] .

∗ Background : The G l o b a l System f o r M obi le communications i s t h e most
∗ w i d e l y d e p l o y e d d i g i t a l c e l l u l a r t e l e p h o n y s y s tem i n t h e w o r l d . GSM
∗ makes us e o f f o u r c o r e c r y p t o g r a p h i c a l g o r i t h m s , none o f which has
∗ been p u b l i s h e d by t h e GSM MOU. This f a i l u r e t o s u b j e c t t h e
∗ a l g o r i t h m s t o p u b l i c r e v i e w i s a l l t h e more p u z z l i n g g i v e n t h a t o v e r
∗ 2 1 5 m i l l i o n GSM s u b s c r i b e r s are e x p e c t e d t o r e l y on t h e c l a i m e d
∗ s e c u r i t y o f t h e s y s tem .

∗ The f o u r c o r e GSM c r y p t o g r a p h i c a l g o r i t h m s are :
∗ A3 authentication algorithm
∗ A5/1 " s t r o n g e r " over −the −a i r v o i c e −p r i v a c y a l g o r i t h m
∗ A5/ 2 " weaker " over −the −a i r v o i c e −p r i v a c y a l g o r i t h m
∗ A8 v o i c e −p r i v a c y key g e n e r a t i o n a l g o r i t h m

∗ In A p r i l o f 1 9 9 8 , our group showed t h a t COMP128 , t h e a l g o r i t h m us ed by t h e
∗ overwhelm i n g m a j o r i t y o f GSM p r o v i d e r s f o r b o t h A3 and A8 f u n c t i o n a l i t y
∗ i s f a t a l l y f l a w e d and a l l o w s f o r c l o n i n g o f GSM m o b i l e phones .

∗ Furthermore , we d e m o n s t r a t e d t h a t a l l A8 i m p l e m e n t a t i o n s we c o u l d l o c a t e ,
∗ i n c l u d i n g t h e few t h a t d i d n ot us e COMP128 f o r key g e n e r a t i o n , had been
∗ d e l i b e r a t e l y weakened by r e d u c i n g t h e k e y s p a c e from 6 4 b i t s t o 5 4 b i t s .
∗ The rem a i n i n g 1 0 b i t s a r e s i m p l y s e t t o z e r o !

23
∗ See h t t p : / /www. s c a r d . org /gsm f o r a d d i t i o n a l i n f o r m a t i o n .

∗ [ May 1 9 9 9 ]
∗ One q u e s t i o n so f a r unanswered i s i f A5 / 1 , t h e " s t r o n g e r " o f t h e two
∗ w i d e l y d e p l o y e d v o i c e −p r i v a c y a l g o r i t h m i s a t l e a s t as s t r o n g as t h e
∗ key . Meaning : " Does A5/ 1 have a work f a c t o r o f a t l e a s t 5 4 b i t s "?
∗ Absent a p u b l i c l y a v a i l a b l e A5/ 1 r e f e r e n c e i m plem en tati on , t h i s q u e s t i o n
∗ c o u l d n ot be answered . We hope t h a t our r e f e r e n c e i m p l e m e n t a t i o n below ,
∗ which has been v e r i f i e d a g a i n s t o f f i c i a l A5/ 1 t e s t v e c t o r s , w i l l p r o v i d e
∗ t h e c r y p t o g r a p h i c community w i t h t h e b a s e on which t o c o n s t r u c t t h e
∗ answer t o t h i s i m p o r t a n t q u e s t i o n .

∗ I n i t i a l i n d i c a t i o n s a b o u t t h e s t r e n g t h o f A5/ 1 are n ot e n c o u r a g i n g .
∗ A v a r i a n t o f A5 , w h i l e n ot A5/ 1 i t s e l f , has been e s t i m a t e d t o have a
∗ work f a c t o r o f w e l l b e l o w 5 4 b i t s . See h t t p : / / j y a . com/ crack −a5 . htm f o r
∗ backgroun d i n f o r m a t i o n and r e f e r e n c e s .

∗ With COMP128 broken and A5/ 1 p u b l i s h e d below , we w i l l now t u r n our
∗ a t t e n t i o n t o A5 / 2 .

∗ [ August 1 9 9 9 ]
∗ 19 t h Annual I n t e r n a t i o n a l C r y p t o l o g y C on f eren ce − Crypto ’ 99
∗ Santa Barbara , C a l i f o r n i a

∗ A5/ 2 has been added t o t h e p r e v i o u s l y p u b l i s h e d A5/ 1 s o u r c e . Our
∗ i m p l e m e n t a t i o n has been v e r i f i e d a g a i n s t o f f i c i a l t e s t v e c t o r s .

∗ This means t h a t our group has now r e v e r s e e n g i n e e r e d t h e e n t i r e s e t
∗ o f c r y p t o g r a p h i c a l g o r i t h m s us ed i n t h e overwhelm i n g m a j o r i t y o f GSM
∗ i n s t a l l a t i o n s , i n c l u d i n g a l l t h e over −the −a i r " v o i c e p r i v a c y " a l g o r i t h m s .

∗ The " v o i c e p r i v a c y " a l g o r i t h m A5/ 2 proved e s p e c i a l l y weak . Which p e r h a p s
∗ s h o u l d come as no s u r p r i s e , s i n c e even GSM MOU members have a d m i t t e d t h a t
∗ A5/ 2 was d e s i g n e d w i t h heavy i n p u t by i n t e l l i g e n c e a g e n c i e s t o e n s u r e
∗ b r e a k a b i l i t y . J u s t how i n s e c u r e i s A5/2? I t can be broken i n r e a l ti m e
∗ w i t h a work f a c t o r o f a mere 1 6 b i t s . GSM m i ght j u s t as w e l l us e no " v o i c e
∗ privacy " algorithm at a l l .

24

∗ We announced t h e b r e a k o f A5/ 2 a t t h e Crypto ’ 9 9 Rump S e s s i o n .
∗ D e t a i l s w i l l be p u b l i s h e d i n a s c i e n t i f i c paper f o l l o w i n g soon .


∗ −− Marc Bri cen o <marc@scard . org>
∗ Voice : +1 (925) 798 −4042

∗/

#include < s t d i o . h>

/∗ Masks f o r t h e s h i f t r e g i s t e r s ∗/
#define R1MASK 0x07FFFF /∗ 1 9 b i t s , numbered 0 . . 1 8 ∗/
#define R2MASK 0x3FFFFF /∗ 2 2 b i t s , numbered 0 . . 2 1 ∗/
#define R3MASK 0x7FFFFF /∗ 2 3 b i t s , numbered 0 . . 2 2 ∗/
#i f d e f A5_2
#define R4MASK 0x01FFFF /∗ 1 7 b i t s , numbered 0 . . 1 6 ∗/
#endif /∗ A5_2 ∗/

#i f n d e f A5_2
/∗ M i ddle b i t o f each o f t h e t h r e e s h i f t r e g i s t e r s , f o r c l o c k c o n t r o l ∗/
#define R1MID 0 x000100 /∗ b i t 8 ∗/
#define R2MID 0 x000400 /∗ b i t 1 0 ∗/
#define R3MID 0 x000400 /∗ b i t 1 0 ∗/
#e l s e /∗ A5_2 ∗/
/∗ A b i t o f R4 t h a t c o n t r o l s each o f t h e s h i f t r e g i s t e r s ∗/
#define R4TAP1 0 x000400 /∗ b i t 1 0 ∗/
#define R4TAP2 0 x000008 /∗ b i t 3 ∗/
#define R4TAP3 0 x000080 /∗ b i t 7 ∗/
#endif /∗ A5_2 ∗/

/∗ Feedback t a p s , f o r c l o c k i n g t h e s h i f t r e g i s t e r s .

25
∗ These c o r r e s p o n d t o t h e p r i m i t i v e p o l y n o m i a l s
∗ x ^19 + x ^5 + x ^2 + x + 1 , x ^22 + x + 1 ,
∗ x ^23 + x ^15 + x ^2 + x + 1 , and x ^17 + x ^ 5 + 1 . ∗/

#define R1TAPS 0 x072000 /∗ b i t s 1 8 , 1 7 , 1 6 , 1 3 ∗/


#define R2TAPS 0 x300000 /∗ b i t s 2 1 , 2 0 ∗/
#define R3TAPS 0 x700080 /∗ b i t s 2 2 , 2 1 , 2 0 , 7 ∗/
#i f d e f A5_2
#define R4TAPS 0 x010800 /∗ b i t s 1 6 , 1 1 ∗/
#endif /∗ A5_2 ∗/

typedef unsigned char by te ;


typedef unsigned long word ;
typedef word b i t ;

/∗ C a l c u l a t e t h e p a r i t y o f a 32− b i t word , i . e . t h e sum o f i t s b i t s modulo 2


∗/
b i t p a r i t y ( word x ) {
x ^= x>>16;
x ^= x>>8;
x ^= x>>4;
x ^= x>>2;
x ^= x>>1;
return x&1;
}

/∗ C lock one s h i f t r e g i s t e r . For A5/ 2 , when t h e l a s t b i t o f t h e frame


∗ i s l o a d e d in , one p a r t i c u l a r b i t o f each r e g i s t e r i s f o r c e d t o ’ 1 ’ ;
∗ t h a t b i t i s p a s s e d i n as t h e l a s t argument . ∗/
#i f n d e f A5_2
word c l o c k o n e ( word reg , word mask , word t a p s ) {
#e l s e /∗ A5_2 ∗/
word c l o c k o n e ( word reg , word mask , word taps , word l o a d e d _ b i t ) {

26
#endif /∗ A5_2 ∗/
word t = r e g & t a p s ;
r e g = ( r e g < < 1) & mask ;
reg |= parity ( t ) ;
#i f d e f A5_2
reg |= loaded_bit ;
#endif /∗ A5_2 ∗/
return r e g ;
}

/∗ The t h r e e s h i f t r e g i s t e r s . They ’ r e i n g l o b a l v a r i a b l e s t o make t h e code


∗ e a s i e r to understand .
∗ A b e t t e r i m p l e m e n t a t i o n would n ot us e g l o b a l v a r i a b l e s . ∗/
word R1 , R2 , R3 ;
#i f d e f A5_2
word R4 ;
#endif /∗ A5_2 ∗/

/∗ Return 1 i f f a t l e a s t two o f t h e parameter words are non−z e r o . ∗/


b i t m a j o r i t y ( word w1 , word w2 , word w3 ) {
i n t sum = ( w1 ! = 0 ) + ( w2 ! = 0 ) + ( w3 ! = 0 ) ;
i f ( sum >= 2)
return 1 ;
else
return 0 ;
}

/∗ C lock two or t h r e e o f R1 , R2 , R3 , w i t h c l o c k c o n t r o l
∗ according to t h e i r middle b i t s .
∗ S p e c i f i c a l l y , we c l o c k Ri whenever Ri ’ s m i d d l e b i t
∗ agrees with the majority value of the three middle b i t s . For A5/2 ,
∗ us e p a r t i c u l a r b i t s o f R4 i n s t e a d o f t h e m i d d l e b i t s . Also , f o r A5/2 ,
∗ a l w a y s c l o c k R4 .
∗ I f a l l P == 1 , c l o c k a l l t h r e e o f R1 , R2 , R3 , i g n o r i n g t h e i r m i d d l e b i t s .

27
∗ This i s o n l y us ed f o r key s e t u p . I f l o a d e d == 1 , t h e n t h i s i s t h e l a s t
∗ b i t o f t h e frame number , and i f we ’ r e d o i n g A5/ 2 , we have t o s e t a
∗ p a r t i c u l a r b i t i n each o f t h e f o u r r e g i s t e r s . ∗/
void c l o c k ( i n t a l l P , i n t l o a d e d ) {
#i f n d e f A5_2
b i t maj = m a j o r i t y (R1&R1MID , R2&R2MID , R3&R3MID ) ;
i f ( a l l P | | ( ( ( R1&R1MID)!=0) == maj ) )
R1 = c l o c k o n e (R1 , R1MASK, R1TAPS) ;
i f ( a l l P | | ( ( ( R2&R2MID)!=0) == maj ) )
R2 = c l o c k o n e (R2 , R2MASK, R2TAPS) ;
i f ( a l l P | | ( ( ( R3&R3MID)!=0) == maj ) )
R3 = c l o c k o n e (R3 , R3MASK, R3TAPS) ;
#e l s e /∗ A5_2 ∗/
b i t maj = m a j o r i t y (R4&R4TAP1 , R4&R4TAP2 , R4&R4TAP3 ) ;
i f ( a l l P | | ( ( ( R4&R4TAP1)!=0) == maj ) )
R1 = c l o c k o n e (R1 , R1MASK, R1TAPS , loaded <<15);
i f ( a l l P | | ( ( ( R4&R4TAP2)!=0) == maj ) )
R2 = c l o c k o n e (R2 , R2MASK, R2TAPS , loaded <<16);
i f ( a l l P | | ( ( ( R4&R4TAP3)!=0) == maj ) )
R3 = c l o c k o n e (R3 , R3MASK, R3TAPS , loaded <<18);
R4 = c l o c k o n e (R4 , R4MASK, R4TAPS , loaded <<10);
#endif /∗ A5_2 ∗/
}

/∗ Generate an o u t p u t b i t from t h e c u r r e n t s t a t e .
∗ You g r a b a b i t from each r e g i s t e r v i a t h e o u t p u t g e n e r a t i o n t a p s ;
∗ t h e n you XOR t h e r e s u l t i n g t h r e e b i t s . For A5/ 2 , i n a d d i t i o n t o
∗ t h e t o p b i t o f each o f R1 , R2 , R3 , a l s o XOR i n a m a j o r i t y f u n c t i o n
∗ o f t h r e e p a r t i c u l a r b i t s o f t h e r e g i s t e r ( one o f them complemented )
∗ t o make i t non−l i n e a r . Also , f o r A5 / 2 , d e l a y t h e o u t p u t by one
∗ c l o c k c y c l e f o r some reas on . ∗/
bit getbit () {
b i t t o p b i t s = ( ( ( R1 > > 18) ^ (R2 > > 21) ^ (R3 > > 22)) & 0 x01 ) ;
#i f n d e f A5_2
return t o p b i t s ;
#e l s e /∗ A5_2 ∗/

28
static bit delaybit = 0;
b i t nowbit = d e l a y b i t ;
delaybit = (
topbits
^ m a j o r i t y (R1&0x8000 , ( ~ R1)&0 x4000 , R1&0x1000 )
^ m a j o r i t y ((~R2)&0 x10000 , R2&0x2000 , R2&0x200 )
^ m a j o r i t y (R3&0x40000 , R3&0x10000 , ( ~ R3)&0 x2000 )
);
return nowbit ;
#endif /∗ A5_2 ∗/
}

/∗ Do t h e A5 key s e t u p . This r o u t i n e a c c e p t s a 64− b i t key and


∗ a 22− b i t frame number . ∗/
void k e y s e t u p ( by te key [ 8 ] , word frame ) {
int i ;
b i t keybit , framebit ;

/∗ Zero o u t t h e s h i f t r e g i s t e r s . ∗/
R1 = R2 = R3 = 0 ;
#i f d e f A5_2
R4 = 0 ;
#endif /∗ A5_2 ∗/

/∗ Load t h e key i n t o t h e s h i f t r e g i s t e r s ,
∗ LSB o f f i r s t b y t e o f key a r r a y f i r s t ,
∗ c l o c k i n g each r e g i s t e r once f o r e v e r y
∗ key b i t l o a d e d . ( The u s u a l c l o c k
∗ c o n t r o l r u l e i s t e m p o r a r i l y d i s a b l e d . ) ∗/
f o r ( i =0; i <64; i ++) {
c l o c k ( 1 , 0 ) ; /∗ a l w a y s c l o c k ∗/
k e y b i t = ( key [ i /8] > > ( i & 7 ) ) & 1 ; /∗ The i −t h b i t o f t h e key ∗/
R1 ^= k e y b i t ; R2 ^= k e y b i t ; R3 ^= k e y b i t ;
#i f d e f A5_2

29
R4 ^= k e y b i t ;
#e n d i f /∗ A5_2 ∗/
}

/∗ Load t h e frame number i n t o t h e s h i f t r e g i s t e r s , LSB f i r s t ,


∗ c l o c k i n g each r e g i s t e r once f o r e v e r y key b i t l o a d e d .
∗ ( The u s u a l c l o c k c o n t r o l r u l e i s s t i l l d i s a b l e d . )
∗ For A5 / 2 , s i g n a l when t h e l a s t b i t i s b e i n g c l o c k e d i n . ∗/
f o r ( i =0; i <22; i ++) {
c l o c k ( 1 , i ==21); /∗ a l w a y s c l o c k ∗/
f r a m e b i t = ( frame >> i ) & 1 ; /∗ The i −t h b i t o f t h e frame # ∗/
R1 ^= f r a m e b i t ; R2 ^= f r a m e b i t ; R3 ^= f r a m e b i t ;
#i f d e f A5_2
R4 ^= f r a m e b i t ;
#endif /∗ A5_2 ∗/
}

/∗ Run t h e s h i f t r e g i s t e r s f o r 1 0 0 c l o c k s
∗ t o mix t h e k e y i n g m a t e r i a l and frame number
∗ together with output generation disabled ,
∗ so t h a t t h e r e i s s u f f i c i e n t a v a l a n c h e .
∗ We re−e n a b l e t h e m a j o r i t y −b a s e d c l o c k c o n t r o l
∗ r u l e from now on . ∗/
f o r ( i =0; i <100; i ++) {
clock (0 ,0);
}
/∗ For A5 / 2 , we have t o l o a d t h e d e l a y e d o u t p u t b i t . This does _not_
∗ change t h e s t a t e o f t h e r e g i s t e r s . For A5/ 1 , t h i s i s a no−op . ∗/
getbit ( ) ;

/∗ Now t h e key i s p r o p e r l y s e t up . ∗/
}

30
/∗ Generate o u t p u t . We g e n e r a t e 2 2 8 b i t s o f
∗ keystream output . The f i r s t 1 1 4 b i t s i s f o r
∗ t h e A−>B frame ; t h e n e x t 1 1 4 b i t s i s f o r t h e
∗ B−>A frame . You a l l o c a t e a 15− b y t e b u f f e r
∗ f o r each d i r e c t i o n , and t h i s f u n c t i o n fills
∗ i t i n . ∗/
void run ( by te AtoBkeystream [ ] , by te BtoAkeystream [ ] ) {
int i ;

/∗ Zero o u t t h e o u t p u t b u f f e r s . ∗/
f o r ( i =0; i <=113/8; i ++)
AtoBkeystream [ i ] = BtoAkeystream [ i ] = 0 ;

/∗ Generate 1 1 4 b i t s o f k e y s t r e a m f o r t h e
∗ A−>B d i r e c t i o n . S t o r e i t , MSB f i r s t . ∗/
f o r ( i =0; i <114; i ++) {
clock (0 ,0);
AtoBkeystream [ i / 8 ] | = g e t b i t () < < (7 −( i & 7 ) ) ;
}

/∗ Generate 1 1 4 b i t s o f k e y s t r e a m f o r t h e
∗ B−>A d i r e c t i o n . S t o r e i t , MSB f i r s t . ∗/
f o r ( i =0; i <114; i ++) {
clock (0 ,0);
BtoAkeystream [ i / 8 ] | = g e t b i t () < < (7 −( i & 7 ) ) ;
}
}

/∗ T es t t h e code by comparing i t a g a i n s t
∗ a known−good t e s t v e c t o r . ∗/
void t e s t ( ) {
#i f n d e f A5_2
by te key [ 8 ] = { 0 x12 , 0 x23 , 0 x45 , 0 x67 , 0 x89 , 0 xAB, 0 xCD, 0 xEF } ;

31
word frame = 0 x134 ;
by te goodAtoB [ 1 5 ] = { 0 x53 , 0 x4E , 0 xAA, 0 x58 , 0 x2F , 0 xE8 , 0 x15 ,
0x1A , 0 xB6 , 0 xE1 , 0 x85 , 0 x5A , 0 x72 , 0 x8C , 0 x00 } ;
by te goodBtoA [ 1 5 ] = { 0 x24 , 0 xFD , 0 x35 , 0 xA3 , 0 x5D , 0 x5F , 0 xB6 ,
0x52 , 0 x6D , 0 x32 , 0 xF9 , 0 x06 , 0 xDF , 0 x1A , 0 xC0 } ;
#e l s e /∗ A5_2 ∗/
by te key [ 8 ] = { 0 x00 , 0 x f c , 0 x f f , 0 x f f , 0 x f f , 0 x f f , 0 x f f , 0 x f f } ;
word frame = 0 x21 ;
by te goodAtoB [ 1 5 ] = { 0 xf4 , 0 x51 , 0 x2c , 0 xac , 0 x13 , 0 x59 , 0 x37 ,
0x64 , 0 x46 , 0 x0b , 0 x72 , 0 x2d , 0 xad , 0 xd5 , 0 x00 } ;
by te goodBtoA [ 1 5 ] = { 0 x48 , 0 x00 , 0 xd4 , 0 x32 , 0 x8e , 0 x16 , 0 xa1 ,
0x4d , 0 xcd , 0 x7b , 0 x97 , 0 x22 , 0 x26 , 0 x51 , 0 x00 } ;
#endif /∗ A5_2 ∗/
by te AtoB [ 1 5 ] , BtoA [ 1 5 ] ;
i n t i , f a i l e d =0;

k e y s e t u p ( key , frame ) ;
run ( AtoB , BtoA ) ;

/∗ Compare a g a i n s t t h e t e s t v e c t o r . ∗/
f o r ( i =0; i <15; i ++)
i f ( AtoB [ i ] ! = goodAtoB [ i ] )
f a i l e d = 1;
f o r ( i =0; i <15; i ++)
i f ( BtoA [ i ] ! = goodBtoA [ i ] )
f a i l e d = 1;

/∗ P r i n t some d e b u g g i n g o u t p u t . ∗/
p r i n t f ( " key : ␣ 0 x" ) ;
f o r ( i =0; i <8; i ++)
p r i n t f ( "%02X" , key [ i ] ) ;
p r i n t f ( "\n" ) ;
p r i n t f ( " frame ␣number : ␣ 0 x%06X\n" , ( unsigned i n t ) frame ) ;
p r i n t f ( "known␣ good ␣ output : \ n" ) ;

32
p r i n t f ( "␣A−>B: ␣ 0 x" ) ;
f o r ( i =0; i <15; i ++)
p r i n t f ( "%02X" , goodAtoB [ i ] ) ;
p r i n t f ( " ␣␣B−>A: ␣ 0 x" ) ;
f o r ( i =0; i <15; i ++)
p r i n t f ( "%02X" , goodBtoA [ i ] ) ;
p r i n t f ( "\n" ) ;
p r i n t f ( " o b s e r v e d ␣ output : \ n" ) ;
p r i n t f ( "␣A−>B: ␣ 0 x" ) ;
f o r ( i =0; i <15; i ++)
p r i n t f ( "%02X" , AtoB [ i ] ) ;
p r i n t f ( " ␣␣B−>A: ␣ 0 x" ) ;
f o r ( i =0; i <15; i ++)
p r i n t f ( "%02X" , BtoA [ i ] ) ;
p r i n t f ( "\n" ) ;

if (! failed ) {
p r i n t f ( " S e l f −check ␣ s u c c e e d e d : ␣ e v e r y t h i n g ␣ l o o k s ␣ ok . \ n" ) ;
exit (0);
} else {
/∗ Problems ! The t e s t v e c t o r s di dn ’ t compare ∗/
p r i n t f ( "\ nI ␣don ’ t ␣know␣why␣ t h i s ␣ brok e ; ␣ c o n t a c t ␣ the ␣ a u t h o r s . \ n" ) ;
}
}

i n t main ( void ) {
test ();
return 0 ;
}

33
Literaturverzeichnis

[1] GSM-World, Infoseiten: , http://www.gsmworld.com/technology

[2] Stefan Eglauf, Samuel Frempong: Einführung in GSM , Hochschule Rappers-


wil

[3] Informationszentrum Mobilfunk: , http://www.izmf.de/html/de/index.html

[4] Dirk Fox: Gateway: IMSI-Catcher, DuD 9/1997, Vieweg,


http://www.vieweg.de/dud/dud/imsicatc.html

[5] Prof. Dr. W. Kowalk: Rechnernetze, Skript, Universität Oldenburg,


http://einstein.informatik.uni-oldenburg.de/rechnernetze/gms-sicherheit.htm

[6] Alex Biryukov, Adi Shamir, David Wagner: Real Time Cryptanalysis of A5/1
on a PC , The Weizmann Institute, Israel, University of California, USA

[7] Erik Zenner: Kryptographische Protokolle im GSM-Standard: Beschreibung und


Kryptanalyse, Diplomarbeit, Professur für theoretische Informatik, Universität
Mannheim, 1999

[8] Marc Briceno, Ian Goldberg, David Wagner: A pedagogical implementation


of A5/1,
http://www.scard.org/gsm/a51.html. z.Z. offline, daher Kopie im Anhang

[9] 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

[10] 3rd Generation Partnership Project: Technische Spezifikation zum Kasumi-


Algorithmus , http://www.3gpp.org/TB/other/algorithms/35202-311.pdf

34
Index

τ , 12 IMSI-Catchern, 20
‘man in the middle’-Attacken, 20 Individual Mobile Equipment Identity (IMEI),
3GPP1 , 19 8
International Mobile Subscriber Identity
A3, 9
(IMSI), 6
A5, 9
Inversionsangriff, 14
A8, 9
Angriff von S. Petrović, A. Fúster-Sabater, KASUMI, 19
18
linear rückgekoppelten Schieberegistern
Base Station Controller (BSC), 7 ( LFSR ), 2
Base Transceiver Stations (BTS), 7 Luftschnittstelle, 10

CEPT, 5 Mobile Station (MS), 6


COMP128, 9 Mobile Switching Centers (MSC), 7

ETSI, 19 Operation And Maintenance Center (OMC),


European Telecommunications Standards 8
Institutes (ETSI)2 , 11
Rahmen, 10
Frame, 10 Rahmennummer Nf , 10

Geburtstagsparadoxon, 15 Security Algorithms Group of Experts


geheime Schlüssel Ki , 6 (SAGE), 11
Groupe Spécial Mobile, 5 Signed Response (SRES’), 9
GSM, 5 Signed Response (SRES), 8
1 Sitzungsschlüssel Kc , 8
3rd Generation Partnership Project
2
offizielles europäisches Standardisierungsin-
Subscriber Identity Module (SIM), 6
stitut mit Sitz in Frankreich

35
Taktkontrollbits, 12

Vorwärtsangriff, 14

Zufallswert RAND, 8

36

Você também pode gostar