Cryptology Academy · Les

RSA-handtekeningen: ondertekenen en verifiëren

Doorloop de wiskunde achter het ondertekenen van een document-hash met een privésleutel.

Les 2 van 413 stappen

RSA-handtekeningen: ondertekenen en verifiëren is een gratis Cryptology Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cryptology Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cryptology Academy bevat in totaal 4 lessen.

Welkom

Bij RSA-handtekeningen worden de rollen van de sleutels omgedraaid: de privésleutel ondertekent en de openbare sleutel verifieert. Daardoor kan iedereen je identiteit controleren met je openbare sleutel.

Wiskunde van RSA-ondertekening

Om bericht M te ondertekenen met privésleutel (d, n): 1. H = SHA256(M) 2. sig = H^d mod n De handtekening is een getal met dezelfde bitlengte als n.

Wiskunde van RSA-verificatie

Om handtekening sig te verifiëren met openbare sleutel (e, n): 1. H' = sig^e mod n 2. H = SHA256(M) 3. Geldig als H == H' Iedereen met de openbare sleutel kan verifiëren — er is geen geheim nodig.

Opvulling voor PKCS#1 v1.5-handtekeningen

Onbewerkte RSA-handtekeningen zijn manipuleerbaar. PKCS#1 v1.5 vult de hash aan voordat die wordt ondertekend: 0x00 0x01 [0xFF padding] 0x00 [DigestInfo] [Hash] Bij de verificatie wordt de exacte structuur van de opvulling gecontroleerd.

RSA-PSS: betere opvulling

RSA-PSS (Probabilistic Signature Scheme) gebruikt een willekeurige salt, waardoor elke handtekening anders is, zelfs voor hetzelfde bericht. Het is aantoonbaar veilig in het random-orakelmodel. Het heeft de voorkeur boven PKCS#1 v1.5.

Python RSA-ondertekening (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() )

Python RSA-verificatie

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!')

Lengte van handtekeningen

RSA-2048-handtekening: 256 bytes. RSA-4096: 512 bytes. ECDSA-256-handtekening: ongeveer 71 bytes (variabele DER-codering). De handtekening bevat de volledige uitvoer van de modulaire machtsverheffing.

Blinde handtekeningen

Met een blinde handtekening kan de ondertekenaar een bericht ondertekenen zonder de inhoud ervan te zien. Dit wordt gebruikt voor elektronisch stemmen en elektronisch geld: de bank ondertekent een geblindeerd token, waarna de gebruiker de blindering verwijdert — niet-traceerbaar geld.

RSA-handtekening in certificaatketen

Let's Encrypt ondertekent je servercertificaat met de RSA-privésleutel van de intermediaire CA. De openbare sleutel van je server staat in de inhoud van het certificaat. TLS-clients verifiëren deze keten automatisch.

Transparantie van certificaten

Certificate Transparency registreert alle uitgegeven certificaten in een cryptografisch verifieerbare Merkle-boom. Signed Certificate Timestamps (SCT's) bewijzen dat het certificaat vóór de uitgifte in het log is opgenomen.

Snelle controle

Welke sleutel wordt bij RSA-handtekeningverificatie gebruikt om de handtekening te verifiëren?

Samenvatting

RSA-handtekeningen zijn veilig met de juiste opvulling. Vervolgens vergelijken we RSA met DSA- en ECDSA-handtekeningschema's.
Gratis beginnen

Leer Cryptology Academy met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
67
Lessen
261

Veelgestelde vragen

Is de les “RSA-handtekeningen: ondertekenen en verifiëren” gratis?

Ja — de volledige tekst van “RSA-handtekeningen: ondertekenen en verifiëren” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cryptology Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cryptology Academy bevat in totaal 4 lessen.

Wat leer ik in “RSA-handtekeningen: ondertekenen en verifiëren”?

Doorloop de wiskunde achter het ondertekenen van een document-hash met een privésleutel. Je oefent met Cryptology Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Cryptology Academy te beginnen?

Ervaring vooraf is niet nodig. Cryptology Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “RSA-handtekeningen: ondertekenen en verifiëren”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Cryptology Academy?

Ja. Elke les over Cryptology Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Wat is een digitale handtekening?
  2. RSA-handtekeningen: ondertekenen en verifiëren
  3. DSA- en ECDSA-handtekeningschema's
  4. Handtekeningen in de praktijk: codeondertekening en e-mail
← Terug naar Cryptology Academy