Puncte:1

Cum să setați în siguranță valori constante în circuitele deformate?

drapel tr

Să presupunem că există niște valori constante care trebuie setate în interiorul circuitului. Modul naiv este de a trece pur și simplu constantele necesare ca intrări în circuit. Dar asta pare o risipă.

Care este modalitatea corectă de setare (adică de codificare hard) a valorilor constante în circuitele deformate?

Puncte:0
drapel us

Voi presupune că aceste constante hard-coded sunt publice (cunoscute atât pentru deformator, cât și pentru evaluator). Există câteva opțiuni:

  1. Tratați constantele ca intrări suplimentare în circuit, așa cum sugerați. Rețineți că firele de intrare pot fi reutilizate pentru mai multe porți, așa că aveți nevoie doar de una singură Adevărat și fals fir pentru întregul circuit.Cele mai multe scheme de fals sunt suportate nu porți gratuit, așa că de fapt aveți nevoie doar de o constantă Adevărat sârmă. În plus, se dovedește că puteți lua oricând Adevărat eticheta firului să fie șirul tuturor zerourilor, fără pierderea generalității. Combinând toate aceste observații, firele de intrare extra constante nu adaugă niciun cost circuitului.

  2. Propagați constante prin circuit. De exemplu, o poartă y=ȘI(x,adevărat) devine just y=x, ceea ce înseamnă că puteți înlocui y fir prin X în orice porți din aval care folosesc y ca intrare. O poartă y=ȘI(x,fals) devine y=fals, și puteți propaga din nou y=fals în aval în porţi care folosesc y ca intrare. Făcând acest lucru, veți vedea că multe porți în aval de constanta hard-coded pot fi pur și simplu eliminate în întregime din circuit. Acest proces nu are nimic de-a face cu deformarea, ci doar simplifică circuitul boolean bazat pe intrări hard-coded.

În cazul în care constantele sunt cunoscute doar de către deformător, atunci scopul este de a simplifica circuitul/deformarea în timp ce se ascunde acele constante.

Cele mai multe scheme de deconformitate (și cu siguranță cele de vârf) susțin porți care absorb liber nu porți, ceea ce înseamnă că poți deranja și(nu(x),y), și(x,nu(y)), ... porți pentru același cost ca garbling an și Poartă. De fapt, aceste scheme de fals ascund existența acestora nu porti. Folosind această observație, puteți face în continuare numărul 1 de sus. Dacă trebuie să codificați o poartă y=și(x,fals) atunci îți poți hrăni single-ul Adevărat fir de intrare într-o poartă a formei y=și(x,NU(adevărat)) în timp ce ascunde prezenţa acestuia nu (adică, ascunderea dacă poarta a fost codificată cu a Adevărat sau fals).

Cu toate acestea, vă puteți descurca puțin mai bine folosind „semi-poarta deconformabilă” din construcția semi-portilor. Acest lucru vă permite să deranjați și (x, adevărat) sau și (x, fals) poarta, în timp ce ascundeți care dintre ele este falsă, pentru jumătate din costul unui cu drepturi depline și-Poartă.

walter7x avatar
drapel tr
Mulțumesc @Mikero, în cazul meu folosesc BHKR13 (AES cu cheie fixă) + FreeXOR + GRR3. Constantele sunt publice. Opțiunea 1 (introducerea unui fir adevărat și a unui fir fals) este cea mai atractivă, totuși sunt îngrijorat că, dacă de ex. doi 0 biți ai constantei trebuie să fie XOR unul cu celălalt în interiorul circuitului, aceasta înseamnă XORing același fir cu el însuși, ceea ce va avea ca rezultat label0 = 0 și label1 = delta circuitului. Trebuie să mă asigur că circuitul este aranjat astfel încât label1 să nu ajungă să fie o etichetă de ieșire a circuitului? Sau mi-a fost dor de ideea ta?
drapel us
Este adevărat că o poartă `y xor y` dă false, inclusiv cazul în care y este codificat. Cu free-xor, firele de ieșire ale acestei porți sunt într-adevăr 0 și $\Delta$. Deoarece este imposibil ca această poartă să dea output=true, securitatea obișnuită vă spune că este imposibil ca evaluatorul să învețe eticheta adevărată a firului $\Delta$. Când te gândești la asta, evaluatorul doar scoate o etichetă de sârmă de la sine, ceea ce ar putea face chiar dacă nu există o astfel de poartă xor în circuit -- deci, dacă aceste tipuri de porți au scurs $\Delta$, atunci un evaluator ar putea întrerupe orice circuit prin simpla imaginare a unei astfel de poartă.
walter7x avatar
drapel tr
Deci, ar fi posibil, în loc să furnizeze o intrare adevărată și una falsă circuitului, să 1) să luăm orice fir de intrare non-constant, 2) să-l xor cu sine pentru a obține firul x = fals, 3) să setați firul y = NU (x) = adevărat, 4) folosiți firele x și y pentru a seta orice valori constante?
drapel us
Da, ar funcționa și asta și ar fi o modalitate echivalentă de interpretare a abordării „lasă intrarea constantă `fals` să aibă o etichetă de fir cu toate zerourile”.

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.