Keccak
Keccak (uttalas "ketchak") är en mångsidig kryptografisk funktion designad av Guido Bertoni, Joan Daemen, Michaël Peeters och Gilles Van Assche. Även om Keccak kan användas för andra ändamål är den mest känd som en hashfunktion som ger ökade säkerhetsnivåer jämfört med äldre hashalgoritmer, som SHA-1 och SHA-2.
SHA står för Secure Hash Algorithm och hänvisar till en uppsättning kryptografiska hashfunktioner publicerade av US National Institute of Standards and Technology (NIST). Både SHA-1 och SHA-2 designades av US National Security Agency (NSA), och har som sådan en liknande struktur. Även om Keccak stöder samma utdatastorlek (hashlängder) som SHA-2, är dess arbetsmekanism ganska annorlunda. Ändå är Keccak en del av SHA-familjen och kallas ofta för SHA-3.
Teoretiska attacker på SHA-1 utfördes 2004 och gjordes offentligt tillgängliga 2005. Ett par år senare, 2011, deklarerades SHA-2 av NIST som den nya standardhashfunktionen som skulle användas. Migreringen från SHA-1 till SHA-2 var dock ganska långsam, och det var först i början av 2017 som en stor andel av utvecklare och datavetare äntligen migrerade till SHA-2. Kort därefter tillkännagav Google en framgångsrik SHA-1-kollisionsattack i februari 2017 och sedan dess anses SHA-1 inte längre vara säker, och dess användning avråds.
Keccak-funktionen (SHA-3) började utvecklas runt 2007 efter att NIST tillkännagav en offentlig tävling och granskningsprocess, där man letade efter en ny kryptografisk hashfunktion som skulle kunna övervinna de potentiella bristerna i föregående SHA-1 och SHA-2.
Även om ingen betydande attack på SHA-2 ännu har visats, förväntas det att hashfunktioner spricker med tiden och det tar år för en ny standardfunktion att utvecklas. Med hänsyn till det, tillsammans med de framgångsrika attackerna som utfördes mot SHA-1 2004 och 2005, insåg NIST behovet av att skapa en ny kryptografisk hashalgoritm. 2012 deklarerade NIST Keccak som den vinnande algoritmen i tävlingen, och den standardiserades som den nyaste medlemmen i SHA-familjen (därav SHA-3).
En av anledningarna till att Keccak valdes av NIST beror på dess innovativa struktur, som visade sig vara säkrare och effektivare än de andra algoritmerna. Tekniskt sett förlitar sig SHA-3-algoritmen på de så kallade svampfunktionerna (eller svampkonstruktionen) – i motsats till Merkle Damgård-konstruktionen som används av SHA-1 och SHA-2.
För närvarande anses SHA-2 fortfarande vara säker och används flitigt. Till exempel används SHA-256 av Bitcoin och andra kryptovalutor och spelar en avgörande roll i gruvprocessen. Vi kan komma att se en ökande användning av SHA-3 framöver eftersom det verkar långt ifrån framgångsrikt attackerat. Icke desto mindre kommer vi att se fler kryptografiska hashalgoritmer utvecklas under de kommande åren när kryptografiområdet utvecklas och nya brister upptäcks.