IKS Institut für Kryptographie und Sicherheit Jun.-Prof. Dr. D. Hofheinz Institut für Kryptographie und Sicherheit Stammvorlesung Sicherheit im Sommersemester 2013 Nachklausur 07.10.2013 Vorname: Nachname: Matrikelnummer: Hinweise - Für die Bearbeitung stehen Ihnen 60 Minuten zur Verfügung. Zum Bestehen der Klausur sind 20 der 60 möglichen Punkte hinreichend. Es sind keine Hilfsmittel zugelassen. Schreiben Sie Ihre Lösungen auf die Aufgabenblätter sowie auf deren Rückseiten. Zusätzliches Papier erhalten Sie bei Bedarf von der Aufsicht. - Aufgabe 1 2 3 4 5 6 Σ a 2 6 4 3 mögliche Punkte b c d Σ 2 3 4 11 2 3 11 3 4 11 4 4 11 6 6 10x1 10 60 erreichte Punkte a b c d Σ - Aufgabe 1. (2+2+3+4 Punkte) Betrachten Sie das einfache RSA-Verschlüsselungsverfahren (ohne Padding) aus der Vorlesung. (a) Seien die Primzahlen P = 11 und Q = 13 gegeben. Berechnen Sie den geheimen Exponenten d zum öffentlichen Exponenten e = 7 und geben Sie den öffentlichen Schlüssel an. (b) Verschlüsseln Sie die Nachricht M = 119 mit dem öffentlichen Schlüssel aus (a). (c) Seien die RSA-Chiffrate C1 = M e1 mod N und C2 = M e2 mod N mit gcd(e1 , e2 ) = 1 und öffentlichen Exponenten e1 , e2 sowie öffentlichem RSA-Modulus N gegeben. Wie kann M effizient berechnet werden? (Dabei sei gcd der Größte-gemeinsame-Teiler-Algorithmus.) (d) Gegeben sei der öffentliche RSA-Modulus N = P Q, mit unbekannten Primzahlen P, Q, und der Wert der eulerschen Phi-Funktion ϕ(N ) = (P − 1)(Q − 1). Geben Sie eine Formel zur effizienten Berechnung von P und Q an. Lösungsvorschlag zu Aufgabe 1. (a) Wir berechnen N := P Q = 11 · 13 = 143 und ϕ(N ) = (P − 1)(Q − 1) = 10 · 12 = 120. Der erweiterte euklidische Algorithmus EE(7, 120) liefert (−17, 1), da 120 = 7 · 17 + 1 ⇔ − 17 · 7 + 120 = 1 gilt. Der geheime Exponent lautet d := −17 mod 120 = 103. (d = −17 ist ebenso eine gültige Lösung.) Der öffentliche Schlüssel ergibt sich zu (N, e) = (143, 7). (b) Wir berechnen C := M e mod N = 1197 mod 143 = (−12 · 2)7 mod 143 = −12 · 128 mod 143 = 12 · 15 mod 143 = 180 mod 143 = 37. (Dabei ist (−12)2 mod 143 = 1.) (c) Da gcd(e1 , e2 ) = 1 gilt, erhalten wir mittels des erweitertem euklidischem Algorithmus EE(e1 , e2 ) = (α, β) ∈ ( )2 mit α · e1 + β · e2 = 1. M erhalten wir durch die Berechnung C1α · C2β mod N = M e1 α · M e2 β mod N = M α·e1 +β·e2 mod N = M . Z (d) Es gilt ϕ(N ) = (P − 1)(Q − 1) = P Q − P − Q + 1 = N − P − N/P + 1 ⇔ 0 = P 2 + (ϕ(N ) − N − 1)P + N. Nach Umformung nach P erhalten wir P1,2 := − (ϕ(N ) − N − 1) ± 2 s ( − ϕ(N ) − N − 1) 2 − N. 2 Ohne Beschränkung der Allgemeinheit setzen wir P := P1 und Q := P2 . Es existieren beide Lösungen, da die Diskriminante positiv ist. 1 Aufgabe 2. (6+2+3 Punkte) (a) Betrachten Sie das einfache ElGamal-Signaturverfahren (ohne Hashfunktion) aus der Vorlesung. Für zwei Primzahlen p und q sei hierfür die zyklische Gruppe G ⊂ Z∗p der Ordnung q mit Erzeuger g gegeben. (i) Schlüsselerzeugung: Wie berechnet sich der zu einem geheimen Signaturschlüssel sk := (G, g, x) passende Verifikationsschlüssel? (ii) Signatur: Wie wird die ElGamal-Signatur zu einer Nachricht m mit Signaturschlüssel (G, g, x) erzeugt? (iii) Verifikation: Gegeben sei die Signatur σ := (a, b). Wie können Sie mit dem Verifikationsschlüssel pk := (G, g, y) verifizieren, ob σ eine gültige Signatur zur Nachricht m ist? (b) Beschreiben Sie einen effizienten Angreifer A, der die EUF-CMA-Eigenschaft des oben betrachteten ElGamal-Signaturverfahrens bricht. (c) Das oben betrachtete ElGamal-Signaturverfahren verwendet bei der Erstellung einer Signatur einen Zufallswert e. Sei f eine öffentlich bekannte deterministische Einwegfunktion. Wir wandeln nun das ElGamal-Signaturverfahren leicht ab, indem wir zum Signieren einer Nachricht m statt dem Zufall e den Wert f (m) verwenden. Wie kann nun mit Kenntnis eines Signatur-Nachrichtenpaares (σ, m) der geheime Signaturschlüssel berechnet werden? Lösungsvorschlag zu Aufgabe 2. (a) (i) Der öffentliche Verifikationsschlüssel ist pk := (G, g, g x mod p). (ii) Wähle e ∈ Zq zufällig und gleichverteilt und setze a := g e mod p. Berechne außerdem ein b mit m ≡ ax + eb mod q. Damit ist σ := (a, b) eine gültige Signatur zur Nachricht m. (iii) Das Tupel (a, b) ist genau dann eine gültige Signatur der Nachricht m, wenn gilt y a ab mod p = g m mod p. (b) • Variante 1: Nullsignatur: Der Angreifer A wählt (a, b) := (g x , −g x ) = (y, y) (mit dem y aus dem öffentlichen Schlüssel), welches eine gültige Signatur für m = 0 ist. • Variante 2: Signatur einer Unsinnsnachricht: Der Angreifer A wählt z zufällig und berechnet a := g z g x = g z+x . Damit ist (a, −a) eine gültige Signatur für die Nachricht m = −az. In beiden Varianten schafft es A, rein mit Kenntnis des öffentlichen Verifikationsschlüssels (G, g, y) ohne vorherige Befragung des Signaturorakels, ein Nachrichten-Signatur-Paar zu erstellen, das gültig ist, für das im EUF-CMA-Experiment somit der Verifikationsalgorithmus eine 1 (bzw. valid ) ausgibt. Damit “gewinnt” A das “EUF-CMA-Spiel” (immer, also mit mehr als vernachlässigbarer Wahrscheinlichkeit). (c) Wir wissen, dass ax + eb ≡ m mod q, wobei e = f (m). Diese Gleichung können wir nach dem Geheimnis x auflösen und erhalten den geheimen Schlüssel sk = (G, g, x) mit x = a−1 (m − f (m)b) mod q. 2 Aufgabe 3. (4+3+4 Punkte) (a) Begründen Sie jeweils, ob eine Blockchiffre in den folgenden Modi IND-CPA-sicher sein kann. Geben Sie dazu entweder die entsprechende hinreichende Annahme aus der Vorlesung an oder einen erfolgreichen Angreifer und dessen Erfolgswahrscheinlichkeit. (i) ECB-Mode (ii) CBC-Mode (Initialisierungsvektor wird für jede Verschlüsselung gleichverteilt und neu gezogen) (b) Beschreiben Sie den One-Time-Pad und geben Sie genau einen Vor- und einen Nachteil an. (c) Wir betrachten eine symmetrische Chiffre Enc : {0, 1}n × {0, 1}2n−1 → {0, 1}2n−1 , Enc(K, M ) = C = C1 . . . C2n−1 , die es erlaubt, Nachrichten M = M1 . . . M2n−1 ∈ {0, 1}2n−1 mit einem n-Bit-Schlüssel K = K1 . . . Kn folgendermaßen zu verschlüsseln: M1 ⊕ K1 C1 M2 ⊕ K2 ⊕ K1 C2 ... ... ... ... ... .. . ... Mn ⊕ Kn ⊕ Kn−1 .. . Mn+1 ... ⊕ Kn .. . .. ⊕ K1 ⊕ K2 . ... ... ⊕ Kn Cn Cn+1 ... C2n−1 M2n−1 Desweiteren betrachten wir einen modifizierten IND-CPA-Sicherheitsbegriff, den wir mit IND-CPA* bezeichnen und der durch folgendes Sicherheitsspiel für einen effizienten Angreifer beschrieben wird: • Der Angreifer wählt zwei Nachrichten M (1) 6= M (2) der Länge 2n − 1. • Er erhält C ∗ = Enc(K, M (b) ) für ein gleichverteiltes b ∈ {1, 2}. • Der Angreifer gewinnt, falls er b richtig rät. • Falls Pr[Angreifer gewinnt]−1/2 für alle effizienten Angreifer vernachlässigbar ist, ist das Schema IND-CPA*-sicher. Beachten Sie: Der Angreifer erhält hier keinen Zugriff auf ein Verschlüsselungsorakel! Zeigen Sie, dass die oben definierte Chiffre diesen vereinfachten Sicherheitsbegriff nicht erfüllt, indem Sie einen erfolgreichen Angreifer und dessen Erfolgswahrscheinlichkeit angeben. Lösungsvorschlag zu Aufgabe 3. (a) (i) Keine Blockchiffre ist im ECB-Mode IND-CPA-sicher. Betrachte folgenden Angreifer: • • • • Angreifer Angreifer Angreifer Angreifer wählt M (1) 6= M (2) beliebig. erhält C ∗ = E(K, M (b) ). erfragt C (1) = E(K, M (1) ). gibt 1 aus gdw. C ∗ = C (1) . Pr[Angreifer gewinnt]=1. (ii) Im CBC-Mode ist eine Blockchiffre E(K, ·) : {0, 1}l → {0, 1}l IND-CPA-sicher, falls sie für zufälliges K ununterscheidbar zu einer Zufallsfunktion R : {0, 1}l → {0, 1}l ist. 3 (b) OTP: C = M ⊕ K, wobei |M | = |K|. Vorteil: C gibt keine Information über M (perfekte Sicherheit). Nachteil: unhandlich (langer Schlüssel) oder malleable (verwundbar). (c) 1. Möglichkeit: (1) (1) (1) (2) • Angreifer wählt M (1) 6= M (2) , so dass M1 ⊕ Mn ⊕ Mn+1 6= M1 es mehrere verschiedene Möglichkeiten, die man wählen kann). (b) (2) (2) ⊕ Mn ⊕ Mn+1 (hier gibt (b) (b) ∗ • Angreifer erhält C ∗ und berechnet C1∗ ⊕ Cn∗ ⊕ Cn+1 = M1 ⊕ Mn ⊕ Mn+1 . (b) (b) (b) (1) • Angreifer gibt 1 aus, falls M1 ⊕ Mn ⊕ Mn+1 = M1 (1) (1) ⊕ Mn ⊕ Mn+1 . Pr[Angreifer gewinnt]=1. 2. Möglichkeit: (1) • Angreifer wählt Mi (2) = Mi (1) (2) = 0 für i = 1 . . . n und Mn+1 6= Mn+1 . Rest beliebig. (b) • Angreifer erhält C ∗ und berechnet den Schlüssel rekursiv, da K1 = C1 ⊕ M1 (b) C2 ⊕ M2 ⊕ K1 = C2 ⊕ K1 usw. bis Kn . = C1 , K2 = (1) • Angreifer überprüft nun mit berechnetem Schlüssel und Cn+1 , ob Cn+1 ⊕K2 ⊕· · ·⊕Kn = Mn+1 . Falls ja, gibt er 1 aus, falls nein 2. Pr[Angreifer gewinnt]=1. 4 Aufgabe 4. (3+4+4 Punkte) (a) Sei N = P Q, für unbekannte Primzahlen P, Q, ein zufällig generierter RSA-Modulus. Ist die Kompressionsfunktion H1 : Z2N → ZN , definiert durch H1 (x, y) = x2 y mod N , kollisionsresistent? (Nehmen Sie an, dass es schwer ist, den Modulus N in seine Primfaktoren zu zerlegen.) Falls ja, skizzieren Sie, warum H1 kollisionsresistent ist. Falls nein, geben Sie eine konkrete Kollision für H1 an. G (b) Sei eine zyklische Gruppe von öffentlicher Primordnung p, in der Logarithmen nicht effizient gezogen werden können. Seien g, h ∈ zufällig gewählt. Ist die Kompressionsfunktion H2 : Z2q → definiert durch H2 (x, y) = g x+y hx−y kollisionsresistent? G G Falls ja, skizzieren Sie, warum H2 kollisionsresistent ist. Falls nein, geben Sie eine konkrete Kollision für H2 an. Begründen Sie Ihre Antwort. (c) Sei H : {0, 1}∗ → {0, 1}2k eine kollisionsresistente Hashfunktion und f : {0, 1}2k → {0, 1}k eine beliebige surjektive Funktion. Ist die Funktion H0 : {0, 1}∗ → {0, 1}k , gegeben durch H0 (x) = f (H(x)), für jede solche surjektive Funktion f kollisionsresistent? Begründen Sie Ihre Antwort. Lösungsvorschlag zu Aufgabe 4. (a) H1 ist nicht kollisionsresistent. Es genügt, eine Kollision anzugeben. Beispielsweise erzeugen die Eingaben (x, y) 6= (−x, y), für alle (x, y) ∈ Z2N , Kollisionen für H1 : Wir erhalten H1 (x, y) = x2 y mod N = (−x)2 y mod N = H1 (−x, y). (b) Wir betrachten zwei Fälle. Dabei ist die Betrachtung eines Falles ausreichend, um die Aufgabe zu lösen. Fall p = q: Diese Kompressionsfunktion ist kollisionsresistent. Angenommen es existiere ein PPTAlgorithmus A, der für H2 , gegeben durch g, h, mit nicht vernachlässigbarer Wahrscheinlichkeit zwei Paare (x1 , y1 ) 6= (x2 , y2 ) ∈ Z2p findet, sodass H2 (x1 , y1 ) = H2 (x2 , y2 ). Wir konstruieren dann einen Algorithmus A0 , der effizient Logarithmen in mit derselben Wahrscheinlichkeit zieht. Erhält A0 als Eingabe zwei Gruppenelemente g und h, so lässt es A mit Eingabe (g, h) laufen. Gibt A zwei Paare (x1 , y1 ) und (x2 , y2 ) aus, so testet A0 zunächst, ob (x1 , y1 ) 6= (x2 , y2 ) und H2 (x1 , y1 ) = G x1 −x2 +y1 −y2 H2 (x2 , y2 ) gilt. Falls ja, so gilt auch g x1 −x2 +y1 −y2 = hx2 −x1 −y2 +y1 , und damit h = g x2 −x1 −y2 +y1 . A0 2 +y1 −y2 gibt dann die Lösung r = xx12 −x −x1 −y2 +y1 aus. Fall p 6= q: Die Kompressionsfunktion ist nicht kollisionsresistent und wir geben eine Kollision an. Dabei führen die H2 -Eingaben (x, y) 6= (x + kp mod q, y), für alle (x, y) ∈ Z2q und k ∈ Z, zu einer Kollision, da stets H2 (x, y) = g x+y hx−y = g x+kp+y hx+kp−y = H2 (x + kp, y) gilt. (c) H0 ist nicht kollisionsresistent. Zu einem gegebenen H konstruieren wir eine Funktion f wie folgt: k x = H(02k ) 0 f (x) = 0k x = H(12k ) x1 . . . xk sonst k Diese Funktion ist offensichtlich surjektiv und es gilt H0 (02k ) = f (H(02 )) = 0k = f (H(12k )) = H 0 (12k ). Damit ist H0 nicht kollisionsresistent. 5 Aufgabe 5. (6 Punkte) Gegeben seien - die Menge C = {c1 , c2 , c3 }, - die Menge S = {s1 } und - die Menge O = {o1 , o2 , o3 }, mit y(oi ) = ci , für i ∈ {1, 2, 3}, x(o1 ) = {c3 }, x(o2 ) = ∅ und x(o3 ) = {c1 , c2 } im Chinese-Wall-Modell. Betrachten Sie die folgende Abfolge von Anfragen b ∈ (S × O) × ({read, write}) in Reihenfolge: 1. (s1 , o1 ) (write) 4. (s1 , o1 ) (read) 2. (s1 , o3 ) (read) 5. (s1 , o2 ) (write) 3. (s1 , o2 ) (write) 6. (s1 , o3 ) (write) Dabei ist der Initialzustand konfliktfrei. Beschreiben Sie, ob die einzelnen Anfragen gewährt werden. Falls die Anfrage nicht gewährt wurde, zeigen Sie auf, welche Eigenschaft(en) – im Sinne der ss- oder ?-Eigenschaft – verletzt wurde(n). Begründen Sie Ihre Entscheidung. Sie können die unten stehende Tabelle für Ihre Lösung verwenden. Anfrage 1. (s1 , o1 ) (write) 2. (s1 , o3 ) (read) 3. (s1 , o2 ) (write) 4. (s1 , o1 ) (read) 5. (s1 , o2 ) (write) 6. (s1 , o3 ) (write) ss ? Bemerkungen Lösungsvorschlag zu Aufgabe 5. Gewährt werden die einzelnen Anfragen b ∈ (S×O)×({read, write}), wenn die ss- und die ?-Eigenschaft erfüllt sind. 1. 2. 3. 4. 5. 6. Anfrage (s1 , o1 ) (write) (s1 , o3 ) (read) (s1 , o2 ) (write) (s1 , o1 ) (read) (s1 , o2 ) (write) (s1 , o3 ) (write) ss X × X X X × ? X X X X × × Bemerkungen − s1 hat schon Zugriff auf o1 mit y(o3 ) ∈ x(o1 ) − − s1 liest schon o1 mit y(o2 ) 6= y(o1 ) und x(o1 ) 6= ∅ s1 hat schon Zugriff auf o1 mit y(o3 ) ∈ x(o1 ), y(o3 ) 6= y(o1 ) und x(o1 ) 6= ∅ 6 Aufgabe 6. (10 Punkte) Bei dieser Multiple-Choice-Aufgabe gibt jede richtige Antwort 1 Punkt, für jede falsche Antwort wird 1 Punkt abgezogen. Die Gesamtpunktzahl der Aufgabe kann jedoch nicht negativ werden. Für nicht beantwortete Aussagen, d. h. kein Kreuz bei “wahr” und “falsch” in derselben Zeile, werden keine Punkte abgezogen. wahr falsch wahr falsch Die ElGamal-Verschlüsselung aus der Vorlesung ist sicher gegen aktive Angreifer. (Einfache) RSA-Signaturen sind EUF-CMA-sicher. N R Eine Funktion f : → ist genau dann vernachlässigbar in k, wenn ∃c, k0 ∀k ≥ k0 : f (k) ≥ 1/k c gilt. Im Cipher Feedback Mode (CFB) einer Blockchiffre werden gleiche Klartextblöcke einer Nachricht immer auf gleiche Chiffretextblöcke abgebildet. Für primes P und M ∈ {1, . . . , P − 1} gilt M P −1 = 1 mod P . Im Bell-LaPadula-Modell ist es für einen Lesezugriff von Subjekt s auf Objekt o mit entspr. Sicherheitslevel fs (s) bzw. fo (o) notwendig, dass fs (s) ≥ fo (o) gilt. Ist bei einem erlaubten Zugriff die ds-Eigenschaft im Bell-LaPadula-Modell erfüllt, so wird der aktuelle Sicherheitslevel des zugreifenden Subjekts immer angepasst. Im RSA-PSS-Verfahren gilt Sig(sk, M ) = (pad(M ))1/e mod N , für Nachricht M , Padding-Algorithmus pad, RSA-Modulus N und öffentlichen RSA-Exponenten e. PKE-basierte PK-ID-Protokolle besitzen die Zero-Knowledge-Eigenschaft. Jede kollisionsresistente Hashfunktion H : {0, 1}∗ −→ {0, 1}k ist eine Einwegfunktion bezüglich der Gleichverteilung auf {0, 1}2k . Lösungsvorschlag zu Aufgabe 6. Die ElGamal-Verschlüsselung aus der Vorlesung ist sicher gegen aktive Angreifer. × (Einfache) RSA-Signaturen sind EUF-CMA-sicher. × N R Eine Funktion f : → ist genau dann vernachlässigbar in k, wenn ∃c, k0 ∀k ≥ k0 : f (k) ≥ 1/k c gilt. Im Cipher Feedback Mode (CFB) einer Blockchiffre werden gleiche Klartextblöcke einer Nachricht immer auf gleiche Chiffretextblöcke abgebildet. Für primes P und M ∈ {1, . . . , P − 1} gilt M P −1 = 1 mod P . Im Bell-LaPadula-Modell ist es notwendig für einen Lesezugriff von Subjekt s auf ein Objekt o mit entspr. Sicherheitslevel fs (s) bzw. fo (o), dass fs (s) ≥ fo (o) gilt. Ist bei einem erlaubten Zugriff die ds-Eigenschaft im Bell-LaPadula-Modell erfüllt, so wird der aktuelle Sicherheitslevel des zugreifenden Subjekts immer angepasst. Im RSA-PSS-Verfahren gilt Sig(sk, M ) = (pad(M ))1/e mod N , für Nachricht M , Padding-Algorithmus pad, RSA-Modulus N und öffentlichen RSA-Exponenten e. × × × × × × PKE-basierte PK-ID-Protokolle besitzen die Zero-Knowledge-Eigenschaft. Jede kollisionsresistente Hashfunktion H : {0, 1}∗ −→ {0, 1}k ist eine Einwegfunktion bezüglich der Gleichverteilung auf {0, 1}2k . 7 × ×