Skip to content
/ RSA Public

RSA шифратор и дешифратор текста

License

Notifications You must be signed in to change notification settings

Maritornez/RSA

Repository files navigation

RSA шифратор и дешифратор текста

Описание алгоритма

Криптосистема RSA была разработана в 1977 году и по­лу­чила на­зва­ние в честь своих соз­да­те­лей: Рона Рай­ве­ста (Rivest), Ади Ша­ми­ра (Shamir) и Леонарда А­дле­ма­на (Adleman). Они вос­поль­зо­ва­лись тем фак­том, что на­хо­ж­де­ние боль­ших про­стых чи­сел осу­ще­ст­в­ля­ет­ся лег­ко, но раз­ло­же­ние на мно­жи­те­ли про­из­ве­де­ния двух та­ких чи­сел прак­ти­че­ски не­вы­пол­ни­мо. В 1993 г. метод RSA был обнародован и принят в качестве стандарта (PKCS # 1: RSA Encryption Standard).

1) Генерация ключей

  1. Выбираются два больших простых целых числа p и q приблизительно одинакового размера.
  2. Вычисляется модуль системы n = pq и φ(n) = (p-1)(q-1) – функция Эйлера.
  3. Выбирается достаточно большое число d, удовлетворяющее условию 1 < d < φ(n), и взаимно простое с φ(n), то есть НОД( d, (p-1)(q-1) ) = 1 (см. раздел 2).
  4. Используя расширенный алгоритм Евклида, вычисляется большое целое число e, отвечающее условию (ed) mod φ(n) = 1, 1 < e < φ(n). Метод Евклида находит множество пар (e, y), каждая из которых является решением уравнения: e · d + ( p - 1)(q - 1) · y = 1 в целых числах.

2) Зашифрование и расшифрование

  1. Входное сообщение разбивается на блоки mi, их размер определяется целым k, соответствующим неравенству 10k 1 < n < 10k.
  2. Вычисляется значение ci = mie mod n.
  3. Значение ci, которое является зашифрованным блоком сообщения, посылается по открытым каналам передачи данных.
  4. Расшифрование заключается в вычислении значения mi = cid mod n.

Таким образом, секретным ключом является пара чисел (n,d), а открытым – пара чисел (n,e), но можно взять и наоборот.

Работа программы

Для работы программы нужно ввести три больших целых числа p, q и d. Можно, например, сгенерировать их на сайте https://bigprimes.org/

изображение

изображение

About

RSA шифратор и дешифратор текста

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages