Escolar Documentos
Profissional Documentos
Cultura Documentos
Die Stromchiffre A5
Philipp Südmeyer
Matr.-Nr.: 108 000 21 85 23
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
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
4
1. GSM - Etwas Hintergrundwissen
• Kompatibilität zu ISDN-Netzen
• Grenzüberschreitende Kompatibilität
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.
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:
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:
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:
• 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
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.
• 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
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]):
• 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].
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.
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!
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
R4
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.
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
∗
∗/
/∗ 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 . ∗/
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 ;
}
/∗ 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 ∗/
}
/∗ 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 ∗/
}
/∗ 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
[6] Alex Biryukov, Adi Shamir, David Wagner: Real Time Cryptanalysis of A5/1
on a PC , The Weizmann Institute, Israel, University of California, USA
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
35
Taktkontrollbits, 12
Vorwärtsangriff, 14
Zufallswert RAND, 8
36