SHA-3 (конкурс)

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, псевдовипадкові функції або рандомізоване хешування. Цей критерій враховувався в першу чергу.

Продуктивність

Продуктивність — другий за важливістю критерій оцінки після безпеки. При його перевірці дивилися на швидкість роботи й вимоги до пам'яті. Порівняння відбувалося наступним чином:

  • У бренчмарці 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]

NIST випустив звіт, що пояснює оцінку алгоритмів[18][19].

Геш-функції, які не пройшли в фінал

Наступні геш-функції потрапили до другого раунду, але не пройшли у фінал. Також було при оголошенно фіналістів: «Жоден з цих кандидатів не був явно зламаний». В дужках вказана причина, по якій геш-функції не стала фіналістом.

  • 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
  • Lane
  • Lesamnta[30]
  • MD6 ( Rivest et al.)
  • SANDstorm (Sandia National Laboratories)
  • Sarmal[31]
  • SWIFFT X
  • TIB3[32]

Заявлені геш-функції з істотними уразливостями

Не пройшли в перший раунд хеш-функції, які мали суттєві криптографічні уразливості.

Конкурсанти, які відмовилися

Протягом першого раунду деякі конкурсанти самі відмовилися від участі в конкурсі, тому що були зламані на NIST official Round One Candidates web site. Вони не брали участі в конкурсі.

Відхилені учасники

Деякі геш-функції не були прийняті в якості кандидатів, після внутрішнього огляду NIST.[5] NIST не повідомила подробиць щодо того, чому ці кандидати були відхилені. NIST також не дала повний список відхилених алгоритмів, але 13 з них відомі,[5][71].Проте, тільки такі з них були прилюднені:

Класифікація кандидатів

У таблиці перераховані відомі учасники конкурсу із зазначенням основних атрибутів хеш-функцій і знайдених атак.[82] В ній використовуються наступні абревіатури:

Геш-алгоритмFNWPKEYMDSOUTSBOXFSRARXBOOLCOLPRE
Abacus-X-4 x 4X8 x 8X--
ARIRANGXXX4 x 4, 8 x 8-8 x 8-----
AURORA--X4 x 4X8 x 8---
BLAKEX-X----X ---
Blender-X-----X-
BMW-XX----X---
*Boole----X-X-
Cheetah--X4 x 4, 8 x 8-8 x 8-----
ChiXXX--4 x 3-- , --
CRUNCHX-X--8 x 1016-----
CubeHash8/1-------X--
*DHC--X--8 x 8---
DynamicSHAX-X----- , , -
DynamicSHA2X-X----X , , --
ECHO-X-4 x 4-8 x 8-----
ECOH--X--------
Edon-R-XX----X--
EnRUPT-X-----X--
Essence------X----
FSB-X--X------
Fugue-X-4 x 4X8 x 8-----
Gr0stl-X-8 x 8X8 x 8-----
Hamsi--X--4 x 4-----
JHXX-1.5 x 1.5-4 x 4---
Keccak-X------ , --
*Khichidi-1--X---X--
LANE--X4 x 4X8 x 8-----
LesamntaX-X2 x 2, 4 x 4X8 x 8-----
Luffa----X4 x 4-----
Lux-X-4 x 4 , 8 x 8X8 x 8-----
MCSSHA-3------X--
MD6-X----X- --
*MeshHash----X8 x 8----
NaSHAX----8 x 8X---
SANDstorm--X--8 x 8-- , --
SarmalX--8 x 8-8 x 8----
Sgail-XX8 x 8, 16 x 16-8 x 8-X---
Shabal--X---X- , --
*SHAMATAXXX4 x 4-8 x 8---
SHAvite-3X-X4 x 4-8 x 8X----
SIMDXXXTRSC+---- , , --
SkeinXXX-X--X---
Spectral Hash----X8 x 8-----
*StreamHash-----8 x 8----
SWIFFTX-----8 x 8-----
*Tangle-XX--8 x 8-X , , -
TIB3U-X--3 x 3-----
Twister-X-8 x 8X8 x 8---
Vortex---4 x 4X8 x 8---
*WAMM-X--X8 x 8-----
*Waterfall-X--X8 x 8X---

— Ewan Fleischmann, Christian Forler и Michael Gorski. "Classifcation of the SHA-3 Candidates"

