Hashketen: hoe een simpele wiskundige truc digitale sporen vervalsingsbestendig maakt
Een hashketen (in het Engels: hash chain) is een reeks digitale "vingerafdrukken" die stuk voor stuk uit elkaar zijn afgeleid, zodat je achteraf kunt bewijzen dat niets in de reeks is aangepast. Stel je een rij genummerde enveloppen voor, elk verzegeld met een lakstempel. Het bijzondere: het stempel op envelop 5 is deels gemaakt met een afdruk van het stempel op envelop 4, dat weer een afdruk bevat van stempel 3, enzovoort, terug tot de eerste envelop. Open of verander je ergens in het midden een envelop, dan klopt vanaf dat punt geen enkel stempel meer met de rest van de rij.
Die enveloppen zijn in de digitale wereld bestanden, transacties of berichten, en de lakstempels zijn zogeheten hashwaarden: korte, vaste-lengte reeksen tekens die een computer berekent uit willekeurige data. Een hashketen koppelt die hashwaarden aan elkaar, zodat de geschiedenis van een reeks gebeurtenissen achteraf te controleren is zonder dat er een centrale scheidsrechter nodig is die alles bijhoudt. Het is een klein, wiskundig trucje met grote gevolgen: het ligt aan de basis van onder meer blockchain-technologie, digitale tijdstempels en bepaalde inlogmethoden.
Wat is het precies?
De bouwsteen van een hashketen is een hashfunctie: een wiskundig recept dat van elk stuk digitale data (een tekst, een foto, een transactie) een vaste-lengte reeks tekens maakt, de "hash" of "digest" genoemd. Bekende voorbeelden van zulke recepten zijn SHA-256 en SHA-3, vastgelegd door het Amerikaanse standaardisatie-instituut NIST. Een goede hashfunctie heeft twee belangrijke eigenschappen: ze is eenrichtingsverkeer (uit de hash kun je onmogelijk de oorspronkelijke data terugrekenen) en ze is uiterst gevoelig voor verandering (verander je één letter in de invoer, dan verandert de hash volledig en onvoorspelbaar).
Een hashketen ontstaat door een hashfunctie herhaaldelijk toe te passen, of door telkens de hash van een nieuw stukje data samen te voegen met de hash van het vorige element. Symbolisch: h1 = hash(gegeven 1), h2 = hash(gegeven 2 + h1), h3 = hash(gegeven 3 + h2), enzovoort. Elke schakel "weet" dus iets over alle schakels ervoor. Wil iemand achteraf gegeven 2 vervalsen, dan verandert h2, en daarmee ook h3 en alle volgende schakels — de vervalsing valt meteen op zodra iemand de keten opnieuw doorrekent en vergelijkt met een eerder bewaarde of gepubliceerde uitkomst.
Er bestaat een verwant maar ander concept: de Merkle-boom (vernoemd naar cryptograaf Ralph Merkle, die het idee eind jaren zeventig beschreef). Waar een hashketen de gegevens lineair aan elkaar rijgt, zoals kralen aan een snoer, vertakt een Merkle-boom de gegevens in een boomstructuur. Beide technieken dienen hetzelfde doel — aantoonbare onveranderlijkheid — maar een boom is efficiënter als je snel wilt controleren of één specifiek gegeven ergens "in" een grote verzameling zit, zonder de hele reeks te hoeven doorlopen.
Wat wil men ermee bereiken?
Het kernprobleem dat een hashketen oplost is vertrouwen zonder toezichthouder. In de fysieke wereld vertrouwen we vaak op een notaris, bank of overheidsinstantie om vast te leggen dat een document op een bepaald moment bestond en niet later is aangepast. Digitaal is dat lastiger: bestanden kunnen in principe onopgemerkt worden gewijzigd, ook met terugwerkende kracht, tenzij er een technisch bewijs is dat dit tegenspreekt.
Een hashketen levert dat bewijs zonder dat alle betrokkenen een centrale partij hoeven te vertrouwen. Iedereen die de keten controleert, kan zelf narekenen of de hashes kloppen; er is geen geheime sleutel of vertrouwenspersoon voor nodig. Dat maakt de techniek aantrekkelijk voor toepassingen waarin manipulatie kostbaar of gevaarlijk zou zijn: financiële transacties, medische dossiers, juridisch bewijsmateriaal, software-updates of stemuitslagen.
Daarnaast wordt de techniek gebruikt voor authenticatie: bij eenmalige wachtwoorden (one-time passwords) genereert een gebruiker vooraf een lange hashketen en geeft bij elke inlogpoging telkens de volgende schakel prijs, van achter naar voren. Een afgevangen wachtwoord is daardoor maar één keer bruikbaar en onthult niets over toekomstige wachtwoorden in de keten.
Voorbeelden uit de praktijk
De informaticus Leslie Lamport beschreef in 1981 in zijn paper "Password Authentication with Insecure Communication" als een van de eersten hoe je met herhaald hashen eenmalige wachtwoorden kunt maken zonder geheimen over een onveilig netwerk te versturen. Dit idee werd begin jaren negentig door Bellcore uitgewerkt tot het systeem S/KEY, een van de eerste praktisch bruikbare one-time-password-systemen.
Het Amerikaanse bedrijf Surety gebruikte in de jaren negentig hashkoppeling om digitale tijdstempels aan te bieden: klanten lieten de hash van een document opnemen in Surety's keten, en de resulterende samengevoegde hashwaarde werd periodiek gepubliceerd in advertenties in The New York Times. Omdat die krant onmogelijk met terugwerkende kracht te vervalsen is, leverde dat een publiek, onafhankelijk controleerbaar bewijs dat een document al vóór een bepaalde datum bestond.
Bitcoin, geïntroduceerd in 2008/2009 door de pseudonieme Satoshi Nakamoto, is het bekendste voorbeeld van hashketen-techniek op grote schaal: elk blok in de blockchain bevat de hash van het voorgaande blok, waardoor de volledige transactiegeschiedenis aan elkaar geketend is. Wie een oud blok zou willen vervalsen, moet in theorie ook alle daaropvolgende blokken herberekenen, wat door het ontwerp van het netwerk vrijwel onbetaalbaar is gemaakt.
Het Estse bedrijf Guardtime ontwikkelde de Keyless Signature Infrastructure (KSI), een op hashkettens en hashbomen gebaseerd systeem dat sinds de jaren 2010 in gebruik is bij Estse overheidsregisters om de integriteit van staatsgegevens (zoals medische en bevolkingsregisters) aantoonbaar te maken, zonder afhankelijkheid van een enkele geheime sleutel.
Ook in bredere zin duiken hashketens op bij software-distributie: pakketbeheerders en updatesystemen gebruiken soms geketende hashes om te garanderen dat een reeks updates in de juiste, ongewijzigde volgorde is geïnstalleerd.
Hoe ver is de techniek?
Hashketens zijn geen opkomende technologie meer, maar een volwassen en breed toegepast bouwblok binnen de cryptografie. Het wiskundige principe staat al decennia vast en de gebruikte hashfuncties (zoals SHA-256) worden voortdurend getoetst door de internationale onderzoeksgemeenschap. Belangrijke mijlpalen zijn de introductie van one-time-password-systemen in de jaren tachtig en negentig, de opkomst van commerciële tijdstempeldiensten in de jaren negentig, en de doorbraak van blockchain-toepassingen sinds 2009.
De belangrijkste huidige uitdaging is niet de hashketen zelf, maar de hashfunctie eronder: oudere functies zoals MD5 en SHA-1 zijn inmiddels "gebroken" gebleken (onderzoekers vonden manieren om twee verschillende bestanden met dezelfde hash te maken, een zogeheten botsing), waardoor systemen die daarop leunen kwetsbaar worden. Beheerders moeten dus regelmatig overstappen op sterkere hashfuncties. Een andere, meer toekomstige zorg is de opkomst van kwantumcomputers: hoewel hashfuncties doorgaans minder kwetsbaar zijn voor kwantumaanvallen dan bijvoorbeeld RSA-versleuteling, onderzoeken standaardisatie-instituten zoals NIST uit voorzorg ook "post-kwantumbestendige" varianten.
Praktische obstakels zitten vooral in de toepassing: een hashketen bewijst dat data niet is gewijzigd sinds het moment van hashen, maar zegt niets over de juistheid van de data op het moment zelf. Vervalste informatie die correct wordt gehasht, blijft even onwrikbaar "bewezen" als correcte informatie. De techniek lost dus een integriteitsprobleem op, geen waarheidsprobleem.
Wie werken eraan?
De theoretische basis komt uit de Amerikaanse academische cryptografie van de late jaren zeventig en jaren tachtig, met werk van onder anderen Ralph Merkle en Leslie Lamport. Standaardisatie van de onderliggende hashfuncties gebeurt vooral via het Amerikaanse NIST (National Institute of Standards and Technology), in samenspraak met de internationale cryptografische onderzoeksgemeenschap, verenigd in organisaties zoals de IACR (International Association for Cryptologic Research).
Op toepassingsniveau zijn het vooral bedrijven en projecten uit de blockchain- en cybersecuritysector die hashketens inzetten: naast Bitcoin en de vele blockchainprojecten die er sindsdien op zijn gebaseerd, is het Estse Guardtime een voorbeeld van een bedrijf dat de techniek specifiek vermarkt voor data-integriteit bij overheden en bedrijven. Ook grote techbedrijven en certificaatautoriteiten passen varianten van geketende of boomvormige hashstructuren toe om logs en certificaten controleerbaar te maken. Universiteiten en onderzoeksinstituten wereldwijd blijven daarnaast de veiligheid van hashfuncties zelf toetsen, wat cruciaal is omdat de betrouwbaarheid van elke hashketen volledig afhangt van de sterkte van de onderliggende functie.