SLH-DSA (SPHINCS+): постквантовые хеш-подписи (FIPS 205) простыми словами

SLH-DSA (SPHINCS+): постквантовые хеш-подписи (FIPS 205) простыми словами

SLH-DSA (Stateless Hash-based Digital Signature Algorithm) — стандарт постквантовой цифровой подписи на хеш-функциях, известный как SPHINCS+, утверждённый NIST как FIPS 205. В отличие от решёточных схем (см. ML-DSA), безопасность SLH-DSA опирается только на свойства криптографических хешей. Это делает её очень консервативным вариантом PQC, но с ценой в виде больших подписей (обычно 8–30 КБ).

*Где это полезно в Web3:* долговременные подписи и артефакты, где важна «надежность как у хеша»; резервные/гибридные подписи для протоколов, кошельков, архивных хранилищ.

См. также: ML-DSA, ML-KEM, Безопасность, BTQ Technologies.

Коротко о конструкции (без боли)

SLH-DSA (SPHINCS+) — это «пирамидка» из хеш-деревьев, которая позволяет без состояния (stateless) подписывать произвольное число сообщений:

  • FORS — быстрый одноразовый подписчик фрагментов сообщения (Forest of Random Subsets).
  • WOTS+ — одноразовые подписи на основе цепочек хешей (Winternitz One-Time Signature).
  • Merkle/Hypertree — деревья для агрегирования одноразовых ключей и построения публичного ключа.
  • Tweakable hash — «подстраиваемые» вызовы хеша для разделения доменов (разные роли, одинаковая примитивная функция).

Все операции — это хеширование и конкатенации; никакой «тяжёлой» математики. Отсюда — высокая криптографическая надёжность при корректной хеш-функции и параметрах.

Параметры и размеры

Набор параметров задаёт целевую стойкость (уровни NIST) и влияет на размеры/скорости. Практические ориентиры:

Профиль (семейства) Уровень стойкости Подпись Публичный ключ Секретный ключ Где применять
SLH-DSA-S (SHAKE-256, «малые») Level 1–5 ~8–17 КБ 16–48 Б 32–64 Б Баланс размера/скорости; клиентские устройства
SLH-DSA-SHA2 (SHA2-256/512) Level 1–5 ~8–30 КБ 16–48 Б 32–64 Б Консервативные среды с SHA2
SLH-DSA-Haraka Level 1–5 ~7–20 КБ 16–48 Б 32–64 Б Аппаратные домены (AES-NI), специал. ускорения

Примечания:

  • Публичные/секретные ключи очень малы (десятки байт), но подпись крупная (килобайты).
  • Точные размеры зависят от параметров: высоты гипердерева, Winternitz-параметра, числа поддеревьев и др.
  • По производительности: генерация/верификация — умеренные; объём сети/стореджа — главный компромисс.

Как устроена подпись (интуитивно)

Идея: вместо «математической головоломки» мы многократно применяем хеш по согласованной схеме:

  1. Сообщение m → случайность R и хеш H = Hash(R || PK || m)
  2. FORS: H разбивается на индексы → подписываются одноразовыми ключами, даются аутентификационные пути по Merkle
  3. WOTS+: формируется одноразовая подпись «корня» нижнего дерева
  4. Hypertree: поднимаемся вверх, добавляя пути в вышестоящих деревьях
  5. Итоговая подпись = (R, блоки FORS, цепочки WOTS+, пути Merkle по уровням)

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

*Stateless*: подписчик не хранит счётчик одноразовых ключей, а детерминированно «прыгает» по деревьям из сидов → меньше риск «повторной подписи» одним и тем же одноразовым ключом.

Плюсы и минусы SLH-DSA

Плюсы

  • Надёжность «как у хеша» (модель безопасности близка к стойкости используемых хеш-функций).
  • Отсутствие сложной алгебры, хорошие доказательства безопасности.
  • Очень маленькие ключи (pk/sk), удобны для хранилищ/идентификаторов.

Минусы

  • Крупная подпись (КБ), повышает стоимость передачи/хранения, комиссию в ончейн-сетях.
  • Верификация может быть медленнее решёточных схем при той же платформе.
  • Выбор параметров влияет на UX: Winternitz и высота деревьев → компромисс «размер ↔ скорость».

Где применить в блокчейн-инфраструктуре

  • Резервные/гибридные подписи транзакций и артефактов. Параллельно с классикой или ML-DSA: хранить критичные подписи там, где важнее долговечность, чем размер.
  • Архивные/юридические доказательства. Подписание долгоживущих журналов, чекпойнтов, корней состояния. Большая подпись не критична, а «консервативная» стойкость — плюс.
  • Аппаратные домены. Где есть ускорения AES/битовых примитивов (варианты с Haraka) и дорогой сетевой трафик не лимитирует.
  • Оффчейн-подписи оракулов/мостов. Как дополнительный слой безопасности (вместе с ML-DSA) для долговременных корневых ключей.

Сравнение с альтернативами PQC

Алгоритм Класс Подпись Публичный ключ Скорость Профиль применения
SLH-DSA (SPHINCS+) Хеш-базовый 8–30 КБ 16–48 Б Средняя Долговечные подписи, консервативная криптография
ML-DSA (Dilithium) Решётки 2.4–4.6 КБ 1.3–2.6 КБ Высокая Массовые кошельки/валидаторы, хороший баланс
ECDSA/EdDSA Эллипт. кривые 64–96 Б 32–64 Б Очень высокая Сегодняшний стандарт, но уязвим к Шору

