fhe-toolkit-linux
用同态加密让数据「可用不可见」,在浏览器中体验隐私计算魔力
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用同态加密让数据「可用不可见」,在浏览器中体验隐私计算魔力
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:IBM FHE Toolkit 官方封面图,展示同态加密技术的核心概念
想象一个场景:你在使用银行的在线服务时,需要核实自己的信用记录——但银行并不想让你看到其他客户的敏感信息,你也不想把自己的财务数据暴露给银行。传统的解决方式需要双方都做出妥协:要么一方交出数据控制权,要么引入复杂的第三方审计流程。
IBM 研究院给出了一个颠覆性的答案:干脆让数据永远保持加密状态,连持有者自己都无法读取,但同时还能在上面做计算。
这就是**全同态加密(Fully Homomorphic Encryption,FHE)**的魅力。2020年,IBM 正式将这项技术带入 Linux 平台,推出 FHE Toolkit for Linux——一个基于 Docker 的开发工具包,让研究人员和开发者可以在加密数据上直接运行机器学习推理,而无需先解密数据。2021年,IBM 在此基础上推出 HElayers SDK,作为该方向的商业化演进产品,而 fhe-toolkit-linux 仓库本身已归档(archive),推荐用户迁移至 HElayers。
要理解 FHE 的价值,先从传统加密的局限性说起。
对称加密(如 AES)和非对称加密(如 RSA)都只能保护数据的存储态和传输态——数据要么被加密存着,要么在传输中被加密。但一旦需要计算,就必须先解密。解密后的数据就像脱掉铠甲的士兵,暴露在内存中,任何有系统访问权限的人都能看到。
同态加密的数学原理则完全不同。它允许在密文上直接进行特定的数学运算——加法对应加法,乘法对应乘法——而这些运算的结果解密后,与在明文上做同样运算的结果完全一致。打个比方:这就像把一个上了锁的保险箱交给别人,让他在不打开锁的情况下,往里面存钱、取钱、计算利息,最后你拿到结果时锁还是锁着的。
FHE 的实际意义在于数据可用不可见:数据持有方将加密后的数据交给计算方,计算方在密文上完成 ML 推理(如信用评分、疾病预测),返回加密结果给数据持有方解密。整个过程中,计算方从未看到过任何明文数据。
IBM FHE Toolkit 的技术栈围绕 HElib 构建——这是 IBM 研究院开源的 C++ 同态加密库,也是目前学术界和工业界使用最广泛的 FHE 实现之一。
Docker 容器
├── HElib C++ 库 │ 同态加密核心引擎(基于 BGV/ CKKS 方案)
├── HELayers Python SDK │ 高级 Python API,封装底层加密操作
├── code-server │ Web IDE,通过浏览器访问(端口 8443)
├── C++ 示例代码 │ HElib 原生接口示例
├── Python 示例代码 │ HELayers 高层 API 示例
└── ML 示例(ML-HElib) │ 加密数据上的机器学习推理
关键文件说明:
Dockerfile.*.Toolkit:多平台 Dockerfile,支持 Ubuntu / CentOS / Fedora / Alpine 四种 Linux 发行版,覆盖 amd64 和 s390x 两种 CPU 架构StartHELayers.sh:一键启动脚本,自动识别架构并从 IBM Container Registry 拉取预构建镜像DEPENDENCIES/ML-HElib/:机器学习扩展,包含加密数据上的神经网络推理示例GettingStarted.md:./RunToolkit.sh -p <platform> 模式下的入门文档(老版 FHE Toolkit)README_TOOLKIT.md:原始 FHE Toolkit 说明文档支持的 ML 任务(ML-HElib):
这些示例涵盖了 FHE 最具实用价值的场景——在医疗、金融等强监管行业中,不暴露原始数据就能完成模型推理。
本项目的部署体验设计得非常友好,核心就一条命令:
# 克隆仓库
git clone https://github.com/IBM/fhe-toolkit-linux
cd fhe-toolkit-linux
# Python 版(推荐,数据科学家友好)
./StartHELayers.sh python
# C++ 版(推荐,开发者/性能场景)
./StartHELayers.sh cpp
脚本会自动识别你的 CPU 架构(amd64 或 s390x),从 IBM Container Registry 拉取对应镜像,然后在本地启动容器。启动完成后:
http://127.0.0.1:8888,进入 Jupyter Notebook 环境,直接运行 HELayers Python API 教程https://127.0.0.1:8443,进入 code-server Web IDE,内置 VS Code 环境,可以浏览和运行 C++ 示例代码注意:C++ 版本的 Web IDE 使用自签名 HTTPS 证书,初次访问时浏览器会显示安全警告,在 Chrome 中输入
thisisunsafe即可继续。
硬件需求极低:不需要 GPU,纯 CPU 运行。官方要求 Docker >= 19,RAM >= 4GB,磁盘 >= 10GB。支持的操作系统包括:Linux 各主流发行版、macOS、Windows Subsystem for Linux(WSL2)、以及 IBM Z 平台的 z/OS Container Extensions。

