I sistemi di crittografia sono attualmente divisi in due principali campi di studio: crittografia simmetrica e asimmetrica. Mentre la crittografia simmetrica viene spesso utilizzata in modo intercambiabile con la crittografia simmetrica, la crittografia asimmetrica comprende due casi d’uso principali: crittografia asimmetrica e firme digitali.

Pertanto possiamo rappresentare i gruppi nel modo seguente:

  • Crittografia a chiave simmetrica 

    • Crittografia simmetrica

  • Crittografia asimmetrica (o crittografia a chiave pubblica)

    • Crittografia asimmetrica (o crittografia a chiave pubblica)

    • Firme digitali (potrebbero includere o meno la crittografia)

Questo articolo si concentrerà sugli algoritmi di crittografia simmetrici e asimmetrici.


Crittografia simmetrica e simmetrica Crittografia asimmetrica

Gli algoritmi di crittografia sono spesso divisi in due categorie, note come crittografia simmetrica e asimmetrica. La differenza fondamentale tra questi due metodi di crittografia si basa sul fatto che gli algoritmi di crittografia simmetrica utilizzano un'unica chiave, mentre la crittografia asimmetrica utilizza due chiavi diverse ma correlate. Tale distinzione, anche se apparentemente semplice, evidenzia le differenze funzionali tra le due forme di tecniche di crittografia e le modalità in cui vengono utilizzate.


Comprendere le chiavi di crittografia

Nella crittografia, gli algoritmi di crittografia generano chiavi come una serie di bit utilizzati per crittografare o decrittografare le informazioni. Il modo in cui vengono utilizzate queste chiavi è responsabile della differenza tra crittografia simmetrica e asimmetrica. 

Mentre gli algoritmi di crittografia simmetrica utilizzano la stessa chiave per eseguire funzioni di crittografia e decrittografia, l'algoritmo di crittografia asimmetrica utilizza una chiave per crittografare i dati e un'altra chiave per decrittografarli. Nei sistemi asimmetrici, la chiave utilizzata per la crittografia è nota come chiave pubblica e può essere liberamente condivisa con altri. D'altra parte, la chiave utilizzata per decrittografare è la chiave privata e deve essere mantenuta segreta.

Ad esempio, se Alice invia a Bob un messaggio protetto da crittografia simmetrica, dovrà condividere con Bob la stessa chiave utilizzata per crittografarlo, in modo che possa decrittografare il messaggio. Ciò significa che se un utente malintenzionato intercetta la chiave, avrà accesso al messaggio crittografato. 

Tuttavia, se Alice utilizza un sistema asimmetrico, crittograferà il messaggio con la chiave pubblica di Bob, in modo che Bob possa decrittografarlo con la sua chiave privata. Pertanto, la crittografia asimmetrica offre un livello di sicurezza più elevato, poiché anche se i messaggi vengono intercettati e viene trovata la chiave pubblica, non saranno in grado di decrittografare il messaggio.


Lunghezza chiave

Un'altra differenza funzionale tra la crittografia simmetrica e quella asimmetrica è legata alla lunghezza delle chiavi, che viene misurata in bit ed è direttamente correlata al livello di sicurezza fornito da ciascun algoritmo di crittografia.

Nei sistemi simmetrici, le chiavi vengono selezionate in modo casuale e la loro lunghezza è generalmente impostata su 128 o 256 bit, a seconda del livello di sicurezza richiesto. Nella crittografia asimmetrica, tuttavia, deve esistere una relazione matematica tra le chiavi pubblica e privata, ovvero esiste uno schema matematico tra le due. Poiché questo modello può essere potenzialmente sfruttato dagli aggressori per violare la crittografia, le chiavi asimmetriche devono essere molto più lunghe per fornire un livello di sicurezza equivalente. La differenza relativa alla lunghezza della chiave è così grande che una chiave simmetrica a 128 bit e una chiave asimmetrica a 2048 bit forniscono livelli di sicurezza approssimativamente uguali.

 

Vantaggi e svantaggi

