Een hash of scatter-functie berekent een controlewaarde/hashwaarde of hash voor een bericht. De controlewaarde heeft een vaste lengte die niet afhangt van het bericht. Hashes worden meestal gebruikt om de integriteit van gegevens te waarborgen. Daarom moeten hashfuncties de volgende eigenschappen hebben:
- Botsingbestendig: verschillende berichten genereren verschillende hashes
- Onomkeerbaar: het bericht kan alleen met grote moeite uit de hashwaarde worden gehaald.
Hashes kunnen eigenlijk niet omgekeerd worden, omdat hashes éénrichtingsfuncties zijn. Dit betekent dat elke tekst die een bepaalde hash genereert, niet gemakkelijk kan worden omgekeerd naar de oorspronkelijke tekst.
Je kunt wel proberen om met behulp van vooraf berekende tabellen of door brute kracht (brute force) een geldige tekst te vinden die de bijbehorende hash genereert.
Lees meer over Hashes op Wikipedia (en)
Message Digest
GC Wizard biedt de volgende Message Digest functies
- MD2
- MD4
- MD5
MD2
Message-Digest Algorithm 2 is een hashfunctie gepubliceerd door Ronald L. Rivest in 1988. Het algoritme genereert een controlecijfer van 128 bits dat genoteerd wordt als een hexadecimaal nummer van 32 cijfers. Een hexadecimaal nummer gebruikt de cijfers 0 tot en met 9 en de letters A tot en met F om waarden weer te geven.
Lees meer over MD2 op Wikipedia (en)
MD4
Message-Digest Algorithm 4 is een hashfunctie die is gepubliceerd door Ronald L. Rivest in 1990.
Het algoritme genereert een 128-bits controlecijfer dat wordt geschreven als een 32-cijferig hexadecimaal getal.
MD4 wordt nu niet langer als veilig beschouwd, omdat het mogelijk is om met beheersbare inspanning verschillende berichten te maken die dezelfde MD4-hashwaarde hebben.
Lees meer over MD4 op Wikipedia (en)
MD5
Message-Digest Algorithm 5 is een hash-functie die in 1991 is gepubliceerd door Ronald L. Rivest.
Het algoritme genereert een 128-bit controlegetal dat wordt geschreven als een 32-cijferig hexadecimaal nummer. Hexadecimaal betekent dat het nummer bestaat uit de cijfers 0-9 en de letters A-F.
MD5 wordt nu niet langer als veilig beschouwd, omdat het met enige moeite mogelijk is om verschillende berichten te maken die dezelfde MD5-hashwaarde hebben.
Lees meer over MD5 op Wikipedia (en)
Secure Hash Algorithm
GC Wizard biedt de volgende Secure Hash functies:
- SHA
- SHA-1
- SHA-2
- SHA-3
SHA
Het Secure Hash Algorithm werd ontwikkeld in 1993 als basis voor digitale handtekeningen. SHA genereert hashes met een lengte van 160 bits.
Lees meer over SHA op Wikipedia (en)
SHA-1
Vanwege een ontwerpfout vertoonde SHA zwakheden die al in 1995 tot een correctie leidden.
De correctie bestond slechts uit een klein detail in de sleutelverdeling, maar niet uit het aantal doorlopen rondes of andere maatregelen die onmiddellijk een significant hogere beveiliging zouden garanderen.
Het gecorrigeerde algoritme kreeg de naam SHA-1.
Lees meer over SHA-1 op Wikipedia (en)
SHA-2
Ondertussen zijn er vier andere varianten van het algoritme gepubliceerd die grotere hashwaarden produceren.
Dit zijn SHA-224, SHA-256, SHA-384 en SHA-512, waarbij het toegevoegde nummer de lengte van de hashwaarde (in bits) aangeeft. Later zijn ook de versies SHA-512/256 en SHA-512/224 toegevoegd. Deze verdere ontwikkelingen worden vaak samengevat onder de noemer SHA-2.
Ze zijn gebaseerd op hetzelfde ontwerpprincipe als SHA-1, behalve dat het interne datablok respectievelijk is vergroot tot 256 en 512 bits, en dat het blokcijfer waarop de compressiefunctie is gebaseerd, is aangepast.
Lees meer over SHA-2 op Wikipedia (en)
SHA-3 of Keccak
SHA-3 werd ontwikkeld door Guido Bertoni, Joan Daemen, Michaël Peeters en Gilles Van Assche onder de naam Keccak.
In 2004 waren er verschillende doorbraken in aanvallen tegen hashfuncties die destijds veel werden gebruikt, zoals MD5 en SHA-1. Als ook SHA-2 als gecompromitteerd of onveilig zou worden beschouwd, zou er geen gestandaardiseerde cryptografische hashfunctie beschikbaar zijn die als veilig werd erkend. Daarom werd besloten een nieuwe standaard te creëren die rekening hield met recent onderzoek en toekomstbestendiger zou zijn dan SHA-2.
Keccak won de SHA-3 competitie in 2012 en werd gestandaardiseerd als SHA-3 op 5 augustus 2015. Met de standaardisatie werden de volgende versies vrijgegeven:
- SHA3-224
- SHA3-256
- SHA3-384
- SHA3-512
Lees meer over SHA-3 op Wikipedia (en)
RIPEMD
RIPEMD – RACE Integrity Primitives Evaluation Message Digest werd ontwikkeld in 1992 in het kader van het EU-programma RACE voor het gebruik van breedbandcommunicatie. RIPEMD genereert hashes met een lengte van 128 bits. Verdere ontwikkelingen volgden in 1992, die gekenmerkt worden door langere hashes naast verbeterde beveiliging:
- RIPEMD-160
- RIPEMD-256
- RIPEMD-320
Lees meer over RIPEMD op Wikipedia (en)
Tiger
Tiger werd ontwikkeld door Ross Anderson en Eli Biham in 1996.
De hashwaarde die door Tiger wordt gegenereerd heeft een lengte van 128, 160, of 192 bits. De 192-bit (24-byte) Tiger hashes worden normaal gesproken genoteerd als een 48-cijferig hexadecimaal nummer.
Lees meer over Tiger op Wikipedia (en)
Whirlpool
Whirlpool is ontworpen door Vincent Rjimen en Paulo S. L. Barreto.
De hash heeft een lengte van 512 bits. Whirlpool mag gratis worden gebruikt voor elk doel. De standaard implementatie is publiek domein.
Tot nu toe zijn er geen zwaktes in het algoritme bekend, hoewel dit moet worden gerelativeerd omdat het tot nu toe weinig is bestudeerd.
Whirlpool is een van de cryptografische algoritmen die worden aanbevolen door het Europese project NESSIE voor de selectie van cryptografische methoden en is gestandaardiseerd door ISO met ISO/IEC 10118-3:2004.
Lees meer over Whirlpool op Wikipedia (en)
BLAKE2b
BLAKE werd ontwikkeld in 2008 door Jean-Philippe Aumasson, Luca Henzen, Willi Meier en Raphael C.-W. Phan. BLAKE was een van de finalisten in de SHA-3 competitie.
In 2012 hebben Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O’Hearn en Christian Winnerlein BLAKE2 uitgebracht als een evolutie van BLAKE. BLAKE2 richt zich voornamelijk op het verbeteren van de prestaties terwijl dezelfde beveiligingseigenschappen behouden blijven.
De volgende lengtes zijn gedefinieerd voor hashes en worden verstrekt door GC Wizard:
- 160 bit
- 224 bit
- 256 bit
- 384 bit
- 512 bit
Lees meer over BLAKE2b op Wikipedia (en)