0Pricing
Cryptology Academy · Lektion

RSA-PSS für digitale Signaturen

Lernen Sie PSS-Kodierung und Salt kennen und erfahren Sie, warum sie PKCS#1 v1.5 beim Signieren ersetzt hat.

RSA-PSS für digitale Signaturen ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cryptology Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Willkommen

RSA-PSS (Probabilistic Signature Scheme) ist der sichere Ersatz für PKCS#1-v1.5-Signaturen. Es verwendet eine randomisierte Kodierung für nachweisbar sichere Signaturen.

Schwachstellen von PKCS#1-v1.5-Signaturen

PKCS#1-v1.5-Signaturen verwenden eine deterministische DigestInfo-Kodierung. Bekannte Fälschungsangriffe nutzen nachlässig implementierte Prüfungen aus. Bleichenbacher zeigte 2006 Signaturfälschungen gegen bestimmte Prüfimplementierungen.

Ziele des PSS-Entwurfs

Bellare und Rogaway entwickelten PSS 1996: PSS fügt ein zufälliges Salt hinzu, um Signaturen probabilistisch zu machen. Jede Signatur ist dadurch anders. PSS ist im Random-Oracle-Modell nachweisbar sicher – mit einer engen Reduktion auf die Schwierigkeit des RSA-Problems.

PSS-Kodierungsschritte

1. mHash = Hash(M) 2. salt = random(sLen bytes) 3. M' = 0x00×8 || mHash || salt 4. H = Hash(M') 5. DB = PS || 0x01 || salt 6. dbMask = MGF1(H, emLen - hLen - 1) 7. maskedDB = DB XOR dbMask 8. EM = maskedDB || H || 0xbc

Auswahl der Salt-Länge

Optionen nach PKCS#1 v2.2: - MAX_LENGTH: Salt so lang wie der Hash (empfohlen, maximale Sicherheit) - DIGEST_LENGTH: Salt = Hashlänge (Standard) - 0: deterministisches PSS (verliert die probabilistische Eigenschaft, nicht empfohlen) Python: padding.PSS.MAX_LENGTH

PSS-Verifikation

EM = sig^e mod n wiederherstellen. maskedDB und H analysieren. M' aus mHash (aus der Nachricht) und dem wiederhergestellten Salt berechnen. Prüfen, ob H == Hash(M') gilt. Das Salt muss nicht übereinstimmen – nur H muss verifiziert werden.

Sicherheitsvergleich von PSS und v1.5

PSS: nachweisbar sicher, enge Reduktion, probabilistische Signaturen, etwas höherer Rechenaufwand. v1.5: heuristisch sicher, deterministisch, schneller, anfällig für Format-Orakel-Angriffe. Für neuen Code sollte immer PSS verwendet werden.

PSS in TLS 1.3

TLS 1.3 verlangt RSA-PSS für alle RSA-Signaturen. PKCS#1 v1.5 ist in neuen TLS-1.3-Erweiterungen verboten. Signaturalgorithmen: rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512.

PSS in Python

from cryptography.hazmat.primitives.asymmetric import padding from cryptography.hazmat.primitives import hashes # Sign sig = private_key.sign( message, padding.PSS(mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH), hashes.SHA256() )

RSASSA-PSS-OID

RSA-PSS hat einen eigenen Schlüsseltyp-OID: id-RSASSA-PSS (1.2.840.113549.1.1.10). Speziell für PSS erzeugte Schlüssel verwenden diese OID und erfordern PSS-Signaturen (funktionieren nicht mit v1.5). Dies ist die beste Vorgehensweise für neue Bereitstellungen.

Empfehlungen zu gekürzten Hashes und Salt

Sicherheit von PSS = min(|modulus|/2, |hash|) - 1 Bits, wenn salt_length = hash_length gilt. Für RSA-2048 mit SHA-256 bedeutet das 128-Bit-Sicherheit. Stimmen Sie das Sicherheitsniveau ab: RSA-3072 + SHA-384 für 192-Bit-Sicherheit.

Kurzer Test

Was macht RSA-PSS-Signaturen im Vergleich zu PKCS#1 v1.5 „probabilistisch“?

Zusammenfassung

RSA-PSS ist die sichere Methode, mit RSA zu signieren. Als Nächstes machen wir uns mit der Kryptografie elliptischer Kurven vertraut und untersuchen die Geometrie und Algebra von Kurven.

Häufig gestellte Fragen

Ist die Lektion „RSA-PSS für digitale Signaturen“ kostenlos?

Ja — der vollständige Text von „RSA-PSS für digitale Signaturen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cryptology Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „RSA-PSS für digitale Signaturen“?

Lernen Sie PSS-Kodierung und Salt kennen und erfahren Sie, warum sie PKCS#1 v1.5 beim Signieren ersetzt hat. Du übst Cryptology Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cryptology Academy zu starten?

Keine Vorkenntnisse erforderlich. Cryptology Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „RSA-PSS für digitale Signaturen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cryptology Academy-Lektion Code schreiben und ausführen?

Ja. Jede Cryptology Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Lehrbuch-RSA und warum es unsicher ist
  2. PKCS#1-v1.5-Padding und Bleichenbacher
  3. OAEP: Optimales asymmetrisches Verschlüsselungs-Padding
  4. RSA-PSS für digitale Signaturen
← Zurück zu Cryptology Academy