Bugfixes for FHEW/TFHE
Fixes several bugs in FHEW/TFHE:
- A bug reported in issue #202 (closed). The bug was in indexing the vector of monomials for the TFHE/GINX mode.
- A bug in the SignedDecompose function, which artificially increased the noise for both FHEW/AP and TFHE/GINX.
- When more than two digits in the bootstrapping key generation for FHEW/AP were used, the bootstrapping would produce incorrect results.
- The parameter sets were adjusted to decrease the probability of decryption failure (one of the problems contributing to issue #200 (closed)). The highest failure probability now does not exceed 2^{-32}. New parameter sets were added specific to AP and 32-bit native backend configurations.
Improvements triggered by issue #200 (closed):
- The noise growth for
XOR
/XNOR
is one bit higher thanAND
/OR
/NOR
/NAND
. To use the same parameters, the defaultXOR
/XNOR
are now rewritten as a Boolean function ofAND
,OR
, andNOT
gates (3 bootstrapping operations). - The previous
XOR
/XNOR
functionality (using one bootstrapping operation) was renamed toXOR_FAST
/XNOR_FAST
. This option can only be used for applications tolerating a relatively high failure probability (around 2^{-15}). - Bootstrapping is now called by default during encryption. A new parameter
FRESH
/BOOTSTRAPPED
was added. TheFRESH
option can be used when bootstrapping before evaluation is not desired. - A standalone
Bootstrap
method was added. - Many additional unit tests in the binfhe module were added.
Closes #200 (closed), #202 (closed)
Edited by Yuriy Polyakov