## Hashfunctie

De Certificate Authority plaatst een digitale handtekening op de hash van een certificaat dat zij uitgeeft, waarmee de echtheid van het certificaat gecontroleerd kan worden. Een hash is net zoals encryptie een cryptografische functie, maar er is een belangrijk verschil. Wanneer data wordt versleuteld dan kan met de juiste sleutel de data weer ontsleuteld worden. Een hashfunctie maakt van data een unieke hashcode die niet teruggerekend kan worden naar de oorspronkelijke data.
Een essentiële eigenschap van een goede hashfunctie is dat verschillende invoerwaarden niet dezelfde hashcode opleveren. Een zwakke hashfunctie maakt het mogelijk twee certificaten met dezelfde hash te maken, wat het mogelijk maakt certificaten te vervalsen. Daarnaast zorgt iedere wijziging in de invoer voor een wijziging in de hashcode.
Een veelgebruikte hashfunctie is MD5. De 128-bit (16-byte) MD5-hashes worden meestal weergegeven als 32-cijferige hexadecimale getallen.
Het volgende laat een 46 bytes grote ASCII-invoer (inclusief de spaties) en de bijbehorende MD5-hash zien:
MD5 (‘Pa's wijze lynx bezag vroom het fikse aquaduct’) = b06c0444f37249a0a8f748d3b823ef2a
Zelfs een kleine verandering in de tekst zal een compleet andere hash veroorzaken, bijvoorbeeld het vervangen van de letter P door een M:
MD5 (‘Ma's wijze lynx bezag vroom het fikse aquaduct’) = de1c058b9a0d069dc93917eefd61f510
De hashwaarde van een lege tekenreeks is:
MD5 (‘‘) = d41d8cd98f00b204e9800998ecf8427e
Een andere toepassing van een hashfunctie is het opslaan van een wachtwoord.
Een wachtwoord wordt in principe versleuteld opgeslagen, zodat de wachtwoorden niet bekend worden als het bestand met wachtwoorden door een onbevoegde gelezen wordt. Wanneer het wachtwoord versleuteld is door middel van een hashfunctie, is het onmogelijk de versleutelde gegevens te decoderen. Dat is ook niet nodig, aangezien het voldoende is te controleren of de gebruiker het juiste wachtwoord heeft opgegeven.