Keccak
Keccak (uttales "ketchak") er en allsidig kryptografisk funksjon designet av Guido Bertoni, Joan Daemen, Michaël Peeters og Gilles Van Assche. Selv om Keccak kan brukes til andre formål, er den best kjent som en hash-funksjon som gir økte sikkerhetsnivåer sammenlignet med eldre hash-algoritmer, som SHA-1 og SHA-2.
SHA står for Secure Hash Algorithm og refererer til et sett med kryptografiske hashfunksjoner utgitt av US National Institute of Standards and Technology (NIST). Både SHA-1 og SHA-2 ble designet av US National Security Agency (NSA), og presenterer som sådan en lignende struktur. Selv om Keccak støtter samme utdatastørrelse (hash-lengder) som SHA-2, er arbeidsmekanismen ganske annerledes. Likevel er Keccak en del av SHA-familien og omtales ofte som SHA-3.
Teoretiske angrep på SHA-1 ble utført i 2004 og gjort offentlig tilgjengelig i 2005. Et par år senere, i 2011, ble SHA-2 erklært av NIST som den nye standard hash-funksjonen som skal brukes. Migreringen fra SHA-1 til SHA-2 gikk imidlertid ganske sakte, og det var først tidlig i 2017 at en stor prosentandel av utviklere og datavitere endelig migrerte til SHA-2. Kort tid etter annonserte Google et vellykket SHA-1-kollisjonsangrep i februar 2017, og siden da anses ikke SHA-1 lenger som sikker, og bruken frarådes.
Keccak-funksjonen (SHA-3) begynte å bli utviklet rundt 2007 etter at NIST annonserte en offentlig konkurranse- og kontrollprosess, og søkte etter en ny kryptografisk hash-funksjon som kunne overvinne de potensielle feilene til de foregående SHA-1 og SHA-2.
Selv om det ikke er påvist noe betydelig angrep på SHA-2 ennå, forventes det at hash-funksjoner blir sprekker over tid, og det tar år før en ny standardfunksjon blir utviklet. Tatt i betraktning, sammen med de vellykkede angrepene utført mot SHA-1 i 2004 og 2005, oppfattet NIST behovet for å opprette en ny kryptografisk hash-algoritme. I 2012 erklærte NIST Keccak som vinneralgoritmen i konkurransen, og den ble standardisert som det nyeste medlemmet av SHA-familien (derav SHA-3).
En av grunnene til at Keccak ble valgt av NIST er på grunn av dens innovative struktur, som viste seg å være sikrere og mer effektiv enn de andre algoritmene. Teknisk sett er SHA-3-algoritmen avhengig av de såkalte svampefunksjonene (eller svampkonstruksjonen) – i motsetning til Merkle Damgård-konstruksjonen som brukes av SHA-1 og SHA-2.
Foreløpig anses SHA-2 fortsatt som sikker og er mye brukt. For eksempel brukes SHA-256 av Bitcoin og andre kryptovalutaer og spiller en avgjørende rolle i prosessen med gruvedrift. Vi vil kanskje se økende bruk av SHA-3 fremover, da det ser ut til å være langt fra å være vellykket angrepet. Ikke desto mindre vil vi se flere kryptografiske hash-algoritmer utvikles i løpet av de neste årene etter hvert som feltet kryptografi utvikler seg og nye feil blir oppdaget.