Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
Basit
@basitkhurram
ooh, that would be helpful
n1v0lg
@n1v0lg
certainly not spam, it's nice when people are using your framework
Basit
@basitkhurram
I've been using the following:
@misc{fresco,
  author = {Alexandra Institute FRESCO Team},
  title = {FRamework for Efficient Secure COmputation (FRESCO)},
  howpublished = {\url{https://github.com/aicis/fresco}},
  year = "2019"
}
n1v0lg
@n1v0lg
cool, that looks good
Basit
@basitkhurram
Hey, I noticed that there's some work in progress for getting Overdrive to work
Any idea on whether you will be using TopGear too (https://eprint.iacr.org/2019/035) ?
And are there any similar ideas for improving TinyTables preprocessing times?
n1v0lg
@n1v0lg
Hey, that project is on hold for now. We were mostly interested in low gear since our use case has few parties. Not sure about tiny tables, will have to check!
Basit
@basitkhurram
cool
also, do I need to make code changes to generate mascot data?
I noticed something about using a CLI to generate it, similar to how you can use tinytablesprepro via CLI
but the mascot cli functionality was reverted?
(starting on that loc)
Basically, you need to set up a SpdzMascotDataSupplierfor your data supplier
Basit
@basitkhurram
okay, I think I've got most of it
but I'm not sure how I can instantiate the following:
      NetManager otGenerator,
      NetManager tripleGenerator,
      NetManager expPipeGenerator
Peter Sebastian Nordholt
@GuutBoy
Hey 👋
Were any of you at TPMPC?
I wasn’t but I saw this tweet https://twitter.com/dragosrotaru/status/1140914351269916672?s=21 and just wanted to suggest adding FRESCO to that project.
Peter Sebastian Nordholt
@GuutBoy
I already wrote the sample programs required (https://github.com/aicis/fresco-samples), but for some reason did not submit it yet. I think there was some issue with mascot or something.
n1v0lg
@n1v0lg
@GuutBoy Hey! Tore is at TPMPC, and agreed we should add FRESCO to that repo. I'll take a look next week and, hopefully, sort out the Mascot issue.
Peter Sebastian Nordholt
@GuutBoy
👍
Did he bring FRESCO stickers? 😋
n1v0lg
@n1v0lg
haha yep a whole roll of them
Bar-Ilan will be covered in FRESCO stickers by the end of the week
Tore Frederiksen
@jot2re
Yep, I actually added a todo about discussing how to add Fresco here ;)
Peter Sebastian Nordholt
@GuutBoy
What was the most exciting stuff at TPMPC this year, Tore?
In your opinion
Tore Frederiksen
@jot2re
There were several talks about preprocessing over rings and several talks about moving further into software practicality of MPC through frameworks and software engineering
Fable95
@Fable95
Hey, I've been playing around with your framework but I am generally new to MPC.
I have currently built a test program with numerical advanced numerical and comparison operations using spdz.
Yesterday I also managed to integrate the SpdzMascotDataSupplier, which obviously slowed down my code.
After some analysis I found out that 90% of the additional time is due to the Comparison operation compareLEQ.
I just wondered if this is to be suspected, if I am doing something wrong or if there is a way around it?
Peter Sebastian Nordholt
@GuutBoy
Probably not. Comparison is rather expensive in arithmetic MPC.
Fable95
@Fable95
Alright, thanks for the quick response. :)
Peter Sebastian Nordholt
@GuutBoy
You’re welcome 😊. I mean, it’s possible that it could be optimized, but in general comparison is more expensive than say multiplication in all arithmetic MPC
n1v0lg
@n1v0lg
One thing that comes to mind is reducing the modulus bit length and max bit length to 128 and 64 respectively. That should noticeably speed up your overall application. It may or may not give you enough precision (depending on your concrete computation). If you start seeing incorrect outputs as a result it means that your modulus does have to be bigger. The modulus bit length and max bit length are set on the SpdzResourcePool class.
Fable95
@Fable95
Ah thanks for the input, I am actually already setting those values over command line trying to figure out what the best configurations are!
Another question then came up: Does decreasing the mod bit length impact the overall security of the protocol or is it just some internal setting?
n1v0lg
@n1v0lg
Yep, it does also affect security. If you are using comparisons (or other computations based on bit decomposition), you get 64 for the computational security parameter and 60 (need to double-check that) for the stat. security parameter when you set mod bit length to 128. These are accepted as sufficiently large in the current MPC literature. If you go lower with the mod. bit length however your computational and statistical security params also decrease (because their sum is >= mod. bit length), so things get controversial.
Fable95
@Fable95
Ok so that's something to be kept in consideration!
Peter Sebastian Nordholt
@GuutBoy
Guys, isn’t it about time to do a new release?
Peter F. Frandsen
@pffrandsen
:)
I totally support that point
n1v0lg
@n1v0lg
Yep, there will be a new release before Oct 1st for sure
Peter Sebastian Nordholt
@GuutBoy
Yay!
Walch Roman
@rw0x0
Hey, I am currently using your framework (great framework btw.) to benchmark an SPDZ/Mascot application and wanted to ask, if there is a simple way to separately measure the offline and online runtime of the applications? thx in advance ;)
n1v0lg
@n1v0lg
@rw0x0 hey! sorry for the late reply. there isn't an "out-of-the-box" way to measure offline and online times separately, however there are two things you could do: 1) run the application you want to benchmark with mascot pre-processing and then with dummy pre-processing. the difference in runtime will roughly correspond to the overhead introduced by mascot. 2) you could figure out how much pre-processing material (e.g., multiplication triples) your application needs and measure the time it takes to generate the required amount with Mascot by using the Mascot class (https://github.com/aicis/fresco/blob/master/tools/mascot/src/main/java/dk/alexandra/fresco/tools/mascot/Mascot.java#L27) directly. hope this helps!
Walch Roman
@rw0x0

hi, thank you for your reply. I thought that I would need some kind of workaround, what i did in the end was, that i added some functions to the spdzmascotdatasupplier, which allowed me to produce a number of triples (and randomelements, etc.) beforehand.
Something like:
public void produceTriples(int el) {
ensureInitialized();
triples.addAll(mascot.getTriples(el));
}

Calling this function before the actual computation had the result, that during the online phase no triples had to be produced. Maybe something like this could be added to the main project? :)

n1v0lg
@n1v0lg
@rw0x0 nice, that's a good way of separating the two phases. could you make an issue to add this on github? we can work it in when there's some downtime; a PR is more than welcome too, of course ;)
Walch Roman
@rw0x0
Yes, I will open a issue. If i find time, I can open a PR as well ;)