Whirlpool (хэш-функция)

Из Википедии, бесплатной энциклопедии
джакузи
Общий
Дизайнеры Винсент Реймен , Пауло СЛМ Баррето
Впервые опубликовано 2000, 2001, 2003
Полученный из Квадрат , АЭС
Сертификация НЕССИ
Деталь
Размеры дайджеста 512 бит
Претензии по безопасности Большой размер хэш-суммы
Состав Миягути-Пренель
Раунды 10
Лучший публичный криптоанализ
В 2009 году было объявлено о рикошетной атаке , которая представляет собой полное столкновение с 4,5 раундами Whirlpool в 2 120 операций, столкновений с полусвободным стартом против 5,5 туров в 2 120 время и полусвободный старт около столкновений против 7,5 раундов в 2 128 время. [1]

В информатике и криптографии Whirlpool ) (иногда называемый WHIRLPOOL — это криптографическая хеш-функция . Он был разработан Винсентом Рейменом (соавтором Advanced Encryption Standard ) и Пауло С.Л.М. Баррето , которые впервые описали его в 2000 году.

Хэш рекомендован проектом NESSIE . Он также был принят Международной организацией по стандартизации (ISO) и Международной электротехнической комиссией (IEC) как часть совместного международного стандарта ISO/IEC 10118-3 .

Особенности конструкции [ править ]

Галактика Водоворот (M51), давшая название алгоритму. [2]

Whirlpool — это хеш, созданный на основе Square блочного шифра и относящийся к этому семейству функций блочного шифра.

Whirlpool — это конструкция Миягути-Пренеля, основанная на существенно модифицированном усовершенствованном стандарте шифрования (AES).

Whirlpool принимает сообщение любой длины меньше 2 256 бит и возвращает 512-битный дайджест сообщения . [3]

Авторы заявили, что

«WHIRLPOOL не запатентован (и никогда не будет) запатентован . Его можно использовать бесплатно для любых целей». [2]

Изменения в версии [ править ]

Исходный Whirlpool будет называться Whirlpool-0 , первая версия Whirlpool будет называться Whirlpool-T , а последняя версия будет называться Whirlpool в следующих тестовых векторах.

  • В первой версии 2001 года S-box был изменен со случайно сгенерированного с хорошими криптографическими свойствами на тот, который имеет лучшие криптографические свойства и его легче реализовать на аппаратном уровне.
  • Во второй версии (2003 г.) был обнаружен недостаток в матрице диффузии , который снизил расчетную безопасность алгоритма ниже его потенциала. [4] Изменение констант вращающейся матрицы 8x8 с (1, 1, 3, 1, 5, 8, 9, 5) на (1, 1, 4, 1, 8, 5, 2, 9) решило эту проблему.

Внутренняя структура [ править ]

Хэш-функция Whirlpool представляет собой конструкцию Меркла-Дамгорда, основанную на AES -подобном блочном шифре W в режиме Миягути-Пренеля . [2]

Блочный шифр W состоит из матрицы состояний 8×8. байтов, всего 512 бит.

Процесс шифрования состоит из обновления состояния с помощью четырех раундовых функций в течение 10 раундов. Четыре функции раунда: SubBytes (SB), ShiftColumns (SC), MixRows (MR) и AddRoundKey (AK). Во время каждого раунда новое состояние вычисляется как .

Суббайты [ править ]

Операция SubBytes применяет нелинейную перестановку (S-блок) к каждому байту состояния независимо. 8-битный S-блок состоит из трех меньших 4-битных S-блоков.

ShiftColumns [ править ]

Операция ShiftColumns циклически сдвигает каждый байт в каждом столбце состояния. В столбце j байты сдвинуты вниз на j позиций.

MixRows [ править ]

Операция MixRows представляет собой умножение справа каждой строки на матрицу 8×8. . Матрица выбирается таким образом, чтобы число ветвей (важное свойство при рассмотрении устойчивости к дифференциальному криптоанализу ) было 9, что является максимальным значением.

AddRoundKey [ править ]

Операция AddRoundKey использует побитовое исключающее ИЛИ для добавления ключа, рассчитанного по расписанию ключей, к текущему состоянию. Расписание ключей идентично самому шифрованию, за исключением того, что функция AddRoundKey заменена функцией AddRoundConstant , которая добавляет заранее определенную константу в каждом раунде.

Хэши Whirlpool [ править ]

Алгоритм Whirlpool претерпел две редакции с момента его первоначальной спецификации 2000 года.

Люди, включившие Whirlpool, скорее всего, будут использовать самую последнюю версию Whirlpool; Хотя в более ранних версиях Whirlpool не было известных недостатков безопасности, самая последняя версия имеет лучшие характеристики эффективности аппаратной реализации, а также, вероятно, будет более безопасной. Как упоминалось ранее, это также версия, принятая в международном стандарте ISO/IEC 10118-3 .

512-битные (64-байтовые) хеши Whirlpool (также называемые дайджестами сообщений ) обычно представляются в виде 128-значных шестнадцатеричных чисел.
Ниже показаны 43-байтовые входные данные ASCII (не включая кавычки) и соответствующие хэши Whirlpool:

Версия Строка ввода Вычисленный хэш
Водоворот-0 " Быстрая коричневая лиса прыгает через ленивую собаку "
4F8F5CB531E3D49A61CF417CD133792CCFA501FD8DA53EE368FED20E5FE0248C
  3A0B64F98A6533CEE1DA614C3A8DDEC791FF05FEE6D971D57C1348320F4EB42D
 
Водоворот-Т " Быстрая коричневая лиса прыгает через ленивую собаку "
3CCF8252D8BBB258460D9AA999C06EE38E67CB546CFCFF48E91F700F6FC7C183
  AC8CC3D3096DD30A35B01F4620A1E3A20D79CD5168544D9E1B7CDF49970E87F1
 
джакузи " Быстрая коричневая лиса прыгает через ленивую собаку "
B97DE512E91E3828B40D2B0FDCE9CEB3C4A71F9BEA8D88E75C4FA854DF36725F
  D2B52EB6544EDCACD6F8BEDDFEA403CB55AE31F03AD62A5EF54E42EE82C3FB35
 

Реализации [ править ]

Авторы предоставляют эталонные реализации алгоритма Whirlpool, включая версию, написанную на C, и версию, написанную на Java . [2] Эти эталонные реализации были опубликованы в открытом доступе. [2]

Однако исследования по анализу безопасности функции Whirlpool показали, что в среднем 8 случайных ошибок достаточно для компрометации обрабатываемого 512-битного хэш-сообщения Whirlpool и секретного ключа HMAC-Whirlpool в контексте Cloud of Вещи (CoT). Это подчеркивает необходимость усиления мер безопасности при его реализации. [5]

Принятие [ править ]

Двумя из первых широко используемых криптографических программ, которые начали использовать Whirlpool, были FreeOTFE , а затем TrueCrypt в 2005 году. [ нужна цитата ]

VeraCrypt (форк TrueCrypt ) включал Whirlpool (окончательную версию) в качестве одного из поддерживаемых алгоритмов хеширования. [6]

См. также [ править ]

Ссылки [ править ]

  1. ^ Флориан Мендель1, Кристиан Рехбергер, Мартин Шлеффер, Сорен С. Томсен (24 февраля 2009 г.). Отскок атаки: криптоанализ уменьшенного водоворота и Грёстла (PDF) . Быстрое программное шифрование: 16-й международный семинар. {{cite conference}}: CS1 maint: несколько имен: список авторов ( ссылка ) CS1 maint: числовые имена: список авторов ( ссылка )
  2. ^ Перейти обратно: а б с д Это Пауло С.Л.М. Баррето (25 ноября 2008 г.). «Хеш-функция WHIRLPOOL» . Архивировано из оригинала 29 ноября 2017 г. Проверено 9 августа 2018 г.
  3. ^ Баррето, Пауло СЛМ и Реймен, Винсент (24 мая 2003 г.). «Функция хеширования WHIRLPOOL» . Архивировано из оригинала (ZIP) 26 октября 2017 г. Проверено 9 августа 2018 г. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  4. ^ Кёдзи, Сибутани и Шираи, Тайдзо (11 марта 2003 г.). «О матрице диффузии, используемой в хеш-функции Whirlpool» (PDF) . Проверено 9 августа 2018 г. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  5. ^ Ли, В., Гао, З., Гу, Д., Ге, К., Ляо, Л., Чжоу, З., Лю, Ю. и Лю, З. (2017). Анализ безопасности хеш-функции Whirlpool в облаке вещей. Транзакции KSII в Интернете и информационных системах, 11 (1), 536–551. https://doi.org/10.3837/tiis.2017.01.028
  6. ^ «Водоворот» . Документация VeraCrypt . ИДРИКС . Проверено 9 августа 2018 г.

Внешние ссылки [ править ]