Stromchiffren. Entwurf, Einsatz und Schwächen. Diplomarbeit im Studiengang Mathematik. vorgelegt von Barbara Lucie Langer.

Ähnliche Dokumente
Kryptographische Zufallszahlen. Schieberegister, Output-Feedback

31 Polynomringe Motivation Definition: Polynomringe

Stefan Lucks Krypto und Mediensicherheit (2009) 4: Stromchiffren

Vorkurs: Mathematik für Informatiker

Körper- und Galoistheorie

Kapitel 6: Das quadratische Reziprozitätsgesetz

Die Unlösbarkeit der Gleichung fünften Grades durch Radikale. Teilnehmer: Gruppenleiter:

6: Diskrete Wahrscheinlichkeit

6. Lösungsblatt

Lineare Schieberegisterfolgen

Kapitel 3: Die Sätze von Euler, Fermat und Wilson. 8 Der Satz von Euler

Kapitel 4: Flusschiffren

$Id: integral.tex,v /05/05 13:36:42 hk Exp $

8.2 Ring- und Körperadjunktion

Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2015/16

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

Einführung in die Theorie der Markov-Ketten. Jens Schomaker

KAPITEL 1: ENDLICHE KÖRPER 1 ALLGEMEINES 2 GLEICHUNGEN ÜBER EINEM ENDLICHEN KÖRPER

6.2. Ringe und Körper

Ganze algebraische Zahlen

9.5 Blockverschlüsselung

a i x i, (1) Ein Teil der folgenden Betrachtungen gilt auch, wenn man den Körper durch einen Ring ersetzt.

4 Kryptologie. Übersicht

Der kleine Satz von Fermat

3.5 Kryptographie - eine Anwendung der Kongruenzrechnung

1.Vortrag: Rechnen mit Restklassen/modulo einer Zahl

5. Äquivalenzrelationen

Algebraische Körpererweiterungen I

Mathematik für Naturwissenschaftler II SS 2010

3.6 Eigenwerte und Eigenvektoren

Übung 10 Körpererweiterungen

Quadrate und Wurzelziehen modulo p

Ganzrationale Funktionen

Algebra II, SS 2009 Montag $Id: endlich.tex,v /04/27 13:49:37 hk Exp $ GF(q) := {x A p x q = x}

technische universität dortmund Dortmund, im Dezember 2011 Fakultät für Mathematik Prof. Dr. H. M. Möller

1. Gruppen. 1. Gruppen 7

Grundlagen der Arithmetik und Zahlentheorie

Einführung in die Algebra

Vorkurs: Mathematik für Informatiker

Mathematisches Institut II Universität Karlsruhe Priv.-Doz. Dr. N. Grinberg

1 Lineare Gleichungssysteme und Matrizen

Chr.Nelius: Grundzüge der Algebra (WS2005/06) 1. (14.1) DEF: Ein kommutativer Ring (K, +, ) heißt ein Körper, wenn gilt: 1) 1 K 0 K 2) K = K \ {0 K }

Körper- und Galoistheorie

Lösungsmenge L I = {x R 3x + 5 = 9} = L II = {x R 3x = 4} = L III = { }

9 Lineare Gleichungssysteme

Universität Zürich HS , Vorlesung #3

HM I Tutorium 1. Lucas Kunz. 27. Oktober 2016

Probabilistische Primzahltests

Kapitel 11 Eigenwerte und Eigenvektoren

2 - Konvergenz und Limes

Socrative-Fragen aus der Übung vom

(Man sagt dafür auch, dass die Teilmenge U bezüglich der Gruppenoperationen abgeschlossen sein muss.)

GF(2 2 ) Beispiel eines Erweiterungskörpers (1)

Lösung zur Klausur zu Krypographie Sommersemester 2005

8.2 Invertierbare Matrizen

Einführung in die linearen Funktionen. Autor: Benedikt Menne

Mathematische Grundlagen der Kryptografie (1321)SoSe 06

Einführung in die Algebra

Unterlagen zu Polynomringen. Erhard Aichinger

1 Potenzen und Polynome

(a) Welche der folgenden Gruppen hat 24 Elemente? D 6 GL 2 (F 2 ) X Die Tetraedergruppe. (b) Welche der folgenden Aussagen ist wahr?

Algebraische Zahlentheorie. Teil II. Die Diskriminante.

Kapitel 6. Irrfahrten und Bernoullischemata

Seminar über Galoistheorie und Anwendungen SEPARABILITÄT

37 Gauß-Algorithmus und lineare Gleichungssysteme

Klassische Verschlüsselungsverfahren

8. Musterlösung zu Mathematik für Informatiker II, SS 2004

Algebra. (b) Der Beweis funktioniert analog zu Teil (a), nur daß wir in der Argumentation Z durch R und 2 durch c ersetzen müssen.

2. Symmetrische Gruppen

Kapitel III. Aufbau des Zahlensystems

1 Zahlentheorie. 1.1 Kongruenzen

Kapitel 3. Kapitel 3 Gleichungen

Ringe. Kapitel Einheiten

Kongruenz modulo g definiert auf K[x] eine Äquivalenzrelation g : h g f h f ist durch g teilbar, und [f] g ist die Äquivalenzklasse von f.

PROSEMINAR LINEARE ALGEBRA SS10

6 Polynomielle Gleichungen und Polynomfunktionen

9 Lineare Algebra 2 (SS 2009)

Pr[X t+1 = k] = Pr[X t+1 = k X t = i] Pr[X t = i], also. (q t+1 ) k = p ik (q t ) i, bzw. in Matrixschreibweise. q t+1 = q t P.

Aufgabenblatt 5: Abgabe am vor der Vorlesung

Vortrag 11: Der Satz von Bézout. Friedrich Feuerstein, Christian Pehle 17. Juli 2009

n (als K 0 -Vektorraum) und insbesondere

2.5 Gauß-Jordan-Verfahren

Konvexe Optimierungsprobleme

1.4 Homomorphismen und Isomorphismen

Grundlagen der Kryptographie

9 Eigenwerte und Eigenvektoren

9 Eigenwerte und Eigenvektoren

Klausur vom Algebra I. Rolf Farnsteiner

IT-Security. Teil 15: Zufall

Hybride Verschlüsselungsverfahren

$Id: ring.tex,v /05/03 15:13:26 hk Exp $

13. Woche: NP-Vollständigkeit Satz von Cook-Levin Anwendungen in der Kryptographie

Einführung in die Theoretische Informatik

1 Angeordnete Körper. 1.1 Anordnungen und Positivbereiche

Aufgaben zur linearen Algebra und analytischen Geometrie I

WS 2009/10. Diskrete Strukturen

WURZEL Werkstatt Mathematik Polynome Grundlagen

Testklausur II mit Lösungen

Kapitel III Ringe und Körper

Pseudozufallsgeneratoren

Transkript:

Stromchiffren Entwurf, Einsatz und Schwächen Diplomarbeit im Studiengang Mathematik vorgelegt von Barbara Lucie Langer Juli 2006 Technische Universität Darmstadt Fachbereich Informatik Fachgebiet Kryptographie und Computeralgebra Prof. Dr. Johannes Buchmann

Zusammenfassung Diese Diplomarbeit gibt einen umfassenden Einblick in das Gebiet der sequentiellen Verschlüsselung von Daten. Sie befasst sich sowohl mit der zu Grunde liegenden mathematischen Theorie, als auch mit bekannten Verfahren, die in der Praxis zum Einsatz kommen. Es werden aktuelle Forschungsergebnisse zur Angreifbarkeit von Stromchiffren, insbesondere zu algebraischen Angriffen, betrachtet und analysiert.

Ehrenwörtliche Erklärung Hiermit versichere ich, dass ich diese Arbeit ohne Hilfe Dritter und nur mit den angegebenen Quellen angefertigt habe. Alle Stellen, die aus den Quellen entnommen wurden, sind als solche kenntlich gemacht. Ein Teil dieser Arbeit lag in ähnlicher Form bereits im Mai 2004 als Diplomarbeit dem Prüfungsamt des Fachbereiches Mathematik und Naturwissenschaften der Fachhochschule Darmstadt vor. Darmstadt, den 31. Juli 2006 i

ii

