In der heutigen Übung
behandeln wir das RSA-Kryptosystem. Das RSA (Rivest, Shamir und Adleman) ist
ein asymmetrisches kryptographisches Verfahren. Es kann sowohl zur
Verschlüsselung als auch zur digitalen Signatur verwendet werden. Es verwendet
hierbei zwei Schlüssel, ein privater Schlüssel, zum Entschlüsseln oder
Signieren von Daten und einem öffentlichen Schlüssel, mit dem man verschlüsselt
oder Signaturen prüft.
Erzeugung des
öffentlichen und privaten Schlüssels
Der öffentliche
Schlüssel (public key) ist ein Zahlenpaar (e, N) und der private Schlüssel
(private key) ein Zahlenpaar (d, N). N ist bei beiden Schlüsseln gleich. N wird
das RSA-Modul genannt, e ist der Verschlüsselungsexponent und d wird als
Entschlüsselungsexponent bezeichnet.
Erzeugung der Zahlen am Beispiel Alice und Bob:
- Alice wählt zwei verschiedene Primzahlen p und q. Diese sollen die gleiche Größenordnung haben, aber nicht zu nah beieinander liegen.
- Alice berechnet das RSA-Modul: N = p*q
- Zusätzlich die Eulersche φ-Funktion von N: φ(N) = (p-1)*(q-1)
- Alice wählt eine Zahl e, die zu φ(N) teilerfremd ist
- Alice berechnet den Entschlüsselungsexponenten d
Verschlüsseln einer Nachricht:
Um eine
Nachricht m zu verschlüsseln, verwendet der Absender (in unserem Fall Bob)
die Formel
c = me (mod
N)
und erhält so aus
der Nachricht m den Geheimtext c. Die Zahl m muss dabei kleiner sein als der
RSA-Modul N.
Entschlüsseln von Nachrichten:
Der Geheimtext c kann
durch modulare
Exponentiation wieder
zum Klartext m entschlüsselt werden. Der Empfänger also Alice benutzt
die Formel
M = cd (mod
N)
mit dem nur ihm
bekannten Wert d sowie N.
Beispiel:
Nun wird ein einfaches Bespiel
gezeigt. Dabei wird die Zahl 17 von Bob verschlüsselt.
Als Erstes Alice wählt
zwei Primzahlen z.B. 11 und 23 und berechnet das RSA-Modul N.
N = p*q = 11 *23 = 253
Zusätzlich rechnet
Alice die Eulersche φ-Funktion von N aus.
φ(N) = (p-1)*(q-1) =
(11-1)*(23-1)=10*22= 220
Alice wählt eine Zahl
e, die zu φ(N) teilerfremd ist. Es ist eine zufällige Zahl.
z.B. e=81
Um eine
Nachricht m zu verschlüsseln, verwendet der Absender, also Bob die Formel:
c = me (mod N) = 1781
mod 253 = 61
Das Ergebnis des
Verschlüsselns der Zahl 17 ergibt in Bobs Fall 61. Alice muss nun den berechneten
Entschlüsselungsexponenten d anwenden, um die verschlüsselten Zahl zu entschlüsseln.
Dies geschieht mit der oben genannten Formel M = cd (mod N). Nun weiß Alice die von Bob gesendete geheime Zahl.
Wo wird
dieses Kryptosystem eingesetzt?
Anwendungsgebiete:
- Internet- und Telefonie-Infrastruktur: X.509-Zertifikate
- Übertragungs-Protokolle: IPSec, TLS, SSH, WASTE
- E-Mail-Verschlüsselung: PGP, S/MIME
- Authentifizierung französischer Telefonkarten
- Kartenzahlung: EMV
- RFID Chip auf dem deutschen Reisepass
- Electronic Banking: HBCI
Wie steht es
mit der Verschlüsselungsgeschwindigkeit gegenüber AES? Was
wird gemacht, um die Geschwindigkeit zu erhöhen?
Verschlüsselungsgeschwindigkeit:
RSA ist im Vergleich zu Verfahren wie 3DES und AES mindestens um den Faktor 1000
langsamer. In der Praxis wird RSA daher meist nur zum Austausch eines
Schlüssels für die symmetrische Verschlüsselung benutzt. Für die Verschlüsselung der
Daten werden dann symmetrische Verfahren eingesetzt. Damit sind die Vorteile
beider Systeme vereint: einfacher Schlüsselaustausch und effiziente
Verschlüsselung. Diese Verfahren nennt man Hybride Verfahren.
Quelle:
http://sourceblogging.de/einfuehrung-in-die-verschluesselung/
Wie lange
müssen die Schlüssel sein, damit das Verfahren nach derzeitigem Wissen sicher
ist?
Schlüssellängen:
Es gibt unterschiedliche Aussagen zum
Sicherheitsniveau bestimmter Schlüssellängen. Eine Mindestlänge von 1976 Bit
ist laut Bundesnetzagentur für RSA-basierte Signaturen bis 2020 geeignet.
Empfohlen wird eine Länge von 2048 Bit.
Quelle: