Безопасные алгоритмы хеширования
Алгоритмы безопасного хеширования — это семейство криптографических хэш-функций, опубликованных Национальным институтом стандартов и технологий (NIST) в качестве США федерального стандарта обработки информации (FIPS), включая:
- SHA-0 : ретроним , присвоенный оригинальной версии 160-битной хэш-функции, опубликованной в 1993 году под названием «SHA». Он был отозван вскоре после публикации из-за нераскрытого «существенного недостатка» и заменен слегка переработанной версией SHA-1.
- SHA-1 : 160-битная хеш-функция, напоминающая более ранний алгоритм MD5 . Он был разработан Агентством национальной безопасности (АНБ) как часть алгоритма цифровой подписи . В SHA-1 были обнаружены криптографические уязвимости, и после 2010 года этот стандарт больше не был одобрен для большинства криптографических применений.
- SHA-2 : семейство двух похожих хэш-функций с разными размерами блоков, известных как SHA-256 и SHA-512 . Они различаются размером слова; SHA-256 использует 32-битные слова, тогда как SHA-512 использует 64-битные слова. Существуют также усеченные версии каждого стандарта, известные как SHA-224 , SHA-384 , SHA-512/224 и SHA-512/256 . Они также были разработаны АНБ.
- SHA-3 : хеш-функция, ранее называвшаяся Keccak , выбранная в 2012 году после публичного конкурса среди дизайнеров, не связанных с АНБ. Он поддерживает ту же длину хеша, что и SHA-2, а его внутренняя структура значительно отличается от остальной части семейства SHA.
Соответствующими стандартами являются FIPS PUB 180 (исходный SHA), FIPS PUB 180-1 (SHA-1), FIPS PUB 180-2 (SHA-1, SHA-256, SHA-384 и SHA-512). NIST обновил проект публикации FIPS 202, стандарта SHA-3 отдельно от стандарта безопасного хеширования (SHS).
Сравнение функций SHA
[ редактировать ]В таблице ниже внутреннее состояние означает «внутреннюю хэш-сумму» после каждого сжатия блока данных.
Алгоритм и вариант | Выходной размер (биты) |
Внутренний размер штата (биты) |
Размер блока (биты) |
Раунды | Операции | Защита от столкновений (биты) |
Защита от атак расширения длины (биты) |
Производительность на Skylake (медиана cpb ) [ 1 ] | Впервые опубликовано | ||
---|---|---|---|---|---|---|---|---|---|---|---|
Длинные сообщения | 8 байт | ||||||||||
MD5 (для справки) | 128 | 128 (4 × 32) |
512 | 4 (16 операций в каждом раунде) |
И, Xor, Or, Rot, Add (мод 2 32 ) | ≤ 18 (обнаружены столкновения) [ 2 ] |
0 | 4.99 | 55.00 | 1992 | |
ША-0 | 160 | 160 (5 × 32) |
512 | 80 | И, Xor, Or, Rot, Add (мод 2 32 ) | < 34 (обнаружены столкновения) |
0 | ≈ ША-1 | ≈ ША-1 | 1993 | |
ША-1 | < 63 (обнаружены столкновения) [ 3 ] |
3.47 | 52.00 | 1995 | |||||||
ША-2 | ША-224 ША-256 |
224 256 |
256 (8 × 32) |
512 | 64 | И, Ксор, Или, Рот, Шр, Адд (мод 2 32 ) |
112 128 |
32 0 |
7.62 7.63 |
84.50 85.25 |
2004 2001 |
ША-384 | 384 | 512 (8 × 64) |
1024 | 80 | И, Ксор, Или, Рот, Шр, Адд (мод 2 64 ) |
192 | 128 | 5.12 | 135.75 | 2001 | |
ША-512 | 512 | 256 | 0 [ 4 ] | 5.06 | 135.50 | 2001 | |||||
ША-512/224 ША-512/256 |
224 256 |
112 128 |
288 256 |
≈ ША-384 | ≈ ША-384 | 2012 | |||||
ША-3 | SHA3-224 SHA3-256 SHA3-384 SHA3-512 |
224 256 384 512 |
1600 (5 × 5 × 64) |
1152 1088 832 576 |
24 [ 5 ] | И, Ксор, Гниль, Не | 112 128 192 256 |
448 512 768 1024 |
8.12 8.59 11.06 15.88 |
154.25 155.50 164.00 164.00 |
2015 |
SHAKE128 SHAKE256 |
д (произвольно) д (произвольно) |
1344 1088 |
мин( д /2, 128) мин( д /2, 256) |
256 512 |
7.08 8.59 |
155.25 155.50 |
Валидация
[ редактировать ]Все алгоритмы семейства SHA, как функции безопасности, одобренные FIPS, подлежат официальной проверке CMVP ( Программа проверки криптографических модулей), совместной программе, проводимой Американским национальным институтом стандартов и технологий (NIST) и Канадским учреждением безопасности коммуникаций. (КСЭ).
Ссылки
[ редактировать ]- ^ «Таблица измерений» . скамейка.cr.yp.to .
- ^ Тао, Се; Лю, Фаньбао; Фэн, Дэнго (2013). Быстрая атака столкновений на MD5 (PDF) . Архив криптологии ePrint (Технический отчет). МАКР .
- ^ Стивенс, Марк ; Бурштейн, Эли ; Карпман, Пьер; Альбертини, Анж; Марков, Ярик. Первое столкновение для полного SHA-1 (PDF) (Технический отчет). Google Исследования .
- Марк Стивенс; Эли Бурштейн; Пьер Карпман; Анж Альбертини; Ярик Марков; Алекс Пети Бьянко; Клеман Байс (23 февраля 2017 г.). «Анонсируем первое столкновение SHA1» . Блог Google по безопасности .
- ^ Без усечения известно полное внутреннее состояние хеш-функции, независимо от устойчивости к коллизиям. Если выходные данные усекаются, удаленную часть состояния необходимо найти и найти, прежде чем можно будет возобновить хеш-функцию, что позволит продолжить атаку.
- ^ «Семейство функций губки Кечака» . Проверено 27 января 2016 г.