Per il n. 1 la solita risposta sarebbe al negozio la chiave in un HSM (modulo di sicurezza hardware). Questo è l'unico modo veramente sicuro per memorizzare una chiave privata, in quanto qualsiasi chiave memorizzata sul disco rigido verrà compromessa se la tua macchina è compromessa.
La domanda n. 2 è ciò che viene solitamente risolto da una PKI (infrastruttura a chiave pubblica). Altri hanno affermato che non è necessario trasferire in modo sicuro una chiave pubblica, ma ciò non è completamente vero; se qualcuno dovesse eseguire un attacco man-in-the-middle e inserire la sua chiave pubblica, allora sarebbe in grado di decodificare tutte le comunicazioni future. La chiave in sé non è sensibile e non ha bisogno di essere protetta, ma è necessario un modo per assicurarsi che sia autentica. La riservatezza non è richiesta ma l'autenticità è.
Quando si utilizza una PKI, la chiave pubblica viene firmata da un'altra chiave più in alto nella gerarchia per produrre un certificato e questa firma verifica che la chiave sia autentica. Certo, allora hai il problema di distribuire la chiave pubblica della prossima chiave nella gerarchia e così via. Generalmente questo viene risolto distribuendo la chiave pubblica root insieme alla propria applicazione, come una CA radice affidabile (autorità di certificazione), quindi può essere utilizzata per verificare l'autenticità di qualsiasi catena di certificati con questa CA alla radice.
La domanda n. 3 è di nuovo qualcosa che può essere raggiunta se si utilizza un HSM per proteggere le proprie chiavi.