SlideShare a Scribd company logo
1 of 39
LA CRITTOGRAFIA
1A cura di Jacques Bottel
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
Canale di comunicazione
ALICE BOB
EVE
3A cura di Jacques Bottel
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
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
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
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
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
Funzioni one-way
9A cura di Jacques Bottel
.
.
.
.
DOMINIO
(molto tempo)
CODOMINIO
y
x
Algoritmi di crittografia
Algoritmi di crittografia
10
a chiave simmetrica
a chiave pubblica
A cura di Jacques Bottel
ALGORITMI A CHIAVE SIMMETRICA
11A cura di Jacques Bottel
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
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
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
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!
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
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
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
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
Attacco brute forcing
20
Lunghezza di chiave Possibili chiavi
1 21 = 2
2 22 = 4
4 24 = 16
8 28 = 256
16 216 = 65536
32 232 ≈ 4.2x109
56 (DES) 256 ≈ 7.2x1016
64 264 ≈ 1.8x1019
128 (AES) 2128 ≈ 3.4x1038
192 (AES) 2192 ≈ 6.2x1057
256 (AES) 2256 ≈ 1.1x1077
A cura di Jacques Bottel
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.
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
LA MACCHINA ENIGMA
23A cura di Jacques Bottel
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
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
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
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
ALGORITMI A CHIAVE PUBBLICA
28A cura di Jacques Bottel
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
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)
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
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
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
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
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
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
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
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
E ora che avete capito…
memorizzate!
39A cura di Jacques Bottel

More Related Content

What's hot

Algoritmo probabilistico di tipo montecarlo per il list decoding elaborato
Algoritmo probabilistico di tipo montecarlo per il list decoding   elaboratoAlgoritmo probabilistico di tipo montecarlo per il list decoding   elaborato
Algoritmo probabilistico di tipo montecarlo per il list decoding elaboratodanielenicassio
 
Reti di Calcolatori - Crittografia
Reti di Calcolatori - CrittografiaReti di Calcolatori - Crittografia
Reti di Calcolatori - CrittografiaSergio Porcu
 
Retroprogramming - Programmare oggi il C64, by Giovanni Simotti
Retroprogramming - Programmare oggi il C64, by Giovanni SimottiRetroprogramming - Programmare oggi il C64, by Giovanni Simotti
Retroprogramming - Programmare oggi il C64, by Giovanni SimottiCodemotion
 
Seminario crittografia-linux-day-2004
Seminario crittografia-linux-day-2004Seminario crittografia-linux-day-2004
Seminario crittografia-linux-day-2004Flavio Castelli
 
L'ABC della crittografia
L'ABC della crittografiaL'ABC della crittografia
L'ABC della crittografiaGiovanni Bechis
 

What's hot (9)

Algoritmo probabilistico di tipo montecarlo per il list decoding elaborato
Algoritmo probabilistico di tipo montecarlo per il list decoding   elaboratoAlgoritmo probabilistico di tipo montecarlo per il list decoding   elaborato
Algoritmo probabilistico di tipo montecarlo per il list decoding elaborato
 
Crittografia1
Crittografia1Crittografia1
Crittografia1
 
Crittografia DEFINTIIVA
Crittografia DEFINTIIVACrittografia DEFINTIIVA
Crittografia DEFINTIIVA
 
Toffalori, numeri crittografia
 Toffalori,  numeri crittografia Toffalori,  numeri crittografia
Toffalori, numeri crittografia
 
Reti di Calcolatori - Crittografia
Reti di Calcolatori - CrittografiaReti di Calcolatori - Crittografia
Reti di Calcolatori - Crittografia
 
Retroprogramming - Programmare oggi il C64, by Giovanni Simotti
Retroprogramming - Programmare oggi il C64, by Giovanni SimottiRetroprogramming - Programmare oggi il C64, by Giovanni Simotti
Retroprogramming - Programmare oggi il C64, by Giovanni Simotti
 
Seminario crittografia-linux-day-2004
Seminario crittografia-linux-day-2004Seminario crittografia-linux-day-2004
Seminario crittografia-linux-day-2004
 
Crittografia | Talk B-Geek
Crittografia | Talk B-GeekCrittografia | Talk B-Geek
Crittografia | Talk B-Geek
 
L'ABC della crittografia
L'ABC della crittografiaL'ABC della crittografia
L'ABC della crittografia
 

Similar to 6_crittografia_firma_digitale

Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)Gianluca Grimaldi
 
