wat is sha-256 hashing algoritme

Wat is SHA-256? Hashing Algoritme van Bitcoin (BTC)

Heb jij jezelf ooit afgevraagd of de eigenaar van een website jouw wachtwoord in kan zien? De kans dat dit kan is ontzettend klein. Een wachtwoord wordt namelijk direct na invoer in de database opgeslagen. Het wordt eerst omgezet naar een hash. Dit is een soort geheimschrift waardoor je de inhoud niet kunt zien. Handig voor wachtwoorden, want zo zorgt men ervoor dat anderen (zoals een hacker) niks met de wachtwoorden kan doen wanneer hij of zij de hash in de database ziet staan.

Hashes zijn zo veilig omdat ze maar één kant op werken. Dit betekent dat je informatie naar een hash kunt omzetten, maar de hash niet kunt terugzetten naar de inhoud. Er zijn verschillende hashing algoritmes, waarvan SHA-256 er één is. Onder andere de Bitcoin (BTC) maakt gebruik het van SHA-256 hashing protocol. Laten we eens gaan kijken naar wat SHA-256 is, hoe SHA-256 werkt en waarvoor het algoritme gebruikt wordt.

Bekijk snel

Wat is SHA-256?

SHA-256 is een hashing algoritme dat tot de SHA-familie behoort. SHA, dat staat voor Secure Hash Algorithm zorgt voor de codering van informatie. Deze codering gebeurt volgens een vooraf bepaald algoritme dat bij niemand bekend is. Dit zorgt ervoor dat niemand een hash terug kan draaien naar zijn oorspronkelijke inhoud. Het is alleen mogelijk om informatie naar een hash om te zetten.

Met SHA-256 kun je een hash creëeren dat uit 256 bits bestaat. Daarvoor moet de tekst wel onder de 264 bits liggen. Alleen dan is het mogelijk om de hash waarde willekeurig te houden.

Waarvoor wordt hashing gebruikt?

Omdat de input bepaalt hoe de output (de hash) eruit ziet, kan men controleren of de inhoud gelijk is aan elkaar. Dat is vooral handig voor bijvoorbeeld wachtwoorden. Veel databases zetten wachtwoorden om naar een SHA-256 hash voordat ze deze in de database opslaan. Zo kunnen mensen die toegang tot de database hebben geen wachtwoorden zien. Zij zien slechts de hash staan, welke niet teruggedraaid kan worden. Wanneer iemand zijn of haar wachtwoord invoert, wordt deze omgezet naar de hash. Vervolgens controleert een applicatie of de hash van het ingevoerde wachtwoord klopt met de hash van het (in de database) opgeslagen wachtwoord.

Ook wordt hashing gebruikt als integriteitsverificatiemiddel om zeker te zijn dat data tijdens het transport niet is gewijzigd. Stel dat jij een e-mail naar iemand stuurt, kun je deze laten omzetten naar een hash. Bij ontvangst wordt gecontroleerd of de hash van de ontvangen e-mail gelijk is aan de hash van de verstuurde e-mail. Is dat niet het geval? Dan heeft iemand de e-mail onderweg aangepast. Wanneer slechts één bit is gewijzigd, ziet de hash er compleet anders uit. Dat begrijp je misschien beter met onderstaande voorbeeld.

Wanneer we 'allesovercrypto' omzetten naar een SHA-256 hash, zie de output er zo uit:

68f96ae80dea69dbe6e8196fa79fb27e9bcc2a170ca4ba9080948dc0874d35a1

Halen we één 'L' weg, dan blijft 'alesovercrypto' over, en ziet de SHA-256 hash er zo uit:

f55818274d9fcd5946048db02909d1bdb694b11cd803816b32508edd96084bda

Wil je zelf een SHA-256 hash maken? Er zijn verschillende websites waar je dat kunt doen, waaronder deze website. In onderstaande video wordt op een eenvoudige en toegankelijke manier uitgelegd wat SHA-256 is. Je zou de video kunnen kijken wanneer je snel meer wilt weten over SHA-256.

De SHA-familie

SHA-256 is onderdeel van de SHA-familie. Er zijn namelijk meerdere hashing algoritmes die onder SHA vallen:

  • SHA-1;
  • SHA-224;
  • SHA-384;
  • SHA-512;
  • SHA-512/224;
  • SHA-512/256;
  • SHA3-224;
  • SHA3-256;
  • SHA3-384;
  • SHA3-512.

