¨Ubungen zu Theoretische Informatik 3

Werbung
Prof. Dr. V. Strehl, Informatik 8
WS 2007/08
15. Januar 2008
Übungen zu Theoretische Informatik 3
Si fuerit N ad x numerus primes et n numerus partium an N primarum, tum potestas xn unitate minuta semper per numerum N erit
divisibilis.
L. Euler, “Theoremata arithmetica nova methodo demonstrata”,
Novi comentarii academiae scientiarum Petropolitanae 8 (1760), 74–104.
• Aufgabe 34: Verschlüsselung und RSA-System
In dieser Aufgabe seien die 26 Buchstaben des Alphabets mit den numerischen Werten von 0 bis
25 codiert, also A ↔ 00, B ↔ 01, C ↔ 02, . . . , Z ↔ 25. Je drei Buchstaben einer Text-Nachricht
werden zusammengefasst, ergeben also eine sechsstellige Dezimalzahl. Eine Nachricht wird also
als Folge von sechstelligen Zahlen codiert, also z.B. FAU ↔ 050020. Sollte die Buchstaben-Länge
einer Nachricht nicht durch 3 teilbar sein, wird mit ein oder zwei beliebigen Zeichen aufgefüllt.
1. Die Zahl p = 4578971 ist eine Primzahl. Weiter werde der Exponent e = 3317271 zum Verschlüsseln benutzt, d.h E : M 7→ M e (mod p) für Zahlen M mit 0 ≤ M < p. Verschlüsselt
werden also jeweils Blöcke von 7 Dezimalzahlen übertragen, die eine Zahl < p darstellen.
Entschlüsseln Sie die verschlüsselte Nachricht
4137884 438421 3227477 233970
2. Ein Teilnehmer an einem public-key RSA-Kryptosystem hat seine Systemparameter p =
1733, q = 2347, also n = 4067351 gewählt. Als Verschlüsselungsexponenten gibt er e = 31
öffentlich bekannt.
(a) Welches ist der Entschlüsselungsexponent d?
(b) Der Teilnehmer erhält die Nachricht
2721372 3969831 2416419 1795753 2110079 0242624 0889174
Wie lautet der Klartext?
• Aufgabe 35: Eine Variante des RSA-Systems
Die hier beschriebene Variante des RSA.-Kryptosystems ist in der Tat ein Vorläufer, nämlich
das von James Ellis und Clifford Cocke vom britischen Nachrichtendienst GCHQ entwickelte
Protokoll. Wie üblich geht es darum, dass jede(r) Teilnehmer(in) (Alice, Bob, Claire, . . . )
für sich Daten berechnet und diese teilweise öffentlich bekannt gibt. Diese öffentlichen Daten
sind für die Verschlüsselung zu verwenden, wenn man ihm/ihr geheimzuhaltende Nachrichten
schicken will. Die von dem Teilnehmer privat gehaltenen Daten werden bei der Entschlüsselung
verwendet. Es geht bei der folgenden Beschreibung wie üblich um die Nachrichtenübertragung
von Alice and Bob.
– Bob
1. wählt zwei (grosse) Primzahlen p, q, wobei p - q − 1 und q - p − 1;
2. berechnet r = p−1 mod (q − 1), s = q −1 mod (p − 1), u = p−1 mod q, v = q −1 mod p;
3. berechnet N = p · q, gibt N öffentlich bekannt und hält (p, q, r, s, u, v) als private Daten
geheim.
1
– Alice
will eine Nachricht an Bob schicken. Sie codiert diese Nachricht numerisch als eine Folge
von Zahlen M mit 0 ≤ M < N , berechnet jeweils
C = M N mod N
und schickt C an Bob.
– Bob
nimmt die empfangene Zahl C, berechnet zunächst
a = C s mod p und b = C r mod q
und dann
M 0 = u · b · p + v · a · q mod N
1. Bob wählt p = 5, q = 7. Berechnen Sie die übrigen Parameter N, r, s, u, v für Bob. Welche
verschlüsselte Nachricht C schickt Alice and Bob, wenn sie ihm M = 10 mitteilen möchte?
Vollziehen Sie Bobs Entschlüsselung in diesem Fall nach.
2. Beweisen Sie, dass dieses Protokoll korrekt ist, d.h., dass stets M 0 = M gilt.
3. Diskutieren Sie die Effizienz und die Sicherheit dieses Protokolls!
Aufgabe 36: Eine RSA-Schwachstelle
Bob hat RSA-Parameter (N, e) öffentlich bekanntgegeben. Alice möchte an Bob eine Nachricht
M mit 0 ≤ M < N schicken. Dummerweise ist ihr beim Lesen des Verschlüsselungsexponenten
0
e ein einzelnes bit gekippt, was sie aber nicht bemerkt. Sie schickt also C 0 = M e mod N an
Bob. Der bemerkt beim Entschlüsseln, dass da etwas nicht stimmen kann und bittet Alice,
die Nachricht nochmal, aber mit der korrekten Verschlüsselung zu schicken. Alice macht das,
berechnet also C = M e mod N und schickt dies an Bob. Eve bekommt mit, dass Bob zweimal
dieselbe (!) Nachricht M verschlüsselt und an Bob geschickt hat. Wie kann sie aus der Kenntnis
von C und C 0 die Nachricht M ermitteln?
2
Herunterladen