Что такое подписи на основе хеш-функций?
Подписи на основе хеш-функций — это системы цифровой подписи, безопасность которых строится главным образом на криптографических хеш-функциях, а не на эллиптических кривых, факторизации целых чисел или дискретном логарифмировании.Они позволяют владельцу закрытого ключа подписи доказать, что криптовалютная транзакция, сообщение в блокчейне, обновление программного обеспечения или другие данные были авторизованы этим ключом.С помощью соответствующего открытого ключа проверяющий может подтвердить, что подписанные данные не изменялись и подпись создана уполномоченным подписантом.Подписи на основе хеш-функций особенно важны для криптовалют, поскольку считаются одним из ведущих видов постквантовой технологии цифровой подписи.Подписи, используемые в современных блокчейнах, обычно основаны на математических задачах, которым могут угрожать достаточно мощные квантовые компьютеры.Вместо этого системы на основе хеш-функций опираются на свойства безопасности криптографических хеш-функций, которые, как правило, считаются применимыми в среде квантовых вычислений при достаточно больших параметрах безопасности.Национальный институт стандартов и технологий США стандартизировал алгоритм цифровой подписи SLH-DSA на основе бесстатусных хеш-функций в документе FIPS 205.
Статусные схемы, такие как XMSS и LMS, описаны в специальной публикации NIST 800-208.
Подписи на основе хеш-функций — это не хеши для майнинга криптовалют, адреса кошельков, идентификаторы транзакций или обычные хеши сообщений.Это полноценные системы подписи с открытым ключом, созданные на основе компонентов, использующих хеш-функции.Почему цифровые подписи важны для криптовалют
Цифровые подписи необходимы для криптовалют, поскольку позволяют пользователям подтверждать транзакции, не раскрывая приватные ключи.Когда кошелек отправляет криптовалюту, он обычно создает подпись данных транзакции с помощью приватного ключа.Перед тем как принять транзакцию как действительную, участники сети проверяют подпись, используя общедоступную информацию.Действительная подпись показывает, что транзакцию авторизовал человек, контролирующий необходимый ключ подписи.Подпись также защищает целостность транзакции: изменение подписанных данных должно привести к сбою проверки.Цифровые подписи также могут подтверждать сообщения валидаторов, голоса при управлении, действия со смарт-контрактами, кроссчейн-сообщения, релизы программного обеспечения, обновления оракулов и подтверждения с несколькими подписями.В публичной документации Bitcoin объясняется, что подлинность транзакций защищают цифровые подписи, связанные с адресами отправителей, в обзоре сети Bitcoin.
В будущем подписи на основе хеш-функций могут выполнять аналогичные функции авторизации и обеспечивать более надежную защиту от квантовых атак.Как работают подписи на основе хеш-функций
В основе системы подписей на основе хеш-функций лежат случайные секретные значения, которые входят в состав закрытого ключа подписи.Подписант применяет к этим значениям криптографическую хеш-функцию, чтобы получить связанные с ними открытые значения.Для подписи сообщения система раскрывает или обрабатывает отдельные закрытые значения в соответствии с дайджестом сообщения.Проверяющий хеширует раскрытые значения и проверяет, совпадают ли результаты с ожидаемой открытой информацией.Базовые схемы однократной подписи позволяют безопасно подписать каждым закрытым ключом только одно сообщение.Деревья Меркла позволяют представить множество открытых ключей однократной подписи одним компактным корневым значением.Корень дерева Меркла может служить основным открытым ключом.Подпись включает однократную подпись и путь аутентификации, который подтверждает, что открытый ключ однократной подписи входит в дерево Меркла, зафиксированное этим корнем.Более сложные системы объединяют несколько деревьев, однократные подписи, подписи для ограниченного числа сообщений, генерацию псевдослучайных ключей и иерархические структуры, чтобы поддерживать большое количество подписей.Что такое криптографическая хеш-функция?
Криптографическая хеш-функция преобразует данные практически любой длины в выходное значение фиксированной длины.Это выходное значение обычно называют хешем или дайджестом сообщения.Надежная хеш-функция должна затруднять восстановление исходных данных по выходному значению.Кроме того, она должна затруднять поиск двух разных входных данных, дающих одинаковый результат.Небольшое изменение входных данных должно приводить к значительному изменению дайджеста.Криптовалютные сети используют хеш-функции для идентификаторов транзакций, фиксации данных в блоках, деревьев Меркла, систем Proof of Work, создания адресов и многих других задач.В схемах подписи на основе хеш-функций эти функции служат основой аутентификации с открытым ключом.Безопасность подписи зависит от выбранной хеш-функции, размеров параметров, разделения доменов, качества реализации и правил управления ключами.Подписи на основе хеш-функций — это не хеширование
Хеширование транзакции — не то же самое, что ее подписание.Как правило, хеш общедоступных данных может вычислить кто угодно.Для создания цифровой подписи нужны секретные данные, которыми должен владеть только уполномоченный подписант.Обычный хеш сообщения может показать, что данные изменились, но не доказывает, кто их одобрил.Подпись на основе хеш-функций сочетает секретный материал для подписания, открытые данные для проверки и безопасные операции с хеш-функциями, обеспечивая аутентификацию.Это различие важно, поскольку в криптовалютных системах хеши и подписи используются для разных целей обеспечения безопасности.Однократные подписи на основе хеш-функций
Схема однократной подписи рассчитана на то, чтобы каждый закрытый ключ безопасно использовался для подписи только одного сообщения.Один из первых примеров — схема однократной подписи Лэмпорта.Закрытый ключ Лэмпорта содержит множество случайных секретных значений.Открытый ключ содержит хеши этих секретных значений.Дайджест сообщения определяет, какие секретные значения будут раскрыты в подписи.Проверяющий хеширует раскрытые значения и сравнивает их с открытым ключом.Главный недостаток состоит в том, что повторное использование одного закрытого ключа для нескольких сообщений раскрывает дополнительные секретные данные.Если повторно использовать ключ достаточно много раз, злоумышленник может создать поддельную подпись.Поэтому однократные подписи — мощные криптографические компоненты, но для создания и аутентификации множества отдельных однократных ключей нужна специальная система.Однократные подписи Винтерница
Однократные подписи Винтерница уменьшают размер подписи за счет хеш-цепочек вместо более громоздкой структуры базовой подписи Лэмпорта.Параметр Винтерница позволяет находить компромисс между размером подписи и вычислительной нагрузкой.Более высокие значения параметра могут уменьшить количество элементов подписи, но требуют большего числа вычислений хеш-функции.WOTS+ — усовершенствованная схема Винтерница, используемая в современных системах на основе хеш-функций, таких как XMSS и SLH-DSA.В спецификации XMSS в RFC 8391 WOTS+ названа одним из основных компонентов XMSS и его многодеревного варианта.
WOTS+ остается схемой однократной подписи, поэтому обычно ее включают в более крупную структуру дерева Меркла, управляющую множеством возможностей для подписания.Деревья Меркла в подписях на основе хеш-функций
Дерево Меркла — это дерево хешей, которое позволяет зафиксировать множество элементов данных с помощью одного корневого хеша.Каждый лист может представлять открытый ключ однократной подписи.Хеши соседних листьев объединяются и хешируются, формируя родительские узлы.Этот процесс продолжается, пока не останется один корень дерева Меркла.Корень дерева служит компактным криптографическим подтверждением всех открытых ключей однократной подписи в дереве.Когда подписант использует один из листьев, подпись включает путь аутентификации в дереве Меркла.Этот путь содержит соседние хеши, необходимые для восстановления корня от выбранного листа.Проверяющий проверяет однократную подпись, а затем вычисляет путь Меркла, пока не получит известный корень.Эта схема позволяет одним коротким публичным подтверждением аутентифицировать множество однократных ключей.Статусные подписи на основе хеш-функций
В статусных подписях на основе хеш-функций подписант должен запоминать, какие однократные ключи подписи или индексы листьев уже использовались.После каждой подписи состояние нужно надежно обновлять.Если один и тот же однократный ключ используется повторно, безопасность схемы может серьезно пострадать.Из-за этого статусные схемы сложно применять в системах с резервными копиями, несколькими устройствами, параллельными подписантами, резервными серверами или ненадежным хранилищем.После восстановления резервной копии может загрузиться устаревшее состояние, что приведет к повторному использованию уже задействованного материала для подписи.Два устройства для подписания, использующие копии одного закрытого ключа, могут выбрать один и тот же индекс.Поэтому NIST предупреждает, что статусные схемы требуют тщательного управления состоянием и не подходят для неограниченного применения в общих целях.Они лучше подходят для контролируемых сред, где состояние подписи можно надежно защищать и синхронизировать.Бесстатусные подписи на основе хеш-функций
Для бесстатусных подписей на основе хеш-функций подписанту не нужно поддерживать счетчик, показывающий, какой однократный ключ использовать следующим.Это упрощает их использование при работе с резервными копиями, распределенными системами и несколькими сеансами подписания.SLH-DSA — основной стандартизированный алгоритм бесстатусной подписи на основе хеш-функций.Он разработан на основе предложения SPHINCS+, представленного в рамках процесса NIST по стандартизации постквантовой криптографии.SLH-DSA использует псевдослучайный выбор и многоуровневые структуры деревьев хешей, чтобы избежать катастрофической проблемы повторного использования однократных ключей, характерной для статусных систем.Бесстатусная архитектура упрощает обеспечение безопасности при эксплуатации, но требует более крупных подписей и больших вычислительных затрат.Безопасность все еще может снизиться, если неправильно использовать случайные данные при подписании или нарушить правила реализации, однако случайный откат состояния не вызывает такого же немедленного отказа, как повторное использование ключа в статусной системе.Сравнение статусных и бесстатусных подписей на основе хеш-функций
Главное различие между статусными и бесстатусными подписями на основе хеш-функций заключается в том, нужно ли подписанту отслеживать использованные индексы подписания.Статусные системы могут обеспечивать эффективные и хорошо изученные подписи при условии безупречного управления состоянием.Бесстатусные системы безопаснее в эксплуатации, поскольку для них не требуется постоянно поддерживать синхронизированный счетчик.Статусные системы могут подходить для подписания встроенного ПО, удостоверяющих центров или контролируемой инфраструктуры с ограниченной частотой подписания.Бесстатусные системы могут лучше подходить для распределенных приложений, программного обеспечения общего назначения и сред, в которых сложно надежно синхронизировать состояние.В сетях блокчейн-валидаторов необходимо учитывать распределенное подписание, резервное переключение, восстановление резервных копий и частое создание сообщений.В таких условиях управление состоянием может стать одним из важнейших вопросов проектирования.XMSS
XMSS расшифровывается как eXtended Merkle Signature Scheme — расширенная схема подписи Меркла.Это статусная система цифровой подписи на основе хеш-функций, стандартизированная в документе RFC 8391 и утвержденная в NIST SP 800-208.
XMSS объединяет однократные подписи WOTS+ и дерево Меркла в более крупную систему подписей.Каждая подпись использует определенный лист дерева.Подписант должен следить за тем, чтобы один и тот же лист не использовался дважды.XMSS имеет надежную основу безопасности, поскольку доказательство ее безопасности в основном опирается на определенные свойства криптографических хеш-функций.Открытые ключи XMSS относительно компактны, но подписи намного больше тех, которые обычно используются в современных аккаунтах криптовалют.XMSS может быть полезна, когда долгосрочная устойчивость к квантовым атакам важнее минимального размера подписи и когда состояние подписанта можно безопасно контролировать.Многодеревный XMSS
Многодеревный XMSS, обычно обозначаемый XMSSMT, объединяет несколько деревьев XMSS в иерархическую структуру.Дерево верхнего уровня подписывает корни деревьев нижних уровней.Такая схема позволяет системе поддерживать большее число подписей, не создавая одного чрезвычайно большого дерева.Кроме того, она может эффективнее распределять вычислительную нагрузку на протяжении срока использования ключа.Подписанту по-прежнему необходимо отслеживать состояние, поскольку нижние однократные ключи нельзя безопасно использовать повторно.XMSSMT включен в RFC 8391 и рекомендации NIST по статусным подписям на основе хеш-функций.LMS
LMS расшифровывается как Leighton-Micali Signature — подпись Лейтона—Микали.Это еще одна статусная система подписей на основе дерева Меркла, утвержденная NIST.Схема описана в RFC 8554.
LMS использует конструкцию однократной подписи под названием LM-OTS и аутентифицирует множество открытых ключей LM-OTS с помощью дерева Меркла.Как и XMSS, LMS требует, чтобы подписант не допускал повторного использования индексов однократных подписей.Безопасность LMS основана на криптографических хеш-функциях, а не на теоретико-числовых предположениях, используемых во многих традиционных системах с открытым ключом.LMS часто рассматривают для таких задач, как подписание кода и аутентификация встроенного ПО, где операции подписания можно централизованно контролировать.Иерархическая система подписей
Иерархическая система подписей, обычно называемая HSS, объединяет несколько деревьев LMS в иерархическую структуру.Ключ LMS верхнего уровня подписывает открытые ключи деревьев LMS нижних уровней.Затем деревья нижних уровней подписывают обычные сообщения.Эта структура поддерживает большее количество подписей и позволяет заменять ключи нижних уровней по мере использования однократных листьев.HSS не устраняет необходимость отслеживать состояние.Для каждого активного дерева LMS необходимо правильно учитывать использованные индексы подписания.HSS и LMS стандартизированы совместно в RFC 8554 и утверждены в соответствии с NIST SP 800-208.SLH-DSA
SLH-DSA расшифровывается как Stateless Hash-Based Digital Signature Algorithm — бесстатусный алгоритм цифровой подписи на основе хеш-функций.Окончательный стандарт FIPS 205 NIST опубликовал 13 августа 2024 года.
Алгоритм разработан на основе SPHINCS+, который оценивался в рамках процесса стандартизации постквантовой криптографии NIST.SLH-DSA использует гипердерево деревьев Меркла, WOTS+ и компонент подписи для нескольких сообщений под названием FORS.Система не требует от подписанта постоянно поддерживать состояние, поэтому создавать резервные копии и работать в распределенной среде с ней проще, чем с XMSS или LMS.SLH-DSA поддерживает разные наборы параметров на основе хеш-функций SHA-2 или SHAKE, которые рассчитаны на разные уровни безопасности и производительности.Более быстрые наборы параметров обычно формируют более крупные подписи, тогда как наборы с меньшим размером подписи требуют больше времени на обработку.SLH-DSA обеспечивает консервативный уровень постквантовой безопасности, однако ее подписи значительно больше многих подписей, используемых в современных блокчейн-системах.SPHINCS+ и SLH-DSA
SPHINCS+ — алгоритм, представленный на конкурс постквантовой криптографии NIST.SLH-DSA — стандартизированная версия, созданная на основе этого предложения.Эти названия связаны, но в технических реализациях их не всегда следует считать полностью взаимозаменяемыми.Система, заявляющая о соответствии FIPS 205, должна реализовывать требования стандарта SLH-DSA и утвержденные наборы параметров.Разработчикам следует использовать официальный стандарт, а не считать, что любая более ранняя реализация SPHINCS+ автоматически соответствует SLH-DSA.FORS
FORS расшифровывается как Forest of Random Subsets — лес случайных подмножеств.Это компонент подписи для нескольких сообщений, используемый в SLH-DSA.FORS преобразует дайджест сообщения в набор выбранных элементов нескольких небольших деревьев.Выбранные секретные значения и пути аутентификации становятся частью подписи.Затем полученное открытое значение FORS аутентифицируется через более крупное гипердерево SLH-DSA.FORS помогает бесстатусной системе подписывать много сообщений без простого счетчика однократных ключей.Это одна из причин, по которой подписи SLH-DSA содержат значительно больше данных, чем обычные подписи на эллиптических кривых.Почему подписи на основе хеш-функций считаются постквантовыми
Многие современные подписи с открытым ключом основаны на сложности решения задач дискретного логарифмирования или связанных с ними теоретико-числовых задач.Квантовый алгоритм Шора мог бы эффективно решать некоторые из этих задач на достаточно мощном отказоустойчивом квантовом компьютере.Подписи на основе хеш-функций не зависят от тех же задач.Их безопасность в основном связана со стойкостью к поиску прообраза, второго прообраза и коллизий, псевдослучайной генерацией и другими свойствами хеш-функций.Квантовые алгоритмы все же могут снизить эффективную безопасность поиска хешей.Алгоритм Гровера может обеспечить квадратичное ускорение некоторых методов полного перебора.Это влияние можно компенсировать, используя достаточно длинные выходные значения хеша и консервативные параметры.Поэтому подписи на основе хеш-функций называют устойчивыми к квантовым атакам или постквантовыми, но не математически неуязвимыми.Квантовая угроза подписям в криптовалютных системах
Крупный отказоустойчивый квантовый компьютер может поставить под угрозу несколько алгоритмов подписи, используемых сегодня в криптовалютных сетях.Если злоумышленник сможет восстановить приватный ключ на основе открытой информации о ключе, он может получить возможность авторизовать несанкционированные транзакции.Объектами атак также могут стать подписи валидаторов, подписанты кроссчейн-мостов, системы с несколькими подписями, аккаунты управления и ключи казначейства с длительным сроком использования.Угроза касается не только монет, хранящихся в обычных кошельках.В протоколах консенсуса и системах межсетевого взаимодействия могут использоваться схемы подписей, уязвимые для аналогичных квантовых алгоритмов.На данный момент публично продемонстрированные квантовые компьютеры не обладают масштабом и коррекцией ошибок, необходимыми для таких атак на ключи крупных блокчейнов.Однако переход блокчейна на новые алгоритмы может занять годы, поскольку потребуется скоординированно обновить программное обеспечение кошельков, правила консенсуса, аппаратные устройства, приложения, процедуры хранения активов и пользовательские средства.NIST рекомендует организациям выявлять уязвимую криптографию и планировать переход с помощью своей программы постквантовой криптографии.
Подписи на основе хеш-функций и Ethereum
В Ethereum сейчас используются схемы подписи, которые не рассчитаны на защиту от достаточно мощных квантовых компьютеров.В уровне консенсуса используются подписи BLS, а для обычных аккаунтов, владельцами которых напрямую управляют пользователи, обычно применяются подписи на основе эллиптических кривых.В актуальной дорожной карте Ethereum по постквантовой безопасности обсуждается замена подписей валидаторов решением на основе хеш-функций под названием leanXMSS.
В дорожной карте leanXMSS рассматривается как направление исследований, а не как завершенный переход основной сети.Подписи валидаторов на основе хеш-функций создают серьезную проблему масштабирования, поскольку они значительно больше существующих подписей BLS.Исследователи Ethereum изучают агрегирование доказательств, чтобы множество крупных подписей можно было проверять с помощью более компактного доказательства.На портале исследований Ethereum в области постквантовой криптографии описывается работа над подписями на основе хеш-функций, криптографической гибкостью, аутентификацией валидаторов и агрегированием на основе доказательств.
Любое окончательное изменение Ethereum потребует исследований, реализации, тестирования, общественного обсуждения и координации обновления протокола.Подписи валидаторов на основе хеш-функций
Валидаторы часто подписывают сообщения, связанные с предложением блоков, аттестациями, финализацией и участием в консенсусе.Альтернативная схема подписи должна поддерживать большой объем сообщений, не перегружая пропускную способность сети и хранилище.Статусные подписи создают дополнительный риск, поскольку валидатор может использовать резервные системы или переключаться между машинами.Неправильная синхронизация состояния может привести к повторному использованию однократного ключа подписи.Бесстатусные подписи исключают именно этот сбой, но увеличивают размер подписей и затраты на проверку.Поэтому исследователи блокчейна изучают агрегирование, рекурсивные доказательства, специализированное оборудование и изменения протокола, чтобы сделать подписи валидаторов на основе хеш-функций практичными.Подписи на основе хеш-функций и криптокошельки
Если блокчейн поддерживает необходимые правила проверки, криптокошелек может использовать ключ подписи на основе хеш-функций для авторизации транзакций.Кошельку потребуется создавать соответствующий приватный ключ, вычислять подписи, отслеживать состояние, если оно требуется, и формировать совместимые транзакции.Статусные подписи в кошельках создадут серьезные проблемы при создании резервных копий и использовании нескольких устройств.При восстановлении старой резервной копии пользователь может случайно повторно использовать уже задействованный индекс подписания.Мобильный и аппаратный кошельки, использующие один статусный ключ, также могут иметь конфликтующее состояние.Бесстатусные подписи на основе хеш-функций проще восстанавливать из резервной копии, но они могут создавать транзакции, намного более крупные и дорогие в обработке.Разработчикам кошельков также необходимо учитывать генерацию начального значения, смену ключей, дизайн адресов, поддержку оборудования, восстановление доступа пользователями и переход со старых систем подписей.Подписи на основе хеш-функций и кошельки со смарт-контрактами
В некоторых случаях кошельки со смарт-контрактами могут поддерживать новые алгоритмы подписи, не требуя заменять базовое правило подписи для каждого аккаунта в блокчейне.Контракт может содержать собственную логику проверки для открытого ключа на основе хеш-функций.Пользователь может отправить подпись на основе хеш-функций, а контракт проверит ее по заданным правилам.Такой подход может позволить экспериментировать с постквантовыми аккаунтами до перехода всей сети.Однако проверка в блокчейне может потребовать множества вычислений хеш-функции и расходовать значительное количество блокчейн-пространства или ресурсов выполнения.Разработчикам необходимо сопоставлять преимущества безопасности с комиссией за транзакцию, сложностью контракта и рисками отказа в обслуживании.В будущем системы доказательств могут позволить контракту проверять компактное доказательство того, что более крупная подпись на основе хеш-функций действительна.Подписи на основе хеш-функций и абстракция аккаунтов
Абстракция аккаунтов позволяет использовать программируемые правила авторизации вместо полной зависимости от одного фиксированного алгоритма подписи.Аккаунт с абстракцией потенциально может принимать обычную подпись, подпись на основе хеш-функций, политику подписей с несколькими ключами или доказательство, созданное другой системой аутентификации.Такая гибкость может упростить переход на постквантовую защиту, поскольку пользователи смогут обновить логику проверки аккаунта до того, как постквантовые подписи станут обязательными на уровне протокола.Абстракция аккаунтов также создает дополнительные обязанности по обеспечению безопасности: ключи обновления, модули восстановления и контракты-проверщики могут открыть новые возможности для атак.Постквантовая подпись не защитит аккаунт, если злоумышленник сможет обойти ее через слабый модуль восстановления или административный ключ.Подписи на основе хеш-функций и безопасность мультиподписи
Для выполнения действия в системе с несколькими подписями требуется одобрение нескольких уполномоченных ключей.Подписи на основе хеш-функций могут использоваться в таких системах как независимые способы подписания.Гибридная политика может требовать как обычную подпись, так и подпись на основе хеш-функций.Такой подход может защитить от отказа одного семейства криптографических алгоритмов, если другое семейство останется безопасным.Однако гибридные системы увеличивают размер транзакций и сложность проверки и усложняют процедуры восстановления.В системе необходимо четко определить, требуются ли все подписи или достаточно любой одной из них.Неправильно спроектированное правило резервного доступа может лишить смысла использование более надежной подписи.Гибридные подписи
Гибридная подпись объединяет подписи, созданные с использованием двух или более криптографических алгоритмов.Один компонент может использовать современный алгоритм на основе эллиптических кривых, а другой — SLH-DSA или другую постквантовую систему.Цель состоит в том, чтобы сохранить безопасность, если позже один из алгоритмов будет взломан.В разделе часто задаваемых вопросов NIST о постквантовой криптографии рассматриваются подходы с двумя подписями для данных и цифровых сертификатов.
Гибридный переход может уменьшить зависимость от нового алгоритма, прежде чем он получит многолетний опыт эксплуатации.Однако он также усложняет реализацию и требует четкого правила объединения результатов двух проверок.Если транзакция действительна при подтверждении любой из двух подписей, для атаки на аккаунт может быть достаточно взломать более слабую схему.Если требуются обе подписи, аккаунт по-прежнему зависит от доступности и корректной работы обеих систем.Подписи на основе хеш-функций и блокчейн-пространство
Подписи на основе хеш-функций могут занимать значительно больше блокчейн-пространства, чем компактные подписи на эллиптических кривых.Если емкость блоков или методы агрегирования не изменятся, более крупные транзакции уменьшат количество действий пользователей, помещающихся в блок.Больший объем данных также может увеличить требования к пропускной способности и хранилищу, время распространения данных и требования к синхронизации всей истории.Эти издержки особенно важны для блокчейнов базового уровня, где каждый узел-валидатор обрабатывает одни и те же данные.Агрегирование подписей с помощью доказательств с нулевым разглашением или специализированных протоколов может уменьшить объем данных, которые каждому узлу требуется проверять напрямую.Само агрегирование влечет дополнительные криптографические предположения, затраты на создание доказательств, задержки и сложность реализации.Размер подписи
Большой размер подписи — один из основных практических недостатков подписей на основе хеш-функций.Размер подписей SLH-DSA может составлять тысячи или десятки тысяч байт в зависимости от набора параметров.Подписи XMSS и LMS также значительно больше распространенных подписей на эллиптических кривых.Большой размер подписи может быть приемлем для редких обновлений программного обеспечения или корневых сертификатов.Их сложнее использовать для блокчейн-транзакций с большим объемом, где каждый байт может увеличивать сетевые расходы и комиссии.Выбор параметров должен учитывать размер подписи, скорость создания и проверки, максимальное число подписей и уровень безопасности.Размер открытого ключа
Открытые ключи подписей на основе хеш-функций могут быть относительно компактными, поскольку корень дерева Меркла способен подтвердить принадлежность множества однократных ключей.Это важное преимущество по сравнению с отдельным хранением каждого открытого ключа однократной подписи.Компактный открытый ключ не отменяет затрат на подпись, поскольку путь аутентификации и данные однократной подписи все равно необходимо предоставить.В блокчейн-системах размер открытого ключа влияет на создание аккаунтов, хранение состояния, свидетельства транзакций и построение доказательств.Размер закрытого ключа
Базовый закрытый ключ на основе хеш-функций может содержать большое количество случайных секретных значений.В современных схемах многие из этих значений обычно генерируются псевдослучайно на основе меньшего главного начального значения.Это позволяет уменьшить требования к хранилищу, но делает это начальное значение чрезвычайно чувствительной информацией.Компрометация главного начального значения может раскрыть все производные однократные ключи подписи.Статусные схемы требуют сохранять и секретное начальное значение, и текущий индекс подписания.Резервное копирование одного лишь начального значения без актуального состояния опасно: после восстановления ключи могут быть использованы повторно.Скорость подписания
Подписание с использованием хеш-функций требует множества вычислений хешей и операций с деревом.Некоторые наборы параметров рассчитаны на более быстрое подписание, но формируют более крупные подписи.Другие уменьшают размер подписи, но требуют больше вычислений.Статусные системы могут предварительно вычислять узлы дерева или пути аутентификации, чтобы ускорить подписание.Предварительные вычисления требуют дополнительного хранилища и усложняют управление состоянием.Разработчикам блокчейн-кошельков и валидаторов необходимо оценить, можно ли создавать подписи в установленные строгие сроки.Скорость проверки
Проверка также требует выполнения множества вычислений хеш-функций.Операции с хеш-функциями обычно просты, широко реализуются и хорошо подходят для аппаратного ускорения.Однако проверка тысяч крупных подписей в каждом блоке все равно может создать существенную совокупную нагрузку.Блокчейн должен учитывать максимальную нагрузку на проверку, поскольку злоумышленники могут отправлять множество корректно сформированных, но ресурсоемких транзакций.Правила комиссий и ограничения на транзакции, возможно, потребуется привести в соответствие с реальной стоимостью проверки.Риски управления состоянием
Управление состоянием — основной операционный риск для XMSS, LMS, XMSSMT и HSS.Подписант должен записывать каждый использованный однократный индекс до или во время подписания так, чтобы запись сохранилась после сбоя или отключения питания.Обновление должно быть атомарным: система не должна создавать подпись, не сохраняя новое состояние.Резервные копии не должны позволять подписывать данные с использованием устаревшего индекса.В системах с высокой доступностью необходимо координировать работу нескольких машин и исключить повторное использование индекса.Для защиты состояния подписания можно использовать защищенное оборудование, реализующее монотонные счетчики или изолирующее состояние.В рекомендациях NIST использование этих статусных схем ограничено средами, в которых можно строго контролировать ключи и состояние.Защита от атак по сторонним каналам
Подписи на основе хеш-функций могут быть привлекательны, поскольку хеш-функции относительно просты и могут реализовываться с помощью стандартных операций.Это может упростить защиту от некоторых атак по сторонним каналам, основанных на времени выполнения, анализе энергопотребления или электромагнитных излучениях, по сравнению с некоторыми сложными теоретико-числовыми алгоритмами.При этом такие подписи не защищены от атак по сторонним каналам автоматически.Ветвления, зависящие от секретных данных, доступ к памяти, генерация случайных чисел, внедрение ошибок и код обработки ключей все еще могут раскрыть информацию.При необходимости реализации для аппаратных кошельков и валидаторов должны использовать проверенные методы постоянного времени выполнения.Требования к случайным данным
Надежные случайные данные необходимы для создания закрытых ключей и начальных значений подписей на основе хеш-функций.Если секретные значения можно предсказать, злоумышленник может восстановить ключ подписи.В некоторых схемах также используются случайные данные для каждой подписи, чтобы защититься от атак с множеством целевых объектов или скрыть детерминированные взаимосвязи.Ненадежный генератор случайных чисел может ослабить даже математически защищенный алгоритм.Кошелькам следует создавать ключевой материал с помощью надежных источников криптографически случайных данных, а не на основе временных меток, фраз, выбранных пользователем, или обычных функций генерации случайных чисел в приложениях.Исчерпание ключа
Статусные ключи на основе хеш-функций поддерживают лишь ограниченное число безопасных подписей.Ограничение зависит от высоты и иерархии выбранных деревьев Меркла.Когда все разрешенные однократные ключи использованы, пару ключей необходимо вывести из эксплуатации.Использование ключа сверх предусмотренной емкости может привести к повторному применению ключей или недействительным подписям.Системам необходимо отслеживать остаток доступных подписей и менять ключи до его исчерпания.Валидаторам блокчейна, которые подписывают множество сообщений, требуется особенно тщательно планировать использование ключей.Смена ключей
Смена ключей — это замена старого ключа подписи новым.В системах на основе хеш-функций может потребоваться смена ключа, если статусное дерево почти исчерпано, изменились параметры или ключ мог быть раскрыт.По возможности новый открытый ключ следует подтвердить с помощью старого ключа.В блокчейн-протоколах необходимо определить, как обновлять авторизованные ключи аккаунтов, валидаторов, мостов и систем управления.Процесс перехода должен исключать возможность подмены нового ключа злоумышленником.Пользователям также нужны понятные процедуры восстановления на случай, если старый ключ будет утерян до завершения смены.Долгосрочная проверка
Подписи на основе хеш-функций могут быть полезны для записей, которые необходимо проверять на протяжении многих лет.К ним относятся релизы протоколов, исторические контрольные точки, образы встроенного ПО, файлы генезис-блока и решения по вопросам управления.Для долгосрочной проверки по-прежнему необходимо сохранять подписанные данные, открытый ключ, идентификатор алгоритма, набор параметров и требуемые хеш-функции.Если со временем хеш-функция ослабнет, системам могут потребоваться временные метки, повторное подписание или процедуры перехода на новые алгоритмы.Постквантовая криптография не означает, что подпись навсегда остается безопасной без обслуживания.Подписи на основе хеш-функций для релизов программного обеспечения
Пользователи криптовалют часто устанавливают приложения-кошельки, клиентские приложения узлов, ПО для валидаторов, встроенное ПО и инструменты разработчиков.Подписи релизов помогают пользователям убедиться, что загруженное программное обеспечение выпущено уполномоченной командой разработчиков и не изменялось после подписания.Для этой задачи могут подойти хеш-подписи с состоянием, поскольку выпуски программного обеспечения происходят реже, чем транзакции в блокчейне.Команда выпуска может контролировать устройство для подписания и тщательно управлять индексом подписи.Постквантовые подписи релизов могут защитить цепочки поставок ПО с длительным сроком службы от будущих атак на традиционные алгоритмы подписания.Пользователям по-прежнему необходимо проверять публичный ключ через надежный источник.Хеш-подписи для прошивки аппаратных кошельков
На аппаратные кошельки устанавливается прошивка, которая управляет генерацией ключей, отображением транзакций и процессом подписания.Вредоносное обновление прошивки может похитить приватные ключи или показать ложную информацию о транзакции.Производители могут подписывать прошивку, чтобы устройство принимало только авторизованные обновления.Хеш-подписи могут использоваться для аутентификации прошивки с длительным сроком службы: обновления выпускаются нечасто, а квантовая устойчивость может быть важна.Механизм обновления также должен предотвращать откат к более ранним уязвимым версиям прошивки.По-прежнему необходимы безопасная загрузка, аппаратные корни доверия, счетчики версий и защищенные публичные ключи.Хеш-подписи для мостов и оракулов
Мосты и оракулы часто полагаются на подписи комитетов, операторов или распределенных узлов.Такие подписи могут разрешать перевод активов или передавать информацию, от которой зависит управление крупными объемами криптоактивов.Публичные ключи с длительным сроком действия могут стать целью квантовых атак, если базовый алгоритм окажется уязвимым.Хеш-подписи могут обеспечить более надежную постквантовую защиту сообщений комитета.При этом более крупные подписи и требования к состоянию могут увеличить стоимость проверки в блокчейне.Мост остается уязвимым, если его смарт-контракты, управление, экономические допущения или пороговые значения валидаторов спроектированы ненадлежащим образом.Замена алгоритма подписи не устраняет все риски, связанные с мостами и оракулами.Хеш-подписи для сетей Layer 2
Сети Layer 2 используют секвенсоры, проверяющие, валидаторов, комитеты или другие системы для обработки транзакций вне базового блокчейна.Эти участники могут подписывать пакеты транзакций, корни состояний, заявления о доступности данных или сообщения между уровнями.Хеш-подписи могут защитить такие сообщения от будущих квантовых атак.Сеть Layer 2 может объединять множество подписей в одно доказательство перед отправкой данных в базовый уровень.Это может снизить стоимость проверки в блокчейне, сохранив постквантовую политику подписания вне блокчейна.Безопасность всей конструкции зависит от системы доказательств, доступности данных, ключей обновления, контрактов моста и правил разрешения споров.Хеш-подписи и доказательства с нулевым разглашением
Системы доказательств с нулевым разглашением могут помочь сжать данные для проверки крупных хеш-подписей.Доказывающая сторона может проверить множество подписей внутри схемы и сформировать меньшее доказательство корректности проверки.Вместо обработки каждой подписи по отдельности блокчейн проверяет это доказательство.Такой подход может сократить использование пространства блока и стоимость проверки.Однако он добавляет допущения и риски реализации, связанные с выбранной системой доказательств.Генерация доказательств также должна укладываться в требования сети по времени.В рамках текущих постквантовых исследований Ethereum изучается этот подход к агрегации большого количества подписей валидаторов.Криптографическая гибкость
Криптографическая гибкость — это возможность заменять или добавлять криптографические алгоритмы без полной переработки системы.Для блокчейнов это важно, поскольку нельзя считать, что какой-либо алгоритм подписи будет оставаться безопасным вечно.Криптографически гибкий кошелек может поддерживать несколько типов подписей и переносить активы через аутентифицированный процесс обновления.Криптографически гибкий протокол может использовать версионированные публичные ключи, программируемую проверку аккаунтов или обновляемую проверку консенсуса.Гибкость не должна создавать простой путь отката к слабому алгоритму.Каждый поддерживаемый алгоритм, правило резервного переключения и ключ миграции становится частью поверхности атаки.Переход с существующих криптографических подписей
Переход блокчейна с традиционных подписей на хеш-подписи потребовал бы не только выпуска нового ПО для кошельков.Сети понадобился бы механизм распознавания новых форматов публичных ключей и подписей.Узлам пришлось бы обновить правила проверки.Кошелькам потребовалось бы генерировать, хранить, резервировать и менять новые ключи.Пользователям пришлось бы переводить активы со старых аккаунтов на защищенные.Потребовалось бы обновить валидаторы, мосты, смарт-контракты, системы управления и политики хранения активов.Неактивные средства создают сложную проблему: их владельцы могут не успеть перейти на новые ключи до того, как квантовая угроза станет неотложной.Разработчикам протоколов могут понадобиться экстренные правила для раскрытых публичных ключей, старых типов аккаунтов и давно неиспользуемых активов.Собрать сейчас — атаковать позже
Выражение «собрать сейчас — атаковать позже» обычно описывает сбор зашифрованных данных сегодня с целью расшифровать их после развития квантовых компьютеров.Криптовалютные подписи связаны с похожей, но иной проблемой.Данные блокчейна остаются общедоступными, поэтому раскрытые публичные ключи и исторические подписи можно будет анализировать в будущем.Обычно злоумышленник не может изменить уже финализированную транзакцию лишь потому, что позже узнал ее приватный ключ.Однако он может похитить средства, которые по-прежнему контролируются тем же уязвимым ключом, или атаковать системы, продолжающие ему доверять.Поэтому для казначейских аккаунтов с длительным сроком использования, повторно используемых адресов, идентификаторов валидаторов и ключей мостов необходимо заранее планировать миграцию.Преимущества хеш-подписей
Главное преимущество хеш-подписей — их надежные позиции среди кандидатов на постквантовые цифровые подписи.Эти конструкции основаны преимущественно на хорошо изученных криптографических хеш-функциях.Они не опираются на задачи дискретного логарифмирования, которым угрожает алгоритм Шора.Для ряда схем существуют официальные стандарты NIST и IETF.Хеш-операции широко реализованы и могут эффективно выполняться на аппаратном и программном уровне.Деревья Меркла позволяют представить множество одноразовых публичных ключей одним корнем.Бессостояниевые конструкции снижают операционный риск повторного использования индекса подписания.Схемы с состоянием могут быть полезны в контролируемых средах, где подписи создаются нечасто.Недостатки хеш-подписей
Главный недостаток — размер подписи.Крупные подписи могут увеличивать комиссии за транзакции в криптовалюте, время распространения блоков, требования к хранилищу и пропускной способности для проверки.Схемы с состоянием требуют строгого управления индексами и могут серьезно пострадать, если резервные копии или параллельные устройства подписания повторно используют состояние.Бессостояниевые схемы не требуют постоянного хранения состояния, но обычно нуждаются в большем объеме данных и вычислений.Многие существующие чипы кошельков, смарт-контракты, клиенты узлов и протоколы блокчейнов пока не поддерживают эти алгоритмы.Кроме того, хеш-подписи не обладают компактными встроенными возможностями агрегации, которые есть у некоторых современных систем подписи.Агрегация с помощью доказательств может частично решить эту проблему, но добавляет еще один сложный криптографический уровень.Можно ли взломать хеш-подписи?
Хеш-подписи не являются неуязвимыми.Их безопасность зависит от надежности базовой хеш-функции и корректности всей конструкции.Слабый генератор случайных чисел может раскрыть секретный материал для подписи.Ошибка в ПО может привести к вычислению неверного пути аутентификации.Повторное использование состояния может разрушить схему с состоянием.Атака по побочным каналам может раскрыть секретные данные.Вредоносное обновление может заменить публичный ключ, используемый для проверки.Будущие открытия в криптоанализе могут ослабить выбранную хеш-функцию или набор параметров.Постквантовая устойчивость защищает от определенного класса атак, а не от всех возможных нарушений безопасности.Распространенные заблуждения о хеш-подписях
Одно из распространенных заблуждений состоит в том, что любой хеш блокчейна уже обеспечивает квантово-устойчивую авторизацию транзакций.Хеш транзакции идентифицирует данные, но не заменяет цифровую подпись, которая разрешает расходование средств.Другое заблуждение — будто хеш-подписи автоматически имеют небольшой размер, поскольку выходные данные хеширования компактны.Полная подпись включает данные одноразовой подписи, пути аутентификации и другую структурную информацию.Третье заблуждение: подписи с состоянием безопасны, если защищена приватная сид-фраза.Они также требуют безупречной защиты текущего состояния подписания.Четвертое заблуждение заключается в том, что квантовая устойчивость означает невосприимчивость ко всем атакам.Ошибки реализации, фишинг, вредоносное ПО, сбои управления и эксплойты смарт-контрактов по-прежнему возможны.Пятое заблуждение — блокчейны могут мгновенно перейти на новый формат подписи.Миграция требует координации протоколов, кошельков, оборудования, хранения активов, приложений и пользователей.Контрольный список безопасности для систем хеш-подписей
Используйте только проверенные алгоритмы и четко указанные наборы параметров.Создавайте приватные сид-фразы с помощью криптографически стойкого генератора случайных чисел.Защищайте мастер-сид-фразы с помощью безопасного оборудования или тщательно спроектированных систем управления ключами.Не копируйте приватный ключ с состоянием на два независимых устройства подписания без надежной схемы координации состояния.Обновления состояния должны выполняться атомарно и быть защищены от сбоев питания и отката.Отслеживайте оставшийся лимит подписей для ключей XMSS, LMS, XMSSMT или HSS.Аутентифицируйте смену ключей, чтобы злоумышленники не могли подменить новые публичные ключи.Используйте разделение доменов точно в соответствии с требованиями стандарта.Проверяйте совместимость с официальными тестовыми векторами и независимыми реализациями.Планируйте переход на другой алгоритм до того, как существующая схема перестанет быть безопасной.FAQ
Что такое хеш-подпись?
Хеш-подпись — это цифровая подпись, безопасность которой в основном опирается на криптографические хеш-функции и конструкции на основе хеш-деревьев.Почему хеш-подписи важны для криптовалют?
Они могут обеспечить постквантовую авторизацию для кошельков, валидаторов, мостов, систем управления, выпусков ПО и другой блокчейн-инфраструктуры.Устойчивы ли хеш-подписи к квантовым атакам?
Их считают квантово-устойчивыми при использовании надежных хеш-функций и достаточно сильных параметров, хотя квантовые алгоритмы все же сокращают некоторые запасы стойкости к перебору.Что такое SLH-DSA?
SLH-DSA — это стандартизированный NIST в FIPS 205 бессостояниевый алгоритм цифровой подписи на основе хеш-функций.SLH-DSA — это то же самое, что SPHINCS+?
SLH-DSA — стандартизированный NIST алгоритм, созданный на основе SPHINCS+, однако реализации должны соответствовать FIPS 205: не следует считать, что все ранние версии SPHINCS+ идентичны ему.Что такое XMSS?
XMSS — это система подписей на основе хеш-дерева с состоянием, в которой используются одноразовые подписи WOTS+ и требуется тщательно отслеживать использованные индексы подписания.Что такое LMS?
LMS — это схема хеш-подписей с состоянием, объединяющая одноразовые подписи LM-OTS с аутентификацией на основе дерева Меркла.Что такое HSS?
HSS — это иерархическая система, связывающая несколько деревьев LMS, благодаря чему структура ключей может поддерживать большее число подписей.Чем отличаются подписи с состоянием от бессостояниевых?
При использовании подписей с состоянием подписывающая сторона должна отслеживать использованные одноразовые ключи, тогда как бессостояниевые подписи не требуют постоянного счетчика подписания.Почему повторное использование состояния опасно?
Повторное использование одноразового ключа подписания может раскрыть достаточно секретной информации, чтобы ослабить или полностью разрушить безопасность схемы хеш-подписей с состоянием.Что такое подпись на основе дерева Меркла?
В подписи на основе дерева Меркла корень Меркла используется для аутентификации множества одноразовых публичных ключей с помощью компактных хеш-путей аутентификации.Что такое WOTS+?
WOTS+ — это одноразовая подпись конструкции Винтерница, используемая как базовый компонент XMSS и SLH-DSA.Что такое FORS?
FORS — это конструкция подписи, допускающая несколько применений. В SLH-DSA она используется для подписания дайджестов сообщений, после чего результат аутентифицируется через гипердерево.Используют ли крупные блокчейны хеш-подписи?
Пока это не стандартная подпись транзакций для большинства крупных блокчейн-сетей, хотя исследования и специализированные внедрения активно развиваются.Использует ли Ethereum хеш-подписи сейчас?
В настоящее время Ethereum не использует их как стандартные подписи валидаторов или пользователей, однако в дорожной карте постквантовых исследований рассматриваются leanXMSS и агрегация на основе доказательств.Может ли смарт-контракт проверить хеш-подпись?
Смарт-контракт может реализовать совместимую логику проверки, однако вычисления и стоимость данных транзакции могут быть значительными.Почему хеш-подписи такие большие?
Они должны включать значения одноразовой подписи, пути аутентификации Меркла и другие данные, необходимые для связи подписи сообщения с публичным корнем.Можно ли агрегировать хеш-подписи?
Обычно у них нет компактной встроенной агрегации, доступной в некоторых современных схемах, однако системы доказательств потенциально могут агрегировать результаты их проверки.Может ли аппаратный кошелек использовать хеш-подписи?
Аппаратный кошелек может их поддерживать при наличии совместимой прошивки, безопасного хранения ключей, достаточной вычислительной мощности и надежной обработки состояния, если она требуется.Заменяют ли хеш-подписи шифрование?
Нет. Подписи обеспечивают аутентификацию и целостность, а шифрование предназначено для сохранения конфиденциальности информации.Можно ли преобразовать существующий приватный ключ криптокошелька в хеш-ключ?
Для безопасной миграции обычно требуется сгенерировать новую пару хеш-ключей и авторизовать новый публичный ключ в соответствии с правилами существующего аккаунта или протокола.Хеш-подписи безопаснее всех остальных постквантовых схем?
Их безопасность опирается на консервативные основы, но она также зависит от требований к производительности, качества реализации, управления ключами, параметров и окружающего протокола.Каков главный риск XMSS и LMS?
Главный операционный риск — случайное повторное использование одноразового индекса подписания из-за отката резервной копии, параллельного подписания или неудачного обновления состояния.Каков главный риск SLH-DSA?
Его основные практические ограничения — крупные подписи и значительные вычислительные затраты; угрозу безопасности также представляют ошибки реализации и генерации случайных чисел.Взломают ли квантовые компьютеры криптовалюты немедленно?
Ни один продемонстрированный на данный момент квантовый компьютер не способен выполнить необходимые атаки на ключи крупных блокчейнов, однако миграцию нужно начинать заранее, поскольку для глобальных изменений протоколов требуется тщательная подготовка.Заключение
Хеш-подписи — это системы цифровых подписей, основанные преимущественно на криптографических хеш-функциях, одноразовых подписях и аутентификации с помощью деревьев Меркла.Они особенно важны для криптовалют, поскольку предлагают реалистичный путь к аутентификации транзакций и валидаторов, устойчивой к известным атакам с использованием квантовых компьютеров.Схемы с состоянием, такие как XMSS, XMSSMT, LMS и HSS, могут обеспечивать высокий уровень безопасности, но требуют точного отслеживания каждого использованного индекса подписания.Восстановление старой резервной копии или использование одного ключа с состоянием на двух устройствах может привести к случайному повторному использованию материала для подписи и серьезно ослабить ключ.Бессостояниевый SLH-DSA устраняет необходимость в постоянном хранении состояния и в августе 2024 года стал окончательным стандартом NIST в рамках FIPS 205.Компромисс заключается в том, что подписи SLH-DSA значительно крупнее тех, которые обычно используются в современных криптовалютных аккаунтах и у валидаторов.Крупные подписи влияют на комиссии за транзакции, пространство блока, пропускную способность, хранение, синхронизацию и стоимость проверки.Поэтому исследователи блокчейнов изучают абстракцию аккаунтов, гибридные подписи, агрегацию с нулевым разглашением, программируемую проверку и криптографическую гибкость.Текущие постквантовые исследования Ethereum включают хеш-подписи валидаторов и системы доказательств, предназначенные для сжатия процедуры их проверки.Хеш-подписи не решают все проблемы безопасности криптовалют.Вредоносное ПО в кошельках, кража сид-фраз, фишинг, ошибки смарт-контрактов, слабое управление, небезопасные мосты, некорректная генерация случайных чисел и ошибки реализации по-прежнему могут привести к потерям.Их следует считать мощной технологией аутентификации, а не комплексным решением для обеспечения безопасности.Для криптовалютных сетей долгосрочная задача заключается не только в выборе квантово-устойчивого алгоритма подписи.Более сложная задача — перенести миллиарды долларов в аккаунтах, приложениях, системах валидаторов и инфраструктуре, не нарушив безопасность сети и не оставив позади неактивных пользователей.Хеш-подписи представляют собой одну из наиболее зрелых и консервативно спроектированных основ для такого перехода.Вам также может быть интересно
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
В тренде
Трендовые криптовалюты, которые в настоящее время привлекают значительное внимание рынка
ТОП по объему
Криптовалюты с наибольшим объемом торгов
Недавно добавленные
Криптовалюты недавно внесенные в листинг и доступные для торговли

