Общая структура алгоритма

В целом процесс шифрования и расшифрования выглядит следующим образом:

Пусть мы имеем некое сообщение, которые мы хотим зашифровать. Представим его числом

- шифрование сообщения

- расшифрование сообщения

Тут пара чисел является открытым ключем и не является секретом, может передаваться по скомпрометированному каналу. Можно хоть нарисовать их на асфальте центра города. А пара - секретная часть. Число нужно надежно хранить, например, чтобы он хранился в памяти компьютера и никогда не покидал его пределы.

Эти ключи связаны особым образом:

Возьмем два больших простых числа , Вычислим

Вычислим функцию Эйлера

Выберем произвольную экспоненту взаимно простую c

Вычислим число обратное к числу по модулю

Наше сообщение должно быть меньше .

Чтобы прочитать сообщение, злоумышленнику нужно разложить число на его составляющие , . На текущий момент, используют , которое занимают 1024 бита и более. Например, для числа из 2048 бит его десятичная запись будет составлять примерно 600 знаков! Это невероятно огромное число. Современным компьютерам нужны годы, столетия чтобы разложить его на множители.