openfhe-development:开源全同态加密库,支持多种FHE方案与安全计算

This is the development repository for the OpenFHE library. The current version is 1.5.1 (released on April 10, 2026).

分支73Tags50
当前项目代码仓暂无内容

OpenFHE - 开源全同态加密库

全同态加密(FHE)是一种强大的密码学原语,它允许在不访问密钥的情况下对加密数据进行计算。 OpenFHE 是一个开源 FHE 库,包含所有常见 FHE 方案的高效实现:

  • Brakerski/Fan-Vercauteren(BFV)方案,用于整数算术
    • Brakerski-Gentry-Vaikuntanathan(BGV)方案,用于整数算术
    • Cheon-Kim-Kim-Song(CKKS)方案,用于实数算术(包括近似引导)
    • Ducas-Micciancio(DM/FHEW)、Chillotti-Gama-Georgieva-Izabachene(CGGI/TFHE)以及 Lee-Micciancio-Kim-Choi-Deryabin-Eom-Yoo(LMKCDEY)方案,用于评估布尔电路和使用查找表在更大明文空间上的任意函数

OpenFHE 还支持混合向量化方案,旨在为 CKKS 和 BFV 等方案提供类 FHEW/TFHE 的函数引导能力。具体而言,OpenFHE 支持

  • 在 CKKS 与 FHEW/TFHE 之间切换,以使用(标量)FHEW/TFHE 函数引导来评估非光滑函数,例如比较
    • 在 RLWE(一种等效于系数编码加法 BFV 方案的方案)与 CKKS 之间切换,以使用 CKKS 中实现的向量化函数引导来评估整数向量上的任意查找表,例如模约简、比较或 S 盒

OpenFHE 还支持称为“小方案”(schemelets)的部分方案,例如 RLWE,它等效于系数编码的加法 BFV 方案。在 OpenFHE 中,RLWE 小方案是向量化函数引导能力的起点,该能力允许在中间步骤使用 CKKS 来评估整数向量上的任意查找表,例如模约简、比较或 S 盒。

OpenFHE 还包括以下 FHE 的多方扩展:

  • 针对 BGV、BFV 和 CKKS 方案的阈值 FHE
    • 针对阈值 CKKS 的交互式引导
    • 针对 BGV、BFV 和 CKKS 方案的代理重加密

OpenFHE 支持 9 版及以上的 GNU C++ 编译器和 10 版及以上的 clang C++ 编译器。为获得最佳运行时性能,建议遵循构建 OpenFHE 以获得最佳性能中概述的指南。

链接与资源

安装

有关详细信息,请参阅我们的通用安装说明:readthedocs

或根据您的特定操作系统参考以下内容:

代码示例

为了熟悉 OpenFHE 的主要 API,建议查看以下示例代码:

  1. 用于整数算术的 FHE(BFV): 1. 简单代码示例 2. 带序列化的简单代码示例
    1. 用于整数算术的 FHE(BGV):
      1. 简单代码示例
      2. 带序列化的简单代码示例
    2. 用于实数算术的 FHE(CKKS):
      1. 简单代码示例
      2. 高级代码示例
      3. 高精度 CKKS 高级代码示例
      4. 任意平滑函数评估
      5. 简单 CKKS 引导示例
      6. 高级 CKKS 引导示例
      7. 双精度(迭代)引导示例
      8. CKKS 复合缩放模式下的基本 CKKS 算术
    3. 用于复数算术的 FHE(CKKS):
      1. 层级和引导代码示例
    4. 用于布尔电路和更大明文空间的 FHE(FHEW/TFHE):
      1. 带对称加密的简单代码示例
      2. 带公钥加密的简单代码示例
      3. 多输入门评估
      4. JSON 序列化代码
      5. 二进制序列化代码
      6. 大精度比较
      7. 小精度任意函数评估
    5. 方案切换:
      1. CKKS 与 FHEW/TFHE 之间的方案切换示例
    6. 整数上的功能引导(RLWE 和 CKKS):
      1. 使用 CKKS 进行查找表评估、符号提取和多值引导的功能引导示例
    7. 阈值 FHE:
      1. BGV、BFV 和 CKKS 的代码示例
      2. 两方交互式引导示例
      3. 简单 n 方交互式引导示例
      4. 切比雪夫逼近后的 n 方交互式引导
      5. 5 方 BFV 代码示例

