Shared keys between parties OpenFHE - CKKS

Suppose we have a server and 2 parties such as the examples mentioned in Palisade, specifically the second thresh example where the server computes on the cipher-texts and the clients independently compute the final decryption.

If we were to have more than 2 parties, do all of these parties need to share and store every keyswitch, mult and sum key?

Currently, I’m generating the cc, keypair, keyswitch and sum keys in the server and I share those to the clients, so that the clients will generate their corresponding keys. Is there a reason to keep let’s say sum key of the client in the server since we only need the Joined version of the sum keys?

The high-level idea of threshold FHE is that all parties with secret shares interactively compute joint public and evaluation keys (corresponding to the sum of all secret shares). Then these keys can be used for encryption and evaluation, respectively. So the evaluation keys need to be shared with the parties that will need to compute on ciphertexts, and the public keys will need to be shared with the parties that will need to encrypt data. Where these keys reside is up to the application use case.

1 Like