Kryptographie - CDC

Werbung
TECHNISCHE UNIVERSITÄT DARMSTADT
Einführung in die
Kryptographie
FACHGEBIET THEORETISCHE INFORMATIK
PROF. JOHANNES BUCHMANN
DR. JULIANE KRÄMER
WS 2015/ 2016
8. Lösungsblatt — 03.12.2015
Ankündigung
Die Bücher, die noch nicht abgeholt wurden, können am 16.12.2015 direkt im Anschluss an die VL im Raum B207
im Piloty-Gebäude abgeholt werden. Bitte bringen Sie 10 € passend mit. Sollten Sie keine Möglichkeit haben, an dem
Termin zu erscheinen oder sich das Buch von einem Kommilitonen mitbringen zu lassen, melden Sie sich bitte bei Juliane
Krämer: [email protected].
Sie dürfen zur Klausur ein beidseitig beschriebenes DIN-A4-Blatt mitnehmen.
P1 Quadratwurzeln
(a) Sei p eine Primzahl. Was bedeutet es, wenn wir sagen, dass a ∈ {0, . . . , p − 1} ein Quadrat mod p ist oder wenn b
eine Quadratwurzel von a mod p ist?
Lösung. Wenn a ein Quadrat mod p ist, dann gibt es eine Zahl b ∈ {0, . . . , p − 1}, für die a ≡ b2 mod p gilt. Dieses
b ist eine Quadratwurzel von a mod p.
(b) Sei p = 11. Welche der Zahlen a ∈ {0, . . . , p − 1} sind Quadrate mod p?
Lösung. Wir berechnen zunächst das Quadrat aller Zahlen b ∈ {0, . . . , p − 1}:
b
b2 mod 11
0
0
1
1
2
4
3
9
4
5
5
3
6
3
7
5
8
9
9
4
10
1
Die Zahlen in der zweiten Zahle sind Quadratzahlen modulo 11, d.h. {0, 1, 3, 4, 5, 9} ist die Menge der Quadratzahlen modulo 11.
(c) Was sind die Quadratwurzeln von 5 modulo 11 und von 6 modulo 11?
Lösung. Aus (b) wissen wir, dass 42 ≡ 5 mod 11 und 72 ≡ 5 mod 11 gilt. Daher sind 4 und 7 die Quadratwurzeln
von 5 modulo 11. Da wir aus (b) außerdem wissen, dass 6 kein Quadrat modulo 11 ist, gibt es auch keine
Quadratwurzeln von 6 modulo 11.
(d) Sei p eine Primzahl. Bestimmen Sie | Q | für die Menge Q = {x 2 mod p : x ∈ (Z/pZ)∗ } und zeigen Sie, dass
a|Q| = 1, falls a ein Quadrat modulo p ist.
Lösung. Für p = 2 ist offensichtlich | Q | = 1.
Sei nun also p > 2. Sei a ∈ (Z/pZ)∗ , d.h. 0 < a < p. Die Menge Q = {x 2 mod p : x ∈ (Z/pZ)∗ } ist eine Untergruppe
von (Z/pZ)∗ . Die Elemente x und −x = p − x haben das gleiche Quadrat (nachrechenbar mit der 2. binomischen
Formel). Andererseits kann ein Element nicht mehr als zwei Quadrate haben, da Z/pZ ein Körper ist, und somit
jedes Polynom X 2 − a für a ∈ Z/pZ höchstens zwei Nullstellen hat. Daher ist genau die Hälfte der Elemente in
p−1
(Z/pZ)∗ ein Quadrat mod p und jedes Quadrat a ∈ Q besitzt zwei Quadratwurzeln. Somit ist | Q |= 2 .
Ist a ein Quadrat mod p, so gibt es b ∈ (Z/pZ)∗ mit a = b2 mod p. Also gilt: a|Q| = a
mod p.
p−1
2
= (b2 )
p−1
2
= b p−1 ≡ 1
(e) Sei p eine Primzahl, p ≡ 3 mod 4 und sei a ∈ {0, . . . , p − 1} ein Quadrat mod p. Zeigen Sie, dass ±a(p+1)/4 mod p
die Quadratwurzeln von a mod p sind.
Lösung. (±a
p+1
2
4
) ≡a
p+1
2
≡a·a
p−1
2
≡ a · 1 ≡ a mod p
(f) Verwenden Sie die Formel aus (e) um die Quadratwurzeln aus 3 mod 23 zu berechnen.
p+1
p+1
Lösung. Es ist p = 23, daher ist 4 = 6 und somit a 4 = 36 = 33 · 33 ≡ 4 · 4 mod 23 = 16 mod 23. Aus (d)
wissen wir, dass die zweite Quadratwurzel von 23 gerade 23 − 16 ist. Somit sind 7 und 16 die Quadratwurzeln
von 3 mod 23.
1
P2 Schnelle Exponentiation
(a) Nutzen Sie schnelle Exponentiation, um folgende Werte zu berechnen:
2286 mod 2003
31001 mod 2003
5q mod 2003,
wobei q = 2002/p und p alle Primzahlen, die 2002 teilen, durchläuft.
Lösung.
2286 = 1 mod 2003
31001 = 1 mod 2003.
Im letzten Teil der Aufgabe nimmt q die Werte 1001, 286, 182, 154 an, da 2002 = 2 · 7 · 11 · 13 gilt. Hierfür sind die
Lösungen
51001 ≡ 2002 mod 2003
5286 ≡ 874 mod 2003
5182 ≡ 886 mod 2003
5154 ≡ 633 mod 2003.
P3 Rabin-Verfahren
Sei n = 161. Nehmen Sie an, dass Sie ein Rabin-Entschlüsselungsgerät besitzen, das immer die kleinste nicht-negative
Quadratwurzel ausgibt. Zeigen Sie, wie man den Rabin-Modul n mit diesem Gerät faktorisieren kann.
Lösung. Wir wählen x = 144 als Plaintext, den wir verschlüsseln. Es ist ggT(161, 144) = 1. Daher berechnen wir c = x 2
mod n = (144)2 mod 161 = 128.
Das Entschlüsselungsgerät berechnet:
mp = c
p+1
4
≡ (128)6 mod 23 = 6
q+1
4
mq = c
≡ (128)2 mod 7 = 4
m ≡ 6 mod 23
m ≡ 4 mod 7
Der erweiterte euklidische Algorithmus berechnet
23 · (−3) + 7 · 10 = 1
m = ±(6 · 7 · 10 ± 4 · 23 · (−3)) mod 161
m = {17, 52, 109, 144}
Das Rabin-Entschlüsselungsgerät gibt die kleinste nicht negative Quadratzahl aus, d.h. wir bekommen m = 17 aus. Damit
wir einen nicht-trivialen Teiler von n erhalten, darf weder m − x ≡ 0 mod n noch m + x ≡ 0 mod n gelten. Es gilt jedoch
m + x = 17 + 144 = 161 mod 161 = 0.
Daher wählen wir ein neues x , und zwar x = 101. Es ist ggT(161, 101) = 1. Damit berechnen wir c = x 2 = (101)2 mod
161 = 58.
Das Entschlüsselungsgerät berechnet:
mp = c
p+1
4
= (58)6 mod 23 = 9
q+1
4
= (58)2 mod 7 = 4
mq = c
m ≡ 9 mod 23
m ≡ 4 mod 7
23 · (−3) + 7 · (10) = 1
m = ±(9 · 7 · 10 ± 4 · 23 · (−3)) mod 161
m = {32, 60, 101, 129}
Das Entschlüsselungsgerät gibt m = 32 aus. Es gilt:
m + x = 32 + 101 = 133 6= 0 mod 161
m − x = −69 = 92 6= 0 mod 161
Daher muss ggT(m ± x, n) ein nicht-trivialer Teiler von n sein. Es ist ggT(m + x, n) =ggT(133, 161) = 7 und
Somit erhalten wir die Faktorisierung 161 = 7 · 23.
2
161
7
= 23.
H1 Low-Exponent-Angriff vs. Rabin-Verfahren
(a) Zeigen Sie, dass der Low-Exponent-Angriff auch für das Rabin-Verfahren funktioniert.
Lösung. Wird die gleiche Nachricht m für zwei Moduli n1 und n2 mit dem Rabin-Verfahren verschlüsselt, so gibt
es ein x , das die simultane Kongruenz
x ≡ c1 ≡ m2 mod n1 ,
x ≡ c2 ≡ m2 mod n2 ,
löst. Es kann mit dem erweiterten euklidischen Algorithmus berechnet werden, wenn die Schlüsseltexte c1 =
m2 mod n1 und c2 = m2 mod n2 beobachtet werden. Dieses x ist kleiner als n1 n2 . Da jedoch auch m2 < n1 n2 und
m2 offensichtlich die obigen Kongruenzen erfüllt, folgt aus der Eindeutigkeitsaussage des Chinesischen Restsatzes,
dass x = m2 , sodass der Angreifer durch Quadratwurzelziehen in R aus x den Klartext m erhält.
(b) Geben Sie ein Beispiel für (a).
Lösung. Se n1 = 161 und n2 = 781. Angenommen, m = 52 wurde verschlüsselt. Dann gilt
c1 = (52)2 mod 161 = 128 und c2 = (52)2 mod 781 = 361, woraus x ≡ 128 mod 161 und x ≡ 361 mod 781 folgt.
Der erweiterte euklidische Algorithmus ergibt:
781 · (−47) + 161 · (228) = 1
p
Somit
ist x = 128 · 781(−47) + 361 · 161 · 228 mod 125741 = 79662 + 48783 = 2704 und folglich m = x =
p
2704 = 52.
H2 Schnelle Exponentiation
Wieviele Quadrierungen und Multiplikationen benötigt der Algorithmus, wenn die Binärdarstellung des Exponenten n
Bit lang ist und davon r Bits 1 sind?
Pn−1
Lösung. Der Exponent lässt sich schreiben als e = i=0 ei 2i , d.h., die Binärdarstellung von e ist en−1 . . . e0 , wobei nach
Voraussetzung r dieser ei gleich 1 sind (und die anderen 0). Für eine Basis b gilt
be =
n−1
Y
i
(b2 )ei =
i=0
Y
i
b2 .
{0≤i≤n−1:ei =1}
Dieses Produkt enthält genau r Faktoren, weshalb r − 1 Multiplikationen ausgeführt werden.
1
2
n−1
Für die Berechnung der sukzessiven Quadrate b2 , b2 , . . . , b2 werden zudem n − 1 Quadrierungen benötigt.
3
Herunterladen