Cryptographic hash functions uitgelegd

Cryptographic hash functions uitgelegd

Wat zijn cryptographic hash functions?

Een cryptografische hashfunctie (cryptographic hash function) is een soort wiskundige formule die een stukje informatie (bijvoorbeeld een tekst, bestand of wachtwoord) omzet in een korte “vingerafdruk” van vaste lengte. Zo’n vingerafdruk noemen we een hashwaarde.

Een hashwaarde ziet er meestal uit als een lange reeks cijfers en letters. Bijvoorbeeld, als je het woord "Hallo" door de hashfunctie SHA-256 (een bekende hashfunctie die wordt gebruikt door Bitcoin) haalt, krijg je:

185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969

Ongeacht hoe vaak of op welke computer je dit doet: zolang de invoer “Hallo” is, blijft de hashwaarde exact hetzelfde. De hash is dus gekoppeld aan een specifiek stukje informatie. Dat maakt het een betrouwbare manier om te controleren of gegevens niet veranderd zijn.


Korte samenvatting

  • Hashfuncties maken een digitale vingerafdruk van gegevens: dezelfde invoer geeft altijd dezelfde hash, maar kleine wijzigingen leveren een totaal andere uitkomst op.

  • Hashes zijn niet omkeerbaar: uit de hash kun je de originele data niet reconstrueren, wat ze geschikt maakt voor beveiliging en blockchains.

  • Toepassingen zijn breed: o.a. veilige opslag van wachtwoorden, integriteitscontrole, digitale handtekeningen en blockchaintransacties.

  • Veiligheid verschilt per algoritme: MD5 en SHA-1 zijn gebroken en onveilig, terwijl SHA-2 en SHA-3 nog steeds als veilig worden beschouwd.

  • In blockchains zijn hashes cruciaal: ze koppelen blokken aan elkaar, beveiligen transacties en maken Proof of Work-mining mogelijk .


Toepassingen van een hashfunctie

Een hashwaarde wordt vaak gebruikt bij de digitale beveiliging van data, communicatie en systemen. Je komt ze onder andere tegen bij:

  • Opslag van wachtwoorden: in plaats van wachtwoorden in platte tekst op te slaan, bewaart een systeem alleen de hashwaarde.
  • Integriteitscontrole: bij downloads of software-updates wordt een hash meegegeven zodat gebruikers kunnen controleren of het bestand niet is aangepast.
  • Digitale handtekeningen en certificaten: hashfuncties zorgen ervoor dat een ondertekend document niet ongemerkt gewijzigd kan worden.
  • Blockchains: elke transactie en elk blok wordt door hashing beveiligd, waardoor de keten onveranderlijk blijft.

Eigenschappen van een hashfunctie

Belangrijke eigenschappen van een hashfunctie zijn:

  • Zelfde input, zelfde output
    Voer je dezelfde gegevens in, dan krijg je altijd exact dezelfde hash. Neem als voorbeeld een wachtwoord. Het systeem slaat alleen de hash van je wachtwoord op. Als je later opnieuw probeert in te loggen, kijkt het systeem of de hash exact overeenkomt met de nieuwe hash die wordt berekend uit de ingevoerde waarde. Alleen op die manier krijg je toegang.

  • Niet omkeerbaar
    Een hash is niet terug te rekenen naar de originele invoer. Dit maakt het uitermate geschikt voor een blockchain. Elk blok in de blockchain bevat namelijk een unieke hash (en soms meerdere hashes) met daarin transacties verwerkt. Daarnaast bevat het de hash van het vorige blok. Probeert iemand een transactie te manipuleren, dan verandert dit meteen de hash. Omdat deze hash ook in het volgende blok staat, verandert de hele keten. Dit wordt direct opgemerkt door de validators of miners. Een aanvaller zou alle volgende blokken opnieuw moeten berekenen, wat praktisch onhaalbaar is. Dit maakt manipulatie onmogelijk.

  • Gevoelig voor kleine veranderingen
    Verander je één letter of zelfs één bit, dan ziet de hash er totaal anders uit. Voorbeeld: ‘Wereld’ heeft een heel andere hash dan ‘Werelt’, terwijl de woorden sterk op elkaar lijken.

  • Botsingen voorkomen
    Een botsing betekent dat twee verschillende inputs dezelfde hash hebben. Dit is in theorie mogelijk, maar bij veilige hashfuncties vrijwel onmogelijk. Voorbeeld: bij SHA-256 zou je miljarden jaren nodig hebben om genoeg hashes te genereren voordat je toevallig twee dezelfde vindt. Oudere varianten zoals MD5 en SHA-1 zijn hier kwetsbaar voor en worden daarom niet meer gebruikt.

