SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer...

76
Symmetrische Verschlüsselungsverfahren Karlsruher Institut für Technologie, SS 2012 Daniel Kraschewski Skript-Ausarbeitung: Jonas Böhler Grundlage: Datensicherheitstechnik/SCC2-Skript 8. Mai 2013

Transcript of SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer...

Page 1: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Symmetrische VerschlüsselungsverfahrenKarlsruher Institut für Technologie, SS 2012

Daniel KraschewskiSkript-Ausarbeitung: Jonas Böhler

Grundlage: Datensicherheitstechnik/SCC2-Skript

8. Mai 2013

Page 2: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Inhaltsverzeichnis

1 Einführung 41.1 Analytische Angriffe gegen Kryptosysteme . . . . . . . . . . . . . . . . . . 4

2 Historische Kryptoverfahren 62.1 Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.1 Caesar-Chiffre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1.2 Vigenère-Chiffre . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2 Permutation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3 Rotorenchiffren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3.1 Die Hagelin-Maschine C-34 . . . . . . . . . . . . . . . . . . . . . . 10

3 Einführung zu Blockchiffren & Konstruktionen 123.1 Definitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.2 DES (Data Encryption Standard) . . . . . . . . . . . . . . . . . . . . . . . 13

4 Meet-in-the-Middle, Slide-Attack & Related-Key-Attack 194.1 Meet-in-the-Middle gegen 2DES . . . . . . . . . . . . . . . . . . . . . . . . 194.2 Advanced Meet-in-the-Middle gegen 2Key-3DES . . . . . . . . . . . . . . 20

4.2.1 Eine Variante per Known-Plaintext-Attack . . . . . . . . . . . . . 224.3 Slide-Attack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.4 Advanced Slide-Attack gegen DES-X . . . . . . . . . . . . . . . . . . . . . 254.5 Related-Key-Attack am Beispiel LOKI89 . . . . . . . . . . . . . . . . . . . 26

5 Lineare Kryptoanalyse 305.1 FEAL-4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.2 DES: Lineare Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

6 Differentielle Kryptoanalyse 376.1 DES: Differentielle Kryptoanalyse . . . . . . . . . . . . . . . . . . . . . . . 37

6.1.1 Angriff gegen einen 2n-Runden-DES . . . . . . . . . . . . . . . . . 406.2 Skipjack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

7 AES (Advanced Encryption Standard) 467.1 Aufbau und Funktionsweise . . . . . . . . . . . . . . . . . . . . . . . . . . 467.2 Schwächen und beste bekannte Angriffe . . . . . . . . . . . . . . . . . . . 49

2

Page 3: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

8 Betriebsmodi für Blockchiffren 508.1 ECB: Electronic Codebook Mode . . . . . . . . . . . . . . . . . . . . . . . 508.2 CBC: Cipher Block Chaining Mode . . . . . . . . . . . . . . . . . . . . . . 518.3 CFB: Cipher Feedback Mode . . . . . . . . . . . . . . . . . . . . . . . . . 528.4 OFB: Output Feedback Mode . . . . . . . . . . . . . . . . . . . . . . . . . 548.5 CTR: Counter Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558.6 Probleme bei schwachen Verfahren . . . . . . . . . . . . . . . . . . . . . . 568.7 Vergleich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

9 Formale Sicherheitsbegriffe 589.1 Beziehungen zwischen den Begriffen . . . . . . . . . . . . . . . . . . . . . 60

10 Hashfunktionen 6210.1 Definition und Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . 6210.2 Merkle-Damgård- & Feistel-Konstruktion . . . . . . . . . . . . . . . . . . 6310.3 Äquivalenz von Krypto-Primitiven . . . . . . . . . . . . . . . . . . . . . . 6410.4 Aufbau von SHA-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6710.5 Angriffsansätze gegen Hashfunktionen . . . . . . . . . . . . . . . . . . . . 69

10.5.1 Praktische Angriffe aus „sinnlosen“ Kollisionen . . . . . . . . . . . 70

11 Nachrichten-Authentifikation 7211.1 Message Authentication Codes . . . . . . . . . . . . . . . . . . . . . . . . 7211.2 Abstreitbare Authentifikation . . . . . . . . . . . . . . . . . . . . . . . . . 73

3

Page 4: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

1 Einführung

Die Grundlage für dieses Skript bildet das Vorlesungsskript [Gei09]. Sofern nicht weiterangegeben, werden Verschlüsselungsfunktionen in Abbildungen bzw. im Text mit E fürEncryption und Entschlüsselungsfunktionen mit D für Decryption bezeichnet. Darüberhinaus werden Klartexte als m für Message, Geheimtexte mit c für Code und Schlüsselmit k für Key bezeichnet.

1.1 Analytische Angriffe gegen Kryptosysteme

Bei der Kryptoanalyse wird davon ausgegangen, dass der Gegner ungehinderten Zu-gang zum ungesicherten Übertragungssystem hat (also beliebig viel Chiffretexte emp-fangen kann). Ferner nimmt man an, dass das Kryptoverfahren bekannt, der Schlüsselaber geheim ist. Die Sicherheit des Verfahrens beruht allein auf der Geheimhaltung desSchlüssels und nicht den Details des Kryptoverfahrens; dies ist als Kerckhoffs’ Prinzipbekannt.Die nachfolgende Auflistung der Angriffsarten ist aufsteigend nach der Stärke des An-griffs geordnet:Ciphertext-Only Attack Es stehen nur die abgefangenen Chiffretexte zur Verfügung.

Der Angreifer hat also Zugriff auf den unsicheren Kommunikationskanal, was stetsvorausgesetzt wird.

Known-Plaintext-Attack Es stehen bekannte Klartext-Chiffretext-Paare zur Verfügung.Hilfreich zur Schlüsselermittlung sind unter anderem verschlüsselte Anfangs- undEndphrasen, z. B. „Mit freundlichem Gruß“. So war es für das Brechen der Enigma-Verschlüsselung, um ein konkreteres Beispiel zu nennen, sehr nützlich zu wissen,dass viele codierte Nachrichten, die abgefangen wurden, unter anderem ein Text-fragment der Form „(An das) Oberkommando der Wehrmacht“ enthielten. Da auchgenaue Wettervorhersagen für militärische Aktionen von Bedeutung sind, wurdendiese von Wetterstationen ebenso verschlüsselt und man konnte, sofern die Vor-hersagen einigermaßen akkurat waren, ziemlich sicher sein, was der Inhalt dieserabgefangenen Nachrichten wohl sein könnte.

Chosen-Plaintext-Attack Es stehen beliebige Klartext-Chiffretext-Paare zur Verfügung.Man kann also selbstgewählte Klartexte verschlüsseln bzw. indirekt verschlüsselnlassen. Dies erscheint zuerst unrealistisch, aber man kann es sich als eine ArtBlack-Box-Szenario vorstellen, bei welchem der Angreifer zwar Zugriff auf ein Ver-schlüsselungssystem, aber nicht den Schlüssel selbst hat. Direkt kann dieser Zugriff

4

Page 5: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

sein, falls z. B. ein Server, der bestimmte Anfragen automatisch verschlüsselt imSpiel ist. Und indirekt könnte man z. B. das Wort „Vandalismus“ verschlüsseln las-sen, indem man vor den Augen eines Streifenpolizisten ein öffentliches Gebäudemit Graffiti besprüht und darauf wartet, dass er einen verschlüsselten Funkspruchabsetzt. Sollte der Polizeifunk allerdings unverschlüsselt erfolgen, hat man sichwohl umsonst verhaften lassen.

Zu den in der Kryptoanalyse verwendeten Methoden zählen die folgenden Strategien:

• Vollständige Suche: Man durchsucht den ganzen Schlüsselraum nach dem passen-den Schlüssel.

• Trial-and-Error-Methode: Man testet gewisse Möglichkeiten und überprüft dieseauf Fehlerfreiheit.

• Statistische Methoden: Häufigkeitsanalysen (z. B. Buchstaben- oder Worthäufigkeitdes Klartextes und des Chiffrats).

• Strukturanalyse von Kryptosystemem: Beispielsweise das Lösen von Gleichungssys-temen.

5

Page 6: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

2 Historische Kryptoverfahren

In der klassischen Kryptographie gibt es im Wesentlichen zwei Werkzeuge zur Transfor-mation von Klar- in Chiffretext:

Code Ein System zur Substitution ganzer Nachrichten oder Teilen davon, Wörtern oderSilben einer Sprache durch Wörter/Zahlenfolgen einer anderen, häufig künstlichen,Sprache. Sie arbeiten also auf semantischen Einheiten und entsprechen gewisser-maßen einem festgelegten Wörterbuch. Zu den Nachteilen zählt, dass die Trans-formation gleicher Klartexte zu immer gleichen Chiffren führt, man ein großesWörterbuch benötigt und man sich auf vorher vereinbarte Sachverhalte, für dieman Codewörter erstellt, einschränken muss.

Chiffre Ein universelles Verfahren, das eine Anzahl an Kryptooperationen (Substitutionoder Permutation) benutzt, um einen beliebigen Klartext in einen Chiffretext um-zuwandeln. Einheiten fester Länge des Klartextextes werden Einheiten fester Längedes Chiffretextalphabets zugeordnet. Man operiert auf syntaktischen Einheiten.

Die oben erwähnten Kryptooperationen zur Transformation von Klartexten in Chiffre-texten werden in zwei Typen unterteilt:

1. Substitution und

2. Permutation,

welche in den nächsten zwei Abschnitten näher erläutert werden.

2.1 Substitution

2.1.1 Caesar-Chiffre

Bei der Caesar-Chiffre wird jedes Zeichen des Klartextes um den Schlüssel-Wert k imAlphabet verschoben. Man wählte bei dieser Chiffre k = 3 fest und dadurch ergibt sichfolgende Chiffrierabbildung:

Ek :

A 7→ D

...Z 7→ C

.

Dies verstößt allerdings gegen das Kerckhoffs’sche Prinzip, denn aufgrund des fest ge-wählten, immer gleichen Schlüssels ist der gesamte Algorithmus geheim zu halten, nicht

6

Page 7: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

nur der Schlüssel selbst. Dennoch war diese Verschlüsselung gar nicht so schlecht, schließ-lich konnte damals ohnehin kaum jemand lesen.

AngriffUm eine solche simple Substitution anzugreifen, betrachtet man die Zeichenhäufigkeit.In der deutschen Sprache ist z. B. das E der häufigste Buchstabe, ist im Chiffrat nunF der häufigste, so wurde mit hoher Wahrscheinlichkeit der Schlüssel k = 1 verwendet.Und kennt man den Klartext bzw. Teile davon, kann man den Schlüssel leicht ermitteln.

2.1.2 Vigenère-Chiffre

Bei der Vigenère-Chiffre wird eine möglichst lange Schlüsselfolge (im Beispiel COVER)anstatt eines konstanten Schlüssels wie bei der Caesar-Chiffre verwendet.

Klartext: THEMATHEMATICALSchlüsselfolge: COVERCOVERCOVER

Chiffretext: WWARSWWARSWXYFD

(Das sich wiederholende Muster WWARS lässt hier schon ohne jegliche Information überden Klartext auf die richtige Periode 5 schließen.)

AngriffeMan kann verschiedene Angriffe gegen Vigenère anwenden, von denen wir einige aufzäh-len wollen:• Man kann die Schlüssellänge raten/durchprobieren (es sind wahrscheinlich nurwenige 100) und es anschließend wie Caesar brechen (siehe dazu den nächstenTeilabschnitt).• Die Autokorrelationsfunktion, welche die relative Häufigkeit von übereinstimmen-den Stellen eines Textes mit sich selbst um einige Stellen verschoben angibt, hateinen Peak bei der Schlüsselperiode, was hilfreich ist.• Die Methode von Kasiski & Friedman: Der Koinzidenzindex des Chiffrats, d. h. dieWahrscheinlichkeit, dass an zwei zufälligen Stellen eines Textes dasselbe Zeichensteht, sinkt bei steigender Schlüssellänge. (Siehe dazu den übernächsten Teilab-schnitt).

Diese Chiffre galt lange Zeit als unbrechbar („Le Chiffre indéchiffrable“) und ist tatsäch-lich perfekt, wenn die Schlüssellänge gleich der Länge des Klartexts ist (und man somitden One-Time-Pad erreicht hat).

Angriff: CaesarHat man die Periodizität l der Schlüsselfolge erkannt, kann man Vigenère wie Caesarbrechen: Man schreibt den Chiffretext in Spalten der Länge l nebeneinander, wie es inAbbildung 2.1 zu sehen ist, und hat in jeder Zeile eine Caesar-Verschlüsselung.

7

Page 8: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

1 l + 1 · · · ← Caesar2 l + 2 · · ·...

... . . .l 2l · · ·

Abbildung 2.1: Anordnung des Chiffretexts zum Brechen der Vigènere-Chiffre

Man hat allerdings nicht immer das Glück, dass gleiche Teilfolgen im Klartext mit dergleichen Schlüssellänge verschlüsselt wurden (sind sie aber entstanden, dann ist ihr Ab-stand ein Vielfaches der Schlüsselperiodizität). Im allgemeinen Fall wendet man dieMethode von Kasiski und Friedman an.

Angriff: Kasiski und Friedman

Definition 2.1.1: (Koinzidenzindex): Der Koinzidenzindex Ic eines Chiffretextes c gibtdie Wahrscheinlichkeit dafür an, dass zwei unabhängig voneinander gewählte Zeichendes Chiffretextes c gleich sind. (Sinkt bei steigender Schlüssellänge.)

Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängtder Koinzidenzindex Ic nicht vom Schlüssel k, sondern lediglich von den statistischenEigenschaften der Klartextquelle ab. Für englische Texte gilt z. B. Ic ≈ 0, 065. DieseUnabhängigkeit von Ic bei der Caesar-Chiffre wird für die Ermittlung der Periodenlänge,wie unten beschrieben, ausgenutzt.

Es sei ni die absolute Häufigkeit des Zeichens ai aus dem Alphabet A in dem Chiffretextder Länge n. Dann gibt es

(ni2)

= ni(ni−1)2 Möglichkeiten das Paar aiai auszuwählen:

Ic =∑ai∈A

(ni2)(n

2) =

∑ai∈A ni(ni − 1)n(n− 1) = Anzahl günstiger Fälle

Anzahl möglicher Fälle(2.1)

≈∑ai∈A

(nin

)2(für großes n) (2.2)

Ordnet man den Chiffretext der Länge n wie im vorherigen Bild in l Zeilen an, danngilt:

1. Es gibt n(nl − 1) Möglichkeiten, Zeichenpaare in derselben Zeile auszuwählen.(Für jedes der n Zeichen, welches man als Erstauswahl betrachtet, hat man n

l − 1verbleibende Zeichen in der gleichen Zeile, die man als Zweites auswählen kann.)

2. Es gibt n(n− nl ) Möglichkeiten, Zeichenpaare in verschiedenen Zeile auszuwählen.

Sei p die Wahrscheinlichkeit dafür, in derselben Zeile gleiche Zeichenpaare auszuwählen.Falls die Zeilenanzahl l gleich der Periode der Schlüsselfolge ist, dann kann p durch denKoinzidenzindex

∑ai∈A p

2i approximiert werden (für genügend großes n), da hier eine

Caesar-Chiffrierung vorliegt (dabei bezeichnet pi die Wahrscheinlichkeit dafür, dass die

8

Page 9: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Klartextquelle das Zeichen ai aussendet). Ansonsten betrachtet man die Wahrschein-lichkeit, in verschiedenen Zeilen gleiche Zeichenpaare auszuwählen, wobei hier von einerGleichverteilung der Zeichen auszugehen ist (Schlüssel mit unendlicher Periode), also≈∑ai∈A(1/|A|)2 = 1/|A|.

Man erhält somit als Approximation für den Koinzidenzindex:

Ic = 1n(n− 1) ·

n(nl− 1

)·∑ai∈A

p2i + n

(n− n

l

)· 1|A|

(2.3)

Also gerade die Anzahl passender Zeichenpaare (in großen Klammern) durch die Anzahlaller möglichen Zeichenpaare.Die Periodenlänge einer Vigenère-Chiffre bestimmt man wie folgt:

1. Berechne den Koinzidenzindex gemäß (2.1) oder (2.2).2. Vergleiche diesen mit den ermittelten theoretischen Werten für verschiedene Werte

von l nach (2.3).Man erhält so zwar nicht immer das korrekte l, aber der Vergleich des „gemessenen“Koinzidenzindex mit dem theoretisch zu erwartenden Wert gibt Aufschluss über dieverwendete Chiffre; ob es eine Permutations- oder Caesar-Chiffre oder eine Vigenère-Chiffre mit kleinerer oder größerer Periode ist (für kleinere steigt Ic, man nähert sichCaesar, für größere sinkt Ic, man nähert sich dem One-Time-Pad).

VariantenEs folgen Varianten von Vigenère, die die periodische Wiederholung des Schlüssels mei-den (und somit nicht mit Kasiski und Friedman zu brechen sind):• Man wählt einen Schlüsselanfang der Länge l und verschlüsselt die ersten l Klar-textzeichen mit diesem Schlüssel. Dann wird der Klartext als Schlüssel verwendet.• Man wählt einen sich nicht wiederholenden Text als Schlüssel. Wählt man abereinen Text einer natürlichen Sprache, dann kann man über die relative Häufigkeitder Zeichen dieser Sprache hochwahrscheinliche Paare von Klartext- und Schlüssel-buchstaben angeben und durch Ausprobieren Teilfolgen des Schlüssels und Klar-textes bestimmen. Fehlende bzw. unsichere Buchstaben kann man durch Kon-textbetrachtung gewinnen, hierbei sind Häufigkeitsverteilungen von Bigrammen,Trigrammen, etc. sowie Einzelwortwahrscheinlichkeiten nützlich.• One-Time-Pad: Man verwendet eine echte Zufallsfolge, die genauso lang wie derKlartext ist als Schlüssel und verwendet diesen nur ein einziges Mal. (Die einzigeChiffre, die perfekt sicher ist.)

2.2 Permutation

Bei der Permutation werden Texte in Blöcke fester Länge eingeteilt und die Blockinhalteüber Schlüssel permutiert.

9

Page 10: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

AngriffEin Angriff kann über die Aufstellung einer Bigramm-Statistik erfolgen:

1. Rate die Blocklänge L durch vollständiges Durchprobieren, L muss dabei die Chif-fratlänge teilen.

