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

крипта_3

.docx
Скачиваний:
0
Добавлен:
17.06.2026
Размер:
191.3 Кб
Скачать

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

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

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

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

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

(СПбГУТ)

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

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

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

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №3

Математический базис дисциплины Криптопротоколы

(тема отчета)

Направление/специальность подготовки

(код и наименование направления/специальности)

Выполнил студент 3 курса:

_________

(Ф.И.О., № группы) (подпись)

Преподаватель:

д.т.н., проф. Яковлев В.А.

(Ф.И.О., № группы) (подпись)

Цель работы

Закрепить знания, полученные на лекциях дисциплин «Криптографические методы защиты информации», «Криптонрафические протоколы» и приобрести навыки вычислений по блоку занятий «Математический базис криптосистем с открытым ключем».

Используемое программное обеспечение

Для работы используется программа “Maxima” и дополнительные командные строки для решения каждой из задач.

Задание

1.Выполнить упражнения по определению делимости чисел, нахождению их наибольшего общего делителя (gcd(a,b)) и по нахождению канонического представления gcd и обратного элемента при помощи расширенного алгоритма Евклида.

2. Произвести определение конгруэнтности чисел, проверку утверждений теорем Эйлера и Ферма, убедиться в возможности быстрого вычисления возведения в степень и обращения чисел по модулю.

3. Решить пример по теме «Китайская теорема об остатках».

4. Решить пример по теме «Цепные дроби»7

5. Решить задачи на квадратные уравнения по модулю простого числа.

Ход работы

Установить пакет программ “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)

Проверить правильность канонических представлений для всех случаев.

1. 2692*129 + 1453*(-239) = 347268 - 347267 = 1

2. 40864*(-944) + 42531*907 = -38575616 + 38575617 = 1

3. 22596*1009 + 46720*(-488) = 22799364 - 22799360 = 4

4. 70949*13202 + 79941*(-11717) = 936668698 - 936668697 = 1

5. 1248*4804 + 10009*(-599) = 5995392 - 5995391 = 1

5. Для одного четырехразрядного числа и не менее чем для четырех произвольно выбранных пятизначных чисел a сделать их приведение по модулям произвольных меньших чисел m при помощи команды:

mod(a,m)

Убедиться в правильности расчетов для первого числа “вручную”.

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. Решить систему уравнений на основе использования китайской теоремы об остатках.

Для варианта – 5

№ вар

ai

mi

5

3,4,5

11, 13, 9

Найдем x0 по формуле x0 = (M1y1a1 + M2y2a2 + M3y3a3) mod M

M = 11 * 13 * 9 = 1287

Находим Mi и yi:

M1 = M/m1 = 1287/11 = 117

M1 * y1 ≡ 1 mod m1 → 117 * y1 ≡ 1 mod 11 → 7 * y1 ≡ 1 mod 11 → y1 = 8

M2 = M/m2 = 1287/13 = 99

M2 * y2 ≡ 1 mod m2 → 99 * y2 ≡ 1 mod 13 → 8 * y2 ≡ 1 mod 13 → y2 = 5

M3 = M/m3 = 1287/9 = 143

M3 * y3 ≡ 1 mod m3 → 143 * y3 ≡ 1 mod 9 → 8 * y3 ≡ 1 mod 9 → y3 = 8

Вычисляем x0 = (117 * 8 * 3 + 99 * 5 * 4 + 143 * 8 * 5) mod 1287 = 10508 mod 1287 = 212

Ответ: x = 212

Проверка:

212 mod 11 = 3 (ожидалось 3)

212 mod 13 = 4 (ожидалось 4)

212 mod 9 = 5 (ожидалось 5)

  1. Разложите в цепную дробь числа: P/Q. Найдите подходящие дроби для k=1,2,3,4

Вариант – 5

№ вар

P

Q

5

72

103

Разложение 72/103:

Шаг 1: 72 = 0 × 103 + 72

Шаг 2: 103 = 1 × 72 + 31

Шаг 3: 72 = 2 × 31 + 10

Шаг 4: 31 = 3 × 10 + 1

Шаг 5: 10 = 10 × 1 + 0

Результат: [0, 1, 2, 3, 10]

k=0:

a0 = 0

P0 = 0 * 1 + 0 = 0 * 1 + 0 = 0, Q0 = 0 * 0 + 1 = 0 * 0 + 1 = 1

