La crittografia: che cos’è

La crittografia: che cos’è

5 Settembre 2020 Off Di Paolo Cusaghi

Che cos’è e cosa significa crittografia? L’etimologia aiuta a capire: Kryptós (nascosto) e graphía (scrittura) sono le due parole greche che compongono il termine crittografia. Quest’ultima, infatti, altro non è che un sistema pensato per rendere illeggibile un messaggio a chi non possiede la soluzione per decodificarlo. Quale sistema di crittografia è utilizzato in informatica? In questo articolo si approfondirà questo argomento guardando alla situazione attuale e a ciò che possiamo aspettarci nel breve futuro.

Oggi la comunicazione – di qualsiasi genere – ha acquisito un ruolo sempre più centrale nella vita di ognuno di noi; nell’era di internet miliardi informazioni (anche sensibili) sono in circolazione sulla rete. Per questi motivi si è reso ancor più necessario lo sviluppo di sofisticati sistemi capaci di garantire un elevato livello di confidenzialità. La cifratura informatica come la conosciamo oggi, dunque, è una materia in costante evoluzione. E proprio per questo suo continuo evolversi, gli esperti consigliano di non affidarsi mai all’ultimo algoritmo crittografico uscito. Paradossalmente, sistemi già conosciuti e quindi testati pubblicamente (caratteristica che non può ovviamente essere garantita nel caso degli algoritmi più nuovi) garantiscono maggiore sicurezza . Non solo. Gli esperti del settore raccomandano anche di attenersi alle notizie ufficiali, come quelle rilasciate dal National Institute of Standards and Technology.

A cosa serve un sistema crittografico e come funziona

La crittografia, dunque, può essere definita un sistema che tramite l’utilizzo di un algoritmo matematico agisce su una sequenza di caratteri, trasformandola. Tale trasformazione si basa sul valore di una chiave segreta, ovvero il parametro dell’algoritmo di cifratura/decifratura. Proprio la segretezza di questa chiave rappresenta il sigillo di sicurezza di ogni sistema crittografico.

2 tipi di crittografia

In base al genere di chiave utilizzato, è possibile suddividere in due tipologie questo sistema di crittografia informatica: cifratura simmetrica e asimmetrica; quando è presente una chiave singola si parla di crittografia a chiave simmetrica o a chiave segreta (la chiave del mittente e quella del destinatario sono la stessa), quando invece vi sono due chiavi di cifratura distinte si parla di crittografia a chiave asimmetrica o a chiave pubblica (la chiave di cifratura è pubblica, mentre la chiave di decifratura è privata).

Crittografia simmetrica: qualche esempio

La crittografia simmetrica prevede quindi l’uso di un’unica chiave sia per nascondere il messaggio che per sbloccarlo. Questa risulta relativamente veloce e semplice da implementare rispetto ad altri tipi di cifratura (come quella asimmetrica).

L’algoritmo oggi più diffuso utilizzato in crittografia a chiave simmetrica è chiamato Advanced Encryption Standard (AES). Fu sviluppato alla fine degli anni ‘90 dai due crittografi belgi, Joan Daemen e Vincent Rijmen, su richiesta del National Institute of Standards and Technology. È standard pubblico dalla fine del 2001.

L’AES si basa su diverse operazioni eseguite su blocchi di dati da 16 byte, ripetute più volte, chiamate round e si compone di tre algoritmi di cifrature a blocchi di 128 bit (divisi appunto in 4×4 sotto-blocchi da 8 bit). Nel caso di chiave a 128 bit l’AES ha 10 round, che diventano 12 con chiave a 192 bit e 14 con chiave a 256 bit.

Nel 2003 la National Security Agency statunitense ha approvato l’AES a 128 bit per proteggere le informazioni governative classificate secret. L’AES a 192 e 256 bit è riservato per i documenti top secret.

Lo svantaggio principale della crittografia a chiave simmetrica è che le parti coinvolte devono scambiarsi la chiave utilizzata per crittografare i dati prima di poterli decifrare. Questa esigenza di distribuire e gestire un elevato numero di chiavi in modo sicuro, per la maggior parte dei servizi crittografici, implica la necessità di fare uso anche di altri tipi di algoritmi di cifratura.

Algoritmi a crittografia asimmetrica

Gli algoritmi asimmetrici utilizzano due chiavi interdipendenti, una per crittografare i dati, e l’altro per decodificarli. Una privata e una pubblica. Se una chiave è utilizzata per l’operazione di cifratura, l’altra deve essere impiegata per la decifratura e viceversa. Come si intuisce dai nomi stessi, la chiave privata è conosciuta solo dal proprietario, va tenuta segreta e non deve essere condivisa con nessun altro. La chiave pubblica è condivisa da tutti i corrispondenti.

