Fastest Additive Homomorphic scheme

Hi. I have a question is about the benchmark of concrete. It takes a really long time on my laptop and I was wondering if the results can be found somewhere. I want to use a scheme for the addition of floating point numbers. Is RLWE recommendable for this? If not, what schemes do you recommend? I have seen Paillier, and FAHE1, FAHE2, ElGamal, but I haven’t found any systematic review that compares them speed-wise.

What I want to do is send partially filled gradients (e.g. [ 0, 0, 0, 5, 1, 2, 0, 0 1, 0, 0, 5], with the biggest components being sent, while smaller values are kept locally) to a server where they should be added up (federated learning setting). I have thought of clustering the biggest components of the gradients and packing them into RLWE samples, but I am not sure if this is the most suitable option.

Let me know if there’s any suggestions.

Hello Mario,

Thanks for being an active user of Concrete, we hope you are doing amazing things with it. Don’t hesitate to share that with us.

Regarding your question: not sure what your exact use case is, but, if you’re only about adding ciphertexts, you might want not to use FHE but to use schemes which are only additively homomorphic.

As you said, Paillier is well known for being additively homomorphic, ie such that Enc(m1 + m2 mod n) = Enc(m1) Enc(m2) mod n**2. This property makes that the scheme is used in several protocols like voting. And if you use Paillier’s scheme, well, somehow you still use Zama’s techno since Pascal Paillier is our CTO!

ElGamal is much less of a practical scheme if you want to use the additive homomorphism. I don’t know FAHE1 and FAHE2 so I prefer not to say mistakes about it.

Hope it helps