Vorlesung am 28.04.2014 Das unmodifizierte RSA-Verfahren hat mehrere Schwächen Einsatz probabilistischer Verfahren notwendig (siehe Ende der Vorlesung) Beispiel (Erste Schwäche). Das RSA-Verfahren ist deterministisch. • Angreifer kann Klartext raten • mit ö↵entlichem Schlüssel verschlüsseln und vergleichen Angri↵ funktioniert für symmetrische Verfahren nicht Definition 4.3 (Indistinguishability under chosen plaintext attack, IND-CPA). Gegeben asymmetrisches Verschlüsselungsverfahren und Schlüsselpaar • Angreifer wählt zwei Klartexte m1 , m2 • Einer der Klartexte wird ausgewählt und verschlüsselt • Angreifer muss raten, welcher Text verschlüsselt wurde Verfahren ist IND-CPA sicher, wenn Erfolg für Angreifer nahe bei 1/2. Einige Bemerkungen: • RSA ist nicht IND-CPA sicher (siehe erstes Beispiel) • Hier nur informelle Definition (siehe Vorlesung Kryptologie) – Angreifer: randomisierter polynomieller Algorithmus – Nahe 1/2: Wkeit in [1/2 ✏, 1/2 + ✏] für sehr kleines ✏ (✏ < 1/p(n) für jedes Polynom p und n Sicherheitsniveau) 20 Beispiel (Zweite Schwäche). RSA-Entschlüsselung Zn ! Zn ; m 7! md ist multiplikativ. Angri↵: Nachricht m wurde zu c = me mod n verschlüsselt Angreifer möchte m ermittlen • Wähle Wert r 2 Zn und berechne re mod n (e ist ö↵entlich) • Bilde c0 = c · re = me · re , überrede Inhaber c0 zu entschlüsseln (z.B. für Probeverschlüsselung) • Angreifer erhält also c0d = (c · re )d = (me · re )d = m · r mod n • Multiplikation mit r 1 liefert m Beispiel (Dritte Schwäche). Kleine Verschlüsselungsexponenten: Sei e = 3. • Angreifer kennt Ciphertexte c1 = m3 mod n und c2 = (m + 1)3 mod n. • Berechnung von m ohne Nutzung von d: c2 + 2c1 1 (m + 1)3 + 2m3 1 (m3 + 3m + 3m2 + 1) + 2m3 1 = = c2 c1 + 2 (m + 1)3 m3 + 2 (m3 + 3m + 3m2 + 1) m3 + 2 3m3 + 3m + 3m2 = =m 3m + 3m2 + 3 Verallgemeinerung Für m2 = ↵ · m1 + und beliebige Exponenten e: Laufzeit O(e2 ) : also nur für kleine e praktikabel. Lösung: Setze probabilistische Verfahren ein. Klartext Zufallswert # RSA # Chi↵retext • Klartextraum wird vergrößert. • Annäherung an Gleichverteilung (erschwert statistische Angri↵e). • Obiger Angri↵ nicht mehr möglich. 21 Beispiel (OAEP, Optimal asymmetric encryption padding). k−k0−k1 Bits k1 Bits m k0 Bits 0000 r • Au↵üllen von m mit k1 Nullen • r: Zufallswert der Länge k0 • Funktion G erweitert r auf k G • x := (m||0 · 0) H 100 Bit k1 Bits. G(r)) • Funktion H reduziert x auf k0 Bits. x k−k0 Bits y k0 Bits • y := H(x) r. • mr := x||y wird zu c verschlüsselt. Empfänger entschlüsselt c zu x||y und erhält m aus x||y wie folgt: • Berechne r = y • m||0 · · · 0 = x H(x) und G(r). Übung: Zeigen Sie, dass das RSA-Verfahren mit OAEP IND-CPA sicher ist, wenn H und G Einwegfunktionen sind. Elgamal Entwickelt von Taher Elgamal 1984. Sicherheit: Vermutete Schwierigkeit des Diskreten Logarithmusproblems. Problem DL: Eingabe: Zwei Zahlen g, h 2 G. Ausgabe: logg h, d.h. x 2 N mit g x = h. G heißt kr. stark, wenn das DL-Problem in G praktisch nicht lösbar ist. Bsp.: Z⇤p = {1, 2, . . . , p 1}, p sehr große Primzahl. Eigenschaften: • Diese Gruppen sind zyklisch, d.h. Es gibt g 2 Z⇤p mit {g n ; n 2 N} = {1, 2, . . . , p 1} g ist dann Erzeuger der Gruppe. Insb. Z⇤p = {g n ; 1 n p 22 1}. • Ist g 2 Z⇤p Erzeuger, dann ex. f.a. h 2 Z⇤p ein x 2 N mit g x = h. D.h. logg h = x existiert. Schlüsselgenerierung: • Wähle eine endl. zykl. Gruppe G und Erzeuger g 2 G. • Wähle j |G| 1 und setze h = g j . • Geheimer Schlüssel: j, ö↵entlicher Schlüssel: (h, g, G). Verschlüsselung einer Nachricht m 2 G: • Wähle k |G| 1, setze f = g k . • Verschlüsselung: (f, c = hk · m). Entschlüsselung: • Berechne f j ·c=g kj k h m=g kj kj g m = m. Übung: Zeigen Sie, dass Elgamal ist IND-CPA sicher ist. Hybride Verschlüsselung • Alice will Bob eine vertrauliche Nachricht m 2 {0, 1}⇤ schicken • Bob hat RSA-Schlüsselpaar (pk = (e, n), sk = d), Alice kennt pk • Alice wählt symm. Schlüssel k 2 {0, 1}128 , berechnet c1 = k e mod n, c2 = AES(m, k) und sendet c1 , c2 an Bob • Bob berechnet cd1 mod n = k und kann c2 entschlüsseln 23