No mencionó qué sistemas operativos están involucrados (supongo que Linux en el rPi) ni si tiene acceso / se siente cómodo modificando el código.
Si bien podría aplicar el cifrado en el cliente y el servidor, sería mucho más sencillo implementar un túnel entre los 2 dispositivos: apunta a su cliente actual hacia un nuevo servicio en el host del cliente y restringe el servidor para que escuche una Servicio complementario que se ejecuta en el rPi. Entre los 2 nuevos servicios se encripta la conexión.
Hay muchas opciones para la tecnología en la que utiliza los nuevos servicios, pero las opciones más prácticas se basan en TLS o ssh. Para TLS puede usar stunnel o stud (el mismo servicio, configurado de manera diferente en cada extremo) para ssh usa reenvío de puertos desde un cliente ssh como putty / plink / ssh al opensshd en el rPi. En ambos casos, debe configurar el firewall en el rPi para que solo acepte conexiones en el puerto 19000 de localhost.
Ambos métodos se basan en pares de claves, pero el mecanismo basado en TLS tiene muchas más opciones y una posible complejidad. OTOH, si está utilizando un cliente de MSWindows, la interfaz de usuario stunnel es quizás más fácil de usar que con putty o plink.