octaviopk9 / lattice-based-cryptography

Reference repository on Lattice-based Cryptography
Creative Commons Zero v1.0 Universal
22 stars 11 forks source link

Section on implementation of advanced constructions? #3

Open mark-schultz-wu opened 2 years ago

mark-schultz-wu commented 2 years ago

There are a variety of open-source FHE implementations currently. For a brief summary there are

  1. C++ implementations (Duality's Palisade, IBM's HElib, HEaan, FHEW), that have merged into openfhe. I don't know if this includes Microsoft's SEAL library, if not they should be included as well.
  2. Go implementation (lattigo)
  3. Rust implementation (Zama.ai's concrete and related packages)
  4. Haskell implementation (Peikert has Λ ⚬ λ).

Figuring out precisely how to summarize what each library implements might be a little hard (balancing concision w/ precision), but it's likely useful to link to all the codebases in some way.

octaviopk9 commented 2 years ago

Hi @mark-schultz,

I agree that information on FHR implementations is missing and that it would be good to add it. Thanks for bringing this up! In fact, I was wondering about that when doing the table on signatures but wasn't sure how to display the information. I am not knowledgeable in that area, so I rather prefer to let someone else undertake the task. Please feel free to do a PR tackling this issue if you have an idea in mind on how to display the info. In the meantime, we can keep the issue open and see if someone else wants to jump in :)

mark-schultz-wu commented 2 years ago

I can get together a PR in probably the next ~day. After thinking things over for a bit, it probably makes sense to keep information at the level of

Essentially punting the question of "what precisely does this library implement" to the library itself. This has the benefit of being extremely concise (at least on the main thelatticeclub.com page), as well as ensuring the information stays current as libraries are further developed.

mark-schultz-wu commented 2 years ago

Looking into this more, there seems to be a much-more-comprehensive list than I was thinking of contributing located here

https://github.com/jonaschn/awesome-he

Would it make sense to simply directly point to this?