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

SEC 2

SEC 2 — это стандарт безопасности для криптографических хеш-функций, разработанный Национальным институтом стандартов и технологий США (NIST) и опубликованный в 2002 году. Он определяет семейство алгоритмов, известных как SHA-2 (Secure Hash Algorithm 2), которые используются для создания цифровых отпечатков (хешей) фиксированной длины из произвольных входных данных. SEC 2 является преемником стандарта SEC 1 (SHA-1) и обеспечивает более высокую устойчивость к коллизиям и атакам, что делает его основой для современных систем аутентификации, цифровых подписей и блокчейн-технологий.

История

Предпосылки создания

В конце 1990-х годов алгоритм SHA-1, разработанный Агентством национальной безопасности США (АНБ), начал демонстрировать признаки уязвимости к коллизионным атакам. В 2005 году группа китайских криптографов (Ван Сяоюнь, Ицзюнь Инь и Хунбо Ю) опубликовала метод нахождения коллизий для SHA-1 с вычислительной сложностью 2^69 операций, что значительно ниже теоретического предела 2^80. Это создало угрозу для систем, полагающихся на целостность хешей, таких как сертификаты SSL/TLS и системы контроля версий.

Разработка и публикация

В ответ на растущие риски NIST в 2002 году инициировал конкурс на создание нового стандарта хеширования. АНБ предложило семейство алгоритмов, основанных на структуре SHA-1, но с увеличенной длиной хеша и более сложными внутренними преобразованиями. В 2002 году был опубликован проект FIPS PUB 180-2, который включал SHA-256, SHA-384 и SHA-512. В 2004 году к стандарту добавили SHA-224, а в 2008 году — SHA-512/224 и SHA-512/256. Окончательная версия стандарта SEC 2 была утверждена в 2012 году как FIPS PUB 180-4.

Современное состояние

С 2010-х годов SHA-2 является основным стандартом хеширования в большинстве криптографических протоколов. В 2015 году NIST объявил о постепенном отказе от SHA-1 к 2030 году, а в 2023 году Google и Microsoft начали блокировать сертификаты, подписанные с использованием SHA-1. Однако SHA-2 также сталкивается с вызовами: в 2022 году исследователи из Китая продемонстрировали атаку на SHA-256 с использованием квантовых компьютеров, что ускорило разработку постквантовых стандартов, таких как SHA-3.

Классификация

Семейство SHA-2

Стандарт SEC 2 определяет шесть вариантов алгоритмов, различающихся длиной выходного хеша и внутренней структурой:

АлгоритмДлина хеша (бит)Размер блока (бит)Количество раундовПрименение
SHA-22422451264Wi-Fi Protected Access (WPA2)
SHA-25625651264Биткойн, TLS 1.2, PGP
SHA-384384102480SSL/TLS, DNSSEC
SHA-512512102480Электронные подписи, блокчейн
SHA-512/224224102480Встраиваемые системы
SHA-512/256256102480Криптовалюты с низким энергопотреблением

Отличия от SHA-1 и SHA-3

  • SHA-1 (SEC 1): длина хеша 160 бит, 80 раундов, уязвим к коллизиям (с 2017 года считается небезопасным).
  • SHA-3 (Keccak): основан на другой структуре (sponge-конструкция), не связан с SHA-2, но принят NIST в 2015 году как альтернатива на случай взлома SHA-2.

Устройство и характеристики

Внутренняя структура

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

  • Операции сложения по модулю 2^32 (для SHA-256) или 2^64 (для SHA-512).
  • Логические функции: AND, OR, XOR, NOT.
  • Циклические сдвиги (ротации) и сдвиги (shift).
  • Константы (K-значения), полученные из кубических корней простых чисел.

Процесс вычисления

  1. Дополнение сообщения: входные данные дополняются битом «1» и нулями до длины, кратной размеру блока (512 или 1024 бит). В конце добавляется 64-битное (или 128-битное) представление исходной длины сообщения.
  2. Инициализация: устанавливаются начальные значения хеша (H0–H7) на основе дробных частей квадратных корней из простых чисел.
  3. Обработка блоков: каждый блок (512 или 1024 бит) разбивается на 16 слов (32 или 64 бита), которые расширяются до 64 (или 80) слов. Затем выполняется раундовая функция с использованием текущего состояния хеша и расширенных слов.
  4. Финальное хеширование: после обработки всех блоков полученное состояние (H0–H7) конкатенируется в выходной хеш.

