I'm starting to read about TFHE, however my background is not that deep. Mostly, I've learnt about it thanks to this paper, and I am trying to delve deeper into it. I've also read the Zama blog post about it. I understand that there are three kinds of schemes defined by Chillotti et al. in the original TFHE paper: LWE-like, GLev and GSW-like. The last one, if I understood correctly, is the only one that provides a true homomorphic product property without having to rely on techniques such as relinearisation.
I want to explore basic examples of this schemes, and for that, I've started using OpenFHE, which provides in particular support for this kind of encryption. However, when trying to understand the implemented scheme, I don't really get it, because there's the symmetric and the PKE variants, and also they mix it with the FHEW scheme, which I haven't read that much about, but I know it's the immediate precursor of TFHE.
So I have some questions regarding this:
- What's each TFHE scheme really like? Because I understand the ciphertext structure, but I fail to understand how key generation, encryption and decryption work at all.
- How is TFHE implemented with public key encryption? Because on the blog series they only talk about secret key encryption.
- What's the actual TFHE scheme implemented in OpenFHE (key generation, encryption, decryption, and bootstrapping)?