2. Schreibe das Chiffrat Zeilenweise in eine Matrix der Breite L.3. Berechne für je zwei Spalten i, j die Wahrscheinlichkeit, dass im Klartext i direkt

vor j stand.4. Die erste Klartextspalte hat keinen „wahrscheinlichen Vorgänger“, es folgt also

jeweils der „wahrscheinlichste Nachfolger“.

2.3 Rotorenchiffren

Man begann am Anfang des 20. Jahrhunderts, eine große Anzahl verschiedener Substitu-tionen zum Verschlüsseln zu verwenden. Und zwar wechselte man diese Substitutionenregelmäßig nach dem Verschlüsseln eines einzelnen Zeichens. Diese große Anzahl vonWechseln ließ sich manuell kaum noch bewerkstelligen, sodass man (elektro-)mechanischeMaschinen entwickelte, die diese Substitutionen und ihre Wechsel durchführten.

2.3.1 Die Hagelin-Maschine C-34

Die Hagelin C-34 ist eine Rotormaschine, deren Rotoren binäre Werte zurückgeben, diedurch zyklisch rückgekoppelte binäre Schieberegister beschrieben werden können. Mitdiesen Rotoren wird eine Pseudozufallsfolge generiert, mit deren Hilfe eine Vigenère-Verschlüsselung durchgeführt wird. Wie die meisten historischen Rotormaschinen arbei-tet sie über den Zahlen von 0 bis 25, also über Z26. Die Rotoren sind zyklisch rückge-koppelte Schieberegister der Längen 17, 19, 20, 21 und 23. Da die Längen der Rotorenpaarweise teilerfremd sind, ergibt sich eine Periodenlänge von 17·19·20·21·23 = 3120180.Ihre Ausgaben werden als die Binärdarstellung eines Index in eine Schlüsselliste aufge-fasst. (Der Index in die Schlüsselliste ist 5 Bit lang, welche somit 32 Werte aus Z26enthält.) Von diesem so indizierten Wert wird der Klartext subtrahiert (Modulo 26).Die hier verwendete Subtraktion hat den Vorteil, dass das System selbstinvers ist. DerSchlüssel dieses Verfahrens, welches in Abbildung 2.2 zu sehen ist, wird von der Initial-belegung der Schieberegister und dem Inhalt der Schlüsselliste gebildet.

AngriffDie Idee des Angriffs ist es nicht die exakten Einstellungen und somit den Schlüsseldieser Maschine zu ermitteln, sondern nur äquivalente Einstellungen zu finden, die eseinem ermöglichen, Texte zu dechiffrieren.

1. Mithilfe von Klartext-Chiffrat-Paaren kann man den Schlüsselstrom erhalten, aberder Index bleibt unbekannt.

10

Page 11: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

2. Schreibt man ein häufig vorkommendes Zeichen am Anfang der Schlüsselliste (s[0]),kann man z. B. die Nullerfolge als Index annehmen. Somit sind die Rotoren-Wertegleich 0.

3. Man sucht nun nach Rotorenstellungen, in der 4 von 5 Ausgabebits bekannt sind,vervollständigt das 5. Ausgabebit (sodass man einen neuen Index erhält) und eben-so die Schlüsselliste (indem man den Schlüssel-Buchstaben an der mometane Ro-torenposition einfügt)

4. Schließlich wiederholt man den dritten Schritt bis alles vollständig ermittelt wurde.

Rotor 5

Rotor 4

Rotor 3

Rotor 2

Rotor 1

Schlüsselliste s[0]s[1]...

s[30]s[31]

−Klartext Chiffretext

Index in die Schlüsselliste

Abbildung 2.2: Struktur der Hagelin-Maschine

11

Page 12: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

3 Einführung 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üsselraum K. Eine Blockchiffre ist gegeben durch eine Familie von in-jektiven Abbildungen fk : An → Bm mit k ∈ K. In der Regel gilt A = B = {0, 1} undn = m (die fk sind dann zwangsläufig bijektiv).

Blockchiffren sind meist Produktchiffren, d. h. mehrere Substitutionen (S-Boxen, vonShannon bezeichnet als „confusion“) und Permutationen (P -Boxen, „diffusion“) hinter-einander, da wir wissen, dass einfache Substitutions- und Permutations-Chiffren nichtsicher sind. Bei einer Blockchiffre teilt man einen Klartext in Blöcke fester Länge einund chiffriert diese einzeln mit einer für alle Blöcke gleichen Verschlüsselungsfunktion.Als sequentielle Chiffren oder Stromchiffren bezeichnet man Verschlüsselungsverfahren,bei denen die Folge von Klartextzeichen nacheinander mit einer in jedem Schritt vari-ierenden Funktion verschlüsselt wird. Es wird also ein Klartext mit unabhängig davonerzeugten Schlüsselstrom (Zufall) verknüpft.

AnforderungenDamit man auch effizient nutzbare und sichere Blockchiffren hat, müssen folgende An-forderungen gelten:• Gegeben den Schlüssel k, muss sowohl fk als auch f−1

k effizient berechenbar sein.• Ein Angreifer kann nicht unterscheiden zwischen einem Orakel Oi (ideal), welcheseine zufällige InjektionAn → Bm implementiert, und dem OrakelOr (real), welchesdie gegebene Blockchiffre mit zufälligem Schlüssel implementiert. Formal lässt sichdies über Wahrscheinlichkeiten definieren, wobei AO bedeutet, dass der AngreiferA Zugriff auf das Orakel O hat:

|P [AOi → 0]− P [AOr → 0]| = negligible(|k|).

Hierbei gilt zu beachten, dass A polynomial beschränkt ist und wenn man eineFunktion µ als negligible („vernachlässigbar“) bezeichnet, bedeutet dies, dass dieFunktion asymptotisch schneller verschwindet als jedes Polynom. Formaler ausge-drückt sagt man, dass eine Funktion µ negligible ist, sofern gilt:

∀d ∈ N ∃x0 ∈ N ∀x > x0 : |µ(x)| < x−d.

12

Page 13: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Achtung: Diese asymptotische Aussage betrifft keine konkrete Schlüssellänge. Man willdas Problem eines Angriffs nämlich so allgemein wie möglich beschreiben, darum gibtes keine exakte Angabe eines Sicherheitsparameters (z. B. einer Schlüssellänge). Es mussnur gezeigt werden, dass der Aufwand für einen Angreifer im Vergleich zu dem Aufwandeines Nutzers in Abhängigkeit dieses Parameters viel schneller wächst. Sollte dann einSicherheitssystem gebrochen werden (z. B. aufgrund des technischen Fortschritts bei derRechnerentwicklung, die ein schnelleres Durchsuchen des Schlüsselraums erlaubt), kannman einfach diesen Parameter vergrößern, um das System erneut abzusichern.

Ideal Cipher

Eine Ideal Cipher (IC) ist eine (Über-)Idealisierung einer Blockchiffre. Jedem Schlüsselk ∈ {0, 1}λ ist eine vollkommen zufällige Permutation Pk : {0, 1}n → {0, 1}n zugeordnet(hierbei sind λ und n Sicherheitsparameter) und per Orakelzugriff kann jede Maschineim Modell die Funktionen Pk und P−1

k auswerten. Die Existenz einer solchen IC wirdzur Vereinfachung von Beweisen angenommen, man spricht dann von dem Ideal-Cipher-Modell.

Achtung: Es gibt (pathologische) Protokolle, die zwar im idealisierten IC-Modell be-weisbar sicher sind, jedoch alle Sicherheit verlieren, wenn man die IC durch einen öffent-lich bekannten, volldeterministischen Algorithmus ersetzt. Der Unterschied zu Definition3.1.1 liegt darin, dass der Angreifer den Schlüssel kennt (bzw. ihn sogar wählt).

3.2 DES (Data Encryption Standard)

Der Data Encryption Standard (DES) wurde von IBM mit Unterstützung der Natio-nal Security Agency in den 70ern entworfen. Aufgrund seiner geringen Schlüssellängevon effektiv nur 56 Bit wird er als nicht mehr sicher angesehen. Im Jahre 1998 wurdeDES durch einen 250.000$-Parallelrechner der Electronic Frontier Foundation (EFF) ge-brochen, dieser durchsuchte einfach den gesamten Schlüsselraum in etwa neun Tagen.Allerdings gibt es trotz intensiver Forschungsarbeiten keinen wirklichen Angriff, der inder Praxis besser ist als das bloße Durchprobieren aller möglichen Schlüssel. Darumentwickelte man verbesserte Varianten von DES, die wir am Ende dieses Abschnittsvorstellen werden.

Die Abbildung 3.1 zeigt den groben Aufbau von DES. Am Anfang findet eine Permutati-on satt und am Ende wird deren inverse Permutation ausgeführt, da diese Permutationenaber fest und bekannt sind, können sie für unsere weitere Betrachtung des DES entfallen.Es gilt auch, dass die Ver- und Entschlüsselung aufgrund der Konstruktionseigenschaftbis auf die (genau umgekehrte) Reihenfolge der verwendeten Teilschlüssel identisch sind.Um genauer auf den Aufbau des DES einzugehen, müssen wir erst erklären, was manunter einem Feistel-Netzwerk versteht. In [KL07] wird es beschrieben als eine alternativezur Verwendung einfacher Substitutionen und Permutationen zur Erstellung von Block-chiffren. Zwar werden diese meistens auch innerhalb eines Feistel-Netzwerkes genutzt,

13

Page 14: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Input

64 Bit

Initiale Permutation

32 Bit 32 Bit

F

k1

...

F

k16

Inverse Initiale Permutation

Output

L0

L1

L15

R0

R1

R15

Abbildung 3.1: DES Verschlüsselungsalgorithmus

aber auf geschickte Weise miteinander verbunden, sodass für die Substitutionen nichtmehr gelten muss, dass sie invertierbar sind. Dies ist vorteilhaft, da die Invertierbarkeitzwangsläufig größere Struktur in das System bringt, wobei man aber von einer gutenBlockchiffre eher ein unstrukturiertes (also zufällig aussehendes) Verhalten erwartet. EinFeistel-Netzwerk besteht aus mehreren Runden, die gleich aufgebaut sind. In der i-tenRunde wird die Eingabe als aus zwei Hälften Li−1 (linke Hälfte) und Ri−1 (rechte) be-stehend betrachtet. Die linke Eingabehälfte für die nächste Runde, also Li, ist die rechteHälfte der momentanen Runde, also Ri−1. Auf Li−1 wird noch eine Funktion F (derenEingabe ein Rundenschlüssel und Ri−1 sind), aufaddiert, sodass man die neue rechteHälfte Ri erhält. Auf die genaue Zusammensetzung dieser F -Funktion werden wir nuneingehen.

14

Page 15: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

F -Funktion

Die F -Funktion F (Ri−1, ki) erhält als Eingabe Ri−1, die rechte Hälfte des internen Zu-stands nach der i − 1-ten Runde, und mit ki den Rundenschlüssel für die i-te Runde.Der Ablauf wird nun erläutert und ist ebenso in Abbildung 3.2 zu sehen.

Ri−1

Erw. ki

S1 . . . S8

P

(32 Bit)

(48 Bit) (48 Bit)

(6 Bit) (6 Bit)

(4 Bit) (4 Bit)

F (Ri−1, ki)

Abbildung 3.2: F -Funktion

1. Zuerst sorgt die Expansion Erw.(Ri−1) dafür, dass die Eingabe von 32 auf 48 Biterweitert wird. Mit Ri−1 = (r1, . . . , r32) lässt sich diese Erweiterung beschreibendurch

Erw.(Ri−1) =

(r32, r1, r2, . . . r5,r4, r5, r6, . . . r9,r8, r9, r10, . . . r13,r12, r13, r14, . . . r17,r16, r17, r18, . . . r21,r20, r21, r22, . . . r25,r24, r25, r26, . . . r29,r28, r29, . . . r32, r1).

Eine grafische Repräsentation davon findet man in Abbildung 3.3.

2. Diese erweiterten 48 Bits werden mit dem i-ten Rundenschlüssel ki addiert, alsoerhält man Erw.(Ri−1)⊕ ki.

3. Je 6 Bit davon werden zu einer der acht S-Boxen geführt (diese sind Tabellenund die Eingangsbits dienen der Indizierung), deren Ausgänge je 4 Bit liefern. Die

15

Page 16: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

S-Boxen werden durch eine 4 × 16-Matrix beschrieben und jede Zeile stellt eineSubstitution dar. Die Substitutionen sind nichtlinear und der kryptologisch wich-tigste Teil. (Die 8 Boxen mit je 4 Substitutionen liefern insgesamt 32 verschiedeneSubstitutionen.)

4. Die Ausgabe der S-Boxen werden abschließend noch einer Permutation P unter-worfen.

r32

r1

r1

r2

r2

r3

r3

r4

r4 r4r5

r5

r5

r6

r6

r7

r7

r8

r8 r8r9

r9

r9

. . .

Abbildung 3.3: Erweiterungsfunktion Erw.(Ri−1) mit Ri−1 = (r1, . . . , r32)

Technische Daten und AblaufNach diesen Eingangsbemerkungen wollen wir nun die technischen Daten des DES ge-nauer betrachten:• Es wird eine Feistel-Struktur mit 16 Runden verwendet (dies ermöglicht z. B. dieVer- & Entschlüsselung mit der gleichen Hardware).• Die Blocklänge des DES beträgt 64 Bit, d. h. dass man mit einer Eingabe von 64Bit arbeitet, wobei diese intern als zwei 32-Bit-Blöcke verarbeitet werden.• Der Schlüsselraum hat eine Größe von 56 Bit (zusätzlich ergänzen 8 Paritätsbitsdie acht 7-Bit-Zeichen eines Nachrichtenblocks auf ungerade Parität). Dies wurdebereits vor Inkrafttreten des Standards als zu kurz kritisiert.• Die Rundenschlüssel ki sind je 48 Bit groß. Es wird eine Auswahlfunktion aufden 56-Bit-Hauptschlüssel angewendet, welche Permutationen, zirkuläre Linkss-hifts und Bit-Auswahlen (Selects) beinhaltet und gut umkehrbar ist.

Der Ablauf, auf den zuvor schon lose eingegangen wurde, soll hier zusammenhängendund kompakt dargestellt werden:

1. Es erfolgt zuerst eine initiale Permutation auf der in Blöcken eingeteilten Eingabe.2. Anschließend gibt es 16 Runden mit verschiedenen Rundenschlüsseln, 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ähnt die linken bzw. rechten Text-hälften während den Verschlüsselungschritten und dies wird in Abbildung 3.1 auchgenauer erkennbar.

16

Page 17: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

3. Abschließend findet die inverse Permutation zur initial ausgeführten statt.

EntwurfskriterienDie Entwurfskriterien wurden erst nachträglich veröffentlicht, sodass es Befürchtungengab, die NSA hätte Hintertüren in die Verschlüsselung eingebaut. Heute kann man aller-dings sagen, dass diese Befürchtungen (in diesem Fall) unbegründet waren. Die Kriterienlauten:• Keine S-Box ist eine lineare oder eine affine Funktion ihrer Eingabe.• Die Änderung eines Eingabebits einer S-Box bewirkt eine Änderung von wenigstens

zwei Ergebnisbits.• Die S-Boxen sind so gewählt, dass das Hamming-Gewicht des S-Box-Ergebnissesmöglichst konstant bleibt, wenn irgendein Eingabebit konstant gehalten wird.

VariationenDer DES ist bis heute strukturell ungebrochen, aber brute force ist, wie eingangs er-wähnt, aufgrund des zu kleinen Schlüsselraums möglich. Um diesem Problem des zukleinen Schlüsselraums zu begegnen, wäre die naive Idee einfach einen größeren Schlüs-sel zu nehmen, allerdings würde dies gegen den Standard verstoßen und DES ist bereitsin vielen Hardware-Implementationen mit fester Schlüssellänge vorzufinden. Man kannaber, wenn man den Schlüssel schon nicht vergrößern kann, einfach mehrere Schlüsselnehmen, indem man den DES z. B. verschachtelt ausführt. Diese nachfolgenden Varian-ten, die alle mehr Schlüssel bieten als der ursprüngliche DES und damit den Schlüssel-raum signifikant vergrößern, sind alle praxistauglich und gelten als sicher:

Triple DES Beim Triple DES verschlüsselt man den Klartext m zuerst normal mit DESmit einem Schlüssel k1, anschließend entschlüsselt man dieses so erzeugte Chiffratmit einem Schlüssel k2 und verschlüsselt das Ergebnis davon mit einem Schlüsselk3, um das Triple-DES-Chiffrat c zu erhalten. Etwas formaler ausgedrückt:

C = DESk1(DES−1k2

(DESk3(m)))

Die Entschlüsselung in der Mitte scheint ein wenig seltsam und hat nichts mitSicherheit zu tun, es ist eine praktische Überlegung. Sind nämlich alle drei Schlüsselgleich, erhält man die normale DES-Verschlüsselung.

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üssel k zum Betrieb des DES verwendet,sondern auch zwei Schlüssel kx, ky direkt auf den Klartext bzw. das DES-Chiffrataddiert, um somit das DES-X-Chiffrat c zu erzeugen. Diese zusätzliche Additionmit Schlüsseln wird auch als key whitening bezeichnet und soll die Struktur desKlartextes zusätzlich verschleiern. Das Chiffrat lässt sich also beschreiben per:

c = DESk(m ⊕ kx)⊕ ky.

17

Page 18: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

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ämlich fürdie verwendeten Schlüssel kx = ky.

18

Page 19: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

4 Meet-in-the-Middle, Slide-Attack &Related-Key-Attack

Bei der generellen Angriffsstrategie gegen rundenweise Blockchiffren versucht man, Zwi-schenergebnisse zu berechnen bzw. zu approximieren, um damit einzelne Rundenschlüsselanzugreifen. Dies kann auf verschiedene Weisen erfolgen, so versucht man z. B. in ge-wisser Form beim Meet-in-the-Middle-Ansatz ein großes Problem (ein zu großer Schlüs-selraum) in mehrere kleinere zu zerlegen. Man kann aber auch die Selbstgleichheit vonVerschlüsselungsrunden ausnutzen, wie dies bei den Slide-Attacks geschieht oder eineneinfachen, sich wiederholenden Aufbau einer Runden- bzw. Teilschlüsselgenerierung alsAnsatzpunkt wählen, 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üs-seln (Vorwärtsschritt) und Entschlüsseln (Rückwärtsschritt) zu finden, die gleich sind.Für die einzelnen Schritte probiert man einfach alle möglichen Schlüssel durch (bruteforce). Findet man ein passendes Zwischenergebnis, hat man sich also in der Mitte ge-troffen, ist es sehr wahrscheinlich, dass die per Ausprobieren gefundenen Schlüssel fürdie einzelnen Schritte zusammen den gesuchten Schlüssel ergeben. Dies wollen wir nunausführlicher am 2DES demonstrieren. Das Chiffrat bei 2DES ergibt sich zu

