aicis/fresco

arithmetic computation in Galois field?

bl4ck5un opened this issue · 3 comments

Is there a plan to support GF? The C++ implementation of SPDZ supports it.

If not, could you evaluate how much work it would require? Mathematically little change is needed for the protocol. But the base class FieldDefinition is specific to $F_p$, which makes me wonder if an invasive change is needed.

Currently, we're not planning on adding support for GF.

At first glance, the dev. effort would only be moderate. There would need to be a GF-specific implementation of FieldDefinition, and of FieldElement. Our implementation of SPDZ protocols for multiplication etc. (see for instance SpdzMultProtocol) use the FieldElement interface so once those two GF-specific classes are in place the rest should work "for free".

I believe some of our more complex protocols, i.e., Computations, rely specifically on the fact that we are working in $F_p$ though; these might not work anymore.

Out of curiosity, what application do you have in mind for GF? AES?

Admittedly there aren't many applications that require GF. My application needs to do GCM decryption in GF(2^128).

Gotcha! For the time being we aren't planning to add support for GF. Let me know however if you are interested in working on supporting this in FRESCO. Happy to take a closer look at the changes that would be necessary and discuss further on Gitter.