Криптографическая стойкость

  • Устойчивость к коллизиям: для SHA-256 требуется 2^128 операций для нахождения коллизии (теоретический предел).
  • Устойчивость к прообразу: для SHA-256 — 2^256 операций.
  • Лавинный эффект: изменение одного бита входных данных приводит к изменению примерно 50% битов выходного хеша.

Применение

Криптовалюты и блокчейн

  • Биткойн (SHA-256): используется для майнинга (Proof-of-Work) и создания адресов кошельков.
  • Эфириум (Keccak-256, основан на SHA-3): для хеширования транзакций и смарт-контрактов.
  • Лайткойн (Scrypt, использует SHA-256 в качестве компонента).

Цифровые подписи и сертификаты

  • X.509: сертификаты SSL/TLS, подписанные с использованием SHA-256 или SHA-384.
  • PGP/GPG: хеширование ключей и сообщений.
  • DNSSEC: защита записей DNS от подделки.

Аутентификация и контроль целостности

  • HMAC-SHA256: аутентификация сообщений в протоколах HTTP/2, SSH, IPsec.
  • Git: хеширование коммитов и тегов (SHA-1, но переход на SHA-256 планируется с 2025 года).
  • Антивирусные базы: хеширование файлов для обнаружения вредоносного ПО.

Государственные и военные системы

  • США: стандарт для защиты конфиденциальной информации (FIPS 140-2/3).
  • Россия: ГОСТ Р 34.11-2012 (Стрибог) — альтернатива SHA-2, но SHA-256 используется в межгосударственных протоколах.
  • Европейский союз: ETSI TS 102 176-1 рекомендует SHA-256 для электронных подписей.

Критика и ограничения

Уязвимости

  • Квантовая атака: алгоритм Гровера позволяет найти коллизию для SHA-256 за 2^128 операций на квантовом компьютере, что вдвое меньше классического предела. Однако для практической реализации требуется квантовый компьютер с миллионами кубитов, что пока недостижимо.
  • Атаки на реализацию: уязвимости в программных и аппаратных реализациях (например, side-channel attacks) могут привести к утечке ключей.
  • Коллизии в SHA-256: в 2023 году исследователи из Университета Торонто нашли коллизию для 31-раундовой версии SHA-256 (полный алгоритм — 64 раунда), что не представляет практической угрозы.

Альтернативы

  • SHA-3: более устойчив к квантовым атакам, но медленнее в программной реализации.
  • BLAKE2: оптимизирован для скорости, используется в криптовалюте Decred и протоколе Zcash.
  • ГОСТ Р 34.11-2012: обязателен для использования в российской государственной информационной системе.

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

  • Алгоритмы SHA-2 были разработаны АНБ, но NIST проводил открытые консультации и публиковал спецификации для общественности.
  • В 2017 году Google и CWI Amsterdam продемонстрировали коллизию для SHA-1 (SHAttered), что ускорило переход на SHA-2.
  • SHA-256 используется в блокчейне Биткойна для создания хешей блоков, которые начинаются с определённого количества нулей (сложность майнинга).
  • В 2024 году NIST объявил о начале перехода на постквантовые стандарты, но SHA-2 останется обязательным для обратной совместимости до 2035 года.

Источники

  • NIST FIPS PUB 180-4: Secure Hash Standard (SHS), 2012.
  • Bruce Schneier, «Applied Cryptography», 2nd edition, 1996.
  • Wang X., Yin Y., Yu H., «Finding Collisions in the Full SHA-1», 2005.
  • Google, «SHAttered: The First Public Collision for SHA-1», 2017.
  • ГОСТ Р 34.11-2012: Информационная технология. Криптографическая защита информации. Функция хеширования.

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

На главную BFOmetr →