IT-Sicherheit: Kryptographie Kryptologie = Kryptographie + Kryptoanalyse! Kryptographie: Methoden zur Ver- und Entschlüsselung von Nachrichten und damit zusammenhängende Methoden! Kryptoanalyse: Entschlüsselung ohne Zugriff auf den Schlüssel! Kaum voneinander zu trennen! Kryptographie braucht Kryptoanalyse, um die Sicherheit der Verfahren beurteilen zu können 2
Terminologie! Klartext (plaintext): P! Chiffretext/Geheimtext/Kryptotext (ciphertext): C! Schlüssel (key): K! Nachricht (message): M! Wenn nicht wichtig, ob verschlüsselt oder nicht 3 Kryptoanalyse: Angriffsklassen! ciphertext-only attack:! Work on examples of ciphertext! Need to know some statistical properties of typical plaintext! known-plaintext attack:! Work on examples of ciphertext/plaintext pairs! chosen-plaintext attack:! generate a number of plaintexts! obtain the corresponding ciphertext! adaptive chosen-plaintext attack:! perform several chosen-plaintext attacks! use knowledge gained from previous ones in the preparation of new plaintext! Ziel: Schlüssel finden, oder jede andere Information, die beim Ent- (oder Ver-)schlüsseln neuen Textes hilft 4
Historische Kryptographie! Caesar-Chiffre: Jeder Buchstabe wird durch den drittnächsten ersetzt (cabo!"fder): ((x + 3) % 26)! Variante: rot13 ((Buchstabe + 13) modulo 26)! Problem: Verfahren muß geheimgehalten werden! Kerckhoffs-Prinzip: Kryptosystem bleibt sicher, wenn alles (auch das Verfahren) außer einem Schlüssel bekannt! Schlüssel leicht und oft zu tauschen! Erweiterte Caesar-Chiffre: Addend als Schlüssel! Nur 26 mögliche Schlüssel!"brute force zu einfach 5 Historie: Substitutionschiffre! Schlüssel ist Permutation K: A #"A! 26! > 4! 10 26 verschiedene Schlüssel! Brute force ist bereits schwierig! Statistik-Angriff:! Häufigste Buchstaben suchen (Deutsch: E, N, I, S, R, A, )! Nach häufigen Digrammen/ Trigrammen suchen 6
Polyalphabetische Chiffren Vigenère -Chiffre:! K = k 0 k 1 k 2 k n-1! P = p 0 p 1 p 2 p m-1! c i = (p i + k (i % n) ) % 26! Statt Modulo-Addition kann XOR oder jeder andere Gruppen-Operator verwendet werden! Analyse: n finden; Angriff auf Stellen mit gleichem (i % n)! Verallgemeinerung: Änderung der Substitutionsregel bei jedem Zeichen 7 Perfekte Chiffren! Anforderung: Angreifer lernt nichts aus Chiffretext! Kenntnis eines Chiffretextes ändert nichts an der statistischen Wahrscheinlichkeit möglicher Klartexte! Lösung: One-time-pad! Schlüssel ist genauso lang wie Klartext! Wird nur einmal verwendet! c i = p i ^ k i (XOR jede andere Gruppe geht auch)! Problem: Wie Schlüssel transportieren?! Wiederverwendung gefährlich: http://www.nsa.gov/venona/ 8
Zufallszahlen! Wichtig für Sitzungsschlüssel etc.! Viele Angriffe basieren auf Ratbarkeit der Zufallszahlen! Optimal: Hardware-Zufallszahlen! Z.B. thermisches Rauschen! Fast so gut: Präzises Timing externer Ereignisse! /dev/random: Zufallsbits aus dem Entropie-Pool! (Pseudo-)Zufallsfunktionen:! Ergebnis ist ( so gut wie ) zufällig, aber (Funktion!) eindeutig! Können zur Nachbesserung externer Zufallsbits dienen 9 Kryptographischer Hash! MD5, SHA-1: Hash fester Größe aus variablen Strings! MD5: 128 bit! SHA-1: 160 bit H i = C(H i-1, M i ), nach Padding (Block: 512 bit)! Ziele:! Kollisionsresistent: schwer, x " y zu finden mit h(x) = h(y)! Urbildresistent: schwer, zu einem a ein y zu finden mit a = h(y)! (Urbild-2: schwer, zu einem x ein y " x zu finden mit h(x) = h(y))! Hash mit Schlüssel: Message Authentication Code (MAC)! HMAC K (M) = h(k ^ X 1 h(k ^ X 2 M)) (RFC2104) 10
Geburtstagsparadoxon! Von 23 Personen haben mit 50 % Wahrscheinlichkeit zwei am selben Tag Geburtstag! Allgemein: aus k möglichen Werten reichen k 1/2 für ca. 50 % Kollisionswahrscheinlichkeit! SHA-1: 2 160 Möglichkeiten! 2 80 Versuche ergeben mit p # 0.5 Kollision ( Geburtstagsangriff )! Neue Angriffe auf SHA-1 reduzieren 2 80 auf 2 69! Immer noch besser als 2 64 (MD5) 11 Blockchiffren: DES und AES! Feste Blockgrößen und Schlüsselgrößen! DES: 64 bit pro Block, 56 bit pro Schlüssel! AES: 128 bit pro Block, 128, 192 oder 256 bit pro Schlüssel! Produktchiffre (rundenbasierte Algorithmen)! DES: 16 Runden, AES (Rijndael): 10-14 Runden! DES gilt als unsicher, 3DES = E K1 (D K2 (E K3 (P))) (168 bit)! AES wurde als Nachfolger von DES entwickelt! Offenes Auswahlverfahren! Viele Kryptoanalyse-Versuche vor und nach der Auswahl 12
Nutzung von Blockchiffren! ECB (Electronic Codebook): Je n Bit des Klartextes werden einzeln für sich verschlüsselt! Problem: Redundanzen im Klartext werden im Chiffretext sichtbar! Kryptanalyst kann sich mit known-plaintext Bausteine schaffen! Wiederholte Nachrichten leicht zu erkennen! Lösung: Bisherige Ergebnisse einfließen lassen 13 ECB: Visualisierung 14
CBC: Cipherblock Chaining! Vor der Verschlüsselung wird P i mit C i-1 verändert (XOR)! Zum Schutz von P 1 wird zu Beginn eine Zufallszahl vorgegeben (Initialization Vector, IV)! Bitfehler zerstört Block und führt zu Bitfehler in Folgeblock 15 Exkurs: CBC-MAC (Message Authentication Code)! Integrität:! Hash über Nachricht! Kann nur mit Schlüssel K erstellt oder verifiziert werden 16
! R i = E K (R i-1 ) Block-Chiffre als Pseudo- Zufallszahlengenerator! Geburtstagsparadox: nützlich für 2 n/2 Blöcke! OFM (Output Feedback Mode): C i = P i ^ R i (mit R i = E K (R i-1 ))! Stromchiffre: Bitfehler im Chiffretext erzeugen gleiche Anzahl von Bitfehlern im Klartext! Ohne Integritätsprüfung zu große Gefahr der Klartext-Manipulation! Achtung: Wiederverwendung von K/R 0 = " 17 Weitere Stromchiffren! CTR (Counter Mode): R i = E K (i + O), C i = P i ^ R i! Offset O wird wie IV mit Chiffretext übertragen! Vorteil: Direktzugriff in die Mitte des Stroms! CFB (Cipher Feedback Mode): C i = P i ^ E K (C i-1 )! Ein Bitfehler im Chiffretext erzeugt einen Bitfehler und zerstört den Folgeblock! C 0 wird als IV mit Chiffretext übertragen 18
Angriffe gegen Stromchiffren! Modifizierte Wiedereinspielung (vor allem OFB/CTR)! Ist Struktur des Klartextes bekannt, reicht evtl. ein Bitfehler! Schutz: Integritätsprüfung! Bei Wiederverwendung der IV/K-Kombination:! E(A) ^ E(B) = (A ^ R) ^ (B ^ R) = A ^ B! Schutz: K oft genug wechseln (und IV nie wiederholen) 19 Kombination MAC/Verschlüsselung! Stromchiffre braucht immer Integritätsprüfung! Kombination möglich?! OCB: Offset Codebook! Offline nachlesen, bitte! Problem: Patentiert! 802.11i verwendet stattdessen CTR + CBC-MAC! Details: RFC 3610 20
Nächste Termine Mo, 23.05.2005 10 12 Uhr: Vertiefung Krypto Do, 26.05.2005 08 10 Uhr: Kryptographische Algorithmen, continued Übungsblatt 5 bald auf Stud.IP, s.: https://elearning.uni-bremen.de 21