目录
格密码在解决最近向量问题时(CVP)时,需要用到LLL算法。算法中有一个思想,需要把向量向低维度进行投影,如下图:
这个过程的本质就是投影的思想,在格密码中就是所谓的降维过程,其运用非常广泛,比如基于格的攻击算法,解密算法等等。
为了把这一思想更加具体化,本文章介绍投影矩阵这一工具相关的知识。
注意:接下来,凡是向量和矩阵均加粗,向量用小写字母,矩阵用大写字母。向量均为列向量,加了转置符号T的话,就是行向量。
高中学习过,向量往向量往进行投影,如下:
投影之后的向量,计算:
当向量维度提升为n维时,我们希望通过投影矩阵的形式来刻画这一过程。也就是投影矩阵乘以向量b就可以得到投影后的向量p,根据上式子,提炼出投影矩阵为:
分母是一个行向量乘以一个列向量,就是一个数。
分子是列乘以行,所以分子是一个矩阵,很明显为一个方阵。
给定一个向量,求其投影矩阵,并总结性质。
解:
投影到向量上,跟投影到向量所在的直线,本质是一样的(严格来讲应该是射线,因为向量有方向)。
投影矩阵计算如下:
如果继续平方发现:
观察最终的投影矩阵,发现:
随意给出一个向量,经过投影来到了向量所在的直线。,代表把向量继续投影到向量所在的直线,但其实已经在向量的直线上,所以不难理解为什么投影矩阵的平方是矩阵本身。
继续深入发现:
我们知道代表矩阵对向量的作用,这个过程的本质就是向量中的每一个数都作用在矩阵的列向量上,当得到的结果为向量时,说明向量必定在投影矩阵的列空间上,也就是:
备注:这个跟格密码中格基的整数倍组合类似,格基一般可是看成列向量。
如果向量与向量垂直,也就是满足:
说明向量投影到向量上为零向量,说明此时的向量在投影矩阵的零空间上,也就是:
根据线性代数的知识,我们知道矩阵的零空间应该跟行空间垂直。但在这个例子里面,我们发现,零空间跟列空间也垂直。不难发现,由于投影矩阵是对称的,列空间与行空间是一样的,这个性质就很容易理解了。
最后一个发现,就很直接了:
投影矩阵跟向量的长度是没有关系的,举个例子,如果我们把刚才的向量扩大两倍,也就是:
接着计算投影矩阵:
这个结果跟之前计算的结果是一样的。因为当把向量长度扩大时,经过的直线是保持不变的,这才是会影响到投影矩阵的因素。最完美的情况下,如果向量长度为1,也就是单位向量,那么分母位置则为1,投影矩阵则为:
来看一个二维情况下,很有用的头一年例子。给定向量,经过该向量的直线为x-y平面上的方向。后续我就将简写为c,简写为s,接着计算投影矩阵:
很明显,分母的位置,接着计算投影矩阵:
这个矩阵的本质,其实就是一个线性变换。
总结以上,对一个向量的投影过程可以通过投影矩阵来实现,投影之后的结果,依旧为一个向量。记投影之后的向量为,投影之前的向量为,投影矩阵为,则有如下结论:
(1)数学结果与困难问题
格( lattice)是一种数学结构,定义为一组线性无关的非零向量(称作格基)的整系数线性组合。
对于同一个格,其可以拥有不同的格基,并且求解格中的最短向量问题( Shortest Vector Problem, SVP)和最近向量问题( Closest Vector Problem, CVP)是目前格理论中主要的非确定性多项式难题( Nondeterministic Polynomially problem, NP)。
除此之外,格中还有一些其他的困难问题,比如 LWE 问题、有界距离解码问题、小整数解问题、 gap-SVP 问题等,因此,基于格的后量子算法大多依托这些困难问题而设计,但其本质上又都可以转化为 SVP 困难问题和 CVP 困难问题。基于格的算法与现代公钥加密算法的功能一样,均可实现加解密、数字签名、属性加密、同态加密、密钥交换等多种密码学构造。
(2)格公钥密码方案
第一个基于格的密码方案是 1997 年由 Ajtai等人提出的 Ajtai-Dwork 密码体制,该方案利用格问题 中 Worst-case 到 Average-case 的规约来抵抗量子计算的攻击。第一个基于格的实用的密码方案是 1998 年由 Hoffstein 等人提出的 NTRU 公钥加密体制,该方案坚持到了 NIST第三轮的候选算法中,并且目前已经应用在某些商用的密码设备中,有望日后代替 RSA 加密算法。
在后量子加解密算法方面,通过总结目前主流的基于格的加解密算法,发现以 LWE困难问题为基础的格密码方案不仅应用广泛,而 且安全性更高。 以 NIST第四轮入选算 法CRYSTALS-Kyber 为例,该算法基于的困难问题是 M-LWE 问题,即 LWE 问题与 R-LWE 问题的组合,该问题相比于 LWE 问题而言具有易于扩展和效率高的优点。
(3)格签名方案
在后量子签名算法方面,基于格的签名算法的构造与现有的公钥密码体制略有不同。对于 RSA、 ElGamal、椭圆曲线等现有公钥密码体制而言,通过调换加解密算法的公私钥顺序即可将其转换为签名算法。但是基于格的密码方案不具有此种对偶特性,在设计基于格的后量子签名算法时通常采用零知识证明协议进行构造,即证明者证明自己拥有与对应身份的公钥相匹配的私钥,但是不泄露任何关于私钥的信息。2008 年,Gentry 等人提出了 GPV 框架,该框架指出了基于格的签名算法的设计思路。
(4)小结
格密码的研究虽然起步较晚,但是其简单的结构以及众多高复杂度的数学困难问题使其在后量子时代广受各国学者的欢迎。自 2013 年起,格密码的研究成果显著增加,在基于格的密码体制不断改进的过程中,密钥尺寸不断缩小、运算速度不断提高,逐步在安全性、密钥尺寸以及计算速度上达到更好的平衡。 2022 年7 月入选 NIST 第四轮的后量子密码中有 3 个基于格设计的密码方案,由此足以见得尽管格密码仍处于发展阶段,但目前其已经被认为是最有前景的后量子密码算法之一。
?
备注:加粗的部分为格密码中的专有名词,有感兴趣的欢迎留言,后期会不断补上。