Get the latest tech news
A High-Level Technical Overview of Homomorphic Encryption
About two years ago, I switched teams at Google to focus on fully homomorphic encryption (abbreviated FHE, or sometimes HE). Since then I’ve got to work on a lot of interesting projects, learning along the way about post-quantum cryptography, compiler design, and the ins and outs of fully homomorphic encryption. If you’ve heard about FHE and you’re a software person, you’ve probably heard two things: it lets you run programs directly on encrypted data without ever decrypting it; and it’s still too slow to be useful for anything.
One FHE engineer mentioned to me that—between needing them for RNS decompositions and modulus switching—they actually ran out of 32-bit primes (there are roughly 60 million of them, or 0.25 GiB worth, based on this paper) and as a result had to switch their underlying types to 64 bits. It uses the same sorts of residue number system tricks as BGV and BFV to accelerate polynomial multiplication, emphasizes a “leveled” approach to avoiding bootstrapping, and uses relinearization, rotation, and key switching similarly. It’s slower than the ResNet example above (and VGG is a much smaller network), but the benefit of this approach is you can also do things like decision trees that would be much less practical in arithmetic FHE, and far less of it is manually hand-crafted, as exemplified by Zama’s concrete-ml library hiding many of the details.
Or read this on Hacker News