Loading AI tools
З Вікіпедії, вільної енциклопедії
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].
Спочатку організатори конкурсу припускали замінити старі геш-функції переможцем, так як в 2006 році виникло припущення, що в майбутньому надійність геш-функції SHA-2 значно знизиться через зростання потужності й продуктивності пристроїв, а також через появу нових методів криптоаналізу.
Але до 2013 року так і не було запропоновано жодної досить серйозною атаки на SHA-2, і, на думку Брюса Шнайєра, перехід на SHA-3 не був необхідним[4].
Подача заявок була завершена 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].
У своїх звітах NIST описує критерії оцінки конкурсантів. Основними критеріями оцінки були безпека, продуктивність і алгоритм геш-функції[10][11][12].
Розглядаючи безпеку конкурсантів, NIST оцінював можливість застосування геш-функції, її стійкість до атак, відповідність загальним для геш-функцій вимогам, а також відповідність вимогам для учасників, які використовують HMAC, псевдовипадкові функції або рандомізоване хешування. Цей критерій враховувався в першу чергу.
Продуктивність — другий за важливістю критерій оцінки після безпеки. При його перевірці дивилися на швидкість роботи й вимоги до пам'яті. Порівняння відбувалося наступним чином:
Також оцінювалася швидкість роботи на кінцевих пристроях: ПК, мобільних пристроях (точка доступу, роутерах, портативних медіаплеєрах, мобільн телефонах, терміналах оплати) та в віртуальних машинах[14].
Основними параметрами оцінки алгоритму були гнучкість і простота дизайну. Гнучкість включає в себе можливість використання геш-функції на великому числі платформ та можливості розширення набору інструкцій процесора і розпаралелювання (для збільшення продуктивності). Простота дизайну оцінювалася за складністю аналізу й розуміння алгоритму, таким чином простота дизайну дає більше впевненості в оцінці безпеки алгоритму.
NIST вибрали 51 геш-функцію в перший тур.[5] 14 з них пройшло до другого раунду,[7] з яких було вибрано 5 фіналістів. Неповний список учасників представлений нижче.
Переможець був оголошений 2 жовтня 2012 року, ним став алгоритм Keccak[15]. Він став найпродуктивнішим на апаратній реалізації серед фіналістів, а також в ньому був використаний непоширених метод шифрування — функція губки. Таким чином, атаки, розраховані на SHA-2, не працюватимуть. Ще однією істотною перевагою SHA-3 є можливість його реалізації на мініатюрних вбудованих пристроях (наприклад, USB-флеш-накопичувач).
NIST вибрав п'ять кандидатів, які пройшли в третій (і останній) тур:[16]
NIST описали деякі критерії, на яких ґрунтувався вибір фіналістів:[17]
Наступні геш-функції потрапили до другого раунду, але не пройшли у фінал. Також було при оголошенно фіналістів: «Жоден з цих кандидатів не був явно зламаний». В дужках вказана причина, по якій геш-функції не стала фіналістом.
Наступні представники геш-функцій були прийняті до першого раунду, але не пройшли до другого. У них не було суттєвих криптографічних вразливостей. Більшість з них мають слабкі місця в дизайні компонентів або у них були помічені проблеми з продуктивністю.
Не пройшли в перший раунд хеш-функції, які мали суттєві криптографічні уразливості.
Протягом першого раунду деякі конкурсанти самі відмовилися від участі в конкурсі, тому що були зламані на NIST official Round One Candidates web site [Архівовано 4 червня 2009 у Wayback Machine.]. Вони не брали участі в конкурсі.
Деякі геш-функції не були прийняті кандидатами, після внутрішнього огляду NIST.[5] NIST не повідомила подробиць щодо того, чому ці кандидати були відхилені. NIST також не дала повний список відхилених алгоритмів, але 13 з них відомі,[5][71].Проте, тільки такі з них були прилюднені:
У таблиці перераховані відомі учасники конкурсу із зазначенням основних атрибутів хеш-функцій і знайдених атак.[82] В ній використовуються наступні абревіатури:
Геш-алгоритм | FN | WP | KEY | MDS | OUT | SBOX | FSR | ARX | BOOL | COL | PRE |
---|---|---|---|---|---|---|---|---|---|---|---|
Abacus | - | X | - | 4 x 4 | X | 8 x 8 | X | - | - | ||
ARIRANG | X | X | X | 4 x 4, 8 x 8 | - | 8 x 8 | - | - | - | - | - |
AURORA | - | - | X | 4 x 4 | X | 8 x 8 | - | - | - | ||
BLAKE | X | - | X | - | - | - | - | X — | - | - | - |
Blender | - | X | - | - | - | - | - | X | - | ||
BMW | - | X | X | - | - | - | - | X | - | - | - |
*Boole | - | - | - | - | X | - | X | - | |||
Cheetah | - | - | X | 4 x 4, 8 x 8 | - | 8 x 8 | - | - | - | - | - |
Chi | X | X | X | - | - | 4 x 3 | - | - | , | - | - |
CRUNCH | X | - | X | - | - | 8 x 1016 | - | - | - | - | - |
CubeHash8/1 | - | - | - | - | - | - | - | X | - | - | |
*DHC | - | - | X | - | - | 8 x 8 | - | - | - | ||
DynamicSHA | X | - | X | - | - | - | - | - | , , | - | |
DynamicSHA2 | X | - | X | - | - | - | - | X | , , | - | - |
ECHO | - | X | - | 4 x 4 | - | 8 x 8 | - | - | - | - | - |
ECOH | - | - | X | - | - | - | - | - | - | - | - |
Edon-R | - | X | X | - | - | - | - | X | - | - | |
EnRUPT | - | X | - | - | - | - | - | X | - | - | |
Essence | - | - | - | - | - | - | X | - | - | - | - |
FSB | - | X | - | - | X | - | - | - | - | - | - |
Fugue | - | X | - | 4 x 4 | X | 8 x 8 | - | - | - | - | - |
Gr0stl | - | X | - | 8 x 8 | X | 8 x 8 | - | - | - | - | - |
Hamsi | - | - | X | - | - | 4 x 4 | - | - | - | - | - |
JH | X | X | - | 1.5 x 1.5 | - | 4 x 4 | - | - | - | ||
Keccak | - | X | - | - | - | - | - | - | , | - | - |
*Khichidi-1 | - | - | X | - | - | - | X | - | - | ||
LANE | - | - | X | 4 x 4 | X | 8 x 8 | - | - | - | - | - |
Lesamnta | X | - | X | 2 x 2, 4 x 4 | X | 8 x 8 | - | - | - | - | - |
Luffa | - | - | - | - | X | 4 x 4 | - | - | - | - | - |
Lux | - | X | - | 4 x 4, 8 x 8 | X | 8 x 8 | - | - | - | - | - |
MCSSHA-3 | - | - | - | - | - | - | X | - | - | ||
MD6 | - | X | - | - | - | - | X | - | - | - | |
*MeshHash | - | - | - | - | X | 8 x 8 | - | - | - | - | |
NaSHA | X | - | - | - | - | 8 x 8 | X | - | - | - | |
SANDstorm | - | - | X | - | - | 8 x 8 | - | - | , | - | - |
Sarmal | X | - | - | 8 x 8 | - | 8 x 8 | - | - | - | - | |
Sgail | - | X | X | 8 x 8, 16 x 16 | - | 8 x 8 | - | X | - | - | - |
Shabal | - | - | X | - | - | - | X | - | , | - | - |
*SHAMATA | X | X | X | 4 x 4 | - | 8 x 8 | - | - | - | ||
SHAvite-3 | X | - | X | 4 x 4 | - | 8 x 8 | X | - | - | - | - |
SIMD | X | X | X | TRSC+ | - | - | - | - | , , | - | - |
Skein | X | X | X | - | X | - | - | X | - | - | - |
Spectral Hash | - | - | - | - | X | 8 x 8 | - | - | - | - | - |
*StreamHash | - | - | - | - | - | 8 x 8 | - | - | - | - | |
SWIFFTX | - | - | - | - | - | 8 x 8 | - | - | - | - | - |
*Tangle | - | X | X | - | - | 8 x 8 | - | X | , , | - | |
TIB3 | U | - | X | - | - | 3 x 3 | - | - | - | - | - |
Twister | - | X | - | 8 x 8 | X | 8 x 8 | - | - | - | ||
Vortex | - | - | - | 4 x 4 | X | 8 x 8 | - | - | - | ||
*WAMM | - | X | - | - | X | 8 x 8 | - | - | - | - | - |
*Waterfall | - | X | - | - | X | 8 x 8 | X | - | - | - |
— Ewan Fleischmann, Christian Forler и Michael Gorski. "Classifcation of the SHA-3 Candidates"
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.