Inhaltsverzeichnis 1 Einleitung 1 2 Grundlagen 2 2.1 Synchronisierung................................. 3 2.2 Vernams One Time Pad............................. 6 2.3 Pseudozufallsfolgen................................ 7 3 Linear rückgekoppelte Schieberegister 10 3.1 Charakteristisches Polynom und Periode.................... 14 3.2 Minimalpolynom und Spur........................... 19 3.3 Lineare Komplexität............................... 22 4 Nichtlineare Schlüsselstromgeneratoren 24 4.1 Nichtlineare Kombinationsgeneratoren..................... 24 4.2 Nichtlineare Filtergeneratoren.......................... 29 4.3 Taktgesteuerte Generatoren........................... 32 5 Ausgewählte Verfahren 36 5.1 A5......................................... 36 5.1.1 A5/1.................................... 36 5.1.2 A5/2.................................... 38 5.2 LILI-128...................................... 40 5.3 E 0......................................... 42 5.4 RC4........................................ 45 6 Angriffe auf Stromchiffren 50 6.1 Guess And Determine.............................. 50 6.2 Time Memory Tradeoff............................. 51 6.3 Divide And Conquer............................... 52 6.4 Korrelationsangriffe............................... 53 6.5 Linear Consistency Tests............................ 54 7 Algebraische Angriffe 56 7.1 Vorgehensweise.................................. 56 7.1.1 Vorbereitung............................... 57 7.1.2 Einfache Kombinationsgeneratoren................... 58 7.1.3 Speicherbehaftete Kombinationsgeneratoren.............. 60 7.2 Lösungsmethoden................................. 62 7.2.1 Linearisierung............................... 62 7.2.2 XL..................................... 63 7.3 Schnelle algebraische Angriffe.......................... 64 7.4 Anwendungsbeispiele............................... 72 7.4.1 A5..................................... 72 7.4.2 E 0..................................... 74 7.4.3 LILI-128.................................. 74 8 Schluss 78 Literaturverzeichnis 79 iii

Abbildungsverzeichnis 1 Binäre additive Stromchiffe........................... 3 2 Synchrone Stromchiffre.............................. 4 3 Asynchrone Stromchiffre............................. 5 4 Linear rückgekoppeltes Schieberegister..................... 10 5 Schema des A5/1 Schlüsselstromgenerators.................. 37 6 Schema des A5/2 Schlüsselstromgenerators.................. 39 Tabellenverzeichnis 1 Kombinationsfunktion des Geffe Generators.................. 26 2 Taktregelung des Schlüsselstromgenerators bei A5/1............. 37 3 Taktregelung des Schlüsselstromgenerators bei A5/2............. 39 iv

1 Einleitung Kryptographische Verfahren werden eingesetzt, um Informationen vor unberechtigtem Zugriff zu schützen. Dabei unterscheidet man grundsätzlich zwei Verschlüsselungsarten: Bei symmetrischen Verfahren besitzen Sender und Empfänger einer vertraulichen Nachricht denselben geheimen Schlüssel, der zum Verschlüsseln wie auch zum Entschlüsseln verwendet wird. Asymmetrische Verfahren hingegen sind dadurch gekennzeichnet, dass ein öffentlicher Schlüssel zum Chiffrieren verwendet wird, während nur der Empfänger mit seinem dazugehörigen privaten Schlüssel die Nachricht dechiffrieren kann. Bei symmetrischen Kryptosystemen unterscheidet man weiter zwischen Blockchiffren und Stromchiffren, wobei letztere auch als sequentielle Chiffren bezeichnet werden. Bei ersteren wird die Nachricht in gleichlange Abschnitte unterteilt, welche anschließend blockweise verschlüsselt werden. Die Verschlüsselungsfunktion ist dabei für alle Blöcke gleich. Im Gegensatz dazu variiert die Verschlüsselung bei einer Stromchiffre zeitlich. Der Klartext wird chiffriert, indem er zeichenweise mit einem Schlüsselstrom verknüpft wird. Dazu muss der Schlüsselstrom mindestens so lang sein wie die Nachricht. Ein großer Vorteil von Stromchiffren ist deren geringe Verzögerung: Der Empfänger der Nachricht kann jedes chiffrierte Zeichen sofort nach Erhalt entschlüsseln. Daher eignen sich Stromchiffren besonders gut zum Verschlüsseln kontinuierlicher Datenströme und in der Echtzeitkommunikation wie z.b. bei Gesprächen über Mobiltelefone. Die vorliegende Arbeit ist wie folgt aufgebaut: Kapitel 2 gibt zunächst eine formale Beschreibung sequentieller Verschlüsselung und führt die grundlegenden Begriffe ein. Es erfolgt eine Klassifikation von Stromchiffren nach verschiedenen Gesichtspunkten. Danach konzentriert sich die Arbeit auf die Hauptkategorie der schieberegister basierten Stromchiffren. In Kapitel 3 wird die zu Grunde liegende mathematische Theorie erklärt. Aus dieser ergibt sich eine Reihe von Folgerungen, welche für die kryptographische Sicherheit von Stromchiffren maßgeblich sind. Entsprechende Ideen für den Entwurf von Stromchiffren werden in Kapitel 4 präsentiert. Dazu werden sowohl abstrakte Modelle betrachtet, als auch konkrete Beispiele. In Kapitel 5 werden einige Stromchiffren vorgestellt und analysiert, die von zentraler Bedeutung für den Anwendungsbereich sind oder aber aufgrund ausgeprägter kryptographischer Schwächen besonders effizient angreifbar sind. Dieser Punkt wird in Kapitel 6 nochmals aufgegriffen und vertieft: Vorhandene Ideen für Angriffe auf Stromchiffren werden klassifiziert und an Hand der in Kapitel 5 vorgestellten Verfahren erläutert. Abschließend werden in Kapitel 7 algebraische Angriffe auf Stromchiffren ausführlich behandelt. 1

2 Grundlagen Dieser Abschnitt liefert die formale Beschreibung einer Stromchiffre und ihrer Komponenten. Grundlegend sind die Begriffe Klartext, Schlüsselstrom sowie Chiffretext. Diese drei Datenmengen sind von endlicher Größe, sollen hier aber formal als Folgen im mathematischen Sinne betrachtet und wie nachstehend bezeichnet werden: Klartextfolge (m t ) t 0 Schlüsselstrom bzw. Schlüsselfolge (k t ) t 0 Chiffretextfolge (c t ) t 0 Die Glieder der einzelnen Folgen sind Zeichen eines Alphabets Σ. Das t-te Glied der Chiffretextfolge ergibt sich, indem die Verschlüsselungsfunktion f auf das entsprechenden Glied der Klartext- und der Schlüsselfolge angewendet wird: f: Σ Σ Σ (m t, k t ) c t, t 0 Den Kern einer Stromchiffre bildet der Schlüsselstromgenerator, welcher die Schlüsselfolge (k t ) t 0 erzeugt. Dieser Generator realisiert auch die bereits erwähnte zeitabhängige Transformation innerhalb einer Stromchiffre. Die entsprechende veränderliche Größe bezeichnet man als inneren Zustand σ t der Stromchiffre. Die Gesamtheit aller möglichen Zustände bildet die Zustandsmenge S. Der Zustand wechselt jeweils nach der Verschlüsselung eines Klartextzeichens. Ausschlaggebend für diese Änderung ist die Zustandsüberführungsfunktion g s. Sie ist je nach Typ der Stromchiffre unterschiedlich definiert und wird deshalb erst in Abschnitt 2.1 näher erläutert. Weiterhin beinhaltet der Generator die Ausgabefunktion g o. Diese konvertiert den Zustand σ t zum Ausgabezeichen k t und gibt so den eigentlichen Schlüsselstrom aus: g o : S Σ σ t k t, t 0 Die letzte wichtige Komponente ist der Schlüssel K (der nicht zu verwechseln ist mit dem Schlüsselstrom bzw. der Schlüsselfolge). Der Schlüssel beeinflusst im Allgemeinen die Zustandsüberführungsfunktion sowie den Anfangszustand. Darüber hinaus kann er auch auf die Ausgabefunktion einwirken. Da Stromchiffren zu den symmetrischen Kryptosystemen zählen, verwenden Sender und Empfänger den gleichen geheimen Schlüssel. Auf Empfängerseite wird der Schlüsselstrom folglich von einem Generator erzeugt, der auf dieselbe Zustandsüberführungsfunktion und die gleiche Initialisierung aufbaut wie der des Senders. Somit wird auf Sender- und Empfängerseite auch derselbe Schlüsselstrom generiert. Auf diese Weise kann die verschlüsselte Nachricht dechiffriert werden. Der Schlüsselstromgenerator ist insofern von zentraler Bedeutung, als dass die Sicherheit einer Stromchiffre vollständig darauf beruht ein sicheres Schlüsselaustauschverfahren vorausgesetzt. Entscheidend ist insbesondere die Komplexität der Zustandsüberführungsfunktion sowie die Mächtigkeit der Zustandsmenge (vgl. [23, S. 106]). Falls der Schlüsselstrom eine echte Zufallsfolge darstellt, ist die resultierende Stromchiffre sogar perfekt sicher (siehe Abschnitt 2.2). 2

