JH (хэш-функция)
Общий | |
---|---|
Дизайнеры | Хунцзюнь Ву |
Сертификация | Финалист SHA-3 |
Деталь | |
Размеры дайджеста | 224, 256, 384, 512 |
Скорость | 16,1 cpb на Core 2 в 64-битном режиме с использованием SSE2; 37,3 cpb при использовании ANSI C. |
JH — это криптографическая хеш-функция, на конкурс хеш-функций NIST представленная Хунцзюном Ву . Несмотря на то, что JH был выбран одним из пяти финалистов конкурса, в 2012 году он в конечном итоге проиграл кандидату от хэша NIST Кечаку . [1] JH имеет 1024-битное состояние и работает с 512-битными входными блоками. Обработка входного блока состоит из трех этапов:
- XOR входного блока в левую половину состояния.
- Примените к состоянию 42-раундовую перестановку без ключа (функцию шифрования). Он состоит из 42 повторений:
- Разбейте ввод на 256 4-битных блоков и сопоставьте каждый с одним из двух 4-битных S-блоков , причем выбор делается с помощью 256-битного графика ключей, зависящего от раунда. Аналогично, объедините каждый входной блок с ключевым битом и отобразите результат через 5 → 4-битный S-блок.
- Смешайте соседние 4-битные блоки, используя код, разделяемый на максимальное расстояние, через GF(2 4 ) .
- Переставляйте 4-битные блоки так, чтобы они были соседними с разными блоками в следующих раундах.
- XOR входного блока в правую половину состояния.
Результирующий дайджест представляет собой последние 224, 256, 384 или 512 бит из 1024-битного конечного значения. Он хорошо подходит для поразрядной обработки реализации с использованием набора инструкций SSE2 , обеспечивая скорость 16,8 тактов на байт .
Примеры хешей JH [ править ]
Хэш-значения пустой строки.
JH-224("") 0x 2c99df889b019309051c60fecc2bd285a774940e43175b76b2626630 JH-256("") 0x 46e64619c18bb0a92a5e87185a47eef83ca747b8fcc8e1412921357e326df434 JH-384("") 0x 2fe5f71b1b3290d3c017fb3c1a4d02a5cbeb03a0476481e25082434a881994b0ff99e078d2c16b105ad069b569315328 JH-512("") 0x 90ecf2f76f9d2c8017d979ad5ab96b87d58fc8fc4b83060f3f900774faa2c8fabe69c5f4ff1ec2b61d6b316941cedee117fb04b1f4c5bc1b919ae841c50eec4f
Даже небольшое изменение в сообщении (с подавляющей вероятностью) приведет к совершенно другому хешу из-за лавинного эффекта . Например, добавив точку в конце предложения:
JH-256("The quick brown fox jumps over the lazy dog") 0x 6a049fed5fc6874acfdc4a08b568a4f8cbac27de933496f031015b38961608a0 JH-256("The quick brown fox jumps over the lazy dog.") 0x d001ae2315421c5d3272bac4f4aa524bddd207530d5d26bbf51794f0da18fafc
Ссылки [ править ]
- ^ «NIST выбирает победителя конкурса алгоритмов безопасного хеширования (SHA-3)» (пресс-релиз). НИСТ . 02.10.2012 . Проверено 2 октября 2012 г.
Внешние ссылки [ править ]
- Веб-сайт JH. Архивировано 4 декабря 2011 г. на Wayback Machine.
- Страница JH в зоопарке SHA-3
- Исходный код VHDL, разработанный Исследовательской группой криптографической инженерии (CERG) Университета Джорджа Мейсона.