Comprendo cómo funciona RSA (generar un par de claves privada / pública, enviar una clave pública a quien quiera hablar, cifrar con público, descifrar con privado), ¿pero no hay una falla en esto?
Digamos que A quiere enviar un mensaje a B. A genera su par de claves pública / privada y envía la clave pública a través de una red a B, ¿verdad? ¿Qué es lo que impide que C venga e intercepte esta clave pública, generando su propia clave pública own y luego enviando su clave pública own a B? Luego, cuando B envía su clave pública a A, C podría interceptarlo, almacenarlo y enviar su propia clave pública a A.
Ahora, cuando A envía un mensaje cifrado utilizando lo que piensa es la clave pública de B (pero en realidad es C), C interceptará este mensaje, lo descifrará y luego lo cifrará nuevamente utilizando el público real de B llave.
¿Esto funcionaría? ¿Si no, porque no? ¿Es solo una cuestión de usar una red segura para enviar la clave pública?