fentec-project / CiFEr

Functional encryption library in C
Apache License 2.0
78 stars 24 forks source link

question on quadratic SGP scheme #31

Closed lorand1984 closed 3 years ago

lorand1984 commented 3 years ago

Hello, Could you please explain me why in quadratic SGP scheme, instead of having a generateKeys function that generates a public key and a master secret key (used then to compute the FE key), there is only a function GenerateMasterKey that outputs a key that is used both by the encryptor as public key and by the authority to generate the FE key used by the decryptor?

Regards, Lorenzo

tilenmarc commented 3 years ago

Hi, yes, good point, this is because the SGP scheme is a "private-key" scheme and not a "public-key" one. What I mean is that the secret key used for deriving FE keys needs to be known also to the encryptor. There exists also a more recent public key quadratic scheme (paper) that we have implemented in the Go FE library GoFE, but not yet in CiFEr.

lorand1984 commented 3 years ago

Hi, Thank you very much for your answer! Therefore, do we still need an authority in the SGP case, or does the encryptor generate the master secret key itself?

Regards, Lorenzo

tilenmarc commented 3 years ago

Hi, sorry for the late reply, I somehow missed your question. Well, you can have an authority or the encryptor generating its keys by himself. Eliminating the authority means that the encryptor will also generate the FE keys for the decryption. Note that this is allowed in all the FE schemes in the library, i.e. the encryptor can be the authority.