Eine besonders weit verbreitete Klasse von sequentiellen Chiffren bilden die binären additiven Stromchiffren (siehe dazu Abbildung 1). Sie sind dadurch gekennzeichnet, dass es sich bei den Zeichen von Klar- und Chiffretext sowie Schlüsselstrom um Bits handelt, d.h. es gilt Σ = F 2. Die Bezeichnung additiv gründet sich darauf, dass die Verschlüsselungsfunktion einer Addition in F 2 entspricht. Diese Operation kann man als exklusives Oder (XOR) der Bitfolgen realisieren, es gilt also c t = f(m t, k t ) = m t k t, t 0. Entsprechend wird ein Zeichen der Chiffretextfolge entschlüsselt durch die Operation m t = f 1 (c t, k t ) = c t k t, t 0. Abbildung 1: Binäre additive Stromchiffe 2.1 Synchronisierung Betrachtet man die Parameter, welche in die Zustandsüberführungsfunktion g s eingehen, so ergibt sich eine grundlegende Klassifikation von Stromchiffren. Bei einer synchronen Stromchiffre (siehe Abbildung 2) hängt der aktuelle Zustand ausschließlich vom jeweils vorausgehenden Zustand ab; weder der vorangegangene Chiffretext noch der Klartext hat einen Einfluss. Unmittelbar ergibt sich daraus der Vorteil, dass der Schlüsselstrom vorberechnet werden kann. Die Zustandsüberführungsfunktion hat die Gestalt g s : S S σ t σ t+1, t 0. Der Anfangszustand σ 0 wird vorgegeben, beispielsweise durch den Schlüssel K. 3

Abbildung 2: Synchrone Stromchiffre Der Bezeichnung gemäß müssen bei dieser Art der sequentiellen Chiffrierung Sender und Empfänger perfekt synchronisiert sein, da sonst die Entschlüsselung fehlschlägt. Falls während der Übermittlung auch nur ein Zeichen des Chiffretextes verloren geht oder eines hinzukommt (z.b. durch Übertragungsfehler), so wird eine Resynchronisation erforderlich. Diese wird durch markierte Positionen im übermittelten Chiffretext realisiert, d.h. es wird die nächste Positionsmarke im Text angesteuert, was den Verlust eines Teiles der Nachricht zur Folge haben kann (siehe [38, S. 4]). Dieser Nachteil synchroner Stromchiffren hat aber zugleich einen positiven Effekt: Ein Angreifer kann den Klartext nicht verfälschen, indem er zusätzliche Zeichen in den Chiffretext einspeist oder welche vernichtet. Ein solcher Vorgang würde zu einem Verlust der Synchronisation führen; Sender und Empfänger müssten sich somit resynchronisieren und letzterer würde den gefälschten Text übergehen. Gleichzeitig würde eine überdurchschnittlich häufige Resynchronisation auf den wiederholten Versuch eines solchen Angriffs hindeuten. Ein Angreifer kann also lediglich einzelne Zeichen des Chiffretextes verändern, wobei dann auch nur diese falsch entschlüsselt werden. Ein weiterer Vorteil synchroner Stromchiffren liegt demnach darin, dass sich Fehler nicht fortpflanzen. Ein Angreifer, der selektiv Chiffretextzeichen verfälscht, simuliert also lediglich schlechtere technische Bedingungen für den Übertragungskanal. Um eine fehlerfreie Datenübertragung zu gewährleisten, werden im Zusammenhang mit Stromchiffren häufig fehlerkorrigierende Codes eingesetzt. Daher ist es unkritisch, wenn nur wenige Zeichen des Chiffretextes geändert werden. Sind es jedoch zu viele, so kann man davon ausgehen, dass das Fehlerkontrollsystem die Manipulation entdeckt (vgl. [41, S. 16]). 4

Bei einer asynchronen Stromchiffre (siehe Abbildung 3) wird der innere Zustand zum Zeitpunkt t jeweils vollständig durch eine feste Anzahl n vorangegangener Chiffretextzeichen bestimmt: g s : Σ n S (c t n, c t n+1,..., c t 1 ) σ t, t 0 Dabei sind die Werte c n, c n+1,..., c 1 im Allgemeinen öffentlich bekannt (vgl. [37, S. 194]). Werden bei solch einer Stromchiffre Zeichen des Chiffretextes wegge- Abbildung 3: Asynchrone Stromchiffre lassen oder welche hinzugefügt, so wird dieser dennoch korrekt entschlüsselt, ohne dass besondere Synchronisationsprotokolle erforderlich sind. Der Grund hierfür liegt darin, dass der Schlüsselstrom über die Zustandsüberführungsfunktion an eine endliche Anzahl vorangegangener Chiffretextzeichen gekoppelt ist. Sobald n Zeichen des Chiffretextes übertragen worden sind, synchronisiert sich der Schlüsselstromgenerator ohne äußere Einwirkung. Asynchrone Stromchiffren werden deshalb auch als selbstsynchronisierend bezeichnet. Dieses Konstruktionsprinzip hat jedoch auch Nachteile: Bei einem Fehler im Chiffretext werden bis zu n nachfolgende Zeichen des Klartextes falsch entschlüsselt. Rueppel spricht asynchronen Stromchiffren im Vergleich zur synchronen Variante generell ein niedrigeres Sicherheitsniveau zu (vgl. [41, S. 17]) und führt zur Begründung zwei wichtige Kriterien an: Ein Angreifer hat bei einer asynchronen Stromchiffre den Vorteil, dass er mit dem Chiffretext gleichzeitig einen Teil der Parameter kennt, welche den Schlüsselstrom bestimmen. Dies fällt umso stärker ins Gewicht, 5

wenn man bedenkt, dass die Sicherheit einer Stromchiffre sich wie bereits erwähnt nur auf den Schlüsselstrom selbst gründet. Darüber hinaus sind asynchrone Chiffren aufgrund der indirekten Abhängigkeit des Schlüsselstroms vom Klartext nur unzureichend analysierbar. Im Weiteren beschränken wir uns auf synchrone Stromchiffren. Darüber hinaus soll von nun an das Modell der binären additiven Stromchiffre Grundlage der Betrachtungen sein. 2.2 Vernams One Time Pad Vernam hat 1917 mit dem One Time Pad eine Verschlüsselungsmethode entwickelt, die unangreifbar ist, solange der Angreifer nur über Chiffretext verfügt. Shannon bewies 1949 die perfekte Sicherheit des Verfahrens. Dabei wird ein Kryptosystem als perfekt sicher bezeichnet, wenn es folgende Bedingungen erfüllt: Klar- und Geheimtext müssen stochastisch unabhängig sein, d.h. es muss unmöglich sein, aus dem Chiffretext Informationen über die verschlüsselte Nachricht zu gewinnen. Weiterhin muss die Schlüsselmenge mindestens so groß sein wie die Anzahl der möglichen Klartexte. Für die vollkommene Sicherheit des Verfahrens ist es zwingend erforderlich, dass der Schlüsselstromgenerator eine echte Zufallsfolge erzeugt, die somit keinerlei Regelmäßigkeit aufweist. Dann ist jeder mögliche Schlüsselstrom gleich wahrscheinlich, und es fehlt die Grundlage für einen Angriff. Echte Zufallsfolgen zu generieren ist jedoch relativ aufwendig. Entsprechende Verfahren werden beispielsweise von Schneier behandelt (siehe [45, S. 482 ff.]). Wie der Name schon sagt, darf jedes One Time Pad nur einmal zum Verschlüsseln verwendet werden. Dieser Punkt ist sehr wichtig, da ein Angreifer sonst folgendermaßen vorgehen kann: Angenommen, er kennt die Geheimtexte c 1 = m 1 k und c 2 = m 2 k, die durch Chiffrieren der Nachrichten m 1 bzw. m 2 mit demselben Schlüsselstrom k entstanden sind. Der Angreifer braucht nur noch die Chiffretexte zu addieren und erhält wegen c 1 c 2 = m 1 k m 2 k = m 1 m 2 die Summe der Klartexte. Daraus anschließend zwei sinnvolle Nachrichten zu ermitteln ist im Allgemeinen einfach man kann beispielsweise die statistischen Eigenschaften einer Sprache ausnutzen. Trotz des Vorzugs der perfekten Sicherheit ist die praktische Bedeutung des One Time Pads eher gering. Da der Schlüsselstrom einer echten Zufallsfolge entsprechen muss, kann er nicht auf Sender- und Empfängerseite parallel erzeugt werden. Vielmehr muss der Schlüsselstrom vor Beginn der Verschlüsselung auf sicherem Wege zwischen Sender und Empfänger ausgetauscht werden. Im Hinblick darauf, dass der Schlüsselstrom unter Umständen sehr umfangreich sein kann, führt das zu einem enormen Aufwand, der nur in Fällen höchster Sicherheitsansprüche angemessen ist. Zur Steigerung der Effizienz wird man daher im Allgemeinen einen Schlüsselstromgenerator verwenden, der statt einer echten Zufallsfolge eine deterministische Sequenz generiert. 6

