我一直在读关于克里斯托·凯伯的文章,我读到在密钥生成过程中,公钥pk是使用秘密密钥s计算的,其方式是将误差e添加到随机矩阵A &秘密密钥s的内积中。
有人说,攻击者试图从公钥中破解密钥需要解决Module-LWE问题,这在计算上是很困难的。
我的问题是MLWE是如何用于生成公钥的&是什么使得它变得如此困难,以至于攻击者无法强行破解秘密密钥s。
发布于 2023-02-27 09:53:35
在Kyber中,矩阵A具有特殊的结构。具体来说,在Kyber512中,它的形式是
在Kyber768中,它的形式
在Kyber1024中,它的形式是
其中,每个N_{i,j}都是形式的负反比矩阵。
这个矩阵的特殊形式意味着矩阵的乘法。
当乘法执行模(c_0+c_1X+\cdots c_{255}X^{255})(\ell_0+\ell_1X+\cdots+\ell_{255}X^{255})=r_0+r_1X+\cdots+r_{255}X^{255}时,与乘法X^{256}+1是一致的。
这意味着在Kyber512中,A\mathbf s+\mathbf e表达式同样可以被认为代表环\mathbb Z[X]/\langle q, X^{256}+1\rangle上的下列矩阵方程
( Kyber768和Kyber1024有类似的表达式)。这是一个带有错误问题的模块学习,有两个样本(分别在Kyber768和Kyber1024的情况下分别为3和4)。我们认为,答案向量的分量在统计上与我们环的一致元素是无法区分的。
要“蛮力”一种解决方案,人们可以尝试s_1(X)和s_2(X)的所有可能值,看看当乘以A时,它们是否产生了接近公钥的答案。在Kyber512中,s_i(X)的系数都来自范围-3,-2,-1,0,1,2,3,这为私钥提供了7^{512}的可能性。打破Kyber512是“只”意味着要像蛮力一样难--强制使用128位的密钥,而这其中有2^{128}的可能性。即使我们在排气方面很聪明,关键空间也比安全要求所允许的要大得多。
https://crypto.stackexchange.com/questions/104392
复制相似问题