È necessaria una chiave pubblica RSA per decifrare una chiave privata RSA?

1

So che le chiavi RSA sono estremamente difficili da decifrare, soprattutto in considerazione della lunghezza del bit di crittografia adeguata. Tuttavia, avendo accesso alla chiave pubblica è più facile rompere la chiave privata? Immagino che spezzare la chiave privata sia essenzialmente impossibile senza la chiave pubblica. Se non hai la chiave pubblica, dovresti indovinare completamente sia il modulo che l'esponente fino a quando la chiave risultante può finalmente decodificare un messaggio crittografato.

So che una chiave pubblica, per definizione, è pubblica e accessibile. Tuttavia, se stiamo parlando di un'applicazione client-server, e se controlli il server e il client, potresti facilmente implementare determinate pratiche con cui proteggere la chiave pubblica in una certa misura, rendendola meno pubblica, se vuoi.

Quindi, se qualcuno tentasse di decifrare una chiave privata, avrebbe prima bisogno di accedere alla chiave pubblica?

In base alla risposta a questa domanda, sembra che la risposta sia sì . Se questo è corretto, allora in che misura l'aiuto chiave pubblico ha la funzione di scomporre la chiave privata? Quanto sarebbe più difficile senza la chiave pubblica?

    
posta Nerdizzle 25.07.2017 - 04:18
fonte

1 risposta

1

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.

    
risposta data 25.07.2017 - 09:42
fonte

Leggi altre domande sui tag