LWE(Learning With Errors,带错误学习) 由密码学家 Oded Regev 在 2005 年提出,以下将从生活中的直觉出发,一步步深入到它的数学定义,最后看看它如何在密码学中发挥作用。
第一步:直觉理解——“被噪音污染的方程组”
要理解 LWE,我们先回到初中数学——求解多元一次方程组。
假设我心里藏着一个秘密数字组合,比如 。 为了让你猜出 ,我给你提供几个等式(所有的运算都在对某一个数取模的环境下,比如模 17,即逢 17 归零):
如果你学过线性代数或高斯消元法,你知道只要方程数量足够,求解 和 简直易如反掌(计算复杂度是多项式级别的)。
但是,LWE 给这个简单的游戏加了一个“致命”的规则:引入微小的“噪音(Error)”。
现在,我在告诉你结果之前,偷偷在每个结果上加上或减去一个很小的随机数(比如 +1, -1 或 0):
- (原本是6,我加了1)
- (原本是7,我减了1)
- ...我再给你成百上千个这样“带有微小错误”的方程...
神奇的事情发生了: 一旦加上了这些未知的、随机的微小噪音,传统的“高斯消元法”就彻底失效了。因为在消元的过程中,你需要将方程相乘相减,这会导致原本只有 的噪音发生级数级爆炸,最终彻底淹没掉正确答案。
在不知道噪音是什么的情况下,给你再多的方程,你也很难反推出我的秘密 。 这个“求解带噪音的线性方程组”的问题,就是 LWE 问题。
第二步:LWE 的严谨数学定义
在密码学中,我们通常用矩阵和向量来描述 LWE。
设定以下参数:
- :一个素数(所有的加法乘法都是 )。
- :一个长度为 的秘密向量(Secret vector),这就是我们的私钥。
- :一个 的完全随机的矩阵(公开的)。
- :一个长度为 的误差向量/噪音向量(Error vector)。 中的数字是从一个特定的概率分布(通常是离散高斯分布,大部分数字集中在 0 附近,值非常小)中随机抽取的。
计算结果向量:
LWE 问题分为两种形式,在数学上都被证明是极度困难的:
- 搜索型 LWE (Search LWE):把公开矩阵 和带噪音的结果 给你,请你求出秘密 。
- 判定型 LWE (Decision LWE):我给你两组数据,一组是真实的 ,另一组是完全随机生成的无意义数据 。请你分辨出哪一组是真实算出来的 LWE 数据。
第三步:为什么 LWE 问题如此困难?(底层逻辑)
你可能会问:不就是加了一点噪音吗?用超级计算机暴力破解不行吗?
不行。LWE 的困难度是由深厚的**格理论(Lattice Theory)**作为背书的。
1. 几何上的等价性(寻找空间中最近的点)
如果没有误差 ,计算 就相当于在多维空间中,用 的列向量拼出一个整齐的“网格(Lattice)”, 正好落在这个网格的交叉点上。但因为加上了误差 , 意味着结果 偏离了网格点,落在了虚空中的某个位置。求解 LWE,在几何上等价于:“在这个多维空间里,给你一个不在网格上的点 ,请你找出离它最近的那个网格点 。” 这被称为格密码学中的 BDD 问题(有界距离解码问题),已被证明在最坏情况下是极其困难的(NP-hard 级别的难题,连量子计算机目前都束手无策)。
2. Oded Regev 的神级证明
Regev 证明了一个让密码学界疯狂的定理:最坏情况到平均情况的归约(Worst-case to Average-case Reduction)。意思是:只要“格”上那些几百年都没人能解开的终极数学难题(最坏情况)是无解的,那么我们随便随机生成的一个 LWE 方程组(平均情况),就是无解的。这保证了用 LWE 构造的密码系统,不需要精挑细选特定的参数,随便生成一把钥匙,就拥有顶级安全性。
第四步:如何用 LWE 来加密?(一个玩具级的例子)
明白了原理,我们来看看密码学家是怎么用它来做公钥加密的(类似 RSA,但抗量子)。
1. 生成公私钥对 (KeyGen)
- 我随机挑选秘密向量 作为我的私钥。
- 我随机生成矩阵 和误差 ,计算 。
- 我把 作为我的公钥发布出去。
2. 加密信息 (Encrypt)
假设你要发送给我一个比特的信息 m(m 是 0 或 1)。
- 你拿到我的公钥 。
- 你从 中随机挑几行加起来得到 ,把 中对应的行加起来得到 。
- 如果你想发送
0,你什么都不做。 - 如果你想发送
1,你在 上加上一个很大的数字(通常是 ,相当于把信号放在噪音之上)。 - 你把密文 发给我。
3. 解密信息 (Decrypt)
- 我收到 ,因为我手里有私钥 ,我计算 。
- 因为数学上的抵消作用,这个结果会等于:累加的噪音 + (你加上的 信号)。
- 我知道噪音 是很小的。所以:
- 如果最终结果接近 0,说明你没有加 ,我判定你发送的是
0。 - 如果最终结果接近 ,我判定你发送的是
1。
- 如果最终结果接近 0,说明你没有加 ,我判定你发送的是
精妙之处就在于:不知道私钥 的黑客,看着密文 ,由于噪音的存在,他看到的就是一堆毫无规律的乱码。而拥有 的人,就能把原始的矩阵抵消掉,在噪音中“听”出那个响亮的信号()。
总结
LWE 是一种“利用微小噪音来掩盖线性方程组解”的数学困难问题。它易于计算(只包含矩阵相乘和加法),但极难逆向破解(抗量子计算机)。它就像水泥一样,彻底塑造了后量子密码学和全同态加密的现代大厦。