Multikey version

Hi all,

I wonder if it is possible to extend the OpenFHE CKKS or other schemes to enable multikey to perform distributed addition

For example let’s assume there are 3 users who share a secret key s where s1+s2+s3=s.

User 1 encrypts m1 using s1.
User 2 encrypts m2 using s2.
User 3 encrypts m3 using s3.

If they all use the same a then enc(m1) = a.s1+ m1+e
enc(m2) = a.s2+ m2+e
enc(m3) = a.s3+ m3+e

Adding these three would become a.s + m1+m2+m3 + noise which should be decrypted by s.

I wonder if this functionality is available or can be developed using OpenFHE?

Thx

Hi @rahulay,

The functionality is not directly available but can be developed using OpenFHE, i.e., it is compatible with threshold FHE. Currently, roughly the same functionality is used to compute the public joint key (in this case, all messages m_i are zero). The main point is that the result of the addition will be compatible with the the threshold FHE setting (it is encrypted under the joint key corresponding to s_1+s_2+s_3). You can find some of the functionality available as part of interactive CKKS bootstrapping useful: openfhe-development/src/pke/examples/tckks-interactive-mp-bootstrapping.cpp at v1.2.1 · openfheorg/openfhe-development · GitHub There, a common random polynomial is also used.

1 Like

Thank Yuriy.
I will check this out.