Keccak

Avanceret

Keccak (udtales "ketchak") er en alsidig kryptografisk funktion, som er udviklet af Guido Bertoni, Joan Daemen, Michaël Peeters og Gilles Van Assche. Selvom Keccak kan bruges til andre formål, er den bedst kendt som en hashfunktion, der giver et højere sikkerhedsniveau sammenlignet med ældre hashalgoritmer som SHA-1 og SHA-2.

SHA står for Secure Hash Algorithm og henviser til en serie kryptografiske hashfunktioner, som er udgivet af det amerikanske National Institute of Standards and Technology (NIST). Både SHA-1 og SHA-2 blev designet af det amerikanske National Security Agency (NSA) og har derfor tilsvarende struktur. Selvom Keccak understøtter den samme outputstørrelse (hashlængder) som SHA-2, er dens arbejdsmekanisme helt anderledes. Alligevel er Keccak en del af SHA-familien og omtales ofte som SHA-3.

Der blev udført teoretiske angreb på SHA-1 i 2004, og de blev gjort offentligt tilgængelige i 2005. Nogle år senere, i 2011, erklærede NIST, at SHA-2 skulle bruges som den nye standardhashfunktion. Overgangen fra SHA-1 til SHA-2 var dog ret langsom, og det var først i begyndelsen af 2017, at en stor procentdel af udviklere og dataloger endelig gik over til SHA-2. Kort tid efter annoncerede Google et vellykket SHA-1-kollisionsangreb i februar 2017, og siden da har SHA-1 ikke længere været betragtet som sikkert, og brugen af det frarådes.
Keccak-funktionen (SHA-3) begyndte at blive udviklet omkring 2007, efter at NIST havde udskrevet en offentlig konkurrence og en kontrolproces, hvor man søgte efter en ny kryptografisk hashfunktion, der kunne undgå de potentielle fejl i de tidligere SHA-1 og SHA-2.

Selvom der endnu ikke er blevet demonstreret noget væsentligt angreb på SHA-2, forventes det, at hashfunktioner bliver knækket med tiden, og det tager år at udvikle en ny standardfunktion. På baggrund af dette og de vellykkede angreb, der blev udført mod SHA-1 i 2004 og 2005, så NIST et behov for at skabe en ny kryptografisk hashalgoritme. I 2012 erklærede NIST Keccak som konkurrencens vindende algoritme, og den blev standardiseret som det nyeste medlem af SHA-familien (derfor SHA-3). 

En af grundene til, at Keccak blev valgt af NIST, er dens innovative struktur, som viste sig at være mere sikker og effektiv end de andre algoritmer. Teknisk set er SHA-3-algoritmen afhængig af de såkaldte svampefunktioner (eller svampekonstruktion) – i modsætning til Merkle Damgård-konstruktionen, der bruges af SHA-1 og SHA-2.

Indtil videre betragtes SHA-2 stadig som sikker og bruges i vid udstrækning. For eksempel bruges SHA-256 af Bitcoin og andre kryptovalutaer og spiller en afgørende rolle i mining-processen. Vi vil måske se en stigende anvendelse af SHA-3 fremover, da den ikke er blevet udsat for succesfulde angreb. Ikke desto mindre vil vi se flere kryptografiske hashalgoritmer blive udviklet i de kommende år, efterhånden som kryptografien udvikler sig, og nye fejl bliver opdaget.