Estoy trabajando en una aplicación de chat y estoy tratando de asegurar la comunicación mediante el uso de cifrado asimétrico. Puedo cifrar un mensaje con la clave pública del receptor y descifrar un mensaje con la clave privada del receptor.
Sin embargo, ¿cómo puede un cliente estar seguro de que el remitente es el verdadero remitente?
Ejemplo: Tenemos a Alice y Bob. Alice encripta un mensaje con la clave pública de Bob, y Bob descifra el mensaje con su propia clave privada. Sin embargo, ¿cómo puede estar seguro de que el remitente del mensaje es Alice?
He leído acerca de cómo agregar un nonce, pero no estoy seguro de cómo ayudará eso. Lo que entiendo es que Alice agregará un número aleatorio al mensaje que envía. Bob podrá, de alguna manera, identificar al remitente del mensaje como Alicia mirando este número.
Digamos que el mensaje es: "Hola Bob" y el nonce es "6". El mensaje se cifra con la clave pública de Bob, pero ¿qué pasa con el nonce?