0

Currently I was working with FHE scheme and used HElib to do homomorphic logical operation like the formal question described Homomorphic encryption methods that could support logical XOR, AND?. But now I'm facing a new problem. When I do multi times calculation (the situation is a circuit calculation that has to be used many times), the result is getting wrong. For instance: there are 3 bits a,b,c, and the formula is a = a*b+c, each time 'a' is updated, b , c is fixed value. When the process is repeated many times, the final 'a' is decrypted to a wrong value. Could someone tell me the reason, and are there any methods that could skip this problem?

By the way, this is one of the problem mentioned in the terminal: Ctxt::bringToSet called with capacity=-101.861, likely decryption error Ctxt::bringToSet called with empty set and capacity=63.5502, this is likely a bug

Kao Tou
  • 15
  • 4
  • There is the noise that you should be considered especially multiplication. Levelling, bootstrapping, linearization, etc. are to solve the issue. – kelalaka Mar 18 '21 at 09:15
  • Thank you for your answer. Could you tell me a little more about this part of knowledge? Recently I'm reading papers about FHE, which all mentioned bootstrapping, noise and I could not understand clearly, and is that mean that because of these limitations that BGV scheme could not support all-size polynomial size calculation? – Kao Tou Mar 18 '21 at 09:27
  • Thank you. And sorry to bother again, are there any exact frequency relations between L and the times of multiply operation? Now I do a little HElib experiment for multi times multiply: I set the L value 16, and set two encrypted value a,b. The calculation formula is a *= b. I put the process in a "For Loop", and after 2 rounds, the program show warning for wrong decryption. – Kao Tou Mar 19 '21 at 07:59
  • Make sure that the ciphertexts have the same level. I've used the library long time ago. – kelalaka Mar 19 '21 at 13:31

0 Answers0