Cos'è la crittografia asimmetrica?

Ci sono molte parti diverse della crittografia. Se si desidera crittografare alcuni dati, tuttavia, esistono due tipi di algoritmi che è possibile utilizzare: algoritmi di crittografia simmetrica e algoritmi di crittografia asimmetrica. Il concetto è lo stesso: possono crittografare i dati ma lavorare su principi diversi e avere altri casi d'uso.

La differenza titolare, tuttavia, descrive le chiavi di crittografia. Un algoritmo di crittografia simmetrica utilizza una singola chiave condivisa per crittografare e decrittografare i dati. Un algoritmo di crittografia asimmetrica utilizza due chiavi collegate, una per decrittografare e una per decrittografare.

Terminologia

Gli algoritmi di crittografia asimmetrica si basano sull'uso di due chiavi distinte. Una chiave può essere utilizzata per crittografare i dati e l'altra per decrittografare. Le due chiavi di crittografia non sono solo due vecchi valori. Sono intrinsecamente correlati e devono essere generati da un algoritmo di generazione di chiavi.

Un nome alternativo per la crittografia asimmetrica è crittografia a chiave pubblica. Questo perché è previsto che una delle due chiavi sia pubblica. Il concetto tradizionale è che la chiave di crittografia è condivisa pubblicamente e la chiave di decrittografia è mantenuta strettamente privata. Per questo motivo, la chiave di crittografia viene definita chiave pubblica e la chiave di decrittografia è la chiave privata.

Questa configurazione consente a chiunque di crittografare un messaggio in modo che solo il proprietario della chiave privata possa decrittografarlo. Ciò è utile perché chiunque può comunicare in modo sicuro con il destinatario previsto con un'unica chiave di crittografia pubblicata. Per comunicare in modo sicuro, il destinatario dovrebbe utilizzare la chiave pubblica del mittente originale.

Teoricamente, non c'è motivo per cui non potresti scambiare le chiavi e condividere la chiave di decrittazione mantenendo privata la chiave di crittografia. Questo potrebbe essere utilizzato per verificare l'autenticità della fonte, se non fornire alcuna sicurezza significativa. Tuttavia, ciò non avviene nella pratica, poiché esistono altri meccanismi per ottenere lo stesso risultato.

Proprietà degli algoritmi di crittografia simmetrica

Gli algoritmi di crittografia asimmetrica richiedono l'uso di chiavi molto più grandi rispetto agli algoritmi di crittografia simmetrica quando forniscono lo stesso livello di sicurezza. In genere, un algoritmo di crittografia simmetrico con una chiave di crittografia a 128 bit è considerato sicuro, sebbene siano preferite chiavi a 256 bit. In un algoritmo di crittografia asimmetrica, le chiavi a 2048 bit sono considerate sicure.

L'esempio della chiave a 2048 bit si applica a RSA, che è stato a lungo lo standard per la crittografia asimmetrica. La crittografia a curva ellittica, tuttavia, è un concetto più recente che è anch'esso asimmetrico ma utilizza chiavi significativamente più piccole. Una chiave RSA a 2048 bit offre una sicurezza equivalente a una chiave a curva ellittica a 224 bit.

Mancia: I valori di cui sopra sono considerati sicuri per uso commerciale, ma la NSA richiede chiavi più forti per la crittografia top-secret. Sono necessarie chiavi RSA di almeno 3072 bit, mentre sono necessarie chiavi a curva ellittica a 384 bit. Vale la pena notare che una chiave RSA a 3072 bit è più debole di una chiave a curva ellittica a 384 bit.

Gli algoritmi di crittografia asimmetrica tendono ad essere relativamente lenti rispetto agli algoritmi di crittografia simmetrica. La comunicazione sicura può essere eseguita su un canale non sicuro se entrambe le parti generano una coppia di chiavi asimmetriche e quindi scambiano le chiavi pubbliche. In questo modo, entrambe le parti possono inviare messaggi che solo l'altra può decifrare.

In pratica, almeno una delle parti deve verificare l'integrità della propria chiave pubblica. Questo viene fatto tramite PKI o infrastruttura a chiave pubblica. Ciò assume la forma di autorità di certificazione che firmano le chiavi di altri per dimostrare che la loro identità è stata verificata. In questo sistema, tutte le autorità di certificazione devono essere attendibili; senza quello, il sistema andrà in pezzi.

Utilizzare in pratica

Gli algoritmi di crittografia asimmetrica in genere non vengono utilizzati per la crittografia di massa, soprattutto quando il tempo o le prestazioni rappresentano un problema. Possono essere utilizzati per crittografare messaggi una tantum come il contenuto di un'e-mail. Tuttavia, la loro capacità di proteggere un canale non sicuro li rende una scelta eccellente per un protocollo di scambio di chiavi che trasmette chiavi simmetriche che possono quindi essere utilizzate per una crittografia di massa più efficiente.

Questo è il caso d'uso in TLS, che fornisce sicurezza in HTTPS. Un utente si connette a un server Web; quindi si scambiano chiavi pubbliche per crittografare piccoli messaggi tra loro. Il server quindi genera una chiave simmetrica, la crittografa con la chiave pubblica dell'utente e la invia a quest'ultimo. L'utente decrittografa la chiave e può quindi utilizzare la chiave simmetrica per crittografare in modo efficiente le future comunicazioni al server.

Un'autorità di certificazione nel processo precedente verifica la chiave pubblica del server. Ciò consente all'utente di essere sicuro di comunicare con chi sta cercando di comunicare. Nella maggior parte dei casi, l'utente genera una chiave monouso, poiché il server non ha bisogno di verificare con quale utente sta comunicando.

Conclusione

Gli algoritmi di crittografia asimmetrica utilizzano due chiavi distinte. Una chiave viene utilizzata per la crittografia e l'altra per la decrittografia. Le chiavi sono collegate matematicamente e devono essere generate da un algoritmo di generazione delle chiavi; i valori casuali non funzionano. In genere, la chiave di crittografia è condivisa pubblicamente, consentendo a chiunque di crittografare un messaggio destinato al proprietario della coppia di chiavi.

Finché la chiave di decrittografia rimane privata, solo il proprietario della chiave può decrittografare i messaggi crittografati con la chiave pubblica. Pertanto, la crittografia asimmetrica viene spesso definita anche crittografia a chiave pubblica.