Protocolli Crittografici Poker entale Condivisione di segreti Lancio di una moneta Blind Signature oneta Elettronica Elezioni Certified email Protocolli 1 ental Poker Poker senza carte, con giocatori curiosi ma onesti Tre giocatori: A, B, Ciro Cifraturae decifraturacommutative: D(E(x,k 1 ),k ) = E(D(x,k ),k 1 ) Esempio: RSA con lo stesso modulo [Shamir, Rivest, Adleman 1978] Protocolli ental Poker: B ottiene 5 carte ental Poker: B ottiene 5 carte Cifro e permuto le 5 carte E(x 1,k A ),,E(x 5,k A ) E(x 4,k A ),,E(x 3,k A ) Cifro e permuto le 5 carte E(x 1,k A ),,E(x 5,k A ) E(x 4,k A ),,E(x 3,k A ) E(E(x 5,k A ),k B ),,E(E(x,k A ),k B ) Scelgo 5 carte e le cifro E(E(x 5,k A ),k B ),,E(E(x,k A ),k B ) Scelgo 5 carte e le cifro Decifro i 5 valori D(E(E(x 5,k A ),k B ) k A ),,D(E(E(x,k A ),k B ) k A ) Decifro i 5 valori E(x 5,k B ),,E(x,k B ) x 5,,x Protocolli 3 Protocolli 4 Invio Invio le le 47 47 carte carte cifrate cifrate da da A ental Poker: C ottiene 5 carte E(x 4,k A ),,E(x 3,k A ) 47 carte Invio Invio le le 47 47 carte carte cifrate cifrate da da A ental Poker: C ottiene 5 carte E(x 4,k A ),,E(x 3,k A ) E(E(x31,k A ),k C),,E(E(x 50,k A),kC) 5 carte Scelgo Scelgo 5 carte carte e e le le cifro cifro Protocolli 5 Protocolli 6
Invio Invio le le 47 47 carte carte cifrate cifrate da da A ental Poker: C ottiene 5 carte E(x 4,k A ),,E(x 3,k A ) Scelgo Scelgo 5 carte carte e e le le cifro cifro Invio Invio le le 47 47 carte carte cifrate cifrate da da A ental Poker: C ottiene 5 carte E(x 4,k A ),,E(x 3,k A ) Scelgo Scelgo 5 carte carte e e le le cifro cifro Decifro Decifro i i 5 valori valori E(E(x 31,k A ),k C ),,E(E(x 50,kA),kC) D(E(E(x 31,k A ),k C ),k A ),,D(E(E(x 50,kA),k C )ka) 5 carte Protocolli 7 Decifro Decifro i i 5 valori valori E(E(x 31,k A ),k C ),,E(E(x 50,k A ),k C ) E(x 31,k C ),,E(x 50,k C ) 5 carte Protocolli 8 Invio Invio le le 47 47 carte carte cifrate da da A ental Poker: C ottiene 5 carte Scelgo 5 carte carte e le le cifro cifro Scelgo ed ed invio 5 tra tra le le 4 4 carte cifrate da da A ental Poker: A ottiene 5 carte E(x 4,k A ),,E(x 3,k A ) Decifro i i 5 valori E(E(x 31,k A ),k C ),,E(E(x 50,k A ),k C ) E(x31,k C ),,E(x 50,k C ) Decifro i i 5 valori x 31 31,,,, x 50 50 Protocolli 9 E(x 11,k A ),,E(x 45,k A ) 5 carte Decifro i x i 5 valori 11,,x 11 45 45 Protocolli 10 Poker entale Condivisione di segreti Giocatori curiosi ma onesti Se non fossero onesti Uso di prove zero-knowledge Alla fine, tutti rivela le chiavi utilizzate Alla fine, solo il vincitore rivela le chiavi utilizzate Un dealer vuole condividere un segreto S tra n partecipanti in modo che: k o più partecipanti possano ricostruire S k-1 o meno partecipanti non hanno alcuna informazione su S [Adi Shamir, 1979] Protocolli 11 Protocolli 1
Scenario Distribuzione del segreto S S Share 1 Share n Share Protocolli 13 Protocolli 14 Ricostruzione del segreto Ricostruzione del segreto Share 1 k partecipanti Il Il segreto è S Share 1 k-1 partecipanti Non abbiamo alcuna informazione sul segreto Share Share Protocolli 15 Protocolli 16 Condivisione di segreti Inizializzazione schema (n,n) Vedremo: Schema (n,n) Schema (k,n) p numero numero primo primo a 1, 1, a,,,, a n-1 n-1 elementi in in Z p p Protocolli 17 Protocolli 18
Calcolo share schema (n,n) Distribuzione share a n n S-a S-a 1 --a 1 --a n-1 modp n-1 p numero numero primo primo a 1, 1, a,,,, a n-1 n-1 elementi in in Z p p a n n S-a S-a 1 1 --a --a n-1 n-1 modp p numero numero primo primo a 1, 1, a,,,, a n-1 n-1 elementi in in Z p p S in in Z p S in in Z p a 1 a n a Protocolli 19 Protocolli 0 a 5 5 5-3--1- mod7 3 Esempio schema (5,5) p 7 a 1 3 1 3 a a 3 1 3 1 a 4 4 P 1 1 P P 5 P 3 P 4 4 S 5 Protocolli 1 Share 1 Ricostruzione del segreto n partecipanti Share Share nn Il Il segreto è S S a 1 1 ++a ++a n-1 n-1 +a +a n n modp Protocolli Ricostruzione del segreto Esempio schema (5,5) P 1 n-1 partecipanti Share Share 1 P ii Non abbiamo alcuna informazione sul segreto Protocolli 3 P 1 sa che 3 = a 1 P sa che = a P 3 sa che 1 = a 3 P 5 sa che 4 = S-a 1 -a -a 3 a 4 mod 7 Il sistema ha 7 soluzioni: S 6 3 Protocolli 4 0 1 3 4 5 a 4 4 5 6 0 1
Esercizio Inizializzazione schema (k,n) ostrare che n-1 share non danno alcuna informazione sul segreto p numero numero primo primo a 1, 1, a,,,, a k-1 k-1 elementi in in Z p p Protocolli 5 Protocolli 6 Calcolo share schema (k,n) Distribuzione share f(x) f(x) S+a S+a 1 x++ 1 a k-1 k-1 x k-1 k-1 for fori=1 to ton do doy i i f(i) f(i) p numero numero primo primo a 1, 1, a,,,, a k-1 k-1 elementi in in Z p p f(x) f(x) S+a S+a 1 1 x++ a k-1 k-1 x k-1 k-1 for fori=1 to ton do doy i i f(i) f(i) p numero numero primo primo a 1, 1, a,,,, a k-1 k-1 elementi in in Z p p S in in Z p S in in Z p y 1 y n y Protocolli 7 Protocolli 8 f(x) f(x) 1+11x+x for fori=1 to to5 do doy i i f(i) f(i) 6 Esempio schema (3,5) 4 p 19 19 a 1 11 1 11 a P 6 1 1 P P 5 P 3 P 4 3 S 1 Protocolli 9 Share 1 Ricostruzione del segreto k partecipanti Share Il Il segreto è S Protocolli 30
k equazioni: Informazioni k partecipanti y i = S+a 1 i++ a k-1 i k-1 per i=i 1, i, i k k incognite: S, a 1,, a k-1 Possono ricostruire il segreto! Esempio schema (3,5) P 1 sa che 6 = S + a 1 1 + a 1 P sa che 4 = S + a 1 + a P 4 sa che 1 = S + a 1 4 + a 4 1 1 1 1 1 S 6 4 a1 = 4 4 16 a 1 Il sistema ha un unica soluzione: S=19 a 1 = 11 a = det = (1-)(1-4)(-4) mod 19 = 13 Protocolli 31 Protocolli 3 Informazioni k partecipanti Calcolo del Partecipanti P i1, P i,, P ik k 1 1 i i1 L i1 S y 1 i1 k 1 1 i i L i a y 1 i k 1 1 i = i 3 i3 L i3 a y 3 k 1 1 i i k k L ik ak 1 yik atrice di Vandermonde det = Il sistema ha un unica soluzione r 1 r< t k (i i ) Protocolli 33 t mod p Calcolo polinomio f(x) Formula di interpolazione di Lagrange Grado k-1 k x it F(i j ) = y ij f(x) = yij i i Serve solo f(0) = S f(0) = j= 1 1 t k j t t j k t yij j= 1 1 t kit ij t j i Protocolli 34 Ricostruzione del segreto Informazioni k-1 partecipanti Share 1 k-1 partecipanti Share Non abbiamo alcuna informazione sul segreto k-1 equazioni: y i = S+a 1 i++ a k-1 i k-1 per i=i 1, i, i k-1 k incognite: S, a 1,, a k-1 Non possono ricostruire il segreto Ogni segreto è equamente possibile Protocolli 35 Protocolli 36
Esempio schema (3,5) Ricostruzione del segreto P 1 sa che 6 = S + a 1 1 + a 1 P sa che 4 = S + a 1 + a S 1 1 1 6 a1 = 1 4 4 a Il sistema ha 19 soluzioni: S a 1 a 0 10 15 1 18 6 7 16 3 15 7 4 4 17 5 1 8 6 1 18 7 9 9 8 17 0 9 6 10 10 14 0 11 3 11 1 11 13 0 1 14 8 3 15 16 13 16 5 4 17 13 14 Protocolli 18 5 37 Share 1 k-1 partecipanti Share Non abbiamo alcuna informazione sul segreto Protocolli 38 Informazioni k-1 partecipanti Lancio di una moneta k-1 equazioni: y i = S+a 1 i++ a k-1 i k-1 per i=i 1, i, i k-1 k incognite: S, a 1,, a k-1 Ipotizzano un valore per il segreto S y ik = F(i k ) = S+a 1 0++ a k-1 0 k-1 1 i1 i1 1 i i 1 i3 i3 1 i i k k k 1 L i1 S y i i1 k = 0 k 1 L i a y 1 i det = (ir it ) modp k 1 L i = 3 a y i3 1 r< t k atrice di Vandermonde k 1 L i k a k 1 yik Il sistema ha un unica soluzione Protocolli 39 E E uscito testa/croce E E uscito testa/croce Protocolli 40 Lancio di una moneta protocollo naive Lancio di una moneta Lancio moneta testa E E uscito testa E E uscito testa Protocolli 41 Scegli bit b b b Scegli bit b rivela b E E uscito b b E E uscito b b Protocolli 4
Lancio di una moneta Scegli bit b x x commitment(b) b Scegli bit b rivela b E E uscito b b E E uscito b b Protocolli 43 Commitment Equivalente digitale di una busta Facile da calcolare Dato x è difficile calcolare b x commitment(b) Facile mostrare che x = commitment(b) Difficile mostrare che x = commitment(1-b) Protocolli 44 Commitment x commitment(b) b = predicato_difficile (x) Blind Signature Voglio avere la la firma di di da da parte di di B Esempio parità n,e (C) = bit meno significativo di half n,e (C) = 0 se < n/ 1 se > n/ C = e mod n Protocolli 45 F è la la firma di di da da parte di di B Non so so che cosa ho ho firmato Protocolli 46 Blind Signature protocollo con busta Voglio avere la la firma di di da da parte di di B Blind Signature protocollo con RSA Voglio avere la la firma di di da da parte di di B t k valore casuale t k e modn t d mod n,f Protocolli 47,F F k -1 mod n Protocolli 48
Blind Signature protocollo con RSA Voglio avere la la firma di di da da parte di di B t oneta Elettronica k valore casuale,f t k e modn F k -1 mod n F = k -1-1 mod modn = tt d d k -1-1 mod mod n = (k (k e e )) d d k -1-1 mod modn = d d k ed ed k -1-1 mod modn Anonimia egoziante Protocolli = 49 d d mod modn Protocolli 50 t d mod n oneta elettronica Deposito oneta Elettronica I Assegno $1000 oneta Elettronica II Assegno $1000 100 Assegno $1000 Apri queste 99 buste Firma B (Assegno $1000) Assegno di $1000? Problemi? Protocolli 51 Firma B (Assegno $1000) Busta non aperta Protocolli 5 oneta Elettronica II Assegno $1000 100 Assegno $1000 oneta Elettronica III Assegno $1000, r1 100 Assegno $1000, r100 Apri queste 99 buste Apri queste 99 buste Problemi? Busta non aperta Firma B (Assegno $1000) Protocolli 53 Firma B (Assegno $1000, r) Busta non aperta Protocolli 54
oneta Elettronica III oneta Elettronica IV r 1,, r n Assegno $1000, r 1, I 1 100 Assegno $1000, r 100, I 100 Apri queste 99 buste Firma B (Assegno $1000, r) Deposito FirmaB(Assegno $1000, r) egoziante Protocolli 55 Firma B (Assegno $1000, r, I) Busta non aperta Protocolli 56 oneta Elettronica IV oneta Elettronica III I x 1 y 1 x y x n y n x i y i = ID A Condivisione segreti (,) Firma B (Assegno $1000, r, I) Buste aperte (r 1,I 1,B 1 ),,(r n,i n,b n ) Apri queste n buste in I Deposito FirmaB(Assegno $1000, r, I) Buste aperte Protocolli 57 egoziante Protocolli 58 oneta Elettronica IV oneta Elettronica IV x 1 y 1 011 Se la moneta viene spesa due volte la b scopre ID A x y x 1, y,, y n x i y i x i y i = ID A x n y n Protocolli 59 Protocolli 60
oneta Elettronica IV Elezioni: proprietà I Commitment(x 1 ) Commitment(x ) Commitment(x n ) Commitment(y 1 ) Commitment(Y ) Commitment(y n ) Protocolli 61 Solo i votanti autorizzati possono votare Nessuno può votare più di una volta Voto anonimo Non si può duplicare il voto di un altro Non si può cambiare il voto di altri Ognuno può verificare che il proprio voto è conteggiato Protocolli 6 Elezioni I: protocollo naive Elezioni I: protocollo naive Autorità fidata Autorità fidata E Autorità (voto) E Autorità (voto) Problemi? Votanti autorizzati? Più voti di un votante? Protocolli 63 Protocolli 64 Elezioni II: protocollo naive Autorità fidata Elezioni II: protocollo naive Autorità fidata E Autorità (Firma A (voto)) E Autorità (Firma A (voto)) Problemi? Anonimia Protocolli 65 Protocolli 66
Firma Autorità ((Voto 1,r)) Firma Autorità ((Voto,r)) (Voto 1,r 1), (Voto,r 1) Voto 1,r 1 100 Voto (Voto 1,r 100), (Voto,r 100),r 1 Elezioni III Voto 1,r 100 Voto,r 100 Apri queste 99 coppie di buste Autorità fidata Coppia buste non aperte Protocolli 67 Elezioni III r 1,, r n E Autorità (Firma Autorità ((Voto i,r) )) Autorità fidata Pubblicazione voti: E Autorità ((Voto Autorità ((Voto i,r)) i,r)) Protocolli 68 Elezioni III Certified email: il problema Problemi? Autorità ''fidata'' - Aggiungere voti r 1,, r n E Autorità (Firma Autorità ((Votoi,r) )) Autorità fidata Pubblicazione voti: Firma Firma Autorità ((Voto Autorità ((Voto i,r)) i,r)) Email? ai ricevuto niente! Protocolli 69 Protocolli 70 Fairness Certified email: proprietà Ricevuta di spedizione Non ripudio dell origine Non ripudio della ricevuta Autenticità del messaggio Integrità Confidenzialità Timeliness Autenticazione temporale del messaggio Protocolli 71 Certified email Protocolli in-line on-line, garantisce la fairness Protocolli ottimistici coinvolta solo se necessario Protocolli graduali Scambio di info Protocolli 7
Protocollo in-line 1 Protocollo in-line 1 Ricevuta di Ricevuta di: {Ricevuta di E k (); k } E k () k Ricevuta di E k () Firma A ( ) Firma TP ( Firma A ( ) ) Firma TP ( Firma B ( E k () ), k ) Firma TP( E k () ) Firma B ( E k () ) Firma TP( k ) Canali privati per la confidenzialità la confidenzialità Protocolli 73 Protocolli 74 Protocollo in-line Protocollo in-line k Ricevuta di k k Firma A( k ) Firma TP( k ) Problemi? Firma TP ( k ) E k () Firma A ( E k () ) Ricevuta di E k () Firma B ( E k () ) Protocolli 75 Protocolli 76 Protocollo in-line.a Protocollo in-line.b Firma A( k, r ) Firma TP( k, r ) Firma TP ( k, r ) Firma A( K, H( E k () ) ) Firma TP ( k, H( E k () ) ) Firma TP ( k, H( E k () ) ) Firma A ( E k (), r ) Firma A ( E k () ) Firma B ( E k (), r ) Firma B ( E k () ) Protocolli 77 Protocolli 78
Protocollo ottimistico Protocollo ottimistico PK TP ( PK B () ) PK TP ( PK B () ) Firma B ( PK TP ( PK B () ) ) Firma B ( PK TP ( PK B () ) ) y = PK B ()? PK PK TP ( TP ( y y )) = = PK PK TP ( TP ( PK PK B () B ())) y = PK B () Decifratura di y = PK PK B () PK TP ( TP ( y y )) = = PK PK TP ( TP ( PK PK B () B ())) Protocolli 79 Protocolli 80 Protocollo ottimistico Firma B ( PK TP ( PK B () ) ) PK TP ( PK B () ) Firma TP ( PK B() ) Firma B ( PK TP ( PK B () ) ) Firma B( PK TP ( PK B () ) ) Protocollo ottimistico Firma A ( K, H( E k () ) ) Firma TP ( k, H( E k () ) ) PK TP ( PK B () ) Firma B ( PK TP ( PK B () ) ) Firma TP ( k, H( E k () ) ) y = PK B () PK PK TP ( TP ( y y )) PK PK TP ( TP ( PK PK B () B ()) ) oppure Protocolli oppure non non ricevuto ricevuto yy 81 y = PK B ()? PK Decifratura y = PK B () PK TP ( TP ( y y )) = = PK PK TP ( TP ( PK PK B () B ())) Protocolli 8