Примітки

  1. Federal Register / Vol. 72, No. 212 (PDF). Federal Register. Government Printing Office. Friday, November 2, 2007. Процитовано 6 листопада 2008.
  2. cryptographic hash project - Background Information. Computer Security Resource Center. National Institute of Standards and Technology. 2 листопада 2007. Процитовано 6 листопада 2008.
  3. NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition. NIST. 2 жовтня 2012. Процитовано 2 жовтня 2012.
  4. Shneier on Security: SHA-3 to Be Announced
  5. Round 1. 9 грудня 2008. Процитовано 10 грудня 2008.
  6. National Institute of Standards and Technology (9 грудня 2008). The First SHA-3 Candidate Conference. Процитовано 23 грудня 2008.
  7. Second Round Candidates. National Institute for Standards and Technology. 24 липня 2009. Процитовано 24 липня 2009.
  8. National Institute of Standards and Technology (30 червня 2010). The Second SHA-3 Candidate Conference.
  9. Tentative Timeline of the Development of New Hash Functions. NIST. 10 грудня 2008. Процитовано 15 вересня 2009.
  10. http://csrc.nist.gov/groups/ST/hash/sha-3/Round2/documents/Round2_Report_NISTIR_7764.pdf
  11. http://nvlpubs.nist.gov/nistpubs/ir/2012/NIST.IR.7896.pdf
  12. http://csrc.nist.gov/groups/ST/hash/sha-3/Round1/documents/sha3_NISTIR7620.pdf
  13. Performance Analysis of the SHA-3 Candidates on Exotic Multi-core Architectures — Springer
  14. http://csrc.nist.gov/groups/ST/hash/sha-3/Round2/Aug2010/documents/papers/Pornin_report-sphlib-tp-final.pdf
  15. NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition
  16. THIRD (FINAL) ROUND CANDIDATES Retrieved 9 Nov 2011
  17. html SHA-3 Finalists Announced by NIST. National Institute for Standards and Technology. December 10 2010.[недоступне посилання з червня 2019]
  18. Status Report on the First Round of the SHA-3 Cryptographic Hash Algorithm Competition
  19. Status Report on the Second Round of the SHA- 3 Cryptographic Hash Algorithm Competition (PDF). Retrieved 2 March 2011
  20. Svein Johan Knapskog; Danilo Gligoroski, Vlastimil Klima, Mohamed El-Hadedy, Jørn Amundsen, Stig Frode Mjølsnes (November 4, 2008). blue_midnight_wish. Процитовано 10 листопада 2008.
  21. Søren S. Thomsen (2009). Pseudo-cryptanalysis of Blue Midnight Wish (PDF). Архів оригіналу за 2 вересня 2009. Процитовано 19 травня 2009.
  22. Henri Gilbert; Ryad Benadjila, Olivier Billet, Gilles Macario-Rat, Thomas Peyrin, Matt Robshaw, Yannick Seurin (29 жовтня 2008). SHA- 3 Proposal: ECHO (PDF). Процитовано 11 грудня 2008.
  23. Özgül Kücük (31 жовтня 2008). The Hash Function Hamsi (PDF). Процитовано 11 грудня 2008.
  24. Dai Watanabe; Christophe De Canniere, Hisayoshi Sato (31 жовтня 2008). Hash Function Luffa : Specification (PDF). Процитовано 11 грудня 2008.
  25. Jean-François Misarsky; Emmanuel Bresson, Anne Canteaut, Benoît Chevallier-Mames, Christophe Clavier, Thomas Fuhr, Aline Gouget, Thomas Icart, Jean-François Misarsky, Marìa Naya-Plasencia, Pascal Paillier, Thomas Pornin, Jean-René Reinhard, Céline Thuillet, Marion Videau (28 жовтня 2008). Shabal, a Submission to NIST's Cryptographic Hash Algorithm Competition (PDF). Процитовано 11 грудня 2008.
  26. Eli Biham; Orr Dunkelman. The SHAvite-3 Hash Function (PDF). Процитовано 11 грудня 2008.
  27. Jongin Lim; Donghoon Chang, Seokhie Hong, Changheon Kang, Jinkeon Kang, Jongsung Kim, Changhoon Lee, Jesang Lee, Jongtae Lee, Sangjin Lee, Yuseop Lee, Jaechul Sung (29 жовтня 2008). ARIRANG (PDF). Процитовано 11 грудня 2008.
  28. Philip Hawkes; Cameron McDonald (30 жовтня 2008). Submission to the SHA-3 Competition: The CHI Family of Cryptographic Hash Algorithms. Проігноровано невідомий параметр |Accessdate= (можливо, |accessdate=?) (довідка)
  29. Jacques Patarin; Louis Goubin, Mickael Ivascot, William Jalby , Olivier Ly, Valerie Nachef, Joana Treger, Emmanuel Volte. CRUNCH. Архів оригіналу за 2009-01- 29. Процитовано 14 листопада 2008.
  30. Hirotaka Yoshida; Shoichi Hirose, Hidenori Kuwakado (30 жовтня 2008). SHA-3 Proposal: Lesamnta (PDF). Процитовано 11 грудня 2008.
  31. Kerem Varıcı; Onur Özen and Çelebi Kocair. The Sarmal Hash Function. Архів оригіналу за 11 червня 2011. Процитовано 12 жовтня 2010.
  32. Daniel Penazzi; Miguel Montes. The TIB3 Hash. Процитовано 29 листопада 2008. [недоступне посилання з Вересень 2017]
  33. {{cite web | url = http://ehash.iaik.tugraz.at/uploads/b/ba/AURORA.pdf | title = AURORA: A Cryptographic Hash Algorithm Family | format = PDF | coauthors = Tetsu Iwata, Kyoji Shibutani, Taizo Shirai, Shiho Moriai, Toru Akishita | date = October 31, 2008 | accessdate = 11 December 2008}
  34. Attacks on AURORA-512 and the Double-Mix Merkle-Damgaard Transform (PDF). 2009. Процитовано 10 липня 2009.
  35. Colin Bradbury (25 жовтня 2008). BLENDER: A Proposed New Family of Cryptographic Hash Algorithms (PDF). Процитовано 11 грудня 2008.
  36. Craig Newbold. /Observations_on_Blender.pdf Observations and Attacks On The SHA-3 Candidate Blender (PDF). Процитовано 23 грудня 2008.
  37. Florian Mendel. Preimage Attack on Blender (PDF). Процитовано 23 грудня 2008.
  38. Dmitry Khovratovich; Alex Biryukov, Ivica Nikolić (30 жовтня 2008). The Hash Function Cheetah: Speci fi cation and Supporting Documentation (PDF). Процитовано 11 грудня 2008.
  39. Danilo Gligoroski (12 грудня 2008). .at / uploads / d / d9 / Cheetah_length-extension.txt Danilo Gligoroski - Cheetah hash function is not resistant against length-extension attack. Процитовано 21 грудня 2008.[недоступне посилання з червня 2019]
  40. Zijie Xu. Dynamic SHA (PDF). Процитовано 11 грудня 2008.
  41. Vlastimil Klima (14 грудня 2008). Dynamic SHA is vulnerable to generic attacks. Процитовано 21 грудня 2008.
  42. Zijie Xu. Dynamic SHA2 (PDF). NIST. Процитовано 11 грудня 2008.
  43. Vlastimil Klima (14 грудня 2008). Dynamic SHA2 is vulnerable to generic attacks. Процитовано 21 грудня 2008.
  44. Danilo Gligoroski; Rune Steinsmo Ødegård, Marija Mihova, Svein Johan Knapskog, Ljupco Kocarev, Aleš Drápal (November 4, 2008). edon-r. Процитовано 10 листопада 2008.
  45. Cryptanalysis of Edon-R. 2008. Процитовано 10 липня 2009.
  46. Sean O'Neil; Karsten Nohl, Luca Henzen (31 жовтня 2008). EnRUPT - The Simpler The Better. Процитовано 10 листопада 2008.
  47. Sebastiaan Indesteege (November 6, 2008). Collisions for EnRUPT. Архів оригіналу за 18 лютого 2009. Процитовано 7 листопада 2008.
  48. Cryptanalysis of ESSENCE (PDF).
  49. Ivica Nikolić; Alex Biryukov, Dmitry Khovratovich. Hash family LUX - Algorithm Specifications and Supporting Documentation (PDF). Процитовано 11 грудня 2008.
  50. Mikhail Maslennikov. MCSSHA-3 hash algorithm. Архів оригіналу за 2 травня 2009. Процитовано 8 листопада 2008.
  51. Second preimages on MCSSHA-3 (PDF). Процитовано 14 листопада 2008.[недоступне посилання з 01.12.2016]
  52. Peter Maxwell (September 2008). The Sgàil Cryptographic Hash Function (PDF). Процитовано 9 11 2008.
  53. Peter Maxwell (5 листопада 2008). Aww, p*sh!. Процитовано 6 листопада 2008.
  54. Michael Gorski; Ewan Fleischmann, Christian Forler (28 жовтня 2008). The Twister Hash Function Family (PDF). Процитовано 11 грудня 2008.
  55. Florian Mendel, Christian Rechberger, Martin Schläffer (2008). Cryptanalysis of Twister (PDF). Процитовано 19 травня 2009.
  56. Michael Kounavis; Shay Gueron (3 листопада 2008). Vortex: A New Family of One Way Hash Functions based on Rijndael Rounds and Carry-less Multiplication. Процитовано 11 листопада 2008.
  57. Jean-Philippe Aumasson, Orr Dunkelman, Florian Mendel, Christian Rechberger, Søren S. Thomsen (2009). Cryptanalysis of Vortex (PDF). Процитовано 19 травня 2009.
  58. Neil Sholer (29 жовтня 2008). Abacus: A Candidate for SHA-3 (PDF). Процитовано 11 грудня 2008.
  59. Gregory G. Rose. Design and Primitive Specification for Boole (PDF). Процитовано 8 листопада 2008.
  60. Gregory G. Rose (10 грудня 2008). OFFICIAL COMMENT: BOOLE (PDF). Процитовано 23 грудня 2008.
  61. David A. Wilson (23 жовтня 2008). The DCH Hash Function (PDF). Процитовано 23 листопада 2008.
  62. Natarajan Vijayarangan. A NEW HASH ALGORITHM: Khichidi-1 (PDF). Процитовано 11 грудня 2008.
  63. Björn Fay. MeshHash (PDF). Процитовано 30 листопада 2008.
  64. Orhun Kara; Adem Atalay, Ferhat Karakoc and Cevat Manap. SHAMATA hash function: A candidate algorithm for NIST competition. Архів оригіналу за 1 лютого 2009. Процитовано 10 листопада 2008.
  65. Michal Trojnara (14 жовтня 2008). StreamHash Algorithm Specifications and Supporting Documentation (PDF). Процитовано 15 грудня 2008.
  66. Rafael Alvarez; Gary McGuire and Antonio Zamora. The Tangle Hash Function (PDF). Процитовано 11 грудня 2008.
  67. John Washburn. WAMM: A CANDIDATE ALGORITHM FOR THE SHA-3 COMPETITION (PDF). Архів оригіналу за 19 листопада 2008. Процитовано 9 11 2008.
  68. OFFICIAL COMMENT: WaMM is Withdrawn (PDFauthor=John Washburn). 20 грудня 2008. Процитовано 23 грудня 2008.
  69. Bob Hattersly (15 жовтня 2008). Waterfall Hash - Algorithm Specification and Analysis (PDF). Процитовано 9 11 2008.
  70. Bob Hattersley (20 грудня 2008). OFFICIAL COMMENT: Waterfall is broken (PDF). Процитовано 23 грудня 2008.
  71. Bruce Schneier (19 листопада 2008). 11 / skein_and_sha-3.html Skein and SHA-3 News. Процитовано 23 грудня 2008.
  72. Jason Lee (6 листопада 2008). HASH 2X. TI BASIC Developer. Процитовано 6 листопада 2008.
  73. HASH 2X. TI BASIC Developer. 6 листопада 2008. Процитовано 6 листопада 2008.
  74. Robert J. Jenkins Jr. Algorithm Specification. Процитовано 15 грудня 2008.
  75. Internal collision attack on Maraca (PDF). Процитовано 15 грудня 2008.
  76. Geoffrey Park. NKS 2D Cellular Automata Hash (PDF). Процитовано 9 11 2008.
  77. Cristophe De Cannière (13 листопада 2008). Collisions for NKS2D-224. Процитовано 14 листопада 2008.
  78. Brandon Enright (14 листопада 2008). Collisions for NKS2D-512. Процитовано 14 листопада 2008.
  79. Peter Schmidt-Nielsen. Ponic (PDF). Процитовано 9 11 2008.
  80. María Naya-Plasencia. Second preimage attack on Ponic (PDF). Процитовано 30 листопада 2008.
  81. ZK-Crypt Homepage. Архів оригіналу за 9 лютого 2009. Процитовано 1 березня 2009.
  82. http://eprint.iacr.org/2008/511.pdf

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.