Presentazione Secret Sharing

Transcript

Presentazione Secret Sharing
Secret Sharing
Massimo Giulietti
Mani in Pasta nella Scienza
Un primo esempio
Server di una banca
▽Secret Sharing – p.1
Un primo esempio
Server di una banca
Nostro numero di carta di credito:
2467 3623 3245 0989
▽Secret Sharing – p.1
Un primo esempio
Server di una banca
Nostro numero di carta di credito:
2467 3623 3245 0989
Soluzione:
2467 3623
Server A
3245 0989
Server B
▽Secret Sharing – p.1
Un primo esempio
Server di una banca
Nostro numero di carta di credito:
2467 3623 3245 0989
Soluzione:
2467 3623
Server A
3245 0989
Server B
Un hacker che violi uno dei due server dovrà
indovinare fra 108 possibilità
Secret Sharing – p.1
Un primo esempio
Soluzione migliore:
N1
N2
Server A
Server B
tali che
N1 + N2 = 2467 3623 3245 0989
▽Secret Sharing – p.2
Un primo esempio
Soluzione migliore:
N1
N2
Server A
Server B
tali che
N1 + N2 = 2467 3623 3245 0989
Soluzione ancora migliore: N1 e N2 tali che
N1 + N2 = 2467 3623 3245 0989
(mod 1016 )
▽Secret Sharing – p.2
Un primo esempio
Soluzione migliore:
N1
N2
Server A
Server B
tali che
N1 + N2 = 2467 3623 3245 0989
Soluzione ancora migliore: N1 e N2 tali che
N1 + N2 = 2467 3623 3245 0989
(mod 1016 )
Un hacker che violi uno dei due server dovrà
indovinare fra 1016 possibilità (le stesse di un hacker
che non violi nessun server)
Secret Sharing – p.2
Un primo esempio
E se un server diventasse inaccessibile alla banca?
▽Secret Sharing – p.3
Un primo esempio
E se un server diventasse inaccessibile alla banca?
Soluzione possibile:
N1
Server A
tali che
N1
N3
Server B
Server C
con due qualsiasi Ni , Nj si può ricostruire il numero
di carta
un qualsiasi Ni , da solo, non dà alcuna informazione
sul numero di carta
Secret Sharing – p.3
Altri esempi
Accesso a segreti militari: di n generali, almeno k
devono mettere insieme i loro codici parziali. (Accesso
a soglia).
▽Secret Sharing – p.4
Altri esempi
Accesso a segreti militari: di n generali, almeno k
devono mettere insieme i loro codici parziali. (Accesso
a soglia).
Accesso a dati sensibili di un’azienda: proprietario, 2
dirigenti, 3 impiegati. (Accesso multilivello)
Secret Sharing – p.4
Generalizziamo..
S : insieme dei possibili segreti
▽Secret Sharing – p.5
Generalizziamo..
S : insieme dei possibili segreti
X = {x1 , . . . , xn }: insieme di partecipanti
▽Secret Sharing – p.5
Generalizziamo..
S : insieme dei possibili segreti
X = {x1 , . . . , xn }: insieme di partecipanti
Γ ⊆ P(X): insiemi autorizzati
▽Secret Sharing – p.5
Generalizziamo..
S : insieme dei possibili segreti
X = {x1 , . . . , xn }: insieme di partecipanti
Γ ⊆ P(X): insiemi autorizzati
D dealer (o amministratore)
Secret Sharing – p.5
Generalizziamo..
x1
x2
x3
D s∈S
x4
..
.
..
.
xn
Generalizziamo..
C 1 ← x1
C 2 ← x2
C 3 ← x3
D s∈S
C 4 ← x4
..
.
..
.
C n ← xn
Generalizziamo..
C 1 ← x1
C 2 ← x2
C 3 ← x3
C 4 ← x4
..
.
D s∈S
..
.
C n ← xn
(s, f )


 s∈S

 f :X→C
f (xi ) = Ci
Generalizziamo..
C 1 ← x1
C 2 ← x2
C 3 ← x3
A∈Γ
C 4 ← x4
..
.
D s∈S
..
.
C n ← xn
(s, f )


 s∈S

 f :X→C
f (xi ) = Ci
Generalizziamo..
C 1 ← x1
C 2 ← x2
C 3 ← x3
A∈
/Γ
C 4 ← x4
..
.
D s∈S
..
.
C n ← xn
(s, f )


 s∈S

 f :X→C
