google / google/heir

Investigate whether to add Fheanor as new backend for BGV/BFV

Open
#1,832 1 comment 2 reactions 0 assignees View on GitHub
enhancement research synthesis
Dominant language
MLIR
Stars
906
Forks
171
Avg merge
4d 12h
Merged PRs (30d)
32

Description

Fheanor: a new, modular FHE library for designing and optimising schemes

https://eprint.iacr.org/2025/864

> Fheanor implements several features that have not, or have only rarely,
been implemented in previous libraries. These include non-power-of-two
cyclotomic rings, single-RNS based ring arithmetic, the CLPX/GBFV
scheme, and bootstrapping for BFV and BGV.

> implementation of the isomorphism R/(p^e) = GR(p, e, d) x ... x GR(p, e, d) via "hypercube structures" (compare "Bootstrapping for HElib" by Halevi and Shoup, https://ia.cr/2014/873)
> tools for arithmetization, including modelling of arithmetic circuits, polynomial-to-circuit conversion via Paterson-Stockmeyer and HElib-style linear transforms

> The core target user is an FHE researcher,
rather than an application developer. Most importantly, the design of
Fheanor is very modular, and mirrors the mathematical structure of the
available FHE schemes. By exposing the mathematical structure, but
still hiding implementation details, it is easy to modify or extend the
functionality of FHE schemes implemented in the library and still preserve
high performance.

My personal interest is in its noise analysis perspective

> Noise estimation. Fheanor does not currently include precise or rigorously
justified noise estimation. Nevertheless, Fheanor defines an interface for
noise estimators, and include a “naive” noise estimator based on asymptotic
formulas [BGV12; FV12] for use during BGV bootstrapping. Improving
this estimator to achieve the same quality as supported by other libraries
(e.g. HElib [HS14] and OpenFHE [ABB+22]) is left to future work. As the
target audience of Fheanor is researchers who are familiar with the internals
of FHE, it is likely that users may wish to make the noise-related parameter
decisions themselves, and so may not require an automated noise estimation
tool.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.