Cryptology Academy · Lektion

RSA-Signaturen: Signieren und überprüfen

Vollziehen Sie die Mathematik des Signierens eines Dokument-Hashes mit einem privaten Schlüssel nach.

Lektion 2 von 413 Schritte

RSA-Signaturen: Signieren und überprüfen ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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-Signaturen kehren die Rollen der Schlüssel um: Der private Schlüssel signiert und der öffentliche Schlüssel verifiziert. Dadurch kann jeder Ihre Identität mithilfe Ihres öffentlichen Schlüssels überprüfen.

Mathematik des RSA-Signierens

Um die Nachricht M mit dem privaten Schlüssel (d, n) zu signieren: 1. H = SHA256(M) 2. sig = H^d mod n Die Signatur ist eine Zahl mit derselben Bitlänge wie n.

Mathematik der RSA-Verifizierung

Um die Signatur sig mit dem öffentlichen Schlüssel (e, n) zu verifizieren: 1. H' = sig^e mod n 2. H = SHA256(M) 3. Gültig, wenn H == H' Jeder, der den öffentlichen Schlüssel besitzt, kann die Signatur verifizieren – ein Geheimnis ist nicht erforderlich.

PKCS#1-v1.5-Signatur-Padding

Rohe RSA-Signaturen sind malleabel. PKCS#1 v1.5 füllt den Hash vor dem Signieren auf: 0x00 0x01 [0xFF padding] 0x00 [DigestInfo] [Hash] Bei der Verifizierung wird die genaue Padding-Struktur geprüft.

RSA-PSS: Besseres Padding

RSA-PSS (Probabilistic Signature Scheme) verwendet ein zufälliges Salt, sodass jede Signatur selbst bei derselben Nachricht anders ist. Im Random-Oracle-Modell ist es nachweislich sicher. RSA-PSS wird gegenüber PKCS#1 v1.5 bevorzugt.

RSA-Signieren mit Python (PSS)

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

RSA-Verifizierung mit Python

try: public_key.verify( signature, message, padding.PSS( mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH ), hashes.SHA256() ) print('Valid!') except InvalidSignature: print('Invalid!')

Signaturlänge

RSA-2048-Signatur: 256 Byte. RSA-4096: 512 Byte. ECDSA-256-Signatur: ungefähr 71 Byte (variable DER-Kodierung). Die Signatur enthält das vollständige Ergebnis der modularen Exponentiation.

Blindsignaturen

Eine Blind signature ermöglicht es dem Unterzeichner, eine Nachricht zu signieren, ohne ihren Inhalt zu sehen. Sie wird bei elektronischen Wahlen und E-Cash verwendet: Die Bank signiert ein blindgeschaltetes Token, der Benutzer hebt die Blindschaltung auf – nicht zurückverfolgbares Bargeld.

RSA-Signatur in der Zertifikatskette

Let's Encrypt signiert Ihr Serverzertifikat mit dem privaten RSA-Schlüssel seiner Zwischen-CA. Der öffentliche Schlüssel Ihres Servers befindet sich im Zertifikatskörper. TLS-Clients verifizieren diese Kette automatisch.

Certificate Transparency

Certificate Transparency protokolliert alle ausgestellten Zertifikate in einem kryptografisch verifizierbaren Merkle-Baum. Signed Certificate Timestamps (SCTs) belegen vor der Ausstellung, dass das Zertifikat in das Protokoll aufgenommen wurde.

Kurzer Check

Welcher Schlüssel wird bei der Verifizierung einer RSA-Signatur verwendet?

Zusammenfassung

RSA-Signaturen sind bei korrekt verwendeten Padding-Verfahren sicher. Als Nächstes vergleichen wir RSA mit DSA- und ECDSA-Signaturschemata.
Kostenlos starten

Lerne Cryptology Academy mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
67
Lektionen
261

Häufig gestellte Fragen

Ist die Lektion „RSA-Signaturen: Signieren und überprüfen“ kostenlos?

Ja — der vollständige Text von „RSA-Signaturen: Signieren und überprüfen“ 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-Signaturen: Signieren und überprüfen“?

Vollziehen Sie die Mathematik des Signierens eines Dokument-Hashes mit einem privaten Schlüssel nach. 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 2 von 4.

Wie lange dauert die Lektion „RSA-Signaturen: Signieren und überprüfen“?

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. Was ist eine digitale Signatur?
  2. RSA-Signaturen: Signieren und überprüfen
  3. DSA- und ECDSA-Signaturverfahren
  4. Signaturen in der Praxis: Codesignierung und E-Mail
← Zurück zu Cryptology Academy