Lösung 08

Werbung
Technische Universität Darmstadt
Einführung in die
Kryptographie
Fachgebiet Theoretische Informatik
Prof. Johannes Buchmann
Thomas Wunderer
WS 2016/ 2017
8. Lösungsblatt — 09.12.2016
Ankündigungen
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 (Z/pZ)∗ ein Quadrat mod p und jedes Quadrat a ∈ Q besitzt zwei Quadratwurzeln.
p−1
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.
161
7
= 23.
2
P4 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) Rechnen Sie ein Beispiel für (a) durch.
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.
H1 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.
H2 Sicherheit des geheimen Schlüssels
Sei n ein RSA-Modul, e der Verschlüsselungsexponent, d der Entschlüsselungsexponet, s = ma x{t ∈ N : 2 t | ed − 1},
k = (ed − 1)/2s .
(a) Zeigen Sie, dass or der(a k + nZ) | 2s für alle a ∈ Z mit ggT(a, n) = 1.
Lösung: Es gilt e · d ≡ 1 mod ϕ(n) ⇒
∃r ∈ Z : ed − 1 = r · ϕ(n). Da ggT(a, n) = 1 ist, gilt aϕ(n) ≡ 1 mod n ⇒ a r·ϕ(n) ≡ 1 mod n
und daher ist a ed−1 ≡ 1 mod n
s
Daraus folgt (a k )2 ≡ 1 mod n
Daher ist or der(a k + nZ) ein Teiler von 2s .
(b) Sei a ∈ Z, ggT(a, n) = 1, und seien die Ordnungen von a k mod p und mod q verschieden. Zeigen Sie, dass für
ein
t
t ∈ {0, . . . , s − 1} gilt: 1 < g g T (a2 k − 1, n) < n.
Lösung: Aus (a) folgt, dass or der(a k + nZ) ∈ {2i : o ≤ i ≤ s} und daher gilt das auch für or d er(a k + pZ) und
or d er(a k + qZ), denn aus
(a k ) x ≡ 1 mod n und p | n folgt (a k ) x ≡ 1 mod p
Bemerkung:
Es kann aber ein y < x geben mit
3
(a k ) y ≡ 1 mod p
Daher können or der(a k + pZ), or der(a k + qZ), und or d er(a k + nZ) verschieden sein.
Beispiel:Sei n = 3 · 5 = 15. Es ist or der(2 + 15Z) = 4 und 24 ≡ 16 ≡ 1 mod 15. Es folgt 24 ≡ 1 mod 3, 24 ≡ 1
mod 5. Aber es ist or der(2 + 3Z) = 2 und or d er(2 + 5Z) = 4
t
Sei or d er(a k + qZ) = 2 t < or der(a k + pZ). Dann gilt t < s und (a k )2 ≡ a2
t
mod p. Daher ist ggT(a2 k − 1, n) = q
t ·k
≡ 1 mod q. Aber a2
t ·k
6≡ 1
(c) (Freiwillig) Zeigen Sie, dass die Anzahl der Zahlen a ∈ {1, . . . , n − 1} mit den Eigenschaften aus (b) wenigstens
(p − 1)(q − 1)/2 ist. Hinweis: vervollständigen Sie den Beweis aus dem Buch.
Lösung: Nach dem chinesischen Restsatz gibt es einen Erzeuger g < n, der Z p und Zq erzeugt. Sei l =
or d er(g k + pZ) > or der(g k + qZ). Aus (a) liegen beide Ordnungen in der Menge {2i : 0 ≤ i ≤ s}. Sei 0 < x < p
ungerade, y ≤ q − 2 und a eine Lösung der simultanen Kongruenz
a ≡ g x mod p, a ≡ g y mod q
Da l Zweierpotenz ist, gilt
or der(a k + pZ) = or d er(g k + pZ) > or d er(g k + qZ)
Diese Lösung mod n sind paarweise verschieden, denn g ist ein Erzeuger und daher ist a für jedes x, y anders.
Damit sind (p −1)(q −1)/2 zu n teilerfremden Zahlen a gefunden, für die gilt: or d er(a k + pZ) 6= or d er(a k +qZ).
Falls or d er(g k +pZ) < or der(g k +qZ), so geht man genauso vor. Sei schließlich or d er(g k +pZ) = or d er(g k +qZ).
Dann sei 0 < x < p ungerade, y ≤ q − 2 gerade (oder umgekehrt) und a < n eine Lösung der simultanen Kongruenz
a ≡ g k mod p, a ≡ g k mod q
Es folgt or der(a k + pZ) 6= or der(a k + qZ) für
(p−1)(q−1)
4
+
(p−1)(q−1)
4
=
(p−1)(q−1)
2
Zahlen.
(d) Folgen Sie, dass der in der Vorlesung vorgestellte Algorithmus Erfolgswahrscheinlichkeit ≥
1
2
hat.
Lösung: Es gibt n − (p − 1)(q − 1) Zahlen, die p oder q als gemeinsamer Teiler mit n haben. Wird eine von
denen zufällig gewählt, so wird ein echter Teiler von n gefunden. Alle anderen (p − 1)(q − 1) Zahlen sind
teilerfremd zu n. Aus (b) und (c) hat der Algorithmus mit wenigstens (p − 1)(q − 1)/2 Zahlen Erfolg. Somit ist
die Erfolgswahrscheinlichkeit ≥ 1/2.
4
Herunterladen