Partajarea secretelor este un termen în criptografie , care este înțeles ca oricare dintre metodele de distribuire a unui secret între un grup de participanți, fiecare dintre care primește o anumită cotă. Secretul poate fi recreat doar de o coaliție de participanți din grupul original și cel puțin un număr cunoscut inițial dintre ei trebuie să fie inclus în coaliție.
Schemele de partajare a secretelor sunt utilizate în cazurile în care există o probabilitate semnificativă de compromis a unuia sau mai multor deținători de secrete, dar probabilitatea unei coluziune neloială de către o parte semnificativă a participanților este considerată neglijabilă.
Schemele existente au două componente: partajarea secretelor și recuperarea secretelor. Partajarea se referă la formarea unor părți ale secretului și distribuirea lor între membrii grupului, ceea ce permite împărțirea responsabilității pentru secret între membrii săi. Schema inversă ar trebui să asigure refacerea acesteia, sub rezerva disponibilității deținătorilor săi într-un anumit număr necesar [1] .
Caz de utilizare: Protocol de vot secret bazat pe partajarea secretă [2] .
Să existe un grup de oameni și un mesaj de lungime , format din caractere binare. Dacă ridicați aleatoriu astfel de mesaje binare care în total vor fi egale și distribuiți aceste mesaje între toți membrii grupului, se dovedește că va fi posibil să citiți mesajul numai dacă toți membrii grupului se reunesc [1] .
Există o problemă semnificativă într-o astfel de schemă: în cazul pierderii a cel puțin unuia dintre membrii grupului, secretul se va pierde iremediabil pentru întregul grup.
Spre deosebire de procedura de împărțire a secretelor, în care , în procedura de împărțire a secretelor, numărul de acțiuni care sunt necesare pentru a restabili secretul poate diferi de câte acțiuni este împărțit secretul. O astfel de schemă se numește schema de prag , unde este numărul de acțiuni în care a fost împărțit secretul și este numărul de acțiuni care sunt necesare pentru a restabili secretul. Ideile de circuite au fost propuse independent în 1979 de Adi Shamir și George Blakley . În plus, proceduri similare au fost studiate de Gus Simmons [3] [4] [5] .
Dacă coaliția de participanți este de așa natură încât au suficiente acțiuni pentru a restabili secretul, atunci coaliția se numește rezolvată. Schemele de partajare a secretelor în care coalițiile permise de participanți pot recupera secretul în mod unic, iar cele nerezolvate nu primesc nicio informație a posteriori despre valoarea posibilă a secretului, sunt numite perfecte [6] .
Ideea diagramei este că două puncte sunt suficiente pentru a defini o linie dreaptă , trei puncte sunt suficiente pentru a defini o parabolă , patru puncte sunt suficiente pentru a defini o parabolă cubică și așa mai departe. Pentru a specifica un polinom de grad , sunt necesare puncte .
Pentru ca secretul să fie restaurat numai de către participanți după separare, acesta este „ascuns” în formula unui polinom de grade peste un câmp finit . Pentru a restabili în mod unic acest polinom, este necesar să-i cunoașteți valorile în puncte și, folosind un număr mai mic de puncte, nu va fi posibilă restaurarea unică a polinomului original. Numărul de puncte diferite ale polinomului nu este limitat (în practică, este limitat de mărimea câmpului numeric în care se efectuează calculele).
Pe scurt, acest algoritm poate fi descris după cum urmează. Să fie dat un câmp finit . Reparăm diverse elemente non-nule non-secrete ale acestui câmp. Fiecare dintre aceste elemente este atribuit unui anumit membru al grupului. În continuare, este selectat un set arbitrar de elemente ale câmpului , din care este compus un polinom peste un câmp de grad . După obținerea polinomului, calculăm valoarea acestuia în puncte nesecrete și raportăm rezultatele membrilor corespunzători ai grupului [1] .
Pentru a recupera secretul, puteți utiliza o formulă de interpolare , cum ar fi formula Lagrange .
Un avantaj important al schemei Shamir este că este ușor scalabilă [5] . Pentru a crește numărul de utilizatori dintr-un grup, este necesar doar să adăugați numărul corespunzător de elemente nesecrete la cele existente, iar condiția pentru trebuie să fie îndeplinită . În același timp, compromisul unei părți a secretului schimbă schema de la -threshold la -threshold.
Două drepte neparalele dintr-un plan se intersectează într-un punct. Orice două plane necoplanare se intersectează într-o linie dreaptă și trei plane necoplanare din spațiu se intersectează, de asemenea, într-un punct. În general , n hiperplanuri n - dimensionale se intersectează întotdeauna într-un punct. Una dintre coordonatele acestui punct va fi secretă. Dacă secretul este codificat ca mai multe coordonate ale unui punct, atunci deja dintr-o parte a secretului (un hiperplan) va fi posibilă obținerea unor informații despre secret, adică despre interdependența coordonatelor punctului de intersecție.
Schema lui Blackley în trei dimensiuni: fiecare parte a secretului este un plan , iar secretul este una dintre coordonatele punctului de intersecție al planurilor. Două plane nu sunt suficiente pentru a determina punctul de intersecție. |
Cu ajutorul schemei lui Blackley [4] , se poate crea o schemă de partajare (t, n) -secretă pentru orice t și n : pentru a face acest lucru, trebuie să folosiți dimensiunea spațiului egală cu t și să dați fiecăruia dintre cei n jucători un hiperplan care trece prin punctul secret. Atunci orice t din n hiperplane se va intersecta în mod unic într-un punct secret.
Schema lui Blackley este mai puțin eficientă decât schema lui Shamir: în schema lui Shamir fiecare acțiune are aceeași dimensiune ca și secretul, în timp ce în schema lui Blackley fiecare acțiune este de trei ori mai mare. Există îmbunătățiri ale schemei lui Blakely pentru a-i îmbunătăți eficiența.
În 1983, Maurice Mignotte , Asmuth și Bloom au propus două scheme secrete de partajare bazate pe teorema chineză a restului . Pentru un anumit număr (în schema Mignotte acesta este secretul în sine, în schema Asmuth-Bloom este un număr derivat), resturile sunt calculate după împărțirea la o succesiune de numere, care sunt distribuite părților. Din cauza restricțiilor privind succesiunea numerelor, doar un anumit număr de părți poate recupera secretul [7] [8] .
Fie numărul de utilizatori din grup . În schema Mignotte, un anumit set de numere coprime în perechi este ales astfel încât produsul celor mai mari numere să fie mai mic decât produsul celui mai mic dintre aceste numere. Fie aceste produse egale și , respectiv. Numărul se numește pragul pentru schema construită peste mulțime . Ca secret, un număr este ales astfel încât relația să fie satisfăcută . Părți din secret sunt distribuite între membrii grupului după cum urmează: fiecărui membru i se dă o pereche de numere , unde .
Pentru a recupera secretul, trebuie să îmbinați fragmentele. În acest caz, obținem un sistem de comparații de forma , a cărui mulțime de soluții poate fi găsită folosind teorema chineză a restului . Numărul secret aparține acestui set și îndeplinește condiția . De asemenea, este ușor să arătați că, dacă numărul de fragmente este mai mic decât , atunci pentru a găsi secretul , este necesar să sortați ordinea numerelor întregi. Cu alegerea corectă a numerelor, o astfel de căutare este aproape imposibil de implementat. De exemplu, dacă adâncimea de biți este de la 129 la 130 de biți și , atunci raportul va fi de ordinul [9] .
Schema Asmuth-Bloom este o schemă Mignott modificată. Spre deosebire de schema Mignotte, ea poate fi construită în așa fel încât să fie perfectă [10] .
În 1983, Karnin, Green și Hellman au propus schema lor de partajare secretă , care se baza pe imposibilitatea de a rezolva un sistem cu necunoscute cu mai puține ecuații [11] .
În cadrul acestei scheme, vectorii -dimensionali sunt aleși astfel încât orice matrice de dimensiune compusă din acești vectori să aibă rang . Fie vectorul să aibă dimensiunea .
Secretul din circuit este produsul matricei . Acțiunile secretului sunt lucrări .
Având orice acțiuni, este posibil să se compună un sistem de ecuații liniare de dimensiune , în care coeficienții sunt necunoscuți . Rezolvând acest sistem, puteți găsi , iar având , puteți găsi secretul. În acest caz, sistemul de ecuații nu are o soluție dacă cotele sunt mai mici decât [12] .
Există mai multe moduri de a întrerupe protocolul circuitului de prag:
Există și alte posibilități de întrerupere care nu sunt legate de implementarea schemei: