LWE,RLWE

LWE与RLWE

        基于LWE问题构造的公钥密码方案虽然优点众多,但却有一个不容忽视的缺陷,那就是随着安全参数的增大,LWE密码方案的资源消耗会迅速增加,但效率却会迅速降低。为了解决这个问题,Lyubashevsky和Peikert等人在LWE问题的基础上,提出了基于特定环上的R-LWE问题,并基于此问题设计了一个公钥加密方案。R-LWE问题是LWE问题的变体,两者之间的描述相似,不同之处在于R-LWE问题的参数均取自特定环上

环的概念

整数商环

 

 

 多项式环

 

更详细应用说明在 董亚辉《LWE公钥加密方案的研究与电路实现》

学习错误问题LWE

  在所有后量子密码体制中,格是研究最活跃和最灵活的。它们具有很强的安全性,能够进行密钥交换、数字签名,以及构造出像全同态加密这样复杂的算法。尽管格密码体制的优化和安全性都需要非常复杂的数学证明,但基本思想只需要基本的线性代数。假设你有一个如下线性方程组:

 求解x是一个经典的线性代数问题,可以用高斯消元法快速求解。另一种思考方式是我们有一个神秘的函数,

给定向量a,我们在不知道x的情况下,得到了ax的结果,在查询这个函数足够多次之后,我们可以在短时间内学习f(通过求解上面的方程组)。通过这种方式,我们可以将线性代数问题重新定义为机器学习问题。

现在,假设我们在函数中引入了少量噪音,即在x和a相乘之后,我们加上一个误差项e,然后整体模上一个(中等大小的)素数 q,最后我们包含噪音的神秘函数看起来是这样的:

学习这种带噪音的神秘函数已经在数学上被证明是极其困难的。直觉告诉我们,在这种情况下使用高斯消元,它的每一步都会使误差项e变得越来越大,直到它超过关于函数的所有有用信息。在密码学文献中,这被称为错误学习问题(LWE)

基于LWE的密码学之所以被称为是基于格的密码学,是因为LWE的困难性证明依赖于这样一个事实,即在格中找到最短向量,已知它属于NP-hard问题。在这里,我们不会深入讨论格的数学问题,但我们可以把格看作是n维空间的平铺图:

格是由坐标向量表示的。在上面的例子中,通过结合e1、e2和e3(通过法向量加法)可以到达格中的任何点。最短向量问题(SVP):给定一个格,找到向量长度最短的元素。这很难直观的原因是因为并非所有给定格的坐标系都同样易于使用。在上面的例子中,我们可以用三个非常长且非常接近的坐标向量来表示格,这使得找到接近原点的向量变得更加困难。事实上,有一种规范的方法可以找到格的“最坏可能”表示。当使用这种表示时,已知最短向量问题为NP-hard问题。

在讨论如何使用LWE进行抗量子密码研究之前,我们应该指出的是LWE本身并不是NP-hard问题。它不是直接归约为SVP,而是归约为SVP的近似值,根据推理,它实际上不是NP-hard问题。尽管如此,目前还没有多项式(或次指数)时间内的算法来求解LWE。

现在让我们使用LWE问题来构建一个实际的密码体制。最简单的方案是由Oded Regev在他最初的论文中构造的,同时他也证明了LWE问题的困难度。这里,密钥是一个n维的整系数模q的向量,也就是上面提到的LWE私钥公钥是前面讨论的矩阵A,以及LWE函数的输出向量

这个公钥的一个重要特性是,当它乘以向量(-sk,1)时,我们得到误差项,大约为0。

 

为了加密一位消息m,我们取A的随机列之和,并在结果的最后一个坐标中编码m,即如果m为0,就加0,如果m为1,就加q/2。换句话说,我们选择一个元素为0或1的随机向量x,然后计算:

 

直观地说,我们已经求解了LWE函数(我们知道它很难被破解)的值,并在这个函数的输出中编码了m。

解密是有效的,因为知道了LWE私钥就将允许接收方收回消息,外加一个小的错误项。

正确选择错误分布后,它将不会使消息失真超过q/4。接收方可以测试输出是否接近于0或q/2 mod q,并相应地解码出m。

 

该体制的一个主要问题是它需要很大的密钥。要加密一位消息,需要在安全参数中使用大小为n2的公钥。然而,格密码体制的一个吸引人的方面是它们的速度非常快。

自从Regev的第一篇论文发表以来,围绕基于格密码体制的研究进行了大量工作。其中关于改进其实用性的一个关键突破是Ring-LWE,Ring-LWE是LWE问题的一个变体,其中密钥是由若干多项式表示的。这导致了密钥大小的二次减少,加速了加密和解密,仅使用n*log(n)次操作(使用快速傅立叶变换,FFT)。

Kyber是一种密钥封装机制(KEM),它遵循与上述系统类似的构造,但是使用了一些奇特的代数数论来获得比Ring-LWE更好的性能。对于合理的安全参数,密钥大小约为1kb(仍然很大),但加密和解密时间大约为0.075毫秒。考虑到这种速度是通过软件实现的,Kyber KEM似乎很有希望用于后量子密码中的密钥交换。

Dilithium是一种基于与Kyber类似技术的数字签名方案。它的细节超出了本文的范围,但值得一提的是,它也实现了相当不错的性能。公钥大小约为1kb,签名为2kb。这也非常高效。在Skylake处理器上,计算签名所需的平均周期约为200万次。验证的平均周期为39万次。

摘自 http://www.qukuaiwang.com.cn/news/13589.html

 

图示

 

 

 如图在 LWE 问题中,蓝色的部分是均匀随机的(或与均匀随机不可区分), [公式] 是私钥, [公式] 是不公开的部分。简单来说,就是一个均匀随机的矩阵,乘上服从某个分布的私钥,再加上一个服从某个分布的错误扰动项,计算得到的 [公式] 与均匀随机不可区分

RLWE 与 LWE 问题很类似,只不过在 RLWE 问题中,和 LWE 相比,直观的看所有元素要"小了很多"。因为 RLWE 中,每个部分都是一个多项式,而不是 LWE 问题中的矩阵这极大的提高了方案的实际效率,并减小了通信开销。

 

类似的更灵活的问题还有 MLWE (Module Learning with Errors):

 

MLWE 的好处是,对于 [公式] 的情况, [公式] 可以达到与 RLWE 问题中 [公式] 类似的安全强度。那么,当 [公式] 时,可以得到比 RLWE 更灵活的安全性-性能 tradeoff。

 

摘自 https://zhuanlan.zhihu.com/p/45880224

 董亚辉《LWE公钥加密方案的研究与电路实现》

https://blog.csdn.net/weixin_43255133/article/details/83031862

http://www.qukuaiwang.com.cn/news/13589.html

posted @ 2020-03-30 18:35  xdyixia  阅读(8423)  评论(0编辑  收藏  举报