Zuerst werde ich auf die Schlüsselerzeugung eingehen, damit später das eigentliche Ver- und Entschlüsseln einfacher zu verstehen ist.
Es werden neben dem Klartext und dem Chiffretext noch folgende Schlüssel gebraucht: N (der Modulus (öffentlich)), E (der öffentliche Schlüssel) und D (der private Schlüssel).
Schritt 1: Finden von zwei Primzahlen:
Wir benötigen zwei Primzahlen (P und Q), die für eine sinnvolle Verschlüsselung mindestens 512 Bit groß sein sollten (das sind Zahlen ab 2512, also Zahlen mit mehr als 100 Stellen)
Es bieten sich verschiedene Möglichkeiten an, um Primzahlen, also Zahlen für die bekanntlich gilt, zu berechnen. Es werden aber nur Methoden eingesetzt, die nicht alle Primzahlen von 1 bis n sicher ausgeben, sondern welche, die die Wahrscheinlichkeit ob eine Zahl Prim ist, berechnen. Das liegt an der Größe der benötigten Zahlen. Ein Beispiel für so eine Methode ist der ,Miller-Rabin-Test' (Frische Axel: "RSA". Seminararbeit. FH Giessen-Friedberg. 10.04.2003. S.13.). Er liefert pro Durchlauf eine Wahrscheinlichkeit von 50%, dass eine Zahl Prim ist. So ist nach mehreren Durchläufen die Möglichkeit, dass die Zahl doch keine Primzahl ist, verschwindend gering.
Schritt 2: Finden des öffentlichen Schlüssels E
Die Zahl E kann unter folgenden Bedingungen frei gewählt werden:
· E muss kleiner als das Produkt von Q und P sein
· E muss teilerfremd zu dem Produkt (P-1)(Q-1) sein
· E muss ungerade sein
Schritt 3: Berechnung des Modulus (N)
Der Modulus, N genannt, wird aus dem Produkt von P und Q berechnet. Also N=P*Q.
Schritt 4: Berechnung des geheimen Schlüssels D
Bedingung für den geheimen Schlüssel D ist, dass (DE-1) ohne Rest durch (P-1)(Q-1) teilbar sein muss. Mathematisch ausgedrückt ergibt sich folgende Vorschrift: D*E=1 (mod((P-1)(Q-1))). Zur Berechnung der Zahl eignet sich aber die umgestellt Variante D=(X(P-1)(Q-1)+1)/E mit zwei Unbekannten am besten. Hier wird X (Element der natürlichen Zahlen) solange neu gewählt, bis D auch eine Zahl im natürlichem Bereich ergibt. Dann ist der geheime Schlüssel D berechnet.
Die Hilfsvariablen P und Q müssen nun gelöscht werden, da sie nicht mehr benötigt werden. Dies ist nötig, weil sich aus diesen Primzahlen leicht die Schlüssel errechnen lassen, was ein Sicherheitsrisiko darstellt.
(vgl. Frische Axel: "RSA". Seminararbeit. FH Giessen-Friedberg. 10.04.2003. S.5 f.)
Die Ver- und Entschlüsselung:
Das Ver- und Entschlüsseln stellt nun das geringste Problem dar. Aber es muss beachtet werden, dass man keine Zeichen verschlüsselt, sondern Zahlen. Das ist aber nur oberflächlich ein Problem, denn computerintern haben alle Buchstaben ein Zahlenäquivalent (ASCII-Code), welches sich verschlüsseln lässt. Folgende Formeln beschreiben den Vorgang:
C=KE mod N (verschlüsseln)
K=CD mod N (entschlüsseln)
Hierbei ist C der Chiffre- und K der Klartext. Um größere Texte zu verschlüsseln, muss der Text in Blöcke aufgeteilt werden, die kleiner als N sein müssen (wie gesagt, wurde vorher der Text in Zahlenreihen umgewandelt - sonst könnte man auch Buchstabe nicht mit Zahlen (hier N) vergleichen).
(vgl. Frische Axel: "RSA". Seminararbeit. FH Giessen-Friedberg. 10.04.2003. S.8 f.)
|