整数分解算法:从基础到高级的全面解析
素性测试的突破
在过去,高效的素性测试大多是随机算法。然而,Agrawal、Kayal和Saxena在2002年发表的“Primes is in P”论文中取得了决定性的突破,他们证明了素性问题可以在确定性多项式时间内解决。这一成果不仅在复杂性理论领域引起了轰动,还在数论、密码学等领域产生了广泛影响,甚至登上了《纽约时报》等日常媒体。
在此之前,素性问题被认为是既不属于P类问题也不是NP完全问题的稀有候选之一。但现在,素性已不再是这类问题的典型代表,而是成为了一个可以高效解决的问题。不过,这个确定性算法不太可能很快取代像Miller - Rabin测试这样的随机素性测试。原始论文中该算法的运行时间为$O(n^{12})$,经过更细致的分析,这个界限已被改进到$O(n^{6})$,但常见的随机素性测试仍然更高效,并且对于实际应用来说,随机算法的错误概率可以小到忽略不计。
分解问题概述
RSA密码系统的安全性很大程度上依赖于大整数难以被高效分解。传统上,分解问题是一个函数问题,即给定一个整数$n \geq 2$,确定$n$的素因数分解,并按升序列出这些因数。用数学语言定义为:
$factoring(n) = \langle p_1, p_2, \ldots, p_k \rangle$,其中$n = \prod_{i = 1}^{k} p_i$是$n$的素因数分解,且$p_i \leq p_j$($i < j$),所有数字都以二进制形式表示。
目前还没有已知的高效分解算法,因此分解问题是否属于FP类尚不清楚。不过,分解问题显然属于NP类,甚至已知它属于UP ∩ coUP,这表明它不太可能是
超级会员免费看
订阅专栏 解锁全文
746

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



