Protocol de calcul confidențial

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 27 noiembrie 2017; verificările necesită 7 modificări .

În criptografie , un protocol de calcul confidențial (de asemenea, secure, secure sau secret multi-party calcul, de exemplu,  secure multi-party calcul ) este un protocol criptografic care permite mai multor participanți să efectueze un calcul care depinde de datele secrete de intrare ale fiecăruia dintre ei. , în așa fel încât niciun participant nu a putut obține informații despre intrarea secretă a altcuiva. Pentru prima dată, problema calculului confidențial a fost ridicată de Andrew Yao în 1982 în articolul [1] .  Doi milionari, Alice și Bob, vor să afle care dintre ei este mai bogat, în timp ce nu vor să dezvăluie valoarea exactă a averii lor. Yao a propus în articolul său o modalitate originală de a rezolva această problemă, care mai târziu a devenit cunoscută drept problema milionarilor . Mult mai târziu, în 2004, Yehuda Lindell și Benny Pinkas au oferit o dovadă riguroasă din punct de vedere matematic a corectitudinii protocolului lui Yao în [2] . Problema calculului confidențial este strâns legată de problema partajării secretelor .

Declarație formalizată a problemei

N participanți p 1 , p 2 , …, p N participă la calculul confidențial . Fiecare participant are date secrete de intrare d 1 , d 2 , …, respectiv d N. Participanții doresc să găsească valoarea F(d 1 , d 2 , …, d N ) , unde F este o funcție calculabilă a N argumente  cunoscute de toți participanții . Se presupune că printre participanți vor exista infractori semi-cinsti , adică cei care respectă cu fidelitate protocolul, dar încearcă să obțină informații suplimentare din orice date intermediare.

Cerințe de securitate

Cerințele de securitate pentru protocoalele de calcul confidențiale au de obicei cerințe de securitate diferite în funcție de situație. Iată principalele cerințe.

Un exemplu de soluție la problema milionarilor

Lăsați milionarii Alice și Bob să dorească să afle a cui avere este mai mare fără a dezvălui valoarea exactă a averilor lor. Pentru certitudine, să presupunem că Alice are i milion și Bob are j , unde 1<i și j<10 . În primul rând, Alice și Bob vor avea nevoie de un criptosistem puternic cu cheie publică , cum ar fi RSA [3] . Fie E a  o funcție de criptare arbitrară pentru cheia a , iar D a  funcția de decriptare a cheii private pentru cheia publică a . Să fie cheia publică a  lui Alice. Apoi protocolul arată astfel:

  1. Bob alege un număr întreg aleatoriu x din N biți și calculează în mod confidențial k=E a (x) ;
  2. Bob îi trimite lui Alice un număr k-j+1 ;
  3. Alice consideră confidențial valorile y u =D a (k-j+u) pentru u=1,2,…,10 ;
  4. Alice alege un număr prim aleator p din N/2 biți, astfel încât numerele z u =y u mod(p) să difere cu cel puțin 2 modulo p pentru tot u și trimite numărul p lui Bob;
  5. Alice trimite numerele z 1 , z 2 , …, z i urmate de numerele z i+1 +1, …, z 10 +1 ; numerele sunt luate modulo p;
  6. Bob, care știe câți bani are ( j ), compară numărul j cu numărul x mod p ales în primul pas, iar dacă sunt egali, atunci Bob trage concluzia că i ⩾ j , iar i < j altfel;
  7. Bob raportează rezultatul lui Alice.

Se poate observa că protocolul vă permite să determinați fără ambiguitate a cui stare este mai mare și, în același timp, participanții nu pot afla stările unul altuia.

Implementări

