Suponga que dos dispositivos se están comunicando a través de algún tipo de método que puede verse y replicarse públicamente. Los atacantes tienen la capacidad de replicar la información enviada entre los dos, y los atacantes pueden escuchar las transferencias. Supongamos que ambos dispositivos no pueden saber si están recibiendo comunicación del otro dispositivo o de un atacante.
¿Qué técnicas criptográficas pueden permitir que la información no sea leída por los atacantes (encriptación), pero también permiten validar los paquetes de información antiguos que provienen de un dispositivo legítimo? Además, ¿cómo podrían hacerse dos paquetes que son idénticos para que no parezcan idénticos a los atacantes?
He desarrollado una solución que creo que cumple todos estos objetivos, pero debe haber soluciones ya creadas para este propósito. Toma los datos de la carga útil, concatena el equivalente de un código de autenticación de dos fábricas que cambia cada pocos segundos y concatena un número aleatorio, por lo que las cargas útiles idénticas se verán diferentes. Luego, toda la carga útil se cifra mediante algún tipo de cifrado simétrico. Ambos dispositivos ya tienen un archivo de clave secreta compartida.
Siento que tiene que haber algún otro tipo de solución aquí, pero no sé cómo se llama o qué investigar. No quiero "rodar mi propio cripto", y quiero encontrar una solución existente y verificada. ¿Alguien me puede dar algunos temas para investigar?