格密码LLL算法:如何解决最短向量SVP问题(3)(完结篇)

目录

一. 运算每个正交基过程是多项式时间

二. 对原格基的操作都为多项式时间

三. 算法总运行时间

四. 开放性问题


系列文章:

格密码LLL算法:如何解决最短向量SVP问题(1)-CSDN博客

格密码LLL算法:如何解决最短向量SVP问题(2)_lll算法复杂度-CSDN博客

一. 运算每个正交基过程是多项式时间

在运算正交基对应的系数时,依据克莱姆定理,可得系数的计算公式如下:

 此结果表明a_j为有理数,分母为(det \Lambda_{i-1})^2,此结果是用来计算正交基的,如下:

\tilde b_i=b_i+\sum_{j=1}^{i-1}a_jb_j

由此可说明,如下两个表达式一定是整数形式:

D_{B,i}^2\tilde b_i,\quad D_B^2\tilde b_i

显然易得正交基的下限:

||\tilde b_j||\geq \frac{1}{D_{B,j}^2}

由此易得正交基计算的上限如下:

二. 对原格基的操作都为多项式时间

此部分主要想证明,在进行约化迭代时,原格基长度不会发生太大改变。 

每一步出现的原基向量b_i都可以利用M相关的多项式比特表示。原因可见如下不等式:

上式子中第一个等号依据\tilde b_1,\cdots,\tilde b_n互相垂直可得,第一个不等号依据前文讨论过的正交基上限以及LLL约化基中的|\mu_{i,j}|\leq \frac{1}{2}可得。

此结果说明原格基向量的长度有个上限为\sqrt n D_B^2,表示为多项式时间比特为log(\sqrt n D_B^2)。到此可以证明原格基b_i可以表示为关于M的多项式关系。

接下来需要证明在进行约化迭代时,b_i的长度不会变化太大。考虑约化操作的内循环系数,可以得到:

上式子中第一个不等号遵循取整的定义与Cauchy-Schwartz不等式,第二个不等号遵循正交基的下限问题。 

紧接着可得如下不等式:

第一个不等号遵循“三角不等式”定理;第二个不等号依据|c_{ij}|所满足的不等式;第三个不等号将向量||b_j||的长度上限代入;

三角不等式定理,可以通过如下向量关系得到:

|\overrightarrow m-\overrightarrow n|\leq |\overrightarrow m|+|\overrightarrow n|

可以通过画一个三角形来理解此定理,当两向量反方向时取得等号。

最终该不等式说明,在经过n次迭代后,向量b_i的长度增长最多(4nD_B)^{4n}倍。很显然该结果进行对数运算后也是多项式poly(M)时间比特可表示的。

三. 算法总运行时间

在证明以上推论时,只有一个地方使用到了如下不等式:

|\mu_{i,j}|\leq\frac{1}{2},\quad j<i

其他的地方都是利用了如下不等式就证明清楚了相关定理:

|\mu_{i+1,i}|\leq \frac{1}{2}

这其实也表明可以只操作两个相邻向量之间的关系来优化时间复杂度。在这种思想的优化算法中,迭代次数肯定依旧是多项式时间的,但是约化运算过程是否是多项式时间算法的就不得而知了。

到此为止,可以得出LLL算法跟输入的规模之间确实呈现出一种多项式时间算法关系,该算法是一个有效算法。

四. 开放性问题

历史上,Gama和Ngujen曾利用典型格做过很多实验(此实验刊登于此篇论文《N. Gama and P. Q. Nguyen. Predicting lattice reduction. In EUROCRYPT, pages 31–51, 2008》),发现LLL算法最终得到的结果比预计的最坏的情况要好。输出的结果与维度呈现指数关系,但是底数会比(\delta-1/4)^{-1/2}(该数可以通过LLL算法得到)要小得多。至于说为什么,还值得进一步探究。

将LLL算法如何应用在特殊格上(例如整数格Z^n的旋转体,理想格),也是一个值得探究的问题。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唠嗑!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值