Keccak: Nawet jeśli SHA‑2 upadnie, internetowa kryptografia się nie załamie
Funkcje skrótu (funkcje haszujące) to jeden z fundamentów współczesnej kryptografii — pozwalając na przyporządkowanie zbiorowi danych krótkiej, unikatowej wartości, nieodwracalnego skrótu, pozwalają na bezpieczne stosowanie haseł w serwisach internetowych (tak by właściciel serwisu nie mógł ich poznać) czy identyfikacji plików. Skuteczny atak na SHA-2, rodzinę obecnie najpopularniejszych algorytmów tego typu, dałby napastnikom ogromne możliwości, otworzyłby przed nimi protokoły i aplikacje takie jak TLS/SSL, S/MIME, PGP czy Bitcoin.
Taki skuteczny atak na poprzednika SHA-2 — rodzinę funkcji kryptograficznych SHA-1 — przeprowadzono już w 2004. Przy mocach obliczeniowych dostępnych dla współczesnych CPU i GPU, złamanie tych funkcji skrótu to kwestia godzin. Złamanie SHA-1 nie pozostawiło na szczęście kryptografów z ręką w nocniku — już od początku tego stulecia dysponujemy rodziną algorytmów, które ostatecznie otrzymały nazwę SHA-2, dających skróty wielkości od 224 do 512 bitów. Choć stanowiły one rozwinięcie SHA-1, były całkowicie odporne na ataki wymierzone w poprzedników.
Kryptografowie przekonani byli jednak, że upadek SHA-2 jest tylko kwestią czasu. Od pięciu lat trwały prace nad algorytmami — kandydatami, zgłoszonymi do konkursu amerykańskiego Narodowego Instytutu Standardów i Technologii NIST na następcę SHA-2. Tymczasem, mimo przekonania, że dni SHA-2 są policzone, nic się takiego nie stało, cała ta rodzina algorytmów opiera się jak do tej pory wszelkim próbom ataku: najlepsze z nich łamią 46 z 64 rund SHA-2 dla 256-bitowego skrótu, więc można się spodziewać, że przy spodziewanym wzroście dostępnej mocy obliczeniowej, SHA-2 będzie bezpieczne jeszcze 20-30 lat.
A co potem? Potem przyjdzie nam sięgnąć po właśnie zatwierdzony na następcę SHA-2 algorytm o wdzięcznej nazwie Keccak. Dzieło Guido Bertoniego, Gillesa Van Assche, Joan Daemen i Michaëla Peetersa jest zupełnie nowym podejściem do tworzenia funkcji skrótu, nie mającym nic wspólnego z używaną w pozostałych rozwiązaniach konstrukcją Merkle–Damgarda. Keccak wykorzystuje „funkcję gąbki”, w której dane na wejściu są wciągane w zadanym tempie do stanu skrótu, a następnie wynikowy skrót wyciskany w tym samym tempie. Jego główną zaletą ma być elegancka konstrukcja i łatwość uruchamiania na rozmaitych architekturach sprzętowych — według autorów, przetworzenie każdego bajtu danych zabiera raptem 13 cykli procesora Intel Core2Duo. Keccak może być też z łatwością zaimplementowany na poziomie sprzętowym, np. w smartfonach, a więcej o nim poczytać możecie w przygotowanym przez twórców artykule.
Zwycięzca konkursu na SHA-3 miał silnych konkurentów, wśród nich algorytm Skein, którego współtwórcą jest słynny ekspert od bezpieczeństwa, Bruce Schneier. Przyjął on przegraną bardzo honorowo, gratulując twórcom Keccaka, mimo że wcześniej deklarował, że w ogóle żaden z algorytmów nie powinien zostać zwycięzcą. Teraz cieszy się z faktu, że SHA-3 w niczym nie jest podobne do algorytmów z rodziny SHA-2, uznał też, że konkurs zwiększył naszą wiedzę o kryptoanalizie funkcji skrótu.
Strona poświęcona Keccakowi to keccak.noekeon.org. Możemy się spodziewać, że w najbliższym roku algorytmem zainteresują się przede wszystkim twórcy aplikacji dla urządzeń mobilnych, doceniając jego wydajność i elegancję.