zntsbkhhhhhh

RSA的安全性

0
阅读(571)

                                                                     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 以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。因此,使用RSA只能加密少量数据,大量的数据加密还要靠对称密码算法。

4)同样安全级别的加密算法,RSA需要更长的密钥。这就使运算速度较慢,较对称密码算法慢几个数量级。且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。

因此,使用RSA只能加密少量数据,大量的数据加密还要靠对称密码算法。实际应用中一般用来加密对称算法的密钥,而密文多用对称加密算法加密传输。