2.3 Pseudozufallsfolgen Da Schlüsselströme auf der Basis von echten Zufallsfolgen für die meisten Anwendungen ungeeignet sind, greift man stattdessen auf Pseudozufallsfolgen zurück. Das sind Folgen, die nach einem bestimmten Algorithmus gewonnen werden und Werte einer echten Zufallsfolge simulieren. Dieser Abschnitt soll klären, wann man eine Folge als (echt) zufällig bezeichnen kann und welche Maßstäbe man dabei anlegen sollte. Als zufällig gilt ein Ereignis, dessen Resultat im Rahmen verschiedener Möglichkeiten ungewiss ist. Darüber hinaus sind die Ereignisse bei echter Zufälligkeit gleichverteilt und stochastisch unabhängig. Bei einer binären Zufallsfolge heißt das, dass die Bits 0 und 1 jeweils mit der Wahrscheinlichkeit 1/2 auftreten und dass ein Bit nicht von den vorhergehenden abhängt. Erfüllt eine Folge verschiedene statistische Forderungen, so ist sie deswegen aber noch nicht für Verschlüsselungszwecke geeignet: Bei einer endlichen Bitfolge mit k Gliedern wäre jede mögliche Abfolge von Nullen und Einsen gleich wahrscheinlich, so auch die Sequenz, welche aus einer Eins und k 1 Nullen besteht. Eine solche Folge wäre jedoch als Schlüsselstrom völlig unbrauchbar. Statistische Zufälligkeit ist demnach zwar notwendig, aber keineswegs hinreichend für Zufälligkeit aus kryptographischer Sicht. Nach Schneier (vgl. [45, S. 53 ff.]) sind folgende drei Kriterien maßgeblich dafür, dass ein Schlüsselstromgenerator Zufallszahlen erzeugt: 1. Die produzierte Sequenz besitzt die statistischen Eigenschaften einer Zufallsfolge, d.h. sie besteht sämtliche zugänglichen statistischen Tests auf Zufälligkeit. 2. Selbst bei Kenntnis des zu Grunde liegenden Algorithmus und aller bisherigen Folgenglieder kann man die nächste Zahl nicht mit einer höheren Wahrscheinlichkeit vorhersagen, als wenn man raten würde. 3. Der Generator ist nicht deterministisch, d.h. bei gleichen Anfangszuständen ergeben sich völlig unterschiedliche Zufallsfolgen. Besitzt eine Folge die erste Eigenschaft, so spricht man von einer Pseudozufallsfolge. Eine kryptographisch sichere Pseudozufallsfolge muss darüber hinaus das zweite Merkmal aufweisen. Eine echte Zufallsfolge erfüllt alle drei Kriterien. Es ist im Übrigen klar, dass eine Pseudozufallsfolge der dritten Forderung nicht genügen kann: Bei einem deterministischen Verfahren führen gleiche Initialisierungen notwendigerweise auch zu gleichen Folgen; diese Tatsache wird schließlich auch bei der Entschlüsselung ausgenutzt. Da ein Pseudozufallszahlengenerator echte Zufallszahlen lediglich simuliert, kann man den entsprechend erzeugten Schlüsselstrom einer Stromchiffre von einer echten Zufallsfolge unterscheiden. Dabei ist eine Stromchiffre umso sicherer, je mehr Schlüsselstrom erforderlich ist, um diese Differenz feststellen zu können. Es ist das Ziel einer Klasse von akademischen Angriffen auf Stromchiffren, Unterschiede zwischen dem Schlüsselstrom und einer echten Zufallsfolge ausfindig zu machen. Wir kommen in Abschnitt 5.4 sowie Kapitel 6 auf dieses Thema zurück. Man kann einen Pseudozufallszahlengenerator als endlichen Automat auffassen, d.h. er kann nur endlich viele verschiedene Zustände annehmen. Irgendwann tritt 7

also ein Zustand auf, den es bereits gegeben hat. Da die Zustandsüberführungsfunktion nur vom aktuellen Zustand abhängt, folgt daraus, dass die entstehende Pseudozufallsfolge periodisch ist. Dieser Sachverhalt soll jetzt formal beschrieben werden. Wir gehen davon aus, dass der Generator n verschiedene Zustände annehmen kann, d.h. S = n. Sei σ k mit k n der Zustand, bei dem erstmalig eine Wiederholung auftritt. Somit gilt σ k = σ j mit j < k. Die Zustände σ 0,..., σ j 1 treten dann nur einmal auf, während sich die Zustände σ j,..., σ k 1 wiederholen sie bilden einen Zyklus. Die Zykluslänge k j gibt die Periode an; die Vorperiode hat die Länge j. Im Fall j = 0 besitzt die Folge keine Vorperiode und wird als periodisch bezeichnet; Folgen mit Vorperiode heißen schließlich periodisch. Diese Begriffe werden später noch von Bedeutung sein. Als grundlegend bei der Bewertung der Zufälligkeit einer Folge gelten die drei Pseudozufallskriterien nach Golomb (vgl. [27, S. 24 ff.]). Zuvor müssen allerdings noch einige Begriffe erläutert werden. Als Run bezeichnet man einen maximalen Abschnitt aufeinander folgender identischer Folgenglieder. Bei einer Zufallsfolge treten erwartungsgemäß kurze Runs häufiger auf als lange: Ungefähr die Hälfte aller Runs sollte die Länge 1 aufweisen, ein Viertel die Länge 2, ein Achtel die Länge 3 usw. Außerdem gibt es im Idealfall ebenso viele Runs mit Nullen wie mit Einsen. Sei (s t ) t 0 eine Folge mit Periode n und (s t+d ) t 0 die Folge, welche sich aus dieser durch Verschieben um d Glieder ergibt. Bezeichne A d die Anzahl der übereinstimmenden Glieder zwischen (s t ) t 0 und (s t+d ) t 0 und analog D d die Anzahl der unterschiedlichen Glieder. Dann ist die Autokorrelationsfunktion C(d) folgendermaßen definiert: C(d) := A d D d n Für d = 0 sowie d = n gilt A d = n und D d = 0, somit ist in diesen Fällen C(d) = 1. Für Werte von d, die zwischen 0 und n liegen, können als Paare (s t, s t+d ) die Werte (0, 0), (0, 1), (1, 0) oder (1, 1) vorkommen. Bei einer zufälligen Folge werden diese Ausprägungen idealerweise jeweils mit einer Wahrscheinlichkeit 1/4 angenommen, d.h. die Autokorrelationsfunktion verläuft konstant. Golombs Kriterien für eine periodische Pseudozufallsfolge lauten wie folgt: (G1) Die Anzahl der Einsen in einem Zyklus der Folge unterscheidet sich von der Anzahl der Nullen um höchstens eins. (G2) In einem Zyklus haben 1/2 i aller Runs die Länge i, sofern der Zyklus mindestens zwei solcher Runs aufweist. Es gibt für jede Länge i ebensoviele Runs mit Nullen wie mit Einsen. (G3) Die Autokorrelationsfunktion C(d) ist zweiwertig, d.h. konstant für 0 < d < n. Robshaw führt zwei anschauliche Bedeutungen von (G3) auf (vgl. [38, S. 7]): Die Kenntnis bisheriger Folgenglieder darf nicht von Nutzen sein, wenn man das nächste Zeichen vorhersagen will. Gleichzeitig ist die Autokorrelationsfunktion ein Maß dafür, inwieweit man in der Lage ist, eine Folge von ihrer um d Glieder verschobenen Kopie zu unterscheiden. Betrachten wir nun als Beispiel die Folge, welche sich aus periodischer Wiederholung des Zyklus 001011110100011 8

ergibt. Sie besteht aus 7 Nullen und 8 Einsen, (G1) ist somit erfüllt. Der Zyklus enthält insgesamt 8 Runs. Davon haben 4 Runs (also 1/2 1 ) die Länge 1, 2 Runs (d.h. 1/2 2 ) die Länge 2. Da es nur jeweils einen Run der Länge 3 und 4 gibt, werden diese außer Acht gelassen. (G2) ist also ebenfalls erfüllt. Um die Gültigkeit von (G3) zu überprüfen, betrachtet man die um d = 1, 2,..., 14 Glieder verschobene Folge. Für d = 1 ergibt sich der Zyklus 010111101000110. Verknüpft man diesen durch XOR mit dem ursprünglichen Zyklus, so lässt sich der Wert von A 1 an der Anzahl der sich ergebenden Nullen ablesen: 001011110100011 010111101000110 011100011100101 Somit ist A 1 = 7 und D 1 = 15 7 = 8, woraus C(1) = 1/15 folgt. Man kann sich analog davon überzeugen, dass sich dieser Wert ebenfalls für d = 2,..., 14 ergibt. Die Folge genügt demnach auch (G3). Eine Sequenz, die (G1) bis (G3) erfüllt, wurde von Golomb PN-Folge (engl. pseudo noise sequence) genannt. Der Bezeichnung nach simuliert solch eine Folge Rauschen, was in der Elektrotechnik der Standardbegriff für ein zufälliges Signal ist. Obwohl die Kriterien recht strikt erscheinen, werden wir im nächsten Kapitel sehen, dass es sehr viele PN-Folgen gibt. 9

