Quali sono le differenze fra la cifratura simmetrica e asimmetrica, in particolare riguardo alla firma digitale e alla funzione di hash?
Quando si parla di cifratura, e di chiave simmetrica e asimmetrica, l’ultima novità non è necessariamente la cosa migliore. Bisognerebbe sempre utilizzare l’algoritmo di cifratura più indicato per il lavoro che dovrà svolgere, e che è stato ampiamente e pubblicamente analizzato e sottoposto a test. Qualcosa che la comunità di esperti di crittografia non avrebbe certo l’opportunità di fare con un algoritmo di tipo nuovo. Ma diamo uno sguardo ad alcuni degli algoritmi più diffusi.
Crittografia simmetrica e asimmetrica: definizione e spiegazione
Per la maggior parte delle persone, cifratura significa prendere testo in chiaro e convertirlo in testo cifrato utilizzando la stessa chiave, o chiave privata (chiave segreta), per cifrare o decifrare il testo. Questa è la cifratura simmetrica, ed è comparativamente veloce rispetto ad altri tipi di cifratura, come la cifratura asimmetrica. L’algoritmo più largamente utilizzato nella cifratura a chiave simmetrica è quello AES (Advanced Encryption Standard). Esso comprende tre algoritmi di cifratura a blocchi, AES-128, AES-192 and AES-256, ciascuno dei quali è ritenuto sufficiente per proteggere informazioni che gli organismi governativi classificano fino al livello SECRET, mentre le informazioni TOP SECRET richiedono chiavi con lunghezze di 192 o 256 bit.
Il maggior svantaggio della cifratura a chiave simmetrica è che tutte le parti coinvolte devono scambiarsi la chiave usata per cifrare i dati, prima di poter decifrare gli stessi. Questo requisito di distribuire e gestire in maniera sicura grandi numeri di chiavi significa che molti servizi di cifratura devono fare uso di altri tipi di algoritmi di crittografia. Secure MIME (S/MIME) per esempio usa un algoritmo asimmetrico – un algoritmo a chiave pubblica/privata – per la non-repudiation e un algoritmo simmetrico per una protezione efficiente della privacy e dei dati.
Algoritmi di crittografia asimmetrica
Gli algoritmi asimmetrici usano due chiavi interdipendenti, una per cifrare i dati, e l’altra per decifrarli. Questa interdipendenza fornisce una serie di diverse caratteristiche, delle quali probabilmente la più importante è l’impiego nelle firme digitali, che sono utilizzate fra le altre cose per garantire che un messaggio è stato creato da una particolare entità, o per auteticare sistemi o utenti remoti. L’algoritmo asimmetrico RSA (Rivest, Shamir e Adleman) è ampiamente utilizzato in protocolli di commercio elettronico come SSL, ed è ritenuto sicuro presupponendo che vengano fornite chiavi sufficientemente lunghe e usate implementazioni aggiornate.
Poiché RSA è molto più lento della cifratura simmetrica, quello che succede tipicamente è che i dati vengono cifrati con un algoritmo simmetrico, e poi che la comparativamente corta chiave simmetrica è cifrata utilizzando RSA. Ciò permette alla chiave necessaria per decifrare i dati di essere spedita in modo sicuro ad altre parti, assieme ai dati cifrati con la metodologia simmetrica.
La funzione crittografica di hash ha un ruolo abbastanza differente rispetto agli altri algoritmi di cifratura. Essa è utilizzata per restituire un valore basato su una certa mole di dati, ad esempio un file o un messaggio. Ogni cambiamento accidentale o intenzionale sui dati cambierà questo valore di hash. Un buon algoritmo di hash dovrebbe rendere impossibile creare un input iniziale che produce uno specifico valore di hash, o permettere all’input originale di essere calcolato a partire dal valore di hash. MD5 e SHA-1 sono stati algoritmi di hash largamente utilizzati, ma sono attualmente considerati deboli e stanno venendo sostituiti da SHA-224, SHA-256, SHA-384, o SHA-512, talvolta collettivamente denominati come SHA-2.
Anche Microsoft aveva annunciato nel 2005 di stare vietando agli sviluppatori di usare DES, MD4, MD5 e, in alcuni casi, gli algoritmi di cifratura SHA-1, in qualunque funzione. Sebbene non siano ancora stati riportati attacchi sulle varianti SHA-2, esse sono algoritmicamente simili a SHA-1 e dunque, nei prossimi anni, un nuovo standard per hash, SHA-3, verrà selezionato in maniera analoga a AES. Come potete vedere, il panorama della crittografia è in costante cambiamento e per rimanere al passo con gli ultimi sviluppi seguite le news e le raccomandazioni dagli organismi di definizione degli standard, come il National Institute of Standards and Technology.