Лабораторная работаКриптографияГод: 2025
👁 14💼 0

Готовая лабораторная работа: Реализация RSA

Загружена: 21.02.2026 07:19

Реализация алгоритма RSA на примере конкретных простых чисел. Описаны генерация открытого и закрытого ключей (p=199, q=337), операции шифрования/дешифрования символов и проверка корректности. Полезно для практической отработки криптографических методов.

Содержание

Криптография. Лабораторная работа № 2
Вариант №6.
Цель лабораторной работы — освоение механизма шифрования и дешифрования данных в криптографической системе с открытыми ключами RSA.
Задача — разработать программу, осуществляющую шифрование и дешифрование сообщения на основе алгоритма RSA, используя генерацию ключей на основе заданных простых чисел для выбранного варианта.
Описание используемого метода
...

Подробное описание

📘 О чем эта работа

В работе показана практическая реализация асимметричного алгоритма RSA на языке Python. Объектом является процедура генерации ключей и операций шифрования/дешифрования символов, предметом — алгоритмическая реализация и проверка корректности на примере конкретных простых чисел p=199 и q=337.

📚 Что внутри

Документ содержит подробное пошаговое описание алгоритма и исходный код программы на Python с комментариями:

  • Генерация параметров: вычисление n = p × q = 66963 и функции Эйлера φ(n) = (p−1)(q−1).
  • Выбор открытого показателя e (минимально возможное взаимно простое с φ) — в примере e = 5 и вычисление закрытого ключа d = 53061 методом расширенного алгоритма Евклида.
  • Реализация функций: gcd(a,b) для проверки взаимной простоты, mod_inverse(e, phi) для нахождения мультипликативного обратного, encrypt_rsa и decrypt_rsa для по-символьной обработки текста.
  • Пример выполнения: исходный текст 'ИНФОРМАЦИЯ', зашифрованный набор чисел [22595, 10152, 26460, 34602, 52113, 58936, 56675, 47293, 43844, 29477] и успешное восстановление исходного текста при дешифровании.
  • Теоретическая часть: краткое объяснение однонаправленных функций, свойства trapdoor-функций и обоснование криптостойкости RSA (факторизация больших чисел).
  • Выводы и ответы на контрольные вопросы: описание свойств однонаправленных функций, взаимно простых чисел, модульной экспоненциации и достоинств/недостатков асимметричных алгоритмов.

📊 Для кого подходит

Лабораторная работа полезна студентам математико-информатических и информационной безопасности направлений, преподавателям для демонстраций, а также начинающим программистам, изучающим криптографию: подходит для выполнения практических заданий и подготовки отчёта.

✨ Особенности

Работа содержит готовый и прокомментированный код на Python, демонстрирующий:

  • практическую реализацию расширенного алгоритма Евклида для поиска d,
  • использование встроенной pow(x, y, n) для эффективного модульного возведения в степень,
  • пошаговую проверку взаимной простоты e и φ(n),
  • конкретный числовой пример с явными значениями p, q, n, φ(n), e, d и результатами шифрования/дешифрования.
Такая конкретика ускоряет понимание механики RSA и упрощает адаптацию под другие параметры и учебные задания.

❓ Частые вопросы

Подойдет ли для моего ВУЗа?
Структура соответствует стандартным требованиям лабораторных по криптографии: цель, метод, код, результаты и выводы.

Можно адаптировать?
Да. В коде достаточно заменить p и q на другие простые числа и при необходимости расширить обработку блоков вместо символов для шифрования больших сообщений.