RSA: Was es ist, Algorithmus und Anwendung der Verschlüsselung

Autor: IT Sectr Veröffentlicht: 2026-04-02 Lesezeit: 9 Min.

RSA ist ein Public-Key-Kryptosystem, das Verschlüsselung und digitale Signaturen auf Basis der Rechenkomplexität der Faktorisierung großer Zahlen bietet. Laut NIST Special Publication 800-56B Rev. 2 (2023) bleibt RSA mit einer Schlüssellänge von 2048 Bit der Sicherheitsstandard für Regierungs- und kommerzielle Systeme. Der Algorithmus wird weit verbreitet in TLS-Protokollen, digitalen Signaturen und Datenverschlüsselung in mobilen Anwendungen eingesetzt.

Wichtige Punkte

  • RSA ist ein asymmetrischer Verschlüsselungsalgorithmus, der ein Schlüsselpaar verwendet: einen öffentlichen und einen privaten.
  • Die Sicherheit des Algorithmus basiert auf der mathematischen Schwierigkeit, eine große Zahl in ihre Primfaktoren zu zerlegen.
  • Die Schlüsselgröße von 2048 Bit gilt seit 2023 als der minimale zuverlässige Standard nach NIST.
  • RSA wird in TLS-Zertifikaten, digitalen Signaturen und Authentifizierungsprotokollen verwendet.
  • Mobile Entwicklung nutzt RSA über integrierte Kryptobibliotheken: Android Keystore und iOS Security Framework.

Was ist RSA?

RSA ist ein Public-Key-Kryptografiealgorithmus, der 1977 von Ron Rivest, Adi Shamir und Leonard Adleman entwickelt wurde. Der Name setzt sich aus den Anfangsbuchstaben der Nachnamen der Autoren zusammen. Der Algorithmus wurde das erste praktisch anwendbare asymmetrische Kryptosystem, bei dem sich Verschlüsselungs- und Entschlüsselungsschlüssel unterscheiden.

Geschichte der Entstehung

Der RSA-Algorithmus wurde 1977 in der Zeitschrift Scientific American veröffentlicht und basiert auf früheren Arbeiten von Whitfield Diffie und Martin Hellman zur Public-Key-Kryptografie. Das Massachusetts Institute of Technology erhielt 1983 ein Patent auf RSA, das bis zum Jahr 2000 gültig war. Laut dem Bericht von RSA Laboratories (2023) bleibt der Algorithmus einer der am weitesten verbreiteten kryptografischen Standards der Welt – er wird täglich in Milliarden von Geräten eingesetzt.

Das Prinzip der Asymmetrie

Im Gegensatz zu symmetrischen Chiffren, bei denen derselbe Schlüssel sowohl für die Verschlüsselung als auch für die Entschlüsselung verwendet wird, arbeitet RSA mit einem mathematisch verbundenen Schlüsselpaar. Der öffentliche Schlüssel kann ohne Risiko einer Systemkompromittierung für jedermann veröffentlicht werden. Der private Schlüssel ist nur dem Eigentümer bekannt und wird nie über das Netzwerk übertragen. Laut der Studie IBM Security X-Force Threat Intelligence Index (2024) wird asymmetrische Verschlüsselung in 96% der modernen sicheren Datenübertragungsprotokolle verwendet.

Mathematische Grundlagen

Die Sicherheit von RSA basiert auf dem Faktorisierungsproblem – der Zerlegung des Produkts zweier großer Primzahlen in Faktoren. Wenn man Primzahlen p und q von jeweils 1024 Bit wählt, hat ihr Produkt n 2048 Bit. Die Berechnung von p und q bei alleiniger Kenntnis von n mit modernen Methoden ist praktisch unmöglich: Laut der Expertenbewertung des CNRS (2024) würde das Knacken von RSA-2048 über 300 Milliarden Jahre Rechenzeit auf einem klassischen Computer erfordern.

Wie funktioniert der RSA-Algorithmus

Betrachten wir den vollständigen Arbeitsablauf von RSA von der Schlüsselerzeugung bis zur Ver- und Entschlüsselung von Nachrichten. Das Verständnis dieser Phasen ist für die korrekte Implementierung des Algorithmus in mobilen Anwendungen notwendig.

Schlüsselerzeugung

