如何从RSA密文中查找纯文本

时间:2011-03-28 06:41:16

标签: rsa public-key encryption-asymmetric encryption

我有一个RSA密文c,即公钥(e,n)。 (c = m^e mod n

现在我也知道纯文本m应该是"1234XXX""12345XXX",其中"XXX"是3位数字。

我可以在不测试所有3位数字的情况下找到哪一个是正确的吗? (我只是想知道第一部分是"1234"还是"12345",我不关心XXX是什么。)

2 个答案:

答案 0 :(得分:3)

你不能那样做(这是一种知道明文攻击)。在给定加密的RSA消息的情况下,您无法获得有关密钥和纯文本的任何信息。

(类似的纯文本消息不会产生类似的加密消息)

因此,在您拥有公钥的情况下,您仍然需要加密所有可能的普通输入消息(暴力),以发现相关的加密消息。

答案 1 :(得分:2)

实际上,如果正确使用RSA ,那么你甚至无法通过尝试1000种可能性来猜测你的'XXX'。 RSA中的核心操作是模幂运算,但是第一步称为 padding ,它将数据转换为加密为大整数(模 n )。

PKCS#1 RSA standard指定两种类型的填充;两者都包含一堆随机字节。结果如下:如果使用相同的密钥对同一邮件加密两次,则会收到两条不同的加密邮件。恰恰相反,重点是避免你提到的情况:能够“猜测”加密的消息并验证猜测是否正确,只有公钥(公共,因此假设为每个攻击者。)

因此,要回答您的问题: if ,您可以通过仅尝试1000次RSA加密或通过任何类型的智能快捷方式找到“XXX”,然后你的RSA非常错误。