Documento informatico: profili giuridici
Documento informatico: profili giuridiciDocumento informatico: profili giuridici
Documento informatico: profili giuridiciMichele Martoni
 
Storia della Programmazione
Storia della ProgrammazioneStoria della Programmazione
Storia della Programmazionecruanyes
 
Crittografia Quantistica: Fisica Teorica al Servizio dell’Informatica Applicata
Crittografia Quantistica: Fisica Teorica al Servizio dell’Informatica ApplicataCrittografia Quantistica: Fisica Teorica al Servizio dell’Informatica Applicata
Crittografia Quantistica: Fisica Teorica al Servizio dell’Informatica Applicataameft
 
An overview on Quantum Key Distribution
An overview on Quantum Key DistributionAn overview on Quantum Key Distribution
An overview on Quantum Key DistributionFrancesco Corucci
 
You Turing-Complete me: programmare dentro i videogiochi
You Turing-Complete me: programmare dentro i videogiochiYou Turing-Complete me: programmare dentro i videogiochi
You Turing-Complete me: programmare dentro i videogiochiCodemotion
 
Presentazione Oz - Mozart
Presentazione Oz - MozartPresentazione Oz - Mozart
Presentazione Oz - Mozartfede
 
il calcolatore Universo
il calcolatore Universoil calcolatore Universo
il calcolatore UniversoRoberto Siagri
 
Data hiding - metodologie e strumenti open source
Data hiding - metodologie e strumenti open sourceData hiding - metodologie e strumenti open source
Data hiding - metodologie e strumenti open sourceMarco Ferrigno
 
AIMOOC 2.1 - Alan Turing - Vincenzo Fano
AIMOOC 2.1 - Alan Turing - Vincenzo FanoAIMOOC 2.1 - Alan Turing - Vincenzo Fano
AIMOOC 2.1 - Alan Turing - Vincenzo FanoAlessandro Bogliolo
 
Rsa -gauss jordan
Rsa -gauss jordanRsa -gauss jordan
Rsa -gauss jordanchiara1990
 
Checkmate to crypto malware. Scacco matto ai crypto malware
Checkmate to crypto malware. Scacco matto ai crypto malwareCheckmate to crypto malware. Scacco matto ai crypto malware
Checkmate to crypto malware. Scacco matto ai crypto malwareGianfranco Tonello
 
Scacco matto ai crytpo malware (milano)
Scacco matto ai crytpo malware (milano)Scacco matto ai crytpo malware (milano)
Scacco matto ai crytpo malware (milano)Gianfranco Tonello
 

Similar to 6_crittografia_firma_digitale (20)

Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
 
Crittografia Quantistica
Crittografia QuantisticaCrittografia Quantistica
Crittografia Quantistica
 
Introduzione all’informatica
Introduzione all’informaticaIntroduzione all’informatica
Introduzione all’informatica
 
Documento informatico: profili giuridici
Documento informatico: profili giuridiciDocumento informatico: profili giuridici
Documento informatico: profili giuridici
 
Storia della Programmazione
Storia della ProgrammazioneStoria della Programmazione
Storia della Programmazione
 
Introduzione al’informatica
Introduzione al’informaticaIntroduzione al’informatica
Introduzione al’informatica
 
Introduzione al’informatica
Introduzione al’informaticaIntroduzione al’informatica
Introduzione al’informatica
 
Crittografia Quantistica: Fisica Teorica al Servizio dell’Informatica Applicata
Crittografia Quantistica: Fisica Teorica al Servizio dell’Informatica ApplicataCrittografia Quantistica: Fisica Teorica al Servizio dell’Informatica Applicata
Crittografia Quantistica: Fisica Teorica al Servizio dell’Informatica Applicata
 
An overview on Quantum Key Distribution
An overview on Quantum Key DistributionAn overview on Quantum Key Distribution
An overview on Quantum Key Distribution
 
You Turing-Complete me: programmare dentro i videogiochi
You Turing-Complete me: programmare dentro i videogiochiYou Turing-Complete me: programmare dentro i videogiochi
You Turing-Complete me: programmare dentro i videogiochi
 
Presentazione Oz - Mozart
Presentazione Oz - MozartPresentazione Oz - Mozart
Presentazione Oz - Mozart
 
il calcolatore Universo
il calcolatore Universoil calcolatore Universo
il calcolatore Universo
 
Data hiding - metodologie e strumenti open source
Data hiding - metodologie e strumenti open sourceData hiding - metodologie e strumenti open source
Data hiding - metodologie e strumenti open source
 
