2. Che cos’è la crittografia?
Crittografia è l’unione di due parole greche:
κρυπτóς (kryptós) che significa "nascosto" e
γραφία (graphía) che significa "scrittura".
Lo scopo della crittografia è studiare metodi
che consentono di memorizzare, elaborare e
trasmettere informazioni in presenza di
agenti ostili.
2A cura di Jacques Bottel
4. Gravità degli attacchi
Eve non può né leggere né scrivere
il canale è sicuro
Eve può leggere ma non scrivere
solo attacchi passivi, è la situazione più comune
Eve può scrivere ma non leggere
può disturbare il canale
Eve può sia leggere che scrivere
sono possibili attacchi attivi e impersonificazioni
G
R
A
V
I
T
À
4A cura di Jacques Bottel
5. Crittografia e crittoanalisi
Crittografia + crittoanalisi = crittologia
La crittografia è la scienza che studia e implementa
crittosistemi sicuri.
La crittoanalisi analizza i crittosistemi esistenti al fine
di scoprirne eventuali debolezze.
5A cura di Jacques Bottel
6. I crittosistemi
I crittosistemi sono basati su:
Ek(m) = c [funzione di encoding]
Dk(c) = m [funzione di decoding]
Principio di Kerkhoffs:
“la segretezza non dovrebbe risiedere in E(.) e in
D(.), ma piuttosto in una piccola informazione
chiamata chiave”.
6A cura di Jacques Bottel
7. Proprietà degli algoritmi di
crittografia
Gli algoritmi di crittografia devono garantire le seguenti
proprietà:
Molto rapido a calcolare c = Ek(m)
Molto rapido a calcolare m = Dk(c)
Molto tempo per calcolare m conoscendo solo c
Molto tempo per scoprire k, conoscendo c e m
7A cura di Jacques Bottel
Questa asimmetria nei tempi di calcolo è
garantita delle funzioni one-way
8. Funzioni one-way
Le funzioni one-way (a senso unico) garantiscono che:
A partire da un elemento x del dominio è facile
calcolare (si impiega poco tempo) il corrispondente
elemento del codominio y=f(x).
Al contrario, a partire da un elemento y del codo-
minio è difficile risalire all’elemento x del dominio.
8A cura di Jacques Bottel
12. Algoritmi a chiave simmetrica
La chiave per cifrare e decifrare è la stessa.
Problema: lo scambio delle chiavi.
Ek(m) = c
Dk(c) = m
Alcuni algoritmi a chiave simmetrica:
DES1 (Data Encryption Standard), 3-DES
AES2 (Advanced Encryption Standard)
12
1 DES - chiavi da 56 bit (112 bit con il 3-DES)
2 AES - chiavi da 128, 192 o 256 bit
A cura di Jacques Bottel
13. Esempio: il cifrario di Cesare
Fu l’algoritmo utilizzato da Giulio Cesare (De Vita
Caesarum, Svetonio). Fu utilizzato anche da
Provenzano per nascondere il nome dei
mafiosi.
13
BUONA GIORNATA
E RQDCLNRUQDZD
A cura di Jacques Bottel
14. Cifrario di Cesare: l’algoritmo
Dato l’alfabeto e scelgo un numero (che sarà la chiave k)
compreso tra 1 e 22. Sposto in avanti le lettere
dell’alfabeto. Nell’esempio precedente abbiamo
scelto k=3.
LETT. LETT. +3 LETT. LETT. +3 LETT. LETT. +3 LETT. LETT. +3
A D G L O R U spazio
B E H M P S V A
C F I N Q T Z B
D G L O R U spazio C
E H M P S V
F I N Q T Z
14A cura di Jacques Bottel
15. Crittoanalisi
Osserviamo i messaggi crittografati e sfruttiamo le
debolezze dell’algoritmo!
15A cura di Jacques Bottel
UTZAFEFZHOPELE TUZFAABAATEMZLHHL
PORTA ARCHI E SOPRATTUTTO FRECCE
Debolezza: notiamo che ogni lettera viene codificata
sempre allo stesso modo: la O → T, la T → A.
Possiamo sfruttare questa proprietà?
Sì, guardiamo la struttura delle parole!
16. Crittoanalisi
Sapendo che SOPRATTUTTO è
l’unica parola italiana che ha 2
coppie di lettere uguali con una
lettera diversa in mezzo,
abbiamo decodificato la parola
crittografata. Ma non solo!
Possiamo calcolare k come
segue: k= A-T=5.
Ora possiamo decrittare veloce-
mente tutti i messaggi!
16A cura di Jacques Bottel
17. L’algoritmo di Vigenère
La chiave è una parola. Per ogni lettera della chiave
viene applicato l’algoritmo di Cesare con una chiave
uguale alla posizione della lettera nell’alfabeto.
Es. k=ABACO k=1-2-1-3-13
17A cura di Jacques Bottel
BUONA GIORNATA
CZPQPAILRGOCUD
18. Considerazioni
L’algoritmo di Cesare è un algoritmo di sostituzione
monoalfabetica, cioè i caratteri del testo vengono
crittografati sempre con la stessa chiave.
L’algoritmo di Vigenère è più sofisticato perché applica
una sostituzione polialfabetica, cioè i caratteri del
testo vengono crittografati con una chiave variabile.
Ma questi algoritmi sono sicuri?
18A cura di Jacques Bottel
19. Sicurezza della crittografia
La sicurezza della crittografia dipende da:
Lunghezza della chiave, cioè il numero di possibili
chiavi. Un attacco brute forcing consiste nel provare
a decrittare il messaggio provando una ad una tutte
le possibili chiavi.
Algoritmo di crittografia. Con il passare del tempo,
gli studi dei crittoanalisti fanno emergere debolezze
che portano a una riduzione delle possibili chiavi. A
questo punto un attacco brute forcing può diventare
efficace.
19A cura di Jacques Bottel
21. Attacco brute forcing
Supponendo di avere a disposizione il supercomputer
più potente al mondo1…
21A cura di Jacques Bottel
Lunghezza di chiave Durata dell’attacco 2
56 (DES) 399 secondi
128 (AES) 1.02x109 miliardi di anni
192 (AES) 1.87x1028 miliardi di anni
256 (AES) 3.31x1047 miliardi di anni
1 Supercomputer da 10.51 PFlop/s di potenza massima. Supponiamo che si impieghino
1000 flop per provare una chiave (stima molto ottimistica).
2 Caso peggiore, ossia supponendo di provare tutte le possibili chiavi. Nota: l’universo ha
“solo” 13.75 miliardi di anni.
22. Sicurezza della crittografia:
l’algoritmo
Un algoritmo di crittografia è sicuro se ha miliardi di
possibili chiavi e se garantisce le seguenti proprietà:
Diffusione. Ogni simbolo di c è determinato da molti
simboli di m. In questo modo la struttura statistica di
m è distribuita sull’intero messaggio c e non è più
possibile fare statistiche su c.
Confusione. Anche un piccolo cambiamento di m o di
k (anche un solo simbolo) produce un cambiamento
significativo in c (cioè devono modificarsi almeno la
metà dei simboli di c).
22A cura di Jacques Bottel
24. La macchina Enigma
La macchina Enigma fu utilizzata dalle forze tedesche
per crittografare le comunicazioni durante la Seconda
Guerra Mondiale.
24A cura di Jacques Bottel
25. Enigma: l’algoritmo
La macchina si basava sull’algoritmo
del disco cifrante, un algoritmo di
sostituzione polialfabatica descritto
da Leon Battista Alberti nel De Cifris
intorno al 1467.
Pur essendo il primo algoritmo
sostituzione polialfabatica di cui si
abbia notizia è migliore del Vigenère
in quanto non può essere rotto
utilizzando il metodo Kasiski.
25A cura di Jacques Bottel
26. Enigma: è sicura?
L’algoritmo non è sicuro in quanto non garantisce il
rispetto delle proprietà di diffusione e confusione. Fu
violato grazie al lavoro di grandi matematici quali
Marian Rejewski e Alan Turing a Bletchley Park, una
località 75 Km a Nord-
Ovest di Londra.
26A cura di Jacques Bottel
27. Enigma: come fu violata
Crib che aiutarono gli Alleati:
Parti di testo ricorrenti:
molti messaggi cominciavano con la parola Spruchnummer
(messaggio numero) e molti messaggi dell’aeronautica
cominciavano con “An die Gruppe” (al gruppo).
Molti messaggi contenevano la frase “Kienebesondere
Ereignisse” (niente da segnalare).
I messaggi spesso terminavano con Heil Hitler!
I messaggi che riportavano informazioni di routine, per
esempio i bollettini meteo, sono stati trasmessi più
volte crittografati con una diversa chiave.
27A cura di Jacques Bottel
Crib =
rubacchiare
29. Algoritmi a chiave pubblica
Gli algoritmi a chiave pubblica utilizzano due chiavi:
Una chiave k che deve rimanere segreta, chiamata
chiave privata o chiave segreta.
Una chiave k che viene distribuita, per es. su
Internet, chiamata chiave pubblica.
Caratteristiche degli algoritmi a chiave pubblica:
Da un messaggio c è difficile risalire alla kpriv .
Data la kpub non è possibile risalire alla kpriv .
29A cura di Jacques Bottel
30. Algoritmo di Diffie-Hellman
L’algoritmo di Diffie-Hellman
consente di scambiarsi le chiavi!
30A cura di Jacques Bottel
ALICE BOB
G, P
G, P,
N=|Ga|P, M=|Gb|P
Informazioni che
possono essere
intercettate da Eve
A (segreto)
N=|Ga|P M=|Gb|P
M=|Gb|P
G, P
k= |Gba|P k= |Gab|P
N=|Ga|P
Invio a Bob Invio ad Alice
B (segreto)
31. Considerazioni
Considerazioni:
Non c’è certezza che il mittente sia Alice e il
destinatario sia Bob, ci può essere uno scambio di
persona. Più precisamente, l’algoritmo non
garantisce l’autenticazione del mittente e del
destinatario.
Anche se Eve può intercettare G, P, N=|Ga|P,
M=|Gb|P, l’algoritmo è sicuro perché utilizza una
funzione one-way. Infatti, per calcolare a e b, si
dovrebbe risolvere il problema del logaritmo
discreto. 31A cura di Jacques Bottel
32. Scambio di chiavi con
autenticazione
Gli algoritmi a chiava pubblica consentono di scambiarsi
le chiavi, conoscendo l’identità del mittente e del
destinatario! Vediamo come…
32
Epubb B → Epubb A → Dpriv A → Dpriv B
A cura di Jacques Bottel
ALICE BOB ALICE BOBALICE BOB
PASS PASS
33. Proprietà
Gli algoritmi a chiave pubblica garantiscono:
L’integrità del messaggio, cioè la certezza che il
messaggio non sia stato modificato.
L’autenticità del messaggio, cioè la certezza che il
messaggio sia stato scritto proprio dal mittente.
Il non ripudio, cioè il mittente non può negare di aver
inviato il messaggio.
Questo è fondamentale per le transazioni bancarie!
33A cura di Jacques Bottel
34. La firma digitale
Possibilità di produrre un documento digitale dotato
di firma autentica con valore legale.
34
Una fingerprint (impronta digitale) è una
breve sequenza di bit che serve a
identificare un documento.
A cura di Jacques Bottel
35. La firma digitale
Procedimento per firmare un documento digitale:
Il firmatario genera la fingerprint del documento in
chiaro.
Il firmatario crittografa la fingerprint con la chiave privata
e l’allega al messaggio in chiaro.
Procedimento per verificare l’autenticità della firma:
Il destinatario genera la fingerprint del documento in
chiaro.
Il destinatario decritta la fingerprint con la chiave
pubblica del firmatario e confronta le due fingerprint.
35A cura di Jacques Bottel
36. Autenticità della firma digitale
Se le due fingerprint sono uguali la firma è
“vera” (autentica), altrimenti:
C’è stata una sostituzione di persona (firma
falsa). Ovviamente il documento non può
essere accettato.
C’è stata una modifica del documento dopo
che è stato firmato. Ovviamente il documento
non può essere accettato.
36A cura di Jacques Bottel
37. Autorità per la certificazione
Le Certification Autorities sono enti riconosciuti dallo Stato
che forniscono i certificati digitali, ossia file che
includono la chiave pubblica e le informazioni
sull’identità dell’utente.
Differenze rispetto alle firme autografe:
La firma è separata dal documento
Ogni documento genera una firma diversa
La firma digitale autentica il mittente del messaggio: solo
chi conosce una certa informazione (la chiave privata)
può aver prodotto la firma del messaggio
37A cura di Jacques Bottel
38. Verifica se hai capito…
Domande di verifica:
Quali sono le caratteristiche degli algoritmi
crittografici?
Descrivi il funzionamento degli algoritmi a chiave
simmetrica e asimmetrica.
Che cos’è la firma digitale? Quando una firma digitale
è autentica?
38A cura di Jacques Bottel
39. E ora che avete capito…
memorizzate!
39A cura di Jacques Bottel
Editor's Notes
Statua di Leon Battista Alberti, piazza degli Uffizi a Firenze. Sepolto nella Basilica di Santa Croce a Firenze.
Per decrittare i messaggi, fu utilizzato Colossus, il primo computer elettronico programmabile nella storia.
Alla fine della guerra la macchina fu distrutta e i progetti relativi bruciati, per ordine del servizio segreto inglese. Solo in tempi recenti ne è stata costruita una replica funzionante, completata nel 2007, oggi esposta nel National Museum of Computing, con sede a Bletchley Park.