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