
Лабораторная работа №12
.pdf
МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)
Факультет Инфокоммуникационных сетей и систем
Кафедра Защищенных систем связи
Дисциплина Математические основы защиты информации
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №12
Индексы/Диофанты уравнения
(тема отчета)
Информационная безопасность (10.03.01)
(код и наименование направления/специальности)
Студент: |
|
|
|
Ерохин А.Г. |
ИКБ-03 |
||
(Ф.И.О.) |
|
|
(подпись) |
Студент: |
|
|
|
Чистяков А.С. |
ИКБ-03 |
||
(Ф.И.О.) |
|
|
(подпись) |
Студент:
Пантюхин М.А. ИКБ-03
(Ф.И.О.) (подпись)
К.тех.н, доцент кафедры ЗСС: Кушнир Д.В.
(Ф.И.О.) (подпись)
Санкт-Петербург
2022

Часть 1. Квадратичные сравнения
I.Символ Лежандра.
|
a |
|
p 1 |
|
|
a |
|
||
1. |
|
|
2 |
|
|
|
|
|
|
|
|
p |
|
|
(mod p)
2. Алгоритм пошагового вычисления символа Лежандра:
II. Индексы.
Определение. Пусть числа a и b взаимно просты с n, т. е. НОД(a, n) = 1, НОД(b, n) = 1. Число s называется индексом b по модулю
n |
и |
основанию |
a, |
если as ≡ b mod n. |
|
|
|
Понятие индекса представляет собой аналогию понятия логарифма. (В дальнейшем часто будет использоваться понятие дискретный логарифм)
В общем случае определение значения индекса (или определения, что его не существует) является сложной задачей.
Один из способов решения – табличный.
Таблица индексов по модулю 7 для основания 3 (число 3 –
первообразный корень). |
|
1) 1, 2, 3, 4, 5, 6; |
2) 30, 31, 32, 33, 34, 35. |
2
• Запишем две приведенные системы вычетов по модулю 7 и составим таблицу индексов:
30≡1(mod7) |
ind3n |
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
||||
31≡3(mod7) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32≡2(mod7) |
n |
1 |
|
3 |
|
2 |
|
6 |
|
4 |
|
5 |
||
33≡6(mod7) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34≡4(mod7) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
1 |
|
2 |
|
|
3 |
4 |
|
5 |
|
6 |
|
35≡5(mod7) |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ind3n |
|
0 |
|
2 |
|
|
1 |
4 |
|
5 |
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
III. Диофантовы уравнения первой степени.
Диофантово уравнение с двумя неизвестными имеет вид:
a x + b y = c,
где a, b, c — заданные целые числа, x и y — неизвестные целые числа.
Найти одно из решений диофантова уравнения с двумя неизвестными можно с помощью Расширенного алгоритма Евклида.
Пусть a и b неотрицательны. Расширенный алгоритм Евклида по заданным неотрицательным числам a и b находит их наибольший общий делитель g, а также такие коэффициенты xg и yg, что:
a * xg + b * yg = g.
Если c делится на g = НОД (a,b), то диофантово уравнение a*x + b*y = c имеет решение; в противном случае диофантово уравнение решений не имеет.
одним из решений диофантова уравнения являются числа:
x0 = xg * (c / g) y0 = yg * (c / g).
Пример: имеются монеты достоинством только в 7 и 12 копеек, необходимо уплатить 43 копейки. Как это сделать? Решаем уравнение:
7 x + 12 y = 43
Применяем алгоритм Евклида:
12 = 7· 1 + 5
7 = 5· 1 + 2
3
5 = 2· 2 + 1
2 = 1· 2
Значит, наибольший общий делитель чисел 7 и 12 равен 1 , а его линейное выражение таково (расширенный алгоритм Евклида):
1 = 5 - 2· 2 =
5 - (7 - 5) · 2 = (12 - 7) - (7 - (12 - 7) · 2) = 12· 3 + 7· (- 5),
т.е. u = - 5, v = 3.
Частное решение:
x 0 = uc = (- 5) · 43 = - 215 y 0 = vc = 3 · 43 = 129.
Т.о. необходимо «отобрать» у кассира 215 семикопеечных монет и дать ему двенадцатикопеечных.
Процедуру можно упростить, если записать общее решение неоднородного диофантова уравнения:
x = -215 - 12 t y = 129 + 7 t
При значении t = - 18, можно получить частное решение x = 1, y = 3, что более практично..
Задание 1.
Определить разрешимо ли квадратичное сравнение x^2=a mod p. (Вычислить, без программирования, символ Лежандра двумя методами из пункта I., сравнить, что получено одинаковое значение).
Вариант 7.
2 = 5 257
1 – й способ:
|
5 |
|
257−1 |
|
|
|
||||
( |
) = 5 2 |
257 |
= 256 257 = −1 257 |
|||||||
|
||||||||||
257 |
|
|
|
|
|
|
|
|
||
2 – й способ: |
|
|
|
|
|
|
||||
5 |
|
257 |
2 |
5 |
||||||
( |
|
) = ( |
|
) = ( |
|
) = − ( |
|
) = −1 |
||
257 |
5 |
5 |
2 |
Ответ: Уравнение не имеет решений
4
Вариант 17.
2 = 5 257
1 – й способ:
|
5 |
|
257−1 |
|
|
|
|
|
|
|
|
|
|
|
|||
( |
) = 5 2 |
|
257 |
= 256 257 = −1 257 |
|||||||||||||
|
|||||||||||||||||
257 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
2 – й способ: |
|
|
|
|
|
|
|
|
|
|
|
||||||
5 |
257 |
|
|
2 |
|
|
5 |
|
|
||||||||
( |
|
) = ( |
|
|
) = ( |
|
) = − ( |
|
) = −1 |
||||||||
257 |
5 |
5 |
2 |
||||||||||||||
Ответ: Уравнение не имеет решений |
|||||||||||||||||
Вариант 24. |
|
|
|
|
|
|
|
|
|
|
|
||||||
2 = 6 239 |
|
|
|
|
|
|
|
|
|
|
|||||||
1 – й способ: |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
6 |
|
239−1 |
|
|
|
|
|
|
|
|
|
|
|
|||
( |
) = 6 2 |
|
239 |
= 1 257 |
|||||||||||||
|
|
||||||||||||||||
239 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
2 – й способ: |
|
|
|
|
|
|
|
|
|
|
|
||||||
3 |
239 |
2 |
|
|
|
−1 |
|||||||||||
( |
|
) = − ( |
|
|
) = − ( |
|
) = − ( |
|
) = 1 |
||||||||
239 |
3 |
|
3 |
3 |
Ответ: Уравнение имеет решения
Задание 2.
Составить таблицу индексов для основания а и модуля p. Отметить случаи (если встретились), когда задача вычисления индекса (дискретного логарифма) неразрешима.
Вариант 7. a = 7, p = 29
idn3n |
n |
0 |
1 |
1 |
3 |
2 |
9 |
3 |
27 |
4 |
23 |
5 |
11 |
6 |
4 |
7 |
12 |
8 |
7 |
9 |
21 |
5
10 |
5 |
11 |
15 |
12 |
16 |
13 |
19 |
14 |
28 |
15 |
26 |
16 |
20 |
17 |
2 |
18 |
6 |
19 |
18 |
20 |
25 |
21 |
17 |
22 |
22 |
23 |
8 |
24 |
24 |
25 |
14 |
26 |
13 |
27 |
10 |
28 |
1 |
Вариант 17. a = 7, p = 29
idn3n |
n |
0 |
1 |
1 |
3 |
2 |
9 |
3 |
27 |
4 |
23 |
5 |
11 |
6 |
4 |
7 |
12 |
8 |
7 |
9 |
21 |
10 |
5 |
11 |
15 |
12 |
16 |
13 |
19 |
14 |
28 |
15 |
26 |
16 |
20 |
17 |
2 |
18 |
6 |
6
19 |
18 |
20 |
25 |
21 |
17 |
22 |
22 |
23 |
8 |
24 |
24 |
25 |
14 |
26 |
13 |
27 |
10 |
28 |
1 |
Вариант 24. a = 2, p = 23
idn3n |
n |
0 |
1 |
1 |
2 |
2 |
4 |
3 |
8 |
4 |
16 |
5 |
3 |
6 |
6 |
7 |
12 |
8 |
24 |
9 |
19 |
10 |
9 |
11 |
18 |
12 |
7 |
13 |
14 |
14 |
28 |
15 |
27 |
16 |
25 |
17 |
21 |
18 |
13 |
19 |
26 |
20 |
23 |
21 |
17 |
22 |
5 |
Задание 3.
Решить (без программирования) диофантово уравнение ax+by=c. Выписать частное и общее решение. Выбрать конкретное решение с «не слишком большими» значениями «x» и «y».
7
Вариант 7.
a = 11, b = 24, c = 43 11x + 24y = 43
Применяем алгоритм Евклида:
24 = 11*2 + 2
11 = 2*5 + 1
2 = 1*2
Следовательно НОД = 1:
1 = 11 – 2*5
2 = 24 – 11*2 1 = 11 – 5*(24 – 11*2) = 11 +10*11 – 5*24
1 = (-5)*24 + 11*11 -> u = 11, v = -5
x0 = uc = 11*43 = 473 y0 = vc = (-5)*43 = -215
x = 473 – 24t y = -215 + 11t
При значении t = 19 получаем: x = 17, y = -6
Вариант 17.
a = 11, b = 24, c = 43 11x + 24y = 43
Применяем алгоритм Евклида:
24 = 11*2 + 2
11 = 2*5 + 1
2 = 1*2
Следовательно НОД = 1:
1 = 11 – 2*5
2 = 24 – 11*2 1 = 11 – 5*(24 – 11*2) = 11 +10*11 – 5*24
1 = (-5)*24 + 11*11 -> u = 11, v = -5
x0 = uc = 11*43 = 473 y0 = vc = (-5)*43 = -215
x = 473 – 24t y = -215 + 11t
При значении t = 19 получаем: x = 17, y = -6
8
Вариант 24.
a = 11, b = 21, c = 31 11x + 21y = 31
Применяем алгоритм Евклида:
21 = 11*1 + 10
11 = 10*1 + 1
10 = 1*10
Следовательно НОД = 1:
1 = 11 – 10*1
10 = 21 – 11*1 1 = 11 – 1*(21 – 11*1) = 11 +11 – 21
1 = (-1)*21 + 2*11 -> u = 2, v = -1
x0 = uc = 2*31 = 62 y0 = vc = (-1)*31 = -31
x = 62 – 21t y = -31 + 11t
При значении t = 3 получаем: x = -1, y = 2
9