使用RSA算法时,如果明文及其密文相同,是否存在风险?如果是,为什么?

时间:2011-02-23 01:46:51

标签: encryption rsa

如果RSA为给定的明文生成完全相同的密文,是否存在风险?

3 个答案:

答案 0 :(得分:2)

您应该只对(a)用于对称密码的随机生成的会话密钥使用RSA算法(b)用作签名机制一部分的加密散列函数。

具体而言,请参阅Handbook of Applied Cryptography第290页(第8章:)

仅对随机和无法区分的随机输入使用RSA的一个非常好的好处是,您永远不会有将密文解释为明文的风险。

直接在数据上使用RSA是危险的。

答案 1 :(得分:1)

使用1024位公钥的RSA加密可加密最多117个字节的消息,相应的密文长度为128个字节。更一般地说,对于所有密钥大小和标准PKCS#1填充模式,密文总是比明文长。因此,它们不能彼此相等。

如果考虑填充后输入(即取指数下的128字节字符串),那么一个固定点(一个在求幂期间保持不变的数字)可能暴露部分私钥;但是,你不会碰到它。或者,相反,你只会以可忽略的概率击中它(如果你愿意,你可以强制它,但是无论如何都没有人可以阻止你泄露你自己的私钥)。攻击者不会通过这种随机事件获得额外信息,因为攻击者已经可以测试这种相等性......所以答案是:不,没有风险。

答案 2 :(得分:0)

是的,但这种情况极为罕见。每个RSA密钥都有(gcd(e-1,p-1)+1)(gcd(e-1,q-1)+1)这些值。