Kryptographie - CDC

Werbung
TECHNISCHE UNIVERSITÄT DARMSTADT
FACHGEBIET THEORETISCHE INFORMATIK
PROF. JOHANNES BUCHMANN
FATEME SHIRAZI
Einführung in die
Kryptographie
WS 2012/2013
1. Lösungsblatt — 19.10.2012
Übung Organization
Die Aufgaben sind jeweils Freitags ab 17 Uhr im Netz verfügbar. Die P-Aufgaben sind Präsenzaufgaben und werden
während der Übungsstunde gelöst und die H-Aufgaben sind Hausaufgaben, die abgegeben werden können. Die Lösungen
von P-Aufgaben werden am nächsten Freitag und die Lösungen von H-Aufgaben werden dann am übernächsten Freitag
im Netz verfügbar sein. Lesen Sie bitte regelmäßig die Webseite
https://www.cdc.informatik.tu-darmstadt.de/studium-und-lehre/lehre/ws-12-13/vorlesung/einfuehrung-in-die-kryptographie/
um informiert zu sein.
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 =⇒ kak = kbk. Es gibt wieder k, l ∈ Z, so daß b = ak und a = bl
ist. Hierraus folgt das kl = lk = 1 gilt, was bedeutet das k, l ∈ {±1}.
1
P3 Euklidischer Algorithmus
(a) Sei a = 99, b = 78. Berechnen Sie ggT(a, b) mit Hilfe des euklidischen Algorithmus und stellen Sie ggT(a, b) als
Linearkombination von a und b dar.
Lösung. Es gilt ggT(99, 78) = 3 und 3 = (−11) · 99 + 14 · 78.
(b) Sei a = 89. Für welche der drei Werte b1 = 34, b2 = 56 oder b3 = 76 benötigt der Euklidische Algorithmus die
geringste Laufzeit (Anzahl von Iterationen). Finden Sie einen Wert b4 < a für den die Anzahl der Iterationen bei
der Berechnung von ggT(a, b4 ) maximal wird.
Lösung. Der Euklidische Algorithmus benötigt zur Berechnung von
gcd(89, 34)
gcd(89, 56)
gcd(89, 76)
8
6
5
Iterationen. Man sieht, das 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 gcd(89, 55) benötigt. In diesem Fall sind
alle Quotienten qk = 1. (*) Die Zahlen 89 und 55 sind Glieder der Fibonacci-Folge, die iterativ wie folgt definiert
ist:
a−2 = 1,
a−1 = 1,
an = an−1 + an−2 .
Die Anzahl der Iterationen des Euklidischen Algorithmus ist maximal für zwei aufeinanderfolgende Elemente der
Fibonacci-Folge. (Wie groß ist sie?)
H1 Eigenschaften des größten gemeinsamen Teilers
Sei n ≥ 3 ∈ N und a1 , a2 , . . . , an ∈ Z.
(a) Zeigen Sie, dass dann gilt:
ggT(a1 , . . . , an ) = ggT(ggT(a1 , . . . , an−1 ), an )
Hinweis: Verwenden Sie die Eigenschaft a1 Z + . . . + an Z = ggT(a1 , . . . , an )Z.
Berechnen Sie für (a1 , . . . , a4 ) := (60, 84, 140, 210) den ggT iterativ. Bestimmen Sie anschließend Koeffizienten
j
P
( j)
( j)
x i ∈ Z so dass für j = 2, . . . 4 gilt:
ai x i = ggT(a1 , . . . , a j ).
i=1
(4)
(4)
(4)
(4)
(b Begründen Sie, wieso für die obigen Werte für a1 , . . . , a4 alle Koeffizienten x 1 , x 2 , x 3 , x 4 der Linearkombination von Null verschieden sein müssen, um den ggT darzustellen.
Lösung.
(a) Es gilt:
g n Z = a1 Z + · · · + an−1 Z +an Z = gcd(g n−1 , an )Z = hn Z
{z
}
|
=g n−1 Z
Wegen g n ∈ g n Z = hn Z = {hn x : x ∈ Z} ist g n ein Vielfaches von hn . Analog gilt g n | hn und wegen g n , hn ≥ 0
(Definition des ggT) auch Gleichheit.
g2 = ggT(60, 84) = 12 = 3 · 60 − 2 · 84,
g3 = ggT(12, 140) = 4 = 12 · 12 − 1 · 140 = 12 · (3 · 60 − 2 · 84) − 1 · 140,
g4 = ggT(4, 210) = 2 = −52 · 4 + 1 · 210 = −52 · [12 · (3 · 60 − 2 · 84) − 1 · 140] + 1 · 210.
Damit erhält man g4 = 2 = −1872 · 60 + 1248 · 84 + 52 · 140 + 1 · 210.
(4)
(b) Wäre x j = 0 für ein j ∈ {1, . . . , 4}, so ließe sich die Zahl g4 = 2 bereits durch drei (oder noch weniger) der ai ’s
darstellen. Über die Primfaktorzerlegungen
a1
a2
a3
a4
=
=
=
=
60
84
140
210
=
=
=
=
2
2
2
2
·
·
·
2
2
2
·
·
·
3
3
3
·
5
·
·
5
5
·
·
·
7
7
7
erkennt man aber, dass deren ggT dann echt größer als 2 ist – Widerspruch.
2
H2 Größter gemeinsamer Teiler
Finden Sie eine Folge positiver ganzer Zahlen (ai )i≥1 ⊆ Z, so dass die Berechnung von ggT(ai+1 , ai ) mit dem Euklidischen
Algorithmus genau i Iterationen benötigt. Begründen Sie Ihr Ergebnis. Wie heißt diese berühmte Folge, die in internationalen Bestsellern wie “The Da Vinci Code” Erwähnung findet?
Lösung.
Die Lösung ist die Fibonacci-Folge in der jedes Glied die Summe der zwei vorrigen ist.
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, . . .
Bei zwei aufeinanderfolgenden Zahlen aus dieser Folge hat Euklids Algorithmus die schlecht-möglichste (englisch: worstcase) Laufzeit.
Zulässige Lösungen sind auch alle ganzzahligen Vielfache der Fibonacci-Folge.
3
Herunterladen