Information technology
Information technologyInformation technology
Information technology
 
Information technology
Information technologyInformation technology
Information technology
 
Information technology
Information technology Information technology
Information technology
 
AIMOOC 2.1 - Alan Turing - Vincenzo Fano
AIMOOC 2.1 - Alan Turing - Vincenzo FanoAIMOOC 2.1 - Alan Turing - Vincenzo Fano
AIMOOC 2.1 - Alan Turing - Vincenzo Fano
 
Rsa -gauss jordan
Rsa -gauss jordanRsa -gauss jordan
Rsa -gauss jordan
 
Checkmate to crypto malware. Scacco matto ai crypto malware
Checkmate to crypto malware. Scacco matto ai crypto malwareCheckmate to crypto malware. Scacco matto ai crypto malware
Checkmate to crypto malware. Scacco matto ai crypto malware
 
Scacco matto ai crytpo malware (milano)
Scacco matto ai crytpo malware (milano)Scacco matto ai crytpo malware (milano)
Scacco matto ai crytpo malware (milano)
 

More from Jacques Bottel

More from Jacques Bottel (20)

6b sicurezza internet
6b sicurezza internet6b sicurezza internet
6b sicurezza internet
 
1c informatica storia
1c informatica storia1c informatica storia
1c informatica storia
 
1b la scienza
1b la scienza1b la scienza
1b la scienza
 
scrivere_bene_in_italiano
scrivere_bene_in_italianoscrivere_bene_in_italiano
scrivere_bene_in_italiano
 
Storia informatica cep_elea
Storia informatica cep_eleaStoria informatica cep_elea
Storia informatica cep_elea
 
Programmazione
ProgrammazioneProgrammazione
Programmazione
 
1 matematica binaria
1 matematica binaria1 matematica binaria
1 matematica binaria
 
1 dati informazioni_struttura_di_un_organizzazione
1 dati informazioni_struttura_di_un_organizzazione1 dati informazioni_struttura_di_un_organizzazione
1 dati informazioni_struttura_di_un_organizzazione
 
2 backup dei_dati
2 backup dei_dati2 backup dei_dati
2 backup dei_dati
 
3 database dbms
3 database dbms3 database dbms
3 database dbms
 
4 progettazione DB
4 progettazione DB4 progettazione DB
4 progettazione DB
 
5 ms access
5 ms access5 ms access
5 ms access
 
6 informatica per_azienda
6 informatica per_azienda6 informatica per_azienda
6 informatica per_azienda
 
7 migliorare processi aziendali
7 migliorare processi aziendali7 migliorare processi aziendali
7 migliorare processi aziendali
 
1a l_informatica_introduzione
1a l_informatica_introduzione1a l_informatica_introduzione
1a l_informatica_introduzione
 
2_il_computer
2_il_computer2_il_computer
2_il_computer
 
3_il_software
3_il_software3_il_software
3_il_software
 
4_windows
4_windows4_windows
4_windows
 
5_internet
5_internet5_internet
5_internet
 
7_sicurezza_computer
7_sicurezza_computer7_sicurezza_computer
7_sicurezza_computer
 

6_crittografia_firma_digitale

  • 1. LA CRITTOGRAFIA 1A cura di Jacques Bottel
  • 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
  • 3. Canale di comunicazione ALICE BOB EVE 3A 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
  • 9. Funzioni one-way 9A cura di Jacques Bottel . . . . DOMINIO (molto tempo) CODOMINIO y x
  • 10. Algoritmi di crittografia Algoritmi di crittografia 10 a chiave simmetrica a chiave pubblica A cura di Jacques Bottel
  • 11. ALGORITMI A CHIAVE SIMMETRICA 11A 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
  • 20. Attacco brute forcing 20 Lunghezza di chiave Possibili chiavi 1 21 = 2 2 22 = 4 4 24 = 16 8 28 = 256 16 216 = 65536 32 232 ≈ 4.2x109 56 (DES) 256 ≈ 7.2x1016 64 264 ≈ 1.8x1019 128 (AES) 2128 ≈ 3.4x1038 192 (AES) 2192 ≈ 6.2x1057 256 (AES) 2256 ≈ 1.1x1077 A 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
  • 23. LA MACCHINA ENIGMA 23A 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
  • 28. ALGORITMI A CHIAVE PUBBLICA 28A cura di Jacques Bottel
  • 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

  1. Statua di Leon Battista Alberti, piazza degli Uffizi a Firenze. Sepolto nella Basilica di Santa Croce a Firenze.
  2. 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.