Keccak

Haladó

A Keccak (ejtsd: „kecsak”) egy sokoldalú kriptográfiai függvény, amelyet Guido Bertoni, Joan Daemen, Michaël Peeters, és Gilles Van Assche dolgozott ki. Habár a Keccak más célra is használható, leginkább olyan hash függvényként ismert, amely a régebbi hash algoritmusokhoz (pl. SHA-1 és SHA-2) képest magasabb szintű biztonságot nyújt.

Az SHA a Secure Hash Algorithm (biztonságos hash algoritmus) rövidítése, és egy sor olyan kriptográfiai hash függvényt jelöl, amelyeket az US National Institute of Standards and Technology (NIST, amerikai nemzeti szabványügyi és technológiai intézet) tett közzé. Az SHA-1-et és az SHA-2-t is az US National Security Agency (NSA, amerikai nemzetbiztonsági hivatal) fejlesztette ki, így hasonló a struktúrájuk. Bár a Keccak ugyanazt a kimeneti méretet (hash hosszt) támogatja, mint az SHA-2, a működési mechanizmusa igencsak eltérő. Ezzel együtt a Keccak is az SHA-család része, és gyakran emlegetik SHA-3 néven.

2004-ben elméleti támadásokat indítottak az SHA-1 ellen, majd 2005-ben nyilvánosan elérhetővé tették ezek adatait. Néhány évvel később, 2011-ben a NIST bejelentette a használandó hash-függvények új szabványát, az SHA-2-t. Ugyanakkor a migrálás az SHA-1-ről az SHA-2-re nagyon lassan ment, és csak 2017 elején jutottak el odáig, hogy a fejlesztők és informatikusok nagy százaléka áttért az SHA-2 használatára. Nem sokkal ezután a Google bejelentette, hogy 2017 februárjában sikeres SHA-1-kollíziós támadás történt. Azóta az SHA-1-et már nem tekintik biztonságosnak, és használatának mellőzését javasolják.
A Keccak függvény (SHA-3) fejlesztése 2007 körül kezdődött, miután a NIST bejelentett egy nyilvános verseny- és átvilágítási folyamatot, amelynek célja egy új kriptográfiai hash függvény megalkotása, amely megoldja a korábbi SHA-1 és SHA-2 szabványok potenciális problémáit.

Bár az SHA-2 Ellen még nincs tudomásunk jelentős támadásról, várható, hogy idővel feltörik a hash függvényt, és egy új függvényszabvány kifejlesztése több évig is eltart. Ezt és az SHA-1 ellen 2004-ben és 2005-ben végrehajtott sikeres támadásokat figyelembe véve a NIST érzékelte egy új kriptográfiai hash algoritmus létrehozásának szükségességét. 2012-ben a NIST a Keccakot nevezte meg a verseny győztes algoritmusaként, és az SHA-család új tagjaként szabványosították (innen az SHA-3 elnevezés). 

Az egyik ok, amiért a NIST a Keccakot választotta, az algoritmus innovatív struktúrája, amely bizonyítottan biztonságosabb és hatékonyabb a többi algoritmusnál. Technikailag az SHA-3 algoritmus az úgynevezett sponge (szivacs) függvényekre (más néven: szivacsfelépítés) támaszkodik, az SHA-1 és SHA-2 szabványoknál használt Merkle Damgård konstrukcióval szemben.

Egyelőre még az SHA-2-t biztonságosnak tekintik, és széles körben használják. Például a Bitcoin és más kriptovaluták az SHA-256-ot használják, és kulcsszerepet játszik a bányászati folyamatban. A jövőben valószínűleg egyre inkább az SHA-3 terjedését láthatjuk majd, mivel úgy tűnik, hogy még messze vagyunk attól, hogy sikeres támadást intézzenek ellene. Mindazonáltal a kriptográfia fejlődésével és az új hibák felfedezésével párhuzamosan a következő években biztosan megfigyelhetjük majd új hash algoritmusok fejlesztését.