La storia della crittografia

23 Giugno 2012 0 di Elvio

Approfittando del centenario della nascita di Alan Turing, un grande matematico inglese noto per i suoi studi di logica e di crittografia analitica ed universalmente riconosciuto come uno dei padri dell’informatica, analizziamo la curiosa storia della crittografia fin dalle sue origini.

Potremmo dichiarare che la storia della crittografia (termine derivato dal greco kryptos = nascosto), intesa come scrittura segretata, nascosta, offuscata o incomprensibile, ha origini molto antiche.

Forse dall’invenzione dell’alfabeto, già si pensava a come poter celare alcuni messaggi sensibili da lettori non autorizzati.
Le prime metodologie storicamente accertate, atte a rendere un messaggio incomprensibile a chi non munito di apposito metodo di decifrazione, risale all’antico egitto (1900 a.C.) quando uno scriba egizio fece uso di geroglifici fuori standard per una sua iscrizione ‘segreta’.

Alcuni famosi sistemi di crittografia sono:

il cifrario di Cesare, un algoritmo che operava per sostituzione monoalfabetica dove cioè ogni lettera del testo di partenza veniva sostituita, nel testo cifrato, con la lettera che si trova un definito numero di posizioni più avanti o più indietro.

il cifrario di Vigenère è un metodo si può considerare una generalizzazione del cifrario di Cesare; invece di spostare sempre dello stesso numero di posti la lettera da cifrare, questa viene spostata di un numero di posti variabile, ma ripetuto, determinato in base ad una parola chiave, da concordarsi tra mittente e destinatario e da scrivere ripetutamente sotto il messaggio, carattere per carattere; la chiave era detta anche verme, per il motivo che, essendo in genere molto più corta del messaggio, va ripetuta molte volte sotto questo, come nel seguente esempio:

Testo chiaro  – RAPPORTOIMMEDIATO
Verme            – VERMEVERMEVERMEVE
Testo cifrato – MEGBSMXFUQHIUUEOS

Il testo cifrato si ottiene spostando la lettera chiara di un numero fisso di caratteri, pari al numero ordinale della lettera corrispondente del verme. Di fatto si esegue una somma aritmetica tra l’ordinale del chiaro (A = 0, B = 1, C = 2…) e quello del verme; se si supera l’ultima lettera, la Z, si ricomincia dalla A, secondo la logica delle aritmetiche finite.

i ‘pizzini’ della mafia sono un rudimentale sistema di cifratura basato sul cifrario di Cesare è stato usato anche da Bernardo Provenzano per proteggere informazioni rilevanti scritte nei suoi famosi pizzini (piccoli foglietti di carta con i quali il boss della mafia, durante la sua latitanza, riceveva informazioni e impartiva ordini).
Il sistema scelto in questo caso era piuttosto semplice: si sostituisce ad ogni lettera il numero corrispondente alla posizione nell’alfabeto e si somma 3 in modo da comporre così un lungo numero.