Вывод: SLH-DSA — отличный «якорь надёжности», но не оптимален для высокочастотных ончейн-подписей из-за размера.

Интеграция и UX

Гибридные подписи

  • Совмещайте классику + SLH-DSA или ML-DSA + SLH-DSA для критичных операций:

tx содержит две подписи и правила приёма (на переходный период нужны обе).

  • Для долговременных записей можно хранить только SLH-DSA как архивный слой.

Форматы

  • Версионируйте algo=SLH-DSA в адресах/метаданных.
  • В EVM-подобных сетях заранее оцените газ/комиссии: подпись КБ порядка → дороже calldata.

Производительность

  • Профилируйте выбор семейства (SHAKE/SHA2/Haraka) под целевую платформу (CPU/ARM/HW).
  • Используйте батч-верификацию и «плоские» пути Merkle, где совместимо.

Риски и лучшие практики

  • Правильные параметры. Не снижайте уровни безопасности ниже рекомендованных; следите за Winternitz/высотой деревьев.
  • Крипто-агильность. Заложите переключение семейства хеша без миграции бизнес-логики.
  • Реализация. Константное время, защита от утечек, аккуратные проверки длин/индексов.
  • Размеры. Планируйте хранилище/полосу: КБ-подписи в журналах и ончейн — это «логистический» фактор.
  • Гибрид. Для пользовательских транзакций чаще практичнее ML-DSA; SLH-DSA — как «второй пояс» надёжности.

Мини-формулы и ориентиры

Оценка накладных по размеру (упрощённо):

Где вклад каждого уровня зависит от высоты деревьев, Winternitz-параметра и глубины гипердерева.

Выбор семейства:

Если важна скорость и умеренный размер → ML-DSA

Если важна «надёжность как у хеша» и малы pk/sk → SLH-DSA

Часто → гибрид ML-DSA + SLH-DSA для критичных артефактов

FAQ

SLH-DSA — это и есть SPHINCS+? Да. SLH-DSA — стандартизованное имя SPHINCS+ в FIPS 205.

Почему подписи такие большие? Это цена за хеш-безопасность и stateless-дизайн: вместо компактной алгебры — множество хеш-путей и одноразовых подпись-блоков.

Можно ли использовать SLH-DSA для всех транзакций в блокчейне? Технически да, но экономически часто невыгодно. Рассмотрите ML-DSA для массовых подписей и SLH-DSA для долгоживущих данных/бэкапов.

Как выбрать параметры? Ориентируйтесь на целевой уровень NIST (например, Level 3/5) и профиль платформы (SHAKE/SHA2/Haraka). Не занижайте глубины деревьев без анализа.

Нужен ли KEM вместе с SLH-DSA? Подпись даёт аутентичность. Для конфиденциальности каналов используйте ML-KEM (Kyber) или гибрид ECDH+ML-KEM.

Чек-лист интегратора

  • Добавьте algo=SLH-DSA и гибриды в форматах подписей/адресов.
  • Спроектируйте двойную подпись (ML-DSA + SLH-DSA) для критичных артефактов/чекпойнтов.
  • Замерьте газ/комиссии и хранение: КБ-подписи → другая экономика.
  • Выберите семейство (SHAKE/SHA2/Haraka) под целевую платформу; профилируйте верификацию.
  • Проведите аудит реализации (константное время, границы массивов, RNG).
  • Документируйте миграцию и правила приёма «двойных» подписей на переходный период.

См. также

FAQ

SLH-DSA — это и есть SPHINCS+? Да. SLH-DSA — стандартизованное имя SPHINCS+ в FIPS 205.

Почему подписи такие большие? Это цена за хеш-безопасность и stateless-дизайн: вместо компактной алгебры — множество хеш-путей и одноразовых подпись-блоков.

Можно ли использовать SLH-DSA для всех транзакций в блокчейне? Технически да, но экономически часто невыгодно. Рассмотрите ML-DSA для массовых подписей и SLH-DSA для долгоживущих данных/бэкапов.

Как выбрать параметры? Ориентируйтесь на целевой уровень NIST (например, Level 3/5) и профиль платформы (SHAKE/SHA2/Haraka). Не занижайте глубины деревьев без анализа.

Нужен ли KEM вместе с SLH-DSA? Подпись даёт аутентичность. Для конфиденциальности каналов используйте ML-KEM (Kyber) или гибрид ECDH+ML-KEM.

Чек-лист интегратора

  • Добавьте algo=SLH-DSA и гибриды в форматах подписей/адресов.
  • Спроектируйте двойную подпись (ML-DSA + SLH-DSA) для критичных артефактов/чекпойнтов.
  • Замерьте газ/комиссии и хранение: КБ-подписи → другая экономика.
  • Выберите семейство (SHAKE/SHA2/Haraka) под целевую платформу; профилируйте верификацию.
  • Проведите аудит реализации (константное время, границы массивов, RNG).
  • Документируйте миграцию и правила приёма «двойных» подписей на переходный период.

См. также

Task Runner