RSA算法的复杂性分析

时间:2017-12-22 12:01:55

标签: algorithm rsa

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的洞察力在于利用它。

关于上述文字的问题

  1. 我们如何在上述背景下计算x的每个值的指数时间?

1 个答案:

答案 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)。因此,此迭代只是伪多项式解决方案。