目录
系列文章:
格密码LLL算法:如何解决最短向量SVP问题(1)-CSDN博客
格密码LLL算法:如何解决最短向量SVP问题(2)_lll算法复杂度-CSDN博客
一. 运算每个正交基过程是多项式时间
在运算正交基对应的系数时,依据克莱姆定理,可得系数的计算公式如下:
此结果表明
为有理数,分母为
,此结果是用来计算正交基的,如下:
由此可说明,如下两个表达式一定是整数形式:
显然易得正交基的下限:
由此易得正交基计算的上限如下:
二. 对原格基的操作都为多项式时间
此部分主要想证明,在进行约化迭代时,原格基长度不会发生太大改变。
每一步出现的原基向量都可以利用M相关的多项式比特表示。原因可见如下不等式:
上式子中第一个等号依据互相垂直可得,第一个不等号依据前文讨论过的正交基上限以及LLL约化基中的
可得。
此结果说明原格基向量的长度有个上限为,表示为多项式时间比特为
。到此可以证明原格基
可以表示为关于M的多项式关系。
接下来需要证明在进行约化迭代时,的长度不会变化太大。考虑约化操作的内循环系数,可以得到:
上式子中第一个不等号遵循取整的定义与Cauchy-Schwartz不等式,第二个不等号遵循正交基的下限问题。
紧接着可得如下不等式:
第一个不等号遵循“三角不等式”定理;第二个不等号依据所满足的不等式;第三个不等号将向量
的长度上限代入;
三角不等式定理,可以通过如下向量关系得到:
可以通过画一个三角形来理解此定理,当两向量反方向时取得等号。
最终该不等式说明,在经过n次迭代后,向量的长度增长最多
倍。很显然该结果进行对数运算后也是多项式poly(M)时间比特可表示的。
三. 算法总运行时间
在证明以上推论时,只有一个地方使用到了如下不等式:
其他的地方都是利用了如下不等式就证明清楚了相关定理:
这其实也表明可以只操作两个相邻向量之间的关系来优化时间复杂度。在这种思想的优化算法中,迭代次数肯定依旧是多项式时间的,但是约化运算过程是否是多项式时间算法的就不得而知了。
到此为止,可以得出LLL算法跟输入的规模之间确实呈现出一种多项式时间算法关系,该算法是一个有效算法。
四. 开放性问题
历史上,Gama和Ngujen曾利用典型格做过很多实验(此实验刊登于此篇论文《N. Gama and P. Q. Nguyen. Predicting lattice reduction. In EUROCRYPT, pages 31–51, 2008》),发现LLL算法最终得到的结果比预计的最坏的情况要好。输出的结果与维度呈现指数关系,但是底数会比(该数可以通过LLL算法得到)要小得多。至于说为什么,还值得进一步探究。
将LLL算法如何应用在特殊格上(例如整数格的旋转体,理想格),也是一个值得探究的问题。