La Matematica nei messaggi segreti
di Gabriella Zammillo
Se sulle note di "notte prima degli esami" il cantautore Venditti dichiara al mondo che "la matematica non sarà mai il suo mestiere", di fronte alla tendenza comune di voler trasmettere agli studenti solo nozioni e teoremi finalizzati al superamento di un pesante esame, non c'è da scandalizzarsi se uno stadio delirante gli fa da coro mostrandosi solidale.
Il mondo è in continua evoluzione e noi ci adeguiamo ad esso ignorando, molto spesso, che le teorie più avanzate della matematica trovano impiego in tutti i settori della scienza, della tecnologia e dell'industria, settori che costituiscono il mondo che ci circonda, quel mondo, come poc'anzi detto, in costante evoluzione che cambia il nostro modo di vivere, di agire e di pensare.
Ma se cosi stanno le cose, perché stupirsi di fronte alla necessità di cambiare il modo di fare matematica?
Perché invece non rivolgere l'attenzione alle sue potenzialità ed alla sua bellezza in maniera da attrarre quegli studenti che seppur ambiziosi, seppur dalla fervida passione e curiosità intellettuale, continuano a vedere in lei la più ostica delle discipline?
Non è esagerato definire la matematica d'oggi "interdisciplinare", basti pensare che la teoria delle equazioni differenziali e il calcolo numerico sono impiegati nello studio degli ecosistemi, nella determinazione di modelli dell'andamento di malattie endemiche così come la teoria dei nodi si applica nello studio della struttura del DNA e i processi stocastici e la ricerca operativa trovano invece applicazione nel campo dell'economia e della finanza.
Anche molti metodi dell'informatica appartengono alla matematica pura, per esempio la teoria dei grafi è utile per la descrizione di algoritmi; la logica e l'algebra per lo sviluppo di linguaggi di programmazione e basi di dati; il calcolo combinatorio e la teoria dei numeri nello studio dei codici e della crittografia, tecnica quest'ultima (sulla quale ora ci soffermiamo) fino a pochi anni fa conosciuta e praticata solo da una piccola cerchia di iniziati per motivi militari e diplomatici, oggi entrata nella vita di tutti i giorni grazie al bancomat, alla pay-tv, agli acquisti attraverso internet.
Ma cos'è la crittografia?
La crittografia (dal greco "cryptos": nascosto) è quell'arte o scienza che fornisce gli strumenti adatti a mantenere segrete tutte quelle informazioni che non si vogliono divulgare pubblicamente in maniera tale che la possibilità di accedervi sia data solo ad uno o ad un ristretto numero di persone autorizzate che"sappiano come farlo".
L'operazione tramite la quale si nascondono le informazioni è chiamata CIFRATURA oppure CRITTAZIONE ed è effettuata tramite un apposito algoritmo detto CIFRARIO mentre il messaggio da cifrare è noto come TESTO in CHIARO (plaintext); a sua volta la crittazione sfrutta come mezzo fondamentale una chiave, detta CHIAVE del CIFRARIO, per convertire il "testo in chiaro" in testo cifrato (ciphertext).
La conversione da testo cifrato a "testo in chiaro" è detta DECRITTAZIONE e l'ambito nel quale sono effettuate le operazioni di crittazione e decrittazione è definito CRITTOSISTEMA mentre la scienza che permette di analizzare e rivelare ciò che la crittografia tenta di nascondere è chiamata CRITTOANALISI.
Giusto per concludere, si definisce CRITTOLOGIA (dal greco "studio di ciò che è nascosto") l'insieme di crittologia e crittoanalisi.
Uno sguardo al passato.
Storicamente l'uso della crittografia ha trovato terreno fertile soprattutto in quattro categorie di persone: i militari, i diplomatici, gli amanti e i diaristi, ma soprattutto i militari hanno giocato il ruolo più importante applicandola a scopi bellici e rendendola cosi un'arma determinante nelle mani di coloro che sapevano come usarla.
Le più antiche notizie sono probabilmente quelle sulla scitala lacedemonica data da Plutarco, come in uso dai tempi di Licurgo (IX sec. a.C.) ma più sicuramente usata ai tempi di Lisandro (400 a.C. circa). Consisteva in un bastone su cui si avvolgeva ad elica un nastro di cuoio; sul nastro si scriveva per colonne parallele all'asse del bastone e lettera per lettera il testo segreto. Tolto il nastro dal bastone, il testo risultava trasposto in modo regolare, ma sufficiente per evitare la lettura senza un secondo bastone uguale al primo.
Tra il 360 e il 390 fu compilato da Enea il tattico, generale della lega arcaica, il primo trattato di cifre il cui XXI capitolo tratta, appunto, di messaggi segreti.
In questo è descritto un disco lungo la circonferenza del quale si contavano 24 fori corrispondenti ciascuno ad una lettera dell'alfabeto. Partendo dal centro, un filo attraversava i fori in corrispondenza delle lettere del testo e terminato il messaggio, lo si poteva decifrare leggendo al contrario le lettere indicate dal filo.
In questo stesso periodo furono ideati codici cifrati indiani ed ebraici utilizzati soprattutto per camuffare nomi propri.
ATBASH è per esempio il metodo usato dagli ebrei. Nella Bibbia, precisamente nel Libro di Geremia, si ricorre ad un semplice codice monoalfabetico per cifrare la parola Babele. Si tratta di un metodo di sostituzione abbastanza semplice nel quale, alle lettere dell'alfabeto scritto in ordine crescente corrispondono le lettere dell'alfabeto scritte in ordine decrescente come in tabella:
testo in chiaro | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | w | z |
testo cifrato | z | y | x | w | v | u | t | s | r | q | p | o | n | m | l | k | j | i | h | g | f | e | d | c | b | a |
ecco allora che la prima lettera dell'alfabeto ebraico (Aleph) viene cifrata con l'ultima (Taw), la seconda (Beth) viene cifrata con la penultima (Shin) e cosi via... da cui il nome ATBASH.
Tra i cifrari di sostituzione troviamo per es. quello di Cesare.
Svetonio, nella "Vita dei dodici Cesari", racconta che Giulio Cesare usava per le sue corrispondenze riservate un codice nel quale la lettera in chiaro veniva sostituita dalla lettera che la segue di tre posti nell'alfabeto, per esempio: la lettera A con D, B con E e così via, come è facile osservare in tabella.
testo in chiaro | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | w | z |
testo cifrato | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | a | b | c |
In generale si definisce codice di Cesare, un codice nel quale la lettera del messaggio in chiaro viene spostata di un numero N di posti.
Ma ritorniamo indietro nel tempo.
Lo storico greco Polibio (~ 200 - 118 a.C.) nella sua Storia (libro X) descrive il più antico esempio di codice poligrafico attribuito a Cleoxeno e Democleito, suoi contemporanei.
Questa tecnica consiste nel legare le lettere a una coppia di numeri che ne individuano la posizione su di una scacchiera 5x5 (fig.1).
La coppia di numeri era poi comunicata nella notte attraverso delle torce. Per esempio, tenendo conto della tabella, il nome Gabriella diventa:
Gabriella = (2,2) (1,1) (1,2) (4,2) (2,4) (1,5) (3,2) (3,2) (1,1)
| 1 | 2 | 3 | 4 | 5 |
1 | a | b | c | d | e |
2 | f | g | h | i | j |
3 | k,q | l | m | n | o |
4 | p | r | s | t | u |
5 | v | w | x | y | z |
fig.1
Si osserva che la casella (3,1) individua due lettere, k e q, foneticamente simili questo perché il nostro alfabeto, a differenza di quello greco è costituito da 26 lettere anziché 24. A Polibio, in realtà, avanzava un carattere che inseriva all'inizio e fine del messaggio.
La scacchiera di Polibio, così chiamata, ha avuto la sua importanza nella storia della crittografia tanto che è alla base di altri codici di cifratura come il PLAYFAIR CIPHER dovuto al fisico Sir Charles Wheastone (1802 - 1875) o il Cifrario Campale Germanico usato durante la prima guerra mondiale.
L'imperatore Romano Augusto usava invece sostituire come chiave un'altra parola o frase.
La chiave e il testo avevano un corrispettivo numerico; il testo cifrato risultava una sfilza di numeri ottenuti come somma tra il testo e la chiave.
Diamo un esempio.
Testo | MONTEVARCHI |
Chiave | CONVEGNO |
a | b | c | d | e | f | g | h | i | l | m | n | o | p | q | r | s |
t | u | v | z |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
testo in chiaro | M | O | N | T | E | V | A | R | C | H | I |
chiave | C | O | N | V | E | G | N | O | C | O | N |
valore testo | 11 | 13 | 12 | 18 | 5 | 20 | 1 | 16 | 3 | 8 | 9 |
valore chiave | 3 | 13 | 12 | 20 |
5 | 7 | 11 | 13 | 3 | 13 | 12 |
valore cifrato | 14 | 26 | 24 | 38 | 10 | 27 | 12 | 29 | 6 | 21 | 21 |
testo cifrato | p | e | c | s | l | f | n | h | f | z | z |
Se la somma "valore cifrato" è maggiore di 21, si ricomincia dalla lettera A, ciò equivale a fare la somma modulo 21.
Per la decifrazione è sufficiente sottrarre, tra l'altro è bene non usare come chiave parole di senso compiuto, ma lettere generate casualmente.
Bisogna arrivare al XV sec. d.C. per vedere nascere la crittografia moderna con Leon Battista Alberti.
Negli anni immediatamente precedenti, si usavano le cosiddette nomenclature, cioè lista di parole chiave del gergo diplomatico abbreviate con un solo segno, oppure ancora, si procedeva a cifrare ogni lettera con un segno di fantasia come risulta dal manuale datato 1379 conservato nel Vaticano ad opera di Gabriele Lavinde al quale l'antipapa ClementeVII decise di affidare il compito di unificare i sistemi di cifratura dell'Italia settentrionale dopo lo scisma di Avignone nel 1378.
Leon Battista Alberti inventa un metodo innovativo chiamato polialfabetico.
Era un artista rinascimentale poliedrico, amico di un funzionario pontificio al quale non potette dire di no.
L'idea nacque dall'osservazione che un criptoanalista può essere aiutato dalle caratteristiche di una lingua come: frequenza delle lettere, sillabe impossibili o più frequenti e così via. Allora, per rendere più difficile il lavoro di decifrazione, pensò di cambiare, durante il procedimento, l'alfabeto da cui pescare la lettera cifrata.
In pratica Alberti propose un disco composto da due cerchi cifrati concentrici, uno esterno fisso con 24 caselle contenenti 20 lettere maiuscole disposte in ordine alfabetico (con U=V ed escluse H, J, K, W, Y) e i numeri 1,2,3,4 per il testo chiave; ed uno mobile, con le 24 lettere minuscole per il testo cifrato disposte disordinatamente.
Fissata una lettera maiuscola come indice, per es. F, si sposta il disco mobile e si scrive come prima lettera del crittogramma quella minuscola che facciamo corrispondere per esempio alla Z e così via.
I numeri 1, 2, 3, 4 servono da nulle.
Per maggiore segretezza è possibile usare uno dei 4 numeri per segnalare il cambio di alfabeto.
La lettera minuscola corrispondente al numero sarà la nuova chiave.
Tra il 1553 e il 1564, il bresciano Bellaso pubblica tre opere di crittografia di notevole interesse. Nel 1563 viene pubblicato a Napoli un trattato di crittografia ad opera di G.B.Porta.
Sia il Bellaso che il Porta adottano un metodo chiamato TAVOLA.
Il primo utilizza 5 alfabeti mentre il secondo 11 introducendo il cosiddetto VERME letterale, ma entrambi i metodi risultano essere più deboli di quello dell'Alberti.
Qualche anno più tardi, nel 1586, Blaise de Vigenere pubblicò il suo trattato nel quale proponeva un semplice codice di sostituzione polialfabetica e col quale ebbe grande successo.
Il CIFRARIO di VIGENERE può considerarsi una generalizzazione del codice di Cesare, ma a differenza di quest'ultimo, invece di spostare sempre dello stesso numero di posti la lettera da cifrare, questa viene spostata di un numero di posti determinato da una parola chiave detta VERME concordata tra mittente e destinatario e scritta sotto il messaggio carattere per carattere.
La definizione di verme è dovuta al fatto che essendo in genere più corta del messaggio, deve essere ripetuta molte volte sotto questa.
Testo in chiaro | A | R | R | I | V | A | N | O | I | R | I | N | F | O | R | Z | I |
verme | V | E | R | M | E | V | E | R | M | E | V | E | R | M | E | V | E |
Testo cifrato | V | V | I | U | Z | U | R | F | U | V | D | R | W | A | V | U | M |
dove il testo cifrato si ricava utilizzando la matrice quadrata 26x26 in cui la prima riga è data dall'alfabeto reale; la seconda contiene l'alfabeto traslato e ruotato di una posizione (B C D E ... X Y Z A ) e così via fino all'ultima riga ( Z A B C ... W X Y) pertanto le lettere del testo cifrato corrispondono agli incroci ottenuti individuando sulla prima riga la lettera considerata dal testo in chiaro e sulla prima colonna la lettera ad essa corrispondente appartenente al verme.
Chi riceve il messaggio, per decifrarlo, deve semplicemente utilizzare il metodo inverso.
L'uso della crittografia continua a rivoluzionarsi sempre di più migliorandosi col tempo, fino ad avere importanza tale da cambiare il corso della storia durante le guerre mondiali, quando appaiono le prime macchine elettriche per cifrare i messaggi, ma soprattutto per la criptoanalisi.
I tedeschi usarono, per tutta la seconda guerra mondiale, una macchina chiamata ENIGMA che avrebbe dovuto cifrare i messaggi, ma in realtà così non fu perché, inglesi e polacchi, unendo le loro forze, furono in grado di decifrare quasi tutti i messaggi intercettati grazie soprattutto al lavoro eseguito da Alan Turing (1912-1954) uno dei più famosi matematici del tempo, tra i fondatori dell'informatica teorica che tra il settembre 1939 e l'estate del 1944 alloggiò al CROW INN, villaggio vicino al Blechley Park, diventato stazione di decrittazione britannica.
L'ENIGMA era una macchina elettromeccanica con contatti, lampadine e rotori a tastiera. Ogni lettera veniva cifrata con alfabeto diverso dando luogo ad un numero spropositato di combinazioni che avrebbero dovuto rendere la decodifica impossibile, ma non per Turing che, servendosi di grosse macchine dette appunto COLOSSI (precursori dei nostri calcolatori elettronici) riuscì a forzare il sistema e renderlo vulnerabile.
Per anni si è cercato di creare algoritmi semplici e di impiegare chiavi molto lunghe per rendere la vita difficile al criptoanalista. Oggi ci si orienta all'opposto vista la potenza dei calcolatori di cui si dispone, quindi si creano algoritmi complicati da decifrare proprio perché l'obiettivo della crittografia è quello di garantire la completa riservatezza delle informazioni, consentendo applicazioni come l'autenticazione, il commercio elettronico e così via.
Una regola fondamentale della crittografia moderna è che bisogna supporre che il criptoanalista conosca il metodo generale di cifratura impiegato.
Qui entra in gioco la chiave di codifica e decodifica che può essere la stessa per alcuni algoritmi o diversa per altri.
Nel primo caso si tratta di algoritmi simmetrici usati nella crittografia classica (detti anche a chiave simmetrica o a chiave segreta) come per esempio il DES, nel secondo caso algoritmi asimmetrici (detti anche a chiave asimmetrica o a chiave pubblica) come per esempio l'RSA.
Crittografia simmetrica: DES
Il DES (Data Encrytion Standard) viene adottato dal governo degli Stati Uniti nel 1977 come standard federale e deriva dall'algoritmo LUCIFER inventato dall'IBM nei primi anni '70, successivamente modificato.
E' un codice cifrato a blocchi, cioè un codice cifrato simmetrico applicato a gruppi di parole alla volta.
La chiave è un blocco di 64 bits suddiviso in 8 sottoblocchi di 8 bits ciascuno. L'ultimo bit di ogni sottoblocco è di controllo, di conseguenza i bits liberi sono 56.
Questo algoritmo, che potrebbe apparire a prima vista complicato, in realtà sfrutta operazioni molto semplici come trasposizione e sostituzione e nonostante la sua semplicità, continua a sopravvivere da due decenni alla criptoanalisi, sebbene non sia considerato imbattibile.
Il suo difetto più grosso consiste infatti nel suo limitato key-space (spazio delle chiavi) pari a 256 (perché 8 dei 64 bits, come abbiamo detto, sono di controllo).
Crittografia asimmetrica
Il problema più importante consiste quindi nella scelta della chiave perché è proprio attraverso l'utilizzo della chiave che si vogliono rendere incomprensibili le informazioni a coloro che non la posseggono. Pertanto, se A vuol trasmettere un messaggio codificato a B, ha il problema di inviare a B anche la chiave segreta con la quale poter decodificare il messaggio ricevuto.
E' chiaro che se C ¹ B riuscisse ad intercettare la chiave, potrebbe usarla oltre che per leggere il messaggio anche per poter intervenire su di esso.
Il problema di gestione della chiave non sussiste più grazie alla crittografia asimmetrica (o a chiave pubblica) introdotta nel 1976 da W. Dieffe e M. Hellman che pensarono di sfruttare una coppia di chiavi, una detta per l'appunto "pubblica" e l'altra "segreta".
Il metodo si basa su due concetti fondamentali:
- un messaggio codificato con una della due chiavi può essere decodificato solo con l'altra;
- non è matematicamente possibile ricavare una chiave dall'altra infatti è stato stimato che, impiegando 1024 bits per ricavare una chiave segreta da una pubblica, occorra una rete di milioni di computer e 1010 anni.
Quindi ogni utente della rete diffonde la propria chiave pubblica e mantiene segreta l'altra.
Quando A vuole trasmettere il proprio messaggio a B, lo cifrerà con la chiave pubblica di B e lo invierà ad esso. B, a sua volta, ricevuto il messaggio, procederà alla decriptazione tramite la sua chiave segreta.
Poiché solo B dispone della seconda chiave in grado di decifrare il messaggio, questo potrà essere trasmesso in rete alla balia di tutti.
E' importante non dimenticare che, una volta cifrato il messaggio dal mittente, nessuno ad eccezione del destinatario potrà leggerlo, neanche colui che lo ha scritto.
Unico handicap degli algoritmi a chiave pubblica è rappresentato dalla lentezza.
RSA
A distanza di due anni dal lavoro di Dieffe ed Hellman, si diffonde il crittosistema a chiave pubblica denominato RSA.
L'acronimo è dato dalle iniziali degli inventori: Ron Rivest, Adi Shamir e Leonard Adleman.
L'RSA è in definitiva un crittosistema basato su una semplice idea della teoria dei numeri e permette di cifrare un messaggio sfruttando il fatto che è facile moltiplicare due numeri primi, ma è difficile fattorizzare il prodotto.
E' necessario quindi procedere per gradi e precisamente:
- trovare due numeri primi molto grandi p e q tali che il loro prodotto o modulo sia n = pq e si ponga j
(n) = (p-1)(q-1).
- Scegliere un numero e < n tale che sia primo con (p-1)(q-1). Ciò significa non avere fattori primi in comune; e deve essere dispari; (p-1)(q-1) non può essere primo perché è pari.
- Calcolare d, l'inverso di e, tale che: ed = 1 mod(j
(n)). Ricordiamo che il modulo esegue un'operazione di divisione intera tra ed e [(p-1)(q-1)] con resto 1.
- Il testo cifrato si ottiene con l'operazione c = (te)mod n dove t = plain-text (intero positivo) c =cipher-text.
- Il testo cifrato r è dato da: r = (cd)mod n.
La chiave pubblica è composta da due parti: il mod n ed e, mentre quella privata da n e d perciò, e è definito esponente pubblico, d privato.
La chiave pubblica può essere liberamente resa nota perché non si conoscono metodi per calcolare d, p e q dati n = pq ed e.
Ma vediamo un esempio procedendo, come sopra, passo per passo.
- Siano p=3 e q=11 due numeri primi ed n=pq=33 il loro prodotto.
- Scegliamo e=3 tale che e < n dispari e primo con (p-1)(q-1)= (3-1)(11-1)=20.
- Calcolare d, inverso di e, in modo che: ed = 1 mod (p-1)(q-1). Cioè ed/(p-1)(q-1) = 1. Allora si osserva che d=7 poiché ed/20 =1.
- Cifriamo il testo con c = (te)mod n. Se t sono i numeri da 0 ad 7, li cifreremo elevandoli alla terza potenza ed eseguendo mod 33.
plain-text
0 1 2 3 4 5 6 7 | cipher-text
0 1 8 27 31 26 18 13 |
Chiariamo alcuni valori della colonna cipher text:
plain text | cubo | resto mod 33 |
4 | 64 | 31 |
5 | 125 | 26 |
6 | 216 | 18 |
7 | 343 | 13 |
La chiave per l'RSA è il mod n. Più grande è la chiave, più sicura (ma lenta) sarà la cifratura.
Solo chiavi a 2048 bits possono ritenersi sicure per qualche anno reggendo ad attacchi di ogni genere...
Come reagirebbe il ragazzino che comunica l'emozione provata nel cantare con Venditti in soli 160 caratteri di un SMS, se sapesse che dietro quella bustina lampeggiante sul dispay del telefonino si nasconde, in realtà, tanta matematica?
Forse la sua opinione cambierebbe, ma qualcuno dovrebbe farglielo capire.
Bibliografia
Stinson D.R. : " Cryptography: Theory and Practice" - CRC Press LLC - United States of America (1995).
Links
AdaM "Unno": L'Arte della crittografia
http://www.dia.unisa.it/ads.dir/corso-s.../alt255.virtualave.net/crittografia.htm
Bonavoglia P.- Caretto A.: "La crittografia da Atbash a RSA"
http://www.provincia.venezia.it/mfosc/studenti/crittografia/index.html
Ceconi A.-Gallileo G.: " Cryptography"
http://telemat.det.unifi.it/book/1997/cryptography
|