El servidor y el cliente tienen una clave previamente compartida K. Suponiendo que la clave compartida previamente es segura, por lo que nadie más que el servidor / cliente puede cifrar / descifrar.
El cliente envía un nonce N al servidor, luego el servidor devuelve el mensaje M en forma cifrada AES_CBC_Encrypt (M + N, K, IV) al cliente. Así que el cliente puede verificar si hay un ataque de reproducción que intenta enviar un mensaje caducado.
¿Es necesario que el cliente envíe N en forma encriptada AES_CBC_Encrypt (N, K, IV) o está bien simplemente enviar N en claro.
(M y N son una matriz de 16 bytes, M + N significa concatenación de M y N).