Descrierea de la pagina 14 este confuză și pentru mine.
Cred că lucrul important de remarcat este că lucrarea propune utilizarea unui protocol de „dezvăluire condiționată a secretelor”, citând [AIR01].
Deci, când schița spune:
Alice dezvăluie $W_a$ lui Bob dacă $O_1 = O_2$, și o valoare aleatorie $r_a \in \{0, 1\}^{|W_a|}$ in caz contrar.
..cuvântul „dezvăluie” este probabil menit să se refere la un protocol de divulgare condiționată, nu doar la trimitere $W_a$.
Dacă Alice trimite $W_a$ pentru Bob, atunci ai dreptate, Bob poate afla ieșirea circuitului lui Alice, care este mai mult de un pic de scurgere.
Au existat multe lucrări bazate pe această paradigmă clasică de execuție duală.
Pe baza acestor lucrări, aș recomanda următorul mod foarte simplu de a efectua etapa finală a execuției duble, atâta timp cât sunteți de acord cu un oracol aleatoriu.
În ceea ce privește notația, lăsăm $[x]_A$ denotă o codificare deturnată a ieșirii $x$, într-o codificare aleasă de Alice.
- Alice evaluează circuitul lui Bob pentru a obține rezultate $O_1$ și producția sa confuză $[O_1]_B$. Alice știe codificarea pe care a folosit-o pentru propriile ieșiri ale circuitului, astfel încât să poată și calcula $[O_1]_A$
- Bob evaluează circuitul lui Alice pentru a obține rezultate $O_2$ și codificarea sa confuză $[O_2]_A$. Bob știe codificarea pe care a folosit-o pentru propriile sale circuite de ieșire, astfel încât să poată și calcula $[O_2]_B$
- Alice calculează $h_A = H( [O_1]_A, [O_1]_B )$ și îi trimite lui Bob.
- Bob calculează $h_B = H( [O_2]_A, [O_2]_B )$. Dacă $h_A = h_B$ el acceptă rezultatul $O_2$, altfel avorta.
Dacă Alice este sinceră și Bob este corupt, Bob poate învăța doar o singură ieșire confuză $[\cdot]_A$ sub codificarea lui Alice, prin proprietatea de autenticitate a circuitului confuz al lui Alice.
Deci Bob nu poate interoga $H$ pe orice codificare validă $[x]_A$ în afară de $[O_2]_A$.
Dacă $O_1 \ne O_2$ atunci Bob nu poate interoga niciodată $H$ în același punct în care a făcut-o Alice, deci valoarea ei $h_A$ lui Bob pare uniform aleatoriu.
Adică, nu scurge nicio informație despre $O_1$ în afară de faptul că $O_1 \ne O_2$.
M-am concentrat pe cum să-l conving pe Bob că rezultatul este corect.
Pentru a o convinge și pe Alice, trebuie să faci aceeași comparație hash în ambele direcții.
Dar nu puteți folosi exact aceleași apeluri de funcție hash în ambele direcții -- utilizați un nonce diferit pentru „apeluri hash pentru a convinge Alice” vs „apeluri hash pentru a-l convinge pe Bob”.