投影矩阵在格密码中的应用

目录

一. 介绍

二. 投影矩阵

2.1 理论

2.2 例题

三. 扩展

四. 格密码的发展


一. 介绍

格密码在解决最近向量问题时(CVP)时,需要用到LLL算法。算法中有一个思想,需要把向量b_3向低维度进行投影,如下图:

投影矩阵在格密码中的应用_第1张图片

这个过程的本质就是投影的思想,在格密码中就是所谓的降维过程,其运用非常广泛,比如基于格的攻击算法,解密算法等等。

为了把这一思想更加具体化,本文章介绍投影矩阵这一工具相关的知识。

二. 投影矩阵

注意:接下来,凡是向量和矩阵均加粗,向量用小写字母,矩阵用大写字母。向量均为列向量,加了转置符号T的话,就是行向量。

2.1 理论

高中学习过,向量\bold{b}往向量\bold{a}往进行投影,如下:

投影矩阵在格密码中的应用_第2张图片

投影之后的向量,计算:

\bold{p}=\bold{a}\frac{\bold{a^Tb}}{\bold{a^Ta}}=\hat x\bold{a}

当向量维度提升为n维时,我们希望通过投影矩阵的形式来刻画这一过程。也就是投影矩阵乘以向量b就可以得到投影后的向量p,根据上式子,提炼出投影矩阵为:

\bold{P}=\frac{\bold{aa^T}}{\bold{a^Ta}}

分母是一个行向量乘以一个列向量,就是一个数。

分子是列乘以行,所以分子\bold{aa^T}是一个矩阵,很明显为一个方阵。

2.2 例题

给定一个向量\bold{a}=(1,1,1),求其投影矩阵,并总结性质。

解:

投影到向量\bold{a}=(1,1,1)上,跟投影到向量所在的直线,本质是一样的(严格来讲应该是射线,因为向量有方向)。

投影矩阵计算如下:

\bold{P}=\frac{\bold{aa^T}}{\bold{a^Ta}}=\frac{1}{3} \left[ \begin{array}{c} 1\\ 1 \\ 1 \end{array} \right] \left[ \begin{array}{ccc} 1&1&1\\ \end{array} \right]=\left[ \begin{array}{ccc} \frac{1}{3}&\frac{1}{3}&\frac{1}{3}\\ \frac{1}{3}&\frac{1}{3}&\frac{1}{3}\\ \frac{1}{3}&\frac{1}{3}&\frac{1}{3} \end{array} \right]

如果继续平方发现:

\bold{P}^2=\left[ \begin{array}{ccc} \frac{1}{3}&\frac{1}{3}&\frac{1}{3}\\ \frac{1}{3}&\frac{1}{3}&\frac{1}{3}\\ \frac{1}{3}&\frac{1}{3}&\frac{1}{3} \end{array} \right]

观察最终的投影矩阵,发现:

  • 投影矩阵是方阵;
  • 投影矩阵的平方是矩阵本身

随意给出一个向量\bold{b},经过投影\bold{Pb}来到了向量\bold{a}所在的直线。\bold{P^2b}=\bold{PPb},代表把向量\bold{Pb}继续投影到向量\bold{a}所在的直线,但其实\bold{Pb}已经在向量\bold{a}的直线上,所以不难理解为什么投影矩阵的平方是矩阵本身。

继续深入发现:

  • 投影矩阵的列空间和行空间都包含原始向量\bold{a}=(1,1,1)

我们知道\bold{Pb}代表矩阵\bold{P}对向量\bold{b}的作用,这个过程的本质就是向量\bold{b}中的每一个数都作用在矩阵\bold{P}的列向量上,当得到的结果为向量\bold{a}时,说明向量\bold{a}必定在投影矩阵的列空间上,也就是:

\bold{Pb}=\hat x\bold{a}

备注:这个跟格密码中格基的整数倍组合类似,格基一般可是看成列向量。

如果向量\bold{a}与向量\bold{b}垂直,也就是满足:

\bold{a}^T\bold{b}=0

说明向量\bold{b}投影到向量\bold{a}上为零向量,说明此时的向量\bold{b}在投影矩阵\bold{P}的零空间上,也就是:

  • 投影矩阵的零空间垂直于向量\bold{a}

根据线性代数的知识,我们知道矩阵的零空间应该跟行空间垂直。但在这个例子里面,我们发现,零空间跟列空间也垂直。不难发现,由于投影矩阵\bold{P}是对称的,列空间与行空间是一样的,这个性质就很容易理解了。

最后一个发现,就很直接了:

  • 投影矩阵的秩r=1

三. 扩展

投影矩阵跟向量\bold{a}的长度是没有关系的,举个例子,如果我们把刚才的向量\bold{a}扩大两倍,也就是:

a=\begin{bmatrix} 2\\ 2\\ 2 \end{bmatrix}

接着计算投影矩阵:

\bold{P}=\frac{1}{12}\begin{bmatrix} 2\\ 2\\ 2 \end{bmatrix} \begin{bmatrix} 2 & 2&2 \end{bmatrix}= \begin{bmatrix} \frac{1}{3} & \frac{1}{3} &\frac{1}{3} \\ \frac{1}{3} & \frac{1}{3} &\frac{1}{3} \\ \frac{1}{3}&\frac{1}{3} &\frac{1}{3} \end{bmatrix}

这个结果跟之前计算的结果是一样的。因为当把向量\bold{a}长度扩大时,经过的直线是保持不变的,这才是会影响到投影矩阵的因素。最完美的情况下,如果向量\bold{a}长度为1,也就是单位向量,那么分母位置\bold{a^Ta}则为1,投影矩阵则为:

\bold{P}=\bold{a}\bold{a}^T

来看一个二维情况下,很有用的头一年例子。给定向量\bold{a}=(cos\theta,sin\theta),经过该向量的直线为x-y平面上的\theta方向。后续我就将cos\theta简写为c,sin\theta简写为s,接着计算投影矩阵:

\bold{P}=\frac{\bold{aa}^T}{\bold{a}^T\bold{a}}=\frac{\begin{bmatrix} c\\ s \end{bmatrix}\begin{bmatrix} c & s \end{bmatrix}}{\begin{bmatrix} c & s \end{bmatrix}\begin{bmatrix} c\\ s \end{bmatrix}}

很明显,分母的位置c^2+s^2=1,接着计算投影矩阵:

\bold{P}=\begin{bmatrix} c^2 &cs \\ cs &s^2 \end{bmatrix}

这个矩阵的本质,其实就是一个线性变换。

总结以上,对一个向量的投影过程可以通过投影矩阵来实现,投影之后的结果,依旧为一个向量。记投影之后的向量为\bold{p},投影之前的向量为\bold b,投影矩阵为\bold P,则有如下结论:

\bold{p}=\bold{Pb}

四. 格密码的发展

(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 个基于格设计的密码方案,由此足以见得尽管格密码仍处于发展阶段,但目前其已经被认为是最有前景的后量子密码算法之一。
 

备注:加粗的部分为格密码中的专有名词,有感兴趣的欢迎留言,后期会不断补上。

你可能感兴趣的:(矩阵,线性代数,格密码,密码学,安全,网络安全,系统安全)