Capisco come funziona RSA (generare una coppia di chiavi privata / pubblica, inviare la chiave pubblica a chiunque tu voglia parlare, cifrare con il pubblico, decifrare con privato), ma non c'è un difetto in questo?
Diciamo che A vuole inviare un messaggio a B. A genera la sua coppia di chiavi pubblica / privata e invia la chiave pubblica su una rete a B, giusto? Che cosa sta fermando C che arriva e intercetta questa chiave pubblica, generando la sua chiave pubblica proprio e poi inviando la sua chiave pubblica proprio a B? Quindi, quando B invia la sua chiave pubblica a A, C potrebbe intercettarlo, memorizzarlo e inviare la propria chiave pubblica ad A.
Ora, quando A invia un messaggio crittografato usando ciò che pensa è la chiave pubblica di B (ma in realtà è C), C intercetterà questo messaggio, lo decodificherà, quindi lo crittograferà nuovamente usando l'attuale pubblico di B chiave.
Funzionerebbe? Se no, perché no? È solo questione di utilizzare una rete sicura per inviare la chiave pubblica?