3 Linear rückgekoppelte Schieberegister Linear rückgekoppelte Schieberegister (engl.: linear feedback shift registers, LFSR) sind der Grundbaustein der meisten Schlüsselstromgeneratoren bei Stromchiffren. Hierfür gibt es mehrere Gründe: LFSR sind algebraisch sehr gut analysierbar. Wie sich zeigen wird, können sie Pseudozufallsfolgen mit großer Periode und guten statistischen Eigenschaften erzeugen. Darüber hinaus sind Schieberegister besonders effizient auf Hardware Ebene realisierbar. Ein linear rückgekoppeltes Schieberegister der Länge L (siehe Abbildung 4) besteht aus einer seriellen Schaltung von L Speicherzellen 0,..., L 1, die jeweils ein Bit speichern sowie ausgeben können. Den Datenfluss kontrolliert ein Taktgeber. Bei jedem Takt werden drei Schritte durchgeführt: 1. Der Inhalt der Speicherzelle 0 wird ausgegeben. 2. Der Inhalt der i-ten Speicherzelle wird in die (i 1)-te Zelle geschoben (i = 1, 2,..., L 1). 3. Die Zelle an der Position L 1 speichert das Rückkopplungsbit, welches sich aus der XOR Verknüpfung des Inhalts einer festen Untermenge aller Speicherzellen ergibt. Die Beschreibung rückgekoppelter Schieberegister lässt sich formalisieren, indem man den endlichen Körper F 2 zu Grunde legt. Damit kann man Schritt 3 präziser formulieren. Statt von einer bestimmten Untermenge der Speicherzellen 0,..., L 1 zu sprechen, macht man folgenden Ansatz: Der Inhalt jeder Zelle i wird mit einem Rückkopplungskoeffizienten c L i F 2, i = 0, 1,..., L 1, multipliziert. 1 Die entstehenden Produkte addieren sich anschließend durch XOR zum Rückkopplungsbit (siehe Abbildung 4). Dieses entspricht demnach der Summe des Inhalts derjenigen Zellen i, für die c L i = 1 gilt. Geht man davon aus, dass das Schieberegister mit Abbildung 4: Linear rückgekoppeltes Schieberegister 1 An dieser Stelle sei darauf hingewiesen, dass die Zellen und die Rückkopplungskoeffizienten in der Literatur unterschiedlich nummeriert werden. Darüber hinaus gibt es auch verschiedene Ansätze und Formulierungen für wichtige nachfolgende Beziehungen wie z.b. das Rückkopplungspolynom eines Schieberegisters. Die hier verwendete Bezeichnungsweise findet sich in ähnlicher Form in den Werken von Rueppel wieder (siehe [41] und [42]). 10

den Zelleninhalten s 0, s 1,..., s L 1 F 2 initialisiert ist, so ergibt sich für das erste Rückkopplungsbit L s L = c 1 s L 1 + c 2 s L 2 +... + c L s 0 = c i s L i und entsprechend für jedes weitere die Rekursionsrelation L s t = c 1 s t 1 + c 2 s t 2 +... + c L s t L = c i s t i, t L, (1) bzw. mit c 0 := 1 deren Variante L c i s t+l i = 0, t 0. (2) i=0 Für den Rest dieses Kapitels gehen wir davon aus, dass unser Schlüsselstromgenerator genau ein solches Schieberegister umfasst. Die in Kapitel 2 eingeführten Begriffe für die Bestandteile eines Generators finden sich dann wie folgt in obiger Beschreibung wieder: Der innere Zustand des Generators entspricht dem aktuellen Inhalt des Schieberegisters, d.h. für die Zustandsmenge gilt S = F L 2. Demnach bezeichnet σ 0 = (s 0, s 1,..., s L 1 ) den Initialisierungszustand des Schieberegisters. Der Zustand nach t Takten lässt sich dann rekursiv bestimmen durch i=1 i=1 σ t = (s t, s t+1,..., s t+l 1 ) =: s t. Die Zustandsüberführungsfunktion beinhaltet das Weiterschalten der Bits sowie die Berechnung des Rückkopplungsbits (vgl. Schritt 2 und 3). Bei linear rückgekoppelten Schieberegistern ist die Zustandsüberführungsfunktion eine lineare Abbildung. Die zugehörige (L, L)-Matrix C, auch als Begleitmatrix bezeichnet, hat folgende Form: C =. 0 0... 0 0 c L 1 0... 0 0 c L 1 0 1... 0 0 c L 1...... 0 0... 1 0 c 2 0 0... 0 1 c 1 Damit kann die Zustandsüberführungsfunktion angegeben werden als g s : F2 L F2 L s t s t C, was sich leicht überprüfen lässt, wenn man die ausführliche Form von s t+1 = s t C betrachtet: 0 0... 0 c L 1 0... 0 c L 1 (s t+1, s t+2,..., s t+l 1, s t+l ) = (s t, s t+1, s t+2..., s t+l 1 ) 0 1... 0 c L 1....... 0 0... 1 c 1 11

Für die Ausgabefunktion g o gilt laut Schritt 1 Damit ergibt sich k t = g o ( s t ) = s t, t 0. (k t ) t 0 = (s t ) t 0, d.h. die vom Schieberegister ausgegebenen Bits bilden den Schlüsselstrom. Der geheime Schlüssel K beinhaltet im Allgemeinen die Rückkopplungskoeffizienten sowie die Initialisierung des Schieberegisters. Üblicherweise fasst man aber lediglich den Initialisierungszustand als Schlüssel auf und hält die Rückkopplungskoeffizienten nicht geheim, d.h. es gilt K = (s 0, s 1,..., s L 1 ) = s 0. Für ein Schieberegister der Länge L gilt S = 2 L, es kann also 2 L verschiedene Zustände besitzen. Der Zustand s t = 0 würde jedoch immer wieder auf sich selbst abgebildet werden, weshalb er nicht auftreten darf. Eine von einem LFSR generierte Pseudozufallsfolge kann somit maximal die Periode 2 L 1 besitzen. Die Folge besitzt genau dann eine Vorperiode, wenn ein Zustand existiert, für den es mehr als einen möglichen Vorgänger gibt. Dies ist äquivalent dazu, dass die Zustandsüberführungsfunktion nicht injektiv ist (vgl. [23, S. 121]). Das ist genau dann der Fall, wenn die Begleitmatrix nicht invertierbar ist, wenn also det (C) = 0 gilt. Durch Entwickeln nach der ersten Zeile ergibt sich det(c) = c L, d.h. eine Vorperiode ist vorhanden, wenn c L = 0 gilt. Umgekehrt erhält man eine periodische Schlüsselfolge immer dann, wenn c L = 1 gesetzt ist. Ein solches LFSR bezeichnet man als nichtsingulär. Die Rückkopplungskoeffizienten eines Schieberegisters der Länge L werden häufig in Form des Rückkopplungspolynoms C(X) F 2 [X] angegeben: C(X) = 1 + c 1 X + c 2 X 2 +... + c L X L Das zu Grunde liegende Schieberegister ist demnach genau dann nichtsingulär, wenn gilt: deg C(X) = L Um die Theorie rückgekoppelter Schieberegister weiter vertiefen zu können, wird die entstehende Folge mit einer formalen Potenzreihe in Verbindung gebracht. Formal deshalb, weil die bei Potenzreihen sonst so wichtige Frage nach der Konvergenz hier keine Rolle spielt. Bezeichne im Folgenden p stets eine Primzahl. Die Menge aller formalen Potenzreihen über dem Körper F p bildet zusammen mit Addition und Multiplikation den Ring der formalen Potenzreihen über F p, der mit F p [[X]] bezeichnet wird. Dabei gilt F p F p [X] F p [[X]]. Die Reihe S(X) = s i X i F 2 [[X]] i=0 heißt erzeugende Funktion der Folge (s i ) i 0, s i F 2. Ist die Folge periodisch mit Periode r, so gilt ( i 0) s i = s r+i. 12

Schreibt man das Rückkopplungspolynom formal als unendliche Reihe C(X) = c i X i F 2 [[X]] mit c 0 = 1, ( i > L) c i = 0, i=0 so folgt für das Produkt des Rückkopplungspolynoms und der erzeugenden Funktion ( ) ( ) C(X) S(X) = c i X i s i X i =: P (X) = i=0 i=0 p i X i F 2 [[X]] (3) i=1 mit noch zu bestimmenden Koeffizienten p i. Definition 3.1. Die Summe zweier Potenzreihen a(x), b(x) F p [[X]] mit a(x) = i=0 a ix i und b(x) = i=0 b ix i ist definiert als a(x) + b(x) = Für das Produkt von a(x) und b(x) gilt (a i + b i )X i. i=0 a(x) b(x) = c i X i mit c i = i=0 i a j b i j. j=0 Somit ergeben sich die Koeffizienten in Gleichung (3) zu p i = i i c j s i j = s i + c j s i j. j=0 j=1 Mithilfe der Rekursionsrelation (1) ergibt sich p i = L i c j s i j + c j s i j. j=1 j=1 Für p i mit i L gilt damit bei Rechnung in F 2 [X] wegen c i = 0 für i > L p i = L L i i c j s i j + c j s i j + c j s i j = c j s i j = 0. j=1 j=1 j=l+1 j=l+1 Damit gilt für ein nichtsinguläres LFSR deg P (X) < L = deg C(X), und man kann die erzeugende Funktion folgendermaßen darstellen: S(X) = P (X), deg P (X) < deg C(X) (4) C(X) 13

