Безопасные алгоритмы хеширования - Secure Hash Algorithms
В Безопасные алгоритмы хеширования семья криптографические хеш-функции опубликовано Национальный институт стандартов и технологий (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: Хэш-функция, ранее называемая Кечак, выбранный в 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 (медиана cpb )[1] | Впервые опубликовано | ||
---|---|---|---|---|---|---|---|---|---|---|---|
длинные сообщения | 8 байт | ||||||||||
MD5 (как ссылки) | 128 | 128 (4 × 32) | 512 | 64 | И, Xor, Rot, Добавить (мод 232), Или же | ≤18 (обнаружены коллизии)[2] | 0 | 4.99 | 55.00 | 1992 | |
SHA-0 | 160 | 160 (5 × 32) | 512 | 80 | И, Xor, Rot, Добавить (мод 232), Или же | <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 | И, Xor, Rot, Добавить (мод 232), Или, 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 | И, Xor, Rot, Добавить (мод 264), Или, 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 |
Встряхивание128 Встряхивание256 | d (произвольный) d (произвольный) | 1344 1088 | мин (d/2, 128) мин (d/2, 256) | 256 512 | 7.08 8.59 | 155.25 155.50 |
Проверка
Все алгоритмы семейства SHA как функции безопасности, одобренные FIPS, подлежат официальной проверке со стороны CMVP (Программа проверки криптографических модулей), совместная программа, проводимая американской Национальный институт стандартов и технологий (NIST) и канадский Организация безопасности связи (CSE).
Рекомендации
- ^ «Таблица измерений». bench.cr.yp.to.
- ^ Тао, Се; Лю, Фаньбао; Фэн, Дэнго (2013). Быстрая атака коллизией на MD5 (PDF). Архив криптологии ePrint (Технический отчет). МАКР.
- ^ Стивенс, Марк; Бурштейн, Эли; Карпман, Пьер; Альбертини, Анж; Марков, Ярик. Первая коллизия для полного SHA-1 (PDF) (Технический отчет). Google Research. Сложить резюме – Блог по безопасности Google (23 февраля 2017 г.).
- ^ Без усечения известно полное внутреннее состояние хэш-функции, независимо от сопротивления столкновениям. Если вывод усечен, удаленная часть состояния должна быть отыскана и найдена до того, как хэш-функция может быть возобновлена, что позволит продолжить атаку.
- ^ «Семейство функций губки Keccak». Получено 2016-01-27.