ToolActToolAct

RSA Verschlüsselungs- & Entschlüsselungstool

Online-RSA-Asymmetrische Verschlüsselung mit Schlüsselpaar-Generierung, Public-Key-Verschlüsselung und Private-Key-Entschlüsselung

Schlüsselverwaltung

Öffentlicher Schlüssel
Privater Schlüssel
Eingabe
Zeichen: 0
Bytes: 0
Ausgabe
Zeichen: 0
Bytes: 0

Was ist RSA-Verschlüsselung?

RSA (Rivest-Shamir-Adleman) ist der weltweit erste weit verbreitete asymmetrische Verschlüsselungsalgorithmus, der 1977 von drei MIT-Mathematikern erfunden wurde: Ron Rivest, Adi Shamir und Leonard Adleman. Im Gegensatz zu symmetrischen Algorithmen wie AES verwendet RSA ein Schlüsselpaar: einen öffentlichen Schlüssel zum Verschlüsseln und einen privaten zum Entschlüsseln. Der öffentliche Schlüssel kann frei geteilt werden, während der private streng geheim bleiben muss. Die Sicherheit von RSA basiert auf der mathematischen Schwierigkeit der Primfaktorzerlegung großer Zahlen. Schlüssel mit 2048 Bit oder mehr werden derzeit empfohlen. Die Entwicklung von Quantencomputern stellt eine potenzielle Bedrohung dar, aber praktische Quantencomputer existieren noch nicht. RSA wird in HTTPS/TLS-Handshakes, digitalen Signaturen, E-Mail-Verschlüsselung (PGP/GPG) und Blockchain-Transaktionen eingesetzt. Dieses Tool verwendet die native Web Crypto API des Browsers für RSA-Operationen.

So geht's

So geht's

  1. Schlüsselgröße wählen (2048-Bit oder mehr empfohlen)
  2. Padding-Schema wählen (OAEP für höhere Sicherheit empfohlen)
  3. Hash-Algorithmus wählen (SHA-256 empfohlen)
  4. Klicken Sie auf 'Schlüsselpaar generieren', um öffentlichen und privaten Schlüssel zu erzeugen
  5. Zum Verschlüsseln: Öffentlichen Schlüssel im Schlüsselbereich einfügen, Klartext eingeben – der Geheimtext wird automatisch erzeugt
  6. Zum Entschlüsseln: Privaten Schlüssel im Schlüsselbereich einfügen, Geheimtext eingeben – der Klartext wird automatisch erzeugt
  7. Ergebnis kopieren oder auf 'Tauschen' klicken, um Eingabe und Ausgabe zu vertauschen

Parameterübersicht

  • Verwenden Sie RSA-OAEP mit SHA-256 oder stärker für neue Verschlüsselungstests; PKCS#1 v1.5 sollte nur aus Kompatibilitätsgründen eingesetzt werden.
  • RSA kann nur kleine Datenmengen verschlüsseln. Für größere Daten verschlüsseln Sie einen zufälligen AES-Schlüssel mit RSA und nutzen Sie AES für den eigentlichen Inhalt.
  • Private Schlüssel niemals in Chats, Tickets, Screenshots oder gemeinsamen Protokollen teilen. Öffentliche Schlüssel dürfen geteilt werden, private Schlüssel müssen geheim bleiben.

Anwendungsfälle

