Non hai menzionato quali sono i sistemi operativi coinvolti (presumo Linux sull'rPi) né se hai accesso / agio con la modifica del codice.
Sebbene sia possibile applicare la crittografia nel client e nel server, sarebbe molto più semplice implementare un tunnel tra i 2 dispositivi: si punta il client corrente su un nuovo servizio sull'host client e si limita il server ad ascoltare un servizio complementare in esecuzione su rPi. Tra i 2 nuovi servizi la connessione è crittografata.
Ci sono molte scelte per la tecnologia che usi i nuovi servizi, ma le scelte più pratiche sono basate su TLS o ssh. Per TLS puoi usare stunnel o perno (lo stesso servizio, configurato in modo diverso a ciascuna estremità) per ssh si usa port forwarding da un client ssh come putty / plink / ssh a opensshd sull'rPi. In entrambi i casi è necessario configurare il firewall sull'rPi per accettare solo le connessioni sulla porta 19000 da localhost.
Entrambi i metodi si basano su coppie di chiavi, ma il meccanismo basato sul TLS ha molte più scelte e una potenziale complessità. OTOH, se stai usando un client MSWindows, l'interfaccia utente di stunnel è forse più facile da vivere rispetto a stucco o plink.