Безопасные алгоритмы хэширования

Семейство криптографических хеш-функций

Безопасные алгоритмы хэширования — это семейство криптографических хэш-функций, опубликованных Национальным институтом стандартов и технологий (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 отдельно от стандарта Secure Hash (SHS).

Сравнение функций SHA

В таблице ниже внутреннее состояние означает «внутреннюю хеш-сумму» после каждого сжатия блока данных.

Сравнение функций SHA
Алгоритм и вариантРазмер выходных данных
(бит)

Размер внутреннего состояния
(бит)
Размер блока
(бит)
РаундыОперацииЗащита от атак столкновений
(бит)
Защита от атак с удлинением длины
(бит)
Производительность на Skylake (медианная cpb ) [1]Впервые опубликовано
Длинные сообщения8 байт
MD5 (в качестве справочного материала)128128
(4 × 32)
5124
(16 операций в каждом раунде)
И, Исключающее или, Или, Вращение, Сложение (mod 2 32 )≤ 18
(найдены столкновения) [2]
04.9955.001992
ША-0160160
(5 × 32)
51280И, Исключающее или, Или, Вращение, Сложение (mod 2 32 )< 34
(найдены столкновения)
0≈ ША-1≈ ША-11993
ША-1< 63
(найдены столкновения) [3]
3.4752.001995
ША-2ША-224
ША-256
224
256
256
(8 × 32)
51264И, Исключающее, Или,
Рот, Шр, Добавить (мод 2 32 )
112
128
32
0
7.62
7.63
84,50
85,25
2004
2001
ША-384384512
(8 × 64)
102480И, Исключающее, Или,
Вращение, Шр, Сложение (мод 2 64 )
1921285.12135,752001
ША-5125122560 [4]5.06135.502001
ША-512/224
ША-512/256
224
256
112
128
288
256
≈ SHA-384≈ SHA-3842012
ША-3SHA3-224
SHA3-256
SHA3-384
SHA3-512
224
256
384
512
1600
(5 × 5 × 64)
1152
1088
832
576
24 [5]И, Xor, Rot, Not112
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
мин( д /2, 128)
мин( д /2, 256)
256
512
7.08
8.59
155,25
155,50

Проверка

Все алгоритмы семейства SHA, как функции безопасности, одобренные FIPS, подлежат официальной проверке CMVP ( Программа проверки криптографических модулей), совместной программе, проводимой Американским национальным институтом стандартов и технологий (NIST) и Канадским учреждением по безопасности коммуникаций (CSE).

Ссылки

  1. ^ "Таблица измерений". bench.cr.yp.to .
  2. ^ Тао, Се; Лю, Фаньбао; Фэн, Дэнго (2013). Быстрая коллизионная атака на MD5 (PDF) . Архив Cryptology ePrint (технический отчет). IACR .
  3. ^ Стивенс, Марк ; Бурштейн, Эли ; Карпман, Пьер; Альбертини, Анж; Марков, Ярик. Первое столкновение для полного SHA-1 (PDF) (Технический отчет). Google Research .
    • Марк Стивенс; Эли Бурштейн; Пьер Карпман; Анж Альбертини; Ярик Марков; Алекс Пети Бьянко; Клемент Бейсс (23 февраля 2017 г.). «Анонс первой коллизии SHA1». Блог безопасности Google .
  4. ^ Без усечения полное внутреннее состояние хэш-функции известно, независимо от устойчивости к коллизиям. Если вывод усечен, удаленная часть состояния должна быть найдена, прежде чем хэш-функция может быть возобновлена, что позволяет продолжить атаку.
  5. ^ "Семейство функций губки Кеккака" . Получено 27.01.2016 .
Взято с "https://en.wikipedia.org/w/index.php?title=Безопасные_алгоритмы_хэширования&oldid=1249306197"