浮点 LLL 算法:理论与实践面面观
1. 输出质量
在低维度情况下,LLL 算法计算出的向量长度与格最小值相近甚至相等。但对于基于格的密码系统而言,随着维度增加,这种情况不再出现。
通过实验发现,对于不同类型的输入格基,LLL 算法的输出质量具有相似性。例如,在图 5.8 中,每个点对应一个实验:生成一个随机背包型基($B = 2^{100 - d}$),使用 $L_2$ 算法(参数 $(\delta, \eta) = (0.999, 0.501)$)进行约化,点的值为 $\frac{1}{d} \log_2 \frac{|b_1|}{\text{vol}(L)^{1/d}}$。实验表明,随着维度 $d$ 的增加,第一个输出向量满足 $|b_1| \approx c^d \cdot \text{vol}(L)^{1/d}$,其中 $c \approx 2^{0.03} \approx 1.02$。即使在中等维度下,指数因子 $1.02^d$ 仍然很小,如 $(1.02)^{50} \approx 2.7$,$(1.02)^{100} \approx 7.2$。
从局部二维基(即 $(b_{i - 1}^ , b_i^ + \mu_{i, i - 1}b_{i - 1}^ )$ 对)的角度可以解释这一全局现象。忽略首尾的一些局部对后,其他局部对的行为相似。在图 5.9 中,每个点对应一个局部对(坐标为 $(\mu_{i, i - 1}, |b_i^ | / |b_{i - 1}^ |)$)。这些观察结果在维度 40 到 50 之间趋于稳定,低维度下行为不同(特别是 $\frac{1}{d} \log_2 \frac{|b_1|
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



