Скачиваний:
5
Добавлен:
09.04.2023
Размер:
29.87 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

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

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

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

(СПбГУТ)

Факультет Инфокоммуникационных сетей и систем

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

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

Проверка заданного числа

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

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

10.03.01 Информационная безопасность

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

Студенты:

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

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

Кушнир Д.В.

(уч. степень, уч. звание, Ф.И.О.) (подпись)

Оглавление

Теория…………………………………………………………………………….3

Ход работы……………………………………………………………………….4

Теория

Основная теорема арифметики.

Тест основан на малой теореме Ферма.

Теорема. Если n-простое и НОД(a, n) = 1, то an-1 = 1 mod n.

Вывод – если n составное, то соотношения из малой теоремы Ферма не всегда будут выполняться. Можно показать, что в среднем для составных чисел соотношения из малой теоремы Ферма выполняются с вероятностью ½.

Алгоритм тестирования числа n.

Выбираем количество тестов – k (это определить вероятность ошибочно принять составное число за простое). Выбираем k случайных чисел a: a1, a2, …, ak < n (обычно выбирают малые простые числа).

Для каждого ai вычисляем НОД(ai ,n), если «n» простое, то всегда должна быть 1. Если любое из НОД(ai ,n)≠1, то тест заканчивается с выводом, что «n» составное.

Если проверки пройдены, то для каждого ai проверяем: ai(n-1) = 1 mod n. Если любое из ai(n-1) ≠ 1 mod n, то тест заканчивается с выводом, что «n» составное.

Если все проверки пройдены, то принимаем решение, что n – простое, с итоговой вероятностью, что мы приняли составное число за простое равное: (½)k.

Некоторые составные числа всегда удовлетворяют условиям теоремы Ферма, так называемые числа Кармайкла. Выполняя тест Ферма узнать что число Кармайкла составное можно на проверке НОД (ai, n) ≠ 1, если «удачно» выбран ai.

Задание

Выбрать два простых и два составных нечетных числа (не кратных 3, 5 и 7) и еще одно составное число Кармайкла. Выбирать числа для выполнения задания по следующей формуле: 1. Вычисляем: X=((№ студента в группе)+110)*23. Далее произвольно в диапазоне X±20 выбрать нужные числа (если в бригаде один студент, то проверяем 4-ые числа, если два, то 8, если три то 12). Число Кармайкла выбирать по следующему алгоритму: студент в группе с номером 1. Берёт число 1105 студент в группе с номером 2. Берёт число 1729 студент в группе с номером 3. Берёт число 2465 студент в группе с номером 4. Берёт число 2821 студент в группе с номером 5. Берёт число 6601 студент в группе с номером 6. Берёт число 8911 для студентов с большими номерами выбирать число Кармайкла циклически, 7-й берёт опять число 1105 и т.п. Сколько человек в бригаде, столько разных чисел Кармайкла должно быть проверено.

  1. Проверить каждое из этих чисел методом перебора возможных делителей. По желанию возможно использовать предварительную проверку по признакам делимости на 3, 5, 7 и 11. Проверять выбранные числа по признакам делимости можно «вручную» или программно.

  2. Проверить каждое из чисел тестом Ферма. Если задание выполняется в EXCEL, то выбирать k таком образом, чтоб вероятность принять составное за простое была не более 0,125. При полностью программной реализации алгоритма выбирать k таким образом, чтоб вероятность принять составное за простое была не более 10-3.

Ход работы

X = (25+110)*23= 3105

Простые числа – 3119, 3121

Составные числа – 3097, 3113

Число Кармайкла – 1105

Проверка чисел методом перебора возможных делителей.

Число 3119

3119 на 2 не делится – число нечетное 3119 на 3 не делится – сумма цифр не делится на 3 3119 на 4 не делится – число нечетное 3119 на 5 не делится – число не оканчивается на 0 или 5 3119 на 6 не делится – не соблюдаются признаки делимости на 2 и 3 3119 на 7 не делится – разность между числом десятков и удвоенной цифрой единиц не делится на 7 3119 на 8 не делится – число нечетное 3119 на 9 не делится – сумма цифр не делится на 9 3119 на 10 не делится – число не оканчивается на 0 3119 на 11 не делится – разность между суммой цифр, стоящих на четных местах и суммой цифр стоящих на нечетных местах не делится на 11 3119 на 13 не делится – сумма числа десятков с учетверенной цифрой единиц не делится на 13

Число 3121

