крипта 12
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)
Факультет Инфокоммуникационных сетей и систем
Кафедра Защищенных систем связи
Дисциплина Криптографические методы защиты информации
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №12
(код и наименование направления/специальности)
Студент группы:
________
(Ф.И.О.) (подпись)
Д.т.н., проф. каф. ЗСС:
Яковлев В.А. __________
(Ф.И.О.) (подпись)
Цель занятия: Приобретение навыков выполнения вычислений дискретной математики
Ход работы:
Задание 1.
Найти наибольший общий делитель, используя алгоритм Евклида.
Четные номера. Найти НОД(8888,24NN),
Нечетные номера. Найти НОД(4848,12(NN+1)),
где NN –двузначный номер по журналу. Например, если номер 29, то второе число 1230.
Номер по журналу: 13
Задание для нечетных номеров: НОД(4848, 12(13+1))
Формирование числа: 12(13 + 1) = 1214
НОД(4848, 1214) = 2
Пошаговое решение алгоритмом Евклида:
Шаг 1: 4848 = 1214 × 3 + 1206
Шаг 2: 1214 = 1206 × 1 + 8
Шаг 3: 1206 = 8 × 150 + 6
Шаг 4: 8 = 6 × 1 + 2
Шаг 5: 6 = 2 × 3 + 0
Итог: НОД(4848, 1214) = 2
Проверка: 4848 ÷ 2 = 2424, 1214 ÷ 2 = 607
Задание 2.
Используя алгоритм быстрого возведения в степень, вычислить:
Четные номера. 31NN(mod7).
Нечетные номера. 51NN(mod7).
Например, если номер 3, то показатель степени 103.
Вычисляем: 5^113 mod 7
Для варианта 13
1. Представим степень 113 в виде суммы степеней двойки:
113 = 2^0 + 2^4 + 2^5 + 2^6 = 1 + 16 + 32 + 64
2. Вычислим промежуточные значения:
5^1 mod 7 = 5 mod 7 = 5
5^2 mod 7 = 25 mod 7 = 4
5^8 mod 7 = (5^2) * (5^2) * (5^2) * (5^2) mod 7 = 4 * 4 * 4 * 4 mod 7 = 4
5^16 mod 7 = (5^8) * (5^8) mod 7 = 4 * 4 mod 7 = 2
5^32 mod 7 = (5^16) * (5^16) mod 7 = 2 * 2 mod 7 = 4
5^64 mod 7 = (5^32) * (5^32) mod 7 = 4 * 4 mod 7 = 2
3. Теперь вычислим результат:
5^113 mod 7 = 5^64 * 5^32 * 5^16 * 5^1 mod 7 = 2 * 4 * 2 * 5 mod 7 = 3
ОТВЕТ: 5^113 mod 7 = 3
Задание 3.
Найти обратный элемент к числу а по mod b, используя расширенный алгоритм Евклида.
a соответствует числу в таблице 1, порядковый номер которого совпадает с Вашим номером по журналу, b с номером большим на 10 порядковый номер числа а.
Например, если NN=29, то a=157 b=211
Таблица1.
23 29 31 37 41 43 47 53 59 61
67 71 73 79 83 89 97 101 103 107
109 113 127 131 137 139 149 151 157 163
167 173 179 181 191 193 197 199 211 223
Для варианта 13 значения буду a = 73, b = 127
1. Выполняем алгоритм Евклида:
Шаг 1: 127 = 73 * 1 + 54 Шаг 2: 73 = 54 * 1 + 19 Шаг 3: 54 = 19 * 2 + 16
Шаг 4: 19 = 16 * 1 + 3 Шаг 5: 16 = 3 * 5 + 1 Шаг 6: 3 = 1 * 3 + 0
НОД(73, 127) = 1
2. Нахождение коэффициентов Безу:
1 = 16 – 3*5 = 16 – 5*(19 – 16 ) = 6 * 16 – 5 * 19 = 6 (54 – 19 * 2) – 5 * 19 = 6 * 54 – 17 * 19 = 6 * 54 – 17 * (73 – 54 ) = 6 * 54 – 17 * 73 + 17 * 54 = 23 * 54 – 17 * 73 = 23 * (127 – 73 ) – 17 * 73 = 23 * 127 – 23 * 73 – 17 * 73 = 23 * 127 – 40 * 73
Коэффициенты Безу u = 23, v = -40 => 73*(-40) = 1 (mod 127) или 73 * 87 = 1 (mod 127)
3. Проверка:
7
3
* 87 = 6351
остаток равен 1 => a-1 = 87
Задание 4.
Используя тест Ферма, проверить является ли число р простым.
Число р выбрать из табл.2 согласно Вашему NN. (Считать слева направо строку за строкой)
Таблица 2.
179 183 191 193 197 199 213 223 227 229
233 239 247 251 257 263 269 271 277 281
283 299 307 311 311 317 331 337 347 349 353 359
1. Представим степень 246 в виде суммы степеней двойки:
246 = 2^1 + 2^2 + 2^4 + 2^5 + 2^6 + 2^7 = 2 + 4 + 16 + 32 + 64 + 128
2. Вычислим промежуточные значения:
• 2^1 mod 247 = 2 mod 247 = 2
• 2^2 mod 247 = 4 mod 247 = 4
• 2^4 mod 247 = (2^2) * (2^2) mod 247 = 4 * 4 mod 247 = 16
• 2^8 mod 247 = (2^4) * (2^4) mod 247 = 16 * 16 mod 247 = 9
• 2^16 mod 247 = (2^8) * (2^8) mod 247 = 9 * 9 mod 247 = 81
• 2^32 mod 247 = (2^16) * (2^16) mod 247 = 81 * 81 mod 247 = 139
• 2^64 mod 247 = (2^32) * (2^32) mod 247 = 139 * 139 mod 247 = 55
• 2^128 mod 247 = (2^64) * (2^64) mod 247 = 55 * 55 mod 247 = 61
3. Теперь вычислим результат:
2^246 mod 247 = 2^128 * 2^64 * 2^32 * 2^16 * 2^4 * 2^2 mod 247 = 61 * 55 * 139 * 81 * 16 * 4 mod 247 = 220
2^246 mod 247 = 220 => число 247 – составное
Вывод:
Приобрели и закрепили навыки выполнения вычислений дискретной математики.
Санкт – Петербург
2025
