Elementi di crittografia

L’argomento di questo articolo è ampiamente trattato nei libri di testo di scuola superiore ma vogliamo ugualmente predisporre un compendio utile allo studente delle classi quinte per gli esami di stato. L’argomento si presta molto per creare dei percorsi trasversali, dei collegamenti tra materie e spunti possibili assegnati dalla commissione d’esame.

Cos’è la crittografia

La crittografia è una scienza che si occupa di “offuscare” le informazioni e renderle di nuovo in chiaro attraverso opportuni algoritmi di natura matematica basati su chiavi. E’ una tecnica fondamentale per preservare la riservatezza del contenuto del messaggio crittografato. Come detto anche qui, non è leggibile il contenuto del messaggio ma che il messaggio sia stato scambiato tra due parti non viene nascosto!

Storia

Polibio

La storia tramanda numerosi tentativi in tempo antico di crittografia o tentativi simili. Uno dei primi esempi è la tavola di Polibio. Consiste in una matrice di lettere contraddistinte quindi da coordinate (righe, colonna). Il messaggio cifrato corrisponde quindi all’insieme di numeri/coordinate delle lettere prescelte. Era piuttosto complesso usarlo perché non solo bastava condividere il messaggio, ma anche l’intera tavola e la chiave. La tavola o scacchiera di Polibio può essere un gioco interessante da proporre anche ai più piccoli.

Cesare

La necessità di nascondere le informazioni ad occhi indiscreti si perdono nella notte dei tempi. Le prime tracce di uso militare consistente che abbiamo risalgono a Giulio Cesare, l’imperatore romano che era solito inviare epistole, ordini e informazioni riservate utilizzando un primitivo sistema crittografico che porta ancora il suo nome, cifrario di Cesare. Semplicemente ogni lettera del messaggio viene trasposta di una quantità prefissata dalla chiave. Ad esempio, la parola ciao trasposta con una chiave 3 diventa fndr, cioè le successive lettere dell’alfabeto tre posizioni più avanti. Il problema dell’algoritmo stava certamente nella semplicità e nella necessità di far reperire oltre che il messaggio anche la chiave o direttamente scritta sul messaggio magari con un inchiostro simpatico tipo limone, oppure consegnarla al messaggero che porta il messaggio stesso.

Altri esempi di crittografia

La storia sicuramente è ricca di altri esempi e passaggi significativi. Alcuni li usiamo o li conosciamo perché non seguano tecniche crittografiche apparentemente ma lo sono e come nel loro piccolo. Pensiamo al Braile utilizzato dai non vedenti o il codice Morse del vecchio telegrafo, passando per i linguaggi utilizzati a bordo di navi e sommergibili con le bandiere.

La II guerra mondiale

Facciamo un salto direttamente nella seconda guerra mondiale. momento storico anche più interessante per lo studente che deve sostenere l’esame di stato conclusivo. A far uso massivo della crittografia sono i tedeschi, veri precursori di molte tecnologie all’avanguardia usate per scopi militari. La loro macchina crittografica per scambiare messaggi è passata alla storia col nome di Enigma.

Fisicamente Enigma era una sorta di macchina da scrivere con una meccanica sofisticata con cilindri rotanti che eseguivano la codifica del testo digitato. Queste macchine furono impiegate in ogni necessità di trasmissione, di ordini verso le truppe e persino le previsioni meteo.

Enigma (Fonte: Wikipedia)

L’utilizzo di queste macchine generò una nuova figura scientifica al servizio dell’esercito: i critto-analisti che avevano il compito di studiare e decifrare i sistemi crittografici nemici.

Le prima versione di Enigma, grazie a numerosi sotterfugi e spionaggio, fu decifrata da un team di matematici polacchi. Idearono una sorta di macchinario passato alla storia col nome di Bomba capace di decifrare i messaggi. Venuti a sapere del successo, i tedeschi resero più complesso il funzionamento di enigma aggiungendo rotori e facendone variare l’uso. La nuova complessità di Enigma rese Bomba inefficace.

Alan Turing

La palla passò all’esercito di sua Maestà la Regina Elisabetta di Inghilterra che fece nominare un pool di matematici al cui interno si trovava il celebre Alan Turing. Turing migliorò la macchina analitica Bomba rimodulando l’algoritmo e sfruttando le conoscenze di una macchina Enigma catturata con un sommergibile tedesco intatto e alcune debolezze dei messaggi tedeschi: tutti finivano sempre con il saluto nazista al loro leader Hitler!

Turing (Fonte: Wikipedia)

Di fatto Turing diede un forte contributo alla fine della guerra. Il risultato ottenuto fu tenuto segretissimo. Mentre Churcill e gli americani decisero di utilizzare le informazioni, intercettate e decifrate, in modo un po’ ambiguo: non si evitava di mandare a morire soldati in imboscate o attacchi, se ne mandavano meno per non dare nell’occhio all’esercito tedesco a cui invece gradualmente venivano inflitte perdite maggiori.

Il Bomba di Turing fu ripreso dalle università americane come modello tra cui Colossus, uno dei primi calcolatori moderni assieme al più celebre Eniac.

Turing invece, personaggio scomodo per gli organi militari, fu incastrato in atti osceni in luogo pubblico con un presunto rapporto omosessuale. All’epoca, difficile da credere, essere omosessuali era un reato a tutti gli effetti che prevedeva la galera o la castrazione chimica. Turing scelse questa seconda via, obbligato ad ingerire potenti farmaci estrogeni/anti depressivi che di certo all’epoca non erano sicuri e testati come oggi. L’uso dei farmaci e il suo isolamento progressivo, portarono il genio matematico al suicidio 2 anni dopo l’arresto con l’assunzione di barbiturici, probabilmente con una mela morsicata. La leggenda vuole che tale immagine della mela sia stata ripresa da Steve Jobs, il fondatore di Apple, come tributo al grande genio.

