|
| 1 | +--- |
| 2 | +title: "同态加密技术简介" |
| 3 | +author: "马浩琨" |
| 4 | +date: "Mar 10, 2026" |
| 5 | +description: "同态加密:加密数据直接计算,守护隐私安全" |
| 6 | +latex: true |
| 7 | +pdf: true |
| 8 | +--- |
| 9 | + |
| 10 | +想象一下,你可以将加密的医疗数据上传到云端,让医生在不解密的情况下直接分析疾病风险——这不是科幻,而是同态加密(Homomorphic Encryption, HE)的力量。在传统加密方案中,如广泛使用的 AES 算法,数据一旦加密就如同上了锁的保险箱,云服务提供商无法对其进行任何计算。如果需要分析,就必须先解密,这引入了隐私泄露的风险,尤其在云计算时代,数据外包已成为常态。同态加密彻底改变了这一局面,它允许在密文状态下直接执行计算,解密后所得结果与对明文计算的结果完全一致。这项技术已成为隐私计算的核心支柱,支持 AI 联邦学习、云计算安全分析等领域。本文面向开发者、产品经理以及对隐私计算感兴趣的读者,系统介绍同态加密的基础、发展、工作原理、应用与挑战,帮助你快速把握其精髓。 |
| 11 | + |
| 12 | +## 同态加密基础概念 |
| 13 | + |
| 14 | +同态加密是一种特殊的公钥加密方案,其核心在于允许在密文上直接进行运算,而解密后的结果等价于对明文执行相同运算的结果。用数学公式简要表述,即 $\text{Enc}(f(m)) = f(\text{Enc}(m))$,其中 $m$ 是明文,$f$ 是某种函数,$\text{Enc}$ 表示加密操作。这种性质源于加密算法的「同态」特性,即加密函数保持了运算的结构。 |
| 15 | + |
| 16 | +同态加密的核心属性主要包括加法同态和乘法同态。加法同态意味着对两个密文相加,解密后得到对应明文的和,例如 $\text{Enc}(a) + \text{Enc}(b)$ 解密为 $a + b$。乘法同态则允许密文相乘,解密后为明文乘积 $\text{Enc}(a) \times \text{Enc}(b)$ 对应 $a \times b$。如果方案同时支持无限次加法和乘法组合,即可实现完全同态加密(FHE),理论上能执行任意复杂计算,如逻辑电路或机器学习模型。 |
| 17 | + |
| 18 | +根据支持运算的范围,同态加密可分为部分同态加密(PHE)、有些态加密(SWHE)和完全同态加密(FHE)。PHE 如 Paillier 方案仅支持加法运算,适用于简单求和场景;SWHE 支持有限深度的电路计算,但深度受限;FHE 则无此限制,却面临更大挑战。要理解其直观含义,不妨想象锁着的箱子里的苹果:你能直接在箱子里加减苹果数量,而无需打开箱子查看内容。这正是同态加密的魅力,它在保护隐私的同时启用计算。 |
| 19 | + |
| 20 | +为直观展示,以下是简单伪代码示例,模拟加法同态过程: |
| 21 | +``` |
| 22 | +keygen() → (pk, sk) // 生成公钥 pk 和私钥 sk |
| 23 | +ct1 = encrypt(pk, m1) // 用公钥加密明文 m1 为密文 ct1 |
| 24 | +ct2 = encrypt(pk, m2) // 加密明文 m2 为 ct2 |
| 25 | +ct_sum = add(ct1, ct2) // 在密文上执行加法,得到 ct_sum |
| 26 | +m_sum = decrypt(sk, ct_sum) // 用私钥解密,得到 m1 + m2 |
| 27 | +``` |
| 28 | +这段代码首先调用 `keygen()` 生成密钥对,其中公钥 `pk` 用于加密,私钥 `sk` 用于解密。然后分别加密两个明文 `m1` 和 `m2`,得到密文 `ct1` 和 `ct2`。关键步骤是 `add(ct1, ct2)`,这是在不解密的前提下直接运算,产生新密文 `ct_sum`。最终解密确认结果正确。此示例突显了同态属性的实用性,无需明文参与计算。 |
| 29 | + |
| 30 | +## 历史发展 |
| 31 | + |
| 32 | +同态加密的概念最早可追溯到 1978 年,RSA 论文中首次提及公钥加密的同态性质,当时仅限于乘法运算。这为后续研究奠定了基础,但真正突破发生在 2009 年,Craig Gentry 提出首个完全同态加密方案,基于格密码学,解决了理论上的「 bootstrapping 」问题,即通过自举机制刷新噪声,使无限计算成为可能。这一方案虽概念性强,却因效率低下而难以实用。 |
| 33 | + |
| 34 | +2011 年,Brakerski、Gentry 和 Vaikuntanathan 提出 BGV 方案,通过模数切换和密钥切换优化了性能,使 FHE 向实用迈进。2013 年,Cheon、Kim、Kim 和 Song 推出 CKKS 方案,支持近似浮点运算,特别适合机器学习中的向量运算。随后几年,研究者不断迭代,2020 年代进入工业落地阶段,微软 SEAL 和 OpenFHE 等开源库成熟,支持实际部署。从噪声管理和 bootstrapping 等挑战来看,同态加密已从「不可行」转向「实用」,时间线清晰展现了这一演进:从 Gentry 的理论首创,到如今的库级优化。 |
| 35 | + |
| 36 | +## 工作原理 |
| 37 | + |
| 38 | +同态加密的工作流程从密钥生成开始。调用密钥生成算法产生公钥和私钥,公钥用于加密,明钥专用于解密。随后,将明文加密为密文。同态计算阶段,云服务器使用公钥在密文上执行加法或乘法运算,每步运算会引入少量噪声。最终,数据拥有者用私钥解密结果密文,获得与明文计算等价的输出。 |
| 39 | + |
| 40 | +核心挑战在于噪声管理。每次同态乘法会放大噪声,若超过阈值,解密将失败。为此,FHE 引入 bootstrapping 机制:将噪声刷新函数编码为电路,在密文上执行自举,恢复低噪声状态。但 bootstrapping 计算密集,常成性能瓶颈。现代 FHE 多基于格密码学(Lattice-based),利用学习带错误问题(LWE)的硬度,提供抗量子攻击的安全性。电路深度直接影响噪声增长:浅层电路噪声可控,深层如神经网络则需多次刷新。 |
| 41 | + |
| 42 | +以下伪代码基于 CKKS 方案(支持浮点近似),展示完整流程: |
| 43 | +``` |
| 44 | +(pk, sk) = keygen(λ , n, scale) // 参数:安全级别 λ、多项式度 n、标度 scale |
| 45 | +ct1 = encrypt(pk, vec1) // vec1 为浮点向量,明文打包多个值 |
| 46 | +ct2 = encrypt(pk, vec2) // 类似加密 vec2 |
| 47 | +ct_add = add(ct1, ct2) // 同态加法,噪声线性增长 |
| 48 | +ct_mult = multiply(ct_add, ct3) // ct3 来自另一加密,进一步乘法,噪声平方增长 |
| 49 | +ct_result = rescale(ct_mult, scale') // 模数重缩放控制噪声 |
| 50 | +m_result = decrypt(sk, ct_result) // 解密得到近似 vec1 + vec2 * vec3 |
| 51 | +``` |
| 52 | +解读此代码:`keygen` 初始化参数,确保安全与精度平衡,如 ` λ ` 控制抗攻击强度,`n` 决定并行打包槽位(SIMD 优化)。`encrypt` 将向量打包入单个密文,提高效率。`add` 保持噪声低,而 `multiply` 导致噪声急剧增加,故需 `rescale` 调整模数,抑制增长。解密时,CKKS 输出近似值,误差可控,适用于 ML。相比传统加密,同态方案速度慢 1000 至 $10^6$ 倍,但隐私绝对。 |
| 53 | + |
| 54 | +## 应用场景与案例 |
| 55 | + |
| 56 | +同态加密在隐私保护机器学习中大放异彩,例如联邦学习中,各方上传加密梯度,云端聚合模型而不泄露数据。在安全多方计算中,它与 MPC 结合,实现多方联合建模。云端基因分析无需解密即可比对序列,财务风控则在加密交易数据上评估风险。这些场景强调高价值小规模数据处理。 |
| 57 | + |
| 58 | +微软 SEAL 库已在 Azure 云上支持深度神经网络推理,用户加密输入,云端计算输出,隐私全程保障。IBM HELib 用于医疗数据分析,医院上传患者记录,AI 诊断不暴露个人信息。中国金融项目借助百万级 TPU 加速,实现实时风控。同态加密的优势在于绝对隐私,但计算开销大,仅适配高敏感场景。未来,与 TPU 和量子硬件结合,将扩展其边界。 |
| 59 | + |
| 60 | +## 挑战与未来展望 |
| 61 | + |
| 62 | +同态加密面临性能瓶颈:噪声累积导致密钥大小达 GB 级,运算延迟高;标准化缺失阻碍互操作;量子威胁需后量子算法强化。解决方案包括硬件加速如 FPGA/ASIC 优化 bootstrapping,混合 HE 与 MPC 分担负载,以及 NIST 后量子标准化中的格方案。到 2030 年,随着 Web3 隐私需求和 AI 大模型安全推理,其实用化指日可待。 |
| 63 | + |
| 64 | +## 结尾 |
| 65 | + |
| 66 | +同态加密的核心价值在于「计算即隐私」,它让数据在加密状态下「活起来」,重塑隐私计算格局。行动起来,尝试开源库如 Microsoft SEAL(https://github.com/Microsoft/SEAL)或 OpenFHE(https://github.com/openfheorg/openfhe-development),跟随官网教程运行加法示例。常见问题解答:FHE 安全吗?基于 LWE 等难题,当前抗经典与量子攻击;何时实用?已用于生产,小规模任务秒级响应;与 MPC 区别?HE 单方计算,MPC 多方协作。进一步阅读:Craig Gentry 原论文、NIST PQC 文档。在隐私时代,你准备好拥抱同态加密了吗? |
| 67 | + |
| 68 | +*作者:技术博客作者,专注隐私计算* |
0 commit comments