福尔摩斯 fplll 包含几种格算法的实现。 该实现依赖于浮点正交化,并且 LLL [ ] 是代码的核心,因此得名。 它包括浮点 LLL 缩减算法的实现 [ , ],提供不同的速度/保证比率。 它包含一个“包装器”,用于选择估计的最佳变体序列,以便尽可能快地提供有保证的输出 [ ]。 在包装器的情况下,变体的连续性对用户来说是无知的。 它包括 BKZ 缩减算法 [ ] 的实现,包括 BKZ-2.0 [ ] 改进(极端枚举修剪、块的预处理、提前终止)。 此外,还支持滑动减少[ ]和自双BKZ[ ]。 它还包括 Kannan-Fincke-Pohst 算法 [ , ] 的浮点实现,该算法可找到最短的非零晶格向量。 最后,它包含枚举算法的一个变体,该算法计算最接近给定向量的网格向量,该向量属于网格的实际跨度。 fplll 是在自由软件基金会发布的(2.1 版,或您选
1