Funzioni hash - Dipartimento di Informatica

Transcript

Funzioni hash - Dipartimento di Informatica
Funzioni Hash
Funzioni hash
lunghezza arbitraria/finita
Barbara Masucci
Funzione
Hash
b bit
Idea alla base:
Dipartimento di Informatica ed Applicazioni
il valore hash h(M) è una rappresentazione non ambigua
e non falsificabile del messaggio M
Università di Salerno
[email protected]
Proprietà: comprime ed è facile da computare
http://www.dia.unisa.it/professori/masucci
1
Barbara Masucci - DIA – Università di Salerno
Uso delle funzioni hash
Firme digitali e
Funzioni hash
Problema:
Problema firma digitale di messaggi lunghi
Firme digitali
Soluzione naive:
naive Divisione in blocchi e firma per ogni blocco
firma
problema per la sicurezza: una permutazione/composizione
delle firme è una nuova firma
Integrita’ dei dati
Soluzione di uso corrente:
corrente
firmare il valore hash del messaggio
[firma di M] = Fk(h(M))
Certificazione del tempo
Barbara Masucci - DIA – Università di Salerno
firma
Vantaggi:
Vantaggi integrità dei dati ed efficienza degli algoritmi
2
Barbara Masucci - DIA – Università di Salerno
3
Integrità dei dati e
Funzioni hash
Certificazione del tempo e
Funzioni Hash
Il notaio digitale
Tipico uso delle funzioni hash
Computo al tempo T il valore hash del file M
Quando è stato creato
Conservo H = h(M) in un luogo sicuro
Per controllare se il file è stato successivamente
il documento D ?
modificato, calcolo h(M´) e verifico se H = h(M´)
h(M) è l’impronta digitale del file
Assicura se un file è stato modificato!
Barbara Masucci - DIA – Università di Salerno
4
Funzioni Hash: Proprietà
5
Barbara Masucci - DIA – Università di Salerno
Un possibile attacco
prepara 2 versioni di un contratto M ed M´
Facili da calcolare
… poi?
¾ M è favorevole ad Alice
¾ M´ è sfavorevole ad Alice
modifica M´ a caso (piccoli cambiamenti come aggiunta
finchè h(M) = h(M´)
spazi)
Alice firma M
Firmakpriv(h(M))
ha quindi la firma di M´
Barbara Masucci - DIA – Università di Salerno
6
Barbara Masucci - DIA – Università di Salerno
Firmakpriv(h(M´))
7
Funzioni hash:
sicurezza
Sicurezza forte ⇒
One-way
¾ h: X→Z funzione hash, |X| ≥ 2·|Z|
¾ Sicurezza debole:
debole dato M è computazionalmente
¾ log|X| ≥ log (2 ·|Z|) = log 2 + log |Z| = 1 + log |Z|
difficile trovare un altro M´ tale che h(M) = h(M´)
¾ Supponiamo che ALG sia un algoritmo di
inversione per h
¾ Sicurezza forte:
forte computazionalmente difficile
trovare 2 diversi messaggi con lo stesso valore hash
¾ … allora esiste un algoritmo Las Vegas che trova
collisioni con probabilità ≥ 1/2
¾ OneOne-way:
way dato y è computazionalmente difficile
trovare M tale che y = h(M)
Barbara Masucci - DIA – Università di Salerno
8
Sicurezza forte ⇒
One-way
Lunghezza valore hash
¾ h: X→Z funzione hash, |X| ≥ 2·|Z|
¾ Supponiamo che ALG sia un algoritmo di inversione per h
¾ … allora esiste un algoritmo Las Vegas che trova
collisioni con probabilità ≥ 1/2
1.1. Scegli
Scegli aa caso
caso xx in
in XX
2.
2. zz ←
← h(x)
h(x)
3.
x´
←
ALG(z)
(z)
3. x´ ← ALG
4.
If x´≠
x´≠ xx then
then (x´,
(x´, x)
x) èè una
una collisione
collisione
4. If
else
else fallito
fallito
Barbara Masucci - DIA – Università di Salerno
9
Barbara Masucci - DIA – Università di Salerno
¾ Quanto grande l’hash per la sicurezza forte?
¾ Se |Z| = 23 bit…
¾ Quanti valori scegliere per essere certi di trovare
almeno una collisione?
¾ |Z|+1 diversi valori di M
⇒ certezza di trovare almeno una collisione
Esempi
10
Barbara Masucci - DIA – Università di Salerno
240
280
2160
11
Lunghezza valore hash
Paradosso del compleanno
¾ Quante persone scegliere a caso
¾ Nuovo attacco per trovare collisioni
¾ h: X→Z funzione hash, |X| = m e |Z| = n
¾ Scelgo a caso diversi messaggi
¾ Verifico se ottengo almeno due valori hash uguali
affinchè, con probabilità ≥ 0.5, ci siano
almeno due con lo stesso compleanno?
¾ Quanti messaggi per avere una buona
probabilità di successo?
¾ n numero dei diversi valori hash
¾ t numero messaggi da scegliere
¾ ε probabilità di successo
Barbara Masucci - DIA – Università di Salerno
Risposta: bastano 23 persone!
12
Paradosso del compleanno
Paradosso del compleanno
⎛ 1 ⎞
t ≈ n ⋅ 2ln⎜
⎟
1
−
ε
⎝
⎠
¾ Quanti elementi scegliere se si vuole che la
probabilità che ci siano almeno due elementi
uguali sia ε?
¾ Se ε = 0.5 allora t ≈ 1.17√n
⎛ 1 ⎞
n ⋅ 2 ln ⎜
⎟
⎝1− ε ⎠
Barbara Masucci - DIA – Università di Salerno
13
¾ Scegliamo a caso elementi in un insieme di cardinalità n.
¾ Quanti elementi scegliere se si vuole che la probabilità
che ci siano almeno due elementi uguali sia ε?
¾ Scegliamo a caso elementi in un insieme di
cardinalità n.
t≈
Barbara Masucci - DIA – Università di Salerno
¾ Applicazione: n = 365 e ε = 0.5 allora t = 22.3
Che relazione c’è con le funzioni hash?
14
Barbara Masucci - DIA – Università di Salerno
15
Attacco del compleanno
¾ Costo di un attacco per computare collisioni
264 ≈ 2.1019 valutazioni della funzione
¾ Attacco <1mese e $10.000.000
¾ Scegliere t elementi a caso e calcolarne i valori hash.
¾ Quanti elementi scegliere per avere almeno una collisione?
¾ Assumiamo che tutte le classi di equivalenza abbiano più o meno la
stessa cardinalità, caso migliore per chi sceglie h
¾ Per una fissata probabilità ε, t è circa
Sicurezza Hash 128 bit
¾ P. van Orschot e M. Wiener [1994]
n
¾ Si ipotizza che il costo dimezzi ogni 18 mesi
¾ Se n = 280 allora t ≈ 240
¾ Se n = 2160 allora t ≈ 280
16
Barbara Masucci - DIA – Università di Salerno
Modello generale
per funzioni hash iterate
M
Si ottiene un messaggio con blocchi di taglia uguale X1X2…Xn
H i-1
funzione
funzionedi
di
compressione
compressione
H 0 è una costante iniziale
Computazione di … Hi = f(Xi,Hi-1) ...
Valore hash Hn = f(Xn,Hn-1)
Barbara Masucci - DIA – Università di Salerno
Modello generale
funzioni hash iterate
padding
padding
Input taglia arbitraria
taglia fissata
Input M. Padding ed aggiunta della lunghezza di M.
Xi
17
Barbara Masucci - DIA – Università di Salerno
aggiungi
aggiungilunghezza
lunghezza
X0
Hi
computazione
del valore hash
18
IV
X1
ff
Xi
H i-1
Xn
ff
…
funzione
funzionedi
di
compressione
compressione
Barbara Masucci - DIA – Università di Salerno
h(M)
ff
Hi
19
SHS
Little-endian e Big-endian
Come si trasformano sequenze di byte in parole di 32 bit?
Conversione ambigua!
Sequenza byte B1, B2, B3, B4 nella parola W
Architetture LittleLittle-endian (come processori Intel 80xxx)
byte con indirizzo più basso è quello meno significativo
W=224B4+
216B3+
28B2+
¾
¾
¾
¾
SHS per Secure Hash Standard
SHA per Secure Hash Algorithm
Standard del Governo americano dal 1993
Modificato nel luglio 1994, denotato SHA-1
¾ (unica differenza: aggiunta di uno shift nell’espansione dei blocchi)
¾ Operazioni efficienti su architetture 32 bit big-endian
¾ Stessi principi di MD4 ed MD5, ma più sicuro
20B1
valore parola
Architetture BigBig-endian (come SUN SPARCstation)
byte con indirizzo più basso è quello più significativo
valore parola W=224B1+ 216B2+ 28B3+ 20B4
lunghezza arbitraria
20
Barbara Masucci - DIA – Università di Salerno
SHA
SHA
160 bit
21
Barbara Masucci - DIA – Università di Salerno
SHA: padding del
messaggio
Espansione blocco ed
Iterazioni
512 bit
blocco
blocco
¾ SHA processa il messaggio in blocchi di 512 bit
32 bit
¾ Ogni blocco consta di 16 parole di 32 bit
¾ M messaggio originario di b bit
32 bit
X[0]
X[0]X[1]
X[1] ……
padding
32 bit
X[15]
X[15] X[16]
X[16]X[17]
X[17] ……
X[79]
X[79]
M′ = M 100….0 b
X[t]
X[t]←←((X[t-3]
X[t-3]⊕⊕X[t-8]
X[t-8]⊕⊕X[t-14]
X[t-14]⊕⊕X[t-16]
X[t-16]))««11
(447-b) mod 512 bit 64 bit
¾ M′ consta di un numero di bit multiplo di 512, ovvero
di un numero di parole N multiplo di 16
¾ N/16 blocchi di 512 bit
Barbara Masucci - DIA – Università di Salerno
22
¾ 80 iterazioni
¾ Una parola ed una costante per ogni iterazione
Barbara Masucci - DIA – Università di Salerno
23
Costanti additive di SHA
Funzioni logiche di SHA
Funzione F(t,X,Y,Z)
round t= 0,…,19:
round t=20,…,39:
round t=40,…,59:
round t=60,…,79:
X
0
0
0
0
1
1
1
1
F(t,X,Y,Z) = (X ∧ Y) ∨ ((¬ X) ∧ Z)
F(t,X,Y,Z) = X ⊕ Y⊕ Z
F(t,X,Y,Z) = (X ∧ Z) ∨ (Y ∧ Z) ∨ (X ∧ Y)
F(t,X,Y,Z) = Y ⊕ X ⊕ Z
Y
0
0
1
1
0
0
1
1
Z
0
1
0
1
0
1
0
1
¾Costante additiva K[t]:
(if X then Y else Z)
(bit di parità)
(2 su 3)
(bit di parità)
¾round
¾round
¾round
¾round
F(0,..) F(20,..) F(40,..) F(60,..)
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
Barbara Masucci - DIA – Università di Salerno
24
A=67452310;
A=67452310;B=efcdab89;
B=efcdab89;C=98badcfe;
C=98badcfe;D=10325476;
D=10325476;E=c3d2e1f0
E=c3d2e1f0; ;
for
for ii==00 to
to N/16-1
N/16-1do
do
for
for jj==00 to
to15
15do
do
X[j]
X[j]←←M´[16i+j]
M´[16i+j]
for
for tt==16
16 to
to79
79do
do
X[t]
←
(
X[t-3]
X[t] ← ( X[t-3]⊕⊕X[t-8]
X[t-8]⊕⊕X[t-14]
X[t-14]⊕⊕X[t-16]
X[t-16]))««11
AA
←
A;
BB
←
B;
CC
←
C;
DD
←
D;
EE
←
E;
AA ← A; BB ← B; CC ← C; DD ← D; EE ← E;
for
fort=0
t=0to
to79
79do
do
TEMP
←
TEMP ←(A«5)
(A«5)++F(t,B,C,D)
F(t,B,C,D)++EE++X[t]
X[t]++K[t]
K[t]
EE←←DD
espansione
da 16 ad 80 parole
DD←←CC
“«1” non c’era in SHA
CC←←(B«30)
(B«30)
BB←←AA
AA←←TEMP
TEMP
AA←←AA++AA;
AA; BB←←BB++BB;
BB; CC←←CC++CC;
CC; DD←←DD++DD;
DD; EE←←EE++EE;
EE;
)
output:
(A,
B,
C,
D,
E
output: (A, B, C, D, E)
SHA
-1
SHA-1
Funzioni HashBarbara Masucci - DIA – Università di Salerno
26
t = 0,…,19:
t = 20,…,39:
t = 40,…,59:
t = 60,…,79:
5a827999
6ed9eba1
8f1bbcdc
ca62c1d1
Barbara Masucci - DIA – Università di Salerno
25
Sicurezza di SHA-1
¾Gli attacchi noti richiedono circa 269
computazioni hash.
¾Fattibile con hardware specializzati.
¾Una volta trovata una collisione se ne
possono ottenere altre concatenando dati
ai messaggi che collidono.
Barbara Masucci - DIA – Università di Salerno
27
SHA-256, SHA-512, SHA-384
SHA-256, SHA-512, SHA-384
¾ Stessi principi di MD4, MD5, SHA-1
¾ SHA-256
¾ Hash di SHA-1 è 160 bit
¾ Sicurezza contro attacco del compleanno 80 bit
¾ Messaggio diviso in blocchi di 512 bit
¾ Parole da 32 bit
¾ Lunghezza chiavi AES: 128, 192, 256
¾ Proposti nuovi SHA (12 ottobre 2000)
¾ Lunghezza valore hash: 256, 512, 384 bit
¾ Sicurezza attacco del compleanno 128, 256, 192 bit
¾ Draft di Federal Information Processing
Standard (FIPS), gennaio 2001
Barbara Masucci - DIA – Università di Salerno
¾ SHA-512
¾ Messaggio diviso in blocchi di 1024 bit
¾ Parole da 64 bit
¾ SHA-384
¾ Valore hash = primi 384 bit di SHA-512, con
costanti iniziali cambiate
28
Barbara Masucci - DIA – Università di Salerno
Funzioni Hash
basate su cifrari a blocchi
Altre funzioni Hash
¾ Snefru, Ralph Merkle [1990], 128 oppure 256 bit
¾ N-hash, Nippon Telephone and Telegraph [1990], 128
bit
¾ HAVAL, Zheng-Pieprzyk-Seberry [1992] 128-160-192224-256 bit
¾ FFT-hash I, C. Schnorr [1991], rotto dopo pochi mesi
¾ FFT-hash II, C. Schnorr [1992], rotto dopo poche
settimane
¾ …
Se è disponibile una implementazione di un cifrario a blocchi …
Cifrario a blocchi E K (⋅) per input ad n bit
Funzione g che da n bit produce una chiave
M'1 ...M't è il messaggio M con eventuale padding
H 0 è una costante predefinita, H t è il valore hash
H i =Eg(Hi−1) (M'i ) ⊕ M'i
H i =Eg(Hi−1) (M'i ) ⊕ M'i ⊕ H i −1
H i =EM'i (H i-1 ) ⊕ H i −1
|K|
|K|bit
bit
Barbara Masucci - DIA – Università di Salerno
29
30
[Matyas-Meyer-Oseas]
[Miyaguchi-Preneel]
[Davies-Meyer]
nnbit
bit
Barbara Masucci - DIA – Università di Salerno
31
Marcatura Temporale di
Documenti Digitali
Digital Timestamp
La
marca temporale di un
documento è qualcosa aggiunto ad
esso che prova che il documento è
stato “prodotto” prima, dopo oppure
ad un fissato momento
¾ Il notaio digitale
¾ Quando è stato creato
il documento D ?
Barbara Masucci - DIA – Università di Salerno
32
33
Facile e Difficile
Alcune idee
¾ È in genere facile provare che un documento
è stato prodotto dopo una data fissata
¾ Depositare il documento presso un notaio
¾ Inviare il documento a se stesso, tramite il
servizio postale
¾ Brevetto (se brevettabile… )
¾ Pubblicare il documento su di un giornale
¾ Uso di un registro di protocollo
¾ Foto con un quotidiano (se è un sequestro… )
Barbara Masucci - DIA – Università di Salerno
Barbara Masucci - DIA – Università di Salerno
¾ È in genere difficile provare che un
documento è stato prodotto prima di una
data fissata
34
Barbara Masucci - DIA – Università di Salerno
35
Problemi con la soluzione
Una soluzione naive
documento
documento
naive
Autorità
Autorità
Fidata
Fidata
D
D
e, D
Alic
¾ Dimensioni del documento
¾per la comunicazione
¾per la memorizzazione dell’Autorità Fidata
¾ Privatezza del contenuto di
2/5/2002 ore 15:00
da Alice, D
Firma digitale
36
documento
documento
D
D
D
¾per la comunicazione
¾per la memorizzazione dell’Autorità Fidata
¾ Privatezza del contenuto di
(
e, H
Alic
D)
D
¾ Quanto è fidata l’Autorità Fidata?
Barbara Masucci - DIA – Università di Salerno
37
Barbara Masucci - DIA – Università di Salerno
Soluzione naive migliorata
Idea: Funzioni Hash
¾ Dimensioni del documento
D
¾ Quanto è fidata l’Autorità Fidata?
Alice
Barbara Masucci - DIA – Università di Salerno
D
Alice
38
Barbara Masucci - DIA – Università di Salerno
Autorità
Autorità
fidata
fidata
2/5/2002 ore 15:00
Alice, H(D)
Firma digitale
39
Problema
Possibili Soluzioni
Sed quis custodiet
ipsos custodes?
Due famiglie di protocolli
Protocolli distribuiti (senza Autorità Fidata)
Avere più “testimonianze” del tempo
Protocolli con “link” (con Autorità Fidata)
Collegare tra loro le marche
dei documenti
Giovenale, Satire, VI, 100 A.C.
40
Barbara Masucci - DIA – Università di Salerno
H(D)
41
Barbara Masucci - DIA – Università di Salerno
Un protocollo distribuito
Un protocollo distribuito
V
V11
V
V11
V1,V2,…,Vk
Generatore
Generatore
Pseudo-casuale
Pseudo-casuale
Alice
Barbara Masucci - DIA – Università di Salerno
H(D)
…
V1,V2,…,Vk
Generatore
Generatore
Pseudo-casuale
Pseudo-casuale
Alic
D)
(
e, H
…
Alice, H(D)
V
Vkk
Alice
42
Barbara Masucci - DIA – Università di Salerno
V
Vkk
43
Un protocollo distribuito
H(D)
V1,V2,…,Vk
Generatore
Generatore
Pseudo-casuale
Pseudo-casuale
Protocollo Distribuito: Sicurezza
V
V11
00
15:
ore
02
/20 H(D) ale
5
/
2
ig it
ce,
Ali irma d
F
D)
A
H(
lice,
Alice, H(D)
Alice
…
La scelta delle persone da contattare è
¾casuale
¾dipendente dal documento
V
Vkk
2/5/2002 ore 15:00
Alice, H(D)
Firma digitale
Barbara Masucci - DIA – Università di Salerno
44
Protocollo Distribuito: Problemi
¾Ci vogliono molte persone in grado di
rispondere immediatamente ad Alice
Barbara Masucci - DIA – Università di Salerno
45
Protocollo con “link”
¾Time Stamping Service
¾ (Autorità fidata, … ma non troppo)
¾Durata (vita) delle firme digitali:
¾ La firma potrebbe non essere più valida al
tempo della verifica della marca temporale:
¾La chiave privata è stata compromessa
¾Lo schema di firme è stato rotto
Barbara Masucci - DIA – Università di Salerno
k grande ⇒ difficile per Alice
corrompere k persone
46
¾Riceve tutte le richieste in intervalli
prefissati
¾Le collega tra loro
¾Invia ad ognuno una marca temporale
¾Vincola se stesso a “non poter predatare”
Barbara Masucci - DIA – Università di Salerno
47
Ricezione richieste
Costruzione albero di hash
in un prefissato intervallo di tempo
hh18=H(h
,h ))
18=H(h14
14,h58
58
h1
h2
…
hh14=H(h
,h ))
14=H(h12
12,h34
34
TSS
TSS
hm
hh1212=H(h
=H(h11,h
,h22))
hh11
48
Barbara Masucci - DIA – Università di Salerno
hh1
1
hh2
2
hh3
3
hh4
4
Barbara Masucci - DIA – Università di Salerno
hh55
hh66
hh77
hh88
49
hi
hh56=H(h
,h )
56=H(h55,h66 )
hh5
5
hh44
ID utente della richiesta
data ed ora
hh5858=H(h
=H(h5656,h,h7878))
hh34=H(h
,h )
34=H(h33,h44 )
hh33
hh7878=H(h
=H(h77,h,h88))
Inviata per ogni richiesta ricevuta nell’unità di tempo
hh18=H(h
,h ))
18=H(h14
14,h58
58
hh12=H(h
,h )
12=H(h11,h22 )
hh22
hh5656=H(h
=H(h55,h
,h66))
Marca temporale
SuperHash
SuperHashj j
hh1414=H(h
=H(h1212,h
,h3434))
hh3434=H(h
=H(h33,h
,h44))
Barbara Masucci - DIA – Università di Salerno
Collegamento tra intervalli
successivi
SuperHash
SuperHashj-1j-1
hh58=H(h
,h ))
58=H(h56
56,h78
78
hh6
6
h1m (valore hash della radice dell’albero)
hh78=H(h
,h )
78=H(h77,h88 )
hh7
7
hh8
8
50
info necessarie per verificare che hi è stato
utilizzato per costruire l’albero con radice h1m
SuperHashj-1 e SuperHashj
Firma del TSS
Barbara Masucci - DIA – Università di Salerno
51
Info per verifica di
“h3 in albero con radice h18”
Sicurezza del Sistema
Fissato il valore hash della radice,
non è possibile
hh18=H(h
,h ))
18=H(h14
14,h58
58
hh14=H(h
,h ))
14=H(h12
12,h23
23
hh12=H(h
,h )
12=H(h11,h22 )
hh11
hh22
hh3434=H(h
=H(h33,h,h44))
hh33
¾inserire un nuovo valore nell’albero di hash
¾cambiare anche un solo valore nell’albero di hash
hh5858=H(h
=H(h5656,h,h7878))
hh4
4
hh5656=H(h
=H(h55,h
,h66))
hh55
hh66
hh7878=H(h
=H(h77,h,h88))
hh77
Barbara Masucci - DIA – Università di Salerno
hh88
52
Barbara Masucci - DIA – Università di Salerno
53
Digital Notary
Sicurezza del Sistema
http://www.surety.com
¾ Si potrebbe rompere lo schema colludendo
solo con il TSS e creando una insieme di
alberi collegati lunghi “a sufficienza”
¾ Una possibile soluzione:
pubblicizzare SuperHash ad intervalli regolari
¾ ogni giorno su Internet, su quotidiani,…
¾ distribuzione mediante e-mail, CD,…
Barbara Masucci - DIA – Università di Salerno
…altrimenti si determinerebbe una collisione
per la funzione hash
54
¾ Il cliente usa del software venduto dalla Surety
¾ Funzione hash con un digest di 288 bit
(MD5+SHA)
¾ Il sistema usa una struttura ad albero
¾ L’unità di tempo corrisponde ad un secondo
¾ Un numero seriale è inserito nel documento
¾ Il SuperHash è pubblicato in posti accessibili
via rete, su un CD-ROM, ed ogni settimana sul
Sunday New-York Times
Barbara Masucci - DIA – Università di Salerno
55
PGP Digital Timestamping
Service
http://www.itconsult.co.uk/stamper.htm
Da ottobre 1995
¾ Il TSS firma ogni documento che riceve
¾ Ogni firma ha un numero seriale
¾ Il TSS memorizza tutte le firme che genera
¾ Tutte le marche (Serial Number, Date, Time)
emesse possono essere esaminate
¾ Ogni giorno pubblica
¾Numero seriale dell’ultima firma
effettuata
¾Tutte le marche emesse nella giornata
Barbara Masucci - DIA – Università di Salerno
56