Kapitel 1.6: Einführung in Kryptographie Referenzen Markus Hufschmid, Information und Kommunikation, Teubner, 2006. Buchmann, Einführung in die Kryptographie, Springer, 2009. Bruce Schneier, "Applied Cryptography", Wiley, 1996. Wikipedia Kryptologie ist eine Wissenschaft, die sich mit Informationssicherheit beschäftigt Teilgebiet Kryptographie beschäftigt sich mit Verschlüsselung von Informationen Teilgebiet Krypt(o)analyse beschäftigt sich mit Informationsgewinnung aus verschlüsselten Texten NTM2, 1.6-1
Ziele der modernen Kryptographie NTM2, 1.6-2 Vertraulichkeit / Geheimhaltung nur berechtigte Personen sollen Daten lesen können Verfahren: räumlichen Sicherung,, math. Algorithmus Authentizität Gewährleistung der Identität des Urhebers Überprüfung z.b. durch Passwort oder biometrische Daten Integrität Schutz vor unbefugter Änderung der Daten Unleugbarkeit / Verbindlichkeit Urheber soll Aktionen / Verpflichtungen nicht abstreiten können
Bestandteile eines Kryptosystems NTM2, 1.6-3 Symmetrische Verschlüsselung c = E(m,k) m = D(c,k) Klartext m (plain text) Verschlüsselung (encryption algorithm) Geheimtext c (ciphertext) Entschlüsselung (decryption algorithm) Klartext m (plain text) Schlüssel k (key) sicherer Kanal Schlüssel (key) Asymmetrische Verschlüsselung secret key data (e.g. session key) Encryption ciphertext Decryption data public key
Klassen von Attacken NTM2, 1.6-4 Cyphertext-only attack Kryptanalytiker kennt nur Teil oder ganzen Geheimtext Ziel: Klartext herausfinden oder noch besser den Schlüssel Known-plaintext attack Kryptanalytiker kennt nicht nur den Geheimtext, sondern einen Teil des zugehörigen Klartexts Chosen-plaintext attack Kryptanalytiker kann den zu verschlüsselnden Klartext vorgeben Ziel: Schlüssel herausfinden Brute-force attack alle Schlüssel durchprobieren
Prinzip von Kerckhoff (1883) NTM2, 1.6-5 Die Sicherheit eines Verschlüsselungssystems darf nicht von der Geheimhaltung des Verfahrens (Algorithmus) abhängen, sondern soll nur auf der Geheimhaltung des Schlüssels beruhen. security through/by obscurity hat sich praktisch nie gelohnt Trotzdem wird dieses Prinzip auch heute immer wieder verletzt
Symmetrische Algorithmen Cäsar-Methode NTM2, 1.6-6 Buchstaben ersetzen mit Buchstaben 3 Plätze weiter hinten im Alphabet Verschlüsselungstabelle: a b c... w x y z d e f... z a b c es gibt lediglich 25 sinnvolle Schlüssel (brute force attack) auch statistische Analyse des Geheimtextes ist erfolgreich (Buchstabe «e» kommt am häufigsten vor, siehe nächste Folie) hwduytlwfumd gjfwx rfsd xjhwjyx. izwnsl ymnx qjhyzwj bj bnqq wjajfq xtrj tk ymjr. Schlüssel «5 Buchstaben weiter vorne im Alphabet» Cryptography bears many secrets. During this lecture we will reveal some of them. Modifikation: Verschlüsselungstabelle mit beliebiger Zuordnung => relativ viele Schlüssel (Permutationen), nämlich 26! 4 10 26 2 88 => Sicherheit des Verfahrens wird aber nicht erhöht (stat. Analyse!)
Statistische Analyse NTM2, 1.6-7 Deutsch: e,n,i,s ; Englisch: e,t,a,o; Spanisch: e,a,o,s; Französisch: e,a,s,t Aber: Es gibt ganze Bücher ohne einziges "e".
One-time Pad Major Joseph Mauborgne, Gilbert Vernam (1917) beweisbar sicheres Verfahren Schlüssel besteht aus zufälliger Buchstaben- oder Bit-Folge NTM2, 1.6-8 Buchstaben oder Bit-weise Addition/Subtraktion mod 26 oder 2 Schlüssel darf nur einmal verwendet werden, sonst kann mit einer known plaintext Attacke der Schlüssel ermittelt werden grosser Vorrat an Schlüsselsequenzen, unpraktisch! Klartext m 2, m 1 Geheimtext c 2 = m 2 + k 2, c 1 = m 1 + k 1 Schlüssel k 2, k 1 Klartext 1 0 1 1 1 Schlüssel (Encryption) 1 1 0 1 0 Geheimtext 0 1 1 0 1 Schlüssel (Decryption) 1 1 0 1 0 Klartext 1 0 1 1 1
Data Encryption Standard NTM2, 1.6-9 DES Ausschreibung durch National Institute of Standards and Technology (NIST) 1974 von einem IBM-Team entworfen beruht auf 2 von Shannon formulierten Prinzipien Diffusion (Zerstreuung statistische Struktur des Klartexts) Konfusion (komplexe Beziehung Schlüssel-Geheimtext) 56 Bit Schlüssel, 64 Bit Daten-Blocks im Wesentlichen nur brute-force Attacke bekannt Electronic Frontier Foundation (EFF) 1998 Entschlüsselung in 56h mit dedizierter HW für $250 000 sollte heute nicht mehr verwendet werden (brute force Attacke dauert nur wenige Stunden)
Data Encryption Standard NTM2, 1.6-10 16 Verschlüsselungsrunden Ableitung 48 bit Rundenschlüssel k i, i=1 16 aus 56 Bit DES-Schlüssel Runden-Verschlüsselung mit einem Feistel-Netzwerk Entschlüsselung wie Verschlüsselung Schlüssel-Reihenfolge k 16,, k 1 Sehr stark nichtlineare Funktion f(.) = R i-1 = L i-1 + f(r i-1,k i ) f(.) enthält Permutationen (Vertauschen von Plätzen) f(.) enthält Substitutions- / S-Boxen (Kernstück des Algorithmus!) acht S-Boxen ersetzen je eine 6 Bit-Folge durch eine 4 Bit-Folge
Data Encryption Standard NTM2, 1.6-11
Triple DES NTM2, 1.6-12 3DES 3-malige Verwendung von DES 2 verschiedene 56 Bit Schlüssel effektive Schlüssellänge 2 56 = 112 Bit (brute-force-attack unmöglich) Klartext Schlüssel 1 Schlüssel 2 Schlüssel 1 DES Chiffrier DES Dechiffrier DES Chiffrier Geheimtext Geheimtext Schlüssel 1 Schlüssel 2 Schlüssel 1 DES Dechiffrier DES Chiffrier DES Dechiffrier Klartext
Warum nicht 2-Mal DES? NTM2, 1.6-13 k i k j m DES Chiffrier c' ki = E ki (m) DES Chiffrier c = E kj (m) Schritt 1 Schritt 2 Known-plaintext-attack and meet-in-the-middle known-plaintext-attack Schritt 1: Berechnung aller Geheimtexte c aus dem Klartext m c' ki = E ki (m), i = 0,, 2 56-1 => 2 56 Versuche Schritt 2: Berechnung aller Geheimtexte c aus dem Geheimtext c c' kj = D kj (c), j = 0,, 2 56-1 => 2 56 Versuche wenn c' ki = c' kj, dann sind Schlüssel k i und k j verwendet worden nur 2 2 56 statt 2 2 56 Versuche!
Wichtige Verschlüsselungs-Standards NTM2, 1.6-14 International Data Encryption Algorithm (IDEA) Ende 80er Jahre von X. Lai und J.L. Massey (ETHZ) entworfen verschlüsselt 64 Bit Blöcke 128-Bit-Schlüssel (brute-force-attack unmöglich) Verschlüsselung des Klartexts in 8 Runden Schneier: «In my opinion, it is the best and most secure block algorithm available to the public at this time (1996)". SW-Implementationen ca. 50% schneller als entsprechende DES-Implementationen Integrierte Schaltungen erlauben Verschlüsselungsraten von bis 300 Mbps
Wichtige Verschlüsselungs-Standards Advanced Encryption Standard (AES) NTM2, 1.6-15 1997 Ausschreibung von NIST 21 Vorschläge aus 11 Ländern 2 Jahre öffentliche Analyse und Diskussion Sieger Rijndael-Algorithmus von J. Daemen und V. Rijmen wieder S(ubstitution)-Boxen als nichtlineare Elemente 128 Bit Blocklänge, Schlüssellängen 128 bit (oder 192, 256 bit) Verschlüsselung des Klartexts in 10-14 Runden Effiziente Realisierung mit wenig Memory (z.b. in Smart-Cards, ultra-low-power Funkbausteinen, ) schnell, über 100 MB/s mit AES128
Betriebsmodi von Block-Chiffrieren NTM2, 1.6-16 ECB Electronic Codebook gleiche Klartext-Blöcke => gleiche Geheimtext-Blöcke Muster in Daten / Bildern sind auch im Geheimtext noch erkennbar! Beispiel Abhilfe CBC Cipher Block Chaining CFB Cipher Feedback OFB Output Feedback
CBC - Cipher Block Chaining NTM2, 1.6-17 Klartext m n + + Schlüssel k Chiffrier Schlüssel k Geheimtext Dechiffrier + - Klartext c n = E(m n +c n-1 ) D(c n ) - c n-1 = D(E(m n +c n-1 )) - c n-1 1 Block Verzögerung 1 Block Verzögerung = m n + c n-1 - c n-1 = m n gleiche Klartext-Blöcke => unterschiedliche Geheimtext-Blöcke Initialisierungsvektor muss im Empfänger bekannt sein Teilsystem ohne Rückkopplung muss im Empfänger sein => 1 Übertragungsfehler beeinflusst nur 2 Klartext-Blöcke Beispiel
Asymmetrische Verschlüsselung NTM2, 1.6-18 Alice Bob m Enc c = E e (m) Dec m' = D d (c) public key e secret key d (nicht ableitbar aus e) name Alice Bob Carol public key e
Asymmetrische Verschlüsselung NTM2, 1.6-19 Vorteile kein Austausch geheimer Schlüssel erforderlich (geheimer Schlüssel verlässt eigenen Computer nicht!) lediglich 2 Schlüssel pro Teilnehmer (bei symm. Verfahren wächst Anzahl Schlüssel quadratisch mit Anzahl Teilnehmer) Nachteile aufwendig und daher ungeeignet zur Verschlüsselung grosser Datenmengen typisch für Austausch geheimer Schlüssel von symm. Verfahren verwendet! Verteilung der öffentlichen Schlüssel nicht ganz unproblematisch (siehe man-in-the-middle-attack unten)
RSA-Algorithmus NTM2, 1.6-20 von R. Rivest, A. Shamir und L. Adleman publiziert beruht auf Satz aus Zahlentheorie von Euler Schlüsselerzeugung 1. erzeuge 2 verschiedene Primzahlen p und q mit > 512 bit es gibt genug sehr grosse Primzahlen es gibt Tests (z.b. von Miller-Rabin), die mit jedem Schritt die Wahrscheinlichkeit Zahl ist nicht prim halbieren 2. berechne n = p q 3. wähle Chiffrierschlüssel 1 < e < (p-1) (q-1) so dass ggt(e,(p-1) (q-1) ) = 1, d.h. e ist teilerfremd zu (p-1) (q-1) 4. berechne geheimen Schlüssel 1 < d < (p-1) (q-1) mit (e d) mod ((p-1) (q-1)) = 1, z.b. mit extended euclid algorithm Zahlen n und e bilden public key, Zahl d ist der secret key
RSA-Algorithmus NTM2, 1.6-21 Verschüsselung c = m e mod n Klartext m < n nur Kenntnis des public key e und n erforderlich effizienter square-and-multiply Algorithmus für s Potenzieren trotzdem ist RSA um Faktor 100-1000 langsamer als DES Logarithmieren mod n ist historisch schwieriges Problem Entschüsselung m = c d mod n Sicherheit basiert vermutlich auf Schwierigkeit, die grosse Zahl n zu faktorisieren (in die Primzahlen p und q)
RSA-Algorithmus NTM2, 1.6-22 Schlüsselgenerierung p = 5, q = 11 => n = 55 e = 3 ist teilfremd zu p-1 = 4 = 2 2 und q-1 = 10 = 2 5 (3 d) mod 40 = 1 => d = 27 Klartext: m = 9 Verschüsselung: c = 9 3 mod 55 c = 9 ((9 9) mod 55) mod 55 = 9 26 mod 55 = 234 mod 55 = 14 Entschlüsselung: m = 14 27 mod 55 = 9 resultat=1; for n=1:27, resultat = mod(14*resultat,55); end resultat % better square-and-multiply algorithm
Kryptographische Protokolle Schlüsselaustausch mit asymmetrischen Verfahren 1. Alice beschafft sich "public key" e Bob von Bob 2. Alice generiert zufälligen "session-key" k, verschlüsselt ihn mit dem "public key" e Bob und schickt ihn dann zu Bob NTM2, 1.6-23 3. Bob entschlüsselt "session-key" k mit Geheimschlüssel d Bob 4. Alice und Bob verwenden symm. Verfahren mit "session-key" k Man-in-the-middle Attacke Alice public key von Bob? Mallory public key von Bob? Bob public key von Mallory! public key von Bob! session key E(k,e M ) session key E(k,e B ) t Massnahme: Zertifizierungsstelle stellt Zertifikat D(e,Bob,t,d Z ) aus
Kryptographische Protokolle NTM2, 1.6-24 Anforderungen an digitale Unterschriften Authentizität Unterschrift kann eindeutig einer Person zugeordnet werden Fälschungssicherheit nur der Eigentümer kann die Unterschrift erzeugen Integrität die Unterschrift ist eindeutig mit der Nachricht verknüpft Unleugbarkeit der Unterzeichner kann die Unterschrift nicht ableugnen Nicht-Kopierbarkeit Unterschrift kann nicht auf andere Dokumente kopiert werden
Kryptographische Protokolle Digitale Unterschrift mit asymmetrischem Verfahren NTM2, 1.6-25 Voraussetzung: Ver- und Entschlüsselung sind vertauschbar 1. Unterzeichner "entschlüsselt" Dokument mit geheimem Schlüssel 2. Empfänger überprüft die Unterschrift durch Verschlüsselung mit dem öffentlichen Schlüssel Digitale Unterschrift mit RSA Alice Bob Nachricht m, Signatur s = m da mod n public key? t (e A,n) timestamp (gegen replay) m = s ea mod n Frage: m == m?
Kryptographische Protokolle NTM2, 1.6-26 Digitale Unterschrift mit Hash-Wert Problem: Asymmetrische Verfahren sind zu langsam, um grosse Dokumente zu unterzeichnen Lösung: nicht Dokument, sondern dessen kurzen Hash-Wert (Prüfsumme) unterzeichnen Alice Bob Nachricht m, Hash-Wert h(m), Signatur s = (h(m)) da mod n public key? (e A,n) t h (m) = s ea mod n Frage: h (m) == h(m)?
Challenge-Response-Authentifikation NTM2, 1.6-27 Schutz vor dem Abhören von Passwörtern Verwendung von symmetrischer Kryptographie Alice (Beweiserin) identifiziert sich gegenüber Bob (Verifizierer) Alice (und Bob) kennen ein Geheimnis, nämlich den Schlüssel k Alice randval r E k (r) Bob r = D k (E k (r)) wenn r = r, ist Alice identifiziert Verwendung von asymm. bzw. public-key Kryptographie Alice Bob randval r Signatur s (z.b. s = r d mod n) Signatur verifizieren (z.b. r = s ea mod n wenn r = r, ist Alice identifiziert