Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР-4 (Генерирование и построение простых чисел)

.docx
Скачиваний:
1
Добавлен:
17.04.2026
Размер:
309.83 Кб
Скачать

\МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

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

(СПбГУТ)

Факультет Кибербезопасности

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

Дисциплина Криптографические протоколы

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

Генерирование и построение простых чисел

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

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

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

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

Студент:

Лянгузов Н.А, ИКБ-31

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

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

Яковлев В.А

(Ф.И.О) (подпись)

Цель лабораторной работы

Закрепить знания, полученные на лекциях по дисциплине «Криптопротоколы» по теме “Генерирование и построение простых чисел”.

Выполнение лабораторной работы

Задание 1

  1. Рассчитаем вероятность попадания на простое число при случайном генерировании чисел разрядности l=100,300,500,1000 при помощи следующих команд:

l: …..;

lg(x) := log(x)/log(10);

EstimateProb:2*(9*l-10)/(9*l*(l-1)*lg(10));

  1. Для проверки числа на простоту тестом Ферма сгенерируем необходимое количество случайных 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 является составным.

  1. Произвести тестирования чисел m=561,1105, 1729 по методу Ферма.

Для 561:

Для 1105:

Для 1729:

  1. Произвести тестирование на простоту чисел 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

  1. N =

  2. .

  3. – кандидат в простые.

  4. Проверим условия теоремы Диемитко:

2130 mod 131 = 1 и 210 mod 131 ≠ 1

  • 2130 mod 131 = 1

  • 1024 mod 131 = 8 ≠ 1

Оба условия выполнились, идём на выход.

  1. p = 131.

Итерация 2 (t = 16).

Заменяем значение на новое, полученное на предыдущем шаге. ε = 0,2

  1. = . N = 345 + 1 = 346

  2. .

  3. – кандидат в простые.

  4. .

  5. Проверим, что 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

Оба условия выполнились, идём на выход.

  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

Соседние файлы в предмете Криптографические протоколы