Опубликован: 19.01.2010 | Уровень: специалист | Доступ: платный
Лекция 3:

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

Схема цифровой подписи Эль-Гамаля

Криптосистема Эль-Гамаля была обсуждена в "B. Стандарты и организации по стандартизации" . Схема цифровой подписи Эль-Гамаля использует те же самые ключи, но алгоритм различен. рис. 3.9 дает общую идею схемы цифровой подписи Эль-Гамаля.

Общая идея схемы цифровой подписи Эль-Гамаля

увеличить изображение
Рис. 3.9. Общая идея схемы цифровой подписи Эль-Гамаля

В процессе подписания две функции создают две подписи. На стороне подтверждения обрабатывают выходы двух функций и сравнивают между собой для проверки. Обратите внимание, что одна и та же функция применяется и для подписания, и для проверки, но использует различные входы. Рисунок показывает входы каждой функции. Сообщение - часть входа, для обеспечения функционирования при подписании; оно же - часть входа к функции 1 при подтверждении. Обратите внимание, что вычисления в функциях 1 и 3 проводятся по модулю p, а функции 2 - по модулю p - 1.

Генерация ключей

Процедура генерации ключей здесь точно такая же, как та, которая используется в криптографической системе. Выберем достаточно большое простое число p, чтобы в поле Z p* проблема дискретного логарифма была достаточно трудной. Пусть e1 - простой элемент в Z p*. Алиса выбирает свой секретный ключ d, чтобы он был меньше, чем p - 1. Она вычисляет e2 = e1d. Открытый ключ Алисы - кортеж (e1, e2, p) ; секретный ключ Алисы - d.

В схеме цифровой подписи Эль-Гамаля (e1, e2, p) - открытый ключ Алисы; d -секретный ключ Алисы.

Подтверждение и проверка

Рисунок 3.10 показывает схему цифровой подписи Эль-Гамаля.

Схема цифровой подписи Эль-Гамаля

увеличить изображение
Рис. 3.10. Схема цифровой подписи Эль-Гамаля

Подписывающаяся Алиса может подписать дайджест сообщения, направленный к любому объекту, включая Боба.

  1. Алиса выбирает секретное случайное число r. Обратите внимание, что хотя открытые и секретные ключи могут использоваться неоднократно, Алиса каждый раз нуждается в новом r, когда она подписывает новое сообщение.
  2. Алиса вычисляет первую подпись S1 = er mod p.
  3. Алиса вычисляет вторую подпись S2 = (М - d x S1) x r-1 mod (p - 1),где r - мультипликативная инверсия r по модулю p - 1.
  4. Алиса передает М, S1 и S2 Бобу.

Проверка. Объект, например Боб, получает М, S1 и S2 и может проверить их следующим образом.

  1. Боб проверяет, что 0 < S1 < p.
  2. Боб проверяет, что 0 < S2 < p - 1.
  3. Боб вычисляет V1 = e1M mod p.
  4. Боб вычисляет V2 = e2S1 x e2S2 mod p.
  5. Если V1 является конгруэнтным V2, сообщение принято; иначе оно будет отклонено. Мы можем доказать правильность этого критерия проверки, используя e2 = e1d и S1 = e1r:

    V_{1} \equiv  V_{2} (mod \ p) \to  e_{1}^{M}  \equiv  e_{2}^{M} \times S_{1}^{M} mod \ p  \equiv  (e_{1}^{d1})^{S1} \times  (e_{1}^{r})^{S2} (mod \ p)  \equiv  e_{1}^{dS1+rS2} mod \ p

    Мы имеем e_{1}^{M } \equiv  e_{1}^{dS1 + rS2} mod \ p

    Поскольку e1 - первообразный корень, может быть доказано, что вышеупомянутое сравнение справедливо тогда и только тогда, когда M \equiv  [dS_{1} + rS_{2}] mod \  (p-1)  S_{2} \equiv  [(M - d  \times  S_{1}) \times r^{-1}] mod \ (p-1) , и результат сравнения есть тот же самый S2, с которого мы начали процесс подписания.

