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

редактировать
Whirlpool
General
DesignersВинсент Риджмен, Пауло SLM Barreto
Впервые опубликовано2000, 2001, 2003
Получено изSquare, AES
CertificationNESSIE
Detail
Размеры дайджеста 512 бит
Требования безопасностиБольшой размер хеш-суммы
СтруктураMiyaguchi-Preneel
Раунды10
Лучший публичный криптоанализ
В 2009 году была объявлена ​​атака отскоком, которая представляет полные коллизии против 4,5 раундов Whirlpool за 2 операции, коллизии полусвободного старта против 5,5 раундов за 2 раза и почти столкновения полусвободного старта против 7,5 раундов за 2 раза.

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

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

Содержание

  • 1 Особенности конструкции
    • 1.1 Изменения в версии
  • 2 Внутренняя структура
    • 2.1 Суббайты
    • 2.2 ShiftColumns
    • 2.3 MixRows
    • 2.4 AddRoundKey
  • 3 Хэши Whirlpool
  • 4 Реализации
  • 5 Принятие
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки

Конструктивные особенности

Whirlpool Galaxy (M51), которая вдохновила название алгоритма.

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

Whirlpool - это конструкция Miyaguchi-Preneel, основанная на существенно модифицированном Advanced Encryption Standard (AES).

Whirlpool принимает сообщение длиной менее 2 бит и возвращает 512-битный дайджест сообщения.

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

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

Изменения версий

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

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

Внутренний структура

Хеш-функция Whirlpool - это конструкция Меркла-Дамгарда, основанная на AES -подобном блочном шифре W в Миягути– Режим Preneel.

Блочный шифр W состоит из матрицы состояний 8 × 8 S {\ displaystyle S}S байтов для всего 512 бит.

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

SubBytes

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

ShiftColumns

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

MixRows

Операция MixRows - это правое умножение каждой строки на матрицу 8 × 8 над GF (2 8) {\ displaystyle GF ( {2 ^ {8}})}{\ displaystyle GF ({2 ^ {8}}) } . Матрица выбрана так, чтобы число ветвей (важное свойство при рассмотрении устойчивости к дифференциальному криптоанализу ) было 9, что является максимальным.

AddRoundKey

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

Хэши Whirlpool

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

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

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

ВерсияВходная строкахеши
Вихревые--"быстрая коричневая лиса прыгает через ленивую собаку "
4F8F5CB531E3D49A61CF417CD133792CCFA501FD8DA53EE368FED20E5FE0248C 3A0B64F98A6533CEE1DA614C3A8DDEC791FF05FEE6D971D57C1348320F4EB42D
Вихревой-Т"быстрая коричневая лиса перепрыгивает через ленивая собака "
3CCF8252D8BBB258460D9AA999C06EE38E67CB546CFFCF48E91F700F6FC7C183 AC8CC3D3096DD30A35B01F4620A1E3A20D79CD5168544D9E1B7CDF49970E87F1
Whirlpool" быстрая коричневая лиса прыгает через ленивую собаку "
B97DE512E91E3828B40D2B0FDCE9CEB3C4A71F9BEA8D88E75C4FA854DF36725F D2B52EB6544EDCACD6F8BEDDFEA403CB55A E31F03AD62A5EF54E42EE82C3FB35

Даже небольшое изменение в сообщении (с очень высокой вероятностью 1–10–154 {\ displaystyle 1-10 ^ {- 154}}1-10 ^ {{- 154}} ) приведет к другому хэш, который обычно выглядит совершенно иначе, как два не связанных между собой случайных числа. Следующее демонстрирует результат изменения предыдущего ввода одной буквой (даже одним битом в ASCII-совместимых кодировках), заменяя dна e:

VersionInput Stringхешей
Вихревая-0"быстрая коричневая лиса прыгает через ленивую EOG "
228FBF76B2A93469D4B25929836A12B7D7F2A0803E43DABA0C7FC38BC11C8F2A 9416BBCF8AB8392EB2AB7BCB565A64AC50C26179164B26084A253CAF2E012676
Вихревая-Т" булок над ленивым EOG "
C8C15D2A0E0DE6E6885E8A7D9B8A9139746DA299AD50158F5FA9EECDDEF744F9 1B8B83C617080D77CB4247B1E964C2959C507AB2DB0F1F3BF3E3B299CA00CAE3
Вихревой"булки через ленивую EOG "
C27BA124205F72E6847F3E19834F925CC666D0974167AF915BB462420ED40CC5 0900D85A1F923219D832357750492D5C143011A76988344C2635E69D06F2D38C

хэш строки нулевой длины:

VersionInput StringComputed Hash
Whirlpool-0""
B3E1AB6EAF640A34F784593F2074416A CCD3B8E62C620175FCA0997B1BA23473 39AA0D79E754C308209EA36811DFA40C1C32F1A2B9004725D987D3635165D3C8
Вихревая-Т""
470F0409ABAA446E49667D4EBE12A14387CEDBD10DD17B8243CAD550A089DC0F EEA7AA40F6C2AAAB71C6EBD076E43C7CFCA0AD32567897DCB5969861049A0F5A
Вихревая""
19FA61D75522A4669B44E39C1D2E1726C530232130D407F89AFEE0964997F7A7 3E83BE698B288FEBCF88E3E03C4F0757EA8964E59B63D93708B138CC42A66EB3

Реализации

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

Принятие

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

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

См. Также

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-20 13:57:35
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте