Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по методам и средствам ЗИ.doc
Скачиваний:
88
Добавлен:
23.09.2019
Размер:
831.49 Кб
Скачать

Электронная подпись rsa

Система электронной подписи RSA получается при "смене мест" ключей e и d, т.е. шифрование сообщения для получения подписи производится с помощью ключа KR = {d,n}. Цифровой подписью сообщения является число s: S = d mо(n), которое передается вместе с сообщением.  

Проверка подлинности подписанного сообщения [M,S]: M =Se mod (n)

Равенство чисел принятого сообщения и расшифрованной подписи доказывает, что сообщение M было подписано обладателем секретного ключа d, соответствующего ключу проверки подписи e, т.е. авторизует сообщение.

Протокол работы пары абонентов сети общей связи с алгоритмом RSA выглядит так.

1. Абоненты A (отправитель) и B (получатель) генерируют независимо друг от друга пары простых чисел: pa, qa  и  pb, qb

2. Вычисляют произведение больших простых чисел:Na = pa * qa и Nb = pb * qb

3. Вычисляют ключи: Ea и Da и Eb и Db

4. Числа Na, Nb и Ea, Eb помещаются в общедоступный справочник и получают статус открытых ключей; числа Da, Db сохраняются в качестве закрытых ключей;

5. Обмен зашифрованными сообщениями:

А посылает В C a = Ma Eb mоd(Nb), зашифрованное открытым ключом пользователя B.

В посылает А Cb = Mв Ea mоd(Na), зашифрованное открытым ключом пользователя A .

6. Расшифрование: пользователь А → Mв = CDa mоd(Na)

пользователь В → Ma = Ca Db mоd(Nb)

Формирование цифровой подписи:

1. Абоненты подписывают и шифруют сообщения:

А → Sa = Ma Da mоd(Na) C a = Ma Eb mоd(Nb);

В → Sb = Mb Db mоd(Nb) Cb = Mb Ea mоd(Na).

2. Передают А → В: Sa, C a В → А: Sb, Cb.

3. Расшифровывают А: Mb = Сb Da mоd(Na), В: Ma = Сa Db mоd(Nb)

4. Проверяют подлинность подписи

В: Ma = Sa Ea mоd(Na), А: Mb = Sb Eb mоd(Nb)

В случае равенства значений принятых и расшифрованных Ma и Mb сообщения считаются переданными без искажения, а пользователи А и В аутентифицированы.

Алгоритм ЭльГамаля

Алгоритм Эль-Гамаля может использоваться для формирования электронной подписи или для шифрования данных. Он базируется на трудности вычисления дискретного логарифма. Для генерации пары ключей сначала берется простое число p и два случайных числа g и x, каждое из которых меньше p. Затем вычисляется:

y = gx mod p

Открытым ключом являются y, g, и p. при этом числа g и p можно сделать общими для группы пользователей. Секретным ключом является x.

Схема шифрования

Модификация алгоритма позволяет шифровать сообщения. Для шифрования сообщения M, выбираем случайное секретное число k, взаимно простое с p – 1 (т.е. НОД этих чисел равен 1). После этого вычисляем:

a = gk mod p

b = yk M mod p

Пара чисел a и b является шифротекстом. Причем, длина шифротекста вдвое длинней открытого текста.

Для расшифрования a и b, вычисляем:

M = b/ax mod p

Учитывая тот факт, что:

ax ≡ gkx (mod p)

и

b/ax ≡ yk M/ax ≡ gxk M/gxk ≡ M (mod p) ,

то вышеприведенные формулы верны.

Схема подписи.

Для подписания сообщения M, вначале выберем случайное число k, такое, что k взаимно простое с p – 1. После чего вычисляем:

a = gk mod p

и, используя расширенный алгоритм Евклида, решаем уравнение относительно числа b :

M = (xa + kb) mod (p – 1)

Подписью является пара чисел: a и b. Случайное число k должно держаться в строгом секрете и являться уникальным для каждого подписываемого сообщения М.

Для проверки правильности подписи, проверяется следующее равенство:

ya ab mod p = gM mod p

В этой системе открытого шифрования та же степень защиты, что для алгоритма RSA с модулем N из 200 знаков, достигается уже при модуле P из 150 знаков. Это позволяет в 5-7 раз увеличить скорость обработки информации. Однако, в таком варианте открытого шифрования нет подтверждения подлинности сообщений.