Comment on page
The concrete backends are implementations of the cryptographic primitives of the Zama variant of TFHE. The compiler emits code which combines call into these backends to perform more complex homomorphic operations.
There are client and server features.
Client features are:
- private (G)LWE key generation (currently random bits)
- encryption of ciphertexts using a private key
- public key generation from private keys for keyswitch, bootstrap or private packing
- (de)serialization of ciphertexts and public keys (also needed server side)
Server features are homomorphic operations on ciphertexts:
- linear operations (multisums with plain weights)
- simple PBS
- WoP PBS
There are currently 2 backends:
concrete-cpuwhich implements both client and server features targeting the CPU.
concrete-cudawhich implements only server features targeting GPUs to accelerate homomorphic circuit evalutation.
The compiler uses
concrete-cpufor the client and can use either
concrete-cudafor the server.