Приветствую!
Имеется некое устройство - сервер, которое слушает TCP порт. И есть некий клиент, который к данному серверу подключается. Клиент и сервер обмениваются информацией по определённому протоколу, наподобие модемного - с управляющими ASCII символами и прочей прелестью. Задача поставлена так - на сервер и на клиент заливается ключ 3DES или RSA, и организуется шифрование сетевого соединения. Оно должно быть прозрачным для ПО клиента и сервера, то есть они должны получать уже расшифрованные данные, так как сам процесс получения сообщений опирается на STX, ETX байты и т. п., поэтому получать мусор и расшифровывать его средствами самого ПО - не вариант. Мне лично на ум ничего кроме VPN не приходит, так как с другими способами я не знаком. Возможно, кто-то подскажет, как организовать именно симметричное шифрование с заранее выданными ключами сетевого соединения так, чтобы это не повлияло на работу серверного и клиентского ПО. Возможно, я просто не знаком с какими-то технологиями. И ещё - это будет кросплатформенность. Сервер и клиент могут работать практически на любых операционных системах. то есть это шифрование должно как бы дополнить описание самого протокола обмена данными. Как-то так. Прошу помощи компетентного сообщества!
Проще всего - "SSh-туннель". Поищите на Хабре статью про SSh - там было чётко расписано и это , и овер до фига всего разного. Не найдёте - я найду. Когда-то давно я по ней делал примерно это.
Для Windows - есть PuTTY.
В качестве ответа явно напрашивается IPSec со статическими ключами. Если требуется кроссплатформенность, то проще всего использовать дополнительное сетевое оборудование для организации туннелей. Либо разбираться с Openswan для Linux и встроенными средствами для IPSec в Windows.