3.1 Charakteristisches Polynom und Periode In diesem Abschnitt soll der Zusammenhang zwischen der Periode einer linearen Schieberegisterfolge und der Teilbarkeit des zugehörigen charakteristischen Polynoms (siehe Definition 3.3) untersucht werden. Definition 3.2. Sei f(x) = a m X m + a m 1 X m 1 +... + a 1 X + a 0 F p [X] ein Polynom mit a m 0. Dann ist das zu f reziproke Polynom F (X) F p [X] definiert als F (X) = X m f(x 1 ) = a 0 X m + a 1 X m 1 +... + a m 1 X + a m. Definition 3.3. Das charakteristische Polynom c(x) F 2 [X] einer linearen Schieberegisterfolge ist definiert als das zum entsprechenden Rückkopplungspolynom C(X) reziproke Polynom, d.h. für c L 0 gilt nach Definition 3.2 c(x) = X L C(X 1 ) = X L ( 1 + c 1 X 1 + c 2 X 2 +... + c L X L) = X L + c 1 X L 1 + c 2 X L 2 +... + c L = L c i X L i mit c 0 := 1. i=0 Das LFSR, welches eine gegebene Folge s = (s t ) t 0 erzeugt, muss nicht eindeutig bestimmt sein. Entsprechend kann die Folge mehrere Rekursionsrelationen erfüllen und damit auch verschiedene charakteristische Polynome besitzen. Daher betrachtet man stets das kürzeste LFSR, welches dieses Folge generiert, und entsprechend definiert man das Minimalpolynom m s (X) F 2 [X] als das charakteristische Polynom kleinsten Grades. Beispielsweise erfüllt die Folge (110 110 110...) die Rekursionsrelation s t+3 = s t und besitzt damit das charakteristische Polynom c(x) = X 3 + 1. Gleichzeitig gilt aber auch s t + s t+1 = s t+2, was auf das charakteristische Polynom c(x) = X 2 + X + 1 führt. Dieses ist gleichzeitig das Minimalpolynom der Folge. Satz 3.1. Hat die Folge (s i ) i 0 eines nichtsingulären linearen Schieberegisters die Periode r 0, so lässt sich die erzeugende Funktion darstellen als S(X) = r 1 j=0 14 s j X j 1 X r.

Beweis. Sei r die Periode der Folge (s i ) i 0. Die erzeugende Funktion S(X) kann dann durch ihren Zyklus dargestellt und somit auf eine endliche Summe reduziert werden. Dazu betrachte man folgende Differenz: S(X) X r S(X) = s i X i s i X r+i i=0 i=0 Durch Indextransformation auf der rechten Seite ergibt sich S(X) (1 X r ) = = s i X i s k r X k = s j X j i=0 r 1 s j X j + k=r j=0 j=r j=0 (s j s j r ) X j. s j r X j j=r Unter der Annahme, dass die Folge die Periode r besitzt, gilt s j = s j r für alle j r. Damit entfällt die zweite Summe. Es folgt S(X) (1 X r ) = r 1 j=0 s j X j und nach Division durch (1 X r ) 0 die Behauptung. Definition 3.4. Ein Polynom f(x) F p [X] mit deg f(x) > 0 heißt irreduzibel, wenn für jede Darstellung f(x) = g(x) h(x) mit g(x), h(x) F p [X] entweder deg g(x) = 0 oder deg h(x) = 0 gilt. Lemma 3.1. Bezeichne F (X) das zum Polynom f(x) F p [X] reziproke Polynom und G(X), H(X) analog die zu g(x), h(x) F p [X] reziproken Polynome. Dann gilt f(x) = g(x)h(x) F (X) = G(X)H(X). Beweis. Sei deg f(x) = m, deg g(x) = l und damit deg h(x) = m l. Dann gilt F (X) = X m f(x 1 ) = X l+m l g(x 1 )h(x 1 ) = X l g(x 1 )X m l h(x 1 ) = G(X)H(X). Lemma 3.2. Ist ein Polynom f(x) = m i=0 c i X i F p [X] mit c m 0 irreduzibel, so gilt für das reziproke Polynom F (X) deg F (X) = deg f(x) = m. 15

Beweis. Es gilt c 0 0, denn sonst wäre f(x) = m i=1 c ix i = X m i=1 c ix i 1 nicht irreduzibel im Widerspruch zur Voraussetzung. Weiterhin ist F (X) = X m f(x 1 ) = X m m i=0 c i X i = m c i X m i = c 0 X m + c 1 X m 1 +... + c m. i=0 Damit gilt wie behauptet deg F (X) = m. Definition 3.5. Sei f(x) F p [X] mit f(x) 0 ein Polynom mit f(0) 0. Der Exponent von f(x) ist die kleinste natürliche Zahl e mit f(x) (X e 1). Satz 3.2. Sei c(x) das charakteristische Polynom eines linearen Schieberegisters mit Registerlänge L. Sei weiterhin c(x) irreduzibel und e der Exponent von c(x). Dann hat jede von diesem Schieberegister erzeugte Folge (s t ) t 0 mit Ausnahme der Nullfolge die Periode e. Beweis. Nach Lemma 3.2 folgt aus der Irreduzibilität von c(x), dass deg C(X) = L gilt und das Schieberegister somit nichtsingulär ist. Sei also r die Periode der Schieberegisterfolge und S(X) deren erzeugende Funktion. Nach Satz 3.1 sowie Gleichung (4) gilt dann S(X) = P (X) C(X) = r 1 j=0 s j X j 1 X r mit deg P (X) < deg C(X). Daraus ergibt sich P (X) (1 X r ) = C(X) r 1 j=0 s j X j, d.h. es gilt C(X) P (X) (1 X r ). Nach Lemma 3.1 ist mit c(x) zugleich C(X) irreduzibel, denn für C(X) = G(X)H(X) gilt nach Definition deg G(X) = m oder deg H(X) = m. Somit folgt C(X) P (X) C(X) (1 X r ). Wegen deg P (X) < deg C(X) kann aber nur C(X) (1 X r ) der Fall sein. Weil X r 1 reziprok ist zu 1 X r, folgt mit Lemma 3.1 c(x) (X r 1). Da die Periode als kleinstmögliche Länge eines Zyklus definiert ist, folgt r = e. Also ist e die Periode der Schieberegisterfolge, was zu beweisen war. 16

