emp-ag2pc
emp-ag2pc copied to clipboard
Overview of this repository
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:
- 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:
- Generated a circuit (with
innerprod -m
) - Used the boilerplate code from https://github.com/MPC-SoK/frameworks/blob/master/emp/ag_test/test/agmult3.cpp subsituting the circuit text
- 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
- 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.