Схема Шнорра () — одна из наиболее эффективных и теоретически обоснованных схем аутентификации. Безопасность схемы основывается на трудности вычисления дискретных логарифмов. Предложенная схема является модификацией схем Эль-Гамаля (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 году, значительно повысила безопасность данной схемы. В их методе используется число , которое так же, как и , сложно разложить, простой делитель числа и элемент порядка в , которые впоследствии применяются в подписи. В отличие от схемы Шнорра подпись в их методе вычисляется уравнением .

Преимущества В то время, как в вычислительном плане модификация Брикелл и МакКерли менее эффективна, чем схема Шнорра, данный метод имеет преимущество, так как основывается на трудности двух сложных задач: вычисление логарифма в циклической подгруппе порядка в ; разложение на множители.

См. также Криптосистема с открытым ключом DSA Схема Эль-Гамаля

Примечания

Литература

Ссылки RFC 8235

Категория:Криптография Категория:Криптография с открытым ключом Категория:Электронная подпись