Skript - Arbeitsgruppe Kryptographie und Sicherheit

Symmetrische Verschl¨
usselungsverfahren
Karlsruher Institut f¨
ur Technologie, SS 2015
Daniel Kraschewski und Willi Geiselmann
Skript-Ausarbeitung: Jonas B¨ohler
Grundlage: Datensicherheitstechnik/SCC2-Skript
13. April 2015
Inhaltsverzeichnis
1 Einf¨
uhrung
1.1 Analytische Angriffe gegen Kryptosysteme . . . . . . . . . . . . . . . . . .
2 Historische Kryptoverfahren
2.1 Substitution . . . . . . . . . . . . .
2.1.1 Caesar-Chiffre . . . . . . .
2.1.2 Vigen`ere-Chiffre . . . . . .
2.2 Permutation . . . . . . . . . . . . .
2.3 Rotorenchiffren . . . . . . . . . . .
2.3.1 Die Hagelin-Maschine C-34
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
4
6
6
6
7
9
10
10
3 Einf¨
uhrung zu Blockchiffren & Konstruktionen
12
3.1 Definitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 DES (Data Encryption Standard) . . . . . . . . . . . . . . . . . . . . . . . 13
4 Meet-in-the-Middle, Slide-Attack & Related-Key-Attack
4.1 Meet-in-the-Middle gegen 2DES . . . . . . . . . . . . .
4.2 Advanced Meet-in-the-Middle gegen 2Key-3DES . . .
4.2.1 Eine Variante per Known-Plaintext-Attack . .
4.3 Slide-Attack . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Advanced Slide-Attack gegen DES-X . . . . . . . . . .
4.5 Related-Key-Attack am Beispiel LOKI89 . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
19
20
22
23
25
26
5 Lineare Kryptoanalyse
30
5.1 FEAL-4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2 DES: Lineare Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6 Differentielle Kryptoanalyse
37
6.1 DES: Differentielle Kryptoanalyse . . . . . . . . . . . . . . . . . . . . . . . 37
6.1.1 Angriff gegen einen 2n-Runden-DES . . . . . . . . . . . . . . . . . 40
6.2 Skipjack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7 AES (Advanced Encryption Standard)
46
7.1 Aufbau und Funktionsweise . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.2 Schw¨
achen und beste bekannte Angriffe . . . . . . . . . . . . . . . . . . . 49
2
8 Betriebsmodi f¨
ur Blockchiffren
8.1 ECB: Electronic Codebook Mode .
8.2 CBC: Cipher Block Chaining Mode
8.3 CFB: Cipher Feedback Mode . . .
8.4 OFB: Output Feedback Mode . . .
8.5 CTR: Counter Mode . . . . . . . .
8.6 Probleme bei schwachen Verfahren
8.7 Vergleich . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
50
50
51
52
54
55
56
56
9 Formale Sicherheitsbegriffe
58
9.1 Beziehungen zwischen den Begriffen . . . . . . . . . . . . . . . . . . . . . 60
10 Hashfunktionen
10.1 Definition und Eigenschaften . . . . . . .
10.2 Merkle-Damgard- & Feistel-Konstruktion
¨
10.3 Aquivalenz
von Krypto-Primitiven . . . .
10.4 Aufbau von SHA-1 . . . . . . . . . . . . .
10.5 Angriffsans¨
atze gegen Hashfunktionen . .
10.5.1 Praktische Angriffe aus sinnlosen“
”
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
Kollisionen
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
63
63
64
65
68
70
71
11 Nachrichten-Authentifikation
73
11.1 Message Authentication Codes . . . . . . . . . . . . . . . . . . . . . . . . 73
11.2 Abstreitbare Authentifikation . . . . . . . . . . . . . . . . . . . . . . . . . 74
3
1 Einf¨
uhrung
Die Grundlage f¨
ur dieses Skript bildet das Vorlesungsskript [Gei09]. Sofern nicht weiter
angegeben, werden Verschl¨
usselungsfunktionen in Abbildungen bzw. im Text mit E f¨
ur
Encryption und Entschl¨
usselungsfunktionen mit D f¨
ur Decryption bezeichnet. Dar¨
uber
hinaus werden Klartexte als m f¨
ur Message, Geheimtexte mit c f¨
ur Code und Schl¨
ussel
mit k f¨
ur Key bezeichnet.
1.1 Analytische Angriffe gegen Kryptosysteme
Bei der Kryptoanalyse wird davon ausgegangen, dass der Gegner ungehinderten Zu¨
gang zum ungesicherten Ubertragungssystem
hat (also beliebig viel Chiffretexte empfangen kann). Ferner nimmt man an, dass das Kryptoverfahren bekannt, der Schl¨
ussel
aber geheim ist. Die Sicherheit des Verfahrens beruht allein auf der Geheimhaltung des
Schl¨
ussels und nicht den Details des Kryptoverfahrens; dies ist als Kerckhoffs’ Prinzip
bekannt.
Die nachfolgende Auflistung der Angriffsarten ist aufsteigend nach der St¨arke des Angriffs geordnet:
Ciphertext-Only Attack Es stehen nur die abgefangenen Chiffretexte zur Verf¨
ugung.
Der Angreifer hat also Zugriff auf den unsicheren Kommunikationskanal, was stets
vorausgesetzt wird.
Known-Plaintext-Attack Es stehen bekannte Klartext-Chiffretext-Paare zur Verf¨
ugung.
Hilfreich zur Schl¨
usselermittlung sind unter anderem verschl¨
usselte Anfangs- und
Endphrasen, z. B. Mit freundlichem Gruß“. So war es f¨
ur das Brechen der Enigma”
Verschl¨
usselung, um ein konkreteres Beispiel zu nennen, sehr n¨
utzlich zu wissen,
dass viele codierte Nachrichten, die abgefangen wurden, unter anderem ein Textfragment der Form (An das) Oberkommando der Wehrmacht“ enthielten. Da auch
”
genaue Wettervorhersagen f¨
ur milit¨arische Aktionen von Bedeutung sind, wurden
diese von Wetterstationen ebenso verschl¨
usselt und man konnte, sofern die Vorhersagen einigermaßen akkurat waren, ziemlich sicher sein, was der Inhalt dieser
abgefangenen Nachrichten wohl sein k¨onnte.
Chosen-Plaintext-Attack Es stehen beliebige Klartext-Chiffretext-Paare zur Verf¨
ugung.
Man kann also selbstgew¨
ahlte Klartexte verschl¨
usseln bzw. indirekt verschl¨
usseln
lassen. Dies erscheint zuerst unrealistisch, aber man kann es sich als eine Art
Black-Box-Szenario vorstellen, bei welchem der Angreifer zwar Zugriff auf ein Verschl¨
usselungssystem, aber nicht den Schl¨
ussel selbst hat. Direkt kann dieser Zugriff
4
sein, falls z. B. ein Server, der bestimmte Anfragen automatisch verschl¨
usselt im
Spiel ist. Und indirekt k¨
onnte man z. B. das Wort Vandalismus“ verschl¨
usseln
”
lassen, indem man vor den Augen eines Streifenpolizisten ein ¨offentliches Geb¨aude
mit Graffiti bespr¨
uht und darauf wartet, dass er einen verschl¨
usselten Funkspruch
absetzt. Sollte der Polizeifunk allerdings unverschl¨
usselt erfolgen, hat man sich
wohl umsonst verhaften lassen.
Zu den in der Kryptoanalyse verwendeten Methoden z¨ahlen die folgenden Strategien:
• Vollst¨
andige Suche: Man durchsucht den ganzen Schl¨
usselraum nach dem passenden Schl¨
ussel.
• Trial-and-Error-Methode: Man testet gewisse M¨oglichkeiten und u
uft diese
¨berpr¨
auf Fehlerfreiheit.
• Statistische Methoden: H¨
aufigkeitsanalysen (z. B. Buchstaben- oder Worth¨aufigkeit
des Klartextes und des Chiffrats).
• Strukturanalyse von Kryptosystemem: Beispielsweise das L¨osen von Gleichungssystemen.
5
2 Historische Kryptoverfahren
In der klassischen Kryptographie gibt es im Wesentlichen zwei Werkzeuge zur Transformation von Klar- in Chiffretext:
Code Ein System zur Substitution ganzer Nachrichten oder Teilen davon, W¨ortern oder
Silben einer Sprache durch W¨
orter/Zahlenfolgen einer anderen, h¨aufig k¨
unstlichen,
Sprache. Sie arbeiten also auf semantischen Einheiten und entsprechen gewissermaßen einem festgelegten W¨
orterbuch. Zu den Nachteilen z¨ahlt, dass die Transformation gleicher Klartexte zu immer gleichen Chiffren f¨
uhrt, man ein großes
W¨orterbuch ben¨
otigt und man sich auf vorher vereinbarte Sachverhalte, f¨
ur die
man Codew¨
orter erstellt, einschr¨anken muss.
Chiffre Ein universelles Verfahren, das eine Anzahl an Kryptooperationen (Substitution
oder Permutation) benutzt, um einen beliebigen Klartext in einen Chiffretext umzuwandeln. Einheiten fester L¨
ange des Klartextextes werden Einheiten fester L¨ange
des Chiffretextalphabets zugeordnet. Man operiert auf syntaktischen Einheiten.
Die oben erw¨
ahnten Kryptooperationen zur Transformation von Klartexten in Chiffretexten werden in zwei Typen unterteilt:
1. Substitution und
2. Permutation,
welche in den n¨
achsten zwei Abschnitten n¨aher erl¨autert werden.
2.1 Substitution
2.1.1 Caesar-Chiffre
Bei der Caesar-Chiffre wird jedes Zeichen des Klartextes um den Schl¨
ussel-Wert k im
Alphabet verschoben. Man w¨
ahlte bei dieser Chiffre k = 3 fest und dadurch ergibt sich
folgende Chiffrierabbildung:


A 7→ D


..
Ek :
.
.



Z 7→ C
Dies verst¨
oßt allerdings gegen das Kerckhoffs’sche Prinzip, denn aufgrund des fest gew¨ahlten, immer gleichen Schl¨
ussels ist der gesamte Algorithmus geheim zu halten, nicht
6
nur der Schl¨
ussel selbst. Dennoch war diese Verschl¨
usselung gar nicht so schlecht, schließlich konnte damals ohnehin kaum jemand lesen.
Angriff
Um eine solche simple Substitution anzugreifen, betrachtet man die Zeichenh¨aufigkeit.
In der deutschen Sprache ist z. B. das E der h¨aufigste Buchstabe, ist im Chiffrat nun
F der h¨
aufigste, so wurde mit hoher Wahrscheinlichkeit der Schl¨
ussel k = 1 verwendet.
Und kennt man den Klartext bzw. Teile davon, kann man den Schl¨
ussel leicht ermitteln.
2.1.2 Vigen`
ere-Chiffre
Bei der Vigen`ere-Chiffre wird eine m¨oglichst lange Schl¨
usselfolge (im Beispiel COVER)
anstatt eines konstanten Schl¨
ussels wie bei der Caesar-Chiffre verwendet.
Klartext:
Schl¨
usselfolge:
THEMATHEMATICAL
COVERCOVERCOVER
Chiffretext:
WWARSWWARSWXYFD
(Das sich wiederholende Muster WWARS l¨asst hier schon ohne jegliche Information u
¨ber
den Klartext auf die richtige Periode 5 schließen.)
Angriffe
Man kann verschiedene Angriffe gegen Vigen`ere anwenden, von denen wir einige aufz¨ahlen wollen:
• Man kann die Schl¨
ussell¨
ange raten/durchprobieren (es sind wahrscheinlich nur
wenige 100) und es anschließend wie Caesar brechen (siehe dazu den n¨achsten
Teilabschnitt).
• Die Autokorrelationsfunktion, welche die relative H¨aufigkeit von u
¨bereinstimmenden Stellen eines Textes mit sich selbst um einige Stellen verschoben angibt, hat
einen Peak bei der Schl¨
usselperiode, was hilfreich ist.
• Die Methode von Kasiski & Friedman: Der Koinzidenzindex des Chiffrats, d. h. die
Wahrscheinlichkeit, dass an zwei zuf¨alligen Stellen eines Textes dasselbe Zeichen
steht, sinkt bei steigender Schl¨
ussell¨ange. (Siehe dazu den u
¨bern¨achsten Teilabschnitt).
Diese Chiffre galt lange Zeit als unbrechbar ( Le Chiffre ind´echiffrable“) und ist tats¨achlich
”
perfekt, wenn die Schl¨
ussell¨
ange gleich der L¨ange des Klartexts ist (und man somit den
One-Time-Pad erreicht hat).
Angriff: Caesar
Hat man die Periodizit¨
at l der Schl¨
usselfolge erkannt, kann man Vigen`ere wie Caesar
brechen: Man schreibt den Chiffretext in Spalten der L¨ange l nebeneinander, wie es in
Abbildung 2.1 zu sehen ist, und hat in jeder Zeile eine Caesar-Verschl¨
usselung.
7
1 l+1
2 l+2
..
..
.
.
l
2l
· · · ← Caesar
···
..
.
···
Abbildung 2.1: Anordnung des Chiffretexts zum Brechen der Vig`enere-Chiffre
Man hat allerdings nicht immer das Gl¨
uck, dass gleiche Teilfolgen im Klartext mit der
gleichen Schl¨
ussell¨
ange verschl¨
usselt wurden (sind sie aber entstanden, dann ist ihr Abstand ein Vielfaches der Schl¨
usselperiodizit¨at). Im allgemeinen Fall wendet man die
Methode von Kasiski und Friedman an.
Angriff: Kasiski und Friedman
Definition 2.1.1: (Koinzidenzindex): Der Koinzidenzindex Ic eines Chiffretextes c gibt
die Wahrscheinlichkeit daf¨
ur an, dass zwei unabh¨angig voneinander gew¨ahlte Zeichen
des Chiffretextes c gleich sind. (Sinkt bei steigender Schl¨
ussell¨ange.)
F¨
ur einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, h¨angt
der Koinzidenzindex Ic nicht vom Schl¨
ussel k, sondern lediglich von den statistischen
Eigenschaften der Klartextquelle ab. F¨
ur englische Texte gilt z. B. Ic ≈ 0, 065. Diese
Unabh¨angigkeit von Ic bei der Caesar-Chiffre wird f¨
ur die Ermittlung der Periodenl¨ange,
wie unten beschrieben, ausgenutzt.
Es sei ni die absolute H¨
aufigkeit
des Zeichens ai aus dem Alphabet A in dem Chiffretext
ni der L¨ange n. Dann gibt es 2 = ni (n2i −1) M¨oglichkeiten das Paar ai ai auszuw¨ahlen:
Ic =
≈
ni 2
n
ai ∈A 2
X
P
=
X ni 2
ai ∈A
n
− 1)
Anzahl g¨
unstiger F¨alle
=
n(n − 1)
Anzahl m¨oglicher F¨alle
ai ∈A ni (ni
(f¨
ur großes n)
(2.1)
(2.2)
Ordnet man den Chiffretext der L¨ange n wie im vorherigen Bild in l Zeilen an, dann
gilt:
oglichkeiten, Zeichenpaare in derselben Zeile auszuw¨ahlen.
1. Es gibt n( nl − 1) M¨
(F¨
ur jedes der n Zeichen, welches man als Erstauswahl betrachtet, hat man nl − 1
verbleibende Zeichen in der gleichen Zeile, die man als Zweites ausw¨ahlen kann.)
2. Es gibt n(n − nl ) M¨
oglichkeiten, Zeichenpaare in verschiedenen Zeile auszuw¨ahlen.
Sei p die Wahrscheinlichkeit daf¨
ur, in derselben Zeile gleiche Zeichenpaare auszuw¨ahlen.
Falls die Zeilenanzahl l gleich der Periode der Schl¨
usselfolge ist, dann kann p durch den
P
2
Koinzidenzindex ai ∈A pi approximiert werden (f¨
ur gen¨
ugend großes n), da hier eine
Caesar-Chiffrierung vorliegt (dabei bezeichnet pi die Wahrscheinlichkeit daf¨
ur, dass die
8
Klartextquelle das Zeichen ai aussendet). Ansonsten betrachtet man die Wahrscheinlichkeit, in verschiedenen Zeilen gleiche Zeichenpaare auszuw¨ahlen, wobei hier von einer
Gleichverteilung der Zeichen auszugehen ist (Schl¨
ussel mit unendlicher Periode), also
P
≈ ai ∈A (1/|A|)2 = 1/|A|.
Man erh¨
alt somit als Approximation f¨
ur den Koinzidenzindex:

Ic =
n
n
1
· n
−1 ·
p2i + n n −
n(n − 1)
l
l
a ∈A
X

·
i
1 
|A|
(2.3)
Also gerade die Anzahl passender Zeichenpaare (in großen Klammern) durch die Anzahl
aller m¨
oglichen Zeichenpaare.
Die Periodenl¨
ange einer Vigen`ere-Chiffre bestimmt man wie folgt:
1. Berechne den Koinzidenzindex gem¨aß (2.1) oder (2.2).
2. Vergleiche diesen mit den ermittelten theoretischen Werten f¨
ur verschiedene Werte
von l nach (2.3).
Man erh¨
alt so zwar nicht immer das korrekte l, aber der Vergleich des gemessenen“
”
Koinzidenzindex mit dem theoretisch zu erwartenden Wert gibt Aufschluss u
¨ber die
verwendete Chiffre; ob es eine Permutations- oder Caesar-Chiffre oder eine Vigen`ereChiffre mit kleinerer oder gr¨
oßerer Periode ist (f¨
ur kleinere steigt Ic , man n¨ahert sich
Caesar, f¨
ur gr¨
oßere sinkt Ic , man n¨ahert sich dem One-Time-Pad).
Varianten
Es folgen Varianten von Vigen`ere, die die periodische Wiederholung des Schl¨
ussels meiden (und somit nicht mit Kasiski und Friedman zu brechen sind):
• Man w¨
ahlt einen Schl¨
usselanfang der L¨ange l und verschl¨
usselt die ersten l Klartextzeichen mit diesem Schl¨
ussel. Dann wird der Klartext als Schl¨
ussel verwendet.
• Man w¨
ahlt einen sich nicht wiederholenden Text als Schl¨
ussel. W¨ahlt man aber
einen Text einer nat¨
urlichen Sprache, dann kann man u
¨ber die relative H¨aufigkeit
der Zeichen dieser Sprache hochwahrscheinliche Paare von Klartext- und Schl¨
usselbuchstaben angeben und durch Ausprobieren Teilfolgen des Schl¨
ussels und Klartextes bestimmen. Fehlende bzw. unsichere Buchstaben kann man durch Kontextbetrachtung gewinnen, hierbei sind H¨aufigkeitsverteilungen von Bigrammen,
Trigrammen, etc. sowie Einzelwortwahrscheinlichkeiten n¨
utzlich.
• One-Time-Pad: Man verwendet eine echte Zufallsfolge, die genauso lang wie der
Klartext ist als Schl¨
ussel und verwendet diesen nur ein einziges Mal. (Die einzige
Chiffre, die perfekt sicher ist.)
2.2 Permutation
Bei der Permutation werden Texte in Bl¨ocke fester L¨ange eingeteilt und die Blockinhalte
u
ussel permutiert.
¨ber Schl¨
9
Angriff
Ein Angriff kann u
¨ber die Aufstellung einer Bigramm-Statistik erfolgen:
1. Rate die Blockl¨
ange L durch vollst¨andiges Durchprobieren, L muss dabei die Chiffratl¨
ange teilen.
2. Schreibe das Chiffrat Zeilenweise in eine Matrix der Breite L.
3. Berechne f¨
ur je zwei Spalten i, j die Wahrscheinlichkeit, dass im Klartext i direkt
vor j stand.
4. Die erste Klartextspalte hat keinen wahrscheinlichen Vorg¨anger“, es folgt also
”
jeweils der wahrscheinlichste Nachfolger“.
”
2.3 Rotorenchiffren
Man begann am Anfang des 20. Jahrhunderts, eine große Anzahl verschiedener Substitutionen zum Verschl¨
usseln zu verwenden. Und zwar wechselte man diese Substitutionen regelm¨aßig nach dem Verschl¨
usseln eines einzelnen Zeichens. Diese große Anzahl von Wechseln ließ sich manuell kaum noch bewerkstelligen, so dass man (elektro-)mechanische
Maschinen entwickelte, die diese Substitutionen und ihre Wechsel durchf¨
uhrten.
2.3.1 Die Hagelin-Maschine C-34
Die Hagelin C-34 ist eine Rotormaschine, deren Rotoren bin¨are Werte zur¨
uckgeben,
die durch zyklisch r¨
uckgekoppelte bin¨are Schieberegister beschrieben werden k¨onnen.
Mit diesen Rotoren wird eine Pseudozufallsfolge generiert, mit deren Hilfe eine Vigen`ere-Verschl¨
usselung durchgef¨
uhrt wird. Wie die meisten historischen Rotormaschinen arbeitet sie u
¨ber den Zahlen von 0 bis 25, also u
¨ber Z26 . Die Rotoren sind zyklisch
r¨
uckgekoppelte Schieberegister der L¨angen 17, 19, 20, 21 und 23. Da die L¨angen der Rotoren paarweise teilerfremd sind, ergibt sich eine Periodenl¨ange von 17 · 19 · 20 · 21 · 23 =
3120180. Ihre Ausgaben werden als die Bin¨ardarstellung eines Index in eine Schl¨
usselliste
aufgefasst. (Der Index in die Schl¨
usselliste ist 5 Bit lang, welche somit 32 Werte aus Z26
enth¨alt.) Von diesem so indizierten Wert wird der Klartext subtrahiert (Modulo 26).
Die hier verwendete Subtraktion hat den Vorteil, dass das System selbstinvers ist. Der
Schl¨
ussel dieses Verfahrens, welches in Abbildung 2.2 zu sehen ist, wird von der Initialbelegung der Schieberegister und dem Inhalt der Schl¨
usselliste gebildet.
Angriff
Die Idee des Angriffs ist es nicht die exakten Einstellungen und somit den Schl¨
ussel
dieser Maschine zu ermitteln, sondern nur ¨aquivalente Einstellungen zu finden, die es
einem erm¨
oglichen, Texte zu dechiffrieren.
1. Mithilfe von Klartext-Chiffrat-Paaren kann man den Schl¨
usselstrom erhalten, aber
der Index bleibt unbekannt.
10
2. Schreibt man ein h¨
aufig vorkommendes Zeichen am Anfang der Schl¨
usselliste (s[0]),
kann man z. B. die Nullerfolge als Index annehmen. Somit sind die Rotoren-Werte
gleich 0.
3. Man sucht nun nach Rotorenstellungen, in der 4 von 5 Ausgabebits bekannt sind,
vervollst¨
andigt das 5. Ausgabebit (so dass man einen neuen Index erh¨alt) und
ebenso die Schl¨
usselliste (indem man den Schl¨
ussel-Buchstaben an der mometane
Rotorenposition einf¨
ugt)
4. Schließlich wiederholt man den dritten Schritt bis alles vollst¨andig ermittelt wurde.
Rotor 1
Rotor 2
Rotor 3
Rotor 4
Rotor 5
Schl¨
usselliste
Klartext
−
s[0]
s[1]
..
.
s[30]
s[31]
Index in die Schl¨
usselliste
Chiffretext
Abbildung 2.2: Struktur der Hagelin-Maschine
11
3 Einf¨
uhrung zu Blockchiffren &
Konstruktionen
3.1 Definitionen
Definition 3.1.1: (Blockchiffre): Gegeben seien zwei endliche Alphabete A, B und n, m ∈
N sowie ein Schl¨
usselraum K. Eine Blockchiffre ist gegeben durch eine Familie von injektiven Abbildungen fk : An → B m mit k ∈ K. In der Regel gilt A = B = {0, 1} und
n = m (die fk sind dann zwangsl¨
aufig bijektiv).
Blockchiffren sind meist Produktchiffren, d. h. mehrere Substitutionen (S-Boxen, von
Shannon bezeichnet als confusion“) und Permutationen (P -Boxen, diffusion“) hinter”
”
einander, da wir wissen, dass einfache Substitutions- und Permutations-Chiffren nicht
sicher sind. Bei einer Blockchiffre teilt man einen Klartext in Bl¨ocke fester L¨ange ein
und chiffriert diese einzeln mit einer f¨
ur alle Bl¨ocke gleichen Verschl¨
usselungsfunktion.
Als sequentielle Chiffren oder Stromchiffren bezeichnet man Verschl¨
usselungsverfahren,
bei denen die Folge von Klartextzeichen nacheinander mit einer in jedem Schritt variierenden Funktion verschl¨
usselt wird. Es wird also ein Klartext mit unabh¨angig davon
erzeugten Schl¨
usselstrom (Zufall) verkn¨
upft.
Anforderungen
Damit man auch effizient nutzbare und sichere Blockchiffren hat, m¨
ussen folgende Anforderungen gelten:
• Gegeben den Schl¨
ussel k, muss sowohl fk als auch fk−1 effizient berechenbar sein.
• Ein Angreifer kann nicht unterscheiden zwischen einem Orakel Oi (ideal), welches
eine zuf¨
allige Injektion An → B m implementiert, und dem Orakel Or (real), welches
die gegebene Blockchiffre mit zuf¨alligem Schl¨
ussel implementiert. Formal l¨asst sich
dies u
ber
Wahrscheinlichkeiten
definieren,
wobei
AO bedeutet, dass der Angreifer
¨
A Zugriff auf das Orakel O hat:
|P [AOi → 0] − P [AOr → 0]| = negligible(|k|).
Hierbei gilt zu beachten, dass A polynomial beschr¨ankt ist und wenn man eine
Funktion µ als negligible ( vernachl¨assigbar“) bezeichnet, bedeutet dies, dass die
”
Funktion asymptotisch schneller verschwindet als jedes Polynom. Formaler ausgedr¨
uckt sagt man, dass eine Funktion µ negligible ist, sofern gilt:
∀d ∈ N ∃x0 ∈ N ∀x > x0 : |µ(x)| < x−d .
12
Achtung: Diese asymptotische Aussage betrifft keine konkrete Schl¨
ussell¨ange. Man will
das Problem eines Angriffs n¨
amlich so allgemein wie m¨oglich beschreiben, darum gibt
es keine exakte Angabe eines Sicherheitsparameters (z. B. einer Schl¨
ussell¨ange). Es muss
nur gezeigt werden, dass der Aufwand f¨
ur einen Angreifer im Vergleich zu dem Aufwand
eines Nutzers in Abh¨
angigkeit dieses Parameters viel schneller w¨achst. Sollte dann ein
Sicherheitssystem gebrochen werden (z. B. aufgrund des technischen Fortschritts bei der
Rechnerentwicklung, die ein schnelleres Durchsuchen des Schl¨
usselraums erlaubt), kann
man einfach diesen Parameter vergr¨oßern, um das System erneut abzusichern.
Ideal Cipher
¨
Eine Ideal Cipher (IC) ist eine (Uber-)Idealisierung
einer Blockchiffre. Jedem Schl¨
ussel
λ
k ∈ {0, 1} ist eine vollkommen zuf¨allige Permutation Pk : {0, 1}n → {0, 1}n zugeordnet
(hierbei sind λ und n Sicherheitsparameter) und per Orakelzugriff kann jede Maschine
im Modell die Funktionen Pk und Pk−1 auswerten. Die Existenz einer solchen IC wird
zur Vereinfachung von Beweisen angenommen, man spricht dann von dem Ideal-CipherModell.
Achtung: Es gibt (pathologische) Protokolle, die zwar im idealisierten IC-Modell beweisbar sicher sind, jedoch alle Sicherheit verlieren, wenn man die IC durch einen ¨offentlich
bekannten, volldeterministischen Algorithmus ersetzt. Der Unterschied zu Definition
3.1.1 liegt darin, dass der Angreifer den Schl¨
ussel kennt (bzw. ihn sogar w¨ahlt).
3.2 DES (Data Encryption Standard)
Der Data Encryption Standard (DES) wurde von IBM mit Unterst¨
utzung der National Security Agency in den 70ern entworfen. Aufgrund seiner geringen Schl¨
ussell¨ange
von effektiv nur 56 Bit wird er als nicht mehr sicher angesehen. Im Jahre 1998 wurde
DES durch einen 250.000$-Parallelrechner der Electronic Frontier Foundation (EFF) gebrochen, dieser durchsuchte einfach den gesamten Schl¨
usselraum in etwa neun Tagen.
Allerdings gibt es trotz intensiver Forschungsarbeiten keinen wirklichen Angriff, der in
der Praxis besser ist als das bloße Durchprobieren aller m¨oglichen Schl¨
ussel. Darum
entwickelte man verbesserte Varianten von DES, die wir am Ende dieses Abschnitts
vorstellen werden.
Die Abbildung 3.1 zeigt den groben Aufbau von DES. Am Anfang findet eine Permutation statt und am Ende wird deren inverse Permutation ausgef¨
uhrt, da diese Permutationen aber fest und bekannt sind, k¨onnen sie f¨
ur unsere weitere Betrachtung des DES
entfallen. Es gilt auch, dass die Ver- und Entschl¨
usselung aufgrund der Konstruktionseigenschaft bis auf die (genau umgekehrte) Reihenfolge der verwendeten Teilschl¨
ussel
identisch sind. Um genauer auf den Aufbau des DES einzugehen, m¨
ussen wir erst erkl¨aren, was man unter einem Feistel-Netzwerk versteht. In [KL07] wird es beschrieben
als eine alternative zur Verwendung einfacher Substitutionen und Permutationen zur
Erstellung von Blockchiffren. Zwar werden diese meistens auch innerhalb eines FeistelNetzwerkes genutzt, aber auf geschickte Weise miteinander verbunden, so dass f¨
ur die
13
Input
64 Bit
Initiale Permutation
32 Bit
k1
L0
32 Bit
R0
F
L1
..
R1
k16
L15
R15
F
Inverse Initiale Permutation
Output
Abbildung 3.1: DES Verschl¨
usselungsalgorithmus
Substitutionen nicht mehr gelten muss, dass sie invertierbar sind. Dies ist vorteilhaft,
da die Invertierbarkeit zwangsl¨
aufig gr¨oßere Struktur in das System bringt, wobei man
aber von einer guten Blockchiffre eher ein unstrukturiertes (also zuf¨allig aussehendes)
Verhalten erwartet. Ein Feistel-Netzwerk besteht aus mehreren Runden, die gleich aufgebaut sind. In der i-ten Runde wird die Eingabe als aus zwei H¨alften Li−1 (linke H¨alfte)
und Ri−1 (rechte) bestehend betrachtet. Die linke Eingabeh¨alfte f¨
ur die n¨achste Runde,
also Li , ist die rechte H¨
alfte der momentanen Runde, also Ri−1 . Auf Li−1 wird noch eine
Funktion F (deren Eingabe ein Rundenschl¨
ussel und Ri−1 sind), aufaddiert, so dass man
die neue rechte H¨
alfte Ri erh¨
alt. Auf die genaue Zusammensetzung dieser F -Funktion
werden wir nun eingehen.
14
F -Funktion
Die F -Funktion F (Ri−1 , ki ) erh¨
alt als Eingabe Ri−1 , die rechte H¨alfte des internen Zustands nach der i − 1-ten Runde, und mit ki den Rundenschl¨
ussel f¨
ur die i-te Runde.
Der Ablauf wird nun erl¨
autert und ist ebenso in Abbildung 3.2 zu sehen.
Ri−1
(32 Bit)
ki
Erw.
(48 Bit)
(48 Bit)
(6 Bit)
(6 Bit)
S1
...
(4 Bit)
S8
(4 Bit)
P
F (Ri−1 , ki )
Abbildung 3.2: F -Funktion
1. Zuerst sorgt die Expansion Erw.(Ri−1 ) daf¨
ur,
erweitert wird. Mit Ri−1 = (r1 , . . . , r32 ) l¨asst
durch
(r32 , r1 ,
r4 , r5 ,
r8 , r9 ,
r12 , r13 ,
Erw.(Ri−1 ) =
r16 , r17 ,
r20 , r21 ,
r24 , r25 ,
r28 , r29 ,
dass die Eingabe von 32 auf 48 Bit
sich diese Erweiterung beschreiben
r2 , . . .
r6 , . . .
r10 , . . .
r14 , . . .
r18 , . . .
r22 , . . .
r26 , . . .
. . . r32 ,
r5 ,
r9 ,
r13 ,
r17 ,
r21 ,
r25 ,
r29 ,
r1 ).
Eine grafische Repr¨
asentation davon findet man in Abbildung 3.3.
2. Diese erweiterten 48 Bits werden mit dem i-ten Rundenschl¨
ussel ki addiert, also
erh¨
alt man Erw.(Ri−1 ) ⊕ ki .
3. Je 6 Bit davon werden zu einer der acht S-Boxen gef¨
uhrt (diese sind Tabellen
und die Eingangsbits dienen der Indizierung), deren Ausg¨ange je 4 Bit liefern. Die
15
S-Boxen werden durch eine 4 × 16-Matrix beschrieben und jede Zeile stellt eine
Substitution dar. Die Substitutionen sind nichtlinear und der kryptologisch wichtigste Teil. (Die 8 Boxen mit je 4 Substitutionen liefern insgesamt 32 verschiedene
Substitutionen.)
4. Die Ausgabe der S-Boxen werden abschließend noch einer Permutation P unterworfen.
r1 r2 r3 r4
r5 r6 r7 r8
r9
...
r32 r1 r2 r3 r4 r5
r4 r5 r6 r7 r8 r9
r8 r9
Abbildung 3.3: Erweiterungsfunktion Erw.(Ri−1 ) mit Ri−1 = (r1 , . . . , r32 )
Technische Daten und Ablauf
Nach diesen Eingangsbemerkungen wollen wir nun die technischen Daten des DES genauer betrachten:
• Es wird eine Feistel-Struktur mit 16 Runden verwendet (dies erm¨oglicht z. B. die
Ver- & Entschl¨
usselung mit der gleichen Hardware).
• Die Blockl¨
ange des DES betr¨agt 64 Bit, d. h. dass man mit einer Eingabe von 64
Bit arbeitet, wobei diese intern als zwei 32-Bit-Bl¨ocke verarbeitet werden.
• Der Schl¨
usselraum hat eine Gr¨oße von 56 Bit (zus¨atzlich erg¨anzen 8 Parit¨atsbits
die acht 7-Bit-Zeichen eines Nachrichtenblocks auf ungerade Parit¨at). Dies wurde
bereits vor Inkrafttreten des Standards als zu kurz kritisiert.
• Die Rundenschl¨
ussel ki sind je 48 Bit groß. Es wird eine Auswahlfunktion auf
den 56-Bit-Hauptschl¨
ussel angewendet, welche Permutationen, zirkul¨are Linksshifts und Bit-Auswahlen (Selects) beinhaltet und gut umkehrbar ist.
Der Ablauf, auf den zuvor schon lose eingegangen wurde, soll hier zusammenh¨angend
und kompakt dargestellt werden:
1. Es erfolgt zuerst eine initiale Permutation auf der in Bl¨ocken eingeteilten Eingabe.
2. Anschließend gibt es 16 Runden mit verschiedenen Rundenschl¨
usseln, wobei die
Runden funktional identisch sind:
Li = Ri−1 , Ri = Li−1 ⊕ F (Ri−1 , ki ).
Mit Li und Ri bezeichnet man wie bereits erw¨ahnt die linken bzw. rechten Texth¨
alften w¨
ahrend den Verschl¨
usselungschritten und dies wird in Abbildung 3.1 auch
genauer erkennbar.
16
3. Abschließend findet die inverse Permutation zur initial ausgef¨
uhrten statt.
Entwurfskriterien
Die Entwurfskriterien wurden erst nachtr¨aglich ver¨offentlicht, so dass es Bef¨
urchtungen
gab, die NSA h¨
atte Hintert¨
uren in die Verschl¨
usselung eingebaut. Heute kann man allerdings sagen, dass diese Bef¨
urchtungen (in diesem Fall) unbegr¨
undet waren. Die Kriterien
lauten:
• Keine S-Box ist eine lineare oder eine affine Funktion ihrer Eingabe.
¨
¨
• Die Anderung
eines Eingabebits einer S-Box bewirkt eine Anderung
von wenigstens
zwei Ergebnisbits.
• Die S-Boxen sind so gew¨
ahlt, dass das Hamming-Gewicht des S-Box-Ergebnisses
m¨oglichst konstant bleibt, wenn irgendein Eingabebit konstant gehalten wird.
Variationen
Der DES ist bis heute strukturell ungebrochen, aber brute force ist, wie eingangs erw¨ahnt,
aufgrund des zu kleinen Schl¨
usselraums m¨oglich. Um diesem Problem des zu kleinen
Schl¨
usselraums zu begegnen, w¨
are die naive Idee einfach einen gr¨oßeren Schl¨
ussel zu
nehmen, allerdings w¨
urde dies gegen den Standard verstoßen und DES ist bereits in vielen Hardware-Implementierung mit fester Schl¨
ussell¨ange vorzufinden. Man kann aber,
wenn man den Schl¨
ussel schon nicht vergr¨oßern kann, einfach mehrere Schl¨
ussel nehmen, indem man den DES z. B. verschachtelt ausf¨
uhrt. Diese nachfolgenden Varianten,
die alle mehr Schl¨
ussel bieten als der urspr¨
ungliche DES und damit den Schl¨
usselraum
signifikant vergr¨
oßern, sind alle praxistauglich und gelten als sicher:
Triple DES Beim Triple DES verschl¨
usselt man den Klartext m zuerst normal mit DES
mit einem Schl¨
ussel k1 , anschließend entschl¨
usselt man dieses so erzeugte Chiffrat
mit einem Schl¨
ussel k2 und verschl¨
usselt das Ergebnis davon mit einem Schl¨
ussel
k3 , um das Triple-DES-Chiffrat c zu erhalten. Etwas formaler ausgedr¨
uckt:
C = DESk1 (DES−1
k2 (DESk3 (m)))
Die Entschl¨
usselung in der Mitte scheint ein wenig seltsam und hat nichts mit
¨
Sicherheit zu tun, es ist eine praktische Uberlegung.
Sind n¨amlich alle drei Schl¨
ussel
gleich, erh¨
alt man die normale DES-Verschl¨
usselung.
2-Key-3DES Der 2-Key-3DES ist im Grunde der Triple-DES, allerdings gilt k1 = k3 .
Außerdem ist der 2-Key-3DES in der Theorie nicht so sicher wie der Triple-DES.
Einen Angriff auf den 2-Key-3DES werden wir im Abschnitt 4.2 betrachten.
DES-X Beim DES-X wird nicht nur ein Schl¨
ussel k zum Betrieb des DES verwendet,
sondern auch zwei Schl¨
ussel kx , ky direkt auf den Klartext bzw. das DES-Chiffrat
addiert, um somit das DES-X-Chiffrat c zu erzeugen. Diese zus¨atzliche Addition
mit Schl¨
usseln wird auch als key whitening bezeichnet und soll die Struktur des
Klartextes zus¨
atzlich verschleiern. Das Chiffrat l¨asst sich also beschreiben per:
c = DESk (m ⊕ kx ) ⊕ ky .
17
Einen theoretischen Angriff auf DES-X werden wir im Abschnitt 4.4 betrachten.
Frugal DES-X Der Frugal DES-X ist eine Vereinfachung von DES-X, es gilt n¨amlich f¨
ur
die verwendeten Schl¨
ussel kx = ky .
18
4 Meet-in-the-Middle, Slide-Attack &
Related-Key-Attack
Bei der generellen Angriffsstrategie gegen rundenweise Blockchiffren versucht man, Zwischenergebnisse zu berechnen bzw. zu approximieren, um damit einzelne Rundenschl¨
ussel
anzugreifen. Dies kann auf verschiedene Weisen erfolgen, so versucht man z. B. in gewisser
Form beim Meet-in-the-Middle-Ansatz ein großes Problem (ein zu großer Schl¨
usselraum)
in mehrere kleinere zu zerlegen. Man kann aber auch die Selbstgleichheit von Verschl¨
usselungsrunden ausnutzen, wie dies bei den Slide-Attacks geschieht oder einen einfachen, sich wiederholenden Aufbau einer Runden- bzw. Teilschl¨
usselgenerierung als Ansatzpunkt w¨
ahlen, wie dies bei den Related-Key-Attacks der Fall ist.
4.1 Meet-in-the-Middle gegen 2DES
Bei einem Meet-in-the-Middle-Angriff versucht man Zwischenergebnisse beim Verschl¨
usseln (Vorw¨
artsschritt) und Entschl¨
usseln (R¨
uckw¨artsschritt) zu finden, die gleich sind.
F¨
ur die einzelnen Schritte probiert man einfach alle m¨oglichen Schl¨
ussel durch (brute
force). Findet man ein passendes Zwischenergebnis, hat man sich also in der Mitte getroffen, ist es sehr wahrscheinlich, dass die per Ausprobieren gefundenen Schl¨
ussel f¨
ur
die einzelnen Schritte zusammen den gesuchten Schl¨
ussel ergeben. Dies wollen wir nun
ausf¨
uhrlicher am 2DES demonstrieren. Das Chiffrat bei 2DES ergibt sich zu
c = DESk2 (DESk1 (m))
und die Struktur der Verschl¨
usselung ist in Abbildung 4.1 zu sehen. Es wird einfach die
DES-Verschl¨
usselung zwei Mal mit unterschiedlichen Schl¨
usseln auf den Klartext bzw.
das Zwischenergebnis ausgef¨
uhrt.
m
k1
k2
E1
E2
c
Abbildung 4.1: 2DES
W¨
urden wir nun die Zwischenergebnisse (nach E1 ) kennen, k¨onnten wir die Schl¨
ussel einzeln per brute force herausfinden. Auf diese Weise wollen wir nun, wie zuvor beschrieben,
die Verschl¨
usselung brechen.
19
Vorgehen (Known-Plaintext-Attack)
Mit den bekannten Klartext-Chiffrat-Paaren m1 , c1 und m2 , c2 kann man nun einen
Angriff ausf¨
uhren. Zuerst berechnet man mit einem beliebig gew¨ahlten Schl¨
ussel ausgehend von den bekannten Klartexten m1 , m2 m¨ogliche Zwischenchhiffrate, f¨
uhrt also
nur eine einfache DES-Verschl¨
usselung aus. Anschließend f¨
uhrt man mit einem anderen Schl¨
ussel eine Entschl¨
usselung der bekannten Chiffrate c1 , c2 durch. Sollten die bei
Ver- und Entschl¨
usselung erhaltenen Zwischenwerte identisch sein, hat man sich in der
Mitte getroffen, also die korrekten Schl¨
ussel verwendet. Dabei ben¨otigte man jedes Mal
nur einen Aufwand in der Gr¨
oße eines einzelnen Schl¨
ussels und nicht der Summe ihrer
Gr¨oße; man hat den Aufwand also halbiert. Man kann den Angriff algorithmisch in drei
Schritten beschreiben:
1. Vorw¨
artsschritt: F¨
ur alle k = 0, . . . , 256 − 1 tabelliere
[DESk (m1 ), DESk (m2 ), k]
2. Sortierschritt: Sortiere die Tabelle lexikographisch.
3. R¨
uckw¨
artsschritt: F¨
ur alle k = 0, . . . , 256 − 1 berechne
−1
DES−1
k (c1 ), DESk (c2 )
und suche nach Treffern in der sortierten Tabelle per bin¨arer Suche.
Aufwand
Es werden nur zwei Klartext-Chiffrat-Paare ben¨otigt aber als Speicher ben¨otigt man
ungef¨ahr 260 Byte, also Exabyte, schnellen Speicher. Das Sortieren u
¨ber FestplattenZugriffszeiten w¨
are viel zu langsam. Der Aufwand f¨
ur die einzelnen Schritte lautet:
• Vorw¨
artsschritt: ≈ 2 · 256 DES-Operationen.
• Sortierschritt: ≈ 56 · 256 Vergleiche.
• R¨
uckw¨
artsschritt: ≈ 2 · 255 DES-Operationen (nur 255 , da man nach der H¨alfte
ungef¨
ahr fertig ist), plus ≈ 56 · 256 (Tabellen-)Vergleiche.
Eine Variante des Angriffs kommt mit weniger Speicher aus, aber das Produkt aus Laufzeit und Speicher ist im Wesentlichen konstant. L¨asst man z. B. das letzte Byte in der
Tabelle weg, wird diese kleiner, man hat aber mehr falsche Treffer (false positive), die
man genau nachpr¨
ufen muss.
4.2 Advanced Meet-in-the-Middle gegen 2Key-3DES
Der DES, welcher ja schon fr¨
uh f¨
ur seine geringe Schl¨
ussell¨ange kritisiert wurde, sollte
durch die Verwendung von zwei- bzw. sogar dreifacher Verschl¨
usselung sicherer gemacht
werden. Allerdings wurde in [MH81] bemerkt, dass dieser Zuwachs an Sicherheit nicht
unbedingt so groß wie erhofft ist und es wurde auch gleich ein Angriff auf den 2Key-3DES
vorgestellt. Mit einer dreifachen Ausf¨
uhrung des DES kann man nun keine Zwischenwerte
20
mehr direkt berechnen und vergleichen. Zur Erinnerung: Bei 2Key-3DES l¨asst sich die
Verschl¨
usselung eines Klartextes m darstellen als
c = DESk1 (DES−1
k2 (DESk1 (m)))
oder u
¨ber Zwischenwerte Z1 , Z2 als
Z1 = DESk1 (m), Z2 = DES−1
k2 (Z1 ), c = DESk1 (Z2 ).
W¨are der erste Zwischenwert Z1 bekannt, k¨onnte man den 2Key-3DES wie den 2DES
angreifen. Wie kommt man aber zu diesem Zwischenwert? Man w¨ahlt ihn einfach selbst.
Setzt man z. B. Z1 = 0 und berechnet f¨
ur alle m¨oglichen Schl¨
ussel k nun DES−1
k (0),
erh¨alt man alle m¨
oglichen Klartexte m k , deren erster Zwischenwert eben null w¨are.
W¨ahlt man als Angriffsart eine Chosen-Plaintext-Attack, kann man sich diese selbst
erstellten Klartexte zu den passenden Chiffraten c k verschl¨
usseln lassen. Die Menge aller
Klartexte m k kann man auch als die Menge aller zweiten Zwischenwerte Z2 auffassen,
da f¨
ur diese die gleiche Berechnung, die DES-Entschl¨
usselung, durchgef¨
uhrt wird. Man
rechnet die Chiffrate ci nun zu den zweiten Zwischenwerten Z2 zur¨
uck per DES−1
i (ci ).
Findet man einen Wert, der mit einem Klartext mj u
ussel
¨bereinstimmt, lauten die Schl¨
k1 = i, k2 = j. Mit k1 = i hat man n¨amlich sowohl den Klartext aus dem selbst gew¨ahlten
ersten Zwischenwert Z1 als auch den zweiten Zwischenwert Z2 aus dem erfragten Chiffrat
errechnet und da die Menge der Klartexte auch die Menge der zweiten Zwischenwerte
darstellt, liefert ein u
ussel k2 = j. Diesen Angriff
¨bereinstimmendes mj den zweiten Schl¨
wollen wir nun etwas formaler festhalten.
Vorgehen (Chosen-Plaintext-Attack)
Als erster Zwischenwert wird 0 . . . 0 gew¨ahlt. Der Angriffsablauf, mitsamt einigen im
Folgenden verwendeten Bezeichnungen, ist in Abbildung 4.2 visualisiert.
m
DES
k1
0...0
DES−1
Pj = Bi
k2
DES
ck
c
k1
Abbildung 4.2: Advanced Meet-in-the-Middle bei 2Key-3DES
1. F¨
ur alle m¨
oglichen Schl¨
ussel k: Tabelliere Pk := DES−1
k (0 . . . 0) samt verwendetem
Schl¨
ussel und einer Markierung Mitte“, also
”
(Pk , k, Mitte).
(Dies liefert sowohl alle zweiten Zwischenwert als auch alle Klartexte, die zu dem
ersten Zwischenwert 0 . . . 0 f¨
uhren.)
21
2. F¨
ur alle k: Erfrage Chiffrate c k zu Pk .
3. F¨
ur alle k: Tabelliere
(Bk , k, Ende)
mit Bk := DES−1
k (c k ).
4. Verbinde die beiden Tabellen und sortiere diese gemeinsame Liste nach dem ersten
Feld. Nun suche zwei aufeinanderfolgende identische Eintr¨age im ersten Feld, also
Bi = Pj aus (Bi , i, Ende) und (Pj , j, Mitte). Damit hat man einen Schl¨
usselkandidat der Form k1 = i, k2 = j gefunden. (Die Markierungen Mitte“ bzw. Ende“
”
”
lassen einen hierbei wissen, welcher der gefundenen Werte i, j der erste bzw. zweite
Schl¨
ussel ist, was man nat¨
urlich ohne Markierungen einfach testen k¨onnte).
5. Teste den Schl¨
usselkandidat an einigen Klartext-Chiffrat-Paaren.
Aufwand
Dieser Angriff ben¨
otigt ungef¨
ahr 256 Verschl¨
usselungsanfragen und hat ansonsten folgenden Ressourcenaufwand:
• Rechenaufwand: ≈ 2 · 256 DES-Operationen + ≈ 57 · 257 Sortier-Aufwand
• Speicherbedarf: ≈ 260 Byte
4.2.1 Eine Variante per Known-Plaintext-Attack
Bei einer anderen Form dieses Angriffs werden in [OW06] zuf¨allige Werte f¨
ur den Zwischenwert Z1 durchprobiert (anstatt nur Z1 = 0 . . . 0 wie zuvor zu betrachten), bis man
eine passende Wahl f¨
ur Z1 getroffen hat:
1. Die als gegeben angenommenen n Klartext-Chiffrat-Paare (mi , ci ) werden in einer
Tabelle gespeichert, sortiert bzw. gehasht nach dem Klartext.
2. W¨
ahle ein zuf¨
alliges Z1 . F¨
ur alle m¨oglichen Schl¨
ussel k1 :
a) Berechne m = DES−1
k1 (Z1 ).
b) Suche ein zu m passendes mi in der Tabelle, falls dies vorhanden sein sollte,
berechne Bi = DES−1
usselk1 (ci ) und tabelliere den Zwischenwert Bi und Schl¨
kandidat k1 in einer zweiten Tabelle.
3. F¨
ur alle k2 :
a) Berechne Pj = DES−1
k2 (Z1 )
b) Suche nach einem zu Pj passenden Bi in der zweiten Tabelle. Falls dies vorhanden sein sollte, sind die in den Tabellen gespeicherten k1 , k2 Schl¨
usselkandidaten.
4. Teste die Schl¨
usselkandidaten mithilfe der Klartext-Chiffrate-Paare auf Korrektheit. Sollte keiner gefunden werden, gehe zu Schritt 2.
22
Der Aufwand lautet dann bei n Klartext-Chiffrat-Paaren:
• Rechenaufwand: ≈ (256 ) · (264 /n) = 2120 /n [= 2120−log n ], also die Anzahl aller Schl¨
usselkombinationen mal der wahrscheinlichen Anzahl an zu probierenden
Werten f¨
ur Z1 bis man einen Treffer erhalten sollte.
• Speicherbedarf: ≈ n
4.3 Slide-Attack
Bruce Schneier bemerkte: Except in a few degenerate cases, an algorithm can be made
”
arbitrarily secure by adding more rounds.“ Und einen solchen simplen, etwas dege”
nerierten“ Algorithmus wollen wir nun einf¨
uhrend analog zu [BW00] betrachten und
daran die Idee des Slide-Angriffs erkl¨aren. Ist n¨amlich ein solcher Angriff m¨oglich, kann
man die Chiffre interessanterweise nicht wieder durch das bloße Hinzuf¨
ugen von mehr
Runden sicher machen. Man nutzt n¨amlich die Selbst¨ahnlichkeit einer Chiffre aus und
vergleicht diese mit sich selbst bei vorangeschrittener Bearbeitung (also z. B. um eine
Runde versetzt).
Gegeben sei eine Chiffre wie sie in Abbildung 4.3 zu sehen ist, bei der die gleiche Funktion mehrfach hintereinander mit gleichem Schl¨
ussel auf dem Klartext ausgef¨
uhrt wird.
Hierbei wird angenommen, dass eine Key-Recovery gegen f praktikabel ist (d. h. um den
Schl¨
ussel k zu berechnen gilt, dass der Aufwand daf¨
ur um einiges kleiner als 2|k| ist).
m
k
k
f
f
k
...
f
c
Abbildung 4.3: Verschl¨
usselung mit gleichbleibender Funktion f und Schl¨
ussel k
Idee/Ziel
Man sucht ein slid pair“, welches so heißt, da man im Bearbeitungspfad eine Stelle nach
”
rechts gerutscht“ ist. Dieses slid pair lautet:
”
(m, c), (m 0 , c 0 ) mit m 0 = fk (m), c 0 = fk (c).
Die Verschl¨
usselung von m zu c unterscheidet sich also von der Verschl¨
usselung von m 0
zu c 0 nur dadurch, dass letzteres ein Mal mehr unter dem gleichen Schl¨
ussel bearbeitet
wird, also schon eine Runde weiter ist.
Vorgehen
1. F¨
ur je zwei Klartext-Chiffrat-Paare (m, c), (m 0 , c 0 ) berechne einen Schl¨
ussel k, so
dass m 0 = fk (m) gilt und teste, ob c 0 = fk (c) gilt.
23
2. Falls ja, wurde ein guter Kandidat gefunden (es k¨onnte ja sein, dass ein Schl¨
ussel
nur gerade f¨
ur dieses Paar geklappt hat). Man testet nun, ob es ein false positive
ist, indem man den Schl¨
ussel an anderen Paaren testet.
Aufwand
Bevor wir den Aufwand genauer besprechen, ist es hilfreich das Geburtstags-Paradoxon
zu erkl¨aren. Dieses besagt, dass die Wahrscheinlichkeit p, in einer Gruppe von n Personen mindestens zwei zu finden, die den gleichen Geburtstag haben, u
¨berraschend hoch
ist. Es gibt ja auch immerhin n(n − 1)/2 m¨ogliche Paare zu betrachten. Um das Paradoxon besser zu verstehen, betrachten wir erstmal die Gegenwahrscheinlichkeit dazu.
365−(n−1)
364
Diese lautet 1−p = 365
, da die Wahrscheinlichkeit, dass die erste unter365 · 365 · · ·
365
suchte Person mit den bisherigen untersuchten keinen Geburtstag teilt 1 = 365
365 ist und
die Wahrscheinlichkeit, dass die zweite untersuchte Person keinen Geburtstag mit den
bisher untersuchten teilt, dementsprechend um einen Tag verringert ist, etc. F¨
ur n = 23
Personen gilt schließlich p ≈ 1/2. In [KL07] Appendix A.4 wird diese Wahrscheinlichkeit
p verallgemeinert, indem man q Elemente aus einer Menge von N betrachtet:
Lemma (Untere Grenze f¨
ur p): W¨ahlt man q Elemente yi , . . . , yq aus einer Menge der
Gr¨oße N (mit N fest gew¨
ahlt) uniform, unabh¨angig und zuf¨allig aus, dann gilt f¨
ur die
Wahrscheinlichkeit p, dass es von einander verschiedene i, j mit yi = yj gibt, folgendes:
p≤
q2
.
2N
√
Lemma (Obere Grenze f¨
ur p): W¨ahlt man q ≤ 2N Elemente yi , . . . , yq aus einer
Menge der Gr¨
oße N (mit N fest gew¨ahlt) uniform, unabh¨angig und zuf¨allig aus, dann
gilt f¨
ur die Wahrscheinlichkeit p, dass es von einander verschiedene i, j mit yi = yj gibt,
folgendes:
q(q − 1)
p≥
.
4N
Betrachtet und analysiert√man diese beiden oberen und unteren Grenzen zusammen,
zeigen diese, dass f¨
ur q ≤ N , die Wahrscheinlichkeit
f¨
ur eine Kollision Θ(q 2 /N ) lautet.
√
Alternativ kann man sagen, dass f¨
ur q = Θ( N ) die Wahrscheinlichkeit f¨
ur eine Kollision
konstant ist. Mit diesem Vorwissen, k¨onnen wir nun den Aufwand besprechen:
• Es sind nach dem Geburtstags-Paradoxen bei einer Blockl¨ange von n Bit h¨ochstens
ungef¨
ahr 2n/2 Klartext-Chiffrat-Paare n¨otig.
• Oft reichen aber auch schon weniger Paare, da man z. B. bei einer Feistel-Chiffre
mit immer demselben Rundenschl¨
ussel zu einer Nachricht m = (L, R) ein passendes
m 0 = (R, fk (R) ⊕ L) suchen kann und der Aufwand nun nur noch ungef¨ahr 2n/4
betr¨
agt, da die halbe Nachricht fest ist (so kann man z. B. entweder L oder R auf
null setzen).
24
4.4 Advanced Slide-Attack gegen DES-X
In [BW00] wird ein fortgeschrittener Angriff mit der Slide-Methode vorgestellt, welcher
im Folgenden genauer erkl¨
art wird. Beim DES-X wird nicht mehrfach verschl¨
usselt,
so dass zun¨
achst eine Slide-Attack nicht einsetzbar scheint. H¨angt man aber eine Verund eine Entschl¨
usselung leicht u
¨berlappend aneinander, so ist die Technik trotzdem
anwendbar. Dieses Vorgehen wird in [BW00] als twist“ bezeichnet. Das Chiffrat bei
”
DES-X l¨
asst sich wie zuvor beschrieben darstellen als c = DESk (m ⊕ kx ) ⊕ ky und der
Klartext somit als m = DES−1
k (c ⊕ ky ) ⊕ kx .
Idee/Ziel
Man versucht slid pairs“ (m, c), (m0 , c0 ) zu finden, die die Eigenschaft c ⊕ c0 = ky
”
erf¨
ullen. Dadurch erhalten wir eine Gegen¨
uberstellung der Ver- und der Entschl¨
usselung
beim DES-X, wie sie in Abbildung 4.4 veranschaulicht wird. F¨
ur jedes slid pair gilt:
−1 0
m = kx ⊕ DES−1
k (c ⊕ ky ) = kx ⊕ DESk (c )
−1
0
m0 = kx ⊕ DES−1
k (c ⊕ ky ) = kx ⊕ DESk (c).
Daraus ergibt sich folgendes Suchkriterium f¨
ur slid pairs:
−1 0
0
m ⊕ DES−1
k (c) = m ⊕ DESk (c ).
m
kx
k
E
c0
c0
ky
c
c
k
D
kx
m0
Abbildung 4.4: DES-X: Sliding with a twist“
”
Vorgehen (Known-Plaintext-Attack)
Mithilfe dieses Suchkriteriums und einer Menge von Klartext-Chiffrat-Paare (m, c), muss
man folgendes f¨
ur alle Schl¨
ussel k durchf¨
uhren:
25
−1 0
0
1. Suche (m, c), (m0 , c0 ), so dass m ⊕ DES−1
k (c) = m ⊕ DESk (c ):
Sortiere die gegebenen Paare (m, c) nach dem Wert H(m ⊕ DES−1
k (c)), wobei H
eine Hashfunktion ist. (Man kann diesen Hashwert als einen Index in ein Array
ansehen, der einem angibt, wohin man das zugeh¨orige Nachrichten-Chiffrat-Paar
speichern muss.) Passende Paare ergeben nun eine Kollision.
2. Falls eine Kollision und somit ein slid pair gefunden wurde, setze ky = c ⊕ c0
und kx = m ⊕ DES−1
ussel (k, kx , ky ) auf
k (c ⊕ ky ). Anschließend teste den Schl¨
verschiedenen Paaren auf Korrektheit.
Aufwand
Es werden ungef¨
ahr 264/2 Klartext-Chiffrat-Paare ben¨otigt (hierbei entsprechen die 64
Bit nat¨
urlich der DES-Blockl¨
ange). Dies sind etwa 64 GByte, also eine mit einem u
¨blichen
Rechner durchaus handhabbare Datenmenge. Der im Folgenden erl¨auterte Aufwand betr¨agt insgesamt viel weniger als ein Angriff per brute force und das zuvor beschriebene
Vorgehen ist dar¨
uber hinaus auch noch parallelisierbar.
• Je Schl¨
usselkandidat ben¨
otigt man ≈ 232 DES-Operationen (also f¨
ur alle Paare)
32
plus ≈ 2 Sortieraufwand (normalerweise n log(n), aber f¨
ur uns sind ja nur die
Kollisionen wichtig).
• Gesamt ergibt dies ≈ 288 (= 256 · 232 , wobei die 256 f¨
ur brute force gegen den
32
Schl¨
ussel und die 2 f¨
ur die Sortierung aufgewendet werden).
4.5 Related-Key-Attack am Beispiel LOKI89
Ein Related-Key-Attack ist eine Angriffstechnik gegen Chiffren mit einer Rundenschl¨
usselfunktion, d. h. einer Funktion, die aus dem eigentlichen (Haupt-)Schl¨
ussel f¨
ur jede
Runde einen Teilschl¨
ussel erstellt, die als schwach bezeichnet werden kann. Die Praxisrelevanz dieser Angriffsform zeigt sich daran, dass damit Wired Equivalent Privacy (WEP),
welches zur Verschl¨
usselung von WLANs verwendet wurde, gebrochen werden konnte.
In [Bih94] wird ein Angriff auf das Verschl¨
usselungsverfahren LOKI89 vorgestellt. Die
Idee ist die Nutzung von Selbst¨
ahnlichkeiten im Schaltbild. Aus dem Rundenschl¨
ussel der
vorherigen Runde wird auf immer gleiche Weise (per Shift und H¨alften-Vertauschung)
ein neuer erstellt. Gegeben einen Schl¨
ussel, kann man alle Rundenschl¨
ussel eine Runde
zur¨
uckdrehen und erh¨
alt neue, g¨
ultige Rundenschl¨
ussel, die aus einem anderen Schl¨
ussel
abgeleitet werden k¨
onnen (related keys). Dies wird in Abbildung 4.5 veranschaulicht;
hierbei vertauscht die Funktion swap“ die linke mit der rechten H¨alfte der Eingabe und
”
ROL12“ f¨
uhrt eine Bitrotation um 12 Positionen nach links durch.
”
26
m = (ml , mr )
k = (kl , kr )
kl
k1
ml ⊕ kl
kr
m0
ROL12
F
k0
k2
u
v
u
ROL12
F
..
.
k16
0 =k
k15
16
ROL12
F
F
y
x
k10 = k2
F
..
.
..
.
v
y
x
0
k16
swap(k)
c
F
swap(k 0 )
c0
Abbildung 4.5: LOKI89 mit Rundenschl¨
usseln (links) und eine Runde versetzt (rechts)
LOKI89 verwendet eine Schl¨
ussell¨
ange von 64 Bit und eine Blockl¨ange von 64 Bit. Die
ersten beiden Rundenschl¨
ussel ergeben sich aus dem Hauptschl¨
ussel k = (kl , kr ) per
(k1 , k2 ) = (kl , kr ).
Die restlichen Rundenschl¨
ussel der Runden 3 bis 16 erh¨alt man f¨
ur die i-te Runde folgendermaßen:
ki = ROL12 (ki−2 ).
Alle gerade Runden haben Rundenschl¨
ussel, die sich Bits teilen (bzw. eine gemeinsame
Vergangenheit haben), ebenso alle ungeraden.
27
F¨
ur ein slid pair bei LOKI89 gelten folgende Gleichungen (wobei die farbigen Kreise
u, v, x, y Verweise auf die Abbildung 4.5 sind). Der Schl¨
ussel k wird, wenn man ihn nach
einer Runde der Rundenfunktion betrachtet, zu folgendem Wert:
k 0 = (kr , ROL12 (kl ))
(4.1)
Die linke und rechte H¨
alften des Klartextes sind nach einer Runden mit Schl¨
ussel k
0
identisch zu denen nach der initialen Schl¨
usseladdition mit Schl¨
ussel k (also vor der
ersten Runde), n¨
amlich:
m0 ⊕ k 0 = (mr ⊕ kr , ml ⊕ kl ⊕ F (mr ⊕ kr ⊕ kl )
| {z } |
{z
u
(4.2)
}
v
Analog gilt diese Beziehung bez¨
uglich der Chiffrate:
c0 ⊕ swap(k 0 ) = (cr ⊕ kl ⊕F (cl ⊕ kr ⊕ kl ), cl ⊕ kr ))
| {z }
(4.3)
| {z }
y
x
Vorgehen ( Chosen Key Chosen Plaintext“-Attack)
”
Die simple, selbst¨
ahnliche Rundenschl¨
usselfunktion erm¨oglicht einen Angriff u
¨ber die
Beziehung von Rundenschl¨
usseln mithilfe der zuvor vorgestellen Gleichungen. Es gilt
zu bemerken, dass bei einer Chosen-Key-Attack die Relationen zwischen unbekannten
Schl¨
usseln und nicht die Schl¨
ussel selbst gew¨ahlt werden; letzteres w¨are nat¨
urlich trivial.
1. W¨
ahle k 0 = (kr , ROL12 (kl )). k 0 entspricht also k um eine Runde weitergeschaltet.
2. W¨ahle 216 zuf¨
allige Klartexte m mit gleicher rechter H¨alfte (m = (∗, m)).
16
W¨ahle 2 zuf¨
allige Klartexte m0 mit derselben linken H¨alfte (m0 = (m, ∗)).
(Es reichen 216 , da man die H¨alfte des Klartextblocks gleich l¨asst (64/2 = 32) und
noch das Geburtstagsparadoxon verwendet (32/2 = 16).)
3. Erfrage 216 Chiffrate c = Enck (m) und analog c0 = Enck0 (m0 ).
4. Suche m, m0 , so dass cl = c0r gilt. Dies ist eine notwendige Voraussetzung f¨
ur ein
slid pair nach (4.3).
5. Suche kr ⊕ kl , so dass
m0r ⊕ c0l = ml ⊕ F (mr ⊕ kr ⊕ kl ) ⊕ cr ⊕ F (cl ⊕ kr ⊕ kl ).
Mit den Gleichungen (4.1), (4.2) und (4.3) erh¨alt man eine Verbindung von den
zwei Klartexten und Chiffraten des slid pairs. Addiert man diese wie oben, ist die
einzige Unbekannte kr ⊕ kl .
6. Berechne k = (kl , kr ) mittels eines LGS durch (4.1), (4.2)
28
Aufwand
Das Geburtstagsparadoxon besagt, dass mit einer signifikante Wahrscheinlichkeit ein slid
pair existiert und die Wahrscheinlichkeit f¨
ur ein false positive in Schritt 4 betr¨agt jeweils
ungef¨ahr 1/232 . Weitere Aufw¨
ande sind:
• 217 Verschl¨
usselungsanfragen (Schritt 3)
• ≈ 216 f¨
ur Suche nach slid pair (Schritt 4)
• ≈ 232 f¨
ur Bestimmung von kr ⊕ kl . (Dies w¨are schneller mittels einer DifferenzTabelle f¨
ur F durchf¨
uhrbar, wie wir sie im Abschnitt 6 kennen lernen werden.)
29
5 Lineare Kryptoanalyse
Bei der linearen Kryptoanalyse wird versucht, lineare Abh¨angigkeiten innerhalb des Verschl¨
usselungssystems zu finden bzw. Ann¨aherungen daran, die vielleicht sogar nur mit
einer gewissen Wahrscheinlichkeit gelten. Diese Abh¨angigkeiten bzw. Approximationen
werden wir im Folgenden als lineare Approximation bezeichnen. Zuerst werden dazu
statistische lineare Beziehungen zwischen den Eingabe- und Ausgabebits der inneren
Funktionen aufgestellt, z. B. jeder S-Box. Diese Beziehungen werden kombiniert und auf
den gesamten Algorithmus ausgeweitet, um eine lineare Approximation des gesamten
Algorithmus ohne Zwischenwerte zu erhalten.
5.1 FEAL-4
Aufgrund der Bedenken bez¨
uglich der Sicherheit von DES kam es zur Entwicklung verschiedener alternativer Kryptosysteme, welche den DES in Sicherheit und Geschwindigkeit u
¨bertreffen sollten. Eine dieser Entwicklungen ist der Fast Encryption Algorithmus (FEAL), welcher von den Japanern A. Shimizu und S. Miyaguchi bei dem japanischen Unternehmen NTT entwickelt wurde und in seiner ersten Fassung vier Verschl¨
usselungsrunden verwendet, warum man ihn auch FEAL-4 nennt. Zwar ist FEAL-4
wirklich schneller als der DES, allerdings wurde schon im gleichen Jahr, in dem der
Algorithmus bei der EUROCRYPT’87 ¨offentlich vorgestellt wurde, ein starker Angriff
ver¨offentlicht. Wir wollen uns nun der Beschreibung des Aufbaus von FEAL-4 widmen.
Abbildung 5.1 zeigt den Aufbau von FEAL-4, welcher wie DES eine Feistel-Struktur
aufweist und Abbildung 5.2 zeigt die F -Funktion, welche in jeder der vier Runden aufgerufen wird. Dabei verschieben die darin befindlichen S-Boxen S0 , S1 die modulo 256
addierten Eingaben zyklisch um zwei Bits nach links, genauer:
Si (A, B) = ROL2 (A + B + i mod 256).
Der 64-Bit-Schl¨
ussel wird zu 4 Rundenschl¨
usseln mit jeweils 16 Bit umgewandelt, mithilfe von XOR- und Vertauschungsoperationen. Bez¨
uglich der F -Funktion konnte man
sehr starke Abh¨
angigkeiten zwischen den Ein- und Ausgabebits herstellen: Eine lineare
Charakteristik gibt dabei an, dass die Parit¨at einer bestimmten Menge von Eingabebits
und Ausgabebits mit einer bestimmten Wahrscheinlichkeit gerade ist. Bei S0 (A, B) ist
die Parit¨
at der Eingabebits A[0], B[0] (hierbei gibt A[0] das erste Bit von A an) und des
Ausgabebits S[2] immer gerade, bei S1 dementsprechend ungerade. Hiermit kann eine
30
ml
mr
32 Bit
k1
L0
F0
F
16 Bit
B0
R0
B1
R1
B2
R2
B3
R3
k2
L1
F1
F
k3
L2
F2
F
k4
L3
F3
F
cl
cr
Abbildung 5.1: Struktur von FEAL-4
lineare Approximation der gesamten F -Funktion realisiert werden (die Auflistung erfolgt
von der obersten S-Box mit Eingang B[0..7] zur untersten):
F [2] = B[0] ⊕ F [8]
(5.1)
F [10] = 1 ⊕ B[0] ⊕ B[8] ⊕ k[0] ⊕ B[16] ⊕ B[24] ⊕ k[8]
(5.2)
F [18] = F [8] ⊕ B[16] ⊕ B[24] ⊕ k[8]
(5.3)
F [26] = 1 ⊕ F [16] ⊕ B[24]
(5.4)
In den Gleichungen (5.2) und (5.3) geht der Schl¨
ussel ein, dieser ist zwar unbekannt
aber fest. Also versucht man alle Schl¨
ussel per brute force, schaut ob die Parit¨at konstant bleibt (somit w¨
are ein Schl¨
usselkandidat gefunden) oder nicht. Diese Charakteristik
f¨
ur F k¨onnen zu Charakteristiken f¨
ur die ersten drei Runden erweitert werden. In Abbildung 5.3 (b) ist eine m¨
ogliche erweiterte Charakteristik samt Herleitung angegeben. Die
31
F [0..7]
8 Bit
B[0..7]
S0
k[0..7]
S1
F [8..15]
B[8..15]
S0
F [16..23]
B[16..23]
k[8..15]
F [24..31]
S1
B[24..31]
Abbildung 5.2: F -Funktion von FEAL-4
Struktur von FEAL-4 ist zum leichteren Nachvollziehen der Herleitung direkt gegen¨
uber
gestellt.
Diese Analyse der F -Funktion kann man zu einer Analyse von mehreren Runden erweitern: Sei f¨
ur gegebene Indexmengen X, Y, Z die Parit¨at B[X] ⊕ F [Y ] ⊕ K[Z] = c, also
konstant. Verwendet man diese Gleichung in der ersten und dritten Runde und berechnet damit R1 [Y ] einmal aus den Eing¨angen (ml , mr ) und einmal aus den Ausg¨angen der
dritten Runde (L3 , R3 ), so ergibt sich:
ml [X, Y ] ⊕ mr [X] ⊕ k1 [Z] ⊕ c = ml [Y ] ⊕ R0 [X] ⊕ k1 [Z] ⊕ c
1)
= L0 [Y ] ⊕ F0 [Y ]
= R1 [Y ]
= R3 [Y ] ⊕ F2 [Y ]
2)
= R3 [Y ] ⊕ R2 [X] ⊕ k3 [Z] ⊕ c
= R3 [Y ] ⊕ L3 [X] ⊕ k3 [Z] ⊕ c.
(Hierbei stellte man bei 1) einfach R0 [X] ⊕ F0 [Y ] ⊕ k1 [Z] = c nach F0 [Y ] um und bei 2)
R2 [X] ⊕ F2 [Y ] ⊕ k3 [Z] = c nach F2 [Y ].)
Dies liefert die Gleichung f¨
ur drei Runden:
ml [X, Y ] ⊕ mr [X] ⊕ R3 [Y ] ⊕ L3 [X] = k1 [Z] ⊕ k3 [Z] .
|
{z
}
Schl¨
ussel konstant
Attacke (Known-Plaintext-Attack)
Wie zuvor besprochen kann man aufbauend von einer einfachen Analyse der Ein- und
Ausgabebits des Inneren von FEAL-4, also der F -Funktion, eine Analyse u
¨ber drei Runden erstellen. Wobei man dies aufgrund der symmetrischen Struktur jeweils ausgehend
32
ml
L0
mr
F0
F
F0 [2] = B0 [0] ⊕ F0 [8]
R0
B0
ml [0] ⊕ mr [0]
L1
F1
L2
F2
L3
F3
F
F
F
R1
B1
ml [2] ⊕ R1 [2]
B2
R2
B3
R3
R3 [2] ⊕ F2 [2]
ml [8] ⊕ R1 [8]
R3 [8] ⊕ F2 [8]
B2 [0] ⊕ F2 [8]
R2 [0]
cl
cr
(a) FEAL-4-Struktur
⇒ ml [0, 2, 8] ⊕ mr [0] ⊕ R3 [2, 8] ⊕ R2 [0] = 0.
(b) Herleitung einer erweiterte Charakteristik
Abbildung 5.3: FEAL-4: Struktur und Charakteristik
vom Klartext (Verschl¨
usselung) oder vom Chiffretext (Entschl¨
usselung) betrachten kann.
Mit diesem Vorwissen ist nun eine Known-Plaintext-Attack auf den vierten (bzw. den
ersten) Rundenschl¨
ussel m¨
oglich:
1. Verschl¨
ussle einige Klartexte mit FEAL-4.
2. F¨
ur jeden Schl¨
ussel k4 :
a) Rechne alle entsprechenden Chiffrate zur¨
uck zum Zwischenergebnis nach der
3. Runde.
b) Falls die drei Runden Gleichung nicht bei allen Klartext- / Zwischenergebnissen gleich sein sollte, verwerfe den Schl¨
usselkandidat.
3. Wiederhole den Vorgang mit verschiedenen Charakteristiken, bis nur noch wenige
Kandidaten f¨
ur k4 u
¨brig sind.
4. F¨
uhre einen analogen Angriff gegen k1 durch.
5. Finde k2 und k3 mittels brute force. (Wenn k1 und k4 komplett bekannt sind, sind
diese Schl¨
ussel auch direkt berechenbar durch die Struktur der S-Boxen.)
Aufwand
Nach dieser etwas l¨
angeren Erl¨
auterung des FEAL-Aufbaus und des Angriffs, kommen
wir zu einer recht kurzen Aufwandsanalyse:
33
• Man ben¨
otigt ≈ 16 Klartext-Chiffrat-Paare (besser sind aber ≈ 20, damit k1 , k4
komplett durch lineare Analyse rekonstruierbar wird).
• Der Rechenaufwand betr¨
agt ≈ 216 (dominiert durch vollst¨andige Suche von k1 , k4 ).
5.2 DES: Lineare Analyse
Die S-Boxen bei DES sind keine linearen Funktionen. Es gibt aber Charakteristiken,
welche mit hoher Wahrscheinlichkeit gelten. Die st¨arkste Abweichung gibt es bei S5 mit
einer Wahrscheinlichkeit p = 12/64 = 0.1875. Damit l¨asst sich analog zur linearen Analyse von FEAL-4 eine Known-Plaintext-Attack auf den 4-Runden-DES durchf¨
uhren; bei
Schritt 2 wird dann jeweils gepr¨
uft, ob die Statistik stimmt (d. h. ob die Gleichung im
richtigen Verh¨
altnis ”k1 [Z] ⊕ k3 [Z] = 1¨
und ”k1 [Z] ⊕ k3 [Z] = 0”liefert – die Wahrscheinlichkeit f¨
ur einen der Ausg¨
ange ist: p2 + (1 − p)2 ).
Ist eine Charakteristik f¨
ur 2n + 1 Runden und dazu eine passende lineare Approximation
der F -Funktion bekannt, so l¨
asst sich damit eine Charakteristik f¨
ur 2n + 3 Runden
konstruieren (es seien X, Y, Z Indexmengen): Mit der gegebenen lineare Approximation
der Ein- und Ausg¨
ange der F -Boxen
F [Y ] ≈ R[X]
(5.5)
L1 [Z] ⊕ R1 [Y ] ≈ L2n [Y ] ⊕ R2n [Z]
(5.6)
und der gegebenen Charakteristik
erh¨alt man die neue Charakteristik
L0 [Y ] ⊕ R0 [X, Z] ≈ L2n+1 [X, Z] ⊕ R2n+1 [Y ].
(5.7)
(1-Runden-Charakteristiken sind trivial, da immer gilt Ri = Li+1 .)
Die Herleitung der neuen Charakteristik soll hier genauer betrachtet werden. Ausgehend
von der gegebenen Charakteristik (5.6) kommt man (mithilfe der linearen Approximation
(5.5)) zur linken Seite der neuen Charakteristik (5.7):
L1 [Z] ⊕ R1 [Y ] = R0 [Z] ⊕ R1 [Y ] = R0 [Z] ⊕ L0 [Y ] ⊕ F0 [Y ]
(5.5)
≈ R0 [Z] ⊕ L0 [Y ] ⊕ R0 [X] = R0 [X, Z] ⊕ L0 [Y ].
Dies kann man sich auch mithilfe der Abbildung 5.4 verdeutlichen. Analog kann man
zur rechten Seite von (5.7) kommen:
L2n+1 [X, Z] ⊕ R2n+1 [Y ] ≈ L2n [Y ] ⊕ R2n [Z].
Nun muss man beide Seiten nur noch mithilfe der gegebenen Charakteristik (5.6) verbinden, um zur neuen Charakteristik (5.7) zu gelangen.
34
L0
F0
L1
L2n+1
R0
F
..
F2n+1
R1
R2n+1
F
Abbildung 5.4: DES-Aufbau
Erfolgswahrscheinlichkeit
Gilt die lineare Approximation (5.5) mit Wahrscheinlichkeit p und die Charakteristik
(5.6) mit Wahrscheinlichkeit q, dann gilt die neue Charakteristik (5.7) mit Wahrscheinlichkeit
p2 q + (1 − p)2 q + 2p(1 − p)(1 − q).
Die einzelnen Summanden dieses Ausdruck wollen wir kurz erl¨autern:
• p2 q: Das Quadrat ergibt sich, da man die lineare Approximation (5.5) zwei Mal
verwendet hat, einmal f¨
ur die linke und einmal f¨
ur die rechte Seite, und q taucht
auf, da man die Charakteristik (5.6) zum Verbinden verwendete.
• (1 − p)2 q: Wenn beides gleich“ falsch ist, gilt nat¨
urlich die umgekehrte Parit¨at,
”
was aber genauso n¨
utzlich ist.
• 2p(1 − p)(1 − q): Man hat hier den Faktor 2 stehen, da entweder die erste oder
zweite Approximation falsch gewesen sein k¨onnen. War eine der Approximationen
falsch, ¨
andert sich das Bit, ist aber auch die Charakteristik falsch, wird die (falsche)
Charakteristik erf¨
ullt, gilt also.
Lemma (Piling-up Lemma): Es seien Xi mit i ∈ {1, . . . , n} unabh¨angige Zufallsvariablen, die den Wert 0 mit der Wahrscheinlichkeit pi und den Wert 1 mit Wahrscheinlichkeit
1 − pi annehmen. Dann gilt:
n
Y
1
1
P [X1 ⊕ · · · ⊕ Xn = 0] = + 2n−1
pi −
.
2
2
i=1
Man kann nun zu dieser Folgerung aus dem Piling-up Lemma kommen: Eine (2n + 1)Runden-Charakteristik, basierend auf n linearen Approximationen, welche jeweils mit
35
Wahrscheinlichkeit pi gelten, hat etwa folgende Wahrscheinlichkeit:
n
Y
1
1
+ 22n−1
pi −
2
2
i=1
2
.
Achtung: Diese Approximationen sind nat¨
urlich aufgrund des Aufbaus von DES und den
Zusammenh¨
angen zwischen den einzelnen Runden und Zwischenwerten nicht wirklich
statistisch unabh¨
angig!
Und gilt f¨
ur alle linearen Approximationen die Absch¨atzung min(pi , 1 − pi ) > , so ist
der Vorteil einer linearen Analyse sogar vernachl¨assigbar in der Rundenzahl, denn es
gilt:
2n
1
1
1 1
q < + 22n−1
−
= + (1 − 2)2n .
2
2
2 |2
{z
}
vernachl. in n
Aufwand
F¨
ur die lineare Analyse eines 16-Runden-DES werden ca. 247 Klartext-Chiffrat-Paare
ben¨otigt. Damit k¨
onnen 14 der 56 Schl¨
usselbits gefunden werden. Die verbleibenden
42 Bit des Schl¨
usels k¨
onen dannn durch vollst¨andige Suche ermittelt werden. Dieser
Angriff ist somit nat¨
urlich deutlich schneller als ein bloßer Angritt per brute force gegen
den vollen Schl¨
ussel.
36
6 Differentielle Kryptoanalyse
Bei der differentiellen Kryptoanalyse betrachtet man nicht die verschiedenen Klar- und
Chiffretexte, sondern betrachtet und tabelliert bestimmte Differenzen, meistens per XOR
ermittelt, der Klartexte, welche mit einer Wahrscheinlichkeit p zu bestimmten Differenzen der Chiffretexte f¨
uhren. F¨
ur diese Wahrscheinlichkeit p muss gelten, dass sie gr¨oßer
ist, als man es von einer zuf¨
alligen Permutation erwarten w¨
urde, so dass man aus den
Differenzen wichtige Informationen bez¨
uglich des Schl¨
ussels gewinnen kann. Diesen etwas abstrakteren Ansatz wollen wir anhand eines Beispiels f¨
ur den DES im n¨achsten
Abschnitt veranschaulichen.
6.1 DES: Differentielle Kryptoanalyse
Die Grundidee bei der differentiellen Kryptoanalyse des DES ist, dass der Schl¨
ussel hier
in den einzelnen Runden ausschließlich per XOR eingeht und sich dadurch die Differenzen von Zwischenergebnissen nicht ¨andern, man diese also unabh¨angig vom Schl¨
ussel
betrachten kann. Man tabelliert nun die m¨oglichen Eingangspaare bei gegebenen Einund Ausgangsdifferenzen bez¨
uglich der S-Boxen in einer Differenztabelle. Erh¨alt man
bestimmte Ausgabedifferenzen der S-Boxen (also mehrere Ausgaben, die man paarweise
addieren kann), kann man in der Tabelle nachsehen, welche Differenzen wohl welche Eingabepaare ben¨
otigt und daraus, wie im Folgenden erl¨autert, den Schl¨
ussel gewinnen. Die
Abbildung 6.1 verdeutlicht die Differenzbildung anhand des Signalflusses der S-Boxen
(die Differenztabelle wird mit Diff.“ abgek¨
urzt). Hierbei erweitert die Funktion Erw. die
”
4 Eingangsbits von m1 bzw. m2 auf bekannte Weise zu 6 Bits e1 bzw. e2 und jede S-Box
korrespondiert zu 6 Schl¨
usselbits k. Dadurch erhalten wir als Eingang zu den S-Boxen
sin,1 = e1 ⊕ k
bzw. sin,2 = e2 ⊕ k
und die Ausg¨
ange nennen wir dementsprechend sout,1 und sout,2 . Addiert man diese
Gleichungen zusammen, erh¨
alt man die Differenz der S-Box-Eingaben per
s0in = e0 = e1 ⊕ e2 = E(m1 ) ⊕ E(m2 ) = E(m0 ) = E(m1 ⊕ m2 )
und die Differenzen der Ausg¨
ange der S-Boxen lauten
s0out = sout,1 ⊕ sout,2 .
Die S-Boxen lassen sich dann als Differenz-Tabellen darstellen, deren Aufbau beim Angriff auf den 1-Runden-DES etwas formaler erkl¨art wird. So erh¨alt man einen vom
37
m1
m0 = m1 ⊕ m2
m2
Erw.
Erw.
⊕
e1
e2
k
sin,1 = e1 ⊕ k
Erw.
=
k
sin,2 = e2 ⊕ k
S
S
sout,1
e0 = e1 ⊕ e2
= E(m1 ) ⊕ E(m2 ) = E(m0 )
s0in = e0
Diff.
s0out = sout,1 ⊕ sout,2
sout,2
Abbildung 6.1: Differenz von Zwischenergebnissen bei DES-S-Boxen
Schl¨
ussel k unabh¨
angigen Signalfluss (e0 = s0in ). Da wir von einer Known-PlaintextAttack ausgehen werden, sind alle Texte bis auf sin,1 und sin,2 bekannt.
Attacke: 1-Runden-DES
Um bei gegebenen Differenzen m0 und s0out die Werte f¨
ur die Eing¨ange der S-Boxen
sin,1 , sin,2 zu ermitteln, erstellt man zu jeder S-Box eine Differenz-Tabelle, die die m¨oglichen Kombinationen daf¨
ur enth¨
alt. Jede Zeile i dieser 64 × 16-Tabelle entspricht einer
Eingangsdifferenz m0 = i. In der Spalte j sind alle Paare sin,1 , sin,2 eingetragen, die zu
uhren. Ist ein Paar gefunden, das den vorgegebenen
einer Ausgangsdifferenz s0out = j f¨
Differenzen entspricht, so kann man k berechnen:
sin,1 = e1 ⊕ k
⇒
k = sin,1 ⊕ e1 .
So erh¨alt man meist nur eine Menge von Schl¨
usseln, benutzt man aber mehrere Textpaare und nimmt die Schnittmenge der Schl¨
ussel-Mengen, kann man diese Menge immer
st¨arker einengen.
Attacke: 2-Runden-DES
Man kann den 1-Runden-Angriff leicht auf einen 2-Runden-Angriff erweitern, da die
einzelnen Runden separat angegriffen werden k¨onnen. Die Ein- und Ausgangspaare (sin ,
sout ) berechnen sich zu (mr , ml ⊕ cl ) bzw. (cl , mr ⊕ cr ) f¨
ur die erste und zweite Runde
wie die Abbildung 6.2 es veranschaulicht.
Attacke: 3-Runden-DES
Das Problem bei einer Erweiterung auf 3 Runden ist, dass man in keiner Runde Einund Ausgangspaare der F -Funktion direkt berechnen kann. Die L¨osung lautet nun, dass
(1)
(1)
man f¨
ur die dritte Runde eine Chosen-Plaintext-Attack mit Klartexten m1 = (L0 , R0 )
38
k1
ml
mr
F
k2
F
cl
cr
Abbildung 6.2: 2-Runden-DES
L0
L1
L2
F0
F1
F2
k1
R0
k2
R1
k3
R2
F
F
F
L3
R3
Abbildung 6.3: 3-Runden-DES
(2)
(2)
und m2 = (L0 , R0 ) mit gleichbleibender rechter H¨alfte benutzt. Die Abbildung 6.3
erleichtert die Zuordnung der im Folgenden verwendeten Bezeichnungen.
Die Eing¨
ange der letzten F -Boxen als Differenzen lauten mit den gegebenen Klartexten
(1)
(2)
(1)
(2)
(1)
(1)
(2)
(2)
(2)
(2)
(2)
R20 = R2 ⊕ R2 = L3 ⊕ L3
und die Ausg¨
ange sind
(1)
F20 = F2
(2)
⊕ F2
= R3 ⊕ L2 ⊕ R3 ⊕ L2
(1)
(1)
(1)
(1)
(1)
(2)
= R3 ⊕ L0 ⊕ F0
⊕ R3 ⊕ L0 ⊕ F0
(2)
= R3 ⊕ L0 ⊕ R3 ⊕ L0 .
Die letzte Umformung gilt, da wir gleiche rechte H¨alfte beim Klartexte gew¨ahlt haben
(1)
(2)
und somit F0 ⊕F0 = 0 erf¨
ullt ist. Die dritte Runde kann man durch diese angegebenen
39
Ein-/Ausgangs-Differenzen jetzt angreifen wie bei der 1-Runden Analyse. Die ersten
beiden Runden kann man dann (bei bekanntem k3 ) wie zuvor angreifen.
6.1.1 Angriff gegen einen 2n-Runden-DES
¨
Bei der Ubertragung
der differentiellen Kryptoanalyse auf gr¨oßere Rundenzahlen, gelangt man zu einem probabilistischen Schema. Es gibt bestimmte Eingangsdifferenzen,
die sich mit hoher Wahrscheinlichkeit nach einer 2-Runden-DES-Verschl¨
usselung wiederfinden, Charakteristiken genannt. Man ben¨otigt Charakteristiken, die u
¨ber 2 Runden
mit großer“ Wahrscheinlichkeit stabil bleiben. Ein Beispiel hierf¨
ur enth¨alt die Abbildung
”
6.4.
Wkt. = 1
19600000
0...0
0..0
F
0..0
00000000
1960..0
1960 . . . 0
1/234
0..0
F
1960 . . . 0
0...0
Abbildung 6.4: 2n-Runden-DES
Vorgehen (Chosen-Plaintext-Attack)
Mithilfe der Charakteristiken und der Annahme, dass diese bei passender Ein- und Ausgangsdifferenz auch wirklich erf¨
ullt sind, kann man einen Angriff vornehmen:
1. Erfrage Chiffrate zu Klartext-Paaren mit Differenz entsprechend der Charakteristik.
2. Verwerfe Tupel mit unpassender Ausgangsdifferenz.
3. F¨
uhre 1-Runden-Angriff (wie zuvor) gegen die letzte Runde aus, mit der Annahme,
dass dort die Charakteristik erf¨
ullt war (dies f¨
uhrt zu 18 Bits des letzten Rundenschl¨
ussels). Achtung: M¨
oglicherweise wird kein Schl¨
usselkandidat f¨
ur alle Tupel
passen, also erfolgt ein Mehrheitsentscheid.
4. Man verwendet brute force gegen die restliche 38 Schl¨
usselbits.
Wahrscheinlichkeit
Die f¨
unf rechten S-Boxen liefern bei der stabilen Charakteristik 19600000 die Differenz
0 (20 Bit), die linken drei S-Boxen liefern beliebige Werte (12 Bit). Die Wahrscheinlichkeit, dass alle 12 Bit gleich 0 sind lautet bei Gleichverteilung 2−12 . Aber mit unserer
40
Charakteristik 1/234, also ungef¨
ahr 16 Mal h¨aufiger als bei beliebiger Eingangsdifferenz
XXX00000.
Aufwand
Die ben¨
otigte Ausgangsdifferenz tritt bei einer Rundenzahl von 2n etwa einmal pro
n
234 Klartext-Paaren auf. Die Wahrscheinlichkeit, dass die Charakteristik zwei Runden
u
agt sie f¨
ur 16 Runden nat¨
urlich 234−8 . Aufgrund von
¨berlebt lautet 234−1 , somit betr¨
8
63
234 ≈ 2 ist die differentielle Kryptoanalyse damit nicht praxisrelevant f¨
ur DES, da
56
brute force schon mit 2 m¨
oglich ist. F¨
ur Verfahren mit weniger Runden, z. B. FEAL-8,
ist sie aber absolut relevant.
6.2 Skipjack
Skipjack wurde gegen Ende der 80er bzw. Anfang der 90er von der NSA unter Geheimhaltung entwickelt, scheiterte allerdings politisch und wurde schließlich 1998 ver¨offentlicht.
Der Einsatzzweck war der CLIPPER-Chip zur Sprachverschl¨
usselung. Es wurde auch
Key Escrow betrieben, d. h. der Schl¨
ussel wurde hinterlegt und unter Umst¨anden Dritten zug¨
anglich gemacht, so dass z. B. die Regierung die Kommunikation abh¨oren konnte.
Gegen eine in der Rundenzahl reduzierte Version dieser Blockchiffre werden wir nach der
Beschreibung des Aufbaus einen Angriff erl¨autern. Allerdings werden wir hier nicht wie
bei der u
¨blichen differentiellen Analyse die u
¨berdurchschnittlich auftretenden Differenzen ausnutzen, sondern die selten bzw. gar nicht m¨oglichen Paare. Schl¨
ussel, bei denen
solche unm¨
oglichen Differenzen entstehen, k¨onnen wir somit ausschließen und dadurch
die Menge an zu betrachtenden Schl¨
ussel immer weiter einschr¨anken.
Aufbau
Der Aufbau von Skipjack l¨
asst sich grob wie folgt charakterisieren:
• Vier 16-Bit-Worte w1 , . . . , w4 (also 64 Bit) werden mit einem 80-Bit-Schl¨
ussel in
32 Runden mit jeweils einem 32-Bit-Teilschl¨
ussel verschl¨
usselt.
• Die 32 Runden haben folgenden Aufbau: 8 Mal wird Regel A angewendet (siehe
Abb. 6.5), anschließend 8 Mal Regel B (siehe Abb. 6.6) und erneut 8 Mal Regel A
und 8 Mal Regel B.
• Durch das Addieren des Rundenz¨ahlers bei den Regeln wird verhindert, dass man
z. B. 2-Runden-Charakteristiken wie bei DES verwenden kann (da sich auch bei
gleicher Eingabe die Runden unterschiedlich verhalten).
41
w1
w2
G
w3
w4
Z¨
ahler
Abbildung 6.5: Regel A
w1
G
w2
w3
w4
Z¨ahler
Abbildung 6.6: Regel B
Der Ablauf von Skipjack kann auch in einer anderen Form dargestellt werden, wie es in
Abbildung 6.7 zu sehen ist: Hier ist das Schieberegister durch einen Signalfluss ersetzt
worden, so dass die jeweiligen Ergebnisse der Runden nur alle vier Takte direkt mit
dem Registerinhalt der urspr¨
unglichen Darstellung u
¨bereinstimmen. Ansonsten sind die
Zwischenergebnisse gegen¨
uber den Inhalten der Register verschoben“.
”
Die Rundenfunktion G, die bei den Regeln A und B verwendet wird, besteht aus einer Feistelchiffre mit vier Runden, bei der die jeweiligen Teilschl¨
ussel zum Signalfluss
per XOR addiert werden. Die Rundenfunktion F von G realisiert eine bijektive 8-Bit¨
Substitution. Das Problem ist der Ubergang
von Regal A zu Regel B. Normalerweise
u
¨berlebt“ ein 16-Bit-Wort nur drei Runden, hier bleibt w4 aber sieben Runden nahe”
zu unver¨
andert. Tabelle 6.1 zeigt diesen problematischen Regel¨
ubergang anhand eines
Beispiels.
Runde (Regel)
7 (A)
8 (A)
w1
G(w1 ) ⊕ w4 ⊕ 8
9 (B)
w3
16-Bit-Worte
w2
G(w1 )
G(G(w1 ) ⊕ w4 ⊕ 8)
w3
w2
G(w
)
⊕
w4 ⊕ 8 ⊕
1
G(w1 ) ⊕ 9
Tabelle 6.1: Skipjack-Regel¨
ubergang
42
w4
w3
w2
?
G
?
- j
1
?
?
j
?
Regel A
?
j
?
?
j
?
G
2
G
3
G
4
G
?
- j
5
?
?
j
?
Regel A
?
j
?
G
6
G
7
G
PP
P
P
?
j
?
?
j
G
?
j
8
1
10
?
G
Regel B
?
- j
11
?
G
?
- j
12
?
G
?
- j
13
?
G
?
j
14
?
G
?
- j
15
Regel B
?
G
?
- j
16
?
G
?
?
?
?
Abbildung 6.7: Alternative Darstellung von Skipjack (hier nur Runde 1–16, die n¨achsten
16 Runden sind bis auf die Z¨ahler identisch).
43
Differentielle Analyse
Zwei differentielle 12-Runden-Charakteristiken, die man sich anhand des Signalverlaufs
aus Abbildung 6.7 klar machen kann, lauten:
• Differenz 0X00 vor Runde 5 ⇒ Differenz XXX0 nach Runde 16
• Differenz X000 nach Runde 28 ⇒ Differenz XX0X vor Runde 17
Es kann also, wenn man beide Charakteristiken kombiniert, nie vorkommen, dass gilt:
• Eingangsdifferenz 0X00 vor Runde 5 ⇒ Ausgangsdifferenz nach Runde 28 mit
X000.
Alle solchen Rundenschl¨
ussel w¨
aren falsch. Insgesamt gilt also: Gegeben die Zwischenergebnisse (x1 , x2 , x3 , x4 ) und (x1 ⊕y, x2 , x3 , x4 ) vor Runde 29, so ist die Ausgangsdifferenz
nach Runde 29
(G(x1 ) ⊕ G(x1 ⊕ y), y, 0, 0).
|
{z
}
:=x (siehe Angriff, 3.)
Tupel mit anderer Ausgangsdifferenz als XX00 sind f¨
ur uns also irrelevant. Somit haben
wir eine differentielle Analyse der Runden 5–29 von Skipjack durchgef¨
uhrt.
Angriff (Chosen-Plaintext-Attack)
Mithilfe des Wissens u
¨ber bestimmte Differenzen, die nicht auftauchen k¨onnen, kann
man nun den m¨
oglichen Schl¨
usselraum stark einengen bzw. sogar auf den korrekten
Schl¨
ussel kommen, wenn man eine in der Rundenzahl reduzierte Version von Skipjack
betrachtet. Mit den gegebenen Differenzen f¨
ur 25 Runden werden wir nun einen Angriff
auf die Runden 5–29 vorstellen:
1. Lasse 222 Mengen mit je 216 Klartexten mit paarweiser Differenz 0X00 verschl¨
usseln. Zum Beispiel (a, b, c, d), (a, b + z, c, d) mit z ∈ 1, . . . , 216 . (216 Klartexte
ergeben per Kombination ungef¨ahr 231 m¨ogliche Paare.)
2. Behalte nur Tupel mit Ausgangsdifferenz XX00 (etwa jede zweite Menge liefert
ein Paar).
3. Teste f¨
ur alle Rundenschl¨
ussel und Chiffrat-Paare (a, b, c, d), (a ⊕ x, b ⊕ y, c, d), ob
G−1 (a) ⊕ G−1 (a ⊕ x) = y
und verwerfe entsprechende Schl¨
ussel (was m¨oglich ist, da der Schl¨
ussel ja in G
eingeht).
4. Die restlichen 48 Bit werden per brute force ermittelt.
Aufwand
Ein Rundenschl¨
ussel erf¨
ullt obige Gleichung (Schritt 3) jeweils mit der (erwarteten)
21
Wahrscheinlichkeit von ungef¨
ahr 2−16 . Daraus folgt, es bleiben etwa 232 (1 − 2−16 )2
44
21
falsche Kandidaten u
¨brig (≈ 0, 000054). Der Ausdruck 232 (1 − 2−16 )2 l¨asst sich erkl¨aren, als die Wahrscheinlichkeit daf¨
ur, dass f¨
ur alle 232 m¨oglichen Rundenschl¨
usseln
die Gleichung nicht erf¨
ullt ist (also die Gegenwahrscheinlichkeit 1 − 2−16 gilt) und zwar
f¨
ur alle 221 Paare mit Differenz XX00.
Die Aufw¨
ande f¨
ur jeden einzelnen Schritt lauten:
1. 222 · 216 = 238 (Anzahl Klartexte, die erstellt werden m¨
ussen)
2. 222 · 216 = 238 (Anzahl Klartexte, die u
uft werden m¨
ussen)
¨berpr¨
3. 221 · 232 = 253 (Man nimmt 221 = 222 /2, da nur jede zweite Menge ein Paar
liefert und 232 , da alle m¨
oglichen 32-Bit-Schl¨
ussel durchgegangen werden. Durch
trickreiches Ausnutzen der Struktur von G ist dies aber auch in ≈ 221 ·217 m¨oglich.)
4. 248 (per brute force, aber auch hier sind intelligentere Verfahren bekannt.)
Es gilt zu bemerken, dass der vollst¨andige 32-Runden-Skipjack in der Praxis noch ungebrochen ist.
45
7 AES (Advanced Encryption Standard)
Im Jahr 1997 gab es eine internationale Ausschreibung f¨
ur einen DES-Nachfolger durch
das National Institute of Standards and Technology (NIST). Die Anforderungen an den
Nachfolger lauteten:
• Eine Blockl¨
ange von 128 Bit
• Eine variable Schl¨
ussell¨
ange von 128, 192 oder 256 Bit
• Leicht implementierbar und leistungsstark, sowohl in Hardware als auch in Software
• Robust gegen alle bekannten Methoden der Kryptoanalyse, einschließlich Seitenkan¨
alen (also Angriffe gegen eine physische Implementierung)
• Patent- und lizenzfrei
Die 15 eingereichte Kandidaten wurden einem ¨offentlichen Auswahlprozess (den AESKonferenzen) unterzogen und es blieben f¨
unf Finalisten, die in Tabelle 7.1 verglichen
werden. Von den Finalisten konnte sich am Ende Rijndael durchsetzen und wurde zum
neuen Standard AES.
7.1 Aufbau und Funktionsweise
Die Blockl¨
ange von AES betr¨
agt wie gefordert 128 Bit (Rijndael in der Originalfassung
unterst¨
utzt auch 192 und 256 Bit) und die Schl¨
ussell¨ange kann 128, 192 oder 256 Bit
betragen. Die Schl¨
ussell¨
ange beeinflusst die Rundenzahl und die Bestimmung der Rundenschl¨
ussel (Key Schedule bzw. Schl¨
usselexpansion genannt). Die Anzahl der Runden
steigt mit der L¨
ange des Schl¨
ussels und es werden dementsprechend 10, 12 oder 14 Runden verwendet. Die internen Zwischenwerte, der sogennante Zustand, welcher zu Beginn
der Klartext selbst ist, und die Rundenschl¨
ussel werden als 4-zeilige Byte-Matrix und
je nach Schl¨
usselgr¨
oße mit 4, 6 oder 8 Spalten repr¨asentiert. Im Gegensatz zur FeistelStruktur des DES findet man hier eine Art Substitutions-Permutations-Netzwerk, wobei
die Substitution“ mithilfe von linearen Funktionen erfolgt.
”
Ablauf
Jede Runde l¨
auft in vier Schritten ab (alle Aktionen sind dabei invertierbar!) und die genannten Operationen werden auf den Zustand angewendet. Am Anfang und zum Schluss
gibt es noch eine spezielle Vor- bzw. Schlussrunde.
46
g
erk
un
erh
eit
Bem
Sic
h
Str
ukt
ur
En
twi
ckle
r
Don
Coppersmith
Feistel
(32 Runden)
hoch-sicher
komplexe
Struktur
(erschwert
Sicherheitsanalyse)
Ronald Rivest
Feistel
(32 Runden)
hinreichend
sicher
sehr einfacher
Aufbau (wenige
PseudoCodezeilen)
Rijndael
Joan Daemon,
Vincent Rijmen
SubstitutionsPermutationsNetzwerk
(10, 12 oder 14)
hinreichend
sicher
einfache
Struktur;
bestes in HW
& SW (nur 500
Zeilen C-Code)
Serpent
Ross Anderson,
Eli Biham,
Lars Knudsen
SubstitutionsPermutationsNetzwerk
(32 Runden)
hoch-sicher
(vermutlich
sicherstes)
schnellste HW,
lahmste SW
Twofish
Bruce Schneier,
Niels Ferguson,
David Wagner
hoch-sicher
komplexe
Struktur
(erschwert
Sicherheitsanalyse)
MARS
RC6
Feistel
(16 Runden)
Tabelle 7.1: NIST-Ausschreibungsfinalisten zur DES-Nachfolge
• Vorrunde: Eine Key Addition wird ausgef¨
uhrt, d. h. ein bitweises XOR der Zustandsmatrix mit dem 0-tem Rundenschl¨
ussel
Diese vier Schritte werden f¨
ur jede Runde ausgef¨
uhrt:
1. Byte Substitution: Dies wird auch die Rijndael-S-Box“ genannt und dieser Teil
”
sorgt f¨
ur Nicht-Linearit¨
at des Algorithmus. Hierbei wird jedes Byte des Zustandes
durch ein anderes ersetzt.
a) Fasse die Bytes als Elemente von F28 auf und invertiere sie (bez¨
uglich der
Multiplikation), falls der Wert ungleich null ist.
b) F¨
uhre eine affine Transformation y = Ax+b mit den Konstanten A ∈ {0, 1}8×8
47
und b ∈ {0, 1}8 durch, welche wie folgt definiert sind:

