ЛР-3 (Математический базис дисциплины Криптопротоколы)
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет Кибербезопасности
Кафедра Защищенных систем связи
Дисциплина Криптографические протоколы
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №3
Математический базис дисциплины Криптопротоколы
(тема отчета)
Направление/специальность подготовки
10.03.01 Информационная безопасность
(код и наименование направления/специальности)
Выполнил студент 3 курса:
Лянгузов Н.А., ИКБ-31
(Ф.И.О., № группы) (подпись)
Преподаватель:
д.т.н., проф. Яковлев В.А.
(Ф.И.О., № группы) (подпись)
Цель работы
Закрепить знания, полученные на лекциях дисциплин «Криптографические методы защиты информации», «Криптонрафические протоколы» и приобрести навыки вычислений по блоку занятий «Математический базис криптосистем с открытым ключем».
Порядок
Установить пакета программ “Maxima”
1.Перейти к пакету “Maxima”(M), выбрав в нем функцию integerp.
Задавшись не менее, чем тремя произвольными пятиразрядными числами n и d проверить, являются ли числа d делителями n, используя следующие команды:
integerp(n/d)
2. Используя функцию divisors(n) в пакете (М) найти делители не менее чем трех пятиразрядных чисел при помощи следующей команды:
divisors(n)
Убедиться в правильности расчетов “вручную”.
3.Используя функцию gcd(a,b) пакета (М) найти gcd одной пары четырех разрядных чисел и не менее чем четырех пар пятизначных чисел, одна из которых соответствует взаимно простым числам, при помощи следующей команды:
gcd(a,b)
4. Для найденных в п.3 пяти gcd(a,b), найти их канонические представления при помощи расширенного алгоритма Евклида при помощи следующей команды:
gcdex(a,b)
Проверим правильность канонических представлений для всех случаев. Если функция отображает верный результат, то должно соблюдаться равенство (z1*a+z2*b)mod(b)= c, где z1, z2 - коэффициент перед большим числом a и коэффициент перед меньшим числом b соответственно, c равно НОД(a, b).
z1 |
z2 |
(z1*a+z2*b)mod(b) |
c |
Равенство |
1 |
0 |
(1*44444 - 0*88888) mod 88888=44444 |
44444 |
соблюдается |
31306 |
-23213 |
(31306*64783 – 23213*87369) mod 87369=1 |
1 |
соблюдается |
3683 |
-3858 |
(3683*82010-3858*78290) mod 78290=10 |
10 |
соблюдается |
-25613 |
27117 |
(-25613*92800+27117*87653) mod 87653=1 |
1 |
соблюдается |
-331 |
256 |
(-331*6475+256*8372) mod 8372=7 |
7 |
соблюдается |
5.Для одного четырехразрядного числа и не менее чем для четырех произвольно выбранных пятизначных чисел a сделать их приведение по модулям произвольных меньших чисел m при помощи команды:
mod(a,m)
Убедиться в правильности расчетов для первого числа “вручную”.
2222 mod 2000 = (2000*1+222) mod 2000 = 222 mod 2000 = 222
6.Найти мультипликативно обратные элементы к одному двухразрядному числу и не менее чем к четырем 9-ти значным числам a по простым двузначным модулям m при помощи следующей команды:
power_mod(a,-1,m)
7.Рассчитать функцию Эйлера для одного двухразрядного числа не менее чем четырех четырехзначных чисел m, используя команду:
totient(m)
8.Для двух пар произвольных четырехзначных, но взаимно простых чисел a и m, проверить справедливость теоремы Эйлера при помощи следующей команды:
mod(a^ totient(m),m)
9.Произвести возведение 5-значного произвольного числаaв степень произвольного 15-значного числа bпо произвольному 4-х значному модулю m, используя команду:
power_mod(a,b,m)
10. Решить систему уравнений на основе использования китайской теоремы об остатках.
,
№ Варианта |
ai |
mi |
|
22 |
8,6,10 |
7,13,17 |
|
Найдем x0 |
по формуле x0 = (M1y1a1 + M2y2a2 + M3y3a3) mod M |
||
M = 7*13*17 = 1547
M1 = M/m1 = 1547/7 = 221
M2 = M/m2 = 1547/13 = 119
M3 = M/m3 = 1547/17 = 91
M1y1 = 1 mod m1 → 221y1 = 1 mod 7 → 4y1 = 1 mod 7 → y1=4-1 mod 7 = 2
M2y2 = 1 mod m2 → 119y2 = 1 mod 13 → 2y2 = 1 mod 13 → y2=2-1 mod 13 = 7
M3y3 = 1 mod m3 → 91y3 = 1 mod 17 → 6y3 = 1 mod 17 → y3=6-1 mod 17 = 3
x0 =(221*2*8+119*7*6+91*3*10) mod 1547 = 435
Ответ: x = 435
Проверка:
435 mod 7 = 8
435 mod 13 = 6
435 mod 17 = 10
11.Разложите в цепную дробь числа: P/Q. Найдите подходящие дроби для k=1,2,3,4. Вариант 22: дробь 129/-424, ее можно представить как -129/424
-129 = 424*(-1)+295
424= 295*2+129
295 = 129*2+37
129 = 37*3+18
37=18*2+1
18=1*18
Найдите подходящие дроби для k=1,2,3,4
A[-1;1,2,3,2,18]
K |
0 |
1 |
2 |
3 |
4 |
5 |
qk |
-1 |
1 |
2 |
3 |
2 |
18 |
Pk |
-1 |
0 |
-1 |
-3 |
-7 |
-129 |
Qk |
1 |
1 |
3 |
10 |
23 |
424 |
A1=
,
A2 =
,
A3 =
,
A4 =
12. Проверьте, является ли число а=42 mod 31 вычетом по модулю 17, 19.
a = 42 mod 31 = 11
x2 = 11 mod 17
12 = 1
22 = 4
32 = 9
42 = 16
52 = 25 = 8
62 = 36 = 2
72 = 49 = 15
82 = 64 = 13
Дальше значения будут повторяться. 11 – не вычет по модулю 17.
x2 = 11 mod 19
12 = 1
22 = 4
32 = 9
42 = 16
52 = 25 = 6
62 = 36 = 17
72 = 49 = 11
Значения совпали, значит 11 – вычет по модулю 19.
13. Решить уравнения:
и
1) x2 = 47 mod 23
47 = 23*2+1
x2 = 1 mod 23
x = +-1 mod 23 → x = 1, x = 22
2) x2 = 52 mod 29
x2 = 23 mod 29
x =
t = 5
t2 – a = 25 – 23 = 2 – квадратичный невычет по модулю 29
x = (5 –
)15
15 = 8 + 4 + 2 + 1
2: (5 – )2 = 27 + 10
4: (5 –
)4
= (1 + 18
mod 29
8: (5 – )8 = (11 + 7 ) mod 29
(5 – )15 = (5 – )( 27 + 10 ) (1 + 18 (11 + 7 ) = 9 mod 29
x = +-9
x = 9
x = 20
14. Решить контрольный пример.
K=37, b= 29-1 mod 37, a=32
32-1 mod 37
37 = 32*1+5 → 5 = 37-32
32 = 5*6+2 → 2 = 32-5*6
5 = 2*2+1 → 1 = 5-2*2
5 = 3*1+2 → 2 = 5-3
3 = 2*1+1 → 1 = 3-2
1 = 5-2(32-5*6) = 5-2*32+12*5 = 13*5-2*32 = 13(37-32)-2*32 = 13*37-15*32
32-1 mod 37 = -15mod 37 = 22
10-11 mod 37 → 2611 mod 37
11 =8+2+1= 23+21+20
2611 mod 37 = 268*262*261 mod 37
26 mod 37 =26 262 mod 37 =26*26 mod 37 = 10
264 mod 37 =10*10 mod 37 = 26
268 mod 37 = 264*264mod 37 = 26*26 mod 37 = 10
2611 mod 37 = 10*10*26 mod 37 = 10
0
Вывод
В ходе лабораторной работы мы закрепили знания, полученные на лекциях дисциплин «Криптографические методы защиты информации», «Криптонрафические протоколы» и приобрели навыки вычислений по блоку занятий «Математический базис криптосистем с открытым ключом».
Санкт-Петербург
2026
