Hash-based подписи: как выбрать параметры для реальных задач

«Обычно про XMSS или LMS пишут в разрезе постквантовой криптографии, но это лишь один из аспектов. На практике выбор параметров, это постоянный компромисс между сроком действия подписи и объёмом, который никто толком не документирует. Пора поговорить о долгосрочной безопасности как о техническом, а не теоретическом понятии.»

Почему выбор параметров не сводится к «взять больше бит»

Когда речь заходит о hash-based подписях, первая мысль — они стойки к квантовым атакам, потому что основаны только на криптографических хеш-функциях. Это верно, но стойкость — не единственный критерий. Подпись должна работать в реальных системах: её нужно генерировать, хранить, передавать, и делать это в течение всего срока действия сертификата или документа. А сроки в российских регуляторных требованиях могут исчисляться годами.

Параметры схемы — такие как высота дерева Меркла (H), количество подписей в цепи (L) или размер Winternitz-параметра (W) — напрямую определяют три взаимосвязанные величины: стойкость, размер подписи и производительность. Увеличить одну, не затронув другие, невозможно. Например, удвоение высоты дерева в XMSS для увеличения количества доступных подписей приведёт к экспоненциальному росту времени генерации корня и увеличению размера открытого ключа. Это делает схему непрактичной для устройств с ограниченными ресурсами.

Следовательно, выбор параметров, это поиск точки равновесия для конкретного сценария использования, а не просто применение «самых безопасных» значений из RFC.

Сценарии использования и их приоритеты

Разные задачи предъявляют разные требования к схеме подписи. Понимание этих приоритетов — ключ к выбору параметров.

Подпись обновлений ПО для встраиваемых систем

Устройство должно проверять каждое обновление. Подпись генерируется на стороне разработчика (сервер с вычислительными ресурсами), но проверяется на устройстве с низкой мощностью и ограниченной памятью. Здесь критичен малый размер подписи и высокая скорость верификации. Количество подписей может быть относительно небольшим — одно обновление в месяц в течение нескольких лет.

Рекомендуемые параметры: высота дерева H=10 (1024 подписи), Winternitz-параметр W=4 для баланса размера и скорости. Это даёт достаточный запас подписей на 5–8 лет при умеренном размере подписи.

Долгосрочная подпись юридически значимых документов

Согласно российскому законодательству, срок хранения многих документов может превышать 10 лет. Подпись, созданная сегодня, должна оставаться проверяемой и стойкой в течение всего этого периода. Ключевой приоритет — долгосрочная криптостойкость и гарантия, что запас подписей не закончится. Размер подписи и время генерации вторичны, так как процесс обычно одноразовый и выполняется на мощной инфраструктуре.

Рекомендуемые параметры: высота дерева H=20 (около миллиона подписей), использование более стойкой хеш-функции (например, SHA-512/256 вместо SHA-256), Winternitz—

Параметры как инструмент управления рисками

Выбор параметров, это не техническая прихоть, а форма управления рисками в терминах информации, составляющей государственную тайну, и коммерческой тайны. Параметры должны учитывать не только текущие, но и прогнозируемые угрозы на весь срок действия подписи.

Один из часто упускаемых аспектов — риск исчерпания одноразовых ключей. В схемах на основе состояния (stateful), таких как XMSS, каждый ключ для подписи используется только один раз. Если устройство по ошибке или из-за сбоя попытается повторно использовать ключ, безопасность всей схемы может быть скомпрометирована. Высота дерева H определяет максимальное количество подписей. Выбор H=10 даёт всего 1024 подписи — для устройства, которое подписывает логи каждую минуту, этого хватит менее чем на сутки. Риск исчерпания здесь выше, чем риск криптоатаки.

Для критичных систем стоит рассматривать схемы на основе гипердеревьев (XMSS^MT), которые увеличивают общее количество подписений за счёт иерархии, сохраняя приемлемый размер открытого ключа. Параметры верхнего и нижнего уровней дерева можно настроить отдельно, чтобы оптимизировать баланс.

Влияние Winternitz+ (W+) параметра

Параметр W в схеме Winternitz определяет, сколько итераций хеширования выполняется для подписи одного блока сообщения. Большее значение W уменьшает размер подписи (так как требуется меньше элементов цепи), но значительно увеличивает время как генерации, так и проверки. Типичные значения — 4 или 16.

  • W=4: Подпись больше, но вычисления быстрее. Подходит для сред, где производительность CPU или энергопотребление критичны.
  • W=16: Подпись компактнее, но на её генерацию и проверку требуется в разы больше вычислительных операций. Подходит для сценариев, где канал передачи данных узкий, а вычислительные ресурсы на стороне подписывающего и проверяющего избыточны.

