- Join over
**1.5M+ people** - Join over
**100K+ communities** - Free
**without limits** - Create
**your own community**

Questions and discussions related to the FRESCO project (https://github.com/aicis/fresco)

- 12:41Travis aicis/fresco (v1.2.1) passed (3010)
- Aug 16 09:10Travis aicis/fresco (simplify_fixed_functions) fixed (2980)
- Aug 15 09:22Travis aicis/fresco (simplify_fixed_functions) still failing (2978)
- Aug 15 09:22Travis aicis/fresco#345 broken (2979)
- Aug 15 08:18Travis aicis/fresco#345 broken (2977)
- Aug 15 08:18Travis aicis/fresco (simplify_fixed_functions) broken (2976)
- Jul 11 11:46Travis aicis/fresco (simplify_fixed_functions) fixed (2949)
- Jul 10 11:07Travis aicis/fresco#345 broken (2947)
- Jul 10 11:07Travis aicis/fresco (simplify_fixed_functions) still failing (2946)
- Jul 10 10:03Travis aicis/fresco#345 broken (2945)
- Jul 10 10:03Travis aicis/fresco (simplify_fixed_functions) still failing (2944)
- Jul 10 10:00Travis aicis/fresco (simplify_fixed_functions) still failing (2942)
- Jul 10 10:00Travis aicis/fresco#345 broken (2943)
- Jul 10 09:37Travis aicis/fresco (simplify_fixed_functions) still failing (2938)
- Jul 10 09:37Travis aicis/fresco#345 broken (2941)
- Jul 10 09:37Travis aicis/fresco (simplify_fixed_functions) still failing (2940)
- Jul 10 09:36Travis aicis/fresco#345 broken (2939)
- Jul 10 09:04Travis aicis/fresco#345 broken (2937)
- Jul 10 09:02Travis aicis/fresco (simplify_fixed_functions) still failing (2936)
- Jul 09 20:05Travis aicis/fresco#345 broken (2935)

```
@misc{fresco,
author = {Alexandra Institute FRESCO Team},
title = {FRamework for Efficient Secure COmputation (FRESCO)},
howpublished = {\url{https://github.com/aicis/fresco}},
year = "2019"
}
```

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?

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?

Ah to get mascot to work, you'll need to do something like this: https://github.com/aicis/fresco/blob/c4ed21f4fe6660d62b549e36b3dcfbbfdf7ae854/suite/spdz/src/test/java/dk/alexandra/fresco/suite/spdz/AbstractSpdzTest.java#L243

(starting on that loc)

Basically, you need to set up a

`SpdzMascotDataSupplier`

for your data supplier
but I'm not sure how I can instantiate the following:

```
NetManager otGenerator,
NetManager tripleGenerator,
NetManager expPipeGenerator
```

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.

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.

Did he bring FRESCO stickers? 😋

Bar-Ilan will be covered in FRESCO stickers by the end of the week

In your opinion

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?

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?

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.
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?

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?

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.

I totally support that point

@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!

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? :)