Hoe werken hashfuncties?

Het proces dat hashfuncties uitvoeren noemen we hashing. Een hashfunctie is het algoritme dat de berekening uitvoert, terwijl hashing het proces is van het toepassen van die functie op data.

Inputverwerking

De gegevens (tekst, bestand, wachtwoord, enz.) worden opgedeeld in blokken van vaste grootte.
Voorbeeld: “Hallo” wordt in blokken verdeeld van bijvoorbeeld 512 bits. Omdat het korter is, wordt er extra padding toegevoegd.

Wiskundige transformaties

Elk blok gaat door bewerkingen zoals bitverschuivingen, permutaties en modulaire optellingen.
Voorbeeld: “Hallo” levert na SHA-256 hashing op:

185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969

Combineren (compressie of sponge)

De resultaten worden samengevoegd in een interne toestand.

  • Bij SHA-2 via een compressiefunctie
  • Bij SHA-3 via een sponge-constructie

Uitvoer

Na de laatste berekening blijft een hashwaarde over.
Voorbeeld:
“Hallo” → 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
“Hallo!” → 334d74c95ed3ceec833219cd94ef7a8320b9c9d98c14b622d0535fbe7bb3f3a4

Wat is het Avalanche-effect?

Het avalanche-effect zorgt ervoor dat het onmogelijk is om hashes van elkaar af te leiden, doordat zelfs kleine verschillen in de invoer leiden tot een volledig andere hashwaarde. Ook al lijken de ingevoerde waarden sterk op elkaar, toch ontstaat er een compleet andere cijfer- en letterreeks. Dit maakt het onmogelijk om uit hashes af te leiden hoe de originele data eruitzag of hoe sterk twee inputs op elkaar lijken.

Welke hashfuncties zijn er?

Door de jaren heen zijn er verschillende cryptographic hash functions ontwikkeld of verbeterd. Bekende hashfuncties zijn:

  • MD5 In de jaren 90 is MD5 ontwikkeld, als opvolger van eerdere MD-algoritmen. Dit algoritme produceert een 128-bits hash en is jarenlang gebruikt voor bestandscontrole en digitale certificaten. MD5 wordt tegenwoordig als onveiligbeschouwd, omdat er dankzij de korte uitvoer en zwakke opbouw sinds 2004 gevallen bekend zijn waarbij twee verschillende inputs toch dezelfde hashwaarde opleveren. Dit noemen we een collision (botsing). Hierdoor wordt MD5 tegenwoordig alleen nog gebruikt voor simpele toepassingen, maar niet meer voor beveiliging.

  • SHA-1 SHA-1 was lange tijd de standaard voor digitale handtekeningen en SSL-certificaten. Het is een algoritme met een 160-bits hash. In 2017 demonstreerden Google en CWI Amsterdam een collision: zij maakten twee verschillende PDF-bestanden met exact dezelfde SHA-1 hash. Dit liet zien dat het in de praktijk mogelijk is om een hash te vervalsen. Hierdoor is SHA-1 sindsdien cryptografisch gebroken en wordt het als onveilig beschouwd. Grote browsers en certificaatautoriteiten ondersteunen het daarom niet meer.

  • SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512) De opvolger van SHA-1 is SHA-2. Dit hash-algoritme gebruikt blokken van 512 of 1024 bits en produceert uitvoer van 224, 256, 384 of 512 bits. Een bekend SHA-2 systeem is SHA-256, dat wordt gebruikt om de blockchain van Bitcoin te beveiligen. SHA-512 is efficiënter op 64-bit systemen. Tot nu toe zijn er geen succesvolle aanvallen bekend die de veiligheid van SHA-2 bedreigen, waardoor het nog steeds een van de meest gebruikte cryptografische hashfuncties is.

  • SHA-3 (Keccak) In 2007 ontwikkelden Guido Bertoni, Joan Daemen, Michaël Peeters en Gilles Van Assche het algoritme Keccak, dat in 2015 door NIST als nieuwe hashstandaard werd aangenomen onder de naam SHA-3. Het is aangenomen als een alternatief naast SHA-2, voor het geval daar in de toekomst zwakheden in gevonden worden.SHA-3 wordt momenteel nog niet veel in de praktijk toegepast, omdat SHA-2 nog steeds veilig is, breed wordt ondersteund in hardware en diep ingebouwd is in protocollen zoals TLS en SSL-certificaten.

