ABY icon indicating copy to clipboard operation
ABY copied to clipboard

Does PutB2AGate() work as a SIMD gate?

Open adriagascon opened this issue 7 years ago • 1 comments

Does PutB2AGate() work as a SIMD gate?

I have a circuit that implements a function involving some muxes, xors, and equality tests, and concludes with a multiplication. This is done with SIMD gates. Everything works great if I use a Boolean circuit. Now I want to do the last multiplication using arithmetic shares.

The problem is that the call to PutB2AGate on one wire messes up the result of that call on the other one. More concretely, the code below prints an array of "garbage", while if I comment out line 3 I see the correct value of variable srv_count_arith (circ and a_circ are a Boolean and an arithmetic circuit, respectively).

share *srv_count_arith;
share *cli_counts_arith;
cli_counts_arith = a_circ->PutB2AGate(cli_counts);
srv_count_arith = a_circ->PutB2AGate(srv_count);
circ->PutPrintValueGate(srv_count, "server value (bool)");
a_circ->PutPrintValueGate(srv_count_arith, "server value (arith)");

adriagascon avatar May 12 '17 14:05 adriagascon

We are experiencing the same problem when PutB2AGate is used twice in a circuit. Does anyone have a solution/explanation regarding this problem?

jpmcruz avatar May 17 '18 07:05 jpmcruz