aicis/fresco

How to use SPDZ: Alternative to DUMMY preprocessing?

mvonmaltitz opened this issue · 5 comments

I would like to use the SPDZ implementation provided by FRESCO.
SPDZ uses an offline phase for preprocessing in order to provide an efficient online phase for computation.
Question 1: Is it right, that using DUMMY as preprocessing strategy influences the performance of the online phase negatively?
Question 2: What technical steps do I have to do in order to let FRESCO execute SPDZ as intended (ie. a real preprocessing phase and probably a faster online phase)?

My goal is is use SPDZ in FRESCO as realistically as currently possible.
I already considered #34 and #112 and also did not find anything insightful in the documentation.

Thank you in advance!

As to question 1: The dummy preprocessing strategy is simply simulating having a real preprocessing strategy. It just makes the preprocessing material locally on the fly. The way it does so, should be pretty simple, so it shouldn't really have large impact on performance.

As to question 2: You need to setup the spdz resource pool to use the SpdzMascotDataSupplier. This may be a bit tricky. You could have a look on AbstractSpdzTest and see how it is set up for tests in the createResourcePool method. The result should be that MASCOT will be used to generate the preprocessed material.

Closed this issue, as there does not seem to be any follow up questions.

If you need more help, please let us know.

Thank you for your timely answer, and sorry for my delay.
So as a takeaway I read that if I currently execute FRESCO with SPDZ and dummy preprocessing I already get the maximum speed SPDZ can currently achieve in FRESCO.
What is the downside of the dummy preprocessing then compared to MASCOT or Overdrive? Is it done in an insecure way?

Yes, the dummy preprocessing is done in a completely insecure way. It's mainly meant for testing and demo's.

With preprocessing such as MASCOT or Overdrive, you may be able to do the preprocessing in advance and then save the resulting preprocessed material to use later in the online computation (#314 is working to support this). In that case the online computation would theoretically perform similar to when using the dummy preprocessing. Of course, doing the preprocessing would take much longer than the online computation.

I am closing this again. Let us know if there are any follow up questions.