Keccak

Просунутий рівень

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

SHA розшифровується як Secure Hash Algorithm (алгоритм безпечного хешування) і відноситься до набору криптографічних хеш-функцій, опублікованих Національним інститутом стандартів і технологій США (NIST). І SHA-1, і SHA-2 були розроблені Агентством національної безпеки США (NSA) і, таким чином, мають схожу структуру. Хоча Keccak підтримує той самий розмір виходу (довжину хешу), що і SHA-2, її робочий механізм зовсім інший. Тим не менш, Keccak є частиною сімейства SHA і часто згадується як SHA-3.

Теоретичні атаки на SHA-1 були здійснені у 2004 році й оприлюднені у 2005 році. Через пару років, у 2011 році, NIST оголосив SHA-2 новою стандартною хеш-функцією. Однак міграція з SHA-1 на SHA-2 відбувалася досить повільно, і лише на початку 2017 року великий відсоток розробників і вчених в галузі комп’ютерних технологій нарешті перейшли на SHA-2. Незабаром після цього Google оголосили успішну атаку колізії на SHA-1 у лютому 2017 року, і з тих пір SHA-1 більше не вважається безпечною функцією, і її використання не рекомендується.
Функція Keccak (SHA-3) почала розроблятися приблизно у 2007 році після того, як NIST оголосили публічний конкурс і процес перевірки, спрямований на пошук нової криптографічної хеш-функції, яка могла б подолати потенційні недоліки попередніх SHA-1 і SHA-2.

Хоча ще не було продемонстровано жодної значної атаки на SHA-2, очікується, що з часом хеш-функції будуть зламані, і на розробку нової стандартної функції знадобляться роки. Беручи це до уваги, а також успішні атаки на SHA-1 у 2004 і 2005 роках, NIST вирішив створити новий криптографічний алгоритм хешування. У 2012 році NIST оголосило Keccak алгоритмом-переможцем конкурсу, і ця функція була стандартизована як найновіший член сімейства SHA (тобто SHA-3). 

Однією з причин, чому Keccak було обрано в NIST, є її інноваційна структура, яка виявилася більш безпечною і ефективною, ніж інші алгоритми. Технічно кажучи, алгоритм SHA-3 заснований на так званих функціях губки (або конструкції губки) на відміну від конструкції Меркла Дамгорда, що використовується в SHA-1 і SHA-2.

Наразі SHA-2 все ще вважається безпечною і широко використовується. Наприклад, SHA-256 використовується в Bitcoin і інших криптовалютах, і відіграє вирішальну роль у процесі майнінгу. У майбутньому ми можемо побачити все більше прийняття SHA-3, оскільки, здається, функція дуже захищена від атак. Тим не менш, ми напевно побачимо, що в наступні роки розроблятиметься більше криптографічних алгоритмів хешування, оскільки галузь криптографії розвиватиметься, а також будуть виявлятися нові недоліки.