Door Anoniem: Door Anoniem: Want hoe kan een computer een unieke handtekeningen creeren?
Dat kan met een ingebouwde
cryptographically secure pseudo-random number generator [...]
Een betrouwbare random number generator, meestal een CSPRNG (Cryptographically Secure Pseudo Random Number Genetator), is essentieel voor het genereren van elk asymmetrisch sleutelpaar [x], maar speelt, bij mijn weten, geen enkele rol bij het digitaal signeren van bestanden.
Opmerking [x]: Bij een asymmetrisch sleutelpaar zijn er twee verschillende sleutels. Daarbij geldt: wat je met de ene sleutel versleutelt, kun je uitsluitend met de andere sleutel ontsleutelen (een symmetrische sleutel wordt zowel voor versleutelen als ontsleutelen gebruikt). Dit geldt beide kanten op: wat je met de public key versleutelt, kun je uitsluitend met de bijpassende private key ontsleutelen, en wat je met de private key versleutelt, kun je uitsluitend met de bijpassende public key ontsleutelen (maar zie ook opmerking [y] verderop).
Na het genereren van het asymmetrische sleutelpaar wordt de public key gekoppeld aan een identiteit, bijv. middels een certificaat; de private key wordt gebruikt voor het genereren van handtekeningen. Het certificaat (of andere combinatie van public key en identiteit) wordt, door ontvangers van gesigneerde bestanden, gebruikt voor het valideren van digitale handtekeningen en daarmee het vaststellen van de authenticiteit van het bestand (zoals een e-mail of PDF).
Bij het, middels asymmerische encryptie,
versleutelen van bestanden, wordt
wel een CSPRNG gebruikt (misschien was je daarmee in de war). De reden daarvoor is dat asymmetrische encryptie vreselijk traag is bij grotere bestanden.
Als je iemand een versleuteld bestand wilt sturen, dat alleen die persoon kan decrypten, gaat dit als volgt:
1) De voorwaarde is dat je over een public key (bestemd voor
encryption [y]) beschikt van de bedoelde persoon, bijv. in een certificaat;
2) Je moet voldoende zeker weten dat die public key die jij "in handen" hebt, daadwerkelijk van de betreffende persoon is (en die persoon zorgvuldig omspringt met de bijbehorende private key);
3) Gebruik een CSPRNG om een random symmetrische sleutel te genereren, bijv. voor AES (essentieel is dat aanvallers die sleutel niet kunnen raden of voorspellen, daarom een CSPRNG);
4) Versleutel het bestand met die symmetrische sleutel;
5) Versleutel
die symmetrische sleutel met de public key van de ontvanger;
6) Stuur het
symmetrisch versleutelde bestand, samen met de
asymmetrisch versleutelde symmetrische sleutel, naar de ontvanger.
De ontvanger ontsleutelt de
asymmetrisch versleutelde symmetrische sleutel met diens private key. Daarna kan zij/hij het (symmetrisch) versleutelde bestand ontsleutelen.
Nb. naast dat je een te verzenden bestand versleutelt, kun je het desgewenst
ook digitaal ondertekenen, zodat de ontvanger met enige zekerheid weet wie de afzender is (en het bestand "onderweg" niet is gewijzigd, vervangen of door een ander is verzonden dan de ontvanger denkt).
Door MathFox: Door Anoniem: In Belgie kunnen wij gewoon onze identiteitskaart gebruiken om PDF documenten digitaal te ondertekenen.
Stomme Hollandse vraag: Hoe sluit je die aan op je computer?
Of het een stomme vraag is, weet ik niet, maar ook ik ben hier benieuwd naar!