c = DESk2(DESk1(m))

und die Struktur der Verschlüsselung ist in Abbildung 4.1 zu sehen. Es wird einfach dieDES-Verschlüsselung zwei Mal mit unterschiedlichen Schlüsseln auf den Klartext bzw.das Zwischenergebnis ausgeführt.

m E1 E2 c

k1 k2

Abbildung 4.1: 2DES

Würden wir nun die Zwischenergebnisse (nach E1) kennen, könnten wir die Schlüssel ein-zeln per brute force herausfinden. Auf diese Weise wollen wir nun, wie zuvor beschrieben,die Verschlüsselung brechen.

19

Page 20: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Vorgehen (Known-Plaintext-Attack)

Mit den bekannten Klartext-Chiffrat-Paaren m1, c1 und m2, c2 kann man nun einen An-griff ausführen. Zuerst berechnet man mit einem beliebig gewählten Schlüssel ausgehendvon den bekannten Klartexten m1,m2 mögliche Zwischenchhiffrate, führt also nur eineeinfache DES-Verschlüsselung aus. Anschließend führt man mit einem anderen Schlüs-sel eine Entschlüsselung der bekannten Chiffrate c1, c2 durch. Sollten die bei Ver- undEntschlüsselung erhaltenen Zwischenwerte identisch sein, hat man sich in der Mitte ge-troffen, also die korrekten Schlüssel verwendet. Dabei benötigte man jedes Mal nur einenAufwand in der Größe eines einzelnen Schlüssels und nicht der Summe ihrer Größe; manhat den Aufwand also halbiert. Man kann den Angriff algorithmisch in drei Schrittenbeschreiben:

1. Vorwärtsschritt: Für alle k = 0, . . . , 256 − 1 tabelliere

[DESk(m1), DESk(m2), k]

2. Sortierschritt: Sortiere die Tabelle lexikographisch.

3. Rückwärtsschritt: Für alle k = 0, . . . , 256 − 1 berechne

DES−1k (c1), DES−1

k (c2)

und suche nach Treffern in der sortierten Tabelle per binärer Suche.

Aufwand

Es werden nur zwei Klartext-Chiffrat-Paare benötigt aber als Speicher benötigt manungefähr 260 Byte, also Exabyte, schnellen Speicher. Das Sortieren über Festplatten-Zugriffszeiten wäre viel zu langsam. Der Aufwand für die einzelnen Schritte lautet:

• Vorwärtsschritt: ≈ 2 · 256 DES-Operationen.

• Sortierschritt: ≈ 56 · 256 Vergleiche.

• Rückwärtsschritt: ≈ 2 · 255 DES-Operationen (nur 255, da man nach der Hälfteungefähr fertig ist), plus ≈ 56 · 256 (Tabellen-)Vergleiche.

Eine Variante des Angriffs kommt mit weniger Speicher aus, aber das Produkt aus Lauf-zeit und Speicher ist im Wesentlichen konstant. Lässt man z. B. das letzte Byte in derTabelle weg, wird diese kleiner, man hat aber mehr falsche Treffer (false positive), dieman genau nachprüfen muss.

4.2 Advanced Meet-in-the-Middle gegen 2Key-3DES

Der DES, welcher ja schon früh für seine geringe Schlüssellänge kritisiert wurde, solltedurch die Verwendung von zwei- bzw. sogar dreifacher Verschlüsselung sicherer gemachtwerden. Allerdings wurde in [MH81] bemerkt, dass dieser Zuwachs an Sicherheit nichtunbedingt so groß wie erhofft ist und es wurde auch gleich ein Angriff auf den 2Key-3DESvorgestellt. Mit einer dreifachen Ausführung des DES kann man nun keine Zwischenwerte

20

Page 21: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

mehr direkt berechnen und vergleichen. Zur Erinnerung: Bei 2Key-3DES lässt sich dieVerschlüsselung eines Klartextes m darstellen als

c = DESk1(DES−1k2

(DESk1(m)))

oder über Zwischenwerte Z1, Z2 als

Z1 = DESk1(m), Z2 = DES−1k2

(Z1), c = DESk1(Z2).

Wäre der erste Zwischenwert Z1 bekannt, könnte man den 2Key-3DES wie den 2DESangreifen. Wie kommt man aber zu diesem Zwischenwert? Man wählt ihn einfach selbst.Setzt man z. B. Z1 = 0 und berechnet für alle möglichen Schlüssel k nun DES−1

k (0),erhält man alle möglichen Klartexte mk , deren erster Zwischenwert eben null wäre.Wählt man als Angriffsart eine Chosen-Plaintext-Attack, kann man sich diese selbsterstellten Klartexte zu den passenden Chiffraten ck verschlüsseln lassen. Die Menge allerKlartexte mk kann man auch als die Menge aller zweiten Zwischenwerte Z2 auffassen,da für diese die gleiche Berechnung, die DES-Entschlüsselung, durchgeführt wird. Manrechnet die Chiffrate ci nun zu den zweiten Zwischenwerten Z2 zurück per DES−1

i (ci).Findet man einen Wert, der mit einem Klartext mj übereinstimmt, lauten die Schlüsselk1 = i, k2 = j. Mit k1 = i hat man nämlich sowohl den Klartext aus dem selbst gewähltenersten Zwischenwert Z1 als auch den zweiten Zwischenwert Z2 aus dem erfragten Chiffraterrechnet und da die Menge der Klartexte auch die Menge der zweiten Zwischenwertedarstellt, liefert ein übereinstimmendes mj den zweiten Schlüssel k2 = j. Diesen Angriffwollen wir nun etwas formaler festhalten.

Vorgehen (Chosen-Plaintext-Attack)

Als erster Zwischenwert wird 0 . . . 0 gewählt. Der Angriffsablauf, mitsamt einigen imFolgenden verwendeten Bezeichnungen, ist in Abbildung 4.2 visualisiert.

m DES DES−1 DES c

k1 k2 k1

0 . . . 0 Pj = Bi ck

Abbildung 4.2: Advanced Meet-in-the-Middle bei 2Key-3DES

1. Für alle möglichen Schlüssel k: Tabelliere Pk := DES−1k (0 . . . 0) samt verwendetem

Schlüssel und einer Markierung „Mitte“, also

(Pk , k,Mitte).

(Dies liefert sowohl alle zweiten Zwischenwert als auch alle Klartexte, die zu demersten Zwischenwert 0 . . . 0 führen.)

21

Page 22: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

2. Für alle k: Erfrage Chiffrate ck zu Pk .

3. Für alle k: Tabelliere(Bk , k,Ende)

mit Bk := DES−1k (ck).

4. Verbinde die beiden Tabellen und sortiere diese gemeinsame Liste nach dem erstenFeld. Nun suche zwei aufeinanderfolgende identische Einträge im ersten Feld, alsoBi = Pj aus (Bi, i, Ende) und (Pj , j, Mitte). Damit hat man einen Schlüsselkan-didat 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. zweiteSchlüssel ist, was man natürlich ohne Markierungen einfach testen könnte).

5. Teste den Schlüsselkandidat an einigen Klartext-Chiffrat-Paaren.

Aufwand

Dieser Angriff benötigt ungefähr 256 Verschlüsselungsanfragen und hat ansonsten fol-genden 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ällige Werte für den Zwi-schenwert Z1 durchprobiert (anstatt nur Z1 = 0 . . . 0 wie zuvor zu betrachten), bis maneine passende Wahl für Z1 getroffen hat:

1. Die als gegeben angenommenen n Klartext-Chiffrat-Paare (mi, ci) werden in einerTabelle gespeichert, sortiert bzw. gehasht nach dem Klartext.

2. Wähle ein zufälliges Z1. Für alle möglichen Schlüssel k1:

a) Berechne m = DES−1k1

(Z1).

b) Suche ein zu m passendes mi in der Tabelle, falls dies vorhanden sein sollte,berechne Bi = DES−1

k1(ci) und tabelliere den Zwischenwert Bi und Schlüssel-

kandidat k1 in einer zweiten Tabelle.

3. Für alle k2:

a) Berechne Pj = DES−1k2

(Z1)

b) Suche nach einem zu Pj passenden Bi in der zweiten Tabelle. Falls dies vor-handen sein sollte, sind die in den Tabellen gespeicherten k1, k2 Schlüsselkan-didaten.

4. Teste die Schlüsselkandidaten mithilfe der Klartext-Chiffrate-Paare auf Korrekt-heit. Sollte keiner gefunden werden, gehe zu Schritt 2.

22

Page 23: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Der Aufwand lautet dann bei n Klartext-Chiffrat-Paaren:

• Rechenaufwand: ≈ (256) · (264/n) = 2120/n [= 2120−logn ], also die Anzahl al-ler Schlüsselkombinationen mal der wahrscheinlichen Anzahl an zu probierendenWerten für 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 madearbitrarily secure by adding more rounds.“ Und einen solchen simplen, etwas „dege-nerierten“ Algorithmus wollen wir nun einführend analog zu [BW00] betrachten unddaran die Idee des Slide-Angriffs erklären. Ist nämlich ein solcher Angriff möglich, kannman die Chiffre interessanterweise nicht wieder durch das bloße Hinzufügen von mehrRunden sicher machen. Man nutzt nämlich die Selbstähnlichkeit einer Chiffre aus undvergleicht diese mit sich selbst bei vorangeschrittener Bearbeitung (also z. B. um eineRunde versetzt).

Gegeben sei eine Chiffre wie sie in Abbildung 4.3 zu sehen ist, bei der die gleiche Funk-tion mehrfach hintereinander mit gleichem Schlüssel auf dem Klartext ausgeführt wird.Hierbei wird angenommen, dass eine Key-Recovery gegen f praktikabel ist (d. h. um denSchlüssel k zu berechnen gilt, dass der Aufwand dafür um einiges kleiner als 2|k| ist).

m f f . . . f c

k k k

Abbildung 4.3: Verschlüsselung mit gleichbleibender Funktion f und Schlüssel k

Idee/Ziel

Man sucht ein „slid pair “, welches so heißt, da man im Bearbeitungspfad eine Stellenach rechts „gerutscht“ ist. Dieses slid pair lautet:

(m, c), (m′, c′) mit m′ = fk(m), c′ = fk(c).

Die Verschlüsselung von m zu c unterscheidet sich also von der Verschlüsselung von m′zu c′ nur dadurch, dass letzteres ein Mal mehr unter dem gleichen Schlüssel bearbeitetwird, also schon eine Runde weiter ist.

Vorgehen

1. Für je zwei Klartext-Chiffrat-Paare (m, c), (m′, c′) berechne einen Schlüssel k, so-dass m′ = fk(m) gilt und teste, ob c′ = fk(c) gilt.

23

Page 24: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

2. Falls ja, wurde ein guter Kandidat gefunden (es könnte ja sein, dass ein Schlüsselnur gerade für dieses Paar geklappt hat). Man testet nun, ob es ein false positiveist, indem man den Schlüssel an anderen Paaren testet.

Aufwand

Bevor wir den Aufwand genauer besprechen, ist es hilfreich das Geburtstags-Paradoxonzu erklären. Dieses besagt, dass die Wahrscheinlichkeit p, in einer Gruppe von n Perso-nen mindestens zwei zu finden, die den gleichen Geburtstag haben, überraschend hochist. Es gibt ja auch immerhin n(n − 1)/2 mögliche Paare zu betrachten. Um das Pa-radoxon besser zu verstehen, betrachten wir erstmal die Gegenwahrscheinlichkeit dazu.Diese lautet 1 − p = 365

365 ·364365 · · ·

365−n365 , da die Wahrscheinlichkeit, dass die erste unter-

suchte Person mit den bisherigen untersuchten keinen Geburtstag teilt 1 = 365365 ist und

die Wahrscheinlichkeit, dass die zweite untersuchte Person keinen Geburtstag mit denbisher untersuchten teilt, dementsprechend um einen Tag verringert ist, etc. Für n = 23Personen gilt schließlich p ≈ 1/2. In [KL07] Appendix A.4 wird diese Wahrscheinlichkeitp verallgemeinert, indem man q Elemente aus einer Menge von N betrachtet:

Lemma (Untere Grenze für p): Wählt man q Elemente yi, . . . , yq aus einer Menge derGröße N (mit N fest gewählt) uniform, unabhängig und zufällig aus, dann gilt für dieWahrscheinlichkeit p, dass es von einander verschiedene i, j mit yi = yj gibt, folgendes:

p ≤ q2

2N .

Lemma (Obere Grenze für p): Wählt man q ≤√

2N Elemente yi, . . . , yq aus einerMenge der Größe N (mit N fest gewählt) uniform, unabhängig und zufällig aus, danngilt für die Wahrscheinlichkeit p, dass es von einander verschiedene i, j mit yi = yj gibt,folgendes:

p ≥ q(q − 1)4N .

Betrachtet und analysiert man diese beiden oberen und unteren Grenzen zusammen,zeigen diese, dass für q ≤

√N , die Wahrscheinlichkeit für eine Kollision Θ(q2/N) lautet.

Alternativ kann man sagen, dass für q = Θ(√N) die Wahrscheinlichkeit für eine Kollision

konstant ist. Mit diesem Vorwissen, können wir nun den Aufwand besprechen:

• Es sind nach dem Geburtstags-Paradoxen bei einer Blocklänge von n Bit höchstensungefähr 2n/2 Klartext-Chiffrat-Paare nötig.

• Oft reichen aber auch schon weniger Paare, da man z. B. bei einer Feistel-Chiffremit immer demselben Rundenschlüssel zu einer Nachrichtm = (L,R) ein passendesm′ = (R, fk(R) ⊕ L) suchen kann und der Aufwand nun nur noch ungefähr 2n/4

beträgt, da die halbe Nachricht fest ist (so kann man z. B. entweder L oder R aufnull setzen).

24

Page 25: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

4.4 Advanced Slide-Attack gegen DES-X

In [BW00] wird ein fortgeschrittener Angriff mit der Slide-Methode vorgestellt, wel-cher im Folgenden genauer erklärt wird. Im Grunde gilt, dass bei einer Feistel-Chiffredas Verschlüsseln wie das Entschlüsseln abläuft, nur dass man die Rundenschlüssel ingenau umkehrter Reihenfolge verwenden muss. Bei z. B. einer Feistel-Chiffren mit denRundenschlüsseln k0, k1 (die jeweils abwechselnd verwendet werden für die verschiedenenRunden, beginnend mit k0) ist das Verschlüsseln mit k0, k1 sehr ähnlich zu dem Verschlüs-seln mit k1, k0: Die Vorgänge sind nur um eine Runde verschoben. Dadurch kann maneinen erweiterten Slide-Angriff ausführen, indem man den Verschlüsselungsvorgang umeine Runde gegen einen Entschlüsselungsvorgang „verrutscht“ betrachtet. Diese Gegen-überstellung von Ver- und Entschlüsselung wird in [BW00] als „twist“ bezeichnet. DasChiffrat bei DES-X lässt sich wie zuvor beschrieben darstellen als c = DESk(m⊕kx)⊕kyund der Klartext somit als m = DES−1

k (c ⊕ ky)⊕ kx.

Idee/ZielMan versucht „slid pairs“ (m, c), (m′, c′) zu finden, die die Eigenschaft c ⊕ c′ = kyerfüllen. Dadurch erhalten wir eine Gegenüberstellung der Ver- und der Entschlüsselungbeim DES-X, wie sie in Abbildung 4.4 veranschaulicht wird. Für jedes slid pair gilt:

m = kx ⊕DES−1k (c ⊕ ky) = kx ⊕DES−1

k (c′)m′ = kx ⊕DES−1

k (c′ ⊕ ky) = kx ⊕DES−1k (c).

Daraus ergibt sich folgendes Suchkriterium für slid pairs:m ⊕DES−1

k (c) = m′ ⊕DES−1k (c′).

Vorgehen (Known-Plaintext-Attack)Mithilfe dieses Suchkriteriums und einer Menge von Klartext-Chiffrat-Paare (m, c), mussman folgendes für alle Schlüssel k durchführen:

1. Suche (m, c), (m′, c′), sodass m ⊕DES−1k (c) = m′ ⊕DES−1

k (c′):Sortiere die gegebenen Paare (m, c) nach dem Wert H(m ⊕ DES−1

k (c)), wobei Heine Hashfunktion ist. (Man kann diesen Hashwert als einen Index in ein Arrayansehen, der einem angibt, wohin man das zugehörige Nachrichten-Chiffrat-Paarspeichern muss.) Passende Paare ergeben nun eine Kollision.

2. Falls eine Kollision und somit ein slid pair gefunden wurde, setze ky = c ⊕ c′

und kx = m ⊕ DES−1k (c ⊕ ky). Anschließend teste den Schlüssel (k, kx, ky) auf

verschiedenen Paaren auf Korrektheit.

AufwandEs werden ungefähr 264/2 Klartext-Chiffrat-Paare benötigt (hierbei entsprechen die 64Bit natürlich der DES-Blocklänge). Der im Folgenden erläuterte Aufwand beträgt ins-gesamt viel weniger als ein Angriff per brute force und das zuvor beschriebene Vorgehenist darüber hinaus auch noch parallelisierbar.

25

Page 26: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

D

c′

c

m′

ky

k

kx

E

m

c′

c

kx

k

Abbildung 4.4: DES-X: „Sliding with a twist“

• Je Schlüsselkandidat benötigt man ≈ 232 DES-Operationen (also für alle Paare)plus ≈ 232 Sortieraufwand (normalerweise n log(n), aber für uns sind ja nur dieKollisionen wichtig).

• Gesamt ergibt dies ≈ 288 (= 256 · 232, wobei die 256 für brute force gegen denSchlüssel und die 232 für die Sortierung aufgewendet werden).

4.5 Related-Key-Attack am Beispiel LOKI89

