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

Схема Шнорра

Схема Шнорра — это протокол аутентификации и цифровой подписи, основанный на сложности задачи дискретного логарифмирования. Разработана немецким криптографом Клаусом Шнорром в 1989 году и запатентована в США в 1990 году (патент истёк в 2008 году). Схема является одним из наиболее эффективных протоколов с нулевым разглашением (Zero-Knowledge Proof), позволяющим доказывающей стороне (проверяющему) убедить верификатора в знании секретного ключа без раскрытия самого ключа. На основе схемы Шнорра построены многие современные криптографические системы, включая протоколы блокчейна и криптовалюты.

История

Протокол был предложен Клаусом Шнорром в 1989 году как альтернатива схемам цифровой подписи RSA и DSA. Основная цель разработки — повышение вычислительной эффективности и снижение размера подписи. В 1990 году Шнорр получил патент США № 4 995 082 на «Метод идентификации пользователей и подписи сообщений». Патент принадлежал компании «Certicom», что ограничивало использование схемы в открытых стандартах. После истечения срока действия патента в 2008 году схема Шнорра стала активно применяться в криптовалютах (например, в проектах Bitcoin и Monero) и протоколах конфиденциальности.

Математические основы

Схема Шнорра опирается на задачу дискретного логарифмирования в циклической группе простого порядка. Пусть \( G \) — циклическая группа порядка \( q \), где \( q \) — большое простое число, а \( g \) — генератор этой группы. Секретный ключ \( x \) — случайное число из интервала \( [0, q-1] \), а открытый ключ \( y = g^x \mod p \) (где \( p \) — простое число, такое что \( q \) делит \( p-1 \)).

Протокол аутентификации (доказательство знания)

Протокол состоит из трёх шагов:

  1. Инициализация (Commitment): Доказывающая сторона (Алиса) выбирает случайное число \( r \) (nonce) из \( [0, q-1] \) и вычисляет \( t = g^r \mod p \). Значение \( t \) отправляется верификатору (Бобу).
  2. Вызов (Challenge): Боб выбирает случайное число \( e \) (вызов) из \( [0, 2^k-1] \), где \( k \) — параметр безопасности (обычно 128 или 256 бит), и отправляет его Алисе.
  3. Ответ (Response): Алиса вычисляет \( s = r + e \cdot x \mod q \) и отправляет \( s \) Бобу. Боб проверяет равенство \( g^s = t \cdot y^e \mod p \). Если равенство выполняется, доказательство считается успешным.

Схема является протоколом с нулевым разглашением: Боб узнаёт только факт знания \( x \), но не сам \( x \). Для имитации протокола без знания \( x \) злоумышленнику пришлось бы решить задачу дискретного логарифмирования.

Цифровая подпись Шнорра

Схема Шнорра может быть преобразована в алгоритм цифровой подписи (Schnorr Signature) с помощью хеш-функции. Подпись сообщения \( m \) выполняется следующим образом:

  1. Выбирается случайное число \( r \) из \( [0, q-1] \).
  2. Вычисляется \( t = g^r \mod p \).
  3. Вычисляется хеш \( e = H(t \parallel m) \), где \( H \) — криптографическая хеш-функция (например, SHA-256).
  4. Вычисляется \( s = r + e \cdot x \mod q \).
  5. Подпись — пара \( (e, s) \) или \( (t, s) \).

Верификация подписи:

Размер подписи Шнорра обычно меньше, чем у схемы ECDSA (для эллиптических кривых — около 64 байт против 72 байт для ECDSA). Это преимущество используется в блокчейн-системах для уменьшения объёма транзакций.

Преимущества и недостатки

Преимущества

Недостатки

Применение

Криптовалюты и блокчейн

Схема Шнорра активно используется в криптовалютах для реализации мультиподписей и повышения конфиденциальности:

Аутентификация

Протокол Шнорра применяется в системах аутентификации, где требуется доказательство знания пароля или секретного ключа без его передачи (например, в протоколах SSH и TLS).

Криптографические протоколы

Схема используется в протоколах:

Критика

Основная критика схемы Шнорра связана с её патентной защитой, которая препятствовала широкому внедрению в течение почти 20 лет. Кроме того, некоторые исследователи отмечают, что схема уязвима к атакам по сторонним каналам (например, по времени выполнения операций), если не реализована с защитой от таких атак. Однако современные реализации (например, в Bitcoin) используют константное время выполнения для предотвращения подобных уязвимостей.

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

Источники

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

На главную BFOmetr →