RSA-Kryptosystem

RSA (Rivest–Shamir–Adleman) ist ein asymmetrisches kryptographisches Verfahren, das sowohl zum Verschlüsseln als auch zum digitalen Signieren verwendet werden kann.[1] Es verwendet ein Schlüsselpaar, bestehend aus einem privaten Schlüssel, der zum Entschlüsseln oder Signieren von Daten verwendet wird, und einem öffentlichen Schlüssel, mit dem man verschlüsselt oder Signaturen prüft. Der private Schlüssel wird geheim gehalten und kann nicht mit realistischem Aufwand aus dem öffentlichen Schlüssel berechnet werden.

Quelle: Wikipedia-Autoren. (2002, 3. Juni). RSA-Kryptosystem. https://de.wikipedia.org/wiki/RSA-Kryptosystem

Kennenlernen des Grundprinzips

Das RSA-Verfahren bedient sich des Prinzips der Modularen Potenzierung.

Implementierung des RSA-Algorithmus

Schlüsselgenerierung
  • wähle 2 Primzahlen p und q
  • berechne
    • n = p * q
    • phi(n) = (p – 1) * (q – 1)
  • wähle e mit
    • 1 < e < phi(n) und
    • ggT(e, phi(n)) = 1
  • bestimme d mit
    • d * e mod phi(n) = 1
    • löse mit erw. Euklidischen Algorithmus für d und k: d * e + k * phi(n) = 1
Kodierung/Dekodierung
  • in der Realität sind p und q sehr groß
  • Schlüssel:
    • öffentlicher Schlüssel: (e, n)
    • privater Schlüssel: (d, n)
  • Verschlüsselung:
    • g_char = k_char^e mod n
  • Entschlüsselung:
    • k_char = g_char^d mod n
  • Legende:
    • g_char := Geheimtext-Zeichen
    • k_char := Klartext-Zeichen

Berechnung des Multiplikativen Inversen der Zahl e modulo n

Florian Dalwigk. (2023, 16. Juli). Multiplikatives Inverses modulo berechnen (Beispiel 1) [Video]. YouTube. https://www.youtube.com/watch?v=l_eIF61uTN0

Ausblick

Die oben durchgeführte Implementierung ist stark vereinfacht. Für einen tieferen Einblick in die Welt des RSA-Kryptosystems können Sie hier nachlesen und ausprobieren:
https://inf-schule.de/kryptologie/rsa/modpotenz/station_kryptosystem