Vorherige Seite Nächste Seite Inhalt

2. Das RSA Verfahren

Das RSA Verfahren ist ein asymmetrisches Verfahren, da öffentlicher und privater Schlüssel unterschiedlich sind. Es ist ein Public-Key Verfahren, da die Entschlüsselungsfunktion durch den öffentlichen Schlüssel jedermann zugänglich gemacht wird die Verschlüsselungsfunktion, der private Schlüssel, geheim gehalten werden muß. Die beiden Funktionen sind so angelegt, daß ein unbekannter aus dem öffentlichen Schlüssel zwar grundsätzlich den privaten Schlüssel berechnen kann, diese Berechnung aber soviel Aufwand erfordert, daß die Berechnung selbst mit Computerunterstützung nicht in vernünftiger Zeit vollendet werden kann.

Der Vertrauenswürdige Dritte (Schlüsselvergabestelle) hat dabei folgende Aufgaben.

2.1 Algorithmus

Die Eulersche Funktion Phi(x):

Sie gibt für die natürliche Zahl x die Anzahl der zu x teilerfremden Zahlen an die kleiner sind als die Zahl x selbst.

Berechnungsbeispiel:

Phi(8)=4, da die Zahlen 1,3,5 und 7 keinen gemeinsamen Teiler mit 8 haben

Phi(18)=6, da die Zahlen 1,3,5,7,11 und 17 keinen gemeinsamen Teiler mit 18 haben

Sind p1 und p2 Primzahlen, so gilt speziell:

Phi(p1)=p1-1

Phi(p2)=p2-1

Phi(p1*p2)=(p2-1)(p1-1)

Satz von Euler:

Für zwei teilerfremde Zahlen a und b gilt die Beziehung:

aPhi(b)mod b=1

Wählt man speziell für b=p1*p2, dann gilt:

aPhi(p1*p2)mod p1*p2= a(p1-1)(p2-1)mod p1*p2= 1

2.2 Ablauf der Verschlüsselungs- und Entschlüsselungsfunktionen

Bemerkung: Nach [2] wird hier die Entschlüsselung mit dem privaten Schlüssel und die Verschlüsselung mit dem öffentlichen Schlüssel geleistet.

Ein (vorher in Zahlen umgewandelter) Klartext w wird verschlüsselt durch die Abbildung

V(w)=wemod n

mit dem öffentlichen Schlüssel (n, e).

Die Entschlüsselung leistet die Abbildung

E(w)=wdmod n

mit dem privaten Schlüssel (n, d) über den Schlüsseltext w.

Beispiel:

p=47, q=59, n=p*q=2773

und

Phi(n)=(p-1)*(q-1)=2668

Man wählt für e zwischen 1 und n und ggT(e, 2668)=1 z.B. die Zahl 17

für d wählt man die Zahl 157, da gilt: e*d=2669 und 2669 mod 2668=1.

Dadurch sind die Verschlüsselungs- und die Entschlüsselungsfunktion gegeben.

V(w)=wemod n=w17mod 2773

E(w)=wdmod n=w157mod 2773

Um den Text zu verschlüsseln müssen noch die Buchstaben in Zahlen umgewandelt werden.

Man setzt A=01 B=02, C=03 ... Leerzeichen = 00.

Das als Zahl dargestellte Wort wird anschließend in Blöcke gleicher Größe zerlegt, die getrennt verschlüsselt werden. Für die Blockgröße empfiehlt sich die Zahl i, für die gilt

10i-1<n<10i

Hier

103<2773<104

Die Zahldarstellung von "Wort" lautet z.B.

23151820

Zerlegung in Blöcke der Länge 4:

2315 1820

Durch Anwendung der Verschlüsselungsfunktion folgt für den Schlüsseltext

2639 2648

denn es gilt z.B.

3639=231517mod 2773

Mit Hilfe der Entschlüsselungsfunktion erhält man den Klartext zurück:

2315=2639157mod 2773

Die bei der Ver- und Entschlüsselung auftretenden hohen Potenzen brauchen nicht effektiv ausgerechnet zu werden. Es gibt Algorithmen , mit denen das Ergebnis indirekt berechnet werden kann(stochastischer Algorithmus).[2]

Da die Zahl e den öffentlichen Schlüssel darstellt und der Allgemeinheit bekannt gemacht wird, kann die Zahl e auch frei gewählt werden. Sinnvoller Weise wählt man den öffentlichen Schlüssel so, daß der Chiffrieraufwand klein ist. Eine sinnvolle Wahl ist z.B. e=216+1, da die Registerbreite von 16 bzw. 32 Bit Rechenzeitvorteile hat. Eine Benutzergruppe kann so beispielsweise denselben öffentlichen Schlüssel verwenden, ohne daß die Sicherheit dadurch in Gefahr wäre. Der öffentliche Schlüssel kann aber auch gesondert und als Geheimtext übermittelt werden, da das Verfahren sowohl für die Digitale Signatur als auch zur Schlüsselübermittlung funktioniert.

2.3 Unterschriften mit dem RSA-Verfahren und Einweg-Hashfunktionen

Beim obigen Beispiel sind alle Punkte für die Sicherheit erfüllt.

Diese Methode hat allerdings immer noch gravierende Nachteile:

Einweg-Hashfunktionen

Hier sind nur die wichtigsten Eigenschaften von Einweg-Hashfunktionten aufgeführt. Über das komplexe Gebiet gibt es im Rahmen dieser Semesterarbeit ein separates Kapitel.

Einweg-Hashfunktionen bilden den Klartext in einer Prüfsumme (Hash-Summe) ab.

Die Abbildung ist nicht umkehrbar.

Wird nur ein Zeichen des Klartextes verändert so entsteht eine andere Prüfsumme.

Es ist unmöglich für verschiedene Klartexte die gleichen Prüfsummen zu erzeugen.

Die Prüfsumme hat immer die gleiche Länge und ist wesentlich kleiner als der Klartext.

Es ist möglich mit einem Schlüssel auch individuelle Prüfsummen zu erzeugen.

Die Prüfsumme ist somit eine Art komprimierter Klartext.

Der Empfänger einer Nachricht kann mit der Prüfsumme und dem zugehörigen Schlüssel für die Hash-Funktion überprüfen ob das erhaltene Dokument während der Übertragung verändert wurde.

Die Übermittlung eines Dokument ist dann in folgende Schritte eingeteilt

Damit sind die obigen Nachteile ausgeschaltet:


Digitale Signatur mit RSA

2.4 Unterschriften mit dem RSA-Verfahren und öffentlichem Schlüsseltausch

In der Anwendung lassen sich viele Fälle finden, bei denen das chiffrieren des Klartextes zu einem Geheimtext erforderlich ist. Das unten aufgeführte Beispiel zeigt ein mögliches Protokoll, wie ein Dokument unleserlich über einen Datenkanal verschickt werden kann. Dabei müssen die öffentlichen Schlüssel der Partner ausgetauscht werden.

Das Protokoll hat folgenden Ablauf


Digitale Signatur und öffentlicher Schlüsseltausch mit RSA


Vorherige Seite Nächste Seite Inhalt