  Fully homomorphic encryption (FHE) is an encryption scheme which enables
computation on encrypted data without revealing the underlying data. While
there have been many advances in the field of FHE, developing programs using
FHE still requires expertise in cryptography. In this white paper, we present a
fully homomorphic encryption transpiler that allows developers to convert
high-level code (e.g., C++) that works on unencrypted data into high-level code
that operates on encrypted data. Thus, our transpiler makes transformations
possible on encrypted data.
  Our transpiler builds on Google's open-source XLS SDK
(https://github.com/google/xls) and uses an off-the-shelf FHE library, TFHE
(https://tfhe.github.io/tfhe/), to perform low-level FHE operations. The
transpiler design is modular, which means the underlying FHE library as well as
the high-level input and output languages can vary. This modularity will help
accelerate FHE research by providing an easy way to compare arbitrary programs
in different FHE schemes side-by-side. We hope this lays the groundwork for
eventual easy adoption of FHE by software developers. As a proof-of-concept, we
are releasing an experimental transpiler
(https://github.com/google/fully-homomorphic-encryption/tree/main/transpiler)
as open-source software.
