RSA的安全性
在RSA密码应用中,公钥KU是被公开的,即e和n的数值 是 可以被第三方得到 的 。破解RSA密码的问题就是从已知的e和n的数值(n等于pq),想 办 法求出d的数值,这样就可以得到私钥来破解密文。 从RSA的原理中我们知道 (d*e) mod ((p-1)*(q-1)) = 1 , 可以推导出 d ≡e-1 (mod((p-1)(q-1)))或de≡1 (mod((p-1)(q-1))) 由此 我们可以看出。密码破解的实质问题是:从 p、 q的数值,去求出(p-1)和(q-1)。换句话说,只要求出p和q的值,我们就能求出d的值而得到私钥。 当p和q是一个大素数的时候,从它们的积p* q去分解因子p和q,这是一个公认的数学难题。比如当p * q大到1024位时,迄今为止还没有人能够利用任何计算工具去完成分解因子的任务。因此,RSA从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。 但是RSA除了上述优点之外,也是有缺点的,RSA的缺点 如下 : 1)虽然RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。 2)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。 3)分组长度太大,为保证安全性,n 至少也要 600 bits 以上,使运算代价很高,尤其是速度较慢