Схема Шнорра
Схема Шнорра (англ. schnorr scheme) — одна из наиболее эффективных и теоретически обоснованных схем аутентификации. Безопасность схемы основывается на трудности вычислениядискретных логарифмов. ПредложеннаяКлаусом Шнорром[англ.] схема является модификацией схемЭль-Гамаля (1985) иФиата-Шамира (1986), но имеет меньший размер подписи. Схема Шнорра лежит в основе стандарта Республики Беларусь СТБ 1176.2-99 и южнокорейских стандартов KCDSA и EC-KCDSA. Она была покрыта патентомСША 4999082, который истек в феврале 2008 года.
Введение
[править |править код]Схемы аутентификации и электронной подписи — одни из наиболее важных и распространенных типов криптографических протоколов, которые обеспечивают целостность информации.
Понять назначение протоколов аутентификации можно легко на следующем примере. Предположим, что у нас есть информационная система, в которой необходимо разграничить доступ к различным данным. Также в данной системе присутствует администратор, который хранит все идентификаторы пользователей с сопоставленным набором прав, с помощью которого происходит разграничение доступа к ресурсам. Одному пользователю может быть одновременно разрешено читать один файл, изменять второй и в то же время закрыт доступ к третьему. В данном примере под обеспечением целостности информации понимается предотвращение доступа к системе лиц, не являющихся её пользователями, а также предотвращение доступа пользователей к тем ресурсам, на которые у них нет полномочий. Наиболее распространенный метод разграничения доступа,парольная защита, имеет массу недостатков, поэтому перейдем к криптографической постановке задачи.
В протоколе имеются два участника — Алиса, которая хочет подтвердить свой идентификатор, и Боб, который должен проверить это подтверждение. У Алисы имеется два ключа —, открытый (общедоступный), и — закрытый (приватный) ключ, известный только Алисе. Фактически, Боб должен проверить, что Алиса знает свой закрытый ключ, используя только.
Схема Шнорра — одна из наиболее эффективных среди практических протоколов аутентификации, реализующая данную задачу. Она минимизирует зависимость вычислений, необходимых для создания подписи, от сообщения. В этой схеме основные вычисления могут быть сделаны во время простоя процессора, что позволяет увеличить скорость подписания. Как иDSA, схема Шнорра использует подгруппу порядка в. Также данный метод используетхеш-функцию.
Генерация ключей
[править |править код]Генерация ключей для схемы подписи Шнорра происходит так же, как и генерация ключей дляDSA, кроме того, что не существует никаких ограничений по размерам. Заметим также, что модуль может быть вычислен автономно.
- Выбирается простое число, которое по длине обычно равняется битам.
- Выбирается другое простое число таким, чтобы оно было делителем числа. Или другими словами должно выполняться. Размер для числа принято выбирать равным битам.
- Выбирается число, отличное от, такое, что.
- Пегги выбирает случайное целое число меньшее.
- Пегги вычисляет.
- Общедоступный ключ Пегги —, секретный ключ Пегги —.
Протокол проверки подлинности
[править |править код]Алгоритм работы протокола
[править |править код]- Предварительная обработка. Алиса выбирает случайное число, меньшее, и вычисляет. Эти вычисления являются предварительными и могут быть выполнены задолго до появления Боба.
- Инициирование. Алиса посылает Бобу.
- Боб выбирает случайное число из диапазона от до и отправляет его Алисе.
- Алиса вычисляет и посылает Бобу.
- Подтверждение. Боб проверяет что
Безопасность алгоритма зависит от параметраt. Сложность вскрытия алгоритма примерно равна. Шнорр советует использоватьt около72 битов, для и. Для решения задачи дискретного логарифма, в этом случае, требуется по крайней мере шагов известных алгоритмов.
Пример
[править |править код]Генерация ключей:
- Выбирается простое и простое ()
- Вычисляется из условия, в данном случае
- Алиса выбирает секретный ключ и вычисляет открытый ключ
- Алиса отправляет открытый ключ соответственно равный, закрытый оставляет у себя —
Проверка подлинности:
- Алиса выбирает случайное число и отсылает Бобу.
- Боб отсылает Алисе число
- Алиса считает и отправляет Бобу.
- Боб вычисляет и идентифицирует Алису, так как.
Атаки на Схему
[править |править код]Пассивный противник
[править |править код]Если в схеме Шнорра предположить, что Алиса является противником, то на шаге 1 она может выбрать случайным, но эффективным способом. Пусть — это переданное Алисой число. Предположим, что можно найти два случайных числа и такие, что и для каждого из них Алиса может найти соответствующие и, для которых подтверждение даст положительный результат.Получаем:
- .
Отсюда или же. Так как, то существует и, следовательно,, то есть дискретный логарифм. Таким образом, либо такие, что Алиса может ответить надлежащим образом на оба из них (при одном и том же) на шаге 3 протокола, встречаются редко, что означает, что атака Алисы успешна лишь с пренебрежимо малой вероятностью. Либо такие значения попадаются часто, и тогда тот алгоритм, который применяет Алиса, можно использовать для вычисления дискретных логарифмов.
Иными словами, доказано, что в предположении трудности задачи дискретного логарифмирования схема аутентификации Шнорра является стойкой против пассивного противника, то есть корректной.
Активный противник
[править |править код]Активный противник может провести некоторое количество сеансов выполнения протокола в качестве проверяющего с честным доказывающим (или подслушать такие выполнения) и после этого попытаться атаковать схему аутентификации. Для стойкости против активного противника достаточно, чтобы протокол аутентификации былдоказательством с нулевым разглашением. Однако свойство нулевого разглашения для схемы Шнорра до сих пор никому доказать не удалось.
Протокол цифровой подписи
[править |править код]Алгоритм Шнорра также можно использовать и в качестве протокола цифровой подписи сообщения. Пара ключей используется та же самая, но добавляется однонаправленная хеш-функция.
Генерация подписи
[править |править код]- Предварительная обработка. Пегги выбирает случайное число, меньшее, и вычисляет. Это стадия предварительных вычислений. Стоит отметить, что для подписи разных сообщений могут использоваться одинаковые открытый и закрытый ключи, в то время как число выбирается заново для каждого сообщения.
- Пегги объединяет сообщение и и хеширует результат для получения первой подписи:
- Пегги вычисляет вторую подпись. Необходимо отметить, что вторая подпись вычисляется по модулю.
- .
- Пегги отправляет Виктору сообщение и подписи,.
Проверка подписи
[править |править код]- Виктор вычисляет (либо, если вычислять как).
- Виктор проверяет, что. Если это так, то он считает подпись верной.
Эффективность
[править |править код]Основные вычисления для генерации подписи производятся на этапе предварительной обработки и на этапе вычисления, где числа и имеют порядок битов, а параметр — бита. Последнее умножение ничтожно мало по сравнению с модульным умножением в схемеRSA.
Проверка подписи состоит в основном из расчета, который может быть сделан в среднем за вычислений по модулю, где есть длина в битах.
Более короткая подпись позволяет сократить количество операций для генерации подписи и верификации: в схеме Шнорра, а в схеме Эль-Гамаля.
Пример
[править |править код]Генерация ключей:
- и. Причем.
- Выбирается, который является элементом в поле. Тогда и
- Пегги выбирает ключ, тогда
- Секретный ключ Пегги —, открытый ключ —.
Подпись сообщения:
- Пегги нужно подписать сообщение.
- Пегги выбирает и вычисляет.
- Предположим, что сообщение — , и последовательное соединение означает . Также предположим, что хеширование этого значения дает дайджест . Это означает .
- Пегги вычисляет.
- Пегги отправляет Виктору, и.
Патенты
[править |править код]Схема Шнорра имеет патенты в ряде стран. Например, в США № 4,995,082 от 19 февраля 1991 года (истёк 19 февраля 2008 года). В 1993 году Public Key Partners (PKP) из Саннивейла (Sunnyvale) приобрела мировые права на данный патент. Кроме США, данная схема запатентована также и в нескольких других странах.
Модификации схемы
[править |править код]Модификация схемы, которая была выполнена Эрни Брикеллом (Brickell) и Кевином МакКерли (McCurley) в 1992 году, значительно повысила безопасность данной схемы.В их методе используется число, которое так же, как и, сложно разложить, простой делитель числа и элемент порядка в, которые впоследствии применяются в подписи. В отличие от схемы Шнорра подпись в их методе вычисляется уравнением
- .
Преимущества
[править |править код]В то время, как в вычислительном плане модификация Брикелл и МакКерли менее эффективна, чем схема Шнорра, данный метод имеет преимущество, так как основывается на трудности двух сложных задач:
- вычисление логарифма в циклической подгруппе порядка в;
- разложение на множители.
См. также
[править |править код]Примечания
[править |править код]Литература
[править |править код]- Schnorr C.P. Efficient Signature Generation by Smart Cards. — J. Cryptology, 1991. — С. 161—174.
- Schnorr C.P. Efficient Identification and Signatures for Smart Cards.Advances in Cryptology - CRYPTO’89. Lecture Notes in Computer Science 435. — 1990. — С. 239 — 252.
- A. Menezes, P.van Oorschot, S. Vanstone. Handbook of Applied Cryptography. — CRC Press, 1996. — 816 с. —ISBN 0-8493-8523-7.
- Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. —М.: Триумф, 2002. — 816 с. —3000 экз. —ISBN 5-89392-055-4.
- Варновский Н. П.Криптографические протоколы //Введение в криптографию / Под редакцией В. В. Ященко. — Питер, 2001. — 288 с. —ISBN 5-318-00443-1.Архивная копия от 25 февраля 2008 наWayback Machine
Ссылки
[править |править код]![]() | Для улучшения этой статьижелательно:
Пожалуйста, после исправления проблемы исключите её из списка параметров. После устранения всех недостатков этот шаблон может быть удалён любым участником. |