Che cos'è la crittografia simmetrica?

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 generale è lo stesso, possono crittografare i dati, ma funzionano secondo principi diversi e hanno casi d'uso diversi. La differenza titolare, tuttavia, descrive le chiavi di crittografia. Un algoritmo di crittografia simmetrica utilizza un'unica chiave condivisa per crittografare e decrittografare i dati. Un algoritmo di crittografia asimmetrica utilizza due chiavi collegate, una per decrittografare e una per decrittografare.

Proprietà degli algoritmi di cifratura simmetrica

Come affermato in precedenza, la caratteristica distintiva chiave di un algoritmo di crittografia simmetrica è il fatto che si utilizza un'unica chiave sia per crittografare che per decrittografare i dati. Questo non vuol dire che esiste solo una possibile chiave di crittografia, solo se si crittografa qualcosa con una chiave, è necessario utilizzare la stessa chiave per decrittografarlo. A volte viene definita crittografia a chiave condivisa. Questo perché ogni partecipante deve conoscere la stessa chiave e quindi è necessario condividerla.

Questa proprietà di utilizzare la stessa chiave per crittografare e decrittografare può essere un po' un problema. Per utilizzare un algoritmo di crittografia simmetrico è necessario essere in grado di comunicarlo in modo sicuro. Ma non puoi farlo senza avere già un mezzo sicuro per comunicare. Per fortuna, questo problema può essere risolto con la crittografia asimmetrica, ma vale la pena capirlo.

Le chiavi per gli algoritmi di crittografia simmetrica tendono ad essere piuttosto piccole, almeno rispetto alla crittografia asimmetrica. Ciò li rende relativamente facili da trasmettere anche su una connessione di rete lenta e meno vulnerabili agli errori in una rete inaffidabile. Gli algoritmi di crittografia simmetrica sono anche veloci rispetto agli algoritmi asimmetrici.

Tutte queste proprietà rendono gli algoritmi di crittografia simmetrica particolarmente utili per la crittografia di massa dei dati. Questo è particolarmente vero quando la velocità è un problema.

Cifrari a flusso e cifrari a blocchi

AES è probabilmente l'algoritmo di crittografia simmetrica più noto. È utilizzato praticamente in tutto ciò che crittografa molti dati ed è una parte standard delle suite di crittografia utilizzate in HTTPS. AES è un cifrario a blocchi con blocchi a 128 bit. Un cifrario a blocchi funziona crittografando blocchi di dati alla volta. Ogni blocco deve avere le stesse dimensioni. Questo va bene quando i dati rimanenti sono più grandi della dimensione del blocco, ma significa che è necessario utilizzare una qualche forma di riempimento per completare il blocco.

Un cifrario a flusso funziona crittografando quantità di dati molto più piccole alla volta, in genere un byte alla volta. Una variazione di questo concetto è il cifrario di sostituzione che funziona sulle lettere. I cifrari di sostituzione sono vulnerabili all'analisi della frequenza e quindi sono generalmente inaffidabili e inutilizzati. Tuttavia, i cifrari di flusso non presentano questo problema.

Gli algoritmi simmetrici tendono a essere vulnerabili agli attacchi con testo in chiaro noto, agli attacchi con testo in chiaro scelto, alla crittoanalisi differenziale e alla crittoanalisi lineare. Gli algoritmi moderni, tuttavia, sono stati attentamente progettati tenendo conto di questo e quindi questi problemi non sono un problema.

Conclusione

La crittografia simmetrica è una forma di crittografia che utilizza la stessa chiave per crittografare e decrittografare i dati. In alcuni casi, l'algoritmo stesso è lo stesso sia per crittografare che per decrittografare, sebbene non sia necessariamente così. Le chiavi di crittografia tendono ad essere relativamente brevi e facili da trasmettere. La chiave, tuttavia, deve essere trasmessa su un canale sicuro in quanto deve essere comunicata tra tutte le parti coinvolte. Gli algoritmi di crittografia simmetrica tendono ad essere molto più veloci degli algoritmi di crittografia asimmetrica.