SHA-256 is in 2001 door de National Security Agency (NSA) als nieuwe variant op SHA-1 bedacht. Dat was nodig, want SHA-1 werd minder veilig en is ondertussen gebroken. Ieder algoritme in bovenstaande lijst werkt op een iets andere manier. Wat precies het verschil is, is lastig te zeggen. De uitgever van een hashing algoritme zal namelijk nooit vertellen hoe een algoritme precies werkt. Dan zou iedereen de uitkomsten kunnen terugdraaien.

Het grootste verschil is dan SHA-256 een 256-bits string als uitkomst heeft. Ondanks dat er na SHA-256 nog veel nieuwe varianten zijn uitgekomen, wordt SHA-256 nog steeds als de meest veilige en meest gebruiksvriendelijke algoritme uit de SHA-familie gezien.

Waar wordt SHA-256 voor gebruikt?

Je kunt een hashing algoritme verschillende zaken gebruiken. Toch zien we dat bepaalde hashing algoritmes vaak voor specifieke functies gebruikt worden. Zo wordt het ene algoritme vaker voor de codering van wachtwoord gebruikt dan het andere. De afgelopen jaren is SHA-256 steeds vaker in gebruik genomen.

Wachtwoorden

SHA-256 wordt vaak gebruikt voor het hashen van wachtwoorden. Hoe dat werkt, hebben we eerder in dit artikel al uitgelegd. Een wachtwoord wordt eerst omgezet naar een SHA-256 hash voordat deze in de database wordt opgeslagen. Zo is het wachtwoord afgeschermd voor iedereen die toegang tot de database heeft.

SSL-handshake

