Lec 9全同态加密 I(FHE)
Lec 9 全同态加密 I(FHE)
MIT 6.5610 · Lecture 9 · 关键词:同态加密、部分/层级/全同态、LWE 上的加法与乘法、噪声增长、GSW 说明:以标准 FHE 处理撰写(Gentry 2009 / GSW 2013),要点与本课"FHE 1"一致。
TL;DR
- 全同态加密允许直接在密文上计算,并让解密结果等于对明文执行同一计算。
- LWE 密文的线性运算自然增长噪声,乘法则更快消耗噪声预算。
- GSW 类构造与自举说明“可计算性”来自控制噪声,而不是让密文变成明文。
0. 目标
在密文上直接计算,无需解密。给定 与任意电路 ,能算出 ,且服务器全程不知明文。
| 级别 | 能力 |
|---|---|
| 部分同态(PHE) | 只支持一种运算(RSA 乘法同态 / Paillier 加法同态) |
| 有限/层级同态(SHE/Leveled) | 支持有限深度的加法+乘法电路 |
| 全同态(FHE) | 支持任意深度电路 |
1. LWE 密文的天然同态
回忆 L7:LWE 密文携带小噪声,解密靠噪声 。
- 加法:两密文相加 → 明文相加,噪声相加(线性增长,便宜)。
- 乘法:可设计成明文相乘,但噪声相乘式放大(昂贵)。
定理
核心矛盾——噪声预算 每次运算消耗噪声预算(尤其乘法);一旦累积噪声超过 ,解密失败。故朴素 LWE 方案只能算有限深度电路(层级 FHE)。要做到"全"同态,必须有办法刷新噪声。
2. GSW:把密文做成矩阵
GSW (Gentry–Sahai–Waters 2013) 把密文表示为矩阵 ,使得对秘密向量 (近似特征向量)有 即 是密文矩阵的"近似特征值", 是近似特征向量。
🔎 同态由线性代数自然给出:
- 加法 :特征值相加 → 。
- 乘法 : → 。 配合 bit-decomposition( 小工具技巧) 控制乘法的噪声放大,使其可控但仍随深度累积。
3. 通向"全"同态:Bootstrapping 预告
Gentry 的突破:自举(bootstrapping)——把"解密电路"本身当成一个同态可计算的函数,在密文上同态地运行解密,从而得到一个噪声被"重置"到低水平的新密文。
🔎 直觉:密文噪声快超预算时,不真正解密(那需要私钥),而是把私钥也加密后,在密文层面跑一遍解密电路 → 输出同一明文、但噪声回到初始水平的"刷新密文"。条件是解密电路足够浅,能在剩余噪声预算内被同态求值(circular security 假设:用公钥加密自己的私钥仍安全)。L10 展开。
4. 工程视角
- FHE = "把计算外包给不可信云、却不泄露数据" 的终极工具:隐私机器学习推理、加密数据库查询、隐私分析。
- 现实瓶颈:性能。FHE 比明文计算慢几个数量级;bootstrapping 尤其昂贵。
- 实用库/方案:BGV、BFV(整数)、CKKS(近似实数/适合 ML)、TFHE(快速 bootstrapping,适合布尔电路)。
- 与 MPC(L13)取舍:FHE 单方外包但慢;MPC 多方交互但常更快。
5. 全同态加密基础小结
- 同态级别:部分 → 层级 → 全。
- LWE 密文加法便宜、乘法噪声放大;噪声预算 限制深度。
- GSW 把密文做成矩阵,明文 = 近似特征值,加/乘对应矩阵加/乘。
- "全"同态靠 bootstrapping 刷新噪声(L10)。
我的理解
可以把同态密文理解为携带“噪声预算”的类型;每个运算都会消耗预算,超出上限就失去正确性。