Entiendo cómo funciona la infraestructura de clave pública.
Hay una clave privada y pública, y alguien puede usar la clave pública para cifrar los datos que solo se pueden descifrar con la clave privada.
Sin embargo, parece que hay un error con esto ...
Cuando quieres que alguien, por ejemplo, Bob te envíe un mensaje secreto, le envías la clave:
Public key ==> Bob
Bob luego cifra los datos y me los devuelve.
Data ==> Public key ==> back to me
Pero, ¿qué sucede si en la primera etapa Public key ==> Bob
un atacante modifica la clave pública a una a la que tiene la clave privada y luego desencripta los datos que Bob envía sin saberlo?
¿Cómo se evita esto?