Keccak

Zaawansowany

Keccak (wymawiane jako "ketchak") to wszechstronna funkcja kryptograficzna, zaprojektowana przez Guido Bertoniego, Joana Daemena, Michaëla Peetersa i Gillesa Van Assche. Chociaż Keccak może być wykorzystywany do innych celów, jest najbardziej znany jako funkcja hash, która zapewnia wyższy poziom bezpieczeństwa w porównaniu do starszych algorytmów hash, takich jak SHA-1 i SHA-2.

SHA to skrót od Secure Hash Algorithm i odnosi się do zestawu kryptograficznych funkcji hash, opublikowanych przez Amerykański Narodowy Instytut Standardów i Technologii (NIST). Zarówno SHA-1, jak i SHA-2 zostały zaprojektowane przez Amerykańską Agencję Bezpieczeństwa Narodowego (NSA) i jako takie mają podobną strukturę. Chociaż Keccak obsługuje ten sam rozmiar wyjściowy (długość hash) co SHA-2, jego mechanizm działania jest zupełnie inny. Mimo to, Keccak jest częścią rodziny SHA i jest często określany jako SHA-3.

Teoretyczne ataki na SHA-1 zostały przeprowadzone w 2004 roku i udostępnione publicznie w 2005 roku. Kilka lat później, w 2011 roku, SHA-2 została ogłoszona przez NIST jako nowa standardowa funkcja hash. Migracja z SHA-1 do SHA-2 była jednak dość powolna i dopiero na początku 2017 roku duży odsetek deweloperów i informatyków ostatecznie przeszedł na SHA-2. Wkrótce potem, Google ogłosiło udany atak kolizyjny SHA-1 w lutym 2017 roku i od tego czasu SHA-1 nie jest już uważany za bezpieczny, a jego użycie jest odradzane.
Funkcja Keccak (SHA-3) zaczęła być rozwijana około 2007 roku po tym, jak NIST ogłosił publiczny konkurs i proces weryfikacji, poszukując nowej kryptograficznej funkcji hash, która mogłaby przezwyciężyć potencjalne wady poprzednich SHA-1 i SHA-2.

Chociaż nie zademonstrowano jeszcze żadnego znaczącego ataku na SHA-2, oczekuje się, że funkcje hash zostaną z czasem złamane, a opracowanie nowej standardowej funkcji zajmie lata. Biorąc to pod uwagę, wraz z udanymi atakami przeprowadzonymi na SHA-1 w 2004 i 2005 roku, NIST dostrzegł potrzebę stworzenia nowego kryptograficznego algorytmu hash. W 2012 roku, NIST ogłosił Keccak zwycięskim algorytmem konkursu i został on ustandaryzowany jako najnowszy członek rodziny SHA (stąd SHA-3). 

Jednym z powodów, dla których Keccak został wybrany przez NIST, jest jego innowacyjna struktura, która okazała się bezpieczniejsza i wydajniejsza niż inne algorytmy. Technicznie rzecz biorąc, algorytm SHA-3 opiera się na tak zwanych funkcjach gąbki (lub konstrukcji gąbki) - w przeciwieństwie do konstrukcji Merkle Damgård używanej przez SHA-1 i SHA-2.

Na razie, SHA-2 jest nadal uważany za bezpieczny i jest szeroko stosowany. Na przykład, SHA-256 jest używany przez Bitcoina i inne kryptowaluty i odgrywa kluczową rolę w procesie wydobywania. W przyszłości możemy zaobserwować rosnącą popularność SHA-3, ponieważ wydaje się, że jest on daleki od skutecznego ataku. Niemniej jednak, w kolejnych latach będziemy świadkami opracowywania większej liczby kryptograficznych algorytmów hash, w miarę postępów w dziedzinie kryptografii i odkrywania nowych błędów.