Mi equipo y yo estamos desarrollando un videojuego multijugador con Client / Server-Topology . Esto asegura la coincidencia de los clientes que tienen la intención de hacer trampa debido a la autoridad del servidor , pero aún así permite que el servidor modifique los paquetes salientes y entrantes, así como los datos de usuario de los jugadores.
Elegimos usar AES como método de encriptación, pero tuvimos el problema de informar a todos los pares sobre la clave utilizada para asegurar los paquetes de red con este método de encriptación.
Leí el algoritmo de intercambio de claves Diffie-Hellman-Merkle que funcionó perfectamente entre dos pares (Alice y Bob, como se les llama en los ejemplos). El problema es que nuestro juego permite coincidencias con un número variable de jugadores, que van de 2 a 16.
La condición parece ser que cada cliente necesita generar el mismo número b (exponente de g ) para compartir el resultado de su ecuación con el servidor, de modo que ambos tengan el mismo resultado que es s .
No tengo idea de cómo generar una clave secreta en cada par, si la hora a la que los clientes se conectan y el número de conexiones durante la coincidencia son variables.