They all support +, -, *. They do not support divisions.
You can see examples of those operations in action for CKKS, BGV and BFV in our PKE Examples directory and you can find examples for “third gen” in BINFHE Examples
Can I know your background and usecase? E.g are you a programmer, mathematician, have you taken discrete math classes, etc. I hope I’m not coming across as condescending, but it sounds like you’re not the usual audience we have, so I’m trying to get an idea of how we can best help.
CKKS: supports +, *, - across ciphertexts. As Yuriy mentioned, division can be done by doing it in the clear and then multiplying that with the ciphertext. But you can’t divide two ciphertexts directly
poly-multi
Do you mean polynomial multiplication or polynomial evaluation? Polynomial multiplication is what we do on all of them but only CKKS supports polynomial evaluation. For FHEW (and I think TFHE, but I’ll defer to Yuriy) you can construct lookup tables for functions that you can evaluate a value on.
3rd Gen support only for a bit? or they can support more bits with carry or else?
In OpenFHE you can operate on actual numbers, not just bits. So yes, you can work on more than a single bit.
Hi
maybe this will help. Note that typically TFHE/FHEW are used for boolean arithmetic, but we recently extened it to small integers (not shown in the picture)
Since you’ve mentioned division, is there any chance I can do a ciphertext divide a plaintext?
i.e. Given (a(x)s(x)+e(x),a(x)) and a’(x), where a’(x) is some function of a(x) [e.g.: automorphism, or square function], can i compute (a’s+e’, a’)?
(I think e’(x) is okay not to satisfy the gaussian distribution, but shouldn’t be too large to destroy a ciphertext.
(Furthermore, my condition allows scaling s(x) to Δs(x) at first, and i think that the scaling factor may introduce a rescale after the plain-ct mult, which would reduce the operation noise?
@yhh The division @ypolyakov mentions, is done by actually implementing a reciprocal operation using a digital combinatorial circuit – which is not a trivial thing to do.