В Secure Hash алгоритмы представляют собой семейство криптографических хэш - функций , опубликованных Национальным институтом стандартов и технологий (NIST) , как США Federal Information Processing Standard (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 обновил проект публикации 202 FIPS, стандарт SHA-3 отдельно от стандарта безопасного хеширования (SHS).
Сравнение функций SHA
В таблице ниже внутреннее состояние означает «внутреннюю хеш-сумму» после каждого сжатия блока данных.
Алгоритм и вариант | Размер вывода (бит) | Размер внутреннего состояния (биты) | Размер блока (бит) | Раундов | Операции | Защита от коллизионных атак (биты) | Защита от атак с увеличением длины (в битах) | Производительность на Skylake (средняя цена за клик ) [1] | Впервые опубликовано | ||
---|---|---|---|---|---|---|---|---|---|---|---|
Длинные сообщения | 8 байт | ||||||||||
MD5 (как ссылка) | 128 | 128 (4 × 32) | 512 | 64 | And, Xor, Rot, Add (mod 2 32 ), Или | ≤ 18 (обнаружены коллизии) [2] | 0 | 4,99 | 55.00 | 1992 г. | |
SHA-0 | 160 | 160 (5 × 32) | 512 | 80 | And, Xor, Rot, Add (mod 2 32 ), Или | <34 (обнаружены коллизии) | 0 | ≈ SHA-1 | ≈ SHA-1 | 1993 г. | |
SHA-1 | <63 (обнаружены коллизии) [3] | 3,47 | 52,00 | 1995 г. | |||||||
SHA-2 | SHA-224 SHA-256 | 224 256 | 256 (8 × 32) | 512 | 64 | And, Xor, Rot, Add (mod 2 32 ), Or, Shr | 112 128 | 32 0 | 7,62 7,63 | 84,50 85,25 | 2004 2001 |
SHA-384 SHA-512 | 384 512 | 512 (8 × 64) | 1024 | 80 | And, Xor, Rot, Add (mod 2 64 ), Or, Shr | 192 256 | 128 (≤ 384) 0 [4] | 5,12 5,06 | 135,75 135,50 | 2001 г. | |
SHA-512/224 SHA-512/256 | 224 256 | 112 128 | 288 256 | ≈ SHA-384 | ≈ SHA-384 | 2012 г. | |||||
SHA-3 | SHA3-224 SHA3-256 SHA3-384 SHA3-512 | 224 256 384 512 | 1600 (5 × 5 × 64) | 1152 1088 832 576 | 24 [5] | И, Xor, Rot, Not | 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 | d (произвольно) d (произвольно) | 1344 1088 | мин ( д / 2, 128) мин ( д / 2, 256) | 256 512 | 7,08 8,59 | 155,25 155,50 |
Проверка
Все алгоритмы семейства SHA, как функции безопасности, одобренные FIPS, подлежат официальной проверке в рамках CMVP (Программа проверки криптографических модулей), совместной программы, проводимой Американским национальным институтом стандартов и технологий (NIST) и Канадским учреждением безопасности связи. (CSE).
Рекомендации
- ^ «Таблица измерений» . bench.cr.yp.to .
- ^ Тао, Се; Лю, Фаньбао; Фэн, Дэнго (2013). Fast Collision Attack на MD5 (PDF) . Cryptology ePrint Archive (Технический отчет). МАКР .
- ^ Стивенс, Марк ; Бурштейн, Эли ; Карпман, Пьер; Альбертини, Анж; Марков, Ярик. Первая коллизия для полного SHA-1 (PDF) (Технический отчет). Google Research . Краткое содержание - Блог по безопасности Google (23 февраля 2017 г.).
- ^ Без усечения известно полное внутреннее состояние хеш-функции, независимо от сопротивления столкновениям. Если вывод усечен, удаленная часть состояния должна быть отыскана и найдена до того, как хеш-функция может быть возобновлена, что позволит продолжить атаку.
- ^ «Семейство функциональных губок Keccak» . Проверено 27 января 2016 .