Lec 7 公钥加密:从 LWE 构造(Regev)
MIT 6.5610 · Lecture 7 · 关键词:LWE 假设、带噪线性方程、Regev 加密、解密正确性、噪声预算、后量子、格归约
说明:以标准 Regev (2005) 处理撰写,要点与本课"PKE from LWE"一致。
TL;DR
- LWE 把“带少量噪声的线性方程难解”变成后量子公钥密码的安全基础。
- Regev 加密用 LWE 样本生成公钥,用 0 与 q/2 的距离容纳解密噪声。
- 参数必须同时满足安全性与正确性;模数、维度和误差分布共同决定噪声预算。
0. 主线
后量子公钥的主力来自格密码。本讲建立 LWE(Learning With Errors,带误差学习) 假设,并用它构造一个简单的后量子 IND-CPA 公钥加密(Regev 方案)。核心直觉:解线性方程组很容易,但一旦给方程加上少量噪声就变得困难。
1. LWE 假设
参数:维度 n、模数 q、误差分布 χ(小幅度、如离散高斯)。秘密 s∈Zqn。
定义
LWE 分布:随机取 aiRZqn 与小误差 ei←χ,给出样本
(ai, bi=⟨ai,s⟩+eimodq).
判定-LWE:区分上述样本与均匀随机 (ai,ui) 困难。
搜索-LWE:由多个样本恢复 s 困难。
🔎 为何难:若 ei=0,收集 n 个样本做高斯消元即解出 s。误差破坏了消元——任何线性组合都会累积/放大噪声,使消元失效。判定-LWE 与搜索-LWE 多项式等价;且 Regev 证明(量子归约)LWE 最坏情况困难性可归约到格问题(如 GapSVP/SIVP),是"最坏-平均"归约的典范,赋予 LWE 很强的可信度。
2. Regev 公钥加密
设 q 为模数,消息为单比特 μ∈{0,1}。
定理
Regev PKE(单比特版)
- KeyGen:私钥 s∈Zqn;公钥为 m 个 LWE 样本,写成矩阵形式 (A, b=As+e),A∈Zqm×n。
- Enc(μ):选随机 r∈{0,1}m,输出
c1=A⊤r,c2=b⊤r+μ⋅⌊q/2⌋.
- Dec:计算 c2−s⊤c1=e⊤r+μ⌊q/2⌋。若结果接近 0 判 μ=0,接近 q/2 判 μ=1。
:::
解密正确性 / 噪声预算:
c2−s⊤c1=(As+e)⊤r+μ⌊q/2⌋−s⊤A⊤r=小噪声e⊤r+μ⌊q/2⌋.
只要累积噪声 ∣e⊤r∣<q/4,就能正确从"靠近 0 还是 q/2"判出 μ。
🔎 直觉:把 μ 编码到 {0,q/2} 两个"极点",噪声只要不超过半径 q/4 就不会越界。这条 q/4 不等式就是噪声预算(noise budget)——后续 FHE(L9–L10)的全部技术都在和噪声预算搏斗。
3. IND-CPA 安全直觉
- 公钥 (A,b) 由判定-LWE 与均匀随机不可区分;
- 一旦把 b 换成均匀随机,密文 (A⊤r, b⊤r+μ⌊q/2⌋) 中的掩码项由**留一散列引理(leftover hash lemma)**变得近均匀,从而完全掩盖 μ。
- 两步归约即得 IND-CPA。
4. 工程视角
- LWE/格是 NIST 后量子标准(ML-KEM/Kyber、ML-DSA/Dilithium)的数学基础——SaaS 长期密钥与 TLS 迁移 PQC 时会遇到。
- 实战多用 Module-LWE / Ring-LWE:用多项式环结构压缩公钥与密文体积、加速运算。
- 代价:公钥/密文比 ECC 大得多(KB 级 vs 几十字节),是迁移时的带宽/存储权衡。
- LWE 的加法/有限乘法同态性质是 FHE 的起点(见 L9)。
5. LWE 与 Regev 加密小结
- LWE = "带噪线性方程难解";判定/搜索等价,且有最坏-平均格归约背书。
- Regev PKE:公钥是 LWE 样本,加密 = 用随机子集和掩盖 μ⌊q/2⌋,解密靠噪声 <q/4。
- 安全两步归约:判定-LWE(公钥伪随机)+ 留一散列(掩码近均匀)。
- 噪声预算 q/4 是格密码的核心约束,直接通向 FHE。
在 LWE 系统里,正确性和安全性共享同一组参数;噪声太小削弱安全,太大又会使解密失败。