利用动态系统分析分块格算法
在密码分析领域,强格约化是攻击基于格的密码系统的关键要素。在最强但不实用的HKZ约化和较弱但快速的LLL约化之间,研究人员一直在寻找高效的折衷方案。本文将深入探讨BKZ算法,这是目前在实践中实现时间/质量最佳折衷的算法之一。
1. 引言
- 格与最短向量问题 :一个满秩的n维格L是由一些线性无关向量的整数线性组合构成的集合。格中最短非零向量的范数λ1(L)被称为格的最小值。计算这个最短向量的问题被称为最短向量问题(SVP),它在随机归约下是NP难问题。目前已知的最佳SVP求解器的复杂度至少是指数级的。
- 不同的格约化方法
- HKZ约化 :找到达到λ1(L)的向量与计算格的HKZ约化基在多项式时间内等价,但HKZ约化的计算时间是指数级的。
- LLL约化 :可以在多项式时间内计算,但第一个向量仅满足较弱的不等式。
- 时间/质量折衷 :1987年,Schnorr引入了LLL和HKZ之间的时间/质量折衷方案。本文主要分析BKZ算法,它是目前最实用的折衷方案之一。
- 格约化在密码分析中的应用 :格约化在密码分析中是一种流行的工具。对于许多应用,LLL约化就足够了,但要破解基于格的密码系统,需要更高质量的约化。基于格的密码学起源于Ajtai的哈希函数以及GGH和NTRU加密方案,目前正受到广泛关注。