Files
concrete/docs/user/explanation/fhe_and_framework_limits.md
Benoit Chevallier-Mames bdb1140bee chore: lowercase for filenames
2021-12-09 19:04:16 +01:00

2.5 KiB

FHE and Concrete Framework Limits

FHE limits

FHE used to be an impossible thing to imagine, twenty years ago. Then, with advances due to Craig Gentry, this became a dream come true. And, even more recently, with several generations of new scheme, FHE became practical.

Speed

However, one still has to consider that FHE is slow, as compared to the vanilla implementations. With the different HW pluggins that can be added to Concrete, an important speed factor can be achieved.

Multiplying by constants

In the scheme used in the Concrete Framework, namely TFHE, multiplications by constants is only defined for integer constants. Notably, one can't multiply by floats. As float multiplication is very usual in the data science (think of weights of dense layers, for example), this could be a problem, but quantization is at our rescue. See this section for more details.

Achieving computations of not-linear functions

For most FHE scheme but TFHE, the application of a non-linear function is complicated and slow, if not impossible. Typically, this is a blocker, since activation functions are non-linear. However, in the Concrete Framework, we use an operation called programmable bootstrapping (described in this white paper), which allows to apply any table lookup: by quantizing the non-linear function, any function can thus be replaced.

Concrete Framework limits

Since this is an early version of the product, not everything is done, to say the least. What we wanted to tackle first was the cryptographic complexities. This is why we concentrated on the cryptographic part, and let some engineering problems for later.

Currently executing locally

FIXME(Benoit): we'll see later if this is still a valid limit, #1111

As of today, the execution of the FHE program is done locally. Notably, in the current version, there is no client (on which we encrypt the private data, or decrypt the returned result) or server (on which the computation is done completely over encrypted data), but a single host. As explained in this section, this limit will be removed in the next version, such that the Concrete Framework can be used in production.

Currently slow

As we explained, we wanted to focus first on cryptographic challenges. Performance has been postponed, and will be tackled in the next release.