Il fatto di essere a conoscenza della chiave pubblica non permette di risalire in alcun modo alla chiave privata. Uno degli esempi più utilizzati è l’algoritmo Rivest, Shamir, Adleman (RSA) creato nel 1977 dai tre ricercatori del MIT di cui porta il nome. Spesso usato nei protocolli del commercio elettronico come SSL, RSA è ritenuto sicuro per via delle chiavi sufficientemente lunghe e dell’uso di implementazioni aggiornate.

Poiché RSA è molto più lento rispetto alla crittografia simmetrica, in genere i dati sono cifrati con un algoritmo simmetrico e poi la chiave simmetrica, relativamente breve, è crittografata mediante RSA. Questo permette di inviare in modo sicuro ad altre parti la chiave necessaria per decodificare i dati, insieme ai dati simmetricamente crittografati.

Crittografia dei dati, l’algoritmo di hash e la verifica dell’integrità di un messaggio

La funzione crittografica di hash (ossia una classe speciale delle funzioni di hash che dispone di alcune proprietà che lo rendono adatto per l’uso in un sistema di crittografia dei dati in informatica) trasforma una certa quantità di dati, come un file o un messaggio di lunghezza variabile, in una breve stringa fissa (detta hash value o message digest). Si utilizza questo sistema di crittografia dei dati per verificare l’integrità di un messaggio, ovvero controllare che i dati non abbiano subito cambiamenti.

Qualsiasi modifica accidentale o intenzionale ai dati, infatti, cambierà il valore dell’hash. Un buon hash è unidirezionale e deve risultare quindi estremamente difficile da invertire (non permettendo così di risalire al valore originario). MD5 e SHA-1 sono stati a lungo gli algoritmi di hash più utilizzati, ma sono ormai considerati deboli e vengono sostituiti dagli SHA-2 (di cui fanno parte SHA-224, SHA-256, SHA-384 o SHA-512).

Anche se sulle varianti SHA-2 non è stato riportato ancora nessun attacco, queste sono algoritmicamente simili alla SHA-1 e così, secondo gli esperti, nei prossimi anni sarà selezionato un nuovo standard hash, SHA-3.

Sistemi crittografici basati sui reticoli

La crittografia basata sui reticoli (lattice-based) usa costrutti algebrici bidimensionali noti, appunto, come “reticoli”, resistenti agli schemi di calcolo quantistici.

Le primitive lattice-based sono già state inserite correttamente nei protocolli crittografici quali TLS e Internet Key Exchange. Potenzialmente tutti i protocolli più diffusi di sicurezza possono essere resi sicuri sostituendo algoritmi vulnerabili con quelli di questa natura.

La crittografia lattice-based è anche la base per un’altra tecnologia di crittografia denominata Fully Homomorphic Encryption o FHE. Essa può consentire di eseguire calcoli sui file senza doverli decifrare (con un vantaggio in termini di snellimento dei processi). Svolgendo un’operazione su due dati cifrati si ottiene un risultato cifrato che, decifrato, è uguale al risultato che si otterrebbe lavorando sui dati non cifrati.

Cos’è la crittografia quantistica

La crittografia quantistica si basa su un approccio che utilizza proprietà della meccanica quantistica nel momento in cui viene scambiata la chiave in modo che questa non possa essere intercettata senza che mittente e destinatario se ne accorgano. Si parla infatti di distribuzione quantistica di chiavi, ossia di una trasmissione che possa vantare una condizione di segretezza perfetta dal punto di vista matematico.

Tra le novità provenienti dal nostro Paese, vi sono quelle del gruppo QuantumFuture del Dipartimento di Ingegneria dell’Informazione dell’Università di Padova attivo nello sviluppo di sistemi di crittografia che sfruttano la meccanica quantistica. In uno studio del gruppo, pubblicato nella rivista Optica della Optical Society of America, si fa riferimento a un innovativo sistema di QKD (distribuzione quantistica di chiave) basato sul Pognac, modulatore di polarizzazione sviluppato in QuantumFuture stesso. Tale sistema, secondo quanto illustrato dai suoi creatori, si contraddistingue per la sua semplicità e perché minimizza il numero dei componenti hardware richiesti. Inoltre, trasmette informazione quantistica precisa, con basso tasso di errore.