Proteggere una Intranet - Dipartimento di Comunicazione e Ricerca

LA CRITTOGRAFIA
La crittografia è un metodo di scrittura segreta
composto di un messaggio originario, detto
“testo in chiaro”, di una sua codifica, detta
“testo cifrato”, che permette di nascondere il
contenuto dello stesso ai non autorizzati, e di
essere letto solo dai destinatari finali.
Il testo cifrato viene manipolato da un algoritmo
di crittazione che restituisce il messaggio in
chiaro
La crittografia
Testo in chiaro
Cifratura
T esto cifrato
Testo in chiaro
Decifrazione
Processo elementare del metodo crittografico
La crittografia
La segretezza del messaggio non dipende
necessariamente dalla segretezza dell’algoritmo
utilizzato.
Dato che gli algoritmi segreti non sono sottoposti a
revisioni accurate da parte della comunità dei
crittografi, alcune debolezze, apparentemente
superficiali, possono rimanere nascoste.
La chiave è una stringa di bit che controlla il risultato di
un algoritmo; ad ogni chiave corrisponde un
messaggio diverso.
Sono le chiavi che devono essere segrete non gli
algoritmi.
La segretezza del messaggio
Messaggio In Chiaro
Algoritmo Di Crittazione
Messaggio
Cifrato
Meccanismo di ottenimento del messaggio cifrato
La crittografia
Le funzioni di codifica e decodifica sono
basate su complesse teorie matematiche.
La scienza che studia in generale le
scritture segrete si chiama crittologia;
essa si divide in:
Crittografia (scienza che studia i sistemi di
protezione dei messaggi);
Crittanalisi (scienza che studia i sistemi di
violazione dei messaggi cifrati).
La crittografia
I metodi crittanalitici più usati sono di tipo
statistico, cioè basati sullo studio della
distribuzione delle frequenze delle lettere, o dei
digrammi e trigrammi, (nella lingua italiana i
digrammi sono, ad esempio,:
la, da, se, ma;
i trigrammi sono, ad esempio:
che, non, per
che presenta la lingua con cui è stato cifrato il
testo.
Istogramma tridimensionale della
distribuzione delle frequenze delle
lettere nella lingua italiana
La crittografia
Il termine crittologia non viene più utilizzato e, si
parla quasi esclusivamente di crittografia.
Lo sviluppo di questa scienza è dovuto alla
continua lotta tra crittografi e crittanalisti:
i primi sempre alla ricerca di nuovi e più sicuri
sistemi di protezione dei messaggi, i secondi
sempre alla costante ricerca di sistemi per
violarli.
Un’altra precisazione riguarda l’applicazione della
crittografia al messaggio in chiaro e a quello
cifrato.
La crittografia
L’applicazione della crittografia al messaggio in
chiaro, consiste nella cifratura del testo, e non
come generalmente si dice “una crittazione”,
mentre nell’applicare la crittografia al messaggio
cifrato si effettua una decifrazione (se compiuta
dal legittimo destinatario), oppure una
decrittazione (se compiuta da terzi illegittimi).
Storia della crittografia
Sin da quando l’uomo ha imparato a comunicare con i
suoi simili, ha sviluppato l’esigenza di indirizzare
comunicazioni a determinati destinatari.
In epoche dominate dalla comunicazione orale, questa
esigenza era facilmente soddisfatta: i due soggetti
comunicanti si individuavano facilmente.
Successivamente con la comunicazione scritta, le cose
si sono complicate: il messaggio divenne una realtà
oggettiva diversa da chi lo scriveva, da qui l’esigenza
di nasconderlo ai non destinatari e quindi la comparsa
di rudimentali forme di crittografia.
Tecnica evolutasi in Occidente, soprattutto dal
Rinascimento in poi, grazie alle fiorenti attività
commerciali e diplomatiche di quel periodo.
Storia della crittografia
Oggi il suo ruolo è diverso: è un mezzo di certezza e valenza
legale delle trasmissioni informatiche.
Nel corso della storia è facile rintracciare molti casi in cui la
crittografia è stata usata per comunicazioni segrete, tra queste,
famoso è il sistema utilizzato da Giulio Cesare. Per comunicare
con i capi militari l’imperatore romano scambiava ogni lettera
del messaggio in chiaro con quella che si trovava più avanti
nell’alfabeto di un certo numero di posizioni.
Ecco riportato un esempio:
“ATTACCATE IL NEMICO ORA”
diventerebbe, applicando la regola di sostituzione di tre lettere in
avanti rispetto a quelle del messaggio:
“DZZDFFDZH NO QHPNFR RUD”
Storia della crittografia
La chiave di questo sistema era composta da una sola
lettera (quella da sostituire alla lettera A), da cui il
nome di sistema monoalfabetico, questo sistema,
ammette, quindi, venticinque chiavi, tante quante sono
le possibilità offerte dall’alfabeto escludendo la lettera
stessa (ABCDEFGHJKILMNOPQRSTUVWXYZ).
È facile notare la vulnerabilità intrinseca di questo
sistema: con un attacco di forza bruta si troverebbe
subito la chiave sfruttando, venticinque possibilità al
massimo.
Questa semplice procedura utilizzata da Cesare, a quel
tempo era molto efficace, oggi risulta troppo intuitiva,
Storia della crittografia
Testo in chiaro (nell’esempio “ATTACCATE IL
NEMICO ORA”);
Algoritmo di cifratura, cioè la regola con la quale
si definisce la sostituzione dei caratteri del
messaggio (nell’esempio sostituzione di ogni
lettera del messaggio con una più avanti
nell’alfabeto);
Chiave, cioè l’informazione che fa funzionare
l’algoritmo (nell’esempio tre lettere dopo la
lettera);
Testo cifrato (nell’esempio “DZZDFFDZH NO
QHPNFR RUD”).
Storia della crittografia
Il semplice sistema cifrato utilizzato da Cesare dava
origine a diverse varianti, largamente utilizzate nei
secoli successivi, che col passare del tempo si sono
rivelate inadeguate.
Il passo successivo al cifrario di Cesare fu la
sostituzione monoalfabetica: le lettere erano
indipendenti l’un l’altra; la scoperta di una lettera non
dava informazioni sull’identità delle altre e il cifrario
non veniva scoperto. Un attacco di forza bruta era
improponibile, quindi apparentemente era il sistema
più sicuro.
Purtroppo la sicurezza di un cifrario non risiede solo
nell’elevato numero di chiavi che esso ammette! Il
punto debole dei cifrari a sostituzione monoalfabetica
è la troppo stretta correlazione tra alfabeto chiaro e
Storia della crittografia
Nel 1466 un architetto e letterato Leon Battista Alberti,
anche abile crittologo, descriveva in un suo piccolo
trattato i principali metodi di cifratura conosciuti a
quell’epoca e introduceva un nuovo sistema che
prevedeva la modifica periodica della chiave.
Era il primo formale attacco agli inviolabili cifrari a
sostituzione monoalfabetica.
Alberti partiva dall’assunto che in un normale testo di
senso compiuto le lettere non compaiono con uguale
frequenza, questa distribuzione statistica è funzione
dell’idioma considerato.
Storia della crittografia
Da questo concetto partivano sistemi di decrittazione
basati sul riconoscimento delle lettere in base alla loro
frequenza nel messaggio cifrato, poi basati sull’analisi
delle distribuzioni statistiche di coppie di lettere. Era
un metodo sicuramente più sicuro, ma anche più
difficile da applicare: a quel tempo non c’erano
calcolatori capaci di crittare i dati!
Per semplificarne l’utilizzo, l’architetto Alberti, inventava
così un dispositivo di cifratura composto di due dischi
sovrapposti, su ognuno dei quali erano incise in circolo
le lettere dell’alfabeto.
Il disco superiore ruotava, quindi allineando
correttamente i dischi si trovavano rapidamente le
corrispondenze delle varie lettere per una determinata
chiave.
Sistema di cifratura di Alberti 1466
Storia della crittografia
Questo sistema era rivoluzionario, ma il suo ideatore
non riuscì a sfruttare a pieno le sue potenzialità. Ci
riuscì un secolo dopo Blase de Vigenère che, a partire
dal lavoro di Alberti, creò un sistema di codifica così
efficace che per molto tempo fu chiamato il cifrario
indecifrabile.
Si trattava del primo esempio di cifrario a sostituzione
polialfabetica, una risposta rinascimentale ai troppo
vulnerabili sistemi monoalfabetici.
Questo sistema si basava su una tabella contenente tutti
i possibili alfabeti di cifratura a 26 caratteri; alla stessa
lettera del testo in chiaro corrispondevano lettere
diverse nel testo cifrato e viceversa.
Storia della crittografia
La forza di questo sistema era garantito dall’enorme numero di
chiavi possibili, per 300 anni nessuno era riuscito ad attaccarlo;
solo nel 1863 Friederich W. Kasiski, ufficiale dell’esercito
prussiano, trovava un metodo per decrittarlo.
Partì dal principio che in molti crittogrammi dell’epoca si
ripetevano gruppi di lettere, relazionando queste ripetizioni alle
lunghezze delle chiavi, arrivò tramite complessi calcoli alla loro
reale lunghezza, componendo il cifrario polialfabetico nelle sue
componenti monoalfabetiche, facili da decrittare
separatamente.
Dal lavoro di questo ufficiale derivò la conferma teorica della
convinzione empirica dei crittologi del Sei-Settecento che le
chiavi lunghe generassero crittogrammi più sicuri.
Una chiave lunga viene ripetuta un minor numero di volte nella
cifratura rispetto a chiavi corte, dando meno adito a coincidenze
utilizzate per la decrittazione!
Storia della crittografia
Successivamente al periodo classico, iniziò il periodo
moderno, contraddistinto dall’introduzione di mezzi di
comunicazione a distanza quali telegrafo e radio, e
quindi anche da nuovi studi e applicazioni dei sistemi
di cifratura.
Furono costruite nuove macchine cifranti automatiche,
che diedero vita ad una nuova disciplina: la crittografia
automatica.
La crittografia moderna non ha risolto tutte le
problematiche del settore; la crescente potenza di
calcolo dei computer favorisce sia crittologi che
crittanalisti!
Nel 1917 Gilbert Vernam, un impiegato della compagnia
telefonica americana AT&T, inventò un ingegnoso
sistema crittografico di protezione dei testi codificati in
codice Baudot.
Storia della crittografia
Questo codice era stato inventato nel 1870 dal francese
Emile Baudot, usato ampiamente nei decenni successivi
per le comunicazioni telegrafiche e soprattutto per le
telescriventi.
Si trattava di un codice di 32 caratteri che in qualche modo
precorreva gli attuali codici informatici come il codice ASCII.
Ogni carattere era infatti codificato con 5 bit, o cifre binarie 0,
1, con un totale di 25 = 32 caratteri possibili.
Il sistema di Vernam era composto di un dispositivo che
leggeva contemporaneamente due nastri in ingresso e,
creava da questi un nastro in uscita, idea che è stata la
base di numerosi sistemi di cifratura moderni.
In ogni posizione del nastro in uscita c’era un foro, se e solo
se le corrispondenti posizioni nei due nastri in entrata erano
diverse tra loro (una aveva il foro, l’altra no), in caso
contrario non c’era alcun foro.
Il metodo di Vernam costituiva un sistema crittografico
simmetrico, in cui la stessa operazione e la stessa chiave
Storia della crittografia
Questo sistema di nastri è molto interessante perché
implementa un modello ideale di cifratura, in cui la
sicurezza del metodo dipende esclusivamente dalla
segretezza della chiave e non da quella del metodo
stesso!
Contemporaneamente all’idea di Vernam comparivano
altre macchine cifranti, basate su principi meccanici o
elettromeccanici: le macchine a rotori.
Il loro funzionamento concettualmente era molto
semplice: una catena di dischi mobili (i rotori) fissati su
un’asse comune, affacciati l’un l’altro, ciascuno
provvisto su entrambi i lati di contatti elettrici.
Ad ogni contatto corrispondeva un carattere dell’alfabeto
utilizzato per i messaggi; una sorta di sistema di
Vigenère automatico.
Storia della crittografia
Queste macchine trovarono largo uso nelle guerre
mondiali soprattutto grazie a:
Completa automatizzazione del procedimento di
cifratura;
Semplicità della modifica della chiave di cifratura;
Semplicità della modifica della macchina per supportare
famiglie di chiavi diverse.
Tra queste una delle più famose è Enigma, macchina a
rotori, inventata nel 1918 dal tedesco Arthur Scherbius
e adottata dall'esercito e dalla marina tedesca fino alla
seconda guerra mondiale.
Storia della crittografia
Era una macchina simmetrica, nel senso che se la
lettera A era cifrata con la G in una certa posizione del
testo, allora nella stessa posizione la G era cifrata con
la A. La stessa macchina serviva quindi per cifrare e
decifrare; una grossa comodità operativa che si
rivelava però anche una debolezza crittografica.
La chiave dell'Enigma era la disposizione iniziale dei
rotori; questa chiave veniva cambiata ogni 24 ore
secondo una regola prefissata; in definitiva la vera
chiave segreta era questa regola.
Anche i collegamenti interni dei rotori erano segreti;
inoltre i tre (o più) rotori potevano essere scambiati tra
di loro.
Storia della crittografia
Macchina Enigma
aperta
Macchina Enigma
Storia della crittografia
Un attacco verso Enigma poteva richiedere secoli di
tentativi, un periodo talmente lungo che le informazioni
scoperte non sarebbero state più valide.
Purtroppo i tedeschi, certi dell’inviolabilità del loro
sistema, commisero degli errori di procedura che
resero vulnerabile Enigma. Gli inglesi, sfruttando
questa falla, riunirono ad Oxford e Cambridge geni
matematici ed altri personaggi di eterogenea
formazione culturale come linguisti, esperti di
spionaggio ed esperti di codici Morse, capitanati dal
matematico Alan Turing, per decrittare i messaggi dei
tedeschi.
Crittografia attuale
Nel dopoguerra, con la nascita dell’informatica,
cominciarono ad essere progettati algoritmi adatti
all’implementazione tramite computer. L’uso dei
computer consentì di usare chiavi d’enormi dimensioni
a tutto vantaggio di uno standard di sicurezza elevato.
Nel 1949 Claude Shannon padre della Teoria
dell'Informazione, dimostrò che ogni cifrario
"teoricamente sicuro" era un cifrario di Vernam (e
viceversa). Infatti se la chiave è totalmente casuale e
lunga come il testo allora il testo cifrato non contiene
alcuna informazione sul testo in chiaro, ed è del tutto
al sicuro dagli attacchi della crittanalisi statistica.
Crittografia attuale
Shannon pubblicò un articolo che sanciva l’ingresso
della crittografia nella Teoria dell’Informazione,
segnando la nascita della crittografia contemporanea.
Negli anni Sessanta, dopo il diffondersi delle prime reti
di computer, gli studi sulla crittografia come scienza
formale ottennero un forte impulso che portò:
Al primo sistema crittografico certificato e standardizzato
a livello internazionale DES;
Alla scoperta di sistemi di cifratura a chiave asimmetrica
che hanno creato la crittografia a chiave pubblica e i
meccanismi di firma digitale, l’RSA.
Crittografia attuale
L’uso del computer consente di realizzare cifrari
estremamente complessi, impossibili da costruire per
via elettromeccanica, ma mette a disposizione dei
crittoanalisti un valido mezzo per effettuare
approfondite analisi dei dati cifrati, tanto da scoprirne
le minime debolezze da sfruttare per un attacco
decrittante!
Sulla scia di questa breve storia è facile capire perché i
governi di tutto il mondo hanno sempre considerato la
crittografia come un’arma militare cruciale. Negli Stati
Uniti fino al 1996 le restrizioni sull’esportazione della
crittografia erano in mano al Dipartimento di Stato. Alla
base c’era un principio militare molto semplice: se
l’America avesse controllato la diffusione della
crittografia, avrebbe mantenuto un gran vantaggio
rispetto agli altri paesi nei successivi conflitti militari.
Crittografia attuale
Lunghi periodi di proteste da parte delle aziende
che volevano espandere i propri prodotti
oltreoceano, fecero passare la gestione delle
importazioni/esportazioni della crittografia nelle
mani del Dipartimento del Commercio, attento
alle esigenze degli operatori economici.
Crittografia attuale
Sistemi di cifratura, vantaggi e svantaggi
Esistono svariati metodi crittografici e farne una
classificazione può risultare utile ai fini di una migliore
comprensione:
Per sostituzione (monoalfabetica o sostituzione
semplice);
Per trasposizione o permutazione;
In successione;
A blocchi;
Chiavi simmetriche;
Chiavi asimmetriche.
Crittografia attuale
I sistemi di crittografia per sostituzione consistono nel
nascondere le lettere del testo in chiaro, mentre più
sostituzioni disperdono le lettere con alta frequenza
per impedire o ostacolare la determinazione
dell’algoritmo di sostituzione (confusione). La cifratura
di Cesare, di Vigenère, di Vernam appartengono a
questa tipologia.
Nei sistemi per trasposizione le lettere del testo in chiaro
vengono riorganizzate, si produce diffusione
spargendo le informazioni del messaggio o della
chiave nel testo cifrato. In questo modo si cerca di
impedire l’analisi dei caratteri adiacenti.
Crittografia attuale
Un esempio di questo tipo è la trasposizione
colonnare: riorganizzazione dei caratteri del
testo in chiaro, in colonne. Ecco di seguito
riportato un esempio di trasposizione a cinque
colonne, dove ogni riga contiene cinque
elementi del testo in chiaro organizzate come
segue:
c1 c2 c3 c4 c5
c6 c7 c8 c9 c10
c11……… cn
Crittografia attuale
A seguito dell’applicazione della trasposizione
colonnare il testo risultante viene ottenuto
leggendo le colonne dall’alto verso il basso:
c1 c2 c3 c4 c5
c6 c7 c8 c9 c10
c11……….cn
Crittografia attuale
Nel caso in cui la lunghezza del messaggio non è un
multiplo della lunghezza di una riga, le ultime righe
saranno più corte di una o più lettere.
I sistemi di cifratura in successione convertono un
simbolo del testo in chiaro in un corrispondente
simbolo del testo cifrato (ad eccezione del sistema
colonnare tutti gli altri sistemi citati in questo paragrafo
appartengono a questa categoria). La trasposizione
dipende dal simbolo, dalla chiave e dalle informazioni
di controllo dell’algoritmo.
Nei sistemi a blocchi viene cifrato un gruppo di simboli
del testo in chiaro come un blocco (cifratura per
trasposizione colonnare). Per esempio la parola
“camera” sarà scomposta in “ca me ra” e verranno poi
cifrate le singole sillabe.
Crittografia attuale
Sia la crittografia in successione che la crittografia a
blocchi presentano vantaggi e svantaggi, che
riportiamo per meglio confrontare le due metodologie
di sicurezza informatica.
Vantaggi della crittografia in successione:
Velocità di trasformazione (il tempo della crittografia del
simbolo dipende solo dall’algoritmo);
Bassa presenza di errori (dato che la cifratura dei
simboli è indipendente tra loro, un errore influisce solo
sul singolo carattere).
Svantaggi della crittografia in successione:
Bassa diffusione (dato che la cifratura dei simboli è
indipendente tra questi, tutte le informazioni del
singolo simbolo sono racchiuse in un simbolo del testo
cifrato);
Crittografia attuale
Suscettibilità a modifiche e inserimenti maligni (un
hacker che ha violato il codice può unire pezzi di
messaggi precedenti e trasmettere un falso
messaggio spacciandolo per vero).
Vantaggi della crittografia a blocchi:
Alta diffusione (le informazioni di testo in chiaro sono
diffuse in vari simboli di testo cifrato);
Immunità all’inserimento di singoli simboli nel blocco.
Svantaggi della crittografia a blocchi:
Lentezza della crittografia;
Propagazione degli errori.
Crittografia attuale
Sono stati precedentemente citati due concetti molto importanti
della crittografia dei quali è necessaria una breve specifica:
Confusione;
Diffusione.
Per “confusione” s’intende l’incapacità da parte dell’hacker di
prevedere cosa accadrà al testo cifrato se venisse cambiato un
simbolo nel testo in chiaro. Un algoritmo capace di creare una
tale confusione determina una complessa relazione tra il teso in
chiaro, le chiavi e il testo cifrato (un sistema a blocchi offre una
valida confusione).
La “diffusione” invece è la capacità di distribuire le informazioni dei
singoli simboli del testo in chiaro nell’intero testo cifrato; in
questo modo l’hacker per scoprire l’algoritmo ha bisogno di
molto testo cifrato.
Crittografia simmetrica e
asimmetrica
La forma più semplice di crittazione è la crittografia
simmetrica o a chiave segreta; il messaggio viene
codificato e decodificato con un’unica chiave. Sia il
mittente che il destinatario hanno la stessa chiave
(chiave condivisa o simmetrica) che entrambi
devono conoscere.
1.
2.
3.
L’operatore A deve inviare un messaggio riservato
all’operatore B;
L’operatore A codifica il messaggio tramite chiave
segreta;
L’operatore B decodifica il messaggio con la stessa
chiave segreta.
Esempio di crittografia simmetrica
Crittografia attuale
Per diversi anni la forma di crittografia simmetrica più conosciuta è
stata il Data Encryption Standard (DES). Si tratta di un prodotto
dell’IBM, divenuto, alla fine degli anni Settanta, lo standard del
governo americano.
Il DES era stato progettato per consentire la cifratura in tempo
reale di un flusso di dati in transito su una linea di
comunicazione.
La chiave usata per cifrare è un blocco di 64 bit; l’ultimo bit di ogni
sottogruppo è di controllo quindi la chiave è di solo 56 bit.
Si tratta di un cifrario composto, costituito da una successione di
trasformazioni elementari, alternate secondo schemi prestabiliti
e iterate più volte; tali da sottoporre i bit del blocco iniziale a un
totale rimescolamento che dipende dai bit della chiave.
Crittografia attuale
Nello specifico, il testo da cifrare viene suddiviso in blocchi da 64
bit, ma se uno di essi non raggiunge tale lunghezza, si utilizza
un procedimento detto “pad”.
Il primo passo dell’algoritmo DES è una permutazione iniziale che
riordina i 64 bit di ogni blocco di input, in seguito divide i blocchi
in due parti di 32 bit, mischiando ogni parte indipendentemente
dall’altra, combina la chiave con una metà e scambia le due
metà.
La chiave scorre verso sinistra di un certo numero di bit e viene
permutata, poi combinata con la metà destra, a sua volta
successivamente combinata con la metà sinistra. Alla fine di
queste combinazioni si ottiene la nuova parte destra, mentre la
vecchia metà destra diventa la nuova metà sinistra.
Il tutto viene ripetuto per 16 cicli (round) e alla fine si fa una
permutazione finale che restituisce l’inverso di quella iniziale.
Di seguito è rappresentato graficamente il funzionamento
dell’algoritmo DES per 16 cicli:
Rappresentazione
grafica
dei 16 cicli
dell’algoritmo
DES
Rappresentazione grafica dei 16 cicli dell’algoritmo DES
Crittografia attuale
La sicurezza che questo sistema garantisce oggi, non è più di alto
livello. La caduta di questo algoritmo risale al 1998 quando
venne costruito, in meno di un anno, un calcolatore capace di
forzare in circa sessanta ore un messaggio cifrato con il DES.
Le prime critiche mosse al DES si basavano sulla scarsa
lunghezza della chiave, che permetteva un attacco di forza
bruta.
Una sua evoluzione, chiamata DES triplo, comporta la cifratura
del testo in chiaro con una chiave, la decifrazione con un’altra e
una nuova cifratura con la prima. La decifrazione cancella la
prima cifratura, quindi il risultato finale è un’unica cifratura.
L’unica miglioria apportata da questo algoritmo è il fatto di aver
raddoppiato la lunghezza effettiva della chiave.
Algoritmo di cifratura del triplo DES
Crittografia attuale
Nonostante ciò, il DES è stato per circa venti anni
il principale sistema crittografico mondiale usato
nelle transazioni civili.
Nel 1995 iniziarono i primi studi per la ricerca di
un nuovo algoritmo di crittografia più potente, dai
quali nacque l’algoritmo AES (Advanced
Encryption Standard) anch’esso simmetrico.
Confronto tra l'algoritmo DES e l'algoritmo
AES
DES
AES
Data
1976
1999
Dimensione dei
blocchi
64 bit
128 bit
Lunghezza della chiave 56 bit effettivi
Primitive di
crittografia
Primitive
crittografiche
Origine
128, 196, 256 bit…
Sostituzione,
Permutazione
Sostituzione,
Scorrimento,
Mescolamento dei bit
Confusione,
Diffusione
Confusione,
Diffusione
IBM
Crittografi
Indipendenti
Crittografia attuale
Esempio di crittografia asimmetrica
All’opposto si trova la crittografia asimmetrica (a chiave pubblica) che, invece di utilizzare
un’unica chiave per la codifica e decodifica, prevede due chiavi distinte.
Ciascuna può essere utilizzata per codifica e decodifica, basta ricordare che qualunque
operazione si fa con una chiave può essere annullata solo con l’altra.
Crittografia attuale
1.
2.
3.
4.
L’operatore A vuole essere sicuro che solo
l’operatore B possa leggere il messaggio
segreto;
L’operatore B rende nota la sua chiave
pubblica;
L’operatore A codifica il messaggio
utilizzando la chiave pubblica dell’operatore
B;
L’operatore B decodifica il messaggio
utilizzando la sua chiave privata.
Crittografia attuale
Questo sistema nacque nel 1975 ad opera di Whitfield
Diffide e Martin Hellman che risolsero così il problema
della comunicazione sicura della chiave.
Ogni persona coinvolta nella comunicazione possiede
una coppia di chiavi, create attraverso un processo
matematico in modo da risultare legate e da non poter
essere ricavate l’una dall’altra.
Una delle due chiavi, quella pubblica, si usa per cifrare il
messaggio, l’altra, quella privata quindi segreta, serve
per decifrarlo.
La chiave pubblica può essere comunicata in anticipo a
chiunque, dato che non serve per decifrare il
messaggio, e la si può pubblicare su un elenco per
facilitarne il reperimento.
Crittografia attuale
Per mandare un messaggio cifrato è sufficiente avere la
chiave pubblica del destinatario del messaggio, cifrare
il messaggio con questa, inviarlo, sapendo con
certezza che solo il destinatario è in possesso della
chiave per decifrare il messaggio ricevuto.
Visto che il messaggio viene cifrato con la chiave del
destinatario e non con quella del mittente, se i
destinatari sono un gruppo di persone, bisogna cifrare
il messaggio tante volte quante sono le persone, ogni
volta con una chiave diversa.
Per capire meglio come funziona la codifica e la
decodifica con la chiave pubblica si riporta il seguente
esempio
Crittografia attuale
L’operatore A del reparto clienti di un’azienda,
deve comunicare all’operatore B, del reparto
vendite, il numero di conto corrente di un
cliente molto importante (867-5309).
L’operatore B calcola una coppia di chiavi
asimmetriche con una relazione matematica di
complementarietà, stabilendo che una delle
due chiavi è 1234567. Le funzioni di codifica e
decodifica sono basate sull’aritmetica in modulo
10 (si sommano due cifre, si divide il risultato
per 10, si considera solo il resto).
Crittografia attuale
quindi in aritmetica in modulo 10,
5+7 è uguale a 2.
5+7=12 e 12/10=1 con il resto di 2
quindi in aritmetica in modulo 10, 5+7 è uguale a
2.
Crittografia attuale
L’operatore A potrebbe cifrare il messaggio
utilizzando un banale algoritmo che preveda la
somma di due cifre in modulo 10:
8675309 + (messaggio segreto dell’operatore
A)
1234567 = (chiave pubblica dell’operatore B)
9809866 (messaggio crittato in modulo 10)
Crittografia attuale
L’operatore B deve decifrare il messaggio
utilizzando lo stesso algoritmo, con la chiave
complementare:
9809866 + (messaggio crittato)
9876543 = (chiave privata dell’operatore B)
8675309 (messaggio segreto originale in mod. 10)
Crittografia attuale
Sommando in modulo 10 la chiave pubblica con
quella privata dell’operatore B, in aritmetica in
modulo 10, si deve ottenere 0. Le chiavi sono
state scelte in modo da essere complementari
a 10 l’una con l’altra:
1234567 + (chiave pubblica dell’operatore B)
9876543 = (chiave privata dell’operatore B)
0000000 (somma in modulo 10)
Crittografia attuale
L’invenzione di Diffide e Hellman ha rivoluzionato la crittografia,
risolvendo il problema della comunicazione delle chiavi, e
creando il problema della loro gestione, in seguito affidata ai
computer.
Questo sistema ha altri due lati positivi. Consideriamo un’azienda
che, in una situazione di bilancio delicata, decida di chiedere un
fido bancario. L’ente creditizio, ammesso che sia disposto a
concedere il fido, vorrà essere sicuro che la richiesta provenga
dalla suddetta azienda e non da un truffatore (problema
d’autenticazione) e che il messaggio non sia stato manomesso
(problema dell’integrità dei dati).
Entrambi gli ostacoli possono essere superati dalla crittografia
pubblica: con la firma digitale, risultato di un calcolo matematico
applicato al contenuto informativo del documento, quindi
associata ad esso.
Crittografia attuale
A tal proposito si deve considerare che il ruolo di chiave
pubblica e privata può essere scambiato. Cifrare un
messaggio con la propria chiave privata è come
apporre una firma in fondo ad un documento: chi
riceve tale messaggio può essere sicuro
dell’autenticità del mittente e dell’integrità dei dati.
Un hacker che voglia danneggiare una simile
comunicazione dovrebbe decifrare il messaggio,
modificarlo, cifrarlo di nuovo con la chiave privata del
mittente.
Operazioni fattibili, ma improbabili se la chiave è ben
custodita.
Crittografia attuale
A garanzia dell’autenticità e dell’integrità del messaggio,
viene applicata la tecnica detta “hashing”: funzione
matematica generatrice di un’impronta digitale del
messaggio, detta digest, che converte testo di
qualunque dimensione in una stringa binaria di
lunghezza fissa, generalmente 128 o 160 bit, molto più
breve del documento stesso. La funzione hash deve
essere:


Unidirezionale (dato il valore dell’impronta è
impossibile risalire al testo corrispondente);
Priva di collisioni (è impossibile che due testi abbiano
la stessa impronta, se il testo cambia anche di una
virgola avrà una nuova impronta).
Crittografia Asimmetrica:
Ogni coppia di chiavi viene creata attraverso
un procedimento matematico (algoritmo
RSA) in modo da risultare legate e da non
poter essere ricavate l’una dall’altra.
I sistemi di cifratura a chiave asimmetrica
hanno creato i meccanismi di firma digitale:
cifrare un messaggio con la propria chiave
privata equivale ad apporre una firma ad un
documento
Firma Digitale
Di seguito si presenta una rappresentazione
grafica, ai fini di una più chiara comprensione
del funzionamento ed applicazione della firma
digitale nello scambio di dati tra due operatori,
tramite “la tecnica dell’hashing”:
pplicazione di crittografia asimmetrica e firma digitale al documento
Firma Digitale
1.
A calcola un valore di digest per il messaggio;
A cifra il digest con la sua chiave privata
(firma digitale);
2.
3.
4.
A invia il messaggio e il digest crittati;
B decifra il digest utilizzando la chiave
pubblica dell’operatore A;
B calcola il digest del messaggio ricevuto;
5.
6.
B confronta il digest calcolato con quello
ricevuto.
Firma Digitale
Al fine di garantire l’autenticità del mittente, la
riservatezza e l’integrità del messaggio, è
sufficiente utilizzare le due coppie di chiavi dei
due operatori. L’operatore A cifra il messaggio
con la chiave pubblica di B e cifra l’hash con la
propria chiave privata. A questo punto tutti i tre
criteri (autenticità, riservatezza e integrità)
saranno soddisfatti.
Firma Digitale
Ecco elencate alcune caratteristiche della firma digitale:

La firma digitale è separata dal documento a cui si riferisce, non
lo modifica, può essere memorizzata in un file differente;

Dipendendo dal contenuto del documento, la firma è differente
da documento a documento, ognuna vale solo per il documento
a cui si riferisce;

La firma digitale può essere verificata da chiunque in modo
certo e ripetibile, se il calcolo torna la firma è valida e si riferisce
al documento dato;

Rivela eventuali modifiche al testo originale apportate dopo la
firma.
Ogni minima modifica al testo originale genera un calcolo diverso
che non coincide con quello originario, quindi ogni successiva
verifica dà esito negativo;

Non può essere ripudiata.
Firma Digitale
Dato che la firma stessa non è falsificabile o imitabile,
non può essere generata da nessun altro all’infuori del
legittimo proprietario della chiave crittografica utilizzata
nel calcolo.
Come fa l’operatore B ad essere sicuro che la chiave
pubblica contenuta nel messaggio sia realmente
quella dell’operatore A?
La soluzione a questo quesito è giuridicamente offerta
dall’introduzione di un terzo soggetto garante della
legittimità della chiave pubblica, che firma digitalmente
la certificazione: “l’Autorità di certificazione” (autorità
preposta e riconosciuta per tali compiti, una terza
parte di cui gli operatori si fidano e che conosce la
chiave pubblica).
Visto che l’operatore B conosce la chiave pubblica dell’autorità di certificazione,
può effettuare il controllo di integrità sul certificato, dell’operatore A, esaminando
la firma digitale dell’autorità.
Esempio di utilizzo dei certificati digitali
Firma Digitale
L’operatore A richiede un certificato digitale;
1.
L’autorità verifica l’identità dell’operatore A;
2.
3.
L’operatore A riceve un certificato firmato
digitalmente dall’autorità;
L’operatore A invia il proprio certificato
all’operatore B;
4.
5.
L’operatore B verifica l’autenticità del
certificato esaminando la firma digitale
dell’autorità.
Firma Digitale
Purtroppo a livello d’implementazione la crittografia
asimmetrica pesa da 10 a 100 volte di più, a livello
computazionale, della crittografia simmetrica. Per
questo è possibile effettuare dei compromessi tra gli
svantaggi e i vantaggi dei due sistemi crittografici, con
chiavi relativamente limitate rispetto ai contenuti dei
messaggi, che riducono al minimo il rallentamento del
sistema asimmetrico.
Alcune delle più note funzioni di questo tipo sono il DES
o triplo DES per codificare il contenuto del messaggio
e la cifratura RSA (dal nome dei suoi inventori Riverst,
Shamir e Adleman nel 1977, come già descritto) per la
diffusione delle chiavi simmetriche.
Applicazione di DES e RSA per cifrare il messaggio e scambiare le chiavi
Firma Digitale
1.
2.
3.
4.
5.
Creazione della chiave simmetrica;
Utilizzo della chiave simmetrica per crittate il
messaggio;
Creazione della chiave asimmetrica;
Utilizzo della chiave asimmetrica per la
crittazione della chiave simmetrica;
Invio della chiave simmetrica crittata insieme
al messaggio crittato.
Firma Digitale
Viste le innumerevoli applicazioni offerte sia
dalla crittografia simmetrica che
asimmetrica, per avere ben chiara la
distinzione e le peculiarità che
caratterizzano le due tipologie citate, ecco
un breve schema riassuntivo:
Confronto tra crittografia simmetrica e crittografia asimmetrica
Chiave segreta
simmetrica
Chiave pubblica
asimmetrica
Nr. di chiavi
1
2
Protezione
della chiave
Deve essere tenuta segreta
Una chiave è segreta
l'altra no
Utilizzi
Segretezza e d’integrità dei
dati; singoli caratteri in
blocchi di dati, messaggi,
file
Scambio delle chiavi;
autenticazione (attività
specializzate in funzione
della lentezza)
Deve avvenire
singolarmente
La chiave pubblica può
servire per
distribuire altre chiavi
Rapida
Lenta
Distribuzione della
chiave
Velocità
Crittografia e sicurezza
Sapersi districare nella scelta tra le varie tecniche di
cifratura offerte non è cosa tanto semplice, capire il
livello di sicurezza che si richiede alla crittografia
altrettanto. Cosa si intende per cifratura valida? Come
si è certi della sicurezza garantita da un determinato
sistema?
C. Shannon identifica alcune delle caratteristiche che
rendono un sistema di cifratura valido:
La quantità di segretezza necessaria deve determinare
la quantità di lavoro necessaria per la crittografia e la
decifrazione;
Crittografia e sicurezza
L’insieme delle chiavi e l’algoritmo di cifratura,
devono essere privi di complessità che
impedirebbe l’utilizzo del sistema;
L’implementazione del processo dovrebbe
essere semplice;
Gli errori nella cifratura non dovrebbero
propagarsi e provocare il danneggiamento di
altre informazioni nel messaggio;
La dimensione del testo cifrato non dovrebbe
essere superiore a quella del testo del
messaggio originale.
Crittografia e sicurezza
Il ruolo della crittografia è proprio quello di
garantire l’esatta provenienza dei messaggi, la
sua integrità di contenuto e la sicurezza del
canale di trasmissione. La crittografia si è
trasformata da strumento di segretezza nelle
mani di pochi, a veicolo di certezza e diritto per
ogni individuo. Da qui l’applicazione di speciali
metodologie crittografiche, come la firma
digitale, per l’autenticazione e certificazione dei
Crittografia e sicurezza
La tutela delle informazioni, la sicurezza informatica, la valenza
legale dei contratti per via informatica, sono tutti aspetti di una
stessa medaglia. Ecco perché chi sceglie la crittografia, come
mezzo di certificazione e sicurezza delle informazioni, si chiede
costantemente quale grado di protezione abbiano i messaggi
crittati.
Numerosi sono i fattori che concorrono a definire il livello di
sicurezza, di seguito sono riportati alcuni dei più importanti:
Forza dell’algoritmo scelto;
Casualità delle chiavi utilizzate;
Durata di vita delle chiavi;
Sicurezza delle chiavi private;
Lunghezza delle chiavi.77
Crittografia e sicurezza
Infatti, debolezze intrinseche nell’algoritmo di
cifratura rendono insicure alcune scelte,
mettendo in evidenza, nel messaggio cifrato,
ripetizioni riconoscibili da un hacker.
Dopo pochi tentativi l’hacker sarebbe in grado di
tirar giù uno schema di decrittazione, il tutto
sarebbe più veloce se supportato da un
computer per la ricerca delle combinazioni e
delle corrispondenze con le parole di un
dizionario.
Crittografia e sicurezza
Anche una mancata casualità nella scelta delle chiavi
mette in difetto il sistema di cifratura; possono nascere
delle ripetizioni che consentono all’hacker di
indovinare quali siano le chiavi più probabili fra quelle
di un elenco.
Non è poi da sottovalutare la durata delle chiavi; se
vengono modificate raramente, un hacker, trovatane
una, può accedere liberamente al sistema e ai dati
nascosti.
Più lunga è una chiave, maggiore è la sicurezza del
messaggio cifrato; una chiave lunga un bit comporta
due possibilità, una di tre, otto alternative e così via.
Lo spazio dato alle chiavi affinché un cifrario sia valido
deve essere ragionevolmente grande, in funzione
delle risorse finanziarie e tecniche dell’avversario,
dell’importanza e della durata dell’informazione!
Crittografia e sicurezza
La forza e la sicurezza dei dati cifrati possono essere
diminuite dalle proprietà matematiche intrinseche
dell’algoritmo scelto e dal modo in cui questi algoritmi
sono implementati.
Ad esempio, l’utilizzo di un algoritmo e di lunghezze di
chiavi indicate dagli esperti come sicuri, non è una
garanzia sufficiente di sicurezza; se chi implementa
queste funzioni commette degli errori, per un hacker
bucare il sistema diventa uno scherzo.
Tutto ciò dimostra come un’azienda che necessita di un
alto standard di sicurezza dei dati cifrati, abbia
bisogno di valide implementazioni e esperti crittografi.
Crittografia e sicurezza
La sicurezza delle comunicazioni cifrate va
continuamente rivalutata; informazioni
memorizzate solo pochi anni prima, e
ritenute sicure, oggi vanno ricifrate con
algoritmi più complessi e chiavi più
lunghe.
La Firma Digitale:
Ha lo scopo di garantire l’autenticità del
documento. E’ il risultato di un calcolo
matematico applicato al contenuto
informativo del documento.
L’autenticità del messaggio è garantita dalla
“tecnica dell’Hashing”: funzione matematica
generatrice di una impronta digitale del
messaggio detta DIGEST
Come Fa L’azienda A ad essere
sicura dell’autenticità del documento
ricevuto dall’azienda B?
L’azienda B calcola un valore di DIGEST per il messaggio;
B cifra il digest con la sua chiave privata (firma digitale);
B invia il messaggio e il digest crittati;
A decifra il digest utilizzando la chiave pubblica
dell’azienda B;
A calcola il digest del messaggio ricevuto;
A confronta il digest calcolato con quello ricevuto.
GRAZIE ALLA FIRMA DIGITALE ED AI
SISTEMI DI CRITTOGRAFIA ASIMMETRICA
CHE NE SONO ALLA BASE E’ OGGI
POSSIBILE USUFRUIRE DELLE ATTIVITÀ DI
COMMERCIO ELETTRONICO IN INTERNET,
MANTENENDO LA SICUREZZA DA
INTRUSIONI ESTERNE NELLE PROPRIE
TRANSAZIONI…
…I NUMERI E I DATI DELLE NOSTRE CARTE DI
CREDITO SONO PROTETTE, DURANTE IL LORO
UTILIZZO PER ACQUISTI ONLINE E SERVIZI DI
REMOTE BANKING, DALL’ALGORITMO RSA, IL
QUALE UTILIZZANDO NUMERI PRIMI DI 100
CIFRE, GARANTISCE LA RISERVATEZZA E LA
PROTEZIONE DEI NOSTRI DATI…
Cosa accadrà quando
l’ipotesi di Riemann sarà
verificata?
…LA TECNOLOGIA E LA
SUA EVOLUZIONE
FAVORISCONO ALLO
STESSO MODO
CRITTOGRAFI E
CRITTANALISTI:
GLI UNI ALLA RICERCA DI
NUOVI E PIÙ SICURI
SISTEMI DI PROTEZIONE,
GLI ALTRI ALLA
COSTANTE RICERCA DI
SISTEMI PER VIOLARLI!
Crittografia e sicurezza
Naturalmente la sicurezza costa in termini di
sovraccarico elaborativo generato dagli algoritmi di
crittografia e quindi tutto questo si traduce in un
rallentamento delle applicazioni che ne fanno uso.