Obiettivi e aspettative educative del supplemento in questo corso
Prerequisiti per lo studio della crittografia e dei suoi tipi
Studiare le lezioni di algoritmo.
Dopo lo studio di questa lezione, i cari amici di Ottimo Academy sapranno:
- Definire la crittografia e spiegare perché ne abbiamo bisogno.
- Riconoscere la crittografia come fenomeno non recente ma storico, millenario.
- Spiegare la differenza tra algoritmi crittografici simmetrici e algoritmi crittografici asimmetrici.
- Spiegare la differenza tra una chiave pubblica e una chiave privata.
Nota: questa lezione è solo una spiegazione introduttiva delle aspettative e della struttura del corso di alfabetizzazione digitale.
Per questo motivo si occupa solo della descrizione generale della terminologia specifica senza complessità tecniche e specialistiche.
Pertanto, la presente lezione è da considerarsi più un’introduzione al concetto di crittografia e non menziona i punti relativi alla programmazione e all’implementazione di algoritmi crittografici e alle sfide tecniche e matematiche in questo campo.
Da bambino scrivevi una parte delle tue memorie in un linguaggio in codice che solo tu conoscevi?
Hai mai scambiato lettere e messaggi di testo “speciali”* con amici e compagni di classe?
Naturalmente, sappiamo molto bene che il contenuto di quei messaggi non era di grande valore: il vero divertimento di questi giochi di solito stava tutto nel crittografare e decrittografare i messaggi.
Se da bambino non avevi familiarità con questi metodi di codificazione, probabilmente ti sarà capitato di usare una busta per garantire la sicurezza delle informazioni scambiate.
In età adulta, invece, potrebbe esserti capitato di coprire gli assegni con nastro adesivo trasparente.
Tutte queste piccole accortezze rientrano nel campo della sicurezza delle comunicazioni (Communication Security) e della sicurezza delle informazioni (Information Security).
Ma ritorniamo all’ultimo esempio.
Attaccare del nastro adesivo sulla cifra di controllo di un assegno non impedisce ad altre persone di vederla:
l’impiegato di banca o chiunque riceva l’assegno, infatti, potrebbero scoprire se il numero è cambiato.
Fuor di metafora, in tal caso con il nastro non hai fornito la protezione dell’accesso (Access Security), ma hai creato una protezione delle modifiche (Modification Security).
Una parte importante della conoscenza crittografica riguarda la sicurezza dello scambio di informazioni (Information Exchange Security).
Quando si parla di “sicurezza nello scambio di informazioni”, nel caso più semplice si intende indicare una soluzione che minimizzi il rischio di danneggiare o di modificare il messaggio inviato.
Ad esempio, quando vogliamo inviare un messaggio o informazioni a un destinatario ma non ci fidiamo dell’insieme di strumenti e canali e della piattaforma di comunicazione che esiste tra noi e il destinatario.
Storia della crittografia: la crittografia è una nuova preoccupazione?
Si può facilmente intuire che la questione della crittografia e della protezione dei dati non è una nuova sfida.
Anche gli antichi re affrontarono la questione della sicurezza dei loro messaggi:
assicurare la fedeltà e l’accuratezza di un messaggio non doveva essere facile quando, a volte, erano necessarie settimane o mesi per spedire una lettera da un angolo all’altro di un impero.
A quel tempo la sicurezza delle informazioni poteva essere garantita in modi diversi.
Il Cifrario di Cesare è uno dei metodi più famosi al mondo.
Secondo lo storico Svetonio, Giulio Cesare utilizzava una chiave di 3 per i suoi messaggi: questo significa che, ad esempio, per scrivere A, utilizzava la lettera D.
In questo modo, “Ottimo” si potrebbe scrivere come “RWWLPR”.
Naturalmente, non abbiamo dimenticato che l’alfabeto delle lettere di Cesare era romano.
A quel tempo, i re di Persia usavano un altro metodo che testimonia una maggiore preoccupazione alla modifica del messaggio, più che alla lettura del contenuto.
Per questa ragione le lettere importanti venivano duplicate due volte e inviate a destinazione da due tipografi ( “messaggeri”) che non si conoscevano in due direzioni diverse.
Dopo aver ricevuto entrambe le copie e aver verificato che fossero uguali, il destinatario seguiva le istruzioni del messaggio.
Naturalmente, anche la codifica e l’uso di simboli sono stati comuni in Persia, ma il loro utilizzo non era necessariamente legato alla protezione dei dati.
Sappiamo che Jabir Ibn Hayyan ha iniziato a scrivere formule chimiche con simboli ed era principalmente interessato alla formulazione e alla codifica.
Ancora oggi nella lingua inglese, quando qualcuno scrive qualcosa di incomprensibile, si dice che abbia scritto in Gibberish (in italiano “Grammelot”, ossia una lingua di suoni simili a parole ma privi di significato reale):
molti linguisti ritengono che il termine derivi dal nome Jaber , per indicare qualcuno che scrive in un codice criptato e, come per gli scritti di Jabir, non può essere letto e compreso facilmente.
Perché la discussione sugli algoritmi crittografici è così pervasiva oggi?
Lo sviluppo della tecnologia dell’informazione e la diffusione di Internet e delle reti di comunicazione hanno permesso a chiunque di inviare e ricevere messaggi.
Collegandosi a Internet, ogni persona diventa allo stesso tempo mittente e destinatario di informazioni; nell’invio di ogni messaggio, nel percorso di questi trasmettitori e ricevitori, è posizionata una moltitudine di strumenti di comunicazione, reti e interruttori.
Quando invii un messaggio a qualcuno su Internet,
questo messaggio passa attraverso dozzine di nodi nella rete e raggiunge il destinatario dopo più transazioni pratiche.
Anche quando invii un’e-mail a un amico in una strada vicina, il messaggio probabilmente viaggerà attraverso diverse città o paesi e quindi raggiungerà il tuo amico la cui posizione è molto vicina a te.
Pertanto si può affermare che la sicurezza delle comunicazioni oggi è un’esigenza di tutti coloro che sono connessi a Internet e lo utilizzano per scambiare dati e messaggi.
Come proteggere il messaggio indipendentemente dal messenger
Se non hai familiarità con la crittografia, potrebbe non essere facile comprenderne le complessità.
Proviamo a rappresentarle con un esempio reale.
Supponiamo di avere una valigia e di volerci mettere un pacco da inviare a Ottimo Academy.
Poiché non conosci la persona che porta la valigia, è importante che ti assicuri che non possa vedere cosa è contenuto al suo interno.
Se c’è un altro canale di comunicazione (es. telefono) tra te e Ottimo, non è difficile.
blocchi la valigia con un codice e chiami Ottimo per comunicare la password.
Ma cosa succede se non ci sono altri mezzi di comunicazione tra di noi, oltre alla persona che trasporta il bagaglio?
Il metodo che proponiamo qui sotto non è la soluzione più semplice, ma può aiutarci a comprendere lo spazio di progettazione degli algoritmi di crittografia.
Una volta inserito il pacco nella valigia, puoi chiuderlo con un lucchetto di cui hai la chiave.
Ora spedisci il pacco a Ottimo e anche noi la chiudiamo con un lucchetto di cui abbiamo la chiave.
Solo tu e noi abbiamo le due chiavi dei lucchetti e non le diamo alla persona che sposta la valigia.
Questa ti riporterà la valigia, tu la sbloccherai e quindi ce la restituirai.
Ora anche noi possiamo sbloccarla e rimuovere il pacchetto.
Non stiamo dicendo che questa sia la soluzione migliore o più logica da seguire, ma un esempio del genere può illustrare le sfide e le complessità della trasmissione di un messaggio tra mittente e destinatario quando tutte le loro comunicazioni sono limitate a un solo canale di comunicazione.
Cosa si intende per crittografia e decrittografia nello spazio digitale?
Naturalmente qui non abbiamo serrature, né valigie, né chiavi : abbiamo gli algoritmi, la crittografia e la decrittografia.
La crittografia (Encryption) nello spazio digitale è un algoritmo che trasforma il tuo testo originale e chiaro in testo illeggibile (dal vettore del messaggio).
Il testo originale (Clear-text) si chiama testo in chiaro e il testo crittografato e (apparentemente) illeggibile (Cipher-text) si chiama testo cifrato.
Il messaggio non è necessariamente un testo (Text); dato che la letteratura sulla crittografia fiorì negli anni tra la Seconda Guerra Mondiale e la Guerra fredda, quando la maggior parte dei messaggi era puramente testuale, il termine è rimasto “testo” anche se si tratta di numeri, immagini o altri dati non testuali.
Ancora oggi, in molti testi specialistici, chiunque voglia leggere il testo del messaggio nel suo percorso verso il destinatario e usarlo a proprio vantaggio è definito nemico.
Ovviamente, se stai definendo un algoritmo per la crittografia (Encryption) o il blocco delle informazioni, devi definire un altro algoritmo per la decrittografia (Decryption).
Nel seguito di questa lezione, vedremo che gli algoritmi di crittografia e decrittografia sono divisi in due categorie: simmetrici (Symmetric) e asimmetrici (Asymmetric).
Cosa si intende per crittografia simmetrica?
Se la stessa chiave con cui si blocca la valigia è in grado di aprire la valigia, il metodo di chiusura della valigia si può definire “simmetrico”.
Anche gli algoritmi di crittografia simmetrica hanno questa caratteristica:
la stessa chiave che esegue la crittografia può essere utilizzata anche per decrittografare.
Ancora una volta, la valigia qui sta al pacchetto di dati, il lucchetto è un algoritmo e la chiave è un codice (ad esempio una password).
Di regola, l’algoritmo di crittografia non è qualcosa di segreto:
pochi possono definire da soli l’algoritmo di crittografia (a meno che non sia semplice come l’algoritmo di Giulio Cesare).
Questo significa che è la tua chiave che garantisce la sicurezza dei tuoi dati, sempre che l’algoritmo sia relativamente sicuro.
Supponiamo ora di dare al postino un messaggio crittografato da portare al tuo amico.
Il tuo messaggio crittografato raggiunge il destinatario.
È disponibile anche l’algoritmo di decrittazione, se conosce l’algoritmo di crittografia.
Ora il tuo amico deve sapere quale chiave hai usato per crittografarlo.
Qui arriviamo allo stesso problema principale: come far avere la chiave di questa serratura al destinatario?
Infatti, se dai questa chiave al portatore della lettera, lui può effettivamente leggere il tuo pacchetto informativo.
Puoi decidere di inviare la chiave tramite un altro canale (come una telefonata o un messaggio di testo), usando il metodo dei messaggeri iraniani:
consegni il messaggio a una persona e la chiave a un’altra e chiedi a ciascuna di consegnare la spedizione separatamente al destinatario.
Questo metodo – e tutti i suoi margini e confini, le tecniche e i principi, le minacce e i punti deboli – è ciò che conosciamo come “crittografia simmetrica”.
Cosa si intende per crittografia asimmetrica?
Ora sappiamo molto bene che la crittografia è un algoritmo o una macchina.
Nella crittografia simmetrica abbiamo una macchina di crittografia e una macchina di decrittazione, che funzionano entrambe con la stessa chiave.
Nella crittografia asimmetrica, invece, abbiamo tre macchine e due chiavi.
La prima “macchina” è l’algoritmo di creazione delle chiavi. Questo algoritmo può darci due chiavi in qualche modo correlate.
Non sappiamo il tipo di comunicazione e la comunicazione non è facile perché è calcolato in base a formule matematiche.
Una chiave è chiamata chiave pubblica e l’altra è chiamata chiave privata.
Più semplicemente, Ottimo suggerisce di indicare la chiave pubblica come chiave di crittografia, che puoi immaginare come chiave grigia, e la chiave privata come chiave di decrittografia, che possiamo pensare come una chiave dorata.
Ora disponi di una macchina di crittografia (algoritmo) in grado di crittografare i messaggi utilizzando la chiave pubblica (grigia).
Ma questo non basta. Nel metodo asimmetrico, se il messaggio è crittografato e si fornisce a qualcuno la chiave pubblica, quest’ultimo non sarà in grado di decrittarlo: sarà necessaria anche una chiave privata.
A questo punto puoi probabilmente indovinare come potrebbe funzionare…
Supponiamo che noi di Ottimo desideriamo ricevere un messaggio da te e non ci fidiamo della persona che fa da intermediario. Useremo il seguente metodo:
- Noi (il destinatario) chiediamo al produttore di chiavi di creare due chiavi pubbliche e private per noi.
- Diamo la chiave pubblica alla persona intermediaria e gli chiediamo di consegnartela.
- Questi ti consegna la chiave pubblica, tu dai il messaggio e la chiave pubblica al dispositivo di crittografia, il dispositivo di crittografia ti consegna il messaggio crittografato.
- Invii un messaggio crittografato a Ottimo.
- Quando noi (il destinatario) riceviamo il messaggio crittografato, andiamo alla macchina di decrittazione e gli diamo la chiave privata, la chiave d’oro che avevamo fin dall’inizio, e il messaggio per procedere con la decrittazione.
L’uso della chiave pubblica non è ancora sicuro
Ma aspetta un attimo. Il problema non è ancora risolto…
Nel nostro ultimo esempio c’è ancora una questione importante da affrontare.
La persona che ti ha portato la chiave pubblica ne ha una copia. Una macchina di crittografia, pubblica, a cui tutti possono accedere.
Mettiamo il caso che questa persona prenda il tuo messaggio e, pur non potendo leggerlo, lo getti via.
Ora crittografa altre parole dal tuo preventivo al dispositivo e fornisce al dispositivo la stessa chiave pubblica che abbiamo fornito per crittografare il messaggio.
Infine ci porta il messaggio criptato, noi lo apriamo con la nostra “chiave d’oro” e non riusciamo a capire che il messaggio principale è stato perso nel percorso.
Come potremmo risolvere questo problema? Questo è solo un esempio che lascia intuire quanto ampia e complessa sia la discussione aperta sulla crittografia, ma ciò che abbiamo spiegato fin qui è sufficiente per il nostro corso di alfabetizzazione digitale.
Suggerimenti di lettura: risorse online in PDF sulla crittografia
Un pdf molto semplice e ben strutturato di 80 pagine pubblicato da Network Associates, con un glossario finale che descrive ogni termine crittografico in poche frasi:
Introduzione alla crittografia (pubblicato da Network Associates)
Il PGP Institute ha pubblicato un opuscolo di 85 pagine sulla crittografia che può essere molto utile, soprattutto dal terzo capitolo (da p. 15), dove viene fornita una sintesi della storia della crittografia.
Un’introduzione alla crittografia (pubblicata da PGP)
Un rapporto di 20 pagine scritto in uno stile semplice per raccontare il passato, presente e futuro della crittografia, corredato da un’appendice dedicata all’algoritmo RSA in crittografia.
Crittografia: passato, presente, futuro (Nicholas McDonald)