Лаб_09
.docФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Санкт-Петербургский государственный университет телекоммуникаций
им. проф. М.А. Бонч-Бруевича»
(СПБГУТ)
__________________________________________________________________
Факультет ИКСС
Кафедра ЗСС
Отчет к лабораторной работе № 9 по дисциплине:
«Математические основы защиты информации»
Тема: «Китайская теорема об остатках»
Выполнил студент Группа ИКБ-14:
Травкина Е. А.
Проверил:
Кушнир Д.В.
г. Санкт-Петербург
2023
Лабораторная/Практика.
Китайская теорема об остатках
Согласно китайской теореме об остатках, система уравнений:
x= 1 mod 2 x= 2 mod 3 x= 6 mod 7
Имеет единственное решение на промежутке [0... 2*3*7], если числа 2,3,7 — взаимно простые.
Найдем решение на промежутке от 0 до 42 (перебором):
Решения первого уравнения: 1,3,5,7,9,11,...37,39,41, ... Решения второго уравнения: 2,5,8,11,...38,41,... Решения третьего уравнения: 6,13,20,27,34,41,...
Итоговое решение x=41.
Найдём аналитически решение системы уравнений:
x=1 mod 13 x=4 mod 15 x=8 mod 19
Выразим x из первого уравнения:
Выражение x=1 mod 13, можно записать в виде:
x=1+13*t, где t - некоторое произвольное целое.
Подставляем выражение для x из первого уравнения во второе уравнение:
x = 4 mod 15 1+13t = 4 mod 15 13t = 3 mod 15 t = 3/13 mod15
В модульной арифметике "нет такого понятия как деление", вместо деления необходимо производить умножение на обратный элемент.
t = 3*(13)(-1) mod15
Обратный элемент находят с помощью расширенного алгоритма Эвклида, для небольших чисел в демонстрационных целях можно использовать метод перебора на основе определения обратного элемента:
1*13=13 mod 15 2*13=11 mod 15 3*13= 9 mod 15 4*13= 7 mod 15 5*13= 5 mod 15 6*13= 3 mod 15 7*13= 1 mod 15 ... т.е. t = 3*(13)(-1) =3*7 mod 15
t = 6 mod 15
раскроем модуль:
t = 6 + 15*u, где u - целое число.
теперь подставим это в выражение для х:
x = 1+13t = 1 + 13(6 + 15u) = 79 + 195u
(таким образом, мы получили выражение для «х» с учетом двух уравнений).
Подставим найденное выражение для х в третье уравнение:
79+195u=8 mod19
5u=5mod19
u=5/5mod19 (тут можно было бы тоже не делить на 5, а умножать на обратное к 5 число, но выражение запись 5*5(-1)mod 19 всегда равно 1 по определению обратного элемента, т.е. получаем:
u = 1 mod 19 раскрываем модуль:
u = 1 + 19v, где v - целое число.
Подставляем в выражение для х
Итого с учетом всех трёх уравнений:
x = 79 + 195u = 79 + 195*(1 + 19v) = 274+3705v
Решение на промежутке [0 ... 13*15*19]=274, но есть и другие решения системы, вне промежутка, которые можно получить, принимая в качестве v значения 0, 1, 2, 3, …, …, …, … (В качестве v можно брать и отрицательные числа, что необходимо для решения некоторых задач).
Типичные задачи, которые можно решить на основе подобных подходов:
Задача 1: Как часто стрелки часов (секундная, минутная, часовая) сходятся вместе.
Задача 2: В какие моменты времени несколько спутников с разным периодом обращения вокруг Земли будут одновременно пересекать заданную долготу.
Китайская теорема об остатках может использоваться и в криптографии, как для выполнения процедур шифрования, так и для криптоанализа.
Решение на основе Китайской теореме об остатках:
Задание.
Задача 1 (Методом перебора)
Имеется не более 105 кубиков. Их поочерёдно располагают по 3, по 5 или по 7 в ряд. Последний ряд в некоторых случаях оказывается заполненным не полностью (несколько кубиков оказываются «лишними»). По количеству «лишних» кубиков определить их общее количество.
Вариант 23(3). Остаток кубиков при раскладывании в ряд по 3 – 0, в ряд по 5 – 2, в ряд по 7 – 4.
Раскладывают по 3 кубика с остатком 0 будем максимум в 35 рядов. Остаток от кубиков 0.
3, 6, 9, 12… 99, 102, 105
Раскладывают по 5 кубика с остатком 2 будем максимум в 21 ряд. Остаток от кубиков 3.
2, 7, 12, 17… 92, 97, 102
Раскладывают по 7 кубика с остатком 4 будем максимум в 15 ряд. Остаток от кубиков 3.
4, 11, 18, 25… 88, 95,102
Ответ: x = 102
Задача 2
Вариант 23 (3)
Спутник1 пролетает над городом в x1 = 2 час и имеет период обращения y1 = 3 часов.
Спутник2 пролетает над городом в x2 = 3 час и имеет период обращения y2 = 5 часов.
Спутник3 пролетает над городом в x3 = 4 час и имеет период обращения y3 = 8 часов.
Определить, когда все три спутника пролетят одновременно и как часто это бывает:
Использовать аналитический метод:
Составим уравнения, и упорядочим их по возрастанию модуля для удобства:
8 mod 24
x = 2 ( mod 3 )
x = 3 ( mod 5 )
x = 4 ( mod 8 )
x = 2 + 3t
2+3t = 3mod5
3t = 1mod5
t = 1*3^(-1)mod5
1*3 = 3 mod5
2*3 = 1 mod5
t = 2 mod5
t = 2+5u
x = 2 + 3t = 2 + 3(2+5u) = 2 + 6 + 15u = 8 + 15u
8+15u = 4 mod8
15u = 4 mod8
u=4*15^(-1) mod8
u=4 mod 8
u=4+8v
x = 8+15u = 8 + 15(4 + 8v) =53+56 + 120v= 68 + 120v
Использовать метод, основанный на Китайской теореме об остатках (приведённый на «слайдах»).
x = 2 ( mod 3 )
x = 3 ( mod 5 )
x = 4 ( mod 8 )
M = 3*5*8 = 120
M1 = 120 / 3 = 40, M2 = 120 / 5 = 24, M3 = 120/8 = 15
N1 = 1, N2 = 4, N3 = 7
X = 2*40*1 + 3*24*4 + 4*15*7 = 788 788 = 68 mod 120