RSA Aufgaben

Aus ProgrammingWiki
Archivierte Version vom 2021-01-24T11:38:59+00:00. Aktuelle Version

    Für das Verschlüsseln der Nachricht M zum chiffrierten Text C gilt: C = M^e(mod N)

    Für das Dechiffrieren von C in die Ausgangsnachricht M gilt: M = C^d(mod N)



Aufgabe 1

Alice wählt zwei verschiedene Primzahlen p = 5 und q = 11.

Gib N an:

(Texteinträge wieder in " " schreiben)


Ermittle (p-1)*(q-1) und eine dazu teilerfremde Zahl e des öffentlichen Schlüssels:


Hier nun den öffentlichen Schlüssel (e, N) angeben:


Bob will an Alice nun die Nachricht M = 8 schicken. (Wir vernachläsigen die Umwandlung der Buchstaben per Ascii-Code und verwenden gleich Zahlen).

Wir erhalten C:

Diese verschlüsselte Nachricht C schickt Bob an Alice. Alice kann nun mit Ihrem geheimen, privaten Schlüssel (d, N) die NAchricht C entschlüsseln, also die von Bob geschickte Klarnachricht M lesen. Ihr d hat sie bereits ermittel aus d*e = 1 mod ((p - 1)*(q - 1)): (Die obigen Ergebnisse einsetzen und d ermitteln. Dazu hilft Probieren, eine Tabelle auf einem Zettel und das im Kopf bilden von passenden Vielfachen, bis sich der Rest 1 ergibt. Dieses d wäre das Richtige.)


Alice hat einen öffentlichen Schlüssel wie folgt gewählt: Die Primzahlen seien p=17 und q=11. Damit ist N=187, für e wird 7 gewählt. Dieser Schlüssel wird veröffentlicht.
Es soll die Nachricht XMAS gesendet werden. Dazu müssen die Buchstaben in ASCII-Code umgewandelt werden.

Betrachten wir zunächst das X, so wird diese in ASCII durch 1011000 dargestellt. Dies entspricht der Dezimalzahl 88, damit sei die (Teil-)Nachricht M=88.
Ascii-Listen finden sich z.B. unter http://www.torsten-horn.de/techdocs/ascii.htm oder http://www.asciitable.com/

Für die Verschlüsselung ergibt sich nun C = 88^7(mod 187) Dies ist 11 (nachprüfen!), damit schickt Bob die geheime Nachricht C=11 an Alice.

Nur wer die passenden Primzahlen kennt, mit denen der öffentliche Schlüssel erzeugt wurde, kann die Botschaft entschlüsseln. Das ist allein Alice.
Ihr privater Schlüssel folgt aus
d*e = 1 mod ((p - 1)*(q - 1))
d*7 = 1 mod (16*10)
d*7 = 1 mod (160))
d = 23, weil 23*7 = 161(!?)

Nun braucht nur noch die Nachricht entschlüsselt werden: M = C^d(mod N)
M = 11^{23}(mod 187)
M = 88 = X.