Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Исследование работы алгоритма хеширования Whirlpool

Криптостойкость Whirlpool

Хеш-функция H считается криптографически стойкой, если она удовлетворяет трём основным требованиям, на которых основано большинство применений хеш-функций в криптографии: необратимость, стойкость к коллизиям первого рода и стойкость к коллизиям второго рода.

Пусть hn - произвольная n-битная подстрока 512-битного хеша Whirlpool.

Авторы Whirlpool утверждают, что созданная ими хеш-функция удовлетворяет следующим требованиям криптостойкости:

1. Генерация коллизии требует порядка 2n / 2 вычислений хеша WHIRLPOOL (стойкость к коллизиям второго рода).

2. Для заданной hn поиск такого сообщения M, что H(M) = hn, потребует порядка 2n вычислений хеша WHIRLPOOL (необратимость).

3. Для заданного сообщения M обнаружение другого сообщения N, для которого H(N) = H(M), потребует порядка 2n вычислений хеша WHIRLPOOL (стойкость к коллизиям первого рода).

4. Невозможно обнаружить систематические корреляции между любой линейной комбинацией входных бит и любой линейной комбинацией бит хеша или предсказать, какие биты хеша изменят свое значение при изменении определенных входных бит (стойкость к линейному криптоанализу и дифференциальному криптоанализу).

К данному заявлению авторы Whirlpool добавили примечание:

Эти утверждения вытекают из значительного запаса прочности относительно всех известных атак. Тем не менее, мы понимаем, что невозможно сделать не спекулятивные утверждения о неизвестных вещах.

Таблица 1.2. Результаты криптоанализа хеш-функций Whirlpool и Grшstl по методу The Rebound Attack

Хеш-функция

Число раундов

Сложность

Требуемый объём памяти

Тип коллизии

Whirlpool

4.5 / 10

2120

216

коллизия

5.5 / 10

2120

216

полусвободная коллизия

7.5 / 10

2128

216

полусвободная почти коллизия

Grшstl-256

6 / 10

2120

270

полусвободная коллизия

Авторы исследования использовали следующие понятия и термины:

1.  - вектор инициализации

2.  - сообщение, подлежащее хешированию

3.  - хеш-функция

4. функция сжатия

Типы коллизий:

1. коллизия:

1.1. - фиксирован

2. почти коллизия:

2.1. - фиксирован

2.2. небольшое число бит хешей и различны

3. полусвободная коллизия:

4. свободная коллизия:

Применение Whirlpool

Whirlpool - свободно распространяемая хеш-функция. Поэтому она находит широкое применение в открытом программном обеспечении. Здесь перечислены некоторые примеры использования Whirlpool:

1. Jacksum - свободно распространяемая утилита для вычисления контрольных сумм.

2. Crypto++ - свободно распространяемая C++ библиотека классов криптографических примитивов.

3. TrueCrypt - программа для шифрования «на лету».

4. FreeOTFE - это свободная бесплатная программа с открытым кодом, предназначенная для шифрования «на лету». Выпускается для операционных систем Windows и Windows Mobile (FreeOTFE4PDA).

5. DarkCrypt - свободно распространяемая крипто- и стеганографическая утилита в виде плагина для Total Commander.

Для удобства 512 бит (64 байта) хеша Whirlpool часто представляются в виде 128-значного шестнадцатеричного числа.

Как говорилось выше, алгоритм потерпел два изменения с момента выпуска в 2000 году. Ниже приведены примеры хешей, вычисленных по ASCII тексту панграммы «The quick brown fox jumps over the lazy dog» для всех трех версий Whirlpool:

Whirlpool-0("The quick brown fox jumps over the lazy dog") =

4F8F5CB531E3D49A61CF417CD133792CCFA501FD8DA53EE368FED20E5FE0248C

3A0B64F98A6533CEE1DA614C3A8DDEC791FF05FEE6D971D57C1348320F4EB42D

Whirlpool-T("The quick brown fox jumps over the lazy dog") =