il cifrario di Vernam o cifrario perfetto è un sistema crittografico basato sul cifrario di Vigenère, al quale aggiunge il requisito che la chiave sia lunga quanto il testo e non riutilizzabile (per questo viene anche chiamato OTP (One Time Pad o blocco monouso).
Il cifrario di Vernam è l’unico sistema crittografico la cui sicurezza sia comprovata da una dimostrazione matematica e per questo si è guadagnato il titolo di ‘cifrario perfetto’. Purtroppo una tale sicurezza equivale a dire estrema scomodità nel distribuire in modo sicuro chiavi di grandi dimensioni. Nonostante questo è stato largamente utilizzato per le comunicazioni con le spie di governo, che venivano equipaggiate di taccuini contenenti una lunga chiave per pagina, da strappare e gettare una volta utilizzata.

la macchina Enigma che venne largamente utilizzata dall’esercito tedesco ai tempi della seconda guerra mondiale. Di fatto questa macchina non era altro che un crifrario polialfabetico che può essere considerato come una estensione del cifrario di Vigenère. Rispetto a quest’ultimo, Enigma utilizzava più dischi cifrati (detti rotori) posti in cascata tra loro: ciascuno di essi disponeva di 26 contatti (uno per ogni lettera dell’alfabeto tedesco).
Aveva l’aspetto simile ad una comune macchina per scrivere e pesava oltre 12 Kg; era attrezzata di una tastiera principale (sulla quale si inseriva il testo) ed una disposizione superiore (simile ad una tastiera) con lettere luminose che si accendevano mostrando il corrispondente cifrato o decifrato di quanto battuto.

la crittografia a chiave pubblica (o asimmetrica) fu utilizzata a partire dagli anni ’70 basati su una filosofia del tutto diversa: la chiave per cifrare non è la stessa di quella per decifrare; la prima può allora essere resa pubblica mentre solo la seconda resta segreta. Per questo motivo sono detti anche cifrari asimmetrici.

Supponiamo per esempio che Tizio e Caio vogliano comunicare in modo segreto; per prima cosa entrambi scelgono, ognuno per proprio conto, una chiave segreta e calcolano quindi la chiave pubblica facendo uso di una qualche funzione che sia facile da calcolare e impossibile (o quasi) da invertire. Le chiavi pubbliche così calcolate sono inserite su una specie di elenco telefonico degli utenti (esempio Tizio 123456789; Caio 987654321).

A questo punto se Tizio deve inviare un messaggio segreto a Caio trasformerà il suo messaggio in un numero o serie di numeri; effettuerà una serie di calcoli usando la chiave pubblica di Caio e spedirà il messaggio cifrato a Caio. Caio decifrerà il messaggio usando una formula che, data la chiave segreta e il messaggio cifrato, permette di ricostruire il messaggio chiaro. Solo Caio è in grado di decifrare il messaggio; paradossalmente lo stesso Tizio non sarà in grado di decifrare il messaggio da lui stesso cifrato! Questo avviene perchè la chiave per cifrare il messaggio non è la stessa di quella per decifrarlo.

Il conflitto mondiale

Tornando alla storia, furono proprio le intuizioni di Alan Turing a contribuire a risolvere il conflitto mondiale in atto.
Egli progettò un calcolatore da usare per decifrare rapidamente i messaggi tedeschi codificati con Enigma. Come la macchina tedesca, la cosiddetta ‘Bomba’ di Turing utilizzava dei rotori che venivano fatti ruotare ad alta velocità in modo da trovare rapidamente tutte le possibili combinazioni.

Individuando le combinazioni di lettere che si allineavano in fase di ricezione, Turing riuscì a risalire alla chiave di lettura utilizzata dai tedeschi per la trasmissione dei messaggi.

Gli inglesi quindi continuarono per molto tempo a carpire le comunicazioni del nemico nazista in totale segreto senza significative contromosse fino al 1942 quando la Germania, probabilmente insospettita, aggiornò così pesantemente il codice di criptazione di Enigma che fu necessario fare irruzione su un sommergibile tedesco per impossessarsi della nuova versione di enigma.

Genio incompreso, arrestato per la sua omosessualità e malvisto dalle grette mentalità inglesi del tempo, Turing morì nel 1954 all’età di soli 42 anni.  Attorno alla sua morte aleggia ancora un velo di mistero: secondo alcuni malpensanti potrebbe essersi trattato di un assassinio di stato perché, per i servizi inglesi. Turing cominciava ad essere considerato una personalità molto scomoda ed in possesso di troppi segreti.
Secondo la versione ufficiale invece si dice che lo scienziato si sarebbe suicidato ingerendo del cianuro imbevuto in una mela per pene d’amore.

In una lettera all’amico Norman Routledge, fece dell’ironia amara sulla sua condizione in carcere usando questo sillogismo:
Turing crede che le macchine pensino; Turing va a letto con gli uomini; dunque le macchine non pensano.

… Potremmo dire a posteriori che, purtroppo e spesso, non pensano nemmeno gli uomini.

Per tornare alla macchina Enigma segnaliamo che proprio oggi, 23 giugno, presso il Museo nazionale della scienza e della tecnologia Leonardo da Vinci di Milano, verrà rifatto funzionare un raro esemplare di questa famosa macchina.

Per chi volesse provarla senza recarsi al museo di Milano potrà scaricare un simulatore perfettamente somigliante da questo sito.

Nella stessa pagina si potranno trovare anche altre famose macchine di cifratura usate, quasi sempre per usi militari, nello scorso secolo; prima dell’avvento dei moderni computer:
TSEC/KL-7
US M-209
Hagelin BC-52

 

Come rompere la cifratura

Supponendo di conoscere la lingua del testo ed a condizione che il testo sia sufficientemente lungo, su sistemi di cifratura non complessi sarebbe possibile utilizzare un diagramma delle frequenze delle lettere e la loro disposizione per  individuare il valore della chiave similmente ai conosciuti passatempo enignistici.
Nella lingua italiana, le lettere più frequenti sono le vocali E, A, O ed I (con piccole e lievi differenze) seguite dalle consonanti L, N, R, S e T, mentre sono rare B, F, Q e Z e praticamente assenti le lettere straniere J, K, Y, X e W.

Anche un piccolo computer, oggi, sarebbe in grado di eseguire simili calcoli senza troppe difficoltà quindi non fidiamoci mai ciecamente di sistemi di crittografia troppo semplici ed in genere non diffondiamo mai informazioni riservate su canali pubblici o via internet.
D’altra parte, ragioniamo, se disponiamo di informazioni riservate e indirizzate solo a qualcuno, che motivo abbiamo di diffonderle ai quattro venti o, peggio, negli infiniti spazi digitali del web?

Saluti