Перейти к содержимому
ecdsa.com

Подписи с подмешанной случайностью (hedged)

Подписание, при котором nonce для каждой подписи выводится из закрытого ключа и сообщения вместе со свежими случайными данными, поэтому схема остаётся безопасной, даже если атакован либо генератор случайных чисел, либо детерминированное вычисление nonce.
Другие написанияhedged signinghedged ECDSAsynthetic noncedeterministic signatures with noise

Чисто случайные nonce при слабом ГСЧ приводят к катастрофическим последствиям; чисто детерминированные (RFC 6979, EdDSA) позволяют атакующему, который может вызвать сбой во время двукратного подписания одного и того же сообщения, сравнить два результата и восстановить ключ, а также облегчают некоторые атаки по побочным каналам, потому что nonce повторяется в точности. Подмешивание случайности (hedging) вычисляет nonce как PRF от ключа, сообщения и свежих случайных байтов, поэтому секретность nonce обеспечивает любой из входов в отдельности.

FIPS 204 делает подписание с подмешанной случайностью режимом по умолчанию для ML-DSA: 32-байтовое значение rnd от одобренного генератора случайных битов (RBG) хешируется вместе с ключом и сообщением, а в необязательном детерминированном варианте rnd заполняется нулями; один и тот же алгоритм проверки принимает оба варианта (§ 3.4). Для ECDSA RFC 6979 (§ 3.6) допускает дополнительные данные при выводе nonce, BIP-340 рекомендует подмешивать 32 байта вспомогательной случайности, а @noble/curves предоставляет эту возможность в виде параметра extraEntropy.

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

Стандарты и ссылки

Все термины