f (xi ) = Ci
Secret Sharing – p.6
Assiomi di Secret Sharing Scheme
Una terna (S, C, F ) dà luogo ad un secret sharing
scheme per Γ se:
▽Secret Sharing – p.7
Assiomi di Secret Sharing Scheme
Una terna (S, C, F ) dà luogo ad un secret sharing
scheme per Γ se:
(S1)
Dato A ∈ Γ e date (s1 , f ), (s2 , g) ∈ F :
f|A = g|A ⇒ s1 = s2
▽Secret Sharing – p.7
Assiomi di Secret Sharing Scheme
Una terna (S, C, F ) dà luogo ad un secret sharing
scheme per Γ se:
(S1)
Dato A ∈ Γ e date (s1 , f ), (s2 , g) ∈ F :
f|A = g|A ⇒ s1 = s2
(S2)
Dato A ∈
/ Γ: per ogni funzione f : A → C , e per ogni
segreto s0 ∈ S , la cardinalità di
{(s, g) ∈ F | s = s0 , g|A = f|A }
non dipende da s0 .
Secret Sharing – p.7
Schemi buoni
Teorema.[Ito, Saito e Nishizeki, 1987] Per ogni
struttura di accesso esiste un Schema che la realizza.
▽Secret Sharing – p.8
Schemi buoni
Teorema.[Ito, Saito e Nishizeki, 1987] Per ogni
struttura di accesso esiste un Schema che la realizza.
Misura dell’efficienza di uno Schema:
log #C
tasso di informazione: ρ =
log #S
▽Secret Sharing – p.8
Schemi buoni
Teorema.[Ito, Saito e Nishizeki, 1987] Per ogni
struttura di accesso esiste un Schema che la realizza.
Misura dell’efficienza di uno Schema:
log #C
tasso di informazione: ρ =
log #S
Teorema. ρ ≥ 1
▽Secret Sharing – p.8
Schemi buoni
Teorema.[Ito, Saito e Nishizeki, 1987] Per ogni
struttura di accesso esiste un Schema che la realizza.
Misura dell’efficienza di uno Schema:
log #C
tasso di informazione: ρ =
log #S
Teorema. ρ ≥ 1
Definizione. Uno Schema si dice ideale se ρ = 1
(equivalentemente #S = #C ).
Secret Sharing – p.8
Una struttura non ideale
X = {a, b, c, d}
▽Secret Sharing – p.9
Una struttura non ideale
X = {a, b, c, d}
A ∈ Γ ⇔ a ∈ A e #A ≥ 2 oppure #A ≥ 3
▽Secret Sharing – p.9
Una struttura non ideale
X = {a, b, c, d}
A ∈ Γ ⇔ a ∈ A e #A ≥ 2 oppure #A ≥ 3
Teorema. Ogni secret sharing scheme per Γ è tale che
ρ ≥ 32
Secret Sharing – p.9
Accessi a soglia (n, k)
X = {x1 , . . . , xn }, Γ = {A ⊆ X | #A ≥ k}
▽Secret Sharing – p.10
Accessi a soglia (n, k)
X = {x1 , . . . , xn }, Γ = {A ⊆ X | #A ≥ k}
Interpolazione di Lagrange
F campo (es R o Zp , con p primo)
x1 , . . . , xk elementi distinti di F
y1 , . . . , yk elementi di F
▽Secret Sharing – p.10
Accessi a soglia (n, k)
X = {x1 , . . . , xn }, Γ = {A ⊆ X | #A ≥ k}
Interpolazione di Lagrange
F campo (es R o Zp , con p primo)
x1 , . . . , xk elementi distinti di F
y1 , . . . , yk elementi di F
Teorema. Esiste un unico polinomio P a coefficienti in
F con deg(P ) ≤ k − 1 e tale che P (xi ) = yi
Secret Sharing – p.10
Interpolazione di Lagrange
Si cerca di un polinomio
P (T ) = a0 + a1 T + . . . + ak−1 T k−1
che soddisfi P (xi ) = yi
▽Secret Sharing – p.11
Interpolazione di Lagrange
Si cerca di un polinomio
P (T ) = a0 + a1 T + . . . + ak−1 T k−1
che soddisfi P (xi ) = yi
Sistema lineare nelle incognite a0 , . . . , ak−1 .

k−1
a
+
a
x
+
.
.
.
+
a
x
= y1

0
1
1
k−1 1


 a0 + a1 x2 + . . . + a xk−1 = y2
k−1 2
..
.. ..

.
. .



= yk
a0 + a1 xk + . . . + ak−1 xk−1
k
▽Secret Sharing – p.11
Interpolazione di Lagrange
Si cerca di un polinomio
P (T ) = a0 + a1 T + . . . + ak−1 T k−1
che soddisfi P (xi ) = yi
Sistema lineare nelle incognite a0 , . . . , ak−1 .

k−1
a
+
a
x
+
.
.
.
+
a
x
= y1

0
1
1
k−1 1


 a0 + a1 x2 + . . . + a xk−1 = y2
k−1 2
..
.. ..

.
. .



= yk
a0 + a1 xk + . . . + ak−1 xk−1
k
Sistema di Cramer: ammette un’unica soluzione.
Secret Sharing – p.11
Interpolazione di Lagrange
Formula esplicita per i coefficienti di P (T )
Y T − xj
ℓi (T ) =
xi − xj
i6=j
▽Secret Sharing – p.12
Interpolazione di Lagrange
Formula esplicita per i coefficienti di P (T )
Y T − xj
ℓi (T ) =
xi − xj
i6=j
(
ℓi (xj ) = 0 i 6= j,
ℓi (xi ) = 1.
▽Secret Sharing – p.12
Interpolazione di Lagrange
Formula esplicita per i coefficienti di P (T )
Y T − xj
ℓi (T ) =
xi − xj
i6=j
(
ℓi (xj ) = 0 i 6= j,
ℓi (xi ) = 1.
P (T ) =
k
X
yi ℓi (T )
i=1
Secret Sharing – p.12
Schema di Shamir
0∈
/ X ⊆ F,
S=C=F
con F = Zp
▽Secret Sharing – p.13
Schema di Shamir
0∈
/ X ⊆ F,
S=C=F
con F = Zp
F ↔ {P polinomio di grado ≤ k − 1}
con
s = P (0),
Ci = P (xi )
▽Secret Sharing – p.13
Schema di Shamir
0∈
/ X ⊆ F,
S=C=F
con F = Zp
F ↔ {P polinomio di grado ≤ k − 1}
con
s = P (0),
Ci = P (xi )
Assioma (S1): t ≥ k chiavi parziali consentono di
ricostruire il segreto?
▽Secret Sharing – p.13
Schema di Shamir
0∈
/ X ⊆ F,
S=C=F
con F = Zp
F ↔ {P polinomio di grado ≤ k − 1}
con
s = P (0),
Ci = P (xi )
Assioma (S1): t ≥ k chiavi parziali consentono di
ricostruire il segreto?
Assioma (S2): t < k chiavi parziali consentono di
avere informazioni sul segreto? Per ogni possibile
segreto, si hanno #F k−t−1 regole compatibili.
Secret Sharing – p.13
Esempio
Proteggiamo un PIN con uno schema di Shamir di tipo
(4, 3)
▽Secret Sharing – p.14
Esempio
Proteggiamo un PIN con uno schema di Shamir di tipo
(4, 3)
Sia s = 3042. Sia F = Zn con n = 10007
▽Secret Sharing – p.14
Esempio
Proteggiamo un PIN con uno schema di Shamir di tipo
(4, 3)
Sia s = 3042. Sia F = Zn con n = 10007
Regola di distribuzione: P (T ) = 3042 + 800T + 1200T 2
▽Secret Sharing – p.14
Esempio
Proteggiamo un PIN con uno schema di Shamir di tipo
(4, 3)
Sia s = 3042. Sia F = Zn con n = 10007
Regola di distribuzione: P (T ) = 3042 + 800T + 1200T 2
X = {1, 2, 3, 4} ⊂ F ,
P (1) = 5042,
P (2) = 9442,
P (3) = 6235,
P (4) = 5428
▽Secret Sharing – p.14
Esempio
Proteggiamo un PIN con uno schema di Shamir di tipo
(4, 3)
Sia s = 3042. Sia F = Zn con n = 10007
Regola di distribuzione: P (T ) = 3042 + 800T + 1200T 2
X = {1, 2, 3, 4} ⊂ F ,
P (1) = 5042, P (2) = 9442, P (3) = 6235, P (4) = 5428
Q
P3
P3
Q
−xj
j
P (0) = i=1 P (i) j6=i xi −xj = i=1 Ci j6=i x−x
i −xj
▽Secret Sharing – p.14
Esempio
Proteggiamo un PIN con uno schema di Shamir di tipo
(4, 3)
Sia s = 3042. Sia F = Zn con n = 10007
Regola di distribuzione: P (T ) = 3042 + 800T + 1200T 2
X = {1, 2, 3, 4} ⊂ F ,
P (1) = 5042, P (2) = 9442, P (3) = 6235, P (4) = 5428
Q
P3
P3
Q
−xj
j
P (0) = i=1 P (i) j6=i xi −xj = i=1 Ci j6=i x−x
i −xj
P (0) = 5042 ·
6
2
+ 9442 ·
3
−1
+ 6235 · 1 = 3042
Secret Sharing – p.14
Esempio
Un malintenzionato che ci rubi due chiavi?
▽Secret Sharing – p.15
Esempio
Un malintenzionato che ci rubi due chiavi?
I polinomi tali che P (1) = 5042 e P (2) = 9442 sono
a0 + (5005a0 + 5363)X + (5003a0 + 9686)X 2 ,
con a0 ∈ F
▽Secret Sharing – p.15
Esempio
Un malintenzionato che ci rubi due chiavi?
I polinomi tali che P (1) = 5042 e P (2) = 9442 sono
a0 + (5005a0 + 5363)X + (5003a0 + 9686)X 2 ,
con a0 ∈ F
Ogni segreto a0 è equiprobabile per lui!
Secret Sharing – p.15
Applicazioni commerciali
Nightingale della RSA Security
BestCrypt disponibile gratuitamente online
Secret Sharing – p.16