Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР-3 (Математический базис дисциплины Криптопротоколы)

.docx
Скачиваний:
5
Добавлен:
17.04.2026
Размер:
141.7 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Факультет Кибербезопасности

Кафедра Защищенных систем связи

Дисциплина Криптографические протоколы

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №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

Соседние файлы в предмете Криптографические протоколы