Skip to content
Tech News
← Back to articles

Updates on HEIR, the Homomorphic Encryption Compiler Project

read original more articles
Why This Matters

The development of HEIR, a homomorphic encryption compiler, marks a significant advancement in privacy-preserving AI, enabling confidential inference on encrypted data. This technology can revolutionize industries by allowing secure, private data processing without exposing sensitive information, thereby fostering greater trust and compliance with data privacy regulations.

Key Takeaways

On 2026-08-14 I published an article on the Google Security blog with an update on HEIR, our homomorphic encryption (HE) compiler. This is a companion article, in which I have no limits on word count or jargon, and I can feel free to be honest. So strap in.

Assuming you won’t read the linked corporate blog post, HEIR is a compiler that converts an input program to a program that operates directly on encrypted data. The guarantee of homomorphic encryption is that, assuming you haven’t cracked the cryptography, at no point does the computer running the program get even a single bit of information about the cleartext data used to generate the encrypted inputs. No information about the inputs, outputs, or any intermediate values.

The blog post focuses on HEIR’s ability to compile pre-trained ML models, and gives four examples of small, but nontrivial models that it can compile. Hence, homomorphic encryption can enable services to provide perfectly private inference. I’ll try to say more about when and where this is useful later in this article. First I wanted to give a more concrete sense for how HEIR works in the context of these examples, and outline (my view on) the project’s roadmap for the future. I won’t do a deep dive on HEIR’s internals by any means, since that would make the article too long. Give me a shout if you want that, but there are plenty of docs to read through at heir.dev and you can see a recent (fast-paced) talk I gave at ASPLOS this year.

Table of Contents:

The repo behind the blog post

The blog post ends with a list of examples compiled with HEIR. Those examples point to a GitHub repository that you can clone and run yourself. The biggest hurdle is installing bazel, and then bazel hermetically manages everything else.

Some simple runtime comparisons

The simplest and fastest example to try is the credit card fraud detector. This is a simple three-layer feed-forward network with sigmoid activations, trained on a Kaggle dataset. The linear layers have dimensions 128, 64, and 2 (the last being the logits for the two classes, fraud and not-fraud).

You can run the basic example in one line:

bazel run -c opt //demos/cc_fraud/lattigo:evaluate_fhe

... continue reading