Există două abordări diferite pentru implementarea protocolului. Prima abordare se bazează de obicei pe partajarea secretă și lucrează la reprezentarea funcției calculate sub forma unui circuit aritmetic ( ing.  circuit aritmetic ), ca, de exemplu, în BGW (Ben-Or, Goldwasser și Wigderson) [ 4] și CCD (Chaum, Crepeau și Damgard [5] . Această abordare este de obicei aplicată atunci când se știe că majoritatea participanților sunt sinceri (ceea ce este posibil doar dacă numărul participanților este mai mare de doi). O altă abordare este reprezentarea funcției ca o diagramă logică . Această abordare a fost folosită de Andrew Yao la construirea unui circuit distorsionat (circuit distorsionat în engleză )  [ 6] , precum și în protocolul GMW (Goldreich, Micali și Wigderson) [7] .

Metoda schemei aritmetice este mai potrivită pentru efectuarea operațiunilor de adunare și înmulțire (unde participanții au părți ale secretului, iar secretul poate fi recreat doar dacă se primesc informații de la fiecare dintre participanți), dar este slab potrivită pentru efectuarea operațiilor de comparare. Această abordare a obținut un mare succes în proiectul SIMAP [8] .

Metoda circuitului logic efectuează adunări și înmulțiri cu o eficiență mai mică, dar poate efectua cu ușurință operații binare, cum ar fi comparațiile. Această a doua abordare, pe care se bazează sistemul cu două mâini al lui Andrew Yao , a fost implementată de Mulchy în sistemul fairplay [9 ] .  Acest sistem oferă, de asemenea, capacitatea de a implementa funcționalitatea necesară, reprezentată de un limbaj de programare de nivel înalt sub forma unei bucle logice, care este apoi interpretată de mediul de execuție și executată în siguranță. Există, de asemenea, un sistem „FairplayMP” [10] , care este o extensie a „Fairplay” în cazul a mai mult de doi participanți. Un avantaj semnificativ al sistemelor bazate pe metode cu circuite logice este că acestea se realizează într-un număr constant de schimburi de informații, în timp ce avantajul sistemelor bazate pe circuite aritmetice este capacitatea de a efectua operații aritmetice (adunare și înmulțire) foarte rapid.

Exemplu de protocol

Pentru simplitate, să presupunem că doi participanți participă la calcul, adică N=2 , iar participanții trebuie să calculeze funcția F .

Firul de intrare w 1 Firul de intrare w 2 Cablul de ieșire w 3 Tabel de calcul criptat

Aici înseamnă rezultatul criptării valorii x cu cheia k , și  respectiv - decriptarea textului cifrat y cu cheia k . Ar trebui să alegeți o schemă de criptare simetrică , care are o proprietate suplimentară: dacă încercați să decriptați textul cu cheia greșită, algoritmul returnează o eroare.

Semnificația acestui tabel este următoarea: dacă cunoaștem valorile criptate ale semnalului k 1 u k 2 pe firele de intrare ale supapei w 1 u w 2 , respectiv, atunci putem calcula valoarea semnalului criptat calculând valoarea pentru tot i =1...4 . În trei cazuri din patru, ar trebui să apară o eroare, iar în al patrulea rămas, vom obține valoarea criptată k 3 a semnalului la ieșirea porții.

Protocoale utilizate

Aplicație practică

Note

  1. Andrew Chi-Chih Yao: Protocols for Secure Computations (Extended Abstract) FOCS 1982: 160-164
  2. Yehuda Lindell, Benny Pinkas: A Proof of Yao's Protocol for Secure Two-Party Computation, Cryptology ePrint Archive, Raport 2004/175
  3. Soluție la problema milionarului Arhivat 19 mai 2008.
  4. M. Ben-Or, S. Goldwasser și A. Wigderson. Teoreme de completitudine pentru calcul distribuit non-criptografic tolerant la erori. În al 20-lea STOC, 1-10, 1988.
  5. P. Bogetoft, D. L. Christensen, I. Damgard, M. Geisler, T. Jakobsen, M. Kroigaard, J. D. Nielsen, J. B. Nielsen, K. Nielsen, J. Pagter, M. Schwartzbach și T. Toft. Calculul multipartit securizat are viață. În Criptografia financiară și securitatea datelor – FC 2009
  6. A. Yao. Cum să generați și să schimbați secrete. În 27th FOCS, 162-167, 1986.
  7. Goldreich, S. Micali și A. Wigderson. Cum să joci orice joc mental - O teoremă de completitudine pentru protocoale cu majoritate sinceră. În al 19-lea STOC, 218-229, 1987.
  8. P. Bogetoft, I. Damgard, T. Jakobsen, K. Nielsen, J. Pagter. şi T. Toft. O implementare practică a licitațiilor de calcul securizate bazate pe numere întregi cu mai multe părți. În Financial Cryptography and Data Security - FC 2006, Springer-Verlag LNCS 4107, 142-147, 2006.
  9. D. Malkhi, N. Nisan, B. Pinkas și Y. Sella. Fairplay este un sistem de calcul securizat în două părți. În Proc. al 13-lea Simpozion de securitate USENIX, 2004.
  10. A. Ben-David, N. Nisan și B. Pinkas. FairplayMP: un sistem de calcul securizat cu mai multe părți. În Computer and Communications Security - CCS 2008, ACM, 257-266, 2008.
  11. Pathak Rohit, Joshi Satyadhar, Advances in Information Security and Assurance, Springer Berlin / Heidelberg, ISSN 0302-9743 (Tipărit) 1611-3349 (Online), ISBN 978-3-642-02616-4 , DOI 10.7803/97803 -642-02617-1
  12. Rashid Sheikh, Brijesh Kumar și Durgesh Kumar Mishra, Privacy Preserving k-secure sum protocols, International Journal of Computer Science and Information Security, ISSN 1947-5500 (Online), Vol.6, No.2, nov. 2009