Ein Related-Key-Attack ist eine Angriffstechnik gegen Chiffren mit einer Rundenschlüs-selfunktion, d. h. einer Funktion, die aus dem eigentlichen (Haupt-)Schlüssel für jedeRunde einen Teilschlüssel erstellt, die als schwach bezeichnet werden kann. Die Praxisre-levanz dieser Angriffsform zeigt sich daran, dass damit Wired Equivalent Privacy (WEP),welches zur Verschlüsselung von WLANs verwendet wurde, gebrochen werden konnte.In [Bih94] wird ein Angriff auf das Verschlüsselungsverfahren LOKI89 vorgestellt. DieIdee ist die Nutzung von Selbstähnlichkeiten im Schaltbild. Aus dem Rundenschlüssel dervorherigen Runde wird auf immer gleiche Weise (per Shift und Hälften-Vertauschung)ein neuer erstellt. Gegeben einen Schlüssel, kann man alle Rundenschlüssel eine Rundezurückdrehen und erhält neue, gültige Rundenschlüssel, die aus einem anderen Schlüsselabgeleitet werden können (related keys). Dies wird in Abbildung 4.5 veranschaulicht;hierbei vertauscht die Funktion „swap“ die linke mit der rechten Hälfte der Eingabe und„ROL12“ führt eine Bitrotation um 12 Positionen nach links durch.

26

Page 27: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

m = (ml,mr)

ml ⊕ klF

F

F

c

...

k = (kl, kr)

kl kr

ROL12

k1

ROL12

k2

ROL12

k16

swap(k)

...

m′

F

F

F

c′

swap(k′)

...

k′

k′1 = k2

k′15 = k16

k′16

u uv v

x xy y

Abbildung 4.5: LOKI89 mit Rundenschlüsseln (links) und eine Runde versetzt (rechts)

LOKI89 verwendet eine Schlüssellänge von 64 Bit und eine Blocklänge von 64 Bit. Dieersten beiden Rundenschlüssel ergeben sich aus dem Hauptschlüssel k = (kl, kr) per

(k1, k2) = (kl, kr).

Die restlichen Rundenschlüssel der Runden 3 bis 16 erhält man für die i-te Runde fol-gendermaßen:

ki = ROL12(ki−2).

Alle gerade Runden haben Rundenschlüssel, die sich Bits teilen (bzw. eine gemeinsameVergangenheit haben), ebenso alle ungeraden.

27

Page 28: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Für ein slid pair bei LOKI89 gelten folgende Gleichungen (wobei die farbigen Kreiseu, v, x, y Verweise auf die Abbildung 4.5 sind). Der Schlüssel k wird, wenn man ihn nacheiner Runde der Rundenfunktion betrachtet, zu folgendem Wert:

k′ = (kr,ROL12(kl)) (4.1)

Die linke und rechte Hälften des Klartextes sind nach einer Runden mit Schlüssel kidentisch zu denen nach der initialen Schlüsseladdition mit Schlüssel k′ (also vor derersten Runde), nämlich:

m′ ⊕ k′ = (mr ⊕ kr︸ ︷︷ ︸u

, ml ⊕ kl ⊕ F (mr ⊕ kr ⊕ kl)︸ ︷︷ ︸v

(4.2)

Analog gilt diese Beziehung bezüglich der Chiffrate:

c′ ⊕ swap(k′) = (cr ⊕ kl︸ ︷︷ ︸y

⊕F (cl ⊕ kr ⊕ kl), cl ⊕ kr︸ ︷︷ ︸x

)) (4.3)

Vorgehen („Chosen Key Chosen Plaintext“-Attack)

Die simple, selbstähnliche Rundenschlüsselfunktion ermöglicht einen Angriff über dieBeziehung von Rundenschlüsseln mithilfe der zuvor vorgestellen Gleichungen. Es giltzu bemerken, dass bei einer Chosen-Key-Attack die Relationen zwischen unbekanntenSchlüsseln und nicht die Schlüssel selbst gewählt werden; letzteres wäre natürlich trivial.

1. Wähle k′ = (kr,ROL12(kl)). k′ entspricht also k um eine Runde weitergeschaltet.

2. Wähle 216 zufällige Klartexte m mit gleicher rechter Hälfte (m = (∗,m)).Wähle 216 zufällige Klartexte m′ mit derselben linken Hälfte (m′ = (m, ∗)).

(Es reichen 216, da man die Hälfte des Klartextblocks gleich lässt (64/2 = 32) undnoch das Geburtstagsparadoxon verwendet (32/2 = 16).)

3. Erfrage 216 Chiffrate c = Enck(m) und analog c′ = Enck′(m′).

4. Suche m,m′, sodass cl = c′r gilt. Dies ist eine notwendige Voraussetzung für einslid pair nach (4.3).

5. Suche kr ⊕ kl, sodass

m′r ⊕ c′l = ml ⊕ F (mr ⊕ kr ⊕ kl)⊕ cr ⊕ F (cl ⊕ kr ⊕ kl).

Mit den Gleichungen (4.1), (4.2) und (4.3) erhält man eine Verbindung von denzwei Klartexten und Chiffraten des slid pairs. Addiert man diese wie oben, ist dieeinzige Unbekannte kr ⊕ kl.

6. Berechne k = (kl, kr) mittels eines LGS durch (4.1), (4.2)

28

Page 29: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Aufwand

Das Geburtstagsparadoxon besagt, dass mit einer signifikante Wahrscheinlichkeit ein slidpair existiert und die Wahrscheinlichkeit für ein false positive in Schritt 4 beträgt jeweilsungefähr 1/232. Weitere Aufwände sind:

• 217 Verschlüsselungsanfragen (Schritt 3)

• ≈ 216 für Suche nach slid pair (Schritt 4)

• ≈ 232 für Bestimmung von kr ⊕ kl. (Dies wäre schneller mittels einer Differenz-Tabelle für F durchführbar, wie wir sie im Abschnitt 6 kennen lernen werden.)

29

Page 30: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

5 Lineare Kryptoanalyse

Bei der linearen Kryptoanalyse wird versucht, lineare Abhängigkeiten innerhalb des Ver-schlüsselungssystems zu finden bzw. Annäherungen daran, die vielleicht sogar nur miteiner gewissen Wahrscheinlichkeit gelten. Diese Abhängigkeiten bzw. Approximationenwerden wir im Folgenden als lineare Approximation bezeichnen. Zuerst werden dazustatistische lineare Beziehungen zwischen den Eingabe- und Ausgabebits der innerenFunktionen aufgestellt, z. B. jeder S-Box. Diese Beziehungen werden kombiniert und aufden gesamten Algorithmus ausgeweitet, um eine lineare Approximation des gesamtenAlgorithmus ohne Zwischenwerte zu erhalten.

5.1 FEAL-4

Aufgrund der Bedenken bezüglich der Sicherheit von DES kam es zur Entwicklung ver-schiedener alternativer Kryptosysteme, welche den DES in Sicherheit und Geschwindig-keit übertreffen sollten. Eine dieser Entwicklungen ist der Fast Encryption Algorithmus(FEAL), welcher von den Japanern A. Shimizu und S. Miyaguchi bei dem japanischenUnternehmen NTT entwickelt wurde und in seiner ersten Fassung vier Verschlüsse-lungsrunden verwendet, warum man ihn auch FEAL-4 nennt. Zwar ist FEAL-4 wirklichschneller als der DES, allerdings wurde schon im gleichen Jahr, in dem der Algorithmusbei der EUROCRYPT’87 öffentlich vorgestellt wurde, ein starker Angriff veröffentlicht.Wir wollen uns nun der Beschreibung des Aufbaus von FEAL-4 widmen. Abbildung 5.1zeigt den Aufbau von FEAL-4, welcher wie DES eine Feistel-Struktur aufweist, und 5.2zeigt die F -Funktion, welche in jeder der vier Runden aufgerufen wird. Dabei verschie-ben die darin befindlichen S-Boxen S0, S1 die zusammenaddierten Eingaben zyklisch umzwei Bits nach links, genauer:

Si(A,B) = ROL2(A+B + i mod 256).

Der 64-Bit-Schlüssel wird zu 4 Rundenschlüsseln mit jeweils 16 Bit umgewandelt, mit-hilfe von XOR- und Vertauschungsoperationen. Bezüglich der F -Funktion konnte mansehr starke Abhängigkeiten zwischen den Ein- und Ausgabebits herstellen: Eine lineareCharakteristik gibt dabei an, dass die Parität einer bestimmten Menge von Eingabebitsund Ausgabebits mit einer bestimmten Wahrscheinlichkeit gerade ist. Bei S0(A,B) istdie Parität der Eingabebits A[0], B[0] (hierbei gibt A[0] das erste Byte von A an) unddes Ausgabebits S[2] immer gerade, bei S1 dementsprechend ungerade. Hiermit kann

30

Page 31: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

ml mr

32 Bit

F

k1

F

k2

F

k3

F

k4

16 BitB0F0

B1F1

B2F2

B3F3

cl cr

L0

L1

L2

L3

R0

R1

R2

R3

Abbildung 5.1: Struktur von FEAL-4

eine lineare Approximation der gesamten F -Funktion realisiert werden (die Auflistungerfolgt 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üssel ein, dieser ist zwar unbekanntaber fest. Also versucht man alle Schlüssel per brute force, schaut ob die Parität kon-stant bleibt (somit wäre ein Schlüsselkandidat gefunden) oder nicht. Diese Charakteristikfür F können zu Charakteristiken für die ersten drei Runden erweitert werden. In Abbil-dung 5.3 (b) ist eine mögliche erweiterte Charakteristik samt Herleitung angegeben. Die

31

Page 32: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

S0

S1

S0

S1

F [0..7]

F [8..15]

F [16..23]

F [24..31]

B[0..7]

B[8..15]

B[16..23]

B[24..31]

k[0..7]

k[8..15]

8 Bit

Abbildung 5.2: F -Funktion von FEAL-4

Struktur von FEAL-4 ist zum leichteren Nachvollziehen der Herleitung direkt gegenübergestellt.

Diese Analyse der F -Funktion kann man zu einer Analyse von mehreren Runden erwei-tern: Sei für gegebene Indexmengen X,Y, Z die Parität B[X] ⊕ F [Y ] ⊕K[Z] = c, alsokonstant. Dann führen Klartexte mit konstanter Parität ml[X,Y ] ⊕ mr[X] dazu, dassnach Runde 3 die Parität L3[X]⊕R3[Y ] konstant ist:

ml[X,Y ]⊕mr[X] = L0[Y ]⊕R0[X]1)= L0[Y ]⊕ F0[Y ]⊕ k1[Z]⊕ c= R1[Y ]⊕ k1[Z]⊕ c= L2[Y ]⊕ k1[Z]⊕ c= R3[Y ]⊕ F2[Y ]⊕ k1[Z]⊕ c2)= R3[Y ]⊕R2[X]⊕ k3[Z]⊕ c⊕ k1[Z]⊕ c= R3[Y ]⊕ L3[X]⊕ k1[Z]⊕ k3[Z]︸ ︷︷ ︸

Schlüssel konstant

⊕ c⊕ c︸ ︷︷ ︸=0

.

[Hierbei stellte man bei 1) einfach R0[X] ⊕ F0[Y ] ⊕ k1[Z] = c nach R0 um und bei 2)R2[X]⊕ F2[Y ]⊕ k3[Z] = c nach F2.]

Also ist ml[X,Y ] ⊕mr[X] ⊕ L3[X] ⊕ R3[Y ] konstant. Analog impliziert eine konstanteParität cl[X,Y ] + cr[X] im Chiffrat, dass die Parität L1[Y ] +R1[X] konstant war, somitgilt auch: cl[X,Y ]⊕ cr[X]⊕ L1[Y ]⊕R1[X] konstant.

Attacke (Known-Plaintext-Attack)

Wie zuvor besprochen kann man aufbauend von einer einfachen Analyse der Ein- undAusgabebits des Inneren von FEAL-4, also der F -Funktion, eine Analyse über drei Run-den erstellen. Wobei man dies aufgrund der symmetrischen Struktur jeweils ausgehend

32

Page 33: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

ml mr

F

F

F

F

B0F0

B1F1

B2F2

B3F3

cl cr

L0

L1

L2

L3

R0

R1

R2

R3

(a) FEAL-4-Struktur

F0[2] = B0[0]⊕ F0[8]

ml[2]⊕R1[2]

R3[2]⊕ F2[2]

B2[0]⊕ F2[8]

R2[0]

ml[0]⊕mr[0]

ml[8]⊕R1[8]

R3[8]⊕ F2[8]

⇒ 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üsselung) oder vom Chiffretext (Entschlüsselung) betrachten kann.Mit diesem Vorwissen ist nun eine Known-Plaintext-Attack auf den vierten (bzw. denersten) Rundenschlüssel möglich:

1. Teile die Klartexte gemäß ihrer jeweiligen Paritätml[X,Y ]⊕mr[X] in zwei MengenN1, N2 ein.

2. Für jeden Schlüssel k4 und beide Mengen N1, N2:

a) Rechne alle entsprechenden Chiffrate zurück zum Zwischenergebnis nach der3. Runde.

b) Falls die Parität L3[Y ]⊕R3[X] nicht bei allen Zwischenergebnissen gleich seinsollte, verwerfe den Schlüsselkandidat.

3. Wiederhole den Vorgang mit verschiedenen Charakteristiken, bis nur noch wenigeKandidaten für k4 übrig sind.

4. Führe einen analogen Angriff gegen k1 durch.

5. Finde k2 und k3 mittels brute force. (Wenn k1 und k4 komplett bekannt sind, sinddiese Schlüssel auch direkt berechenbar durch die Struktur der S-Boxen.)

AufwandNach dieser etwas längeren Erläuterung des FEAL-Aufbaus und des Angriffs, kommenwir zu einer recht kurzen Aufwandsanalyse:

33

Page 34: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

• Man benötigt ≈ 16 Klartext-Chiffrat-Paare (besser sind aber ≈ 20, damit k1, k4komplett durch lineare Analyse rekonstruierbar wird).

• Der Rechenaufwand beträgt ≈ 216 (dominiert durch vollständige 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ärkste Abweichung gibt es bei S5mit einer Wahrscheinlichkeit von 12/64 = 0.1875. Damit lässt sich analog zur linearenAnalyse von FEAL-4 eine Known-Plaintext-Attack auf den 4-Runden-DES durchführen;bei Schritt 2 wird dann jeweils geprüft, ob die Statistik stimmt (d. h. ob gerade zuungerade Paritäten im Verhältnis 52:12 bzw. umgekehrt vorkommen).

Ist eine Charakteristik für 2n+1 Runden und dazu eine passende lineare Approximationder F -Funktion bekannt, so lässt sich damit eine Charakteristik für 2n + 3 Rundenkonstruieren (es seien X,Y, Z Indexmengen): Mit der gegebenen lineare Approximationder Ein- und Ausgänge der F -Boxen

F [Y ] ≈ R[X] (5.5)

und der gegebenen Charakteristik

L1[Z]⊕R1[Y ] ≈ L2n[Y ]⊕R2n[Z] (5.6)

erhält 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. Ausgehendvon 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 manzur 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) ver-binden, um zur neuen Charakteristik (5.7) zu gelangen.

34

Page 35: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

F

...

F

F0

F2n+1

L0

L1

L2n+1

R0

R1

R2n+1

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 Wahrschein-lichkeit

p2q + (1− p)2q + 2p(1− p)(1− q).

Die einzelnen Summanden dieses Ausdruck wollen wir kurz erläutern:

• p2q: Das Quadrat ergibt sich, da man die lineare Approximation (5.5) zwei Mal-verwendet hat, einmal für die linke und einmal für die rechte Seite, und q tauchtauf, da man die Charakteristik (5.6) zum Verbinden verwendete.

• (1 − p)2q: Wenn beides „gleich“ falsch ist, gilt natürlich die umgekehrte Parität,was aber genauso nützlich ist.

• 2p(1 − p)(1 − q): Man hat hier den Faktor 2 stehen, da entweder die erste oderzweite Approximation falsch gewesen sein können. War eine der Approximationenfalsch, ändert sich das Bit, ist aber auch die Charakteristik falsch, wird die (falsche)Charakteristik erfüllt, gilt also.

Lemma (Piling-up Lemma): Es seien Xi mit i ∈ {1, . . . , n} unabhängige Zufallsvaria-blen, die denWert 0 mit der Wahrscheinlichkeit pi und denWert 1 mit Wahrscheinlichkeit1− pi annehmen. Dann gilt:

P [X1 ⊕ · · · ⊕Xn = 0] = 12 + 2n−1

n∏i=1

(pi −

12

).

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

Page 36: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Wahrscheinlichkeit pi gelten, hat etwa folgende Wahrscheinlichkeit:

12 + 22n−1

n∏i=1

(pi −

12

)2.

Achtung: Diese Approximationen sind natürlich aufgrund des Aufbaus von DES und denZusammenhängen zwischen den einzelnen Runden und Zwischenwerten nicht wirklichstatistisch unabhängig!

Und gilt für alle linearen Approximationen die Abschätzung min(pi, 1 − pi) > ε, so istder Vorteil einer linearen Analyse sogar vernachlässigbar in der Rundenzahl, denn esgilt:

q <12 + 22n−1

(12 − ε

)2n= 1

2 + 12 (1− 2ε)2n︸ ︷︷ ︸vernachl. in n

.

Aufwand

Für die lineare Analyse eines 16-Runden-DES werden ca. 247 Klartext-Chiffrat-Paarebenötigt. Damit können 14 der 56 Schlüsselbits gefunden werden. Die verbleibenden42 Bit des Schlüsels könen dannn durch vollständige Suche ermittelt werden. DieserAngriff ist somit natürlich deutlich schneller als ein bloßer Angritt per brute force gegenden vollen Schlüssel.

36

Page 37: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

6 Differentielle Kryptoanalyse

Bei der differentiellen Kryptoanalyse betrachtet man nicht die verschiedenen Klar- undChiffretexte, sondern betrachtet und tabelliert bestimmte Differenzen, meistens per XORermittelt, der Klartexte, welche mit einer Wahrscheinlichkeit p zu bestimmten Differen-zen der Chiffretexte führen. Für diese Wahrscheinlichkeit p muss gelten, dass sie größerist, als man es von einer zufälligen Permutation erwarten würde, sodass man aus denDifferenzen wichtige Informationen bezüglich des Schlüssels gewinnen kann. Diesen et-was abstrakteren Ansatz wollen wir anhand eines Beispiels für den DES im nächstenAbschnitt veranschaulichen.

6.1 DES: Differentielle Kryptoanalyse

