Post on 03-Apr-2018
transcript
7/29/2019 D02 Introduzione Alla Crittografia
1/106
Introduzione alla Crittografia
Luca Grilli
7/29/2019 D02 Introduzione Alla Crittografia
2/106
CHE COS LA CRITTOGRAFIA
Introduzione alla Crittografia
7/29/2019 D02 Introduzione Alla Crittografia
3/106
Che cos la crittografia?
La parola crittografia deriva dalle parole greche
(kripts): nascosto o segreto, e
(grapha): scrivere
Quindi, la crittografia larte e la scienza delloscrivere in modo segreto
larte di offuscare delle informazioni in modo
apparentemente del tutto incomprensibile, prevedendo una tecnica segreta per ricostruirle in
modo esatto
7/29/2019 D02 Introduzione Alla Crittografia
4/106
Applicazioni della crittografia
Unapplicazione immediata (servizio base) la trasmissione di messaggi tra soggetti che desiderano
comunicare, rendendo il contenuto incomprensibile ad un
ascoltatore non autorizzato
Le moderne tecniche crittografiche nella quali linformazione viene rappresentata in
forma binaria (o numerica)forniscono ulteriori servizi Controllo di Integrit
Autenticazione
7/29/2019 D02 Introduzione Alla Crittografia
5/106
Applicazioni della crittografia
Controllo di Integrit (Integrity Checking)
assicura il destinatario (recipient) di un messaggioche il messaggio non stato alterato dal momento
in cui stato generato da una fonte attendibile
Autenticazione (Authentication)
verifica dellidentit di qualcuno (o qualcosa)
7/29/2019 D02 Introduzione Alla Crittografia
6/106
Terminologia e definizioni preliminari
Testo in chiaro (plaintext o cleartext): messaggio nellasua forma originale
Testo cifrato (ciphertext): messaggio cifrato Cifratura o crittazione o criptazione (encryption):
processo che produce il testo cifrato a partire dal testoin chiaro
Decifratura o decrittazione o decriptazione(decryption): processo inverso della cifratura
ENCRYPTION DECRYPTION
PLAINTEXT PLAINTEXTCIPHERTEXT
7/29/2019 D02 Introduzione Alla Crittografia
7/106
Terminologia e definizioni preliminari
Crittografo (cryptographer): esperto dicrittografia
Crittoanalisi o crittanalisi (cryptanalysis):larte o la scienza di violare testi cifrati
ricostruire il testo in chiaro senza conoscerelinformazione segreta utilizzata in fase di
decifratura Crittoanalista o crittanalista (cryptanalyst):
esperto di crittoanalisi
7/29/2019 D02 Introduzione Alla Crittografia
8/106
Terminologia e definizioni preliminari
[Wiki-it] Crittologia (cryptology): larte o lascienza delle scritture nascoste, nel suoduplice significato:
da un lato comprende l'ideazione di metodisempre pi sicuri per occultare il reale significatodi determinati segni (crittografia),
dall'altro riguarda la decifrazione di testi occultatisenza conoscerne a priori il metodo usato(crittanalisi).
7/29/2019 D02 Introduzione Alla Crittografia
9/106
Crittografi vs Crittoanalisti
Crittografi e crittoanalisti sono in continua sfida
i primi sviluppano codici segreti sempre pi raffinati
i secondi tentano costantemente di migliorare le
tecniche di crittoanalisi
Il vantaggio/successo dei crittografi si fonda sul
seguente principio Principio fondamentale della crittografia: If lots of
smart people have failed to solve a problem, then it
probably won't be solved (soon)
7/29/2019 D02 Introduzione Alla Crittografia
10/106
Sistemi crittografici
I sistemi crittografici generalmente prevedono lutilizzocombinato di un algoritmo, e
un valore segreto detto chiave
La chiave segreta stata introdotta essenzialmenteperch difficile concepire ogni volta nuovi algoritmi di cifratura,
difficile spiegare rapidamente il funzionamento di unnuovo algoritmo ad un soggetto con il quale si desideracomunicare in modo sicuro
7/29/2019 D02 Introduzione Alla Crittografia
11/106
Complessit computazionale
Uno schema di crittografia
non impossibile da violare se non si conosce lachiave
un avversario pu seguire un approccio esaustivo (bruteforce) che esamina tutte le possibili chiavi finch non trovaquella corretta
tanto pi sicuro quanto maggiore il costo
computazionale necessario a violarlo deve permettere di cifrare e decifrare messaggi in
modo efficiente quando si conosce la chiave
le fasi di cifratura e decifratura devono richiedere un tempo
ragionevolmente ridotto quando si conosce la chiave
7/29/2019 D02 Introduzione Alla Crittografia
12/106
Lunghezza della chiave
Alcuni schemi di crittografia prevedono unachiave avente lunghezza variabile aumentando la lunghezza della chiave si aumenta il
livello di sicurezza, ma diminuisce lefficienza: aumenta il tempo di
cifratura/decifratura del messaggio (per chi conosce lachiave)
Altri schemi non consentono la modifica dellalunghezza della chiave in tal caso necessario sviluppare algoritmi simili che
utilizzano chiavi di lunghezza diversa
7/29/2019 D02 Introduzione Alla Crittografia
13/106
Algoritmo pubblico o segreto?
Qualcuno sostiene che mantenere segreto unalgoritmo di crittografia aumenti la sua sicurezza un crittoanalista deve prima individuare lalgoritmo e
poi tentare di forzarlo Altri sostengono invece che pubblicando
lalgoritmo, rendendolo noto a tutti, la sicurezzaaumenti
scoprire un algoritmo segreto potrebbe non esserecos difficile, e
se lalgoritmo segreto ha delle debolezze questepotrebbero essere individuate da un crittoanalista
7/29/2019 D02 Introduzione Alla Crittografia
14/106
Algoritmo pubblico o segreto?
se lalgoritmo invece pubblico eventuali debolezzepossono essere segnalate dalla comunit scientifica
se molti esperti confermano la bont dellalgoritmo molto probabile che sia realmente sicuro
difficile mantenere segreto un algoritmo moltodiffuso
tecniche di reverse engineering possono permetteredi risalire al codice,
essendo molto diffuso pu venirne in possesso uncrittoanalista abile
7/29/2019 D02 Introduzione Alla Crittografia
15/106
Algoritmo pubblico o segreto?
In passato, la segretezza era richiesta perchgli algoritmi sicuri erano estremamentecostosi
gli algoritmi a basso costo erano insicuri! gli attuali algoritmi non richiedo questa extra
protezione essendo di per se molto sicuri
La tendenza attuale che gli algoritmi commerciali/civili sono pubblici,
mentre
gli algoritmi militari sono tenuti segreti
7/29/2019 D02 Introduzione Alla Crittografia
16/106
Algoritmo pubblico o segreto?
Lesigenza della segretezza pu dipendere da
altre cause (e non dallaumento di sicurezza)
lautore dellalgoritmo potrebbe tenerlo segreto
per ragioni commerciali (segreto industriale)
nel caso militare, possibile che si ricorra allasegretezza per evitare che il nemico usi uno
schema di crittografia ritenuto sicuro costringendolo ad utilizzare tecniche note o a
svilupparne di proprie
7/29/2019 D02 Introduzione Alla Crittografia
17/106
Codici segreti (cifrari)
Con il termine codice segreto o cifrario siintende un qualunque metodo di cifratura il pi antico cifrario attribuito a Giulio Cesare
consiste nella sostituzione di ogni lettera di unmessaggio con la lettera che la segue di 3 posizioninellalfabeto
si considera lordinamento circolare dellalfabeto (la Asegue la Z)
ad esempio: INFORMATICA diventa LQIRUPDWLFD
unovvia variante del cifrario di Cesare consiste nelconsiderare un numero segreto n compreso tra 1e 25, invece di usare sempre il 3
7/29/2019 D02 Introduzione Alla Crittografia
18/106
Codici segreti (cifrari)
Ovviamente, decifrare dei messaggi risulta moltosemplice se si certi che usato questo cifrario, e
se si in grado di riconoscere il testo decifrato
basta fare pochi tentativi (al pi 25) perindividuare il numero segreto n ed ottenere ilmessaggio originale
successivamente fu introdotto il cifrariomonoalfabeticoche consiste nellapplicare unmapping arbitrario di una lettera in unaltra si basa sulla scelta di una biiezione segreta sullinsieme
delle lettere alfabetiche
7/29/2019 D02 Introduzione Alla Crittografia
19/106
Codici segreti (cifrari)
Teoricamente, per decifrare un messaggio sononecessari, nel caso peggiore, 26! 4 1026tentativi
Assumendo 1S per tentativo sono necessari 10 trilionidi anni (1013 anni)
Tuttavia, applicando tecniche statistiche di analisidei linguaggi (alcune lettere e combinazioni di
lettere sono pi probabili di altre) risultaabbastanza facile decifrare i messaggi cifrati
7/29/2019 D02 Introduzione Alla Crittografia
20/106
Codici segreti (cifrari)
Con lavvento dei computer, lintroduzione di
schemi di cifratura pi sofisticati
da un lato stata resa necessaria
un computer permette di automatizzare gli approccibrute force dei crittoanalisti
dallaltro stata resa possibile
un computer pu eseguire un algoritmo di cifraturacomplesso in tempi veloci e senza errori
7/29/2019 D02 Introduzione Alla Crittografia
21/106
VIOLARE UNO SCHEMA DICRITTOGRAFIA
Introduzione alla Crittografia
7/29/2019 D02 Introduzione Alla Crittografia
22/106
Tipologie di attacchi
Si possono distinguere tre tipi di attacchi baseper violare uno schema di crittografia solo testo cifrato (ciphertextonly)
testo in chiaro conosciuto (known plaintext) testo in chiaro selezionato (chosen plaintext)
Altri due tipi di attacco meno frequenti sono testo cifrato selezionato (chosen ciphertext)
testo selezionato (chosen text)
7/29/2019 D02 Introduzione Alla Crittografia
23/106
Solo testo cifrato (ciphertext only)
Scenario
Fred, il cattivo ragazzo, ha ottenuto il testo cifrato diun messaggio che Alice ha inviato a Bob nellambito di
una comunicazione cifrata con una chiave segreta Fred pu analizzare con comodo il testo cifrato
in genere, non difficile ottenere il testo cifrato
se fosse impossibile non si avrebbe la necessit di cifrare i
messaggi!
Domanda
come pu Fred risalire al testo in chiaro se disponesoltanto del testo cifrato?
7/29/2019 D02 Introduzione Alla Crittografia
24/106
Solo testo cifrato (ciphertext only)
Risposta 1 Fred pu seguire un approccio di tipo brute force:
considera tutte le chiavi,
per ogni chiave decripta il testo cifrato, e
verifica se il testo decifrato un messaggio verosimile
tale approccio pu funzionare solo se Fred in gradodi riconoscere il testo in chiaro originale, cio una volta decriptato il testo cifrato deve poter dire, con
elevata probabilit, se quanto ottenuto il messaggio diAlice
tale attacco anche noto come testo in chiaro riconoscibile(recognizable plaintext)
7/29/2019 D02 Introduzione Alla Crittografia
25/106
Solo testo cifrato (ciphertext only)
Riguardo la riconoscibilit del testo in chiarovalgono le seguenti osservazioni
molto improbabile che una chiave di decifratura
errata permetta di ottenere un messaggioverosimile
essenziale avere abbastanza testo cifrato
si consideri ad esempio il cifrario monoalfabetico, selunico testo cifrato di cui si dispone XYZ non cabbastanza informazione,
il testo in chiaro corrispondente potrebbe essere THE,
CAT, HAT, etc.
7/29/2019 D02 Introduzione Alla Crittografia
26/106
Solo testo cifrato (ciphertext only)
Risposta 2
in alcuni casi, si potrebbe tentare un approccio aforza bruta computazionalmente meno costoso
se la chiave viene generata con tecniche note a partireda un input segreto, conviene applicare un approccioesaustivo su tale input
non di rado la chiave di cifratura viene generata a
partire dalla password dutente applicando unalgoritmo noto; cos avviene nello schema diautenticazione Kerberos che usa una cifratura DES
7/29/2019 D02 Introduzione Alla Crittografia
27/106
Solo testo cifrato (ciphertext only)
se la password viene scelta in modo avventato (una paroladel dizionario) anzich scandire uno spazio di 256 chiavi sufficiente scandire uno spazio di circa 10000 parole
Un algoritmo di crittografia deve SEMPRE esseresicuro contro attacchi di tipo ciphertext only
il testo cifrato sempre facilmente intercettabile e
ottenibile in molti casi i crittoanalisti possono disporre di informazioni
aggiuntive e sferrare degli attacchi pi forti, come illustratonelle prossime slide
7/29/2019 D02 Introduzione Alla Crittografia
28/106
Testo in chiaro conosciuto (known plaintext)
Scenario Fred ha in qualche modo ottenuto alcune coppieplaintext, ciphertext relative ad una o picomunicazioni cifrata tra Alice e Bob (con stesso
schema e chiave) dati segreti non rimangono segreti in eterno (se un
messaggio conteneva la prossima citt da attaccare una voltaavvenuto lattacco )
nel caso di cifrario monoalfabetico, una piccolaquantit di testo in chiaro conosciuto vale una fortuna si dedurrebbe in modo immediato il mapping segreto di
tutte le lettere del testo in chiaro
7/29/2019 D02 Introduzione Alla Crittografia
29/106
Testo in chiaro conosciuto (known plaintext)
Alcuni schemi di crittografia potrebberoessere
molto resistenti ad attacchi di tipo ciphertext only,
ma rivelarsi vulnerabili ad attacchi di tipo knownplaintext
un sistema che impiega un algoritmo di crittografiavulnerabile ad attacchi di tipo known plaintext,
deve essere progettato in modo tale da prevenire il pipossibile lottenimento di coppie plaintext, ciphertext
7/29/2019 D02 Introduzione Alla Crittografia
30/106
Testo in chiaro selezionato (chosen plaintext)
Scenario
Fred pu scegliere a piacimento il testo in chiaroed ottenere il corrispondente testo cifrato
con lo stesso schema e chiave usati nellacomunicazione cifrata tra Alice e Bob
Come possibile ottenere coppie plaintext,ciphertext con testo in chiaro scelto dalcrittoanalista? un servizio di comunicazione potrebbe sbadatamente
usare la stessa chiave per ogni messaggio inviato (perogni coppia mittente destinatario)
7/29/2019 D02 Introduzione Alla Crittografia
31/106
Testo in chiaro selezionato (chosen plaintext)
se Alice usa tale servizio, pure Fred potrebbe usarlodecidendo di inviare un messaggio (cifrato) a se stesso
se il servizio usa un cifrario monoalfabetico, Fred potrebbeinviarsi il seguente messaggio:
The quick brown fox jumps over the lazy dogottenendo la biiezione segreta in modo immediato
se il servizio di comunicazione usa uno schema di crittografiapi evoluto, potrebbe essere ancora vulnerabile se Fred ha
unelevata conoscenza a priori del contenuto del messaggiodi Alice, ad esempio Fred potrebbe aspettarsi o il messaggioSurrender o il messaggio Fight on,
pu quindi inviarsi entrambi i messaggi e confrontare le loroversioni cifrate con quelle del messaggio cifrato di Alice
7/29/2019 D02 Introduzione Alla Crittografia
32/106
Testo in chiaro selezionato (chosen plaintext)
possibile che un sistema crittografico sia sicurocontro attacchi di tipo ciphertext onlye known
plaintext, ma sia vulnerabile ad attacchi di tipo
chosen plaintext un sistema crittografico dovrebbe resistere a tutti
e tre i tipi di attacco
in questo caso si avrebbe la massima protezione,
non sempre cos, solitamente un algoritmo dicifratura progettato per resistere ad attacchi di tipociphertext only
7/29/2019 D02 Introduzione Alla Crittografia
33/106
Tipologie di attacchi (tabella riassuntiva)
Tipologia di attacco Informazioni in possesso del crittoanalista
Solo testo cifrato Algoritmo di cifratura Testo cifrato da decifrare
Testo in chiaro conosciuto
Algoritmo di cifratura Testo cifrato da decifrare Uno o pi testi in chiaro e corrispondenti testi cifrati
Testo in chiaro selezionato
Algoritmo di cifratura Testo cifrato da decifrare Testo in chiaro scelto dal crittoanalista e corrispondente testo cifrato
Testo cifrato selezionato
Algoritmo di cifratura Testo cifrato da decifrare Testo cifrato, con significato, scelto dal crittoanalista e
corrispondente testo in chiaro
Testo selezionato
Algoritmo di cifratura Testo cifrato da decifrare Testo in chiaro scelto dal crittoanalista e corrispondente testo cifrato Testo cifrato, con significato, scelto dal crittoanalista e
corrispondente testo in chiaro
7/29/2019 D02 Introduzione Alla Crittografia
34/106
Sistema computazionalmente sicuro
Un sistema di cifratura computazionalmentesicuro se il testo cifrato generato soddisfa uno deiseguenti requisiti:
il costo per rendere inefficace il cifrario supera ilvalore dellinformazione cifrata;
il tempo richiesto per rendere inefficace il cifrariosupera larco temporale in cui linformazione ha unaqualche utilit
Si noti che stimare lo sforzo computazionale richiesto per
effettuare con successo la crittoanalisi del testo cifrato molto difficile
7/29/2019 D02 Introduzione Alla Crittografia
35/106
Sistema computazionalmente sicuro
il tempo richiesto per un approccio a forza bruta fornisce soltanto un limite superiore, ed
realistico solo se lalgoritmo non presenta delledebolezze intrinseche di tipo matematico; in questo
caso si possono effettuare stime ragionevoli su tempi ecosti
in un approccio a forza bruta mediamente sidevono provare met di tutte le possibili chiavi
si consulti la tabella della slide successiva
7/29/2019 D02 Introduzione Alla Crittografia
36/106
Tempo medio per una ricerca esaustiva
Key Size (bits) Number ofAlternative Keys
Time required at 1
decryption/sTime required at 106
decryptions/s
32 232 = 4.3 109 231 s = 35.8 minutes 2.15 milliseconds
56 256 = 7.2 1016 255 s = 1142 years 10.01 hours
128 2128 = 3.4 1038 2127 s = 5.4 1024 years 5.4 1018 years
168 2168 = 3.7 1050 2167 s = 5.9 1036 years 5.9 1030 years
26 characters(permutation)
26! = 4 1026 2 1026 s = 6.4 1012 years 6.4 106 years
7/29/2019 D02 Introduzione Alla Crittografia
37/106
TIPI DI FUNZIONI CRITTOGRAFICHE
Introduzione alla Crittografia
7/29/2019 D02 Introduzione Alla Crittografia
38/106
Tipi di funzioni crittografiche
Ci sono tre tipi di funzioni crittografiche
funzioni a chiave pubblica (public key functions)
richiedono luso di due chiavi
funzioni a chiave segreta (secret key functions) richiedono luso di una sola chiave
funzioni hash (hash functions)
non usano alcuna chiave a cosa pu servire un algoritmo di cifratura noto a tutti
e che non usa chiavi?
7/29/2019 D02 Introduzione Alla Crittografia
39/106
CRITTOGRAFIA A CHIAVE SEGRETA(SECRET KEY CRYPTOGARPHY)
Introduzione alla Crittografia
7/29/2019 D02 Introduzione Alla Crittografia
40/106
Crittografia a chiave segreta
La crittografia a chiavesegretarichiede lusodi una sola chiave
dato un messaggio (il testo in chiaro) e la chiave,
la cifratura produce dati non intellegibili (il testocifrato)
il testo cifrato ha circa la stessa lunghezza di quello
in chiaro la decifratura linverso della cifratura, ed usa la
stessa chiave
7/29/2019 D02 Introduzione Alla Crittografia
41/106
Crittografia a chiave segreta
La crittografia a chiave segreta talvoltachiamata crittografia convenzionale o crittografiasimmetrica
il cifrario monoalfabetico un esempio di algoritmo achiave simmetrica, sebbene sia facile da violare
ENCRYPTION DECRYPTION
PLAINTEXT PLAINTEXTCIPHERTEXT
KEY
7/29/2019 D02 Introduzione Alla Crittografia
42/106
Crittografia a chiave segreta Impieghi
Gli impieghi della crittografia a chiave segretasono
comunicazioni su un canale insicuro (uso classico)
memorizzazione sicura su un supporto insicuro
autenticazione
controllo di integrit
7/29/2019 D02 Introduzione Alla Crittografia
43/106
Comunicazioni su un canale insicuro
Spesso impossibile evitare che due entitcomunicanti possano essere ascoltate da unaterza parte,
la crittografia a chiave segreta permette a dueentit che condividono un segreto (la chiave),
di comunicare su un mezzo insicuro
non garantita lassenza di intercettazioni/ascoltatori senza preoccuparsi di eventuali ascoltatori
7/29/2019 D02 Introduzione Alla Crittografia
44/106
Memorizzazione sicura
Si supponga di disporre di un supporto dimemorizzazione non protetto
se si desidera salvare dei dati in forma sicura
che non consente ad una terza parte di ottenerli
si pu inventare una chiave segreta e salvare i datiin forma crittata
chiaramente, se si dimentica la chiave i dati sonoirrevocabilmente persi
7/29/2019 D02 Introduzione Alla Crittografia
45/106
Autenticazione
Nei film di spionaggio, quando due agenti che non
si conoscono devono incontrarsi, usano una parola
o frase segreta per riconoscersi ci ha il seguente svantaggio: se qualcuno ascolta la
loro conversazione o tenta di iniziarne una falsa, pu
ottenere informazioni utili per impersonare
successivamente uno degli agenti
7/29/2019 D02 Introduzione Alla Crittografia
46/106
Autenticazione forte
Il termine autenticazioneforte (strongauthentication) significa che si in grado diprovare la conoscenza di un segreto senza
rivelarlo lautenticazione forte possibile con la crittografia
particolarmente utile quando due computer devonocomunicare su una rete insicura
Si supponga che Alice e Bob condividano unachiave segreta KAB e che vogliano autenticarsi
cio ciascuno vuole accertarsi dellidentit dellaltro
7/29/2019 D02 Introduzione Alla Crittografia
47/106
Autenticazione
Bob e Alice scelgono ciascuno un numero random,noto come sfida (challenge),
Alice sceglie il numero random rA
Bob sceglie il numero random rB il valorexcifrato con la chiave KAB noto come la
risposta alla sfidax; cio E(KAB,x) la risposta adx
la slide seguente mostra come Alice e Bob usano
sfide e risposte per autenticarsi
7/29/2019 D02 Introduzione Alla Crittografia
48/106
Possibile schema di autenticazione
Alice Bob
rA
E(KAB, rA)
rB
E(KAB, rB)
7/29/2019 D02 Introduzione Alla Crittografia
49/106
Possibile schema di autenticazione
Assunzione Alice e Bob sono le uniche persone (o macchine) che
condividono la chiave segreta KAB
Procedura di autenticazione Alice genera un numero random rA (la sfida) e la invia al
presunto Bob il presunto Bob critta la sfida con la sua chiave segreta K?e
restituisce ad Alice la risposta E(K?, rA)
Alice riceve la risposta del presunto Bob e la decritta con lachiave KAB cio calcola D(KAB, E(K?, rA)) se ottiene rA, cio se D(KAB, E(K?, rA)) = rA, allora il presunto Bob
realmente Bob poich K?= KAB altrimenti il presunto Bob un impostore
7/29/2019 D02 Introduzione Alla Crittografia
50/106
Possibile schema di autenticazione
In modo analogo Bob verifica lidentit di Alice Bob genera un numero random rB (la sfida) e lo invia
alla presunta Alice
la presunta Alice critta la sfida con la sua chiavesegreta K?e restituisce a Bob la risposta E(K?, rB)
Bob riceve la risposta della presunta Alice e la decrittacon la chiave KAB cio calcola D(KAB, E(K?, rB))
se ottiene rB, cio se D(KAB, E(K?, rB)) = rB, allora la presuntaAlice realmente Alice poich K?= KAB
altrimenti la presunta Alice un impostore
7/29/2019 D02 Introduzione Alla Crittografia
51/106
Test di sicurezza
Proviamo a testare la sicurezza dello schema diautenticazione appena proposto
In particolare, un impostore, diciamo Fred,potrebbe seguire una strategia a due fasi:
1. impersonando Alice potrebbe ottenere alcune
informazioni nellautenticarsi con Bob2. impersonando Bob e utilizzando le informazioni di
cui sopra, potrebbe riuscire ad autenticarsi con Alice
7/29/2019 D02 Introduzione Alla Crittografia
52/106
Test di sicurezza
Pi precisamente, se Fred stesse impersonando Alice,
potrebbe ottenere dal presunto Bob la risposta E(K?,rA*) ad una sua sfida rA*,
Fred non pu essere certo che il presunto Bob sia realmenteBob, se cos fosse allora K?= KAB
ma conoscere E(K?, rA*) non aiuterebbe Fred adimpersonare Bob nellautenticazione con Alice reale
anche se fosse K?
= KAB
,
la conoscenza di E(KAB, rA*) non sufficiente; la sfida rA chegenera Alice con elevata probabilit diversa da rA*
7/29/2019 D02 Introduzione Alla Crittografia
53/106
Osservazioni
Possiamo concludere che se Alice e Bob completano con successo lo
scambio di informazioni,
ciascuno ha provato allaltro la conoscenza dellachiave segreta KAB senza rivelarla ad un impostore e/o ascoltatore
7/29/2019 D02 Introduzione Alla Crittografia
54/106
Osservazioni
Tuttavia, risulta anche che possibile per Fred ottenere delle coppie
chosen plaintext, ciphertext
Fred pu affermare di essere Bob (Alice) e chiedere adAlice (Bob) di cifrare una sfida
quindi essenziale che le sfide siano scelte da unospazio sufficientemente grande, ad esempio 264valori
in questo modo risulta estremamente improbabile chevenga generata la stessa sfida
7/29/2019 D02 Introduzione Alla Crittografia
55/106
Domanda
Il precedente test di sicurezza completo? esiste un metodo computazionalmente semplice
per violare lo schema di autenticazione?
7/29/2019 D02 Introduzione Alla Crittografia
56/106
Controllo di integrit
La crittografia a chiave segreta pu servire a generarecodici (somme) di controllo cifrati a lunghezza fissa fixed-length cryptographic checksum
uso poco intuitivo della tecnologia a chiave segreta!
Un checksum ordinario (non cifrato) serve aproteggere i messaggi da eventuali corruzioni; cio averificarne lintegrit la parola checksum deriva dal procedimento seguito per
ottenere il codice di controllo1. scomposizione di un messaggio in blocchi di lunghezza fissa (ad
esempio parole da 32 bit)
2. somma bit a bit dei blocchi (OR oppureXOR)
7/29/2019 D02 Introduzione Alla Crittografia
57/106
Confronto di checksum
La sorgente del messaggio ms rendepubblico/invia il corrispondente checksumc(ms)
Chi riceve il messaggio mrcalcola il checksume confronta se vale luguaglianza c(ms) = c(mr) se c(ms) = c(mr) conclude che ms = mr
anche se potrebbero esserci degli errori che sicompensano,
cio potrebbe darsi che ms mre che risulti comunquec(ms) = c(mr)
7/29/2019 D02 Introduzione Alla Crittografia
58/106
Checksum non segreti
I codici di controllo servono per proteggerelhardware da difetti e da inevitabili errori/guasti
esistono dei codici di controllo molto pi sofisticati
(codici CRC Controllo a Ridondanza Ciclica) tali che se ms mrallora quasi certo che c(ms) c(mr), cio
estremamente improbabile che sia c(ms) = c(mr)
ma non sono utilizzabili per la protezione contro
attacchi intelligenti essendo pubblici un avversario che vuole cambiare un
messaggio potrebbe modificare anche il codice di controllo
7/29/2019 D02 Introduzione Alla Crittografia
59/106
Checksum segreto
Per la protezione contro modifiche maliziose adun messaggio, richiesto un codice di controllo(checksum) segreto
se lalgoritmo non noto nessuno pu calcolare ilchecksum corretto per il messaggio modificato
chiaramente, come nel caso degli algoritmi dicifratura, anzich un algoritmo segreto conviene avere
un algoritmo per il calcolo del checksum noto a tutti, chesfrutta una chiave segreta per calcolare il checksum di unmessaggio
in ci consiste appunto un checksumcifrato
7/29/2019 D02 Introduzione Alla Crittografia
60/106
MICMessage Integrity Code
Data una chiave Ke un messaggio m, lalgoritmo produce un codice di autenticazione di
lunghezza fissa c(K, m)
fixed-length MAC Message Authentication Code, o fixed-length MIC Message Integrity Code
il codice MIC c(K, m) viene trasmesso insieme almessaggio m stesso
7/29/2019 D02 Introduzione Alla Crittografia
61/106
MICMessage Integrity Code
Se un avversario volesse modificare ilmessaggio m in m
dovrebbe anche calcolare il codice MIC c(K, m)
generalmente un codice MIC ha una lunghezza dialmeno 48 bit
la possibilit di ottenere il MIC corretto una su 280trilioni (1 trilione = 1012)
7/29/2019 D02 Introduzione Alla Crittografia
62/106
CRITTOGRAFIA A CHIAVE PUBBLICA(PUBLIC KEY CRYPTOGARPHY)
Introduzione alla Crittografia
7/29/2019 D02 Introduzione Alla Crittografia
63/106
Crittografia a chiave pubblica
La crittografia a chiavepubblica (publickeycryptogarphy); talvolta detta anche crittografiaasimmetrica (asymmetric cryptography)
fu pubblicamente introdotta nel 1975 alcune voci sostengono che lNSA gi la utilizzasse
diversamente dalla crittografia a chiave segreta NONPREVEDE la condivisione delle chiavi, ma
ogni individuo ha due chiavi una chiave privata da NON RIVELARE a nessuno
una chiave pubblica da rivelare preferibilmente a tutto ilmondo
7/29/2019 D02 Introduzione Alla Crittografia
64/106
Terminologia e notazione
Per convenzione non si user il terminechiave segreta in luogo di chiave privata
in base allaggettivo della chiave sar immediato
risalire allo schema di crittografia usato chiave segreta denota linformazione segreta
condivisa in uno schema di crittografia a chiave segreta
chiave privata denota la chiave che non deve essere
resa pubblica in uno schema di crittografia a chiavepubblica
chiave pubblica denota la chiave da divulgare in uno
schema di crittografia a chiave pubblica
7/29/2019 D02 Introduzione Alla Crittografia
65/106
Terminologia e notazione
Si user la seguente notazione PU rappresenta la chiave PUbblica
ad esempio PUB indica la chiave pubblica di Bob
PR rappresenta la chiave PRivata ad esempio PRB indica la chiave privata di Bob
ENCRYPTION DECRYPTION
PLAINTEXT PLAINTEXTCIPHERTEXT
PU
PUBLIC KEY
PR
PRIVATE KEY
7/29/2019 D02 Introduzione Alla Crittografia
66/106
Schema di cifratura a chiave pubblica
La figura sotto mostra uno schema di cifratura achiave pubblica cifratura e decifratura sono due funzioni matematiche
che sono luna linverso dellaltra
m = D(PR, E(PU, m))
ENCRYPTION DECRYPTION
PLAINTEXT PLAINTEXTCIPHERTEXT
PU
PUBLIC KEY
PR
PRIVATE KEY
E(PU, m)m D(PR, E(PU, m))
7/29/2019 D02 Introduzione Alla Crittografia
67/106
Firma digitale (a chiave pubblica)
La tecnologia a chiave pubblica consente anche digenerare una firmadigitale su un messaggio
basta invertire il ruolo delle chiavi
m = D(PU, E(PR, m))
ENCRYPTION DECRYPTION
PLAINTEXT PLAINTEXTSIGNED MESSAGE
PR
PRIVATE KEY
PU
PUBLIC KEY
SIGNING VERIFICATION
S(PR, m)
E(PR, m)m
V(PU, E(PR, m))
D(PU, E(PR, m))
7/29/2019 D02 Introduzione Alla Crittografia
68/106
Firma digitale (a chiave pubblica)
Una firmadigitale (digitalsignature) unnumero associato ad un messaggio una sorta di checksum o MAC, ma diversamente
da un checksum, che pu essere generato da tutti, una firma digitale pu essere generata soltanto da
chi conosce la chiave privata PR
una firma a chiave pubblica differisce da un MAC a
chiave segreta la verifica di un MAC richiede la conoscenza dello stesso
segreto (chiave segreta) usato per crearlo
quindi chi pu verificare un MAC pu anche generarlo esostituirsi alla sorgente iniziale
7/29/2019 D02 Introduzione Alla Crittografia
69/106
Firma digitale (a chiave pubblica)
invece, nel caso della firma a chiave pubblica,
la verifica della firma richiede soltanto la conoscenzadella chiave pubblica PU
Alice pu firmare un messaggio generando una firma chesolo lei pu generare, in quanto usa la sua chiave privata PRA
chiunque altro pu verificare se quella generata realmentela firma di Alice (basta usare la chiave pubblica di Alice PUA),ma non pu falsificarla
si parla di firma digitale perch condivide con latradizionale firma manuale la propriet di poteressere riconosciuta autentica senza poter esserefalsificata
7/29/2019 D02 Introduzione Alla Crittografia
70/106
Uso della crittografia a chiave pubblica
La crittografia a chiave pubblica pu fare tutto ci che la crittografia a chiave segreta
pu fare comunicazioni su un canale insicuro (uso classico)
memorizzazione sicura su un supporto insicuro autenticazione
controllo di integrit
ma gli attuali algoritmi crittografici a chiave pubblica
sono di alcuni ordini di grandezza pi lenti deimigliori algoritmi a chiave segreta,
viene pertanto utilizzata in congiunzione allacrittografia a chiave privata
7/29/2019 D02 Introduzione Alla Crittografia
71/106
Uso della crittografia a chiave pubblica
agevola la configurazione/gestione della sicurezzadi una rete
potrebbe usarsi allinizio di una comunicazione in fase
di autenticazione, e
per stabilire una chiave segreta temporanea,
che a sua volta (per motivi di efficienza) pu essereusata per cifrare il resto della comunicazione
ad esempio, si supponga che Alice voglia parlare conBob, Alice pu usare la chiave pubblica di Bob PUB percifrare una chiave segreta (che genera) KAB
poi pu usare la chiave segreta KAB per cifrarequalunque messaggio voglia inviare a lui
7/29/2019 D02 Introduzione Alla Crittografia
72/106
Uso della crittografia a chiave pubblica
dato che la chiave segreta KAB molto pi corta di ungenerico messaggio, la sua cifratura a chiave pubblicanon impatta sulle prestazioni
la chiave KAB generata da Alice pu essere decifrata
soltanto da Bob, che pu continuare la comunicazioneutilizzando questultima (in uno schema di cifratura a
chiave segreta) con chiunque abbia inviato il messaggio
si osservi che usando questo protocollo Bob non pu
essere certo che sia stata Alice ad inviare il messaggio una soluzione potrebbe essere che Alice invia la chiave
segreta KAB crittata con la chiave pubblica di Bob PUBdopo averla firmata digitalmente con la sua chiave
privata PRA
7/29/2019 D02 Introduzione Alla Crittografia
73/106
Uso della crittografia a chiave pubblica
Alice Bob
E(PUB, KAB)
gen. KAB
KAB = D(PRB, E(PUB, KAB))
E(KAB, mA)
mA
mA = D(KAB, E(KAB, mA))
mA
E(KAB, mA)
KAB
Bob non pu essere certo dicomunicare con Alice
7/29/2019 D02 Introduzione Alla Crittografia
74/106
Uso della crittografia a chiave pubblica
Alice Bob
E(PUB, KAB)
gen. KAB
V(PUA, S(PRA, E(PUB, KAB))) == D(PUA, D(PRB, E(PUB, KAB))) = E(PUB, KAB)
E(KAB, mA)
mA
mA = D(KAB, E(KAB, mA))
mA
E(KAB, mA)
KAB
Bob pu essere certo dicomunicare con Alice
Firma digitale S(PRA
, E(PUB
, KAB
)) = E(PRA
, E(PUB
, KAB
))
D(PRB, E(PUB, KAB)) = KAB
7/29/2019 D02 Introduzione Alla Crittografia
75/106
Comunicazioni su un canale insicuro
Si supponga che PUA, PRA sia la coppia public key,private key di Alice
PUB, PRB sia la coppia public key,private key di Bob
Alice conosce la chiave pubblica di Bob PUB
Bob conosce la chiave pubblica di Alice PUA si osservi che procurarsi le chiavi pubbliche di altre persone una
delle principali sfide poste dalla crittografia a chiave pubblica per il momento non ce ne preoccupiamo
la slide che segue illustra come avviene la comunicazionesu un canale insicuro
7/29/2019 D02 Introduzione Alla Crittografia
76/106
Comunicazioni su un canale insicuro
Alice Bob
E(PUB, mA)E(PUB, mA)
D(PRB, E(PUB, mA)) = mA
E(PUA, mB)E(PUA, mB)
mB = D(PRA, E(PUA, mB))
7/29/2019 D02 Introduzione Alla Crittografia
77/106
Memorizzazione sicura
Esattamente come avviene nel caso di crittografiaa chiave segreta
si possono crittare i dati con la chiave pubblica PUX nessuno pu decrittare i dati tranne chi conosce lachiave privata PRX
tuttavia, per ragioni di efficienza, non conviene cifrare i datidirettamente con la chiave pubblica,
ma piuttosto conviene generare randomicamente una chiavesegreta KX, e
crittare i dati con la chiave segreta KX, e
crittare la chiave segreta con la chiave pubblica E(PUX, KX)
7/29/2019 D02 Introduzione Alla Crittografia
78/106
Memorizzazione sicura
Come nel caso di tecnologia a chiave segreta perdere la chiave privata implica perdere
irrimediabilmente i dati
per evitare questo rischio, si pu crittare una copia della
chiave di cifratura segreta KXcon la chiave pubblica di unapersona fidata PUFidata o memorizzare copie della chiave privata PRXpresso una
persona fidata
Si noti che la tecnologia a chiave pubblica offre unchiaro vantaggio rispetto quella a chiave segreta Alice pu cifrare un messaggio per Bob senza conoscere la
sua chiave di decifratura
7/29/2019 D02 Introduzione Alla Crittografia
79/106
Autenticazione
La tecnologia a chiave segreta presenta i seguentisvantaggi:
Alice e Bob per poter autenticarsi devono condividere
un segreto se Bob deve provare la sua identit a molte entit,
allora deve mantenere molte chiavi segrete
una chiave segreta per ogni entit alla quale deve provare la
sua identit potrebbe anche usare la stessa chiave segreta con Alice e
Carol, ma ci comporterebbe che Alice e Carol potrebberoimpersonare Bob in una comunicazione tra loro due
7/29/2019 D02 Introduzione Alla Crittografia
80/106
Autenticazione
La tecnologia a chiave pubblica semplificanotevolmente la gestione dei segreti Bob deve soltanto ricordare un singolo segreto: la
sua chiave privata
chiaramente, deve anche mantenere/otteneretutte le chiavi pubbliche delle entit di cuidesidera verificare lidentit
potrebbero essere anche migliaia di chiavi pubbliche la gestione delle chiavi pubbliche sar discussa in
seguito
S h di i i
7/29/2019 D02 Introduzione Alla Crittografia
81/106
Schema di autenticazione
Assunzione Alice conosce la chiave pubblica di Bob PUB la chiave privata di Bob PRB conosciuta soltanto da Bob
Bob conosce la chiave pubblica di Alice PUA la chiave privata di Alice PRA conosciuta soltanto da Alice
Procedura di autenticazione Alice verifica lidentit di Bob
Bob verifica lidentit di Alice
Ali ifi lid i di B b
7/29/2019 D02 Introduzione Alla Crittografia
82/106
Alice verifica lidentit di Bob
Alice Bob
rA
gen. rA
E(PUB, rA)
D(PRB, E(PUB, rA)) = rA
Ali ifi lid i di B b
7/29/2019 D02 Introduzione Alla Crittografia
83/106
Alice verifica lidentit di Bob
Usando la tecnologia a chiave pubblica Alice puverificare lidentit di Bob come segue: Alice estrae un numero random rA (la sfida)
Alice critta rA
con la chiave pubblica di Bob e invia ilrisultato E(PUB, rA) a Bob
Bob dimostra la sua identit mostrando che conoscela sua chiave privata PRB, ovvero decritta E(PUB, rA)riottenendo rA = D(PRB, E(PUB, rA))
Bob rispedisce indietro ad Alice la sfida rA Alice ha la prova che il suo interlocutore realmente
Bob
Al i
7/29/2019 D02 Introduzione Alla Crittografia
84/106
Altro vantaggio
Un altro vantaggio dellautenticazione a chiavepubblica che Alice non deve mantenere alcunainformazione segreta per verificare Bob Alice potrebbe essere un computer i cui backup sono in
chiaro e incustoditi nellautenticazione a chiave segreta se Carol ruba un
backup e legge una chiave segreta condivisa tra Alice e Bob
pu fingersi Alice in una comunicazione con Bob o viceversa
Invece, nel caso di autenticazione a chiave pubblica i backup di Alice contengono soltanto chiavi pubbliche
(quella privata va custodita in modo diverso) nonpossono consentire di impersonare Bob
Fi di it l
7/29/2019 D02 Introduzione Alla Crittografia
85/106
Firma digitale
Spesso utile provare che un messaggio stato generato da un particolare individuo
ci semplice con la tecnologia a chiave pubblica
la firma di Bob per un messaggio m pu esseregenerata soltanto da chi conosce la chiave privatadi Bob PRB, e
la firma dipende anche dal contenuto di m
se il messaggio viene modificato in qualche modo,
la corrispondenza con la firma viene persa
Fi di it l
7/29/2019 D02 Introduzione Alla Crittografia
86/106
Firma digitale
Pertanto, le firme digitali hanno una duplice funzione provano CHI ha generato linformazione,
provano che linformazione non stata modificata in alcunmodo dal momento in cui il messaggio e la corrispondente
firma furono generati
Inoltre, le firme digitali offrono un vantaggioimportante rispetto ai checksum crittografici a chiave
segreta (cio i MAC/MIC): garantiscono il requisito del non-ripudio (non-repudiation)
N i di
7/29/2019 D02 Introduzione Alla Crittografia
87/106
Non-ripudio
Obiettivo del non-ripudio impedire che ilmittente o il destinatario neghino che sia statotrasmesso un messaggio
il destinatario pu provare che il messaggio statoinviato dal presunto mittente (non ripudio dellasorgente o del mittente)
il mittente pu provare che il messaggio statoeffettivamente ricevuto dal presunto destinatario(non ripudio del destinatario)
N i di i
7/29/2019 D02 Introduzione Alla Crittografia
88/106
Non ripudio esempio
Si supponga che Bob venda articoli che Alicesolitamente compra la procedura di vendita prevede che Alice deve prima
inviare a Bob, via servizio postale, un ordine di acquisto da
lei firmato per snellire la procedura Alice e Bob decidono di usare
lemail per la spedizione degli ordini di acquisto
per evitare falsificazioni Alice include in ogni email un MIC(Message Integrity Code)
per evitare che qualcuno ordini degli articoli dichiarandosi Alice
il MIC potrebbe essere o un MAC che sfrutta una chiave segreta MIC = c(KAB, ordine)
o una firma digitale a chiave pubblica MIC = S(PRA, ordine)
N i di i
7/29/2019 D02 Introduzione Alla Crittografia
89/106
Non ripudio esempio
si supponga che Alice richieda un articolo digrande valore, ma subito dopo cambi idea per un qualunque motivo
visto che la cancellazione dellordine prevede una
penale considerevole, Alice anzich cancellarelordine preferisce negare di averlo piazzato
Bob le fa causa se il MIC era stato ottenuto con una chiave segreta KAB
Bob certo che Alice sta truffando (oltre a lui solo leiconosce KAB), ma non pu provarlo in tribunale
Alice potrebbe sostenere che stato lui stesso adordinarsi larticolo di valore!
N i di i
7/29/2019 D02 Introduzione Alla Crittografia
90/106
Non ripudio esempio
invece, se il MIC era stato ottenuto con una tecnologiaa chiave pubblica MIC = S(PRA, ordine)
Bob pu mostrare lordine firmato al giudice e il giudicepu verificare che la firma quella di Alice
Alice potrebbe sostenere che qualcuno ha rubato la suachiave privata
tuttavia il contratto stipulato tra Alice e Bob potrebbeprevedere che eventuali danni che Bob subisce causa losmarrimento della chiave privata PRA siano a carico di
Alice il vantaggio della tecnologia a chiave pubblica
che Alice pu cifrare un messaggio per Bob senzaconoscere la sua chiave di decifratura
7/29/2019 D02 Introduzione Alla Crittografia
91/106
ALGORITMI DI HASH(CRITTOGRAFICI)
Introduzione alla Crittografia
Algoritmi di hash (crittografici)
7/29/2019 D02 Introduzione Alla Crittografia
92/106
Algoritmi di hash (crittografici)
Noti anche come algoritmi di digest o one-waytransformation
Una funzione di hashcrittografica unatrasformazione matematica che
prende in input un messaggio m di lunghezza arbitraria(codificato in una stringa di bit), e
calcola un numero h(m), loutput, avente una lunghezzafissa prestabilita
h(m) dipende dal messaggio
la lunghezza (numero di bit) del numero h(m) fissa
h : {0, 1}* {0, 1}b b: numero di bit delloutput
F i i di h h itt fi h P i t
7/29/2019 D02 Introduzione Alla Crittografia
93/106
Funzioni di hash crittografiche Propriet
1) Per ogni messaggio m, relativamente facile calcolare h(m) non si tratta di unoperazione computazionalmente dispendiosa
2) Noto h(m), non c modo di calcolare un messaggio il cuihash sia h(m) lunico approccio noto quella di tipo brute force
3) Sebbene sia ovvio che molti valori distinti di m ammettanolo stesso hash h(m) poich lo spazio {0, 1}* molto pi grande di {0, 1}b
computazionalmente impraticabile trovare due valoriaventi il medesimo hash
Idea base per una funzione hash
7/29/2019 D02 Introduzione Alla Crittografia
94/106
Idea base per una funzione hash
Un possibile approccio per il calcolo di unafunzione hash il seguente
dato un messaggio m, interpretare la codifica
binaria di m come un numero intero, sommare ad m alcune grandi costanti intere,
elevare al quadrato il tutto,
lhash h(m) il numero ottenuto considerando len cifre centrali
Idea base per una funzione hash
7/29/2019 D02 Introduzione Alla Crittografia
95/106
Idea base per una funzione hash
Si osservi che h(m) calcolabile efficientemente a partire da m
non chiaro come sia possibile
trovare un messaggio avente uno specifico hash trovare due messaggi aventi lo stesso hash
tuttavia si pu dimostrare che quello appenadescritto non un buon algoritmo di digest
lidea base di una buona funzione di digest comunquela stessa: linput strapazzato cos tanto da rendere
proibitiva linversione
Funzioni hash e password
7/29/2019 D02 Introduzione Alla Crittografia
96/106
Funzioni hash e password
Spesso un sistema deve verificare le password deisuoi utenti se tutte le password sono memorizzate in chiaro,
tutti coloro che hanno accesso al sistema
(amministratori, tecnici, etc.) possono rubare lepassword
fortunatamente, non necessario conoscere unapassword per verificarla! A proper password is like pornography. You can't tell what it
is, but you know it when you see it.
invece delle password in chiaro un sistema potrebbememorizzare lhash delle password
Funzioni hash e password
7/29/2019 D02 Introduzione Alla Crittografia
97/106
Funzioni hash e password
per verificare una password dutentep, il sistema calcola prima lhash della password h(p)
e verifica se h(p) coincide con lhash memorizzato perquellutente,
se coincidono la password considerata corretta se un avversario ottiene il file (relazione db) con
lelenco delle password dutente,
non pu usarlo in modo immediato perch la
funzione di hash non invertibile addirittura in passato lelenco contenente lhash delle
password stato in alcuni casi reso pubblico; era unmodo per ostentare sicurezza da NON IMITARE
Funzioni hash e password
7/29/2019 D02 Introduzione Alla Crittografia
98/106
Funzioni hash e password
infatti, anche se la funzione di hash non presenta difetticrittografici intrinseci che possono essere sfruttati,
sempre possibile scegliere delle password a caso,calcolarne lhash e verificare la corrispondenza,
se un utente U sceglie superficialmente la propriapasswordpU (situazione frequente), ad esempio unaparola di un dizionario, una ricerca esaustiva su unarepository di password probabili consentirebbe di
risalire apU per tale ragione molti sistemi nascondono lelenco
contenete lhash delle password
Funzioni hash Integrit di messaggi
7/29/2019 D02 Introduzione Alla Crittografia
99/106
Funzioni hash Integrit di messaggi
Le funzioni di hash vengono spesso impiegate perverificare lintegrit di un messaggio permettono cio di generare dei MAC/MIC
Come possibile generare MAC/MIC? data una coppia m, h(m), se il messaggio vieneaccidentalmente corrotto, diciamo diventa m, risulta
h(m) h(m) tuttavia, se un avversario modifica deliberatamente il
messaggio pu calcolare anche il suo nuovo hash gli algoritmi di hash sono pubblici
di per s le funzioni di hash non sono utilizzabili perverificare lintegrit dei messaggi contro attacchi maliziosi
Funzioni hash Integrit di messaggi
7/29/2019 D02 Introduzione Alla Crittografia
100/106
Funzioni hash Integrit di messaggi
Tuttavia, se Alice e Bob condividono un segreto KAB eAlice vuole inviare un messaggio m a Bob Alice pu concatenare il messaggio m con il segreto KAB
ottenendo un nuovo messaggio m= (m||KAB)
calcolare lhash del nuovo messaggio h(m) = h(m||KAB)
lhash h(m||KAB) detto keyedhash e pu considerarsi un MAC(anche se presenta delle sottili debolezze)
ed inviare la coppia m, h(m||KAB) a Bob Bob concatena il messaggio ricevuto con il segreto e
calcola lhash se lhash ottenuto coincide con lhash ricevuto
allora Bob pu, con un elevato grado di confidenza, ritenere che ilmessaggio stato inviato da qualcuno che conosceva il segreto
Funzioni hash Integrit di messaggi
7/29/2019 D02 Introduzione Alla Crittografia
101/106
Funzioni hash Integrit di messaggi
m IICONCATENATION
KAB
mIIKAB h()
HASH
II
CONCATENATION
h()
HASH
KAB
=?
Alice Bob
Impronta digitale di dati
7/29/2019 D02 Introduzione Alla Crittografia
102/106
Impronta digitale di dati
Si supponga di disporre di un grande repository di datidi sola lettura e di voler periodicamente verificare chenon vi siano modifiche si potrebbe mantenere una copia di backup del repository
in un luogo a prova di manomissione, e periodicamente confrontarla con la repository attiva
usando una funzione di hash si ha un notevolerisparmio di memoria e tempo
basta salvare lhash del repository in un luogo protetto, e confrontare lhash del repository con lhash
precedentemente salvato
Impronta digitale di dati
7/29/2019 D02 Introduzione Alla Crittografia
103/106
Impronta digitale di dati
nota: il programma che calcola lhash va protetto inmodo indipendente dallhash stesso altrimenti, un avversario pu modificare il repository, e
modificare il programma per il calcolo dellhash in modo
tale che lhash finale sia quello salvato
Lhash del repository funge pertanto da improntadigitale utilizzabile nei test di integrit
garantendo un notevole risparmio di memoria, e di tempo necessario al confronto
Downline load security
7/29/2019 D02 Introduzione Alla Crittografia
104/106
Downline load security
Spesso molti dispositivi di rete (router, stampanti, etc.) anzich memorizzare in una memoria non-volatile i
programmi che generalmente eseguono perch non hanno una memoria non-volatile o ne hanno una di
ridotte dimensioni
li richiedono in fase di bootstrap via rete ad un serverpreposto a svolgere tale servizio tale schema viene detto downline load
in questi casi lhash viene usato per verificare che ilprogramma scaricato sia quello corretto cio non vi
siano state modifiche accidentali o intenzionali basta memorizzare soltanto lhash del programma corretto e, ad ogni download, calcolare lhash del programma
scaricato verificando che coincida con quello in memoria
Firma digitale efficiente
7/29/2019 D02 Introduzione Alla Crittografia
105/106
Firma digitale efficiente
I migliori algoritmi di cifratura a chiave pubblica(conosciuti) sono computazionalmentedispendiosi, conviene pertanto(anzich firmare lintero messaggio)
calcolare prima un digest del messaggio con unafunzione di hash, e
firmare il digest ottenuto,
Si osservi che gli algoritmi per il calcolo del digest sono
computazionalmente molto pi efficienti, e
il digest molto pi corto dellintero messaggio
Bibliografia
7/29/2019 D02 Introduzione Alla Crittografia
106/106
Bibliografia
[KPS02] C. Kaufman, R. Perlman, M. Speciner. NetworkSecurity Private Communication in a Public World.Prentice Hall.
[PFL08] C. P. Pfleeger, S. L. Pfleeger. Sicurezza inInformatica. Pearson, Prentice Hall.
[STA07] W. Stallings. Sicurezza delle reti. Pearson,Prentice Hall.
[Wiki-it] http://it.wikipedia.org/wiki/ [Wiki-en] http://en.wikipedia.org/wiki/ [ISECOM] Institute for Security and Open
Methodologies