data61 / MP-SPDZ

Versatile framework for multi-party computation
Other
869 stars 272 forks source link

Application of MP-SPDZ #533

Closed zlemon819 closed 2 years ago

zlemon819 commented 2 years ago

hi, I note that all cryptography primitives are tested within compiled virtual machine by running .mpc file , if i want to use the library for practical secure data process, whether to write the corresponding .mpc files and compile the specific machines be the only way to achieve the goal?

Thank you.

zlemon819 commented 2 years ago

Furthermore, is there any project to which MP-SPDZ has been applied so far?

mkskeller commented 2 years ago

There is a C++ interface, but it's rather basic because a lot of the functionality is within the compiler: https://mp-spdz.readthedocs.io/en/latest/low-level.html

MP-SPDZ is used as a backend for the Carbyne Stack: https://github.com/carbynestack/ Furthermore, Google Scholar lists paper citing the MP-SPDZ, a significant portion of which mention using MP-SPDZ for benchmarks: https://scholar.google.co.uk/scholar?oi=bibs&hl=en&cites=8763197165388229467&as_sdt=5

zlemon819 commented 2 years ago

There is a C++ interface, but it's rather basic because a lot of the functionality is within the compiler: https://mp-spdz.readthedocs.io/en/latest/low-level.html

Thank you, mkskeller, it helps a lot. but i wonder if 【Utils/paper-example.cpp】 could be tested? If yes, could you guide the instructions?

Further, how to understand "a lot of the functionality is within the compiler", could you specify some examples?

mkskeller commented 2 years ago

You could run ./paper-example.x 0 2 MASCOT & ./paper-example.x 1 2 MASCOT for the MASCOT protocol with two parties. Other protocol options are Shamir, MalShamir, Semi2k, SPDZ2k, and CowGear.