1. Vorlesung

Transcription

1. Vorlesung
(10. April 2012)
1
Kryptologie = Kryptographie (Entwicklung von Kryptosystemen) + Kryptoanalyse (Brechen von Kryptosystemen)
Sender Verschlüsselung
Klartext
(chiffrieren)
Alice
=⇒
Entschlüsselung Empfänger
↑
(deciffrieren)
Geheimtext
Gegner
Eva
Bob
(enemy,
Kryptoanalytiker)
Ziel: Alice schickt Nachricht, die Bob auch erhält, Eva erfährt nichts über den Inhalt der
Nachricht.
Erreichbarkeit hängt natürlich von Evas Möglichkeiten ab.
Das Kerkhoffs-Prinzip besagt, daß man davon ausgehen muß, daß Eva das Verschlüsselungsverfahren kennt und die Sicherheit nur von der Geheimhaltung des Schlüssels abhängen
darf.
Begründung:
1. Geheimhaltung eines Verfahrens ist schwer sicherzustellen.
2. Verfahren lassen sind aufwendig zu entwickeln. Ist das geheime Verfahren einmal bekannt, so wäre Verfahren nutzlos (mehrfach passiert: Enigma, GSM-Verfahren A5/1
und A5/2, Stromchiffre RC4).
3. allgemein bekannte Verfahren können von mehr Experten auf Sicherheit geprüft werden. Findet keiner einen Angriff, so kann man eher auf Sicherheit vertrauen.
Auguste Kerhoffs von Nieuwenhof (18351903), niederländischer Linguist und Kryptologe
Angriffsszenarien Eva kennt also das Ver- und das Entschlüsselungsverfahren. Folgende
Möglichkeiten kann sie weiterhin haben:
1. nur Mithören: Nur-Chiffretext-Angriff
2. zusätzlich sind einige Paare von Klartext und Chiffretext bekannt: Angriff mit bekannten Klartexten
Bsp.: einige Paare sind aus Versehen oder absichtlich bekannt geworden, Eva hat
einige Chiffretexte mit großem Aufwand entschlüsselt, Eva war früher mit der Verschlüsselung beauftragt (ohne den Schlüssel zu kennen)
2
(10. April 2012)
3. Mithören + Eva kann einige von ihr gewählte Klartexte verschlüsseln: Angriff mit
Klartextwahl
Bsp.: immer mgl. bei asymmetrischer Verschlüsselung, Eva war früher mit der Verschlüsselung beauftragt (ohne den Schlüssel zu kennen)
4. Mithören + Eva kann einige von ihr gewählte Chiffretext entschlüsseln: Angriff mit
Chiffretextwahl
Bsp.: verschiedene Authentisierungsverfahren verlangen, daß Bob einen Chiffretext
entschlüsselt und zurücksendet; Eva war früher mit der Entschlüsselung beauftragt
(ohne den Schlüssel zu kennen)
5. Eva hat Möglichkeiten 3 und 4.
Wir untersuchen 3 oder 4 verschiedene Szenarien:
1. einmalige Verschlüsselung (ein einzelner Klartext vorher bekannter Länge wird übertragen, Eva hört mit)
2. frische Verschlüsselung (mehrere Klartexte vorher bekannter Länge, Eva hört mit,
kann sich einige Klartexte verschlüsseln lassen)
3. uneingeschränkte symmetrische Verschlüsselung (mehrere Klartexte verschiedener
Länge, Eva hört mit, kann sich einige Klartexte verschlüsseln lassen)
4. asymmetrische Verschlüsselung (mehrere Klartexte verschiedener Länge, Alice und
Bob haben keinen gemeinsamen Schlüssel, Eva hört mit)
1
Einmalige symmetrische Verschlüsselung und klassische Verfahren
Szenarium 1 (einmalige Verschlüsselung): Alice möchte Bob einen Klartext vorher bekannter und begrenzter Länge schicken, Eva hört den Chiffretext mit.
Definition 1.1 Ein Kryptosystem ist ein Tupel S = (X, K, Y, e, d), wobei
• X und K nichtleere endliche Mengen,
• Y eine Menge,
• e : X × K → Y und d : Y × K → X Funktionen
(10. April 2012)
3
sind, so daß gelten:
(1) ∀x ∈ X∀k ∈ K : d(e(x, k), k) = x
(2) ∀y ∈ Y ∃x ∈ X, k ∈ K : y = e(x, k)
Sprechweise: Ist S = (X, K, Y, e, d) ein Kryptosystem, so heißen
• die Elemente von X Klartexte,
• die Elemente von K Schlüssel,
• die Elemente von Y Chiffretexte,
• die Funktion e Verschlüsselungsfunktion und
• die Funktion d Entschlüsselungsfunktion.
Für k ∈ K wird die Funktion e(., k) : X → Y : x �→ e(x, k) als Chiffre bezeichnet. Die
Bedingung (1) heißt Dechiffrierbedingung, (2) heißt Surjektivität.
Bemerkung: Surjektivität kann immer hergestellt werden durch Verkleinerung von Y ,
sie ist für unsere Analysen aber bequem (und sicher sinnvoll).
Beispiel 1.2 Sei n > 0, X = {ai , bi | 1 ≤ i ≤ n}, K = {k0 , k1 }, Y = {Ci , Di | 1 ≤ i ≤ n}
e
k0
k1
a1
A1
B1
b1
B1
A1
a2
A2
B2
b2
B2
A2
...
...
...
an
An
Bn
bn
Bn
An
d
k0
k1
A1
a1
b1
B1
b1
a1
A2
a2
b2
B2
b2
a2
...
...
...
An
an
bn
Bn
bn
an
Dann gelten Dechiffrierbedingung und Surjektivität, (X, K, Y, e, d) ist also ein Kryptosystem.
Beispiel 1.3 X = {0, 1}, K = {k0 , k1 , k2 }, Y = {A, B, C}. Die Funktion e ist geg. durch
die erste, die Funktion d durch die zweite Tabelle. Dann ist (X, K, Y, e, d) Kryptosystem,
denn die Chiffrierbedingung und die Surjektivität sind erfüllt.
e
k0
k1
k2
0
A
B
A
1
B
A
C
d
k0
k1
k2
A
0
1
0
B
1
0
0
C
0
0
1
4
(10. April 2012)
Beispiel 1.4 X = {0, 1}, K = {k0 , k1 , k2 }, Y = {A, B, C}. Die Funktion e ist geg. durch
die Tabelle. Wegen e(0, k1 ) = e(1, k1 ) existiert keine Funktion d, so daß (X, K, Y, e, d) ein
Kryptosystem ist (die Dechiffrierbedingung kann nicht erfüllt werden).
e
k0
k1
k2
0
A
B
A
1
B
B
C
Beispiel 1.5 X = K = Y = {0}, e(0, 0) = d(0, 0) = 0
Dann gelten offensichtlich Dechiffrierbedingung und Surjektivität.
Beispiel 1.6 Sei ⊕ : {0, 1}×{0, 1} → {0, 1} die Funktion (b, c) �→ (b+c)−2bc (XOR). Für
� > 0 sei ⊕� : {0, 1}� × {0, 1}� → {0, 1}� die komponentenweise Anwendung von ⊕ = ⊕1 :
(b1 , b2 , . . . , b� ) ⊕� (c1 , c2 , . . . , c� ) = (b1 ⊕ c1 , b2 ⊕ c2 , . . . , b� ⊕ c� ) .
Sei � > 0. Das Vernam-Kryptosystem oder one-time pad der Länge � ist das Kryptosystem
({0, 1}� , {0, 1}� , {0, 1}� , ⊕� , ⊕� ).
(1) Für x ∈ X und k ∈ K gelten d(e(x, k), k) = (x ⊕� k) ⊕� k = x ⊕� (k ⊕� k) = x ⊕ 0� = x,
d.h. die Dechiffrierbedingung ist erfüllt.
(2) Für y ∈ Y gilt e(y, 0� ) = y und y ∈ X, 0� ∈ K. Also gilt Surjektivität.
Wann soll ein Kryptosystem als sicher betrachtet werden?
1. Variante: Wenn Eva den Chiffretext e(x, k) abhört und den Schlüssel k nicht kennt, so
soll sie nicht in der Lage sein, x zu berechnen.
Beispiel 1.2 (Fortsetzung) Wenn Eva den Chiffretext A1 abhört, so weiß sie, daß
der Klartext a1 oder b1 ist. Sie kann aber nicht sagen, welcher es ist. Aber sie hat eine
nichttriviale Information gewonnen.
Diese Überlegung führt also zu keinem befriedigenden Sicherheitsbegriff.
Definition 1.7 Ein Kryptosystem S = (X, K, Y, e, d) heißt possibilistisch sicher, wenn
gilt
∀y ∈ Y ∀x ∈ X ∃k ∈ K : e(x, k) = y .
Idee: Wenn Eva den Chiffretext y abhört und den Schlüssel k nicht kennt, so kann sie
keinen Klartext ausschließen.