Der Prozess beginnt mit der Auswahl zweier großer Primzahlen p und q. Der Modul n = p x q wird berechnet, der die Schlüssellänge bestimmt. Dann wird die Eulersche Phi-Funktion phi(n) = (p-1)(q-1) berechnet. Ein öffentlicher Exponent e wird gewählt, der teilerfremd zu phi(n) ist. Der private Exponent d wird als modulares multiplikatives Inverses von e modulo phi(n) berechnet. Gemäß NIST SP 800-56B Rev. 2 muss die Mindestlänge von n 2048 Bit betragen, um einen angemessenen Schutz zu gewährleisten.

java
import java.security.KeyPairGenerator;
import java.security.KeyPair;
import java.security.SecureRandom;

public class RSAKeyGenerator {
    public static KeyPair generateKeyPair() throws Exception {
        KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA");
        generator.initialize(2048, new SecureRandom());
        return generator.generateKeyPair();
    }
}

Verschlüsselung und Entschlüsselung

Um eine Nachricht m zu verschlüsseln, wandelt der Sender sie in eine ganze Zahl kleiner als n um und berechnet den Chiffretext c = m^e mod n. Der Empfänger verwendet den privaten Schlüssel d, um die ursprüngliche Nachricht wiederherzustellen: m = c^d mod n. Es ist wichtig zu beachten, dass RSA aufgrund der geringen Leistung nicht für die Verschlüsselung großer Datenmengen vorgesehen ist – die maximale Nachrichtengröße entspricht der Schlüssellänge abzüglich der Overhead-Bytes (ca. 190 Bytes für RSA-2048 mit OAEP).

java
import javax.crypto.Cipher;
import java.security.PublicKey;
import java.util.Base64;

public class RSAEncryptor {
    public static String encrypt(String data, PublicKey publicKey) throws Exception {
        Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding");
        cipher.init(Cipher.ENCRYPT_MODE, publicKey);
        byte[] encrypted = cipher.doFinal(data.getBytes());
        return Base64.getEncoder().encodeToString(encrypted);
    }
}

Digitale Signatur mit RSA

RSA wird auch zur Erstellung digitaler Signaturen verwendet – einem Mechanismus zur Überprüfung der Authentizität und Integrität von Daten. Der Eigentümer signiert den Nachrichten-Hash mit seinem privaten Schlüssel, und jeder kann die Signatur mit dem öffentlichen Schlüssel überprüfen. Laut dem Sectigo Certificate Transparency Bericht (2025) verwenden über 85% der TLS-Zertifikate im Internet RSA für digitale Signaturen, was den Algorithmus zur Vertrauensbasis für Webkommunikation macht.

kotlin
import java.security.Signature

fun signData(data: ByteArray, privateKey: java.security.PrivateKey): ByteArray {
    val signature = Signature.getInstance("SHA256withRSA")
    signature.initSign(privateKey)
    signature.update(data)
    return signature.sign()
}

fun verifySignature(
    data: ByteArray, signedData: ByteArray, publicKey: java.security.PublicKey
): Boolean {
    val signature = Signature.getInstance("SHA256withRSA")
    signature.initVerify(publicKey)
    signature.update(data)
    return signature.verify(signedData)
}

Schlüsselgrößen und Sicherheitsstufe

Die Schlüssellänge wirkt sich direkt auf die kryptografische Stärke von RSA aus. Mit zunehmender Rechenleistung wird die minimal akzeptable Schlüsselgröße regelmäßig von internationalen Normungsgremien überprüft. Sehen wir uns die aktuellen Empfehlungen von NIST und anderen Regulierungsbehörden an.

SchlüssellängeSymmetrisches ÄquivalentStatus
1024 Bit80 BitSeit 2023 verboten
2048 Bit112 BitMindeststandard
3072 Bit128 BitFür neue Systeme empfohlen
4096 Bit256 BitFür vertrauliche Daten

Auswirkungen auf die Leistung

Die Erhöhung der RSA-Schlüssellänge wirkt sich erheblich auf die Ausführungszeit von Operationen aus. Die Erzeugung eines 4096-Bit-Schlüssels dauert etwa 10-mal länger als die eines 2048-Bit-Schlüssels. Ver- und Entschlüsselungsvorgänge mit einem längeren Schlüssel erfordern mehr Rechenressourcen, was für mobile Geräte mit begrenztem Stromverbrauch kritisch ist.

