Ce înseamnă partajarea secretelor?
Partajarea secretelor reprezintă o metodă prin care acesta se împarte în mai multe bucăți, numite subsecrete, care apoi sunt distribuite unor utilizatori. Cu ajutorul unui anumit număr stabilit de utilizatori autorizați, fiecare având câte o parte din mesaj, secretul initial poate fi recuperat.
Deoarece secretul partajat nu poate fi descoperit fără ajutorul altor participanți, securitatea oferită face această metodă de partajare să se preteze la diferite situații unde spargerea secretului poate avea consecințe grave, precum codul de lansare al unor rachete nucleare sau parole are serverelor unei corporații.
Shamir Secret Sharing, formulat de Adi Shamir, este printre primii algoritmi de partajare a secretelor în criptografie. Acesta se bazează pe interpolare polinomială, adică pe ideea că k puncte sunt suficiente pentru a determina forma unui polinom de grad mai mic sau egal decât k-1. De exemplu, 2 puncte sunt suficiente și necesare pentru a determina ecuația unei drepte, 3 puncte sunt suficiente și necesare pentru a determina o parabolă și așa mai departe.
Pentru înțelegerea mai ușoară a acestui concept, sugerez vizionarea videoclipului cu adresa următoare:
https://www.youtube.com/watch?v=TQ-DsEZBuQY
formulare matematică
Presupunem că punctele (x1,y1), (x2,y2),…, (xk,yk), cu fiecare xi diferit față de ceilalți. Prin urmare există și este unic un singur polinom de grad k-1 P() cu proprietatea că P(xi)=yi, pentru oricare ar fi i cuprins între 1 și k. Fie secretul S un număr.
Pasul următor este să calculăm valoarea polinomului P în toate numerele naturale de la 1 la n, în modul următor: S1=P(1), S2=P(2), …, Sn=P(n).
Polinomul este de forma: , iar coeficienții , …, sunt aleși în mod aleatoriu. Secretul nostru este reprezentat de evaluarea polinomului în x=0.
Fiecărui participant îi este oferit un punct întreg cu valori între 1 și n, și valoarea polinomului în punctul respectiv. Având k perechi de forma (xi,yi), putem obține a0, adică secretul inițial.
Acest exemplu ilustrează ideea de bază a algoritmului de partajare secretă formulat de Adi Shamir. Însă, calculele din acesta sunt făcute pe baza aritmeticii întregi, nu folosind conceptul de aritmetică a grupurilor finite. Astfel, nu este oferită securitatea maximă și nu reprezintă un exemplu fidel al schemei lui Shamir, dar a fost folosit pentru înțelegerea ușoară a acesteia.