TECHNISCHE UNIVERSITÄT DARMSTADT Einführung in die Kryptographie FACHGEBIET THEORETISCHE INFORMATIK PROF. JOHANNES BUCHMANN FATEME SHIRAZI WS 2013/2014 10. Lösungsblatt — 10.01.2014 P1 ElGamal (a) Der öffentliche Schlüssel von Alice ist (p, g, A) = (601, 7, 598). Verschlüsseln Sie die Nachricht m = 2. Die Zufallszahl, die Sie dabei brauchen, ist b = 32. Lösung. Das Ergebnis der Verschlüsselung der Nachricht m = 2 mit dem Schlüssel (p, g, A) = (601, 7, 598) unter Verwendung des zufälligen Exponenten b = 32 ist (g b, Ab · m) = (551, 402). (b) Der öffentliche ElGamal-Schlüssel von Alice sei (p = 53, g = 2, A = 30). Bob erzeugt für Alice den ElGamalChiffretext (B = 24, c = 37). Wie lautet der Klartext? Lösung.Wir finden mit erschöpfender Suche den geheimen Schlüssel von Alice a = 13 und entschlüsseln die Nachricht m = 37. P2 Pseudoprimzahlen (a) Zeigen Sie, dass 341 eine Pseudoprimzahl zur Basis 2 ist. Lösung. Eine ungerade zusammensetzte Zahl n ist eine Pseudoprimzahl zur Basis a wenn gilt: a n−1 ≡ 1 mod n Es gilt 2340 ≡ 1 mod 341. Das lässt sich mit der schnellen Exponentation berechnen. Somit ist 341 eine Pseudoprimzahl zur Basis 2. (b) Beweisen Sie mit dem Fermat-Test, dass 341 zusammengesetzt ist. Lösung.Wähle a = 3. Es ist ggT(341, 3) = 1 und es gilt 3340 ≡ 56 mod 341. Nach dem Fermat-Test ist also 341 zusammengesetzt, denn es gibt a = 3 mit 3340 6≡ 1 mod 341. P3 Anzahl der Primzahlen Bezeichnet π(x) die Anzahl der Primzahlen ≤ x (für x ≥ 17), so ist x/log x < π(x) < 1.25506 · (x/l o g x) (1) (a) Bestimmen Sie π(100) und vergleichen Sie diesen Wert mit der Abschätzung in (1). Lösung. Die Anzahl der Primzahlen, die kleiner als 100 sind: {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, , 79, 83, 89, 97} somit ist π(100) = 25. Die Abschätzung in (1) ergibt: 21.71<π(100) < 27.25 (b) Schätzen Sie mit (1) die Anzahl der Primzahlen ab, deren Binärdarstellung 1024 Stellen hat. Lösung. Sei p eine Primzahl mit Bitlänge 1024. Dann gilt: 21023 ≤ p < 21024 Es gilt: 21024 21024 < π(21024 ) < (1.25506) · l o g(2 1024 ) l o g(21024 ) 21023 l o g(21023 ) 1024 π(2 21023 Die Anzahl l o g(21023 ) 21023 ≈ 21013.53 l o g(21023 ) < π(21023 ) < (1.25506) · ) − π(2 1023 )≈ 21024 l o g(21024 ) − der Primzahlen mit Bitlänge 1024 ist also (c) Verwenden Sie die Aussage aus (b) um die Wahrscheinlichkeit dafür abzuschätzen, dass eine zufällig gewählte 1024-Bit Zahl eine Primzahl ist. Lösung. Die Anzahl der Zahlen mit Bitlänge 1024 ist 21024 − 21023 = 21023 Daher ist die gesuchte Wahrscheinlichkeit: π(21024 )−π(21023 ) 21023 ≈ 0.0014 1 H1 Primzahl-Berechnung Geben Sie einen Algorithmus an, der zufällig und gleichverteilt eine Primzahl von gegebener Bitlänge berechnet. H2 Miller-Rabin-Zeuge Bestimmen Sie den kleinsten Miller-Rabin-Zeugen dafür, dass 341 eine zusammengesetzte Zahl ist. H3 Laufzeit-Vergleich ElGamal vs. RSA Vergleichen Sie die Laufzeit des ElGamal-Verfahren mit der Laufzeit des RSA-Verfahren. 2