Hashfuncties in cryptocurrency en blockchain

Hashfuncties spelen een cruciale rol in blockchains. Hashing wordt namelijk gebruikt voor het beveiligen van transacties, het verbinden van blokken en vormt de kern voor blockchains die transacties valideren door middel van mining. Blockchains die het Proof of Work-consensus mechanisme gebruiken, zetten rekenkracht van computers in om hashpuzzels op te lossen.

Enkele voorbeelden van populaire projecten:

  • Bitcoin → SHA-256 (voor mining en het hashen van blokken).
  • Litecoin → scrypt (sneller en minder ASIC-gevoelig dan SHA-256).
  • Zcash → Equihash (geheugen-intensief, ontworpen voor eerlijkere mining).
  • Dogecoin → scrypt (zelfde algoritme als Litecoin, waarmee het merge-mined wordt).
  • Ripple (XRP Ledger) → SHA-512/256 (een ingekorte variant van SHA-512).
  • Algorand → SHA-512/256 (voor sleutelgeneratie en digitale handtekeningen).

Conclusie

Cryptografische hashfuncties vormen een onmisbare bouwsteen binnen de digitale wereld. Ze bieden een betrouwbare manier om gegevens te beveiligen, integriteit te waarborgen en complexe systemen zoals blockchains mogelijk te maken. Hoewel oudere algoritmen zoals MD5 en SHA-1 door bewezen kwetsbaarheden niet meer veilig zijn, blijven moderne varianten zoals SHA-2 en SHA-3 robuust en essentieel voor hedendaagse toepassingen.

De kracht van hashfuncties ligt in hun eenvoud en effectiviteit: éénrichtingsfuncties die kleine verschillen in input omzetten naar compleet andere uitkomsten, zonder dat de oorspronkelijke data kan worden achterhaald. Daarmee zijn ze niet alleen cruciaal voor wachtwoordbeveiliging en digitale handtekeningen, maar ook voor de werking van cryptocurrencies en het bredere internet.

Hashfuncties zullen in de toekomst een sleutelrol blijven spelen, zowel in bestaande toepassingen als in nieuwe innovaties op het gebied van blockchain, digitale veiligheid en cryptografie.

Over Finst

Finst is een van de toonaangevende cryptocurrency-aanbieders in Nederland en biedt een eersteklas investeringsplatform samen met institutionele veiligheidsnormen en ultra-lage handelskosten. Finst wordt geleid door het ex-core team van DEGIRO en is geautoriseerd als aanbieder van cryptoactivadiensten door de Autoriteit Financiële Markten (AFM). Finst biedt een volledig pakket aan crypto-diensten, waaronder handel, bewaring, fiat on/off ramp en staking voor zowel particuliere als institutionele beleggers.

Het cryptoplatform dat je geweldig gaat vinden

We zijn hier om je de tools, inspiratie en ondersteuning te geven die je nodig hebt om een betere investeerder te worden.