1. 引言
Zama 的技术通过 全同态加密 (Fully Homomorphic Encryption, FHE) 实现对加密数据的私密计算。然而,在任何应用中,一个主要的问题是密钥管理 ------ 特别是如何保护和管理用于解密数据的私钥。
为了解决该问题,Zama 团队开发了一个基于门限密码学的 门限密钥管理系统(Threshold Key Management System,TKMS) 。具体来说,与依赖单一方持有完整解密密钥不同,TKMS 会将该解密密钥拆分成多个片段,并分发给多个参与方。这些片段在密码操作过程中永远不会被重新组合 ------ 类似于区块链领域中的 多方安全计算 (Multi-Party Computation, MPC) 钱包的工作机制。
2. 何为 TKMS?
TKMS 构建在一个安全的 MPC 协议之上,支持几乎所有 FHE 算法的密钥管理。虽然本实现针对 TFHE 进行了优化(以便配合 fhEVM 实现隐私智能合约),但其底层的 MPC 系统足够通用,可以调整用于其他类型的 FHE 密钥,如 BGV 和 BFV 算法中的密钥。
2025年4月中旬,Zama 发布了支撑 TKMS 技术的两个关键资源:
- 一个开源的 MPC 库 ------https://github.com/zama-ai/threshold-fhe(Rust),实现了 Zama TKMS 中所有门限操作;
- 一份全面的密码学报告 ------超过 250 页的技术报告《Threshold (Fully) Homomorphic Encryption》,正式描述了支撑该 MPC 技术实现的各种密码协议。这份文档是 Zama 团队计划提交给 NIST 门限密码学项目 的草稿版本。
2.1 关于threshold-fhe库
threshold-fhe 库 是一个 Rust 库,实现了 Zama 产品中 TFHE 算法的多方计算(MPC)算法,涵盖以下功能:
- 门限解密
- 门限密钥生成
- 密钥重新分发(Key Resharing)
此外,该库还包含用于生成 公共参考字符串(Common Reference String, CRS) 的协议代码,CRS 被用于 Zama 的 TFHE-rs 库中的 零知识知识证明(zero-knowledge proofs of knowledge,ZKPoK) 协议中。此外,该库还实现了简单版本的 BGV 和 BFV 加密方案中的门限解密与密钥生成,即使这些部分目前并未被 Zama 的产品所使用。
2.1.1 threshold-fhe库适应性与性能
根据参与方数量和所需门限的不同,为了平衡可行性与效率,该库实现了多种 MPC 协议选项:
- 当参与方数量较少(大约少于 18)时,采用 门限 t < n 3 t < \frac{n}{3} t<3n 的协议;
- 当参与方数量较多时,采用 门限 t < n 4 t < \frac{n}{4} t<4n 的协议。
其中, t t t 表示协议能够容忍的恶意参与方数量。
这些 MPC 协议基于 Shamir 秘密分享 (Shamir Secret Sharing) 和 伽罗瓦环 (Galois Rings),具备强鲁棒性 ,也就是说,它们保证输出可交付(Guaranteed Output Deliver) 。通俗来说,只要恶意参与方不超过 t t t 个,其余诚实参与方就一定能够得到正确的输出结果。
有趣的是,当总参与方数量较少时,threshold-fhe库的门限解密协议只需要一轮通信,这使其特别适合在广域网(WAN)等高延迟网络环境下运行。
- 如,在有 10 个参与方的情况下,门限解密最多 2048 个密文的过程耗时不足一秒。
最耗时的部分无疑是密钥生成 (但该过程只会在协议初始化阶段执行一次)。不过,Zama 的实现高度并行化,可以根据需要进行横向扩展。
此外,组成门限密钥生成 和门限解密 的不同模块也可以独立复用 ,如用于学术研究。用户可以在https://github.com/zama-ai/threshold-fhe(Rust)库中找到如何运行软件和生成基准测试结果的说明。
2.2 Threshold (Fully) Homomorphic Encryption协议报告:深入剖析多方计算(MPC)
除了https://github.com/zama-ai/threshold-fhe(Rust)代码库,Zama团队还发布了一份超过 250 页的技术报告《Threshold (Fully) Homomorphic Encryption》,正式描述了 MPC 协议栈背后的数学原理与协议细节,其中包括:
- 对 TFHE 实现的门限密码学(已在 Zama 产品中支持);
- 对另外两种流行 FHE 算法 BGV 和 BFV 的门限版本实现(注意,这两种算法目前在代码库中仅作为实验性支持);
- 关于门限解密、密钥生成与密钥重新分发(resharing)流程的详细解释;
- 三种不同的零知识证明(Zero-Knowledge Proof)技术,用于验证生成的 FHE 密文是否被正确加密(目前仅有其中两种在 TFHE-rs 库中实现);
- 用于实现基于向量承诺(vector-commitment)的零知识知识证明(ZKPoKs)的 CRS 生成协议。
为了保证文档易读性,在该报告中主要采用了 THFE 、BGV 和 BFV 的简化版本。
参考资料
1\] Zama团队2025年4月17日博客 [Introducing Zama's Threshold Key Management System (TKMS)](https://www.zama.ai/post/introducing-zama-threshold-key-management-system-tkms)