Skip to content

Bugfixes for FHEW/TFHE

Yuriy Polyakov requested to merge issues-200-202 into master

@davidbrucecousins

Fixes several bugs in FHEW/TFHE:

  1. A bug reported in issue #202 (closed). The bug was in indexing the vector of monomials for the TFHE/GINX mode.
  2. A bug in the SignedDecompose function, which artificially increased the noise for both FHEW/AP and TFHE/GINX.
  3. When more than two digits in the bootstrapping key generation for FHEW/AP were used, the bootstrapping would produce incorrect results.
  4. 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):

  1. The noise growth for XOR/XNOR is one bit higher than AND/OR/NOR/NAND. To use the same parameters, the default XOR/XNOR are now rewritten as a Boolean function of AND, OR, and NOT gates (3 bootstrapping operations).
  2. The previous XOR/XNOR functionality (using one bootstrapping operation) was renamed to XOR_FAST/XNOR_FAST. This option can only be used for applications tolerating a relatively high failure probability (around 2^{-15}).
  3. Bootstrapping is now called by default during encryption. A new parameter FRESH/BOOTSTRAPPED was added. The FRESH option can be used when bootstrapping before evaluation is not desired.
  4. A standalone Bootstrap method was added.
  5. Many additional unit tests in the binfhe module were added.

Closes #200 (closed), #202 (closed)

Edited by Yuriy Polyakov

Merge request reports