Die Grundidee bei der differentiellen Kryptoanalyse des DES ist, dass der Schlüssel hierin den einzelnen Runden auschließlich per XOR eingeht und sich dadurch die Differen-zen von Zwischenergebnissen nicht ändern, man diese also unabhängig vom Schlüsselbetrachten kann. Man tabelliert nun die möglichen Eingangspaare bei gegebenen Ein-und Ausgangsdifferenzen bezüglich der S-Boxen in einer Differenztabelle. Erhält manbestimmte Ausgabedifferenzen der S-Boxen (also mehrere Ausgaben, die man paarweiseaddieren kann), kann man in der Tabelle nachsehen, welche Differenzen wohl welche Ein-gabepaare benötigt und daraus, wie im Folgenden erläutert, den Schlüssel gewinnen. DieAbbildung 6.1 verdeutlicht die Differenzbildung anhand des Signalflusses der S-Boxen(die Differenztabelle wird mit „Diff.“ abgekürzt). Hierbei erweitert die Funktion Erw. die4 Eingangsbits von m1 bzw. m2 auf bekannte Weise zu 6 Bits e1 bzw. e2 und jede S-Boxkorrespondiert zu 6 Schlüsselbits k. Dadurch erhalten wir als Eingang zu den S-Boxen

sin,1 = e1 ⊕ k bzw. sin,2 = e2 ⊕ k

und die Ausgänge nennen wir dementsprechend sout,1 und sout,2. Addiert man dieseGleichungen zusammen, erhält man die Differenz der S-Box-Eingaben per

s′in = e′ = e1 ⊕ e2 = E(m1)⊕ E(m2) = E(m′) = E(m1 ⊕m2)

und die Differenzen der Ausgänge der S-Boxen lauten

s′out = sout,1 ⊕ sout,2.

Die S-Boxen lassen sich dann als Differenz-Tabellen darstellen, deren Aufbau beim An-griff auf den 1-Runden-DES etwas formaler erklärt wird. So erhält man einen vom Schlüs-sel k unabhängigen Signalfluss (e′ = s′in). Da wir von einer Known-Plaintext-Attackausgehen werden, sind alle Texte bis auf sin,1 und sin,2 bekannt.

37

Page 38: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Erw. Erw. Erw.

k k

S S Diff.

m1

e1

sin,1 = e1 ⊕ k

sout,1

m2

e2

sin,2 = e2 ⊕ k

sout,2

⊕ =

m′ = m1 ⊕m2

e′ = e1 ⊕ e2= E(m1)⊕ E(m2) = E(m′)

s′in = e′

s′out = sout,1 ⊕ sout,2

Abbildung 6.1: Differenz von Zwischenergebnissen bei DES-S-Boxen

Attacke: 1-Runden-DESUm bei gegebenen Differenzen m′ und s′out die Werte für die Eingänge der S-Boxensin,1, sin,2 zu ermitteln, erstellt man zu jeder S-Box eine Differenz-Tabelle, die die mög-lichen Kombinationen dafür enthält. Jede Zeile i dieser 64× 16-Tabelle entspricht einerEingangsdifferenz m′ = i. In der Spalte j sind alle Paare sin,1, sin,2 eingetragen, die zueiner Ausgangsdifferenz s′out = j führen. Ist ein Paar gefunden, das den vorgegebenenDifferenzen entspricht, so kann man k berechnen:

sin,1 = e1 ⊕ k ⇒ k = sin,1 ⊕ e1.

So erhält man meist nur eine Menge von Schlüsseln, benutzt man aber mehrere Text-paare und nimmt die Schnittmenge der Schlüssel-Mengen, kann man diese Menge immerstärker einengen.

Attacke: 2-Runden-DESMan kann den 1-Runden-Angriff leicht auf einen 2-Runden-Angriff erweitern, da dieeinzelnen Runden separat angegriffen werden können. Die Ein- und Ausgangspaare (sin,sout) berechnen sich zu (mr,ml ⊕ cl) bzw. (cl,mr ⊕ cr) für die erste und zweite Rundewie die Abbildung 6.2 es veranschaulicht.

Attacke: 3-Runden-DESDas Problem bei einer Erweiterung auf 3 Runden ist, dass man in keiner Runde Ein-und Ausgangspaare der F -Funktion direkt berechnen kann. Die Lösung lautet nun, dassman für die dritte Runde eine Chosen-Plaintext-Attack mit Klartexten m1 = (L(1)

0 , R(1)0 )

und m2 = (L(2)0 , R

(2)0 ) mit gleichbleibender rechter Hälfte benutzt. Die Abbildung 6.3

erleichtert die Zuordnung der im Folgenden verwendeten Bezeichnungen.Die Eingänge der letzten F -Boxen als Differenzen lauten mit den gegebenen Klartexten

R′2 = R(1)2 ⊕R

(2)2 = L

(1)3 ⊕ L

(2)3

38

Page 39: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

F

k1

F

k2

ml

cl

mr

cr

Abbildung 6.2: 2-Runden-DES

F

k1

F

k2

F

k3

F0

F1

F2

L0

L1

L2

L3

R0

R1

R2

R3

Abbildung 6.3: 3-Runden-DES

und die Ausgänge sind

F ′2 = F(1)2 ⊕ F (2)

2 = R(1)3 ⊕ L

(1)2 ⊕R

(2)3 ⊕ L

(2)2

= R(1)3 ⊕ L

(1)0 ⊕ F

(1)0 ⊕R(2)

3 ⊕ L(2)0 ⊕ F

(2)0

= R(1)3 ⊕ L

(1)0 ⊕R

(2)3 ⊕ L

(2)0 .

Die letzte Umformung gilt, da wir gleiche rechte Hälfte beim Klartexte gewählt habenund somit F (1)

0 ⊕ F(2)0 = 0 erfüllt ist. Die ersten zwei Runden kann man wie zuvor

angreifen und die dritte durch die oben angegebenen Ein-/Ausgangs-Differenzen wie dieerste Runde.

39

Page 40: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

6.1.1 Angriff gegen einen 2n-Runden-DES

Bei der Übertragung der differentiellen Kryptoanalyse auf größere Rundenzahlen, ge-langt man zu einem probabilistischen Schema. Es gibt bestimmte Eingangsdifferenzen,die sich mit hoher Wahrscheinlichkeit nach einer 2-Runden-DES-Verschlüsselung wieder-finden, Charakteristiken genannt. Man benötigt Charakteristiken, die über 2 Runden mit„großer“ Wahrscheinlichkeit stabil bleiben. Ein Beispiel hierfür enthält die Abbildung6.4.

F

Wkt. = 1

F

1/234

0..00..0

1960..00..0

19600000 00000000

0 . . . 0 1960 . . . 0

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 Aus-gangsdifferenz auch wirklich erfüllt sind, kann man einen Angriff vornehmen:

1. Erfrage Chiffrate zu Klartext-Paaren mit Differenz entsprechend der Charakteris-tik.

2. Verwerfe Tupel mit unpassender Ausgangsdifferenz.

3. Führe 1-Runden-Angriff (wie zuvor) gegen die letzte Runde aus, mit der Annahme,dass dort die Charakteristik erfüllt war (dies führt zu 18 Bits des letzten Runden-schlüssels). Achtung: Möglicherweise wird kein Schlüsselkandidat für alle Tupelpassen, also erfolgt ein Mehrheitsentscheid.

4. Man verwendet brute force gegen die restliche 38 Schlüsselbits.

Wahrscheinlichkeit

Die fünf rechten S-Boxen liefern bei der stabilen Charakteristik 19600000 die Differenz0 (20 Bit), die linken drei S-Boxen liefern beliebige Werte (12 Bit). Die Wahrscheinlich-keit, dass alle 12 Bit gleich 0 sind lautet bei Gleichverteilung 2−12. Aber mit unsererCharakteristik 1/234, also ungefähr 16 Mal häufiger als bei beliebiger CharakteristikXXX00000.

40

Page 41: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Aufwand

Die benötigte Ausgangsdifferenz tritt bei einer Rundenzahl von 2n etwa einmal pro234n Klartext-Paaren auf. Die Wahrscheinlichkeit, dass die Charakteristik zwei Rundenüberlebt lautet 234−1, somit beträgt sie für 16 Runden natürlich 234−8. Aufgrund von2348 ≈ 263 ist die differentielle Kryptoanalyse damit nicht praxisrelevant für DES, dabrute force schon mit 256 möglich ist. Für 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 Geheimhal-tung entwickelt, scheiterte allerdings politisch und wurde schließlich 1998 veröffentlicht.Der Einsatzzweck war der CLIPPER-Chip zur Sprachverschlüsselung. Es wurde auchKey Escrow betrieben, d. h. der Schlüssel wurde hinterlegt und unter Umständen Drit-ten zugänglich gemacht, sodass z. B. die Regierung die Kommunikation abhören konnte.

Gegen eine in der Rundenzahl reduzierte Version dieser Blockchiffre werden wir nach derBeschreibung des Aufbaus einen Angriff erläutern. Allerdings werden wir hier nicht wiebei der üblichen differentiellen Analyse die überdurchschnittlich auftretenden Differen-zen ausnutzen, sondern die selten bzw. gar nicht möglichen Paare. Schlüssel, bei denensolche unmöglichen Differenzen entstehen, können wir somit ausschließen und dadurchdie Menge an zu betrachtenden Schlüssel immer weiter einschränken.

Aufbau

Der Aufbau von Skipjack lässt sich grob wie folgt charakterisieren:

• Vier 16-Bit-Worte w1, . . . , w4 (also 64 Bit) werden mit einem 80-Bit-Schlüssel in32 Runden mit jeweils einem 32-Bit-Teilschlüssel verschlüsselt.

• Die 32 Runden haben folgenden Aufbau: 8 Mal wird Regel A angewendet (sieheAbb. 6.5), anschließend 8 Mal Regel B (siehe Abb. 6.6) und erneut 8 Mal Regel Aund 8 Mal Regel B.

• Durch das Addieren des Rundenzählers bei den Regeln wird verhindert, dass manz. B. 2-Runden-Charakteristiken wie bei DES verwenden kann (da sich auch beigleicher Eingabe die Runden unterschiedlich verhalten).

w1 G w2 w3 w4

Zähler

Abbildung 6.5: Regel A

41

Page 42: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

w1 G w2 w3 w4

Zähler

Abbildung 6.6: Regel B

Der Ablauf von Skipjack kann auch in einer anderen Form dargestellt werden, wie es inAbbildung 6.7 zu sehen ist: Hier ist das Schieberegister durch einen Signalfluss ersetztworden, sodass die jeweiligen Ergebnisse der Runden nur alle vier Takte direkt mitdem Registerinhalt der ursprünglichen Darstellung übereinstimmen. Ansonsten sind dieZwischenergebnisse gegenüber den Inhalten der Register „verschoben“.

Die Rundenfunktion G, die bei den Regeln A und B verwendet wird, besteht aus ei-ner Feistelchiffre mit vier Runden, bei der die jeweiligen Teilschlüssel zum Signalflussper XOR addiert werden. Die Rundenfunktion F von G realisiert eine bijektive 8-Bit-Substitution. Das Problem ist der Übergang von Regal A zu Regel B. Normalerweise„überlebt“ ein 16-Bit-Wort nur drei Runden, hier bleibt w4 aber sieben Runden nahe-zu unverändert. Tabelle 6.1 zeigt diesen problematischen Regelübergang anhand einesBeispiels.

Runde (Regel) 16-Bit-Worte7 (A) w1 w2 w3 w48 (A) G(w1)⊕ w4 ⊕ 7 G(w1) w2 w3

9 (B) w3 G(G(w4)⊕ w4 ⊕ 7) ����G(w1)⊕w4 ⊕ 8⊕��

��G(w1)⊕ 7 w2

Tabelle 6.1: Skipjack-Regelübergang

42

Page 43: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

jj

jj

jj

j

j jj

j

jj

jj

j

G?

��?

��?

��?

-?

��?

��?

?G

?

?

?

?

?

?

G

G

G

G

G

GPPPP

?

- �

G

����?

?��

?

?

?

��?

?

G?

- �

G?

?

G?

?

- �

G?

?

- �

G?

?

- �

G?

?

- �

G?

?��

?

Regel A

Regel A

Regel B

Regel B

1

2

3

4

5

6

7

81

10

11

12

13

14

15

16

Abbildung 6.7: Alternative Darstellung von Skipjack (hier nur Runde 1–16, die nächsten16 Runden sind bis auf die Zähler identisch).

43

Page 44: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Differentielle Analyse

Zwei differentielle 12-Runden-Charakteristiken, die man sich anhand des Signalverlaufsaus 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 mitX000.

Alle solchen Rundenschlüssel wären falsch. Insgesamt gilt also: Gegeben die Zwischener-gebnisse (x1, x2, x3, x4) und (x1⊕y, x2, x3, x4) vor Runde 29, so ist die Ausgangsdifferenznach Runde 29

(G(x1)⊕G(x1 ⊕ z)︸ ︷︷ ︸:=x (siehe Angriff, 3.)

, y, 0, 0).

Tupel mit anderer Ausgangsdifferenz als XX00 sind für uns also irrelevant. Somit habenwir eine differentielle Analyse der Runden 5–29 von Skipjack durchgeführt.

Angriff (Chosen-Plaintext-Attack)

Mithilfe des Wissens über bestimmte Differenzen, die nicht auftauchen können, kannman nun den möglichen Schlüsselraum stark einengen bzw. sogar auf den korrektenSchlüssel kommen, wenn man eine in der Rundenzahl reduzierte Version von Skipjackbetrachtet. Mit den gegebenen Differenzen für 25 Runden werden wir nun einen Angriffauf die Runden 5–29 vorstellen:

1. Lasse 222 Mengen mit je 216 Klartexten mit paarweiser Differenz 0X00 verschlüs-seln. Zum Beispiel (a, b, c, d), (a, b + z, c, d) mit z ∈ 1, . . . , 216. (216 Klartexteergeben per Kombination ungefähr 231 mögliche Paare.)

2. Behalte nur Tupel mit Ausgangsdifferenz XX00 (etwa jede zweite Menge liefertein Paar).

3. Teste für alle Rundenschlüssel 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üssel (was möglich ist, da der Schlüssel ja in Geingeht).

4. Die restliche 48 Bit werden per brute force ermittelt.

Aufwand

Ein Rundenschlüssel erfüllt obige Gleichung (Schritt 3) jeweils mit der (erwarteten)Wahrscheinlichkeit von ungefähr 2−16. Daraus folgt, es bleiben etwa 232(1 − 2−16)221

44

Page 45: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

falsche Kandidaten übrig (≈ 0, 000054). Der Ausdruck 232(1− 2−16)221 lässt sich erklä-ren, als die Wahrscheinlichkeit dafür, dass für alle 232 möglichen Rundenschlüsseln dieGleichung nicht erfüllt ist (also die Gegenwahrscheinlichkeit 1− 2−16 gilt) und zwar füralle 221 Paare mit Differenz XX00.

Die Aufwände für jeden einzelnen Schritt lauten:

1. 222 · 216 = 238 (Anzahl Klartexte, die erstellt werden müssen)

2. 222 · 216 = 238 (Anzahl Klartexte, die überprüft werden müssen)

3. 221 · 232 = 253 (Man nimmt 221 = 222/2, da nur jede zweite Menge ein Paarliefert und 232, da alle möglichen 32-Bit-Schlüssel durchgegangen werden. Durchtrickreiches Ausnutzen der Struktur von G ist dies aber auch in ≈ 221 ·217 möglich.)

4. 248 (per brute force, aber auch hier sind intelligentere Verfahren bekannt.)

Es gilt zu bemerken, dass der vollständige 32-Runden-Skipjack in der Praxis noch unge-brochen ist.

45

Page 46: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

7 AES (Advanced Encryption Standard)

Im Jahr 1997 gab es eine internationale Ausschreibung für einen DES-Nachfolger durchdas National Institute of Standards and Technology (NIST). Die Anforderungen an denNachfolger lauteten:

• Eine Blocklänge von 128 Bit

• Eine variable Schlüssellänge von 128, 192 oder 256 Bit

• Leicht implementierbar und leistungsstark, sowohl in Hardware als auch in Soft-ware

• Robust gegen alle bekannten Methoden der Kryptoanalyse, einschließlich Seiten-kanälen (also Angriffe gegen eine physische Implementierung)

• Patent- und lizenzfrei

Die 15 eingereichte Kandidaten wurden einem öffentlichen Auswahlprozess (den AES-Konferenzen) unterzogen und es blieben fünf Finalisten, die in Tabelle 7.1 verglichenwerden. Von den Finalisten konnte sich am Ende Rijndael durchsetzen und wurde zumneuen Standard AES.

7.1 Aufbau und Funktionsweise

Die Blocklänge von AES beträgt wie gefordert 128 Bit (Rijndael in der Originalfassungunterstützt auch 192 und 256 Bit) und die Schlüssellänge kann 128, 192 oder 256 Bitbetragen. Die Schlüssellänge beeinflusst die Rundenzahl und die Bestimmung der Run-denschlüssel (Key Schedule bzw. Schlüsselexpansion genannt). Die Anzahl der Rundensteigt mit der Länge des Schlüssels und es werden dementsprechend 10, 12 oder 14 Run-den verwendet. Die internen Zwischenwerte, der sogennante Zustand, welcher zu Beginnder Klartext selbst ist, und die Rundenschlüssel werden als 4-zeilige Byte-Matrix undje nach Schlüsselgröße mit 4, 6 oder 8 Spalten repräsentiert. Im Gegensatz zur Feistel-Struktur des DES findet man hier eine Art Substitutions-Permutations-Netzwerk, wobeidie „Substitution“ mithilfe von linearen Funktionen erfolgt.

Ablauf

Jede Runde läuft in vier Schritten ab (alle Aktionen sind dabei invertierbar!) und die ge-nannten Operationen werden auf den Zustand angewendet. Am Anfang und zum Schlussgibt es noch eine spezielle Vor- bzw. Schlussrunde.

46

Page 47: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Entwickle

r

Struktur

Sicherheit

Bemerkung

MARS DonCoppersmith

Feistel(32 Runden) hoch-sicher

komplexeStruktur(erschwertSicherheits-analyse)

RC6 Ronald Rivest Feistel(32 Runden)

hinreichendsicher

sehr einfacherAufbau (wenige

Pseudo-Codezeilen)

Rijndael Joan Daemon,Vincent Rijmen

Substitutions-Permutations-

Netzwerk(10, 12 oder 14)

hinreichendsicher

einfacheStruktur;

bestes in HW& SW (nur 500Zeilen C-Code)

SerpentRoss Anderson,

