Dienstag, 28. Oktober 2014

RSA-Kryptosystem

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:


  1. Alice wählt zwei verschiedene Primzahlen p und q. Diese sollen die gleiche Größenordnung haben, aber nicht zu nah beieinander liegen.
  2. Alice berechnet das RSA-Modul: N = p*q
  3. Zusätzlich die Eulersche φ-Funktion von N: φ(N) = (p-1)*(q-1)
  4. Alice wählt eine Zahl e, die zu φ(N) teilerfremd ist
  5. 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:

Keine Kommentare:

Kommentar veröffentlichen