openfhe-development icon indicating copy to clipboard operation
openfhe-development copied to clipboard

Support CKKS bootstrapping to a specific output level

Open yspolyakov opened this issue 10 months ago • 4 comments
trafficstars

See https://openfhe.discourse.group/t/inquiries-on-ckks-scheme-and-real-number-optimization-in-openfhe/1803/3 for more details

yspolyakov avatar Dec 24 '24 21:12 yspolyakov

Add targetLevel as an extra argument to EvalBootstrap

yspolyakov avatar Jan 28 '25 14:01 yspolyakov

Did initial pass. The implementation becomes too involved as the precomputed plaintexts (needed for the linear transforms) for a specific output level cannot be easily transformed to a different output level. In addition to indexing issues, the scale of the plaintexts also needs to be updated for FLEXIBLEAUTO* modes, which requires calling the adjustment logic (for extended plaintexts in QP rather than just Q; this logic is not currently implemented in OpenFHE; it only exists for plaintexts/ciphertexts in Q). The alternative is to support multiple sets of precomputed plaintexts via an STL map. However, this would require extra RAM and is also not supported by OpenFHE (only one set of precomputed plaintexts is currently supported). Simply speaking, significant new functionality would need to be added in either case.

yspolyakov avatar Jan 30 '25 23:01 yspolyakov

Moved to the Future Releases milestone as this change requires major changes in OpenFHE.

yspolyakov avatar Jan 31 '25 22:01 yspolyakov

Is there a simple workaround that can be used as long as this feature is not implemented?

j2kun avatar Nov 13 '25 16:11 j2kun