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