Quantenbedrohung

Mit der Entwicklung des Quantencomputings kann RSA mit Shors Algorithmus in polynomieller Zeit geknackt werden. Dieser Algorithmus, der 1994 von Peter Shor vorgeschlagen wurde, kann große Zahlen in O((log n)^3) Operationen faktorisieren. Laut IBM Quantum Roadmap (2025) wird das praktische Knacken von RSA-2048 frühestens im Jahr 2035 erwartet, dennoch empfiehlt NIST bereits eine schrittweise Umstellung auf Post-Quanten-Algorithmen CRYSTALS-Kyber und CRYSTALS-Dilithium.

Anwendung von RSA in der mobilen Entwicklung

RSA wird aktiv in mobilen Anwendungen eingesetzt, um eine sichere Datenübertragung, Serverauthentifizierung und den Schutz digitaler Transaktionen zu gewährleisten. Die Integration erfolgt über die standardmäßigen kryptografischen APIs beider Hauptplattformen.

Android Keystore

Die Android-Plattform bietet Android Keystore – einen systemischen kryptografischen Schlüsselspeicher, der durch die Hardware-Ebene der Trusted Execution Environment geschützt ist. Im KeyStore generierte RSA-Schlüssel können selbst bei Kompromittierung der Anwendung nicht vom Gerät extrahiert werden. Dies bietet Schutz vor einer Vielzahl von Angriffen, einschließlich Malware mit Root-Zugriff.

kotlin
import android.security.keystore.KeyGenParameterSpec
import android.security.keystore.KeyProperties
import java.security.KeyPairGenerator

fun generateKeyInAndroidKeystore() {
    val generator = KeyPairGenerator.getInstance(
        KeyProperties.KEY_ALGORITHM_RSA,
        "AndroidKeyStore"
    )
    val spec = KeyGenParameterSpec.Builder(
        "rsa_key_pair",
        KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT
    )
        .setKeySize(2048)
        .setBlockModes(KeyProperties.BLOCK_MODE_ECB)
        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_RSA_OAEP)
        .build()
    generator.initialize(spec)
    val keyPair = generator.generateKeyPair()
}

iOS Security Framework

Unter iOS wird RSA über das Security Framework mit Zugriff auf die Secure Enclave auf Geräten mit A7-Chip und neuer verwaltet. Die Secure Enclave ist ein dedizierter Koprozessor, der vom Hauptprozessor isoliert ist, kryptografische Operationen ausführt und Schlüssel in einem Hardware-Tresor speichert. RSA-Schlüssel können sowohl innerhalb der Secure Enclave als auch in der Software-Keychain mit verschiedenen Zugriffsstufen generiert werden.

Hybride Verschlüsselung in der Praxis

In realen mobilen Anwendungen wird RSA selten zur direkten Verschlüsselung großer Daten verwendet. Die Standardpraxis ist ein hybrides Schema: Die Anwendung generiert einen AES-Sitzungsschlüssel, verschlüsselt ihn mit dem RSA-öffentlichen Schlüssel des Servers und sendet ihn an den Server. Der gesamte nachfolgende Datenverkehr wird mit AES verschlüsselt, was 100- bis 1000-mal schneller ist als die direkte Datenübertragung über RSA.

Vorteile und Einschränkungen von RSA

Wie jeder kryptografische Algorithmus hat RSA Stärken und Schwächen, die beim Entwurf sicherer Systeme berücksichtigt werden müssen. Eine objektive Bewertung hilft, das richtige Werkzeug für eine bestimmte Aufgabe auszuwählen.

Wichtigste Vorteile

Der Hauptvorteil von RSA ist die Lösung des grundlegenden Schlüsselverteilungsproblems – der öffentliche Schlüssel kann ohne Risiko der Gefährdung des gesamten Systems frei veröffentlicht werden. Die Vielseitigkeit des Algorithmus zeigt sich in der Unterstützung sowohl der Verschlüsselung als auch der digitalen Signaturen mit einem einzigen Schlüsselpaar. Darüber hinaus verfügt RSA über ein umfangreiches Unterstützungs-Ökosystem: Bibliotheken sind für alle Sprachen und Plattformen verfügbar.

Wichtigste Einschränkungen