Eli Biham,Lars Knudsen

Substitutions-Permutations-

Netzwerk(32 Runden)

hoch-sicher(vermutlichsicherstes)

schnellste HW,lahmste SW

TwofishBruce Schneier,Niels Ferguson,David Wagner

Feistel(16 Runden) hoch-sicher

komplexeStruktur(erschwertSicherheits-analyse)

Tabelle 7.1: NIST-Ausschreibungsfinalisten zur DES-Nachfolge

• Vorrunde: Eine Key Addition wird ausgeführt, d. h. ein bitweises XOR der Zu-standsmatrix mit dem 0-tem Rundenschlüssel

Diese vier Schritte werden für jede Runde ausgeführt:

1. Byte Substitution: Dies wird auch die „Rijndael-S-Box“ genannt und dieser Teilsorgt für Nicht-Linearität des Algorithmus. Hierbei wird jedes Byte des Zustandesdurch ein anderes ersetzt.

a) Fasse die Bytes als Elemente von F28 auf und invertiere sie (bezüglich derMultiplikation), falls der Wert ungleich null ist.

b) Führe eine affine Transformation y = Ax+bmit den Konstanten A ∈ {0, 1}8×8

47

Page 48: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

und b ∈ {0, 1}8 durch, welche wie folgt definiert sind:

A =

1 0 0 0 1 1 1 11 1 0 0 0 1 1 11 1 1 0 0 0 1 11 1 1 1 0 0 0 11 1 1 1 1 0 0 00 1 1 1 1 1 0 00 0 1 1 1 1 1 00 0 0 1 1 1 1 1

, b =

11000110

.

2. Shift Row: Man führt in diesem Schritt eine zyklische Rotation der Zeilen gegen-einander aus. Diese wird beispielhaft für 128-Bit-Datenblöcke in Abbildung 7.1visualisiert. (Für andere Blockgrößen von Rijndael werden die Zeilen teilweise an-ders verschoben.)

abcd

=⇒

ab

cd

Abbildung 7.1: Shift-Row-Operation für 128-Bit-Datenblöcke

3. Mix Column: Eine lineare Transformation y = Ax wird hier vorgenommen, dabeiwerden die Spalten als Vektoren in F4

28 aufgefasst. Jedes der 4 Bytes einer Spalteist also als ein Vektorelement zu sehen. Beim Entschlüsseln verwendet man dieMatrix A−1.

4. Key Addition: Dieser Schritt ist wie in der Vorrunde das bitweises XOR einesBit-Rundenschlüssels mit der Zustandsmatrix.

• Schlussrunde: Die letzte Runde läuft wie die Runden zuvor ab, allerdings wird derMix-Column-Schritt ausgelassen.

SchlüsselexpansionDie Rundenschlüssel werden vom Hauptschlüssel per Schlüsselexpansion erstellt. Derfolgenden Algorithmus beschreibt diesen Vorgang für den AES mit einer Schlüssellängevon 128 Bit für die i-te Runde:

1. Teile Schlüssel in 32-Bit-Worte W [0], . . . ,W [3] auf, also genau die Spalten derByte-Matrix

2. Berechne W [i] rekursiv:i f i = 0 mod 4

then W [i] := W [i− 4]⊕ f(W [i− 1])⊕ const(i)e l s e W [i] := W [i− 4]⊕W [i− 1]

48

Page 49: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Wobei f eine Funktion ist (die zirkuläre Linkshifts, Substitutionen und eine XOR-Addition beinhaltet), und const(i) eine von i abhängige Konstante bezeichnet. Für AESmit einer Schlüssellänge von 192 bzw. 256 Bit ersetzt man die „4“ nun natürlich durcheine „6“ bzw. „8“ und bei AES-256 verwendet man folgendes für den if-then-Abchnitt:

W [8j + 4] = W [i] := W [i− 8]⊕ ByteSub(W [i− 1]).

7.2 Schwächen und beste bekannte Angriffe

Einige bekannten Schwächen und die besten bekannten Angriffe gegen AES wollen wirnun kurz besprechen.

Mathematische Struktur Die Verschlüsselung ist als eine geschlossene algebraische For-mel über F28 darstellbar, der Algorithmus hat also eine zu starke mathematischeStruktur und ist damit theoretisch durch Lösen nicht-linearer Gleichungssystemeangreifbar.

Seitenkanalangriffe Für eine Cache-Timing-Attack, bei welcher man mithilfe der Zeit-dauer für bestimmte Berechnungen Rückschlüsse über die Beschaffenheit des Schlüs-sels ziehen kann, benötigt man über 200 Millionen gewählte Klartexte und ebenexakte Timing-Information. Oder es ist einem Angreifer möglich, beliebigen Codeauf den Verschlüsselungsservern ausführen.

Related-Key-Attack Eine Related-Key-Attack ist gegen AES-192 und AES-256 mit ei-nem Aufwand von ungefähr 2100 möglich. Für rundenreduzierte AES-Variantenmit 256 Bit Schlüssellänge sind folgende Aufwände bekannt: Gegen 9, 10 bzw. 11Runden lauten die Aufwände 239, 245 bzw. 270.

Meet-in-the-Middle-/Biclique-Attack In [BKR11] wurde der erste Key-Recovery-Angriffauf den vollen AES vorgestellt. Die effektive Schlüssellänge wurde per Meet-in-the-Middle- und Biclique-Attack um 2 Bit verkürzt. Es wird hierfür nur ein einzigesKlartext-Chiffrat-Paar benötigt.

49

Page 50: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

8 Betriebsmodi für Blockchiffren

Die in diesem Kapitel vorgestellten Betriebsmodi erlauben die wiederholte und siche-re Nutzung von Blockchiffren mit einem einzigen Schlüssel. Eine Blockchiffre erlaubtnämlich nur die Verschlüsselung eines einzelnen Blocks mit der passender Länge. DurchRandomisation, z. B. durch die zusätzliche Eingabe eines sogenannten Initialisierungs-vektors, wird es ermöglicht, mehrere Blöcke zu verschlüsseln. Längere Nachrichten müs-sen darüberhinaus aufgeteilt und (bei zu kleinen Endstücken) gepaddet werden.

8.1 ECB: Electronic Codebook Mode

Der Klartext m wird in Blöcke à n bit aufgeteilt und jeder Block separat mit demselbenSchlüssel verschlüsselt, wie es in Abbildung 8.1 zu sehen ist. Dies ist der einfachste Modusund zugleich der unsicherste.

Ek

k

m E−1k

k

m′c

Übertragung

c′

Abbildung 8.1: ECB

Vorteile: + Keine Fehlerfortpflanzung, d. h. Übertragungsfehler (Bitflips) sindauf die betroffenen Blöcke begrenzt

+ Verschlüsselte Datenspeicher können hier blockweise ausgelesenbzw. beschrieben werden; einfache Suchfunktionen sind auf ver-schlüsselten Daten ausführbar

+ Ver- und Entschlüsselung parallelisierbar

Nachteile: − Gleiche Klartext-Blöcke führen zu gleichen Chiffrat-Blöcken (dar-um wird es auch „Codebook“ genannt)

− Ein Angreifer kann Blöcke löschen, verändern, duplizieren(Replay-Attack) und die Reihenfolge ändern (somit ungeeignet fürlange Nachrichten)

Um diesen Nachteilen abzuhelfen, sollte der Chiffreblock vom Klartextblock und vonvorherigen Klartext- bzw. Chiffreblöcken abhängen, damit sich wiederholende, identi-sche Klartextblöcke unterschiedliche Chiffreblöcke liefern. Man kann damit dann auch

50

Page 51: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Einfüge-, Lösch- und Änderungs-Versuche erkennen. Ohne eine solche Abhängigkeit vonvorherigen Blöcken bleiben gleiche Blöcke gut erkennbar, was die Abbildung 8.21 ver-deutlicht. Man kann darin links ein Bild von Tux, dem Linux-Maskottchen sehen, welchestrotz ECB-Verschlüsselung rechts immer noch grob als solches zu erkennen ist.

(a) TuX, der Pinguin (b) ECB-verschlüsselter TuX

Abbildung 8.2: ECB-Verschlüsselung an einem Bild-Beispiel

8.2 CBC: Cipher Block Chaining Mode

Bei CBC wird ein n-Bit-Register verwendet, welches den vorherigen Chiffreblock zwi-schenspeichert. Dieses benötigt eine Anfangsbelegung, einen sogenannten Initialisie-rungsvektor (IV). Die Chiffreblöcke ci erhält man nun durch

c0 := Initialisierungsvektor,ci := Ek(mi ⊕ ci−1).

Es hängt also jeder Chiffreblock ci von allen vorausgegangenen Blöcken und dem IV ab.Für die Entschlüsselung gilt

c0 := Initialisierungsvektor,mi := E−1

k (ci)⊕ ci−1.

Dieser Ver- und Entschlüsselungsvorgang ist in Abbildung 8.3 veranschaulicht.

CBC ermöglicht Selbstsynchronisation: Da man zur Entschlüsselung nur den momen-tanen und den vorherigen Block braucht, müssen Sender und Empfänger nicht den IVaustauschen. Der Empfänger kann irgendwas nehmen und der Sender schickt als erstenBlock Zufall. Für den nächsten Block steht nun das passende im Empfänger-Register.

18.2 (a) von Larry Ewingi ([email protected]) erstellt mit GIMP; 8.2 (b) von Wikimedia Commens

51

Page 52: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Ek

k

m E−1k

k

m′c

Übertragung

c′

Register Register

Abbildung 8.3: CBC

Vorteile: + Nachteile von ECB beseitigt+ Entschlüsselung selbstsynchronisierend (da für die Berechnung ei-

nes Klartextes nur die beiden letzten Chiffrate benötigt werden)

Nachteile: − Initialisierungsvektor muss übertragen werden oder alternativSelbstsynchronisation nutzen ⇒ kleiner Bandbreitenverlust

− nur lesender wählerfreier Zugriff (auf z. B. Datenspeicher) überSelbstsynchronisation, kein Schreibzugriff

− Übertragungsfehler erzeugen Bitfehler bei der Entschlüsselung desnachfolgenden Blocks

− Verschlüsselung nicht parallelisierbar (Entschlüsselung schon)

Behandlung des letzten Blocks

Hat der letzte Block nur eine Länge von l < n und Padding ist nicht möglich (z. B. auf-grund Bandbreiten- oder Anwendungsbeschränkungen), kann man (als Sender) wie folgtvorgehen: Verschlüssle den vorletzten Chiffreblock cr−1, addiere diesen verschlüsseltenWert mit dem letztem Block mr und nehme von dem Ergebnis die linken l Bits. Aller-dings ist der letzte Block anfällig gegen (sinnvolle) Veränderungen, was mit Malleabilitybezeichnet wird, da sich eine Veränderung im Chiffretext nicht mehr auf folgende Blöckeauswirken kann.

Eine bessere Methode ist Ciphertext Stealing, welche in Abbildung 8.4 zu sehen ist. Hier-bei wird der letzte Klartextblock mit den höherwertigen Bits des vorletzten Chiffreblocksgepaddet und verschlüsselt. Die höherwertigen Bits des vorletzten Chiffreblocks werdenentfernt und der letzte und vorletzte Chiffreblock werden vertauscht. (Man nimmt al-so nur eine Reihenfolgenänderung vor, aber es werden keine zusätzlichen Padding-Bitsbenötigt.)

8.3 CFB: Cipher Feedback Mode

Man verwendet bei CFB ein n-Bit-Schieberegister, dessen Inhalt um l Bit nach linksverschoben wird und welches dann mit den l Bit von c, dem letzten Chiffrat, befülltwird. Anschließend werden diese n Bit aus dem Schieberegister verschlüsselt, l Bit davon

52

Page 53: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

mp−1 mp

c′p−1 mp

cp−1 cp

Ek

Ek

Abbildung 8.4: Ciphertext Stealing bei letztem Klartextblock mp

ausgewählt und auf den neuen Klartextblock addiert, der somit verschlüsselt wurde. Mankann sich dies mithilfe der Abbildung 8.5 leicht verständlich machen.

Ekk Ek k

Schiebereg.

l-Bit Ausw.

m

n Bit

n Bit

l Bit

Schiebereg.

l-Bit Ausw.

m′c

Übertragung

c′

Abbildung 8.5: CFB

Ein Initialisierungsvektor wird benötigt (analog zu CBC), dieser kann im Klartext (z. B.als Präambel zur eigentlichen Nachricht) übertragen werden; äquivalent ist Selbstsyn-chronisation nutzbar. Die Chiffretextfolge ist vom IV und allen zuvor übertragenenChiffraten abhängig. Die Invertierbarkeit der Blockchiffrefunktion, in vorherigen Ab-bildungen durch E−1

k beim Empfänger gekennzeichnet, wird nicht benötigt, da die n-Bit-Schieberegister den gleichen Inhalt haben.

53

Page 54: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Vorteile: + Blocklänge l aus 1, . . . , n frei wählbar (ohne Overhead bei Kom-munikation)

+ Selbstsynchronisierend (analog zu CBC); für l = 1 sogar robustgegen Bitslips (für l > 1 nur falls Vielfaches von l verschlucktwurde)

+ Chiffre muss nicht (effizient) invertierbar sein

Nachteile: − Mehraufwand für Ver-/Entschlüsselung von Faktor n/l, da schließ-lich n Bits verschlüsselt, aber nur l Bits verwendet werden. (Ein-zelne Runden können aber vorberechnet werden, da der Klartextnur mit XOR eingeht.)

− Resynchronisation bei Bitflips erst nach n/l Blöcken− Ein Angreifer kann gezielt Klartextblock-Bits ändern, erzeugt aber

in nachfolgenden Blöcken zufällige Änderungen. Der letzte Blockist zwar wieder gefährdet, wird aber bei 8-Bit-CFB (l = 8) meistfür die Prüfsumme verwendet, ist also nicht sinnvoll änderbar.

Ist es einem Angreifer möglich ein Chiffretext zu einem anderen umzuformen, sodassderen Klartexte in Relation zueinander stehen, spricht man von Malleability (siehe auchAbschnitt 9).

Bei Übertragungsfehlern wird solange falsch dechiffriert, bis der Fehler aus dem Schiebe-register hinausgeschoben wird. Bei l übertragenen Zeichen und einer Schieberegisterlängevon n lautet die Anzahl falsch dechiffrierter Zeichen 1 + n/l.

8.4 OFB: Output Feedback Mode

Bei OFB wird ähnlich wie bei CFB vorgegangen, allerdings nimmt man nicht l Bitdes Chiffrats, die man dann dem Schieberegister zuführt, sondern die l-Bit-Auswahl derVerschlüsselung des Schieberegisterinhalts, wie dies in Abbildung 8.6 zu sehen ist. EinInitialisierungsvektor wird benötigt, dieser kann im Klartext übertragen werden.Vorteile: + Schlüsselstrom unabhängig von Nachrichtenstrom vorberechenbar

+ Keine Fehlerfortpflanzung bei Bitflips+ Chiffre muss nicht (effizient) invertierbar sein

Nachteile: − Lineare Verschlüsselung (XOR) verwendet, d. h. ein Angreiferkann gezielt Klartext-Bits kippen. (Es gibt keine Nachrichten-Verkettung wie beim CBC, CFB, also ist die Erkennung einerManipulation genauso problematisch wie bei ECB.)

− „Wiederverwendung“ des Initialvektors ist besonders kritisch, esgilt dann c ⊕ c′ = m ⊕m′, man kann nun den Klartext erkennenwie bei Vigènere.

− Keinerlei Resynchronisation, wenn etwas verloren geht (ECB, CBCund CFB resynchronisieren, wenn ganze Blöcke verloren gehen).

54

Page 55: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Ekk Ek k

Schiebereg.

l-Bit Ausw.

m

n Bit

n Bit

l Bit

Schiebereg.

l-Bit Ausw.

m′c

Übertragung

c′

Abbildung 8.6: OFB

8.5 CTR: Counter Mode

Ein Initialisierungsvektor wird benötigt, welcher im Klartext übertragen werden kann.Dieser IV, mit addiertem bzw. angehängtem Counter, wird verschlüsselt und auf denKlartext addiert. Anschließend wird der Counter erhöht und wieder mit dem IV ver-schlüsselt und auf den nächsten Klartextblock addiert usw., wie es Abbildung 8.7 zeigt.

Ekk Ek k

IV

m

Counter

IV

m

Counter

c

Übertragung

c′

Abbildung 8.7: CTR

Vorteile: + Schlüsselstrom unabhängig von Nachrichtenstrom vorberechenbar+ Ver- & Entschlüsselung parallelisierbar+ Keine Fehlerfortpflanzung bei Bitflips+ Chiffre muss nicht (effizient) invertierbar sein+ Verschlüsselte Datenspeicher können blockweise bearbeitet werden

Im Wesentlichen hat man also die Vorteile von ECB und OFB. Außerdem hat man auchdie gleichen Nachteile wie bei OFB.

55

Page 56: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

8.6 Probleme bei schwachen Verfahren

Bei dem OFB-Verfahren ist die Schlüsselwahl zu beachten. Denn mit einem schwachemSchlüssel k kann die Blockchiffre Ek eine Involution bilden (d. h. eine selbstinverse Per-mutation) und erzeugt dann einen Schlüsselstrom mit einer Periode von 2n. Dies ermög-licht einen einfachen Known-Plaintext-Angriff, wenn 2n Bit vom Klartext bekannt sindbzw. es entspricht sogar einer Vigenère-Verschlüsselung.

Bei dem CBC-Modus ist eine Birthday-Attack aufgrund gleicher Chiffrat-Blöcke möglich.Bei gleichen Chiffrate-Blöcken ci = cj gilt nämlich:

Ek(mi ⊕ ci−1) = Ek(mj ⊕ cj−1).

Und daraus folgt:mi ⊕mj = ci−1 ⊕ cj−1.

Somit erhält man aufeinander addierte Klartextblöckemi⊕mj . Dies tritt bei einer Block-länge von n ab einer Klartextlänge von ungefähr 2n/2 mit signifikanter Wahrscheinlichkeitauf. Darum sollte man Schlüssel bei großen Datenmengen häufig wechseln.

8.7 Vergleich

Ein Vergleich über einige Betriebsmodi findet sich in Tabelle 8.1.

56

Page 57: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Verwendung

Synchronisa

tion

Fehlererweiterung

Bit-F

ehler

Bit-S

lip

Random

Access

ECB Nachricht m< Block n – Nein 1 Block

zerstört

Keine Syn-chronisation

