Uploaded by xnihonsamuraix

Алгоритмы ЭЦП

advertisement
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«МИРЭА – РОССИЙСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ»
РТУ МИРЭА
Институт
ИКБ
Информационные системы и технологии
Специальность (направление):
Кафедра:
Дисциплина:
КБ-3
«Методы и алгоритмы аутентификации компонент программных
систем»
ОТЧЕТ
По практической работе №2
«ОГРАНИЧЕНИЕ ДОСТУПА НА ВХОД В СИСТЕМУ»
Студент:
подпись
Группа:
А. Р. Летунов, Д. В. Габриелян
инициалы и фамилия
12.02.2024
Дата
БСБО-02-21
Шифр:
Руководитель работы:
А. Ю. Ермакова
подпись
дата
Москва 2024 г.
инициалы и фамилия
Алгоритм RSA:
Формула RSA:
d*e = 1 mod ф(n)
Пользователь A формирует закрытый и открытый ключ по алгоритму RSA:
p и q – простые числа
p = 61
q = 293
n = p * q = 61 * 293 = 17873
Функция эйлера:
ф(n) = (p - 1)(q - 1) = 60 * 292 = 17520
Открытый ключ:
e = 257
Расширенный алгоритм Евклида:
17520 = 68 * 257 + 44
257 = 5 * 44 + 37
44 = 1 * 37 + 7
37 = 5 * 7 + 2
7=3*2+1
2=2*1+0
44 = 17520 – 68 * 257
37 = 257 – 5 * 44
7 = 44 – 1 * 37
2 = 37 – 5 * 7
1=7–3*2
1=7–3*2
1 = 7 – 3(37 – 5 * 7) = 7 – 3 * 37 + 15 * 7
1 = 44 – 1 * 37 – 3 * 37 + 15 * 44 – 15 * 37 = 16 * 44 – 19 * 37
1 = 16 * 44 – 19(257 – 5 * 44) = 16 * 44 – 19 * 257 + 95 * 44
1 = 111 * 44 – 19 * 257
1 = 111 * 17520 – 7548 * 257 – 19 * 257
1 = 111 * 17520 – 7567 * 257
Закрытый ключ:
d = 17520 - 7567 = 9953
Открытый ключ: (257, 17873)
Закрытый ключ: (9953, 17873)
Пользователь Б формирует закрытый и открытый ключи по алгоритму RSA:
p и q – простые числа
p = 37
q = 337
r = p * q = 37 * 337 = 12469
Функция эйлера:
ф(n) = (p - 1)(q - 1) = 36 * 336 = 12096
y = 23
Расширенный алгоритм Евклида:
12096 = 525 * 23 + 21
23 = 1 * 21 + 2
21 = 10 * 2 + 1
2=2*1+0
1 = 21 – 10 * 2
2 = 23 – 1 * 21
21 = 12096 – 525 * 23
1 = 21 – 10 * 2
1 = 21 – 10(23 - 1021) = 21 – 23 * 10 + 10 * 21
1 = 12096 – 525 * 23 – 23 * 10 + 10(12096 – 525 * 23)
1 = 12096 – 525 * 23 – 10 * 23 + 10 * 12096 – 5250 * 23
1 = 11 * 12096 – 5785 * 23 = 1
Закрытый ключ:
k = 12096 - 5785 = 6311
k = 6311
Открытый ключ: (23, 12469)
Закрытый ключ: (6311, 12469)
Электронная подпись на основе алгоритма RSA:
1.
Сначала пользователь А подписывает сообщение m = 55 закрытым
ключом d = 9953.
c = 𝑚𝑑 mod n = 55^9953 mod 17873= 11982
2.
Затем пользователь А вычисляет числа g = c^y mod r, то есть то,
что получилось на шаге 1 открытым ключом Б. На этом этапе сообщения
шифруется, чтобы никто посторонний не мог его прочитать.
g = 1198223 mod 12469 = 7517
3.
Последовательность чисел g передается пользователю Б
4.
Пользователь
Б
получает
g
и
вначале
вычисляет
последовательность числа c = 𝑔𝑘 mod r используя свой закрытый ключ, при
этом сообщение расшифровывается.
c = 75176311 mod 12469 = 11982
5.
Затем Б определяет числа m = 𝑐 𝑒 mod n, используя открытый ключ
пользователя А. За счет выполнения этого этапа производится проверка
подписи пользователя А.
m = 11982257 mod 17873 = 55
Вывод: Стойкость данного алгоритма основывается на факторизации
больших простых чисел. Проверка подписи отправителя осуществляется
путем вычислений с помощью его открытого ключа. Если расшифрованное
сообщение осмысленное, то подпись верна.
Электронная подпись на основе алгоритма RSA и хэш-функции:
1.
Выработка ключей (выполняет отправитель А):
Открытый ключ: (257, 17873)
Закрытый ключ: (9953, 17873)
2.
А вычисляет хеш-образ h = h(T), где T - исходное сообщение и T
= 55, h = 57 и вырабатывает цифровую подпись s = ℎ𝑑 mod n, где d - закрытый
ключ отправителя А, n - часть открытого ключа отправителя А.
s = 579953 mod 17873 = 9904
Отправка получателю B исходного сообщения T и цифровой подписи s.
3.
Получатель B вычисляет хеш-образ по полученному сообщению
h’ = h(T’), где T’ - полученное сообщение.
T’ = 55
h’ = 57
Вычисляется хеш-образ из цифровой подписи h = s^e mod n, где e и n открытый ключ отправителя А.
h = 9904257 mod 17873 = 57
Так как h’ = h = 57, то получатель B делает вывод, что полученное
сообщение T’ = T и оно действительно отправлено А.
Вывод: Проверка осуществляется путем сравнения хеш-образа сообщения
и хещ-образа из цифровой подписи. Если они совпадают, то сообщение не
подвергалось искажению, а отправитель является тем, за кого себя выдает.
Стойкость гарантируется невозможностью фабрикации и модификации
сообщений. А также, их устойчивостью к коллизиям и нахождению второго
прообраза.
На основе цифровой подписи DSS:
Для группы пользователей выбираются значения трех общих (несекретных)
параметров p, q, a.
p = 337
q = 7, где p = bq + 1
a = 8, где 𝑎𝑞 mod p = 1
Абонент А выбирает случайное число x = 5, секретный ключ и вычисляет
открытый ключ y = 𝑎 𝑥 mod p = 79.
Абонент В выбирает случайное число x = 6, секретный ключ и вычисляет
открытый ключ y = 𝑎 𝑥 mod p = 295.
Процесс подписи:
1.
А вычисляет значение хэш-функции для сообщения m. h = H(m) =
2.
А выбирает случайное число k = 4, 0 < k < q.
3.
А вычисляет r = (𝑎𝑘 mod p) mod q = (84 mod 337) mod 7 = 3
4.
А определяет s = [𝑘 −1 (H(m) + x * r)] mod q
35.
Расширенный алгоритм Евклида:
7=1*4+3
4=1*3+1
1=1*0+1
1 = 1 * (-1) + 2
3=7–1*4
1=4–1*3
1=4–1*3
1 = 4 – 1(7 – 1 * 4)
1=4–7+1*4
1=2*4–1*7
𝑘 −1 = 2
s = (2 * (35 + 5 * 3)) mod 7 = 2
Абонент А передает В сообщение m и подпись (r, s)
Процесс проверки подписи:
1.
В вычисляет значение хэш-функции h = H(m) для сообщения m,
h = 35.
2.
В проверяет выполнение неравенств 0 < r < q, 0 < s < q:
0 < 3 < 7, 0 < 2 < 7
3.
В вычисляет w = 𝑠 −1 mod q
Расширенный алгоритм Евклида:
7=3*2+1
1 = 3 * 1 + (-2)
0 = 3 * 1 + (-3)
2=2*1+0
𝑠 −1 = 7 - 3 = 4
w = 4 mod 7 = 4
4.
В вычисляет u1 = (H(m) * w) mod q = 35 * 4 mod 7 = 0
5.
В вычисляет u2 = r * w mod q = 3 * 4 mod 7 = 5
v = [(𝑎𝑢1 * 𝑦 𝑢2 ) mod p] mod q = (1 * 795 ) mod 337 mod 7 = 3
В проверяет равенство v = r. Если равенство выполняется, то подпись
считается верной.
3 = 3 => подпись абонента А верна
Вывод: Стойкость основывается на сложности вычисления дискретных
логарифмов, злоумышленник не может восстановить параметры k из r или
х из s, а следовательно, не может подделать подпись. Проверка
основывается на проверке открытым ключом, когда создана она может быть
только с помощью приватного ключа, который имеется у только у
владельца подписи.
Download