Wat is SHA-256 en hoe werkt het?

SHA-256

Wat is SHA-256?

SHA-256 is een cryptografische hashfunctie die gegevens omzet in een vaste, unieke reeks van 256 bits. SHA-256, ook wel Secure Hash Algorithm 256-bit genoemd, wordt wereldwijd gebruikt om allerlei verschillende data te beveiligen, van wachtwoorden tot blockchaintransacties. Het maakt deel uit van de SHA-2-familie (naast SHA-224, SHA-512 enzovoort). Deze cryptografische beveiliging is in 2001 ontwikkeld door de National Security Agency (NSA) en wordt inmiddels veel gebruikt in de cryptowereld. Zo gebruikt Bitcoin SHA-256 om te garanderen dat transacties echt en onveranderlijk zijn.

Het kan allemaal wat technisch klinken, maar in principe is het redelijk simpel: je geeft de SHA-256 data (bijvoorbeeld in de vorm van een tekst, een bestand of een Bitcoin transactie), waarvan dan een soort digitale vingerafdruk wordt gemaakt. Voor vrijwel alle praktische doeleinden levert elke invoer een unieke hash op, hoewel er altijd een zeer kleine kans is op een collision waarbij twee verschillende inputs dezelfde output hebben. Maar bijna altijd geldt dat de kleinste verandering in een woord een totaal andere hashwaarde (output) geeft. Daarmee is het extreem gevoelig voor veranderingen.

Voorbeeld:
Finst -> 270312fddfd739dd8cb5e62505f65d8892594665da8b0554a9b01d5ebfd65b30
finst -> ebabf828a572063a5d69bd3487b3a589a9082a4bb3edc6d9c4e3c2c264a6c34b

In dit voorbeeld hierboven is alleen de letter F van een hoofdletter naar kleine letter veranderd. Zoals je ziet, krijg je een totaal andere hashwaarde.


Korte samenvatting

  • SHA-256 is een cryptografische hashfunctie die data omzet in een vaste reeks van 256 bits.
  • Het algoritme is eenrichtingsverkeer: de hash kan niet worden terugvertaald naar de originele invoer.
  • Kleine veranderingen in de invoer leiden tot een volledig andere hash, wat zorgt voor hoge veiligheid.
  • Bitcoin en andere blockchains gebruiken SHA-256 om transacties te beveiligen en te verifiëren via Proof-of-Work.
  • SHA-256 wordt ook gebruikt voor wachtwoordbeveiliging en het controleren van data-integriteit.

Hoe werkt een hashfunctie zoals SHA-256 precies?

Een hashfunctie zoals SHA-256 is een wiskundige procedure waarbij de invoer van willekeurige lengte om wordt gezet in een uitvoer van een vaste lengte. Daarbij is het deterministisch, wat betekend dat de invoer altijd dezelfde hash oplevert. Hierdoor is een hashfunctie een eenrichtingsproces, waarbij de hash nooit kan worden terugvertaald naar de oorspronkelijke data. Elke aanpassing zorgt voor een andere output, waardoor een hashfunctie juist kan controleren of de invoer hetzelfde is. Denk bijvoorbeeld aan een wachtwoord: het wachtwoordbeveiligingssysteem weet niet alle wachtwoorden van alle accounts, maar het controleert of de hash overeenkomt met die van wat jij invult.