mehrrw

CBC m > n

IV bzw.autom.

nach einemBlock

Ja

1 Blockzerstört, 1 Bitim nächsten

Block invertiert

Keine Syn-chronisation

mehrr

CFB

Zeichenstrom(jedesZeicheneinzeln

bearbeitet)

IV bzw.autom.

nach einemBlock

JaNächsten

1 + n/l Zeichengestört

Nur für l = 1nach n Bit

Resynchroni-sation

r

OFB

m > n,Fehlererwei-

terungunerwünscht

IV Nein 1 Bit invertiertKeine Syn-chronisation

mehr–

CTR

m > n,Fehlererwei-

terungunerwünscht

IV Nein 1 Blockzerstört

Keine Syn-chronisation

mehrrw

Tabelle 8.1: Betriebsmodi im Vergleich

57

Page 58: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

9 Formale Sicherheitsbegriffe

Bei den verwendeten formalen Sicherheitsbegriffen wird ein Paar aus zwei Spielen defi-niert, mit einem Angreifer A und einem Herausforderer Eb, deren Ergebnis jeweils einebinäre Zufallsvariable ist. Die Chiffre ist sicher im Sinne der Definition, wenn kein An-greifer bewirken kann, dass die beiden Spielergebnisse statistisch signifikant voneinanderabweichen. Die Mächtigkeit des Angreifers wird dabei durch zwei Orakel O und O′ mo-delliert, auf welche der Angreifer vor bzw. während des Spiels zugreifen kann. So kannein Angreifer ein Verschlüsselungsorakel nutzen, um Klartexte zu verschlüsseln, ohnedass der Angreifer dabei Zugriff auf den geheimen Schlüssel hat.

Angriffe

• Chosen-Plaintext Attacks (CPA): Bei diesem Angriff sind O und O′ reine Ver-schlüsselungsorakel.

• Chosen-Ciphertext Attacks (CCA1): Hier ist O ein Ver- & Entschlüsselungsorakelund O′ ist nur ein Verschlüsselungsorakel.

• Adaptive Chosen-Ciphertext Attacks (CCA2): Hier sind O und O′ jeweils Ver- undEntschlüsselungsorakel. (O′ weigert sich hierbei allerdings trivialerweise, Challenge-Chiffrate zu entschlüsseln.)

Schutzziele

Die folgenden Veranschaulichungen sind abgeleitet aus [BDPR98].

• Indistinguishability (IND): Ein Angreifer A kann keine zwei Klartexte m0,m1 fin-den, deren Chiffrate er dem jeweils zugehörigen Klartext zuordnen könnte. In demSpiel, welches in Abbildung 9.1 zu sehen ist, gibt der Angreifer A die zwei Klartex-te an den Herausforderer Eb, welcher mit einem zufällig ausgewähltem b ∈ {0, 1}entscheidet, welcher der beiden Texte verschlüsselt und zurückgegeben wird. DerAngreifer gibt b ∈ {0, 1} aus, mit welchem er angibt, ob seiner Meinung nach m0oder m1 verschlüsselt wurde. Sind b und b identisch, so war der Angriff erfolgreich.

• Real or Random (ROR): Ein Angreifer A kann keinen Klartext m finden, dessenChiffrat er von verschlüsseltem Zufall unterscheiden könnte. In Abbildung 9.2 wirddies veranschaulicht, hierbei wird mit x R←− Klartextraum ausgedrückt, dass manaus dem Klartextraum per Zufall ein Element auswählt.

• Non-Malleability (NM): Ein Angreifer A kann Chiffrate nicht so umformen, dassdie „Fälschung“ eine sinnvolle Relation R zum „Original“ erfüllt. (Malleability

58

Page 59: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

lässt sich übersetzen zu „Formbarkeit“, „Geschmeidigkeit“.) Der Spielablauf ist inAbbildung 9.3 zu sehen. Es geht bei diesem Angriff nicht darum, etwas über denKlartext x zu erfahren, sondern einen Chiffrat-Vektor ~y auszugeben, dessen Ent-schlüsselung ~x eine (bedeutende) Relation R zum Klartext x hat, geschrieben alsR(x, ~x). Zuerst gibt der Angreifer hierbei eine Klartextverteilung M aus. Dar-aus werden zwei Nachrichten x0, x1 zufällig ausgewählt und x0 wird für ihn zu yverschlüsselt und zurückgegeben. Der Angreifer gibt nun die Beschreibung einerRelation R und einen Vektor ~y aus. Wobei y /∈ ~y gegeben und R effizient prüfbarist. Der Vektor ~y wird nun entschlüsselt zu ~x. Der Angreifer ist erfolgreich, soferndie Relation R(x, ~x) erfüllt ist und die Wahrscheinlichkeit dafür signifikant größerist als diejenige, für die R(x1, ~x) mit einem zufällig gewähltem x1 ausM gilt.

Warum so eine auf den ersten Blick seltsame Definition sinnvoll ist, kann man sichverständlich machen, wenn man als Beispiel eine Auktion mit zwei Teilnehmernbetrachtet: Der ehrliche Teilnehmer gibt ein Gebot g verschlüsselte als Ek(g) abund der unehrliche zweite Teilnehmer liest dies. Könnte er nun, ohne es zu ent-schlüsseln, daraus Ek(g + 1) machen, würde er zwar nicht wissen, was er bietet,aber immer gewinnen.

A Eb

y = EncK(mb)

b

m0 , m1

y

[Ergebnis: b

]Abbildung 9.1: Indistinguishability (IND)

A Eb

xR←− Klartextraum

y ={EncK(m) falls b = 0EncK(x) falls b = 1

b

m

y

[Ergebnis: b

]Abbildung 9.2: Real or Random (ROR)

59

Page 60: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

A Eb

x0, x1R←−M

y = Enck(x0)

~x = Deck(~y)

M(Klartextverteilung)

y

R, ~y

[Ergebnis: y /∈ ~y ∧ ⊥ /∈ ~x ∧ R(xb, ~x)]

Abbildung 9.3: Non-Malleability (NM)

9.1 Beziehungen zwischen den Begriffen

Die Beziehungen zwischen den verschiedenen Sicherheitsbegriffen nach [BDPR98] sind inAbbildung 9.4 zu finden. Hierbei bedeuten die gestrichelten und durchgestrichene Pfeilenatürlich, dass die jeweiligen Begriffe nicht auseinander folgen, während die normalenPfeile die „folgt aus“-Beziehung darstellen sollen.

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äutert werden und es stehe „atk“ kurz für„CPA“, „CCA1“ und „CCA2“.

• IND-atk⇒ RoR-atk: Kann man zwei selbstgewählte Klartexte nicht unterscheiden,dann auch nicht ein gewählter und ein zufälliger Text.

• RoR-atk ⇒ IND-atk: RoR-Sicherheit bedeutet, dass kein Angreifer einen Klartextm oder m′ findet, sodass er Ek(m) oder Ek(m′) von verschlüsseltem Zufall unter-scheiden kann. Aus der Transitivität der Ununterscheidbarkeits-Relation folgt dieUnunterscheidbarkeit von Ek(m) und Ek(m′).

60

Page 61: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

• IND-CCA1 ; NM-CPA: Ein IND-CCA1-sicheres Schema bleibt IND-CCA1-sicher,wenn man an jedes Chiffrat c ein Chiffrat c′ des bitweise invertierten Klartexts an-hängt. Ein NM-Angreifer kann dann den Inhalt von Chiffraten bitweise invertieren,indem er die Reihenfolge von c und c′ vertauscht.

• NM-CPA ; IND-CCA1 : Ein NM-CPA-sicheres Schema kann oBdA so umge-baut werden, dass gilt Ek(Ek(k)) = 0 . . . 0. Das Schema bleibt CPA-, nicht jedochCCA1-sicher (O von CCA1 gibt k frei, da es entschlüsseln kann).

Achtung: Ein Schema, für welches Ek(k) = 0 . . . 0 gilt, ist nicht NM-CPA-sicher.Ein Angreifer kann die Relation R so wählen, dass R(x, a, b) erfüllt ist, genau dann,wenn Da(b) = x gilt. Dann kann er bei gegebener Challenge y = Ek(x) dazu dasChiffrat-Tupel ~y = (0 . . . 0, z) mit z = Ek(y) wählen und die Relation ist erfüllt.Das Ergebnis: R(Dk(y), Dk(0 . . . 0), Dk(z)) = R(x, k, y) ist erfüllt, da Dk(y) = xgilt.

• IND-CCA2 ⇒ NM-CCA2 : Ein Angreifer, der das NM-CCA2-Spiel gewinnt, kannChiffrate so umformen, dass er die Relation zwischen den entsprechenden Klartex-ten kennt. Damit kann er die Challenge im IND-CCA2-Spiel entsprechend umfor-men, entschlüsseln lassen und prüfen, ob der erhaltene Klartext in Relation zu m1oder m2 steht.

• NM-atk ⇒ IND-atk: Ein Angreifer, der Klartexte wiedererkennen kann, kann zumwiedererkannten Klartext mi einen Klartext m′ wählen (und verschlüsseln lassen),sodass mi und m′ in einer vom Angreifer gewählten Relation stehen.

Beobachtungen

Diese formalen Sicherheitsbegriffe und deren Beziehungen untereinander lassen uns zufolgenden negativen (−) und positiven (+) Beobachtungen kommen:

− Volldeterministische Verfahren (ECB) erfüllen keinen der Begriffe− Selbstsynchronisierende (CBC, CFB) und lineare (OFB, CTR) Verfahren erfüllen

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üsselzugriff von einer Ideal Cipherunterscheiden kann.

+ Um NM-CPA-Sicherheit zu erreichen (sogar IND-CCA2), wird ein IND-CPA-sicheres Verfahren mit einem Authentifikationsverfahren (MAC, siehe Abschnitt11.1) kombiniert. Dies führt zur sogenannten Authenticated Encryption (z. B. denModi CCM, CWC, OCB, EAX oder GCM).

61

Page 62: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

10 Hashfunktionen

10.1 Definition und Eigenschaften

Definition 10.1.1: (Hashfunktion): Eine Hashfunktion H ist eine Abbildung, die einenbeliebig großen Eingabewert auf eine kleine Ausgabe, den sogenannten Hashwert, abbil-det. Formaler lässt sich dies ausdrücken 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üllen:• Urbildresistenz: Gegeben ein Hashwert h, ist es nicht praktikabel, ein Urbild m zu

finden, d. h. H(m) = h.formal: Für jeden effizienten Angreifer A (mit Laufzeit polynomiell in der Eingabe-länge) soll die folgende Wahrscheinlichkeit vernachlässigbar in einem Sicherheits-parameter λ sein:

Pr[A(Hk(m), k)→ m′ mit Hk(m′y) = Hk(m)

]Dabei ist (k,m) gleichverteilt zufällig aus {0, 1}λ×{0, 1}p(λ) mit einem beliebigenaber festen Polynom p ∈ Z[X].• Kollisionsresistenz: Es ist nicht praktikabel, zwei verschiedene Urbilder m,m′ mitdemselben Hashwert h = H(m) = H(m′) zu finden.formal: Für jeden effizienten Angreifer A (mit Laufzeit polynomiell in der Eingabe-länge) soll die folgende Wahrscheinlichkeit vernachlässigbar in einem Sicherheits-parameter λ sein:

Pr[A(k)→ (m,m′) mit Hk(m) = Hk(m′)

]Dabei ist k gleichverteilt zufällig aus {0, 1}λ.

Random OracleEin Random Oracle (RO) ist eine (Über-)Idealisierung einer Hashfunktion und jedemUrbild m ∈ {0, 1}∗ ist ein vollkommen zufälliger Hashwert h ∈ {0, 1}n zugeordnet (nist ein Sicherheitsparameter) und per Orakelzugriff kann jede Maschine im Modell dieentsprechende Funktion H auswerten.Folgendes gilt es noch anzumerken:

62

Page 63: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

• Es gibt (konstruierte) Protokolle, die im Random-Oracle-Modell sicher sind, aberfür keine bekannte Hashfunktion sicher sind.

• Das Random-Oracle- und Ideal-Cipher-Modell sind äquivalent. Mittels eines Feistel-Netzwerks lässt sich aus einem RO eine IC konstruieren. Umgekehrt kann mittelseines Merkle-Damgård-Schemas ein RO aus einer IC konstruiert werden. Beideswird im folgenden Abschnitt behandelt.

10.2 Merkle-Damgård- & Feistel-Konstruktion

Es soll nun erläutert werden, wie man aus einer Ideal Cipher ein Random Oracle kon-struiert und umgekehrt.

„Ideal Cipher ⇒ Random Oracle“

Die Abbildung 10.1 zeigt wie man durch Verkettung einer Ideal Cipher mithilfe eines In-itialisierungsvektors ein Random Oracle per sogenannter Merkle-Damgård-Konstruktionerhält. Hierbei wird die eigentliche Nachricht m in kleinere Blöcke m1, . . . ,mn unterteiltund den einzelnen Ideal Ciphern übergeben.

IV IC IC . . . IC H(m1||m2|| . . . ||mn)

m1 m2 mn

Abbildung 10.1: Ideal Cipher ⇒ Random Oracle

Es gilt allerdings zu beachten, dass eine einfache Merkle-Damgård-Konstruktion nochnicht genügt! Das Problem: Gegeben den Hashwert h einer unbekannten Nachricht m,kann ein Angreifer zu jeder Nachricht m′ den Hashwert H(m||m′) berechnen, indemeinfach an die obige Pipeline-Konstruktion weitere Stufen angebaut werden und m′ auf-geteilt und eingegeben wird. Hierbei benutzt man H(m) als internen Hashwert zur Be-rechnung von H(m||m′). Dafür gibt es aber auch Lösungen:

• Wide-Pipe-Konstruktion nach [Luc04]: Es wird bei dieser Konstruktion intern mitmehr Bits gearbeitet, als ausgegeben werden. Dies verhindert das Auffinden vonKollisionen bei internen Hashwerten (also den Zwischenhashwerten). Siehe Abbil-dung 10.2 (a).

• Fast-Wide-Pipe-Konstruktion nach [NP10]: Die Hälfte der erweiterten interne Bitswerden auf den Ausgang des nachfolgenden ICs addiert, anstatt sie wie bei derWide-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ötigt man laut[HKT11] eine Feistel-Struktur mit 14 Runden, wie sie in Abbildung 10.3 angedeutet

63

Page 64: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

m1 m2 . . . mn

IC IC . . . IC H(m1|| . . . ||mn)IV1

IV2

(a) Wide-Pipe-Konstruktion

m1 m2 . . . mn

IC IC . . . IC H(m1|| . . . ||mn)IV1

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 Rundeund k ist der Schlüssel, der der Hashfunktion Hi zur Verfügung gestellt wird. Unbekanntist allerdings, ob auch schon weniger Runden ausreichend sind.

Hi

k

RiH(i||k||Ri)

Abbildung 10.3: Random Oracle ⇒ Ideal Cipher

10.3 Äquivalenz von Krypto-Primitiven

Es wird in [CPS08] bemerkt, dass man, um Beweise für die Sicherheit eines Krypto-Systems zu konstruieren meist zwei mögliche Ansätze verfolgt. Entweder verwendet manbestimmte rechnerische Probleme, wie z. B. die Faktorisierung großer Zahlen, die alsschwer lösbar gelten (welche man, könnte man das Krypto-System brechen, dann eben-falls lösen kann, was ja gerade als schwer machbar gilt), oder man nutzt der Effizienzzuliebe ein idealisiertes Modell der Wirklichkeit, wie die bereits zuvor erwähnten Ideal-Cipher- und Random-Oracle-Modelle. Die Äquivalenz solcher Modelle oder kryptogra-

64

Page 65: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

phischer Konstruktionen, die wir hier Primitive nennen wollen, ist bedauerlicherweisenicht unbedingt leicht zu zeigen, sodass manche Beweise schwer vergleichbar sind. AmBeispiel der zuvor schon beschriebenen Gleichheit von Ideal Cipher und Random Oraclewollen wir die Schwierigkeit von Äquivalenzbeweisen bezüglich bestimmter Definitionaufzeigen.

Eine erste DefinitionEine „naive“ Definition für die Gleichheit von Primitiven, welche, wie wir bald sehenwerden, unzureichend ist, lautet:Definition 10.3.1: (Indistinguishability): Eine Primitive Y kann aus X realisiert wer-den, wenn es eine TuringmaschineM gibt, sodass die Ein-Ausgabe-Verteilung vonMX

ununterscheidbar ist von der Ein-Ausgabe-Verteilung von Y. Etwas formaler formuliertkann man sagen, dass für jeden Unterscheider D gilt:

Pr[DMX = 1] ≈ Pr[DY = 1].

Indistinguishability reicht nicht, da – sofern der Angreifer z. B. auf innere Rundenfunk-tionen zugreifen kann – dieser ein anderes Interface hat (eben die Ein- und Ausgängeder inneren Funktionen). Solche Zugriffe auf die „Innereien“ erlaubt das Random-Oracle-Modell nicht.

Angriff gegen 5-Runden-FeistelNach dieser Definition genügt ein 4-Runden-Feistel-Netzwerk, um aus einem RandomOracle eine Ideal Cipher zu implementieren. Es existiert aber ein Angriff auf die 5-Runden-Feistel, welcher in [CPS08] beschrieben ist. Die Idee dieses Angriffes ist, dass eineEigenschaft der 5-Runden-Struktur aufgezeigt wird, die bei einer zufälligen Permutationnicht wirklich zu finden wäre. Die im Folgenden verwendeten Bezeichnungen sind inAbbildung 10.4 übersichtlich dargestellt. Es seien Y und Y ′ beliebige Werte, die dieEingabe zu F3 bilden. Sei Z ein weiterer beliebiger Wert, welcher die Eingabe für F4darstellen soll. Wir setzen Z ′ = F3(Y )⊕ F3(Y ′)⊕ Z und damit gilt

X = F3(Y )⊕ Z = F3(Y ′)⊕ Z ′ (10.1)X ′ = F3(Y ′)⊕ Z = F3(Y )⊕ Z ′. (10.2)

Mit X,X ′, Y und Y ′ werden nun vier Paare (Xi, Yi) wie folgt gebildet:

(X0, Y0) = (X,Y ′), (X1, Y1) = (X ′, Y ),(X2, Y2) = (X ′, Y ′), (X4, Y4) = (X,Y ′).

Die dazugehörigen zwei Hälften der vier Klartexte seien mit Li und Ri bezeichnet. Wirerhalten nun

R0 = Y0 ⊕ F2(X0) = Y ⊕ F2(X)R1 = Y1 ⊕ F2(X1) = Y ⊕ F2(X ′)R2 = Y2 ⊕ F2(X2) = Y ′ ⊕ F2(X ′)R3 = Y3 ⊕ F2(X3) = Y ′ ⊕ F2(X).

65

Page 66: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

F1

F2

F3

F4

F5

L R

S T

X

Y

Z

S

Abbildung 10.4: 5-Runden-Feistelkonstruktion

Mit den dazugehörigen Eingabewerten Z0, . . . , Z3 für F4, erhält man mit den Gleichungen(10.1) und (10.2) diese Zusammenhänge:

Z0 = X0 ⊕ F3(Y0) = X ⊕ F3(Y ) = Z

Z1 = X1 ⊕ F3(Y1) = X ′ ⊕ F3(Y ) = Z ′

Z2 = X2 ⊕ F3(Y2) = X ′ ⊕ F3(Y ′) = Z

Z3 = X3 ⊕ F3(Y3) = X ⊕ F3(Y ′) = Z ′.

Mit Si und Ti seien die Chiffrehälften bezeichnet. Die linken Chiffrehälften können wirnun ausdrücken als

S0 = Y0 ⊕ F4(Z0) = Y ⊕ F4(Z)S1 = Y1 ⊕ F4(Z1) = Y ⊕ F4(Z ′)S2 = Y2 ⊕ F4(Z2) = Y ′ ⊕ F4(Z)S3 = Y3 ⊕ F4(Z3) = Y ′ ⊕ F4(Z ′).

Nach dieser etwas mühsamen Beschreibung erhalten wir folgende Beziehungen:

R0 ⊕R1 ⊕R2 ⊕R3 = 0 = S0 ⊕ S1 ⊕ S2 ⊕ S3.

Damit haben wir vier Klartext-Chiffrat-Paare gefunden, sodass die Addition der rechtenKlartexthälften, ebenso wie die Addition der linken Chiffrathälften null ergibt. Solch eine

66

Page 67: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Eigenschaft kann man bei einer wirklich zufälligen Permutation höchstens mit vernach-lässigbarer Wahrscheinlichkeit finden (bei polynomial beschränkter Anfragezahl), womitgezeigt 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 wer-den, wenn es eine Turingmaschine M und einen Simulator S gibt, sodass die Ein-Ausgabe-Verteilung von (MX , X) ununterscheidbar ist von der Ein-Ausgabe-Verteilungvon (Y,SY ). Für jeden Unterscheider D gilt also:

Pr[DMX ,X = 1] ≈ Pr[DY,SY = 1].

Der Simulator kann nun den Zugriff auf das „Innere“ simulieren. Der Unterscheider sollnun nicht erkennen, ob eine Permutation vorliegt und die Rundenfunktionen passenddazu simuliert werden (IC zu RO) oder ob (zufällig gewählte) Rundenfunktionen zusam-mengesetzt wurden (RO zu IC).

10.4 Aufbau von SHA-1

Der SHA, was für „Secure Hash Algorithm“ steht, wurde von dem National Institute ofStandards and Technology (NIST) zusammen mit der National Security Agency (NSA)entwickelt und 1994 veröffentlicht. Von diesem Algorithmus gibt es mehrere Versionenund wir werden uns mit SHA-1 beschäftigen, welcher sich folgendermaßen charakterisie-ren lässt und in Abbildung 10.5 zu sehen ist:

• Der Hash-Wert beträgt bei dieser Variante 160 Bit (intern wird aber mit 512 Bitgerechnet) und die Initial- bzw. Zwischenzustände werden in fünf 32-Bit-WortenA, . . . , E gespeichert.

• Es gibt 80 Runden, jeweils 20 mit einer von vier verschiedenen Funktionen fj , wel-che Verknüpfungen von logischen Operatoren sind und einer von vier Konstantencj . Für die ersten 20 Runden verwendet man f1 und c1, für die nächsten 20 Rundenf2 und c2, etc. Die verwendeten Funktionen lauten für die i-te Runde:

fj(B,C,D) =

(B ∧ C) ∨ (¬B ∧D) (für 0 ≤ i ≤ 19)B ⊕ C ⊕D (für 20 ≤ i ≤ 39)(B ∧ C) ∨ (B ∧D) ∨ (C ∧D) (für 40 ≤ i ≤ 59)B ⊕ C ⊕D (für 60 ≤ i ≤ 79)

• Ein Nachrichtenblock von 512 Bit wird zu 80 32-Bit-Worten expandiert. Die ersten16 Worte w0, . . . , w15 sind die ursprüngliche Nachricht, jedes weitere wj wird als

67

Page 68: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

512

160

A B C D E

32

20 Runden mit f

20 Runden mit f

20 Runden mit f

20 Runden mit f

+ + + + +

160

1

2

3

4

A

A

A

B

B

B

C

C

C

D

D

D

E

E

E

Abbildung 10.5: SHA-1: Schematischer Aufbau, die Additionen werden dabei mod 232

durchgeführt

ein zyklischer Linksshift um eine Stelle (bezeichnet als ROL1) von jeweils viervorangegangenen, aufaddierten Nachrichten berechnet:

ROL1(wj−16 ⊕ wj−14 ⊕ wj−8 ⊕ wj−3) (für 16 ≤ j ≤ 79).

• In Runde i fließt das Wort wi, die Konstante cj , die Funktion fj und die momenta-nen Zwischenvariablen Ai, . . . , Ei mit ein und bilden die neuen ZwischenvariablenAi+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.

Nach Ausführung aller Runden, erhält man nun den Hashwert, indem man die VariablenA bis E aneinander hängt, also A||B||C||D||E. SHA-1 wird mittlerweile seinem Namenallerdings nicht mehr ganz gerecht, da man einige starke Angriffe gefunden hat, siehez. B. [WYY05]. In der Praxis ist SHA-1 allerdings (noch) ungebrochen.

68

Page 69: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

A B C D E

fj +

ROL5 +

+

ROL30 +

A B C D E

wi

ci

Abbildung 10.6: SHA-1: Rundenfunktion, die Additionen werden mod 232 durchgeführt

10.5 Angriffsansätze gegen Hashfunktionen

Einige Angriffsansätze gegen Hashfunktionen werden im Folgenden kurz aufgelistet.

Meet-in-the-Middle Man kann eine Urbildsuche mithilfe der Meet-in-the-Middle-Methodegegen eine Merkle-Damgård-Konstruktion ausführen. Dabei muss der Angreifer dieverwendete Kompressionsfunktion invertieren können.

1. Halbiere eine Nachricht in eine linke und eine rechte Hälfte. Verändere in derlinken Hälfte n/2 Stellen, wobei n die Hashwertlänge ist, sodass man 2n/2

verschiedene linke Nachrichtenhälften erhält.

2. Berechne für alle linken Nachrichtenhälften den Teil-Hashwert, tabelliere die-ses Zwischenergebnisse (Vorwärtsschritt).

3. Sortiere die Tabelle.

4. Rechne für jede ebenso veränderte rechte Nachrichtenhälfte vom gegebenenBild zum Zwischenergebnis zurück und suche dieses in der Tabelle (Rück-wärtsschritt). Ein Treffer bedeutet, dass man eine Kollision gefunden hat.

Fixpunkte Man nutzt Fixpunkte der Kompressionsfunktion f aus, um Kollisionen zuerzeugen. Man sucht also Zwischenhashwerte h und Nachrichtenblöcke m, für diegilt f(m||h) = h, sodass man nun unbemerkt Nachrichtenblöcke einbauen kann.

Differentielle Analyse Bei der differentiellen Analyse von auf Blockchiffren basierendenHashfunktionen findet man eine Kollision, wenn man eine Ausgabedifferenz mitdem Wert null finden kann.

69

Page 70: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

10.5.1 Praktische Angriffe aus „sinnlosen“ Kollisionen

Bekannte Angriffe (z. B. gegen den MD5-Hashalgorithmus) erzeugen Kollisionen, beidenen der Angreifer einen gewissen Teil der Urbilder frei wählen kann, der Rest jedoch(pseudo-)zufällig aussieht. Trotzdem lassen sich damit realistische Angriffe durchführen,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, sodass H(if S) = H(if T ), so haben folgende Dokumentedenselben Fingerprint, führen jedoch zu zwei völlig unabhängigen Textausgaben:

• if S = S then TEXT1 else TEXT2

• if T = S then TEXT1 else TEXT2

X.509-Zertifikate für RSA-2048 public keys

Einführend wollen wir kurz den RSA-Aufbau skizzieren und wie man damit Zertifika-te erstellen kann. RSA ist ein asymmetrisches Verschlüsselungsverfahren, also wird mitunterschiedlichen Schlüsseln ver- und entschlüsselt. Der öffentlich Schlüssel zum Ver-schlüsseln (public key) ist ein Zahlenpaar (e, n), der geheime Schlüssel zum Entschlüs-seln (secret key) lautet (d, n). Hierbei ist n das Produkt zweier großer, unterschiedlicherPrimzahlen p und q. Der Wert e mit 1 < e < (p−q)(q−1) ist teilerfremd zu (p−1)(q−1)und d ist das multiplikative Inverse von e bezüglich des Modulus (p−1)(q−1). Ein Sen-der kann mit RSA Zertifikate für eine zu sendende Nachricht erstellen, also die Integritätseiner Nachricht gewährleisten, indem er z. B. einen Hashwert der Nachricht mit dem se-cret key verschlüsselt. Mithilfe des public keys, welcher dem Sender eindeutig zugeordnetund öffentlich bekannt sein muss, kann ein Empfänger nun den Hashwert entschlüsseln,prüfen, ob der Hash der gesendete Nachricht diesem signierten Hashwert entspricht undsich sicher sein, dass niemand die Daten bei der Übertragung verändert hat, sofern sieübereinstimmen.

Das Ziel bei diesem Angriff ist nun das Erzeugen von zwei verschiedenen Zertifikatenmit unterschiedlichem Moduli n, n′ aber demselben Fingerprint. Das Problem ist nun,dass diese Moduli Primzahl-Produkte sein müssen. Man nimmt an, es seien zwei 1024-Bit-Werte q, q′ gefunden, sodass die entsprechenden Zertifikatanfänge gleiche Hashwertehaben (dies ist mit dem Angriff von Wang, beschreiben in [WLF+05], möglich). Gesuchtist nun ein b, sodass q · 21024 + b und q′ · 21024 + b beides gültige RSA-Zahlen sind (also2048-Bit-Primzahl-Produkte). Dieses b ermittelt man folgendermaßen:

1. Wähle zwei ungefähr 500 Bit große Primzahlen p, p′.

2. Solange b ≤ 21024:

70

Page 71: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

a) Wähle das minimale b mit p|n = q · 21024 + b und p′|n′ = q′ · 21024 + b.

