Есть две 'задачи', какая из них вам нужна, не понятно:
1. передача данных по сети
* что бы никто не подсмотрел
* что бы никто не мог скрытно подменить
это решается ssl шифрованием и удостоверяющими центрами (которым можешь быть ты сам), пример https протокол и инфраструктура вокруг
2. предоставление гарантий что алгоритм на устройстве пользователя не будет подменен на похожий/прикидывающийся настоящим
* что бы никто не мог украсть данные
* что бы никто не мог украсть алгоритмы
* что бы никто не мог навредить соседним устройствам
Эта сложнейшая не решена, но в частных случаях есть какие то решения, типа обфускации алгоритма и структур данных для удорожания их понимания и внесения изменений... т.е. вся защита будет строиться на экономической целесообразности процесса, если взлом будет дороже профита от него, этим заниматься не будут.
Отличный пример - вместо запуска кода на машине пользователя, его можно запустить на защищенной удаленной машине, к которой доступ только по определенным правилам, тупой пример - удаленное управление машиной, на которой запущено требуемое приложение в режиме kiosk-mode, т.е. без интерфейса ОС и возможности выйти за границы этого приложения. Сломать или как то проанализировать приложение в этом случае невозможно, а автоматизация для кражи данных решается лимитами доступа к ним.