protocolli crittografici mental poker - unisaads/corso-security/www/corso-0102/... · 2004. 3....
TRANSCRIPT
1
Protocolli 1
Protocolli Crittograficiq Poker Mentaleq Condivisione di segretiq Lancio di una monetaq Blind Signature q Moneta Elettronicaq Elezioniq Certified email
Protocolli 2
Mental Pokerq Poker senza carte, con giocatori
“curiosi” ma “onesti”q Tre giocatori: Annarella, Biagio, Ciroq Cifratura e decifratura commutative:
D(E(x,k1),k2) = E(D(x,k2),k1)Esempio: RSA con lo stesso modulo
[Shamir, Rivest, Adleman 1978]
Protocolli 3
Mental Poker: B ottiene 5 carte
Cifro e permuto le 52 carteE(x1,kA),…,E(x52,kA)
E(x4,kA),…,E(x32,kA)
Scelgo 5 carte e le cifroE(E(x5,kA),kB),…,E(E(x2,kA),kB)
Decifro i 5 valoriD(E(E(x5,kA),kB) kA),…,D(E(E(x2,kA),kB)kA)
Protocolli 4
Mental Poker: B ottiene 5 carte
x5,…,x2
Cifro e permuto le 52 carteE(x1,kA),…,E(x52,kA)
E(x4,kA),…,E(x32,kA)
Scelgo 5 carte e le cifroE(E(x5,kA),kB),…,E(E(x2,kA),kB)
Decifro i 5 valori
E(x5,kB),…,E(x2,kB)
Protocolli 5
Mental Poker: C ottiene 5 carte
E(x4,kA),…,E(x32,kA)
Invio le 47 carte cifrate da AInvio le 47 carte cifrate da A
47 carte47 carte
Protocolli 6
Mental Poker: C ottiene 5 carte
E(x4,kA),…,E(x32,kA)
Invio le 47 carte cifrate da AInvio le 47 carte cifrate da A
Scelgo 5 carte e le cifroScelgo 5 carte e le cifro
E(E(x31,kA),k C),…,E(E(x 50,kA),k C)
5 carte5 carte
2
Protocolli 7
Mental Poker: C ottiene 5 carte
E(x4,kA),…,E(x32,kA)
Invio le 47 carte cifrate da AInvio le 47 carte cifrate da A
Scelgo 5 carte e le cifroScelgo 5 carte e le cifro
Decifro i 5 valoriDecifro i 5 valori
E(E(x31,k A),k C),…,E(E(x 50,kA),k C)
D(E(E(x 31,kA),k C),kA),…,D(E(E(x 50,kA),k C)kA)
5 carte5 carte
Protocolli 8
Mental Poker: C ottiene 5 carte
E(x4,kA),…,E(x32,kA)
Invio le 47 carte cifrate da AInvio le 47 carte cifrate da A
Scelgo 5 carte e le cifroScelgo 5 carte e le cifro
Decifro i 5 valoriDecifro i 5 valori
E(E(x31,kA),k C),…,E(E(x 50,kA),k C)
E(x31,k C),…,E(x 50,k C)
5 carte5 carte
Protocolli 9
Mental Poker: C ottiene 5 carte
E(x4,kA),…,E(x32,kA)
Invio le 47 carte cifrate da AInvio le 47 carte cifrate da A
Scelgo 5 carte e le cifroScelgo 5 carte e le cifro
Decifro i 5 valoriDecifro i 5 valoriE(E(x31,kA),kC),…,E(E(x50,kA),kC)
E(x31,kC),…,E(x50,kC)
Decifro i 5 valorix31, …, x50
Decifro i 5 valorix31, …, x50
Protocolli 10
Mental Poker: A ottiene 5 carte
E(x11,kA),…,E(x45,kA)
Scelgo ed invio 5 tra le 42 carte cifrate da A
Scelgo ed invio 5 tra le 42 carte cifrate da A
Decifro i 5 valorix11,…,x45
Decifro i 5 valorix11,…,x45
5 carte5 carte
Protocolli 11
Poker Mentale
q Giocatori “curiosi” ma “onesti”q 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
Protocolli 12
Condivisione di segreti
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]
3
Protocolli 13
Scenario
DealerDealer
P1P1P2P2
PnPn…
Segreto S
Segreto S
Protocolli 14
Distribuzione del segreto
DealerDealer
P1P1P2P2
PnPn…
Segreto S
Segreto S
Share1
Share2
Sharen
Protocolli 15
Ricostruzione del segreto
P1P1P2P2
PnPn…
Il segreto è S
Il segreto è S
Share1Share1
Share2Share2
k partecipanti
…Protocolli 16
Ricostruzione del segreto
P1P1P2P2
PnPn…
Non abbiamo alcuna
informazione sul segreto
Non abbiamo alcuna
informazione sul segretoShare1Share1
Share2Share2
k-1 partecipanti
Protocolli 17
Condivisione di segreti
Vedremo:qSchema (n,n)qSchema (k,n)
Protocolli 18
Inizializzazione schema (n,n)
DealerDealer
P1P1P2P2
PnPn…
p ← numero primoa1, a2,…, an-1 ← elementi in Zp
p ← numero primoa1, a2,…, an-1 ← elementi in Zp
4
Protocolli 19
Calcolo share schema (n,n)
DealerDealer
P1P1P2P2
PnPn…
Segreto S in Zp
Segreto S in Zp
p ← numero primoa1, a2,…, an-1 ← elementi in Zp
p ← numero primoa1, a2,…, an-1 ← elementi in Zp
an ← S-a1-…-an-1 mod pan ← S-a1-…-an-1 mod p
Protocolli 20
Distribuzione share
DealerDealer
P1P1P2P2
PnPn…
Segreto S in Zp
Segreto S in Zp
p ← numero primoa1, a2,…, an-1 ← elementi in Zp
p ← numero primoa1, a2,…, an-1 ← elementi in Zp
a1
a2
an
an ← S-a1-…-an-1 mod pan ← S-a1-…-an-1 mod p
Protocolli 21
Esempio schema (5,5)
DealerDealer
P1P1P2P2
P5P5
Segreto S ←5
Segreto S ←5
p ← 7 a1 ←3 a2 ←2a3 ←1 a4 ←2p ← 7 a1 ←3 a2 ←2a3 ←1 a4 ←2
3
2
P4P4P3P3
1
42
a5 ← 5-3-2-1-2 mod 7a5 ← 5-3-2-1-2 mod 7
Protocolli 22
Ricostruzione del segreto
P1P1P2P2
PnPn
…
Il segreto è S
Il segreto è S
Share1Share1
Share2Share2
n partecipanti
SharenSharen
S ← a1+…+an-1+an mod pS ← a1+…+an-1+an mod p
Protocolli 23
Ricostruzione del segreto
P1P1PiPi
PnPn
…
Non abbiamo alcuna
informazione sul segreto
Non abbiamo alcuna
informazione sul segretoShare1Share1
Share2Share2
n-1 partecipanti
Protocolli 24
Esempio schema (5,5)q P1 sa che 3 = a1
q P2 sa che 2 = a2
q P3 sa che 1 = a3
q P5 sa che 4 = S-a1-a2-a3–a4 mod 7
Il sistema ha 7 soluzioni:
36251403625140a4S
5
Protocolli 25
Esercizio
qMostrare che n-1 share non danno alcuna informazione sul segreto
Protocolli 26
Inizializzazione schema (k,n)
DealerDealer
P1P1P2P2
PnPn…
p ← numero primoa1, a2,…, ak-1 ← elementi in Zp
p ← numero primoa1, a2,…, ak-1 ← elementi in Zp
Protocolli 27
Calcolo share schema (k,n)
DealerDealer
P1P1P2P2
PnPn…
Segreto S in Zp
Segreto S in Zp
p ← numero primoa1, a2,…, ak-1 ← elementi in Zp
p ← numero primoa1, a2,…, ak-1 ← elementi in Zp
f(x) ← S+a1x+…+ ak-1xk-1
for i=1 to n do yi ← f(i)f(x) ← S+a1x+…+ ak-1xk-1
for i=1 to n do yi ← f(i)
Protocolli 28
Distribuzione share
DealerDealer
P1P1P2P2
PnPn…
Segreto S in Zp
Segreto S in Zp
f(x) ← S+a1x+…+ ak-1xk-1
for i=1 to n do yi ← f(i)f(x) ← S+a1x+…+ ak-1xk-1
for i=1 to n do yi ← f(i)p ← numero primoa1, a2,…, ak-1 ← elementi in Zp
p ← numero primoa1, a2,…, ak-1 ← elementi in Zp
y1
y2
yn
Protocolli 29
Esempio schema (3,5)
DealerDealer
P1P1P2P2
P5P5
Segreto S ←12Segreto S ←12
f(x) ← 12+11x+2x2
for i=1 to 5 do y i ← f(i)f(x) ← 12+11x+2x2
for i=1 to 5 do y i ← f(i)p ← 19a1 ←11 a2 ←2p ← 19a1 ←11 a2 ←2
6
4
P4P4P3P3
6
312
Protocolli 30
Ricostruzione del segreto
P1P1P2P2
PnPn…
Il segreto è S
Il segreto è S
Share1Share1
Share2Share2
k partecipanti
…
6
Protocolli 31
Informazioni k partecipanti
q k equazioni: yi = S+a1i+…+ ak-1ik-1 per i=i 1, i 2, … i k
q k incognite: S, a 1,…, ak-1q Possono ricostruire il segreto!
Protocolli 32
Esempio schema (3,5)q P1 sa che 6 = S + a 1•1 + a2•12
q P2 sa che 4 = S + a1•2 + a2•22
q P4 sa che 12 = S + a 1•4 + a2•42
=
1246
aaS
1641421111
2
1
Il sistema ha un’unica soluzione: S=19 a 1 = 11 a2 = 2
det = (1-2)(1-4)(2-4) mod 19= 13
Protocolli 33
Informazioni k partecipantiPartecipanti P i1, Pi2,…, Pik
=
−−
−
−
−
k
3
2
1
i
i
i
i
1k
2
1
1kk2kk
1k3
233
1k2
222
1k1
211
y
yyy
a
aaS
iii1
iii1iii1iii1
MM
LMMMM
LLL
Il sistema ha un’unica soluzione
∏≤<≤
−=ktr1
tr pmod)i(idetMatrice di Vandermonde
Protocolli 34
Calcolo del Segreto
q Calcolo polinomio f(x)q Formula di interpolazione di Lagrange
– Grado k-1– F(i j) = yij ∏∑
≠≤≤= −
−=
jt kt1 tj
tk
1ji ii
ixyf(x)j
q Serve solo f(0) = S
∏∑≠≤≤= −
=
jt kt1 jt
tk
1ji ii
iyf(0)j
Protocolli 35
Ricostruzione del segreto
P1P1P2P2
PnPn…
Non abbiamo alcuna
informazione sul segreto
Non abbiamo alcuna
informazione sul segretoShare1Share1
Share2Share2
k-1 partecipanti
Protocolli 36
Informazioni k-1 partecipanti
q k-1 equazioni: yi = S+a1i+…+ ak-1ik-1 per i=i 1, i 2, … i k-1
q k incognite: S, a 1,…, ak-1q Non possono ricostruire il segretoq Ogni segreto è equamente possibile
7
Protocolli 37
Esempio schema (3,5)q P1 sa che 6 = S + a 1•1 + a2•12
q P2 sa che 4 = S + a1•2 + a2•22
=
46
aaS
421111
2
1
Il sistema ha 19 soluzioni:
5218
141317
4516
131615
3814
12013
21112
11311
201410
1069
0178
997
1816
8125
1744
7153
1672
6181
15100
a2a1S
Protocolli 38
Ricostruzione del segreto
P1P1P2P2
PnPn…
Non abbiamo alcuna
informazione sul segreto
Non abbiamo alcuna
informazione sul segretoShare1Share1
Share2Share2
k-1 partecipanti
Protocolli 39
Informazioni k-1 partecipantiq k-1 equazioni: yi = S+a1i+…+ ak-1ik-1 per i=i 1, i 2, … i k-1
q k incognite: S, a 1,…, ak-1q Ipotizzano un valore per il segreto S
y ik = F(ik) = S+a10+…+ ak-10k-1
Il sistema ha un’unica soluzione
∏≤<≤
−=ktr1
tr pmod)i(idet
Matrice di Vandermonde
=
−−
−
−
−
k
3
2
1
i
i
i
i
1k
2
1
1kk
2kk
1k3
233
1k2
222
1k1
211
y
yyy
a
aaS
iii1
iii1iii1iii1
MM
LMMMM
L
LL i k = 0
Protocolli 40
Lancio di una moneta
… … E’ uscito testa/croceE’ uscito testa/croce E’ uscito testa/croceE’ uscito testa/croce
iagionnarella
Protocolli 41
Lancio di una monetaprotocollo naive
E’ uscito testaE’ uscito testa E’ uscito testaE’ uscito testa
Lancio moneta testa
iagionnarella
Protocolli 42
Lancio di una moneta
iagio
E’ uscito b⊕b́E’ uscito b⊕b́ E’ uscito b⊕b́E’ uscito b⊕b́
Scegli bit b
Scegli bit b́b´
rivela b
nnarella
b
8
Protocolli 43
Lancio di una moneta
iagio
E’ uscito b⊕b́E’ uscito b⊕b́ E’ uscito b⊕b́E’ uscito b⊕b́
Scegli bit b
Scegli bit b́x←commitment(b)
b´
x
rivela b
nnarella
Protocolli 44
Commitment
Equivalente digitale di una bustaq “Facile” da calcolareq Dato x è “difficile” calcolare bq “Facile” mostrare che x = commitment(b)q “Difficile” mostrare che x = commitment(1-b)
x←commitment(b)x←commitment(b)
Protocolli 45
Commitment
Esempioparitàn,e(C) = bit meno significativo di M
0 se M < n/2halfn,e(C) =
1 se M > n/2
C = Me mod nC = Me mod n
x←commitment(b)x←commitment(b)b = predicato_difficile (x)
Protocolli 46
Blind Signature
… … F è la firma di M
da parte di BF è la firma di M
da parte di B
Non so che cosa ho firmato
Non so che cosa ho firmato
iagionnarella
Voglio avere la firma di M da parte di B
Voglio avere la firma di M da parte di B
Protocolli 47
Blind Signatureprotocollo con busta
iagionnarella
Voglio avere la firma di M da parte di B
Voglio avere la firma di M da parte di B
M F’
M,FF’
Protocolli 48
Blind Signatureprotocollo con RSA
iagionnarella
Voglio avere la firma di M da parte di B
Voglio avere la firma di M da parte di B
M F’
M,FF’
k ← valore casualet←Mke mod n
t
F’←td mod n
F’
F ← F’ k -1 mod n
9
Protocolli 49
Blind Signatureprotocollo con RSA
iagionnarella
Voglio avere la firma di M da parte di B
Voglio avere la firma di M da parte di B
M F’
M,FF’
k ← valore casualet←Mke mod n
t
F’←td mod n
F’
F ← F’ k -1 mod n
F = F’ k-1 mod n= td k-1 mod n= (Mke)d k-1 mod n= Md ked k-1 mod n= Md mod n
F = F’ k-1 mod n= td k-1 mod n= (Mke)d k-1 mod n= Md ked k-1 mod n= Md mod n Protocolli 50
Moneta Elettronica
nnarella anca… …
Anonimia
Moneta elettronica
egoziante
Deposito
Protocolli 51
Moneta Elettronica I
nnarella anca
Assegno di $1000?
Assegno $1000
F’F’FirmaBanca(Assegno $1000)
Problemi?Protocolli 52
Moneta Elettronica II
nnarellaanca
Assegno $1000…Assegno $1000
F’F’FirmaBanca(Assegno $1000)
…
Apri queste 99 buste
…
100
Busta non aperta
Protocolli 53
Moneta Elettronica II
nnarellaanca
Assegno $1000…Assegno $1000
F’FirmaBanca(Assegno $1000)
…
Apri queste 99 buste
…
100
Busta non aperta Problemi? F’
Protocolli 54
Moneta Elettronica III
nnarellaanca
Assegno $1000, r1…
Assegno $1000, r100
F’FirmaBanca(Assegno $1000, r)
…
Apri queste 99 buste
…
100
Busta non aperta F’
10
Protocolli 55
Moneta Elettronica III
nnarella anca
egoziante
DepositoFirma
Banca (Assegno $1000, r)FirmaBanca(Assegno $1000, r)
r1, …, rn
Protocolli 56
Moneta Elettronica IV
nnarellaanca
F’FirmaBanca(Assegno $1000, r, I)
…
Apri queste 99 buste
…
Assegno $1000, r1 , I1
…
Assegno $1000, r100 , I100
100
Busta non aperta F’
Protocolli 57
Moneta Elettronica IV
I
……
x1 y1
x2
xn
y2
yn
xi ⊕ yi = IDAnnarella
Condivisione segreti (2,2)
Protocolli 58
Moneta Elettronica III
nnarella anca
egoziante
Deposito
FirmaBanca (Assegno $1000, r, I)
FirmaBanca(Assegno $1000, r, I)
(r1,I1,B1),…,(rn,In,Bn)
Apri queste n buste in IBuste aperte …
Buste aperte
Protocolli 59
Moneta Elettronica IV
……
y1
x2
xn
01…1x1
y2
yn
x1, y2 , …, yn
Protocolli 60
Moneta Elettronica IV
Se la moneta viene spesa due voltela banca scopre IDAnnarella
yixi xi ⊕ yi = IDAnnarella
11
Protocolli 61
Moneta Elettronica IV
I
Commitment(yn)Commitment(xn)
……
Commitment(Y2)Commitment(x2)
Commitment(y1)Commitment(x1)
Protocolli 62
Elezioni: proprietà
q Solo i votanti autorizzati possono votareqNessuno può votare più di una voltaq Voto anonimoqNon si può duplicare il voto di un altroqNon si può cambiare il voto di altriqOgnuno può verificare che il proprio voto
è conteggiato
Protocolli 63
Elezioni I: protocollo naive
nnarella
E Autorità
(voto)
Autoritàfidata
Autoritàfidata
Protocolli 64
Elezioni I: protocollo naive
nnarella
E Autorità
(voto)
Votanti autorizzati?Più voti di un votante?
Problemi?
Autoritàfidata
Autoritàfidata
Protocolli 65
Elezioni II: protocollo naive
nnarella
E Autorità
(Firma Annarella
(voto))
Autoritàfidata
Autoritàfidata
Protocolli 66
Elezioni II: protocollo naive
nnarella
E Autorità
(Firma Annarella
(voto))
Anonimia
Problemi?
Autoritàfidata
Autoritàfidata
12
Protocolli 67
Elezioni III
nnarella
(Voto 1,r1), (Voto 2,r1)
…
(Voto 1,r100), (Voto 2,r100)
F’’FirmaAutorità((Voto 1,r) )
…
Apri queste 99 coppie di buste
…
100
Coppia buste non aperte
F’’
…Voto 1, r1
Voto 2, r1
Voto 1, r100
Voto 2, r100
…
F’F’
FirmaAutorità((Voto 2,r))
Autoritàfidata
Autoritàfidata
Protocolli 68
Elezioni III
Autoritàfidata
Autoritàfidata
nnarella
E Autorità
(Firma Auto
rità((Voto
i,r)) )
r1, …, rn
Pubblicazione voti:EAutorità((Voto i,r))
…
Pubblicazione voti:EAutorità((Voto i,r))
…
Protocolli 69
Elezioni III
Autoritàfidata
Autoritàfidata
nnarella
r1, …, rn
Pubblicazione voti:FirmaAutorità ((Voto i,r))
…
Pubblicazione voti:FirmaAutorità ((Voto i,r))
…
Problemi?Autorità ' 'fidata''- Aggiungere voti
E Autorità
(Firma Auto
rità((Voto
i,r)) )
Protocolli 70
Certified email: il problema
M
Email?Mai ricevuto niente!
Email?Mai ricevuto niente!
Protocolli 71
Certified email: proprietà
q Fairnessq Ricevuta di spedizioneq Non ripudio dell’origineq Non ripudio della ricevuta q Autenticità del messaggio q Integritàq Confidenzialitàq Timeliness q Autenticazione temporale del messaggio
Protocolli 72
Certified email
qProtocolli in-line– Terza Parte on-line, garantisce la fairness
qProtocolli ottimistici– Terza Parte coinvolta solo se necessario
qProtocolli graduali– Scambio di info
13
Protocolli 73
Protocollo in-line 1Terza ParteTerza Parte
M
k
Ricevuta di:
{Ricevuta di
E k(M); k
}
Ricevuta di M
Ek (M)
Ricevuta diE
k(M)
Canali privati per la confidenzialità
Canali privati per la confidenzialità Protocolli 74
Protocollo in-line 1Terza ParteTerza Parte
Firma A
( M )
FirmaTP ( k )
Firma TP( Firma B
( E k(M) ),
k ) Firma TP
( Firma A( M ) )
FirmaTP ( E
k (M) )FirmaB ( E
k (M) )
Protocolli 75
Protocollo in-line 2Terza ParteTerza Parte
k
Ek(M)
k
Ricevuta di Ek(M)
Ricevuta di k
Protocolli 76
Protocollo in-line 2Terza ParteTerza Parte
Firma A( k )
FirmaA( Ek(M) )
FirmaTP ( k )
FirmaB( Ek(M) )
Firma TP( k )
Problemi?
Protocolli 77
Protocollo in-line 2.aTerza ParteTerza Parte
Firma A( k,
r )
FirmaA( Ek(M), r )
FirmaTP ( k, r )
FirmaB( Ek(M), r )
Firma TP( k, r
)
Protocolli 78
Protocollo in-line 2.bTerza ParteTerza Parte
Firma A( K, H( E k
(M) ) )
FirmaA( Ek(M) )
FirmaTP ( k, H( E
k (M) ) )
FirmaB( Ek(M) )
Firma TP( k, H
( E k(M) ) )
14
Protocolli 79
Protocollo ottimisticoTerza ParteTerza Parte
PKTP( PKB(M) )
FirmaB( PKTP( PKB(M) ) )
y = PKB(M)
PKTP( y ) = PKTP( PKB(M) )PKTP( y ) = PKTP( PKB(M) )?
Protocolli 80
Protocollo ottimisticoTerza ParteTerza Parte
PKTP( PKB(M) )
FirmaB( PKTP( PKB(M) ) )
y = PKB(M)
Decifratura di y = PKB(M) PKTP( y ) = PKTP( PKB(M) )PKTP( y ) = PKTP( PKB(M) )
Protocolli 81
Protocollo ottimisticoTerza ParteTerza Parte
PKTP( PKB(M) )
FirmaB( PKTP( PKB(M) ) )
y = PKB(M)
PKTP( y ) ≠ PKTP( PKB(M) )oppure non ricevuto y
PKTP( y ) ≠ PKTP( PKB(M) )oppure non ricevuto y
FirmaB ( PK
TP( PKB (M) ) )
FirmaTP ( PK
B (M) )
Firma B( PK TP
( PK B(M) ) )
Protocolli 82
Protocollo ottimisticoTerza ParteTerza Parte
Firma A( K, H( E k
(M) ) )
PKTP( PKB(M) )
FirmaTP ( k, H( E
k(M) ) )
FirmaB( PKTP( PKB(M) ) )
Firma TP( k, H
( E k(M) ) )
y = PKB(M)
Decifratura y = PKB(M) PKTP( y ) = PKTP( PKB(M) )PKTP( y ) = PKTP( PKB(M) )?