图2:Web IDE 中的 CMake 配置界面,展示如何在浏览器中直接编辑和编译 C++ FHE 代码
FHE 之所以在隐私计算领域备受关注,是因为它直击数据孤岛的核心矛盾。以下是最具代表性的应用场景:
医疗数据协作:医院可以在不暴露患者隐私的前提下,与研究机构共享加密后的病历数据,用于疾病模式分析和药物研发。这解决了医疗数据"不敢共享"的合规难题。
金融风控:银行 A 和银行 B 各自持有部分客户数据,希望联合训练反欺诈模型。传统方案需要将数据汇聚到第三方,存在泄露风险;FHE 方案下各方数据始终加密,只有最终结果被解密。
云端 AI 推理:将加密数据上传至云端,在云端(云服务商也无法看到明文)完成 ML 推理后返回加密结果。本地解密后得到推理结论,云端始终不知道你在推理什么数据。
多方计算编排:FHE 是隐私保护多方计算(MPC)技术栈的重要组成部分,可与差分隐私、安全多方计算等技术组合使用,构建更完整的数据保护方案。
客观地说,FHE 虽然在学术上已有多项突破,但在生产环境中仍面临显著挑战:
性能瓶颈:在密文上做计算的计算开销是明文计算的 10^3 到 10^6 倍。以神经网络推理为例,一个普通图像分类模型在加密数据上运行可能需要几分钟甚至更长时间,而非加密情况下的毫秒级响应。这是 FHE 走向大规模商用的主要障碍。HElayers 的优化策略是在特定精度要求下尽可能减少密文操作轮数(如 SIMD batching),但极限仍在。
方案选择:HElib 支持 BGV 和 CKKS 两种主流 FHE 方案,各有其适用场景和非适用场景。CKKS 更适合近似计算的 ML 场景,BGV 在精确计算场景更有优势。普通开发者需要理解这些差异才能正确选型。
向 HElayers 迁移:fhe-toolkit-linux 仓库已标记为 archive,不在活跃维护中。IBM 推荐的替代品 HElayers 提供了更完整的 Python API、更多的教程(15+)和持续更新。对于新项目,建议直接使用 HElayers。
从 GitHub 仓库数据来看,IBM/fhe-toolkit-linux 获得了 1470 颗星,话题标签涵盖 cryptography、encryption、security-tools、research-tool 等,反映了学术界和安全社区对 FHE 技术的高度关注。项目仓库已被 archive,意味着核心开发已转向 HElayers 产品线。
然而,FHE 领域本身正处于快速发展期:2023-2024 年间,微软 SEAL、Palisade、TFHE、FHE.org 等开源 FHE 库持续迭代;硬件加速方案(如 Intel FHE 加速器)也在探索中;同态加密已被 NIST 列为后量子密码学标准化进程的重要方向之一。
对于希望在隐私保护计算领域深入研究的开发者和学者而言,IBM HElayers 及其前身 fhe-toolkit-linux 提供了一个低门槛的起点——通过 Docker 一键拉起,在浏览器中就能体验加密数据上的机器学习推理,直观感受 FHE 的能力与局限。
本报告基于 IBM/fhe-toolkit-linux 仓库(master 分支)的源码、README、配置文件及官方文档综合分析生成。