la crittografia rappresenta lo scudo invisibile che protegge i dati nel mondo digitale. Grazie a essa, possiamo comunicare, fare acquisti e svolgere le nostre attività online in modo sicuro e confidenziale, cioè mettere in campo una strategia di sicurezza informatica.
Cos’è la crittografia
La crittografia è la scienza che studia i metodi per trasformare un dato (un testo, un’immagine, un file) in una forma incomprensibile, chiamata testo cifrato. Solo chi possiede la chiave corretta può invertire questo processo, tornando al testo originale. 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.
La cifratura di dati può essere definito 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.
Come funziona la crittografia
La crittografia si basa su algoritmi matematici complessi e su chiavi crittografiche. Mentre i tipi di crittografia sono simmetrica e asimmetrica.
Come avviene la cifratura
- Algoritmo: è la formula matematica che determina come trasformare i dati. Esistono diversi tipi di algoritmi, ognuno con le proprie caratteristiche di sicurezza e velocità.
- Chiave: è una sequenza di caratteri che, combinata con l’algoritmo, determina la trasformazione dei dati. Più la chiave è lunga e complessa, più difficile sarà decifrare il messaggio senza di essa.
Tipi di crittografia
- Simmetrica: utilizza la stessa chiave sia per cifrare che per decifrare i dati. È veloce ma richiede uno scambio sicuro della chiave tra le parti coinvolte.
- Asimmetrica: utilizza una coppia di chiavi, una pubblica e una privata. La chiave pubblica serve per cifrare i messaggi, mentre quella privata per decifrarli. Questo sistema è più sicuro per lo scambio di chiavi, ma è più lento.
La crittografia oggi è sempre più raffinata
Oggi la comunicazione 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 NIST – National Institute of Standards and Technology.
I 2 tipi di crittografia: simmetrica e asimmetrica
In base al genere di chiave utilizzato, è possibile suddividere in due tipologie i sistemi di cifratura informatica: crittografia 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). Se, 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.
Una chiave crittografica è una stringa alfanumerica che serve a decodificare le informazioni protette dalle stesse. Non si tratta dunque di una semplice password e la sua lunghezza determina la sua difficoltà di decriptazione. Data la velocità sempre maggiore dei processori la dimensione in bit della chiave dovrà essere sempre maggiore.
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).
SHA-3 rappresenta l’ultimo degli standard appartenenti alla famiglia degli algoritmi hash sicuri ed è stato rilasciato nel 2015 dal NIST – National Institute of Standards and Technology. Si tratta di un sottoinsieme di Keccak, la famiglia di primitive crittografiche.
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.
Nello specifico, oggi si guarda alla Quantum Key Distribution (QKD) come soluzione contro gli attacchi che possono colpire i computer quantistici, anche se al momento la sfida principale è quella di allungare la distanza (oggi limitata) che si può coprire con QKD. Per rispondere a questo limite, e in generale per risolvere i problemi più critici di sicurezza digitale, la Commissione Europea ha lanciato l’iniziativa European Quantum Communication Infrastructure per favorire la realizzazione di servizi all’avanguardia di comunicazione quantistica (iniziativa di cui l’Italia è tra i primi firmatari).
La crittografia contro lo sniffing
La crittografia informatica serve per proteggere i dati dallo sniffing. Lo sniffing equivale a spiare il contenuto dei dati alla ricerca di informazioni interessanti. Con spoofing invece si mira agli indirizzi IP, creando un indirizzo falso che non corrisponde a quello usato dall’attaccante.
La crittografia end to end, ecco in cosa consiste
La crittografia end to end (in italiano, da un estremo all’altro) consiste in un sistema di comunicazione cifrata pensato per impedire a terzi di leggere o alterare messaggi scambiati tra le persone. Una soluzione di crittografia end-to-end non permette la lettura dei dati anche a chi li archivia, consentendo la fruizione (e se occorre il recupero in chiaro) degli stessi solo a mittente e destinatari.
Più nello specifico, le terze parti, inclusi Internet Service Provider e gestori delle reti di telecomunicazione, non possono cioè leggere i messaggi, ma solo trasmetterli ed eventualmente archiviarli, in forma cifrata. Questo avviene in quanto l’accesso alle chiavi di crittografia è possibile solo e unicamente per gli attori coinvolti nella comunicazione.
Crittografia end-to-end e Whatsapp
WhattsApp garantisce (come si legge sul suo sito) che solo le persone che stanno comunicando possono leggere i contenuti dei loro messaggi, in una logica, di crittografia end to end.
In particolare, l’adozione del protocollo di crittografia Signal (il servizio di messaggistica criptato per smartphone e desktop) consente di proteggere la privacy degli utenti.
Crittografia, il significato nella storia
Un aneddoto: il primo caso di testi cifrati nella storia occidentale? Sembra essere quello descritto da Plutarco nella Vita di Lisandro dove si fa cenno all’impiego da parte degli spartani della cosiddetta scitala lacedemonica (che, secondo gli studiosi, risalirebbe quindi almeno al V sec. a. C.).
La scitala lacedemonica era composta da un bastone di lunghezza e larghezza nota (scitale) e da un nastro (generalmente di cuoio) sul quale scrivere. Il suo funzionamento era piuttosto semplice. Si avvolgeva il nastro attorno al bastone e vi si scriveva sopra per colonne parallele all’asse del bastone lettera dopo lettera. Una volta sciolto il nastro il testo scritto era trasposto e non era facilmente riconducibile all’originale senza un bastone di eguale misura a quello originale.
Anche Giulio Cesare usava la crittografia usando la tecnica della traslazione nelle lettere che inviava.