Тигр (хеш-функция) - Tiger (hash function)
Общий | |
---|---|
Дизайнеров | Росс Андерсон и Эли Бихам |
Впервые опубликовано | 1996 |
Деталь | |
Размеры дайджеста | 192, 128, 160 |
Раундов | 24 |
В криптография, Тигр[1] это криптографическая хеш-функция разработано Росс Андерсон и Эли Бихам в 1995 г. за эффективность 64-битный платформы. Размер хеш-значения Tiger составляет 192 бита. Усеченные версии (известные как Tiger / 128 и Tiger / 160) могут использоваться для совместимости с протоколами, предполагающими определенный размер хэша. в отличие от SHA-2 семейство, не определены отличительные значения инициализации; они просто префиксы полного хеш-значения Tiger / 192.
Тигр2[2] это вариант, в котором сообщение дополняется первым байтом с шестнадцатеричным значением 0x80, как в MD4, MD5 и SHA, а не с шестнадцатеричным значением 0x01, как в случае Tiger. В остальном эти два варианта идентичны.
Алгоритм
Tiger разработан с использованием почти универсального Парадигма Меркла-Дамгарда. В функция одностороннего сжатия работает с 64-битными словами, поддерживая 3 слова состояния и обрабатывая 8 слов данных. Есть 24 раунда, использующие комбинацию операций смешивания с XOR и сложения / вычитания, вращения и S-коробка поиск и довольно сложный алгоритм планирования ключей для получения 24 раундовых ключей из 8 входных слов.
Несмотря на то, что программное обеспечение работает быстро, большие S-блоки Tiger (четыре S-блока, каждый с 256 64-битными записями, всего 8 KiB ) реализовывать аппаратно или микроконтроллеры трудно.[нужна цитата ]
использование
Тигр часто используется в Хеш-дерево Меркла форма, где она обозначена как TTH (Хэш Тигрового Дерева ). TTH используется многими клиентами на Прямое соединение и Гнутелла файлообменные сети, и при желании может быть включен в BitTorrent метафайл [3] для лучшей доступности контента.
Тигр рассматривался для включения в OpenPGP стандарт, но от него отказались в пользу RIPEMD -160.[4][5]
OID
RFC 2440 относится к TIGER как не имеющий OID, тогда как Стандарты кодирования GNU перечислить TIGER как имеющий OID 1.3.6.1.4.1.11591.12.2
.[6] в IPSEC поддерево, HMAC-TIGER назначается OID 1.3.6.1.5.5.8.1.3
.[7] OID для TTH пока не объявлен.
Порядок байтов
Спецификация Tiger не определяет способ вывода его вывода, а определяет только результат как три упорядоченных 64-битных целых числа. Программа «testtiger» на домашней странице автора была предназначена для упрощения тестирования исходного кода теста, а не для определения какого-либо конкретного порядка печати. Протоколы Прямое соединение и АЦП а также программа tthsum
используйте порядок байтов с прямым порядком байтов, который также предпочитает один из авторов.[8]
Примеры
В приведенном ниже примере 192-битные (24-байтовые) хэши Tiger представлены как 48 шестнадцатеричный цифры в порядке байтов с прямым порядком байтов. Ниже показано 43-байтовое ASCII input и соответствующие хеши Tiger:
Тигр («Быстрая коричневая лиса перепрыгивает через ленивого dog ") = 6d12a41e72e644f017b6f0e2f7b44c6285f06dd5d2c5b075Tiger2 (" Быстрая коричневая лисица перепрыгивает через ленивого dog ") = 976abff8062a2e9dcea3a1ace966ed9c19cb85558b4976d8
Даже небольшое изменение в сообщении (с очень высокой вероятностью) приведет к совершенно другому хешу, например изменение d к c:
Тигр («Быстрая коричневая лиса перепрыгивает через ленивого cog ") = a8f04b0f7201a0d728101c9d26525b31764a3493fcd8458fTiger2 (" Быстрая коричневая лиса перепрыгивает через ленивого cog ") = 09c11330283a27efb51930aa7dc1ec624ff738a8d9bdd3df
Хеш строки нулевой длины:
Тигр ("") = 3293ac630c13f0245f92bbb1766e16167a4e58492dde73f3Tiger2 ("") = 4441be75f6018773c206c22745374b924aa8313fef919f41
Криптоанализ
В отличие от MD5 или SHA-0/1, нет известных эффективных атак на 24-раундового Tiger.[9] кроме псевдо-ближнего столкновения.[10] В то время как MD5 обрабатывает свое состояние с помощью 64 простых 32-битных операций на 512-битный блок и SHA-1 с 80, Tiger обновляет свое состояние, в общей сложности 144 таких операции на 512-битный блок, что дополнительно усиливается за счет большого вида S-блока. UPS.
Джон Келси и Стефан Люкс обнаружили атаку с обнаружением столкновений на 16-раундовом тигре с временной сложностью, эквивалентной примерно 244 вызовы функции сжатия и другая атака, которая находит псевдо-близкие столкновения в 20-раундовом Tiger с работой меньше, чем у 248 вызовы функции сжатия.[9] Флориан Мендель и другие. улучшили эти атаки, описав атаку со столкновением, охватывающую 19 раундов Тигра, и атаку псевдо-почти-столкновением с 22 раундами. Эти атаки требуют усилий, эквивалентных примерно 262 и 244 оценки функции сжатия Tiger соответственно.[11]
Смотрите также
- Сводка по безопасности хеш-функции
- Сравнение криптографических хеш-функций
- Список хеш-функций
- Змея - блочный шифр тех же авторов
Рекомендации
- ^ Росс Андерсон и Эли Бихам (8 февраля 1996 г.). «Тигр: новая быстрая хеш-функция». Быстрое программное шифрование 3. Кембридж. Получено 2017-03-03.
- ^ "Тестовые векторы Tiger2". Проект НЕССИ. 2005-02-25. Получено 2017-03-03.
- ^ Фейт, Гарольд (2012-02-12). «P2P: Протокол: Технические характеристики: Дополнительные хэши: корень TTH». Получено 2017-11-18.
- ^ Каллас, Джон (2004-08-18). «Re: пересмотр ТИГР». В архиве из оригинала 14.07.2014.
- ^ Порнин, Томас (2013-10-25). «Как вы используете хеш-функцию Tiger с GPG?».
- ^ «Поведение программы для всех программ: выделение OID». GNU. Получено 2017-11-18.
- ^ "Справочная запись для OID 1.3.6.1.5.5.8.1.3 - hmacTIGER". 1998-10-18. Получено 2017-11-18.
- ^ "Дайджест :: Модуль Тигра". CPAN. Получено 2017-03-03.
- ^ а б Джон Келси и Стефан Лакс (2006). «Столкновения и ближние столкновения для тигра с уменьшенной округлостью» (PDF). Быстрое программное шифрование 13. Грац. Архивировано из оригинал (PDF) на 2016-03-04.CS1 maint: использует параметр авторов (связь)
- ^ Мендель, Флориан; Винсент, Реймен. «Криптоанализ хеш-функции тигра». ASIACRYPT 2007. Springer Berlin / Heidelberg. С. 536–550. Дои:10.1007/978-3-540-76900-2_33.
- ^ Флориан Мендель, Барт Пренель, Винсент Риджмен, Хиротака Йошида и Дай Ватанабе (2006). «Новости о Тигре» (PDF). Индокрипт 7. Калькутта.CS1 maint: использует параметр авторов (связь)