Выбор W часто упирается в архитектурные особенности: поддерживает ли аппаратура инструкции ускоренного хеширования, есть ли ограничения по времени отклика в системе.

Соответствие требованиям регуляторов: не только алгоритм

ФСТЭК и другие регуляторы при аттестации средств криптографической защиты информации смотрят не только на название алгоритма (например, «XMSS»), но и на его конкретную реализацию с заданными параметрами. Реализация с высотой дерева H=10 и H=20 — это, с точки зрения формальных требований, две разные криптографические схемы.

При подготовке документации для аттестации или при интеграции hash-based подписи в продукт, предназначенный для защиты информации, составляющей государственную тайну, необходимо чётко зафиксировать и обосновать каждый выбранный параметр:

  1. Конкретная хеш-функция (SHA-256, SHA-512, Streebog) и её режим.
  2. Высота дерева Меркла (H) и, для XMSS^MT, параметры гипердерева (d, h).
  3. Параметр Winternitz (W).
  4. Метод адресации листьев дерева (для защиты от атак на повторное использование).

Обоснование должно ссылаться не на абстрактную «стойкость», а на расчётный срок службы системы, предполагаемую интенсивность подписания и класс обрабатываемой информации.

Существует распространённая ошибка: считать, что использование алгоритма, одобренного в RFC 8391 или проектах стандартов, автоматически гарантирует соответствие. На практике регулятор может запросить доказательства, что выбранные параметры обеспечивают необходимый запас прочности на 10, 15 или 20 лет вперед с учётом развития вычислительных мощностей.

Практические шаги по выбору и тестированию

Как подойти к выбору параметров системно, а не наугад?

1. Определение срока жизни и интенсивности

Ответьте на вопросы:

  • На какой максимальный срок должна действовать подпись? (Например, срок хранения документа или жизненный цикл устройства).
  • Как часто будет происходить операция подписания? (Раз в год, раз в день, постоянно в потоковом режиме).
  • Где будет происходить подписание и проверка? (Мощный сервер, облако, IoT-датчик, смарт-карта).

Это даст минимально необходимую высоту дерева H и задаст рамки для производительности.

2. Оценка ограничений инфраструктуры

  • Размер подписи: Влезет ли она в поле в базе данных? Не превысит ли лимиты размера пакета в сетевом протоколе? Для LMS/XMSS типичный размер — от 2 до 8 КБ в зависимости от параметров.
  • Время генерации: Приемлемо ли для пользователя ждать несколько секунд для подписания документа? Для H=20 и W=16 генерация корня дерева при инициализации может занять минуты.
  • Время проверки: Уложится ли проверка в требуемый таймаут для real-time системы?

3. Тестирование на реальных данных

Не ограничивайтесь теоретическими расчётами. Создайте прототип с выбранными параметрами и проведите нагрузочное тестирование:

[КОД: Пример скрипта, замеряющего время генерации подписи для разных значений W]

  • Замерьте время инициализации ключевой пары.
  • Замерьте время подписания типового сообщения (например, файла размером 1 МБ).
  • Замерьте время проверки подписи на целевом устройстве.
  • Проверьте итоговый размер подписи и открытого ключа.

Полученные цифры часто заставляют пересмотреть первоначальный выбор в сторону более сбалансированных параметров.

4. Планирование ротации ключей

Даже при правильно выбранной высоте дерева H всегда должен быть план на случай, если запас подписей подходит к концу. Для долгоживущих систем это означает:

  • Механизм заблаговременного предупреждения о низком остатке одноразовых ключей.
  • Процедуру безопасной замены корневого открытого ключа у всех проверяющих сторон до его исчерпания.
  • Возможность параллельного использования старого и нового ключей в период миграции для обеспечения непрерывности.

Без такого плана система с «долгосрочной» подписью может внезапно перестать функционировать, когда дерево будет исчерпано, что создаёт операционный риск.

Заключение

Оптимальные параметры для hash-based подписи, это не максимальные, а наиболее подходящие для конкретного контекста эксплуатации на протяжении всего требуемого срока. Этот выбор лежит на пересечении криптографии, системного дизайна и регуляторных требований. Игнорирование любого из аспектов — производительности, размера или управления состоянием — ставит под угрозу практическую применимость схемы, ради которой, собственно, и затевался переход на постквантовые алгоритмы. Глубокий анализ сценария и эмпирическое тестирование — единственный способ избежать ошибок, которые проявятся только через несколько лет работы системы.

Оставьте комментарий