我只是计算机科学的初学者。我了解了一些有关运行时间的知识,但我不能确定我理解的是否正确。所以请帮助我。
因此,整数因数分解目前不是一个多项式时间问题,但素性测试是一个多项式时间问题。假设要检查的数字是n。如果我们运行一个程序,仅判断从1到sqrt(n)的每个数字是否能够被n整除,并且如果答案是肯定的,则存储该数字。我认为这个程序是多项式时间的,对吗?
我可能错误的一个可能原因是,因子分解程序应该找到所有质数,而不是发现的第一个质数。所以也许这就是原因。
然而,在公钥加密中,找到大数的质因子是攻击加密的关键。由于通常大数字(公钥)只是两个质数的乘积,找到其中一个质数意味着找到另一个质数。这应该是多项式时间的。那么为什么很难或不可能攻击呢?