原文:https://nigelsmart.github.io/LWE.html
作者:Nigel Smart
译者:Kurt Pan
2024 年 4 月 10 日,陈一镭在 ePrint 上发表了题为“格问题的量子算法”的论文(https://eprint.iacr.org/2024/555)。他针对带错误学习(LWE)问题的某些参数集提出了一种“多项式时间”的量子算法。这很重要,因为 LWE 构成了 NIST 选择的大多数后量子算法的基础,而且还构成了许多提供高级功能(如全同态加密 (FHE))的密码构造的基础。这篇文章中,我会试图弄清楚这项工作的可能影响是什么。
阅读以下内容时有一些注意点。其中最值得注意的是:
好,在此共识基础上,我们开始定义 LWE 问题本身。这是带噪声版本的线性代数。(以其最基础的形式)由四个值 参数化。
值 用于定义模约减中的模数。接下来,我们假设将 表示为 范围内的整数值,即在所有模运算中进行中心约减。
值 用于定义分布 。通常选择为 上具有标准差 的类高斯分布, 尽管也可以使用其他分布(例如具有大致相同标准差的均匀分布)。在任何情况下,分布 都会以极大概率对某个小常数 生成 范围内的整数值。下面可以将这个 想象为比如说10。
LWE 问题由秘密向量 和秘密向量 定义,即从分布的个副本的乘积中选择 。因此 包含 个“小”值。
然后, 选择维度 的公开矩阵 , 其中每项在 中选择, 并计算值
从复杂性的角度看,需要注意的关键点如下。复杂性理论中,通常将复杂度视为问题输入大小的函数。LWE 中输入问题的大小为
因此大小不依赖于 。当谈论求解 LWE 的多项式时间算法(在通常的复杂性理论意义上)时,我们应只考虑复杂度为 的多项式函数的算法。
值 称为LWE维度, 值 表示 “LWE样本” 的数量。和在普通线性代数中一样为了固定解, 需要至少与变量一样多的方程数, 为了固定 , 这里也需要 。这意味着要求样本数量 。
但 对于LWE的难度至关重要:
的值在应用中很重要:
值的重要性早已为人所知。Regev 的 LWE 原始难度的结果就仅在 时成立。有趣的是, 这个不等式仅适用于上述 TFHE 式的参数, 不适用于 Kyber、Dilithium 或 BGV 的参数集。
确定 LWE 问题参数的经典方法是使用lattice-estimator(https://lattice-estimator.readthedocs.io)。对给定的参数集运行所有已知的格算法, 并尝试确定解决 LWE 问题所需的经典操作的数量。如果得出的值大于 , 那么通常会认为这些参数是安全的。
但也有反直觉的。例如,如果保持 和 不变, 但只增加 , 那么 LWE 问题就会变得更容易!这与(比如说)RSA 或 DLP 不同, 对它们只是增加模数只会变得更安全。
当观察量子复杂度时, 也有点反直觉。例如, Grover 的算法应该蕴含 AES-128 在后量子世界中不被认为是安全的, 因为通过 Grover 的算法对 AES-128 进行攻击将需要 量子“操作”。然而, 大多数人认为 AES-128 在后量子世界中仍将保持安全, 因为适用于 AES-128 的Grover 算法的整体复杂度将远远超出任何可行的量子计算机。
关键要点:
陈的算法使用一个量子子程序, 调用 次,以生成线性方程组,然后可以通过经典方法求解。为获得满秩线性方程组,该量子子程序会按照需要被调用多次。
算法仅在 是类高斯分布时给出,但我们假设可以删除此限制(因此我们可以将其应用于基于 LWE 的实际方案中使用的分布)。
正如前面所说,我不是量子算法方面的专家,所以这里不会讨论量子子程序,但可以讨论陈给出的定理的陈述:
定理:令 ,使得
则有一种量子算法可以在 时间内求解 LWE。
现在我们更详细地来考虑这个陈述。
首先需要考虑的是条件部分。
我们已经讨论过, 秘密中需要的样本 需要多于变量 , 因此第一个条件应该不足为奇。
现在看第二个条件, 即 。关键点是 对 的依赖。我们将这些分别映射到上面考虑的四种情况中。
但是, 对 Kyber 也有 。因此, 并没有
当然, 所提出的攻击 (如果是正确的) 可能会得到改进, 但似乎不太可能按原样应用于 Kyber。
因此,在攻击方面只需进行较少的改进即可将其应用于 Dilithium。
但对于 BGV 有 。因此看来该攻击应该适用于 BGV。
但 ! 因此, 该攻击需要进行相当多的改进才能应用于 TFHE。
讨论了该定理适用的条件之后, 现在转向定理的结论部分。这里我们需要考虑算法的复杂度, 即
哎呀, 定理并没有给出任何所蕴含的常数或多项式次数。
Shor 的算法对 RSA 和 ECDLP 来说是毁灭性的, 因为量子复杂度实际上并没有那么大。因此, 如果量子计算机建成, 那么 RSA 和 ECDLP 很可能会被破解。另一方面, Grover 针对 AES-128 的算法的量子复杂度非常高, 因此需要一台巨大的量子计算机才能削弱 AES-128 的安全性。从这两个例子我们可以得出结论:常数很重要。(Kurt Pan注:似乎从这两个例子得不到这个结论……)
然而, 我们注意到复杂度取决于 , 即取决于一个输入问题大小未指定的参数。因此, 我们必须依次查看其中给出不同的 值的每个方案。
以下是一个非常粗略的检查, 但它说明了为什么常数在这里很重要。我们可以了解该复杂度对用一台早期的量子计算机发起攻击是否可行。
我所做的是将复杂度估计中的项 、 和 替换为正在讨论的四个方案中2的幂的这些值(用 近似 )。然后大家可以对蕴含的常数进行自己的猜测, 并决定需要担心哪种方案。
对于 Kyber 和 Dilithium,我们看到,假设蕴含的常数和次数相对较小,如果可以改进定理的条件部分,则攻击可能是可行的。
对于 BGV,我们已经注意到定理的条件是满足的,因此攻击是否实用(在未来的量子计算机上)取决于攻击对 值的依赖。
我怀疑对的依赖性相当弱,因为它可能与量子子程序的重复次数有关,而不是与子程序本身的复杂性有关。但这纯粹是我的猜测。
对于 TFHE,我们看到,假设可以改进定理条件以便将 TFHE 纳入范围,复杂性也不需要依赖于 的过高次的多项式,因为对于标准 TFHE 参数,这已经是 了。
人们对于这篇新论文应当去芜存菁。除了我之前的关于尚未经过同行评审,尚未建造出量子计算机的注意点外,还有一些额外的注意点。