Топ питань
Часова шкала
Чат
Перспективи
SHA-3 (конкурс)
З Вікіпедії, вільної енциклопедії
Remove ads
SHA-3 — конкурс на нову криптографічну геш-функцію, запроваджений Національним інститутутом стандартів і технологій США (англ. National Institute of Standards and Technology), (скорочено NIST) для доповнення та подальшої заміни старих функцій: SHA-1 і SHA-2. Конкурс був анонсований в журналі Federal Register 2 листопада 2007 року[1].
NIST ініціював розробку одного або декількох додаткових алгоритмів гешування через відкритий конкурс, подібний процес розвитку був використаний раніше для шифрування Advanced Encryption Standard (скорочено AES)[2].
Конкурс завершився 12 жовтня 2012 року, коли NIST оголосив, що Keccak буде новим SHA-3 геш-алгоритмом[3].
Remove ads
Цілі конкурсу
Спочатку організатори конкурсу припускали замінити старі геш-функції переможцем, так як в 2006 році виникло припущення, що в майбутньому надійність геш-функції SHA-2 значно знизиться через зростання потужності й продуктивності пристроїв, а також через появу нових методів криптоаналізу.
Але до 2013 року так і не було запропоновано жодної досить серйозною атаки на SHA-2, і, на думку Брюса Шнайєра, перехід на SHA-3 не був необхідним[4].
Remove ads
Процес
Подача заявок була завершена 31 жовтня 2008 року. Список кандидатів, які пройшли в перший раунд, був опублікований 9 грудня 2008 року[5]. В кінці лютого 2009 року NIST провела конференцію, де представили заявлені в конкурс хеш-функції і обговорили критерії проходження до другого раунду[6]. Список із 14 кандидатів, що пройшли в раунд 2, був опублікований 24 липня 2009 року[7]. Ще одна конференція відбулася 23 — 24 серпня 2010 року в University of California, Santa Barbara, де були розглянуті кандидати, які пройшли до другого раунду[8]. Про останній тур кандидатів було оголошено 10 грудня 2010 року[9]. І тільки 2 жовтня 2012 року NIST оголосив переможця — Keccak, його творці: Guido Bertoni, Joan Daemen, Gilles Van Assche з STMicroelectronics і Michaël Peeters з NXP[3].
Remove ads
Критерії оцінки
Узагальнити
Перспектива
У своїх звітах NIST описує критерії оцінки конкурсантів. Основними критеріями оцінки були безпека, продуктивність і алгоритм геш-функції[10][11][12].
Безпека
Розглядаючи безпеку конкурсантів, NIST оцінював можливість застосування геш-функції, її стійкість до атак, відповідність загальним для геш-функцій вимогам, а також відповідність вимогам для учасників, які використовують HMAC, псевдовипадкові функції або рандомізоване хешування. Цей критерій враховувався в першу чергу.
Продуктивність
Продуктивність — другий за важливістю критерій оцінки після безпеки. При його перевірці дивилися на швидкість роботи й вимоги до пам'яті. Порівняння відбувалося наступним чином:
- У бренчмарці ECRYPT Benchmarking of All Submitted Hashes (скорочено eBASH) проводилися виміри швидкості обчислення для великого числа 32- і 64-бітних платформ.
- Бренчмарк eXternal Benchmarking eXtension (скорочено XBX) надав результати для портативних пристроїв.
- Додатково перевірялася продуктивність і можливість оптимізації на багатоядерних архітектурах. Тести проводилися на архітектурі Cell Broadband Engine (скорочено Cell) і NVIDIA Graphics Processing Units (скорочено GPU)[13].
Також оцінювалася швидкість роботи на кінцевих пристроях: ПК, мобільних пристроях (точка доступу, роутерах, портативних медіаплеєрах, мобільн телефонах, терміналах оплати) та в віртуальних машинах[14].
Алгоритм і характеристики реалізації
Основними параметрами оцінки алгоритму були гнучкість і простота дизайну. Гнучкість включає в себе можливість використання геш-функції на великому числі платформ та можливості розширення набору інструкцій процесора і розпаралелювання (для збільшення продуктивності). Простота дизайну оцінювалася за складністю аналізу й розуміння алгоритму, таким чином простота дизайну дає більше впевненості в оцінці безпеки алгоритму.
Учасники
Узагальнити
Перспектива
NIST вибрали 51 геш-функцію в перший тур.[5] 14 з них пройшло до другого раунду,[7] з яких було вибрано 5 фіналістів. Неповний список учасників представлений нижче.
Переможець
Переможець був оголошений 2 жовтня 2012 року, ним став алгоритм Keccak[15]. Він став найпродуктивнішим на апаратній реалізації серед фіналістів, а також в ньому був використаний непоширених метод шифрування — функція губки. Таким чином, атаки, розраховані на SHA-2, не працюватимуть. Ще однією істотною перевагою SHA-3 є можливість його реалізації на мініатюрних вбудованих пристроях (наприклад, USB-флеш-накопичувач).
Фіналісти
NIST вибрав п'ять кандидатів, які пройшли в третій (і останній) тур:[16]
NIST описали деякі критерії, на яких ґрунтувався вибір фіналістів:[17]
- Продуктивність: «Деякі алгоритми були уразливі через дуже високі вимоги до продуктивності.»[17]
- Безпека: «Ми вважали за краще бути консервативними в безпеці й у деяких випадках не вибрали алгоритми з винятковою продуктивністю, тому що вони менш безпечні в значній мірі.»[17]
- Аналіз: «NIST усунуто кілька алгоритмів через неповну перевірку або незрілість проекту.»
- Різноманітність: «Геш-функції, які пройшли у фінал, засновані на різних режимах роботи, в тому числі і на принципі криптографічного губки. З різними внутрішніми структурами, в тому числі на основі AES, Bit slicing і на змінних XOR з доповненням.»[17]
Геш-функції, які не пройшли в фінал
Наступні геш-функції потрапили до другого раунду, але не пройшли у фінал. Також було при оголошенно фіналістів: «Жоден з цих кандидатів не був явно зламаний». В дужках вказана причина, по якій геш-функції не стала фіналістом.
- Blue Midnight Wish[20][21] (можливі проблеми з безпекою)
- CubeHash (Bernstein) (проблеми з продуктивністю)
- ECHO (France Telecom)[22] (проблеми з продуктивністю)
- Fugue (IBM) (можливі проблеми з безпекою)
- Hamsi[23] (високі вимоги до ПЗУ, можливі проблеми з безпекою)
- Luffa[24](можливі проблеми з безпекою)
- Shabal[25] (можливі проблеми з безпекою)
- SHAvite-3[26] (можливі проблеми з безпекою)
- SIMD (проблеми з продуктивністю, можливі проблеми з безпекою)
Геш-функції, що не пройшли до другого раунду
Наступні представники геш-функцій були прийняті до першого раунду, але не пройшли до другого. У них не було суттєвих криптографічних вразливостей. Більшість з них мають слабкі місця в дизайні компонентів або у них були помічені проблеми з продуктивністю.
- ARIRANG[27] (CIST — Korea University)
- CHI[28]
- CRUNCH[29]
- FSB[en]
- Lane[en]
- Lesamnta[30]
- MD6 (Rivest et al.)
- SANDstorm (Sandia National Laboratories)
- Sarmal[31]
- SWIFFT X
- TIB3[32]
Заявлені геш-функції з істотними уразливостями
Не пройшли в перший раунд хеш-функції, які мали суттєві криптографічні уразливості.
Конкурсанти, які відмовилися
Протягом першого раунду деякі конкурсанти самі відмовилися від участі в конкурсі, тому що були зламані на NIST official Round One Candidates web site [Архівовано 4 червня 2009 у Wayback Machine.]. Вони не брали участі в конкурсі.
Відхилені учасники
Деякі геш-функції не були прийняті кандидатами, після внутрішнього огляду NIST.[5] NIST не повідомила подробиць щодо того, чому ці кандидати були відхилені. NIST також не дала повний список відхилених алгоритмів, але 13 з них відомі,[5][71].Проте, тільки такі з них були прилюднені:
Remove ads
Класифікація кандидатів
Узагальнити
Перспектива
У таблиці перераховані відомі учасники конкурсу із зазначенням основних атрибутів хеш-функцій і знайдених атак.[82] В ній використовуються наступні абревіатури:
- FN англ. A Feistel network — Мережа Фейстеля;
- WP англ. Wide Pipe design — метод побудови криптографічних хеш-функцій, схожих на будову Меркла-Демґарда;
- KEY англ. Key schedule[en] — алгоритм, який одержує ключі для кожного раунду хешування;
- MDS англ. MDS Matrix — Розмір MDS матриці;
- OUT англ. Output Transformation — криптографічна операція, яка здійснюється в останній вихідній ітерації;
- SBOX англ. S-box — S-блоки;
- FSR англ. Feedback Shift Register — Регістр зсуву з лінійним зворотним зв'язком;
- ARX англ. Addition Rotation XOR — скадання, циклічний зсув і XOR;
- BOOLангл. Boolean operations — Булева алгебра;
- COL англ. Collision Attack — найкраща з відомих атак на пошук колізій, краща ніж атака «днів народження»;
- PRE англ. Preimage Attack — друга найкраща атака на пошук колізій, краща ніж Length extension attack[en];
Таблиця класифікації
— Ewan Fleischmann, Christian Forler и Michael Gorski. "Classifcation of the SHA-3 Candidates"
Remove ads
Примітки
Посилання
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads