Keccak

Středně pokročilí

Keccak (vyslovuje se „kečak“) je víceúčelová kryptografická funkce, kterou navrhli Guido Bertoni, Joan Daemen, Michaël Peeters a Gilles Van Assche. I když má funkce Keccak různá využití, proslula především jako hashovací funkce, která ve srovnání se staršími hashovacími algoritmy, jako jsou SHA-1 a SHA-2, poskytuje vyšší úroveň zabezpečení.

SHA (zkratka pro Secure Hash Algorithm) označuje sadu kryptografických hashovacích funkcí zveřejněnou americkým Národním institutem pro standardy a technologie (NIST). SHA-1 i SHA-2 byly navrženy americkou Národní bezpečnostní agenturou (NSA), a proto mají podobnou strukturu. Keccak sice podporuje stejnou velikost výstupu (délku hashe) jako SHA-2, ale jeho pracovní mechanismus je značně odlišný. Keccak je i tak součástí rodiny SHA a často se označuje jako SHA-3.

Teoretické útoky na SHA-1 proběhly v roce 2004 a zveřejněny byly v roce 2005. O několik let později, v roce 2011, institut NIST prohlásil SHA-2 za nový standard hashovací funkce, která se má používat. Přechod z SHA-1 na SHA-2 ale probíhal poměrně pomalu a na SHA-2 přešlo větší procento vývojářů a informatiků teprve začátkem roku 2017. Krátce poté, v únoru 2017, oznámila společnost Google úspěšný útok na SHA-1. Od té doby už není SHA-1 považován za bezpečný a jeho používání se nedoporučuje.
Funkce Keccak (SHA-3) začala být vyvíjena kolem roku 2007 poté, co institut NIST vyhlásil veřejnou soutěž a veřejný schvalovací proces, aby našel novou kryptografickou hashovací funkci, která by překonala potenciální nedostatky předchozích algoritmů SHA-1 a SHA-2.

I když u algoritmu SHA-2 zatím nebyl prokázán žádný významný útok, očekává se, že hashovací funkce bude časem prolomena, přičemž vývoj nové standardizované funkce trvá roky. Vzhledem k tomu a k úspěšným útokům na algoritmus SHA-1 v letech 2004 a 2005 si institut NIST uvědomoval potřebu vytvořit nový kryptografický hashovací algoritmus. V roce 2012 prohlásil institut NIST vítězem soutěže algoritmus Keccak, který byl standardizován jako nejnovější člen rodiny SHA (proto SHA-3). 

Jedním z důvodů, proč si institut NIST vybral algoritmus Keccak, je jeho inovativní struktura, která se ukázala být bezpečnější a účinnější než ostatní algoritmy. Z technického hlediska se algoritmus SHA-3 opírá o tzv. houbové funkce (neboli houbovou konstrukci) – na rozdíl od Merkleovy–Damgårdovy konstrukce, kterou používají algoritmy SHA-1 a SHA-2.

Prozatím je algoritmus SHA-2 stále považován za bezpečný a je nejrozšířenější. Bitcoin a další kryptoměny například používají algoritmus SHA-256, který hraje klíčovou roli i v procesu těžby. V budoucnu bychom se mohli dočkat přijetí algoritmu SHA-3, protože podle všeho je jeho úspěšné napadení ještě velmi daleko. Vzhledem k tomu, že vývoj v oblasti kryptografie bude postupovat a budou vyvstávat nové trhliny, v příštích letech se bezpochyby dočkáme vývoje dalších kryptografických hashovacích algoritmů.