Das RSA - Verfahren


RSA - Steht für Rivest, Shamir und Adleman

Das RSA - Verfahren ist ein öffentliches Verschlüsselungsverfahren. Es werden wichtige Algorithmen der Linearen Algebra angewandt um Nachrichten zu Ver- und Entschlüsseln.



Man unterteilt das RSA - Verfahren in verschiedene Schritte, was nun auch den Aufbau dieser Erläuterung bestimmt.

Bob wird nun schrittweise eine Nachricht verschlüssln und an Alice schicken, welche diese Nachricht entschlüsseln wird. Dadurch werde ich das Verfahren Schritt für Schritt erklären.

Schritt 1:

Als erstes überlegt sich Bob, was er denn verschlüsseln möchte, und nimmt als Beispiel das Wort Informatik. Beim RSA - Verfahren wird nie ein gesamtes Wort komplett verschlüsselt, sondern immer nur die einzelnen Buchstaben nacheinander.
Grundsätzlich wird jedem Buchstaben ein Zahlenwert zugewiesen. Bob legt sich nun folgendes Alphabet zurecht, welches auch für Alice gelten wird, wie wir später noch sehen werden.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26


Nun ist die Rechenformel für die RSA Verschlüsselung wichtig:

C = Pk mod n

Jetzt weiß Bob, was er noch für die Berechnung benötigt, da er anhand der Gleichung folgendes in erfahrung gebracht hat:

n = Modul
P = Klartext
C = Verschlüsselter Text
k = Öffentlicher Schlüssel

Der Modul setzt sich immer aus dem Produkt zweier großer Primzahlen zusammen, hier wählt Bob 31 * 17 und erhält einen Modul von 527. Zugleich muß er noch ein φ(n) ausrechnen, welches er für die Bestimmung des Schlüssels braucht. φ(n) berechnet Bob, indem er die beiden Primfaktoren um 1 mindert und das Produkt bildet, also 16 * 30 = 480.
Nachdem er jetzt das φ(n) berechent hat, sucht er sich eine Zahl, die Teilerfremd zum φ(n) ist, also eine Zahl, die mit φ(n) den größten geimeinsamen Teiler 1 hat. Nach möglichkeit sollte diese Zahl keine Primzahl sein, aber manchmal gibt es keine andere Zahl die man verwenden kann. Bob entscheidet sich für die 13 und erhält nun als Schlüsselpaar (527, 13).

Er verschlüsselt jetzt den ersten Buchstaben von Informatik, das I, welches im Alphabet als 9 steht.

C = 9527 mod 13 = 297

Schritt 2:

Jetzt hat Bob die verschlüsselte Nachricht und das öffentliche Schlüsselpaar (527, 13) an Alice geschickt. Alice muss für sich jetzt den Privaten Schlüssel ausrechen, damit sie die Nachricht entschlüsseln kann.

Zunächst muss Alice die 527, also den Modul, in Primfaktoren zerlegen. Da sie weiß, dass beim RSA - Verfahren nur 2 Primfaktoren als Ergebnis herauskommen dürfen, diviert sie die 527 zuerst durch die kleinste Primzahl und prüft, ob das Ergebnis eine ganze Zahl ist. Wenn nicht, dividiert sie 527 durch die nächst höhere Primzahl bis dann irgendwann ein ganzzahliges Ergebnis rauskommt. Dieses Ergebnis ist dann gleichzeitig auch der 2. Primfaktor. Bei 527 lautet also die Faktoren 17 und 31. Nun wird φ(n) ausgerechnet, indem man einfach nach der Formel:

(p - 1) * (q - 1) = φ(n)

Also: (17 - 1) * (31 - 1) = 480

Da jetzt φ(n) und der öffentliche Schlüssel bekannt ist, können wir jetzt über den erweiterten Euklidischen Algorithmus den privaten ("geheimen") Schlüssel ausrechen.

480 = 36 * 13 + 12
13 = 1 * 12 + 1


1 = 13 - 1 * 12
1 = 13 - 1 * ( 480 - 36 * 13)

Die Klammer wird jetzt aufgelöst, und man sieht schon, das die 36 * 13 + 13 gleich 37 * 13 ist.
Jetzt hat Alice den Schlüssel, nämlich die 37, und kann nun entschlüsseln, nach der Formel:

P = Cg mod n

g = 37