Esercitazione per la prova scritta x 2 Esercizio 1 x n k in ECB/CBC/CFB/OFB Barbara Masucci Dipartimento di Informatica ed Applicazioni Università di Salerno masucci@dia.unisa.it http://www.dia.unisa.it/professori/masucci y 1 y 2 Blocco y 1 trasmesso non correttamente (alcuni 0 diventano 1 e viceversa) Quanti e quali blocchi sono decifrati non correttamente? y n 1 Electronic codebook chaining (ECB) cifratura x 2 x n y 1 y 2 y n decifratura Non corretto y 1 y 2 y n -1-1 -1-1 Non corretto Corretti -1-1 x 2 x n 2 cifratura Non corretto decifratura Cipher Block Chaining (CBC) IV IV 1 x 22 k k k y 11-1 -1 y 22 y 11 y 22-1 -1 Non corretti 22 k k k Corretti x nn y nn y nn -1-1 x nn 3
Cipher feedback (CFB) 64-bit OFB cifratura IV y 1 x 2 k k k Non corretto x n y n shift di 64 bit k 64 bit shift di 64 bit k decifratura IV y 1 y 2 Non corretti x 2 y n-1 k k k Corretti y n x n 4 64 bit del testo in chiaro 64 bit 64 bit Cifratura y 1 non corretto 64 bit del testo in chiaro Decifratura non corretto, x 2 x n corretti 5 x z y k 1 k 2 k 3 Input: x, y = k3 ( k2 ( k1 (x) )) (k1,k2) Costruisci tabella k1(k2(x)) for k 3 {0,1} 56 do z = -1 k 3 (y) if per qualche k 1,k 2, (k 1 k 2, z) è nella tabella then return la è (k 1,k 2,k 3 ) Input: x, y = k3 ( k2 ( k1 (x) )) Costruisci tabella for k 3 {0,1} 56 do z = -1 k 3 (y) (k1,k2) k1(k2(x)) if per qualche k 1,k 2, (k 1 k 2, z) è nella tabella then return la è (k 1,k 2,k 3 ) Complessità spazio: 2 112 righe nella tabella Complessità tempo: 2 112 per la costruzione della tabella 2 56 decifrature di y con k 3 6 2 56 ricerche in tabella 7
x z y k 1 k 2 k 3 Input: x, y = k3 ( k2 ( k1 (x) )) k1 Costruisci tabella for k 3,k 2 {0,1} 56 X{0,1} 56 do z = -1 k 2 ( -1 k 3 (y)) if per qualche k 1, (k 1, z) è nella tabella then return la è (k 1,k 2,k 3 ) k1(x) Input: x, y = k3 ( k2 ( k1 (x) )) Costruisci tabella for k 3,k 2 {0,1} 56 X{0,1} 56 do z = -1 k 2 ( -1 k 3 (y)) if per qualche k 1, (k 1, z) è nella tabella then return la è (k 1,k 2,k 3 ) Complessità spazio: 2 56 righe nella tabella Complessità tempo: 2 56 per la costruzione della tabella k1 k1(x) 2 112 decifrature di y con chiavi (k 3,k 2 ) 8 2 112 ricerche in tabella 9 L output (k 1,k 2,k 3 ) è sicuramente la cercata? Dato x, y qual è il numero medio di chiavi (k 1,k 2,k 3 ) tali che y = k3 ( k2 ( k1 (x) ) )? Fissato x, ci sono 2 168 chiavi e 2 64 testi cifrati y #chiavi 2 168 = = 2 104 #y per fissato x 2 64 10 11
Dato x, y, x, y qual è il numero medio di chiavi (k 1,k 2,k 3 ) tali che y = k3 ( k2 ( k1 (x) ) ) Y = k3 ( k2 ( k1 (x ) ) )? Fissati x, x, ci sono 2 168 chiavi e 2 128 testi cifrati y, y #chiavi 2 168 = = 2 40 #y,y per fissati x,x 2 128 Dato x, y, x, y, x, y qual è il numero medio di chiavi (k 1,k 2,k 3 ) tali che y = k3 ( k2 ( k1 (x) ) ) y = k3 ( k2 ( k1 (x ) ) ) Y = k3 ( k2 ( k1 (x ) ) )? Fissati x, x, x, ci sono 2 168 chiavi e 2 192 testi cifrati y, y, y, #chiavi 2 168 = = 2-24 #y,y,y per fissati x,x,x 2 192 Prob. di indovinare la corretta = 1-2 -24 12 13 Esercizio 3 L Esercizio 3 L E E E E z Complessità spazio: 2 (L-1)l righe nella tabella Complessità tempo: 2 (L-1)l per la costruzione della tabella 2 l decifrature di y con k L 14 2 l ricerche in tabella 15
Esercizio 3 E E z Complessità spazio: 2 l righe nella tabella Complessità tempo: 2 l per la costruzione della tabella 2 (L-1)l decifrature di y con chiavi (k L,,k 2 ) L 2 (L-1) l ricerche in tabella 16 Esercizio 3 E E L Dati,y 1,, x t,y t il numero medio di chiavi (k 1,k 2,,k L ) tali che y i = E kl ( E k2 (E k1 (x i ) ) ) è 2 Ll-tn 17 Esercizio 4 Si consideri la funzione hash H così definita: sia n un numero primo di 512 bit; sia e un esponente tale che 1 < e < ϕ(n) e gcd(e, ϕ(n))=1; Per un messaggio M arbitrariamente lungo, sia H(M)=M e mod n, con n ed e noti. Esercizio 4 La funzione H soddisfa la proprietà oneway? (Si utilizzi il valore d tale che e d=1 mod ϕ(n)). La funzione H soddisfa la proprietà di sicurezza debole? (Si utilizzi la relazione (M+n) e mod n= M e mod n+e (M) (e-1) n mod n+(m) (e-2) n 2 mod n+... +n e mod n). 18 19
Esercizio 4 La funzione H soddisfa la proprietà oneway? (Si utilizzi il valore d tale che e d=1 mod ϕ(n)). Dato che n è primo, ϕ(n)=n-1 (noto!) E facile computare, mediante l algoritmo di Euclide esteso, il valore d=e -1 mod ϕ(n). Quindi è possibile, dato un qualunque valore H(M), computare M=H(M) d mod n. La funzione H non soddisfa la proprietà one-way. Esercizio 4 La funzione H soddisfa la proprietà di sicurezza debole? No. Dato un messaggio M è facile trovare un altro messaggio M tale che H(M)=H(M ). In particolare, ponendo M =M+n si ha H(M )= (M+n) e mod n = M e mod n+e (M) (e-1) n mod n+(m) (e-2) n2 mod n+... +n e mod n) = M e mod n = H(M) Termini tutti nulli (multipli di n) 20 21 Generalizzare il protocollo di Diffie- Hellman per 3 partecipanti x Z x Z p p primo p, generatore g y Z y Z p p A B z Z z Z p p 22 C 23
x Z x Z p p primo p, generatore g y Z y Z p p x Z x Z p p primo p, generatore g y Z y Z p p g x mod p g zx zx mod p A g z mod p g y mod p B A g yz yz mod mod p yx mod g yx mod p B z Z z Z p p z Z z Z p p C C 24 25 Esercizio 6 g xyz g xyz mod modpp A g xyz g xyz mod modpp B g xyz g xyz mod modpp Analizzare la sicurezza dello schema di firma pubblica: (p, g, g y mod p), con p primo, g generatore di Z p *; privata: y [1,p-1]. firma di M: F(M)=(a,b), con a = (H(M) g) y mod p, b = H(M) y mod p, dove H è una funzione hash. verifica di F(M)=(a,b): testa se a b -1 =g y mod p. C 26 27
Esercizio 6 Esercizio 7 Key-only selective forgery attack Oscar, conoscendo solo la pubblica di Alice, può determinare la firma F(M) di qualsiasi messaggio M di sua scelta, nel modo seguente: -sceglie un valore b in Zp, -computa a = b g y mod p, -invia a Bob la coppia (M, F(M)), dove F(M)=(a,b). Verifica: Bob ha la pubblica (p, g, g y mod p) di Alice e testa se a b -1 =g y mod p. Essendo a = b g y mod p, la verifica avrà successo e Bob crederà che il messaggio sia stato firmato da Alice. Analizzare la sicurezza dello schema di firma pubblica: (p, g, g y mod p), con p primo, g generatore di Z p *; privata: y [1,p-1]. firma di M: F(M)= (g H(M) ) y mod p, dove H è una funzione hash. verifica di F(M): testa se F(M)= (g y ) H(M) mod p. 28 29 Esercizio 7 Key-only selective forgery attack Oscar, conoscendo solo la pubblica di Alice, può determinare la firma F(M) di qualsiasi messaggio M di sua scelta, nel modo seguente: -computa H(M), -computa F(M)=(g y mod p) H(M) -invia a Bob la coppia (M, F(M)) Verifica: Bob ha la pubblica (p, g, g y mod p) di Alice e testa se F(M)= (g y ) H(M) mod p. Essendo F(M)=(g y mod p) H(M), la verifica avrà successo e Bob crederà che il messaggio sia stato firmato da Alice. 30