MGI - Übungsblatt 2 [Abgabe am Donnerstag, 6. November, zur

Werbung
MGI - Übungsblatt 2 [Abgabe am Donnerstag, 6. November, zur Vorlesung.]
Aufgabe 12. Zur Erinnerung: x mod y ergibt den Rest der ganzzahligen Division von x durch y. Zu
jedem Paar von ganzen Zahlen x,y mit y 6= 0 lassen sich in eindeutiger Weise zwei ganze Zahlen t und
r finden, so dass x = t ∗ y + r mit 0 ≤ r < y gilt. Dann ist genau x mod y = r.
Beispiel: Betrachten wir x = 14 und y = 3, dann gilt 14 = 4 ∗ 3 + 2, d.h. t = 4 und r = 2, also ist 14
mod 3 = 2.
(i) Bestimmen Sie:
1. 115 mod 33
2. (1718 ∗ 233) mod 23
3. 21116 mod 11
(ii) Seien a, b, c ∈ N, c > 0. Dann gilt: (a + b) mod c = (a mod c) + (b mod c) mod c
Hinweis: Sie können diese Aussage mit einem Beispiel belegen, aber nicht beweisen! Hier geht es aber
eben um einen Beweis, der alle denkbaren Fälle abdeckt (also abstrakt geführt werden muß)! Versuchen
Sie es! Schauen sie sich zur Vorbereitung die letzten beiden Folien der Vorlesung zu RSA an!
Aufgabe 13 (Public-Key-Schlüsselpaare).
Sie finden Public-Key-Kryptographie cool und möchten eine (sehr) kleine Nachricht verschlüsseln. Sie
wählen zunächst zwei kleine Primzahlen p = 13, q = 7. Daraus ergibt sich der sogenannte Modulus
n = p ∗ q = 13 ∗ 7 = 91.
Jetzt müssen sie zunächst die Anzahl der zu 91 teilerfremden Zahlen aus N, die kleiner sind, als 91,
bestimmen. Zur Erinnerung: Die 1 zählt mit. Also bestimmen sie TF(91) = _____ (in den Vorlesungsunterlagen ist eine einfache Formel zur Bestimmung dieser Zahl angegeben!).
Dann muß man nach einer Zahl e suchen, die zu TF(91) teilerfremd ist. Das wird z.B. von 77 erfüllt.
(i) Der erste Teil der Aufgabe ist es nun, d so zu bestimmen, dass ed mod TF(n) = 1 ist.
Dazu wird die folgende Beziehung verwendet (s. Vorlesung): der Rest 1 der Modulo-Operation ed mod
TF(91) läßt sich auch als Linearkombination d*77 + x*TF(91) = 1 bestimmen (denn ed mod TF(n) =
1 bedeutet ja, dass sich ed so durch TF(n) teilen läßt, dass ein Rest von 1 bleibt, es gibt also eine Zahl x,
mit der man TF(n) multiplizieren muß und anschließend eins addieren, um genau de zu erhalten. Wenn
man diese Formel umstellt und bedenkt, dass man x (oder d) auch negativ wählen kann, erhält man die
gezeigte Formel).
Diese Linearkombination kann man mittels Rückverfolgens des Ablaufs des GGT-Algorithmus erhalten. Unten ist ein Algorithmus angegeben, der bei der Bestimmung des größten gemeinsamen Teilers
zweier Zahlen die entsprechenden Informationen zur Bestimmung der gesuchten Linearkombination mitführt und ausgibt.
Vollziehen Sie den Ablauf des folgenden Algorithmus für die Eingaben 77 und TF(91) systematisch
nach und bestimmen sie so d. Verwenden Sie hierzu die vorgegebene Tabelle unten.
1
E RWEITERTER -E UCLID(a,b)
1:
if b = 0 then return (a, 1, 0)
2:
(t0 , x0 , d0 ) ← E RWEITERTER -E UCLID(b,a mod b)
3:
(t, x, d) ← (t0 , d0 , x0 − ba/bcd0 )
4:
return (t, x, d)
Der Algorithmus wird nun mit E RWEITERTER -E UCLID(TF(91),77) aufgerufen. Er gibt ein Zahlentrippel der Form (t, x, d) zurück. t steht hierbei für den GGT, der in unserem Fall immer 1 ist (weil wir
a =TF(91) = 72 und b = 77 teilerfremd gewählt haben). x ist der (unwichtige) Faktor vor TF(n), und d
ist die gesuchte Zahl. Übrigens kann d hierbei auch mal negativ werden (nicht in dieser Aufgabe), dass
erfordert dann eine Sonderfallbehandlung, die wir in der Übung besprechen werden.
Erläuterung: ba/bc ist der ganzzahlige Anteil der Division a/b, bei 5/4 = 1, 25 erhält man 1. Das
entspricht dem Resultat einer ganzzahligen Division in Java – es werden einfach die Nachkommastellen
abgeschnitten. Man nennt diese Operation auch floor.
Füllen sie den linken Teil der Tabelle von oben nach unten und dann den rechten Teil von unten
nach oben aus!
a
b
77
ba/bc
t
x
1
0
–
1
1
d
Die Schlüssel sind dann (e, n) und (d, n).
(ii) Ihre zweite Aufgabe ist es, m = 11 zunächst mit (e, n) zu verschlüsseln und dann mit (d, n) zu
entschlüsseln.
Um das tun zu können, müssen Sie mit ziemlich großen Zahlen umgehen – gehen sie hierzu wie in der
Vorlesung vor! Finden Sie also zunächst die Binärdarstellung des Exponenten (bzw. eine Zerlegung des
Exponenten in Zweierpotenzen), bilden dann die möglichen Faktoren 111 mod n, 112 mod n usw.
und dann das Produkt des “richtigen” Faktoren modulo n (hierbei können sie die modulo-Operation
jeweils auch zunächst auf Teile des Produktes anwenden).
[Die Quelle zum Algorithmus: Cormen, Leierson, Rivest (von RSA), Stein; Introduction to Algorithms; 2nd edition; MIT Press,
2001. Dort finden Sie auch Details zum RSA-Ablauf. Momentan das beste Standardwerk zu Algorithmik, vielleicht etwas für
den Gabentisch? (leider teuer).]
Bei Aufgabe 6 von Blatt 1 sind die Karten auf der einen Seite natürlich mit Regen oder Sonne beschriftet. Lösen sie das ruhig
nochmals.
2
Herunterladen