HElib 是一个开源(Apache License v2.0)软件库,实现了同态加密(HE)。目前可用的方案包括带自举功能的 Brakerski-Gentry-Vaikuntanathan(BGV)方案,以及 Cheon-Kim-Kim-Song(CKKS)的近似数方案,同时包含许多优化以加快同态求值的运行速度,主要侧重于有效利用 Smart-Vercauteren 的密文打包技术和 Gentry-Halevi-Smart 的优化。有关本库中使用的几种算法的说明,请参阅本报告。
关于 HElib 中 CKKS 方案实现安全性的最新讨论,请参阅 CKKS-security.md。
自 2018 年年中以来,HElib 一直在进行大规模重构,以提升可靠性、健壮性与可维护性、性能,最重要的是提升面向从事 HE 及其应用的研究人员和开发者的易用性。
HElib 支持一种 "HE 汇编语言",提供底层例程(set、add、multiply、shift 等)、复杂的自动噪声管理、改进的 BGV 自举、多线程,并且还支持 Ptxt(明文)对象,其功能模拟 Ctxt(密文)对象。报告 Design and implementation of HElib 包含更多细节。此外,有关 HElib 版本的更多信息,请参阅 CHANGES.md。
完整的安装说明和所需依赖项列表可在 INSTALL.md 中找到。
有关 HElib 编程入门的指导,请查看位于 examples 目录中的示例程序和我们的 CKKS 教程。参见 examples/README.md。
如果您有兴趣为 HElib 做贡献,请阅读我们的贡献指南。
HElib 使用 C++17 编写,并采用 NTL 数学库。
HElib 根据 Apache License v2.0 的条款分发。