b) Falls n/p oder n′/p′ nicht prim, erhöhe b um p · p′.

3. Falls kein passendes b gefunden, wähle neue Primzahlen p, p′.

Die Erfolgswahrscheinlichkeit pro Iterationsschritt sind ungefähr die Wahrscheinlichkeit,dass zwei zufällige 1500-Bit-Zahlen prim sind, also ungefähr (1/ log(21500))2 ≈ 10−6. Aufdiese Weise erhält man zwei 2048-Bit-Zahlen, die (bei entsprechendem Zustand der Hash-funktion) auf den ersten 1024 Bit denselben Hashwert liefern (so wurden q, q′ ja gewähltund dann per Multiplikation mit 21024 auf die Position der ersten 1024 Bit verschoben).Auf den zweiten 1024 Bit stimmen sie außerdem überein (da beide das gleiche b haben)und somit sind zwei verschiedene Zertifikate gefunden worden, die denselben Hashwertliefern.

71

Page 72: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

11 Nachrichten-Authentifikation

11.1 Message Authentication Codes

Ein Message Authentication Code (MAC) ist nach [KL07] ein per symmetrischer Ver-schlüsselung erzeugter Prüfteil zur Authentifizierung einer gesendeten Nachricht (er dientder Sicherung vor unbemerkter Manipulation). Es geht nicht um Geheimhaltung – alsofindet keine wirkliche Verschlüsselung statt, sondern um Integrität. Selbst beim One-Time-Pad mit perfekter Sicherheit kann man unbemerkt Bits flippen und so z. B. Geld-beträge ändern (falls diese immer an einer festen Position stehen, was bei genau defi-nierten Protokoll ja der Fall sein sollte). Kommen wir nun zu einer etwas formalerenDefinition eines MACs: Gegeben seien endliche Alphabete A, B, die Blocklänge n undein Schlüsselraum K. Ein MAC ist gegeben durch eine Familie von Abbildungen

MACk : A∗ → Bn 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älligem Schlüssel k)

kann für keine Nachricht m, die er nicht an das Orakel gesendet hat, MACk(m)berechnen. Ohne Wissen über den Schlüssel kann ein Angreifer also nichts erstellen.

Einige MACs werden im Folgenden kurz vorgestellt.

HMACDer HMAC basiert auf einer Hashfunktion, die verschachtelt verwendet und passendgepaddet wird:

HMACk(m) = Hash((k ⊕ opad) || Hash((k ⊕ ipad) || m)).

Hierbei sind opad („outer padding“) und ipad („inner padding“) feste und öffentlich be-kannte Konstanten. Ein innerer Hash reicht nicht, da man bei einer per Merkle-Damgårderstellten Hash-Funktion, beliebiges an m anhängen könnte und wieder einen gültigenMAC erhalten würde.

CBC-MACDer CBC-MAC basiert im Gegensatz zum HMAC auf einer Blockchiffren. Es wird einKlartext m mit dieser Blockchiffren im CBC-Modus mit dem Nullvektor als Initialisie-rungsvektor verschlüsselt. Der letzte Block dieses Chiffrats ergibt dann den MAC.

72

Page 73: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

Achtung: Der CBC-MAC ist bei variabler Nachrichtenlänge formal unsicher! Ein Angriff,der bei variabler Nachrichtenlänge erfolgen kann, lautet:

1. Erfrage MAC a für Nachricht m = (m1, ...,mx)

2. Erfrage MAC b für Nachricht n = (a, n1, ..., ny)

3. Die Nachricht z = (m1, . . . ,mx, 0, n1, . . . , 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 derCBC-MAC mit folgenden Modifikationen:

• Auf den letzten Nachrichtenblock mn wird vor Berechnung des MACs ein schlüs-selabhängiger Wert addiert, also z. B. mn ⊕ Enck(0 . . . 0)

• Der MAC ist auch nur ein Teilstring des letzten „Chiffrat“-Blocks und nicht dergesamte Block.

Carter-Wegman

Um zu einer Nachricht m der Länge |m| einen MAC s der Länge |s| zu erhalten, wird beiCarter-Wegman m als Bitvektor interpretiert, eine „1“ angehängt und der entstandeneVektor mit einer (|m| + 1) × |s|-Matrix k (dem Signaturschlüssel) multipliziert. Es giltzu beachten, dass jeder Signaturschlüssel nur einmal verwendbar ist!

11.2 Abstreitbare Authentifikation

Man stelle sich folgendes Szenario vor: Man will einer Gruppe von Kommunikationsteil-nehmern beweisen, dass man eine Nachricht verfasst hat, aber anschließend, nach erfolg-ter Authentifikation, soll es diesen nun nicht mehr möglich sein, unbeteiligten Drittenzu beweisen, wer der Autor dieser authentifizierte Nachricht war. Wie die Lösung diesesscheinbaren Widerspruchs möglich ist, wird nun erläutert. Anstatt eine Nachricht mi di-rekt (nicht-abstreitbar) zu signieren, verwendet man MACs mit Zufallsschlüssel ki undeinem Zeitstempel ti. Für einen gewissen Zeitraum kann man nun Nachrichten signieren,anschließend sollte es jedem möglich 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)).

Dann ist die Authentifizierbarkeit erfüllt, erhält man nämlich (mi,MACki(mi)) vor dem

Zeitpunkt ti+1 und später eine gültige Signatur sign(ki, ti+1), so ist die Nachricht mi

authentisch. Die Abstreitbarkeit ist aber auch gewährleistet, denn sobald ki öffentlichist, kann jedermann beliebige Tupel

(m′i,MACki(m′i), ti, ki−1, sign(ki−1, ti))

73

Page 74: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

berechnen.

Beispiele für die Verwendung von abstreitbarer Authentifikation sind Off-the-RecordMessaging (OTR, für Instant Messaging) und TESLA (ein Broadcasting-Authentifizierungs-Protokoll), welches in [PCTS02] beschrieben wird.

74

Page 75: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

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. Sprin-ger Berlin / Heidelberg, 2000. – ISBN 978–3–540–67517–4, S. 589–606

[CPS08] Coron, Jean-Sébastien ; Patarin, Jacques ; Seurin, Yannick: The RandomOracle Model and the Ideal Cipher Model Are Equivalent. In: Wagner,David (Hrsg.): Advances in Cryptology – CRYPTO 2008 Bd. 5157. SpringerBerlin / Heidelberg, 2008. – ISBN 978–3–540–85173–8, S. 1–20

[Gei09] Geiselmann, Dr. W.: Datensicherheitstechnik (Signale, Codes und ChiffrenII). Universität Karlsruhe, Institut für Algorithmen und Kognitive Systeme,2009

[HKT11] Holenstein, Thomas ; Künzler, Robin ; Tessaro, Stefano: The equiva-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). Chap-man & Hall/CRC, 2007. – ISBN 1584885513

[Luc04] Lucks, Stefan: Design Principles for Iterated Hash Functions. CryptologyePrint Archive, Report 2004/253, 2004

75

Page 76: SymmetrischeVerschlüsselungsverfahren · Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegangen ist, hängt der Koinzidenzindex I c nicht vom Schlüssel k ,

[MH81] Merkle, Ralph C. ; Hellman, Martin E.: On the security of multipleencryption. 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 andFast Hashing. In: Gong, Guang (Hrsg.) ; Gupta, Kishan (Hrsg.): Progressin 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 onTwo-Key Triple Encryption. In: Damgård, Ivan (Hrsg.): Advances in Cryp-tology – 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 TESLABroadcast Authentication Protocol. 2002

[WLF+05] Wang, Xiaoyun ; Lai, Xuejia ; Feng, Dengguo ; Chen, Hui ; Yu, Xiuyu-an: 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 theFull SHA-1. In: In Proceedings of Crypto, Springer, 2005, S. 17–36

76