I sistemi crittografici sono attualmente divisi in due principali aree di studio: crittografia simmetrica e asimmetrica. La crittografia simmetrica è spesso utilizzata come sinonimo di crittografia simmetrica e la crittografia asimmetrica copre due casi d'uso principali, la crittografia asimmetrica e le firme digitali.

Pertanto possiamo rappresentarli come segue:

  • 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.


Simmetrico vs. crittografia asimmetrica

Gli algoritmi di crittografia sono spesso divisi in due categorie, note come crittografia simmetrica e asimmetrica. La differenza fondamentale tra i due metodi è che gli algoritmi di crittografia simmetrica utilizzano una singola chiave, mentre gli algoritmi di crittografia asimmetrica utilizzano due chiavi diverse ma correlate. Questa differenza, sebbene apparentemente semplice, rappresenta grandi differenze funzionali tra le due forme di crittografia e il modo in cui vengono utilizzate.


Correlazione chiave

Nella crittografia, gli algoritmi di crittografia generano chiavi sotto forma di bit sequenziali che vengono utilizzati per crittografare e decrittografare un'informazione. Il modo in cui vengono utilizzate queste chiavi tiene conto della differenza tra i metodi simmetrici e asimmetrici.

Mentre gli algoritmi di crittografia simmetrica utilizzano la stessa chiave per eseguire questa funzione, un algoritmo di crittografia asimmetrica, invece, utilizza una chiave per crittografare i dati e un'altra per decrittografarli. Nei sistemi asimmetrici la chiave utilizzata per la crittografia, detta anche chiave pubblica, può essere liberamente condivisa con altri utenti. D'altro canto, la chiave utilizzata per la decrittazione è privata e deve essere mantenuta segreta.

Ad esempio, se Alice invia a Bob un messaggio protetto da crittografia simmetrica, deve fornire a Bob la stessa chiave utilizzata per crittografarlo in modo che possa leggere il messaggio. Ciò significa che se un utente malintenzionato lo intercetta, potrà accedere alle informazioni crittografate.

Tuttavia, se Alice utilizza invece il metodo asimmetrico, crittografa il messaggio con la chiave pubblica di Bob, in modo che Bob possa decrittografarlo con la sua chiave privata. Pertanto, la crittografia asimmetrica fornisce un livello di sicurezza più elevato perché anche se qualcuno intercetta i tuoi messaggi e trova la chiave pubblica, non potrà farci nulla.


Lunghezza chiave

Un'altra differenza funzionale tra la crittografia simmetrica e quella asimmetrica riguarda la lunghezza delle chiavi, che vengono misurate in bit e sono direttamente correlate al livello di sicurezza di ciascun algoritmo.

Nei sistemi simmetrici, le chiavi vengono selezionate in modo casuale e la loro lunghezza generalmente accettata varia tra 128 e 256 bit, a seconda del livello di sicurezza richiesto. Nella crittografia asimmetrica deve esserci una connessione matematica tra le chiavi pubblica e privata, ovvero sono collegate da una determinata formula matematica. Per questo motivo, gli aggressori possono utilizzare questo modello per violare la cifratura e le chiavi asimmetriche devono essere molto più lunghe per fornire un livello di sicurezza equivalente. La differenza nella lunghezza della chiave è così significativa che una chiave simmetrica a 128 bit e una chiave asimmetrica a 2048 bit forniscono approssimativamente lo stesso livello di sicurezza.

 

Vantaggi e svantaggi

Questi due tipi di crittografia presentano vantaggi e svantaggi l'uno rispetto all'altro. Gli algoritmi di crittografia simmetrica sono molto più veloci e richiedono meno potenza di calcolo, ma il loro principale svantaggio è la distribuzione delle chiavi. Poiché per crittografare e decrittografare le informazioni viene utilizzata la stessa chiave, questa chiave deve essere condivisa con tutti coloro che necessitano dell'accesso, il che naturalmente crea alcuni rischi (come descritto in precedenza).

A sua volta, la crittografia asimmetrica risolve il problema della distribuzione delle chiavi utilizzando chiavi pubbliche per la crittografia e chiavi private per la decrittografia. Il compromesso è che i sistemi asimmetrici sono molto lenti rispetto ai sistemi simmetrici e richiedono molta più potenza di elaborazione a causa della lunghezza della chiave.


Opzioni dell'applicazione

Crittografia simmetrica

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


Crittografia asimmetrica

La crittografia asimmetrica può essere applicata a sistemi in cui molti utenti potrebbero aver bisogno di crittografare e decrittografare messaggi o un pacchetto di dati, soprattutto quando la velocità e la potenza di elaborazione non sono una priorità. Un semplice esempio di tale sistema è la posta elettronica crittografata, in cui è possibile utilizzare una chiave pubblica per crittografare i messaggi e una chiave privata per decrittografarli.


Sistemi ibridi

In molte applicazioni, la crittografia simmetrica e asimmetrica viene utilizzata insieme. Un buon esempio di tali sistemi ibridi sono i protocolli crittografici Security Sockets Layer (SSL) e Transport Layer Security (TLS), sviluppati per fornire comunicazioni sicure su Internet. I protocolli SSL sono attualmente considerati non sicuri e se ne sconsiglia l'utilizzo. A loro volta, i protocolli TLS sono considerati sicuri e sono ampiamente utilizzati da tutti i browser Web moderni.


Utilizzo della crittografia di criptovaluta

I metodi di crittografia vengono utilizzati da molti portafogli crittografici come un modo per fornire un maggiore livello di sicurezza agli utenti finali. Gli algoritmi di crittografia vengono utilizzati quando l'utente imposta una password per il file del portafoglio, che viene utilizzato per accedere al software.

Tuttavia, poiché Bitcoin e altre criptovalute utilizzano una coppia di chiavi pubblica e privata, esiste un malinteso comune secondo cui i sistemi blockchain utilizzano algoritmi di crittografia asimmetrici. Tuttavia, come notato in precedenza, la crittografia asimmetrica e le firme digitali sono i due principali casi d’uso della crittografia asimmetrica (crittografia a chiave pubblica).

Di conseguenza, non tutti i sistemi di firma digitale utilizzano la crittografia, anche se forniscono chiavi pubbliche e private. Infatti, un messaggio può essere firmato digitalmente senza utilizzare una cifratura. RSA è un esempio di algoritmo che può essere utilizzato per firmare messaggi crittografati, ma l'algoritmo di firma digitale utilizzato in Bitcoin (chiamato ECDSA) non dispone di crittografia.


Conclusione

Sia la crittografia simmetrica che quella asimmetrica svolgono un ruolo importante nel garantire la sicurezza delle informazioni e delle comunicazioni sensibili nel mondo digitale di oggi. Entrambi i codici possono essere utili, perché ognuno di essi ha i propri vantaggi e svantaggi, quindi vengono utilizzati in casi diversi. Poiché la crittografia come scienza continua ad evolversi per proteggere da minacce nuove e più gravi, i sistemi crittografici simmetrici e asimmetrici saranno sempre rilevanti per la sicurezza informatica.