Para el # 1, la respuesta habitual sería almacenar la clave en un HSM (módulo de seguridad de hardware). Esta es la única forma verdaderamente segura de almacenar una clave privada, ya que cualquier clave que esté simplemente almacenada en el disco duro se verá comprometida si su máquina está comprometida.
La pregunta # 2 es la que normalmente resuelve una PKI (infraestructura de clave pública). Otros han dicho que no es necesario transferir de forma segura una clave pública, pero esto no es del todo cierto; Si alguien realizara un ataque de hombre en el medio e insertara su clave pública en su lugar, entonces podrían descifrar todas las comunicaciones futuras. La clave en sí misma no es sensible y no necesita ser protegida, pero sí necesita alguna forma de asegurarse de que sea auténtica. No se requiere confidencialidad, pero sí la autenticidad.
Cuando usa una PKI, la clave pública está firmada por otra clave más arriba en la jerarquía para producir un certificado, y esta firma verifica que la clave sea auténtica. Por supuesto, entonces tiene el problema de distribuir la clave pública de la siguiente clave en la jerarquía y así sucesivamente. Por lo general, esto se resuelve distribuyendo la clave pública raíz junto con su aplicación, como una CA de confianza (autoridad de certificación), luego se puede usar para verificar la autenticidad de cualquier cadena de certificados con esta CA en su raíz.
La pregunta # 3 es de nuevo algo que se puede lograr si está utilizando un HSM para proteger sus claves.