Hashfuncties zijn er in verschillende vormen, maar de SHA-256 heeft zijn eigen technische eigenschappen en manier waarop het algoritme te werk gaat. Hier is een technische uitleg hoe het proces van een SHA-256 hashfunctie in grote lijnen te werk gaat:

  • Blokverdeling: Omdat SHA-256 niet alles tegelijkertijd kan verwerken, wordt de invoer eerst in blokken opgedeeld van 512 bits (ongeveer 64 bytes per stuk). Mocht het laatste blok te kort zijn, dan wordt het gewoon opgevuld zodat alles netjes even groot is.
  • Startwaarden: Voordat het daadwerkelijk begint met rekenen, gebruikt de SHA-256 eerst acht standaard beginwaarden. Deze kun je zien als een soort startgetallen die voor consistentie zorgen in het algoritme.
  • 64 rondes verwerken: Vervolgens wordt elk stukje data 64 keer bewerkt en door elkaar gehaald. Dit gebeurt allemaal met wiskundige handelingen, zoals verschuivingen en combinaties van bits. Je kunt dit vergelijken met het schudden van een kaartspel, je wilt ervoor zorgen dat het resultaat volledig onvoorspelbaar wordt en niemand de exacte volgorde kan raden.
  • Koppeling tussen blokken: Zodra een stukje data klaar is, zorgt SHA-256 ervoor dat het resultaat daarvan weer wordt gebruikt om het volgende stukje te vergelijken. Op deze manier wordt er stap voor stap aan een output gebouwd.
  • Eindhash (output): Als alle blokjes klaar zijn, wordt de laatste waarde tot één eindresultaat getransformeerd, dit is de 256-bits hash, oftewel een unieke reeks van nummers en cijfers van 64 tekens. Oftewel, een digitale vingerafdruk van jouw input, die uniek is en onmogelijk terug te draaien.

Dit gehele proces wordt in minder dan een seconde gedaan en zorgt voor een zeer hoge veiligheid.

SHA-256 in cryptocurrencies en blockchain

SHA-256 is een belangrijk onderdeel van de grootste cryptocurrency Bitcoin en wordt daarnaast ook door vele andere blockchains van altcoins gebruikt.
Het wordt in deze systemen gebruikt om transacties veilig, onveranderlijk en controleerbaar te maken, zonder dat daar een centrale partij voor nodig is.

  • SHA-256 hasht transacties

Van alle transacties op een blockchain worden er een hashfunctie gemaakt. Deze unieke hash dient als een soort ID of vingerafdruk van die transactie. Op deze manier kan iedereen op elk moment controleren of de gegevens kloppen, zelfs zonder dat iemand hiervoor de volledige inhoud moet zien.

  • Proof-of-Work (PoW)

In het gehele miningproces van Bitcoin (genaamd Proof-of-Work) worden er SHA-256-hashfuncties gebruikt. Bitcoin kan namelijk worden gemined door een cryptografische puzzel op te lossen. Dit proberen duizenden Bitcoin miners door continu kleine waarden (de zogenoemde nonce en tijdstempel) aan te passen en telkens de SHA-256 hiervoor uit te rekenen. Dit allemaal miljoenen keren per seconde.

De eerste Bitcoin miner die de juiste hash vindt, mag het nieuwe blok aan de blockchain toevoegen en ontvangt hiervoor een beloning in Bitcoin.

  • De blockchain

Daarnaast heeft elk blok in de blockchain de hash van het vorige blok en zo wordt de keten van de blockchain aangevuld. Zo kunnen gebruikers van de blockchain over de gehele wereld transacties uitvoeren zonder dat iemand alles moet controleren, maar wordt er juist volledig vertrouwd in de blockchain.

  • Wallet-adressen

De openbare wallet-adressen (public keys) bestaan eigenlijk uit een onhandig lange reeks van tekens. SHA-256 wordt gebruikt als onderdeel van het proces om publieke sleutels te hashen bij het genereren van Bitcoin-wallets. Zo kunnen gebruikers hun Bitcoin-adres veiliger opslaan en gemakkelijker delen.

Waarom wordt SHA-256 als extreem veilig beschouwd?

Er zijn vier belangrijke eigenschappen van SHA-256 waarmee het als extreem veilig wordt beschouwd:

Eigenschap Uitleg
Eenrichtingsverkeer De hash kan niet worden teruggedraaid naar de originele invoer.
Uniforme verdeling Kleine wijzigingen leiden tot compleet verschillende hashes.
Gigantisch veel mogelijkheden 2²⁵⁶ mogelijke hashes, dat is meer dan het aantal atomen in het universum.
Bestand tegen aanvallen Door de vele mogelijkheden kunnen zelfs moderne computers de originele data uit de hash niet terugrekenen.

Kunnen kwantumcomputers Bitcoin in de toekomst hacken?

Vandaag de dag wordt er veel gespeculeerd over de komst van kwantumcomputers en of deze de beveiliging van cryptocurrencies kunnen doorbreken. Deze futuristische machines kunnen in theorie extreem complexe berekeningen uitvoeren die de huidige computers nooit zouden kunnen doen. Daarmee is de vraag ontstaan: Loopt Bitcoin gevaar als kwantumcomputers werkelijkheid worden?

Het korte antwoord is: nee, niet direct, maar op de lange termijn moet men toch opletten. Kwantumcomputers zouden volgens sommige onderzoekers in de toekomst mogelijk bepaalde onderdelen van Bitcoin kunnen aanvallen. Zo zouden de digitale handtekeningen (ECDSA) kwetsbaar kunnen zijn volgens sommige.

De SHA-256-hashfunctie zelf is voorlopig veilig. Hoewel een kwantumcomputer theoretisch gezien veel meer berekeningen kan doen, blijft de beveiliging nog altijd gigantisch sterk door de vele mogelijkheden die er zijn.

Voor nu is er dus geen reden tot paniek, omdat deze kwantumcomputers nog niet op de schaal bestaan die nodig is om Bitcoin daadwerkelijk te hacken. Daarnaast werkt de Bitcoin-community al aan een post-quantum-cryptografie, een nieuwe beveiligingsmethode die bestand moet zijn tegen toekomstige kwantumaanvallen.

Waarom is SHA-256 belangrijk?

SHA-256 zorgt voor veiligheid voor drie belangrijke onderdelen in de digitale wereld:

  • Beveiliging van gegevens

SHA-256 hashfuncties worden gebruikt om gevoelige informatie veilig op te slaan. Zoals dat websites niet jouw wachtwoord bewaren, maar de hash van het wachtwoord. Als je wil inloggen, wordt het wachtwoord dat je invult opnieuw gehasht. Als deze twee exact overeenkomen, dan kun je inloggen. Zo kan niemand jouw wachtwoord lezen.

  • Het zorgt voor vertrouwen in de blockchain

Verschillende blockchains gebruiken SHA-256 om te garanderen dat transacties echt zijn en niet meer kunnen veranderen. Zo wordt elke transactie gehasht. Mocht er gefraudeerd worden met transacties, dan is dit direct af te lezen aan de afwijkende hash. Zoals eerder genoemd gebruiken Bitcoin miners in het Proof-of-Work consensusalgoritme SHA-256 om blokken te valideren en uiteindelijk toe te voegen aan de blockchain.

  • Controle van integriteit

SHA-256 wordt ook veel gebruikt om te controleren of bestanden, berichten of andere data niet gemanipuleerd zijn. Dit wordt gedaan simpelweg door de hash te bekijken. Als deze is veranderd, weet je dat er iets in je data is veranderd.

Conclusie

SHA-256 is een van de belangrijkste pijlers van digitale beveiliging. Door zijn sterke wiskundige structuur en eenrichtingskarakter zorgt het ervoor dat data veilig, betrouwbaar en onveranderlijk blijft. Of het nu gaat om het beveiligen van wachtwoorden, het controleren van bestanden of het vastleggen van transacties in de blockchain, SHA-256 garandeert dat de informatie authentiek is en niet kan worden aangepast. Dankzij deze eigenschappen vormt het de basis van vertrouwen in veel moderne technologieën, van websites tot cryptocurrencies. Kortom: zonder SHA-256 zou een groot deel van onze digitale wereld een stuk minder veilig zijn.

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.