Я думаю, что вы слишком обдумываете это, переходя на уровень IP / MAC.
Обычный способ создать приложение для личных сообщений - просто сделать что-то похожее на то, что делает приложение для чата в браузере, чтобы сохранить конфиденциальность.Он подключается к центральному серверу (веб-серверу) с использованием шифрования SSL / TLS и сохраняет там сообщение.Получатель будет подключаться таким же образом, чтобы получить сообщение.
Если вы хотите добавить шифрование поверх этого, чтобы ничего, хранящегося на сервере, не могло быть дешифровано, вам нужен какой-то другой способ распространения созданного пользователемключи (например, клиенты генерируют локальный ключ и отдают открытый ключ серверу, тогда другие пользователи могут запросить у сервера открытый ключ пользователя)
Причина перехода на уровень IP / MAC состоит в том, чтонет никакого смысла в том, что все отправленные сообщения будут проходить через несколько машин, чтобы попасть в нужное место в Интернете, без шифрования любая из этих машин сможет прочитать сообщение.