RSA-OAEP-Schlüsselpaare im Browser erzeugenWählen Sie 512, 1024, 2048, 3072 oder 4096 Bit Moduluslänge und SHA-1, SHA-256, SHA-384 oder SHA-512 als Hash, und erzeugen Sie exportierbare PEM-Öffentliche- und Private-Schlüssel über Web Crypto. Das Schlüsselpaar verbleibt im Browser-Tab und wird als SPKI (öffentlich) und PKCS#8 (privat) PEM-Blöcke exportiert — praktisch für die Gestaltung eines Interop-Tests ohne Schlüsselserver-Bereitstellung.
Kurze Textinhalte verschlüsseln und entschlüsselnFügen Sie einen öffentlichen Schlüssel ein, um Klartext in Base64 oder Hex zu verschlüsseln, oder fügen Sie einen privaten Schlüssel ein, um Chiffretext im gewählten Format zu entschlüsseln. Eingabe- und Ausgabe-Bytezahlen helfen, Probleme mit der Inhaltsgröße aufzudecken — denn RSA-OAEP(SHA-256) auf einem 2048-Bit-Schlüssel kann nur etwa 190 Bytes Klartext verpacken. Der private Schlüssel und die Nachricht verbleiben während des gesamten Vorgangs im lokalen Tab.
Schlüsselverarbeitung ohne externe Werkzeuge testenKopieren Sie öffentliche oder private PEM-Blöcke, tauschen Sie die Panels beim Experimentieren, und wechseln Sie zwischen Verschlüsselungs-/Entschlüsselungsmodus, während Sie auf einer Seite bleiben. Das ist nützlich zum Erlernen der RSA-OAEP-Semantik, für Interoperabilitätsprüfungen gegen openssl und für lokale Prototypen, bei denen das Schlüsselmaterial das Gerät nicht verlassen sollte.
OAEP-Hash für Interoperabilitätsprüfungen auswählenWechseln Sie in den OAEP-Einstellungen zwischen SHA-1, SHA-256, SHA-384 und SHA-512, um den Hash anzupassen, den Ihre Gegenstelle verwendet. Nicht übereinstimmende Hashes führen dazu, dass die Entschlüsselung mit einem generischen ‚OperationError' von Web Crypto fehlschlägt — die Überprüfung der Paarung hier spart Debugging-Zeit beim Verdrahten von Schlüsseln zwischen Nodes crypto, Pythons cryptography oder Javas javax.crypto-Diensten.
Inhaltsgrößen-Grenzen vor der Verschlüsselung erkennenRSA-OAEP kann nur Nachrichten verschlüsseln, die kürzer sind als der Schlüsselmodulus minus 2*hashLen - 2 Bytes Padding-Overhead — Versuche mit mehreren Kilobyte großen Daten werfen einen InvalidAccessError. Nutzen Sie den Eingabe-Bytezähler und die Chiffretext-Ausgabelänge (die bei OAEP dem Schlüsselmodulus in Bytes entspricht), um zu bestätigen, dass der Test unter der Grenze bleibt, und verlagern Sie große Daten dann zu AES mit RSA-umhüllten Sitzungsschlüsseln.

Technisches Prinzip

