Closed sandy9999 closed 1 year ago
Mohassel and Rindal propose two conversion methods that are captured by -Z 2
and -Z 3
. Without any parameter no mixed circuit is used but an adapted version of the following: https://www.researchgate.net/profile/Sebastiaan-Hoogh/publication/225092133_Improved_Primitives_for_Secure_Multiparty_Integer_Computation/links/0c960533585ad99868000000/Improved-Primitives-for-Secure-Multiparty-Integer-Computation.pdf
-X
and -Y
are captured by the following paper: https://eprint.iacr.org/2020/338
All variants use the following function: https://github.com/data61/MP-SPDZ/blob/fd42b4a8b233d1f9dfa699a776518d0069b775ff/Compiler/comparison.py#L84C1-L105C1
You can see a branch on use_split()
reflecting the use of -Z
. The branch on -X
/-Y
happens in the masking here: https://github.com/data61/MP-SPDZ/blob/fd42b4a8b233d1f9dfa699a776518d0069b775ff/Compiler/comparison.py#L276C1-L288C1
Thank you! This helps.
I'm trying to figure out the Secure Comparison protocol used in Decision Tree Training (Hamada et al.) based on Replicated Sharing Scheme.
I found a related issue: https://github.com/data61/MP-SPDZ/issues/924 . Quoting from the paper linked here,
This should mean that Local Share Conversion is enabled. But I tried that with:
./compile.py -Z 2 -R 64 breast_tree
and the communication numbers differ from./compile.py -R 64 breast_tree (Mohassel Rindal version)
I also tried the other Mixed Circuit settings such as:
./compile.py -Z 3 -R 64 breast_tree
./compile.py -Y -R 64 breast_tree
and
./compile.py -X -R 64 breast_tree
But these also have different communication numbers.
Which setting of Mixed Circuits is enabled then? Which is the comparison protocol being used? Can I get both paper and code link for the same?