Cryptografische hashfunctie

De Merkle-Damgård-structuur is een fundamenteel ontwerpprincipe voor cryptografische hashfuncties. Dit model werd in de late jaren 80 ontwikkeld door Ralph Merkle en Ivan Damgård en vormt de kern van veel bekende hashfuncties, zoals bijvoorbeeld MD5, SHA-1 en SHA-2. En hoewel deze structuur decennialang als veilig werd beschouwd, heeft moderne cryptografie enkele zwakke plekken blootgelegd.

 

Blok van een blockchain met binaire getallen

 

Vaste blokken

De Merkle-Damgård-structuur zet een variabele lengte input om in een vaste lengte hash. Dit gebeurt door de input op te splitsen in vaste blokken, die vervolgens sequentieel worden verwerkt door een compressiefunctie. Dat proces werkt als volgt:

Padding:

De input wordt opgevuld tot een veelvoud van de blokgrootte.

Initialisatie:

Een vaste beginwaarde, de ‘initialization vector’ (IV) wordt ingesteld.

Iteratief proces:

Ieder blok wordt verwerkt door de compressiefunctie, die telkens de vorige output gebruikt als input voor het volgende blok.

Hash-output:

Na het laatste blok ontstaat de uiteindelijke hashwaarde.

 

Sterkteafhankelijke compressiefunctie

Door het iteratieve karakter is de Merkle-Damgård-structuur eenvoudig te implementeren. Bovendien is er sprake van een sterkteafhankelijke compressiefunctie. Als de compressiefunctie veilig is, blijft de hashfunctie veilig. Veel bestaande systemen en protocollen vertrouwen op deze structuur. Ondanks deze voordelen heeft de Merkle-Damgård-structuur ook enkele zwakke punten. Zo kunnen aanvallers bijvoorbeeld een bekende hash uitbreiden zonder de originele input te kennen (lengte-extensieaanval). Daarnaast zijn er bij MD5 en SHA-1 zogenaamde ‘hashbotsingen‘ gevonden, waardoor ze onveilig zijn.

 

Gebrek aan interne randomisatie

Ook is er gebrek aan interne randomisatie, waardoor sommige aanvallen eenvoudiger zijn dan bij nieuwere cryptografische modellen. Interne randomisatie houdt in dat een hashfunctie een vorm van willekeurigheid toevoegt binnen het verwerkingsproces, waardoor aanvallen moeilijker worden. De Merkle-Damgård-structuur mist deze eigenschap, omdat elke invoer volgens een strikt deterministisch proces door een compressiefunctie gaat. Hierdoor is de structuur kwetsbaar voor aanvallen zoals een lengte-extensieaanval. Vanwege deze kwetsbaarheden zijn er inmiddels nieuwe hashmethoden ontwikkeld, zoals SHA-3 (keccak). SHA-3 maakt gebruik van een zogenaamde ‘sponge-constructie’, die flexibeler is en beter bestand tegen aanvallen.

Bitcoins

Bitcoin

Bitcoin maakt gebruik van SHA-256, een hashfunctie die is gebaseerd op de Merkle-Damgård-structuur. SHA-256 speelt een zeer belangrijke rol bij de beveiliging van transacties en de structuur van blokken in de blockchain. Iedere transactie wordt gehashed en samengevoegd in een zogenaamde ‘Merkle Tree’, een efficiënte manier om grote hoeveelheden data te verifiëren. En hoewel SHA-256 betrouwbaar is, hebben nieuwe ontwikkelingen zoals SHA-3 en alternatieve hashmethoden aandacht gekregen vanwege verbeterde veiligheidseigenschappen.

 

Revolutionaire stap in cryptografie

De Merkle-Damgård-structuur was een revolutionaire stap in cryptografie. Veel klassieke hashfuncties zijn erop gebaseerd, maar de beveiliging van digitale systemen evolueert, en nieuwe methoden (zoals de sponge-constructie) lossen de bekende zwakke plekken op. Toch blijft de Merkle-Damgård-structuur een belangrijk concept binnen de cryptografie, zowel historisch als in moderne toepassingen.

 

Op de hoogte blijven van de ontwikkelingen op het gebied van blockchaintechnologie? Meld je dan nu aan voor de blogpost!

 

Meld je aan voor de blogpost!
Ik ga ermee akkoord dat mijn naam en e-mailadres worden gedeeld met Mailchimp.
Met de blogpost van Uitleg Blockchain blijf je automatisch op de hoogte van de nieuwste ontwikkelingen omtrent de blockchain technologie.
We hebben een hekel aan spam. Uw e-mailadres zal niet worden verkocht of gedeeld met anderen (afgezien van het marketing automation platform dat wij gebruiken voor onze e-maillijst).