Puncte:1

Care este diferența esențială dintre Garbled Circuit și Oblivious Transfer?

drapel au

Conform literaturii (https://en.wikipedia.org/wiki/Garbled_circuit), Oblivious Transfer permite unei părți A să dețină o funcție $f$ și o parte B care deține un indice i pentru a calcula împreună valoarea $f(i)$ păstrând în același timp intimitatea $f$ și $i$.

În opinia mea, OT este suficientă pentru arhivarea funcționalității criptografice a Garbled Circuit: permiterea calculului securizat de două părți, în care două părți care nu au încredere pot evalua împreună o funcție în raport cu intrările lor private, să spunem funcția $f(a,b)$ cu intrări $a$ și $b$.

Observa asta $f(a,b)$ poate fi tratată ca o funcție $f_a(b)$, deci a cărui evaluare urmează imediat prin utilizarea OT cu funcție $f_a()$ și index $b$. Se pare că nu este necesar să criptați și apoi să permutați întregul tabel de adevăr, ca în Garbled Circuit, dacă doriți doar să faceți calcule comune private.

Înțeleg greșit ceva?¼ Care sunt diferențele esențiale (sau avantajele) ale Garbled Circuit în comparație cu Oblivious Transfer?


Vă mulțumim pentru răspunsul detaliat @Mikero

În gândul meu anterior, calculul comun al funcției $f(a,b)$ cu intrare mare $b\în\{1,...,2^k\}$ poate fi implementat eficient de $k$ utilizări de 1-din-2 transferuri neglijate.

De exemplu, două milioane, Alice și Bob, de bani $b\în\{1,...,2^k\}$ vreau să văd cine este mai bogat. Prin ideea metodei dihotomiei, două milioane folosesc mai întâi protocolul de transfer neglijent pentru a face comparații aproximative în funcție de mărimea banilor lor. Și anume, folosesc 1-din-2 OT pentru a evalua împreună o funcție simplă $f_{2^{k-1}}\ (a, b)$, unde a (sau b) =0 reprezintă că Alice (sau Bob) are bani $<2^{k-1}$, iar a (sau b) =1 reprezintă că Alice (sau Bob) are bani $\geq2^{k-1}$. Functia $f_{2^{k-1}\ }(a, b)=0,1,2,3$ pentru cazul $a,b<2^{k-1}$, $a,b\geq2^{k-1}$, $a<2^{k-1}, b\geq2^{k-1}$, și $a\geq2^{k-1}, b<2^{k-1}$, respectiv. Acum, dacă banii lor pot fi despărțiți de $2^{k-1}$, atunci sarcina este terminată; în caz contrar, executați următoarea rundă de comparație brută de către OT pentru funcție $f_{2^{k-2} }\ $ sau $f_{2^{k-1}\ + 2^{k-2}}\ $ conform rezultatului în $\{0,1,2,3\}$ din ultimul VT.

Cu toate acestea, pentru a păstra confidențialitatea mărimii banilor lor (de exemplu, <$2^{k-1}$ sau $\geq2^{k-1}$), pare necesară criptarea rezultatului fiecărui OT. Poate că asta este ceea ce a făcut metoda circuitului deformat. Deci, în înțelegerea mea simplă, âGarbled circuit = transfer neglijent + Funcția de rupere ca circuit logic simpluâ. Principalul avantaj al circuitului deformat față de transferul neglijent nu constă în funcționalitate, ci mai degrabă în complexitatea comunicării și a calculului.

Există vreo referință mai detaliată pentru a compara complexitatea circuitelor OT și deformate

drapel us
Vă mulțumim că ați mutat întrebarea ulterioară în întrebarea principală aici.Vezi răspunsul meu actualizat.
Puncte:4
drapel us

Nu văd nicăieri pe pagina respectivă care să descrie transferul neglijent în modul în care ați descris dumneavoastră.

Transfer neglijent:

  • Alice ține două sfori $x_0, x_1$
  • Bob ține puțin $b$
  • Bob învață $x_b$ dar nu învață nimic despre $x_{1-b}$
  • Alice nu învață nimic despre $b$

Circuit deformat:

  • Când Alice garble un circuit boolean $f$, ea obține o mare colecție de texte cifrate $F$ („circuitul deformat”) și ea învață, de asemenea, două chei (etichete) pe fiecare fir al circuitului. Pe firul #$i$ ea învață $W_i^0$ care reprezintă fals pe acel fir și $W_i^1$ care reprezintă adevărat pe acel fir.
  • Dacă Bob știe circuitul confuz $F$ si pentru fiecare intrare sârmă $i$ a circuitului din care știe exact unul $\{ W_i^0, W_i^1\}$ atunci poate a evalua circuitul deranjat să învețe exact o etichetă pe fiecare fir al circuitului (nu doar firele de intrare). El învață eticheta „corectă” a firului (adică cea corespunzătoare comportamentului lui $f$) pe fiecare fir, în funcție de care dintre etichetele de intrare începe.
  • Pe măsură ce Bob evaluează circuitul deranjat, el nu învață dacă ține $W_i^0$ sau $W_i^1$ pentru orice fir $i$. Cu alte cuvinte, el nu știe dacă vreun fir din circuit poartă adevărat sau fals. El evaluează circuitul „orb”.

Dacă Alice și Bob doresc să evalueze o funcție utilizând circuite deformate, atunci Alice deranjează circuitul și trimite circuitul deranjat $F$ lui Bob. Dar Bob trebuie să învețe și pentru fiecare intrare sârmă $i$ în circuit, exact unul dintre $\{ W_i^0, W_i^1\}$. Atât Alice, cât și Bob au intrări la acest calcul.

  • Dacă firul #$i$ este unul dintre firele de intrare ale lui Alice, atunci ea îl poate trimite pe cel „corect” de la $\{W_i^0, W_i^1\}$, deoarece le știe pe ambele și își cunoaște bitul de intrare pe acel fir.

  • Dacă firul #$i$ este unul dintre firele de intrare ale lui Bob, trebuie să existe o cale pentru Bob alege pentru a învăța exact unul dintre $\{W_i^0, W_i^1\}$. Deoarece Bob alege între aceste valori în funcție de intrarea sa privată, Alice nu ar trebui să învețe pe care a ales-o. Transferul neglijent este folosit exact pentru acest pas. Pentru firul de intrare #$i$ aparținând intrării lui Bob, furnizează Alice $W_i^0$ și $W_i^1$ la un exemplu de transfer neglijent, iar Bob alege pe care dintre acestea să învețe.


Există variante de transfer neglijent unde are Alice $N$ șiruri și Bob alege unul dintre ele pentru a învăța. Dacă Alice și Bob vor să calculeze o funcție foarte simplă $f(a,b)$, unde sunt numai $N$ posibile intrări pentru Bob ($b \in \{1, \ldots, N\}$), atunci da, pot folosi transferul neglijent pentru a calcula funcția direct, așa cum sugerați dvs., fără circuite deranjate. Alice folosește $f(a,1), f(a,2), \ldots, f(a,N)$ ca intrări pentru transferul neglijent. Bob alege să învețe $b$a dintre acestea, care este $f(a,b)$.

Acest lucru funcționează doar când $N$ este foarte mic, deoarece necesită comunicare și calcul proporțional cu $N$. Sa nu uiti asta $N$ este numărul de intrări posibile pentru Bob. Dacă există un circuit în care are Bob $k$ fire de intrare, atunci are $N=2^k$ posibile intrări. Prin urmare, de obicei, Bob are prea multe intrări pentru a utiliza această abordare.


Răspuns la postarea editată:

Abordarea ta pentru problema milionarului nu este tocmai clară, așa că trebuie să ghicesc câteva lucruri.

Nu funcționează să dezvăluie informații parțiale despre intrări în timpul protocolului. Dacă Alice are intrarea 1, ea nu ar trebui să poată distinge între Bob care are intrarea 2 și intrarea $2^{20}$ -- dar aceste două intrări ar arăta foarte diferit dacă rezultatele comparațiilor ar fi dezvăluite în mod clar.

Având în vedere acest lucru, sugerați să criptați lucrurile cumva. Dar, în esență, propuneți o căutare binară. O căutare binară necesită să cunoașteți rezultatul comparațiilor anterioare pentru a decide ce comparație să faceți în continuare. Dacă criptați rezultatul comparațiilor, atunci nu este clar cum să procedați în rundele următoare.

O mare problemă cu propunerea dvs. este că este în mod inerent secvenţial. Părțile nu își pot cunoaște intrările în runda următoare până când nu primesc rezultate din runda anterioară. Prin urmare $k$ comparații de care aveți nevoie $\Theta(k)$ runde de comunicare. Comparați acest lucru cu o abordare bazată pe GC, care necesită întotdeauna un număr constant de runde de comunicare.

Cred că ai o conexiune conceptuală bună, totuși. Imaginează-ți funcția $f$ este foarte mic, astfel încât este posibil să scrieți întregul tabel de adevăr al $f$. Sa spunem $f : \{1,2,3,4\}^2 \la \{0,1\}$. Alice alege chei de criptare aleatorii $A_1, \ldots, A_4$ și $B_1, \ldots, B_4$. Ea criptează, de asemenea, tabelul de adevăr al $f$ la fel de $$\textsf{Enc}( A_1 \| B_1, f(1,1)), ~~ \textsf{Enc}( A_1 \| B_2, f(1,2)), ~~\ldots, \textsf{Enc}( A_i \| B_j, f(i,j)), ~~\ldots$$ A evalua $f$ pe intrările lor private, Alice poate trimite toate aceste texte cifrate lui Bob. Ea poate trimite corect $A_i$ valoare și pot folosi 1-din-4 OT pentru a-i permite lui Bob să învețe corect $B_j$ valoare. Acum Bob poate decripta exact unul dintre aceste texte cifrate, care va conține rezultatul corect al $f$.

Circuitele distorsionate sunt exact ceea ce obțineți atunci când luați această construcție simplă, dar în loc să criptați rezultatul final al funcției, criptați cheile pentru un alt gadget de același tip.

Maarten Bodewes avatar
drapel in
Bună Mikero, poți arunca o privire [aici](https://crypto.stackexchange.com/a/99546/1172)? Este un comentariu care a devenit mare și a fost postat ca răspuns.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.