begintmeta schreef op woensdag 04 november 2015 @ 15:46:
Er zijn hash-algoritmes met verschillende doelen, soms is het handig als ze snel te berekenen zijn (voor verificatie van integriteit bijvoorbeeld) soms is het handiger als ze minder snel te berekenen zijn (voor het als hash opslaan van wachtwoorden bijvoorbeeld) SHA heeft eerder het eerste als doel, en is dus vrij snel uit te rekenen.
Dat is niet waar.
SHA-1 is wel degelijk ontworpen als veilig hashing-algoritme, vandaar ook de naam:
Secure Hash Algorithm.
Dat geldt overigens voor alle hashing algoritmes. Het zou ook een beetje gek zijn om een hashing-algoritme te introduceren waarvan je op voorhand al weet dat het gemakkelijk kraakbaar is.
De twee categorieën die jij benoemt bestaan dus niet. Althans, niet in de vorm zoals jij ze voorstelt.
Je zou verschillende hashing algoritmes wel kunnen opdelen in de twee categoriën: gekraakt en niet gekraakt.
Pas in 2005 (tien jaar na de introductie in 1995) zijn door onderzoekers methodes gevonden waardoor SHA-1 niet meer voldoet aan (met name) "Colission resistance" en "Preimage resistance":
Dat eerste betekent dat het moeilijk (lees: ondoenlijk met huidige technieken/hardware binnen afzienbare tijd) moet zijn om dezelfde hash te genereren uit verschillende messages.
Het tweede betekent dat het moeilijk (lees: ondoenlijk met huidige technieken/hardware binnen afzienbare tijd) moet zijn om de message te berekenen uit de hash.
Voor de puristen: ja dit is simplistisch weergegeven
Ook MD5, wat nu iedereen voor een fluitje van een cent kan decrypten, werd ook pas in 2004 (twaalf jaar na de introductie in 1992) gekraakt met een colission attack (wel werden in 1996 al andere ontbrekingen ontdekt).
Vanwege het pseudo-random karakter van cryptografische hashing algoritmes kan niet worden bewezen dat deze collision-bestendig zijn. Je kunt er dus van uitgaan dat ook de nieuwere algoritmes (wat jij nu "categorie 2" noemt) uiteindelijk gekraakt worden. Mede ook omdat hardware steeds sneller wordt.
Er zijn wel bewijsbaar veilige algoritmes mogelijk, maar die hebben weer andere praktische limitaties (zie hiervoor ook het wikipedia-artikel hieronder).
Bronnen en meer info, o.a.:
Wikipedia: Security of cryptographic hash functions
Wikipedia: Cryptographic hash function
Wikipedia: MD5
Wikipedia: SHA-1