3121 на 2 не делится – число нечетное 3121 на 3 не делится – сумма цифр не делится на 3 3121 на 4 не делится – число нечетное 3121 на 5 не делится – число не оканчивается на 0 или 5 3121 на 6 не делится – не соблюдаются признаки делимости на 2 и 3 3121 на 7 не делится – разность между числом десятков и удвоенной цифрой единиц не делится на 7 3121 на 8 не делится – число нечетное 3121 на 9 не делится – сумма цифр не делится на 9 3121 на 10 не делится – число не оканчивается на 0 3121 на 11 не делится – разность между суммой цифр, стоящих на четных местах и суммой цифр стоящих на нечетных местах не делится на 11 3121 на 13 не делится – сумма числа десятков с учетверенной цифрой единиц не делится на 13

Число 3097

3097 на 2 не делится – число нечетное 3097 на 3 не делится – сумма цифр не делится на 3 3097 на 4 не делится – число нечетное 3097 на 5 не делится – число не оканчивается на 0 или 5 3097 на 6 не делится – не соблюдаются признаки делимости на 2 и 3 3097 на 7 не делится – разность между числом десятков и удвоенной цифрой единиц не делится на 7 3097 на 8 не делится – число нечетное 3097 на 9 не делится – сумма цифр не делится на 9 3097 на 10 не делится – число не оканчивается на 0 3097 на 11 не делится – разность между суммой цифр, стоящих на четных местах и суммой цифр стоящих на нечетных местах не делится на 11 3097 на 13 не делится – сумма числа десятков с учетверенной цифрой единиц не делится на 13

Число 3113 3113 на 2 не делится – число нечетное 3113 на 3 не делится – сумма цифр не делится на 3 3113 на 4 не делится – число нечетное 3113 на 5 не делится – число не оканчивается на 0 или 5 3113 на 6 не делится – не соблюдаются признаки делимости на 2 и 3 3113 на 7 не делится – разность между числом десятков и удвоенной цифрой единиц не делится на 7 3113 на 8 не делится – число нечетное 3113 на 9 не делится – сумма цифр не делится на 9 3113 на 10 не делится – число не оканчивается на 0 3113 : 11 = 283 3113 на 13 не делится – сумма числа десятков с учетверенной цифрой единиц не делится на 13 Число 1105 1105 на 2 не делится – число нечетное 1105 на 3 не делится – сумма цифр не делится на 3 1105 на 4 не делится – число нечетное 1105 : 5 = 221 1105 на 6 не делится – не соблюдаются признаки делимости на 2 и 3 1105 на 7 не делится – разность между числом десятков и удвоенной цифрой единиц не делится на 7 1105 на 8 не делится – число нечетное 1105 на 9 не делится – сумма цифр не делится на 9 1105 на 10 не делится – число не оканчивается на 0 1105 : 11 = 5749 1105 : 13 = 85

Тест Ферма

Число 3119

НОД (3119; 2) = 1 НОД (3119; 3) = 1 НОД (3119; 5) = 1 НОД (3119; 7) = 1 НОД (3119; 11) = 1 НОД (3119; 13) = 1

(2^3118) mod 3119 = 1 (3^3118) mod 3119 = 1 (5^3118) mod 3119 = 1 (7^3118) mod 3119 = 1 (11^3118) mod 3119 = 1 (13^3118) mod 3119 = 1

Число 3119 – простое, с итоговой вероятностью, что мы приняли составное число за простое равное: (½)6

Число 3121 НОД (3121; 2) = 1 НОД (3121; 3) = 1 НОД (3121; 5) = 1 НОД (3121; 7) = 1 НОД (3121; 11) = 1 НОД (3121; 13) = 1

(2^3120) mod 3121 = 1 (3^3120) mod 3121 = 1 (5^3120) mod 3121 = 1 (7^3120) mod 3121 = 1 (11^3120) mod 3121 = 1 (13^3120) mod 3121 = 1

Число 3121 – простое, с итоговой вероятностью, что мы приняли составное число за простое равное: (½)6

Число 3097 НОД (3097; 2) = 1 НОД (3097; 3) = 1 НОД (3097; 5) = 1 НОД (3097; 7) = 1 НОД (3097; 11) = 1 НОД (3097; 13) = 1 НОД (3097; 17) = 1 НОД (3097; 19) = 19

Вывод: число 3097 – составное.

Число 3113 НОД (3113; 2) = 1 НОД (3113; 3) = 1 НОД (3113; 5) = 1 НОД (3113; 7) = 1 НОД (3113; 11) = 11

Вывод: число 3113 – составное.

Число 1105 НОД (1105; 2) = 1 НОД (1105; 3) = 1 НОД (1105; 5) = 5

Вывод: число 1105 – составное.

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

2021

Соседние файлы в предмете Математические основы защиты информации