TECHNISCHE UNIVERSITÄT DARMSTADT FACHGEBIET THEORETISCHE INFORMATIK PROF. JOHANNES BUCHMANN DR. JULIANE KRÄMER Einführung in die Kryptographie WS 2015/ 2016 10. Lösungsblatt — 17.12.2015 Ankündigung - P1 ElGamal - Schlüsselerzeugung In der Vorlesung wurde ein Algorithmus zur Erzeugung sicherer Parameter für den Diffie-Hellman-Schlüsselaustausch vorgestellt. Verwenden Sie diesen, um einen ElGamal Schlüssel mit einer 6-Bit Primzahl p und einer Basis g , deren Ordnung (in Z∗p ) eine 3-Bit Primzahl ist, zu erzeugen. Lösung. Wir wählen erst eine zufällige 3-Bit Primzahl und erhalten q = 5. Nun wählen wir zufällig eine natürliche (6 − 3)-Bit Zahl und erhalten m = 6. Wir berechnen p = qm + 1 = 31. Da p prim ist fahren wir fort. Wir wählen zufällig eine Zahl aus {2, 3, . . . , 29} und erhalten x = 14. Nun berechnen wir g = x m mod 31 = 8. Damit ist g ein Erzeuger einer Untergruppe der Ordnung q von Z∗31 . Wir wählen jetzt noch einen Exponenten, erhalten a = 7, und berechnen A = g a mod 31 = 2. Der öffentliche Schlüssel ist somit (p, g, A) = (31, 8, 2) und der private Schlüssel a = 7. P2 ElGamal - Chosen Plaintext In der Vorlesung wurde gezeigt, dass das ElGamal-Verfahren nicht Chosen-Plaintext sicher ist. Veranschaulichen Sie dies, indem Sie einen Chosen-Plaintext-Angriff durchführen, wobei der öffentliche Schlüssel (p, g, A) = (601, 7, 598) gegeben ist. Sie können dafür die Tatsache, dass 102 ein quadratischer Nicht-Rest modulo 601 ist, verwenden. Hinweis: Wenn Sie das Jacobi-Symbol nicht von Hand berechnen können, können Sie WolframAlpha nutzen. Um ( na ) zu berechnen, wird der Befehl jacobiSymbol (a, n) genutzt. Sollten Sie weder Smartphone noch Laptop bei sich haben, helfen Ihnen die Tutoren gerne weiter. Lösung. Wir wählen als Nachrichten einen quadratischen Nicht-Rest modulo 601, zum Beispiel m0 = 102 und einen quadratischen Rest modulo 601, zum Beispiel m1 = 67. Das Verschlüsselungsorakel wählt jetzt zufällig eine dieser Nachrichten und verschlüsselt diese. Wir bekommen von dem Orakel die Verschlüsselung (B, c) = (279, 568). m 598 Da 601 = 1 ist, setzen wir l = 1. Es gilt nun l ∗ 568 = −1 = 6010 . Somit wurde die Nachricht m0 verschlüsselt. 601 P3 ElGamal - Chosen Ciphertext In der Vorlesung wurde gezeigt, dass das ElGamal-Verfahren nicht sicher gegen Chosen-Ciphertext-Angriffe ist. Veranschaulichen Sie dies, indem Sie einen Chosen-Ciphertext-Angriff durchführen, wobei der öffentliche Schlüssel (p, g, A) = (601, 7, 362) und der Chiffretext (B, c) = (54, 101) gegeben sind. Um die Ausgabe des Entschlüsselungsorakels zu berechnen, können Sie den privaten Schlüssel a = 51 verwenden. Verallgemeinern Sie den Angriff und zeigen Sie, dass homomorphe Verschlüsselungsverfahren (d.h. Verfahren mit Enc(a · b) = Enc(a) · Enc(b)) nicht Chosen-Ciphertext sicher sind. Lösung. Wir wählen als neue Nachricht m1 = 234 und verschlüsseln diese. Dazu wählen wir r = 5 und berechnen (B1 , c1 ) = (g r , Ar m1 ) = (580, 530). Nun lassen wir vom Orakel (BB1 , cc1 ) entschlüsseln und erhalten m0 = 37. Die ursprüngliche Nachricht ist nun m = m0 m−1 mod 601 = 37 · 244 mod 601 = 13. 1 Die Methode lässt sich wie folgt verallgemeinern. Sei c der zu entschlüsselnde Chiffretext. Wir wählen eine neue Nachricht m1 und berechnen c1 = Enc(m1 ). Anschließend lassen wir c0 = cc1 vom Orakel entschlüsseln und erhalten m0 mit −1 −1 −1 Enc(m0 ) = c0 . Die gesuchte Nachricht ist nun m = m0 m−1 1 , da Enc(m) = Enc(m0 m1 ) = Enc(m0 )Enc(m1 ) = c0 c1 = c . 1 H1 ElGamal - Schlüsselerzeugung Nennen Sie die Aspekte, die bei der Schlüsselerzeugung für das ElGamal-Verfahren zu beachten sind und erklären Sie, warum diese wichtig sind. Lösung. Die Primzahl p und der Erzeuger g müssen so gewählt werden wie für den Diffie-Hellman-Schlüsselaustausch. Insbesondere muss p also so gewählt werden, dass das diskrete Logarithmusproblem modulo p schwer ist. Eine Tabelle mit Mindestgrößen für p, um verschiedene Sicherheitsniveaus zu garantieren, findet sich im Buch „Einführung in die Kryptographie“. Außderdem muss p so gewählt werden, dass das diskrete Logarithmusproblem kein leichter Spezialfall ist, der von bekannten Algorithmen (z.B. Pohling-Hellman oder dem Zahlkörpersieb) gelöst werden kann. Um beispielsweise Pohling-Hellman-Angriffe auszuschließen, darf p-1 nicht nur kleine Primfaktoren besitzen. Nun zur Wahl des Erzeugers g . Es kann gezeigt werden, dass wenn g eine Primitivwurzel modulo p ist, das DecisionalDiffie-Hellman-Problem (DDH) lösbar ist. Stattdessen wird g als Element der Ordnung q gewählt, wobei q eine große Primzahl ist. Nach aktueller Auffassung ist dann das DDH-Problem schwer zu lösen. Eine Tabelle mit Mindestgrößen für q, um verschiedene Sicherheitsniveaus zu garantieren, findet sich ebenfalls im Buch „Einführung in die Kryptographie“. H2 Ordnungen von Gruppenelementen Sei G = Z∗101 und der Erzeuger g = 2 von G gegeben. Bestimmen Sie die Ordnungen der Gruppenelemente x 1 = 2, x 2 = 4, x 3 = 8, x 4 = g 15 , x 5 = g 50 , x 6 = g 70 , x 7 = g 81 , x 8 = g 100 . Lösung. Es gilt or d(g k ) = or d(g) g g T (or d(g),k) . Da g = 2 die Gruppe G erzeugt, gilt or d(g) = 100. Somit erhalten wir or d(2) = 100, or d(4) = 50, or d(8) = 100, or d(g 15 ) = 20, or d(g 50 ) = 2, or d(g 70 ) = 10, or d(g 81 ) = 100 und or d(g 100 ) = 1. 2
© Copyright 2024 ExpyDoc