ЛР-4 (Генерирование и построение простых чисел)
.docx\МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет Кибербезопасности
Кафедра Защищенных систем связи
Дисциплина Криптографические протоколы
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №4
Генерирование и построение простых чисел
(тема отчета)
Направление/специальность подготовки
10.03.01 Информационная безопасность
(код и наименование направления/специальности)
Студент:
Лянгузов Н.А, ИКБ-31
(Ф.И.О., № группы) (подпись)
Преподаватель:
Яковлев В.А
(Ф.И.О) (подпись)
Цель лабораторной работы
Закрепить знания, полученные на лекциях по дисциплине «Криптопротоколы» по теме “Генерирование и построение простых чисел”.
Выполнение лабораторной работы
Задание 1
Рассчитаем вероятность попадания на простое число при случайном генерировании чисел разрядности l=100,300,500,1000 при помощи следующих команд:
l: …..;
lg(x) := log(x)/log(10);
EstimateProb:2*(9*l-10)/(9*l*(l-1)*lg(10));
Для проверки числа на простоту тестом Ферма сгенерируем необходимое количество случайных 3-х разрядных чисел при помощи команды:
U: 100+random(900);
и отберем среди них не менее 3 нечетных чисел m, среди которых должно быть одно простое число,
Сгенерируем не менее 5 случайных 2-х разрядных чисел a при помощи команды:
U:10+random(90);
U;
Произведем проверку чисел m на простоту, используя тест Ферма при помощи команды:
power_mod(a,m-1,m);
Для числа m1 = 704:
Результат проведенного теста Ферма: число 704 является составным.
Для числа m2 = 191:
Результат
проведенного теста Ферма: число 191
является вероятно простым с вероятностью
Вероятность
ошибки:
Для числа m3 = 429:
Результат проведенного теста Ферма: число 429 является составным.
Произвести тестирования чисел m=561,1105, 1729 по методу Ферма.
Для 561:
Для 1105:
Для 1729:
Произвести тестирование на простоту чисел m, сгенерированных в п.3 и чисел 561, 1105,1729, по методу Миллера–Рабина
Для 561:
Для 1105:
Для 1729:
Вывод: В ходе выполнения лабораторной работы были закреплены знания, полученные на лекциях по дисциплине «Криптопротоколы» по теме “Генерирование и построение простых чисел”.
Часть 2
Цель: Закрепить знания, полученные на лекциях дисциплин «Методы и средства криптографиеской защиты информации», «Криптографические протоколы» по теме: «Генерация простых чисел большой размерности для криптографических систем». Изучить метод конструирования простых чисел на основе теоремы Диемитко Н.
Задание 1
Выбрать размерность t, начальное простое число q и значение ε в соответствии с номером варианта из Таблицы 1. (Номер варианта 22). Вручную провести генерирование доказуемо простого числа большего размера на основе простых чисел меньшего размера.
Проверить,
что полученное число p = n
действительно простое и теорема верна
с помощью программы «Rabin-Miller_Test.exe». Число
раундов
рекомендуется брать порядка величины
.
№Вар |
|
|
|
22 |
16 |
13 |
ε1 = 0.14; ε2 = 0.38 |
N =
.
– кандидат
в простые.
Проверим условия теоремы Диемитко:
2130 mod 131 = 1 и 210 mod 131 ≠ 1
2130 mod 131 = 1
1024 mod 131 = 8 ≠ 1
Оба условия выполнились, идём на выход.
p = 131.
Итерация 2 (t = 16).
Заменяем значение на новое, полученное на предыдущем шаге. ε = 0,2
=
.
N
= 345
+ 1 = 346
.
– кандидат
в простые.
.Проверим, что 245588 mod 45589 = 1 и 2348 mod 45589 ≠ 1.
2348 = 2 256+64+16+8+4
22 mod 45589 = 4 24 = 16 28 = 256 216 = 256*256 = 65536 mod 45589 = 19947 232 = 19947*19947 mod 45589 = 20548 264 = 20548*20548 mod 45589 = 28363 2128 = 28363*28363 mod 45589 = 15634 2256 = 15634*15634 mod 45589 = 43013
2348 = 2256*264*216*28*24 = 43013*28363*19947*256*16 mod 45589 ≠ 1
245588 = (2348)131 mod 45589 = 1
Оба условия выполнились, идём на выход.
p = 45589.
Проверим правильность расчётов с помощью программы «PrimeNumberGenerator.exe».
Проверим полученное число на простоту программой «Rabin-Miller_Test.exe».
Задание 2.
С помощью программы «PrimeNumberGenerator.exe» сгенерировать число размером 256-1024 бит. В соответствии с условием t0=2 выбираем простое число q=3, так как оно является простым числом требуемой разрядности и удовлетворяет условиям теоремы Диемитко.
Начальные данные:
q=3
t0 = 2
t = 256
Выберем значение . Поскольку должно быть размером 8 бит, возьмем = 223.
Проверим полученное число на простоту программой «Rabin-Miller_Test.exe».
Вывод:
В ходе выполнения лабораторной работы были закреплены знания, полученные на лекциях по дисциплине «Криптопротоколы» по теме “Генерирование и построение простых чисел”, закреплены знания, полученные на лекциях дисциплин «Методы и средства криптографиеской защиты информации»,, «Криптографические протоколы» по теме: «Генерация простых чисел большой размерности для криптографических систем». Изучен метод конструирования простых чисел на основе теоремы Диемитко Н.
Санкт-Петербург
2026