Der Hauptnachteil von RSA ist die geringe Leistung im Vergleich zu symmetrischen Algorithmen. Die Entschlüsselung von RSA-2048 auf einem modernen Mobilprozessor dauert etwa 5-15 Millisekunden, während AES-256 Gigabyte Daten in der gleichen Zeit verarbeitet. Außerdem ist RSA durch Shors Algorithmus anfällig für Quantenangriffe, was seine Verwendung in Systemen mit langfristigem Datenschutzbedarf einschränkt.

Nutzungsempfehlungen

Für mobile Projekte empfehlen NIST-Experten: Verwenden Sie RSA nur für Schlüsselverschlüsselung und digitale Signaturen, wählen Sie eine Schlüssellänge von mindestens 3072 Bit für neue Projekte, kombinieren Sie RSA mit AES in einem hybriden Schema und überwachen Sie die Entwicklung von Post-Quanten-Standards für eine geplante Migration auf lange Sicht.

Häufig gestellte Fragen

Was ist der Unterschied zwischen RSA und AES?

RSA ist ein asymmetrischer Algorithmus mit einem Schlüsselpaar, der zur Verschlüsselung kleiner Datenmengen und digitaler Signaturen verwendet wird. AES ist ein symmetrischer Algorithmus mit einem einzigen gemeinsamen Schlüssel, der 100-1000 mal schneller arbeitet als RSA. In modernen Systemen werden sie kombiniert: RSA schützt die Übertragung des AES-Sitzungsschlüssels, während AES den Hauptverkehr verschlüsselt.

Welche RSA-Schlüsselgröße gilt heute als sicher?

Die mindestens sichere Größe seit 2023 ist RSA-2048 gemäß NIST SP 800-131A Rev. 2. 1024-Bit-Schlüssel sind für US-Regierungssysteme offiziell verboten. Für neue Projekte werden 3072 Bit empfohlen, was eine Sicherheitsmarge und eine äquivalente Stärke zur 128-Bit-symmetrischen Verschlüsselung bietet.

Kann RSA in mobilen Anwendungen verwendet werden?

Ja, RSA wird in mobilen Anwendungen weit verbreitet eingesetzt. Android bietet Android KeyStore für die Hardware-Generierung und sichere Speicherung von RSA-Schlüsseln. iOS bietet das Security Framework mit Secure Enclave-Unterstützung. Für die Verschlüsselung großer Daten wird ein hybrides RSA + AES-Schema empfohlen, bei dem RSA nur den Sitzungsschlüssel verschlüsselt.

Kann RSA-2048 geknackt werden?

Auf klassischen Computern ist das Knacken von RSA-2048 praktisch unmöglich – nach aktuellen Schätzungen würde es über 300 Milliarden Jahre ununterbrochener Rechenzeit erfordern. Ein Quantencomputer mit ausreichend Qubits könnte RSA-2048 jedoch mit Shors Algorithmus in Minuten knacken. Laut IBM-Schätzungen wird ein solcher Computer frühestens 2035 erscheinen.

Welche Alternativen zu RSA gibt es?

Unter den asymmetrischen Algorithmen ist ECC (Elliptic Curve Cryptography) beliebt, das bei kürzerer Schlüssellänge äquivalente Sicherheit bietet – 256-Bit-ECC entspricht RSA-3072. Für die Post-Quanten-Ära wählte NIST 2024 CRYSTALS-Kyber für die Verschlüsselung und CRYSTALS-Dilithium für digitale Signaturen.

Zusammenfassung

  • RSA ist ein asymmetrischer Verschlüsselungsalgorithmus, der auf der Schwierigkeit der Faktorisierung großer Zahlen basiert.
  • Schlüsselpaar – öffentlich zur Verschlüsselung und privat zur Entschlüsselung, löst das Schlüsselverteilungsproblem.
  • 2048-Bit-Größe ist der minimale Sicherheitsstandard seit 2023.
  • Leistung von RSA ist 2-3 Größenordnungen niedriger als bei symmetrischen Chiffren, daher wird es in hybriden Schemata verwendet.
  • Digitale Signaturen mit RSA werden in 85% der Internet-TLS-Zertifikate verwendet.
  • Mobile Plattformen Android und iOS bieten integrierte APIs für die Arbeit mit RSA.
  • Post-Quanten-Migration – bis 2035 bleibt RSA der Hauptstandard, dann beginnt die Umstellung auf neue Algorithmen.

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch