RSA-Verschlüsselungsrechner
Berechnen Sie RSA-Verschlüsselung und -Entschlüsselung mit diesem interaktiven Tool. Geben Sie Ihre Parameter ein und sehen Sie die Ergebnisse in Echtzeit.
Ergebnisse
Umfassender Leitfaden zur RSA-Verschlüsselung: Mathematik, Anwendung und Sicherheit
Die RSA-Verschlüsselung (benannt nach ihren Erfindern Rivest, Shamir und Adleman) ist eines der wichtigsten Public-Key-Verschlüsselungsverfahren in der modernen Kryptographie. Dieser Leitfaden erklärt die mathematischen Grundlagen, praktische Anwendungen und Sicherheitsaspekte von RSA – inklusive eines interaktiven Rechners zur Veranschaulichung.
1. Mathematische Grundlagen der RSA-Verschlüsselung
RSA basiert auf folgenden mathematischen Konzepten:
- Primzahlen: Große Primzahlen (typischerweise 1024 Bit oder mehr) bilden die Grundlage für die Schlüsselgenerierung.
- Modulare Arithmetik: Berechnungen werden modulo n durchgeführt, wobei n das Produkt zweier Primzahlen ist.
- Eulersche Totient-Funktion φ(n): Gibt die Anzahl der zu n teilerfremden Zahlen an, die kleiner als n sind.
- Modulare Exponentiation: Ermöglicht effiziente Berechnung großer Potenzen modulo n.
| Mathematisches Konzept | Formel | Beispiel (p=61, q=53) |
|---|---|---|
| Modul n | n = p × q | 3233 |
| Eulersche Totient-Funktion | φ(n) = (p-1)(q-1) | 3120 |
| Öffentlicher Exponent | e (teilerfremd zu φ(n)) | 17 |
| Privat Exponent | d ≡ e⁻¹ mod φ(n) | 2753 |
2. Schritt-für-Schritt RSA-Algorithmus
- Schlüsselgenerierung:
- Wähle zwei große Primzahlen p und q
- Berechne n = p × q
- Berechne φ(n) = (p-1)(q-1)
- Wähle e mit 1 < e < φ(n) und ggt(e, φ(n)) = 1
- Berechne d ≡ e⁻¹ mod φ(n)
- Öffentlicher Schlüssel: (e, n)
- Privat Schlüssel: (d, n)
- Verschlüsselung:
Gegeben eine Nachricht M (als Zahl): C ≡ Mᵉ mod n
- Entschlüsselung:
Gegeben einen Chiffretext C: M ≡ Cᵈ mod n
3. Sicherheitsaspekte und Angriffsvektoren
Die Sicherheit von RSA basiert auf der praktischen Unlösbarkeit folgender Probleme:
- Faktorisierung großer Zahlen: Das Zerlegen von n in p und q ist für große Zahlen (2048+ Bit) mit aktuellen Methoden nicht effizient möglich.
- RSA-Problem:
| Schlüssellänge (Bit) | Sicherheitsniveau (2023) | Äquivalente symmetrische Schlüssel | Faktorisierungsaufwand |
|---|---|---|---|
| 1024 | Unsicher (deprecated) | 80 Bit | ~1000 MIPS-Jahre |
| 2048 | Sicher bis ~2030 | 112 Bit | ~10¹⁴ MIPS-Jahre |
| 3072 | Sicher bis ~2040 | 128 Bit | ~10¹⁷ MIPS-Jahre |
| 4096 | Langzeitsicherheit | 192 Bit | ~10²¹ MIPS-Jahre |
Laut den NIST-Richtlinien (National Institute of Standards and Technology) sollten neue Anwendungen mindestens 2048-Bit-RSA-Schlüssel verwenden, mit einem Übergang zu 3072 Bit für langfristige Sicherheit.
4. Praktische Anwendungen von RSA
RSA wird in zahlreichen Sicherheitsprotokollen eingesetzt:
- TLS/SSL: Sichere Kommunikation im Web (HTTPS)
- PGP/GPG: E-Mail-Verschlüsselung
- SSH: Sichere Remote-Zugriffe
- Digitale Signaturen: Authentizität und Integrität
- Blockchain: Kryptographische Sicherung von Transaktionen
Ein interessanter Anwendungsfall ist die hybride Verschlüsselung, bei der RSA zum sicheren Austausch eines symmetrischen Schlüssels (z.B. AES) verwendet wird, während die eigentlichen Daten mit dem schnelleren symmetrischen Verfahren verschlüsselt werden.
5. Performance-Überlegungen
RSA-Operationen sind rechnerisch aufwendig im Vergleich zu symmetrischen Verfahren:
- Verschlüsselung/Entschlüsselung: O(k³) mit modularer Exponentiation (k = Schlüssellänge in Bit)
- Schlüsselgenerierung: Primzahltests (Miller-Rabin) sind aufwendig
- Optimierungen:
- Chinese Remainder Theorem (CRT) für schnellere Entschlüsselung
- Vorkompilierte Primzahltabellen für kleine Schlüssel
- Hardware-Beschleunigung (z.B. Intel AES-NI für symmetrische Teile)
Für eine detaillierte Analyse der kryptographischen Komplexität empfiehlt sich das Handbook of Applied Cryptography der University of Waterloo.
6. Vergleich mit anderen Verschlüsselungsverfahren
| Kriterium | RSA | ECC (Elliptic Curve) | AES (symmetrisch) |
|---|---|---|---|
| Schlüssellänge für 128-Bit-Sicherheit | 3072 Bit | 256 Bit | 128 Bit |
| Verschlüsselungsgeschwindigkeit | Langsam (~1000x langsamer als AES) | Mittel (schneller als RSA) | Sehr schnell |
| Schlüsselverteilung | Einfach (Public Key) | Einfach (Public Key) | Komplex (geheimer Schlüssel) |
| Signaturgröße | Groß (2048+ Bit) | Klein (256-521 Bit) | Nicht anwendbar |
| Quantensicherheit | Unsicher (Shors Algorithmus) | Unsicher (Shors Algorithmus) | Unsicher (Grovers Algorithmus) |
Für post-quantum-sichere Alternativen untersucht das NIST Post-Quantum Cryptography Project neue Algorithmen wie CRYSTALS-Kyber und CRYSTALS-Dilithium.
7. Implementierungstipps für Entwickler
Bei der Implementierung von RSA sollten folgende Best Practices beachtet werden:
- Niemals eigene Krypto implementieren: Verwenden Sie etablierte Bibliotheken wie OpenSSL, Bouncy Castle oder die Web Crypto API.
- Sichere Parameter wählen:
- Mindestens 2048-Bit-Schlüssel (besser 3072)
- Standard-e-Werte verwenden (65537)
- Primzahlen mit ausreichender Größe und Zufälligkeit
- Side-Channel-Angriffe verhindern:
- Konstantzeit-Implementierungen verwenden
- Timing-Angriffe durch Padding verhindern
- Blinding-Techniken gegen Fault Attacks
- Ordentliche Padding-Schemata: Immer OAEP (Optimal Asymmetric Encryption Padding) statt PKCS#1 v1.5 verwenden.
- Schlüsselmanagement:
- Private Schlüssel sicher speichern (HSMs für hohe Sicherheit)
- Regelmäßige Schlüsselrotation
- Zugangskontrollen und Audit-Logs
8. Zukunft der RSA-Verschlüsselung
Mit dem Aufkommen von Quantencomputern steht RSA vor großen Herausforderungen:
- Shors Algorithmus: Kann RSA in polynomieller Zeit brechen (bei ausreichend großen Quantencomputern)
- Übergangsstrategien:
- Hybride Systeme (RSA + Post-Quantum)
- Längere Schlüssel als Übergangslösung
- Migration zu Post-Quantum-Algorithmen
- NIST-Standardisierung: Neue Post-Quantum-Standards werden voraussichtlich 2024 finalisiert
Die NSA empfiehlt bereits heute die Vorbereitung auf den Übergang zu quantenresistenten Algorithmen.
9. Häufige Fehler und wie man sie vermeidet
- Zu kleine Schlüssel:
Verwenden Sie niemals RSA-Schlüssel unter 2048 Bit. 1024-Bit-Schlüssel gelten seit 2013 als unsicher.
- Ungeeignete e-Werte:
Vermeiden Sie kleine e-Werte (wie 3), da diese anfällig für Angriffe sind. 65537 ist der empfohlene Standard.
- Fehlendes Padding:
Roh-RSA (ohne Padding) ist unsicher. Immer OAEP oder PKCS#1 v2.1 verwenden.
- Wiederverwendung von Nonces:
Bei RSA-Signaturen niemals denselben Zufallswert zweimal verwenden (vgl. Sony PS3-Hack 2010).
- Unsichere Zufallsgeneratoren:
Verwenden Sie kryptographisch sichere PRNGs wie /dev/urandom oder die Web Crypto API.
10. RSA in der Praxis: Ein Beispiel
Nehmen wir an, Alice möchte Bob eine sichere Nachricht senden:
- Schlüsselgenerierung:
Bob generiert p=61, q=53 → n=3233, φ(n)=3120
Wählt e=17, berechnet d=2753
Öffentlicher Schlüssel: (17, 3233)
Privat Schlüssel: (2753, 3233)
- Verschlüsselung:
Alice möchte M=42 senden
Berechnet C = 42¹⁷ mod 3233 = 2557
Sendet 2557 an Bob
- Entschlüsselung:
Bob berechnet M = 2557²⁷⁵³ mod 3233 = 42
Erhält die originale Nachricht
Dieses einfache Beispiel veranschaulicht das Prinzip, in der Praxis werden jedoch viel größere Zahlen verwendet (mindestens 2048 Bit).
11. Tools und Ressourcen für RSA
- OpenSSL: Befehlszeilen-Tool für RSA-Operationen
# Schlüsselgenerierung openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048 # Verschlüsseln mit öffentlichem Schlüssel openssl pkeyutl -encrypt -pubin -inkey public_key.pem -in plaintext.txt -out ciphertext.bin # Entschlüsseln mit privatem Schlüssel openssl pkeyutl -decrypt -inkey private_key.pem -in ciphertext.bin -out plaintext.txt
- Web Crypto API: Browser-integrierte Krypto-Funktionen
// Schlüsselgenerierung const keyPair = await window.crypto.subtle.generateKey( { name: "RSA-OAEP", modulusLength: 2048, publicExponent: new Uint8Array([0x01, 0x00, 0x01]), hash: {name: "SHA-256"}, }, true, ["encrypt", "decrypt"] ); - Online-Tools: Für Lernzwecke (nicht für sensible Daten!)
12. Fazit: RSA heute und morgen
RSA bleibt trotz seines Alters von über 40 Jahren eines der wichtigsten Verschlüsselungsverfahren in der digitalen Welt. Seine Stärken liegen in:
- Einfacher Schlüsselverteilung durch Public-Key-Konzept
- Weit verbreitete Implementierung in Protokollen und Standards
- Gute Performance für Schlüsseloperationen (im Vergleich zu ECC)
Gleichzeitig zeigen die Fortschritte in der Quantencomputing-Forschung, dass wir uns auf eine post-RSA-Ära vorbereiten müssen. Die nächsten Jahre werden zeigen, wie schnell der Übergang zu quantenresistenten Algorithmen erfolgen muss.
Für Entwickler und Sicherheitsarchitekten ist es essentiell, die mathematischen Grundlagen von RSA zu verstehen, um die Technologie sicher einsetzen zu können. Dieser Rechner und Leitfaden soll als praktische Einführung dienen – für produktive Systeme sollten jedoch immer etablierte, geprüfte Implementierungen verwendet werden.