Открыть сервис

SHA-2

SHA-2 (Secure Hash Algorithm 2) — это семейство криптографических хэш-функций, разработанных Агентством национальной безопасности США (NSA) и опубликованных Национальным институтом стандартов и технологий США (NIST) в 2001 году. Алгоритмы SHA-2 предназначены для преобразования произвольного объёма входных данных (сообщения) в выходное значение фиксированной длины (хэш, дайджест), которое служит для проверки целостности данных и аутентификации. SHA-2 пришёл на смену устаревшим алгоритмам SHA-0 и SHA-1, которые были признаны уязвимыми к коллизиям. Семейство включает несколько вариантов, различающихся длиной хэша: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 и SHA-512/256.

История и стандартизация

Разработка SHA-2 началась в середине 1990-х годов как ответ на криптоаналитические успехи против SHA-0 и SHA-1. В 2001 году NIST опубликовал стандарт FIPS PUB 180-2, который ввёл три новые функции: SHA-256, SHA-384 и SHA-512. Позднее, в 2004 году, в стандарт был добавлен SHA-224, а в 2012 году — SHA-512/224 и SHA-512/256. Эти дополнения были обусловлены необходимостью в хэшах различной длины для разных приложений, включая криптовалюты, цифровые подписи и протоколы безопасности.

Стандарт SHA-2 был принят в качестве федерального стандарта обработки информации (FIPS) в США и рекомендован для использования в государственных учреждениях. В России алгоритмы SHA-2 не входят в перечень, утверждённый Федеральной службой безопасности (ФСБ) для использования в государственных информационных системах, где применяются национальные стандарты ГОСТ Р 34.11-2012Стрибог»). Тем не менее SHA-2 широко используется в коммерческих и международных проектах, включая протоколы TLS, SSH, IPsec, а также в блокчейн-технологиях.

Устройство и принцип работы

Все варианты SHA-2 основаны на структуре Меркла — Дамгора, которая предполагает разбиение входного сообщения на блоки фиксированного размера и последовательную обработку каждого блока через сжимающую функцию. Основные элементы алгоритма:

Ключевое отличие SHA-2 от SHA-1 — увеличение числа раундов и использование более сложных битовых операций, что делает его устойчивым к известным атакам на SHA-1, включая атаку на коллизию.

Варианты SHA-2

Семейство SHA-2 включает шесть основных вариантов, различающихся длиной хэша и размером блока:

ВариантДлина хэша (бит)Размер блока (бит)Число раундовПрименение
SHA-22422451264Протоколы с ограниченной пропускной способностью
SHA-25625651264Наиболее распространённый, используется в TLS, Bitcoin
SHA-384384102480Высоконадёжные системы, сертификаты
SHA-512512102480Криптовалюты, цифровые подписи
SHA-512/224224102480Специализированные приложения (NIST)
SHA-512/256256102480Специализированные приложения (NIST)

Варианты SHA-512/224 и SHA-512/256 были введены в 2012 году для обеспечения совместимости с 64-битными архитектурами при сохранении длины хэша, аналогичной SHA-224 и SHA-256.

Применение

SHA-2 является основой для множества криптографических протоколов и систем:

Криптоанализ и безопасность

На 2025 год SHA-2 считается криптостойким алгоритмом. Известные атаки на SHA-1 (например, атака с коллизией, продемонстрированная в 2017 году командой Google и CWI Amsterdam) не работают против SHA-2 из-за большего числа раундов и более сложной структуры. Теоретические атаки на SHA-2, такие как атака на 31 раунд из 64 (для SHA-256) или на 38 раундов из 80 (для SHA-512), были опубликованы, но они не представляют практической угрозы для полной версии алгоритма. Основные риски связаны с:

В 2015 году NIST объявил о начале конкурса на новый стандарт хэш-функции (SHA-3), который был завершён в 2012 году с выбором алгоритма Keccak. SHA-3 не является заменой SHA-2, а дополняет его, предлагая альтернативную конструкцию (sponge function). SHA-2 остаётся рекомендованным для использования в большинстве приложений.

Сравнение с другими хэш-функциями

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →