| Great work!
This allows to perform arbitrary computation on untrusted devices. However last time I checked computation in this scheme is ridiculously slow: on modern machines, cutting edge implementation of FHE manage to get around 100 integer operations per second. Never the less there have been some brave startups trying to commercialise this technology: https://venturebeat.com/2020/02/18/enveil-raises-10-million-... Other interesting things build on top of FHE: sql database where data and queries are fully encrypted:
https://github.com/zerodb/zerodb fully encripted brainfuck vm:
https://github.com/f-prime/arcanevm |
In the former (eg Cingulata), you convert a program into a boolean circuit, and evaluate each gate homomorphically. While this is general purpose, it also means you decompose functions that could be done in one instruction into multiple binary operations (so very slow). That’s usually what people refer to when they say FHE is slow.
The other approach consists of operating directly on encrypted integers or reals, and finding ways to do more complex computations (like a square function) in one step. While this is obviously much faster, it is also limited to whatever operations is supported by the scheme. This is what people refer to when they say FHE can only do certain things.
For years, the tradeoff has basically been slow and general purpose, or fast and limited. But there are new scheme being worked on that will be published soon that enable to go way beyond what’s currently done, such as doing efficient deep learning over encrypted data and other complex numerical processing.
Lots is coming out of labs and will be on the market within 2 years!