ЛР-5 (Квадратичные вычеты. Криптосистема Рабина)
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет Кибербезопасности
Кафедра Защищенных систем связи
Дисциплина Криптографические протоколы
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №5
Квадратичные вычеты. Криптосистема Рабина
(тема отчета)
Направление/специальность подготовки
10.03.01 Информационная безопасность
(код и наименование направления/специальности)
Выполнил студент 3 курса:
Лянгузов Н.А., ИКБ-31
(Ф.И.О., № группы) (подпись)
Преподаватель:
д.т.н., проф. Яковлев В.А.
(Ф.И.О., № группы) (подпись)
Цель работы
Закрепить знания, полученные на лекциях по темам «Квадратичные вычеты» и “Криптосистема Рабина”.
Задание 1
Решите уравнение
р=23, и р=29. Вариант 22: a = 47 и 52
1)
x=
mod 23
x2 = 47 mod 23 = 1 mod 23
x=+-1
x=1 mod 23=1
x=(-1) mod 23 = 22
Ответ: 1, 22
2)
x=
mod 29
x2= 52 mod 29 = 23 mod 29
a=23
p=29
x=(t
+
)
mod
p
Берем 1, чтобы (t2 - a) - не было квадратным вычетом
t=5
x=(5+
)15
15=8+4+2+1
2: (5+ )2=25+10 +2=27+ 10
4: (27+10 )2=729+ 540 +200=929 +540 = (1 + 18 ) mod 29
8: (1+18 )2 = 1 +36 +648 = 649 +36 = (11 + 7 ) mod 29
15: (5+ )2 = (5+ )( 27 +10 )( 1 + 18 )( 11 + 7 ) = 72345 +52026 =(9+0 ) mod 29 = 9 mod 29
x = +-9
x=9 mod 29=9
x=(-9) mod 29 = 20
Ответ: 9, 20
Найдите все решения уравнение
n=11*19, для вариантов 20 – 25, a=218
Вариант №22
=
Получим 4 системы уравнений:
1)
|
2)
|
3)
|
4)
|
Решение 1-й системы уравнений:
Т.к. модули m1, m2 попарно взаимно простые, система уравнений имеет единственное решение: x=x0 mod M, где М = m1∙ m2.
M = m1∙ m2 = 11 ∙ 19 = 209
x0 = M1y1a1 + M2y2a2
Miyi = 1mod mi
;
M1y1 = 1 mod m1 M2y2 = 1 mod m2
19y1 = 1 mod 11 11y2 = 1 mod 19 y1 =7 y2 = 7
x0 = 19∙7∙3 + 11∙7∙16 = 1631
x = x0 mod M
x = 1631 mod 209 = 168
Решение 2-й системы уравнений:
Т.к. модули m1, m2 попарно взаимно простые, система уравнений имеет единственное решение: x=x0 mod M, где М = m1∙ m2.
M = m1∙ m2 = 11 ∙ 19 = 209
x0 = M1y1a1 + M2y2a2
Miyi = 1mod mi
;
M1y1 = 1 mod m1 M2y2 = 1 mod m2
19y1 = 1 mod 11 11y2 = 1 mod 19 y1 =7 y2 = 7
x0 = 19∙7∙3 + 11∙7∙(-16) = -833
x = x0 mod M
x = -833 mod 209 = 3
Решение 3-й системы уравнений:
Т.к. модули m1, m2 попарно взаимно простые, система уравнений имеет единственное решение: x=x0 mod M, где М = m1∙ m2.
M = m1∙ m2 = 11 ∙ 19 = 209
x0 = M1y1a1 + M2y2a2
Miyi = 1mod mi
;
M1y1 = 1 mod m1 M2y2 = 1 mod m2
19y1 = 1 mod 11 11y2 = 1 mod 19 y1 =7 y2 = 7
x0 = 19∙7∙(-3) + 11∙7∙(-16) = -1631
x = x0 mod M
x = -1631 mod 209 = 41
Решение 4-й системы уравнений:
Т.к. модули m1, m2 попарно взаимно простые, система уравнений имеет единственное решение: x=x0 mod M, где М = m1∙ m2.
M = m1∙ m2 = 11 ∙ 19 = 209
x0 = M1y1a1 + M2y2a2
Miyi = 1mod mi
;
M1y1 = 1 mod m1 M2y2 = 1 mod m2
19y1 = 1 mod 11 11y2 = 1 mod 19 y1 =7 y2 = 7
x0 = 19∙7∙(-3) + 11∙7∙16 = 833
x = x0 mod M
x = 1631 mod 209 = 206
Проверка
x1: 1682mod 209 = 28224mod 209 =9
x2: 32mod 209 = 9mod 209 = 9
x3: 412mod 209 = 1681mod 209 = 9
x4: 2062mod 209 = 42436mod 209 = 9
Ответ: х1 = 168; х2 = 3; х3 = 41; х4 = 206;
Задание 2
Для шифрования найти открытый
ключ - n, определить количество двоичных
разрядов в нем-
.
Разбить сообщение на блоки длиной
двоичных
разрядов. Зашифровать каждый блок,
представив его десятичным числом.
Расшифровать второй блок криптограммы.
№ |
p |
q |
22 |
37 |
7 |
Зашифровать сообщение: 122222322
Найдем открытый ключ n: n = p * q = 259
Количество двоичных разрядов:
256<259<512
28<259<29
|n| = 9
Разобьем сообщение на блоки длиной 9 – 1 = 8 двоичных разрядов:
12222232210 = 00000111 01001000 11110110 11110010
Зашифруем каждый блок сообщения:
M1 = 000001112 = 7
C1 = 72 mod 259 = 49
M2 = 010010002 = 72
C2 = 722 mod 259 = 4
M3 = 111101102 = 246
C3 = 2462 mod 259 = 169
M4 = 111100102 = 242
C4 = 2422 mod 259 = 30
Полученная криптограмма: {49, 4, 169, 30}
Расшифруем второй блок криптограммы C2 = 4
Найдем коэффициенты Безу:
37 = 7*5+2; 2 = 37 – 7*5
7 = 2*3+1; 1 = 7 – 2*3
1 = 7 – 2*3 = 7 – 3(37 – 7*5) = 7 – 3*37 + 3*5*7 = 16*7 – 3*37
yp= 4; yq=16
Так как 37 = 4k + 1, то используем алгоритм Чиполлы:
Mq
=
b = 3
b2 – c =9 – 4 = 5
(
)
= -1; не вычет
w2 = 5
=
(3+w)19
(3+w)2 = 14+6w
(3+w)4 = 6+20w
(3+w)8 = 1+18w
(3+w)16 = 30+36w
(3+w)19 = (30+36w)(14+6w)(3+w) = 2
Mq = 2
Mp
=
= 42 mod
7 = 16 mod 7 = 2
Находим 4 числа:
n = 259
7-1 mod 37 = 16
37-1 mod 7 = 4
x1 = 2*7*16+2*37*4 = 520 = 2 mod 259
x2 = 2*7*16+5*37*4 = 964 = 187 mod 259
x3 = 35*7*16+2*37*4 = 4216 = 72 mod 259
x4 = 35*7*16+5*37*4 = 4660 = 257 mod 259
Получили исходное сообщение второго блока криптограммы x3 = 72
Расшифровать криптограмму 77 при известном ключе p=23, q=7, исходное сообщение – 56
Mp
=
= 776 mod
23 = 13
Mp = 13
77 mod 7 = 0
x2 = 0 mod 7
Mq = 0
x = 7k
Mp = 13:
7k = 13 mod 23
k = 13 * 7-1 mod 23 = 15 mod 23
x = 7*15 = 105
Mp = 10:
7k = 10 mod 23
k = 10 * 10 mod 23 = 8 mod 23
x = 7*8 = 56
Среди корней получили исходное сообщение 56.
Вывод
В ходе выполнения лабораторной работы были закреплены знания, полученные на лекциях по темам «Квадратичные вычеты» и “Криптосистема Рабина”.
Санкт-Петербург
2026