1
1


1

1
A=
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

1
1


1

1
,
0

0


0
1
 
1
1
 
 
0
 
0

b=
0 .
 
 
1
 
1
0
2. Shift Row: Man f¨
uhrt in diesem Schritt eine zyklische Rotation der Zeilen gegeneinander aus. Diese wird beispielhaft f¨
ur 128-Bit-Datenbl¨ocke in Abbildung 7.1
visualisiert. (F¨
ur andere Blockgr¨oßen von Rijndael werden die Zeilen teilweise anders verschoben.)
a
b
c
d
a
b
=⇒
c
d
Abbildung 7.1: Shift-Row-Operation f¨
ur 128-Bit-Datenbl¨ocke
b wird hier vorgenommen, dabei
3. Mix Column: Eine lineare Transformation y = Ax
werden die Spalten als Vektoren in F428 aufgefasst. Jedes der 4 Bytes einer Spalte
ist also als ein Vektorelement zu sehen. Beim Entschl¨
usseln verwendet man die
Matrix Ab−1 .
Die Matrizen berechnen dasselbe wie die folgende algebraische Operation: Die vier
Byte einer Spalte werden als Koeffizienten eines Polynoms 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 .
Außerdem ist f (Y ) wegen ggT(f (Y ), Y 4 + 1) = 1 invertierbar, was die Entschl¨
usselung auf eine Multiplikation mit dem zu f (Y ) inversen Polynom, bzw.
der Transformation mit Ab−1 reduziert.
4. Key Addition: Dieser Schritt ist wie in der Vorrunde das bitweises XOR eines
Bit-Rundenschl¨
ussels mit der Zustandsmatrix.
• Schlussrunde: Die letzte Runde l¨auft wie die Runden zuvor ab, allerdings wird der
Mix-Column-Schritt ausgelassen.
1
Dabei wird F28 als F2 [X]/g(X) interpretiert, X ist also der entsprechende Erzeuger von F28 .
48
Schl¨
usselexpansion
Die Rundenschl¨
ussel werden vom Hauptschl¨
ussel per Schl¨
usselexpansion erstellt. Der
folgenden Algorithmus beschreibt diesen Vorgang f¨
ur den AES mit einer Schl¨
ussell¨ange
von 128 Bit f¨
ur die i-te Runde:
1. Teile Schl¨
ussel in 32-Bit-Worte W [0], . . . , W [3] auf, also genau die Spalten der
Byte-Matrix
2. Berechne W [i] rekursiv:
i f i = 0 mod 4
then W [i] := W [i − 4] ⊕ f (W [i − 1]) ⊕ const(i)
else
W [i] := W [i − 4] ⊕ W [i − 1]
Wobei f eine Funktion ist, die byteweise zirkul¨are Linkshifts und die bereits bekannte
Funktion Byte Substitution ausf¨
uhrt, und const(i) eine von i abh¨angige Konstante bezeichnet. F¨
ur AES mit einer Schl¨
ussell¨ange von 192 bzw. 256 Bit ersetzt man die 4“
”
nun nat¨
urlich durch eine 6“ bzw. 8“ und bei AES-256 verwendet man folgendes f¨
ur
”
”
den if-then-Abchnitt:
W [8j + 4] = W [i] := W [i − 8] ⊕ ByteSub(W [i − 1]).
7.2 Schw¨
achen und beste bekannte Angriffe
Einige bekannten Schw¨
achen und die besten bekannten Angriffe gegen AES wollen wir
nun kurz besprechen.
Mathematische Struktur Die Verschl¨
usselung ist als eine geschlossene algebraische Formel u
¨ber F28 darstellbar, der Algorithmus hat also eine zu starke mathematische
Struktur und ist damit theoretisch durch L¨osen nicht-linearer Gleichungssysteme
angreifbar.
Seitenkanalangriffe F¨
ur eine Cache-Timing-Attack, bei welcher man mithilfe der Zeitdauer f¨
ur bestimmte Berechnungen R¨
uckschl¨
usse u
us¨ber die Beschaffenheit des Schl¨
sels ziehen kann, ben¨
otigt man u
¨ber 200 Millionen gew¨ahlte Klartexte und eben
exakte Timing-Information. Oder es ist einem Angreifer m¨oglich, beliebigen Code
auf den Verschl¨
usselungsservern ausf¨
uhren.
Related-Key-Attack Eine Related-Key-Attack ist gegen AES-192 und AES-256 mit einem Aufwand von ungef¨
ahr 2100 m¨oglich. F¨
ur rundenreduzierte AES-Varianten
mit 256 Bit Schl¨
ussell¨
ange sind folgende Aufw¨ande bekannt: Gegen 9, 10 bzw. 11
Runden lauten die Aufw¨
ande 239 , 245 bzw. 270 .
Meet-in-the-Middle-/Biclique-Attack In [BKR11] wurde der erste Key-Recovery-Angriff
auf den vollen AES vorgestellt. Die effektive Schl¨
ussell¨ange wurde per Meet-in-theMiddle- und Biclique-Attack um 2 Bit verk¨
urzt. Es wird hierf¨
ur nur ein einziges
Klartext-Chiffrat-Paar ben¨
otigt.
49
8 Betriebsmodi f¨
ur Blockchiffren
Die in diesem Kapitel vorgestellten Betriebsmodi erlauben die wiederholte und sichere Nutzung von Blockchiffren mit einem einzigen Schl¨
ussel. Eine Blockchiffre erlaubt
n¨amlich nur die Verschl¨
usselung eines einzelnen Blocks mit der passender L¨ange. Durch
Randomisation, z. B. durch die zus¨atzliche Eingabe eines sogenannten Initialisierungsvektors, wird es erm¨
oglicht, mehrere Bl¨ocke zu verschl¨
usseln. L¨angere Nachrichten m¨
ussen
dar¨
uberhinaus aufgeteilt und (bei zu kleinen Endst¨
ucken) gepaddet werden.
8.1 ECB: Electronic Codebook Mode
Der Klartext m wird in Bl¨
ocke ‡ n bit aufgeteilt und jeder Block separat mit demselben
Schl¨
ussel verschl¨
usselt, wie es in Abbildung 8.1 zu sehen ist. Dies ist der einfachste Modus
und zugleich der unsicherste.
k
k
¨
Ubertragung
m
Ek
c0
c
Ek−1
m0
Abbildung 8.1: ECB
Vorteile:
¨
+ Keine Fehlerfortpflanzung, d. h. Ubertragungsfehler
(Bitflips) sind
auf die betroffenen Bl¨ocke begrenzt
+ Verschl¨
usselte Datenspeicher k¨onnen hier blockweise ausgelesen
bzw. beschrieben werden; einfache Suchfunktionen sind auf verschl¨
usselten Daten ausf¨
uhrbar
+ Ver- und Entschl¨
usselung parallelisierbar
Nachteile: − Gleiche Klartext-Bl¨ocke f¨
uhren zu gleichen Chiffrat-Bl¨ocken (darum wird es auch Codebook“ genannt)
”
− Ein Angreifer kann Bl¨ocke l¨oschen, ver¨andern, duplizieren
(Replay-Attack) und die Reihenfolge ¨andern (somit ungeeignet f¨
ur
lange Nachrichten)
Um diesen Nachteilen abzuhelfen, sollte der Chiffreblock vom Klartextblock und von
vorherigen Klartext- bzw. Chiffrebl¨ocken abh¨angen, damit sich wiederholende, identische Klartextbl¨
ocke unterschiedliche Chiffrebl¨ocke liefern. Man kann damit dann auch
50
¨
Einf¨
uge-, L¨
osch- und Anderungs-Versuche
erkennen. Ohne eine solche Abh¨angigkeit von
vorherigen Bl¨
ocken bleiben gleiche Bl¨ocke gut erkennbar, was die Abbildung 8.21 verdeutlicht. Man kann darin links ein Bild von Tux, dem Linux-Maskottchen sehen, welches
trotz ECB-Verschl¨
usselung rechts immer noch grob als solches zu erkennen ist.
(a) TuX, der Pinguin
(b) ECB-verschl¨
usselter TuX
Abbildung 8.2: ECB-Verschl¨
usselung an einem Bild-Beispiel
8.2 CBC: Cipher Block Chaining Mode
Bei CBC wird ein n-Bit-Register verwendet, welches den vorherigen Chiffreblock zwischenspeichert. Dieses ben¨
otigt eine Anfangsbelegung, einen sogenannten Initialisierungsvektor (IV). Die Chiffrebl¨
ocke ci erh¨alt man nun durch
c0 := Initialisierungsvektor,
ci := Ek (mi ⊕ ci−1 ).
Es h¨angt also jeder Chiffreblock ci von allen vorausgegangenen Bl¨ocken und dem IV ab.
F¨
ur die Entschl¨
usselung gilt
c0 := Initialisierungsvektor,
mi := Ek−1 (ci ) ⊕ ci−1 .
Dieser Ver- und Entschl¨
usselungsvorgang ist in Abbildung 8.3 veranschaulicht.
CBC erm¨
oglicht Selbstsynchronisation: Da man zur Entschl¨
usselung nur den momentanen und den vorherigen Block braucht, m¨
ussen Sender und Empf¨anger nicht den IV
austauschen. Der Empf¨
anger kann irgendwas nehmen und der Sender schickt als ersten
Block Zufall. F¨
ur den n¨
achsten Block steht nun das passende im Empf¨anger-Register.
1
8.2 (a) von Larry Ewingi ([email protected]) erstellt mit GIMP; 8.2 (b) von Wikimedia Commens
51
k
k
¨
Ubertragung
m
Ek
c0
c
Register
Ek−1
m0
Register
Abbildung 8.3: CBC
Vorteile:
+ Nachteile von ECB beseitigt
+ Entschl¨
usselung selbstsynchronisierend (da f¨
ur die Berechnung eines Klartextes nur die beiden letzten Chiffrate ben¨otigt werden)
Nachteile: − Initialisierungsvektor muss u
¨bertragen werden oder alternativ
Selbstsynchronisation nutzen ⇒ kleiner Bandbreitenverlust
− nur lesender w¨
ahlerfreier Zugriff (auf z. B. Datenspeicher) u
¨ber
Selbstsynchronisation, kein Schreibzugriff
¨
− Ubertragungsfehler
erzeugen Bitfehler bei der Entschl¨
usselung des
nachfolgenden Blocks
− Verschl¨
usselung nicht parallelisierbar (Entschl¨
usselung schon)
Behandlung des letzten Blocks
Hat der letzte Block nur eine L¨
ange von l < n und Padding ist nicht m¨oglich (z. B. aufgrund Bandbreiten- oder Anwendungsbeschr¨ankungen), kann man (als Sender) wie folgt
vorgehen: Verschl¨
ussle den vorletzten Chiffreblock cr−1 , addiere diesen verschl¨
usselten
Wert mit dem letztem Block mr und nehme von dem Ergebnis die linken l Bits. Allerdings ist der letzte Block anf¨
allig gegen (sinnvolle) Ver¨anderungen, was mit Malleability
bezeichnet wird, da sich eine Ver¨
anderung im Chiffretext nicht mehr auf folgende Bl¨ocke
auswirken kann.
Eine bessere Methode ist Ciphertext Stealing, welche in Abbildung 8.4 zu sehen ist. Hierbei wird der letzte Klartextblock mit den h¨oherwertigen Bits des vorletzten Chiffreblocks
gepaddet und verschl¨
usselt. Die h¨
oherwertigen Bits des vorletzten Chiffreblocks werden
entfernt und der letzte und vorletzte Chiffreblock werden vertauscht. (Man nimmt also nur eine Reihenfolgen¨
anderung vor, aber es werden keine zus¨atzlichen Padding-Bits
ben¨otigt.)
8.3 CFB: Cipher Feedback Mode
Man verwendet bei CFB ein n-Bit-Schieberegister, dessen Inhalt um l Bit nach links
verschoben wird und welches dann mit den l Bit von c, dem letzten Chiffrat, bef¨
ullt
wird. Anschließend werden diese n Bit aus dem Schieberegister verschl¨
usselt, l Bit davon
52
mp−1
mp
Ek
c0p−1
mp
Ek
cp−1
cp
Abbildung 8.4: Ciphertext Stealing bei letztem Klartextblock mp
ausgew¨
ahlt und auf den neuen Klartextblock addiert, der somit verschl¨
usselt wurde. Man
kann sich dies mithilfe der Abbildung 8.5 leicht verst¨andlich machen.
Schiebereg.
Schiebereg.
n Bit
Ek
k
Ek
k
n Bit
l-Bit Ausw.
l Bit
m
l-Bit Ausw.
¨
Ubertragung
c0
c
m0
Abbildung 8.5: CFB
Ein Initialisierungsvektor wird ben¨
otigt (analog zu CBC), dieser kann im Klartext (z. B.
als Pr¨aambel zur eigentlichen Nachricht) u
¨bertragen werden; ¨aquivalent ist Selbstsynchronisation nutzbar. Die Chiffretextfolge ist vom IV und allen zuvor u
¨bertragenen
Chiffraten abh¨
angig. Die Invertierbarkeit der Blockchiffrefunktion, in vorherigen Abbildungen durch Ek−1 beim Empf¨
anger gekennzeichnet, wird nicht ben¨otigt, da die nBit-Schieberegister den gleichen Inhalt haben.
53
Vorteile:
+ Blockl¨
ange l aus 1, . . . , n frei w¨ahlbar (ohne Overhead bei Kommunikation)
+ Selbstsynchronisierend (analog zu CBC); f¨
ur l = 1 sogar robust
gegen Bitslips (f¨
ur l > 1 nur falls Vielfaches von l verschluckt
wurde)
+ Chiffre muss nicht (effizient) invertierbar sein
Nachteile: − Mehraufwand f¨
ur Ver-/Entschl¨
usselung von Faktor n/l, da schließlich n Bits verschl¨
usselt, aber nur l Bits verwendet werden. (Einzelne Runden k¨
onnen aber vorberechnet werden, da der Klartext
nur mit XOR eingeht.)
− Resynchronisation bei Bitflips erst nach n/l Bl¨ocken
− Ein Angreifer kann gezielt Klartextblock-Bits ¨andern, erzeugt aber
¨
in nachfolgenden Bl¨ocken zuf¨allige Anderungen.
Der letzte Block
ist zwar wieder gef¨
ahrdet, wird aber bei 8-Bit-CFB (l = 8) meist
f¨
ur die Pr¨
ufsumme verwendet, ist also nicht sinnvoll ¨anderbar.
Ist es einem Angreifer m¨
oglich ein Chiffretext zu einem anderen umzuformen, so dass
deren Klartexte in Relation zueinander stehen, spricht man von Malleability (siehe auch
Abschnitt 9).
¨
Bei Ubertragungsfehlern
wird solange falsch dechiffriert, bis der Fehler aus dem Schieberegister hinausgeschoben wird. Bei l u
¨bertragenen Zeichen und einer Schieberegisterl¨ange
von n lautet die Anzahl falsch dechiffrierter Zeichen 1 + n/l.
8.4 OFB: Output Feedback Mode
Bei OFB wird ¨
ahnlich wie bei CFB vorgegangen, allerdings nimmt man nicht l Bit
des Chiffrats, die man dann dem Schieberegister zuf¨
uhrt, sondern die l-Bit-Auswahl der
Verschl¨
usselung des Schieberegisterinhalts, wie dies in Abbildung 8.6 zu sehen ist. Ein
Initialisierungsvektor wird ben¨
otigt, dieser kann im Klartext u
¨bertragen werden.
Vorteile:
+ Schl¨
usselstrom unabh¨angig von Nachrichtenstrom vorberechenbar
+ Keine Fehlerfortpflanzung bei Bitflips
+ Chiffre muss nicht (effizient) invertierbar sein
Nachteile: − Lineare Verschl¨
usselung (XOR) verwendet, d. h. ein Angreifer
kann gezielt Klartext-Bits kippen. (Es gibt keine NachrichtenVerkettung wie beim CBC, CFB, also ist die Erkennung einer
Manipulation genauso problematisch wie bei ECB.)
− Wiederverwendung“ des Initialvektors ist besonders kritisch, es
”
gilt dann c ⊕ c0 = m ⊕ m0 , man kann nun den Klartext erkennen
wie bei Vig`enere.
− Keinerlei Resynchronisation, wenn etwas verloren geht (ECB, CBC
und CFB resynchronisieren, wenn ganze Bl¨ocke verloren gehen).
54
Schiebereg.
Schiebereg.
n Bit
Ek
Ek
l-Bit Ausw.
l-Bit Ausw.
k
k
n Bit
¨
Ubertragung
l Bit
c0
c
m
m0
Abbildung 8.6: OFB
8.5 CTR: Counter Mode
Ein Initialisierungsvektor wird ben¨otigt, welcher im Klartext u
¨bertragen werden kann.
Dieser IV, mit addiertem bzw. angeh¨angtem Counter, wird verschl¨
usselt und auf den
Klartext addiert. Anschließend wird der Counter erh¨oht und wieder mit dem IV verschl¨
usselt und auf den n¨
achsten Klartextblock addiert usw., wie es Abbildung 8.7 zeigt.
IV
IV
Counter
Counter
k
m
Ek
Ek
¨
Ubertragung
c0
c
k
m
Abbildung 8.7: CTR
Vorteile:
+
+
+
+
+
Schl¨
usselstrom unabh¨angig von Nachrichtenstrom vorberechenbar
Ver- & Entschl¨
usselung parallelisierbar
Keine Fehlerfortpflanzung bei Bitflips
Chiffre muss nicht (effizient) invertierbar sein
Verschl¨
usselte Datenspeicher k¨onnen blockweise bearbeitet werden
Im Wesentlichen hat man also die Vorteile von ECB und OFB. Außerdem hat man auch
die gleichen Nachteile wie bei OFB.
55
8.6 Probleme bei schwachen Verfahren
Bei dem OFB-Verfahren ist die Schl¨
usselwahl zu beachten. Denn mit einem schwachem Schl¨
ussel k kann die Blockchiffre Ek eine Involution bilden (d. h. eine selbstinverse Permutation) und erzeugt dann einen Schl¨
usselstrom mit einer Periode von 2n.
Dies erm¨
oglicht einen einfachen Known-Plaintext-Angriff, wenn 2n Bit vom Klartext
bekannt sind bzw. es entspricht sogar einer Vigen`ere-Verschl¨
usselung.
Bei dem CBC-Modus ist eine Birthday-Attack aufgrund gleicher Chiffrat-Bl¨ocke m¨oglich.
Bei gleichen Chiffrate-Bl¨
ocken ci = cj gilt n¨amlich:
Ek (mi ⊕ ci−1 ) = Ek (mj ⊕ cj−1 ).
Und daraus folgt:
mi ⊕ mj = ci−1 ⊕ cj−1 .
Somit erh¨
alt man aufeinander addierte Klartextbl¨ocke mi ⊕ mj . Dies tritt bei einer
Blockl¨ange von n ab einer Klartextl¨ange von ungef¨ahr 2n/2 mit signifikanter Wahrscheinlichkeit auf. Darum sollte man Schl¨
ussel bei großen Datenmengen h¨aufig wechseln.
8.7 Vergleich
Ein Vergleich u
¨ber einige Betriebsmodi findet sich in Tabelle 8.1.
56
–
CBC
m>n
IV bzw.
autom.
nach einem
Block
CFB
Zeichenstrom
(jedes
Zeichen
einzeln
bearbeitet)
IV bzw.
autom.
nach einem
Block
OFB
m > n,
Fehlererweiterung
unerw¨
unscht
CTR
m > n,
Fehlererweiterung
unerw¨
unscht
IV
IV
Acc
ess
om
Ra
nd
Bit
-Sli
p
r
hle
Bit
-Fe
eite
run
g
Feh
le
rer
w
io n
Syn
chr
oni
sat
g
ndu
n
Ver
we
Nachricht m
¡ Block n
ECB
Nein
1 Block
zerst¨ort
Keine Synchronisation
mehr
rw
Ja
1 Block
zerst¨ort, 1 Bit
im n¨achsten
Block invertiert
Keine Synchronisation
mehr
r
Ja
N¨achsten
1 + n/l Zeichen
gest¨ort
Nur f¨
ur l = 1
nach n Bit
Resynchronisation
r
Nein
1 Bit invertiert
Keine Synchronisation
mehr
–
Nein
1 Block
zerst¨ort
Keine Synchronisation
mehr
rw
Tabelle 8.1: Betriebsmodi im Vergleich
57
9 Formale Sicherheitsbegriffe
Bei den verwendeten formalen Sicherheitsbegriffen wird ein Paar aus zwei Spielen definiert, mit einem Angreifer A und einem Herausforderer Eb , deren Ergebnis jeweils eine
bin¨are Zufallsvariable ist. Die Chiffre ist sicher im Sinne der Definition, wenn kein Angreifer bewirken kann, dass die beiden Spielergebnisse statistisch signifikant voneinander
abweichen. Die M¨
achtigkeit des Angreifers wird dabei durch zwei Orakel O und O0 modelliert, auf welche der Angreifer vor bzw. w¨ahrend des Spiels zugreifen kann. So kann
ein Angreifer ein Verschl¨
usselungsorakel nutzen, um Klartexte zu verschl¨
usseln, ohne
dass der Angreifer dabei Zugriff auf den geheimen Schl¨
ussel hat.
Angriffe
• Chosen-Plaintext Attacks (CPA): Bei diesem Angriff sind O und O0 reine Verschl¨
usselungsorakel.
• Chosen-Ciphertext Attacks (CCA1): Hier ist O ein Ver- & Entschl¨
usselungsorakel
und O0 ist nur ein Verschl¨
usselungsorakel.
• Adaptive Chosen-Ciphertext Attacks (CCA2): Hier sind O und O0 jeweils Ver- und
Entschl¨
usselungsorakel. (O0 weigert sich hierbei allerdings trivialerweise, ChallengeChiffrate zu entschl¨
usseln.)
Schutzziele
Die folgenden Veranschaulichungen sind abgeleitet aus [BDPR98].
• Indistinguishability (IND): Ein Angreifer A kann keine zwei Klartexte m0 , m1 finden, deren Chiffrate er dem jeweils zugeh¨origen Klartext zuordnen k¨onnte. In dem
Spiel, welches in Abbildung 9.1 zu sehen ist, gibt der Angreifer A die zwei Klartexte an den Herausforderer Eb , welcher mit einem zuf¨allig ausgew¨ahltem b ∈ {0, 1}
entscheidet, welcher der beiden Texte verschl¨
usselt und zur¨
uckgegeben wird. Der
b
Angreifer gibt b ∈ {0, 1} aus, mit welchem er angibt, ob seiner Meinung nach m0
oder m1 verschl¨
usselt wurde. Sind bb und b identisch, so war der Angriff erfolgreich.
• Real or Random (ROR): Ein Angreifer A kann keinen Klartext m finden, dessen
Chiffrat er von verschl¨
usseltem Zufall unterscheiden k¨onnte. In Abbildung 9.2 wird
R
dies veranschaulicht, hierbei wird mit x ←
− Klartextraum ausgedr¨
uckt, dass man
aus dem Klartextraum per Zufall ein Element ausw¨ahlt.
• Non-Malleability (NM): Ein Angreifer A kann Chiffrate nicht so umformen, dass
die F¨
alschung“ eine sinnvolle Relation R zum Original“ erf¨
ullt. (Malleability
”
”
58
l¨asst sich u
¨bersetzen zu Formbarkeit“, Geschmeidigkeit“.) Der Spielablauf ist in
”
”
Abbildung 9.3 zu sehen. Es geht bei diesem Angriff nicht darum, etwas u
¨ber den
Klartext x zu erfahren, sondern ein Chiffrat y auszugeben, dessen Entschl¨
usselung
x eine (bedeutende) Relation R zum Klartext x hat, geschrieben als R(x, x). Um
mit Wahrscheinlichkeiten daf¨
ur dass die Relation erf¨
ullt ist zu rechnen werden
mehrere Chiffrate oder mehrere Durchl¨aufe des Spiels ben¨otigt; daf¨
ur wird statt
einem modifizierten Chiffrat y normalerweise ein Vektor ~y von mehreren modifizierten Chiffraten betrachtet. Hier verwenden wir der Einfachheit halber nur ein
modifiziertes Chiffrat. Zuerst gibt der Angreifer hierbei eine Klartextverteilung M
aus. Daraus werden zwei Nachrichten x0 , x1 zuf¨allig ausgew¨ahlt und x0 wird f¨
ur
ihn zu y verschl¨
usselt und zur¨
uckgegeben. Der Angreifer gibt nun die Beschreibung
einer Relation R und ein Chiffrat y aus, wobei y 6= y und R effizient pr¨
ufbar ist.
Das Chiffrat y wird nun entschl¨
usselt zu x. Der Angreifer ist erfolgreich, sofern die
Relation R(x0 , x) erf¨
ullt ist und die Wahrscheinlichkeit daf¨
ur signifikant gr¨oßer ist
als diejenige, f¨
ur die R(x1 , x) mit einem zuf¨allig gew¨ahltem x1 aus M gilt.
Warum so eine auf den ersten Blick seltsame Definition sinnvoll ist, kann man sich
verst¨
andlich machen, wenn man als Beispiel eine Auktion mit zwei Teilnehmern
betrachtet: Der ehrliche Teilnehmer gibt ein Gebot g verschl¨
usselte als Ek (g) ab
und der unehrliche zweite Teilnehmer liest dies. K¨onnte er nun, ohne es zu entschl¨
usseln, daraus Ek (g + 1) machen, w¨
urde er zwar nicht wissen, was er bietet,
aber immer gewinnen.
m0 ,
A
y
h
b
b
m1
Eb
y = EncK (mb )
i
Ergebnis: bb
Abbildung 9.1: Indistinguishability (IND)
59
A
Eb
m
R
x←
− Klartextraum
(
y=
y
h
b
b
EncK (m)
EncK (x)
falls b = 0
falls b = 1
i
Ergebnis: bb
Abbildung 9.2: Real or Random (ROR)
A
(Klarte
Eb
M
xtverte
R
ilung)
x0 , x1 ←
−M
y
y = Enck (x0 )
R, y mit (y 6= y)
x = Deck (y)
[Erfolg, falls: Wkt(R(x0 , x)) > Wkt(R(x1 , x))]
Abbildung 9.3: Non-Malleability (NM)
9.1 Beziehungen zwischen den Begriffen
Die Beziehungen zwischen den verschiedenen Sicherheitsbegriffen nach [BDPR98] sind in
Abbildung 9.4 zu finden. Hierbei bedeuten die gestrichelten und durchgestrichene Pfeile
nat¨
urlich, dass die jeweiligen Begriffe nicht auseinander folgen, w¨ahrend die normalen
Pfeile die folgt aus“-Beziehung darstellen sollen.
”
60
NM-cpa
NM-cca1
NM-cca2
IND-cpa
IND-cca1
IND-cca2
RoR-cpa
RoR-cca1
RoR-cca2
Abbildung 9.4: Beziehung zwischen den Sicherheitsbegriffen
Im Folgenden sollen einige Beziehungen erl¨autert werden und es stehe atk“ kurz f¨
ur
”
CPA“, CCA1“ und CCA2“.
”
”
”
• IND-atk ⇒ RoR-atk: Kann man zwei selbstgew¨ahlte Klartexte nicht unterscheiden,
dann auch nicht ein gew¨
ahlter und ein zuf¨alliger Text.
• RoR-atk ⇒ IND-atk: RoR-Sicherheit bedeutet, dass kein Angreifer einen Klartext
m oder m0 findet, so dass er Ek (m) oder Ek (m0 ) von verschl¨
usseltem Zufall unterscheiden kann. Aus der Transitivit¨at der Ununterscheidbarkeits-Relation folgt die
Ununterscheidbarkeit von Ek (m) und Ek (m0 ).
• IND-CCA1 ; NM-CPA: Ein IND-CCA1-sicheres Schema bleibt IND-CCA1-sicher,
wenn man an jedes Chiffrat c ein Chiffrat c0 des bitweise invertierten Klartexts
anh¨
angt. Ein NM-Angreifer kann dann den Inhalt von Chiffraten bitweise invertieren, indem er die Reihenfolge von c und c0 vertauscht.
• NM-CPA ; IND-CCA1 : Ein NM-CPA-sicheres Schema kann oBdA so umgebaut werden, dass gilt Ek (Ek (k)) = 0 . . . 0. Das Schema bleibt CPA-, nicht jedoch
CCA1-sicher (O von CCA1 gibt k frei, da es entschl¨
usseln kann).
Achtung: Ein Schema, f¨
ur welches Ek (k) = 0 . . . 0 gilt, ist nicht NM-CPA-sicher.
Ein Angreifer kann die Relation R so w¨ahlen, dass R(x, a, b) erf¨
ullt ist, genau dann,
wenn Da (b) = x gilt. Dann kann er bei gegebener Challenge y = Ek (x) dazu das
Chiffrat-Tupel ~y = (0 . . . 0, z) mit z = Ek (y) w¨ahlen und die Relation ist erf¨
ullt.
Das Ergebnis: R(Dk (y), Dk (0 . . . 0), Dk (z)) = R(x, k, y) ist erf¨
ullt, da Dk (y) = x
gilt.
• IND-CCA2 ⇒ NM-CCA2 : Ein Angreifer, der das NM-CCA2-Spiel gewinnt, kann
Chiffrate so umformen, dass er die Relation zwischen den entsprechenden Klartexten kennt. Damit kann er die Challenge im IND-CCA2-Spiel entsprechend umformen, entschl¨
usseln lassen und pr¨
ufen, ob der erhaltene Klartext in Relation zu m1
oder m2 steht.
• NM-atk ⇒ IND-atk: Ein Angreifer, der Klartexte wiedererkennen kann, kann zum
wiedererkannten Klartext mi einen Klartext m0 w¨ahlen (und verschl¨
usseln lassen),
so dass mi und m0 in einer vom Angreifer gew¨ahlten Relation stehen.
61
Beobachtungen
Diese formalen Sicherheitsbegriffe und deren Beziehungen untereinander lassen uns zu
folgenden negativen (−) und positiven (+) Beobachtungen kommen:
− Volldeterministische Verfahren (ECB) erf¨
ullen keinen der Begriffe
− Selbstsynchronisierende (CBC, CFB) und lineare (OFB, CTR) Verfahren erf¨
ullen
keinen NM-Begriff
+ Ideal Cipher im CBC-Mode ist IND-CPA-sicher (sogar IND-CCA1). Analog dazu
auch jede Chiffre, die kein Angreifer ohne Schl¨
usselzugriff von einer Ideal Cipher
unterscheiden kann.
+ Um NM-CPA-Sicherheit zu erreichen (sogar IND-CCA2), wird ein IND-CPAsicheres Verfahren mit einem Authentifikationsverfahren (MAC, siehe Abschnitt
11.1) kombiniert. Dies f¨
uhrt zur sogenannten Authenticated Encryption (z. B. den
Modi CCM, CWC, OCB, EAX oder GCM).
62
10 Hashfunktionen
10.1 Definition und Eigenschaften
Definition 10.1.1: (Hashfunktion): Eine Hashfunktion H ist eine Abbildung, die einen
beliebig großen Eingabewert auf eine kleine Ausgabe, den sogenannten Hashwert, abbildet. Formaler l¨
asst sich dies ausdr¨
ucken per:
H : {0, 1}∗ → {0, 1}n
bzw. Hk : {0, 1}∗ → {0, 1}|k| (keyed hash-function).
Aus kryptographischer Sicht sollte eine Hashfunktion H folgende Eigenschaften erf¨
ullen:
• Urbildresistenz: Gegeben ein Hashwert h, ist es nicht praktikabel, ein Urbild m zu
finden, d. h. H(m) = h.
formal: F¨
ur jeden effizienten Angreifer A (mit Laufzeit polynomiell in der Eingabel¨
ange) soll die folgende Wahrscheinlichkeit vernachl¨assigbar in einem Sicherheitsparameter λ sein:
Pr A(Hk (m), k) → m0 mit Hk (m0 y) = Hk (m)
Dabei ist (k, m) gleichverteilt zuf¨allig aus {0, 1}λ × {0, 1}p(λ) mit einem beliebigen
aber festen Polynom p ∈ Z[X].
• Kollisionsresistenz: Es ist nicht praktikabel, zwei verschiedene Urbilder m, m0 mit
demselben Hashwert h = H(m) = H(m0 ) zu finden.
formal: F¨
ur jeden effizienten Angreifer A (mit Laufzeit polynomiell in der Eingabel¨
ange) soll die folgende Wahrscheinlichkeit vernachl¨assigbar in einem Sicherheitsparameter λ sein:
Pr A(k) → (m, m0 ) mit Hk (m) = Hk (m0 )
Dabei ist k gleichverteilt zuf¨allig aus {0, 1}λ .
Random Oracle
¨
Ein Random Oracle (RO) ist eine (Uber-)Idealisierung
einer Hashfunktion und jedem
∗
Urbild m ∈ {0, 1} ist ein vollkommen zuf¨alliger Hashwert h ∈ {0, 1}n zugeordnet (n
ist ein Sicherheitsparameter) und per Orakelzugriff kann jede Maschine im Modell die
entsprechende Funktion H auswerten.
Folgendes gilt es noch anzumerken:
63
• Es gibt (konstruierte) Protokolle, die im Random-Oracle-Modell sicher sind, aber
f¨
ur keine bekannte Hashfunktion sicher sind.
• Das Random-Oracle- und Ideal-Cipher-Modell sind ¨aquivalent. Mittels eines FeistelNetzwerks l¨
asst sich aus einem RO eine IC konstruieren. Umgekehrt kann mittels
eines Merkle-Damgard-Schemas ein RO aus einer IC konstruiert werden. Beides
wird im folgenden Abschnitt behandelt.
10.2 Merkle-Damgard- & Feistel-Konstruktion
Es soll nun erl¨
autert werden, wie man aus einer Ideal Cipher ein Random Oracle konstruiert und umgekehrt.
Ideal Cipher ⇒ Random Oracle“
”
Die Abbildung 10.1 zeigt wie man durch Verkettung einer Ideal Cipher mithilfe eines Initialisierungsvektors ein Random Oracle per sogenannter Merkle-Damgard-Konstruktion
erh¨alt. Hierbei wird die eigentliche Nachricht m in kleinere Bl¨ocke m1 , . . . , mn unterteilt
und den einzelnen Ideal Ciphern u
¨bergeben.
IV
m1
m2
IC
IC
mn
...
IC
H(m1 ||m2 || . . . ||mn )
Abbildung 10.1: Ideal Cipher ⇒ Random Oracle
Es gilt allerdings zu beachten, dass eine einfache Merkle-Damgard-Konstruktion noch
nicht gen¨
ugt! Das Problem: Gegeben den Hashwert h einer unbekannten Nachricht m,
kann ein Angreifer zu jeder Nachricht m0 den Hashwert H(m||m0 ) berechnen, indem
einfach an die obige Pipeline-Konstruktion weitere Stufen angebaut werden und m0 aufgeteilt und eingegeben wird. Hierbei benutzt man H(m) als internen Hashwert zur Berechnung von H(m||m0 ). Daf¨
ur gibt es aber auch L¨osungen:
• Wide-Pipe-Konstruktion nach [Luc04]: Es wird bei dieser Konstruktion intern mit
mehr Bits gearbeitet, als ausgegeben werden. Dies verhindert das Auffinden von
Kollisionen bei internen Hashwerten (also den Zwischenhashwerten). Siehe Abbildung 10.2 (a).
• Fast-Wide-Pipe-Konstruktion nach [NP10]: Die H¨alfte der erweiterten interne Bits
werden auf den Ausgang des nachfolgenden ICs addiert, anstatt sie wie bei der
Wide-Pipe-Konstruktion an dessen Eingang zu legen. Siehe Abbildung 10.2 (b).
Random Oracle ⇒ Ideal Cipher“
”
Zur Konstruktion einer Ideal Cipher aus einem Random Oracle ben¨otigt man laut
[HKT11] eine Feistel-Struktur mit 14 Runden, wie sie in Abbildung 10.3 angedeutet
64
IV1
m1
m2
...
mn
IC
IC
...
IC
H(m1 || . . . ||mn )
IV2
(a) Wide-Pipe-Konstruktion
IV1
m1
m2
...
mn
IC
IC
...
IC
H(m1 || . . . ||mn )
IV2
(b) Fast-Wide-Pipe-Konstruktion
Abbildung 10.2: Konstruktion eines Random Oracles aus einem Ideal Cipher
ist. Hierbei bezeichnet Ri den rechten Teil des internen Zustands nach der i-ten Runde
und k ist der Schl¨
ussel, der der Hashfunktion Hi zur Verf¨
ugung gestellt wird. Unbekannt
ist allerdings, ob auch schon weniger Runden ausreichend sind.
Auf der CRYPTO 2008 wurde von Coron et al. [CPS08] vorgestellt, dass eine FeistelStruktur mit 6 Runden ausreicht, deutlich sp¨ater wurde bemerkt, dass in dem aufwendigen Beweis ein Fehler ist und zun¨
achst gezeigt, dass 18 Runden ausreichen (vgl. [HKT11])
– dieser Beweis wurde anschließend an einigen Stellen verbessert, so dass er jetzt auch
f¨
ur 14 Runden gilt.
k
H(i||k||Ri )
Hi
Ri
Abbildung 10.3: Random Oracle ⇒ Ideal Cipher
¨
10.3 Aquivalenz
von Krypto-Primitiven
Es wird in [CPS08] bemerkt, dass man, um Beweise f¨
ur die Sicherheit eines KryptoSystems zu konstruieren meist zwei m¨ogliche Ans¨atze verfolgt. Entweder verwendet man
65
bestimmte rechnerische Probleme, wie z. B. die Faktorisierung großer Zahlen, die als
schwer l¨
osbar gelten (welche man, k¨onnte man das Krypto-System brechen, dann ebenfalls l¨osen kann, was ja gerade als schwer machbar gilt), oder man nutzt der Effizienz
zuliebe ein idealisiertes Modell der Wirklichkeit, wie die bereits zuvor erw¨ahnten Ideal¨
Cipher- und Random-Oracle-Modelle. Die Aquivalenz
solcher Modelle oder kryptographischer Konstruktionen, die wir hier Primitive nennen wollen, ist bedauerlicherweise
nicht unbedingt leicht zu zeigen, so dass manche Beweise schwer vergleichbar sind. Am
Beispiel der zuvor schon beschriebenen Gleichheit von Ideal Cipher und Random Oracle
¨
wollen wir die Schwierigkeit von Aquivalenzbeweisen
bez¨
uglich bestimmter Definition
aufzeigen.
Eine erste Definition
Eine naive“ Definition f¨
ur die Gleichheit von Primitiven, welche, wie wir bald sehen
”
werden, unzureichend ist, lautet:
Definition 10.3.1: (Indistinguishability): Eine Primitive Y kann aus X realisiert werden,
wenn es eine Turingmaschine M gibt, so dass die Ein-Ausgabe-Verteilung von MX
ununterscheidbar ist von der Ein-Ausgabe-Verteilung von Y. Etwas formaler formuliert
kann man sagen, dass f¨
ur jeden Unterscheider D gilt:
X
Pr[DM = 1] ≈ Pr[DY = 1].
Indistinguishability reicht nicht, da – sofern der Angreifer z. B. auf innere Rundenfunktionen zugreifen kann – dieser ein anderes Interface hat (eben die Ein- und Ausg¨ange
der inneren Funktionen). Solche Zugriffe auf die Innereien“ erlaubt das Random-Oracle”
Modell nicht.
Angriff gegen 5-Runden-Feistel
Nach dieser Definition gen¨
ugt ein 4-Runden-Feistel-Netzwerk, um aus einem Random
Oracle eine Ideal Cipher zu implementieren. Es existiert aber ein Angriff auf die 5Runden-Feistel, welcher in [CPS08] beschrieben ist. Die Idee dieses Angriffes ist, dass eine
Eigenschaft der 5-Runden-Struktur aufgezeigt wird, die bei einer zuf¨alligen Permutation
nicht wirklich zu finden w¨
are. Die im Folgenden verwendeten Bezeichnungen sind in
Abbildung 10.4 u
¨bersichtlich dargestellt. Es seien Y und Y 0 beliebige Werte, die die
Eingabe zu F3 bilden. Sei Z ein weiterer beliebiger Wert, welcher die Eingabe f¨
ur F4
darstellen soll. Wir setzen Z 0 = F3 (Y ) ⊕ F3 (Y 0 ) ⊕ Z und damit gilt
X = F3 (Y ) ⊕ Z = F3 (Y 0 ) ⊕ Z 0
0
0
0
X = F3 (Y ) ⊕ Z = F3 (Y ) ⊕ Z .
Mit X, X 0 , Y und Y 0 werden nun vier Paare (Xi , Yi ) wie folgt gebildet:
(X0 , Y0 ) = (X, Y 0 ),
(X1 , Y1 ) = (X 0 , Y ),
(X2 , Y2 ) = (X 0 , Y 0 ),
(X4 , Y4 ) = (X, Y 0 ).
66
(10.1)
(10.2)
L
R
F1
X
F2
Y
F3
Z
F4
S
F5
T
S
Abbildung 10.4: 5-Runden-Feistelkonstruktion
Die dazugeh¨
origen zwei H¨
alften der vier Klartexte seien mit Li und Ri bezeichnet. Wir
erhalten nun
R0 = Y0 ⊕ F2 (X0 ) = Y ⊕ F2 (X)
R1 = Y1 ⊕ F2 (X1 ) = Y ⊕ F2 (X 0 )
R2 = Y2 ⊕ F2 (X2 ) = Y 0 ⊕ F2 (X 0 )
R3 = Y3 ⊕ F2 (X3 ) = Y 0 ⊕ F2 (X).
Mit den dazugeh¨
origen Eingabewerten Z0 , . . . , Z3 f¨
ur F4 , erh¨alt man mit den Gleichungen
(10.1) und (10.2) diese Zusammenh¨ange:
Z0 = X0 ⊕ F3 (Y0 ) = X ⊕ F3 (Y ) = Z
Z1 = X1 ⊕ F3 (Y1 ) = X 0 ⊕ F3 (Y ) = Z 0
Z2 = X2 ⊕ F3 (Y2 ) = X 0 ⊕ F3 (Y 0 ) = Z
Z3 = X3 ⊕ F3 (Y3 ) = X ⊕ F3 (Y 0 ) = Z 0 .
67
Mit Si und Ti seien die Chiffreh¨
alften bezeichnet. Die linken Chiffreh¨alften k¨onnen wir
nun ausdr¨
ucken als
S0 = Y0 ⊕ F4 (Z0 ) = Y ⊕ F4 (Z)
S1 = Y1 ⊕ F4 (Z1 ) = Y ⊕ F4 (Z 0 )
S2 = Y2 ⊕ F4 (Z2 ) = Y 0 ⊕ F4 (Z)
S3 = Y3 ⊕ F4 (Z3 ) = Y 0 ⊕ F4 (Z 0 ).
Nach dieser etwas m¨
uhsamen Beschreibung erhalten wir folgende Beziehungen:
R0 ⊕ R1 ⊕ R2 ⊕ R3 = 0 = S0 ⊕ S1 ⊕ S2 ⊕ S3 .
Damit haben wir vier Klartext-Chiffrat-Paare gefunden, so dass die Addition der rechten Klartexth¨
alften, ebenso wie die Addition der linken Chiffrath¨alften null ergibt. Solch
eine Eigenschaft kann man bei einer wirklich zuf¨alligen Permutation h¨ochstens mit vernachl¨assigbarer Wahrscheinlichkeit finden (bei polynomial beschr¨ankter Anfragezahl),
womit gezeigt wurde, dass die 5-Runden-Feistelkonstruktion nicht ausreichen kann.
Eine bessere Definition
Die richtige“ Definition hingegen ist nun:
”
Definition 10.3.2: (Indifferentiability): Eine Primitive Y kann aus X realisiert werden, wenn es eine Turingmaschine M und einen Simulator S gibt, so dass die EinAusgabe-Verteilung von (MX , X) ununterscheidbar ist von der Ein-Ausgabe-Verteilung
von (Y, S Y ). F¨
ur jeden Unterscheider D gilt also:
X ,X
Pr[DM
Y
= 1] ≈ Pr[DY,S = 1].
Der Simulator kann nun den Zugriff auf das Innere“ simulieren. Der Unterscheider soll
”
nun nicht erkennen, ob eine Permutation vorliegt und die Rundenfunktionen passend
dazu simuliert werden (IC zu RO) oder ob (zuf¨allig gew¨ahlte) Rundenfunktionen zusammengesetzt wurden (RO zu IC).
10.4 Aufbau von SHA-1
Der SHA, was f¨
ur Secure Hash Algorithm“ steht, wurde von dem National Institute of
”
Standards and Technology (NIST) zusammen mit der National Security Agency (NSA)
entwickelt und 1994 ver¨
offentlicht. Von diesem Algorithmus gibt es mehrere Versionen
und wir werden uns mit SHA-1 besch¨aftigen, welcher sich folgendermaßen charakterisieren l¨asst und in Abbildung 10.5 zu sehen ist:
• Der Hash-Wert betr¨
agt bei dieser Variante 160 Bit und die Initial- bzw. Zwischenzust¨
ande werden in f¨
unf 32-Bit-Worten A, . . . , E gespeichert.
68
160
512
32
B
A
C
D
E
D
E
D
E
D
E
20 Runden mit f 1
C
B
A
20 Runden mit f 2
C
B
A
20 Runden mit f 3
C
B
A
20 Runden mit f 4
+
+
+
+
+
160
Abbildung 10.5: SHA-1: Schematischer Aufbau, die Additionen werden dabei mod 232
durchgef¨
uhrt
• Es gibt 80 Runden, jeweils 20 mit einer von vier verschiedenen Funktionen fj , welche Verkn¨
upfungen von logischen Operatoren sind und einer von vier Konstanten
cj . F¨
ur die ersten 20 Runden verwendet man f1 und c1 , f¨
ur die n¨achsten 20 Runden
f2 und c2 , etc. Die verwendeten Funktionen lauten f¨
ur die i-te Runde:


(B ∧ C) ∨ (¬B ∧ D)




B ⊕ C ⊕ D
(f¨
ur
(f¨
ur
fj (B, C, D) =

(B ∧ C) ∨ (B ∧ D) ∨ (C ∧ D) (f¨
ur




B ⊕ C ⊕ D
(f¨
ur
0 ≤ i ≤ 19)
20 ≤ i ≤ 39)
40 ≤ i ≤ 59)
60 ≤ i ≤ 79)
• Ein Nachrichtenblock von 512 Bit wird zu 80 32-Bit-Worten expandiert. Die ersten
16 Worte w0 , . . . , w15 sind die urspr¨
ungliche Nachricht, jedes weitere wj wird als
ein zyklischer Linksshift um eine Stelle (bezeichnet als ROL1 ) von jeweils vier
vorangegangenen, aufaddierten Nachrichten berechnet:
ROL1 (wj−16 ⊕ wj−14 ⊕ wj−8 ⊕ wj−3 )
(f¨
ur 16 ≤ j ≤ 79).
• In Runde i fließt das Wort wi , die Konstante cj , die Funktion fj und die momentanen Zwischenvariablen Ai , . . . , Ei mit ein und bilden die neuen Zwischenvariablen
69
Ai+1 , . . . , Ei+1 wie folgt:
Ai+1 = ROL5 (Ai ) + fj (i, Bi , Ci , Di ) + Ei + cj + wi ,
Bi+1 = Ai ,
Ci+1 = ROL30 (Bi ),
Di+1 = Ci ,
Ei+1 = Di .
Dies ist in Abbildung 10.6 veranschaulicht.
A
B
C
D
E
fj
+
+
ROL5
ROL30
A
B
C
D
+
wi
+
ci
E
Abbildung 10.6: SHA-1: Rundenfunktion, die Additionen werden mod 232 durchgef¨
uhrt
Nach Ausf¨
uhrung aller Runden, erh¨alt man nun den Hashwert, indem man die Variablen
A bis E aneinander h¨
angt, also A||B||C||D||E. SHA-1 wird mittlerweile seinem Namen
allerdings nicht mehr ganz gerecht, da man einige starke Angriffe gefunden hat, siehe
z. B. [WYY05]. In der Praxis ist SHA-1 allerdings (noch) ungebrochen.
10.5 Angriffsans¨
atze gegen Hashfunktionen
Einige Angriffsans¨
atze gegen Hashfunktionen werden im Folgenden kurz aufgelistet.
Meet-in-the-Middle Man kann eine Urbildsuche mithilfe der Meet-in-the-Middle-Methode
gegen eine Merkle-Damgard-Konstruktion ausf¨
uhren. Dabei muss der Angreifer die
verwendete Kompressionsfunktion invertieren k¨onnen.
70
1. Halbiere eine Nachricht in eine linke und eine rechte H¨alfte. Ver¨andere in der
linken H¨
alfte n/2 Stellen, wobei n die Hashwertl¨ange ist, so dass man 2n/2
verschiedene linke Nachrichtenh¨alften erh¨alt.
2. Berechne f¨
ur alle linken Nachrichtenh¨alften den Teil-Hashwert, tabelliere dieses Zwischenergebnisse (Vorw¨artsschritt).
3. Sortiere die Tabelle.
4. Rechne f¨
ur jede ebenso ver¨anderte rechte Nachrichtenh¨alfte vom gegebenen
Bild zum Zwischenergebnis zur¨
uck und suche dieses in der Tabelle (R¨
uckw¨
artsschritt). Ein Treffer bedeutet, dass man eine Kollision gefunden hat.
Fixpunkte Man nutzt Fixpunkte der Kompressionsfunktion f aus, um Kollisionen zu
erzeugen. Man sucht also Zwischenhashwerte h und Nachrichtenbl¨ocke m, f¨
ur die
gilt f (m||h) = h, so dass man nun unbemerkt Nachrichtenbl¨ocke einbauen kann.
Differentielle Analyse Bei der differentiellen Analyse von auf Blockchiffren basierenden
Hashfunktionen findet man eine Kollision, wenn man eine Ausgabedifferenz mit
dem Wert null finden kann.
10.5.1 Praktische Angriffe aus sinnlosen“ Kollisionen
”
Bekannte Angriffe (z. B. gegen den MD5-Hashalgorithmus) erzeugen Kollisionen, bei
denen der Angreifer einen gewissen Teil der Urbilder frei w¨ahlen kann, der Rest jedoch
(pseudo-)zuf¨
allig aussieht. Trotzdem lassen sich damit realistische Angriffe durchf¨
uhren,
davon wollen wir nun zwei besprechen.
Dokumentformate
Postscript (und viele andere Dokumentformate) erlauben Statements der Form
if X = Y then TEXT1 else TEXT2.
Sind Werte S, T bekannt, so dass H(if S) = H(if T ), so haben folgende Dokumente
denselben Fingerprint, f¨
uhren jedoch zu zwei v¨ollig unabh¨angigen Textausgaben:
• if S = S then TEXT1 else TEXT2
• if T = S then TEXT1 else TEXT2
X.509-Zertifikate f¨
ur RSA-2048 public keys
Einf¨
uhrend wollen wir kurz den RSA-Aufbau skizzieren und wie man damit Zertifikate erstellen kann. RSA ist ein asymmetrisches Verschl¨
usselungsverfahren, also wird mit
unterschiedlichen Schl¨
usseln ver- und entschl¨
usselt. Der ¨offentlich Schl¨
ussel zum Verschl¨
usseln (public key) ist ein Zahlenpaar (e, n), der geheime Schl¨
ussel zum Entschl¨
usseln
(secret key) lautet (d, n). Hierbei ist n das Produkt zweier großer, unterschiedlicher Primzahlen p und q. Der Wert e mit 1 < e < (p − q)(q − 1) ist teilerfremd zu (p − 1)(q − 1) und
71
d ist das multiplikative Inverse von e bez¨
uglich des Modulus (p − 1)(q − 1). Ein Sender
kann mit RSA Zertifikate f¨
ur eine zu sendende Nachricht erstellen, also die Integrit¨at
seiner Nachricht gew¨
ahrleisten, indem er z. B. einen Hashwert der Nachricht mit dem secret key verschl¨
usselt. Mithilfe des public keys, welcher dem Sender eindeutig zugeordnet
und ¨offentlich bekannt sein muss, kann ein Empf¨anger nun den Hashwert entschl¨
usseln,
pr¨
ufen, ob der Hash der gesendete Nachricht diesem signierten Hashwert entspricht und
¨
sich sicher sein, dass niemand die Daten bei der Ubertragung
ver¨andert hat, sofern sie
u
¨bereinstimmen.
Das Ziel bei diesem Angriff ist nun das Erzeugen von zwei verschiedenen Zertifikaten
mit unterschiedlichem Moduli n, n0 aber demselben Fingerprint. Das Problem ist nun,
dass diese Moduli Primzahl-Produkte sein m¨
ussen. Man nimmt an, es seien zwei 1024Bit-Werte q, q 0 gefunden, so dass die entsprechenden Zertifikatanf¨ange gleiche Hashwerte
haben (dies ist mit dem Angriff von Wang, beschreiben in [WLF+ 05], m¨oglich). Gesucht
ist nun ein b, so dass q · 21024 + b und q 0 · 21024 + b beides g¨
ultige RSA-Zahlen sind (also
2048-Bit-Primzahl-Produkte). Dieses b ermittelt man folgendermaßen:
1. W¨
ahle zwei ungef¨
ahr 500 Bit große Primzahlen p, p0 .
2. Solange b ≤ 21024 :
a) W¨
ahle das minimale b mit p|n = q · 21024 + b und p0 |n0 = q 0 · 21024 + b.
b) Falls n/p oder n0 /p0 nicht prim, erh¨ohe b um p · p0 .
3. Falls kein passendes b gefunden, w¨ahle neue Primzahlen p, p0 .
Die Erfolgswahrscheinlichkeit pro Iterationsschritt sind ungef¨ahr die Wahrscheinlichkeit,
dass zwei zuf¨
allige 1500-Bit-Zahlen prim sind, also ungef¨ahr (1/ log(21500 ))2 ≈ 10−6 . Auf
diese Weise erh¨
alt man zwei 2048-Bit-Zahlen, die (bei entsprechendem Zustand der Hashfunktion) auf den ersten 1024 Bit denselben Hashwert liefern (so wurden q, q 0 ja gew¨ahlt
und dann per Multiplikation mit 21024 auf die Position der ersten 1024 Bit verschoben).
Auf den zweiten 1024 Bit stimmen sie außerdem u
¨berein (da beide das gleiche b haben)
und somit sind zwei verschiedene Zertifikate gefunden worden, die denselben Hashwert
liefern.
72
11 Nachrichten-Authentifikation
11.1 Message Authentication Codes
Ein Message Authentication Code (MAC) ist nach [KL07] ein per symmetrischer Verschl¨
usselung erzeugter Pr¨
ufteil zur Authentifizierung einer gesendeten Nachricht (er dient
der Sicherung vor unbemerkter Manipulation). Es geht nicht um Geheimhaltung – also
findet keine wirkliche Verschl¨
usselung statt, sondern um Integrit¨at. Selbst beim OneTime-Pad mit perfekter Sicherheit kann man unbemerkt Bits flippen und so z. B. Geldbetr¨age ¨
andern (falls diese immer an einer festen Position stehen, was bei genau definierten Protokoll ja der Fall sein sollte). Kommen wir nun zu einer etwas formaleren
Definition eines MACs: Gegeben seien endliche Alphabete A, B, die Blockl¨ange n und
ein Schl¨
usselraum K. Ein MAC ist gegeben durch eine Familie von Abbildungen
MACk : A∗ → B n mit k ∈ K.
In der Regel gilt A = B = {0, 1}.
Die Anforderungen an einen MAC lauten:
• Gegeben k, muss MACk effizient berechenbar sein.
• Ein effiziente Angreifer mit Orakelzugriff auf MACk (mit zuf¨alligem Schl¨
ussel k)
kann f¨
ur keine Nachricht m, die er nicht an das Orakel gesendet hat, MACk (m)
berechnen. Ohne Wissen u
ussel kann ein Angreifer also nichts erstellen.
¨ber den Schl¨
Einige MACs werden im Folgenden kurz vorgestellt.
HMAC
Der HMAC basiert auf einer Hashfunktion, die verschachtelt verwendet und passend
gepaddet wird:
HMACk (m) = Hash((k ⊕ opad) || Hash((k ⊕ ipad) || m)).
Hierbei sind opad ( outer padding“) und ipad ( inner padding“) feste und ¨offentlich be”
”
kannte Konstanten. Ein innerer Hash reicht nicht, da man bei einer per Merkle-Damgard
erstellten Hash-Funktion, beliebiges an m anh¨angen k¨onnte und wieder einen g¨
ultigen
MAC erhalten w¨
urde.
CBC-MAC
Der CBC-MAC basiert im Gegensatz zum HMAC auf einer Blockchiffren. Es wird ein
Klartext m mit dieser Blockchiffren im CBC-Modus mit dem Nullvektor als Initialisierungsvektor verschl¨
usselt. Der letzte Block dieses Chiffrats ergibt dann den MAC.
73
Achtung: Der CBC-MAC ist bei variabler Nachrichtenl¨ange formal unsicher! Ein Angriff,
der bei variabler Nachrichtenl¨
ange erfolgen kann, lautet:
1. Erfrage MAC a f¨
ur Nachricht m = (m1 , ..., mx )
2. Erfrage MAC b f¨
ur Nachricht n = (a, n1 , ..., ny )
3. Die Nachricht z = (m1 , . . . , mx , 0, n1 , . . . , ny ) hat nun ebenfalls den MAC b.
Eine Modifikation des Angriffs produziert aus den MACs von zweite beliebigen Nachrichten (d. h. ohne a = MAC (m) als ersten Block der zweiten Nachricht) einen neuen
g¨
ultigen MAC:
1. Erfrage MAC a f¨
ur Nachricht m = (m1 , ..., mx )
2. Erfrage MAC b f¨
ur Nachricht n = (n1 , ..., ny )
3. Die Nachricht z = (m1 , . . . , mx , a ⊕ n1 , n2 , . . . , ny ) hat nun ebenfalls den MAC b.
OMAC (One-key MAC)
Der OMAC basiert wie der CBC-MAC auf einer Blockchiffre. Im Wesentlichen ist es der
CBC-MAC mit folgenden Modifikationen:
• Auf den letzten Nachrichtenblock mn wird vor Berechnung des MACs ein schl¨
usselabh¨
angiger Wert addiert, also z. B. mn ⊕ Enck (0 . . . 0)
• Der MAC ist auch nur ein Teilstring des letzten Chiffrat“-Blocks und nicht der
”
gesamte Block.
Carter-Wegman
Um zu einer Nachricht m der L¨
ange |m| einen MAC s der L¨ange |s| zu erhalten, wird bei
Carter-Wegman m als Bitvektor interpretiert, eine 1“ angeh¨angt und der entstandene
”
Vektor mit einer (|m| + 1) × |s|-Matrix k (dem Signaturschl¨
ussel) multipliziert. Es gilt
zu beachten, dass jeder Signaturschl¨
ussel nur einmal verwendbar ist!
11.2 Abstreitbare Authentifikation
Man stelle sich folgendes Szenario vor: Man will einer Gruppe von Kommunikationsteilnehmern beweisen, dass man eine Nachricht verfasst hat, aber anschließend, nach erfolgter Authentifikation, soll es diesen nun nicht mehr m¨oglich sein, unbeteiligten Dritten
zu beweisen, wer der Autor dieser authentifizierte Nachricht war. Wie die L¨osung dieses
scheinbaren Widerspruchs m¨
oglich ist, wird nun erl¨autert. Anstatt eine Nachricht mi direkt (nicht-abstreitbar) zu signieren, verwendet man MACs mit Zufallsschl¨
ussel ki und
einem Zeitstempel ti . F¨
ur einen gewissen Zeitraum kann man nun Nachrichten signieren,
anschließend sollte es jedem m¨
oglich sein, Nachrichten zu signieren und zwar wie folgt:
Man sendet ki−1 nicht-abstreitbar signiert zusammen mit der Nachricht mi , also
(mi , MACki (mi ), ti , ki−1 , sign(ki−1 , ti )).
74
Dann ist die Authentifizierbarkeit erf¨
ullt, erh¨alt man n¨amlich (mi , MACki (mi )) vor dem
Zeitpunkt ti+1 und sp¨
ater eine g¨
ultige Signatur sign(ki , ti+1 ), so ist die Nachricht mi
authentisch. Die Abstreitbarkeit ist aber auch gew¨ahrleistet, denn sobald ki ¨offentlich
ist, kann jedermann beliebige Tupel
(m0i , MACki (m0i ), ti , ki−1 , sign(ki−1 , ti ))
berechnen.
Beispiele f¨
ur die Verwendung von abstreitbarer Authentifikation sind Off-the-Record
Messaging (OTR, f¨
ur Instant Messaging) und TESLA (ein Broadcasting-AuthentifizierungsProtokoll), welches in [PCTS02] beschrieben wird.
75
Literaturverzeichnis
[BDPR98] Bellare, Mihir ; Desai, Anand ; Pointcheval, David ; Rogaway, Phillip:
Relations among notions of security for public-key encryption schemes. In:
Krawczyk, Hugo (Hrsg.): Advances in Cryptology – CRYPTO 1998 Bd.
1462. Springer Berlin / Heidelberg, 1998. – ISBN 978–3–540–64892–5, S.
26–45
[Bih94]
Biham, Eli: New Types of Cryptanalytic Attacks Using Related Keys. In:
Helleseth, Tor (Hrsg.): Advances in Cryptology – EUROCRYPT 1993 Bd.
765. Springer Berlin / Heidelberg, 1994. – ISBN 978–3–540–57600–6, S.
398–409
[BKR11]
Bogdanov, Andrey ; Khovratovich, Dmitry ; Rechberger, Christian:
Biclique Cryptanalysis of the Full AES. In: Lee, Dong (Hrsg.) ; Wang,
Xiaoyun (Hrsg.): Advances in Cryptology – ASIACRYPT 2011 Bd. 7073.
Springer Berlin / Heidelberg, 2011. – ISBN 978–3–642–25384–3, S. 344–371
[BW00]
Biryukov, Alex ; Wagner, David: Advanced Slide Attacks. In: Preneel,
Bart (Hrsg.): Advances in Cryptology – EUROCRYPT 2000 Bd. 1807. Springer Berlin / Heidelberg, 2000. – ISBN 978–3–540–67517–4, S. 589–606
[CPS08]
Coron, Jean-S´ebastien ; Patarin, Jacques ; Seurin, Yannick: The Random
Oracle Model and the Ideal Cipher Model Are Equivalent. In: Wagner,
David (Hrsg.): Advances in Cryptology – CRYPTO 2008 Bd. 5157. Springer
Berlin / Heidelberg, 2008. – ISBN 978–3–540–85173–8, S. 1–20
[Gei09]
Geiselmann, Dr. W.: Datensicherheitstechnik (Signale, Codes und Chiffren
II). Universit¨
at Karlsruhe, Institut f¨
ur Algorithmen und Kognitive Systeme,
2009
[HKT11]
¨ nzler, Robin ; Tessaro, Stefano: The equivaHolenstein, Thomas ; Ku
lence of the random oracle model and the ideal cipher model, revisited. In:
Proceedings of the 43rd annual ACM symposium on Theory of computing.
New York, NY, USA : ACM, 2011 (STOC 2011). – ISBN 978–1–4503–0691–
1, S. 89–98
[KL07]
Katz, Jonathan ; Lindell, Yehuda: Introduction to Modern Cryptography
(Chapman & Hall/Crc Cryptography and Network Security Series). Chapman & Hall/CRC, 2007. – ISBN 1584885513
[Luc04]
Lucks, Stefan: Design Principles for Iterated Hash Functions. Cryptology
ePrint Archive, Report 2004/253, 2004
76
[MH81]
Merkle, Ralph C. ; Hellman, Martin E.: On the security of multiple
encryption. In: Commun. ACM 24 (1981), Juli, Nr. 7, S. 465–467. http:
//dx.doi.org/10.1145/358699.358718. – DOI 10.1145/358699.358718. –
ISSN 0001–0782
[NP10]
Nandi, Mridul ; Paul, Souradyuti: Speeding Up the Wide-Pipe: Secure and
Fast Hashing. In: Gong, Guang (Hrsg.) ; Gupta, Kishan (Hrsg.): Progress
in Cryptology – INDOCRYPT 2010 Bd. 6498. Springer Berlin / Heidelberg,
2010. – ISBN 978–3–642–17400–1, S. 144–162
[OW06]
Oorschot, Paul van ; Wiener, Michael: A Known-Plaintext Attack on
Two-Key Triple Encryption. In: Damg˚
ard, Ivan (Hrsg.): Advances in Cryptology – EUROCRYPT 1990 Bd. 473. Springer Berlin / Heidelberg, 2006. –
ISBN 978–3–540–53587–4, S. 318–325
[PCTS02] Perrig, Adrian ; Canetti, Ran ; Tygar, J. D. ; Song, Dawn: The TESLA
Broadcast Authentication Protocol. 2002
[WLF+ 05] Wang, Xiaoyun ; Lai, Xuejia ; Feng, Dengguo ; Chen, Hui ; Yu, Xiuyuan: Cryptanalysis of the Hash Functions MD4 and RIPEMD. In: Cramer,
Ronald (Hrsg.): Advances in Cryptology – EUROCRYPT 2005 Bd. 3494.
Springer Berlin / Heidelberg, 2005. – ISBN 978–3–540–25910–7, S. 551–551
[WYY05] Wang, Xiaoyun ; Yin, Yiqun L. ; Yu, Hongbo: Finding Collisions in the
Full SHA-1. In: In Proceedings of Crypto, Springer, 2005, S. 17–36
77