Sincer să fiu, nu sunt 100% familiarizat cu prezentarea originală din RB89, dar au introdus mai multe tehnici care au fost folosite în mai multe lucrări ulterioare, iar astăzi există un fel de versiune simplificată (în termeni moderni) a secretului robust. -schema de partajare acolo. De exemplu, o descriere de nivel înalt poate fi găsită în pagina 3 Aici.
Pe scurt, scopul este de a lua un secret $s\in\mathbb{F}$ și distribuiți-l între $n$ petreceri $P_1,\ldots,P_n$ astfel încât, mai târziu, părțile să-și poată reconstrui acest secret reciproc, garantând în același timp că, chiar dacă unele $t$ partide corupte cu $t<n/2$ trimite valori incorecte, părțile oneste (adică necorupte) pot obține în continuare secretul subiacent. Acest lucru se realizează după cum urmează:
Dealerul folosește împărtășirea tradițională a secretelor Shamir pentru a obține părți din secret $(s_1,\ldots,s_n)$. Dacă $t<n/2$, atunci aceste acțiuni oferă eroare detectata, adică o parte care primește aceste acțiuni, unde $t$ dintre ele ar putea fi modificate din cauza comportamentului contradictoriu, poate afla dacă secretul a fost sau nu falsificat, dar, în cazul în care există erori, partea dată nu le poate „remedia” pentru a reconstrui secretul corect. Acest lucru este insuficient pentru partajarea solidă a secretelor.
Dealerul prelevează perechi uniform aleatoriu $(\alpha_{ij},\beta_{ij})\in\mathbb{F}^2$ și calculează $\tau_{ji} = \alpha_{ij}\cdot s_j + \beta_{ij}$ pentru fiecare pereche $i,j\în[n]$ (Aici $[n] = \{1,\ldots,n\}$). După cum vom vedea, scopul acestor date suplimentare este acela de a se asigura că o parte care primește nu numai că poate detecta dacă acțiunile au fost modificate, ci de fapt identifica cele incorecte, prin urmare filtrul pe cele corecte, ceea ce duce la reconstruirea secretului corect.
Dealerul trimite $\sigma_i = (s_i, \{(\alpha_{ij},\beta_{ij})\}_{j\in[n]}, \{\tau_{ij}\}_{j\in[n ]})$ la fiecare parte $P_i$. În cuvinte: fiecare $P_i$ primește o cotă $s_i$ plus o pereche de chei $(\alpha_{ij},\beta_{ij})$ pentru fiecare cealaltă parte. În plus, $P_i$ primește o „versiune autentificată a $s_i$„folosind cheile fiecărei părți.
Să zicem că o petrecere $P_j$ ar trebui să învețe secretul. În acest scop, părțile $P_i$ pentru $i\în[n]\setminus\{j\}$ trimite $P_j$ valorile lor $(s_i',\tau_{ij}')$ (dacă $P_i$ este sincer, atunci $s_i' = s_i$ și $\tau_{ij}' = \tau_{ij}$, dar o parte coruptă poate trimite valori incorecte) și $P_j$ verificări, folosind propria sa cheie $(\alpha_{ji},\beta_{ji})$, acea $\tau_{ij}' = \alpha_{ji}\cdot s_i' + \beta_{ji}$.
Ca exercițiu, se poate verifica dacă $s_i'\neq s_i$, atunci probabilitatea ca această ecuație să fie valabilă este de cel mult $1/|\mathbb{F}|$ (aceasta folosește faptul că $P_i$ nu cunoaste cheia $(\alpha_{ji}, \beta_{ji})$, care este aleatoriu), deci, atâta timp cât câmpul este suficient de mare, $P_j$ va fi capabil să filtreze acțiunile greșite și, prin urmare, să reconstruiască secretul din cele corecte rămase.
Te ajută asta cumva cu întrebările concrete pe care le-ai avut? Simțiți-vă liber să trimiteți orice comentariu dacă aveți nevoie de clarificări într-o anumită direcție.