Guten Tag. Mein Name ist Bond... James Bond! Ich arbeite für den englischen Geheimdienst. Vor einiger Zeit stand ich vor einem größeren Problem, daß ich ihnen nun schildern möchte:
Wir befanden uns im Hauptquartier des MI6.
"Q, ich habe ein Problem. Können sie mir helfen? Die Russen fangen all unsere verschlüsselten Nachrichten ab und verfälschen sie. Doch ich brauche zuverlässige Informationen aus Rußland. Sie können auf große Teams von hervorragenden Kryptonalytikern zurückgreifen. So haben sie bis jetzt noch jeden von unseren Codes knacken können. Was können wir dagegen tun?"
Q antwortete mir: "Es gibt da ein Verfahren, das drei Landsmänner von uns 1982 entwickelt haben. Es heißt RSA. Und zwar ist es nach seinen Entwicklern benannt, nämlich Ronald Rivist, Adi Shamir und Leonard Adleman. Ihr System basierte auf dem Hellmann-Diffie-Merkle-Verfahren, daß zu diesem Zeitpunkt als eines der unentzifferbaren Systeme galt. Sie brachen das Sicherheitssystem und entwickelten ihr eigenes Kryptographie-Programm. Dieses RSA-Verfahren beruht auf einer sehr einfachen Idee. Stellen sich sich einfach vor 007, Sie schicken eine Kiste mit einem offenen Vorhängeschloß an unseren Kollegen. Dieser plaziert nun die Nachricht für Sie in der Kiste und verschließt sie mit dem mitgelieferten Vorhängeschloß. Der einzige, der den Schlüssel besitzt sind jedoch Sie. So brauchen Sie den Schlüssel nicht zu verschicken und gehen kein zusätzliches Risiko ein, daß ihr Code geknackt werden könnte. Aus diesen Gründen gilt RSA bislang als absolut sicher.
Und dies ist die Funktionsweise von RSA:
Man wählt zwei riesige Primzahlen p und q, die geheim sind und bildet daraus N mit N= p*q. Wenn N dann sehr groß ist, ergeben sich sehr viele Möglichkeiten für p und q.
Nun wählt man 1.) e, wobei e, (p-1) und (q-1) teilerfremd sein müssen und 2.) d, wobei sich d aus folgender Bedingung ergibt: e * d mod ((p-1)*(q-1)) =1. ["mod" gibt den Rest einer Division an]
Öffentlich bekannt sind nur N und e. Demnach sind also p, q und d geheim.
Als Klartext-Buchstabe wählt man nun beispielsweise M mit einem bestimmten Zahlenwert.
Das Schloß ist dann die mathematische Gleichung C= Me mod N.
Der Schlüssel hierfür, der nur dem Absender bekannt ist, ist die mathematische Gleichung M= Cd mod N.
Zum besseren Verständnis, möchte ich ihnen nun ein Beispiel vorrechnen. Also passen sie auf, 007:
Es sei p= 17 und q= 11
Daraus ergibt sich: N= p*q= 187 und (p-1)*(q-1)= 160.
Es muß gelten: e*d mod ((p-1)*(q-1))=1, also e*d= 161; wir wählen also: e= 7 und d= 23.
Als zu verschlüsselnden Buchstaben wählen wir M mit dem Zahlenwert 10.
Die Verschlüsselung sieht dann wie folgt aus:
C= Me mod N
==> C= 107 mod 187
<=> C= 175; das verschlüsselte M hat also den Zahlenwert 175.
Zur Entschlüsselung geht man folgendermaßen vor:
M= Cd mod N
==> M= C23 mod 187
<=> M= 10; so haben wir wieder unseren ursprünglichen Wert für M.
Nun, haben Sie alles verstanden, 007? Dann wünsche ich ihnen viel Erfolg in ihrer nächsten Mission. Auf Wiedersehen 007"...
Zur sicheren Verschlüsselung eines Textes mit RSA empfiehlt es sich jedoch, zwei Zahlen zu wählen, die größer sind, als die im oben genannten Beispiel verwendeten Zahlen, da es nicht lange dauern würde, diese zu ermitteln. In Wirklichkeit verwendete man zwei Primzahlen, die jeweils ca. hundert Stellen hatten. Eine Entschlüsselung schien so lange Zeit unmöglich. Doch nach einer gewissen Zeit war auch RSA nicht mehr unentzifferbar. Durch das Internet wurden auf der ganzen Welt eine große Anzahl Computer miteinander vernetzt und teilten sich somit die Arbeit der Berechnung des Schlüssels. Auf diese Weise war und ist RSA in kurzer Zeit zu knacken. Dieser Fall ist wiedereinmal ein Beispiel dafür, daß kein Code eine Ewigkeitsgarantie hat. Es erfordert nur die speziellen Methoden um ihn zu knacken.
Ich hoffe, wir konnten ihnen hier den Nutzen und die Funktionsweise von RSA etwas näher bringen.