microsoft / SEAL

Microsoft SEAL is an easy-to-use and powerful homomorphic encryption library.
https://www.microsoft.com/en-us/research/group/cryptography-research/
MIT License
3.52k stars 704 forks source link

Support large plaintext space t^d by setting the degree of extension field d when batching? #323

Open MingliWu opened 3 years ago

MingliWu commented 3 years ago

CHLR'18 said one could use the general SIMD encoding method for batching to support large plaintext operations from t to t^d by using SEAL. The statement in this paper is "for a tunable parameter d, we can operate on vectors of length n/d, where each entry can take t^d different values". The general SIMD encoding method is very useful. However, it seems that SEAL currently can only support d=1 (by default) when do batching. Is there any plan to support this?

[CHLR'18]: Chen H, Huang Z, Laine K, et al. Labeled PSI from fully homomorphic encryption with malicious security[C]//Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security. 2018: 1223-1237.

WeiDaiWD commented 3 years ago

The SIMD encoding used in paper was implemented outside SEAL, likely using FLINT as I recall. We do have a long-term plan to implement that in SEAL from scratch without dependency on a heavy library. The difficulty is how to design ciphertext/plaintext validation in Evaluator methods, for example, when multiplying ciphertexts using different encoding methods SEAL should throw an error. I'd keep this issue open until we have that implemented.