RSA ist das 1977 von Rivest, Shamir und Adleman entwickelte Public-Key-Kryptosystem. Bei der Schlüsselerzeugung werden zwei große zufällige Primzahlen p und q gewählt, der Modulus n = p · q berechnet, Eulersche Phi-Funktion φ(n) = (p-1)(q-1) bestimmt, ein öffentlicher Exponent e, der zu φ(n) teilerfremd ist, ausgewählt (e = 65537 = 2^16 + 1 ist der De-facto-Standard, da sein niedriges Hamming-Gewicht die modulare Exponentiation beschleunigt), und der private Exponent d ≡ e^-1 (mod φ(n)) über den erweiterten euklidischen Algorithmus abgeleitet. Verschlüsselung: c = m^e mod n; Entschlüsselung: m = c^d mod n. Die Sicherheit beruht auf der vermuteten Schwierigkeit, n in p und q zu faktorisieren, sofern n ausreichend groß ist. Reines RSA ist deterministisch und formbar, daher umhüllt jede reale Implementierung die Nachricht mit einem Padding-Schema. RSA-OAEP, definiert in RFC 8017 (PKCS#1 v2.2) mit einer Maskengenerierungsfunktion MGF1 über SHA-256 (oder SHA-1/384/512), liefert semantische Sicherheit: derselbe Klartext wird bei jedem Aufruf zu einem unterschiedlichen Chiffretext verschlüsselt, und die Padding-Integritätsprüfung verhindert gewählte-Chiffretext-Angriffe. Das ältere PKCS#1 v1.5 Padding ist aus Kompatibilitätsgründen noch verbreitet, ist aber anfällig für den Bleichenbacher Million-Message-Oracle-Angriff. Für Signaturen wird RSASSA-PSS gegenüber PKCS#1 v1.5 sign bevorzugt, aus denselben Gründen. Die Wahl der Schlüsselgröße ist durch sowohl die Leistung als auch die neuesten Faktorisierungsrekorde begrenzt. NIST SP 800-57 schreibt heute mindestens 2048 Bit und ab 2030 mindestens 3072 Bit vor. Elliptische-Kurve-Kryptografie erreicht RSA 3072 bereits mit nur 256 Bit (NIST P-256, Curve25519), weshalb die meisten neuen TLS-Implementierungen ECDHE + ECDSA bevorzugen. RSA-OAEP auf einem 2048-Bit-Schlüssel kann höchstens ⌊Schlüsselgröße/8⌋ − 2·Hashlänge − 2 Bytes Klartext verpacken (ca. 190 Bytes für SHA-256), daher nutzen Produktionssysteme RSA nur zum Umhüllen eines frischen symmetrischen Sitzungsschlüssels und lassen AES-GCM die eigentliche Nutzlast übertragen — das hybride Muster hinter jedem TLS-Handshake. Im Browser übernimmt die Web Crypto API (window.crypto.subtle) die Schlüsselerzeugung, den Import, die Verschlüsselung und Entschlüsselung mit PEM/DER (SPKI für öffentlich, PKCS#8 für privat) oder JWK als Austauschformate.

  • Mathematik: Primzahlen p, q wählen; n = p·q; φ(n) = (p-1)(q-1); e wählen (typischerweise 65537 = 2^16+1); d = e^-1 mod φ(n) berechnen; Verschlüsselung c = m^e mod n; Entschlüsselung m = c^d mod n.
  • Padding: RSA-OAEP gemäß RFC 8017 (PKCS#1 v2.2) mit MGF1+SHA-256 für neuen Code; PKCS#1 v1.5 nur für Legacy-Interop, anfällig für Bleichenbacher (CVE-2017-13099 u. a.).
  • Schlüsselgrößen: NIST SP 800-57 setzt heute mindestens 2048 Bit und ab 2030 mindestens 3072 Bit fest; 1024-Bit-RSA gilt als gebrochen, 4096 Bit kostet spürbar mehr CPU.
  • Nutzlastgrenze: RSA-OAEP kann höchstens ⌊k/8⌋ − 2·Hashlänge − 2 Bytes verpacken (ca. 190 Bytes für 2048 Bit + SHA-256); größere Daten nutzen RSA zum Umhüllen eines AES-GCM-Sitzungsschlüssels.
  • Vergleichbare Stärke: RSA 3072 ≈ ECC 256 (NIST P-256 oder Curve25519) bei ca. 128-Bit symmetrischer Sicherheit; ECC gewinnt bei Schlüsselgröße und Signaturgeschwindigkeit, RSA gewinnt bei der Verifizierung.
  • Browser-API und Formate: window.crypto.subtle.generateKey('RSA-OAEP'); Export als SPKI PEM (öffentlich) und PKCS#8 PEM (privat) oder JWK; private Schlüssel dürfen die lokale Umgebung niemals im Klartext verlassen.

Beispiele

Einfache Verschlüsselung

1. 2048-Bit-Schlüsselpaar erzeugen
2. Öffentlichen Schlüssel kopieren
3. Klartext eingeben: Hello, RSA!
4. OAEP + SHA-256 auswählen
5. Ausgabe: Base64-kodierter Geheimtext

RFC: RFC 8017 (PKCS#1 v2.2) definiert das RSAES-OAEP-Verschlüsselungsverfahren

Typischer Ablauf

Sender:
1. Öffentlichen Schlüssel des Empfängers beschaffen
2. Nachricht mit öffentlichem Schlüssel verschlüsseln
3. Geheimtext senden

Empfänger:
1. Mit privatem Schlüssel entschlüsseln
2. Originalnachricht lesen

Hinweis: RSA-Verschlüsselung sorgt für Vertraulichkeit; für Authentizität mit RSA-Signaturen kombinieren (RSASSA-PSS in RFC 8017)

Hybride Verschlüsselung (RSA + AES)

RSA eignet sich für kleine Daten (z. B. Sitzungsschlüssel)
Für große Daten hybride Verschlüsselung verwenden:
1. Zufälligen AES-256-Schlüssel erzeugen
2. RSA verschlüsselt den AES-Schlüssel (max. ca. 190 Bytes mit OAEP-SHA256)
3. AES-GCM verschlüsselt die eigentlichen Daten
4. RSA-verschlüsselten Schlüssel + AES-Geheimtext + IV + Authentifizierungs-Tag senden

Dies kombiniert die Schlüsselverteilung von RSA mit der Geschwindigkeit von AES und ist das Standardmuster in TLS, PGP und S/MIME.
RFC: RFC 8017 Abschnitt 7.1 behandelt RSAES-OAEP zur Schlüsselkapselung

FAQ

Welche Schlüsselgröße sollte ich generieren?

RSA-2048 ist heute das praktische Minimum und wird seit Jahren in TLS-Zertifikaten verwendet. RSA-3072 ist der konservative aktuelle Standard nach NIST SP 800-57. RSA-4096 ist für die meisten Anwendungen Overkill (deutlich langsamer), aber passend für langlebige Signaturschlüssel. RSA-1024 ist per Richtlinie gebrochen und sollte für nichts Neues mehr generiert werden.

Public Key vs. Private Key – welcher verschlüsselt und welcher entschlüsselt?

Für Vertraulichkeit: mit Public Key verschlüsseln, mit Private Key entschlüsseln. Jeder kann eine Nachricht an dich verschlüsseln; nur der Inhaber des Private Keys kann sie lesen. Bei Signaturen ist es umgekehrt: mit Private Key signieren, mit Public Key verifizieren.

Warum liefert das Verschlüsseln desselben Texts zweimal unterschiedlichen Ciphertext?

RSA-OAEP (das empfohlene Padding-Schema) fügt Zufälligkeit hinzu, sodass identische Klartexte unterschiedliche Ciphertexte erzeugen. Das ist beabsichtigt – es verhindert Chosen-Ciphertext-Angriffe. RSA ohne Padding (Lehrbuch-RSA) ist deterministisch und unsicher; nicht verwenden.

Warum ist RSA so viel langsamer als AES?

RSA macht modulare Exponentiation mit großen Zahlen; AES macht festgrößige Bit-Operationen auf einem kleinen Block. Eine 2048-Bit-RSA-Verschlüsselung ist tausendfach langsamer als eine AES-128-Verschlüsselung. In der Praxis nutzt man RSA nur, um einen kleinen AES-Sitzungsschlüssel zu wrappen, und verschlüsselt die eigentliche Nutzlast dann mit AES.

Was ist die maximale Datenmenge, die ich mit einem RSA-Schlüssel verschlüsseln kann?

RSA-OAEP mit SHA-256 lässt etwa (key_size_in_bits / 8 - 66) Bytes pro Verschlüsselung zu: 190 Bytes für 2048 Bit, 318 Bytes für 3072, 446 Bytes für 4096. Für größere Daten verschlüssle einen AES-Schlüssel mit RSA und die Daten mit AES.

Ist die Schlüsselerzeugung zufällig und lokal?

Ja. Die Schlüsselerzeugung nutzt crypto.subtle.generateKey aus der Web Crypto API, die vom OS-CSPRNG geseedet wird. Schlüssel verlassen deinen Browser nicht. Lade die Seite neu, um einen Schlüssel zu verwerfen und einen frischen zu generieren; füge keinen produktiven Private Key in eine Webseite ein.

Ist RSA quantensicher?

Nein. Ein hinreichend großer Quantencomputer mit Shors Algorithmus bricht RSA bei jeder praktischen Schlüsselgröße. NIST hat 2024 Post-Quanten-Alternativen standardisiert (ML-KEM, ML-DSA). Für Daten, die noch Jahrzehnte vertraulich bleiben müssen, plane eine Migration; für kurzlebige TLS-Sitzungen ist RSA noch okay.