При запуске клиента автоматически генерируется пара ключей, которая используется на протяжении кратковременного (рекомендованно) общения. Сервер видит лишь открытые ключи шифрования и зашифрованные сообщения.
- Если хочешь поговорить с кем-то по локальной сети, запусти local.exe
- Если хочешь поговорить с кем-то удаленно, запусти server.exe где угодно, подключись к нему и общайся!
- Генерируются связанные между собой ключи: открытый (public) и закрытый (private).
- Происходит обмен открытых ключей между пользователями.
- Пользователи шифруют свои сообщения полученными ключами собеседников и отправляют результаты.
- Пользователи расшифровывают полученные сообщения с помощью своих закрытых ключей.
http://www.michurin.net/computer-science/rsa.html
https://stuvel.eu/python-rsa-doc/usage.html#generating-keys
Как сделать обмен сообщениями в локальной сети? Сокеты в Python.