Definition 3.6. Ein irreduzibles Polynom f(x) F p [X] vom Grad m heißt primitiv, falls X ein Erzeuger ist von F p mit F m p m = F p [X] / (f(x)). Satz 3.3. Das normierte irreduzible Polynom f(x) F p [X] ist primitiv genau dann, wenn f(0) 0 gilt und e = p m 1 der Exponent von f ist. Beweis. Siehe [34, 3.16, S. 89]. Speziell gilt also, dass das irreduzible Polynom c(x) vom Grad L genau dann primitiv ist, wenn e = 2 L 1 der Exponent von c(x) ist. Die Periode eines LFSR ist somit genau dann maximal, wenn das charakteristische Polynom primitiv ist. 2 Schieberegisterfolgen mit maximaler Periode bezeichnet man auch als m-folgen. Sie zeichnen sich insbesondere dadurch aus, dass innerhalb einer Periode jeder mögliche Zustand mit Ausnahme des Nullzustands genau einmal auftritt. Betrachtet man den Spezialfall F 2 [X], so ist wegen X r 1 1 X r der Ausdruck C(X) (1 X r ) gleichbedeutend mit C(X) (X r 1). Demnach ist die Voraussetzung eines primitiven charakteristischen Polynoms hierbei äquivalent zur Forderung nach einem primitiven Rückkopplungspolynom, die sich häufig in der Literatur findet. Nun wird gezeigt, dass eine maximale Schieberegisterfolge die Pseudozufallskriterien nach Golomb (siehe Abschnitt 2.3) erfüllt. Es sei daran erinnert, dass man als Run einen maximalen Abschnitt konsekutiver identischer Folgenglieder bezeichnet. Lemma 3.3. Der Zyklus einer m-folge weist 2 L 1 Runs auf. Beweis. Im Folgenden werden Runs aus Einsen als Blöcke und solche aus Nullen als Lücken bezeichnet. Während eine Lücke der Länge L nicht vorkommen kann, gibt es genau einen Block dieser Länge. Da jeder Zustand genau einmal auftritt, ist (0, 1, 1,..., 1) der Vorgänger dieses Zustands und (1, 1,..., 1, 0) sein Nachfolger. Damit kann kein Block der Länge L 1 auftreten, denn sonst gäbe es innerhalb der Folge eine Sequenz der Länge L + 1 von der Form (0, 1,..., 1, 0) }{{} L 1 im Widerspruch zur vorherigen Feststellung. Es gibt jedoch eine Lücke dieser Länge, sie tritt innerhalb des Zustands (1, 0, 0,..., 0) auf. Der Folgezustand ist dann (0, 0,..., 0, 1), somit gibt es keine weitere Lücke der Länge L 1. Um einen Block der Länge k zu erzeugen, muss das LFSR einen Zustand der Form (0, 1, 1,..., 1, 0, s }{{} t+k+2, s t+k+3,..., s t+l 1 ) }{{} k L k 2 2 Die Anzahl der primitiven Polynome vom Grad L über F 2[X] ist ϕ(2 L 1)/L und wächst sehr schnell mit L (vgl. [23, S. 130 f.]). Beispielsweise ergibt sich für L = 31 bereits eine Anzahl von 211016256. 17

annehmen. Dafür gibt es 2 L k 2 Möglichkeiten. Analog existieren 2 L k 2 Zustände, die eine Lücke der Länge k aufweisen. Insgesamt gibt es demnach innerhalb eines Zyklus einen Block der Länge L, eine Lücke der Länge L 1 sowie je 2 L k 2 Blöcke und Lücken der Länge k für k = 1, 2,..., L 2. Die Gesamtzahl der Runs beträgt also 1 + 1 + 2 (2 L 1 2 + 2 L 2 2 +... + 2 L (L 3) 2 + 2 L (L 2) 2) = 2 + 2 (2 L 3 + 2 L 4 +... + 2 1 + 2 0) = 2 + 2 (2 L 2 1 ) = 2 L 1, was zu beweisen war. Satz 3.4. Jede m-folge ist eine PN-Folge. Beweis (vgl. [23, S. 132 f.]). Bei einer m-folge, die von einem LFSR der Länge L erzeugt wird, werden alle möglichen Zustände mit Ausnahme des Nullzustands genau einmal angenommen. Der Zustand s t = (s t, s t+1,..., s t+l 1 ) tritt demnach für s t = 1 genau ( 2 L 1) -mal auf, für s t = 0 dagegen nur ( 2 L 1 1 ) -mal. Da das Schieberegister nach jedem Takt den Inhalt der Registerzelle 0 ausgibt (in diesem Fall also s t ), enthält jeder Zyklus 2 L 1 Einsen und 2 L 1 1 Nullen. Damit ist (G1) erfüllt. Nach Lemma 3.3 besitzt jeder Zyklus insgesamt 2 L 1 Runs. Da es nur jeweils einen Run der Länge L bzw. L 1 gibt, ist (G2) nur auf Runs der Länge k L 2 anwendbar. Der Beweis zu Lemma 3.3 hat gezeigt, dass für k = 1, 2,..., L 2 innerhalb eines Zyklus jeweils 2 L k 2 Blöcke und Lücken der Länge k auftreten. Insgesamt gibt es also 2 L k 1 = 1/2 k 2 L 1 Runs der Länge k mit k = 1, 2,..., L 2. Das zeigt die Gültigkeit von (G2). Erfüllen zwei Folgen (s t ) t 0, (z t ) t 0 eine lineare Rekursionsrelation, so gilt dies auch für deren Summe: s t = L c i s t i, z t = i=1 L c i z t i (s + z) t = i=1 L c i (s + z) t i i=1 Für m-folgen gilt zusätzlich, dass die periodische Abfolge der Zustände unabhängig ist von der Initialisierung des Schieberegisters. Um die Anzahl der gleichen bzw. unterschiedlichen Bits einer um d Glieder verschobenen Schieberegisterfolge zu erhalten, betrachtet man die Summe der Folgen (s t ) t 0 und (s t+d ) t 0 über F 2. Die resultierende Folge kann gemäß obiger Feststellung ebenfalls vom besagten LFSR 18

erzeugt werden und besitzt damit je Zyklus 2 L 1 Einsen und 2 L 1 1 Nullen. Damit ist die Autokorrelationsfunktion konstant für 0 < d < L, d.h. (G3) ist erfüllt. Obwohl von LFSR erzeugte Pseudozufallsfolgen große Perioden und gute statistische Eigenschaften aufweisen, sind sie dennoch nicht geeignet, um direkt als Schlüsselstrom eingesetzt zu werden. Bei einem LFSR der Länge L könnte ein Angreifer bereits aus 2L aufeinander folgenden Schlüsselstrombits die Rückkopplungskoeffizienten berechnen: Angenommen er kennt die Schlüsselstrombits s k, s k+1,..., s k+2l 1. Wegen Relation (1) gelten folgende Rekursionsbeziehungen: c 1 s k+l 1 + c 2 s k+l 2 +... + c L s k = L s k+l i c i = s k+l c 1 s k+l + c 2 s k+l 1 +... + c L s k+1 = L s k+l+1 i c i = s k+l+1..... c 1 s k+2l 2 + c 2 s k+2l 3 +... + c L s k+l 1 = L s k+2l 1 i c i = s k+2l 1 Mittels dieses Systems aus L Gleichungen können die L Unbekannten c 1, c 2,..., c L rekonstruiert werden. Es besitzt mindestens eine Lösung und lässt sich mit den gängigen Methoden wie z.b. dem Algorithmus von Gauß lösen. In Kapitel 4 werden wir sehen, welche Möglichkeiten es gibt, um LFSR Folgen dennoch als Grundlage von Schlüsselstromgeneratoren einzusetzen. 3.2 Minimalpolynom und Spur Nun wollen wir für die Glieder einer LFSR-Folge (s t ) t 0 eine alternative Darstellung gewinnen, die es ermöglicht, s t direkt zu berechnen, ohne auf die Rekursionsrelation (1) zurückzugreifen. Dazu betrachten wir zunächst die Menge R F 2 der Wurzeln des Minimalpolynoms m(x) = L i=0 c ix L i F 2 [X]. Ist m(x) irreduzibel vom Grad L, so gilt bekanntlich Für ein α R ist gleichzeitig F 2 L = F 2 (α) = F 2[X] (m(x)). F 2[X] (m(x)) und damit insbesondere α F 2 L, d.h. es gilt R F 2 L. Wir betrachten nun die Folge s = (s t ) t 0 mit s t = Aα t für ein α R und ein beliebiges A F 2 L. s erfüllt die Rekursionsrelation (2), denn es gilt i=1 i=1 i=1 L c i s t+l i = i=0 L c i Aα t+l i = Aα t i=0 19 L i=0 c i α L i = Aα t m(α) = 0.

Die Folgenglieder s t liegen im Allgemeinen nicht in F 2, man kann sie jedoch mittels der Spur auf Werte s t im Grundkörper zurückführen. Da die Spurfunktion linear ist bezüglich des Grundkörpers F 2, erfüllt somit auch tr(s ) die Rekursionsrelation (2). Für α F 2 L gilt (siehe [42, S. 27]). Folglich ist L 1 tr(α) = α + α 2 + α 4 +... + α 2L 1 = α 2i F 2 L 1 L 1 s t = tr(s t ) = (Aα t ) 2i = A 2i (α 2i ) t. (5) i=0 Um diese Darstellung weiter umformen zu können, überlegen wir uns Folgendes: Wegen α L = L i=1 c iα L i und da in F 2 für alle k N ( i X i) 2k = i X2k i gilt, erhalten wir ( L ) 2 j L (α L ) 2j = c i α L i = c 2j i α (L i)2j. i=1 Diesen Zusammenhang verwenden wir nun, um das Minimalpolynom für α 2j auszuwerten: L m(α 2j ) = c i (α 2j ) L i i=0 c 0 =1 = (α 2j ) L + = = 0 L i=1 i=0 i=1 i=0 L c i α (L i)2j i=1 c 2j i α (L i)2j + L c i α (L i)2j Damit entspricht die Menge der Wurzeln von m(x) gerade { } R = α 2j : j = 0,..., L 1. (6) Die Elemente dieser Menge sind paarweise verschieden. Um das zeigen zu können, benötigen wir an dieser Stelle zwei Hilfssätze: Lemma 3.4. Sei f(x) F p [X] irreduzibel und f(α) = 0. Dann gilt für g(x) F p [X] i=1 g(α) = 0 f(x) g(x). Beweis. Sei a der Leitkoeffizient von f. Setze m(x) = a 1 f(x). Dann ist m normiert, irreduzibel und hat α als Nullstelle, d.h. m ist das Minimalpolynom von α über F p. Für g(x) F p [X] gilt folglich g(α) = 0 m(x) g(x) f(x) g(x). 20

Lemma 3.5. Sei f(x) F p [X] irreduzibel und deg f(x) = L. Dann gilt f(x) (X pn X) L n. Beweis. Angenommen, es gelte f(x) (X pn X). Sei α eine Wurzel von f in einem Zerfällungskörper von f über F p. Dann gilt f(α) (α pn α) und damit α pn = α, d.h. α F p n. Folglich ist F p (α) ein Unterkörper von F p n. Wegen [F p (α) : F p ] = L und [F p n : F p ] = n folgt L n. Gelte umgekehrt L n. Dann ist F p L ein Unterkörper von F p n. Sei α eine Wurzel von f in einem Zerfällungskörper von f über F p. Dann ist [F p (α) : F p ] = L und damit F p (α) = F p L. Es gilt also α F p n, d.h. α ist eine Wurzel von X pn X. Mit Lemma 3.4 folgt daraus f(x) (X pn X). Wir kehren nun zurück zu der Behauptung, dass das Minimalpolynom m der Folge (s t ) t 0 nur einfache Wurzeln besitzt. Dazu nehmen wir an, es wäre α 2j = α 2k mit 0 j < k L 1. Erheben wir diese Gleichung zur 2 L k -ten Potenz, so ergibt sich und damit α 2j 2L k 2k 2L k = α α 2L k+j = α 2L = α, denn es gilt α F 2 L. Damit wäre α eine Nullstelle des Polynoms g(x) = X 2L k+j X. Mit Lemma 3.4 folgt daraus m(x) g(x), und mit Lemma 3.5 bekommen wir L (L k + j). Nach Voraussetzung ist jedoch L k + j < L, wir erhalten folglich einen Widerspruch. Die Wurzeln von m lassen sich auch mit Hilfe der Galoistheorie bestimmen. Dieser Weg ist wesentlich kürzer und soll daher an dieser Stelle zusätzlich aufgezeigt werden. Die Grundlagen der Galoistheorie werden an dieser Stelle nicht weiter erläutert, siehe dazu beispielsweise [39, Teil 2]. Die Galoisgruppe G von F 2 L über F 2 ist die zyklische Gruppe, welche vom relativen Frobenius Homomorphismus σ 2 : F 2 L F 2 L X X 2 erzeugt wird, d.h. es gilt G = σ 2 = { } id, σ 2, σ2, 2..., σ2 L 1. Wegen m(σ 2 (α)) = = L L L c i (σ 2 (α)) L i = c i σ 2 (α L i ) = σ 2 (c i )σ 2 (α L i ) i=0 i=0 i=0 L ( L ) σ 2 (c i α L i ) = σ 2 c i α L i = σ 2 (0) = 0 i=0 i=0 ergeben sich die Wurzeln von m(x) durch Anwenden aller σ j 2 auf α, d.h. es gilt R = { σ2(α) j : j = 0,..., L 1 } { } = α 2j : j = 0,..., L 1. 21

Alle Elemente dieser Menge sind paarweise verschieden, da jeder Automorphismus von F 2 L über F 2 vollständig bestimmt ist durch seinen Wert bezüglich α: Wäre σ i 2(α) = σ j 2(α) für i j, so hätten wir (σ i 2 σ j 2)(α) = 0 und damit σ i 2 = σ j 2 oder α = 0. Letzteres kann jedoch nicht erfüllt sein, da sonst m(x) = X m(x) wäre und damit m(x) nicht irreduzibel, im Widerspruch zur Voraussetzung. Als Ergebnis unserer Überlegungen stellt sich also heraus, dass sich die Glieder einer LFSR-Folge wegen (5) sowie (6) direkt berechnen lassen mittels s t = α R A α α t (7) für entsprechende Koeffizienten A α F 2 L. Dies gilt unabhängig von der Irreduzibilität des Minimalpolynoms, welche lediglich von Bedeutung ist für die Aussage, dass die α R paarweise verschieden sind. Für R = {α 1,..., α L } können die Koeffizienten A i bestimmt werden mittels des linearen Gleichungssystems L αia t i = s t, t = 0, 1,..., L 1. i=1 Die Matrix dieses Systems ist eine Vandermonde Matrix. Sie ist regulär, falls die α R paarweise verschieden sind. Folglich sind die A α in diesem Fall eindeutig bestimmt durch die L Anfangswerte der Folge (s t ) t 0. 3.3 Lineare Komplexität In Abschnitt 2.3 haben wir verschiedene Kriterien für die Zufälligkeit einer Folge betrachtet. Es wurde erwähnt, dass sich in diesem Zusammenhang auch die Frage nach der Reproduzierbarkeit der betrachteten Folge stellt. Dieses Zufälligkeitsmaß kann nicht allgemein bestimmt werden: Das Problem, ein minimales Programm zur Berechnung einer beliebigen Funktion anzugeben, ist algorithmisch nicht lösbar (vgl. [23, S. 137]). Legt man dabei jedoch statt eines universellen einen linearen Automat zugrunde, so ergibt sich als Zufälligkeitsmaß für eine Folge deren lineare Komplexität. Definition 3.7. Bezeichne s (k) = (s 0, s 1,..., s k 1 ) die ersten k Glieder der Folge (s t ) t 0 F 2. Dann ist die lineare Komplexität des Abschnitts s (k) definiert als { } L L(s (k) ) := min L ( c 1, c 2,..., c L ) ( j {L + 1, L + 2,..., k}) s t = c i s t i. L(s (k) ) ist demnach die Länge der kürzesten linearen Rekursionsrelation, die den Folgenabschnitt s (k) erzeugen kann. Da eine solche Rekursionsbeziehung durch ein lineares Schieberegister realisiert werden kann, lässt sich die lineare Komplexität auch als Länge des kürzesten LFSR auffassen, das den genannten Folgenabschnitt erzeugt. Wenn kein LFSR existiert, das diesen Abschnitt erzeugen kann, so gilt L(s (k) ) =. Allerdings hat jede von einem endlichen Automaten über einem endlichen Körper generierte Folge auch eine endliche lineare Komplexität (vgl. [45, S. 436]). 22 i=1

Je höher die lineare Komplexität einer Folge ist, desto mehr Folgenglieder müssen betrachtet werden, um die Rekursion identifizieren zu können. Für die kryptographische Sicherheit einer Pseudozufallsfolge ist eine hohe lineare Komplexität demnach notwendig. Sie ist jedoch keineswegs hinreichend: Dazu betrachte man den Folgenabschnitt s (n) = (0, 0,..., 0, 1), der aus n 1 Nullen und einer Eins besteht. Es gilt L(s (n) ) = n, da jedes LFSR kleinerer Länge beim Erzeugen von n 1 konsekutiven Nullen notwendigerweise in den Nullzustand geraten würde und damit die folgende Eins nicht mehr ausgeben könnte. Trotz der hohen linearen Komplexität ist s (n) aber sicherlich nicht als Schlüsselfolge geeignet. Betrachtet man jeweils die Folge s (k) (1 k n) der ersten k Bits des Abschnitts s (n), so gilt L(s (k) ) = 0 für k < n und L(s (k) ) = n für k = n. Die lineare Komplexität aller Anfangsstücke s (k) mit k < n verläuft also konstant bei Null und springt erst für k = n auf den maximalen Endwert. Diese extreme Differenz gibt wieder, dass die zu Grunde liegende Folge nicht als zufällig bezeichnet werden kann. Gleichzeitig zeigt sich dadurch, dass der Verlauf der linearen Komplexität aller Anfangsabschnitte einer Folge hinsichtlich deren Zufälligkeit aussagekräftiger sein kann als die lineare Komplexität der Gesamtfolge. Definition 3.8. Sei s (n) eine endliche (Binär-)Folge und bezeichne L k := L(s (k) ), 1 k n, die lineare Komplexität des Folgenabschnitts s (k). Die Folge L 1, L 2,..., L n wird als das lineare Komplexitätsprofil von s (n) bezeichnet. Das lineare Komplexitätsprofil einer Folge s (n) lässt sich graphisch darstellen, indem man die Punkte (k, L(s (k) )) in einem Diagramm aufträgt. Bei echten Zufallsfolgen verläuft die so entstehende Treppenfunktion nahe der Geraden y = x/2 (siehe [41, S. 35]). Dennoch muss eine Folge, deren lineares Komplexitätsprofil dem einer echten Zufallsfolge sehr nahe kommt, nicht automatisch gute Zufälligkeitseigenschaften aufweisen. Das veranschaulicht folgendes Beispiel: Die Folge (1101000100000001000000000000000100...) entsteht nach der Bildungsvorschrift { 1, t = 2 ( t 0) s t = j 1 für ein j 0. 0, sonst Man kann zeigen, dass das lineare Komplexitätsprofil dieser Folge die Gerade y = x/2 optimal approximiert, d.h. dass L(s (k) ) = (k + 1)/2 für alle k > 0 gilt (vgl. [16], nach [23, S. 166]). Offensichtlich ist die Folge dennoch einfach vorherzusagen und bietet damit keinerlei kryptographische Sicherheit. Das lineare Komplexitätsprofil einer Folge kann mit dem Berlekamp Massey Algorithmus effizient berechnet werden. Bei Eingabe einer Folge s (n) berechnet der Algorithmus in der k-ten Iteration L(s (k) ), 1 k n. Mit einer leichten Modifikation kann dieser Algorithmus auch dazu verwendet werden, um zu einem gegebenen Folgenabschnitt s (n) ein LFSR zu finden, welches diesen erzeugt: Unter der Annahme, dass die Folge die lineare Komplexität L n besitzt, ermittelt der Algorithmus nach Eingabe mindestens 2L n konsekutiver Folgenglieder die Rückkopplungskoeffizienten sowie den Initialzustand eines entsprechenden LFSR der Länge L n. Details zum Berlekamp Massey Algorithmus finden sich in [37, S. 200 ff.] und [23, S. 141 ff.]. 23