Kryptographie - CDC

Werbung
Technische Universität Darmstadt
Fachgebiet Theoretische Informatik
Prof. Johannes Buchmann
Thomas Wunderer
Einführung in die
Kryptographie
WS 2016/ 2017
1. Lösungsblatt — 21.10.2016
Ankündigungen
Die aktuellen Übungsblätter werden wöchentlich jeweils freitags auf der Homepage veröffentlicht, die zugehörigen
Musterlösungen jeweils eine Woche später.
Auf den Übungsblättern finden sich P-Aufgaben (Präsenz-Aufgaben) und H-Aufgaben (Hausaufgaben). Die PAufgaben werden in der Übung besprochen, die H-Aufgaben dienen als zusätzliche Übung zu Hause (Hausaufgaben
können nicht zur Korrektur abgegeben werden). Bitte bringen Sie die Übungsblätter (ausgedruckt) in die Übungen
mit, es werden keine ausgedruckten Exemplare bereit gestellt!
Bitte werfen Sie regelmäßig einen Blick auf die Homepage, auf der sich die aktuellen Übungsblätter und Lösungen, sowie
weitere Ankündigungen finden: https://www.cdc.informatik.tu-darmstadt.de/cdc/studium-und-lehre/lehre/
ws-16-17/iv-einfuehrung-in-die-kryptographie/
P1 Schutzziele
(a) Nennen und beschreiben Sie mindestens vier Schutzziele, die man mit Kryptographie erreichen kann. Wie kann
man sie erreichen?
Lösung:
• Vertraulichkeit: Information wird nur Berechtigten zugänglich gemacht, z.B. durch Verschlüsselung.
• Integrität: Bei Transport und Speicherung werden Daten nicht verändert, z.B. durch Verschlüsselung und
MAC.
• Authentizität (ist Teil von Integrität): Herkunft ist verifizierbar, z.B. durch MAC.
• Identifikation: Identität des Kommunikationspartner ist verifizierbar, z.B. durch Digitale Signaturen.
• Nichtabstreitbarkeit: Integrität und Authentizität sind Dritten gegenüber nachweisbar, z.B. durch Digitale
Signaturen.
(b) Beschreiben Sie ein persönliches Erlebnis in dem mindestens zwei Schutzziele eine Rolle spielen.
Lösung: Beispiel Online Banking:
• Vertraulichkeit: Meine Zugangsdaten werden nicht abgehört,
• Integrität: Das Zielkonto meiner Überweisung wird nicht verändert,
• Identifikation: Ich rede mit meiner Bank.
P2 Teilbarkeit
Seien a, b, c ganze Zahlen. Man schreibt für die Aussage “ a teilt b” kurz a | b. Beweisen Sie die folgenden Implikationen.
Verwenden Sie die Definition: a | b genau dann wenn es ein k ∈ Z gibt, so dass b = ak ist.
(a) a | b und b | c =⇒ a2 | bc .
Lösung:
a | b und b | c bedeutet es gibt k, l ∈ Z, so daß b = ak und c = bl = akl ist. Somit ist auch bc = a2 k2 l , also gilt
a2 | bc .
(b) |a| =
6 |b| =⇒ a - b oder b - a.
Lösung:
Wir beweisen die Kontraposition: a | b und b | a =⇒ |a| = |b|. Wir nehmen also an es gilt a | b und b | a. Dann
gibt es k, l ∈ Z, so daß b = ak und a = bl ist. Hierraus folgt dass b = bkl , also kl = 1 gilt. Dies wiederum bedeutet
dass k, l ∈ {±1}, da k und l ganze Zahlen sind.
1
P3 Größter gemeinsamer Teiler (ggT)
1. Zeigen Sie, dass für beliebige natürliche Zahlen a, b, c gilt:
g g T (a, c) = 1 ∧ b | c ⇒ g g T (a b, c) = b
Lösung: Es ist klar, dass b | ab und b | c gilt. Damit gilt b | g g T (a b, c), also g g T (a b, c) = x b für ein x ∈ N.
Aus x b | ab folgt dann x | a und aus x b | c folgt x | c/b | c , da c/b ∈ N. Daraus folgt x | g g T (a, c) = 1, also
x = 1 und g g T (ab, c) = b.
2. Zeigen Sie, dass für beliebige ganze Zahlen a, b, c gilt:
a | c, b | c, g g T (a, b) = 1 ⇒ a b | c
Lösung: Da a und b teilerfremd sind, gibt es x, y ∈ Z mit 1 = a x + b y , und daher c = ac x + bc y . Aus b | c folgt
a b | ac , also ab | ac x . Analog: ab | bc y . Dann teilt a b die Summe, die c ist.
P4 Erweiterter Euklidischer Algorithmus
Seien a = 38 und b = 21. Berechnen Sie g g T (a, b) mit Hilfe des erweiterten Euklidischen Algorithmus und stellen Sie
g g T (a, b) als ganzzahlige Linearkombination von a und b dar.
Lösung: Die Schritte des erweiterten Euklidischen Algorithmus sind:
k
0
1
2
3
4
5
rk
qk
38
-
21
1
17
1
4
4
1
4
0
1
0
0
1
1
−1
−1
2
5
−9
(−1)k x k
(−1)k+1 yk
Also gilt g g T (a, b) = 1 und 1 = 5 · 38 − 9 · 21.
P5 Euklidischer Algorithmus
Sei a = 89. Für welche der drei Werte b1 = 34, b2 = 55 b3 = 56 oder b4 = 76 benötigt der Euklidische Algorithmus
die geringste Laufzeit (Anzahl von Iterationen) um g g T (a, bi ) zu berechnen? Was fällt bei der längsten Laufzeit im
Algorithmus auf?
Lösung: Der Euklidische Algorithmus benötigt zur Berechnung von
g g T (89, 34) :
g g T (89, 55) :
g g T (89, 56) :
g g T (89, 76) :
8
9
6
5
Iterationen. Man sieht, dass die Zahl der Iterationen nicht notwendig mit der Größe des zweiten Operanden wächst. Die
größte Zahl der Iterationen (9) wird für die Berechnung von g g T (89, 55) benötigt. In diesem Fall sind alle Quotienten
q k = 1.
H1 Erweiterter Euklidischer Algorithmus
Seien a, b, n ganze Zahlen. Betrachten Sie die diophantische Gleichung
ax + b y = n
(1)
"Diophantische Gleichung” bedeutet, dass wir nur ganzzahlige Lösungen suchen.
2
(a) Zeigen Sie, dass die Gleichung (1) genau dann eine Lösung (x, y) ∈ Z2 hat, wenn ggT(a, b) ein Teiler von n ist.
Lösung: Ist ggT(a, b) = d . Dann gibt es r, s ∈ Z, sodass ggT(r, s) = 1 und a = r · d , b = s · d .
⇒ Sei x 0 , y0 eine Lösung. Dann
ax 0 + b y0 = n = r d x 0 + sd y0 = (r x 0 + s y0 )d → d | n
⇐ Sei d | n. Dann gibt es ein t ∈ Z mit: n = t · d .
Da ggT(a, b) = d → ∃ a0 , b0 ∈ Z mit: aa0 + b b0 = d . Dann gilt:
t · aa0 + t · b b0 = t · d
d.h. ∃x 0 = a0 t , y0 = b0 t mit ax 0 + b y0 = t · d = n.
(d) Bestimmen Sie mit dem erweiterten Euklidischen Algorithmus den ggT von 93 und 42 und stellen Sie ihn als
Linearkombination der beiden Zahlen dar.
Lösung: Es gilt ggT(93, 42) = 3 = 5 · 93 − 11 · 42
3
Herunterladen