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

wHash

wHash — это криптографическая хеш-функция, разработанная в России для обеспечения целостности и аутентификации данных в рамках инфраструктуры электронной подписи и защищённого документооборота. Относится к классу криптографических хеш-функций, используемых для создания фиксированного по длине дайджеста (хеш-кода) произвольного объёма информации.

История

Разработка wHash была инициирована в рамках работ по созданию национальных стандартов криптографической защиты информации. В 2010-х годах в России возникла потребность в хеш-функции, которая обеспечивала бы совместимость с международными протоколами, но при этом базировалась на криптографических примитивах, не подпадающих под экспортные ограничения. В отличие от стандартизированных в России функций «Стрибог» (ГОСТ Р 34.11-2012), wHash была создана как коммерческая разработка, ориентированная на практическое применение в корпоративных и государственных информационных системах.

Основное развитие wHash получила в период с 2015 по 2020 год, когда российские компании активно внедряли системы электронного документооборота, соответствующие требованиям Федерального закона № 63-ФЗ «Об электронной подписи». В этот период wHash была включена в состав ряда программно-аппаратных комплексов, сертифицированных Федеральной службой по техническому и экспортному контролю (ФСТЭК России) и Федеральной службой безопасности (ФСБ России).

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

По архитектуре wHash относится к итеративным хеш-функциям с использованием конструкции Меркла — Дамгора (Merkle-Damgård). В зависимости от длины выходного дайджеста выделяют несколько вариантов реализации:

  • wHash-256дайджест длиной 256 бит (32 байта). Используется для большинства задач электронной подписи, где требуется стандартный уровень криптостойкости.
  • wHash-512 — дайджест длиной 512 бит (64 байта). Применяется в системах с повышенными требованиями к стойкости, например, при подписании долговременных архивных документов.
  • wHash-128 — дайджест длиной 128 бит (16 байт). Используется в ограниченных средах, где важна скорость вычислений, но может применяться только при условии невысоких требований к безопасности.

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

Алгоритм работы

wHash обрабатывает входные данные блоками фиксированного размера (обычно 512 бит для 256-битной версии). Процесс включает следующие этапы:

  1. Дополнение сообщения (padding) — к исходному сообщению добавляется единичный бит, затем нулевые биты до выравнивания длины на границу блока, после чего записывается 64-битное представление исходной длины сообщения.
  2. Инициализация — задаётся начальное значение хеш-переменной (IV — initial vector), которое фиксировано для каждой версии wHash.
  3. Циклическая обработка — каждый блок данных последовательно преобразуется с использованием сжимающей функции, которая включает операции:
  • нелинейные булевы функции (аналогичные тем, что применяются в SHA-2);
  • циклические сдвиги и перестановки битов;
  • сложение по модулю 2^32 (или 2^64 для 512-битной версии);
  • использование констант, полученных из дробных частей кубических корней простых чисел.
  1. Формирование дайджеста — после обработки всех блоков текущее значение хеш-переменной выдаётся в качестве итогового хеш-кода.

Криптостойкость

wHash обеспечивает следующие свойства, характерные для криптографических хеш-функций:

  • Стойкость к коллизиям — для wHash-256 оценка сложности нахождения двух сообщений с одинаковым хешем составляет не менее 2^128 операций, что соответствует современным требованиям.
  • Стойкость к прообразу — для wHash-256 сложность восстановления исходного сообщения по хешу составляет не менее 2^256 операций.
  • Лавинный эффект — изменение одного бита входных данных приводит к изменению примерно половины битов выходного дайджеста.

По состоянию на 2025 год не опубликовано ни одной успешной атаки на wHash, которая бы существенно снижала её криптостойкость по сравнению с теоретическими оценками.

Применение

Электронная подпись и документооборот

wHash входит в состав многих российских систем электронного документооборота (СЭД), где используется для вычисления хеша подписываемого документа перед его подписанием электронной подписью. Это позволяет:

  • гарантировать целостность документа после подписания;
  • ускорить процесс верификации подписи за счёт предварительного хеширования;
  • обеспечить совместимость с криптопровайдерами, реализующими ГОСТ Р 34.10-2012.

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

В системах защиты информации wHash применяется для:

  • проверки целостности программного обеспечения при загрузке;
  • создания контрольных сумм файлов в архивах и резервных копиях;
  • хранения паролей (с использованием соли) в базах данных аутентификации.

Блокчейн и распределённые реестры

Некоторые российские блокчейн-платформы, разработанные для государственных и корпоративных нужд, используют wHash в качестве хеш-функции для формирования цепочек блоков. Это позволяет соблюсти требования российского законодательства о криптографической защите информации.

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

ХарактеристикаwHash-256SHA-256Стрибог (ГОСТ Р 34.11-2012)
Длина дайджеста256 бит256 бит256 или 512 бит
АрхитектураМеркла — ДамгораМеркла — ДамгораСпонж-конструкция
Размер блока512 бит512 бит512 бит
Скорость (на x86-64)~250 МБ/с~300 МБ/с~200 МБ/с
СтандартизацияНет (коммерческая)FIPS 180-4ГОСТ Р 34.11-2012
Сертификация ФСТЭК/ФСБДа (отдельные реализации)Нет (импортная)Да

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

Основные замечания к wHash связаны с её закрытым характеромалгоритм не является открытым международным стандартом, что ограничивает его аудит со стороны мирового криптографического сообщества. Разработчик не публикует полную спецификацию в открытом доступе, что вызывает вопросы о возможных скрытых уязвимостях.

Кроме того, wHash не поддерживается в большинстве зарубежных криптографических библиотек (OpenSSL, Bouncy Castle и др.), что затрудняет её использование в международных проектах. Для работы с wHash требуется специализированное программное обеспечение, поставляемое обычно в составе коммерческих продуктов.

Некоторые эксперты отмечают, что архитектура Меркла — Дамгора, на которой основана wHash, теоретически уязвима для атак на расширение длины (length extension attack), хотя для практических сценариев использования wHash эта атака не представляет серьёзной угрозы.

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

  • Название wHash не является официальной аббревиатурой; по неофициальным данным, буква «w» может означать «web» или «Windows», указывая на первоначальную ориентацию на веб-приложения и операционную систему Windows.
  • wHash была реализована в некоторых моделях аппаратных криптографических ускорителей, производимых в России, что позволило достичь скорости вычислений до 1 ГБ/с на специализированном оборудовании.
  • В 2022 году wHash была включена в реестр отечественного программного обеспечения Минцифры России как часть некоторых программных продуктов для электронной подписи.

Источники

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

На главную BFOmetr →