Alcuni carta descrizioni ruoli attuali di chiavi pubbliche e private come abbastanza simmetrica ma non puoi assolutamente scambiare ruoli di chiave privata e pubblica nel mondo reale.
L'uso comune:
- la chiave pubblica deve essere utilizzata per la cifratura e la verifica della firma
- la chiave privata deve essere utilizzata per la decrittazione e la firma
Ci sono diversi motivi per che:
non si desidera lasciare all'utente la scelta di quale chiave deve essere pubblicata e quale non è. La chiave pubblica è pubblicata in tutto il mondo e puoi considerarla come tua identità pubblica. La parte privata è necessaria quando devi provare a qualcun altro che hai più informazioni di altre su questa identità: puoi leggere i messaggi inviati, puoi firmare i messaggi che possono essere verificati da chiunque conosca il tuo ID pubblico. Se la parte della chiave pubblica/privata da pubblicare fosse lasciata all'utente, terminerai con gli utenti che pubblicano entrambi. Ma questa non è la ragione principale.
quando si hanno le chiavi private, hai davvero entrambi i tasti ogni implementazione comune So offrono strumenti per estrarre chiavi pubbliche da file privati. Questo è vero per pgp, gpg, openssl. Significa che i cosiddetti file di chiavi private memorizzano sia le chiavi private che quelle pubbliche come descritto negli algoritmi. Questo è di design.
Per esempio con OpenSSL la sequenza di comandi per generare una coppia di chiavi RSA può essere:
openssl genrsa -out private.key 2048
openssl rsa -in private.key -pubout -out public.key
dovrebbe essere abbastanza chiaro che il primo comando generare entrambe le chiavi nel file della chiave privata e che la chiave pubblica viene semplicemente estratta da essa.
La conseguenza è che se la tua chiave privata viene compromessa, entrambe le tue chiavi saranno compromesse. Il contrario è sicuro, non è possibile dedurre la chiave privata se si conosce la chiave pubblica né dal file né da un attacco matematico.
- cifratura con chiave privata è matematicamente debole: bene, al punto precedente è già abbastanza, ma alcuni utenti subdoli potrebbe essere considerato usando la crittografia asimmetrica mantenendo entrambe le chiavi nascoste per lo scambio di dati. Non usare la cifratura simmetrica se si vuole fare questo tipo di scambi. Sì, è possibile crittografare un messaggio utilizzando la chiave privata e decodificarlo utilizzando uno pubblico (in pratica è ciò che viene utilizzato per la firma, ma il caso d'uso è diverso in quanto si dispone anche di un messaggio iniziale). I parametri interni delle due chiavi non sono i nomi e tutta la forza della crittografia è stata provata solo per la solita direzione e l'uso comune.
I * think * questo dipende in gran parte dall'algoritmo di crittografia utilizzato. In alcuni sono intercambiabili, in altri non lo sono. Questo è legato a questa domanda: http://stackoverflow.com/questions/696472/given-a-private-key-is-it-possible-to-derive-its-public-key –
+1 per chiedere qualcosa I ' Mi sono chiesto per un po '. –
Correlato a http://security.stackexchange.com/questions/52495/can-rsa-keys-be-swapped per RSA. – Gnubie