我正在使用RSA进行加密和解密。我听说它容易受到攻击,这是真的吗?使用它有多安全?
我正在使用RSA进行加密和解密。我听说它容易受到攻击,这是真的吗?使用它有多安全?
在一起使用时,您首先获取要发送某些数据的人的公钥。然后生成一个正确大小的随机数,用作您选择的对称算法的密钥。使用RSA加密您的随机数,并将其发送到目标。然后,您使用该数字作为对称算法的密钥,并使用该对称算法加密实际数据。
这意味着在实际使用中,RSA具有一些弱点,这些弱点不一定适用于大多数对称加密算法。仅举个明显的例子,如果选择对称算法的“随机”键的方法不完全随机,则攻击者可能能够找到该键并解密数据,而不必攻击RSA加密本身(是的,在真正发布的软件中,这就是真正漏洞的源头)。
还要注意,我上面描述的基本上是RSA通常被使用的最简单的方式。真正的系统通常还要更加复杂,以提供诸如“完美的前向保密性”之类的东西。这样的系统中的RSA仍然是完全正常的RSA,但是使用它的系统仍然要复杂得多。
总结:如果要使用RSA加密,则RSA本身的安全性可能是您最不用担心的事情。从“RSA”到“安全通信系统”的路线有点像希腊神话和基督教圣经的扭曲组合物:一个有一千个错误转弯的迷宫,每个转弯都导致看起来完全相同的地方 - 但任何错误的转弯都会使你永远受到折磨和煎熬的判决。
1“完美前向保密”意味着即使攻击者在将来获取了私钥,他们也无法解密之前的通信。
不,我现在不会试图对此进行描述,但我确信在Crypto.SE上搜索会得到一些相关结果。然而,需要说明的是,尽管RSA可以用于提供PFS的系统中,但在实践中它相当不常见。如果你正确实现了数据通道的加密(例如,使用一个已存在的库来为你完成这项工作),那么你的数据通道是安全的。但是,请记住,加密的目的只是让数据通道不成为整个系统中最薄弱的环节。RSA可以做到这一点,但你仍然需要担心其他部分的安全性。