Turing ha ricevuto le scuse ufficiali della regina nel 2012, ovviamente postume e a lui sono state dedicate banconote e francobolli celebrativi. Se avete la possibilità di girare per università o luoghi pubblici dove ci sono laboratori di informatica, è facile che siano dedicate al grande genio.

Tipologie di sistemi crittografici

Una prima classificazione si divide in tre tipologie/algoritmi. Quello già citato di Cesare è un cifrario a trasposizione, dove vengono permutati i simboli, le lettere del messaggio secondo una determinata corrispondenza. Al di la di quello di Cesare, sono stati inventati cifrari a trasposizione molto articolati con diverse strategie, ma su un testo breve le permutazioni da individuare e provare non sono impossibili da provare a forza bruta fino alla decifrazione.

Più complessi sono i cifrari a sostituzione. Qui si sceglie o singola lettera o blocchi di lettere che vengono sostituite con altrettanti blocchi di lettere di lunghezza non necessariamente la stessa o addirittura non con gli stessi simboli iniziali. Le combinazioni da decifrare salgono vertiginosamente e rendono questi cifrari più complessi da decifrare. Esistono numerose varianti di sostituzione e una antologia piuttosto estesa ma a cui vi rimandiamo su altre fonti (es. Wikipedia)

Esiste ovviamente una terza versione di cifrario, ibrido tra trasposizione e sostituzione mescolati tra loro: algoritmi moderni e attualmente utilizzati utilizzano questa tecnica. Esempi sono l’AES utilizzato nei sistemi Wi-fi e DES e 3DES utilizzati per la prima volta dall’esercito militare.

Crittografia a chiave simmetrica e asimmetrica

In tutti i sistemi crittografici ci sono due elementi da tenere presenti: l’algoritmo con cui il messaggio e cifrato (abbiamo appena visto trasposizione e sostituzione) e la chiave per cifrare e decifrare il testo in chiaro.

Nei sistemi detti a chiave simmetrica, due interlocutori si scambiano un messaggio cifrato in cui è noto a priori l’algoritmo crittografico (è visibile anche ad un terzo interlocutore esterno alla comunicazione!), mentre è segreta la chiave che viene utilizzata in fase di crittazione e in fase di decrittazione. La chiave è in possesso di entrambi gli interlocutori, come segreto condiviso.

Il problema dei sistemi crittografici a chiave simmetrica è come scambiare la chiave in modo che le parti ne entrino in possesso senza che occhi indiscreti possano intercettarla. Se si è a km di distanza non sarebbe possibile scambiarla a mano o con un canale tradizionale ma sarebbe obbligatorio utilizzare un canale non sicuro.

Algoritmi a chiave simmetrica odierni diffusi sono AES, 3DES, RC4.

Negli algoritmi a chiave asimmetrica si risolve il problema dello scambio potenzialmente non sicuro della chiave. Ogni interlocutore infatti, con un apposito algoritmo, genera una coppia di chiavi una pubblica ed una privata. La chiave privata, come dice il termine stesso, è tenuta segreta per se. Quella pubblica è divulgata, ad esempio inserendola nella firma della mail, pubblicata su un sito web personale, social ecc in modo che sia reperibile facilmente a chi vuole comunicare in modo riservato con noi. Se volessi quindi mandare un messaggio ad un interlocutore dovrei prelevare la sua chiave pubblica con cui andrei a crittografare il messaggio da inviargli. Il ricevente può decifrare il messaggio con la sua chiave privata. Non c’è modo di decifrare il messaggio con la chiave pubblica, è come un’operazione a senso unico.

L’algoritmo RSA

Non ci addentriamo nel processo matematico, ma l’algoritmo per eccellenza a chiave asimmetrica è lo RSA. Il suo funzionamento si base sul trovare due numeri primi molto grandi e se ne calcola il prodotto. La sicurezza sta nel fatto che per un malintenzionato trovare due numeri primi che danno per prodotto un terzo numero può risultare impossibile quando i numeri in gioco hanno un numero di cifre considerevole (parliamo di numeri con 7 milioni di cifre!).

Prestazioni

Gli algoritmi a chiave asimmetrica sono decisamente più lenti di quelli a chiave simmetrica, anche solo ad intuitivamente pensare alla serie di passaggi iniziali necessari. Non è un mistero se al lettore può giungere l’intuizione di utilizzare un algoritmo a chiave asimmetrica una tantum per scambiare una chiave invece simmetrica che velocizza l’eventuale comunicazione. E’ uno dei principi alla base del protocollo TLS che regge il fantomatico protocollo HTTPS.

Firma digitale

Un’applicazione interessante degli algoritmi a chiave asimmetrica è la firma digitale con cui possiamo autenticare i documenti senza apporre una firma autografa. In questo caso l’autore del documento appone una firma/watermark ricavato con la propria chiave privata e il testo da firmare. La chiave pubblica è invece detenuta da un ente governativo o paragovernativo. Chiunque voglia verificare o accertare la veridicità della forma potrà controllare la corrispondenza decifrando il documento con la chiave pubblica del sistema centralizzato. L’ente accreditatore verifica l’identità del richiedente con documenti cartacei tradizionali. La firma digitale assume per tanto un valore legale non ripudiabile. La firma digitale è a pagamento visto l’autorità centrale delegata.

Ultima modifica 22 Febbraio 2024