3CCF8252D8BBB258460D9AA999C06EE38E67CB546CFFCF48E91F700F6FC7C183

AC8CC3D3096DD30A35B01F4620A1E3A20D79CD5168544D9E1B7CDF49970E87F1

Whirlpool("The quick brown fox jumps over the lazy dog") =

B97DE512E91E3828B40D2B0FDCE9CEB3C4A71F9BEA8D88E75C4FA854DF36725F

D2B52EB6544EDCACD6F8BEDDFEA403CB55AE31F03AD62A5EF54E42EE82C3FB35

Даже небольшое изменение исходного текста сообщения (в данном случае подменяется одна буква: символ «d» заменяется на символ «e») приводит к полному изменению хеша:

Whirlpool-0("The quick brown fox jumps over the lazy eog") =

228FBF76B2A93469D4B25929836A12B7D7F2A0803E43DABA0C7FC38BC11C8F2A

9416BBCF8AB8392EB2AB7BCB565A64AC50C26179164B26084A253CAF2E012676

Whirlpool-T("The quick brown fox jumps over the lazy eog") =

C8C15D2A0E0DE6E6885E8A7D9B8A9139746DA299AD50158F5FA9EECDDEF744F9

1B8B83C617080D77CB4247B1E964C2959C507AB2DB0F1F3BF3E3B299CA00CAE3

Whirlpool("The quick brown fox jumps over the lazy eog") =

C27BA124205F72E6847F3E19834F925CC666D0974167AF915BB462420ED40CC5

0900D85A1F923219D832357750492D5C143011A76988344C2635E69D06F2D38C

Добавление символов в строку, конкатенация строк и другие изменения также влияют на результат.

Примеры хешей для «нулевой» строки:

Whirlpool-0("") =

B3E1AB6EAF640A34F784593F2074416ACCD3B8E62C620175FCA0997B1BA23473

39AA0D79E754C308209EA36811DFA40C1C32F1A2B9004725D987D3635165D3C8

Whirlpool-T("") =

470F0409ABAA446E49667D4EBE12A14387CEDBD10DD17B8243CAD550A089DC0F

EEA7AA40F6C2AAAB71C6EBD076E43C7CFCA0AD32567897DCB5969861049A0F5A

Whirlpool("") =

19FA61D75522A4669B44E39C1D2E1726C530232130D407F89AFEE0964997F7A7

3E83BE698B288FEBCF88E3E03C4F0757EA8964E59B63D93708B138CC42A66EB3

Таблица 1.3. Примеры в программировании

Среда исполнения

Код

Результат

PHP 5.0

echo hash( 'whirlpool', 'test' );

b913d5bbb8e461c2c5961cbe0edcdadfd29f068225ceb37da6defcf89849368f

8c6c2eb6a4c4ac75775d032a0ecfdfe8550573062b653fe92fc7b8fb3b7be8d6

Ruby

puts Whirlpool.calc_hex('test')

b913d5bbb8e461c2c5961cbe0edcdadfd29f068225ceb37da6defcf89849368f

8c6c2eb6a4c4ac75775d032a0ecfdfe8550573062b653fe92fc7b8fb3b7be8d6

Вывод: Достоинством алгоритма хеширования Whirlpool является то что для него пока не нашли коллизий. Недостатком этого алгоритма является сложность реализации.

 
< Предыдущая   СОДЕРЖАНИЕ   Следующая >
 

Предметы
Агропромышленность
Банковское дело
БЖД
Бухучет и аудит
География
Документоведение
Естествознание
Журналистика
Инвестирование
Информатика
История
Культурология
Литература
Логика
Логистика
Маркетинг
Математика, химия, физика
Медицина
Менеджмент
Недвижимость
Педагогика
Политология
Политэкономия
Право
Психология
Региональная экономика
Религиоведение
Риторика
Социология
Статистика
Страховое дело
Техника
Товароведение
Туризм
Философия
Финансы
Экология
Экономика
Этика и эстетика
Прочее