RSA的安全性取决于一个简单的假设:
给定N,e和y =(x ^ e)mod N,它在计算上是难以处理的 确定x。
这个假设很合理。夏娃怎么会试着猜x?
她可以尝试x的所有可能值,每次检查x ^ e是否等于y mod N,但这需要指数时间。或者她可以尝试将N因子检索到p和q,然后通过反转e modulo(p-1)(q-1)来计算d,但我们认为因子分解很难。难以理解通常是令人沮丧的根源; RSA的洞察力在于利用它。
关于上述文字的问题
答案 0 :(得分:0)
https://en.wikipedia.org/wiki/Time_complexity
...时间复杂度通常表示为...的函数 输入的大小
此任务的输入大小与b
= N
中的位数成比例。因此,x
的所有可能值的迭代具有指数的时间复杂度O(2^b)
。
根据输入的数值而具有多项式时间复杂度的算法称为pseudo-polynomial algorithms。例如,众所周知integer factorization problem没有已知的多项式算法。但我们可以简单地从2
迭代到sqrt(N)
,并在N
时间内查找数字O(sqrt(N))
的所有素因子。该算法具有N
方面的多项式复杂度,但此问题的输入长度不是N
,大约是log(N)
。因此,此迭代只是伪多项式解决方案。