Главная страница

Курсовая ЭЦП. 1 Электронный документооборот и электронная цифровая подпись


Скачать 150.43 Kb.
Название1 Электронный документооборот и электронная цифровая подпись
АнкорКурсовая ЭЦП
Дата18.05.2022
Размер150.43 Kb.
Формат файлаdocx
Имя файлаКурсовая ЭЦП.docx
ТипДокументы
#537603
страница2 из 4
1   2   3   4

1.2.1. Алгоритм цифровой подписи RSA


Алгоритм RSA, разработанный в 1978 г. В США и получивший название по первым буквам фамилий его авторов (Rivest, Shamir и Adleman), стал первым криптографическим алгоритмом с открытым ключом, пригодным не только для шифрования, но и для создания электронной цифровой подписи. При использовании алгоритма RSA для шифрования, открытый и закрытый ключи генерируются следующим образом:

  1. Выбираются два различных случайных простых числа p и q заданного размера (например, 1024 бита каждое).

  2. Вычисляется их произведение n = p·q, которое называется модулем.

  3. Вычисляется значение функция Эйлера от числа n:

(n) = (p-1)(q-1).

  1. Выбирается целое число e (открытая экспонента), которое должно быть взаимно простым со значением функции (n) и удовлетворять условию:

1 < e ≤ (n).

  1. Вычисляется число d (секретная экспонента), которое должно удовлетворять следующие условия:

d < n, d·e ≡ 1 (mod ((n)).

  1. Пара чисел {e, n} публикуется в качестве открытого ключа RSA.

  2. Пара чисел {d, n} играет роль закрытого ключа RSA и должна держаться в секрете.

Шифрование сообщения m с использованием открытого ключа {e, n}, происходит по следующей формуле:

c = E(m) = me (mod n), где c – зашифрованное сообщение.

Дешифрование же зашифрованного сообщения c при использовании закрытого ключа {d, n} осуществляется по следующей формуле:

m = D(c) = cd (mod n).

Как уже было сказано выше, алгоритм RSA может использоваться не только для шифрования сообщений, но и для создания электронной цифровой подписи. И, как уже говорилось ранее, для создания электронной цифровой подписи, в отличии от ассиметричного шифрования, используется закрытый ключ {d, n}, а не открытый {e, n}.

Подписание электронного документа может происходить следующим образом:

  1. Создается электронная подпить s из открытого сообщения m с помощью секретного ключа {d, n} по формуле:

s = SA(m) = md (mod n), где A – создатель подписи.

  1. Получившаяся электронная подпись прикрепляется к исходному документу, и пара «электронный документ – подпись» {m, s} передается адресату.

Проверка подлинности подписи и неизменность подписанного электронного сообщения происходит следующим образом:

  1. После получения пары «электронный документ – подпись» {m, s}, вычисляется прообраз исходного сообщения m с использованием открытого ключа {e, n} по формуле:

m' = PA(s) = se (mod n), где m' – прообраз исходного сообщения m.

  1. Осуществляется сравнение m и m'. Если m = m', то подпись подлинна и подписанное сообщение не подвергалось изменению.

До недавнего времени алгоритм шифрования RSA считался достаточно надежным при условии, что длина ключа составляла величину порядка 1024 бит. Однако, после того, как в январе 2010 г. группе ученых из Швейцарии, Нидерландов, Японии, Франции, Германии и США удалость успешно вычислить данные криптографического ключа алгоритма RSA длиной 768 бит [44], а потом в сентябре того же года удалось взломать ключ этого же алгоритма длинной 1024 бит [42], надежность алгоритма RSA подверглась сомнению. Вместе с тем c 31 декабря 2013 г. браузеры Mozilla перестали поддерживать документы, подписанные электронными подписями, сформированными на основе алгоритма RSA, если длина их ключей меньше 2048 бит [49]. Но, несмотря на это, алгоритм RSA и по сей день является одним из наиболее часто используемых алгоритмов для создания электронной цифровой подписи (и шифрования) во всем мире.

1.2.2. Алгоритм цифровой подписи EGSA


Алгоритм цифровой подписи EGSA (ElGamal Signature Algorithm), основанный на криптографическом алгоритме Эль-Гамаля, был разработан в 1984 г. и стал более дешевой альтернативой алгоритму RSA, так как, в отличии от алгоритма RSA, не был запатентован. При использовании алгоритма EGSA для шифрования, открытый и закрытый ключи генерируются следующим образом [43]:

  1. Сначала берется случайное простое число p длинной в n битов.

  2. Выбирается случайный примитивный элемент g поля Zp.

  3. Выбирается такое случайное целое число x, чтобы выполнялось условие:

1 < x < p – 1.

  1. Вычисляется y = gx (mod p).

  2. Открытым ключом является тройка {p, g, y}, а секретным ключом является число x.

Процесс шифрования сообщения M с использованием алгоритма Эль-Гамаля осуществляется следующим образом:

  1. Выбирается сессионный ключ – такое случайное такое целое число k , для которого выполняется условие:

1 < k < p – 1.

  1. Затем вычисляются числа a и b следующим образом:

a = gk (mod p) и b = yk M (mod p).

Пара чисел {a, b} является зашифрованным текстом.

Зная секретный ключ x, расшифровка полученного текста {a, b} происходит по формуле:

M = b(ax) -1 (mod p).

При этом можно проверить, что (ax) -1 ≡ g-kx (mod p), поэтому

b(ax) -1 ≡ (yk M) g-kx ≡ (gkx M) g-kx ≡ M (mod p).

Для практических вычислений больше подходит следующая формула:

M = b(ax) -1 (mod p) = b·a(p-1-x) (mod p).

При работе данного алгоритма в режиме создания цифровой подписи предполагается наличие фиксированной хеш-функции h(·), значения которой лежат в интервале (1, p - 1) [43].

При подписании электронного документа выполняются следующие операции:

  1. Вычисляется хеш сообщения M по формуле:

m = h(M).

  1. Выбирается случайное число k которое должно быть взаимно простым с (p - 1) и удовлетворять условию:

1 < k < p – 1.

  1. Вычисляется r = gk (mod p).

  2. Вычисляется число s ≡ (m - xr)k-1 (mod p-1).

Подписью сообщения M является пара {r, s}.

Зная открытый ключ {p, g, y} , подпись {r, s} сообщения M проверяется следующим образом:

  1. Проверяется выполнимость условий:

0 < r < p и 0 < s < p - 1.

Если хотя бы одно из них не выполняется, то подпись считается неверной.

  1. Подпись считается верной, если выполняется сравнение:

yrrs ≡ gm (mod p).

Главным преимуществом схемы цифровой подписи Эль-Гамаля является возможность вырабатывать цифровые подписи для большого числа сообщений с использованием только одного секретного ключа. Чтобы злоумышленнику подделать подпись, ему нужно решить сложные математические задачи с нахождением логарифма в поле Zp.
1   2   3   4


написать администратору сайта