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.