debes conocer la llave publica de quien le envías... por eso se comparten los codigos PGP, tu le envías de una vez tu llave publica a el receptor para que pueda enviarte de vuelta algo...
Exacto.
Estás enfocando la criptografía como algo que solo parte de ti, y no es así. La razón de darle el nombre "llave pública" es para que la compartas sin miedo ni temores.
Si tenemos en cuenta que Mario siempre está espiando tu red, puedes hacer esto perfectamente:
-Tu generas tu par de claves publica y privada
-Tu amigo genera par de claves publica y privada.
-Mandas por email a tu amigo la llave pública (o la subes a Internet)
-Tu amigo te manda a ti su llave pública.
Cuando vayas a mandar un mensaje a Miguel, lo cifras con SU llave pública. Y él hará lo mismo con TU llave pública.
Ambos podréis comunicaros y Mario nunca sabrá nada.
El protocolo SSL en buena parte funciona así (o eso tengo entenido). Mediante este método (criptografía asimétrica) se negocia una clave maestra, la cual sirve para cifrar el contenido de las webs con criptografía SIMÉTRICA (porque el rendimiento es muy superior)
Salu2