MechFroG88 / PyMIFE

Functional encryption library for python
MIT License
9 stars 0 forks source link

Support for operations over encrypted float values #1

Open vtsouval opened 8 months ago

vtsouval commented 8 months ago

Hello,

Thank you so much for the FE library in Python! It is much needed 👍🏼. I was wondering whether support for operations over float points could be added in the FE library.

Thanks in advance.

MechFroG88 commented 8 months ago

Currently, I haven't come across any papers or schemes tailored for floating-point operations. The majority of existing schemes that I found require the message to be in a prime field or integer. Would like to know if you discover any functional encryption schemes that can handle floating-point operations. Thanks

vtsouval commented 8 months ago

@MechFroG88 No, I have not seen such a scheme as well. Perhaps, adding this functionality explicitly (via transformation from float to int and back in the FE methods) would increase the library's usability. However, focus on adding more method is more important, so this can be done by users I guess.

Do you have specific FE schemes you plan to add in the near future? Thanks.

MechFroG88 commented 8 months ago

You are right, an easy workaround is to just define a mapping from integer to floating number.

I plan to add quadratic functionality next, including the multi-input based construction

vtsouval commented 8 months ago

@MechFroG88 Thank you for the clarifications. As I will be using the package for research purposes, I will be modifying the package to allow a floating-point mapping mechanism in the FE schemes you have in PyMIFE. If you are interested, I can add them to the package.

Also, I am interested in multi-key FE schemes, but I have not found any implementation so far. Do you know/plan to add such a scheme?

MechFroG88 commented 8 months ago

Sure, feel free to make any changes to the library. You can create a pull request when you complete the implementation.

May I ask what do you mean by Multi-key FE schemes?

vtsouval commented 7 months ago

Hi @MechFroG88 Sorry for the long respond. I was referring to a scheme similar to xMK-CKKS (although this uses HE)

vtsouval commented 7 months ago

@MechFroG88 In my previous message, I was referring to a scheme like this. Is such an extension of the current DMCFE you have possible to add?

MechFroG88 commented 7 months ago

Hey, sorry for the late reply. The DDFE scheme you suggested seems quite interesting. I think it will be really useful, especially for IoT applications.

Regrettably, I'm currently occupied with my university exams. However, once I am more available, I'll definitely explore the possibility of implementing the scheme.

vtsouval commented 7 months ago

@MechFroG88 Thank you so much for your interest. Perhaps a starting point for DDFE implementation would be this Python package.

vtsouval commented 6 months ago

Hi @MechFroG88. Do you have any updates on the DDFE scheme I mentioned earlier? I tried to implementated based on the original paper and the source I mentioned before, but my knowledge of cryptographic modules is limited.

MechFroG88 commented 6 months ago

Hey @vtsouval, thanks for sharing a repo that has implemented DDFE in your earlier comment. It is a very good reference. I just had a long holiday break and am still in the process of reading through the paper. Will probably implement the scheme soon

vtsouval commented 3 months ago

Hi @MechFroG88,

Any news on DDFE? I am struggling a lot to understand trying to implement the scheme myself. Also, I would like to cite your excellent work in my paper. Could you create a citation, so I can refer to this?

Thanks!

MechFroG88 commented 3 months ago

Hi there, I have tried implementing but bilinear pairing is too slow if I do it using raw Python. Theoretically, I can speed it up by integrating C implementation of pairing but I can't seem to get it working well. Therefore, I decided to move on to implementing other features first.

For citation perhaps you could just link the github repo?