Übung zur Vorlesung Sicherheit 30.06.2016 Übungsblatt 5 Björn Kaidel bjoern.kaidel@kit.edu https://b.socrative.com/login/student/ Room: SICHERHEIT Bitte gleich einloggen! 1 / 55
Evaluation (siehe Evaluations-PDF) 2 / 55
Evaluation: Kommentare Positiv: Demos Socrative Zeiteinteilung Socrative: 78% bevorzugen aktuelle Zeiteinteilung (An alle anderen: Bei offenen Fragen sind wir immer per Mail, Sprechstunde, nach der Übung etc. erreichbar.) Ausführliche Erklärungen 3 / 55
Evaluation: Kommentare Negativ: Aussprache undeutlich/zu leise/... Beamerbild zu klein Schwierige Aufgaben Socrative-Fragen werden nicht per Beamer gezeigt 4 / 55
Kummerkasten VL 07: H(K, M) = H(K M)? Antwort: Ja. Ist noch ein Artefakt von früher 5 / 55
Socrative: Signaturen & Schlüsselaustausch https://b.socrative.com/login/student/ Room: SICHERHEIT App um Quizze durchzuführen Zugang durch Browser oder App Als Quizteilnehmer kein Account notwendig. 6 / 55
Socrative: Signaturen & Schlüsselaustausch https://b.socrative.com/login/student/ Room: SICHERHEIT Frage 1: Das ElGamal-Signaturverfahren ist EUF-CMA-sicher. A) Wahr B) Falsch 7 / 55
Socrative: Signaturen & Schlüsselaustausch https://b.socrative.com/login/student/ Room: SICHERHEIT Frage 2: Auch deterministische Signatuverfahren können EUF- CMA-sicher sein. A) Wahr B) Falsch 8 / 55
Socrative: Signaturen & Schlüsselaustausch https://b.socrative.com/login/student/ Room: SICHERHEIT Frage 3: Wir betrachten einen modifizierten EUF-CMA-Begriff: Gibt man dem Angreifer eine Nachricht vor, zu der er eine Signatur fälschen muss (anstatt das er diese selbst wählen darf), so erfüllen Textbook-RSA-Signaturen diesen Sicherheitsbegriff. A) Wahr B) Falsch 9 / 55
Socrative: Signaturen & Schlüsselaustausch https://b.socrative.com/login/student/ Room: SICHERHEIT Frage 4: Der Diffie-Hellman-Schlüsselaustausch ist sicher gegen Man-in-the-Middle-Angriffe. A) Wahr B) Falsch 10 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (1) Lehrbuch-RSA-Signaturen sind nicht EUF-CMA-sicher. Betrachte schwächeren Sicherheitsbegriff: Wie EUF-CMA, aber... Angreifer muss zu einer vorgegebenen Nachricht m eine Fälschung berechnen. Angreifer darf keine Sign-Anfragen für m stellen. Frage: Erfüllen die Lehrbuch-RSA-Signaturen diesen Sicherheitsbegriff? 11 / 55
Neue Sicherheitsbegriff: Ablauf Herausforderer C führt (pk, sk) Gen(1 k ) aus. C stellt Sign(sk, )-Orakel für A bereit. C A Orakel pk, M M σ = Sign(sk, M i ) σ (Poly. viele Anfragen erlaubt!) Ver(pk, M, σ ) = 1? M / {M 1,..., M n }? 12 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (1) Antwort: Nein! Betrachte folgenden Angreifer A: A erhält den PK (e, N = P Q) (P, Q prim) und m. Annahme: m ist invertierbar Ist m nicht invertierbar, so gilt ggt (m, N) = P ggt (m, N) = Q und wir könnten N faktorisieren..... und damit auch leicht Signaturen fälschen. Ziel: berechne σ mit (σ ) e = m mod N A zieht x Z N \ {1}...... und berechnet y := x e mod N. Beobachtung: y 1 mod N 13 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (1) A setzt m 1 := m y mod N. m 1 m mod N, da y 1 mod N und m invertierbar. A schickt m 1 an das Sign-Orakel und erhält σ 1. Er gibt σ = σ 1 x 1 mod N als Fälschung aus. (x 1 existiert, da x invertierbar) 14 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (1) σ ist eine gültige Fälschung, denn es gilt: (σ ) e = (σ 1 x 1 ) e mod N = σ1 e (x e ) 1 mod N = m 1 y 1 mod N = (m y) y 1 mod N = m mod N Erfolgswkt. = 1 Laufzeit: Polynomiell (simple Berechnungen & nur eine Sign-Anfrage) 15 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (1) Fazit: Lehrbuch-RSA-Signaturen erfüllen auch schwache Sicherheitsbegriffe nicht. Sicherheitsbegriff: UUF-CMA (universal unforgeable...) Problem: Homomorphie Lehrbuch-RSA-Signaturen nicht verwenden! 16 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (2) Digital-Signature-Algorithmus (DSA) über G = Q(Z p), für ungerades primes p N. Q(Z p) := {x 2 : x Z p} ist Menge der Quadrate in Z p. Q(Z p) ist eine Gruppe! Genauer: Untergruppe von Z p. Es sei p = 2q + 1 mit q = 11. 17 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (2 (a)) (a) Berechnen Sie einen DSA-Public-Key pk := (G, g, g x, (H, h 1, h 2 )), sowie den DSA-Secret-Key sk := (G, g, x, (H, h 1, h 2 )) Wir verwenden die folgende Hashfunktion: H : Z q Z q Z q (x 1, x 2 ) h x 1 1 hx 2 2 mod q 18 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (2 (a)) Für p = 2q + 1 = 23 ergibt sich: G := Q(Z 23) = {1, 2, 3, 4, 6, 8, 9, 12, 13, 16, 18}. G = 11. Ziehe x {0,..., q 1}, z.b. x := 10. Vorgegeben waren: g := 8 h 1 := 4 h 2 := 2 Fehlt noch: g x 19 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (2 (a)) Wir berechnen g x = 8 10 mod 23 = (8 2 ) 4 8 2 mod 23 = (64) 4 64 mod 23 = (18) 4 18 mod 23 = ( 5) 4 18 mod 23 = (2) 2 18 mod 23 = 4 18 mod 23 = 72 mod 23 = 3 mod 23 20 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (2 (a)) Damit ergibt sich insgesamt: pk = (Q(Z 23), 8, 3, (H, 4, 2)) sk = (Q(Z 23), 8, 10, (H, 4, 2)) 21 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (2 (b)) Signieren Sie die Nachricht M = (7, 3) mithilfe des Secret-Keys aus (a). Wähle e {0,..., q 1}, z.b. e := 5. Berechne a := g e mod p = 8 5 mod 23 = 8 4 8 mod 23 = (64) 2 8 mod 23 = ( 5) 2 8 mod 23 = 2 8 mod 23 = 16 mod 23 22 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (2 (b)) Als Hashwert ergibt sich: H(M) = H(7, 3) = h1h 7 2 3 mod 11 = 4 7 2 3 mod 11 =... = 7 mod 11. Löse nun nach b und erhalte ax + eb = H(M) mod q b = 9 mod q. 23 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (2 (b)) Die Signatur zur Nachricht M = (7, 3) lautet σ := (a, b) = (16, 9). 24 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (2 (c)) Verifizieren Sie die Signatur zur Nachricht M aus (b) mittels des Public-Keys aus (a). 25 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (2 (c)) Die Signatur ist σ = (16, 9) =: (a, b). Überprüfe, ob (g x ) a a b mod p = g H(M) mod p. 26 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (2 (c)) Es ergibt sich (g x ) a a b = 3 16 16 9 mod 23 = 12 mod 23, sowie: g H(M) = 8 7 mod 23 = 12 mod 23. Somit: Signatur gültig. 27 / 55
Sicherheit Übungsblatt 5 Aufgabe 1 (2) Fazit: DSA Teil des Digital-Signature-Standards, gilt z.b. für US-Behörden. Als mögliche Hashfkts. werden dort Algorithmen der SHA-Familie empfohlen. 28 / 55
Sicherheit Übungsblatt 5 Aufgabe 2 Betrachten Sie den Diffie-Hellman-Schlüsselaustausch in G: A x {0,..., G 1} y {0,..., G 1} X := g x Y := g Y X B Y K := Y x = g xy K := X y = g xy 29 / 55
Sicherheit Übungsblatt 5 Aufgabe 2 Es seien G = Q(Z p) (also Untergruppe von Z p), p = 23, g = 18, x = 6, y = 8. Zusatzinfo: G = 11 Berechnen Sie X, Y, K. 30 / 55
Sicherheit Übungsblatt 5 Aufgabe 2 X = g x mod 23 = 18 6 mod 23 = (18 23) 6 mod 23 = (( 5) 2 ) 3 mod 23 = 25 3 mod 23 = 2 3 mod 23 = 8 mod 23 31 / 55
Sicherheit Übungsblatt 5 Aufgabe 2 Y = g y mod 23 = 18 8 mod 23 = (( 5) 2 ) 4 mod 23 = 2 4 mod 23 = 16 mod 23 32 / 55
Sicherheit Übungsblatt 5 Aufgabe 2 K = g xy mod 23 = 18 48 mod 23 = 18 48 mod 11 mod 23 = ( 5) 4 mod 23 = 2 2 mod 23 = 4 mod 23 Wir verwenden, dass 18 G und G = 11 Wir könnten auch mit der Ordnung der Obergruppe (Z 23, Ordnung 22) arbeiten. 33 / 55
Sicherheit Übungsblatt 5 Aufgabe 2 Fazit: Diffie-Hellman-Schlüsselaustausch geübt DH-Schlüsselaustausch wird z.b. bei TLS verwendet. (Auf vielfachen Wunsch auch nochmal Beispiel für Modulo-Rechnen) 34 / 55
Sicherheit Übungsblatt 5 Aufgabe 3 Geg.: 2-Parteien-2-Nachrichten-Schlüsselaustauschverf. KE: KE.Gen(1 k ): Gibt State s und X aus (X ist erste Nachricht im Schlüsselaustausch). KE.Encap(X ): Gibt Y und K aus (Y ist zweite Nachricht im Austausch). KE.Decap(s, Y ): Gibt einen Schlüssel K aus. Korrektheit: k N, (s, X ) KE.Gen(1 k ) gilt für (K, Y ) KE.Encap(X ), dass KE.Decap(s, Y ) = K. 35 / 55
Sicherheit Übungsblatt 5 Aufgabe 3 Diffie-Hellman so geschrieben: KE.Gen(1 k ): s := x Z p, X := g x KE.Encap(X ): Zieht y Z p K = X y = g xy Y = g y KE.Decap(s, Y ): Berechnet K := Y s = Y x = g xy. 36 / 55
Sicherheit Übungsblatt 5 Aufgabe 3 Aufgabe: Konstruieren Sie ein Public-Key-Verschlüsselungsverfahren PKE = (PKE.Gen, PKE.Enc, PKE.Dec) aus dem Schlüsselaustauschverfahren KE. Hinweis: Denken Sie an die Beziehung zwischen DH-Schlüsselaustausch und ElGamal-Verschl. 37 / 55
Sicherheit Übungsblatt 5 Aufgabe 3 Schlüsselerzeugung PKE.Gen(1 k ) : Ziehe (s, X ) KE.Gen(1 k ) Setze pk := X Setze sk := s gebe (pk, sk) aus Diffie-Hellman/ElGamal: DH: s = x, X = g x ElGamal: sk = x, pk = g x 38 / 55
Sicherheit Übungsblatt 5 Aufgabe 3 Verschlüsselung PKE.Enc(pk, M) : Berechne (Y, K) KE.Encap(pk). C := (Y, K M). gebe C aus. Y entspricht hier Zufall, da KE.Encap(pk) probabilistisch. Diffie-Hellman/ElGamal: DH: ziehe y, Y := g y, K = g xy ElGamal: ziehe y, C := (g y, g xy M) 39 / 55
Sicherheit Übungsblatt 5 Aufgabe 3 Entschlüsselung PKE.Dec(sk, C = (C 1, C 2 )) : C 1 = Y, C 2 = K M, sk = s K := KE.Decap(sk, C 1 ) = KE.Decap(s, Y ) M := C 2 K Korrektheit folgt aus Korrektheit von KE (K = K ) Diffie-Hellman/ElGamal: DH: erhalte Y, K = Y x = g xy ElGamal: M = C 2 /C x 1 = (g xy M)/g xy 40 / 55
Sicherheit Übungsblatt 5 Aufgabe 3 Fazit: Zusammenhang zwischen Schlüsselaustausch und Verschlüsselung Auch historisch interessant... (DH/ElGamal) Sicherheit noch unklar Sicherheitsdef. für Schlüsselaustausch wurde in VL aber auch nicht besprochen! 41 / 55
Socrative: CRIME https://b.socrative.com/login/student/ Room: SICHERHEIT App um Quizze durchzuführen Zugang durch Browser oder App Als Quizteilnehmer kein Account notwendig. 42 / 55
Socrative: CRIME https://b.socrative.com/login/student/ Room: SICHERHEIT Frage 1: TLS ist ein Schlüsselaustauschprotokoll. A) Wahr B) Falsch 43 / 55
Socrative: CRIME https://b.socrative.com/login/student/ Room: SICHERHEIT Frage 2: Nachrichten sollte man vor dem Versenden immer Komprimieren. A) Ja, dies spart Bandbreite. B) Ja, dies spart Bandbreite und erhöht die Sicherheit. C) Nein, nicht immer, dies kann je nach Protokoll zu Sicherheitsproblemen führen. 44 / 55
Socrative: CRIME https://b.socrative.com/login/student/ Room: SICHERHEIT Frage 3: Laufzeitoptimierungen an kryptographischen Algorithmen können zu Sicherheitslücken führen. A) Wahr B) Falsch 45 / 55
Socrative: CRIME https://b.socrative.com/login/student/ Room: SICHERHEIT Frage 4: Man kann davon ausgehen, dass Chiffrate eines IND- CPA-sicheren Verschlüsselungsverfahrens keine Rückschlüsse über die Länge der verschlüsselten Nachricht zulassen. A) Wahr B) Falsch 46 / 55
Sicherheit Übungsblatt 5 Aufgabe 4 Doktor Meta Aufgabe (Story siehe Blatt) Theoretische und praktische Untersuchung von CRIME Angriff auf TLS Nutzt aus, dass Klartexte vor der Verschlüsselung komprimiert werden 47 / 55
Sicherheit Übungsblatt 5 Aufgabe 4 (a) PKE = (Gen, Enc, Dec) IND-CPA-sicher. Zu PKE ist PPT L bekannt, sodass für alle M Pr [ L(pk, C) = M (pk, sk) Gen(1 k ), C Enc(pk, M) ] gleich 1. D.h. L kann die Länge des Klartextes in einem Chiffrat bestimmen. C = (Comp, Decomp) Kompressionsalgorithmus M = M bedeutet nicht Comp(M) = Comp(M )! redundante Nachrichten = stärkere Kompression 48 / 55
Sicherheit Übungsblatt 5 Aufgabe 4 (a) Es sei nun PKE = (Gen, Enc, Dec ) gegeben durch: Gen (1 k ) = Gen(1 k ) Enc (pk, M) = Enc(pk, Comp(M)) Dec (sk, C) = Decomp(Dec(sk, C)) Zeigen Sie: PKE ist nicht IND-CPA-sicher. 49 / 55
Sicherheit Übungsblatt 5 Aufgabe 4 Betrachte folgenden PPT A: A erhält pk und wählt M 0, M 1 mit M0 = M 1, aber Comp(M0 ) Comp(M 1 ). A schickt M 0, M 1 als Challenge. A erhält C und führt L(pk, C ) =: x aus. Er überprüft, ob x = Comp(M 0 ), wenn ja, gebe 0 aus, sonst...... überprüfe, ob x = Comp(M 1 ), wenn ja, gebe 1 aus, sonst... gebe ein zufälliges Bit aus. 50 / 55
Sicherheit Übungsblatt 5 Aufgabe 4 Sei E das Ereignis, dass L die Länge des Klartextes in C richtig bestimmt. Dann ist: Pr[A gew.] 1/2 = Pr[(A gew. E) (A gew. E)] 1/2 = Pr[E] Pr[A gew. E] + Pr[E] Pr[A gew. E] 1/2 = 1 Pr[A gew. E] + 0 1/2 = 1 1/2 = 1/2. 1/2 ist nicht vernachlässigbar, d.h. PKE ist nicht IND-CPAsicher. 51 / 55
Sicherheit Übungsblatt 5 Aufgabe 4 Bonus: Pr[L(pk, C) = M...] = 1 f (k) mit f vernachlässigbar in k. Pr[A gew.] 1/2 = Pr[E] Pr[A gew. E] + Pr[E] Pr[A gew. E] 1/2 Pr[E] Pr[A gew. E] 1/2 = (1 f (k)) 1 1/2 = 1/2 f (k). 52 / 55
Sicherheit Übungsblatt 5 Aufgabe 4 Frage: g(k) := 1/2 f (k) nicht vernachlässigbar? Antwort: Ja! Für k gehen vern. Fkt. gegen 0. Aber: lim g(k) = lim 1/2 f (k) = 1/2 0 k k Also g(k) nicht vernachlässigbar. Achtung: Um zu zeigen, dass eine Funktion f vernachlässigbar ist, genügt es nicht zu zeigen, dass sie gegen Null geht! 53 / 55
Sicherheit Übungsblatt 5 Aufgabe 4 Fazit: CRIME: Theorie & Praxis angedeutet Ausgenutzt: Komprimierung ändert Nachrichtenlänge Angriff zeigt einen Grund, wieso gleiche Nachrichtenlänge gefordert wird (bei IND-CPA etc.) 54 / 55
Sicherheit Übungsblatt 5 Aufgabe 4 Fazit: Problem: Chiffrate können Nachrichtenlänge nicht verstecken. Für Angriff/Problem muss nicht unbedingt die exakte Nachrichtenlänge ablesbar sein Es genügt, wenn verschieden lange Nachrichten zu verschieden langen Chiffraten führen. Komprimierung & Verschlüsselung verträgt sich nicht Klartext komprimieren Angriff Chiffrat komprimieren wird nichts bringen, da nicht redundant (wegen Zufall etc.) (abhängig vom Anwendungsfall) 55 / 55