Entrambi i tipi di crittografia presentano vantaggi e svantaggi relativi. Gli algoritmi di crittografia simmetrica sono molto più veloci e richiedono meno potenza di elaborazione computazionale, ma il loro principale punto debole è la distribuzione delle chiavi. Poiché per crittografare e decrittografare le informazioni viene utilizzata la stessa chiave, questa chiave deve essere distribuita a chiunque abbia bisogno di accedere ai dati, il che naturalmente genera un aumento dei rischi legati alla sicurezza (come illustrato in precedenza).

D’altro canto, la crittografia asimmetrica risolve il problema della distribuzione delle chiavi utilizzando chiavi pubbliche per la crittografia e chiavi private per la decrittografia. Lo svantaggio, tuttavia, è che i sistemi di crittografia asimmetrici sono molto lenti rispetto ai sistemi simmetrici e richiedono molta più potenza di elaborazione a causa della maggiore lunghezza delle chiavi.


Casi d'uso

Crittografia simmetrica

Grazie alla sua maggiore velocità, la crittografia simmetrica è ampiamente utilizzata per proteggere le informazioni su molti sistemi informatici moderni. Ad esempio, l'Advanced Encryption Standard (AES) viene utilizzato dal governo degli Stati Uniti per crittografare informazioni classificate e riservate. AES ha sostituito il Data Encryption Standard (DES), sviluppato negli anni '70 come standard per la crittografia simmetrica.


Crittografia asimmetrica

La crittografia asimmetrica può essere applicata a sistemi in cui un numero maggiore di utenti potrebbe aver bisogno di crittografare e decrittografare un messaggio o un insieme di dati, soprattutto quando la velocità e la capacità di elaborazione computazionale non sono le preoccupazioni principali. Un esempio di questo sistema è la posta elettronica crittografata, in cui è possibile utilizzare una chiave pubblica per crittografare il messaggio e una chiave privata per decrittografarlo.


Sistemi ibridi

In molte applicazioni, la crittografia simmetrica e asimmetrica viene utilizzata insieme. Esempi tipici di tali sistemi ibridi sono i protocolli di crittografia Security Sockets Layer (SSL) e Transport Layer Security (TLS), progettati per fornire comunicazioni sicure su Internet. I protocolli SSL sono attualmente considerati non sicuri e il loro utilizzo dovrebbe essere interrotto. D’altro canto, i protocolli TLS sono considerati sicuri e sono stati ampiamente utilizzati da tutti i principali browser web.


Le criptovalute utilizzano la crittografia?

Le tecniche di crittografia vengono utilizzate in molti portafogli di criptovaluta come un modo per fornire livelli più elevati di sicurezza agli utenti finali. Gli algoritmi di crittografia vengono applicati, ad esempio, quando gli utenti impostano una password per il loro portafoglio di criptovaluta, il che significa che il file utilizzato per accedere al software è stato crittografato.

Tuttavia, poiché Bitcoin e altre criptovalute utilizzano coppie di chiavi pubbliche-private, molti credono erroneamente che i sistemi blockchain facciano uso di algoritmi di crittografia asimmetrici. Come accennato in precedenza, la crittografia asimmetrica e le firme digitali sono i due principali casi d’uso della crittografia asimmetrica (crittografia a chiave pubblica).

Pertanto non tutti i sistemi di firma digitale utilizzano tecniche di crittografia, anche se presentano una chiave pubblica e una chiave privata. Infatti, un messaggio può essere firmato digitalmente senza essere crittografato. RSA è un esempio di algoritmo che può essere utilizzato per firmare messaggi crittografati ma l'algoritmo di firma digitale utilizzato da Bitcoin (chiamato ECDSA) non utilizza la crittografia.


Considerazioni finali

Nel mondo odierno dipendente dal digitale, sia la crittografia simmetrica che quella asimmetrica svolgono un ruolo importante nel mantenere riservate le informazioni e proteggere le comunicazioni. Sebbene entrambi possano essere utili, ciascuno presenta vantaggi e svantaggi e viene quindi utilizzato in applicazioni diverse. Poiché la scienza della crittografia continua ad evolversi per difendersi dalle minacce più nuove e sofisticate, i sistemi crittografici simmetrici e asimmetrici continueranno probabilmente ad essere rilevanti per la sicurezza informatica.