Ook SSL-handshakes worden met SHA-256 uitgevoerd. Een SSL-handshake is het contact tussen de webserver en browser. Wanneer een website over een SSL-certificaat beschikt (en er https:// voor de URL staat) kan er een beveiligde verbinding met de website worden opgezet. Deze verbinding wordt opgezet middels cryptografie (versleuteling van data) en hashing (waar dus SHA-256 voor gebruikt wordt).

Integriteitsverificatie

Middels SHA-256 wordt gecontroleerd of data er bij ontvangst nog hetzelfde uitziet als bij het verzenden ervan, zonder naar de inhoud te hoeven kijken. Wanneer de hash tussen verzending en ontvangst is gewijzigd, betekent dit dat er met de inhoud geknoeid is.

Verificatie van digitale handtekeningen

Bij digitale handtekeningen (ook wel digital signatures genoemd) wordt een asymmetrische versleuteling-methode gebruikt om de integriteit van een bestand te controleren. Voor het maken van deze digital signatures wordt de private key en public key gebruikt. Dit komt je misschien bekend voor, want zo werkt de beveiliging van cryptocurrency. SHA-256 wordt hierbij gebruikt.

Image
Bitcoin munt met ketting

SHA-256: het hashing algoritme van Bitcoin (BTC)

Bitcoin gebruikt SHA-256 als hashing algoritme. Binnen de blockchain wordt het gebruikt voor mining. Binnen de Bitcoin-blockchain zijn het de miners die zorgen voor de controle van transacties en creatie van blokken. Dat doen zij door rekenkracht te leveren: de miners raden zo veel mogelijk uitkomsten (hashes), totdat hun hash gelijk is aan het juiste antwoord (ook een hash).

Het raden van hash uitkomsten

De hash rate is het aantal combinaties dat een miners per seconde kan raden. Vaak geldt: des te beter de hardware, des te hoger de hash rate. Bitcoin wil graag dat ieder blok in ongeveer dezelfde tijd 'geraden' wordt. Nu is het netwerk van Bitcoin de afgelopen jaren flink gegroeid, wat ook een toename van de rekenkracht betekent. Dit zou betekenen dat de hash rate dus stijgt en blokken sneller toegevoegd kunnen worden. Dat is niet goed, want des te sneller blokken worden toegevoegd, des te kwetsbaarder de blockchain voor aanvallen van buitenaf zal zijn. Er zijn daarom verschillende redenen waarop het netwerk de hash rate kan aanpassen, zoals je in dit artikel kunt lezen.

Het is belangrijk om te onthouden dat de hash dus alle transacties binnen een blok bevat. Er staat al een antwoord klaar, dat ook is omgezet naar een hash. Hiervoor wordt het SHA-256 hashing algoritme gebruikt. De computers moeten dus ontzettend veel verschillende SHA-256 proberen te matchen met de daadwerkelijke oplossing. Lukt een miner dat? Dan mag hij zijn blok toevoegen aan de blockchain en ontvangt de miner een beloning.

Een ketting van blokken

Daarnaast zorgt SHA-256 voor een ketting van blokken. Voordat een blok aan de blockchain wordt toegevoegd, wordt de hash van het vorige blok toegevoegd aan het nieuwe blok. Hierna wordt het nieuwe blok omgezet naar een hash. Dit gebeurt continu opnieuw voor ieder blok dat wordt toegevoegd. Er ontstaat hierdoor een keten van blokken. Dit noemen we de blockchain.

Wanneer iemand de inhoud van een blok probeert te wijzigen (en zichzelf zo bijvoorbeeld meer crypto probeert te geven), zal de hash van het blok veranderen. Dit zorgt ervoor dat er een breuk in de ketting komt. Alle nodes in het Bitcoin-netwerk weten dat deze versie van de blockchain niet klopt, en zullen deze versie dus ook niet overnemen.

Wil je weten hoe het precies zit tussen SHA-256 en Bitcoin? Bekijk dan onderstaande video.

De voor- en nadelen van SHA-256

Hieronder zie je de belangrijkste voor- en nadelen van het SHA-256 hashing algoritme staan.

Voordelen

  • SHA-256 kan maar één richting op gebruikt worden. Je kunt input omzetten naar een hash, maar het is onmogelijk om een SHA-256 terug te zetten naar de inhoud van de hash.
  • Het SHA-256 hashing algoritme wordt door veel grote organisaties (waaronder NIST) gezien als het veiligste en meest bruikbare hashing protocol ter wereld.
  • Veel overheden (waaronder de Verenigde Staten en Australië) maken gebruik van SHA-256, wat het hashing algoritme betrouwbaar maakt.
  • SHA-256 is niet kwetsbaar voor pre-image en second-pre-image aanvallen (de technische details van deze aanvallen besparen we je).
  • Het genereren van hashes met SHA-256 gaat vrij snel.

Nadelen

  • We weten niet zeker of SHA-256 altijd een onbreekbaar (en dus veilig) hashing algoritme blijft. Mochten er ooit sterkere computers worden ontwikkeld, zouden deze het SHA-256 protocol kunnen breken (maar dat weten we dus niet zeker).

Hoe veilig is SHA-256?

SHA-256 is een ontzettend veilig hashing algoritme. Sterker nog, SHA-256 wordt als een van de veiligste hashing protocollen ter wereld gezien. Het algoritme is tot op heden nog nooit gebroken en er zijn drie verschillende redenen waarom SHA-256 zo veilig is.

De eerste reden is dat nog niemand het is gelukt om een hash terug te zetten naar de inhoud ervan. Wanneer dat mogelijk is, zeggen we dat het algoritme 'gebroken' is. Een gebroken algoritme is niet veilig, en kan ook beter nooit meer gebruikt worden. MD5 is een bekend algoritme dat niet veilig is, maar wel (nog steeds) ontzettend vaak gebruikt wordt. SHA-256 is dus ook beschermd tegen brute-force aanvallen.

De tweede reden is dat een 'collision' bijna onmogelijk is. Zo noemen we een gebeuren waarbij de hashes van twee inputs hetzelfde is. Er zijn namelijk 2^256 (meer dan het aantal atomen in ons universum) verschillende mogelijkheden voor de hashes. De kans dat een computer een hash 'per toeval' raad, is hierdoor vrijwel onmogelijk.

De derde en laatste reden waarom SHA-256 zo veilig is, is dat een kleine wijziging zorgt voor een compleet andere hash. Wanneer je maar één bit aanpast, zal de uitkomst van de hash er volledig anders uitzien.

In onderstaande video wordt in slechts 2 minuten nog eens uitgelegd hoe SHA-256 binnen de Bitcoin-blockchain wordt gebruikt.

Conclusie

SHA-256 is een van de vele hashing algoritmes die je kunt gebruiken voor het versleutelen van data. Ondanks dat het al sinds 2001 bestaat, wordt het nog steeds als een van de veiligste hashing protocollen gezien. Niet gek dat Bitcoin dus gebruik maakt van het SHA-256 hashing algoritme. SHA-256  is namelijk iedereen voor de versleuteling van wachtwoorden, het opzetten van een SSL-verbinding, het controleren van de integriteit van bestanden en het verifiëren van digital signatures.

Binnen de blockchain van Bitcoin wordt SHA-256 gebruikt voor mining. Miners leveren computerkracht en proberen zo de hash te raden. Hebben ze de juiste hash gevonden? Dan ontvangen zij een mining beloning. Ook wordt SHA-256 voor het creëeren van een ketting van blokken; de blockchain. Voordat een nieuw blok wordt toegevoegd, wordt de hash van het vorige blok in het nieuwe blok geplaatst. Mocht iemand de geschiedenis van de blockchain willen aanpassen, ontstaat er een breuk in de blockchain. Alle nodes zullen dit direct opmerken en deze versie van de blockchain als niet-betrouwbaar zien.

Ben je op zoek naar meer informatie of heb je nog vragen over SHA-256 of andere crypto onderwerpen? Of wil je graag andere cryptoliefhebbers ontmoeten? In de gratis Discordkanalen van ons product Money Mastery van AllesOverCrypto kun je vragen stellen en kom je in gesprek met duizenden andere liefhebbers van crypto. Heb je andere crypto gerelateerde vragen? Het makkelijkste is om jouw vraag in onze FAQ op te zoeken. Wat je ook kunt doen, is dat je jouw vraag + AllesOverCrypto googelt. Laat vooral weten wat jouw gedachten over dit artikel is.

Headerfoto door tdhster


Wij vieren heel december feest! Vier jij met ons mee?

Open elke dag je adventskalender en claim je gratis prijs!

Ontdek je prijs!

 

December Feestmaand!

 

Alle uitingen van AllesOverCrypto, waaronder begrepen alle producten (o.a. Crypto Signalen en de Crypto Masterclass), berichten en e-mails, zijn de professionele mening van AllesOverCrypto en kan op géén enkele wijze worden opgevat als een persoonlijke uitnodiging, een advies of enige aanbeveling om tot aankoop van één of meer cryptovaluta over te gaan en daarin te beleggen. AllesOverCrypto is geen financieel adviseur en beoogt dat uitdrukkelijk ook niet te zijn.

De uitingen van AllesOverCrypto hebben uitsluitend een educatief karakter en kunnen op geen enkele wijze als financieel, juridisch of fiscaal advies worden opgevat. AllesOverCrypto is geen financieel, juridisch- en/of fiscaal adviseur. Er komt geen adviesrelatie tot stand tussen jou en AllesOverCrypto.

De door AllesOverCrypto gepresenteerde informatie is door haar met de grootste aandacht en zorg samengesteld. AllesOverCrypto kan echter niet instaan voor de juistheid en/of volledigheid ervan. Het gebruik van deze informatie gebeurt op jouw eigen risico. Je dient ervan bewust te zijn dat de gepresenteerde informatie, mede door de snelheid waarmee de cryptomarkt zich beweegt, al snel achterhaald is dan wel kan zijn. Wees hiervan bewust bij het bestuderen van de informatie. Daarnaast wordt uitdrukkelijk verzocht de informatie zelf te verifiëren.

Eenieder die in één of meer cryptovaluta wil beleggen dient zijn/haar eigen onderzoek te doen alvorens een beslissing te nemen tot aan- of verkoop van cryptovaluta. AllesOverCrypto is op geen enkele wijze bij dit proces betrokken. Uitsluitend jijzelf bent verantwoordelijk voor jouw eigen aan-en verkoopbeslissingen. Het aankopen van cryptovaluta brengt vanwege de aard van het product en de volatiliteit van de cryptomarkt grote risico’s met zich mee. Deze risico’s zijn zo groot dat het zelfs mogelijk is je hele aankoopbedrag te verliezen. Koop dus geen cryptovaluta die je niet kunt veroorloven te verliezen.