Datensicherheitstechnik - Arbeitsgruppe Kryptographie und Sicherheit

Transcription

Datensicherheitstechnik - Arbeitsgruppe Kryptographie und Sicherheit
Datensicherheitstechnik
(Signale, Codes und Chiffren II)
Vorlesungsskript
Dr. W. Geiselmann
Version vom 1.4.2009
Institut für Algorithmen und Kognitive Systeme
Universität Karlsruhe
Vorabversion1
Copyright IAKS
Nachdruck, auch auszugsweise, verboten.
1
Korrektur- und Ergänzungsvorschläge werden mit Interesse entgegengenommen
Inhaltsverzeichnis
1 Grundbegriffe der Kryptographie
1.1 Aufgaben der Kryptographie . . . . . . . . . .
1.2 Begriffe aus der Kryptologie . . . . . . . . . .
1.3 Konventionelle und Public-key Kryptosysteme
1.4 Steganographie . . . . . . . . . . . . . . . . .
1.5 Analytische Angriffe gegen Kryptosysteme . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
3
5
7
8
2 Geschichte der Kryptographie
2.1 Substitutionen und Permutationen . . . . . . . . . . . . . . . . .
2.1.1 Beispiel für eine Permutationschiffre . . . . . . . . . . . .
2.1.2 Beispiel für eine Substitutionschiffre: Die Caesar-Chiffre . .
2.1.3 Beispiel für eine Substitutionschiffre: Die Vigenère-Chiffre
2.2 Rotorchiffren . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Die Hagelin-Maschine C-34 . . . . . . . . . . . . . . . . . .
2.2.2 Hagelin-Kryptoanalyse . . . . . . . . . . . . . . . . . . . .
2.2.3 Hebern Electric Code . . . . . . . . . . . . . . . . . . . . .
2.2.4 Hebern-Kryptoanalyse . . . . . . . . . . . . . . . . . . . .
2.2.5 Enigma-Variationen . . . . . . . . . . . . . . . . . . . . . .
2.2.6 Enigma-Kryptoanalyse . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
10
11
11
12
16
16
19
19
21
22
23
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Theoretische Beschreibung von Sicherheit
27
3.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 Kryptosysteme mit perfekter Sicherheit . . . . . . . . . . . . . . . . . . . . 30
4 Stromchiffren
4.1 Pseudozufallsfolgen . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1 Definition der Pseudozufälligkeit: Die Golombschen Axiome
4.2 Linear rückgekoppelte Schieberegister . . . . . . . . . . . . . . . . .
4.2.1 Pseudozufallsgeneratoren allgemeiner Art . . . . . . . . . . .
4.2.2 Beschreibung von linear rückgekoppelten Schieberegistern . .
4.2.3 Endliche Körper und Schieberegister . . . . . . . . . . . . .
4.2.4 m-Folgen als Pseudozufallsfolgen . . . . . . . . . . . . . . .
4.2.5 Kryptographische Stärke von Schieberegisterfolgen . . . . . .
i
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
32
34
35
37
37
39
47
53
55
ii
INHALTSVERZEICHNIS
4.3
4.2.6 Lineare Komplexität von Folgen . . . . . . . . . . . .
Konstruktion von Folgengeneratoren . . . . . . . . . . . . .
4.3.1 Nichtlineare Verknüpfung von Schieberegisterfolgen .
4.3.2 Taktgesteuerte Schieberegister . . . . . . . . . . . . .
4.3.3 Korrelations-Immunität von Verknüpfungsfunktionen
4.3.4 Korrelationsattacke auf taktgesteuerte Schieberegister
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5 Blockchiffren
5.1 Grundsätzliches zu Blockchiffren . . . . . . . . . . . . . . . . . . . . . . .
5.1.1 Diskussion von Strom- und Blockchiffren . . . . . . . . . . . . . .
5.1.2 Bausteine von Blockchiffren . . . . . . . . . . . . . . . . . . . . .
5.1.3 Betriebsarten von Blockchiffren . . . . . . . . . . . . . . . . . . .
5.2 Der Data Encryption Standard (DES) . . . . . . . . . . . . . . . . . . .
5.2.1 Der DES-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . .
5.2.2 Sicherheit des DES . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 FEAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1 Geschichte von FEAL . . . . . . . . . . . . . . . . . . . . . . . .
5.3.2 Funktionsweise des Algorithmus . . . . . . . . . . . . . . . . . . .
5.3.3 Kryptoanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Differentielle Kryptoanalyse . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.1 Differentiellen Kryptoanalyse von DES . . . . . . . . . . . . . . .
5.4.2 Analyse von Skipjack mit unmöglichen Differenzen . . . . . . . .
5.5 Lineare Kryptoanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5.1 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5.2 Prinzip der linearen Kryptoanalyse . . . . . . . . . . . . . . . . .
5.5.3 Lineare Approximation der S-Boxen . . . . . . . . . . . . . . . . .
5.5.4 Lineare Approximation des DES . . . . . . . . . . . . . . . . . . .
5.6 Der Advanced Encryption Standard (AES) . . . . . . . . . . . . . . . . .
5.6.1 Die Grundbausteine von AES . . . . . . . . . . . . . . . . . . . .
5.7 Hashfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.7.1 Definition und Eigenschaften . . . . . . . . . . . . . . . . . . . . .
5.7.2 Erzeugen von sinnvollen Nachrichten mit diversen sinnlosen Kollisionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
56
58
59
63
65
68
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
73
73
75
76
79
87
87
96
99
99
100
104
105
105
112
116
116
117
119
120
122
123
126
126
. 128
A Übungsaufgaben
130
Literaturverzeichnis
146
Kapitel 1
Grundbegriffe der Kryptographie
Das bisherige (historische) Bild von Sicherheit war durch die Ideen der Vertraulichkeit
(confidentiality) und Geheimhaltung (secrecy) typischer Punkt-zu-Punkt-Beziehungen geprägt.
Das sich daraus ergebende Bild ist typischerweise kommunikationsorieniert und beinhaltet all das, was bisher als COMmunication SECurity zumeist von nationalen Sicherheitsbehörden verwaltet und gehandhabt wurde.
Diese gute alte Zeit“ könnte man auch als Ante-Hacker-Ära charakterisieren, in der
”
Angriffe durch Kryptoanalytiker noch auf dem Papier oder unter Zuhilfenahme von abgesetzten Rechnern stattfanden.
Das Auftreten von Einbrüchen“ in Rechner durch Hacker, das zunächst nur als Ver”
lust der confidentiality und privacy angesehen wurde, stellte sich als eine eigene Problematik heraus, für die bald der Name COMPUter SECurity gefunden war; eine genaue
Beschreibung dieses Bereichs ist jedoch nicht erfolgt.
Die dann bekannt gewordenen Hacks, die nicht nur die Sicherheit der betroffenen
Rechner, sondern auch die der Netze, die diese verbinden, in Mitleidenschaft gezogen
haben, haben auch Bereiche wie LANSEC, MANSEC und WANSEC (Local/Middle/Wide
Area Network SECurity) hochaktuell werden lassen. Der Zugang, der für uns aber Begriffe
Abbildung 1.1: Klassische Sicht der COMSEC
1
2
KAPITEL 1. GRUNDBEGRIFFE DER KRYPTOGRAPHIE
Rechner 1
Rechner 2
COMSEC
Netz
COMPUSEC
L
MANSEC
W
COMPUSEC
SYSSEC
Abbildung 1.2: Zusammenhang der Begriffe
liefert, die das Verständnis unserer Methoden besser erfaßt, ist durch den Begriff SYStem
SECurity umfassender beschrieben. Man muß sich vergegenwärtigen, daß das neue Bild
solch abstrakte (und dennoch reale) Gebilde, wie
• verteilte Systeme
• ISO/OSI-Schichten und -Protokolle
• virtuelle Verbindungen
• u.ä.
mit einbezieht. Der Zusammenhang der einzelnen Begriffe ist in Abb.: 1.2 darstellt.
1.1
Aufgaben der Kryptographie
Das Bedürfnis der Menschen, Nachrichten so darzustellen, daß sie ausschließlich für den
Schreiber und einen bestimmten Leser verständlich sind, ist so alt wie die schriftliche
Kommunikation überhaupt.
Angewendet wurden kryptographische Verfahren, die zuerst noch unter dem Begriff
Geheimschrift“ zur Übermittlung von vertraulichen Informationen benutzt wurden, vor
”
1.2. BEGRIFFE AUS DER KRYPTOLOGIE
3
allem beim Nachrichtenaustausch zwischen Staaten im diplomatischen Bereich. Die nichtstaatlichen Anwendungen umfassen heute ein breites Spektrum und reichen vom kommerziellen Einsatz, wie z.B. im Bankverkehr, bis hin zum Datenschutz, der durch das im
Volkszählungsurteil“ des BVG formulierte Recht auf informationelle Selbstbestimmung
”
[28] als Persönlichkeitsrecht fest verankert wurde.
Durch das populärwissenschaftliche Werk The Codebreakers“ von David Kahn [70]
”
wurde erstmals eine breite Öffentlichkeit auf die Einsatzbereiche und Möglichkeiten der
klassischen Kryptographie aufmerksam gemacht.
Kryptographische Verfahren dienen dem Schutz von Daten oder Nachrichten vor unbefugten Manipulationen. Dadurch wird erreicht, daß die Daten bei der Übertragung vom
Sender zum Empfänger geschützt sind:
1. vor unerlaubtem Zugriff (Abhören)
2. vor absichtlichen Änderungen oder Fälschungen
3. vor Änderungen von Absender oder Empfänger
4. vor dem Ableugnen, eine Nachricht gesendet (oder empfangen) zu haben.
Zugleich können die Daten durch den Einsatz kryptographischer Verfahren wie auch
durch die Methoden der Codierungstheorie vor zufälligen Störungen geschützt werden.
Tatsächlich war die Kryptographie bis vor wenigen Jahren noch als Teil der Codierungstheorie anzusehen. Erst mit der Einführung neuer Verfahren, wie etwa der public-key
Kryptosysteme (siehe 1.3), hat sie sich als selbständige Wissenschaft etabliert.
In diesem Zusammenhang ist die Erläuterung einiger Begriffe sinnvoll, die im nächsten
Abschnitt vorgenommen wird.
1.2
Begriffe aus der Kryptologie
Kryptologie ist die Wissenschaft der sicheren (i.allg. geheimen) Übertragung von Information durch Transformation der Daten. Sie umfaßt Kryptographie und Kryptoanalysis.
Kryptographie ist die Wissenschaft der Prinzipien und Methoden, mit denen Information mit Hilfe von Schlüsseln chiffriert und von berechtigten Empfängern wieder
dechiffriert werden kann.
Kryptoanalyse ist die Wissenschaft von den Methoden der unbefugten Entschlüsselung
von Daten (Nachrichten) zum Zweck der Rückgewinnung der ursprünglichen Information.
Kryptosysteme dienen zur Geheimhaltung von übertragenen oder gespeicherten Informationen gegenüber Dritten. Geheimhaltung wird dabei durch Transformation der
4
KAPITEL 1. GRUNDBEGRIFFE DER KRYPTOGRAPHIE
sichere Kommunikation
durch Geheimhaltung
@
R
@
Kryptologie
Kryptographie
Steganographie
@
R
@
Kryptoanalyse
Abbildung 1.3: Zusammenfassung und Einordnung grundlegender Begriffe
Nachricht erzielt, so daß die transformierte Nachricht für Dritte keine konstruierbaren semantischen, statistischen oder strukturellen Korrelationen zum Original mehr
aufweist. An dieser Stelle sei bereits angemerkt, daß diese Forderung nur sehr schwer
realisierbar ist.
Zum Schluß noch ein Begriff, der im Zusammenhang mit der Kryptographie häufig verwendet wird, aber nicht der obigen Aufzählung zugehört.
Steganographie ist die Lehre von den Methoden der Geheimhaltung von Nachrichten
durch Geheimhalten der Kommunikation. (siehe Kapitel 1.4)
Im folgenden wenden wir uns nochmals dem Begriff Kryptosystem zu und präzisieren,
was darunter zu verstehen ist. Die Definition wird in späteren Kapiteln noch erweitert.
Für den Moment reicht jedoch diese relativ einfache Definition aus.
Definition 1.1 Ein abstraktes Kryptosystem ist ein System S = {M, C, E, K} bestehend aus
• der nichtleeren Menge M ⊂ A+ der Klartexte. A+ stellt hierbei die Menge aller
Texte (außer dem leeren Text) dar, die sich aus den Zeichen des Alphabets A bilden
lassen.
• der nichtleeren Menge C ⊂ B+ der Chiffretexte. B+ ist die Menge der aus Zeichen
von B gebildeten nichtleeren Texte.
• einer nichtleeren Menge E = {Ek : M → C | k ∈ K} von Chiffrieralgorithmen,
die durch die
• Schlüssel k ∈ K parametrisiert sind.
In Abb. 1.4 ist das Prinzip eines abstrakten konventionellen Kryptosystems dargestellt.
Der Sender chiffriert den Klartext m mittels des durch den Schlüssel k parametrisierten Chiffrieralgorithmus Ek zu einem Chiffrat c. (Es können sich beim selben Klartext
1.3. KONVENTIONELLE UND PUBLIC-KEY KRYPTOSYSTEME
5
Angreifer
Chiffrefunktion E
?
Dechiffrierfunktion E−1
?
′
m∈M
c ∈ CcDecryption m-′
unsicherer
- Encryption
′
′
Ek (m) = c
Kommunikationskanal
E−1
k (c ) = m
6
k∈K
sichere Schlüsselübertragung
-
6
k∈K Abbildung 1.4: Prinzip eines konventionellen Kryptosystems
und Schlüssel durchaus verschiedene Chiffrate ergeben.) Das erhaltene Chiffrat wird über
den unsicheren Kommunikationskanal zum beabsichtigten Empfänger gesendet. Bei dem
Kommunikationskanal handelt es sich zumeist um einen Codierungs-/Decodierungskanal
(siehe Signale, Codes u. Chiffren I). Der authorisierte Empfänger dechiffriert den erhaltenen Chiffretext c′ mit dem Algorithmus Ek−1 der zu c′ den Klartext liefert. Dem authorisierten Empfänger ist dazu ebenfalls der Schlüssel k bekannt. Offensichtlich wird der
richtige Klartext m nur dann erhalten, wenn c′ = c ist, d.h. wenn c durch den Angreifer
nicht gestört, also gefälscht, wurde.
Den Kryptoanalytiker, der versucht, die übertragenen Daten unbefugt zu entschlüsseln
oder zu fälschen, bezeichnen wir als den Gegner“ oder den Angreifer“. Bei der Krypto”
”
analyse wird davon ausgegangen, daß der Gegner ungehinderten Zugang zum unsicheren
Übertragungssystem hat, also beliebig viel Chiffretext empfangen kann. Ferner nimmt
man an, daß das Kryptoverfahren bekannt, der verwendete Schlüssel dagegen geheim
ist. Dies bedeutet, daß die Sicherheit des Verfahrens allein auf der Geheimhaltung des
verwendeten Schlüssels beruht. Diese letzte Annahme ist ebenfalls gerechtfertigt, wenn
man bedenkt, daß eine strikte Geheimhaltung des verwendeten Kryptosystems so gut wie
unmöglich ist, da früher oder später stets Details über die Art der Chiffrierung nach außen
dringen. Es sei in diesem Zusammmenhang darauf hingewiesen, daß mit dem Zugriff auf
die verwendeten Kryptogeräte im Prinzip auch die Analyse deren technischen Aufbaus
möglich ist.
Der verwendete Schlüssel wird bei konventionellen Kryptosystemen auf einem sicheren Übertragungskanal, z.B. durch einen Kurier, zwischen den Kommunikationspartnern
ausgetauscht. Eine Möglichkeit diesen Schlüsselaustausch innerhalb des Systems durchzuführen, besteht in der Verwendung von public-key Kryptosystemen.
1.3
Konventionelle und Public-key Kryptosysteme
Verschlüsselung von Daten mittels eines Kryptosystems soll garantieren, daß der Inhalt
einer gesendeten Nachricht nur den Besitzern eines bestimmten Schlüssels zugänglich ist.
Hinsichtlich der erlaubten und möglichen Verteilungen dieser Schlüssel (auf sichere
6
KAPITEL 1. GRUNDBEGRIFFE DER KRYPTOGRAPHIE
Angreifer
Chiffrefunktion E
?
Dechiffrierfunktion E−1
?
′
m∈M
c ∈ CcDecryption m-′
unsicherer
- Encryption
′
′
Ee (m) = c
Kommunikationskanal
E−1
d (c ) = m
6
e ∈ K sichere Schlüsselübertragung entfällt
öffentlich
6
d∈K geheim
Abbildung 1.5: Prinzip eines public-key Systems
bzw. unsichere Stellen) unterscheidet man zwischen konventionellen und public-key Kryptosystemen. Erstere werden oftmals symmetrische Kryptosysteme, letztere asymmetrische Kryptosysteme oder Kryptosysteme mit öffentlichen Schlüsseln genannt.
In einem symmetrischen Kryptosystem (siehe Bild 1.4), zu denen alle klassischen Kryptosysteme gehören (siehe Kapitel 2), wird die Kommunikation zwischen zwei Partnern
dadurch gesichert, daß beide einen gemeinsamen geheimen Schlüssel kennen, der sowohl
zur Chiffrierung als auch zur Dechiffrierung dient.
Damit wird ein Schlüssel nicht einem bestimmten Benutzer, sondern einer bestimmten Kommunikationsbeziehung zugeordnet. Um eine Kommunikationsbeziehung gesichert
beginnen zu können, müssen sich beide Partner zuvor auf einen gemeinsamen Schlüssel
einigen. Da man bei offenen digitalen Systemen (prinzipiell kann jedermann am System
teilnehmen, d.h. jeder hat freien Zugang zu den im System angebotenen Diensten) nicht
davon ausgehen kann, daß die Partner vorher schon in Kontakt miteinander standen, muß
die Schlüsselverteilung innerhalb des Systems selbst erfolgen.
Die Idee der asymmetrischen Kryptosysteme, die in Bild 1.5 illustriert ist, wurde
erst 1976 in [42] veröffentlicht und löst das Schlüsselverteilungsproblem auf überraschend
einfache Weise: Statt einen einzigen Schlüssel zum Ver- und Entschlüsseln zu verwenden, verteilt man diese Funktionen auf zwei zusammengehörige Schlüssel e und d. Der
Schlüssel d soll nur zum Entschlüsseln (decryption) dienen und muß natürlich von dem
Teilnehmer geheimgehalten werden, weshalb er auch privater Schlüssel genannt wird.
Der Schlüssel e hingegen soll nur das Verschlüsseln (encryption), nicht jedoch das Entschlüsseln ermöglichen. Dieser Schlüssel kann veröffentlicht werden, und wird daher auch
öffentlicher Schlüssel genannt. Das Prinzip des public-key Systems ist in Bild 1.5
gezeigt:
Als Konsequenz dieses Prinzips ergibt sich, daß man keine realistische Möglichkeit
haben darf, ein unbekanntes d aus dem bekannten zugehörigen e herzuleiten. Rein theoretisch könnte man d aus e natürlich immer mittels Durchprobieren aller möglichen Schlüssel
bestimmen, denn nur das richtige d entschlüsselt alle mit e verschlüsselten Nachrichten
richtig. Es muß daher soviele Möglichkeiten geben, daß dieses Vorgehen keinerlei praktischen Erfolg verspricht.
Außerdem muß, damit niemand kurze Standardnachrichten erraten und dann mit dem
1.4. STEGANOGRAPHIE
7
öffentlichen Schlüssel testen kann, jede Nachricht mehrere Verschlüsselungen besitzen.
Dies kann man erreichen, indem man z.B. Nachrichten vor der Verschlüsselung mit zufällig
gewählten Zeichenfolgen verlängert.
Einfacher als das Herleiten von d aus e muß hingegen das Generieren eines beliebigen
Paares von zueinander passenden e und d sein, da dies der Schlüsselbesitzer vor der
Teilnahme an der Kommunikation selbst durchführen muß.
Durch ein asymmetrisches Kryptosystem entsteht die Möglichkeit, einen Schlüssel bzw.
ein Schlüsselpaar (e, d) statt einer Kommunikationsbeziehung einem einzelnen Benutzer
zuzuordnen, der sich diesen Schlüssel selbst generieren kann. Möchte jemand mit diesem
Benutzer gesichert kommunizieren, so muß er sich lediglich dessen öffentlichen Chiffrierschlüssel e besorgen. Dies kann entweder durch eine offene Anfrage an den gewünschten
Kommunikationspartner geschehen, oder besser noch durch Verwendung zentraler gegen
Manipulation gesicherter Verzeichnisse, sogenannter Schlüsselbibliotheken, in denen
analog zu den heutigen Telefonbüchern zu jedem Teilnehmer dessen öffentlicher Schlüssel
eingetragen ist. Wir werden uns später diesem Bereich noch ausführlicher widmen.
Im nächsten Abschnitt wollen wir kurz das Gebiet der Steganographie streifen, das
eine gewisse Sonderstellung einnimmt.
1.4
Steganographie
Steganographie heißt übersetzt etwa verborgen geschrieben“. Hier soll ein potentieller
”
Gegner nicht bemerken, daß überhaupt eine Kommunikation stattfindet. Zu erwähnen
sind Geheimtinten, etwa Zitronensaft, der erst bei Erhitzen (durch Karamelisieren des
Zuckers) sichtbar wird. Auch in der heutigen Zeit gibt es (moderne) Verfahren, die hier
einzuordnen wären.
• Spread Spectrum: Die Bandbreite des Kommunikationssignals wird derartig aufge”
spreizt“ und damit die Energie des Signals über einen großen Bereich verteilt. Dann
kann selbst ein Gegner, der mit Abhöreinrichtungen (Antennen, etc.) bestens ausgestattet ist, von dem stattfindenden Nachrichtenaustausch nichts bemerken, da die
Sendeleistung auf den einzelnen (schmalbandigen) Kanälen unter dem Umgebungsrauschen liegt. Aus diesem Grund kann nicht einmal der Sender angepeilt werden.
Diese Technik wird einerseits im militärischen Bereich von Aufklärungseinheiten, die
hinter den feindlichen Linien agieren, eingesetzt und andererseits im zivilen Bereich
etwa von Luftfahrtgesellschaften genutzt, um Informationen über freie Bordplätze
oder benötigte Essen vom Flugzeug zum angeflogenen Flughafen zu übermitteln,
da der reguläre Sprechfunkverkehr für diese Zwecke nicht verwendet werden darf.
Schließlich bieten sich völlig neue Wege zur Realisierung des CSMA/CD-Prinzips
(Carrier Sense Multiple Access / Collision Detection) — der heute wohl meistverbreitetsten LAN-Zugriffsmethode. Während das bestehende Prinzip aufwendige
Mechanismen vorsieht, um Kollisionen von Datenpaketen auf dem gemeinsamen
physikalischen Medium zu erkennen und zu beheben, ließe sich diese Aufgabe mit
8
KAPITEL 1. GRUNDBEGRIFFE DER KRYPTOGRAPHIE
der Spread Spectrum Technik elegant lösen — vorausgesetzt, ein breitbandiges Medium (z.B. Ethernet) steht zur Verfügung.
• Verrauschte Kanäle: In Kanälen mit großer Bandbreite und einem gewissen Grundrauschen ist es möglich Daten im Rauschen zu verstecken. Mögliche Kanäle hierbei sind z.B. Bild- oder Tondaten. In beiden Fällen ist heute eine Verteilung von
großen Volumina an Daten schlechter Qualität (hohes Rauschen) unauffällig über
kommerzielle CDs oder Bilder in den enstprechenden Newsgruppen weltweit unproblematisch und unauffällig möglich. Die dabei zu erzielenden steganographischen
Kanalkapazitäten sind teilweise enorm.
• Verdeckte Kanäle: Der (verbotene) Datenaustausch in modernen Computersystemen mittels verdeckter Kanäle ist seit langem bekannt und stellt immer noch ein
kaum zu lösendes Problem dar. Eines der bekanntesten Verfahren benutzt die 1-BitInformation, ob ein bestimmtes File geöffnet ist oder nicht, um sukzessive Daten von
einem sendenden Prozess mit Zugriff auf vertraulich klassifizierte Daten an einen
empfangenden Prozess zu übermitteln, der im Normalfall keinen Zugriff auf diese
Daten hätte. Durch wiederholtes Öffnen und Schließen eines Files kann der Sender
dem Empfänger so Daten übermitteln, obwohl das Betriebssystem Mechanismen
besitzt, die im Normalfall einen derartigen Informationsfluß unterbinden würden.1
Ein Beispiel, um nochmals den Unterschied zwischen Kryptographie und Steganographie
zu verdeutlichen liefert das tägliche Leben: Durch Flüstern wird verhindert, daß jemand
das Gespräch belauscht — die Tatsache, daß ein Gespräch stattfindet, wird nicht verschleiert. Durch Zeichensprache wie Augenzwinkern oder mimische Gesten läßt sich gänzlich
verschleiern, daß überhaupt Kommunikation stattfindet.
1.5
Analytische Angriffe gegen Kryptosysteme
Ziel eines kryptoanalytischen Angriffs ist das Brechen des verwendeten Kryptosystems.
Das Kryptosystem ist gebrochen, wenn der Angreifer genau wie der authorisierte Empfänger zu jedem beliebigen Chiffretext den ursprünglichen Klartext ermitteln kann. Dies kann
zum einen bedeuten, daß der Angreifer den verwendeten Schlüssel irgendwie berechnen“
”
kann, oder, daß er sonst ein Verfahren gefunden hat, mittels dessen er aus dem Chiffretext
den richtigen Klartext erhalten kann. Selbstverständlich muß es für den Angreifer entsprechend schwer sein, das Kryptosystem zu brechen. Je schwerer es für den Angreifer ist, das
Kryptosystem zu brechen, desto sicherer ist das Kryptosystem. Der Aufwand für die Analyse wird als Kryptokomplexität bezeichnet. Die Sicherheit von Kryptosystemen wird
in Kapitel 3 ausführlich diskutiert.
Die Klassifikation der kryptoanalytischen Angriffe benutzt als klassifizierendes Merkmal die Art der Texte, die dem Angreifer als Grundlage für das Brechen des Systems zur
1
Um dieses Verfahren tatsächlich durchzuführen, wird noch ein weiteres File zur Synchronisation
beider Prozesse benötigt.
1.5. ANALYTISCHE ANGRIFFE GEGEN KRYPTOSYSTEME
9
Verfügung stehen. Die nachfolgende Auflistung der Angriffsarten ist nach der Stärke des
Angriffs geordnet.
ciphertext-only attack: Für die Kryptoanalyse steht dem Angreifer nur der abgefangene Chiffretext zur Verfügung. Dies bedeutet, daß der Angreifer nur Zugriff auf den
unsicheren Kommunikationskanal hat, was, wie in Abschnitt 1.2 bereits erläutert
wurde, stets vorausgesetzt wird. Dies ist also die schwächste aller Angriffsarten.
known-plaintext attack: Bei dieser Attacke stehen dem Angreifer bekannte KlartextChiffretextpaare für die Kryptoanalyse zur Verfügung, so daß dieser versuchen kann,
daraus den verwendeten Schlüssel zu ermitteln. Diese Art von Angriff ist immer dann
möglich, wenn Texte mit Anfangs- oder Endphrasen verschlüsselt werden, z.B. Sehr
”
geehrte Damen und Herren...“, ...mit freundlichem Gruß“, etc.
”
chosen-plaintext attack: In diesem Fall stehen dem Angreifer beliebige Klartext-Chiffretextpaare für die Kryptoanalyse zur Verfügung. Er kann also den Klartext wählen,
der verschlüsselt werden soll. Dies ist gleichbedeutend damit, daß der Angreifer Zugriff auf die Verschlüsselungseinheit hat. Mit Zugriff ist dabei nicht nur der direkte,
sondern auch der indirekte Zugriff gemeint, der dann besteht, wenn es dem Angreifer gelingt, den authorisierten Sender zur Verschlüsselung eines von ihm selbst (dem
Angreifer) gewählten Klartextes zu bewegen.
Für public-key Kryptosysteme und spezielle symmetrische Systeme ist noch eine weitere
Angriffsart von Bedeutung.
chosen-ciphertext attack: Für die Kryptoanalyse steht dem Angreifer beliebig viel
Chiffretext zur Verfügung. Der Angriff gilt dem Schlüssel, der zum Dechiffrieren
verwendet wird.
Es liegt in der Natur der Dinge, daß man für jedes Kryptosystem spezielle Methoden zur
Kryptoanalyse entwickeln muß, wenngleich es Ansätze gibt, die für viele Systeme angepaßt
werden können. Als Methoden der Kryptoanalyse ergeben sich folgende Strategien.
• Vollständiges Suchen:
Man durchsucht den gesamten Schlüsselraum K nach dem passenden Schlüssel.
• Trial-and-Error-Methode:
Man testet gewisse Möglichkeiten und überprüft diese auf Fehlerfreiheit.
• Statistische Methoden:
Hierzu werden Häufigkeitsanalysen wie z.B. die Buchstaben- oder Worthäufigkeiten des Klartextes und des Chiffrats benutzt.
• Strukturanalyse von Kryptosystemen:
Zum Beispiel das Lösen von Gleichungssystemen.
Kapitel 2
Geschichte der Kryptographie
In der klassischen Kryptographie gibt es im wesentlichen zwei Werkzeuge zur Transformation von Klartext in Chiffretext. Diese Werkzeuge sind Codes und Chiffren:
Code: System zur Substitution ganzer Nachrichten oder Teilen von Nachrichten, Wörtern
oder Silben einer Sprache durch Wörter oder Zeichenfolgen einer anderen, häufig
künstlichen, Sprache. Codes arbeiten also auf semantischen Einheiten der zugrundeliegenden Sprache und entsprechen gewissermaßen einem festgelegten Wörterbuch. Wegen der offensichtlichen Nachteile (Transformation gleicher Klartextteile
auf immer die gleichen Chiffretextteile, Umfang des Wörterbuches, Einschränkung
auf vorher vereinbarte Sachverhalte) sind Codes zumeist unpraktikabel und werden
nur noch in Sonderfällen eingesetzt.
Chiffre: Universelles Verfahren, das eine Anzahl von Kryptooperationen benutzt, die
durch Schlüssel gesteuert sind, um einen beliebigen Klartext in einen Chiffretext
umzuwandeln. Bei einem Chiffrierverfahren werden Einheiten fester Länge des Klartextes Einheiten fester Länge des Chiffretextalphabets zugeordnet. Es wird also im
Gegensatz zu einem Code auf syntaktischen Einheiten operiert, so daß nun auch
vorher nicht vereinbarte Sachverhalte verschlüsselt werden können.
2.1
Substitutionen und Permutationen
Die oben erwähnten Kryptooperationen zur Transformation von Klartexten in Chiffretexte werden in zwei Typen unterteilt:
1. Substitutionen und
2. Permutationen
Die Permutationen operieren über syntaktischen Einheiten fester Länge, zumeist Zeichenketten des Klartextalphabets, während Substitutionen Ersetzungen des Klartextes aller
Art sein können.
10
2.1. SUBSTITUTIONEN UND PERMUTATIONEN
11
Anhand von Beispielen läßt sich die Arbeisweise und die Sicherheit der Verfahren am
besten erläutern:
2.1.1
Beispiel für eine Permutationschiffre
Der Chiffretext
B A E T R I A S G N T U B G E K Ü R P R T G Y O P R H E A I
wird ohne Mühe dechiffriert zum Klartext
A R B E I T S T A G U N G Ü B E R K R Y P T O G R A P H I E
Die verwendete Chiffre ist eine Zeichenpermutation der Länge 6, der verwendete
Schlüssel lautet π = ( 12 25 31 43 56 64 ). Der Klartext wird also in Blöcke der Länge 6 aufgeteilt,
von denen jeder gemäß der Permutation π in einen Block des Chiffretextes übergeht.
In komplexeren Fällen kann eine Entschlüsselung über die Bigramhäufigkeiten der
entsprechenden Sprache erfolgen. Eine reine Permutationschiffre kann daher einem Entschlüsselungsangriff kaum lange widerstehen und gilt als unsicher.
2.1.2
Beispiel für eine Substitutionschiffre: Die Caesar-Chiffre
Eine der ältesten Anwendungen von Substitutionschiffren wird Julius Caesar zugeschrieben. Damals wurde ein Alphabet mit 23 Buchstaben verwendet; in der Beschreibung wird
hier aber das übliche Alphabet mit 26 Buchstaben benutzt, so daß sich auch deutsche
Texte verschlüsseln lassen. Bei der sogenanten Caesar-Chiffre wird jedes Zeichen des
Klartextes um den Betrag des Schlüssels k im Alphabet verschoben. Für den Schlüssel k
= 3 (= C) ergibt sich folgende Chiffrierabbildung Ek :

A 7→ D



B
7→ E




C 7→ F



..
.
Ek :

W
→
7
Z




X 7→ A




 Y 7→ B
Z 7→ C
Sei n = |A| die Anzahl der verschiedenen Zeichen des Alphabets A. Dann kann ein
Kryptoanalyst in maximal n Versuchen den Klartext zu einem Chiffretext bestimmen,
d.h. auch diese Chiffre ist nicht sicher.
Eine weitere Möglichkeit die Caesar-Chiffre zu knacken, besteht in der Betrachtung
der Zeichenhäufigkeiten. In der deutschen Sprache ist z. B. das E der häufigste Buchstabe.
Ist im Chiffrat K der häufigste Buchstabe, so wurde mit hoher Wahrscheinlichkeit der
Schlüssel k = 6 verwendet.
12
KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE
Eine kleine Verbesserung ergibt sich, wenn man das Alphabet A auf den Ring Z/n =
/nZ/ abbildet und neben der Addition eines Schlüssels die Multiplikation als zweite
Ringoperation für die Chiffrierabbildung einführt:
Z/
E(λ,α) : I 7→ (λ · I + α) mod n
Dazu ein Beispiel für k = (λ, α) = (3, 1):

A 7→ D



B 7→ G




 C 7→ J
..
Ek :
.



X
→
7
U




 Y 7→ X
Z 7→ A
Für λ = 1 und den Schlüssel k = (1, α) ergibt sich die schon bekannte Caesar-Chiffre.
Leider bringt auch die Einführung des zweiten Schlüsselparameters keine wesentliche
Erhöhung der Kryptokomplexität mit sich, da die oben beschriebene Häufigkeitsanalyse den Kryptoanalysten fast immer zum Ziel führt.
2.1.3
Beispiel für eine Substitutionschiffre: Die Vigenère-Chiffre
Eine Weiterentwicklung der Caesar-Chiffre, die mehr Sicherheit bietet, ist die sogenannte
Vigenère-Chiffre, benannt nach einem Franzosen des sechzehnten Jahrhunderts, Blaise
de Vigenère. Der prinzipielle Unterschied zwischen diesen beiden Chiffren besteht darin,
daß nicht ein konstanter Schlüssel zur Chiffrierung jedes einzelnen Zeichens verwendet
wird, sondern eine — möglichst lange — Schlüsselfolge.
Ist k = (k1 , ..., kl ) eine Schlüsselfolge der Länge l, so ist die Chiffrierabbildung der
Vigenère-Chiffre gegeben durch:
Ek : m1 ...mr 7→ tk1 (m1 )...tkl (ml )tk1 (ml+1 )...tkr mod l (mr )
mit:
m1 ...mr Klartextfolge der Länge r und
tkj (mi ) := mi + kj mod n, wobei die Indices von k als die Repräsentanten
1, . . . , l der Restklassen modulo l zu verstehen sind.
Der Weg über die Analyse der Häufigkeitsverteilung der Zeichen im Chiffretext (Aufstellen
der Histogramme) führt hier nicht zum Ziel, da die Histogramme für große Werte von
l verflachen, d.h. sich einander angleichen. Daher ist eine Vigenère-Chiffre wesentlich
sicherer als eine Caesar-Chiffre; sie wurde sogar bis Mitte des letzten Jahrhunderts für
unbrechbar gehalten.
Als Beispiel, daß auch Vigenère-Chiffren relativ einfach zu brechen sind, diene folgender Klartext, der mit der Schlüsselfolge COVER chiffriert wird:
2.1. SUBSTITUTIONEN UND PERMUTATIONEN
1 l + 1 2l + 1
2 l + 2 2l + 2
..
..
..
.
.
.
l
2l
3l
13
. . . ←− Cäsar
...
..
.
...
Abbildung 2.1: Anordnung des Chiffretextes zum Brechen der Vigenère-Chiffre
TH EMATH EMAT I CA L I NTE L L I GENC E R
COV E RCOV E RCOV ERCOVERCOVERCOV
Chiffretext:
WWARSWWARSWXYFDLCPJDOXCJFFTN
Das sich wiederholende Muster WWARS läßt ohne jegliche Information über den Klartext
auf die – richtige! – Periode 5 schließen.
Die Methode von Kasiski und Friedman zum Brechen der Vigenère-Chiffre
Der Ansatzpunkt für das Brechen der Vigenère-Chiffre ist, wie obiges Beispiel zeigt, die
Periodizität der Schlüsselfolge. Ist die Periode der Schlüsselfolge erst einmal bekannt, so ist
es nicht mehr schwierig, den zum Chiffretext gehörigen Klartext zu ermitteln, da dies nur
noch darauf hinausläuft, Caesar-Chiffren zu brechen. Sei l die Periode der Schlüsselfolge,
dann wird der Chiffretext wie in Abb. 2.1 angeordnet.
Die Zeichen in einer Zeile sind dann aus einer Caesar-Chiffrierung entstanden. Es sind
also l Caesar-Chiffren mittels Häufigkeitsanalyse bzw. Durchprobieren zu brechen.
Es bleibt offen, wie man im allgemeinen Fall aus dem Chiffretext auf die Periode der
verwendeten Schlüsselfolge schließen kann, denn nicht immer hat man das Glück, daß
die Wiederholung von Teilfolgen im Chiffretext daraus resultiert, daß gleiche Teilfolgen
im Klartext mit der gleichen Schlüsselteilfolge verschlüsselt wurden. Sind Teilfolgen im
Chiffretext auf diese Weise entstanden, dann ist ihr Abstand ein Vielfaches der Schlüsselperiode.
Im allgemeinen Fall wendet man die Methode von Kasiski und Friedman an, die
die Berechnung des sogenannten Koinzidenzindex benötigt.
Definition 2.1 Der Koinzidenzindex Ic eines Chiffretextes c gibt die Wahrscheinlichkeit dafür an, daß zwei unabhängig voneinander gewählte Zeichen des Chiffretextes c
gleich sind.
Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegeangen ist, hängt
der Koinzidenzindex Ic nicht vom Schlüssel k, sondern lediglich von den statistischen
14
KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE
Eigenschaften der Klartextquelle ab. Für englische Texte z. B. ist Ic ≈ 0, 065. Diese Unabhängigkeit von Ic bei Caesar-Chiffren wird für die Ermittlung der Periodenlänge, wie
unten beschrieben, ausgenutzt.
Es sei ni die absolute Häufigkeit
des Zeichens ai in dem vorliegenden Chiffretext der
Länge n. Dann gibt es n2i = ni (n2i −1) Möglichkeiten, das Paar ai ai auszuwählen. Der
Koinzidenzindex ergibt sich also zu:
P
X ni
ai ∈A ni (ni − 1) “Anzahl der günstigen Fälle“
2
Ic (n) =
(2.1)
=
n
n(n
−
1)
“Anzahl der möglichen Fälle“
ai ∈A 2
X ni 2
≈
für große n.
(2.2)
n
a ∈A
i
Ordnet man den vorliegenden Chiffretext der Länge n, wie in Bild 2.1 gezeigt, in l
Zeilen an, dann gilt:
1. Es gibt n( nl − 1) Möglichkeiten, Zeichenpaare in derselben Zeile auszuwählen.
2. Es gibt n(n − nl ) Möglichkeiten, Zeichenpaare in verschiedenen Zeilen auszuwählen.
Falls die Anzahl der Zeilen l gleich der Periode der Schlüsselfolge ist, dann kann
die Wahrscheinlichkeit dafür, in derselben Zeile gleiche
auszuwählen, für
P Zeichenpaare
2
genügend großes n durch den Koinzidenzindex Im ≈ ai ∈A pi approximiert werden, da
hier eine Caesar-Chiffrierung vorliegt (dabei bezeichnet pi die Wahrscheinlichkeit dafür,
daß die Klartextquelle das Zeichen ai aussendet). Ansonsten ist diese Wahrscheinlichkeit
gleich der Wahrscheinlichkeit, in verschiedenen Zeilen gleiche Zeichenpaare auszuwählen.
Hier ist von einer Gleichverteilung der Zeichen auszugehen (Schlüssel mit unendlicher
Periode).
Man erhält somit als Approximation für den Koinzidenzindex:
X
1
n 1
n
2
Ic (n) =
·
(2.3)
· n
−1 ·
pi + n n −
n(n − 1)
l
l
|A|
ai ∈A
P 2
Für den Spezialfall englischer Texte gilt mit |A| = 26,
pi ≈ 0, 065 nach etwas Umai ∈A
formung:
Ic (n) =
(l − 1)n 1
n−l
· 0, 065 +
·
l(n − 1)
l(n − 1) 26
(2.4)
Um die Periodenlänge einer Vigenère-Chiffre zu bestimmen, berechnet man zuerst
den Koinzidenzindex gemäß Gleichung (2.1) oder (2.2) und vergleicht diesen mit den
ermittelten theoretischen Werten für verschiedene Werte von l nach (2.4). Man kann zwar
nicht erwarten, daß die Periodenlänge l, für die der theoretisch zu erwartende Wert für Ic
am besten mit dem gemessenen“ Wert übereinstimmt, immer die tatsächlich verwendete
”
Periodenlänge ist, aber der Vergleich des gemessenen“ Koinzidenzindex mit theoretisch
”
2.1. SUBSTITUTIONEN UND PERMUTATIONEN
15
zu erwartendem Koinzidenzindex gibt Aufschluß darüber die verwendete Chiffre; ist es
eine Permutations- oder eine Caesar-Chiffre oder eine Vigenère-Chiffre mit kleinerer oder
größerer Periode.
Im folgenden Abschnitt werden Varianten der Vigenère-Chiffre aufgezählt, die dem
Brechen mittels der Methode von Kasiski und Friedman widerstehen.
Varianten der Vigenère-Chiffre
Allen nachfolgend unter 1. bis 3. aufgeführten Varianten der Vigenère-Chiffre ist als Konsequenz aus der Methode von Kasiski und Friedman gemeinsam, daß sie die periodische
Wiederholung des Schlüssels vermeiden.
1. Variante
Man wählt einen Schlüsselanfang der Länge l und verschlüsselt die ersten l Klartextzeichen mit diesem Schlüsselanfang. Dann wird der Klartext als Schlüssel verwendet.
Das folgende Beispiel verdeutlicht das Prinzip:
Klartext: DATENSCHUTZ
Schlüsselanfang: DAVID
Schlüssel: DAVIDDATENSC
Chiffretext:
DAT E N S CHUTZ...
+D A V I D D A T E N S C H U T Z . . .
GAOMQVCAYGR...
Die Schlüsselfolge wiederholt sich nicht, es sei denn, die Nachricht wiederholt sich.
Kryptosysteme, die nach diesem Prinzip arbeiten, heißen auto-key Systeme.
2. Variante
Eine andere Art der Vigenère-Chiffre ensteht dadurch, daß man einen sich nicht
wiederholenden Text als Schlüssel benutzt. Diese Chiffre, bei der der Schlüssel die
gleiche Länge wie der Klartext hat, heißt Vernam-Chiffre, nach seinem Finder
Gilbert Vernam (1917) benannt.
Vorsicht ist geboten, wenn als Schlüssel der Text einer natürlichen Sprache benutzt
wird, wie z.B. der Text von Shakespeares MacBeth“, wobei aus Gründen der Syn”
chronisation der Titel, die Seite, die Zeile und die Position des ersten Schlüsselbuchstabens angegeben werden müssen. Diese Chiffre kann gebrochen werden, da ein
Großteil der Chiffretextbuchstaben aus einem Klartext- und einem Schlüsselbuchstaben entstehen, die zumindest eine mittlere oder gar große relative Häufigkeit
besitzen. Im Englischen sind dies die Buchstaben: E, T, A, O, N, R, I, S, H. Ein
Kryptoanalyst kann so für jeden Chiffretextbuchstaben hochwahrscheinliche Paare
von Klartext- und Schlüsselbuchstaben angeben, deren Kombination den Chiffretextbuchstaben erzeugt. Als nächstes können auf diese Weise durch Ausprobieren
16
KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE
verschiedener Kombinationen gewisse Teilfolgen des Schlüssels und des Klartextes
bestimmt werden. Die fehlenden bzw. unsicheren Buchstaben lassen sich dann leicht
durch Kontextbetrachtungen gewinnen; hierbei sind die Häufigkeitsverteilungen von
Bigrammen, Trigrammen, etc. sowie die Einzelwortwahrscheinlichkeiten der verwendeten Sprache von Bedeutung.
Bei Kenntnis dieser Methode wird klar, daß man wie in 3. beschrieben vorgehen
muß, um sichere Kryptosysteme zu erhalten.
3. Variante
Ist die Schlüsselfolge einer Vernam-Chiffre eine echte Zufallsfolge und wird der
Schlüssel nur ein einziges Mal benutzt, erhält man einen one-time-pad“. Der
”
one-time-pad ist die einzige Chiffre, die theoretisch sicher ist (siehe Abschnitt 3.1).
Der heiße Draht“ zwischen Moskau und Washington soll auf diesem Verschlüsse”
lungsverfahren basieren.
Ein Idee, die Anfang des 20. Jahrhunders aufkam war es regelmäßig wechselnde Substitutionen zum Verschlüsseln zu verwenden. Dieses Wechseln nach jedem Zeichen läßt sich
von Hand kaum mehr durchführen, deshalb wurden (elektro–)mechanische Maschinen
entwickelt, die diese Substitutionen durchführen. Diese Maschinen werden im nächsten
Abschnitt erläutert.
2.2
Rotorchiffren
Offensichtlich war Angang des Jahrhunderts die Zeit reif für diese Erfindung, denn unabhängig voneinander kamen vier verschiedene Personen fast gleichzeitig auf die Idee, eine
Rotorchiffriermaschine zu bauen. Es waren der Niederländer Hugo Alexander Koch, der
Amerikaner Edward Hugh Hebern, der Schwede Arvid Gerhard Damm und der Deutsche
Arthur Scherbius.
Größere Bedeutung erlangten Rotorchiffren im 2. Weltkrieg, als ihre Entwicklung soweit fortgeschritten war, daß die Geräte einigermaßen handlich und nicht allzu schwer
waren und von Seiten des Militärs ein großer Bedarf an einfach zu bedienenden Verschlüsselungsgeräten bestand, die gleichzeitig ein, für die damalige Zeit, relativ hohes
Maß an Sicherheit boten.
2.2.1
Die Hagelin-Maschine C-34
Die Hagelin C-34 wurde 1934 im Auftrag des Französischen Generalstabes von Boris Hagelin entwickelt. Sie wurde mit einigen Verbesserungen unter der Bezeichnung M-209 ab
1942 von der amerikanischen Armee eingesetzt. Die M-209 ist jedoch sowohl von ihrem
prinzipiellen Aufbau, als auch von ihren Schwächen her der C-34 so ähnlich, daß hier nur
auf die einfachere C-34 (hier Hagelin-Maschine genannt) eingegangen wird. Sie ist eine
2.2. ROTORCHIFFREN
-
17
Rotor 1
Rotor 2
Rotor 3
Rotor 4
Rotor 5
s[0]
s[1]
Schlüsselliste
? ? ? ? ?
s[2]
s[3]
..
.
Index in die Schlüsselliste
s[28]
s[29]
s[30]
s[31]
?
Klartext -
Chiffretext
-
Abbildung 2.2: Struktur der Hagelin-Maschine
Rotormaschine, deren Rotoren binäre Werte zurückgeben die durch zyklisch rückgekoppelte binäre Schieberegister beschrieben werden können. Die C-34 wird hier aufgeführt, da
schon bei ihr einige für Rotormaschinen charakteristische Sicherheitsprobleme auftauchen.
Der algorithmische Aufbau der Hagelin-Maschine läßt sich einfach anhand der Abbildung 2.2 beschreiben.
Die Hagelin-Maschine arbeitet, wie die meisten historischen Rotormaschinen, über Z26 .
Die Rotoren sind zyklisch rückgekoppelte Schieberegister der Längen 17, 19, 20, 21 und 23.
Ihre Ausgaben werden als die Binärdarstellung eines Index in eine Schlüsselliste aufgefaßt.
18
KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE
Da die Größen der Rotoren paarweise teilerfremd sind, ergibt sich eine Periodenlänge von
17 ∗ 19 ∗ 20 ∗ 21 ∗ 23 = 3120180. Von dem so indizierten Wert wird der Klartext subtrahiert
(mod 26). Es wird also eine Pseudozufallsfolge generiert, mit deren Hilfe eine Vigenère
Verschlüsselung durchgeführt wird. Die hier verwendete Subtraktion hat den Vorteil, daß
das System selbstinvers ist. Der Schlüssel wird von der Initialbelegung der Schieberegister
und dem Inhalt der Schlüsselliste gebildet. Der Index in die Schlüsselliste ist 5 Bit lang,
die somit 32 Werte aus Z26 enthält. Die Hagelin-Maschine ist im Original vollständig
mechanisch realisiert. Die Schieberegister und ihr Inhalt sind durch mechanische Rotoren
mit beweglichen Schiebern (für die Initialbelegung) implementiert. Durch einen Käfig mit
Stangen, die durch die Schieber beeinflußt werden, wird das Schlüsselrad (auf dem die
Schlüsselliste aufgetragen ist) in die vorgesehene Stellung bewegt. An einem weiteren Rad
kann der Klartext eingestellt werden. Das Chiffrat wird dann auf einem Papierstreifen
ausgedruckt.
Formal läßt sich die Hagelin-Maschine wie folgt beschreiben:
Die 5 Rotoren haben Längen mk zwischen 17 und 23:
(m1 , m2 , m3 , m4 , m5 ) = (17, 19, 20, 21, 23).
Die Schieber auf den Rotoren sind frei konfigurierbar und lassen sich in Listen zusammenfassen. Jede dieser Listen hat die Länge des zugehörigen Rotors:
ak [jk ] ∈ {0, 1},
jk ∈ {0, 1, 2, . . . , mk − 1},
k ∈ {1, 2, 3, 4, 5}.
Die Anfangsstellung der Rotoren pk [1] ist normiert:
pk [1] = 0,
k ∈ {1, 2, 3, 4, 5}.
Die Rotoren werden mit jedem Verschlüsselungsschritt weitergedreht. Dadurch ergibt sich
die Schrittfunktion, die die Positionen p1 [i] bis p5 [i] der 5 Rotoren zum Zeitpunkt i angibt:
pj [i + 1] = (pj [i] + 1) mod mj ,
j ∈ {1, 2, 3, 4, 5}.
Die Ausgabe der 5 Rotoren zum Zeitpunkt i ist nun:
(Ausgabe von Rotor k zum Zeitpunkt i) = ak [pk [i]] ,
k ∈ {1, 2, 3, 4, 5}.
Der Index in die Schlüsselliste zum Zeitpunkt i ergibt sich damit zu:
(Index in Schlüsselliste zum Zeipunkt i) =
4
X
k=0
2k ∗ ak+1 [pk+1 [i]] .
Bezeichnet man die Schlüsselliste mit s[i] (i ∈ {0, 1, 2, . . . , 31}), so erhält man die generierte Pseudozufallsfolge b[i]:
" 4
#
X
k
b[i] := s
2 ∗ ak+1 [pk+1[i]] .
k=0
Für die Verschlüsselung erhält man:
c[i] := b[i] − a[i].
2.2. ROTORCHIFFREN
2.2.2
19
Hagelin-Kryptoanalyse
Das Hauptproblem der Hagelin-Maschine ist, daß der Maschinenzustand rein zeitabhängig
ist, und daß so dem Angreifer der Maschinenzustand zu jedem Zeitpunkt bekannt ist. Der
Angiff gegen das System wird im folgenden als Angriff mit bekanntem Klartext geschildert.
Die Vorgehensweise läßt sich (bei bekannter Verteilung der Klartextquelle) jedoch einfach
in einen probabilistischen ’ciphertext only’ Angriff umsetzen.
Wenn man über hinreichend viele Klartext - Chiffrat Paare verfügt, so kann man einfach die verwendete Pseudozufallsfolge ermitteln. Man weiß über die einzelnen Bits der
Indizes, daß sie sich mit der Periode 17, 19, 20, 21 und 23 zyklisch wiederholen. Für jedes
der 5 Bit des Index wird die Schlüsselfolge in zwei Teilmengen aufgeteilt, je nachdem,
ob dieses Bit 0 oder 1 ist. Die beiden Teilmengen werden im allgemeinen nicht disjunkt
sein, da die Schlüsselliste 32 Zeichen umfaßt, welche aus den 26 Buchstaben des Alphabets
ausgewählt sind. Sie werden jedoch meistens eine unterschiedliche Wahrscheinlichkeitsverteilung aufweisen. Da man die Periode der einzelnen Schlüsselbits kennt, kann man über
diese Verteilungen die einzelnen Bits der Schieberegister identifizieren (man kann feststellen, welche Bits in einem Register gleich sind, die Zuordnung zu 0 und 1 ist willkürlich).
Wenn man alle Bits der Schieberegister identifiziert hat, so ist die Schlüsselliste offensichtlich, da man mit der Ausgabe der Schiebregister die Indizes in die Schlüsselliste und mit
Klartext und Chiffrat die indizierten Werte besitzt. Wie oben angesprochen, kann man bei
bekannter Verteilung der Klartextquelle auf den bekannten Klartext verzichten. Wie in
[62] bewiesen wird, benötigt man knapp 12000 Zeichen zusammenhängenden Chiffretext
um, die Hagelin-Maschine zu brechen (bei deutschem Klartext).
2.2.3
Hebern Electric Code
Hebern baute bereits 1918 den ersten Prototyp einer Rotorchiffriermaschine. 1921 gründet
er in Oakland die Firma Hebern Electric Code“, die erste Chiffriermaschinenfirma der
”
USA. 1924 erhielt er die US Patent Nr. 1 510 441 auf seine elektrische Chiffriermaschine“.
”
Im Glauben an kommende Regierungsaufträge engagierte er sich sehr für seine Erfindung.
Da er jedoch lediglich einzelne Testexemplare verkaufen konnte, ging die Firma schließlich
im Juni 1926 in Konkurs.
Es ist die Ironie der Geschichte, daß im 2. Weltkrieg dasselbe Prinzip von den amerikanischen Streitkräften im großem Stil benutzt wurde. Mit diesem Wissen verklagte Hebern
die Streitkräfte 1947 auf eine Entschädigung in Höhe von 50 Millionen Dollar. Vier Jahre nach seinem Tod, im Jahre 1958, wurde seinen Erben 30.000 Dollar Schadensersatz
zuerkannt.
Wenden wir uns nun der Funktionsweise von Rotorchiffren zu. Das Folgende gilt nicht
allein für Heberns Rotormaschine, sondern auch für eine Reihe ähnlicher Konstruktionen.
Eine Rotorchiffre benutzt i.A. einen oder mehrere Rotoren (auch Walzen genannt). Ein
Rotor besteht hier aus einem flachen Zylinder mit Kontakten auf beiden Seiten. Die
Kontakte sind im Innern des Zylinders von der einen zur anderen Seite durch Drähte
miteinander verbunden. Diese Verdrahtung ist fest und stellt eine Permutation π über den
20
KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE
Buchstaben des zugrundeliegenden Alphabets Zm dar. Dies bedeutet, daß bei Stromzufuhr
an einem Kontakt auf der einen Seite ein anderer Kontakt auf der anderen Seite ebenfalls
Strom führt.
Wird der Rotor gedreht, so bleibt die Permutation im Rotor zwar die gleiche, jedoch
muß die vorangegangene Drehung berücksichtigt werden. Die Wirkungsweise einer Drehung des Rotors um k Stellen entspricht am Eingang zunächst einer Caesarchiffre Ck ,
am Ausgang dagegen der dazu inversen Caesarchiffre C−k . Die resultierende Permutation
(abhängig von k und π) ist damit
Tk,π = C−k πCk .
Dabei bietet sich die Kopplung der Rotordrehung mit der Anzahl i der verschlüsselten
Zeichen an. Beispielsweise läßt sich damit folgende Rotorfortschaltungsfunktionen r(i)
realisieren:
r(i) = k + i mod m.
k ist hierbei die Anfangsverschiebung vor Beginn der Verschlüsselung und m die Mächtigkeit des Alphabets. Die Verschlüsselungsfunktion für das i-te Zeichen xi lautet also
Tk,π (xi ) = π(r(i) + xi ) − r(i) = yi .
Um die Komplexität möglicher Angriffe und damit die kryptographische Sicherheit
des Verfahrens zu erhöhen, schaltet man n Rotoren hintereinander. Die Fortschaltungsfunktion1 des s-ten Rotors (0 ≤ s < n) ist dann
rs (i) = ks + ⌊ i/ms ⌋ mod m.
Die resultierende Permutation einer Rotorchiffre bei n hintereinander geschalteten
Rotoren ist damit
Tk0 ...kn−1 ,π0...πn−1 (i) = C−rn−1 (i) πn−1 Crn−1 (i)−rn−2 (i) πn−2 . . . Cr1 (i)−r0 (i) π0 Cr0 (i) .
Für ein zu verschlüsselndes Zeichen x heißt dies
Tk0 ...kn−1 ,π0...πn−1 (xi ) = πn−1 (rn−1 (i) + . . . + π1 (r1 (i) + π0 (r0 (i) + xi )
−r0 (i)) − r1 (i)) . . .) − rn−1 (i)
= yi .
Der Schlüssel eines Rotorsystems besteht somit aus
• den Rotoren bzw. ihren Permutationen π0 , . . . , πn−1 und
• den Erstverschiebungen vor Beginn der Verschlüsselung k0 , . . . , kn−1 .
1
Prinzip des Kilometerzählers.
2.2. ROTORCHIFFREN
21
Betrachten wir nun einige Eigenschaften von Hebern-Rotorchiffren. Die Folge von Permutationen Tk,π (0), Tk,π (1), Tk,π (2), . . ., usw. ist unabhängig von den zu verschlüsselnden
Zeichen über dem Alphabet Zm periodisch. Bei n aufeinander folgenden Rotoren ist die
Periode ein Teiler von mn , d.h. nach spätestens mn Drehungen haben alle Rotoren wieder
ihre Ausgangsposition erreicht.
Die Menge aller Schlüsselpaare (k, π) für ein Rotorsystem mit n Rotoren läßt sich
in Äquivalenzklassen unterteilen. Zwei Schlüsselpaare (k, π) und (j, ν) heißen äquivalent,
wenn gilt:
Tk,π (i) = Tj,ν (i) mit 0 ≤ i < mn ,
oder kurz
Tk,π ∼ Tj,ν .
Beide Maschinen liefern dann bei gleicher Eingabe die gleiche Ausgabe.
2.2.4
Hebern-Kryptoanalyse
Die Beobachtung, daß sich die Rotoren π1 , π2 , . . . , πn−1 innerhalb gewisser Intervalle von
Klar- und Chiffretextzeichen wie unbewegliche Statoren verhalten, bietet den Ansatzpunkt
zur Kryptoanalyse. In einem solchen Intervall oder auch Block ist die Rotorfortschaltungsfunktion rs (g) (1 ≤ s < n) für alle g fest und unabhängig von diesem. Bei der Betrachtung
des ersten Rotors π0 hat der f -te Klartextblock beispielsweise die Form
Bf (x) = {xmf , xmf +1 , . . . , x(f +1)m−1 }.
Damit läßt sich die Verschlüsselungsfunktion mit der Substitution
Sf = C−rn−1 (i) πn−1 Crn−2 (i)−rn−1 (i) πn−2 . . . Cr1 (i)
zu
Tk0 ...kn−1 ,π0...πn−1 (i) = Sf C−r0 (i) π0 Cr0 (i)
verkürzen. Ein Treffer“ innerhalb eines Blocks Bf sei als Paar (g, h) mit g 6= h definiert,
”
für das gilt:
Sf C−r0 (g) π0 Cr0 (g) : xg → yg
Sf C−r0 (h) π0 Cr0 (h) : xh → yh
mit yg = yh und xg , xh ∈ Bf (x) bzw. yg , yh ∈ Bf (y). Aus der Forderung g 6= h ergibt sich
für einen Treffer bei (g, h)
k0 + g + xg 6= k0 + h + xh .
Andererseits gilt aber:
π0 (k0 + g + xg ) − k0 − g = π0 (k0 + h + xh ) − k0 − h.
Damit wird eine Beziehung zwischen zwei verschiedenen Kontakten des Rotors π0 hergestellt.
22
KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE
Ein (frei gewählter) Fixpunkt des zu konstruierenden Rotors ist π(0) = 0. Davon
ausgehend wird mit Hilfe der Beziehungen zu anderen Kontakten, der restliche Rotor
aufgebaut. Klar- und zugehörige Chiffretextblöcke werden also wiederholt nach Treffern
abgesucht, bei denen schon bekannte Kontakte involviert sind. Unter Verwendung einer
hinreichenden Anzahl aus Klar- und zugehörigem Chiffretext bestehenden Blöcken ist es
bei entsprechender Anzahl von Treffern schließlich möglich, m−1 Relationen aufzustellen.
Die fehlende m-te Beziehung ist dann zwingend durch die anderen vorgegeben. Somit wird
ein Rotor einer, zur Originalmaschine äquivalenten, Hebernchiffre konstruiert.
Dieser Rotor läßt sich jetzt abziehen“, indem Klar- und Chiffretext mit ihm ver”
schlüsselt werden. Die Blocklänge wird nun an die Fortschaltungsfunktion des nächsten
Rotors angepaßt (Faktor m) und das ganze Verfahren für diesen wiederholt. Auf diese
Weise erhält man schließlich nach und nach eine äquivalente Hebernchiffre.
2.2.5
Enigma-Variationen
Auch Arthur Scherbius war einer derjenigen, der unabhängig von den anderen Erfindern
die Idee zu einer Rotorverschlüsselungsmaschine hatte. Am 8. Juli 1925 wurde ihm das,
auf seine Chiffriermaschine“ bereits am 23. Februar 1918 eingereichte, Deutsche Reichs”
patent Nr. 416 219 erteilt. Seinen Chiffriermaschinen gab er den bezeichnenden Namen
Enigma“ — das griechische Wort für Rätsel. Scherbius gründete 1923 eine Firma —
”
die Chiffriermaschinen AG in Berlin. Ohne die Früchte seiner Arbeit ernten zu können,
kam Scherbius 1926 bei einem Unfall ums Leben, und seine Firma ging 1934 in Konkurs.
Die von seinen Mitgesellschaftern gegründete Nachfolgegesellschaft stellte während des
2.Weltkrieges eine große Anzahl militärischer Enigma-Maschinen her.
Das Bauteil, das die Enigma gegenüber normalen“ Rotorchiffren auszeichnet, ist der
”
reflektierende Rotor. Während bei den übrigen Rotoren Kontakte auf beiden Seiten vorhanden sind, hat der reflektierende Rotor nur auf einer Seite Kontakte. Diese sind paarweise durch Drähte miteinander verbunden. Ein ankommendes Signal wird durch den
reflektierenden Rotor wieder durch die davor geschalteten Rotoren zurückgeschickt. Aufgrund dieser Spiegelung kann kein Zeichen durch sich selbst ersetzt werden. Eine weitere
Eigenschaft der Enigma ist, daß dieselbe Anordnung sowohl zur Ver- als auch zur Entschlüsselung benutzt werden kann. Wird Zeichen ’A’ beispielsweise auf das Zeichen ’K’
abgebildet, so auch umgekehrt Zeichen ’K’ auf ’A’. Eine Chiffre mit dieser Eigenschaft
nennt man involutorisch.
Die durch diese Maschine realisierte Permutation ist in Abhängigkeit vom Index i des
eingegebenen Zeichens xi eine Verkettung der verschiedenen Rotorpermutationen πs (0 ≤
s < n) für den Hinweg, der Permutation πR des reflektierenden Rotors und den inversen
Rotorpermutationen πs−1 auf dem Rückweg
Ti = C−r0 (i) π0−1 Cr0 (i)−r1 (i) π1−1 Cr1 (i)−r2 (i) π2−1
. . . Crn−1 (i) πR C−rn−1 (i)
. . . π2 Cr2 (i)−r1 (i) π1 Cr1 (i)−r0 (i) π0 Cr0 (i) .
Dazu kommt die Verschiebung C der Rotoren gegeneinander mit den Fortschaltungs-
2.2. ROTORCHIFFREN
23
funktionen rs (i). Der reflektierende Rotor πR realisiert eine Permutation, die, zweimal
hintereinander ausgeführt, die identische Abbildung ergibt:
πR2 = Id
Aufgrund der involutorischen Eigenschaften des reflektierenden Rotors gilt:
Ti (x) = y ⇔ Ti (y) = x.
Zwei Enigma-Maschinen E und E ′ mit den Rotoren πs bzw. νs heißen äquivalent,
E : {π0 , π1 , . . . , πn−2 , πR } ∼ E ′ : {ν0 , ν1 , . . . , νn−2 , νR },
wenn sie bei gleicher Eingabe dieselbe Ausgabe produzieren.
2.2.6
Enigma-Kryptoanalyse
Eine gewisse Bekanntheit erlangte die Enigma gerade durch die Bemühungen um ihre Entschlüsselung. Den drei beim polnischen Geheimdienst arbeitenden Mathematikern
Marian Rejewski, Henryk Zygalski und Jerzy Rozycki gelang durch die Mithilfe eines
Spions 1933 der Durchbruch. Wegen einer mangelhaften Schlüsselprozedur konnte schnell
die ganze Maschine rekonstruiert werden. Danach konnten sie mit speziellen Maschinen,
sogenannten Bomben“, den Schlüssel rekonstruieren. Französische und britische Kryp”
toanalytiker wurden daraufhin von ihren polnischen Kollegen eingeweiht. Im englischen
Bletchley Park, in der Government Code and Cypher School“, dem Dechiffrierzentrum
”
des britischen Außenministeriums, arbeiteten ebenfalls zwei, mittlerweile legendär gewordene, Mathematiker an der Entschlüsselung der Enigma: Alfred Knox und Alan Turing.
Letzterer leistete auch bedeutende Beiträge zur Automatentheorie. Gegen Ende des Krieges schließlich waren die Briten in der Lage, Enigma-verschlüsselte Nachrichten innerhalb
einer Stunde zu entschlüsseln. Die Kryptoanalyse der Enigma ist eines der bestgehüteten Geheimnisse der britischen Regierung. Die unter dem Decknamen Ultra“ erzielten
”
Lösungen abgefangener Nachrichten gaben dem britischen Generalstab einen recht guten
Überblick über die Verhältnisse auf deutscher Seite. Unter diesen Umständen erscheinen
auch bestimmte Ereignisse, wie etwa der Zusammenbruch der deutschen Afrikafront und
der Wende der U-Boot Schlacht im Atlantik, in einem etwas anderen Licht.
Die im Folgenden vorgestellte Methode, um mit Hilfe von Klar- und dazugehörigem
Chiffretext eine Enigma zu brechen, ist im Wesentlichen eine erweiterte Variante der Methode für eine Hebernchiffre. Nach und nach werden die einzelnen Rotoren einer Enigma
konstruiert, die zur Originalmaschine äquivalent ist. Folgende Voraussetzungen werden
gemacht:
• Fixpunkt des zu konstruierenden äquivalenten Rotors π sei π(0) = 0.
• Die hier aufgestellten Gleichungen bzw. Ungleichungen gelten zunächst nur für den
ersten Rotor.
24
KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE
• Die Voreinstellung aller Rotoren der zu konstruierenden Enigma ist Null.
• Man geht von zusammenhängenden und jeweils miteinander korrespondierenden
Blöcken von Klar- und Chiffretext der Länge m aus.
Aufgrund der Äquivalenz Tg (x) = y ⇔ Tg (y) = x lassen sich folgende Gleichungen aufstellen:
πR C−rn−2 (g) πn−2 Crn−2 (g)−rn−3 (g) πn−3 . . . π0 Cr0 (g) (x) =
C−rn−2 (g) πn−2 Crn−2 (g)−rn−3 πn−3 . . . π0 Cr0 (g) (y),
oder aber
πR C−rn−2 (g) πn−2 Crn−2 (g)−rn−3 (g) πn−3 . . . π0 Cr0 (g) (y) =
C−rn−2 (g) πn−2 Crn−2 (g)−rn−3 πn−3 . . . π0 Cr0 (g) (x).
Betrachten wir die erste der beiden Gleichungen, so gilt
πR (Sf (π0 (xg + g) − g)) = Sf (π0 (yg + g) − g).
Dabei sei Sf eine einfache Substitution mit
Sf = C−rn−2 (g) πn−2 Crn−2 (g)−rn−3 πn−3 . . . π1 Cr1 (g) .
Dies gilt unabhängig vom Klar- oder Chiffrezeichenindex g innerhalb eines Blocks. Für
zwei voneinander verschiedene Indizes g und h (g 6= h) gilt:
πR (Sf (π0 (xg + g) − g)) = πR (Sf (π0 (xh + h) − h))
⇐⇒
Sf (π0 (yg + g) − g) = Sf (π0 (yh + h) − h),
oder aber auch:
πR (Sf (π0 (xg + g) − g)) = Sf (π0 (yh + h) − h)
⇐⇒
Sf (π0 (xh + h) − h) = πR (Sf (π0 (yg + g) − g)).
Um bestimmen zu können, ob die erste dieser Äquivalenzen gilt, muß eine Aussage darüber
gemacht werden, ob die Gleichung
π0 (xg + g) − g = π0 (xh + h) − h
erfüllt ist. Eine Beantwortung dieser Frage setzt aber voraus, daß schon Informationen
über den ersten Rotor π0 vorhanden sind. Dieser ist jedoch noch unbekannt. Das Vorgehen
aus der anderen Richtung bringt uns der Lösung näher: Dieselbe Äquivalenz ist nicht
erfüllt, wenn gilt
xg + g = xh + h mit g 6= h.
Im Gegensatz zum Treffer“ wird dies als ein sogenannter Nichttreffer“ definiert. Daraus
”
”
folgt
π0 (yg + g) − g 6= π0 (yh + h) − h,
2.2. ROTORCHIFFREN
25
was zu einer Einschränkung des Wertebereichs für den Rotor π0 führt. Diese Beschränkungen werden in eine Matrix Γ eingetragen. Diese Matrix ist dreidimensional und besteht
aus Beschränkungsvektoren γ. Der Vektor γi,j (t) gibt Auskunft über die Beschränkung
von π0 (i) − π0 (j):
0 falls π0 (i) − π0 (j) 6= t sein muß
γi,j (t) =
1 falls π0 (i) − π0 (j) = t sein kann.
Initialisiert wird diese Matrix Γ mit
Γi,j = (0, 1, 1, . . . , 1)
Γi,i = (1, 0, 0, . . . , 0)
mit 0 ≤ i, j < m und i 6= j
mit 0 ≤ i < m
Wird ein solcher Vektor Γi,j (i 6= j) im Laufe der Suche nach Beschränkungen schließlich
zu einem Einheitsvektor
Γi,j = ( 0, . . . , 0 , 1, 0, . . . , 0 ),
| {z }
| {z }
k Nullen
m−k−1 Nullen
so bedeutet dies, daß π0 (i) − π0 (j) ≡ k mod m ist. Bei einer genügend großen Anzahl
solcher Einheitsvektoren in der Matrix kann der äquivalente Rotor schließlich konstruiert
werden.
Die korrespondierenden Klar- und Chiffretextblöcke werden nun nacheinander auf zwei
verschiedene Weisen mehrmals hintereinander abgesucht.
Beim ersten Mal gilt die Suche den Nichttreffern“. Jeder Block wird für alle k (0 ≤
”
k < m) nach Paaren (g, h) mit g 6= h abgesucht, die eine der drei folgenden Bedingungen
erfüllen:
xg + g = xh + h = k
yg + g = yh + h = k
xg + g = yh + h = k
Hat man ein solches Paar gefunden, so lassen sich mit dem entsprechenden Gegenstück
auf der Klar- bzw. Chiffretextseite des korrespondierenden Blocks zwei Beschränkungen
aufstellen. Bei der ersten der obigen Bedingungen erhält man
yg + g 6≡ yh + h
⇔ yg − yh ≡
6 g − h mod m
⇔ yh − yg ≡
6 h − g mod m.
Die Ungleichungen auf der rechten Seite entsprechen gerade den Einträgen, die in die
Nichttreffer-“ oder Beschränkungsmatrix Γ eingesetzt werden.
”
Beim zweiten Mal werden zunächst die Informationen verwendet, die beim ersten Mal
gewonnen wurden. Ist ein γi,j (t) = 0, wobei die trivialen Fälle wie i = j oder t = 0
weggelassen werden, so wird in jedem Block nach Paaren (g, h) gesucht, für die g − h = t
ist, und eine der vier folgenden Bedingungen gilt:
xg + g
yg + g
yg + g
xg + g
=i
=i
=i
=i
∧
∧
∧
∧
xh + h
yh + h
xh + h
yh + h
=j
=j
=j
=j
26
KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE
Auch hier werden mit dem entsprechenden Gegenstück auf der Klar- oder Chiffretextseite
des entsprechenden Blocks, wie schon oben beschrieben, zwei Einträge in der Matrix vorgenommen. Die dabei zustandekommenden Neueinträge werden nun wiederum zur Suche
verwendet. Bei der Suche nach Einheitsvektoren lassen sich eventuell weitere Beschränkungen gewinnen. Befindet sich in der x-Richtung, der y-Richtung oder der z-Richtung der
Matrix in einer Reihe nur eine 1, so ist damit festgelegt, daß sich in den anderen Richtungen des Koordinatenkreuzes, dessen Ursprung jene 1 ist, ebenfalls nur noch Nullen
befinden können.
Nach der Untersuchung einer ausreichenden Anzahl von Blöcken, mit entsprechenden Ergebnissen bei der Suche nach Beschränkungen, sind dann soviele Einheitsvektoren
zusammengekommen, daß sich der Rotor daraus vollständig konstruieren läßt.
Der so gewonnene Rotor wird danach praktisch abgezogen“: Klar- und Chiffretext
”
werden mit ihm verschlüsselt (d.h. in Richtung des reflektierenden Rotors). Danach muß
auch die Blockgröße an die nun zu betrachtende Fortschaltungsfunktion des nächsten
Rotors angepaßt werden (Faktor m). Bei den Indizes g und h innerhalb eines m-fach
vergrößerten Blocks wird dann mod m gerechnet.
Schließlich gelangt man zum reflektierenden Rotor πR . An dieser Stelle, nachdem der
vorletzte Rotor abgezogen“ wurde, ist es lediglich nötig, Klar- und Chiffretextzeichen
”
einander zuzuordnen, um πR zu erhalten.
Nachdem wir uns nun einigen Beispielen klassischer Kryptographie und den Methoden wie diese Systeme gebrochen werden können, gewidmet haben, wenden wir uns im
folgenden Kapitel der Frage der Sicherheit von Kryptosystemen zu.
Kapitel 3
Theoretische Beschreibung von
Sicherheit
Bei der klassischen Kryptographie stand sowohl beim Erfinden neuer Kryptosysteme
als auch beim Brechen von Kryptosystemen der klare Menschenverstand“ von mathe”
matischen Laien im Vordergrund. In der modernen Kryptoanalysis hingegen werden Methoden aus diversen Bereichen der Informatik und Mathematik eingesetzt, z. B. Zahlentheorie, Wahrscheinlichkeitstheorie, Statistik, Informationstheorie, lineare Algebra, Algebra, Schaltkreistheorie und viele andere mehr.
An der Analyse eines Kryptosystems besteht sowohl von Seiten der Anwender des
Systems als auch von potentiellen Opponenten Interesse - einerseits, um die Sicherheit
des verwendeten Verfahrens unter Beweis zu stellen, andererseits, um den verwendeten
Schlüssel bzw. den geheimen Klartext zu erhalten.
Für die Kryptoanalytiker beider Seiten spielt dabei der Begriff Sicherheit des Sy”
stems“ eine bedeutende Rolle. Häufig werden Kryptosysteme nach folgenden Sicherheitsstufen eingeteilt:
1. informationstheoretisch (absolut) sichere Kryptosysteme
Auch bei Kenntnis von beliebig viel Chiffretext kann nicht genug Information gewonnen werden, um daraus den Klartext oder den Schlüssel zu
rekonstruieren.
2. praktisch sichere (starke) Kryptosysteme
Es ist kein Verfahren bekannt, mit dem das Kryptosystem mit den verfügbaren Ressourcen und vertretbarem Aufwand gebrochen werden kann.
An dieser Stelle sei bemerkt, daß bisher nur ein System, nämlich der one-time-pad (vgl.
Abschnitt 2.1.3), als informationstheoretisch sicheres System bewiesen wurde. Dies ist
C.E. Shannon in [122] gelungen und wird im Folgenden noch genauer behandelt.
27
28
KAPITEL 3. THEORETISCHE BESCHREIBUNG VON SICHERHEIT
Angesichts dieser Mißlichkeit konzentriert sich das breite Interesse der Macher und
Anwender auf den Bereich der praktisch sicheren Kryptosysteme, die selbst im schlimm”
sten“ anzunehmenden Fall noch sicher sein müssen.
Dieser tritt dann ein, wenn der Kryptoanalytiker
• detailierte Kenntnisse über das Kryptosystem besitzt, d. h. die Chiffrierfunktionen
sind ihm bekannt, nicht aber die verwendeten Schlüssel (generelle Voraussetzung),
• Kenntnis von relativ großen, von im selbst ausgewählten, Klartextmengen und den
zugehörigen Chiffretexten hat (chosen-plaintext-attack),
• die Verfügbarkeit relativ großer Mengen von ihm selbst ausgewähltem Chiffretext
und den zugehörigen Klartexten voraussetzen kann (chosen-ciphertext-attack),
• Zugriff zu schnellen und großen Rechnern hat und
• aktuelle Kenntnisse der Kryptologie, insbesondere der Kryptoanalysis besitzt, wie
sie auf den einschlägigen Crypto-Konferenzen vorgestellt werden.
In den beiden nun folgenden Abschnitten werden die bisherigen Überlegungen zur Sicherheit von Kryptosystemen verfeinert und einige noch nicht betrachtete Aspekte herausgestellt.
3.1
Problemstellung
Der Angreifer muß aufgrund seiner Kenntnisse eine Schätzung des Klartextes und/oder des
verwendeten Schlüssels durchführen. Dabei wird generell vorausgesetzt, daß dem Angreifer
• das Chiffrat,
• das benutzte Kryptosystem,
• die Verteilung der Klartextquelle,
• die Verteilung der Schlüsselquelle bekannt sind.
Dieses Schätzproblem entspricht dem aus der statistischen Nachrichtentheorie bekannten (siehe z. B. in [75]), das in Bild 3.1 gezeigt ist, wo der Empfänger aus der erhaltenen
und gestörten Nachricht r aufgrund seiner Kenntnisse über die Art der Störung und die
Verteilung der Senderquelle bzw. der Störquelle auf die tatsächlich gesendete Nachricht
m schließen muß.
Ein Kryptosystem wird dann als sicher“ gelten können, wenn ein Angreifer, selbst
”
mit den oben vorausgesetzten Kenntnissen, nicht in der Lage ist, den zu einem Chiffretext
gehörenden Klartext mit vertretbarem Aufwand zu bestimmen.
3.1. PROBLEMSTELLUNG
29
Störungen
n
Sender
?
m -
r
Kanal
- Empfänger
Abbildung 3.1: Nachrichtenübertragungssystem (Detektion)
Die Sicherheit eines Kryptosystems hängt u.a. wesentlich von den Verteilungen der
Klartext- bzw. der Schlüsselquelle ab, so daß wir zunächst einige, aus der Wahrscheinlichkeitstheorie bekannte, Begriffe einführen.
Wir erinnern hier an Definition 1.1 eines abstrakten Kryptosystems S = (M, C, E, K).
Um die folgenden Untersuchungen nicht durch sehr viel Formalismus zu überladen beschränken wir uns hier auf Entschlüsselungsfunktionen Ek . M, C und K werden als
Wahrscheinlichkeitsräume mit den Verteilungen pM , pC und pK betrachtet. pM,K sei die
Wahrscheinlichkeitsverteilung auf M×K, analog seien pM,C auf M×C und pC,K auf C ×K
definiert.
Definition 3.1 Ein Kryptosystem heißt unabhängig, wenn Klartext und Schlüssel unabhängig voneinander sind.
pM,K (m, k) = pM (m) · pK (k)
∀ m, k.
Man kann in der Regel davon ausgehen, daß die betrachteten Kryptosysteme unabhängig sind.
Weiter benötigte Wahrscheinlichkeiten ergeben sich zu:
pM,C (m, c) =
X
pM (m) · pK (k)
(3.1)
X
pM (m) · pK (k).
(3.2)
k: Ek (m)=c
und
pC (c) =
X
m k: Ek (m)=c
Die bedingte Wahrscheinlichkeit pM|C (m|c) gibt die Wahrscheinlichkeit an, daß m gilt,
wenn c gegeben ist. Im Unterschied dazu ist pM,C (m, c) die Verbundwahrscheinlichkeit,
daß m und c gleichzeitig gelten.
Zwischen pM,C und pM|C besteht nach Definition der bedingten Wahrscheinlichkeit
folgende Beziehung:
pM,C (m, c) = pC (c) · pM|C (m|c).
(3.3)
30
KAPITEL 3. THEORETISCHE BESCHREIBUNG VON SICHERHEIT
3.2
Kryptosysteme mit perfekter Sicherheit
Definition 3.2 Ein Kryptosystem liefert perfekte Sicherheit, falls
pM|C (m|c) = pM (m)
f ür pM (m) > 0
gilt, oder äquivalent dazu
pC|M (c|m) = pC (c)
f ür pC (c) > 0
ist.
(Die beiden Bedingungen sind äquivalent, da pM,C = pM|C · pC = pC|M · pM gilt.)
Das heißt, ein Kryptosystem ist dann perfekt, wenn die Kenntnis des Chiffretextes einen
bestimmten Klartext als Lösung nicht wahrscheinlicher macht, als dies nach der Verteilung
der Klartextquelle bereits zu erwarten ist.
Satz 3.3 Für ein System mit perfekter Sicherheit gilt |K| ≥ |M|.
Beweis: Da zu jedem Chiffrat wieder der ursprüngliche Klartext gefunden wird gilt:
|C| ≥ |M|
Außerdem muß jeder Klartext m auf jeden Chiffretext c abgebildet werden können,
damit pM|C = pM gelten kann. Dann muß es mindestens |C| Schlüssel geben: |K| ≥ |C|
Daraus folgt die Behauptung.
q.e.d.
Wir betrachten nun den Spezialfall eines Kryptosystems mit |M| = |C| = |K|.
Satz 3.4 Es sei S ein Kryptosystem mit |M| = |C| = |K|.
S liefert perfekte Sicherheit genau dann, wenn
1. ∀c ∈ C: ∀m ∈ M: ∃!k ∈ K: Ek (m) = c
Jeder Chiffretext ist von jedem Klartext aus erreichbar und umgekehrt.
1
2. ∀k ∈ K: pK (k) = |K|
Die Schlüssel sind gleichverteilt.
Beweis:
⇒“ S sei perfekt mit |M| = |C| = |K|, dann folgt 1. mit der gleichen Begründung wie
”
im Beweis zu Satz 3.3.
Es bleibt 2. zu zeigen:
Es sei c0 ein fest gegebenes Chiffrat, dann gilt:
3.2. KRYPTOSYSTEME MIT PERFEKTER SICHERHEIT
∀m: pC (c0 ) = pC|M (c0 |m)
pM,C (m, c0 )
=
pM (m)
X pM (m) · pK (k)
=
pM (m)
31
nach (3.3)
k:Ek (m)=c0
pM (m) · pK (k0 )
pM (m)
= pK (k0 )
1
pK (k) =
|K|
=
⇒
mit Ek0 (m) = c0
⇐“ analog
q.e.d.
”
Ein Beispiel für ein Kryptosystem mit perfekter Sicherheit ist der one-time-pad mit |M| =
|C| = |K|.
Kapitel 4
Stromchiffren
Eine Verschlüsselungsfunktion erwartet in der Regel eine Eingabe fester Länge. Daher
wird ein Klartext beliebiger Länge vor der Verarbeitung in eine Folge von Blöcken oder
Zeichen fester Länge aufgeteilt, die dann einzeln chiffriert werden. Ist die Verschlüsselungsoperation dabei für jeden Block dieselbe, so spricht man von Blockchiffren. Diese werden
in Kapitel 5 ausführlich behandelt. Als sequentielle Chiffren oder Stromchiffren bezeichnet man Verschlüsselungsverfahren, bei denen die Folge von Klartextzeichen nacheinander
mit einer in jedem Schritt variierenden Funktion verschlüsselt wird. Sequentielle Chiffren
sind also polyalphabetische Substitutionen, die auf Einheiten kleinerer Länge operieren,
die Zeichen“ genannt werden, auch wenn diese Zeichen nicht mit den Elementen des
”
zugrundeliegenden Alphabets übereinstimmen müssen.
Hier beschäftigen wir uns ausschließlich mit sogenannten synchronen Stromchiffren
[53], bei denen die Verschlüsselung durch eine Verknüpfung des Klartextes mit einem
unabhängig von diesem erzeugten Schlüsselstrom dargestellt werden kann. Dies ist in
Abbildung 4.1 gezeigt.
In den meisten Fällen erfolgt die Verknüpfung mit einer einfachen Funktion f , die sogar
unabhängig vom Schlüssel ist.
Das klassische Beispiel einer sequentiellen Chiffre ist die in Abschnitt 2.1.3 vorgestellte
Vigenère-Chiffre. Der Zeichenvorrat ist in diesem Fall das lateinische Alphabet mit seinen
26 Buchstaben. Die Verknüpfung der Schlüsselfolge mit der Klartextfolge geschieht durch
die zeichenweise Addition modulo 26. Die Schlüsselfolge besteht bei der Vigenère-Chiffre
k
A
A AU
fk
m
-
c
Abbildung 4.1: Prinzip einer (synchronen) sequentiellen Chiffre
32
33
Schlüssel
(Initialwert)
Schlüssel
(Intitialwert)
?
m
?
Pseudozufallsgenerator
Pseudozufallsgenerator
k
k
?
c
(Übertragung)
-
AA
A
c
?
-
m
Abbildung 4.2: Synchrones Stromchiffrier-System
aus einer sich periodisch wiederholenden Zeichenfolge, die als Schlüsselwort bezeichnet
wird. Das periodische Wiederholen einer im Verhältnis zum Klartext typischerweise kurzen
Schlüsselfolge ermöglicht jedoch gerade die fast mühelose Kryptoanalyse des VigenèreSystems (siehe Abschnitt 2.1.3).
Ideale Sicherheit bietet hingegen eine sequentielle Chiffre, die auf einer wirklich zufälligen Schlüsselfolge basiert. Dieses aus Abschnitt 2.1.3 her bekannte Kryptosystem ist der
sogenannte one-time-pad.
Die Zufallsfolge, die beim one-time-pad als Schlüssel dient, muß mindestens so lang
wie die zu verschlüsselnde Nachricht sein und darf nur ein einziges Mal verwendet werden.
Daher erfordert dieses Verfahren einen extrem hohen Aufwand für die sichere Schlüsselverteilung und ist aus diesem Grund für die meisten Anwendugen unpraktikabel. Es liegt
nun nahe, die genannte Schwierigkeit zu umgehen, indem man nach dem Vorbild des
one-time-pad Stromchiffren konstruiert, die statt einer wirklichen Zufallsfolge sogenannte
Pseudozufallsfolgen verwenden. Unter einer Pseudozufallsfolge versteht man dabei eine
Folge von Zeichen, die mittels eines deterministischen Prozesses aus einem relativ kurzen Initialisierungswert erzeugt wird und gewisse Eigenschaften einer echt zufälligen Folge
aufweist. Wenn beide Kommunikationspartner über identische Generatoren verfügen, muß
nur noch der Initialwert und die gewählte Parametrisierung des Generators als Schlüssel
verteilt werden. Die eigentliche Schlüsselfolge kann dann an beiden Enden des Kanals erzeugt werden. In Abbildung 4.2 ist der prinzipielle Aufbau eines derartigen sequentiellen
Chiffrier-Systems gezeigt.
Da Kryptoalgorithmen heute in der Regel mit Hilfe digitaler Elektronik realisiert werden, sind Klartext- und Schlüsselfolge in den meisten Fällen binär. Man überlegt sich
leicht, daß unter den 16 booleschen Funktionen in zwei Variablen nur das XOR (Addition
modulo 2) oder das negierte XOR als Verknüpfungsfunktionen in Frage kommen.
Das Studium der sequentiellen Chiffren besteht somit in der Hauptsache aus der Untersuchung von Pseudozufallsgeneratoren. Im nächsten Abschnitt werden wir einige wichtige
Kriterien für die Zufälligkeit“ von deterministisch erzeugten Folgen betrachten. Da die
”
meisten für Hardware-Implementierungen vorgesehenen Generatoren auf Schieberegistern
34
KAPITEL 4. STROMCHIFFREN
a2
a1 e
*
a0 e
:e
a10 e
6
a9
a3
:e
1e
a11
e
I
e
a8
je
a4
e9
U ea5
e
Periode p = 9
a6
a7
Abbildung 4.3: Typisches Beispiel für eine durch einen endlichen Automaten erzeugte
Pseudozufallsfolge
basieren, werden sich zwei Abschnitte dieses Kapitels mit dieser Technik beschäftigen.
In Abschnitt 4.2 werden zunächst lineare Schieberegisterfolgen untersucht, die mathematisch sehr gut beherrschbar sind, einige für Kryptoanwendungen günstige Eigenschaften
aufweisen aber, wie man seit langem weiß, nicht ausreichend sicher sind.
Später werden wir sehen, daß diese Art von Pseudozufallsgeneratoren kryptographisch
nicht sicher sind, dennoch ist das Studium der linear rückgekoppelten Schieberegister für
die Praxis wertvoll, da sich zahlreiche der nichtlinearen und hoffentlich sicheren Verfahren
stark auf diese Theorie stützen. Im letzten Abschnitt dieses Kapitels werden schließlich
Verfahren zur Konstruktion und Analyse nichtlinearer Pseudozufallsgeneratoren vorgestellt und einige der neueren Ergebnisse auf diesem Gebiet zitiert.
4.1
Pseudozufallsfolgen
Nimmt man bei der Entwicklung von sequentiellen Chiffren den one-time-pad als Idealbild, so stellt das Hauptproblem die Approximation einer zufälligen Folge durch eine
Pseudozufallsfolge dar, die durch einen deterministischen Prozeß generiert wird.
Die Erzeugung von echten Zufallsfolgen“ vor Ort, z.B. durch Münzwurf mit einer
”
idealen Münze, ist in der Praxis zum einen zu teuer, und zum anderen ist die Verteilung
der Zufallsfolge an Sender und Empfänger extrem aufwendig, da sie ja zumindest die
gleiche Länge haben muß wie die zu sendende Nachricht.
Probleme bei der Verwendung von Pseudozufallsgeneratoren ergeben sich aus dem
Determinismus des generierenden Prozesses, der durch einen endlichen Automaten dargestellt werden kann. Der endliche Automat, der die Pseudozufallsfolge (ai ) erzeugt, ist per
constructionem autonom, d.h. nach einer Initialisierung ist der Takt die einzige Eingabe,
und er hat nur endlich viele (innere) Zustände. Damit ist aber klar, daß die durch diesen
endlichen Automaten erzeugte Folge (ai ) periodisch sein muß mit einer gewissen Periode
p (siehe Abbildung 4.3).
Damit nun die sequentielle Chiffrierung mit einer Pseudozufallsfolge (ai ) ein hinreichendes Maß an Sicherheit bietet, muß zumindest gelten, daß die Periode p der Folge (ai )
4.1. PSEUDOZUFALLSFOLGEN
35
größer als die Länge der zu chiffrierenden Nachricht ist.
Ein weiteres Problem bei der Verwendung von Pseudozufallsfolgen ist die Frage, wann
eine solche Folge, die, wie wir gesehen haben, aus einer Vorperiode und der zyklischen
Wiederholung einer endlichen Folge aufgebaut ist, als zufällig“ bzw. pseudozufällig“
”
”
bezeichnet werden soll. In letzter Konsequenz besteht die Beantwortung dieser Frage in
einer Definition der Eigenschaft zufällig“ für endliche Folgen.
”
4.1.1
Definition der Pseudozufälligkeit: Die Golombschen Axiome
Betrachtet man das Beispiel des Münzwurfs mit einer idealen Münze, um Kriterien abzuleiten, wann eine Folge als pseudozufällig“ betrachtet werden kann, so gelangt man
”
unmittelbar zu einer Reihe von Eigenschaften, die man von einer Zufallsfolge, die ein
ideales Münzwurfexperiment simuliert, erwarten wird:
1. Gleiche Wahrscheinlichkeit für Nullen und Einsen: p(0) = p(1) = 12 .
2. Die Folge soll binomialverteilt sein.
3. Die Wahrscheinlichkeitsverteilung soll stationär, die einzelnen Münzwürfe“ un”
abhängig sein.
Es ist ganz offensichtlich, daß die oben genannten Eigenschaften nicht ohne weiteres für
die Charakterisierung von pseudozufälligen Folgen herangezogen werden können. Stattdessen benötigt man eine geeignete Abwandlung dieser Eigenschaften für den Fall eines
deterministischen Automaten. Die von S.W.Golomb in [59] angegebenen Pseudozufallskriterien, haben als solche eine große Bedeutung. Sie werden im folgenden vorgestellt und
motiviert.
Das erste Kriterium leitet sich aus der oben schon erwähnten Tatsache ab, daß man bei
wirklich zufälligen Folgen im Mittel die gleiche Anzahl von Nullen und Einsen beobachtet.
Es lautet:
G1: In jedem Zyklus der Folge unterscheidet sich die Anzahl der Einsen von der Anzahl
p
der Nullen
p um höchstens eins. D.h. die Anzahl von Einsen in einer Periode p ist 2
oder 2
Einen Abschnitt aufeinanderfolgender identischer Zeichen maximaler Länge bezeichnen
wir als run. Das zweite Kriterium von Golomb stellt eine Forderung an die Anzahl der
runs von Einsen und runs von Nullen in einer Periode der Folge. Sie entspricht der oben
genannten 2. Eigenschaft der Binomialverteilung des Münzwurfexperiments:
G2: In einem Zyklus haben 21i aller runs die Länge i. Für jede Länge gibt es gleichviele
runs von Einsen und Nullen.
36
KAPITEL 4. STROMCHIFFREN
C(τ )
1
0
p
τ
Abbildung 4.4: Autokorrelationsfunktion für eine Pseudozufallsfolge
Die Forderung G2 ist für jedes i sinnvoll, für das die Periode insgesamt mindestens 2i+1
runs (jeder Länge) enthält. Für die Formulierung des dritten Kriteriums muß zunächst die
Autokorrelationsfunktion einer Folge definiert werden. Sei (ai )i≥0 eine Folge der Periode p
und (ai+τ )i≥0 die um τ verschobene Folge.
Man definiert nun:
A(τ ) : = Anzahl der übereinstimmenden Glieder pro Zyklus zwischen den Folgen (ai )i≥0
und (ai+τ )i≥0 .
D(τ ) : = p − A(τ ) = Anzahl der nicht übereinstimmenden Glieder pro Zyklus.
Definition 4.1 Die Autokorrelationsfunktion ist dann für jedes τ definiert als
C(τ ): =
A(τ ) − D(τ )
.
p
Für τ = 0 ist der Wert der Funktion für jede Folge offensichtlich gleich Eins. Vergleicht
man gegeneinander verschobene Positionen einer Folge, deren einzelne Glieder unabhängig
voneinander durch einen Zufallsprozeß entstanden sind, so treten die Paare (0,0), (0,1),
(1,0) und (1,1) jeweils mit der Wahrscheinlichkeit 21 · 21 = 14 auf. Man erwartet daher
für τ 6= 0 im Mittel Übereinstimmungen in etwa der Hälfte der Fälle und somit einen
nahezu konstanten Verlauf der Autokorrelationsfunktion außerhalb der Stelle Null. Diese
Beobachtung fließt in die dritte Forderung für pseudozufällige Folgen ein.
G3: Die Autokorrelationsfunktion C(τ ) der Folge ist konstant für Werte von τ zwischen
1 und p − 1 (offensichtlich ist C(τ ) = 1 für τ = 0 und alle Vielfachen der Periode
p), siehe Abbildung 4.4.
4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER
37
Bemerkung 4.2 Die Postulate G1, G2 und G3 werden die Golombschen Axiome genannt.
Eine periodische Folge, die die Golombschen Axiome erfüllt, heiße Pseudozufallsfolge.
Die drei Golombschen Axiome sind sehr strikt, da sie die Erfüllung genau vorgegebener
Werte fordern, während man bei wirklich zufälligen Folgen ja lediglich die ungefähre Übereinstimmung mit diesen Werten beobachtet. Immerhin wird sich zeigen, daß es (zumindest für gewisse Perioden) umfangreiche Mengen von Folgen gibt, die Golombs Kriterien
erfüllen.
Beispiel 4.3 Ein einfaches Beispiel für eine periodische Folge, die G1, G2 und G3 erfüllt,
erhält man durch Wiederholen des folgenden Zyklus der Länge 15:
100011110101100
Der Zyklus enthält acht Einsen und sieben Nullen, erfüllt also die Anforderung G1. Da der
Zyklus insgesamt acht runs aufweist, macht G2 eine Aussage über die runs der Längen
1 und 2. Mit je zwei runs von Einsen bzw. Nullen der Länge 1 und je einem run von
Einsen bzw. Nullen der Länge 2 pro Zyklus erfüllt die Folge auch dieses Kriterium. Es
ist eine leichte Rechenübung, sich davon zu überzeugen, daß die Folge mit jeder ihrer
um τ = 1, 2, ..., 14 verschobenen Kopien genau sieben Übereinstimmungen pro Zyklus hat
1
und die Autokorrelationsfunktion demnach für alle diese Argumente jeweils den Wert − 15
annimmt.
4.2
Linear rückgekoppelte Schieberegister
Für die Realisierung endlicher Automaten durch elektronische Schaltwerke bietet sich
die Darstellung ihrer Zustände durch binäre Speicherbausteine (Flip-Flops) an. Verfügt
eine Maschine über n solcher Speicherzellen, so kann sie 2n verschiedene Zustände annehmen. Die Zustandsüberführungsfunktion kann in diesem Fall durch n boolesche Schaltfunktionen f0 , f1 , ..., fn−1 dargestellt werden, die jeweils die Menge {0, 1}n in die Menge
{0, 1} abbilden. Eine erhebliche Vereinfachung sowohl bezüglich der Implementierung als
auch für die Beschreibung endlicher Maschinen ergibt sich durch die Beschränkung auf
rückgekoppelte Schieberegister, auf die wir gleich zurückkommen. Zunächst sollen jedoch
Zufallsgeneratoren allgemeinerer Art behandelt werden.
4.2.1
Pseudozufallsgeneratoren allgemeiner Art
Eine Möglichkeit einen Pseudozufallsgenerator zu bauen, wäre die Konstruktion eines
mehr oder weniger wirr verdrahteten Bausteins oder eines undurchschaubaren Algorithmus, der eine Zahlenfolge liefert.
Es gibt jedoch genügend Gegenbeispiele, die zeigen, daß dieser Weg, der am besten
mit Pseudozufall durch Chaos“ charakterisiert werden kann, nicht geeignet ist, gute
”
38
KAPITEL 4. STROMCHIFFREN
-
A
-
x(t)
-
C
#
-
y(t)
"!
Abbildung 4.5: Lineares System
Zufallsfolgen zu erstellen. Zum einen besteht die Gefahr, daß Zufallsfolgen mit kurzen
Zyklen erzeugt werden, und zum anderen ist eine Bewertung der kryptographischen Stärke
der so entstandenen Generatoren äußerst schwierig, wenn nicht gar unmöglich. Deshalb
ist nicht anzuraten, Pseudozufallsgeneratoren pseudozufällig“ zu generieren.
”
The moral of this story is that random should not be generated with a method
”
chosen at random. Some theory should be used.“ (vgl. [72])
Die Beschränkung auf lineare Systeme, die sehr gut untersucht sind, zur Generierung von
Pseudozufallsfolgen ermöglicht auf jeden Fall eine Sicherheitsvalidierung.
Bei einem linearen System wird im Gegensatz zu nichtlinearen Systemen die Zustandsüberführungsfunktion durch eine Matrix A beschrieben. Abbildung 4.5 illustriert
den Sachverhalt.
Den Anfangszustand bezeichnen wir mit x(0). Die Folgezustände erhält man per Zustandsüberführung x(t + 1) = A · x(t), wobei x(t) ein Element eines endlichdimensionalen
Vektorraumes, meist IFn2 , ist. Die Ausgabe y(t) ergibt sich aus x(t) durch eine Abbildung
vom n-dimensionalen Vektorraum in den Grundkörper, die durch eine (1 × n)-Matrix C
mit y(t) = C · x(t) beschrieben wird.
Betrachtet man das so beschriebene lineare System über die Zeit, so ergibt sich
• für den Zustand: x(0) → Ax(0) → A2 x(0) → A3 x(0) → · · ·
• für die Ausgabe: Cx(0) → CAx(0) → CA2 x(0) → CA3 x(0) → · · ·
Ersetzt man in diesem System A durch T AT −1 und C durch CT −1 , wobei T regulär ist,
und startet dieses System im Zustand T x(0), so ergibt sich
• für den Zustand: T x(0) → TAT −1T x(0) → TAT −1 TAT −1 T x(0) → · · ·
|
{z
} |
{z
}
=TAx(0)
=TA2 x(0)
• für die Ausgabe: CT −1 T x(0) → CT −1TAx(0) → CT −1TA2 x(0) → · · ·
|
{z
} |
{z
} |
{z
}
=Cx(0)
=CAx(0)
=CA2 x(0)
Die Veränderung des Systems hat also keinen Einfluß auf die Ausgabefolge. Diese Beobachtung führt uns zu folgendem Satz, der an dieser Stelle vielleicht noch etwas verblüfft:
Beliebige lineare Systeme sind nicht mächtiger als linear rückgekoppelte Schieberegister.
4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER
a0
a1
39
an−1
a2
• • •
? ? ?
cn
cn−1 cn−2
?
?
• • •
?
?
c1
?
Σ
Abbildung 4.6: Linear rückgekoppeltes Schieberegister
Eine exakte Formulierung und den Beweis dieses Satzes verschieben wir auf den
nächsten Abschnitt, da uns hier die Beschreibung von linear rückgekoppelten Schieberegistern noch fehlt.
4.2.2
Beschreibung von linear rückgekoppelten Schieberegistern
Ein linear rückgekoppeltes Schieberegister, im folgenden abgekürzt LFSR für Linear Feedback Shift Register genannt, besteht aus einer Reihe seriell gekoppelter Speicherzellen
(im binären Fall Flip-Flops). Bei jedem Takt wird der Inhalt der Zellen um eine Stelle
weitergeschoben. Der Inhalt der letzten Zelle wird ausgegeben. Die Eingabe für die erste
Speicherzelle wird in Abhängigkeit vom gesamten Zustand des Schieberegisters durch
die sogenannte Rückkopplungsfunktion bestimmt. Abbildung 4.6 zeigt das Blockschaltbild
eines solchen rückgekoppelten Schieberegisters.
Die sogenannten Rückkopplungskoeffizienten c1 , ..., cn definieren das Rückkopplungspolynom; der Wert n gibt die Länge des LFSR an.
Definition 4.4 Die Rückkopplungsfunktion oder das Rückkopplungspolynom eines LFSR
über dem Körper IFq ist gegeben durch
f (x) = 1 −
n
X
ci xi
i=1
wobei c1 , ..., cn ∈ IFq die Rückkopplungskoeffizienten des LFSRs sind.
Betrachtet man LFSR über dem Körper IF2 , so können die ci die Werte 0 und 1 annehmen,
d.h. es ist eine Verbindung vorhanden oder nicht.
wird eindeutig beschrieben durch das Rückkopplungspolynom f (x) = 1 −
PnDas LFSR
i
i=1 ci x und den Anfangszustand a0 , ..., an−1 oder den Zustand des LFSR zu irgendeinem
Zeitpunkt t, der mit at = (at , ..., at+n−1 ) bezeichnet wird.
40
KAPITEL 4. STROMCHIFFREN
?
mod
2
Abbildung 4.7: Schieberegister für Beispiel 1
Die in Abbildung 4.6 dargestellte Rückkopplung bestimmt dann den Zustand des LFSR
zum Zeitpunkt t + 1 folgendermaßen:
t+1
a
= (at+1 , ..., at+n ) = (at+1 , ..., at+n−1 ,
n
X
i=1
ci · at+n−i )
(4.1)
Das heißt das letzte Speicherelement (rechts) bekommt einen neuen Wert zugeordnet, die
Werte at+1 , ..., at+n−1 werden um eine Zelle nach links verschoben und at wird ausgegeben.
Da es sich hier um eine lineare Abbildung handelt, kann die obige Zustandsüberführung
durch Matrizenmultiplikation beschrieben werden:


0
1
0 ··· 0
.
..
.. ..
 ...
.
.
. .. 


..
.. ..
(4.2)
at+1 = A · at mit A = 
.
. 0

 .
 0 ··· ··· 0 1 
cn
cn−1
···
c2
c1
Die Matrix A wird als Rückkopplungsmatrix bezeichnet.
Beispiel 4.5
1. In Abb. 4.7 ist ein LFSR über dem Körper IF2 gegeben.
Das Rückkopplungspolynom dieses LFSR ist f (x) = 1 − x2 − x4 .
Wir betrachten das Zustandsdiagramm für verschiedene in Abbildung 4.8 aufgeführte Anfangszustände.
Wählt man den Anfangszustand a0 = (1, 1, 1, 1) so ist die resultierende SR-Folge
periodisch mit der Periode 6.
Für den Anfangszustand a0 = (0, 0, 0, 0) wird nur ein Zustand angenommen, nämlich
der Nullzustand, in dem das LFSR immer verbleibt. Die erzeugte Nullfolge ist kryptographisch natürlich unbrauchbar. Aus diesen Gründen muß vermieden werden,
daß ein LFSR den Nullzustand erreicht.
Der Anfangszustand a0 = (0, 0, 0, 1) führt auf eine SR-Folge mit der Periode 6.
2. Gegeben sei das LFSR aus Abb. 4.9 über dem Körper IF2 mit dem Anfangszustand
a0 = (1, 1, 1, 1).
4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER
41
?
?
?
?
1111
1110
1100
1001
0011
0111
0000
0001
0010
0101
1010
0100
1000
0110
1101
1011
Abbildung 4.8: Zustandsdiagramme für Schieberegister aus Abbildung 4.7
?
mod
2
Abbildung 4.9: Schieberegister für Beispiel 2
?
1111
1110
1101
1010
0101
1011
0110
1100
?
1001
0010
0100
1000
0001
0011
0111
Abbildung 4.10: Zustandsdiagramm für Schieberegister aus Abbildung 4.9
Das so initialisierte Schieberegister durchläuft der Reihe nach die Zustände aus
Abb. 4.10.
Die resultierende SR-Folge hat die Periode 15. Es wird sich zeigen, daß dies die
maximal mögliche Periode ist, die mit einem LFSR der Länge 4 erreicht werden
kann. Auf die wichtige Frage, wie man zu einem LFSR die möglichen Perioden
42
KAPITEL 4. STROMCHIFFREN
bestimmt, die eine mit diesem LFSR erzeugte SR-Folge haben kann, gehen wir im
Abschnitt 4.2.3 detailliert ein.
An dieser Stelle können wir den im vorangegangenen Abschnitt erwähnten Satz sauber
formulieren und beweisen. Wir erinnern dazu daran, daß ein beliebiger linearer Generator
durch eine Zustandsüberführungsmatrix A der Dimension n × n und eine (1 × n)-Matrix
C zur Abbildung des Zustandsvektors auf das Ausgabeelement beschrieben werden kann.
Satz 4.6 Ein lineares Systeme sei gegeben durch A ∈ IFqn×n und C ∈ IFnq \ {0}. Dann läßt
sich die Ausgabe dieses Systems auch durch ein linear rückgekoppeltes Schieberegister der
Länge n erzeugen.
Beweis: Wähle m maximal, so daß C, CA, CA2 , . . . , CAm−1 linear unabhängig ist.
Im Fall m < n ergänze C, CA, CA2 , . . . , CAm−1 zu einer Basis von IFnq und betrachte das
lineare System nach Transformation in diese Basis, analog dem folgenden Fall.
Wir beschränken uns hier auf den Fall m = n: Die Matrix


C
 CA 


 CA2 
T := 



..


.
n−1
CA
ist dann regulär. Dann ergibt sich:
T AT −1




= 



mit
CAn−1
0
0
0
..
.


C
CA
CA2
..
.
1
0
0
..
.






·A·




0
1
0
..
.
C
CA
CA2
..
.
CAn−1
0
0
1
..
.




= 


 0
0
0
0
cn cn−1 cn−2 cn−3
−1










=


CA
CA2
CA3
..
.
CAn

... 0
... 0 

... 0 

.. 
..
. . 

... 1 
. . . c1
(cn , ..., c1 ) = C · An · T −1 .
C · T −1 = (10...0)
 
 
 
 
·
 
 
C
CA
CA2
..
.
CAn−1
−1






4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER
43
Beachte bei den obigen Umformungen, daß





C
CA
..
.
CAn−1
 
 
 
·
 
C
CA
..
.
CAn−1
−1







=

e1
e2
..
.
en





also insbesondere CAi · T −1 = ei+1 für i = 0, . . . , n − 1. Dabei bezeichnet ei den i-ten
Einheitsvektor der Länge n.
Die Matrix T AT −1 ist identisch mit der Rückkopplungsmatrix eines LFSR aus (4.2).
Da, wie wir gesehen haben, die Ausgabefolge durch die Veränderung des Systems mittels
T unberührt bleibt, d.h. y(t) = C · x(t), folgt die Behauptung.
Betrachtet man die von einem LFSR erzeugten Folgen, so stellt man fest, daß sich die
Folgenglieder aj für alle j ≥ n aus untenstehender Rekursionsgleichung ergeben:
an+k =
n
X
ci an+k−i
i=1
k ∈ IN0 .
(4.3)
Dies ist äquivalent zu:
0=
n
X
i=0
ci an+k−i
k ∈ IN0 , wobei c0 : = −1.
(4.4)
Die Gleichung 4.4 ist die lineare Rekursion für SR-Folgen und spielt eine große Rolle. Jede
Folge (ai )∞
i=0 , für die für geeignetes n und Koeffizienten c1 , ..., cn die Gleichung 4.4 gilt, ist
eine SR-Folge und umgekehrt.
Man erkennt ferner die Ähnlichkeit von (4.4) zum zugehörigen Rückkopplungspolynom
n
n
P
P
f (x) = 1 −
ci xi = − ci xi mit c0 = −1.
i=1
i=0
Neben dem Rückkopplungspolynom f (x) oder der Rückkopplungsmatrix A aus (4.2)
zur Beschreibung von LFSR wird zuweilen auch das charakteristische Polynom von A
verwendet. Dabei besteht folgender Zusammenhang, den wir als Satz formulieren.
Satz 4.7 Gegeben sei ein LFSR mit Rückkopplungspolynom f (x) = 1 −
cn 6= 0, und Rückkopplungsmatrix A. Dann gilt:
1
χA (x) = x · f
x
n
Dies bedeutet, daß χA (x) das zu f (x) reziproke Polynom ist.
Pn
i
i=1 ci x ,
mit
44
KAPITEL 4. STROMCHIFFREN
Beweis:

0
 ..
 .

A =  ...

 0
cn
χA (x) : = det(xI
1
..
.
···
cn−1
− A)

··· 0
.
..
. .. 


..
. 0 

0 1 
0
..
.
..
.
···
···
c2
n
Für das charakteristische Polynom von A gilt χA = x −
Induktion nach n:
c1
n−1
X
cn−i xi . Dies zeigt man durch
i=0
n = 2: Es gilt:
det
x
−1
−c2 x − c1
= x(x − c1 ) − c2 = x2 − c1 x − c2 .
n − 1 → n: Wende den Entwicklungssatz für Determinanten an:




χA (x) = det 


x
0
..
.
0
−cn




= x · det 


−1
0 ···
0
..
..
..
..
.
.
.
.
..
..
..
.
.
.
0
···
0
x
−1
−cn−1 · · · −c2 x − c1
x
0
..
.
0
−cn−1
−1
..
.
..
.
···
−cn−2




n+1
+(−cn ) · (−1)
· det 



= x·
xn−1 −
n−2
X
i=0
|







0 ···
0
..
..
..
.
.
.
..
..
.
.
0
0
x
−1
· · · −c2 x − c1
−1
x
0
..
.
0
c(n−1)−i · xi
!








··· ··· 0
.. 
..
.
. 
.. 
.. ..
.
. . 


.. ..
.
. 0 
· · · 0 x −1
{z
}
0
..
.
..
.
..
.
=(−1)n−1
− cn
4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER
n
= x −
= xn −
= xn −
n−2
X
i=0
n−1
X
i=1
n−1
X
i=0
45
c(n−1)−i · xi+1 − cn
cn−i · xi − cn
cn−i · xi
Was die obige Formel für χA (x) zeigt.
Dies ist das reziproke Polynom zu f (x), da
!
n−1
n
n
X
X
X
n
n−i
n
−i
n
−1
n
=x −
ci x
=x −
cn−i xi ,
ci x
x · f (x ) = x 1 −
i=1
i=1
i=0
so erkennt man die Gleichheit mit χA (x), wobei cn 6= 0 sein muß.
Für praktische Implementierungen von Schieberegistern, vor allem in Hardware, ist
die oben eingeführte Form von LFSRs nicht so gut geeignet. Es müssen in jedem Takt die
Zustandsbits aufaddiert werden, bei denen das Rückkopplungspolynom einen Koeffizienten ungleich 0 hat. In VLSI führt das zu einer großen Schaltungstiefe und damit zu einer
langsamen Taktrate des ASICs. Eine andere Art dieselbe Folge zu erzeugen wird durch
eine Schaltung realisiert, bei der die (gleich vielen) Additionen besser parallelisierbar sind.
Diese Schaltung realisiert eine Multiplikation mit x modulo des charakteristischen Polyn−1
X
n
noms χA (x) = x −
cn−i · xi .
i=0
Definition 4.8 Die Schaltung aus Abb. 4.11 heißt Multiplikationsregister. Sie realisiert
n−1
X
n
in einem Taktzyklus die Multiplikation mit x modulo des Polynoms x −
cn−i · xi .
i=0
Satz 4.9 Die Folge (ai )i≥0 sei durch ein LFSR mit dem Rückkopplungspolynom f (x) =
n
X
1−
ci xi vom Grad n erzeugt. Dann läßt sich (ai )i≥0 auch durch ein Multiplikationsrei=1
gister modulo des Polynoms xn −
n−1
X
i=0
cn−i · xi erzeugen.
Beweis: Um die Äquivalenz der beiden Schaltungen zu zeigen benutzen wir die Äquivalenz
von linearen Systemen mit zueinander ähnlichen Übergangsmatrizen, die auf Seite 38
beschrieben ist.
46
KAPITEL 4. STROMCHIFFREN
x0
cn
x n-2
x1
cn-1
c2
x n-1
c1
Abbildung 4.11: Dieses Multipliktionsregister realisiert die Multiplikation mit x modulo
n−1
X
n
des Polynoms x −
cn−i · xi
i=0
Das Multiplikationsregister ist als lineares System beschrieben durch die Übergangsmatrix


0 0 . . . 0 cn
 1 0 . . . 0 cn−1 


. . ..

. . cn−2 
M :=  0 1

 . .

.
.
.. 
 .. . . . . 0
0 . . . 0 1 c1
und den Vektor D = (0, . . . , 0, 1) der Länge n, mit dem das Ausgabezeichen aus dem
internen Zustand berechnet wird. Jetzt kann man analog dem Beweis von Satz 4.6 vorgehen; dazu müßte allerdings e1 · M n · T −1 für die dort angegebene Matrix T berechnet
werden. Über eine andere Basistransformation läßt sich die Behauptung einfacher zeigen.
Die Matrix A zum LFSR ist in Gleichung 4.2 gegeben.
Betrachte nun die Matrix


0 ... 0
cn 0
 ..

 . . . . cn cn−1 0 


T :=  0 . . . . . .
...
...  .


 cn cn−1 . . . c2 0 
0
0 ... 0 1
Die Matix T ist wegen cn 6= 0 invertierbar.
Berechne nun mit der Begleitmatix A aus Gleichung 4.2:


0 ...
0
0
cn
 0 ...
0
cn cn−1 


 ..
..  = MT
..
..
..
TA =  .
.
.
.
. 


 0 cn cn−1 . . . c2 
cn cn−1 . . . c2
c1
4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER
47
womit die Ähnlichkeit der beiden Matrizen gezeigt ist.
Der Vektor, der aus dem internen Zustand des LFSR die Ausgabe berechnet ist
C = (1, 0, . . . , 0); durch die Schiebestruktur des LFSR liefert aber auch jeder andere
Einheitsvektor dieselbe Folge, lediglich der Start ist an einer anderen Stelle.
Wegen der Blockdiagonalgestalt von T mit 2 Blöcken der Größe n − 1 bzw. 1 hat auch
−1
T diese Form.
Betrachtet man C = (0, . . . , 0, 1), dann berechnet sich der Auswahlvektor des Multiplikationsregisters zu T −1 · C = (0, . . . , 0, 1), was zu zeigen war.
Um diese Äquivalenz für die Analyse von Schieberegistern ausnutzen zu können führen
wir zunächst die algebraische Struktur eines endlichen Körpers ein.
4.2.3
Endliche Körper und Schieberegister
.
Satz 4.10 Es sei p Primzahl, dann ist IFp := Z/ p Z/ ein Körper mit p Elementen.
Beweis: Die Abgeschlossenheit liefert die Ringstruktur. Die Existenz des Inversen zu
1 ≤ a ≤ p−1 wird über den erweiterten euklidschen Algorithmus gezeigt: 1 = ggT (a, p) =
a b + c p und damit 1 ≡ a b mod p.
Lemma 4.11 Es sei p Primzahl, f, g ∈ IFp [x], dann gilt
(f + g)p = f p + g p .
Beweis: Beachte
0 mod p.
p
i
=
p·(p−1)·...·(p−i+1)
1·2·...·i
ist für i = 1, . . . , p − 1 durch p teilbar und deshalb
n
Satz 4.12 Es sei p Primzahl, n ≥ 1 und N die Menge der Nullstellen von xp −x ∈ IFp [x]
im Zerfällungskörper.
Dann gilt: N ist ein Körper mit pn Elementen.
n
n
Beweis: Es seien α, β ∈ N, dann gilt αp = α und β p = β. Damit berechnet man:
n
• (α ± β)p = αp ± β p = α ± β
n
n
n
• (α · β)p = αp · β p = α · β
n
n
n
n
n
• αp = α ⇒ αp −2 = α−1 wobei die Rechnung im Zerfällungskörper von xp − x
durchgeführt wird (dort ist auch die Existenz von α−1 gesichert).
n
αp −2 ∈ N ergibt sich direkt.
48
KAPITEL 4. STROMCHIFFREN
Weiter sind die neutralen Elemente 0, 1 in N enthalten, so daß nur noch zu zeigen bleibt:
n
#N = pn , also daß alle Nullstellen von xp − x verschieden sind. Betrachte dazu die
Ableitung
′
n
n
xp − x = pn · xp −1 − 1 = −1 6= 0.
n
Daher hat xp − x keine mehrfachen Nullstellen.
.
Satz 4.13 Es sei f (x) ∈ IFp [x] irreduzibel vom Grad n. Dann gilt: IFp [x] (f (x)) ist ein
Körper mit pn Elementen.
Beweis: Es sind die Körperaxiome nachzuprüfen. Als Quotientenring ist die Abgeschlossenheit bzgl. Addition/Multiplikation gesichert und es bleibt lediglich die Existenz von
Inversen zu zeigen.
Es sei a(x) ∈ IFp [x] \ {0} vom Grad kleiner n. Aus der Irreduzibilität von f (x) läßt
sich über den euklidschen Algorithmus q1 (x), q2 (x) ∈ IFp [x] berechnen mit
1 = ggT (f (x), a(x)) = q1 (x) · f (x) + q2 (x) · a(x) ≡ q2 (x) · a(x) mod f (x),
was die Existenz von a−1 zeigt.
Beobachtung 4.14 Die Folge (ai )i≥0 sei durch ein Multiplikationsregister mit Anfangszustand (α0 , . . . , αn−1 ) und Rückkopplungspolynom f (x) erzeugt. Dann ist ai = (α · xi )n
n−1
.
X
i
I
F
[x]
p
die letzte Komponente von α · x ∈ IFpn ≡
αi xi .
(f (x)), wobei α =
i=0
Im folgenden stellen wir noch einige Rechenregeln und Eigenschaften von endlichen
Körpern und Polynomen über endlichen Körpern zusammen.
n
Lemma 4.15 Es sei α ∈ IFpn , dann gilt αp = α.
Beweis: Für 0 ist die Gleichung offensichtlich erfüllt.
Alle Elemente α 6= 0 bilden eine multiplikative Gruppe; nach dem kleinen Satz von Fermat
n
gilt also αp −1 = 1.
Bemerkung 4.16 Es sei f (x) ∈ IFp [x] und α Nullstelle von f (x). Dann ist auch αp
Nullstelle von f (x) für alle j ≥ 0.
j
Beweis: Es gilt:
0=
n
X
i=0
i
ai α =
n
X
i=0
ai α
i
!p
=
n
X
i=0
api
α
ip
=
n
X
ai (αp )i ,
i=0
wobei in der letzten Umformung für api = ai Lemma 4.15 verwendet wurde.
Mit diesen Hilfsmitteln können wir den Satz über die Existenz und Eindeutigkeit von
endlichen Körpern zeigen.
4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER
49
Satz 4.17 Es sei p Primzahl und n ≥ 1. Dann existiert ein Körper mit pn Elementen
und alle Körper mit pn Elementen sind isomorph.
Beweis: Die Existenz wurde bereits in Satz 4.12 gezeigt. Sei α ∈ IF, einem Körper mit
n
n
pn Elementen, dann gilt αp = α. Daher läßt sich α als Nullstelle des Polynoms xp − x
n
in den Zerfällungskörper von xp − x einbetten. Da Zerfällungskörper bis auf Isomorphie
eindeutig sind, ist die Behauptung bewiesen.
Eine, z. B. für die Darstellung von LFSR-Folgen, sehr hilfreiche Abbildung ist die Spur
eines Körperelements.
Definition 4.18 Die Abbildung
trn,p : IFpn → IFp
n−1
X
i
β 7→
βp
i=0
heißt die Spur (trace) von β über IFp .
Um zu verifizieren, daß die Spur von β über IFp tatsächlich in IFp liegt, betrachten wir
!p n−1
n−1
n−1
X i+1 X
X
i
p
pi
p
βp .
β
=
=
trn,p (β) =
β
i=0
i=0
i=0
Damit ist trn,p (β) ∈ IFp , da ein Element γ ∈ IFp gdw. γ p = γ.
Die Spur nimmt alle Werte aus IFp gleich häufig an. Dies zu zeigen ist etwas aufwendiger, für unsere Zwecke genügt aber das folgende, sehr einfach zu beweisende Lemma:
Lemma 4.19 In jedem endlichen Körper IFpn existiert ein α ∈ IFpn mit trn,p (α) 6= 0.
Beweis: Wir betrachte das Polynom
n−1
X
i=0
i
xp ∈ IFp [x]. Als Polynom von Grad pn−1 hat es
maximal pn−1 verschiedene Nullstellen, also gilt für mindestens pn − pn−1 der Elemente
α ∈ IFpn , daß trn,p (α) = f (α) 6= 0.
Die Spur ist eine IFp -lineare Abbildung. Dies zeigt der folgenden Satz.
Satz 4.20 Für die Spur von β über IFp gilt:
trn,p (aα + bβ) = a · trn,p (α) + b · trn,p (β) ∀a, b ∈ IFp , ∀α, β ∈ IFpn
Beweis: Kann durch direktes Nachrechnen durchgeführt werden. Es werden dabei die
obigen Rechenregeln in endlichen Körpern benötigt.
Um eine einfache Beschreibung von Schieberegisterfolgen über die Spurabbildung von
endlichen Körpern zeigen zu können benötigen wir noch das folgende Lemma:
50
KAPITEL 4. STROMCHIFFREN
Lemma 4.21 Es sei α ∈ IFpn Nullstelle eines irreduziblen Polynoms f (x) ∈ IFp [x] vom
Grad n und β ∈ IFpn , dann gilt:
trn,p (α0 · β) = trn,p (α1 · β) = . . . = trn,p (αn−1 · β) = 0
⇒
β = 0.
Beweis: Es sei β 6= 0 mit trn,p (α0 ·β) = trn,p (α1 ·β) = . . . = trn,p (αn−1 ·β) = 0 und γ ∈ IFpn
n−1
X
−1
ci αi wird als Linearkombination der Basiselemente
beliebig. Das Element β · γ =
i=0
α0 , . . . , αn−1 dargestellt (mit c0 , . . . , cn−1 ∈ IFp ). Dann folgt:
! n−1
n−1
X
X
trn,p (γ) = trn,p (β · β −1 · γ) = trn,p
ci · α i · β =
ci · trn,p αi · β = 0
i=0
i=0
für alle γ ∈ IFpn , was Lemma 4.19 widerspricht.
Nun können wir den folgenden Satz formulieren, der die Beziehung zu LFSR-Folgen
herstellt:
Pn−1
Satz 4.22 Es sei f (x) = xn − i=0
cn−i ·xi ∈ IFp [x] das irreduzible Rückkopplungspolynom
eines Multiplikationsregisters der Länge n und α ∈ IFpn eine Nullstelle davon, dann sind
die von dem Multiplikationsregister erzeugten Folgen genau die Folgen
aj = trn,p (δαj ),
j ≥ 0.
(Der Anfangszustand des Registers steht in direkter Beziehung zu δ ∈ IFpn .)
Beweis: Zunächst zeigen wir, daß die Folge (aj )i≥0 der Schieberegisterrekursion 0 =
n
X
ci · an+j−i genügt:
i=0
n
X
i=0
ci · an+j−i =
=
n
X
i=0
n−1
X
k=0
=
=
ci
n−1
X
k=0
n−1
X
k=0
δp
n−1
X
k=0
n
X
k
i=0
δαn+j−i
k n+j−i
ci α p
k
δ p · α(p
k
pk
δ p · α(p
k) j
n
X
i=0
k) j
·0
k n−i
ci α p
k
da mit α auch αp Nullstelle des
charakteristischen Polynoms ist
= 0
Damit ist gezeigt, daß aj eine LFSR-Folge zum Polynom f (x) ist.
4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER
51
Seien nun umgekehrt b0 , . . . , bn−1 die ersten n Glieder einer LFSR-Folge zu f (x). Man
betrachte das lineare Gleichungssystem für c0 , . . . , cn−1 :
b0 =
b1 =
..
.
bn−1 =
n−1
X
i=0
n−1
X
i=0
n−1
X
i=0
ci · trn,p (αi )
= trn,p
ci · trn,p (αi+1 )
= trn,p
ci · trn,p (αi+n−1 )
Die zugeordnete Matrix





n−1
X
i=0
n−1
X
i=0
= trn,p
n−1
X
i=0
trn,p (α0 )
trn,p (α1 )
..
.
...
...
ci · α i
!
ci · αi+1
=: trn,p δ · α
!
= trn,p δ · α
ci · αi+n−1
trn,p (αn−1 )
trn,p (αn )
..
.
trn,p (αn−1 ) . . . trn,p (α2 n−2 )
0
!
!
!
1
= trn,p δ · α
n−1
!





ist invertierbar. Um dies zu sehen betrachten wir eine Linearkombination der Zeilen die
(0, . . . , 0) ergibt:
!
n−1
n−1
X
X
= 0;
di trn,p αi
di α i
= trn,p α0
i=0
i=0
!
n−1
n−1
X
X
= 0;
di trn,p αi+1
= trn,p α1
di α i
i=0
..
.
n−1
X
i=0
i=0
di trn,p α
i+n−1
= trn,p αn−1
n−1
X
i=0
di α i
!
= 0.
Pn−1
di αi = 0 und damit d0 = . . . = dn−1 = 0.
Nach Lemma 4.21 folgt i=0
Damit istP
das Gleichungssystem eindeutig lösbar. Sei (ĉ0 , . . . , ĉn−1 ) diese Lösung, dann
n−1
ĉi · αi , daß bj = trn,p (δ αj ) für j = 0, . . . , n − 1 und die LFSR-Folge ist
gilt für δ := i=0
in der geforderten Form dargestellt.
Das Rückkopplungspolynom des LFSR entspricht hier dem definierenden Polynom des
endlichen Körpers, der Anfangszustand dem Koeffizienten δ.
Um die Verbindung zwischen der Periode eines LFSR und Eigenschaften der Rückkopplungspolynome herzustellen zitieren wir den folgenden Satz (ohne Beweis):
Satz 4.23 Es sei f (x) ∈ IFp [x] irreduzibel vom Grad n. Dann gilt
n
f (x) | xp − x .
52
KAPITEL 4. STROMCHIFFREN
Korollar 4.24 Es sei f (x) ∈ IFp [x] irreduzibel vom Grad n und α eine Nullstelle von
f (x) im Zerfällungskörper. Dann sind alle Nullstellen von f (x) einfach.
2
n−1
(Dies sind α, αp , αp , . . . , αp .)
Beweis: Es gilt
Y
n
f (x) | xp − x =
(x − β).
β∈IFpn
Also ist f (x) Produkt von paarweise verschiedenen Linearfaktoren.
Korollar 4.25 Es sei f (x) ∈ IFp [x] irreduzibel vom Grad n. Dann haben alle Nullstellen
von f (x) dieselbe Ordnung.
Beweis: Es sei α eine Nullstelle von f (x) der Ordnung e. Es gilt dann:
1 = αe = (αe )p = (αp )e
n
und damit ord αp ≤ ord α. Iteriertes Anwenden und Benutzen von αp = α liefert:
n
e = ord α ≥ ord αp ≥ . . . ≥ ord αp = e,
was die Behauptung zeigt.
Wegen dieser Eindeutigkeit der Ordnung der Nullstellen von irreduziblen Polynomen
können wir die Ordnung eines irreduziblen Polynoms wie folgt definieren:
Definition 4.26 Es sei f (x) ∈ IFp [x] irreduzibel und α eine Nullstelle von f (x) im
Zerfällungskörper. Dann heißt ord f (x) := ord α die Ordnung von f (x).
Bemerkung 4.27 Es sei f (x) ∈ IFp [x] irreduzibel das charakteristische Polynom eines
Schieberegisters S, dann hat jede von S erzeugte Folge ungleich der Nullfolge die Periode
ord f (x).
Beweis: Es sei (bi )i≥0 mit bi = trn,p (δ · αi) eine von S erzeugte Folge ungleich der Nullfolge mit Periode k, wobei α eine Nullstelle des Polynoms f (x) von Grad n ist. Damit ist
offensichtlich k ein Teiler der Ordnung der Nullstelle α von f (x), also auch der Ordnung
von f (x).
Es bleibt noch zu zeigen, daß die Periode
k von S nicht kleiner als die Ordnung von
l
i
i+k
f (x) ist. Es gilt trn,p α δ · α − δ · α
= bi+l − bi+l+k = 0 für l = 0, . . . , n − 1. Nach
i
i+k
Lemma 4.21 folgt daraus δ · α − δ · α
= 0 und damit αi = αi+k , was die Behauptung
zeigt.
Definition 4.28 Ein irreduzibles Polynom f (x) ∈ IFp [x] vom Grad n heißt primitiv, falls
es die Ordnung pn − 1 hat.
4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER
53
Ohne Beweis zitieren wir den folgenden
Satz 4.29 Die multiplikative Gruppe IF∗pn eines endlichen Körpers ist zyklisch.
Korollar 4.30 Die Anzahl der normierten primitiven Polynome f (x) ∈ IFp [x] vom Grad
ϕ (pn − 1)
n ist
, wobei ϕ (m) := |{1 ≤ j < m mit ggT (m, j) = 1}| die eulersche ϕ-Funktion
n
bezeichnet.
n
Beweis: Es sei α primitives Element von IFpn , also IF∗pn = α, α2 , . . . , αp −1 = 1 . Alle
primitiven Elemente von IFpn sind genau die ϕ (pn − 1) vielen αi für diejenigen i mit
ggT (i, pn − 1) = 1. Das Minimalpolynom eines jeden dieser Elemente ist primitiv vom
Grad n und hat n verschiedene Nullstellen.
Definition 4.31 Eine LFSR-Folge mit einem primitiven charakteristischen Polynom f (x) ∈
IFp [x] heißt m-Folge. Sie hat die maximale Periode pn − 1.
4.2.4
m-Folgen als Pseudozufallsfolgen
Eine große Periode ist natürlich nur eine der notwendigen Voraussetzungen für die Eignung
einer Folge als Schlüsselfolge einer sequentiellen Chiffre. Die erzeugte Folge soll schließlich
eine Approximation einer zufälligen Schlüsselfolge sein, wie sie im one-time-pad benutzt
wird. In Abschnitt 4.1.1 wurden Kriterien zur Beurteilung der Güte der Approximation
von zufälligen Folgen durch pseudozufällige Folgen erörtert. Ausführlich wurden dort die
drei von S.W.Golomb angegebenen Pseudozufallskriterien G1, G2 und G3 vorgestellt.
Golomb hat gezeigt, daß die Klasse der maximalen Schieberegisterfolgen diese Kriterien
erfüllt (siehe [59]).
Satz 4.32 m-Folgen über IF2 erfüllen die drei Golombschen Axiome.
Beweis: Der Beweis ist elementar und beruht im wesentlichen auf der angenehmen Eigenschaft, daß bei der Erzeugung einer maximalen Folge das Schieberegister alle Zustände
mit Ausnahme des Nullzustandes durchläuft, so daß man die jeweils interessierenden Anzahlen ziemlich leicht ermitteln kann.
G1: (0-1-Verteilung)
Man erkennt sofort, daß in einem Schieberegister der Länge n mit primitivem
Rückkopplungspolynom während eines vollständigen Zyklus ein Zustand der Form
1XXXX...X (wobei X als Platzhalter für 0 oder 1 steht) 2n−1 mal auftritt. Da der
Nullzustand ausgeschlossen ist gibt es nur 2n−1 −1 Zustände der Form 0XXXX...X.
Da das jeweils vorderste Bit als nächstes Glied der erzeugten Folge ausgegeben wird,
ergeben sich daraus die entsprechenden Anzahlen für Einsen und Nullen in einer maximalen Schieberegisterfolge.
54
KAPITEL 4. STROMCHIFFREN
G2: (run-Verteilung)
Das Abzählen der runs eines Zyklus ist etwas aufwendiger, aber ebenso elementar.
Da einmal der Zustand 1111...1 auftritt, existiert ein run von Einsen der Länge n in
der zugehörigen Folge. Jeder Zustand wird aber genau einmal angenommen, so daß
es keine runs von Einsen oder Nullen größer als n geben kann. Daher sind die beiden
Zustände 0111...1 und 1111...10 notwendigerweise Vorgänger bzw. Nachfolger des
Zustands 1111...1, so daß die Folge keinen run von Einsen der Länge n − 1 enthalten
kann. Natürlich gibt es keinen run von Nullen der Länge n, da dieser nur durch
den Nullzustand entstehen könnte. Aus dem Zustand 1000...0 ergibt sich aber die
Existenz von genau einem run von Nullen der Länge n − 1. Für jedes k ≤ n − 2
kann nun die Anzahl der k bit langen runs von Einsen wie folgt abgezählt werden.
Bei der Erzeugung eines runs von Einsen der Länge k muß das Schieberegister einen
Zustand der Form
0 |11...1
| {z }
{z } 0 XX...X
k
n−k−2
annehmen. Pro Zyklus gibt es genau 2n−k−2 verschiedener solcher Zustände und
damit die gleiche Anzahl von runs von Einsen der Länge k. Die Anzahl der runs
von Nullen der Länge k bestimmt man in völlig analoger Weise ebenfalls zu 2n−k−2.
Damit ist gezeigt, daß die maximale Schieberegisterfolge das zweite Golombsche
Kriterium erfüllt.
G3: (Autokorrelation)
Für den Beweis, daß auch G3 erfüllt ist, hilft die folgende, einfache Beobachtung:
Es seien ai = trn,2 (δ1 · αi ) und bi = trn,2 (δ2 · αi) die Glieder zweier Folgen, die
von demselben LFSR erzeugt werden. Dabei ist α Nullstelle des charakteristischen
Polynoms. Dann sind die Summenfolge und jede um τ ∈ IN verschobene Folge
(ai +bi = trn,2 ((δ1 + δ2 ) · αi ) und ai+τ = trn,2 ((δ1 · ατ ) · αi )) auch vom selben LFSR
erzeugt.
Sei nun (ai )i≥0 eine m-Folge und (ai+τ )i≥0 deren Verschiebung um τ . Um die Anzahl der übereinstimmenden Glieder der beiden Folgen zu bestimmen, genügt es,
die Summe (ai + ai+τ )i≥0 zu betrachten. Diese ist nach dem oben Gesagten aber
wiederum eine durch dasselbe Schieberegister erzeugbare m-Folge. Die Anzahl der
Nullen in der Summe und damit die Anzahl der Übereinstimmungen zwischen der
Folge (ai )i≥0 und ihren Verschiebungen ist damit 2n−1 − 1. Als Wert für die Autokorrelationsfunktion ergibt sich also
C(τ ) =
2n−1 − 1 − 2n−1
−1
= n
n
2 −1
2 −1
für alle τ 6= 0, womit die Gültigkeit von Kriterium G3 nachgewiesen ist.
4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER
4.2.5
55
Kryptographische Stärke von Schieberegisterfolgen
Eine der wichtigsten Fragen bei der Beurteilung eines Pseudozufallsgenerators für Stromchiffren ist die Vorhersagbarkeit der erzeugten Folgen. Linear rückgekoppelte Schieberegister, wie sie im vorigen Abschnitt eingeführt wurden, erzeugen zwar Folgen großer Periode
mit guten Verteilungseigenschaften, sind aber, wie wir im Verlauf dieses Abschnittes sehen werden, viel zu leicht vorhersagbar, um als Schlüsselfolgengeneratoren Verwendung
finden zu können.
Satz 4.33 Die Kenntnis von 2 · n konsekutiven Gliedern einer von einem LFSR der
Länge n erzeugten Folge (ai )i≥0 genügt, um das Rückkopplungspolynom f (x) und damit
die gesamte Folge zu berechnen.
Beweis: Man betrachte die folgende Rekursionsgleichung nach Gleichung (4.3) für n
aufeinanderfolgende Glieder:
ak+n
=
n
X
i=1
ak+n+1
=
n
X
ci · ak+n+1−i
n
X
ci · ak+2n−1−i
i=1
..
.
ak+2n−1 =
ci · ak+n−i
i=1
Kennt man die Folgenglieder ak , ..., ak+2n−1 , dann erhält man ein n-dimensionales lineares
Gleichungssystem für die n Unbekannten c1 , ..., cn .





ak+n
ak+n+1
..
.
ak+2n−1


 
 
=
 
|
ak+n−1
ak+n
..
.
ak+n−2
ak+n−1
..
.
···
···
..
.
ak
ak+1
..
.
 
 
 
·
 
ak+2n−2 ak+2n−3 · · · ak+n−1
{z
}
:=Ak
c1
c2
..
.
cn





Die n Zeilen der Matrix Ak sind linear unabhängig, wenn die gegebene Folge (ai ) nicht
auch von einem linear rückgekoppelten Schieberegister einer kürzeren Länge als n erzeugt
wurde. Denn in diesem Fall wird jedes ai der Folge als Linearkombination von ai−1 , ..., ai−n
gebildet, wobei n die minimale Anzahl von Folgengliedern ist, die als Linearkombination
ai , i ≥ n ergeben. Das bedeutet, daß das Gleichungssystem eindeutig lösbar ist.
Die eindeutige Lösung kann mit wohlbekannten Verfahren, wie etwa der Gauß-Elimination oder der Matrix-Inversion von Ak gefunden werden.
56
KAPITEL 4. STROMCHIFFREN
Wenn in der Praxis der Kryptoanalyse die Zahl n unbekannt ist, aber ein Stück der
Schlüsselfolge vorliegt, wird man also schrittweise immer größere Gleichungssysteme aufstellen und die jeweilige lineare Abhängigkeit feststellen. Auch im Fall, daß nicht konsekutive Bits der Schlüsselfolge bekannt sind, kann man versuchen, aus der wie immer gearteten, vorliegenden Information eine hinreichende Anzahl von unabhängigen Gleichungen
für die Rückkopplungskoeffizienten aufzustellen und diese daraus zu bestimmen.
Der Aufwand für die Inversion der Matrix Ak beträgt O(n3 ). Der Algorithmus von
Berlekamp und Massey (vgl. [83], der vor allem auch in der Codierungstheorie eingesetzt
wird, erlaubt es, das obige, ziemlich spezielle Gleichungssystem mit einem Aufwand von
O(n2 ) zu lösen.
4.2.6
Lineare Komplexität von Folgen
Die Tatsache, daß eine beliebige autonome Maschine durch ein LFSR simuliert werden
kann, gibt Anlaß zu der Frage, wie groß die Länge des kürzesten LFSR sein muß, das
dieselbe Folge wie diese Maschine erzeugt.
Definition 4.34 Sei a(n) = (a0 , ..., an−1 ) ∈ IFnp . Dann heißt die Länge des kürzesten
LFSR, das dieselbe Folge produziert, lineare Komplexität oder lineares Äquivalent der
Folge.
Es wird mit L(a(n) ) bezeichnet.
(n)
L a
: = min L ∈ {1, . . . , n} ∃c1 , ..., cL ∈ IFp :
L
X
∀j ∈ {L − 1, . . . , (n − 1)}: 0 = aj −
ci aj−i
i=1
Es ergeben sich sofort einige einfache Eigenschaften des linearen Äquivalents, die nachfolgend jeweils mit einer kurzen Begründung zusammengestellt sind.
(i) Sei (ai )i≥0 eine Folge, die von einem linear rückgekoppelten Schieberegister der
Länge n erzeugt wird. Da die lineare Komplexität die Länge des kürzesten Schieberegisters angibt, mit dem die Folge erzeugbar ist, ergibt sich sofort für alle k:
L(a(k) ) ≤ L(a(∞) ) ≤ n.
(4.5)
(ii) Jede endliche Folge der Länge k kann offensichtlich von einem Schieberegister der
Länge k erzeugt werden, ohne daß überhaupt eine Rückkopplungsfunktion benötigt
wird. Es gilt also:
L(a(k) ) ≤ k.
(4.6)
(iii) Mit einem einfachen Ringschieberegister der Länge k kann jede Folge mit Periode
k erzeugt werden, so daß gilt:
L((a(k) )∞ ) ≤ k.
(4.7)
4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER
57
(iv) Ein Schieberegister, das ein Anfangsstück a(k) der Länge k einer Folge erzeugt, kann
offensichtlich auch jedes kürzere Anfangsstück erzeugen. Es gilt also für alle k ′ ≤ k:
′
L(a(k ) ) ≤ L(a(k) ).
(4.8)
(v) Jede Folge, die aus k aufeinanderfolgenden Nullen und einer darauffolgenden Eins
besteht, kann nur von einem Schieberegister mit einer minimalen Länge von k + 1
erzeugt werden, da jedes lineare Schieberegister kürzerer Länge für die Erzeugung
der k aufeinanderfolgenden Nullen notwendigerweise den Nullzustand annehmen
müßte, von diesem aber nicht die darauffolgende Eins ausgegeben werden kann. Es
gilt also für alle k:
L(0k 1) = k + 1.
(4.9)
(vi) Eine nützliche Beziehung erhält man aus der Betrachtung der Summe zweier Schieberegisterfolgen. Seien die Anfangsstücke a(k) und b(k) gegeben. Dann existieren linear rückgekoppelte Schieberegister der Längen n := L(a(k) ) und m := L(b(k) ), die in
ihren ersten k Schritten die beiden Folgen erzeugen. Als lineare Systeme betrachtet
werden die Folgen durch die beiden Übergangsmatrizen




A=


0
1
..
..
.
.
..
.
0 ···
cn cn−1
0
..
.
..
.
···
···

··· 0
.
..
. .. 


..
. 0 

0 1 
c2
c1
(n)
mit den beiden Auswahlvektoren e1
Längen n bzw. m erzeugt.




und B = 


(m)
bzw. e1
0
1
..
..
.
.
..
.
0
···
dm dn−1
0
..
.
..
.
···
···
···
..
.
..
.
0
d2

0
.. 
. 

0 

1 
d1
der Gestalt (1, 0, . . . , 0) und den
Das lineare System mit der Blockdiagonalmatrix
A 0
0 B
(n)
(m)
als Übergangsmatrix und dem Auswahlvektor (e1 , e1 ) der Länge n + m erzeugt
die Folge (ai + bi )i≥0 . Dies liefert uns:
Es seien a(k) , b(k) Folgen, dann gilt die Ungleichung:
L(a(k) + b(k) ) ≤ L(a(k) ) + L(b(k) )
(4.10)
Diesen Eigenschaften sind hilfreich um Folgen zu untersuchen, die mit Hilfe von Schieberegistern erzeugt werden.
58
KAPITEL 4. STROMCHIFFREN
?
?
?
?
?
?
-
?
6
-
Abbildung 4.12: Summe zweier Schieberegisterfolgen
4.3
Konstruktion von Folgengeneratoren
In Abschnitt 4.2.5 wurde festgestellt, daß lineare Schieberegister als Pseudozufallsgeneratoren nicht genügend Sicherheit bieten, um sie zur Erzeugung von Schlüsselfolgen von
sequentiellen Chiffren einsetzen zu können. Nichtlineare Folgengeneratoren können dadurch realisiert werden, daß man die Rückkopplung statt als Summe einiger Registerzellen durch eine beliebige nichtlineare Funktion berechnet. Dieser naheliegende, allgemeine
Ansatz hat jedoch den Nachteil, daß eine befriedigende mathematische Analyse der Eigenschaften solcher nichtlinearer Rückkopplungen sehr schwierig ist. Um aber verläßliche
Aussagen über die kryptographische Stärke eines Verfahrens gewinnen zu können, ist seine
Analysierbarkeit unverzichtbar.
Es liegt nahe, von den gut zu beherrschenden linearen Schieberegistern auszugehen
und diese in geeigneter Weise durch nichtlineare Funktionen miteinander zu verknüpfen.
Dabei möchte man erreichen, daß zum einen die guten statistischen Eigenschaften linearer
Rekursionsfolgen erhalten bleiben, zum anderen aber der Aufwand für die Kryptoanalyse
viel höher wird als im linearen Fall. Die Verknüpfungsfunktionen sollten so gewählt sein,
daß beweisbare Aussagen über wichtige Eigenschaften der erzeugten Folgen gewonnen
werden können.
Das naheliegendste Beispiel einer Verknüpfung zweier Schieberegister ist die komponentenweise Addition. Eine solche Schaltung ist in Abbildung 4.12 dargestellt.
Nehmen wir an, die Folgen (ai )i≥0 und (bi )i≥0 seien zufällig und voneinander unabhängig
erzeugt und enthalten Nullen und Einsen mit gleicher Häufigkeit. Verknüpft man die
beiden Folgen durch ein XOR, so treten am Eingang des Addierers die Kombinationen
00, 01, 10 und 11 in etwa gleichhäufig auf, und man erhält als Summe eine gleichverteilte
Folge (ci )i≥0 = (ai + bi )i≥0 . Sind die Eingangsfolgen periodisch mit den Perioden pa und
pb , so besitzt die Folge (ci )i≥0 die Periode pc ≤ kgV(pa , pb ). In diesem Fall ist auch
die Berechnung einer guten oberen Schranke der, für die kryptographische Sicherheit
wichtigen, linearen Komplexität der resultierenden Folge sehr einfach.
In Abschnitt 4.2.6 auf Seite 57 wurde bereits die Schranke L(a(k) + b(k) ) ≤ L(a(k) ) +
L(b(k) ) gezeigt. Im Fall daß die charakteristischen Polynome einen echten gemeinsamen
Teiler haben läßt sich diese Schranke mit ähnlichen Mitteln verbessern:
Es seien f (x) = f1 (x) · h(x) und g(x) = g1 (x) · h(x) die charakteristischen Polynome
4.3. KONSTRUKTION VON FOLGENGENERATOREN
59
der Folgen (ai )i≥0 und (bi )i≥0 , wobei h(x) = ggT (f (x), g(x)) von positivem Grad.
Seien A1 , B1 , H die Begleitmatrizen von f1 (x), g1 (x) und h(x). Dann lassen sich (ai )i≥0
und (bi )i≥0 durch lineare Systeme mit den Übergangsmatrizen
A1 0
H 0
und
0 H
0 B1
beschreiben. Die Auswahlvektoren für die Ausgabe seien entsprechen der Blockzerlegung auch aufgeteilt in (C1 , C2 ) und (D1 , D2 ), d.h. C2 und D1 sind Vektoren der Länge
deg(h(x)).
Die Summenfolge kann dann durch das lineare System


A1 0 0
 0 H 0 
0 0 B1
mit dem Auswahlvektor (C1 , C2 + D1 , D2 ) realisiert werden.
Dies ist ein lineares System der Größe L(a(∞) ) + L(b(∞) ) − deg(h(x)). Dies ist in dem
folgenden Lemma zusammengefaßt.
Lemma 4.35 Die maximal mögliche lineare Komplexität von (ci )i≥0 = (ai + bi )i≥0 ist die
Summe der linearen Komplexitäten der Folgen (ai )i≥0 und (bi )i≥0 .
Sie kann erreicht werden, wenn die Rückkopplungspolynome fa und fb irreduzibel und
teilerfremd sind und keines der Register im Nullzustand gestartet wird.
Hat der gemeinsame Teiler von fa und fb einen Grad d ≥ 1, so reduziet sich die
maximal mögliche lineare Komplexität um d.
Das obige Lemma zeigt, daß die Verknüpfung von Schieberegisterfolgen durch Addition keinen wirklichen Zuwachs an Sicherheit bringen kann. Denn aus zwei Folgen mit den
linearen Komplexitäten na und nb , deren Rückkopplungskoeffizienten mit dem BerlekampMassey Algorithmus aus 2na bzw. 2nb Folgengliedern bestimmt werden können, erhält
man lediglich eine Folge, deren Koeffizienten sich eindeutig aus höchstens 2(na + nb )
Gliedern ergeben. Ein ebenso sicherer“ Generator hätte bei gleichem Aufwand durch
”
Verwenden eines einzigen linearen Schieberegisters der Länge na + nb aufgebaut werden
können. Auch ohne diese Rechnung dürfte es unmittelbar einleuchten, daß aus der additiven Verknüpfung linearer Schieberegister kein echter Zuwachs an linearer Komplexität
resultieren kann, da die Addition ihrerseits ein linearer Operator ist.
4.3.1
Nichtlineare Verknüpfung von Schieberegisterfolgen
Im Gegensatz zur Addition ist die komponentenweise Multiplikation, die im binären Fall
der UND-Verknüpfung entspricht, eine nichtlineare Operation. In Abbildung 4.13 ist das
Schaltbild eines Generators angegeben, der eine Pseudozufallsfolge als komponentenweises Produkt zweier linearer Rekursionsfolgen erzeugt. Dieser Generator wird sich allerdings in der Regel nicht für die Verschlüsselung von Daten eignen, da bei gleichverteilten,
60
KAPITEL 4. STROMCHIFFREN
?
?
?
?
?
?
?
6
•
-
-
Abbildung 4.13: Produkt zweier Schieberegisterfolgen
stochastisch unabhängigen Eingangsfolgen am Ausgang des UND-Gatters nur in einem
Viertel der Fälle eine Eins zu erwarten ist. Dennoch ist es wichtig, die Eigenschaften
der multiplikativen Verknüpfung zu kennen, da sie als Baustein für zusammengesetzte
Verknüpfungsfunktionen eingesetzt werden kann.
Die Bestimmung der linearen Komplexität einer durch Multiplikation verknüpften
Folge (ci )i≥0 = (ai · bi )i≥0 läßt sich durch die Darstellung der Folge über die Spurabbildung
zeigen.
Satz 4.36 Die maximal mögliche lineare Komplexität von (ci )i≥0 = (ai · bi )i≥0 ist das
Produkt der linearen Komplexitäten der Folgen (ai )i≥0 und (bi )i≥0 .
Sie wird erreicht, wenn die Rückkopplungspolynome fa und fb irreduzibel und verschieden sind, ggT (deg fa , deg fb ) = 1 und keines der Register im Nullzustand gestartet
wird.
Beweis: Sei deg fa (x) = n und deg fb (x) = m.
Nach Satz 4.22 lassen sich aj und bj wie folgt darstellen:
aj = trn,p (δαj )
bj = trm,p (εβ j )
mit α ∈ IFpn ist Nullstelle von fa∗
mit β ∈ IFpm ist Nullstelle von fb∗
Für cj folgt:
cj = aj · bj
n−1
m−1
X
X l
l
pi
j pi
εp (β j )p
=
δ (α ) ·
=
=
i=0
n−1
X m−1
X
l=0
i
l
i=0 l=0
n·m−1
X k k
p p
δ ε (αβ)j·p
k=0
i
δ p · εp (αj )p (β j )p
k
l
4.3. KONSTRUKTION VON FOLGENGENERATOREN
61
?
?
?
?
?
?
?
?
?
f
-
•
•
•
-
Abbildung 4.14: Verknüpfung von n Schieberegisterfolgen
Für ggT (n, m) = 1 ist IFpn·m der kleinste Erweiterungskörper von IFp , in dem sowohl die
Nullstellen von fa als auch von fb liegen. Dann gilt mit ξ := δ · ε und γ := α · β:
cj =
n·m−1
X
k=0
k
ξ p · (γ j )p
k
= trn·m,q (ξ · γ j )
Also ist cj nach Satz 4.22 eine Schieberegisterfolge, die von einem LFSR mit charakteristischem Polynom
m·n−1
Y Y
k
pi pl
∗
x − γp
(x − α β ) =
fc (x) =
i,l
k=0
erzeugt wird. Der Grad von fc (x) ist deg fc = n · m; dabei entsteht aus irreduziblen
Polynomen fa und fb ein irreduzibles Polynom fc .
Die additive und multiplikative Verknüpfung von Folgen sind die Bausteine für viele zusammengesetzte Verknüpfungsfunktionen. Wir betrachten im folgenden das Problem der
Verknüpfung von n Folgen durch eine boolesche Funktion in n Variablen, das in Abbildung 4.14 illustriert ist.
Zur Darstellung boolescher Funktionen gibt es verschiedene Möglichkeiten. Die wohl elementarste Beschreibung einer Funktion ist eine Wertetabelle, die im Fall einer n-stelligen
booleschen Funktion 2n Einträge hat. Aus der Wertetabelle einer Funktion läßt sich wiederum durch ein einfaches Verfahren eine Darstellung mit Hilfe von Konjunktion, Disjunktion und Negation gewinnen. Die Konstruktion zeigt auch, daß jede boolesche Funktion
eine solche Darstellung hat. Auf diese Thematik soll hier jedoch nicht weiter eingegangen
62
KAPITEL 4. STROMCHIFFREN
werden. Der interessierte Leser sei etwa auf [5] verwiesen. Die sogenannte algebraische
Normalform erhält man, indem man durch Anwenden der Beziehungen
A ∨ B = A + B + (A ∧ B)
¬A = A + 1
alle Disjunktionen und Negationen durch Additionen modulo 2 ersetzt. Da die Konjunktion der Multiplikation modulo 2 entspricht, schreiben wir im folgenden stets AB statt
A ∧ B.
Mit Hilfe der algebraischen Normalform kann das Studium beliebiger Verknüpfungsfunktionen auf die Grundoperationen Addition und Multiplikation zurückgeführt werden,
die wir bereits studiert haben.
R. Rueppel und O. Staffelbach [116] gelang es, die bisher allgemeinsten Voraussetzungen anzugeben, unter denen die lineare Komplexiät der gliedweise multiplizierten Folge
das Maximum annimmt. Als Folgerung erhält man ein wichtiges Ergebnis für die Synthese und Analyse von Pseudozufallsgeneratoren. Für die bequemere Formulierungen dieses
Satzes führen wir folgende Bezeichnung ein. Sei f (x1 , ..., xn ) eine boolesche Funktion in
algebraischer Normalform. f˜(x1 , ..., xn ) bezeichne dann diejenige ganzzahlige Funktion,
die man aus f erhält, wenn man die Additionen und Multiplikationen nicht modulo 2,
sondern im Ring der ganzen Zahlen ausführt.
Satz 4.37 Seien n maximale Schieberegisterfolgen durch die boolesche Funktion f verknüpft. Die Grade L1 , ..., Ln der (primitiven) Rückkopplungspolynome seien alle größer
als 2 und paarweise verschieden. Die am Ausgang von f entstehende Funktion hat dann
die lineare Komplexität f˜(L1 , ..., Ln ), falls alle Schieberegister nicht vom Nullzustand aus
gestartet werden.
Beispiel 4.38 Wir betrachten als Beispiel den Generator von Geffe in Abbildung 4.15.
Die Arbeitsweise dieses Generators läßt sich anschaulich so beschreiben, daß das mittlere Schieberegister über die beiden UND-Gatter und das ODER-Gatter jeweils eines der
beiden anderen Schieberegister zum Ausgang durchschaltet. Immer wenn das mittlere
Register eine Eins liefert, wird die Ausgabe des oberen Registers übernommen, bei Null
die des unteren. Damit wird erreicht, daß Nullen und Einsen am Ausgang mit gleicher
Häufigkeit auftreten, falls man für die Eingabefolgen Gleichverteilung und stochastische
Unabhängigkeit voraussetzen kann. Die Formel der dreistelligen Geffe-Funktion kann direkt aus Abbildung 4.15 abgelesen werden:
f (x0 , x1 , x2 ) = (x0 ∧ x1 ) + (¬x1 ∧ x2 )
oder in algebraischer Normalform:
f (x0 , x1 , x2 ) = x0 x1 + (x1 + 1)x2 = x0 x1 + x1 x2 + x2
4.3. KONSTRUKTION VON FOLGENGENERATOREN
?
?
?
?
?
?
?
?
?
63
?
6
?
•
6
•?
-
6
•
Abbildung 4.15: Der Generator von Geffe
Damit ist die lineare Komplexität für das Beispiel einer von einem Geffe-Generator, der
drei Schieberegister der Längen 19, 20 und 21 (mit primitiven Rückkopplungspolynomen)
verknüpft, erzeugten Folge
f˜(19, 20, 21) = 19 · 20 + 20 · 21 + 21 = 821
Mit 19 + 20 + 21 = 60 Schieberegisterzellen und einigen wenigen Gattern gelingt es
also, Pseudozufallsfolgen zu erzeugen, deren lineare Rekursion sich nur bei Kenntnis von
mindestens 2 · 821 = 1642 Gliedern bestimmen läßt. Da die algebraische Normalform
der Geffe-Funktion nicht symmetrisch ist, hängt die lineare Komplexität auch von der
Reihenfolge der Schieberegister ab. Mit einer günstigeren Anordnung hätte in diesem Fall
sogar ein etwas höherer Wert für die lineare Komplexität, nämlich 839, erzielt werden
können.
4.3.2
Taktgesteuerte Schieberegister
Bei den bisherigen Betrachtungen wurde stets angenommen, daß zu gewissen wohldefinierten Zeitpunkten alle beteiligten Schieberegister ihren jeweils neuen Zustand annehmen.
Dies geschieht in der Implementierung dadurch, daß jede Speicherzelle gleichzeitig durch
einen synchronen Taktimpuls zur Übernahme des an ihrem Eingang anliegenden Signals
veranlaßt wird. Über die Takterzeugung wurde bisher nichts gesagt und die Taktleitungen wurden in den Schaltbildern wie üblich zur Vereinfachung weggelassen. Man kann
diese Art der Taktsteuerung nun verallgemeinern, indem man zwar weiterhin einen synchronen Takt für alle Schieberegister zugrunde legt, jedoch die einzelnen Register mit
einem Taktsteuereingang versieht. Nur wenn an diesem Eingang eine Eins anliegt, wird
der Registerinhalt beim nächsten globalen Taktimpuls weitergeschoben, sonst bleibt er
unverändert. In Abbildung 4.16 ist das für ein taktgesteuertes Schieberegister verwendete
Symbol dargestellt.
64
KAPITEL 4. STROMCHIFFREN
?
?
?
?
Abbildung 4.16: Taktgesteuertes Schieberegister
?
?
?
?
?
?
?
?
?
?
?
?
Abbildung 4.17: Kaskade taktgesteuerter Schieberegister
Wird nun die Taktsteuerung eines linear rückgekoppelten Schieberegisters nicht ständig mit Eins belegt, der Ausgang aber wie bisher mit jedem globalen Impuls abgefragt,
so erhält man eine Folge, die aus der ursprünglichen Schieberegisterfolge dadurch hervorgeht, daß manche Folgenglieder mehrfach wiederholt werden. Es liegt nahe, den Taktsteuereingang des Schieberegisters mit einer Folge anzusteuern, die ihrerseits von einem
linearen Schieberegister erzeugt wird. Hierdurch erhält man eine weitere Möglichkeit zur
Verknüpfung von Schieberegistern. Die resultierende Pseudozufallsfolge kann nun als Ausgabefolge dienen oder zur Steuerung eines dritten Registers herangezogen und somit das
Verknüpfungsprinzip iteriert werden. Auf diese Weise erhält man eine Kaskadenschaltung taktgesteuerter Schieberegister, wie sie von P. Nyffeler in [100] vorgeschlagen und
untersucht wurde. In Abbildung 4.17 ist dieses Prinzip an einem Beispiel dargestellt.
Diese Schaltung liefert Folgen mit einer statistischen Verteilung, bei der längere runs
überdurchschnittlich häufig auftreten. Dies wurde bei der von D. Gollmann in [58] beschriebenen modifizierten Kaskadenschaltung behoben, indem in jeder Stufe Eingabe und
Ausgabe der Register addiert werden:
Betrachten wir ein Schieberegister mit einem variablen Takteingang; ist der Takteingang 1, so wird es weitergeschaltet, ist er 0, so bleibt das Register im aktuellen Zustand
stehen. solche taktgesteuerte Schieberegister können zu Kaskaden verbunden werden, in-
4.3. KONSTRUKTION VON FOLGENGENERATOREN
65
Abbildung 4.18: Eine Kaskade von Schieberegistern
dem die jeweils nachfolgende Stufe durch die Ausgabe der vorhergehenden Stufe getaktet
wird. Um ein überdurchschnittliches Auftreten von längeren runs zu vermeiden wird als
Ausgang einer jeden Stufe das XOR des Ausgangs des Registers und des Takteingangs
gewählt. Diese Kaskaden können als autonome Pseudozufallsgeneratoren dienen, wenn die
erste Stufe immer mit 1 getaktet wird. Eine solche Schaltung ist in Abbildung 4.18 zu
sehen und heißt stop-and-go Generator. Sie wurde von Gollmann [58] eingeführt und hat
eine große Periode und lineare Komplexität.
In Abschnitt 4.3.4 untersuchen wir die Resistenz dieser stop-and-go Generatoren gegenüber eines Korrelationsangriffs.
4.3.3
Korrelations-Immunität von Verknüpfungsfunktionen
Bisher wurde neben den statistischen Eigenschaften die lineare Komplexität der erzeugten Folgen als ein wichtiger Parameter für die Sicherheit eines Pseudozufallsgenerators
eingeführt und diskutiert. Es wurde auch durch Beispiele aufgezeigt, daß weder eine hohe
lineare Komplexität noch ein typischer Verlauf des Komplexitätsprofils die kryptographische Sicherheit einer Schlüsselfolge garantieren können. Im folgenden wird nun zunächst
eine Methode von T. Siegenthaler (vgl. [125]) erläutert, bei der aus einer nichtlinearen
Verknüpfung von Folgen durch Korrelationsanalyse die Parameter der einzelnen Schieberegister bestimmt werden. In gewissen Fällen kann dadurch der Aufwand zur Analyse
einer Folge trotz sehr hoher linearer Komplexität erheblich reduziert werden.
Als Beispiel wurde in Abschnitt 4.3.1 der Generator von Geffe vorgestellt, der drei
Folgen durch die nichtlineare Funktion
f (x0 , x1 , x2 ) = x0 x1 + x1 x2 + x2
verknüpft. Die Funktion f kann auf die in Abbildung 4.19 angegebene Weise als Wertetabelle geschrieben werden.
Man erkennt, daß die x0 -Spalte in sechs der acht Zeilen mit dem Funktionswert übereinstimmt. Wenn nun stochastisch unabhängige, gleichverteilte Zufallsfolgen den Eingängen x0 , x1 und x2 zugeführt werden, kann man daher erwarten, daß die Ausgangsfolge in
etwa 43 aller Fälle den gleichen Wert wie die Eingangsfolge von x0 hat. Beim Vergleich
zweier unabhängiger Zufallsfolgen wäre hingegen nur in der Hälfte der Fälle Übereinstimmung zu erwarten. Die gleiche Situation ergibt sich für die Eingangsfolge von x2 , während
66
KAPITEL 4. STROMCHIFFREN
X0
0
0
0
0
1
1
1
1
X1
0
0
1
1
0
0
1
1
X2
0
1
0
1
0
1
0
1
f (X0 , X1 , X2 )
0
1
0
0
0
1
1
1
Abbildung 4.19: Wertetabelle der Geffe-Funktion
man in der x1 -Spalte nur vier Übereinstimmungen mit dem Funktionswert beobachtet. Da
Folgen, die von verschiedenen, hinreichend langen Schieberegistern erzeugt werden, mit
ausreichender Näherung wie voneinander unabhängige Zufallsfolgen betrachtet werden
können, läßt sich dieser Effekt für die Kryptoanalyse des Geffe-Generators ausnutzen.
Die Ähnlichkeit zweier Folgen wird üblicherweise durch ihre Korrelation gemessen. Die
Korrelation C zweier Folgenabschnitte der Länge n berechnet sich aus der Zahl A der
übereinstimmenden und der Zahl D der nicht übereinstimmenden Folgenglieder nach der
Formel
C=
A−D
n
Der Erwartungswert für die Korrelation zweier unabhängiger Zufallsfolgen ist demnach
also Null. Zwei Folgen, die häufiger übereinstimmen, haben dagegen einen positiven Korrelationswert. Im Grenzfall völliger Übereinstimmung ist A = n, D = 0 und daher C = 1.
Umgekehrt erhält man bei weniger als n2 Übereinstimmungen eine negative Korrelation.
Der Betrag der Korrelation zweier Folgen ist daher ein Maß für deren Abhängigkeit. Im
obigen Beispiel sind die Ausgangsfolge des Generators und die Eingangsfolge von x0 (bzw.
x2 ) positiv korreliert.
Weiß man beispielsweise, daß ein Geffe-Generator vorliegt und daß der Eingang xi mit
einem linearen Schieberegister der Länge Li gespeist wird, so kann man die beschriebenen Zusammenhänge folgendermaßen für die Kryptoanalyse ausnutzen. Man berechnet
die Korrelation sämtlicher Folgen, die von einem Schieberegister der Länge L0 erzeugt
werden können, mit einem Stück bekannter Schlüsselfolge. Hat man die falschen Rückkopplungskoeffizienten oder den falschen Anfangszustand ausgewählt, so wird die damit
erzeugte Folge im allgemeinen keine signifikanten Übereinstimmungen mit der Schlüsselfolge aufweisen, was sich in einem geringen Wert der Korrelation ausdrückt. Für die
korrekten Parameter ergibt sich jedoch, wie oben gezeigt wurde, in 75% der Fälle eine
Übereinstimmung und damit ein Korrelationswert von 0,5 . Analoge Überlegungen gelten
für den Eingang x2 . Die Folge, die bei den Tests den höchsten Korrelationswert liefert, ist
demnach mit großer Wahrscheinlichkeit die tatsächliche Eingangsfolge, die an x0 oder x2
4.3. KONSTRUKTION VON FOLGENGENERATOREN
67
anliegt. Ist diese bekannt, so reduziert sich das Problem auf die Analyse einer Verknüpfung
von zwei Registern, die in diesem Fall auf die gleiche Weise durchgeführt werden kann.
Die Anzahl der zu testenden Fälle kann dabei allerdings immer noch sehr hoch sein.
Für ein Schieberegister der Länge L müssen die Korrelationen der Ausgangsfolge mit allen (2L − 1)λ(L) möglichen Eingangsfolgen berechnet werden, wobei λ(L) die Anzahl der
primitiven Rückkopplungspolynome vom Grad L ist. Dies kann für große L zwar einen hohen Aufwand erfordern, der jedoch geringer ist, als das vollständige Durchprobieren aller
Kombinationen der Parameter sämtlicher Schieberegister. Durch die nicht korrelationsimmune Verknüpfungsfunktion ergibt sich also eine für die Kryptoanalyse stets nützliche
Partitionierung des Schlüsselraumes. D.h. die vollständige Suche nach dem verwendeten
Schlüssel kann für gewisse Teilschlüssel unabhängig voneinander durchgeführt werden,
wodurch die Anzahl der zu testenden Möglichkeiten oft erheblich reduziert wird. Ist etwa
Mi die Anzahl der Folgen, die am Eingang xi auftreten können, so muß man, falls jede
Teilfolge positiv mit der Ausgangsfolge korreliert ist, statt maximal
nur mehr höchstens
M = M0 · M1 · · · · · Mn
M ′ = M0 + M1 + · · · + Mn
Schlüssel durchprobieren.
Funktionen, die wie im Beispiel Rückschlüsse von der Ausgangsfolge auf einzelne Eingangsfolgen erlauben, sind also aus den angeführten Gründen für Schlüsselfolgengeneratoren ungeeignet. Da offensichtlich jede Partition des Schlüsselraumes den Aufwand für die
vollständige Suche vermindert, möchte man auch vermeiden, daß solche Rückschlüsse auf
Teilmengen der Eingangsfolgen möglich sind. Dieses Problem wurde in [124] mit Begriffen
der Informationstheorie präzisiert. Da es hier um die Untersuchung von Eigenschaften
der Verknüpfungsfunktionen und nicht der kryptographischen Güte der Eingangsfolgen
geht, betrachtet man Verknüpfungen von Folgen, die von unabhängigen binären Quellen
S0 , ..., Sn−1 erzeugt werden.
Definition 4.39 Eine boolesche Funktion f (X0 , ..., Xn−1 ) heißt m-korrelationsimmun,
wenn
Z = f (X0 , X1 , ..., Xn−1)
statistisch unabhängig ist von dem Vektor
(Xi1 , ..., Xim ),
für jede Wahl von 0 ≤ i1 < i2 < . . . < im ≤ n − 1.
Dies ist äquivalent zur Forderung, daß man aus der Kenntnis einer beliebigen Menge
von m Eingangswerten von f keine Information über den resultierenden Ausgangswert
erhalten kann und umgekehrt. In [124] wurde weiter die Gültigkeit des folgenden Satzes
gezeigt.
68
KAPITEL 4. STROMCHIFFREN
Satz 4.40 Gegeben seien zwei m-korrelationsimmune Funktionen f1 (X0 , ..., Xn−1 ) und
f2 (X0 , ..., Xn−1 ) in n Variablen, deren Erwartungswerte gleich sind. Dann erhält man
durch die Verknüpfung
f (X0 , ., Xn ) = Xn · f1 (X0 , ., Xn−1 ) + (Xn + 1) · f2 (X0 , ., Xn−1)
eine m-korrelationsimmune Funktion f in n + 1 Variablen.
Mit obigem Satz erhält man ein einfaches, rekursives Verfahren zur Konstruktion korrelationsimmuner Verknüpfungsfunktionen für Schlüsselfolgengeneratoren.
Ungünstigerweise sind die Forderungen nach hochgradiger Korrelationsimmunität der
Verknüpfungsfunktion und nach einer hohen linearen Komplexität der damit erzeugten
Pseudozufallsfolgen nicht gleichzeitig erfüllbar. Es gilt nämlich für eine m-korrelationsimmune Funktion f in n Variablen vom Grad k die Ungleichung ([124]):
k + m < n,
k + m ≤ n,
falls m < n − 1
falls m = n − 1
Wie im vorigen Abschnitt dargelegt wurde, sind es jedoch gerade die Produkte hohen
Grades, die für eine hohe lineare Komplexität der Ausgangsfolge sorgen. Insbesondere folgt
aus dem zitierten Resultat, daß als (n − 1)-korrelationsimmune Funktion in n Variablen
nur lineare Verknüpfungsfunktionen möglich sind, die für kryptographische Anwendungen
natürlich von vornherein ausscheiden.
Eine Verbesserung der Situation ergibt sich, wenn man zu Schaltwerken mit Speicherzellen übergeht. Dies wurde von Rueppel in [114] vorgeschlagen und untersucht.
Dort wurde gezeigt, daß sich mit Schaltwerken mit nur einem Bit Speicher (n − 1)korrelationsimmune Verknüpfungen realisieren lassen, die Folgen maximaler linearer Komplexität erzeugen.
4.3.4
Korrelationsattacke auf taktgesteuerte Schieberegister
Wir untersuchen hier die Resistenz der in Abschnitt 4.3.2 eingeführten stop-and-go Generatoren gegenüber einem Korrelationsangriff. Dazu müssen wir zunächst den Generator
mathematisch modellieren.
Markov-Modell
In dem Markov-Modell für Kaskaden der Länge n sind die Zustände Vektoren der Länge
n, wobei die i-te Komponente dem Ausgabebit des i-ten Registers entspricht. Jeder Zustandswechsel wird mit seiner bedingten Wahrscheinlichkeit bezeichnet, vorausgesetzt es
wurde eine 0 beobachtet. Abbildung 4.20 zeigt das Modell für n = 2 mit den 4 Zuständen
(0, 0), (0, 1), (1, 0), (1, 1).
Befindet sich die Kaskade z. B. im Zustand (1, 1) (und wird eine 0 ausgegeben), so
ergibt sich als Eingabe des zweiten Registers eine 1, es wird also getaktet; die Ausgabe
von Register 1 ist auch eine 1, addiert mit dem Eingang desselben Registers muß sich
4.3. KONSTRUKTION VON FOLGENGENERATOREN
69
1
1/4
1/4
(0,0)
(0,1)
1/4
1/2
(1,0)
1/2
1/4
(1,1)
1/2
1/2
Abbildung 4.20: Ein Markov-Modell mit den Übergangswahrscheinlichkeiten
1 ergeben, der Eingang von Register 1 ist daher 0. Das zweite Register wird demnach
weitergeschaltet, das erste bleibt in seinem Zustand. Die beiden möglichen Folgezustände
(1, 0), (1, 1) treten mit derselben Wahrscheinlichkeit 12 auf.
Für größere Kaskaden ist dieses Modell sehr unübersichtlich; faßt man die Wahrscheinlichkeiten in einer Übergangsmatrix Mn zusammen, so läßt sich dieses Modell auch für
größere n noch gut handhaben. Der Eintrag an der Postion (i, j) gibt die Wahrscheinlichkeit, daß ein Zustandswechel von i nach j stattfindet, vorausgesetzt es wurde 0 am
Ausgang beobachtet. Dazu muß noch die Reihenfolge der Zustände festgelegt werden, wie
sie auf die Zeilen und Spalten der Matrix abgebildet werden:
Nehmen wir an, daß wir die Indizes von Mn−1 so geordnet haben, daß die Indizes
(Zustände) mit gerader Parität zuerst kommen. Wir nehmen zuerst die Zustände von
Mn , bei denen die erste Komponente 0 ist und die restlichen n − 1 gerade Parität haben,
dann die Zustände von Mn , bei denen die erste Komponente 1 ist, und die restlichen n − 1
ungerade Parität haben, dann die Zustände von Mn bei denen die erste Komponente 1
ist und die restlichen n − 1 Register gerade Parität haben, und schließlich die Zustände
von Mn , bei denen die erste Komponente 0 ist und die restlichen n − 1 Register ungerade
Parität haben. In jedem der vier Teile wir die Reihenfolge von Mn−1 rekursiv genauso
definiert.
Für n = 1 ist die Reihenfolge der Zustände 0, 1; für n = 2 ergibt sich die Ordnung zu:
(0, 0), (1, 1), (1, 0), (0, 1) und die Übrgangsmatrizen sind:
M1 =
1
2
2 .
1 1

4

1 .
M2 = 
4 2
1
.
2
.
1
.
2
2
1

.
. 
.
. 
1
70
KAPITEL 4. STROMCHIFFREN
Mit dieser etwas sonderbaren Ordnung ergibt sich die folgende rekursive Konstruktion
von Mk aus Mk−1 :
Lemma 4.41 Die Übergangsmatrix Mn =
Matrizen zerlegt. Dann gilt:
Mn+1

Ãn B̃n
C̃n D̃n
Ãn 0
 0 D̃n
=
 1
· Mn
2
sei für n ≥ 1 in vier 2n−1 × 2n−1 -

0 B̃n
C̃n 0 
.

1
· Mn
2
Beweis: Betrachten wir zunächst einen Zustand einer Kaskade der Länge n+1 mit gerader
Parität. Das Eingabebit muß dann 0 sein und das erste Register schaltet nicht.
Falls das erste Register eine 0 liefert, so haben die restlichen n Register gerade Parität;
die Eingabe dieser Register ist 0 und sie verhalten sich wie in Ãn und B̃n angegeben.
Falls das erste Register eine 1 ausgibt, so haben die restlichen Register ungerade Parität
und Eingabe 1; sie verhalten sich wie in C̃n und D̃n angegeben.
Im Fall ungerader Parität des Gesamtzustands ist die Eingabe in das erste Register
eine 1. Die Eingabe in die n restlichen Register ist mit Wahrscheinlichkeit jeweils 12 eine
0 oder eine 1. Daher verhält sich das Register wie in Mn spezifiziert, jedoch mit halber
Wahrscheinlichkeit.
Korrelationsattacke
In letzter Zeit sind einige Beiträge über erfolgreiche Korrelationsangriffe gegen (kurze)
Kaskaden erschienen [136, 86, 102]. Sie bauen darauf auf, daß sich bei einem Takteingang
0 das Register nicht ändert und deshalb eine Korrelation zwischen der Eingabefolge und
Wechseln in der Ausgabefolge besteht. Dieser Zusammenhang tritt verstärkt zu Tage,
wenn der Ausgang sich lange nicht geändert hat. Der Zustand nach k Übergängen wird
durch die Matrix Mnk beschrieben. Ist am Ausgang nicht ein run von 0 aufgetreten, sondern
ein run von 1, so ergeben dieselben Überlegungen eine ähnliche Matrix, die hier der
Einfachheit halber nicht betrachtet wird. Aus der folgenden Beobachtung ergibt sich die
Definition des Korrelationsvorteils:
Beobachtung/Definition 4.42 Setzen wir voraus, daß alle Zustände im Markov-Modell einer Kaskade der Länge n ≥ 1 zunächst dieselbe Wahrscheinlichkeit 21n haben. Die
Wahrscheinlichkeit wkn , daß die letzte Eingabe eine 0 war, nachdem ein run der Länge
k beobachtet wurde ist die Summe aller Zustände gerader Parität, nachdem k − 1 Zustandsübergange durchgeführt wurden. Es gilt also:
wkn =
1
· (1, . . . , 1) · Mnk−1 · (1, . . . , 1, 0, . . . , 0)t .
2n
4.3. KONSTRUKTION VON FOLGENGENERATOREN
71
wobei (v)t für den Vektor v transponiert steht und der letzte Vektor aus 2n−1 mal 1 und
2n−1 mal 0 besteht.
Der Abstand dieser Wahrscheinlichkeit von 12 gibt den Vorteil an, der für einen Korrelationsangriff existiert. Wir setzen den Korrelationsvorteil
∆nk := wkn −
1
.
2
Satz 4.43 Für den Korrelationsvorteil einer stop-and-go Kaskade der Länge n gilt, nachdem ein run der Länge k am Ausgang beobachtet wurde:
∆nk ≤ 2k−n−3.
Der Beweis dieses Satzes läßt sich mit linearer Algebra durchfüren. Der zentrale Punkt
dabei ist die rekursive Struktur der Übergangsmatrix Mn . Das Verhalten der Kaskade,
insbesondere das Ansammeln der Wahrscheinlichkeiten“ im (0, . . . , 0) Zustand nach vie”
len beobachten konstanten Ausgängen läßt sich in den hier angegebenen Potenzen von
M2 und M3 erkennen.
2
6
M2 = 6
4
2
26
M2 6
4
1.0
0.25
0.75
0.4375
2
1.0
5 6 0.8125
M2 6
4 0.96875
0.84277
2
1.0
10 6 0.98926
M2 6
4 0.99902
0.99023
2
6
6
6
6
6
M3 = 6
6
6
6
4
1.0
0.0
0.0
0.0
0.5
0.0
0.25
0.125
1.0
6 0.125
6
6 0.25
6
6 0.125
2
M3 = 6
6 0.75
6 0.0625
6
4 0.4375
0.2344
2
0.0
0.5
0.0
0.0
0.0
0.25
0.0
0.125
0.0
0.25
0.0
0.0625
0.0
0.1875
0.0
0.1094
1.0
0.0
0.5
0.25
0.0
0.5
0.0
0.25
0.0
0.25
0.0
0.1875
0.0
0.5
0.25
0.3125
0.0
0.03125
0.0
0.030273
0.0
0.00097656
0.0
0.00097561
0.0
0.0
0.5
0.25
0.0
0.25
0.25
0.125
0.0
0.125
0.25
0.25
0.0
0.25
0.1875
0.1719
0.0
0.5
0.5
0.25
0.0
0.15625
0.03125
0.12598
0.0
0.0097656
0.00097656
0.00879
0.0
0.0
0.0
0.25
0.0
0.0
0.0
0.125
0.0
0.0
0.0
0.0625
0.0
0.0
0.0
0.0469
0.0
0.0
0.5
0.25
0.5
0.0
0.25
0.125
0.0
0.125
0.5
0.3125
0.25
0.1875
0.3125
0.2031
3
0.0
0.0 7
7
0.0 5
0.25
3
0.0
7
0.0
7
5
0.0
0.0625
3
0.0
7
0.0
7
5
0.0
0.00097656
3
0.0
7
0.0
7
5
0.0
0.95367E − 6
0.0
0.0
0.0
0.25
0.0
0.25
0.0
0.125
0.0
0.0
0.0
0.125
0.0
0.0625
0.0
0.0781
0.0
0.5
0.0
0.0
0.0
0.25
0.25
0.125
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.125
0.0
0.375
0.0
0.0625
0.0
0.25
0.0625
0.1407
3
7
7
7
7
7
7
7
7
7
5
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0156
3
7
7
7
7
7
7
7
7
7
5
72
KAPITEL 4. STROMCHIFFREN
1.0
6 0.5957
6
6 0.8125
6
6 0.625
5
M3 = 6
6 0.96875
6 0.57031
6
4 0.84277
0.65134
2
2
6
6
6
6
6
10
M3 = 6
6
6
6
4
1.0
0.95313
0.98926
0.95809
0.99902
0.95216
0.99023
0.95906
0.0
0.03125
0.0
0.02539
0.0
0.03027
0.0
0.02634
0.0
0.00098
0.0
0.00097
0.0
0.00098
0.0
0.00097
0.0
0.09570
0.03125
0.08496
0.0
0.10059
0.03027
0.08102
0.0
0.00781
0.00098
0.00690
0.0
0.00782
0.00098
0.00689
0.0
0.0
0.0
0.00098
0.0
0.0
0.0
0.00095
0.0
0.0
0.0
0.95E − 6
0.0
0.0
0.0
0.95E − 6
0.0
0.2168
0.15625
0.21777
0.03125
0.24219
0.12598
0.19144
0.0
0.03613
0.00977
0.03215
0.00098
0.037
0.00879
0.03118
0.0
0.0
0.0
0.00488
0.0
0.00098
0.0
0.00394
0.0
0.0
0.0
0.00001
0.0
0.95E − 6
0.0
0.0000086
0.0
0.06055
0.0
0.04102
0.0
0.05566
0.00098
0.04495
0.0
0.00195
0.0
0.00189
0.0
0.0019417
0.95E − 6
0.0019
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.00003
3
7
7
7
7
7
7
7
7
7
5
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.93E − 9
3
7
7
7
7
7
7
7
7
7
5
Eigenschaften der stop-and-go-Schieberegister
Die entscheidenden Parameter beim Entwurf einer taktgesteuerten Schieberegisterkaskade
sind die Periode p einer Stufe und die Länge der Kaskade n. Die Periode und die lineare
Komplexität einer solchen Kaskade hängt im wesentlichen von der Anzahl der verwendeten
Schieberegisterzellen ab. Der Korrelationsvorteil hängt lediglich von der Anzahl der Stufen
ab. Es ist daher ein naheliegendes Entwurfskriterium, die Länge der einzelnen Register
klein zu halten und den Aufwand in die Anzahl der Stufen zu investieren.
Dies wird sehr gut durch das folgende Beispiel klar:
Beispiel 4.44 Vergleichen wir eine erste Kaskade aus n = 10 Registern der Länge 100,
d. h. p = 2100 − 1 und eine zweite Kaskade aus n = 100 Registern der Länge 10, d.h.
p = 210 − 1 und n = 100. Für eine Korrelationsattacke betrachten wir runs bis zur Länge
k = 20. Beide Kaskaden benutzen die gleiche Anzahl an Registerzellen.
1. Im ersten Fall ist die Periode der Kaskade nährungsweise 21000 , die lineare Komplexität nicht größer als 2907 und ∆10
20 = 0.39, so daß also ein Korrelationsangriff
möglich erscheint.
2. Im zweiten Fall ist die Periode der Kaskade mindestens 2990 , die lineare Komplexität
1
mindestens 2984 und ∆100
20 ≤ 283 . Ein erfolgreicher Korrelationsangriff ist unmöglich.
Kapitel 5
Blockchiffren
5.1
Grundsätzliches zu Blockchiffren
Bei Blockchiffren wird im Gegensatz zu sequentiellen Chiffren der Klartext vor der Verarbeitung in eine Folge von Blöcken fester Länge aufgeteilt, wobei die Verschlüsselungsoperation für jeden Block identisch ist.
Definition 5.1 Gegeben seien zwei endliche Alphabete A und B, m, n ∈ IN.
Eine Blockchiffre ist eine Abbildung
f : An → Bm ,
wobei f sinnvollerweise bijektiv ist.
Bei einer Blockchiffre handelt es sich im wesentlichen um eine monoalphabetische und
polygraphische Substitution von An nach Bm . Des weiteren stellt man unmittelbar fest:
• f ist unabhängig von der Zeit t oder der Nachricht m.
• Blockchiffren sind für eine bitserielle Verarbeitung nicht geeignet, da sich Verzögerungen ergeben. Sei t die Zeit, die für die sequentielle Übertragung eines Bits
benötigt wird; dann beträgt diese Verzögerung ungefähr t · n.
• Aus der in Abschnitt 3.1 gemachten Forderung 3.3 ergibt sich, daß für eine si”
chere“ Blockchiffre |K| ≥ |M| gelten muß. Es darf also nicht weniger Schlüssel als
Nachrichten geben.
Für die weiteren Betrachtungen nehmen wir o.B.d.A. A = B und n = m an. Eine
Blockchiffrefunktion hat dann im Normalfall die Form
Ek :
M −→ C
An −→ An ,
73
74
KAPITEL 5. BLOCKCHIFFREN
m
sequentiell
?
•
•
•
-
-
f
Blockchiffre
•
•
•
-
c
sequentiell
Abbildung 5.1: Verzögerungen der Blockchiffre bei der bitseriellen Verarbeitung
k
?
m
-
Ek
-
c
Abbildung 5.2: Prinzip einer Blockchiffre
5.1. GRUNDSÄTZLICHES ZU BLOCKCHIFFREN
k
m
A
A AU
75
-
c =m⊕k
Abbildung 5.3: Prinzip einer sequentiellen Chiffre (Vernam-Chiffrierung)
parametrisiert durch den Schlüssel k ∈ {0, 1}l = K. Dabei ist Ek ∈ S|An | =
b Menge der
Substitutionen. Es erhebt sich die Frage, wieviele bijektive Abbildungen {0, 1}n 7→ {0, 1}n
n
n
es überhaupt gibt. Offensichtlich
gibt es (2n )2 = 2n·2 Abbildungen {0, 1}n 7→ {0, 1}n,
√
n
n
davon sind (2n )! ≈ 2π2n · (2n )2 · e−2 (Stirling’sche Formel [26]) bijektiv. Um alle
bijektiven Abbildungen zu indizieren, muß also l ≈ n · 2n sein.
5.1.1
Diskussion von Strom- und Blockchiffren
Das Prinzip einer sequentiellen Chiffre ist in Abbildung 5.3 nochmals aufgezeigt. Dabei
ist allgemein eine Verknüpfungsfunktion f bzw. f −1 gegeben; hier sei o.B.d.A. f =XOR
b
(über GF (2) : f =+).
b
Die Vorteile (+) und Nachteile (−) von sequentiellen Chiffren sind:
+ Sie eignen sich gut bei sequentiellen Ende-zu-Ende-Übertragungen.
+ Es können sehr hohe Verschlüsselungsraten im Gbit/s-Bereich, nahe der Schaltrate
eines einzelnen Gatters, erreicht werden; gerade bei Implementierungen, die auf
Schieberegistern beruhen (auf einem oder als Teil eines Chips).
− Sequentielle Chiffren eignen sich weniger gut für die Speichersicherung, da in eine
sequentielle Chiffre die Zeit als Parameter einfließt. Zur Dechiffrierung ist also eine
Vorgeschichte“, in Form der Schlüsselfolge k von Anfang an, notwendig.
”
− Sequentielle Chiffren eignen sich weniger gut für den Blockmode“ bei Ende-zu”
Ende-Übertragungen, wie er z.B. bei Datex-P der Deutschen Bundespost verwendet
wird, da für jeden Block eine Synchronisierung erforderlich wäre.
Die Vor- und Nachteile von Blockchiffren hingegen sind:
− Blockchiffren eignen sich, wie bereits erwähnt, nicht bei serieller Bitverarbeitung,
also auch nicht bei sequentiellen Ende-zu-Ende-Übertragungen.
− Die Verschlüsselungsraten von Blockchiffren liegen i.allg. um Größenordnungen niedriger als die auf Schieberegistern basierenden Implementierungen von sequentiellen
76
KAPITEL 5. BLOCKCHIFFREN
Chiffren. Gegenwärtig liegen z.B. die Verschlüsselungsraten von HW-Implementierungen des DES, auf den später noch einzugehen ist, bei 25 MByte/s [4].
− Es gibt keine Blockchiffre, die absolut sicher wäre. Die heute bekannten Blockchiffren
sind allenfalls praktisch sicher.
+ Blockchiffren eignen sich gut für die Speichersicherung, da die Speicher blockweise (seitenweise) organisiert sind und der gleiche Schlüssel gut zur Verschlüsselung
mehrerer Blöcke benutzt werden kann.
+ Blockchiffren eignen sich im Blockmode“ offensichtlich gut zur Ende-zu-Ende”
Übertragung.
Die Unterscheidung von Block- und sequentiellen Chiffren wird schwieriger, wenn wir
sequentielle Chiffren über echten“ Alphabeten A betrachten, also A 6= {0, 1}. Hier läßt
”
sich die Verschlüsselung eines Zeichens von A als Blockchiffre über 2|A| Zeichen interpretieren.
5.1.2
Bausteine von Blockchiffren
Blockchiffren sind meist als Produktchiffren aufgebaut, d.h. es werden mehrere Verschlüsselungen benutzt, die nacheinander angewandt werden. Die Verschlüsselungen sind hierbei
üblicherweise Substitutionen und Permutationen, die für sich genommen zwar kryptographisch schwach sind, aber im Produkt eine starke Chiffre ergeben. Dies ist das Konzept
einer Produktchiffre.
Bei einer Substitution, von Shannon confusion“ genannt, werden die Bits des Klar”
textblockes in Gruppen aufgeteilt und jede Bitgruppe durch ein anderes Bitmuster entsprechend einer Substitutionstabelle (S-Box) ersetzt. Soll gleichzeitig noch eine Bitexpansion durchgeführt werden, so sind die Bitmuster, die als Output von einer S-Box erzeugt
werden, von größerer Länge als die zu ersetzenden Bitgruppen, die als Input für die S-Box
dienen. Der Aufbau einer solchen Substitutionsbox, die als ROM realisiert wird, ist in
Abbildung 5.4 an einem Beispiel schematisch gezeigt.
Das zuunterst eingezeichnete der 4 Input-Bits im obigen Abbildung fungiert dabei als
Kontrollbit für die Auswahl der Substitution.
Bei einer Permutation, von Shannon diffusion“ genannt, werden die Bits des Klartext”
blockes permutiert. Die Bits des Klartextblockes werden dazu als Input einer sogenannten
Permutationsbox (P-Box) genommen, in der die anzuwendende Permutation in Hardware verdrahtet ist. Der schematische Aufbau einer Permutationsbox ist in Abbildung 5.5
gezeigt. In der heute üblichen VLSI Technik, sind aber gerade solche Verdrahtungen mit
vielen Überkreuzungen äußerst unangenehm.
Man beachte, daß bei nicht flacher Wahrscheinlichkeitsverteilung der Klartexte Permutationsboxen leicht zu brechen sind.
Die wiederholte Kombination von Permutationen und Substitutionen, wie in Abbildung 5.6 dargestellt, ergibt eine starke Produktchiffre, da der resultierende Chiffretext
5.1. GRUNDSÄTZLICHES ZU BLOCKCHIFFREN
-
Input
4 Bit
S-Box
-
77
input
Output
4 Bit
output
cb=0
cb=1
000
001
1010
0011
0111
0100
•
•
•
•
•
•
•
•
•
111
0100
1001
6
control bit
Abbildung 5.4: Schematischer Aufbau einer S-Box
0123-
m
n −2
n −1
e
e e
Z
Z e
Z e
PP
Z
P
P
e
Z
P
P
ePPP
Z
Z
h
h
h
e
h
hZ
hh
eZ
eZ
P-Box e
0123-
n −2
n −1
c
Abbildung 5.5: Schematischer Aufbau einer P-Box
78
KAPITEL 5. BLOCKCHIFFREN
-
Klartext
-
-
S
S
•
•
•
S
-
-
-
-
-
P
-
S
S
•
•
•
S
-
-
-
-
-
-
-
P
• • •
-
-
S
S
•
•
•
S
-
-
-
-
-
P
Chiffretext
-
Abbildung 5.6: Produktchiffre mit Permutation (P) und Substitutionen (S)
durch den ganzen Prozeß in unvorhersehbarer Weise aus dem Klartext erzeugt wird, wenn
man keine Kenntnis über die dazwischenliegenden Transformationen hat.
Zum Dechiffrieren wird der ganze Prozeß umgekehrt. Auf den Chiffretext werden in umgekehrter Reihenfolge die invertierten Permutationen und das Inverse jeder S-Box angewendet. Ohne Kenntnis der P- und S-Boxen darf der Klartextblock nicht aus dem
Chiffretextblock herleitbar sein.
Offensichtlich erzielt man die größte Kryptokomplexität mit einer solchen Chiffre,
wenn die S-Boxen in jeder Stufe verschieden gewählt werden. Falls z.B. die S-Boxen auf
4-Bit-Gruppen operieren (d.h Inputlänge = Outputlänge = 4 bit), dann gibt es bereits
(24 )! oder ungefähr 2 · 1013 verschiedene S-Boxen zur Auswahl, die alle invertierbar sind.
Allerdings muß man bedenken, daß eine große Anzahl davon unbrauchbar ist.
Der Verschlüsselungsprozeß obiger Art muß noch durch einen Schlüssel gesteuert sein.
Eine Möglichkeit für die Steuerfunktion des Schlüssels wäre die Auswahl der anzuwendenden S-Box. Nimmt man z.B. an, daß Klartextblöcke der Länge 128 bit zu verschlüsseln
sind und 4-Bit-S-Boxen (s.o.) verwendet werden, dann sind in jeder Stufe 32 S-Boxen
notwendig. Jede S-Box wird dann, wie wir oben bereits erwähnt haben, durch ein ROM
realisiert, in dem 16 Worte von 4 bit Länge, also insgesamt 64 bit gespeichert sind. Die
Information zur Auswahl einer der (24 )! möglichen invertierbaren Transformationen dieser Art benötigt allerdings selbst schon log2 (16!) ≈ 44, 3 bit Speicherplatz. Falls man 16
Stufen hintereinander geschalteter Permutations-Substitutions-Schritte hat, ergibt sich
insgesamt eine totale Länge zur Speicherung der Auswahlinformation für die S-Boxen von
16 · 32 · 45 = 23040 bit. Dies wäre freilich ein viel zu langer Schlüssel!
Daher werden meist nur wenige verschiedene S-Boxen spezifiziert, wobei durch den
Schlüssel ausgewählt wird, welche S-Box in jeder Stufe benutzt werden soll. Die Spezifikation der S-Boxen ist dann Teil des Verschlüsselungsalgorithmus und wird nicht durch
den Schlüssel beeinflußt.
Bei der Lucifer-Verschlüsselung von IBM, die nach diesem Prinzip funktioniert, werden
5.1. GRUNDSÄTZLICHES ZU BLOCKCHIFFREN
k
k
?
m -
79
Ek
?
Übertragung
c -
L
L
LL
c’ -
Ek−1
m’ -
Abbildung 5.7: ECB Mode
in jeder Stufe nur zwei verschiedene 4-Bit S-Boxen spezifiziert. Die Auswahl, welche der
beiden S-Boxen nun gerade benutzt werden soll, wird durch das entsprechende Bit des
Schlüssels gesteuert. Da mit dem Lucifer-Algorithmus Klartextblöcke der Länge 128 bit
verschlüsselt werden und 16 Permutations-Substitutions-Schritte durchgeführt werden,
wäre für die Lucifer-Verschlüsselung eigentlich ein Schlüssel der Länge 16 · 32 = 512 bit
notwendig. Tatsächlich wird aber nur ein 128 bit langer Schlüssel verwendet, indem jedes
Schlüsselbit viermal zur Auswahl einer S-Box benutzt wird. Näheres findet sich in [39].
5.1.3
Betriebsarten von Blockchiffren
Im folgenden werden die vier verschiedenen Betriebsarten behandelt, die für die praktische
Verwendung von Blockchiffren möglich sind.
Die verschiedenen Anwendungsmodi einer Blockchiffre sind:
1. Electronic Codebook Mode (ECB),
2. Cipher Block Chaining Mode (CBC),
3. Cipher Feedback Mode (CFB),
4. Output Feedback Mode (OFB).
1. Electronic Codebook Mode (ECB)
Beim ECB wird der Klartext in Blöcke fester Länge, sagen wir n bits, aufgeteilt und
jeder Block unabhängig von den anderen einzeln chiffriert. Falls notwendig, wird der
letzte Block, um die Blockgröße zu erhalten, z.B. mit Nullen oder besser noch mit
einer Zufallsfolge aufgefüllt.
Identische Klartextblöcke liefern damit auch identische Chiffretextblöcke; daher wird
diese Betriebsart in Analogie zu einem Code-Buch als Electronic Codebook Mode
bezeichnet.
Diese Betriebsart hat im Hinblick auf die Sicherheit wenigstens zwei Nachteile:
80
KAPITEL 5. BLOCKCHIFFREN
− Da gleiche Klartextblöcke, verschlüsselt mit dem gleichen Schlüssel, zu gleichen
Chiffretextblöcken führen, kann dies einem passiven Angreifer Information über
den Klartext liefern, obwohl der Angreifer die Blöcke selbst nicht entschlüsseln
kann.
− Der zweite, schwerwiegendere Nachteil ist darin zu sehen, daß ein Angreifer
den Chiffretext selbst ändern kann, ohne daß der Empfänger der Nachricht
dies bemerkt. Chiffretextblöcke, die mit dem gleichen Schlüssel chiffriert und
bei vorausgegangenen Übertragungen aufgezeichnet wurden, könnten z.B. eingefügt werden, um den Sinn einer Nachricht zu ändern.
Aufgrund dieser Nachteile ist der ECB Mode ungeeignet, um lange Nachrichten
zu verschlüsseln. Um diesen Nachteilen abzuhelfen, sollte ein Chiffretextblock nicht
nur von dem zugehörigen Klartextblock, sondern auch von allen vorausgegangenen
Klar- bzw. Chiffretextblöcken abhängen. Damit liefern sich wiederholende, identische Klartextblöcke verschiedene Chiffretextblöcke. Außerdem lassen sich auf der
Empfängerseite Versuche erkennen, Chiffretextblöcke zu ändern, hinzuzufügen oder
zu löschen.
Hinsichtlich des Auftretens von Übertragungsfehlern hat der ECB folgende Eigenschaften:
• Tritt ein Bitfehler in Block ci auf, so ist wegen der Unabhängigkeit der Chiffretextblöcke untereinander nur der Block ci gestört, d.h. bei der Dechiffrierung
erhält man i. allg. einen total gestörten Klartextblock. Alle folgenden Blöcke
werden wieder korrekt dechiffriert. Es gibt also keine Fehlerfortpflanzung.
• Tritt ein Bitslip im Block ci auf, d.h. bei der Übertragung wird ein Bit im Übertragungskanal verschluckt“, dann ist beim Empfänger keine korrekte Blocksyn”
chronisation mehr vorhanden. Das heißt, daß Block ci und alle folgenden Blöcke
falsch dechiffriert und damit unbrauchbar werden. Der ECB Mode ist also nicht
selbstsynchronisierend.
2. Cipher Block Chaining Mode (CBC)
Im CBC Mode wird eine Nachricht genau wie im ECB Mode zuerst in Blöcke gleicher Länge zerlegt. Besitzt der letzte Block die Länge l (l < n), so wird entweder
aufgefüllt, oder es wird wie weiter unten beschrieben verfahren.
Wie in Abbildung 5.8 gezeigt, benutzt das CBC Verfahren die Ausgabe eines jeden
Chiffrierschrittes, um den folgenden Block vorzuchiffrieren“. Dieses Verfahren ist
”
also für den wahlfreien Zugriff, etwa auf Speicherdaten, nicht direkt einsetzbar:
Zum Entschlüsseln liefert das XOR des vorangegangenen Chiffratblocks mit dem
entschlüsselten Block den Klartext.
Man erhält im CBC Mode die Chiffretextblöcke c0 , c1 , c2 , ... durch:
c0 : = IV (Initialisierungsvektor)
ci : = Ek (mi ⊕ ci−1 ).
5.1. GRUNDSÄTZLICHES ZU BLOCKCHIFFREN
81
k
k
?
m-
⊕ 6
?
Übertragung
c -
Ek
L
L
LL
c’ -
n-bit Register
Ek−1
-n-bit
-⊕
m’-
6
Register
Abbildung 5.8: CBC Mode
Der erste Block m1 und ein Initialisierungsvektor IV (Es gibt ja zu diesem Zeitpunkt
noch keinen verschlüsselten Chiffretextblock) werden bitweise modulo 2 addiert,
das Ergebnis wird dann wie im ECB Mode verschlüsselt und ergibt den ersten
Chiffretextblock c1 . Dieser und der zweite Nachrichtenblock m2 werden bitweise
modulo 2 addiert, das Ergebnis wird verschlüsselt, usw. Dieser Vorgang wiederholt
sich bis zum Ende der Nachricht.
Die Entschlüsselung geschieht folgendermaßen:
c0 : = IV
mi : = Ek−1 (ci ) ⊕ ci−1
Es gilt:
mi = Ek−1 (ci ) ⊕ ci−1
= Ek−1 (Ek (mi ⊕ ci−1 )) ⊕ ci−1
= mi ⊕ ci−1 ⊕ ci−1 .
Es hängt also jeder Chiffretextblock ci von den vorausgegangenen Blöcken cj , 1 ≤
j < i, und vom Initialisierungsvektor IV ab. Damit liefern gleiche Klartextblöcke
mi und mj (i 6= j) i. allg. verschiedene Chiffretextblöcke ci und cj .
Die Wahl des Initialisierungsvektors IV ist wichtig für die Sicherheit dieser Verschlüsselung, denn durch Änderung einzelner Bits des IV können gezielt bestimmte
Bits des ersten Blockes verändert werden, der dadurch anfällig für sinnvolle Veränderungen ist.
Es ist ferner nicht anzuraten, gleiche Initialisierungsvektoren für das Senden mehrerer Texte zu verwenden, da dadurch, solange sich die Klartexte nicht unterscheiden
gleiche Chiffretextblöcke erzeugt werden.
82
KAPITEL 5. BLOCKCHIFFREN
cr−3
?
mr−2 ?
-⊕ -
?
cr−2
Ek
-
L
L
LL
c′r−2
-
?
?
cr−1
Ek
k
-
-
L
L
LL
c′r−1
-
?
?
Ek
Ek
?
?c
- ⊕ r-
?m′
- ⊕ r−1
-
Ek−1
k
?
linke l bit
mr
?m′
- ⊕ r−2
-
Ek−1
k
k
mr−1 ?
-⊕ -
cr−3
k
k
linke l bit
L
L
LL
′ ?
cr
⊕
′
mr
Abbildung 5.9: Methode zur Verschlüsselung des letzten Blockes bei CBC
Auch der letzte Block einer Übertragung ist anfällig gegen (sinnvolle) Veränderungen, da sich eine Veränderung im Chiffretext nicht mehr auf nachfolgende Blöcke
auswirken kann. Ganz besonders gilt dies für folgendes Verfahren, das dann Verwendung findet, wenn der letzte Klartextblock nicht genau n bit Länge hat, aber
auch nicht auf n bit aufgefüllt werden kann, weil es z.B. die Anwendung erforderlich macht, daß der gespeicherte Klartext nach der Verschlüsselung in denselben
Speicher zurückgeschrieben werden muß.
Um den letzten Klartextblock mr , bestehend aus l bit (l < n), zu verschlüsseln,
wird der vorletzte Chiffretextblock cr−1 nochmals verschlüsselt. Von diesem Ergebnis
werden die linken l bit genommen und bitweise modulo 2 zu dem Block mr addiert.
Der Empfänger muß dann ebenfalls den vorletzten Block zweimal verschlüsseln um
zu dechiffrieren (siehe Abbildung 5.9).
Die Schwäche des Verfahrens liegt darin, daß ein Angreifer einzelne Bits des letzten
Klartextblockes auswählen und deren Werte durch einfaches Ändern der entspre-
5.1. GRUNDSÄTZLICHES ZU BLOCKCHIFFREN
83
k
?
ci
-
1-bit Fehler
Ek−1
-n-bit
-⊕
Register
6
-
mi
mi+1
zerstörter
Block 1-bit Fehler
Abbildung 5.10: Fehlererweiterung beim CBC Mode
chenden Bits im Chiffretext verändern kann. Daher sollte der letzte Block keine
sinnvoll zu ändernden Informationen, wie z.B. Prüfsummen, enthalten.
Aufgrund der Verkettung der Chiffretextblöcke im CBC Mode muß untersucht werden, welche Auswirkungen ein Fehler bei der Übertragung eines Chiffretextblockes
hat.
• Tritt ein Bitfehler im Block ci auf, so zeigt sich der in Abbildung 5.10 dargestellte Effekt:
Die Ausgabe bei der Dechiffrierung des Blockes ci ist rein zufällig, da ein
gefälschtes Bit in der Eingabe die Ausgabe völlig verändert. Der ganze Klartextblock mi ist also zerstört. Durch die Verkettung der Blöcke wird auch noch
Block mi+1 in Mitleidenschaft gezogen. Im Speicher steht jetzt der bitfehlerbehaftete Chiffretextblock ci . Durch die Addition modulo 2 wird bewirkt, daß
an der Stelle des Bitfehlers im Block ci im Klartextblock mi+1 nun auch ein
Bitfehler entsteht. Nachfolgende Blöcke werden aber nicht mehr beeinflußt.
Der CBC Mode ist selbstkorrigierend, Übertragungsfehler innerhalb eines Blockes
wirken sich bei der Entschlüsselung nur auf diesen und den direkt nachfolgenden Block aus. Daraus folgt, daß der Initialisierungsvektor zum Start des Systems
zwischen Sender und Empfänger nicht vereinbart sein muß. Wählen Sender und
Empfänger je einen zufälligen IV, so kann nur Block m1 vom Empfänger nicht korrekt wiedergewonnen werden.
Die eben erläuterte Art der Fehlererweiterung des CBC Mode beinhaltet ein Sicherheitsrisiko. Durch das gezielte Verändern eines Bits im Chiffretext wird zwar
der zugehörige Klartextblock völlig zerstört, aber im nächsten Klartextblock wird
genau dieses Bit negiert, was von entscheidender Bedeutung sein kann. Nach Auftreten eines Fehlers sollte also die ganze Übertragungsfolge wiederholt und nur dann
akzeptiert werden, wenn alle Blöcke korrekt übertragen wurden. Um dies zu prüfen,
können auf den Klartext bezogene Prüfnummern verwendet werden.
• Tritt bei der Übertragung ein Bitslip auf, dann geht wie beim ECB Mode die
Blocksynchronisation verloren und die Blöcke werden unbrauchbar.
84
KAPITEL 5. BLOCKCHIFFREN
?
?
n-bit SR
n-Bit
k
n-bit SR
n-Bit
?
?
Ek
Ek
n-Bit ?
?
-
?
-⊕
k
n-Bit
l-bit Ausw.
m
l-bit Ausw.
c-
L
L
LL
c′
?
-⊕
m′ -
Abbildung 5.11: CFB Mode
3. Cipher Feedback Mode (CFB)
Die bevorzugte Methode, eine Folge von Zeichen einzeln zu verschlüsseln, ist der Cipher Feedback Mode (CFB). Durch diese Betriebsart wird die Blockchiffre zu einer
kontinuierlichen Chiffre, die auf Klartexteinheiten von 1 bis n bit Länge operiert.
Sowohl sender- als auch empfängerseitig arbeitet die Blockchiffre im Verschlüsselungsmodus und erzeugt eine pseudozufällige Bitfolge, die modulo 2 zu den Klartextzeichen bzw. empfängerseitig zu den Chiffretextzeichen addiert wird.
Abbildung 5.11 zeigt den CFB Mode, die Eingänge der Blockchiffre sind dabei Schieberegister, die wie im CBC Mode zu Beginn einer Übertragung bei Sender und
Empfänger mit einem Initialisierungsvektor geladen werden.
Vom Ausgang der Blockchiffre werden jeweils l bit (l entsprechend der Länge des zu
verschlüsselnden Zeichens) zum Klartextzeichen bitweise modulo 2 addiert, während
die übrigen Bits des Blockchiffreausgangs verlorengehen. Das Ergebnis dieser Addition wird übertragen und außerdem in das Eingangsregister, dessen Inhalt zuvor
um l Stellen nach links geschoben wurde, zurückgeführt. Diese Operation läuft beim
Empfänger genauso ab, so daß die beiden Eingangsregister jeweils die letzten n bit
(nach einer Anlaufphase) des gesendeten Chiffretextes enthalten. Die Chiffretextfolge (jeweils l bit) ist damit vom Initialisierungsvektor und allen schon übertragenen
Chiffretexten abhängig. Bei diesem Betriebsmodus wird offensichtlich die Invertierbarkeit der Blockchiffrefunktion nicht benötigt.
Für jedes zu verschlüsselnde Zeichen der Zeichengröße l bit ist eine Operation der
Blockchiffre erforderlich, so daß diese Betriebsart nicht so effizient wie der CBC
Mode ist. Trotzdem findet der CFB Mode vielfach Anwendung, da die zu übertragenden Nachrichten nicht die Blockchiffre selbst durchlaufen, sondern nur einer
einfachen Operation (⊕) unterworfen werden.
5.1. GRUNDSÄTZLICHES ZU BLOCKCHIFFREN
85
• Übertragungsfehler beeinflussen die korrekte Entschlüsselung in ähnlicher Weise wie im CBC Mode. Jeder Fehler, der in das Eingangsregister auf der Empfängerseite gelangt, verhindert eine korrekte Dechiffrierung solange, bis er wieder
aus dem Schieberegister hinausgeschoben ist. Sei l die Länge der übertragenen
Zeichen, dann werden 1 + nl Zeichen falsch dechiffriert; das von dem Übertragungsfehler direkt betroffene und die nl folgenden.
Es ist einem Angreifer also möglich, gezielt Bits eines Klartextblockes zu ändern.
Er erzeugt dabei jedoch bei den nächsten Blöcken zufällige Änderungen, die sofort
erkannt werden können. Gefährdet ist allerdings wieder der letzte Block, weil er
keine Nachfolgeblöcke mehr hat. Bei einem 8-Bit-CFB, d.h. l = 8, ist dieser letzte
Block normalerweise Teil der Prüfsumme und nicht sinnvoll zu ändern.
Wie beim CBC, so ist auch beim CFB eine Initialisierung notwendig. Es sollte für
jede Nachricht ein neuer Initialisierungsvektor verwendet werden. Dieser kann im
CFB Mode im Klartext übermittelt werden, da er ja, bevor er den Datenstrom beeinflußt, verschlüsselt wird. Man kann somit den Initialisierungsvektor als Präambel
einer Nachricht verstehen.
• Tritt bei der Übertragung ein Bitslip auf, so hängt es von der Zeichenlänge l
ab, ob die Synchronisation dauerhaft verloren geht, oder ob eine Selbstsynchronisation eintritt. Ist l = 1, dann wird solange falsch dechiffriert, bis der Inhalt
der Schieberegister beim Sender und Empfänger wieder übereinstimmen. Dies
ist nach n Takten oder gleichbedeutend n bit wieder der Fall. Für l > 1 stimmt
der Inhalt der beiden Schieberegister beim Sender und Empfänger nie mehr
überein, so daß alle folgenden Zeichen falsch dechiffriert werden. Allgemein
gilt, daß eine Resynchronisation im CFB Mode stattfindet, wenn bei einer Zeichenlänge l im Übertragungskanal eine Gruppe von l bit oder ein Vielfaches
davon verschluckt“ wird.
”
4. Output Feedback Mode (OFB)
Eine weitere Möglichkeit, eine Blockchiffre als kontinuierliche Chiffre zu verwenden,
ist der Output Feedback Mode (OFB). Wie aus Abbildung 5.12 hervorgeht, ist diese
Betriebsart dem CFB Mode ähnlich. Auch hier arbeitet die Blockchiffre bei Sender
und Empfänger im Chiffriermodus, und es werden jeweils l bit (1 ≤ l ≤ n) des Blockchiffreergebnisses bitweise modulo 2 zu dem Klartext bzw. dem Chiffretext addiert.
Auch hier wird also nur eine Richtung der Chiffrierfunktion verwendet. Anders als
beim CFB Mode werden hier jedoch diese l bit direkt in das Eingangsregister der
Blockchiffre zurückgeführt, so daß die Inhalte dieser Register nicht vom Klartext
bzw. vom übertragenen Chiffretext abhängen. Übertragungsfehler wirken sich deshalb nur auf das betroffene Zeichen aus, alle folgenden Zeichen werden davon nicht
mehr berührt. Es gibt also keine Fehlerfortpflanzung wie im CFB Mode.
86
KAPITEL 5. BLOCKCHIFFREN
?
?
n-bit SR
n-Bit
k
n-bit SR
n-Bit
?
?
Ek
Ek
n-Bit ?
?
-
?
-⊕
k
n-Bit
l-bit Ausw.
m
l-bit Ausw.
c-
L
L
LL
c′
?
-⊕
m′ -
Abbildung 5.12: OFB Mode
Der OFB Mode ist für solche Fälle gedacht, wo Störungen auf dem Übertragungskanal zu erwarten sind, also zum Beispiel bei Satellitenverbindungen, und eine Fehlerfortpflanzung mit dem Faktor l der Zeichengröße nicht akzeptabel ist.
Diese Betriebsart hat mehrere Nachteile. Da der Chiffretext nur vom derzeitigen
Klartext und der entsprechenden pseudozufälligen Bitfolge des Blockchiffreergebnisses abhängt, geht die Eigenschaft der Verkettung von Nachrichten wie im CBC
oder CFB Mode verloren, und es ergeben sich ähnliche Schwierigkeiten wie im ECB
Mode, wenn es darum geht, Manipulationen des Chiffrates zu erkennen.
Außerdem können Probleme mit der Synchronisation von Sender und Empfänger
auftreten. Arbeiten die beiden Einheiten nicht mehr synchron, so kann der Rest einer
Nachricht nicht mehr korrekt entschlüsselt werden. Der CFB Mode ist dagegen, wie
erwähnt, selbstsynchronisierend.
Besonders wichtig im OFB Mode ist, daß zur Verschlüsselung zweier Nachrichten m
und m′ nicht der gleiche Initialisierungsvektor benutzt wird. Andernfalls würden beide Nachrichten mit derselben Bitfolge verschlüsselt. Wenn c und c′ die zugehörigen
Chiffretexte sind, ergibt sich bei bitweiser Addition modulo 2 c ⊕ c′ = m ⊕ m′ . Wenn
es sich bei m und m′ um natürlichsprachliche Texte handelt, stellt es kein großes
Problem dar, diese beiden Texte aus m ⊕ m′ zu ermitteln (vgl. Abschnitt 2.1.3).
Zum Abschluß sollen die vier Betriebsarten einer Blockchiffre in tabellarischer Form verglichen werden:
5.2. DER DATA ENCRYPTION STANDARD (DES)
87
ECB
Übertragung einer Nachricht,
die kürzer als ein
Block ist
CBC
Nachrichten, die
länger als ein
Block sind
CFB
Zeichenstrom, bei
dem jedes Zeichen einzeln zu
bearbeiten ist
Synchronisation
Fehlererweiterung
Durchsatz
(normiert)
Bit-Fehler
keine
IV
keine
ja
Automatisch
nach 1 Block
ja
1
1
l
n
l
n
1 Block zerstört
Die nächsten
1 + nl Zeichen
gestört
1 Bit geändert
Bit Slip
Keine Synchronisation mehr
1 Block zerstört
und 1 bit im
nächsten Block
geändert
Keine Synchronisation mehr
l = 1: Nach
n bit Resynchronisation
l > 1: Keine Synchronisation
Keine Synchronisation mehr
Hauptsächl.
Verwendung
OFB
Nachrichten länger als ein Block,
bei unerwünschter Fehlererweiterung
IV
nein
Abbildung 5.13: Vergleich der Betriebsarten einer Blockchiffre
5.2
Der Data Encryption Standard (DES)
Der Data Encryption Standard ist eine Produktchiffre, die im Jahre 1977 als US-Verschlüsselungsstandard vom National Bureau of Standards (NBS) als Norm eingeführt
wurde.
Dieser Standard wurde in Zusammenarbeit mit IBM entworfen und entstand aus dem
Lucifer-Algorithmus (siehe Abschnitt 5.1.2).
Den Kern der Norm bildet ein Algorithmus, der Data Encryption Algorithmus, zur
Ver- und Entschlüsselung binär dargestellter Nachrichten. Dieser Algorithmus besteht aus
einer Folge von Permutationen und logischen Produktbildungen zwischen dem Klartext
und einem individuellen Schlüssel.
Der DES hat sich trotz zahlreicher Kritiken bezüglich seiner Sicherheit bei den meisten Anwendern durchsetzen können. Dies geschah nicht zuletzt deshalb, weil sehr früh
integrierte Schaltungen auf dem freien“ Markt verfügbar waren.
”
5.2.1
Der DES-Algorithmus
Der DES ist eine Block-Produkt-Chiffre aus Permutationen und Substitutionen, die in
einer Iterationsschleife schlüsselgesteuert 16 mal durchlaufen werden.
Dazu wird der Klartext in Blöcke der Länge 64 bit zerlegt. Ein Schlüssel besteht ebenfalls aus 64 bit, von denen 56 den eigentlichen Schlüssel darstellen, während die restlichen
8 bit die Funktion von Paritätsbits haben, die die acht 7-Bit-Zeichen eines Nachrichten-
88
KAPITEL 5. BLOCKCHIFFREN
Schlüssel
-
64 Bit
-
48 Bit
?
Schlüsselauswahl
16 Auswahlen
?
Input
-
IP
6
-
Chiffrierung
- IP−1
Output
-
16 Iterationen
Abbildung 5.14: Prinzipieller Aufbau des DES
blockes auf ungerade Parität ergänzen. Somit stehen 256 ≈ 7, 2 · 1016 unterschiedliche
Schlüssel zur Verfügung.
Der prinzipielle Aufbau des DES ist in Abb. 5.14 dargestellt. Jeder Nachrichtenblock
wird erst der Eingangspermutation IP unterzogen und durchläuft anschließend 16 schlüsselabhängige, aber funktional identische Iterationen. Jede der Iterationen (oder auch Runden genannt) benutzt unterschiedliche 48 bit als Schlüssel; diese werden als Teilschlüssel
aus den 56 bit ausgewählt. Auf das Ergebnis der letzten Iteration wird zum Schluß die zu
IP inverse Permutation IP −1 angewandt.
Der Algorithmus ist so ausgelegt, daß sämtliche Schlüssel als gleichwahrscheinlich zu
betrachten sind; außerdem ist er geeignet, sowohl Klartext zu chiffrieren, als auch chiffrierten Text zu dechiffrieren.
Ver- und Entschlüsselung sind aufgrund einer Konstruktionseigenschaft des Verschlüsselungsalgorithmus (s.u.) bis auf die Reihenfolge der je Iteration verwendeten Teilschlüssel
identisch.
• Chiffrierung:
K1 , K2 , ..., K15 , K16
• Dechiffrierung: K16 , K15 , ..., K2 , K1
Wir wollen nun den Algorithmus präzisieren. Die Teile, die dabei nicht genauer angegeben werden , findet man z.B. in [90], [39] oder [65].
5.2. DER DATA ENCRYPTION STANDARD (DES)
(58
60
62
64
57
59
61
63
50
52
54
56
49
51
53
55
42
44
46
48
41
43
45
47
34
36
38
40
33
35
37
39
26
28
30
32
25
27
29
31
18
20
22
24
17
19
21
23
10
12
14
16
9
11
13
15
89
2
4
6
8
1
3
5
7)
Abbildung 5.15: Initialpermutation IP
1. Die Eingangspermutation:
Der 64-Bit Eingabeblock wird zunächst einer Initialpermutation IP unterworfen.
Bezeichnet X = (x1 , x2 , ..., x32 , x33 , ..., x63 , x64 ) den Eingabeblock, dann wird dieser durch die in Abbildung 5.15 dargestellte Permutation IP in den Block IP (X)
überführt,
IP (X) = (x58 , x50 , ..., x8 , x57 , ..., x15 , x7 ).
2. Die Verschlüsselungsiteration:
Der Ergebnisblock aus 1) wird in einen linken Block L und einen rechten Block R
zerlegt; beide Blöcke haben die Länge 32 bit. Es gilt:
L = (x58 , ..., x8 )
R = (x57 , ..., x7 )
mit
L, R = IP (X).
Auf diesen 32-Bit-Blöcken wird die folgende Operation ausgeführt:
L(0): = L;
R(0): = R;
f or i: = 1 to 16 do
begin
L(i): = R(i − 1);
R(i): = L(i − 1) ⊕ f (R(i − 1), Ki);
end;
Die Beschreibung der Funktion f und der Schlüssel Ki erfolgt später.
3. Die Ausgabepermutation:
Auf den Ergebnisblock R(16), L(16) = Y mit Y = (y1 , y2 , ..., y63 , y64 ) aus 2) operiert
die zu IP inverse Permutation IP −1.
90
KAPITEL 5. BLOCKCHIFFREN
INPUT
64
?
INITIAL PERMUTATION ?
e
32
32
?
?
L(0)
R(0)
+j
fj
?
?
e
?
K1
```
```
```
```
?
?
L(1) = R(0)
R(1) = L(0) ⊕ f (R(0), K1 )
+j
fj
?
?
e
?
?
L(15) = R(14)
+j
?
?
R(15) = L(14) ⊕ f (R(14), K15 )
fj
?
?
R(16) = L(15) ⊕ f (R(15), K16 )
K2
e
?
e
?
L(16) = R(15)
?
INVERSE INITIAL PERM 64
?
OUTPUT
Abbildung 5.16: DES Verschlüsselungsalgorithmus
K16
5.2. DER DATA ENCRYPTION STANDARD (DES)
91
Der gesamte Verschlüsselungsalgorithmus ist in Abbildung 5.16 ausführlich dargestellt.
Bemerkung 5.2 Wir können die Verschlüsselungsoperationen aus 2) für jedes i ∈ [1: 16]
auch als Abbildung
hK ◦ g: {0, 1}64 7−→ {0, 1}64
schreiben, wobei
g: {0, 1}32 × {0, 1}32 7−→ {0, 1}32 × {0, 1}32
mit
g(L, R): = (R, L)
die Vertauschungsabbildung und
hK : {0, 1}32 × {0, 1}32 7−→ {0, 1}32 × {0, 1}32
mit
hK (R, L): = (R, f (R, K) ⊕ L)
die eigentliche Verschlüsselungsabbildung ist.
Die Abbildungen g und hK sind involutorisch:
g(R, L) = (L, R)
hK (R, f (R, K) ⊕ L) = (R, f (R, K) ⊕ f (R, K) ⊕ L)
= (R, L)
Die Funktion
f : {0, 1}32 × {0, 1}48 7−→ {0, 1}32
ist der Kern des gesamten Verfahrens. Sie ist in Abbildung 5.17 dargestellt. Sei Ki der
Teilschlüssel (s.u.) der i-ten Iteration und
R(i − 1) = (r1 (i − 1), r2(i − 1), ..., r32 (i − 1))
die rechte Hälfte des Ergebnisses der (i − 1)-ten Iteration.
1. Der 32-Bit-Block R(i − 1) wird auf einen 48-Bit-Block
E(R(i − 1)) = (r32 (i − 1), r1 (i − 1), r2 (i − 1), ..., r5(i − 1),
r4 (i − 1), r5 (i − 1), r6(i − 1), ..., r9 (i − 1),
r8 (i − 1), r9 (i − 1), r10 (i − 1), ..., r13 (i − 1),
r12 (i − 1), r13 (i − 1), r14 (i − 1), ..., r17 (i − 1),
r16 (i − 1), r17 (i − 1), r18 (i − 1), ..., r21 (i − 1),
r20 (i − 1), r21 (i − 1), r22 (i − 1), ..., r25 (i − 1),
r24 (i − 1), r25 (i − 1), r26 (i − 1), ..., r29 (i − 1),
r28 (i − 1), r29 (i − 1), ..., r32 (i − 1), r1 (i − 1))
erweitert. E ist eine lineare Expansionsabbildung, die ausgewählte Bits von R(i − 1)
dupliziert und R(i − 1) zu einem 48-Bit-Block erweitert.
92
KAPITEL 5. BLOCKCHIFFREN
R(i − 1)
32
?
Ej
48
?
E(R(i − 1))
48
Ki
- +j
A
48
?
S1 S2 S3 S4 S5 S6 S7 S8 32
B
Pj
?
?
f (R(i − 1), Ki )
Abbildung 5.17: Die Funktion f (R(i − 1), Ki )
2. Ki ist der durch eine Schlüsselauswahlfunktion (s.u.) bestimmte 48-Bit-Teilschlüssel.
3. Ki und E(R(i − 1)) werden bitweise modulo 2 addiert. Das Ergebnis ist ein 48-BitVektor A(i − 1). Zur besseren Lesbarkeit wollen wir den Bezug zu (i − 1) weglassen.
A = E(R(i − 1)) ⊕ Ki
= (a1 , a2 , ..., a48 )
A wird in acht 6-Bit-Blöcke A1 , A2 , ..., A8 mit A = A1 A2 ...A8 zerlegt.
4. A bildet die Eingabe für die S-Boxen S1 bis S8 . Jede S-Box Sj , j ∈ [1: 8], kann vier
verschiedene Substitutionen realisieren. Sj wird durch eine 4×16-Matrix beschrieben
(Abbildung 5.18). Die Zeilen werden mit 0,1,2,3 und die Spalten mit 0,1,2,...,15
bezeichnet. Jede Zeile stellt eine Substitution
Sjk : {0, 1}4 7−→ {0, 1}4
dar; k bezeichnet dabei die Zeilennummer. Auf diese Weise erhält man mit den acht
S-Boxen 32 verschiedene Substitutionen.
Sei Aj = (aj1 , aj2 , ..., aj6) ein 6-Bit-Block, dann bestimmen die Bits aj1 und aj6 ,
als Binärzahl aj1 aj6 gelesen, die Zeilennummer und analog aj2 aj3 aj4 aj5 die Spaltennummer der S-Box Sj .
5.2. DER DATA ENCRYPTION STANDARD (DES)
93
0
1
2
3
4
5
6
7
0
1110
0100
1101
0001
0010
1111
1011
1000
1
0000
1111
0111
0100
1110
0010
1101
0001
2
0100
0001
1110
1000
1011
0110
0010
1011
3
1111
1100
1000
0010
0100
1001
0001
0111
8
9
10
11
12
13
14
15
0
0011
1010
0110
1100
0101
1001
0000
0111
1
1010
0110
1100
1011
1001
0101
0011
1000
2
1111
1100
1001
0111
0011
1010
0101
0000
3
0101
1011
0011
1110
1010
0000
0110
1011
Abbildung 5.18: Substitutionsbox S1
Der so eindeutig bestimmte Wert aus Sj ist das Ergebnis der S-Box. Die Konkatenation der von den acht S-Boxen gelieferten Bitfolgen ergibt einen Vektor B der
Länge 32 bit.
B = (S1a1 a6 (a2 a3 a4 a5 ), ..., S8a43 a48 (a44 a45 a46 a47 ))
= (b1 , b2 , ..., b32 )
Beispiel:
A1 = (0, 1, 1, 0, 1, 1)
Aus Abbildung 5.18 entnehmen wir:
S101 (1101) = (0101)
Die Substitutionen sind nichtlinear. Sie stellen den kryptologisch wichtigsten Teil
des Data Encryption Algorithmus dar.
5. Zum Schluß wird der Vektor B einer Permutation P unterworfen, die in Abbildung 5.19 gezeigt ist.
Damit ist der Funktionswert f (R(i − 1), Ki ) = P (B) bei der i-ten Iteration bestimmt.
Der Ablauf des Algorithmus ist damit vorgestellt, es bleibt zu zeigen, wie die bei jeder
Iteration benutzten Teilschlüssel Ki , i ∈ [1: 16], aus dem gegebenen Schlüssel K ermittelt
werden. Dies ist in Abbildung 5.20 gezeigt.
Aus Gründen der Sicherheit sollten alle Teilschlüssel Ki , i ∈ [1: 16], verschieden sein.
Dies wird erreicht, indem für jeden Iterationsschritt des Algorithmus eine andere 48-BitTeilmenge aus den 56 bit des Schlüssels ausgewählt wird.
94
KAPITEL 5. BLOCKCHIFFREN
(16
29
1
5
2
32
19
22
7
12
15
18
8
27
13
11
20
28
23
31
24
3
30
4
21
17
26
10
14
9
6
25)
Abbildung 5.19: Permutationsbox P
Schlüssel K (64 Bit)
?
Ci , Di: 28 Bit
Ki : 48 Bit
PC1
C0
D0
?
?
LS1
LS1
-
C1
D1
?
?
LS2
LS2
-
PC2
-
C2
D2
-
PC2
K1
-
K2
..
.
..
.
..
.
..
.
?
?
LS16
LS16
-
D16
-
D16
-
PC2
Abbildung 5.20: Schlüsselauswahlfunktion
-
K16
5.2. DER DATA ENCRYPTION STANDARD (DES)
N ummer der
Iteration
Anzahl der
Shif ts
95
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
Abbildung 5.21: Shifts der Schlüsselhälften bei der Verschlüsselung
Sei nun
K = (k1 , k2, ..., k64 )
ein vom Benutzer vorgegebener DES-Schlüssel, wobei die ki mit i ∈ {8, 16, 24, ..., 64} die
Paritätsbits sind.
Der Operator P C1 (Permuted Choice 1) entfernt die Paritätsbits des Schlüssels K und
reduziert diesen damit auf 56 aktive“ Schlüsselbits; außerdem werden die verbleibenden
”
56 bit einer Permutation unterworfen.
P C1(K) = (k57 , k49 , ..., k36 , k63 , ..., k12 , k4)
Der resultierende Vektor der Länge 56 wird in eine linke Hälfte C0 (28 bit) und eine rechte
Hälfte D0 (28 bit) aufgeteilt:
C0 = (k57 , ..., k36 )
D0 = (k63 , ..., k4)
Die Vektoren (Ci , Di ), i ∈ [1: 16], werden dann aus (C0 , D0 ) wie folgt abgeleitet:
Sei (Ci−1 , Di−1 ) bereits bestimmt, dann erhält man (Ci , Di) durch zirkuläre Linksshifts LS der Hälften Ci−1 und Di−1 um eine oder zwei Bitpositionen. Jede Hälfte
wird dabei getrennt geshiftet (vgl. Abbildung 5.21).
Beispielsweise erhält man (C1 , D1 ) aus (C0 , D0 ), indem die Bits von C0 und D0 um
eine Position zirkulär nach links geschoben werden:
(C0 , D0 ) = ((k57 , k49 , ..., k36 ), (k63 , k55 , ..., k4 ))
(C1 , D1 ) = LS(C0 , D0 )
= ((k49 , ..., k36 , k57 ), (k55 , ..., k4 , k63 ))
Der Operator P C2 (Permuted Choice 2) bestimmt schließlich den Teilschlüssel Ki
mit i ∈ [1: 16] aus dem Vektor (Ci, Di ) durch Entfernen der Bits auf den Positionen
9, 18, 22, 25, 35, 38, 43 und 54. Die verbleibenden 48 bit von (Ci , Di ) werden
außerdem noch einer Permutation unterworfen.
Durch die Angabe des Operators P C2 ist der Data Encryption Algorithmus vollständig beschrieben.
96
KAPITEL 5. BLOCKCHIFFREN
Wie schon erwähnt, kann der DES-Algorithmus sowohl zum Chiffrieren als auch zum
Dechiffrieren verwendet werden. Zum Dechiffrieren wird der chiffrierte Textblock genau
derselben Prozedur wie beim Chiffrieren unterzogen, wobei die Ki in umgekehrter Reihenfolge angewendet werden. Der erste Dechiffrierschritt ist dann IP , der den letzten
Chiffrierschritt IP −1 aufhebt. Danach dient R16 L16 als permutierter Eingabeblock, und
die einzelnen Ri bzw. Li erhält man (vgl. Bemerkung auf Seite 91) durch:
Ri−1 = Li
Li−1 = Ri ⊕ f (Li , Ki )
Wendet man auf L0 R0 dann noch IP −1 an, so hebt man den Chiffrierschritt IP auf; der
Klartextblock ist somit zurückgewonnen.
5.2.2
Sicherheit des DES
Seit der Veröffentlichung des DES im Jahre 1975 als zukünftiger Verschlüsselungsstandard
hat es eine Kontroverse um die Sicherheit gegeben.
Die Kritik richtet sich dabei hauptsächlich gegen folgende Punkte:
1. Schlüssellänge:
56 bit Schlüssellänge erscheinen manchen Autoren schon seit einigen Jahren zu gering für ausreichende Sicherheit.
2. Entwurfskriterien:
Die Auswahl der einzelnen Bestandteile des DES-Algorithmus, insbesondere die der
S-Boxen, ist nicht veröffentlicht worden.
3. Sicherheitstests:
Kryptoanalytische Betrachtungen des DES durch IBM und die US National Security
Agency (NSA) zur Untersuchung seiner Sicherheit sind nicht veröffentlicht worden.
In der Arbeit [43] von Diffie und Hellman (1977) beschreiben die Autoren eine (theoretische) Maschine, mit der der DES mit einem known-plaintext Angriff durch vollständiges
Testen aller 256 Schlüssel (Exhaustive Search) gebrochen werden kann. Die Maschine besteht aus einer Million spezieller LSI Such-Chips (plus Schaltkreisen zu deren Steuerung),
die einen bekannten Klartextblock mit jedem der ca. 7, 2 · 1016 Schlüssel verschlüsseln und
das Ergebnis mit dem ebenfalls bekannten Chiffretextblock vergleichen.
Jeder Chip testet 106 Schlüssel pro Sekunde und damit 8, 64 · 1010 Schlüssel pro Tag.
Da jeder der 106 Prozessoren einen anderen Teil des Schlüsselraumes durchsucht, kann
der gesamte Schlüsselraum in einem Tag durchgetestet werden.
Die Kosten dieser Maschine werden mit 20 Millionen US-$ angegeben, so daß bei einer
Umlegung dieser Kosten auf fünf Jahre eine Lösung pro Tag rund 10000 US-$ kosten
würde. Da durchschnittlich jedoch nur die Hälfte aller möglichen Schlüssel getestet werden
müßte, vermindern sich die Kosten pro Lösung auf rund 5000 US-$.
5.2. DER DATA ENCRYPTION STANDARD (DES)
97
Eine genaue Beschreibung dieser Maschine und Einwände des NBS bezüglich des Baus
einer solchen Maschine findet man in der oben angeführten Arbeit [43].
Diffie [44] hat diese Schätzung 1982 korrigiert. Er kommt dabei zu dem Ergebnis, daß
eine Analyse-Maschine“ ca. 50 Millionen US-$ kosten und die durchschnittliche Suchzeit
”
etwa zwei Tage betragen würde. In dieser Arbeit wird auch die zukünftige Rolle des DES
und anderer kryptographischer Verfahren (public-key Kryptosysteme) bis zum Jahre 1995
beschrieben.
Diffie und Hellman sind davon überzeugt, daß die technologische Entwicklung die
Kosten einer solchen Maschine bis 1990 wesentlich senken wird, während im September
1977 eine Studie des NBS zu folgendem Schluß gekommen ist:
Eine Maschine, die durchschnittlich einen Schlüssel pro Tag findet, kann
”
wahrscheinlich nicht bis 1990 gebaut werden, und die Wahrscheinlichkeit, bis
zu diesem Zeitpunkt verfügbar zu sein, wird zwischen 0,1 und 0,2 geschätzt.
Darüber hinaus würden die Kosten einer solchen Maschine mehrere 10 Millionen US-$ betragen.“
Michael Wiener hat 1993 eine Maschine beschrieben, die ca. 35 Stunden zum Durchsuchen des Schlüsselraumes benötigt und nur 100 000 US-$ kosten würde [133]. Die Maschine
basiert ebenfalls auf speziell entwickelten Chips.
Im Jahre 1998 hatten die Spekulationen über eine solche Maschine ein Ende. Von
der Firma Electronic Frontier Foundation (EFF) wurde eine solche Maschine gebaut.
Diese Maschine besteht aus 1800 Spezialchips, die jeweils 24 Durchprobier–Einheiten“
”
enthalten und kann damit gut 88 Milliarden Schlüssel pro Sekunde durchprobieren. Für
den gesamten Schlüsselraum benötigt diese Maschine etwa 9 Tage. Die Kosten für diesen Parallelrechner betrugen etwa 250 000 $. Eine Bauanleitung [35] wurde von EFF im
Selbstverlag herausgegeben.
In diesem Zusammenhang sollte auch bemerkt werden, daß die Schlüssellänge im ursprünglichen IBM Entwurf (Lucifer) 128 bit betrug. Auf Ersuchen der NSA wurde die
Schlüssellänge dann auf 56 bit reduziert. Der Grund hierfür ist nicht veröffentlicht worden.
Auf Grund ihrer Untersuchungen schlugen Hellman und andere vor, den angekündigten
Standard vor Inkrafttreten dahin zu ändern, die Schlüssellänge von 56 bit auf mindestens
128 bit zu erhöhen.
W.Tuchman (vgl. [129]) dagegen meint, die gleiche Sicherheit mit zwei 56-Bit-Schlüsseln zu erreichen, indem eine Mehrfachverschlüsselung der folgenden Art vorgenommen
wird:
Eine Nachricht M wird mit Hilfe zweier 56-Bit-Schlüssel K1 und K2 verschlüsselt:
C: = DES DES −1 (DES(M, K1 ), K2 ), K1
M wird also sukzessive verschlüsselt, entschlüsselt und nochmals verschlüsselt, wobei
die Verschlüsselungen den Schlüssel K1 und die Entschlüsselung den Schlüssel K2
98
KAPITEL 5. BLOCKCHIFFREN
benutzen. Aus dem Chiffrat C kann M durch Umkehrung dieser Schritte zurückgewonnen werden:
M = DES −1 DES(DES −1 (C, K1), K2 ), K1 .
Merkle und Hellman [87] nehmen jedoch an, daß diese Art der Verschlüsselung weniger
sicher sein könnte als die Benutzung eines Standards mit 112 bit Schlüssellänge. Sie zeigen dort, daß diese Dreifachverschlüsselung theoretisch unter der Annahme eines chosenplaintext Angriffes gebrochen werden kann, wobei rund 256 Operationen und 256 64-BitWorte, gespeichert auf 4 Milliarden Magnetbändern, nötig sind. Sie schlagen deshalb eine Dreifachverschlüsselung mit drei verschiedenen, voneinander unabhängig gewählten
Schlüsseln vor. Eine Dreifachverschlüsselung vermindert jedoch den Datendurchsatz um
den Faktor 3, oder es müssen drei Verschlüsselungseinheiten im Pipeline-Modus“ benutzt
”
werden.
Bei all diesen Verfahren ist aber nicht gesichert, daß diese wirklich die kryptographische
Sicherheit des DES erhöht. Es war länger unklar, ob die Menge der DES-Verschlüsselungen
unter Komposition abgeschlossen ist (vgl. [69]). Es kommte 1992 aber gezeigt werden [29],
daß die Hintereinanderausführung mehrerer DES-Verschlüsselungen nicht äquivalent zu
einer einzigen Verschlüsselung ist.
Der Entwurf des DES-Algorithmus erfordert insbesondere die Spezifikation der SBoxen, der Permutation P und die Auswahl der im Algorithmus benutzten Teilschlüssel.
Die National Security Agency wies IBM an, gewisse Entwurfskriterien, insbesondere
für die Auswahl der S-Boxen, nicht zu veröffentlichen, da sie der NSA als sensitiv“ er”
schienen. Dieses Verhalten führte zu Kritiken von verschiedenen Seiten, wobei auch die
Vermutung aufkam, es könnten gewisse Eigenschaften (trap-doors) in den Entwurf eingeflossen sein, die kryptoanalytische Vorteile für die Entwerfer brächten. Es gibt keinen
Beweis für das Nichtvorhandensein möglicher trap-door Informationen, jedoch existiert,
soweit bekannt, bisher kein Verfahren, das eine Lösung für auch nur ein Bit eines Schlüssels
liefert.
Auf Anfrage hin hat die NSA einige der Entwurfskriterien für die Auswahl der S-Boxen
bekanntgegeben (vgl. [74]):
• Keine S-Box ist eine lineare oder affine Funktion ihrer Eingabe.
• Die Änderung eines Eingabebits einer S-Box bewirkt eine Änderung von wenigstens
zwei Ergebnisbits.
• Die S-Boxen sind so gewählt, daß Unterschiede in der Anzahl von Nullen und Einsen des S-Box Ergebnisses minimiert werden, wenn irgendein Eingabebit konstant
gehalten wird.
Neben den Entwurfskriterien wurden auch alle kryptoanalytischen Methoden seitens der
NSA und der Entwickler, die Sicherheit des DES zu testen, nicht veröffentlicht. Von der
5.3. FEAL
99
IBM und der NSA wird versichert, daß keine Schwächen im DES-Algorithmus gefunden
werden konnten, obwohl angeblich mehrere Mannjahre dafür aufgewendet wurden.
Dieses Verhalten führte bei Kritikern des DES zu der Frage, warum die Methoden und
ihre Ergebnisse, die ja die Sicherheit des DES untermauern würden, nicht veröffentlicht
worden sind.
In der Antwort auf diese Kritiken kam das Senate Commitee of Intelligence“ im April
”
1978 zu folgenden Schlüssen:
• IBM erfand und entwarf den DES.
• Die NSA griff nicht in den Entwurf ein.
• Die NSA versichert, daß der DES frei von allen kryptographischen Schwächen ist.
• Die NSA empfahl, daß die Federal Reserve Board“ den DES zur Abwicklung von
”
Geldgeschäften auf elektronischem Weg benutzt.
5.3
5.3.1
FEAL
Geschichte von FEAL
Das heute wohl am häufigsten eingesetzte symmetrische Chiffrierverfahren ist der DES.
Dieser Algorithmus wurde für Hardwarerealisierungen entwickelt. Aufgrund seiner Struktur lassen sich bei Implementierungen in Software nur relativ geringe Durchsatzraten bei
der Verschlüsselung erreichen. Da seit der Einführung des Algorithmus Bedenken bzgl. seiner Sicherheit vorliegen, zum Teil wegen der geringen Zahl von nur 56 Schlüsselbits, und
DES-Hardware zudem Exportbeschränkungen der USA unterliegt, kam es zu verschiedenen Entwicklungen alternativer Kryptosysteme, mit dem Anspruch, DES bzgl. der Sicherheit zu übertreffen und gleichzeitig größere Durchsatzraten bei deutlich niedrigeren
Kosten zu erzielen. Eine dieser Entwicklungen ist der Fast Data Encipherment Algo”
rithm“, der auch mit dem Kurznamen FEAL“ bezeichnet wird. 1985 trat der FEAL
”
Algorithmus als Normungsvorschlag bei der ISO das erste Mal in Erscheinung. Die dort
diskutierte Version findet sich u.a. in [53]. FEAL wurde von den Japanern A. Shimizu
und S. Miyaguchi bei dem japanischen Unternehmen NTT entwickelt. Die erste öffentliche Vorstellung des Verfahrens fand auf der internationalen Konferenz EUROCRYPT ’87
statt. Die dort vorgestellte Version weicht leicht von der bei der ISO diskutierten Version
ab. Bereits im August des gleichen Jahres veröffentlichte B. den Boer eine Attacke gegen
diesen Algorithmus (siehe Abschnitt 5.3.3). Daraufhin stellten Shimizu und Miyaguchi
eine zweite Version des FEAL vor, die 8 statt 4 Verschlüsselungsrunden verwendet [123].
Diese neue Version wurde mit FEAL 2.00 bzw. später als FEAL-8 bezeichnet, gegenüber
der ersten Version FEAL 1.00 oder FEAL-4. 1988 wurde eine allgemeine Version von
FEAL veröffentlicht, die den Namen FEAL-N trägt. N ist hierbei eine Variable, die die
Anzahl der verwendeten Verschlüsselungsrunden angibt. N muß eine gerade Zahl sein, die
100
KAPITEL 5. BLOCKCHIFFREN
größer oder gleich 4 ist, nach Möglichkeit eine Zweierpotenz. Die oben erwähnten Versionen FEAL-4 und FEAL-8 sind damit Spezialfälle von FEAL-N. Aus diesem Grund wird
hier FEAL-N behandelt. Weiterhin gibt es eine FEAL Version mit 128 Schlüsselbits. Diese
trägt den Namen FEAL-NX. FEAL-NX unterscheidet sich von FEAL-N nur durch den
Schlüsselberechnungsteil. Der Datenverschlüsselungsteil beider Versionen ist identisch.
5.3.2
Funktionsweise des Algorithmus
Bei FEAL handelt es sich um eine Blockchiffre, die jeweils Klartextblöcken von 64 Bit
gleichgroße Chiffretextblöcke zuordnet. Die Verschlüsselung ist von einem geheim zu haltenden Schlüssel von ebenfalls 64 bit Länge abhängig. FEAL gehört, wie der bekannte
DES, zur Klasse der Feistel-Chiffren. Abbildung 5.22 zeigt das vollständige Schema von
FEAL-N, bei dem jedes Ki für 16 Schlüsselbits steht.
Die f -Funktion operiert auf 32 Bits und liefert als Ergebnis wieder 32 Bits. Dazu wird der
Eingabeblock zu Beginn in vier Blöcke zu je 8 Bit geteilt. Die einzelnen Teilblöcke werden untereinander und mit 16 Schlüsselbits durch exklusives Oder verknüpft und durch
S-Boxen verändert. Den Verknüpfungen liegt dabei das Schema aus Abbildung 5.23 zugrunde:
Es gibt zwei unterschiedliche S-Boxen, hier mit 0 und 1 indiziert. In diesen finden folgende Datentransformationen statt: Die beiden Eingangsblöcke von 8 bit Länge werden
als Binärzahlen betrachtet und addiert. Die Summe wird in der Box S1 zusätzlich um
Eins inkrementiert. Um als Output wieder 8 Bits zu erhalten, wird jeweils modulo 256
gerechnet. Bevor das Ergebnis die S-Box verläßt, findet noch eine zyklische Rotation um
2 bit nach links statt. Als Formel geschrieben sieht dies so aus:
Sd (x, y) = ROT 2((x + y + d) mod 256).
Dabei sind x und y Variablen für 8-Bit-Worte, d steht für ein Bit. ROT 2 bezeichnet
die Funktion der zyklischen Linksrotation auf 8-Bit-Worten,
ROT 2(a0, a1 , a2 , a3 , a4 , a5 , a6 , a7 ) = (a2 , a3 , a4 , a5 , a6 , a7 , a0 , a1 ).
Jedes ai sei in dieser Darstellung Stellvertreter für ein Bit.
Es bleibt noch zu klären, wie aus dem eigentlichen Schlüssel die einzelnen Teilschlüssel
generiert werden. Die dazu verwendete Methode ähnelt dem zuvor beschriebenen Chiffrierverfahren. Die Schlüsselaufbereitung läuft nach dem im Abbildung 5.24 dargestellten
Schema ab.
Enthält der eingegebene Schlüssel Paritätsbits, so werden diese vor Beginn der Teilschlüsselberechnung auf 0 gesetzt. Dann werden N/2 + 4 Iterationen durchgeführt, um
die benötigten Schlüssel zu erzeugen. Die hierbei benutzte Funktion fk ist eine leichte
Modifikation der oben vorgestellten Funktion f . Abbildung 5.25 verdeutlicht das Innere“
”
von fk . Die hier verwendeten S-Boxen sind mit den bei f benutzten identisch.
Es bleibt noch festzuhalten, daß die Entschlüsselung mit dem gleichen Algorithmus
erfolgt wie die Verschlüsselung. Hierbei werden die verwendeten Schlüssel in umgekehrter
Reihenfolge benutzt.
5.3. FEAL
101
Input
(K
N
,K
N+1
,K
N+2
,K
N+3
)
f
64 bit
f
32 bit
16 bit
f
(K
N+4
,K
N+5
,K
N+6
,K
)
N+7
Output
Abbildung 5.22: Struktur des FEAL-Algorithmus
102
KAPITEL 5. BLOCKCHIFFREN
Input
Teilschlüssel
s1
s0
s0
s1
Output
Abbildung 5.23: f -Funktion
5.3. FEAL
103
Input Schlüssel K
64 bit
32 bit
fk
Output
(K 0 , K 1 )
fk
Output
(K 2 , K 3 )
fk
Output
(K N+4 , K
fk
N+5 )
Output
(K N+6 , K
N+7 )
Abbildung 5.24: Teilschlüsselgenerierung bei FEAL
104
KAPITEL 5. BLOCKCHIFFREN
Input
s1
Input
s0
s0
s1
Output
Abbildung 5.25: Die Funktion fk
Eine formale Spezifikation von FEAL-N findet sich in [99].
5.3.3
Kryptoanalyse
Auf FEAL gab es sehr früh erfolgreiche Angriffe, die sich aus heutiger Sicht durch Differentielle und Lineare Kryptoanalyse sehr gut beschreiben lassen. Durch diese Angriffe
wurden Grundlagen für diese beiden Analysemethoden gelegt.
Bereits 1987 wurde von Bert den Boer FEAL-4 gebrochen [22]. Diese Attacke wurde
1990 von Murphy [96] weiterentwickelt. Hierbei konnte eine Verringerung der Zahl von
benötigten Klartext/Chiffrat-Paare von etwa 100 – 10.000 auf 20 erreicht werden.
Eine Attacke gegen die erweiterte Chiffre mit 8 Runden (FEAL-8) stammt von den
Franzosen H. Gilbert und G. Chasse [55]. Der Angriff benutzt die Idee der Differentiellen
Kryptoanalyse (siehe 5.4). Diese Attacke benötigt z.B. auf einer SUN 4 Workstation
weniger als zwei Stunden.
Fast zur selben Zeit wurde von Biham und Shamir die Differentielle Kryptoanalyse
als Werkzeug allgemein vorgestellt und damit auch FEAL weitestgehend gebrochen [14].
5.4. DIFFERENTIELLE KRYPTOANALYSE
105
Dort wird auch gezeigt:
• FEAL-8 kann mit 2.000 speziell gewählten Klartexten und zugehörigem Chiffretext
gebrochen werden.
• Für FEAL-N mit weniger als 32 Runden ist das Brechen durch differentielle Analyse
schneller als vollständige Schlüsselsuche. Das gleiche gilt für FEAL-NX, da sich
FEAL-N und FEAL-NX lediglich in dem Schlüsselaufbereitungsteil unterscheiden.
Dieser ist für die differentielle Analyse irrelevant, da sie die Teilschlüssel direkt
ermittelt, und somit stellt FEAL-NX gegenüber FEAL-N keine Erschwernis für die
Analyse dar.
• Falls man 238 ≈ 2, 75 · 1011 Paare von Klar- und Chiffretext besitzt, so kann man
die Analyse für FEAL-8 auch als known plaintext attack“ durchführen.
”
• FEAL-4 kann mit 8 frei gewählten, oder 100.000 beliebigen Klartext/Chiffretextpaaren gebrochen werden.
Die Attacke gegen FEAL-8 wurde von Biham und Shamir auf einem PC implementiert und benötigt bei Verwendung von 1.000 Textpaaren nur 2 Minuten, bis ein zu 95%
korrektes Ergebnis ermittelt wird. Bei der Verwendung von 2.000 Textpaaren läßt sich
der Schlüssel mit nahezu 100%iger Sicherheit finden.
5.4
Differentielle Kryptoanalyse
Die Kryptosysteme, die wir in den letzten Abschnitten behandelt haben, weisen mit Ausnahme von Rijndael einen prinzipiell gleichen Aufbau auf: In mehreren Runden werden
jeweils die beiden Hälften des eingehenden Textes (nur anfangs ist dies der Klartext) vertauscht und (o.B.d.A.) die rechte Hälfte mit dem Schlüssel verknüpft und einer schwierigen, nichtlinearen Funktion zugeführt.
Alle Verschlüsselungsalgorithmen, die nach diesem, dem sogenannten Feistelprinzip
arbeiten, ziehen ihre Sicherheit aus der Tatsache, daß die Zwischenergebnisse der einzelnen
Runden nicht bekannt sind; für einen außenstehenden Beobachter stellt die Chiffrierung
eine black box dar.
5.4.1
Differentiellen Kryptoanalyse von DES
In [14] entwickeln E. Biham und A. Shamir ein Verfahren, das es ermöglicht, ohne Kenntnis
der Zwischenresultate der einzelnen Runden den Schlüssel zu ermitteln. Wir wollen das
Verfahren der differentiellen Kryptoanalyse am Beispiel des DES erläutern.
Wir gehen dabei zunächst von einem 1-Runden-DES aus. Dabei vernachlässigen wir
die Ein-, Ausgangs- und die Rundenpermutation, da diese alle bekannt sind und sich
herausrechnen“ lassen. In Abbildung 5.26 ist diese einfache Form des DES dargestellt.
”
106
KAPITEL 5. BLOCKCHIFFREN
m
m
l
r
q
@
?
@
f @
?
@
R l
@
?
L
c
k
?
1
R
1
l
c
r
HH H
j
HH
Abbildung 5.26: 1-Runden-DES
2. Verschlüsselung
1. Verschlüsselung
m1
m2
?
m′
?
E
E
e1
L
?
e2
L
?
k
sin,1
?
S-Box
sout,1
?
Differenz
+
?
E
e′
k
sin,2
?
S-Box
sout,2
?
=
s′in = e′
?
Diff.-Tab.
s′out
?
Abbildung 5.27: Differenzen von zwei Verschlüsselungen in einer S-Box
Bei der differentielle Kryptoanalyse betrachten wir nicht verschiedene Klar- und Chiffretexte, sondern die Differenzen der Klartexte gegenüber den Differenzen der Chiffretexte
von Textpaaren ((M 1 , C 1 ), (M 2 , C 2 )). Wir beschränken uns für die Erläuterung des Verfahrens auf den Signalfluß in einer S-Box. Abbildung 5.27 (a) zeigt einen Ausschnitt aus
dem Signalfluß des DES für zwei Klartexte (vergl. Abbildung 5.17); mi bzw. cj bezeichnen
jeweils Blöcke des Klar- bzw. des Chiffretextes.
Betrachten wir nun die Differenzen der Texte in den jeweiligen Stufen, so erhalten wir
einen vom Teilschlüssel k unabhängigen Signalfluß (Abbildung 5.27 (b)). Da wir ja von
einer known plaintext -Attacke ausgegangen sind, sind alle Texte, bis auf sin,1 und sin,2 ,
bekannt:
5.4. DIFFERENTIELLE KRYPTOANALYSE
m′ : =
e′ : =
=
′
sin : =
=
s′out : =
107
m1 ⊕ m2
e1 ⊕ e2 = E(m1 ) ⊕ E(m2 )
E(m1 ⊕ m2 ) = E(m′ )
sin,1 ⊕ sin,2 = e1 ⊕ k ⊕ e2 ⊕ k
e1 ⊕ e2 = E(m′ )
sout,1 ⊕ sout,2 .
Um bei gegebenen m′ und s′out die Werte für sin,1 , sin,2 zu ermitteln, erstellt man zu jeder S-Box eine Tabelle (in Abbildung 5.27 Diff.-Tab.“), die die möglichen Kombinationen
”
enthält. Jeder Zeile i dieser 64 × 16-Tabelle entspricht einer Eingangsdifferenz m′ = i. In
der Spalte j sind alle Paare sin,1 , sin,2 eingetragen, die zu einer Ausgangsdifferenz s′out = j
führen. In Abbildung 5.28 ist diese Tabelle exemplarisch für die S-Box S1 dargestellt. Aus
Platzgründen ist jeweils nur ein Text eines Paares angegeben; der jeweils zweite läßt sich
leicht durch eine XOR-Operation mit der Differenz (dem Zeilenindex) ermitteln. Ist ein
Paar (sin,1 , sin,2 ) gefunden, das den vorgegebenen Differenzen entspricht, so läßt sich der
Teilschlüssel k leicht berechnen:
sin,1 = e1 ⊕ k
bzw. k = e1 ⊕ sin,1 .
(5.1)
Im Allgemeinen wird man mit einem Textpaar den verwendeten Schlüssel nicht eindeutig bestimmmen können, sondern nur eine Menge von Schlüsseln zur Auswahl haben.
Das folgende Beispiel zeigt, wie durch mehrere Textpaare die Menge der Schlüssel immer
weiter eingeengt wird:
Beispiel:
Gegeben sei ein erstes Textpaar ((m11 , s1out,1 ), (m12 , s1out,2 )) mit der Ausgangsdifferenz
(in hexadezimaler Schreibweise)
(s1out )′ = F.
Nach der Expansionsabbildung E erhalten wir die Werte
e11 = 8,
e12 = 9.
Für die Eingangsdifferenz der S-Box gilt also (s1in )′ = 1. Aus der Tabelle (Zeile 1,
Spalte 15) erhalten wir
s1in,1 ∈ {1E, 2A, 1F, 2B}
und nach (5.1)
k ∈ {16, 22, 17, 23}.
108
KAPITEL 5. BLOCKCHIFFREN
E
i
n
g
a
n
g
s
d
i
f
f
e
r
e
n
z
e
n
0
1
0
1
alle
2
3
08
11
15
18
19
25
39
..
.
3F
2
3
Ausgangsdifferenzen
4 5 6 7 8 9 A
1C
2C
3C
06 0C 16
24 32
05
0C
21
30
20 24 15
3C 2D 1C
0E
10
28
36
38
04
14
26
30
34
3A
10 00
2C 14
38 25
39
B
C
D
E
F
02 08 0A 00 1E
20 12 22
2A
18 3E
1A
2E
1D 04 08 31 01
28 09 29 34
3D 0D 35
11
18
19
00 29 38 01 0D 05 34 1C 04 0C
24 14 21
09
1D 10 3D
20 31 2D
28 2C
3C
30
35
..
.
.
.
.
Abbildung 5.28: Tabelle der Differenzen und der zugehörigen Textpaare für die S-Box S1
Gegeben sei ein zweites Textpaar ((m21 , s2out,1 ), (m22 , s2out,2 )), mit dem wir etwa
(s2out )′ = B,
e21 = A,
e22 = 8
erhalten. Also:
s2in,1 ∈ {1D, 28, 3D, 1F, 2A, 3F }
und
k ∈ {17, 22, 37, 15, 20, 35}.
Bisher haben wir die Menge der möglichen Teilschlüssel auf {17, 22} reduziert. Um
den gesamten Schlüssel zu ermitteln, müssen wir zu jeder S-Box so viele verschiedene
Textpaare betrachten, wie wir benötigen um den jeweiligen Teilschlüsssel eindeutig
zu bestimmen.
5.4. DIFFERENTIELLE KRYPTOANALYSE
L
109
R
q a
@
?
@
f @
@ ? A
R l
@
?
L1
?
R1
q
@
? b
@
f
@
@ ? B
R l
@
?
L2
k2
?
R2
q c
@
?
@
f @
@ ? C
R l
@
?
k1
k3
?
L3
R3
l
r
HH H
H
H
j
H
Abbildung 5.29: 3-Runden-DES
Auch bei einem 2-Runden-DES sind alle Werte der einzelnen Stufen bekannt, bis auf
— wiederum — die Eingänge der S-Boxen. Für diesen Fall läßt sich die Vorgehensweise
des 1-Runden-DES übertragen. Etwas anders sieht es bei einem 3-Runden-DES aus:
Aus Abbildung 5.29 wird deutlich, daß nicht genügend Eingänge bzw. Eingangsdifferenzen bekannt sind, um einen solchen 3-Runden-DES analog zu den bisher besprochenen
Fällen zu brechen. Wir müssen also anders vorgehen (und verwenden dabei die Bezeichnungen aus Abbildung 5.29): Es ist ersichtlich, daß die letzte Runde der Verschlüsselung
einen Angriffspunkt bietet. Die letzte Eingabe (R2 ) der Funktion f ist – als L3 bzw. r –
Teil der Ausgabe, also des Chiffretextes. Mit den Eingängen der letzten Anwendung von f
sind natürlich auch die Differenzen dieser Eingänge für verschiedene Textpaare bekannt.
Um – in einem ersten Schritt – die letzte Runde des DES zu brechen, benötigen wir noch
die Ausgangsdifferenz C ′ . Gemäß dem Signalfluß in Abbildung 5.29 erhalten wir:
l = R3 = C ⊕ L2 = C ⊕ R1 = C ⊕ L ⊕ A
110
KAPITEL 5. BLOCKCHIFFREN
und damit
C =A⊕L⊕l
bzw. C ′ = A′ ⊕ L′ ⊕ l′ ,
wobei X ′ wieder die Differenzen der entsprechenden Größe für verschiedene Textpaare
bezeichnet. Bis auf A bzw. A′ sind die Größen auf den rechten Seiten bekannt.
Setzen wir nun voraus, daß wir Textpaare ((L1 R1 , l1 r 1 ), (L2 R2 , l2 r 2 )) verwenden, die
sich in ihren rechten Klartexthälften nicht unterscheiden, R1 = R2 , so unterscheiden sich
auch die Ausgaben der ersten Anwendung von f nicht:
A1 = A2
⇒
A′ = 0.
Also ist für solche Textpaare
C ′ = L′ ⊕ l′
und, zusammen mit c′ = r ′ , eine differentielle Kryptoanalyse der letzten Runde des 3Runden-DES möglich. Der verbleibende 2-Runden-DES läßt sich danach ebenfalls brechen.
Bei der Übertragung der differentiellen Kryptoanalyse auf größere Anzahlen von Runden, gelangen wir zu einem probabilistischem Schema. Es gibt bestimmte Eingangsdifferenzen, die sich mit hoher Wahrscheinlichkeit nach zwei Runden DES-Verschlüsselungen
wiederfinden. Solche Differenzen bezeichnen Biham und Shamir als Charakteristiken. In
Abbildung 5.30 ist ein Beispiel einer solchen Charakteristik gegeben.
Für einen 2n-Runden-DES läßt sich eine solche Charakteristik nicht direkt überprüfen:
Wenn die Ein- und Ausgangsdifferenz der Charakteristik entspricht, so können wir aber
1 n
gemäß dem Beispiel mit einer Wahrscheinlichkeit von ( 234
) davon ausgehen, daß die
Differenzen der einzelnen Runden mit denen der Charakteristik übereinstimmen. Für die
Kryptoanalyse verwendet man nur Paare, die äußerlich der Charakteristik entsprechen.
Überträgt man deren Eigenschaften auch auf das Verhalten des Textpaares innerhalb der
Runden, so erhält man eine Eingangsdifferenz für die letzte Runde des DES. Ermittelt
man, gemäß dem Vorgehen beim 1-Runden-DES, für verschiedene Textpaare die Mengen
der möglichen Schlüssel, so wird man i. allg. auf eine leere Schnittmenge stoßen. Durch
die nur probabilistischen Annahmen über das Verhalten der Differenzen innerhalb der
Runden, können wir den verwendeten Schlüssel nur durch einen Mehrheitsentscheid aus
den möglichen auswählen.
Durch verschiedene Charakteristiken lassen sich so alle Teilschlüssel ermitteln. In [14]
geben Biham und Shamir den Aufwand für die differentielle Kryptoanalyse verschiedener DES-ähnlicher Kryptosysteme an: In der folgenden Tabelle ist der Aufwand für das
Brechen des DES in Abhängigkeit der Rundenzahl angegeben:
5.4. DIFFERENTIELLE KRYPTOANALYSE
19600000
111
00000000
r
00000000
@
?
@
@
immer
f
@
00000000
@ ?
R
@
?
00000000
?
196000000
r
19600000
@
?
@
1
@
f
234
@
00000000
@ ?
R
@
?
196000000
?
00000000
Abbildung 5.30: 2-Runden-Charakteristik
Runden
4
6
8
9
10
11
12
13
14
15
16
Komplexität
24
28
216
226
235
236
243
244
251
252
258
Für einen 16-Runden-DES bietet das Verfahren der differentiellen Kryptoanalyse keinen Vorteil gegenüber der vollständigen Suche im Schlüsselraum. Für andere Kryptosysteme z.B. FEAL-4, FEAL–8 oder PES ergibt sich durch die differentielle Kryptoanalyse
ein großer Vorteil.
112
5.4.2
KAPITEL 5. BLOCKCHIFFREN
Analyse von Skipjack mit unmöglichen Differenzen
Im Rahmen von Standardisierungs-Bemühungen von Verschlüsselungsverfahren in den
USA, bei denen auch eine staatliche Abhörmöglichkeit besteht, wurde das CLIPPERChip entwickelt, in dem u.a. auch die Blockchiffre Skipjack implementiert wurde. Diese
geheimgehaltene Chiffre wurde nach dem Scheitern der Einführung von CLIPPER vom
National Institute of Standards and Technology veröffentlicht [128].
Gegen eine in der Rundenzahl reduzierte Version dieser Blockchiffre wurde auf der
Eurocrypt 1999 ein Angriff vorgestellt [17], der sehr schön die Möglichkeit darlegt, wie man
nicht wie bei der üblichen differentiellen Analyse die überdurchschnittlich auftretenden
Differenzen ausnutzt, sondern die selten bzw. gar nicht möglichen Paare.
Zunächst müssen wir dazu Skipjack kurz beschreiben:
Arbeitsweise von Skipjack
Skipjack ist eine Chiffre, die vier 16-Bit-Worte (also 64 Bit) mit einem 80-Bit-Schlüssel in
32 Runden mit jeweils einem Teilschlüssel von vier Byte verschlüsselt. In den ersten 8 Runden wird Regel A, dann 8 Runden lang Regel B, wieder 8 Runden Regel A und nochmals
8 Runden Regel B angewendet. Dabei werden die 4 Worte entsprechend Abbildung 5.31
und 5.32 durch ein Schieberegister verarbeitet, also im wesentlichen w2 := G(w1 ) gesetzt
und die anderen Worte durch Verschieben und XOR verändert. Etwas ungewohnt wird
noch der Rundenzähler (1, . . . , 32) zu einem Wort addiert, was z.B. das Ausnutzen von
2-Runden Charakteristiken, wie sie beim DES verwendet werden, verhindert, da sich auch
bei gleichen Eingaben die Runden unterschiedlich verhalten.
w1
6
Zähler - m
- G
w2
-
w3
-
w4
?
m
Abbildung 5.31: Regel A von Skipjack
w1
6
- G
w2
- m6
- m
-
w3
w4
Zähler
Abbildung 5.32: Regel B von Skipjack
Die Rundenfunktion G besteht aus einer Feistelchiffre mit 4 Runden, bei der die jeweiligen Teilschlüssel mit XOR zum Signalfluß addiert werden (siehe Abbildung 5.33).
5.4. DIFFERENTIELLE KRYPTOANALYSE
113
Der 32-Bit-Rundenschlüssel, der in G eingeht, wird aus dem 80-Bit-Gesamtschlüssel von
Skipjack ausgewählt. Die Rundenfunktion F von G ist die (bijektive) 8-Bit- auf 8-BitSubstitution, die in Tabelle 5.1 gegeben ist.
r in
l in
k4i
k4i+1
?
?
m
F m
k4i+2
k4i+3
?
?
m
F m
? ?
- m- F
- m
? ?
- m- F
- m
?
?
l out
r out
Abbildung 5.33: Die Rundenfunktion G von Skipjack
Differentielle Analyse von 25 Runden Skipjack
Der Ablauf von Skipjack kann auch in einer anderen Form, siehe Abb. 5.34, dargestellt
werden. Hier ist das Schieberegister durch einen Signalfluß ersetzt, so daß die jeweiligen
Ergebnisse der Runden nur alle 4 Takte direkt mit den Registerinhalten der ursprünglichen
Darstellung übereinstimmen; ansonsten sind Zwischenergebnisse gegenüber den Inhalten
der Register “verschoben”. Der etwas seltsame Übergang von Runde 7 auf Runde 8 liegt
am Übergang von Regel A zu Regel B. Durch diesen Übergang bleibt ein Registerinhalt 7
Runden, anstatt sonst 3 Runden (fast) konstant. Dies kann man als eine Entwurfsschwäche
des Algorithmus für Angriffe ausnutzen.
Unmögliche 24 Runden Charakteristik Man betrachtet Skipjack zunächst reduziert auf 12 Runden (Runde 5 bis Runde 16). Ein Paar von Eingängen in Runde 5 mit
einer Differenz der Form (0, a, 0, 0), wobei a ein 16-Bit-Wort ungleich 0 ist, ergibt nach
Runde 16 immer eine Ausgangsdifferenz der Form (c, d, e, 0), wobei c, d, e 6= 0 sind. Dies
ist einfach durch Verfolgen der Differenzen in Abb. 5.34 zu sehen. Man muß dabei lediglich
auf Differenz 0 und ungleich 0 verfolgen.
Betrachtet man den Signalfluß umgekehrt (wie er bei der Entschlüsselung benutzt
wird), so sieht man auf dieselbe Weise, daß eine Differenz der Form (b, 0, 0, 0) nach
114
KAPITEL 5. BLOCKCHIFFREN
?
G
Regel A
?
j
?
?
j
?
?
j
?
?
- j
1
?
G
2
G
3
G
4
G
Regel A
?
j
?
?
j
?
?
- j
5
?
G
6
G
7
G
Regel B
PP
P
P
?
j
?
?
j
G
?
j
8
1
? 10
G
?
G
?
G
?
G
?
j
?
- j
?
- j
12
13
? 14
G
Regel B
?
G
?
?
?
- j
11
G
?
?
- j
?
?
- j
15
16
?
Abbildung 5.34: Alternative Darstellung von Skipjack (hier nur Runde 1–16, die nächsten
16 Runden sind bis auf die Zähler identisch).
5.4. DIFFERENTIELLE KRYPTOANALYSE
0x
1x
2x
3x
4x
5x
6x
7x
8x
9x
Ax
Bx
Cx
Dx
Ex
Fx
x0
A3
E7
0A
96
39
55
35
97
42
89
70
34
AD
0C
08
5E
x1
D7
2D
DF
84
B6
B9
D5
FC
ED
CB
88
4B
04
EF
77
6C
x2
09
4D
02
6B
7B
DA
C0
B2
9E
30
61
1C
23
BC
11
A9
x3
83
8A
A0
BA
0F
85
A7
C2
6E
1F
2C
73
9C
72
BE
13
x4
F8
CE
17
F2
C1
3F
33
B0
49
8D
9F
D1
14
75
92
57
x5
48
4C
F1
63
93
41
06
FE
3C
C6
0D
C4
51
6F
4F
25
x6
F6
CA
60
9A
81
BF
65
DB
CD
8F
2B
FD
22
37
24
B5
x7
F4
2E
68
19
1B
E0
69
20
43
AA
87
3B
F0
A1
C5
E3
115
x8
B3
52
12
7C
EE
5A
45
E1
27
C8
50
CC
29
EC
32
BD
x9
21
95
B7
AE
B4
58
00
EB
D2
74
82
FB
79
D3
36
A8
xA
15
D9
7A
E5
1A
80
94
D6
07
DC
54
7F
71
8E
9D
3A
xB
78
1E
C3
F5
EA
5F
56
E4
D4
C9
64
AB
7E
62
CF
01
xC
99
4E
E9
F7
D0
66
6D
DD
DE
5D
26
E6
FF
8B
F3
05
xD
B1
38
FA
16
91
0B
98
47
C7
5C
7D
3E
8C
86
A6
59
xE
AF
44
3D
6A
2F
D8
9B
4A
67
31
03
5B
0E
10
BB
2A
xF
F9
28
53
A2
B8
90
76
1D
18
A4
40
A5
E2
E8
AC
46
Tabelle 5.1: Die SKIPJACK F-Tabelle in Hex–Format. Die höherwertigen Bits stehen in
den Zeilen, die niedrigerwertigen Bits in den Spalten; z. B. findet man F (7A) = D6 in
Zeile 7x und Spalte xA.
Runde 28 von einer Differenz der Form (f, g, 0, h) aus Runde 17 kommen muß, wobei
b, f, g, h 6= 0 wieder 16-Bit-Worte sind.
Setzt man diese beiden sicheren Charakteristiken zusammen, so ergibt sich, daß eine
Differenz der Form (0, a, 0, 0) vor Runde 5 nie auf eine Differenz der Form (b, 0, 0, 0) nach
Runde 28 führen kann.
Damit ist eine unmögliche Differenz für 24 Runden gefunden, mit der wir einen 25 Runden Skipjack angreifen wollen.
Analyse von 25 Runden — Grundidee Betrachten wir dazu Runde 25: Bei den
beiden Eingaben
(x1 , x2 , x3 , x4 ) und (x1 ⊕ b, x2 , x3 , x4 )
ist die Ausgangsdifferenz
G(x1 ) ⊕ G(x1 ⊕ b), b, 0, 0 .
Betrachten wir nun alle 25 Runden: Ist ein Paar gefunden, dessen Eingangsdifferenz
(0, a, 0, 0) und Ausgangsdifferenz (c, b, 0, 0) ist, so ist sicher, daß die Differenz vor der
letzten Runde nicht (b, 0, 0, 0) war. Probiert man jetzt alle 232 Rundenschlüssel durch, so
sind all diejenigen sicher falsch, bei denen für ein beliebiges x1 gilt c = G(x1 ) ⊕ G(x1 ⊕ b).
Durch eine solche Elimination von Teilschlüsseln läßt sich der Rundenschlüssel Nr. 25
eindeutig bestimmen. Damit sind 32 der 80 Schlüsselbit bekannt. Die restlichen 48 Bit
lassen sich durch Ausprobieren finden.
Für einen konkreten Angriff müssen jetzt noch die (nicht unwichtigen) Details überlegt
werden. Hier werden sie lediglich kurz erwähnt; genauer nachlesen kann man sie in [17].
116
KAPITEL 5. BLOCKCHIFFREN
Analyse von 25 Runden — Details und Aufwandsabschätzung Zunächst wählt
man 222 Mengen von Klartexten (4 × 16 Bit), die jeweils aus den 216 Texten bestehen, die
sich im zweiten der 4 Worte unterscheiden. All diese 238 Klartexte werden verschlüsselt.
Bei einer Differenziellen Analyse werden Paare von Ein-/Ausgängen betrachtet. Jede
der Mengen von 216 Eingängen liefert etwa 231 Klartextpaare. Daraus wählt man alle
Paare aus, deren Chiffrate sich in genau den ersten beiden Worten unterscheiden. Im
Schnitt liefert jede zweite Menge ein solches Paar, es werden also etwa 221 solche Paare
gefunden. Dann testet man durch Berechnen von G−1 der ersten Worte der Chiffrate für
alle 232 Rundenschlüssel ob die obige Gleichung für die Differenzen erfüllt ist. Falls ja kann
dieser Schlüssel eliminiert werden. (Das Berechnen von G−1 für alle 232 Rundenschlüssel
läßt sich effizient mit etwa 216 Entschlüsselungen realisieren. Betrachte dazu den Aufbau
von G.) Für jedes Paar wird die Bedingung für etwa 216 Schlüssel erfüllt. Nach dem
221
Überprüfen aller 221 Paare bleiben etwa 232 · (1 − 2−16 ) ≈ 0, 000054 falsche Werte übrig;
höchst wahrscheinlich ist also der eine richtige Rundenschlüssel gefunden. Der Aufwand
für diesen letzten Schritt ist etwa 217 · 221 = 238 Berechnungen von G oder entsprechend
233 vollständige Verschlüsselungen.
Anschließend werden die restlichen 48-Bit-Schlüssel durch vollständige Suche gefunden; es können allerdings auch trickreichere und deutlich effizientere Techniken verwendet
werden
5.5
Lineare Kryptoanalyse
Bei der linearen Kryptoanalyse wird versucht, eine lineare Approximation für den Verschlüsselungsalgorithmus zu bestimmen. Zuerst werden statistische lineare Beziehungen
zwischen den Eingabe- und den Ausgabebits jeder S-Box aufgestellt. Die Beziehungen
werden kombiniert und auf den gesamten Algorithmus ausgedehnt, um eine lineare Approximation des gesamten Algorithmus ohne Zwischenwerte zu erhalten.
5.5.1
Notation
In Abbildung 5.35 ist die Struktur des DES-Algorithmus aufgezeigt. Die Permutation IP
am Anfang und IP −1 am Ende wurden weggelassen.
Es werden die folgenden Bezeichnungen verwendet, wobei das Bit am weitesten rechts
als das Bit Nr. 0 bezeichnet wird:
5.5. LINEARE KRYPTOANALYSE
117
P
PL
F1 (X1, K1)
PR
K1
X1
F1
K2
F2 (X2, K2)
X2
F2
Kn
Fn (Xn, Kn)
Xn
Fn
CL
CR
C
Abbildung 5.35: DES-Aufbau
P
C
PL
PR
CL
CR
Xi
Ki
Fi (Xi , Ki)
A [i]
A [i, j . . . , k]
5.5.2
64-Bit-Klartext
der zugehörige 64-Bit-Chiffretext
der linke 32-Bit-Teil von P
der rechte 32-Bit-Teil von P
der linke 32-Bit-Teil von C
der rechte 32-Bit-Teil von C
der 32-Bit-Zwischenwert in der i-ten Runde
der 48-Bit-Teilschlüssel in der i-ten Runde
Die F-Funktion in der i-ten Runde
Das i-te Bit von A
A [i] ⊕ A [j] ⊕ . . . ⊕ A [k]
Prinzip der linearen Kryptoanalyse
Erstes Ziel der linearen Kryptoanalyse ist es, eine lineare Abhängigkeit für die Verschlüsselung zu bestimmen:
P [i1 , i2 , . . . , ia ] ⊕ C [j1 , j2 , . . . , jb ] = K [k1 , k2 , . . . , kc ] ,
(5.2)
118
KAPITEL 5. BLOCKCHIFFREN
wobei i1 , i2 , . . . , ia , j1 , j2 , . . . , jb , k1 , k2 , . . . , kc feste Bitpositionen bezeichnen und die Gleichung mit einer Wahrscheinlichkeit von p 6= 21 für
einen zufälligen Klartext P und den
1
zugehörigen Chiffretext C gilt. Die Größe p − 2 gibt die Effektivität der Gleichung 5.2
an. Wenn eine effektive lineare Approximation bekannt ist, dann kann man mit der naiven
Maximum-Likelihood-Methode ein Schlüsselbit K [k1 , k2 , . . . , kc ] erraten:
Algorithmus 1
Es sei N die Anzahl der Klar-/Chiffretextpaare und T die Anzahl der Klartexte, für die die linke Seite von Gleichung 5.2 gleich Null ist.
Falls T > N/2,
dann rate K [k1 , k2 , . . . , kc ] = 0 falls p >
sonst rate K [k1 , k2 , . . . , kc ] = 1 falls p >
1
2
1
2
oder 1 falls p < 12 ,
oder 0 falls p < 21 .
Es ist klar,
daß die Erfolgswahrscheinlichkeit des Algorithmus größer wird, wenn N
1
wird im folgenden als die beste
oder p − 2 größer werden. Eine lineare Approximation
lineare Approximation bezeichnet, wenn p − 21 maximal ist. Die Wahrscheinlichkeit p
wird in diesem Fall als die beste Wahrscheinlichkeit bezeichnet.
Um diese Idee ausnuzen zu können müssen die folgenden drei Teilprobleme gelöst
werden:
• Wie findet man effektiv eine lineare Abhängigkeit?
• Wie bestimmt man die Erfolgswahrscheinlichkeit bei gegebenem N und p?
• Wie findet man effektiv die beste lineare Abhängigkeit?
Das zweite Problem wird durch folgendes Lemma theoretisch gelöst. Hier wird dies
nicht weiter betrachtet; der interessierte Leser sei auf [84] verwiesen.
Lemma 5.3 Es sei N die Anzahl der zufälligen Klartexte
und
p die Wahrscheinlichkeit,
daß die Gleichung 5.2 gilt. Es wird angenommen, daß p − 21 ausreichend klein ist. Dann
beträgt die Erfolgswahrscheinlichkeit bei obigem Vorgehen
Z ∞
1
2
√ e−x /2 dx.
√
2π
−2 N |p− 12 |
Der Beweis erfolgt mit dem Grenzwertsatz von Moivre-Laplace.
Die obige Maximum-Likelihood-Methode liefert lediglich ein Schlüsselbit. Um mehrere
Bits gleichzeitig zu erhalten, wird für einen praktischen Known-plaintext-Angriff auf einen
n-Runden-DES, die beste Approximation für den (n − 1)-Runden-DES verwendet; es sei p
die Wahrscheinlichkeit, mit der diese auftritt. Man tut also so, als ob man die letzte Runde
mit Teilschlüssel Kn entschlüsselt hätte. Deswegen taucht ein Term mit der F -Funktion
Fn (CR , Kn ) in der linearen Approximation auf, wobei CR natürlich bekannt ist.
P [i1 , i2 , . . . , ia ] ⊕ C [j1 , j2 , . . . , jb ] ⊕ Fn (CR , Kn ) [l1 , l2 , . . . , ld ] = K [k1 , k2 , . . . , kc ] , (5.3)
5.5. LINEARE KRYPTOANALYSE
119
Wenn man einen falschen Kandidaten für Kn einsetzt, dann ist klar, daß die Effektivität
der Gleichung sinkt, d. h. der Teilschlüssel Kn mit der größten Effektivität ist wahrscheinlich der richtige. Deswegen kann die folgende Maximum-Likelihood-Methode verwendet
werden, um den Teilschlüssel Kn für die letzte Runde und K [k1 , k2 , . . . , kc ] zu erraten.
Für diesen Test müssen üblicherweise nicht alle möglichen Teilschlüssel Kn durchprobiert
werden, sondern nur die Bits, die Einfluß auf [l1 , . . . , ld ] haben.
Algorithmus 2
(i)
1. Schritt: Für jeden Kandidaten Kn (i = 1, 2, . . .) für den Teilschlüssel Kn sei Ti die
Anzahl der Klartexte, so daß die linke Seite der Gleichung 5.3 gleich Null ist.
2. Schritt: Es sei Tmax der maximale Wert und Tmin der minimale Wert aller Ti ’s.
• Falls |Tmax − N/2| > |Tmin − N/2|, dann übernehme den Schlüsselkandidaten,
der zu Tmax gehört, und rate K [k1 , k2 , . . . , kc ] = 0 bei p > 21 und 1 bei p < 12 .
• Falls |Tmax − N/2| < |Tmin − N/2|, dann übernehme den Schlüsselkandidaten,
der zu Tmin gehört, und rate K [k1 , k2 , . . . , kc ] = 1 bei p > 12 und 0 bei p < 12 .
Es bleibt jetzt noch das Problem, die beste Approximation einer n − 1-Runden Verschlüsselung zu finden. Diese wird sukzessive mit der Anzahl der Runden aufgebaut.
Zunächst wird für eine Runde die beste Approximation der S-Boxen gesucht.
5.5.3
Lineare Approximation der S-Boxen
In [84] werden die S-Boxen analysiert, um gute lineare Approximationen zu erhalten.
Definition 5.4 Für eine gegebene S-Box Sa (a = 1, 2, . . . , 8), 1 ≤ α ≤ 63 und 1 ≤ β ≤ 15,
bezeichne NSa (α, β) die Anzahl derjenigen Eingabemuster, für die gilt, daß der XOR-Wert
der mit α maskierten Eingabebits mit dem XOR-Wert der mit β maskierten Ausgabebits
übereinstimmt, d.h.
(
!
!)
5
3
M
M
NSa (α, β) = # x 0 ≤ x < 64,
(x [s] ∧ α [s]) =
(Sa (x) [t] ∧ β [t])
.
s=0
t=0
(5.4)
Beispiel 5.5 Es gilt
NS5 (16, 15) = 12.
(5.5)
Das Eingabebit vier (von rechts mit null beginnend gezählt) stimmt also in 12 der 64
Fälle (Eingaben) mit dem XOR der vier Ausgabebits überein.
Wenn NSa (α, β) ungleich 32 ist, dann besteht eine gewisse Korrelation zwischen den
Eingabe- und Ausgabebits der S-Box Sa . Das obige Bespiel liefert die deutlichste Abweichung einer S-Box im DES; diese Abhängigkeit tritt lediglich mit der Wahrscheinlichkeit
120
KAPITEL 5. BLOCKCHIFFREN
12/64 ≈ 0, 19 ein. Wenn man die Expansion E und die Permutation P in der F -Funktion
berücksichtigt, dann sieht man, daß die folgende Gleichung
X [15] ⊕ F (X, K) [7, 18, 24, 29] = K [22]
(5.6)
mit der Wahrscheinlichkeit 0, 19 für ein zufälliges X gilt. Ein vollständiges untersuchen
aller S-Boxen zeigt, daß dies die beste lieare Approximation einer S-Box ist, die beim
DES auftritt.
5.5.4
Lineare Approximation des DES
Es wird nun die lineare Approximation der F -Funktion auf den ganzen Algorithmus erweitert. Als erstes Beispiel soll ein 3-Runden-DES dienen. Wenn man die Gleichung 5.6
auf die erste Runde anwendet, dann sieht man, daß
X2 [7, 18, 24, 29] ⊕ PL [7, 18, 24, 29] ⊕ PR [15] = K1 [22]
(5.7)
mit der Wahrscheinlichkeit 12/64 gilt. Dasselbe gilt für die letzte Runde, also
X2 [7, 18, 24, 29] ⊕ CL [7, 18, 24, 29] ⊕ CR [15] = K3 [22] .
P
PL
[7,18,24,29]
PR
[22]
[15]
F1
K1
X1
K2
X2
F2
[22]
[15]
[7,18,24,29]
F3
CL
K3
X3
CR
C
Abbildung 5.36: Approximation eines 3-Runden DES
(5.8)
5.5. LINEARE KRYPTOANALYSE
121
Aus den beiden vorhergehenden Gleichungen erhält man folgende lineare Approximation des 3-Runden-DES, indem man die beiden Gleichungen addiert und dabei die
gemeinsame Term wegläßt:
PL [7, 18, 24, 29] ⊕ CL [7, 18, 24, 29] ⊕ PR [15] ⊕ CR [15] = K1 [22] ⊕ K3 [22] .
(5.9)
Die Wahrscheinlichkeit, daß die obige Gleichung für einen zufälligen Klartext P und
den zugehörigen Chiffretext C gilt, beträgt (12/64)2 + (1 − 12/64)2 ≈ 0, 70. Da die
Gleichung 5.6 die beste Approximation der F -Funktion ist, ist damit die Gleichung 5.9
die beste Approximation für den 3-Runden-DES. Man kann jetzt statistisch (MaximumLikelyhood-Methode) Gleichung 5.9 lösen, um K1 [22] ⊕ K3 [22] zu erhalten.
Als nächstes soll ein 5-Runden-DES betrachtet werden. In diesem Fall, wendet man
die Gleichung 5.6 auf die zweite und vierte Runde an, und die folgende lineare Gleichung
(abgeleitet aus NS1 (27, 4) = 22) auf die erste und die letzte Runde:
X [27, 28, 30, 31] ⊕ F (X, K) [15] = K [42, 43, 45, 46] .
(5.10)
Die beiden Gleichungen ergeben zusammengefaßt die folgende lineraren Approximation
des 5-Runden-DES:
PL [15] ⊕ PR [7, 18, 24, 27, 28, 29, 30, 31] ⊕
CL [15] ⊕ CR [7, 18, 24, 27, 28, 29, 30, 31]
= K1 [42, 43, 45, 46] ⊕ K2 [22] ⊕ K4 [22] ⊕ K5 [42, 43, 45, 46]
(5.11)
Das nächste Lemma liefert eine einfache Methode die Erfolgswahrscheinlichkeit einer
solchen Gleichung zu berechnen:
Lemma 5.6 (Piling-up Lemma) Es seien Xi (1 ≤ i ≤ n) unabhängige Zufallsvariablen,
die den Wert 0 mit der Wahrscheinlichkeit pi und 1 mit Wahrscheinlichkeit 1 − pi annehmen. Dann ist die Wahrscheinlichkeit für X1 ⊕ X2 ⊕ . . . ⊕ Xn = 0
n Y
1
1
n−1
.
pi −
+2
2
2
i=1
(5.12)
Das Lemma zeigt also, daß die Gleichung 5.11 mit der Wahrscheinlichkeit 1/2 +
2 (−10/64)2 ≈ 0, 519 gilt. Wenn also insgesamt |0, 519 − 1/2|−2 ≈ 2800 Klar-/ChiffretextPaare gegeben sind, dann kann man mit einer Wahrscheinlichkeit von 97, 7% die rechte
Seite von Gleichung 5.11 erraten.
Für einen 16-Runden DES sind bei ähnlichem Vorgehen 247 Klartext-/Chiffrat-Paare
notwendig. Damit können 14 der 56 Schlüsselbits gefunden werden. Die verbleibenden
42 Bit des Schlüssels können dannn durch vollständige Suche ermittelt werden. Dieser
Angriff ist deutlich schneller als ein brute-force Angriff.
3
122
KAPITEL 5. BLOCKCHIFFREN
P
PL
[15]
PR
[42,43,45,46]
[27,28,30,31] X1
F1
[22]
[15]
[7,18,24,29]
F2
K1
K2
X2
K3
X3
F3
[7,18,24,29]
[15]
[22]
[15]
F4
K4
X4
[42,43,45,46]
[27,28,30,31] X5
F5
CL
K5
CR
C
Abbildung 5.37: Approximation eines 5-Runden DES
5.6
Der Advanced Encryption Standard (AES)
Es wurde nach einer Ausschreibung und Sichtung der Kandidaten auf mehreren Konferenzen von der NIST (National Institute of Standards and Technology) Rijndeal als der
neue Standard festgesetzt.
Die genaue Spezifikation von Rijndael kann unter
http://csrc.nist.gov/encryption/aes/rijndael/Rijndael.pdf
5.6. DER ADVANCED ENCRYPTION STANDARD (AES)
123
gefunden werden. Im Folgenden werden die wesentlichen Grundelemente beschrieben.
Die Randbedingungen, die bei der Auswahl von AES ausschlaggebend waren, waren:
1. Sowohl die Schlüssel-, als auch die Nachrichtenlänge sollte auf 128, 196, bzw. 256
skalierbar sein.
2. Es durfte kein Angriff bekannt sein, der besser als vollständige Suche ist.
3. Last but not least war die Geschwindigkeit ein Kriterium.
5.6.1
Die Grundbausteine von AES
Zunächst wählt man sich ein irreduzibles Polynom vom Grad 8, um den Körper F28 als
konkreten Restklassenring zu realisieren. Im Falle von AES wurde das Polynom
g(X) = X 8 + X 4 + X 3 + X + 1
gewählt und somit F28 als F2 [X]/g(X) realisiert.
Als nächstes wird sowohl der Klartext, als auch der Schlüssel in ein rechteckiges Schema
eingetragen, s. Abbildung 5.38.
a0
a4
a8
a 12
...
a1
a5
a9
a 13
...
a2
a6
a 10
a 14
...
a3
a7
a 11
a 15
...
128 Bit
196 Bit
256 Bit
Abbildung 5.38: Schema für Klartext und Schlüssel beim AES
Die Verschlüsselung dieser Klartextstruktur geschieht dann je nach Schlüssel-/BlockLänge in 10 bis 14 Runden folgendermaßen:
Eine Runde besteht aus den Funktionen
1. Byte Substitution
2. Shift Row
124
KAPITEL 5. BLOCKCHIFFREN
3. Mix Column
4. Add Round Key.
Diese werden in dieser Reihenfolge pro Runde abgearbeitet. Die Rundenanzahl ist je
nach Blockgröße 10, 12 oder 14.
Im folgenden wird nun die Arbeitsweise dieser Funktionen erläutert.
Byte Substitution
Die Byte Substitution wird auf alle Bytes des aktuellen Zustandes ausgeführt. Dazu wird
ein Byte als Element in F28 interpretiert und invertiert. Sollte das Byte zufällig die 0 ∈ F28
repräsentieren, so bleibt es die Null. Anschließend wird dieses neue Element als Vektor
über F2 in F28 interpretiert und eine affine Transformation, die durch












1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
gegeben ist, darauf angewandt.
Die Vorteile dieser Art der Substitution sind:
1
1
1
1
0
0
0
1


 
 
 
 
 
+
 
 
 
 
 
1
1
0
0
0
1
1
0












• Sie ist in Hardwear sehr klein realisierbar (ein normaler Computer hat sowieso eine
Art F28 Arithmetik).
• Man kann ein allseits beliebtes Schieberegister für die Transformation verwenden.
• Hat man Platz (z.B. in Softwear), so ist diese Art der Substitution besser als eine
Tabelle.
Aber auch das Entschlüsseln ist sehr schnell, da man ja nur die inverse affine Transformation anwenden und dann invertieren muß.
Shift Row
Diese Operation ist in Abb. 5.39 schematisch im Fall des 128 Bit AES dargestellt. Bei
anderen Längen der Datenblöcke werden die Zeilen teilweise etwas anders verschoben.
5.6. DER ADVANCED ENCRYPTION STANDARD (AES)
a
125
a
b
b
c
c
d
d
Abbildung 5.39: Shift Row Operation von AES für 128-Bit Datenblöcke
Mix Column
Bei dieser Funktion werden die Spalten als Polynome vom Grad 3 in F28 [Y ] interpretiert,
anschließend mit f (Y ) = (X + 1) · Y 3 + Y 2 + Y + X · Y 0 multipliziert und zu guter letzt
modulo Y 4 + 1 reduziert1 .
Diese Vorgehensweise bietet den Vorteil, daß sie sehr schnell durchführbar und leicht
zu berechnen ist.
Außerdem ist f (Y ) wegen ggT(f (Y ), Y 4 +1) = 1 invertierbar, was die Entschlüsselung
auf eine Multiplikation mit dem zu f (Y ) inversen Polynom reduziert.
Add Roundkey
Der Rundeschlüssel wird mit dem internen Zustand mit XOR verknüpft.
Erzeugen des Rundenschlüssels
Der eingegebene Schlüssel wird entsprechend der Rundenanzahl und dadurch benötigten
Rundenschlüssel verlängert“. Im 128-Bit Fall werden dazu die 4 Spalten des Schlüssels,
”
die 32-Bit Worte w0 , w1 , w2 , w3 mit einer temporären Variable temp per XOR verknüpft.
Dies liefert die nächsten 4 Schlüsselworte. Die temporäre Variable wird aus dem letzten davor erzeugten Schlüsselwort, am Anfang also aus w3 erzeugt. Zu Anfang jedes 4-er Blocks
druch SubByte(RotByte()) XOR Rundenkonstante(i/4), in den nächsten drei Fällen wird
direkt das zuletzt erzeugte Wort genommen.
Das erste Byte der Rundenkonstante(j) ist xj , die anderen drei Byte sind 0.
1
Man erinnere sich, daß F28 als F2 [X]/g(X) interpretiert wird.
126
KAPITEL 5. BLOCKCHIFFREN
n Bit
IZ
m , m
1
2
Abbildung 5.40: Die Merkle-Damgard Konstruktion für Hashfunktionen
5.7
5.7.1
Hashfunktionen
Definition und Eigenschaften
Definition 5.7 Sei Σ ein Alphabet und n ∈ N. Eine Hashfunktion ist eine Abbildung
H : Σ∗ −→ Fn2 . Also eine Abbildung, die einer beliebig langen Nachricht einen Bitvektor
fester Länge zuordnet. Ein typischer Wert für n ist 160, aber auch 128 und 256 sind
gebräuchlich.
Aus kryptographischer Sicht soll eine Hashfunktion folgende Eigenschaften erfüllen:
• Sie soll preimage resistent sein, d.h. zu einem gegebenen Hashwert h oder einer
gegebenen Nachricht m mit Hashwert H(n) ist es unmöglich“ eine Nachricht m zu
”
finden, die H(m) = h bzw. H(m) erfüllt.
• Sie soll Kollisionsresistent sein, d.h. es soll nicht möglich“ sein zwei Nachrichten
”
m1 , m2 mit H(m1 ) = H(m2 ) zu finden.
Eine typische Struktur einer Hashfunktion ist die sog. Merkle-Damgard Konstruktion.
Hierbei wird die Nachricht zunächst in Blöcke fester Länge m (z.B. 512 Bit) eingeteilt.
Dann wird eine Kompressionsfunktion verwendet, die aus einem Initialzustand“ (z.B.
”
n Bit) und einem Nachrichtenblock einen neuen Zustand“ (wieder n Bit) erzeugt, s.
”
Abbildung 5.40.
Der letzte Zustand ist dann der Hashwert. Der erste Initialzustand ist im Standart
jeder Hashfunktion fest gewählt. Ist der letzte Block zu kurz, so wird er auf m Bit (z.B.
512) ergänzt. In dieser Ergänzung ist noch die Länge der ursprünglichen Nachricht codiert
5.7. HASHFUNKTIONEN
127
160
512
32
B
A
C
D
E
20 Runden mit f 1
+
A
B
C
20 Runden mit f 2
D
E
A
B
C
20 Runden mit f 3
D
E
A
B
C
20 Runden mit f 4
D
E
+
+
+
+
160
Abbildung 5.41: SHA-1: Schematischer Aufbau
und hier nicht die Möglichkeit zu eröffnen zufällig gewählte Bits oder Verlängerungen der
Nachricht für einen Angriff zu nutzen.
Ein Beispiel für eine Kompressionsfunktion, die bisher2 nicht gebrochen wurde, ist
SHA-1. Hierbei werden 80 Runden mit 4 verschiedenen
√ Funktionen und 4 Konstanten
32
durchgeführt (der 32 Bit Wert ist hierbei z.B. mit 2 · 2 fest gegeben). Abblidung 5.41
zeigt schematisch die Vorgehensweise von SHA-1. Der Initialzustand bzw. Zwischenzustand wird in 32-Bit Worten A, B, C, D, E gespeichert. Der Nachrichtenblock (512 Bit)
wird zu 80 Worten expandiert (die ersten 16 Worte w0 , ..., w15 sind die ursprüngliche Nachricht, jedes weitere Wort wt wird als zyklischer Shift des XORs von 4 vorangegangenen
Worten berechnet (S 1 (wt−16 ⊕ wt−14 ⊕ wt−8 ⊕ wt−3 )).
Eine Runde wird dabei entsprechend Abbildung 5.42 durchgeführt.
Hirbei ist S n ein zyklischer Shift um n und die Funktion ft ist für die Runde t durch
• f1 (t, B, C, D) = (B ∧ C) ∨ (B ∧ D) für 1 ≤ t ≤ 20
• f2 (t, B, C, D) = B ⊕ C ⊕ D für 21 ≤ t ≤ 40
• f3 (t, B, C, D) = (B ∧ C) ∨ (B ∧ D) ∨ (C ∧ D) für 41 ≤ t ≤ 60
• f4 (t, B, C, D) = B ⊕ C ⊕ D für 61 ≤ t ≤ 80
2
Stand Juli 2007
128
KAPITEL 5. BLOCKCHIFFREN
B
A
D
C
ft
S
+
5
+
30
S
A
E
B
C
D
+
Wt
+
Kt
E
Abbildung 5.42: SHA-1: Rundenfunktion
gegeben.
Andere Beispiele sind MD4 und MD5. Sie haben einen sehr ähnlichen Aufbau wie
SHA-1, allerdings nur einen 128 Bit Zustand. Daher ist es einfach (Minuten oder Tage
Rechenzeit) eine Kollision zu finden, also zwei unsinnige Nachrichten“ zu finden, die den
”
selben Hashwert liefern. Für gegebenen Initialzustand können also zwei 512 Bit Worte
angegeben werden, die den selben Folgezustand erzeugen.
5.7.2
Erzeugen von sinnvollen Nachrichten mit diversen sinnlosen Kollisionen
Eine Möglichkeit eine Kollision auszunutzen liefert Postscript. Da es sich um eine Programmiersprache handelt, die u.a. eine if Abfrage hat, lassen sich, etwa durch eine Anweisung
if t1 = t2 then Text1 Text2
Kollisionen ausnutzen.
Eine weitere Möglichkeit besteht bei der Signatur von X509 Zertifikaten. Hierbei handelt es sich um Public-keys, die von einer Zertifizierungsstelle signiert sind. Um Kollisionen auszunutzen werden zwei verschiedene Zertifikate m1 und m2 mit demselben
MD5-Hashwert erzeugt, die sich lediglich im RSA Modulus n unterscheiden. Das Problem
hierbei ist, daß die beiden Moduli das Produkt von je zwei bekannten Primzahlen sein
müssen.
5.7. HASHFUNKTIONEN
129
In [131] wird gezeigt, wie bei geeignetem Initialzustand, der vom Text im Zertifikat bis
zum Beginn des Modulus des öffentlichen Schlüssels abhängt zwei verschiedene 1024 BitWerte q1′ und q2′ gefunden werden können, so daß die Hashwerte der gesamten Nachrichten
gleich sind.
Sind die beidem Werte q1′ und q2′ mit dem Angriff von Wang gefunden, so müssen
diese Werte zu 2048-Bit Zahlen ergänzt werden, die beide Produkt von zwei (großen)
Primzahlen sind. Dazu wähle man zwei Primzahlen p1 , p2 , die etwa 500 Bit lang sind, und
berechne ein b0 so, daß 0 ≤ b0 < p1 · p2 ist und sowohl p1 | q1 = q1′ · 21024 + b0 , als auch
p2 | q2 = q2′ · 21024 + b0 . Falls der andere Teiler von q1 bzw. q2 keine Primzahl sein sollte,
so versucht man es mit q1 = q1′ · 21024 + b0 + k · p1 · p2 bzw. q2 = q2′ · 21024 + b0 + k · p1 · p2
für k = 1, 2, . . .. Ist b0 + k · p1 · p2 > 21024 , so lassen sich mit den Primzahlen p1 und p2
kein korrekten RSA-Moduli bilden und man versucht es mit zwei neuen Primzahlen. Die
Erfolgswahrscheinlichkeit hängt direkt von der Wahrscheinlichkeit ab mit der eine 1500
Bit Zahl (also der zweite Faktor von q1 bzw. q2 eine Primzahl ist. Diese Wahrscheinlichkeit
ist etwa 1/ ln(1500) ≈ 1/1000. Bei etwa 106 Versuchen für k kann man also bei beiden
Moduli damit rechnen, daß sie Produkt von zwei Primzahlen sind. Das läßt sich mit ein
paar Minuten Rechenzeit erreichen.
Auf diese Weise erhält man zwei 2048 Bit Zahlen, die bei entsprechendem Zustand der
Hashfunktion auf den ersten 1024 Bit denselben Hashwert liefern. Auf den zweiten 1024
Bit stimmen sie außerdem überein und somit sind verschiedene zwei Zertifikate gefunden
die denselben Hashwert liefern.
Anhang A
Übungsaufgaben
Aufgabe 1. Substitutionschiffre
1. Entschlüsseln Sie den folgenden Chiffretext mit einer Strategie Ihrer Wahl. (Hinweis:
Es handelt sich um eine additive Chiffre.)
2. Wieviel (verschiedene) multiplikative Chiffren existieren bei gegebenem Klartextalphabet A, . . .,Z ?1 Was geschieht dabei mit den Buchstaben M und Z ? Welche
Eigenschaft haben die zulässigen Multiplikatoren?
GDVJH
QHQOH
LWWHQ
HLXQV
VDPWJ
EHQGL
GLHYR
MHGRF
HELHW
HEHOJ
HONHU
KJDOO
JDOOL HQVCH UIDHO OWLQG UHLWH LOHLQ GHPHL
HULQH LQHPC ZHLWH QGLHD TXLWD QHUXQ GLPGU
GLHLQ GHUOD QGHVV SUDFK HNHOW HQKHL VVHQE
LHU
Aufgabe 2.
Rzff coü xf Oöyxy kov rxy Sjkhwvxüy fj fsöcxü kzsöxy, zy rox Rzvxy aw mjkkxy, loxpv rzüzy, rzff xf wyf yosöv pzya plxosöpelvop ofv,
czf kov rxy Rzvxy oy rxy Sjkhwvxüy pxfsöoxöv, rox coü öxüfvxllxy.
Rzvxyfsöwvapxfxvax lxpxy qxfv, cxlsöx hxüfjyxytxajpxyxy Rzvxy aw
fsöevaxy foyr. Czf coü rzaw txovüzpxy miyyxy, ofv Sjkhwvxü fj aw tzwxy,
rzff fox djü wytxqwpvxk Awpüoqq pxfsöevav cxürxy miyyxy. Fj mjkkxy
Fox aczü lxorxü yosöv zy zyrxüxü Lxwvx Rzvxy; rox ztxü awk Plesm
zwsö yosöv zy Oöüx.
1
Dabei seien die Buchstaben mit den Zahlen von 1 bis 26 assoziiert.
130
131
Dieses Beispiel eines Chiffretextes wurde freundlicherweise von der Firma IBM Deutschland GmbH zur Verfügung gestellt.
Aufgabe 3. Vigenère-Chiffre
1. Entschlüsseln Sie den folgenden Chiffretext. (Hinweis: Sowohl Klartext als auch
Schlüssel entstammen der deutschen Sprache.) Gehen Sie dabei wie folgt vor:
(a) Bestimmen Sie zunächst die Schlüssellänge (bzw. Vielfache davon), indem Sie
den Chiffretext auf sich wiederholende Zeichenketten hin untersuchen und die
Abstände zwischen ihnen betrachten. Nach einer Faktorisierung dieser Abstände lassen häufig auftretende Faktoren bzw. aus ihnen bestehende Produkte auf
die Schlüssellänge schließen.
(b) Benutzen Sie den Kasiski-Test, um einen weiteren Hinweis auf die GrößenordP 2
nung der Schlüssellänge zu erhalten. Für deutschsprachige Texte gilt
pi ≈
ai ∈A
0, 076.
(c) Versuchen Sie nun, das Schlüsselwort zu erraten, indem Sie ausnutzen, daß der
häufigste Buchstabe in deutschsprachigen Texten das E ist.
2. Vergleichen Sie die charakteristischen Häufigkeitsverteilungen der einzelnen Buchstaben bei Chiffretext und Klartext.
BVRQZ
CIQVH
ILXRK
INSHJ
AEORJ
SMJZW
KXXEV
WWEMA
ESJEW
ZJJMA
SKWKA
YECIT
GPKIL
BGIIM
SBKYI
IMPVM
KAETX
MEOSV
LAJJW
KSUEA
YRYAM
KECVH
EMVHZ
BLORH
ZRLWA
QMMHU
MEUTL
LMKSJ
UKKKI
GZWDC
QZGPX
YIAVH
BTEDC
IVHMK
KVWMZ
GPEII
TGKGS
EOKXV
UTYVV
XNWXM
NEHJI
GKMVM
ZIRKM
MVVMK
EHQXM
RDXRS
AVHOJ
GZAJE
DMNGK
ULCNW
ZETQR
FOSUY
KSJGP
TVGPM
UILXR
XHBFL
SUEAL
ZJBSU
IALTY
VZSMJ
EIIMV
EGQCI
OSKIT
JIR
EYPVM
KWWMV
NTLZN
ZWBDE
VMKFO
ZWITL
EIMJE
VZATE
WETIZ
NJMVV
OSVKM
SUYVZ
JKQUT
DQGDK
Aufgabe 4. Rotormaschinen
Ein Klartext sei mit einer zweistufigen Rotormaschine verschlüsselt worden. Das zugrundeliegende Alphabet sei A = {A, D, E, I, L, N, O, R, S, T } ≃ {0, 1, . . . , 9}.
Die Verschlüsselung ist definiert durch:
c1 := C1 (m + i0 ) − i0 ,
c2 := C2 (c1 + i1 ) − i1 .
Dabei sind i0 , i1 die Einer- bzw. Zehnerstelle der laufenden Eingabe, C1 und C2 die
gesuchten Permutationen auf A (innere Verschaltung der Rotoren).
132
ANHANG A. ÜBUNGSAUFGABEN
Das Ergebnis einer choosen-plaintext-attack liefert:
0000000000
0123456789
TOSENDALET
TLITNAETAA
1111111111
0123456789
TERANDTOST
OEEAANRTON
2222222222
0123456789
OREITISNOT
RSETTDNDDE
33
01
SO
DN
Zehnerstelle
Einerstelle
Klartext
Chiffretext
Versuchen Sie zunächst, den Einerrotor zu entschlüsseln, indem Sie die Blöcke betrachten,
in denen der Zehnerrotor konstant bleibt. Anschließend sollten Sie in der Lage sein, auch
den Zehnerrotor zu entschlüsseln.
Beispiel: Stelle 0 und 3 ergeben jeweils T als Chiffrat, daher ist
C1 (T+0)−0 = C1 (E+3)−3, d.h. C1 (9+0)−0 = C1 (2+3)−3, und damit C1 (T) = C1 (N)−3.
Ermitteln Sie weitere Abhängigkeiten für C1 , aber bleiben Sie dabei innerhalb der Zehnergruppen! Da es verschiedene Darstellungen für C1 gibt (alle zyklischen Vertauschungen
der Permutation), sollten Sie mit dem Bezugspunkt C1 (A) := A beginnen.
Aufgabe 5. Enigma
Eine Enigma mit zwei Rotoren (und Reflektor) operiere auf dem Alphabet {0, 1, 2, 3, 4}.
Eine known-plaintext-attack liefert:
00000
01234
24201
10122
11111
01234
23401
34133
22222
01234
32043
22223
33333
01234
01231
41211
44444
01234
13200
21124
00000
01234
30142
04211
k
j
Klartext m
Chiffrat c
Die Maschine arbeitet wie folgt:
c1
c2
c3
c4
c
:=
:=
:=
:=
:=
C1 (m + j) − j
C2 (c1 + k) − k
CR (c2)
C2−1 (c3 + k) − k
C1−1 (c4 + j) − j
Hierbei sind C1 , C2 die Permutation des ersten bzw. zweiten Rotors, CR die Permutation
des Reflektors2 und j bzw. k wie oben die Einer- und Fünferstelle des Zeittaktes (zu
Anfang seien die Rotoren in Nullstellung).
Benutzen Sie zur Entschlüsselung des ersten (äußeren) Rotors folgende Beobachtung:
Zeit = 0 : c1(0) = C1 (2 + 0) − 0, c4(0) = C1 (1 + 0) − 0
Zeit = 1 : c1(1) = C1 (4 + 1) − 1, c4(1) = C1 (0 + 1) − 1
2
−1
Berücksichtigen Sie, daß für die Permutation des Reflektors CR = CR
gilt!
133
Da C1 (1) zweifach auftaucht, kann man schließen:3
c4(0) 6≡ c4(1) ⇒ c1(0) 6≡ c1(1) ⇒ C1 (2) 6≡ C1 (0) − 1
Suchen Sie solange weitere Nichtkongruenzen der Form C1 (a) 6≡ C1 (b) − c mit a, b, c ∈
{0, 1, 2, 3, 4}, bis Sie eine (bis auf zyklische Vertauschungen) eindeutige Permutation erhalten.
Aufgabe 6. Methode von Friedmann
Bekanntlich scheitern Brechungsversuche von Substitutionschiffren mittels KasiskiMethode oder Koinzidenzindex, sobald die Schlüsselphrase die gleiche Länge wie der
Klartext besitzt. Im Jahr 1918 zeigte W. Friedmann für solche Fälle einen möglichen
Brechungsansatz. Da die zehn häufigsten Buchstaben ca. 75% eines Textes ausmachen,
werden mehr als 50% aller Klartext-Schlüsseltext-Buchstabenpaare durch sie gebildet.
Gegeben sei folgender (deutschsprachiger) Chiffretext: XMEQKICJIE
Stellen Sie zunächst die Additionstabelle (10 × 10) für die zehn häufigsten Buchstaben
der deutschen Sprache {E, N, R, I, S, T, D, H, A, U} auf und vermerken Sie, wie die möglichen
Chiffretextzeichen (eingeschränkt auf diese zehn Buchstaben) entstehen können.
Beispiel: M = T + T = E + I = S + U
Untersuchen Sie jetzt, wie Buchstabentripel des Chiffretextes zustandegekommen sein
können. Gesucht werden sinnvolle Klartext- und Schlüsseltexttripel, deren Addition das
Chiffretexttripel ergibt. So ergeben sich etwa für das Tripel MEQ insgesamt 6 · 6 · 4 = 96
verschiedene Möglichkeiten, z.B. SND + URN oder ERN + IND. Beachten Sie, daß man nicht
bei allen Chiffretextzeichen davon ausgehen kann, daß sie auf die oben beschriebene Weise
entstanden sind.4
Versuchen Sie, möglichst viele derartige Tripel zu identifizieren, um nach und nach auf
Klartext und Schlüsseltext zu schließen.5
Angenommen, Sie haben die Lösung gefunden — welche Frage ist jetzt noch zu klären?
Aufgabe 7. Eigenschaften der Entropiefunktion
1. Beweisen Sie: Seien (x1 , . . . , xn ) und (y1 , . . . , yn ) zwei aus positiven Zahlen beste3
Beachten Sie weiterhin, daß sämtliche Rechnungen modulo 5 ausgeführt werden!
Kleiner Tip — dies ist in diesem Beispiel nur beim ersten Zeichen (X) der Fall.
5
Für ganz Ungeduldige:
(05 04 17 13 17 04 08 18 04 13) + (18 08 13 03 19 04 20 17 04 17) =
(23 12 04 16 10 08 02 09 08 04)
4
134
ANHANG A. ÜBUNGSAUFGABEN
hende Vektoren mit
Pn
i=1 xi ≥
Pn
i=1
n
X
yi, so gilt:
xi log
i=1
xi
≥ 0,
yi
(A.1)
wobei das Gleichheitszeichen genau dann gilt, wenn xi = yi für alle i erfüllt ist.
(Hinweis: Machen Sie sich zunächst die elementare Ungleichung ln x ≤ x − 1 ∀x > 0
durch eine Zeichnung klar.)
2. Benutzen Sie jetzt Ungleichung (A.1) um zu zeigen, daß für eine Quelle X über dem
Alphabet (x1 , . . . , xn ) mit der Wahrscheinlichkeitsverteilung (p1 , . . . , pn ) gilt:
H(X) = −
n
X
i=1
pi log pi ≤ log n,
wobei das Gleichheitszeichen genau dann gilt, wenn pi =
Entropie der Quelle erreicht dann ihr Maximum.
1
n
für alle i erfüllt ist. Die
Aufgabe 8. Ternäre Codierung
Gegeben seien 12 Billiardkugeln, von denen maximal eine ein abweichendes Gewicht besitzt.
1. Ist es möglich unter Zuhilfenahme einer Balkenwaage, mit nur drei Wägungen festzustellen, ob eine Kugel ein falsches Gewicht hat und wenn ja, welche und ob ihr
Gewicht zu hoch oder zu niedrig ist?
2. Wie müßten dann die Wägungen durchgeführt werden?
3. Ließe sich dieses Problem auch für 13 Kugeln lösen?
Aufgabe 9. One-Time-Pad“
”
Gegeben sei folgender Chiffretext:
TPOGD JRJFS UBSFC SQLGP COFUQ NFDSF CLVIF OUFNW GT.
Zur Verschlüsselung wurde ein One-Time-Pad, d.h. eine wirklich zufällige Folge von
Nullen und Einsen verwendet. Je nachdem, ob das i-te Bit des One-Time-Pads eine Null
oder eine Eins war wurde der i-te Klartextbuchstabe um ein oder zwei Zeichen (modulo
26) verschoben, d.h. im wesentlichen liegt hier eine Vigenère-Chiffre bzw. Vernam-Chiffre
vor.
135
1. Versuchen Sie die Chiffre zu brechen, indem Sie einen Entscheidungsbaum benutzen
und dabei möglichst frühzeitig unsinnige Teilbäume zu entfernen.
2. Warum gelang Ihnen die Entschlüsselung (hoffentlich) so leicht, obwohl der OneTime-Pad informationstheoretisch absolut sicher ist?
Aufgabe 10. Wahl von Passwörtern
Vorbemerkung: Der ASCII-Zeichensatz enthält 26 Klein- sowie 26 Großbuchstaben, 10
Ziffern, 33 Sonderzeichen und 33 Steuerzeichen.
1. Der System-Manager eines SUN-Clusters beobachtet eine Zunahme der Systemeinbrüche. Das installierte UNIX Betriebssystem arbeitet mit acht Zeichen langen
Passwörtern. Eine Umfrage bei den Benutzern ergibt, daß sie für ihre Passwörter
ausschließlich Klein- und Großbuchstaben verwenden. Was ist von dem Vorschlag
des System-Managers zu halten, daß ab sofort jedes Passwort genau eine Ziffer und
genau ein Sonderzeichen enthalten muß?
2. Immer häufiger wundern sich Studenten, daß nach dem Einloggen in das Ausleihsystem der Universitätsbibliothek OLAF Bücher auf ihrem Konto stehen, die sie nie
bestellt, geschweige denn gelesen haben. Das OLAF-System arbeitet bekanntlich mit
Passwörtern der Länge vier. Nachdem die Bibliotheksverwaltung bei Stichproben
festgestellt hat, daß die Benutzer für ihre Passwörter nur“ Klein- und Großbuch”
staben verwenden,6 wird jeder Student aufgefordert, in seinem Passwort exakt eine
Ziffer zu verwenden. Wie ist diese Vorschrift zu bewerten?
Aufgabe 11. Das Geburtstagsphänomen
1. Ein Zufallsgenerator liefert Zahlen zwischen 1 und n. Wie groß ist die Wahrscheinlichkeit, daß in einer von ihm generierten Folge von r Zahlen wenigstens eine mehrfach auftritt?
2. Nun können Sie das Geburtstagsproblem lösen: Wieviel Personen müssen sich in
einem Raum aufhalten, damit die Wahrscheinlichkeit, daß wenigstens zwei von ihnen
am gleichen Tag7 Geburtstag haben, 12 übersteigt?
3. Versuchen Sie für dieses Problem eine allgemeine Lösung zu finden. Hierzu ist die
Abschätzung aus Aufgabenteil 1 sehr hilfreich.
4. Welche Auswirkungen hat diese Überlegung auf die Sicherheit von Kryptosystemen?
6
Wir gehen davon aus, daß nicht das Standardpasswort (die ersten vier Buchstaben des Nachnamens)
verwendet wird.
7
Dabei sei das Geburtsjahr der Personen unerheblich.
136
ANHANG A. ÜBUNGSAUFGABEN
Aufgabe 12. Lineare Systeme und LFSR
Ein lineares System in GF (2)3 sei gegeben durch die (3 × 3)-Zustandsüberführungsmatrix
A und die (1 × 3)-Matrix C zur Abbildung des Zustandsvektors auf das Ausgabeelement
mit


1 0 1
A= 0 1 1 
und
C= 1 0 1 .
1 1 1
1. Bestimmen Sie das Übergangsverhalten und das Ausgabeverhalten dieses Systems
(siehe Skriptum S. 38). 8
2. Berechnen Sie die Matrix T , ihre Inverse T −1 , und überführen Sie damit die Matrix
A in die Rückkopplungsmatrix A′ eines LFSR (siehe Skriptum S. 43).
3. Zeichen Sie das zugehörige LFSR, und verifizieren Sie, daß es das gleiche Verhalten,
wie das ursprüngliche lineare System aufweist.
4. Geben Sie das zugehörige Rückkopplungspolynom f (x) sowie für den Anfangszustand a0 = (0, 1, 1) die erzeugende Funktion G(x) an. Bestimmen Sie jetzt das
Polynom g(x) mit G(x) = g(x)/f (x). Welchen Grad hat g(x)?
5. Sei g(x) = 1 − x fest vorgegeben. Wie lautet die zugehörige erzeugende Funktion
G(x) bzw. der zugehörige Anfangszustand a0 ?
6. Berechnen Sie das charakteristische Polynom χA′ (x) der Matrix A′ , d.h. χA′ (x) :=
det(xI − A′ ). Verifizieren Sie, daß χA′ (x) mit dem Minimalpolynom µA′ (x) von A′
identisch ist sowie die Beziehung zwischen dem Rückkopplungspolynom f (x) und
dem charakteristischen Polynom χA′ (x)
1
n
.
χA′ (x) = x · f
x
Aufgabe 13. Golomb’sche Axiome
Welches Verhalten hat das folgende LFSR über GF (2)4?9
- ?
i
Genügt dieses LFSR den drei Golombschen Axiomen G1, G2 und G3 (Skriptum S. 35)?
Aufgabe 14. Analyse von Pseudozufallsfolgen
8
9
Hinweis: Das System besitzt 4 Zyklen.
Bitte nicht gleich im Skriptum nachsehen!
137
1. Wie sehen die beiden LFSR über GF (2)4 aus, die die Folgen
(a) (1, 1, 1, 1, 0, 0, 1, 1) bzw.
(b) (0, 0, 1, 1, 1, 0, 1, 0)
erzeugen?
2. Was fällt Ihnen bei der zweiten Folge auf?
Aufgabe 15. Anzahl der primitiven Polynome
Beweisen Sie, daß die Anzahl λ(n) der primitiven Polynome vom Grad n über GF (q)
durch
ϕ(q n − 1)
λ(n) =
n
gegeben ist.
Aufgabe 16. Analyse eines LFSR
Sie haben den folgenden Text abgefangen:
DJFSFR UFYU WUREE NVS UOGFOVFGENE VESTCILVFTTELT
Sie wissen nur, daß dieser Chiffretext durch Addition einer binären Pseudozufallsfolge zum
Klartext modulo 26 entstanden ist. Als Hilfestellung sind Ihnen die Wortzwischenräume
bekannt.
1. Wie lautet der Klartext?
2. Welche Periode hat die Pseudozufallsfolge?
3. Bestimmen Sie ein LFSR, das diese Folge erzeugt haben könnte.
Aufgabe 17. Eigenschaften von Ringen
Gegeben sei ein kommutativer Ring R mit der Charakteristik p, wobei p eine Primzahl
ist. Beweisen Sie, daß für alle a, b ∈ R und n ∈ N gilt:
1. (a + b)p = ap + bp
n
n
n
n
n
n
2. (a − b)p = ap − bp
138
ANHANG A. ÜBUNGSAUFGABEN
Aufgabe 18. Eigenschaften der Spur-Abbildung
Die Spur (trace) von α über GF (q) ist folgendermaßen definiert:
trn,q : GF (q n ) 7→ GF (q)
n−1
X
i
α 7→
αq
i=0
Zeigen Sie:
1. tr(α + β) = tr(α) + tr(β) für alle α, β ∈ GF (q n ).
2. tr(c · α) = c · tr(α) für alle c ∈ GF (q), α ∈ GF (q n ).
3. tr ist surjektiv.
4. tr(a) = n · a für alle a ∈ GF (q).
5. tr(αq ) = tr(α) für alle α ∈ GF (q n ).
Aufgabe 19.
Zusammenhang zwischen der Spur und linearen Abbildungen
Zeigen Sie: Zu jeder linearen Abbildung f : GF (q n ) 7→ GF (q) existiert ein eindeutig
bestimmtes δ ∈ GF (q n ), so daß f (α) = tr(δ · α) für alle α ∈ GF (q n ) gilt.
Aufgabe 20. Komplexitätsprofil einer Pseudozufallsfolge
1. Wie sieht das Komplexitätsprofil der Pseudozufallsfolge aus Aufgabe 16 aus?10
2. Vergleichen Sie dieses Komplexitätsprofil mit dem Komplexitätsprofil der folgenden
Pseudozufallsfolge: 101001011000111
3. Fallen Ihnen bei dieser Folge irgendwelche Regelmäßigkeiten auf?
Aufgabe 21. Korrelationsimmune Funktionen
1. Konstruieren Sie eine 1-korrelationsimmune Funktion über GF (2) in drei Variablen
(X0 , X1 , X2 ).
2. Zeigen Sie, daß diese Funktion tatsächlich 1-korrelationsimmun ist.
10
Betrachten Sie nur die ersten 15 Zeichen.
139
3. Ist diese Funktion auch noch 2-korrelationsimmun, oder gar 3-korrelationsimmun?
Aufgabe 22. Transpositionschiffre und Hill-Chiffren
Die Hill-Chiffre ist eine polygraphische Substitutionschiffre. Sei A = {1, . . . , n} das
Klartext- bzw. Chiffretextalphabet und d eine fest vorgegebene Blocklänge. Die Verschlüsselung eines Klartextblockes M = (m1 , m2 , . . . , md ) in den Chiffretextblock C =
(c1 , c2 , . . . , cd ) wird durch C = K · M T mod n definiert, wobei K eine (d × d)-Matrix
ist. Dabei sind die mi , die ci sowie die Matrixelemente ki,j mit 1 ≤ i, j ≤ d Elemente
aus A. Die Matrix K wird so gewählt, daß sie modulo n invertierbar ist. Damit ist die
Entschlüsselung durch M = K −1 · C T mod n gegeben.
1. Zeigen Sie, daß jede Transpositionschiffre durch eine Hill-Chiffre ersetzt werden
kann.
2. Zeigen Sie weiterhin: Wird eine Transpositionschiffre P durch die Hill-Chiffre S
simuliert, so simuliert deren Transponierte S T die inverse Transpositionschiffre S −1 .
Aufgabe 23. Permutationen und S-Boxen
1. Welche Beziehung besteht zwischen Permutationen (P-Boxen) und S-Boxen?
2. Wieviele verschiedene P-Boxen der Länge n und wieviel verschiedene (bijektive)
S-Boxen der Länge n gibt es auf dem Alphabet {0, 1}?
3. Ist die Hintereinanderschaltung zweier S-Boxen durch eine einzige S-Box simulierbar?
4. Seien zwei S-Boxen durch eine P-Box miteinander verbunden. Kann auch diese
Konstruktion durch eine einzige S-Box simuliert werden?
Aufgabe 24. Vollständigkeit von S-Boxen
Eine wichtige Eigenschaft, die man von einer guten S-Box fordert, ist die der Vollständigkeit. Eine Funktion f : GF (2)n 7→ GF (2)m heißt vollständig, wenn jedes Bit des Outputs
von jedem Bit des Inputs abhängt, d.h. wenn es für jedes j mit 0 ≤ j < m und jedes i
mit 0 ≤ i < n zumindest eine Belegung des Inputs mit der Eigenschaft gibt, daß sich bei
einer Änderung des i-ten Inputbits auch das j-te Outputbit ändert.
1. Zeigen Sie, daß es keine bijektive Substitution der Länge 2 gibt, die auch vollständig
ist.
140
ANHANG A. ÜBUNGSAUFGABEN
2. Zeigen Sie weiterhin, daß eine vollständige, bijektive Substitution keine lineare Abbildung sein kann.
3. Geben Sie eine vollständige S-Box der Länge 3 an.
4. Betrachten Sie folgende S-Box:
Input
000
001
010
011
100
101
110
111
Output
111
001
010
011
100
101
110
000
(a) Ist diese Substitution vollständig?
(b) Ist die Substitution für kryptographische Zwecke geeignet?
Aufgabe 25. Unvollständigkeit und Kryptoanalyse
Gegeben sei E : GF (2)l × GF (2)n 7→ GF (2)n eine Blocksubstitution und C = E(K, M),
wobei M einen n-Bit Klartextblock, K einen l-Bit Schlüssel und C den resultierende n-Bit
Chiffretextblock bezeichnet. Sei ferner C = (c0 , . . . , cn−1 ) mit
ci = fi (k0 , . . . , kl−1 , m0 , . . . , mn−1 )
für 0 ≤ i < n. Nun seien die Koeffizienten c0 bis cr−1 des Chiffretextblockes von den
Schlüsselbits ks bis kl−1 unabhängig, d.h. für 0 ≤ i < r gilt
ci = fi (k0 , . . . , ks−1, m0 , . . . , mn−1 ).
Wie läßt sich diese Form der Unvollständigkeit für eine known-plaintext-attack bei vollständigem Durchsuchen des Schlüsselraumes ausnutzen?
Aufgabe 26. Eigenschaften des DES
Sei x ein binärer Vektor, so bezeichnet x denjenigen Vektor, der aus x durch komponentenweises Negieren hervorgeht.
1. Zeigen Sie:
DES(m, k) = DES(m, k)
2. Wie kann diese Eigenschaft für die Kryptoanalyse des DES ausgenutzt werden?
141
Aufgabe 27. How easy is collision search?
Gegeben sei der 64-Bit Klartextblock m = 0404040404040404, sowie die beiden 64-Bit
DES-Schlüssel k1 = 4A5AA8D0BA30585A und k2 = 46B2C8B628 18F884. (Beachten
Sie, daß alle Angaben in hexadezimaler Schreibweise erfolgen.)
1. Berechnen Sie DES(m, k1 ) und DES(m, k2 ). Fällt Ihnen am Ergebnis etwas auf?
2. Welche Auswirkungen hat dieses Resultat auf die Eignung des DES als kryptographische Hashfunktion?
3. Finden Sie weitere Tripel (m, k1 , k2 ) mit obiger Eigenschaft.
Aufgabe 28. Eigenschaften des DES bezüglich der ⊕-Operation
Es bezeichne E die Expansionsabbildung und P die Permutation, die Bestandteil der
Abbildung f des Data Encryption Standard sind. Weiterhin seien X, X ∗ , Y und Y ∗ 64Bit Blöcke, sowie K ein 64-Bit DES-Schlüssel. Wie lassen sich die folgenden Ausdrücke
umformen? Hierbei bezeichnet ⊕ die XOR-Operation. 11
1. E(X) ⊕ E(X ∗ ) = . . . ?
2. P (X) ⊕ P (X ∗) = . . . ?
3. (X ⊕ K) ⊕ (X ∗ ⊕ K) = . . . ?
4. (X ⊕ Y ) ⊕ (X ∗ ⊕ Y ∗ ) = . . . ?
Aufgabe 29.
Eigenschaften der S-Boxen des DES bezüglich der ⊕-Operation
1. Wieviel verschiedene Paare (X, X ∗ ) von 6-Bit Wörtern gibt es, für die X ⊕ X ∗ = Z
für ein festes 6-Bit Wort Z gilt?
2. Berechnen Sie für alle Paare (X, X ∗ ) von 6-Bit Wörtern mit X ⊕ X ∗ = 00 (hexadezimal) den Funktionswert X (X, X ∗ ) := S1(X) ⊕ S1(X ∗ ), wobei S1() den Funktionswert der S-Box S1 bezeichnet (siehe Abbildung A.1). Beachten Sie dabei, daß
das erste und letzte Bit des 6-Bit Inputs der S-Box zur Auswahl der entsprechenden
Substitution (Zeile) dient, und das erste Bit das höherwertige Bit ist. (Beispiel: Für
das 6-Bit Wort 101010 (binär) wird die dritte Zeile der S-Box S1 ausgewählt, d.h.
S1(101010) = 0110.)
3. Wiederholen Sie dies für alle Paare (X, X ∗ ) mit X ⊕ X ∗ = 34 (hexadezimal). Geben Sie die Häufigkeitsverteilung der Funktionswerte von X (X, X ∗ ) an. Kann es
vorkommen, daß ein Funktionswert nur einmal auftritt?
11
Vgl. Aufgabe 26. bezüglich der Komplementbildung.
142
ANHANG A. ÜBUNGSAUFGABEN
S1
0:
1:
2:
3:
0
E
0
4
F
1 2 3
4 D 1
F 7 4
1 E 8
C 8 2
4 5 6 7
2 F B 8
E 2 D 1
D 6 2 B
4 9 1 7
8
3
A
F
5
9 A
A 6
6 C
C 9
B 3
B C
C 5
B 9
7 3
E A
D E F
9 0 7
5 3 8
A 5 0
0 6 D
Abbildung A.1: Die erste der 8 S-Boxen des DES in hexadezimaler Schreibweise.
4. Nun betrachte man dieses Problem von der anderen Seite. Wieviele (und welche)
Paare (X, X ∗ ) von 6-Bit Wörtern erfüllen die Beziehung X (X, X ∗ ) = 04 (hexadezimal)?
5. Und welche Paare (X, X ∗ ) von 6-Bit Wörtern erfüllen die Beziehung X (X, X ∗ ) = 03
(hexadezimal)?
Aufgabe 30. Das Grundprinzip der Differential Cryptanalysis
Es seien Y = 01 bzw. Y ∗ = 35 zwei 6-Bit Worte (hexadezimal) , die in einer DESRunde nach der Expansionsabbildung ganz links stehen. Weiterhin bezeichne K1 die linken 6 Bit des Teilschlüssels K in dieser Runde. Die XOR-Verknüpfung mit dem Schlüssel
— eingeschränkt auf die linken 6 Bit — liefert X = Y ⊕ K1 bzw. X ∗ = Y ∗ ⊕ K1 , und X
bzw. X ∗ bilden im weiteren Verlauf den Input der S-Box S1. Die entsprechenden Outputs
seien Z = S1(X) bzw. Z ∗ = S1(X ∗ ).
1. Was können Sie über den Wert X ⊕ X ∗ beim Betrachten unterschiedlicher Werte
für K1 aussagen?
2. Angenommen, Sie wissen, daß Z ⊕ Z ∗ = D gilt. Wieviele Möglichkeiten für K1 gibt
es dann? Versuchen Sie diese zu bestimmen.
3. Betrachten Sie ein anderes Paar (Y, Y ∗ ) mit Y = 21 und Y ∗ = 15. Können Sie
die möglichen Werte für den Teilschlüssel- Abschnitt“ K1 mit obigen Überlegungen
”
weiter eingrenzen, wenn Sie wissen, daß nun der Wert für Z ⊕ Z ∗ = S1(X) ⊕
S1(X ∗ ) = S1(Y ⊕ K1 ) ⊕ S1(Y ∗ ⊕ K1 ) = S1(21 ⊕ K1 ) ⊕ S1(15 ⊕ K1 ) ist?
Aufgabe 31. Hashfunktionen
In der Zeitschrift Communications of the ACM wurde im Juni 1990 von Edgar H. Sibley
die folgende Hashfunktion vorgeschlagen:
h[0] := 0;
for i := 1 to n do
h[i] := T[h[i-1] ⊕ C[i]];
143
od;
return h[n];
Der Algorithmus berechnet den Hashwert für einen String, der aus n ASCII-Zeichen C[1]
bis C[n] besteht, die Werte aus dem Intervall von 0 bis 255 annehmen. Weiterhin bezeichnet
T eine Tabelle der Länge 256, deren Einträge aus der Menge {0, . . . , 255} stammen.12
1. Wie würden Sie diese Hashfunktion unter kryptographischen Gesichtspunkten bewerten, wenn die Tabelle T durch T[i] := i definiert wird?
2. Beantworten Sie die erste Frage nochmals unter der Voraussetzung, daß T mit zufälligen Werten aus der Menge {0, . . . , 255} besetzt wird.
3. Nehmen Sie nun an, daß T mit Werten aus der Menge {0, . . . , 255} besetzt wird,
wobei jede Zahl genau einmal auftaucht.
(a) Beweisen Sie die folgende Aussage: Wird die Hashfunktion auf einen String angewendet, dessen Zeichen gleichverteilt aus der Menge {0, . . . , 255} ausgewählt
wurden, so ist auch der Hashwert gleichverteilt über {0 . . . 255}.
(b) Gegeben seien zwei Strings C und C′ , die sich genau in einem Zeichen unterscheiden. Beweisen Sie, daß die Hashwerte beider Strings nie übereinstimmen
können.
4. Wie würden Sie die Tabelle T belegen, um eine möglichst gute kryptographische
Hashfunktion zu erhalten? Beachten Sie dabei, daß die Hashfunktion oft auf reine
Textdateien angewendet wird.
5. Die Tabelle T sei gemäß Abbildung A.2 belegt. Berechnen Sie die Hashwerte für die
folgenden Wörter: a, and, are, as, at, be, but, by, for, from, had, have, he, her,
his, i, in, is, it, not, of, on, or, that, the, this, to, was, which, with, you.13
Was fällt Ihnen auf?
6. Ist es möglich, die Tabelle T so zu belegen, daß a auf 0, i auf 15 und in auf 1 gehasht
wird?
7. Überlegen Sie sich eine Methode, mit der man eine Tabelle mit ähnlichen Eigenschaften, wie sie die Tabelle in Abbildung A.2 besitzt, erzeugen könnte.
Aufgabe 32. Wissenswertes über Hashfunktionen
Eine andere Hashfunktion, die eine Zeichenkette C[1], . . . , C[n] in die Menge {0, . . . , 255}
abbildet, ist folgendermaßen definiert:
12
Natürlich würde man bei einer Implementierung die Variablen h[0] bis h[n] durch eine einzige Variable
h ersetzen. Hier wurde nur zur besseren Darstellung ein Array gewählt.
13
Hinweis: Der Buchstabe a hat den ASCII-Wert 97 (dezimal).
144
ANHANG A. ÜBUNGSAUFGABEN
00
10
20
30
40
50
60
70
80
90
A0
B0
C0
D0
E0
F0
0
39
157
176
75
9
254
45
42
182
189
102
220
214
11
111
134
1
159
24
131
107
139
197
1
109
217
15
32
170
236
101
141
68
2
180
137
228
169
209
80
96
4
54
3
56
144
178
34
191
93
3
252
29
64
138
40
167
18
247
199
22
181
115
243
37
103
183
4
71
147
211
195
31
153
19
72
119
188
126
205
46
194
74
241
5
6
78
106
184
202
145
62
5
174
79
83
26
44
25
245
81
6
13
121
38
70
58
129
185
151
82
113
230
125
201
50
223
196
7
164
85
27
90
179
233
234
136
57
172
53
168
250
12
20
49
8
232
112
140
61
116
132
99
0
215
28
158
249
135
87
161
192
9
35
8
30
166
33
48
16
152
41
2
52
66
186
198
235
65
A
226
248
88
7
207
246
218
148
114
222
59
175
150
173
122
212
B
155
130
210
244
146
86
95
127
208
21
213
97
221
240
63
94
C
98
55
227
165
76
156
128
204
206
251
118
255
163
193
89
203
D
120
117
104
108
60
177
224
133
210
225
100
92
216
171
149
10
E
154
190
84
219
242
36
123
17
239
237
67
229
162
143
73
200
F
69
160
77
51
124
187
253
14
23
105
142
91
43
231
238
47
Abbildung A.2: Eine mögliche Belegung der Tabelle T
h[0] := 0;
for i := 1 to n do
h[i] := (h[i-1] + C[i]) mod 256;
od;
return h[n];
1. Berechnen Sie den Hashwert für die beiden Strings anton kippenberg und benno
papentrigk.14 Was fällt Ihnen auf?
2. Welche Eigenschaft der Hashfunktion ist für diese Beobachtung verantwortlich?
3. Überlegen Sie, ob diese Eigenschaft bei kryptographischen Hashfunktionen wünschenswert ist.
Aufgabe 33.
Was Sie schon immer über Hashfunktionen wissen wollten
Hier zwei Vorschläge für eine Hashfunktion, die im wesentlichen auf dem Data Encryption
Standard basieren. In beiden Fällen wird vorausgesetzt, daß die zu hashende Nachricht
m in Blöcke m1 , . . . , mr zerlegt wurde, die jeweils 56 Bit lang sind. Weiterhin wird ein
Parameter i festgelegt, der eine Länge von 64 Bit besitzt.
1. Sei die Verschlüsselungsfunktion des DES durch DESk (m) beschrieben, wobei m ein
64-Bit Klartext und k ein 56-Bit Schlüssel ist, so ist die erste Hashfunktion durch
h(m, i) := DESmr ◦ DESmr−1 ◦ . . . ◦ DESm1 (i)
definiert.
14
Das Leerzeichen (Space) hat den ASCII-Wert 32 (dezimal).
145
2. Die zweite Hashfunktion wird durch h(m, i) := zr+1 definiert, wobei z1 := i und
die weiteren zj durch die Rekursion zj+1 := DESzj ⊕mj (zj ) für j = 1, . . . , r definiert
sind. Hierbei bezeichnet ⊕ die bitweise XOR-Verknüpfung.
Welcher Variante würden Sie den Vorzug geben?
Literaturverzeichnis
[1] L. M. Adleman; On Breaking the Iterated Merkle-Hellman Public Key Cryptosystem;
Advances in Cryptology — Proceedings of CRYPTO ’82, pp. 303–308.
[2] L. M. Adleman, C. Pomerance, R. S. Rumely; On distinguishing prime numbers from
composite numbers; Ann. of Math. 117, 1983, pp. 173–206.
[3] G. B. Agnew, R. C. Mullin, I. M. Onyszchuk, S. A. Vanstone; An Implementation for
a Fast Public-Key Cryptosystem; Journal of Cryptology, v. 3, n. 2, 1991, pp. 63–79.
[4] AT&T: Einchip-Prozessor zur Verschlüsselung digitaler Signale; Design & Elektronic,
Markt und Technik, v. 21, 1986, pp. 8–11.
[5] F. L. Bauer, G. Goos; Informatik, Erster Teil ; Springer, Berlin, 1973.
[6] R. Berger, S. Kannan, R. Paralta; A Framework for the Study of Cryptographic Protocols; Advances in Cryptology — Proceedings of CRYPTO ’85, Springer LNCS 218,
1986, pp. 87–103.
[7] E. R. Berlekamp; Algebraic Coding Theory; McGraw-Hill, New York, 1968, pp. 261–
267.
[8] T. Beth; Verfahren der schnellen Fourier-Transformation; Teubner, Stuttgart, 1984.
[9] T. Beth, F. C. Piper; The Stop-And-Go Generator ; Advances in Cryptology — Proceedings of EUROCRYPT ’84, Springer LNCS 209, 1984, pp. 88–92.
[10] T. Beth; Efficient Zero-Knowledge Identification Scheme for Smart Cards; Advances
in Cryptology — Proceedings of EUROCRYPT ’88, Springer LNCS 330, 1988, pp.
77–95.
[11] T. Beth, D. Gollmann; Algorithm Engineering for Public Key Algorithms; IEEE
Journal on Selected Areas in Communications, v. 7, n. 4, 1989, pp. 458–466.
[12] T. Beth, S. A. Vanstone, G. B. Agnew; What One Should Know about Public Key
Algorithms — Today ! ; SECURICOM ’90, 1990, pp. 47–63.
[13] T. Beth, F. Schaefer; Non Supersingular Elliptic Curves for Public Key Cryptosystems; Abstracts of EUROCRYPT ’91, 1991, pp. 155–159.
146
LITERATURVERZEICHNIS
147
[14] E. Biham, A. Shamir; Differential Cryptoanalysis of DES-like Cryptosystems; The
Weizmann Institute of Science, 1990.
[15] E. Biham, A. Shamir; Differential Cryptanalysis of Feal and N-Hash; Abstracts of
EUROCRYPT ’91, 1991, pp. 1–8.
[16] E. Biham, A. Shamir; Differential Cryptanalysis of Snefru, Khafre, REDOC-II, LOKI
and Lucifer ; Abstracts of CRYPTO ’91, 1991, pp. 4-1–4-7.
[17] E. Biham, A. Biryukov, A. Shamir; Cryptanalysis of Skipjack Reduced to 31 Rounds
Uning Impossible Differentials; Proceedings of EUROCRYPT 99; LNCS, Springer
Heidelberg, S. 12–23, 1999.
[18] R. Blahut; Theory and Practice of Error Control Coding; Addison-Wesley Publishing
Company, Reading, Mass., 1983.
[19] G. R. Blakely; Safeguarding Cryptographic Keys; Proc. NCC, v. 48, AFIPS Press,
Montvale, New Jersey, 1979, pp. 313–317.
[20] M. Blum; Coin Flipping by Telephone — A Protocol for Solving Impossible Problems;
Digest of papers compcon spring 1982, February 22–25, pp. 133–137.
[21] M. Blum; How to exchange (secret) keys (Extended Abstract); Proceedings of the
15th Annual ACM Symposium on Theory of Computing, Boston, Masssachusetts,
April 25–27, 1983, pp. 440–447.
[22] B. den Boer: Cryptoanalysis of FEAL; Proceedings of EUROCRYPT ’88, pp. 293–
299.
[23] B. den Boer, A. Bosselaers; An Attack on the Last Two Rounds of MD4 ; Abstracts
of CRYPTO ’91, 1991, pp. 4-19–4-23.
[24] E. F. Brickell; Breaking iterated knapsacks; Advances in Cryptology — Proceedings
of CRYPTO ’84, Springer LNCS 196, 1984, pp. 342–358.
[25] E. F. Brickell, A. M. Odlyzko; Cryptanalysis: A survey of recent results; Proceedings
of the IEEE, v. 76, n. 5, 1988, pp. 578–593.
[26] Bronstein, Semendjajew; Taschenbuch der Mathematik ; Leipzig.
[27] T. Brügemann. H. Bürk; Der Verschlüsselungsalgorithmus IDEA; Elektronik
[28] Bundesverfassungsgericht; Das Volkszählungsurteil des Bundesverfassungsgerichts
vom 15.12.1983 — 1 BvR 209/83 u.a.; DuD Datenschutz und Datensicherung, Informationsrecht, Kommunikationssysteme, Friedrich Vieweg & Sohn, Braunschweig,
Heft 4, Oktober 1984, pp. 258–281.
148
LITERATURVERZEICHNIS
[29] K. Campbell. M. Wiener; DES is not a group; Advances in Cryptology — Proceedings
of CRYPTO ’92, Springer LNCS, 1992, pp. 512–520.
[30] D. Chaum; Security without Identification: Transactions Systems to Make Big Brother Obsolete; CACM, v. 28, n. 10, 1985, pp. 1030–1044.
[31] H. Cohen, H. W. Lenstra, Jr.; Primality testing and Jacobi sums; Math Comp., v.
42, 1984, pp. 297–330.
[32] D. Coppersmith; Another Birthday Attack ; Advances in Cryptology — Proceedings
of CRYPTO ’85, Springer LNCS 218, 1986, pp. 14–17.
[33] D. Coppersmith, A. M. Odlyzko, R. Schroeppel; Discrete Logarithms in GF(p); Algorithmica, v. 1, 1986, pp. 1–15.
[34] D. Coppersmith; Analysis of ISO/CCITT Document X.509 Annex D; ISO/IEC
JTC1/SC27/ WG20.2 Paper N160, 1989.
[35] Electronic Frontier Foundation; Cracking DES, Secrets of Encrytion Research, Wiretap & Chip Design Selbstverlag (www.oreilley.com/catalog/crackdes/ oder
www.eff.org/descracker), 1550 Bryant Street, Suite 725, San Francisco CA, 94103–
4832 USA, 1998.
[36] Z. Dai; Proof of Rueppel’s Linear Complexity Conjecture; IEEE Trans. Inform. Theory, v. IT-32, 1986, pp. 440–443.
[37] D. W. Davies, G. Parkin; The Avarage Cycle Size of the Key Stream in Output
Feedback Encipherment; Springer LNCS 149, Heidelberg, 1983, pp. 263–279.
[38] D. W. Davies; Applying the RSA Digital Signature to Electronic Mail ; IEEE Computer, v. 16, 1983, pp. 55-62.
[39] D. W. Davies, W. L. Price; Security for Computer Networks; John Wiley & Sons,
Chichester, New York, 1984.
[40] D. E. Denning; Digital Signatures with RSA and other Public-Key Cryptosystems;
CACM, v. 27, n. 4, 1984, pp. 388–392.
[41] Y. Desmedt; What happened with Knapsack Cryptographic Schemes; in Performance Limits in Communication, Theory and Practice, NATO ASI Series E: Applied
Sciences — Vol. 142, ed. J. K. Skwirzynski, Kluwer Academic Publishers, 1988, pp.
113–134.
[42] W. Diffie, M. Hellman; New Directions in Cryptography; IEEE Trans. Inform. Theory,
v. IT-22, 1976, pp. 644–654.
[43] W. Diffie, M. Hellman; Exhaustive Cryptoanalysis of the NBS Data Encryption Standard ; IEEE Computer, v. 10, n. 6, 1977, pp. 74–78.
LITERATURVERZEICHNIS
149
[44] W. Diffie; Cryptographic Technology: Fifteen Years Forecast; ACM SIGACT News,
v. 14, n. 4, 1982, pp. 38–57.
[45] W. Diffie; The First Ten Years of Public-Key Cryptography; Proceedings of the IEEE,
v. 76, n. 5, 1988, pp. 560–576.
[46] J. D. Dixon; Asymptotically fast factorization of integers; Math. Comp., v. 36, 1981,
pp. 255–260.
[47] T. ElGamal; A Public Key Cryptosystem and a Signature Scheme Based on Discrete
Logarithms; IEEE Trans. Inform. Theory, v. IT-31, 1985, pp. 469–472.
[48] S. Even, O. Goldreich, A. Lempel; A Randomized Protocol for Signing Contracts;
CACM, v. 28, n. 6, 1985, pp. 637–647.
[49] A. Fiat, A. Shamir; How to Prove Yourself: Practical Solutions to Identification and
Signature Problems; Advances in Cryptology — Proceedings of CRYPTO ’86, Springer LNCS 263, 1987, pp. 186–194.
[50] M. Fischer, S. Micali, C. Rackoff; A Secure Protocol for the Oblivious Transfer ; Advances in Cryptology — Proceedings of EUROCRYPT ’84, Springer LNCS 209, 1984.
[51] S. Fortune, M. Merrit; Poker Protocols; Advances in Cryptology — Proceedings of
CRYPTO ’84, Springer LNCS 196, 1984.
[52] M. Frisch; Ein Überblick zum Thema RSA; E.I.S.S.-Report 91/15, 1991.
[53] W. Fumy, H. P. Ries; Kryptographie; Oldenbourg Verlag, München, 1988.
[54] M. Gardner; A new kind of cipher that would take millions of years to break ; Scientific
American, v. 237, 1977, pp. 120–124.
[55] H. Gilbert, G, Chasse; A Statistical Attack of the FEAL-8 Cryptosystem; Abstracts
of CRYPTO ’90, pp. 21–32.
[56] S. Goldwasser, S. Micali, C. Rackoff; The Knowledge Complexity of Interactive Proof
Systems; Proc. 17th Ann. ACM Symp. on Theory of Comp. (STOC), 1985.
[57] D. Gollmann; Kaskadenschaltungen taktgesteuerter Schieberegister als Pseudozufallsgeneratoren; Dissertation, Universität Linz, 1983.
[58] D. Gollmann; Linear Recursions of Cascaded Sequences; Proc. of General Algebra 3,
1984, Teubner, pp. 173–179.
[59] S. W. Golomb; Shift Register Sequences; Holden-Day, San Fransisco, 1967.
[60] J. A. Gordon; Strong RSA keys; Electronics Letters, v. 20, n. 12, 1984, pp. 514–516.
150
LITERATURVERZEICHNIS
[61] J. A. Gordon; Strong Primes are Easy to Find ; Advances in Cryptology — Proceedings of EUROCRYPT ’84, Springer LNCS 209, 1984, pp. 216–223.
[62] F.-P. Heider, D. Kraus, M. Welschenbach; Mathematische Methoden der Kryptoanalyse; Vieweg, 1985.
[63] M. Hellman; Random Ciphers.
[64] T. Herlestam; Critical Remarks on Some Public-Key Cryptosystems; Bit, v. 18, 1978,
pp. 493–496.
[65] P. Horster; Kryptologie; Reihe Informatik/47, Bibliographisches Institut, Mannheim,
1985.
[66] P. Jamning; Securing the RSA-cryptosystem against cycling attacks; Cryptologia, v.
12, n. 3, 1988, pp. 159–164.
[67] S. M. Jennings; A Special Class of Binary Sequences; Dissertation, University of
London, 1980.
[68] A. Jung; The Strength of the CCITT/ISO Hash Function; 1990, (unpublished).
[69] B. Kaliski, Jr., R. L. Rivest, A. Sherman; Is The Data Encryption Standard a Group? ;
Journal of Cryptology, v. 1, n. 1, 1988, pp. 3–36.
[70] D. Kahn; The Codebreakers; MacMillan, New York, 1967.
[71] T. Kameda, K. Weihrauch; Einführung in die Codierungstheorie I ; Bibliographisches
Institut, Mannheim, 1973.
[72] D. E. Knuth; The art of computer programming, Vol. 2: Seminumerical algorithms,
second edition, Addison-Wesley, Reading, MA, 1981.
[73] D. E. Knuth; The art of computer programming, Vol. 3: Sorting and searching,
Addison-Wesley, Reading, MA, 1973.
[74] A. Konheim; Cryptography: A Primer ; John Wiley & Sons, New York, 1981.
[75] K. Kroschel; Statistische Nachrichtentheorie I ; Springer, Heidelberg, 2. Auflage, 1987.
[76] X. Lai, J. L. Massey; A Proposal for a New Block Encryption Standard ; Advances in
Cryptology — Proceedings of EUROCRYPT ’90, Springer LNCS 473, 1991.
[77] X. Lai, J. L. Massey; On the Security of a Proposed Encryption Standard against
Differential Cryptoanalysis; submitted to EUROCRYPT ’91.
[78] A. K. Lenstra, H. W. Lenstra, Jr., M. S. Manasse, J. M. Pollard; The number field
sieve; Proc. 22nd Ann. ACM Symp. on Theory of Comp. (STOC), 1990, pp. 564–572.
LITERATURVERZEICHNIS
151
[79] H. W. Lenstra, Jr.; Factoring Integers with Elliptic Curves; Ann. of Math., v. 126,
1987, pp. 649–673.
[80] M. Luby, S. Micali, C. Rackoff; How to Simultaneously Exchange a Secret Bit by Flipping a Symmetrically-Biased Coin; Proc. 24th IEEE Annual Symp. on Foundation
of Comp. Science (FOCS), 1983.
[81] H. Lüneburg; Galoisfelder, Kreisteilungskörper und Schieberegisterfolgen; Bibliographisches Institut, Mannheim, 1979.
[82] U. M. Maurer; Fast Generation of Secure RSA-Moduli with almost Maximal Diversity; Advances in Cryptology — Proceedings of EUROCRYPT ’89, Springer LNCS
434, 1990, pp. 636–647.
[83] J. L. Massey; Shift-Register Synthesis and BCH-Decoding; IEEE Trans. Inform. Theory, v. IT-15, 1969, pp. 122–127.
[84] U. M. Matsui; Linear Cryptanalysis Method for DES Cipher ; Advances in Cryptology
— Proceedings of EUROCRYPT ’93, Springer LNCS, 1994, pp. 386–397.
[85] K. S. McCurley; The Discrete Logarithm Problem; in Cryptology and computational
number theory, C. Pomerance (ed.), Proceedings of symposia in applied mathematics,
1989, pp. 49–74.
[86] R. Menicocci; Short Gollmann cascade generators may be insecure; in Proceedings
of 4th IMA Conference on Cryptography and Coding, P. G. Farrell (ed.), 1995, pp.
281–297.
[87] R. C. Merkle, M. Hellman; On the Security of Multiple Encryption; CACM, v. 24,
1981, pp. 465–467.
[88] R. C. Merkle; A Fast Software One-Way Hash Function; Journal of Cryptology, v.
3, n. 2, 1990, pp. 43–58.
[89] R. C. Merkle; Evaluation of MD4 (as submitted to RIPE ; RIPE Internal Report
1991-5, 1991.
[90] C. Meyer, S. Matyas; Cryptography — A New Dimension in Computer Data Security;
John Wiley & Sons, Chichester, New York, 1984.
[91] G. L. Miller; Riemann’s Hypothesis and Tests for Primality; Journal of Computer
and System Science, v. 15, 1976, pp. 300–317.
[92] C. Mitchel, F. Piper, P. Wild; Digital Signatures;
[93] S. Miyaguchi, A. Shiraishi, A. Shimizu; Fast Data Encryption Algorithm Feal-8 ; Review of electrical communications laboratories, v. 36, n. 4, 1988.
152
LITERATURVERZEICHNIS
[94] S. Miyaguchi, K. Ohta, M. Iwata; 128-bit hash function (N-Hash); Proceedings of
SECURICOM ’90, 1990, pp. 123–137.
[95] S. Miyaguchi, S. Kurihara, K. Ohta, H. Morita; Expansion of FEAL Cipher ; NTT
Review 2, 1990, pp. 117–127.
[96] S. Murphy; The Cryptoanalysis of FEAL-4 with 20 Chosen Plaintexts; Journal of
Cryptologie 2, 1990, pp. 145–154.
[97] M. Naor, M. Yung; Universal one-way hash functions and their cryptographic applications; Proceedings of the twenty first annual ACM Symp. Theory of Computing,
STOC, 1989, pp. 33–43.
[98] H. Niederreiter; Sequences with almost Perfect Linear Complexity Profile; Advances
in Cryptology — Proceedings of EUROCRYPT ’87, Springer LNCS 304, 1987, pp.
37–52.
[99] Communication and Information Processing Labs, NTT; FEAL-N Specifications and
Program; 1989.
[100] P. Nyffeler; Binäre Automaten und ihre linearen Rekursionen; Dissertation, Universität Bern, 1975.
[101] A. M. Odlyzko; Discrete logarithms in finite fields and their cryptographic significance; Advances in Cryptology — Proceedings of EUROCRYPT ’84, Springer LNCS
209, 1984, pp. 224–314.
[102] S.-J. Park, S.-L. Lee, S.-C.Goh; On the security of the Gollmann cascades; Proceedings of Crypto’95, D. Coppersmith, (Ed.), LNCS 963, Springer Verlag, 1995, pp.
148–156.
[103] A. Pfitzmann, B. Pfitzmann, M. Waidner; Datenschutz garantierende offene Kommunikationsnetze; Informatik-Spektrum, Springer-Verlag, Heidelberg, Juni 1988.
[104] S. C. Pohlig, M. E. Hellman; An improved algorithm for computing logarithms over
GF (p) and its cryptographic significance; IEEE Trans. Inform. Theory, IT-24, n. 4,
1978, pp. 106–110.
[105] J. M. Pollard; Theorems on Factorization and Primality Testing; Proc. Cambridge
Phil. Soc. 76, 1974, pp. 521–528.
[106] M. O. Rabin; Probabilistic Algorithms for Testing Primality; Journal Number Theory, v. 12, 1980, pp. 128–138.
[107] R. L. Rivest, A. Shamir, L. Adleman; A Method for Obtaining Digital Signatures
and Public-Key Cryptosystems; CACM, v. 21, n. 2, 1978, pp. 120–126.
LITERATURVERZEICHNIS
153
[108] R. L. Rivest; Remarks on a Proposed Cryptoanalytic Attack on the M.I.T. PublicKey Cryptosystem; Cryptologia, v. 2, n. 1, 1978, pp. 62–65.
[109] R. L. Rivest; Critical Remarks on “Critical Remarks on Some Public-Key Cryptosystems” by T.Herlestam; Bit, v. 19, 1979, pp. 274–275.
[110] R. L. Rivest, A. Shamir; How to Expose an Eavesdropper ; CACM, v. 27, n. 4, 1984,
pp. 393–395.
[111] R. L. Rivest; The MD4 Message Digest Algorithm; Abstracts CRYPTO ’90, 1990,
pp. 281–291.
[112] R. L. Rivest; MD5 — New Message-Digest Algorithm; Presented at Rump session
of CRYPTO ’91, 1991.
[113] J. Rompel; One-way Functions are Necessary and Sufficient for Secure Signatures;
Proceedings of the twenty second annual ACM Symp. Theory of Computing, STOC,
1990, pp. 387–394.
[114] R. A. Rueppel; New Approaches to Stream Ciphers; Dissertation, Zürich, 1984.
[115] R. A. Rueppel; Analysis and Design of Stream Ciphers; Springer, Berlin, 1986.
[116] R. Rueppel, O. Staffelbach; Products of Linear Recurring Sequences with Maximum
Complexity; IEEE Trans. Inform. Theory, v. IT-33, 1987, pp. 124–131.
[117] W. Ryska, S. Herda; Kryptographische Verfahren in der Datenverarbeitung; Informatik Fachberichte, Band 24, Springer, Berlin, 1980.
[118] C. P. Schnorr; An Efficient Cryptographic Hash Function; Presented at Rump session of CRYPTO ’91, 1991.
[119] A. Shamir; How to share a secret; CACM, v. 22, n. 11, 1979, pp. 612–613.
[120] A. Shamir; A polynomial-time algorithm for breaking the basic Merkle-Hellman cryptosystem; IEEE Trans. Inform. Theory, v. IT-30, 1984, pp. 699–704.
[121] A. Shamir; Identity-Based Cryptosystems and Signature Schemes; Advances in
Cryptology — Proceedings of CRYPTO ’84, Springer LNCS 196, 1984, pp. 47–53.
[122] C. E. Shannon; Communication Theory of Secrecy Systems; Bell Systems Technical
Journal, n. 28, 1949, pp. 657–715.
[123] A. Shimizu, S. Miyaguchi; Fast Data Encryption Algorithm Feal ; Advances in Cryptology — Proceedings of EUROCRYPT ’87, Springer LNCS 304, 1987, pp. 267–378.
[124] T. Siegenthaler; Correlation-Immunity of Nonlinear Combining Functions for Cryptographic Applications; IEEE Trans. Inform. Theory, v. IT-31, 1984, pp. 776–780.
154
LITERATURVERZEICHNIS
[125] T. Siegenthaler; Decrypting a Class of Stream Ciphers Using Ciphertext Only; IEEE
Trans. on Computers, v. 34, 1985, pp. 81–85.
[126] R. D. Silverman; The multiple polynomial quadratic sieve; Math. Comp., v. 48, n.
177, 1987, pp. 329–339.
[127] G. J. Simmons, M. J. Norris; Preliminary Comments on the M.I.T. Public-Key
Cryptosystem; Cryptologia, v. 1, n. 4, 1977, pp. 406–414.
[SiJM91] G. J. Simmons, W.-A. Jackson, K. Martin; The Geometry of Shared Secret
Schemes, Bulletin of the Institute of Combinatorics, Winnipeg Canada, Januar 1991.
[128] Skipjack and KEA Algorithm Specification; Version 2.0, 29. May 1998; erhältlich
über die Webseite des “National Institute of Standards and Technology” unter:
http://csrc.nist.gov/encryption/skipjack-kea.htm.
[129] R. Sugarman; On Foiling Computer Crime; IEEE Spectrum, v. 16, 1979, pp. 31–41.
[130] H. C. A. van Tilborg; An introduction to cryptology; Kluwer Academic Publishers,Norwell, MA, 1988.
[131] X. Wang, X. Lai, D. Feng, H. Chen, X. Yu Cryptoanalysis of the Hash Functions
MD4 and RIPEMD; Advances in Cryptology - EUROCRYPT 2005, Springer LNCS
3494 pp. 1-18.
[132] M. Wang, J. Massey; The Characterization of All Binary Sequences with Perfect
Linear Complexity Profiles; Presented at Eurocrypt ’86, 1986.
[133] M. Wiener; Efficient DES Key Search; vorgestellt auf der Rump-session der CRYPTO ’93, August 1993
[134] H. C. Williams, B. Schmid; Some Remarks Concerning the M.I.T. Public-Key Cryptosystem; Bit, v. 19, 1979, pp. 525–538.
[135] H. C. Williams; A p + 1 Method of Factorising; Math. Comp., v. 39, n. 159, 1982,
pp. 225-234
[136] M. V. Živković; An algorithm for the initial state reconstruction of the clock controlled shift register ; IEEE Transactions on Intormation Theory, v. 37, n. 5, 1991, pp.
1488–1490
Index
ϕ-Funktion, eulersche, 53
1-Runden DES, 105
Abbildung, bijektive, 75
abstraktes Kryptosystem, 4
Advanced Encryption Standard, 122
AES, 122
Algorithmus, Chiffrier-, 4
Angreifer, 5
Äquivalent, lineares, 56
asymmetrisches Kryptosystem, 6
attack, chosen-ciphertext-, 9, 28
attack, chosen-plaintext-, 9, 28
attack, ciphertext-only-, 9
attack, known-plaintext-, 9
Ausgangsdifferenz, 109
auto-key System, 15
Autokorrelationsfunktion, 36
Axiome, Golombsche, 35, 37
Betriebsarten von Blockchiffren, 79
bijektive Abbildung, 75
Bitfehler, 80
Bitslip, 80
Blockchiffre, 73
Blockchiffren, Betriebsarten von, 79
C-34 Rotormaschine, 16
Caesar-Chiffre, 11
Chaos, Pseudozufall durch, 37
Charakteristik, 110
Charakteristik, unmögliche, 113
charakteristisches Polynom, 43
Chiffre, 10
Chiffre, Block-, 73
Chiffre, Caesar-, 11
Chiffre, Produkt-, 76
Chiffre, sequentielle, 32
Chiffre, Strom-, 32
Chiffre, Substitutions-, 12
Chiffre, synchrone Strom-, 32
Chiffre, Vernam-, 15
Chiffre, Vigenère-, 12, 32
Chiffren, Feistel-, 100
Chiffretext, 4
Chiffrieralgorithmen, 4
chosen-ciphertext attack, 9, 28
chosen-plaintext attack, 9, 28
Cipher Block Chaining Mode, 80
Cipher Feedback Mode, 84
ciphertext-only attack, 9
Code, 10
communication security, 1
COMPSEC, 1
computer security, 1
COMSEC, 1
confidentiality, 1
confusion, 76
decryption, 6
DES, 1-Runden-, 105
DES, differentielle Kryptoanalyse am Beispiel des, 105
differentielle Kryptoanalyse, 104, 105
differentielle Kryptoanalyse am Beispiel des
DES, 105
Differenz, Ausgangs-, 109
Differenz, Eingangs-, 110
Differenzen, unmögliche, 113
Diffie, Angriff auf DES, 96
diffusion, 76
Draht, heißer, 16
155
156
INDEX
Körper, Prim-, 47
Kanäle, verdeckte, 8
Kasiski, 13
Klartext, 4
known-plaintext-attack, 9
Koinzidenzindex, 13
Komplexität, Krypto-, 8
Fast Data Encipherment Algorithm, 99
Komplexität, lineare, 56
FEAL, 99
konventionelles Kryptosystem, 4, 5
FEAL-N, 99
Korrelation, 66
FEAL-NX, 100
Korrelations-Immunität, 65
Feistel-Chiffren, 100
Korrelationsattacke, taktgesteuerte SchieFeistelprinzip, 105
beregister, 68
Flüstern, 8
korrelationsimmun, m-, 67
Folge, m-, 53
Kryptoanalyse, 3
Folge, Pseudozufalls-, 33, 37
Kryptoanalyse am Beispiel des DES, diffeFolgen, m-, 53
rentielle, 105
Folgen, nichtlineare Verknüpfung von SchieKryptoanalyse, differentielle, 104, 105
beregister-, 59
Kryptoanalyse, lineare, 116
Friedman, 13
Kryptoanalytiker, 5
Funktion, Autokorrelations-, 36
Kryptographie, 3
Funktion, Rückkopplungs-, 39
Kryptokomplexität, 8
Kryptologie, 3
Geffe, Generator von, 62
Kryptooperation, 10
Gegner, 5
Kryptosystem, 3
Geheimhaltung, 1
Kryptosysteme mit öffentlichen Schlüsseln,
Geheimtinte, 7
6
Generator von Geffe, 62
Kryptosystem mit perfekter Sicherheit, 30
Gollmann, D., 64
Kryptosystem, abstraktes, 4
Golomb, S.W., 35
Kryptosystem, asymmetrisches, 6
Golombsche Axiome, 35, 37
Kryptosystem, informationstheoretisch siHagelin C-34, 16
cheres, 27
Hebern Electric Code, 19
Kryptosystem, konventionelles, 4
heißer Draht, 16
Kryptosystem, praktisch sicheres, 27
Hellman, Angriff auf DES, 96
Kryptosystem, Strukturanalyse von einem,
9
Immunität, Korrelations-, 65
informationstheoretisch sicheres Kryptosy- Kryptosystem, symmetrisches, 6
Kryptosystem, unabhängiges, 29
stem, 27
Eingangsdifferenz, 110
Electronic Codebook Mode, 79
encryption, 6
endlicher Körper, 47
Enigma, 22
eulersche ϕ-Funktion, 53
Initialisierungsvektor, 81
ISO/OSI-Protokolle, 2
ISO/OSI-Schichten, 2
Körper, endlicher, 47
LANSEC, 1
LFSR, 39
linear rückgekoppeltes Schieberegister, 37,
39
INDEX
lineare Komplexität, 56
lineare Kryptoanalyse, 116
lineare Rekursion, 43
lineare Systeme, 38
lineares Äquivalent, 56
Lucifer-Verschlüsselung, 78
M-209 Rotormaschine, 16
m-Folge, 53
m-Folgen, 53
m-korrelationsimmun, 67
MANSEC, 1
Methode von Kasiski und Friedman, 13
Methode, Trial-and-Error-, 9
Methoden, statistische, 9
Mode, Cipher Block Chaining, 80
Mode, Cipher Feedback, 84
Mode, Electronic-Codebook, 79
Mode, Output Feedback, 85
Multiplikationsregister, 45
157
Primkörper, 47
privater Schlüssel, 6
Produktchiffre, 76
Protokolle, ISO/OSI-, 2
Pseudozufall durch Chaos, 37
Pseudozufallsfolge, 33, 37
Pseudozufallsgeneratoren, 37
public-key Kryptosystem, 5
Punkt-zu-Punkt-Beziehung, 1
Register, Multiplikations-, 45
Rekursion, lineare, 43
reziprokes Polynom, 43
Rijndeal, 122
rückgekoppeltes Schieberegister, linear, 37,
39
Rückkopplungsfunktion, 39
Rückkopplungspolynom, 39, 40
run, 35
S-Box, 76
nichtlineare Verknüpfung von Schieberegi- Schichten, ISO/OSI-, 2
Schieberegister, linear rückgekoppeltes, 37,
sterfolgen, 59
39
Nyfeller, P., 64
Schieberegister, taktgesteuerte, Korrelationsattacke, 68
offenes digitales System, 6
Schieberegister, taktgesteuertes, 63
öffentlicher Schlüssel, 6
Schieberegister, Verknüpfung zweier, 58
one-time-pad, 16, 27
Schieberegisterfolgen,
nichtlineare VerOperation, Krypto-, 10
knüpfung von, 59
Ordnung von Polynomen, 52
Schlüssel, 4
Output Feedback Mode, 85
Schlüssel, öffentlicher, 6
P-Box, 76
Schlüssel, privater, 6
perfekte Sicherheit, 30
Schlüsselbibliothek, 7
Permutation, 10
secrecy, 1
Permutationsbox, 76
security, communication, 1
Permutationschiffre, 11
security, computer, 1
Polynom, charakteristisches, 43
security, system, 2
Polynom, Ordnung, 52
sequentielle Chiffre, 32
Polynom, primitives, 52
Shannon, C.E., 27
Polynom, reziprokes, 43
Sicherheit, Kryptosysteme mit perfekter, 30
Polynom, Rückkopplungs-, 39, 40
Sicherheit, perfekte, 30
praktisch sicheres Kryptosystem, 27
Skipjack, 113
Skipjack, differentielle Analyse, 113
primitives Polynom, 52
158
Spectrum, Spread, 7
Sprache, Zeichen-, 8
Spread Spectrum, 7
Spur, 49
statistische Methoden, 9
Steganographie, 4, 7
Stromchiffre, 32
Stromchiffre, synchrone, 32
Strukturanalyse von Kryptosystemen, 9
Substitution, 10
Substitutionschiffre, 12
Substitutionstabelle, 76
Suchen, vollständiges, 9
symmetrisches Kryptosystem, 6
synchrone Stromchiffre, 32
SYSSEC, 2
system security, 2
System, auto-key, 15
System, offenes digitales, 6
System, verteiltes, 2
Systeme, lineare, 38
taktgesteuerte Schieberegister, Korrelationsattacke, 68
taktgesteuertes Schieberegister, 63
Text, Klar-, 4
trace, 49
Trial-and-Error-Methode, 9
unabhängiges Kryptosystem, 29
unmögliche Charakteristik, 113
unmögliche Differenzen, 113
Verbindung, virtuelle, 2
verdeckte Kanäle, 8
Verknüpfung von Schieberegisterfolgen,
nichtlinear, 59
Verknüpfung zweier Schieberegister, 58
Vernam, Gilbert, 15
Vernam-Chiffre, 15
Verschlüsselung, Lucifer-, 78
verteiltes System, 2
Vertraulichkeit, 1
Vigenère, Blaise de, 12
INDEX
Vigenère-Chiffre, 12, 32
virtuelle Verbindung, 2
vollständiges Suchen, 9
WANSEC, 1
Zeichensprache, 8
Zufallsfolge, Pseudo-, 33, 37