No, sapere che il pubblico non è tenuto a decifrare una chiave privata RSA. Dato un messaggio crittografato, l'utente malintenzionato deve solo conoscere qualcosa che gli consente di distinguere un successo nella decrittografia del messaggio da un errore. Questo qualcosa può essere qualsiasi cosa, comunemente è una certa conoscenza del contenuto dei dati come ad esempio la conoscenza di una sfida nella sua forma chiara, la presenza di alcuni tag, della struttura dei dati, delle statistiche dei dati come per esempio una presenza di un gran numero di parole inglesi corrette o la presenza di un checksum.
Sebbene non sia male nella sua essenza, la tua idea di mantenere privata la chiave pubblica riduce la tua crittografia a chiave pubblica a una situazione che molto probabilmente sarebbe risolvibile usando la crittografia simmetrica.
Uno dei grandi problemi con la crittografia simmetrica era che il mittente e il destinatario dovevano trovare un modo per scambiare un paio di chiavi segrete in modo sicuro mentre non esiste un canale di comunicazione sicuro già stabilito e nessun modo per controllarsi reciprocamente. La soluzione principale per questo era utilizzare lo scambio di chiavi fuori banda.
La crittografia asimmetrica, a cui appartiene la crittografia RSA, ha risolto questo problema proponendo un sistema in cui il mittente e il destinatario possono pubblicare le proprie chiavi pubbliche in una directory comune, tali chiavi pubbliche essendo opzionalmente firmate da un'entità di terze parti fidata da entrambe le parti. Ciò consente di rimuovere l'onere di dover scambiare le chiavi utilizzando metodi fuori banda.
Tuttavia, se lo desideri, puoi comunque utilizzare metodi fuori banda per scambiare la chiave pubblica. Non è necessario, a seconda di cosa intendi fare potrebbe essere più complesso e difficile da mantenere nel tempo, non aumenterà la tua sicurezza in alcun modo visibile ma non diminuirà la tua sicurezza.
Per andare (un po ') nella tua direzione, nota che tutte le chiavi pubbliche sono necessariamente rese pubbliche. Un buon esempio di questo sono le chiavi di autenticazione SSH dell'utente. Sebbene conservato in forma chiara, il pubblico dell'utente di solito non viene pubblicato (a differenza della chiave pubblica del server). Tuttavia questo fino a quando non vi è alcun vantaggio nel farlo. Non appena diventa più pratico memorizzare le chiavi pubbliche in una directory attendibile (ad esempio una directory aziendale interna), di solito non ci sono problemi.