Repolode
microsoft

microsoft/SEAL

微软 SEAL 是一个开源的同态加密 C++ 库,可在不解密的情况下对密文进行加法和乘法运算。

Star
4,054
Fork
779
未关闭 Issue
110
最近提交
前天

这是什么?

微软 SEAL 是由微软密码学研究组开发的同态加密库,允许程序直接对加密数据进行计算。云服务可以在无法读取明文的情况下完成运算,只有持有私钥的数据所有者才能解密结果。目前支持对加密整数或实数做加法和乘法。

该库实现了 BFV 和 BGV 方案,用于加密整数的精确模运算;同时实现了 CKKS 方案,用于加密实数或复数的近似运算,适合加密数据求和、在密文上评估机器学习模型等场景。项目使用标准 C++17 编写,并提供基于 NuGet 分发的 .NET 封装。构建方式包括 CMake、vcpkg 和 Homebrew,可选集成 Intel HEXL、Zstandard 和 ZLIB。

同态加密计算开销较大,且支持的运算种类有限,因此 SEAL 更适合用于程序中涉及隐私的关键环节,而非通用计算。项目文档建议在编写生产代码前仔细学习其示例。

核心功能

  • 01支持对加密整数(BFV、BGV)和实数或复数(CKKS)进行加法和乘法运算。
  • 02基于标准 C++17 编写,使用 CMake 构建,支持 Windows、Linux、macOS、Android、iOS 和 WebAssembly。
  • 03提供基于 NuGet 分发的官方 .NET 封装。
  • 04可选集成 Intel HEXL,在支持 AVX-512 的处理器上加速底层运算。
  • 05支持对密文和密钥进行压缩或位打包序列化。

适用场景

  • 在云服务中对加密的敏感数据进行求和或统计。
  • 在需要保护隐私的前提下,对加密输入评估机器学习模型。
  • 研究或原型验证隐私保护计算协议。
  • 为 .NET 或 C++ 应用增加加密计算能力。

快速上手

  1. 1

    使用 vcpkg 安装(适用于大多数平台)

  2. 2

    在 macOS 上使用 Homebrew 安装

  3. 3

    在 FreeBSD 上使用 pkg 安装

    pkg install seal
  4. 4

    若使用 .NET,安装 Microsoft.Research.SEALNet NuGet 包

使用前须知

  • 对加密数据只支持加法和乘法,加密比较和分支等操作通常不可行。
  • CKKS 方案只能得到近似结果,不适合需要精确数值的场景。
  • Microsoft SEAL 学习曲线陡峭,需要理解同态加密的相关概念。
  • 同态加密性能开销大、密文体积大,多数方案的安全保证弱于传统加密,用于生产环境前需阅读 SECURITY.md。

标签

常见问题

SEAL 是什么?
微软 SEAL 是一个开源的同态加密 C++ 库,可在不解密的情况下对密文进行加法和乘法运算。 微软 SEAL 是由微软密码学研究组开发的同态加密库,允许程序直接对加密数据进行计算。云服务可以在无法读取明文的情况下完成运算,只有持有私钥的数据所有者才能解密结果。目前支持对加密整数或实数做加法和乘法。
SEAL 可以免费使用吗?用的什么许可证?
SEAL 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
SEAL 还在维护吗?
活跃维护中。SEAL 最近一次提交是在 2026年10月19日。
SEAL 适合用来做什么?
在云服务中对加密的敏感数据进行求和或统计。 在需要保护隐私的前提下,对加密输入评估机器学习模型。 研究或原型验证隐私保护计算协议。 为 .NET 或 C++ 应用增加加密计算能力。
SEAL 怎么安装和运行?
使用 vcpkg 安装(适用于大多数平台) 在 macOS 上使用 Homebrew 安装 在 FreeBSD 上使用 pkg 安装: pkg install seal 若使用 .NET,安装 Microsoft.Research.SEALNet NuGet 包
在哪里获取 SEAL?
源代码和安装说明在 GitHub 上:https://github.com/microsoft/SEAL

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目