Шифрование на языке Си#
Привет,
У меня есть клиент-серверное приложение TCP/IP .
клиент перед началом получения данных с сервера отправляет свой пароль и имя пользователя, затем сервер проверяет пароль с именем пользователя, если он совпадает с базой данных сервера, сервер начинает отправлять данные, иначе сервер отказывается от соединения.
проблема в том, что мне нужен способ зашифровать сообщение, содержащее пароль, отправленный на сервер .
каков наилучший способ достижения этой цели?
я искал в интернете (шифрование с закрытым ключом ,шифрование с открытым ключом).. но у меня есть некоторые моменты:
1. в закрытом ключе проблема, где клиент сохранит закрытый ключ? а что, если я захочу изменить закрытый ключ?
2. Что делать, если кто-то сниф на данные и получить часть зашифрованного сообщения, содержащего зашифрованный пароль и отправить его снова на сервер из своей программы?