Пример 3.2

Ниже приводится тривиальный пример. Алиса выбрала p = 3119, e1 = 2, d = 127 и вычислила e2 = 2127 mod 3119 = 1702. Она выбрала r равным 307. Она объявила e1, e2 и p ; она сохранила в тайне d. Далее показано, как Алиса может подписать сообщение.

M = 320
S1 = e1r = 2307 = mod3119
S2 = (M - d x S1) x r-1 = (320 - 127 x 2083) x 307-1 = 2105 mod 3118

Алиса передает М, S1 и S2 Бобу. Боб использует открытый ключ, чтобы вычислить, что сообщение подписано Алисой, потому что никто, кроме Алисы, не имеет секретного ключа d.

V1 = e1M = 2320 = 3006 mod 3119
V2 = dS1 x S2S1 =  17022083 x 20832105 = 3006 mod 3119

Поскольку V1 и V2 являются конгруэнтными, Боб принимает сообщение, и он предполагает, что сообщение было подписано Алисой, потому что никто, кроме нее, не имеет секретного ключа Алисы d.

Пример 3.3

Теперь вообразите, что Алиса хочет передать другое сообщение, М = 3000, Тэду. Она выбирает новое r = 107. Алиса передает М., S1 и S2 Тэду. Тэд использует общедоступные ключи, чтобы вычислить V1 и V2.

M = 3000
S1 = e1r = 2107 = 2732mod3119
S2 = (M - d x S1) x r-1 = (3000 - 127 x 2083) x 107-1 = 2526 mod 3118
V1 = e1M = 23000 = 704 mod 3119
V2 = dS1 x S1S2 =  17022732 x 20832526 = 704 mod 3119

Поскольку V1 и V2 являются конгруэнтными, Тэд принимает сообщение; он предполагает, что сообщение подписано Алисой, потому что никто, кроме нее, не имеет секретного ключа Алисы d. Обратите внимание, что сообщение может получить любой человек. Цель состоит не в том, чтобы скрыть сообщение, но в том, чтобы доказать, что его передает Алиса.

Подделка цифровой подписи в схеме Эль-Гамаля

Схема цифровой подписи Эль-Гамаля уязвима к экзистенциальной подделке, но селективную подделку на этой схеме сделать очень трудно.

Подделка только ключа. В этом типе подделки Ева имеет доступ только к открытому ключу. Возможны два варианта:

  1. Ева имеет заранее заданное сообщение М. Она должна подделать подпись Алисы на этом сообщении. Ева должна найти две правильных подписи S1 и S2 для этого сообщения. Это - селективная подделка.
    • Ева может выбрать S2 и вычислить S1. Она должна иметь d_{1}^{S1} x S_{1}^{S2} \equiv  e_{1}^{M} (mod \ p). Другими словами, S_{1}^{S2} \equiv  e_{1}^{M} d_{1}^{-S1} (mod\  p) или S_{2} \equiv  log_{S1}(e_{1}^{M} d_{1}^{-S1}) (mod \ p). Это означает вычисление дискретного логарифма, что является очень трудным.
    • Ева может выбрать S2 и вычислить S1. Это намного труднее, чем выполнить часть a
  2. Ева может методом случайного подбора найти три значения, М, S1 и S2, такие, что подпись первого используется для второго. Если Ева может найти два новых параметра x и y, такие, что М = xS2 mod (p - 1) и S1 = -y S2 mod (p - 1), то она может подделать сообщение, но серьезной выгоды не получит, поскольку это - экзистенциальная подделка.

Подделка при известном сообщении. Если Ева перехватила сообщение М и его две подписи S1 и S2, она может найти другое сообщение М', с той же самой парой подписей S1 и S2. Однако обратите внимание, что это - экзистенциальная подделка, которая не помогает Еве.

Евгений Виноградов
Евгений Виноградов

Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа?

Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Константин Леденев
Константин Леденев
Россия
Олег Равков
Олег Равков
Россия