主要 API

行为准则

为了营造一个开放且友好的环境,我们作为贡献者和维护者承诺,确保无论年龄、体型、残障状况、种族、性别特征、性别认同与表达、经验水平、教育背景、社会经济地位、国籍、个人外貌、种族、宗教信仰或性取向如何,每个人在参与我们的项目和社区时都能获得无骚扰的体验。

OpenFHE 是一个由多元化贡献者开发的社区驱动型开源项目。OpenFHE 领导层坚定承诺打造一个开放、包容且积极向上的社区。请阅读我们的行为准则,以了解如何与他人互动,共同促进社区的蓬勃发展。

征集贡献

我们欢迎各类贡献,包括但不限于:

  • 报告问题
  • 解决错误,无论大小。我们会为问题添加标签,帮助您根据自身技能水平筛选合适的任务。
  • 文档修改
  • 使用 OpenFHE 进行的演讲和研讨会

如何引用 OpenFHE

若要在学术论文中引用 OpenFHE,请使用以下 BibTeX 条目(更新版本)

@misc{OpenFHE,
      author = {Ahmad Al Badawi and Andreea Alexandru and Jack Bates and Flavio Bergamaschi and David Bruce Cousins and Saroja Erabelli and Nicholas Genise and Shai Halevi and Hamish Hunt and Andrey Kim and Yongwoo Lee and Zeyu Liu and Daniele Micciancio and Carlo Pascoe and Yuriy Polyakov and Ian Quah and Saraswathy R.V. and Kurt Rohloff and Jonathan Saylor and Dmitriy Suponitsky and Matthew Triplett and Vinod Vaikuntanathan and Vincent Zucca},
      title = {{OpenFHE}: Open-Source Fully Homomorphic Encryption Library},
      howpublished = {Cryptology ePrint Archive, Paper 2022/915},
      year = {2022},
      note = {\url{https://eprint.iacr.org/2022/915}},
      url = {https://eprint.iacr.org/2022/915}
}

或者,或者(原始 WAHC@CCS'22 版本),

@inproceedings{10.1145/3560827.3563379,
      author = {Al Badawi, Ahmad and Bates, Jack and Bergamaschi, Flavio and Cousins, David Bruce and Erabelli, Saroja and Genise, Nicholas and Halevi, Shai and Hunt, Hamish and Kim, Andrey and Lee, Yongwoo and Liu, Zeyu and Micciancio, Daniele and Quah, Ian and Polyakov, Yuriy and R.V., Saraswathy and Rohloff, Kurt and Saylor, Jonathan and Suponitsky, Dmitriy and Triplett, Matthew and Vaikuntanathan, Vinod and Zucca, Vincent},
      title = {OpenFHE: Open-Source Fully Homomorphic Encryption Library},
      year = {2022},
      publisher = {Association for Computing Machinery},
      address = {New York, NY, USA},
      url = {https://doi.org/10.1145/3560827.3563379},
      doi = {10.1145/3560827.3563379},
      booktitle = {Proceedings of the 10th Workshop on Encrypted Computing \& Applied Homomorphic Cryptography},
      pages = {53-63},
      numpages = {11},
      location = {Los Angeles, CA, USA},
      series = {WAHC'22}
}

致谢

  • 分发声明“A”(批准公开发布,分发不受限制)。本工作部分得到美国国防高级研究计划局(DARPA)通过HR0011-21-9-0003和HR0011-20-9-0102项目的支持。本文所表达的观点、意见和/或研究结果为作者个人观点,不应被解读为代表美国国防部或美国政府的官方观点或政策。
  • 本研究部分由美国卫生高级研究计划局(ARPA-H)资助。本文包含的观点和结论为作者个人观点,不应被解读为代表美国政府的官方政策(无论明示或暗示)。

项目介绍

这是 OpenFHE 库的开发代码库。当前预发布版本为 v1.1.1(发布于 2023 年 8 月 23 日):请从 main 分支克隆。当前稳定版本为 1.0.4(发布于 2023 年 6 月 19 日):请从 stable 分支克隆。【此简介由AI生成】

定制我的领域
171.19 K306访问 GitHub