Keccak

Профессионал

Keccak (произносится как «кечак») — это универсальная криптографическая функция, разработанная Гвидо Бертони, Йоаном Дайменом, Микаэлем Питерсом и Жилем Ван Аше. Хотя Keccak может использоваться и для других задач, она наиболее известна как хеш-функция, обеспечивающая повышенный уровень безопасности по сравнению со старыми хеш-алгоритмами вроде SHA-1 и SHA-2.

SHA (алгоритм безопасного хеширования) — это набор криптографических хеш-функций, опубликованных Национальным институтом стандартов и технологий США (NIST). SHA-1 и SHA-2 были разработаны Агентством национальной безопасности США (АНБ), а потому имеют схожую структуру. Хотя Keccak поддерживает те же выходные размеры (длину хешей), что и SHA-2, их механизмы работы существенно отличаются. Тем не менее Keccak входит в семейство SHA, и нередко ее даже называют SHA-3.

В 2004 году на SHA-1 были осуществлены теоретические атаки. В 2005 возможность совершения атаки на функцию была доказана официально. Спустя несколько лет, в 2011 году, NIST объявила SHA-2 новым стандартом хеш-функций. Однако переход с SHA-1 на SHA-2 происходил довольно медленно, и только к началу 2017 года значительная часть разработчиков и программистов наконец перешла на SHA-2. Вскоре после этого, в феврале 2017 года, компания Google объявила об успешной атаке на коллизию SHA-1: с тех пор SHA-1 больше не считается безопасной и не рекомендуется к использованию.
Функция Keccak (SHA-3) начала разрабатываться примерно в 2007 году после того, как NIST (Национальный институт стандартов и технологий) объявил открытый конкурс на новую криптографическую хеш-функцию, способную преодолеть возможные недостатки предшествующих SHA-1 и SHA-2.

Хотя все еще не было совершено ни одной серьезной атаки на SHA-2, считается, что однажды любая хеш-функция будет взломана, а на разработку новой стандартной функции могут уйти годы. С учетом этого, а также успешных атак в 2004 и 2005 годах, в NIST осознавали необходимость создания нового криптографического хеш-алгоритма. В 2012 году Keccak был объявлен победителем конкурса NIST и стал новейшим стандартом и представителем семейства SHA (отсюда и название SHA-3). 

Одной из причин выбора Keccak в NIST стала его инновационная структура, которая оказалась более безопасной и эффективной, чем структуры других алгоритмов. В отличие от SHA-1 и SHA-2, где испольузется структура Меркла-Дамгарда, алгоритм SHA-3 основан на так называемых губчатых функциях (конструкции криптографической губки).

Сейчас SHA-2 все еще считается наиболее безопасным и используется повсеместно. Например, SHA-256 применяется в Биткоине и других криптовалютах, играя важнейшую роль в процессе майнинга. В будущем можно ожидать дальнейшее распространение SHA-3, так как, судя по всему, эту функцию еще не скоро получится взломать. По мере развития криптографии и обнаружения новых несовершенств в существующих системах будут появляться новые криптографические хеш-алгоритмы.