emp-ag2pc icon indicating copy to clipboard operation
emp-ag2pc copied to clipboard

Overview of this repository

Open evilpoke opened this issue 7 months ago • 1 comments

Disclaimer ! ! I couldn't find a documenation for the toolkit library EMP-tool and the emp-ag2pc only has a paper (which I am currently still reading). Because of a lack of docs and me not really having a very deep understanding of cpp I thus also have trouble understanding the code examples. If you think that both questions below I can answer easily after I have read the paper and listened to Wangs talk, you can also just tell me that. If you otherwise do not think that, then I would really appreciate an answer :) I really would just like to know into what I would like to invest my time into to be able to answer the below questions:


Question 1: (closely related to Q2 below)

How do i get the sample code of an SoK paper referenced here (which computes the dot product of two vectors) run in a malicious setting (so emp-ag2pc) with arbitrary input?

What i already tried:

  1. I compiled this file https://github.com/MPC-SoK/frameworks/blob/master/emp/sh_test/test/innerprod.cpp with non-zero hardcoded input: Executed was actually just this part:
  2. Generated a circuit (with innerprod -m)
  3. Used the boilerplate code from https://github.com/MPC-SoK/frameworks/blob/master/emp/ag_test/test/agmult3.cpp subsituting the circuit text
  4. Compiled, executed, got this:
[1] 1128
connected
./innerprod.circuit.txt
connected
./innerprod.circuit.txt
160 160 16 2602
160 160 16 2602
one time:	1	29461
one time:	2	30879
ABIT	3681
check	1509
permute	476
inde:	1	6023
inde:	2	4668
dep:	2	1279
input size: max 160	160
input for 2: 0
dep:	1	1367
input size: max 160	160
input for 1: 0
online:	1	12
0 no match GT!
1 no match GT!
2 no match GT!
[...]
2589 no match GT!
2600 no match GT!
2601 no match GT!
online:	2	2677
[1]+  Done                    ./bin/customluncher 1 12345
  1. Among this stuff, i don't see my expected result printed.

I get a similar output when I just execute the build from https://github.com/MPC-SoK/frameworks/blob/master/emp/ag_test/test/agmult3.cpp as is.

Question 2 (related to Q1)

Now looking at this sample file:

What (on a high level) is twopc.function_independent(); and twopc.function_dependent(); and twopc.online(in, out); doing.

evilpoke avatar Dec 04 '23 20:12 evilpoke