Che cosa sono la crittografia a chiave privata e la crittografia a chiave pubblica, e dove sono utili?

3

Non capisco gli scenari di utilizzo del mondo reale di questi metodi di crittografia. Qualcuno può spiegare come funzionano, con esempi e anche il loro utilizzo nel mondo reale?

    
posta n92 17.07.2011 - 19:29
fonte

2 risposte

10

Wikipedia ha un buon articolo su crittografia a chiave pubblica / privata . Riassumere la crittografia a chiave pubblica / privata è un concetto, non due. L'alternativa alla crittografia a chiave pubblica / privata sta utilizzando la crittografia simmetrica che ha una chiave per coppia di partner di comunicazione.

Nella crittografia asimmetrica una persona / computer ha una coppia di chiavi. Una chiave è tenuta segreta e chiamata chiave privata. L'altro è dato ai partner di comunicazione. Tutto ciò che viene crittografato utilizzando la chiave pubblica può essere decifrato solo utilizzando la chiave privata corrispondente.

La crittografia simmetrica è molto più semplice e più performante, ma non si adatta a un gran numero di partner di comunicazione (10 persone hanno bisogno di 45 tasti per ciascuno di loro per parlare in modo sicuro a tutti gli altri).

Pertanto, entrambi i sistemi vengono spesso utilizzati insieme nel mondo reale: i dati effettivi vengono crittografati utilizzando una chiave di sessione simmetrica, valida solo per una sessione. Questa chiave (o alcune informazioni da cui può essere derivata) viene trasmessa utilizzando la crittografia a chiave pubblica / privata all'inizio della sessione.

crittografia

Tutto ciò che è crittografato usando una chiave pubblica può essere decifrato solo usando la chiave privata.

L'esempio più comune è HTTPS. Quando ti connetti a un server HTTPS, ti invierà un certificato. Un certificato è solo una chiave pubblica con alcune informazioni di identità allegate ad esso. Usando questa chiave pubblica il browser può inviare informazioni al server che solo il server può decifrare, usando la sua chiave privata. Sulla base di ciò, una chiave di sessione simmetrica viene negoziata tra il browser e il server, che viene utilizzata per crittografare il traffico.

Firme

L'utilizzo di una chiave privata può essere firmato e questa firma può essere verificata utilizzando la chiave pubblica. Il caso d'uso più comune è firmare un certificato per dire al mondo che ci si fida che quel certificato contenga informazioni sull'identità corrette. Ci sono un certo numero di autorità di certificazione là fuori che sono normalmente considerate affidabili dai browser comuni.

Altri casi d'uso

La crittografia a chiave pubblica / privata può essere utilizzata per molte cose diverse. L'esempio standard è l'e-mail, ma questo non è molto diffuso perché è troppo complicato per gli utenti medi di computer. Le smartcard sono un esempio migliore: memorizzano la chiave privata e hanno un piccolo processore in grado di eseguire la crittografia e la firma. Quindi la chiave privata non lascia mai il dispositivo.

    
risposta data 17.07.2011 - 19:52
fonte
6

Mi piace la risposta di Hendrik, ma ho pensato di inserire altre cose che non rientrano in un commento.

Uso comune dei termini:

  • Chiave pubblica Crypto - si riferisce a come crittografia asimmetrica perché una delle due chiavi è resa pubblica
  • Chiave privata Crypto - fa riferimento alla crittografia simmetrica in cui l'unica chiave deve essere mantenuta privata

Uso generale:

La crittografia simmetrica è generalmente abbastanza veloce, quindi è facilmente utilizzabile in applicazioni sensibili al tempo, ad esempio la crittografia di sessione tra due punti. TLS / SSL lo utilizza in questo modo.

La crittografia simmetrica ha un grosso svantaggio: chiunque / qualsiasi cosa utilizzi deve avere quella chiave privata e la chiave privata deve essere trasportata con attenzione altrimenti perderà il valore della sua privacy. Quindi Symmetric crypto NON può essere utilizzato per la prova di identità o firma. Questo è sempre stato il grande valore aggiunto della crittografia asimmetrica, in cui è possibile mantenere la chiave privata e distribuire la chiave pubblica a tutti gli altri.

Il grande esempio ovvio (come ha detto Hendrick) sono i certificati server su una sessione HTTPS. Se stai osservando attentamente, la crypto asimmetrica viene effettivamente utilizzata in un certo numero di modi in quel singolo caso:

  • firma digitale - il certificato del server è firmato da un'autorità di certificazione (o è autofirmato) - questo dimostra che un po 'più potente (come GoDaddy) ha verificato queste informazioni e ne ha affermato la veridicità. Queste informazioni non sono state manomesse e puoi provarlo taggando le informazioni del certificato e confrontandole con la firma della CA dopo che è stato decrittografato con la chiave pubblica della CA.

  • crittografia: il client utilizza il certificato del server per crittografare e inviare le informazioni necessarie per l'impostazione della sessione.

  • identificazione - il fatto che il server possa decodificare le informazioni del cliente dimostra che possiede la chiave privata. La prova della chiave privata dimostra che si sta effettivamente parlando con il server certificato dalla CA.

Ma - una volta che tutto il lavoro iniziale dell'handshake SSL / TLS è terminato, le chiavi asimmetriche del server sono obsolete - i due computer stanno parlando usando la crittografia simmetrica. La crittografia asimmetrica, se usata esclusivamente per la crittografia, tende ad essere più lenta della crypto simmetrica, quindi il più delle volte un sistema assumerà un approccio ibrido e userà l'asimmetria per le cose che solo la crypto asimmetrica può fare (identificazione) e ricadrà sulla crittografia simmetrica per le cose in cui il tempo è un fattore.

    
risposta data 18.07.2011 - 20:28
fonte

Leggi altre domande sui tag