A0 = 0/1

k=1:

a1 = 1

P1 = 1 * 0 + 1 = 1 * 0 + 1 = 1, Q1 = 1 * 1 + 0 = 1 * 1 + 0 = 1

A1 = 1/1

k=2:

a2 = 2

P2 = 2 * 1 + 0 = 2 * 1 + 0 = 2, Q2 = 2 * 1 + 1 = 2 * 1 + 1 = 3

A2 = 2/3

k=3:

a3 = 3

P3 = 3 * 2 + 1 = 3 * 2 + 1 = 7, Q3 = 3 * 3 + 1 = 3 * 3 + 1 = 10

A3 = 7/10

k=4:

a4 = 10

P4 = 10 * 7 + 2 = 10 * 7 + 2 = 72, Q4 = 10 * 10 + 3 = 10 * 10 + 3 = 103

A4 = 72/103

Итог:

A₀ = 0/1

A₁ = 1/1

A₂ = 2/3

A₃ = 7/10

A₄ = 72/103

  1. Проверьте, является ли число а=(№вар+20) mod31 вычетом по модулю 17, 19.

Для варианта - 5

a = (5 + 20) mod 31 = 25 mod 31 = 25

Проверка для 17:

a^((17-1)/2) = 1 mod 17

(25^8) mod 17 = 1 -> 5 является вычетом по модулю 17

Проверка для 19:

a^((19-1)/2) = 1 mod 19

(25^9) mod 19 = 1 -> 25 является вычетом по модулю 19

  1. Решите уравнение

р=23, и р=29.

Для варианта – 5

N вар

Число а

р = 23

р = 29

5

13

13

1) x = √13 mod 23

Решение уравнения x = √13 mod 23

p = 23, 23 = 4*5 + 3

1) x = √13 mod 23

23 - простое, 23 = 3 mod 4

x = a^((p+1)/4) mod p

x = 13^6 mod 23 = 6

2) x = -6 mod 23 = 17

(6, 17)

2) x = √13 mod 29

Решение уравнения x = √13 mod 29

p = 29, 29 = 4*7 + 1

1) x = √13 mod 29

29 - простое, 29 = 1 mod 4

Применяем алгоритм Чиполлы

Шаг 1: Находим b такое, что b² - a - квадратичный невычет

b = 12, b² - a = 12² - 13 = 15

Символ Лежандра (15^14 mod 29) = 28 = -1 => невычет

Шаг 2: Работаем в расширении поля F_29(√15)

Вычисляем (b + √(b² - a))^((p+1)/2) = (b + √(b² - a))^15

Возводим в степень 15:

(12 + 1√15)² = 144 + 24√15 + 225 = 14 + 24√15

(14 + 24√15)² = 196 + 672√15 + 129600 = 20 + 5√15

(20 + 5√15)² = 400 + 200√15 + 5625 = 21 + 26√15

(21 + 26√15)² = 441 + 1092√15 + 152100 = 25 + 19√15

Результат: 19 + 0√15

Шаг 3: Получаем корни:

x₁ = 19

x₂ = 10

Проверка:

19² mod 29 = 361 mod 29 = 13 (должно быть 13)

10² mod 29 = 100 mod 29 = 13

Итог:

Для p = 23, a = 13:

x = 6 и x = 17 (mod 23)

Проверка: 6² = 36 mod 23 ≡ 13 mod 23

17² = 289 mod 23 ≡ 13 mod 23

Для p = 29, a = 13:

x = 19 и x = 10 (mod 29)

Проверка: 19² = 361 mod 29 ≡ 13 mod 29

10² = 100 mod 29 ≡ 13 mod 29

14. Решить контрольный пример

, где

k=37,

а=№вар+10.

K=37, b= 15-1 mod 37, a=15

15-1 mod 37 = 5

(b-a)12 mod 37 = (-10)12 mod 37 = 2712 mod 37

272 = 729 => 272 = 26 mod 37 => 2712 = (272)6 = 266 mod 37

263 mod 37 = 17576 mod 37 = 1 => 266 = (13)2 = 12 mod 37 = 1

Вывод

После проделанной работы, закрепила знания, полученные на лекциях дисциплин «Криптографические методы защиты информации», «Криптонрафические протоколы» и приобрела навыки вычислений по блоку занятий «Математический базис криптосистем с открытым ключем».

Санкт – Петербург

2026

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