Меня давно интересовало, как работают асимметричные системы шифрования (это те, что с открытым ключом). Казалось бы, информации навалом, а «человеческим языком» почитать про это негде. Но однажды тов. Диггер подкинул ссылочку на статью, в которой доступно описывается алгоритм шифрования RSA (за что ему большое спасибо).
Я написал про это небольшую заметку, которую опубликовал в своём ЖЖ. Здесь находится переработанный вариант этой заметки. Рассматриваются только практические примеры работы с RSA; объяснение «почему так получается» отсутствует.
Требования

Для практических занятий вам потребуется программа GNU bc (которая известна как “arbitrary precision calculator language”).
А начнём мы с теоретической части.