部分RSA解密器

Partial RSA Decrypter

我有一个程序可以使用 RSA-1024 算法对数字进行加密和部分解密。

用于加密:

C = M^e mod n

但对于解密,结果将是 mod 256:

partialM = (C^d mod n) % 256

我也知道e = 65537d = constantn = constant所以程序多次运行后不会改变。
我想知道给定的 C 是否有可能找到 M。如果可以,如何找到?

是的,这是可能的,但并不容易。

有一种著名的针对 RSA 的攻击称为 Least Significant Bit Oracle Attack。简而言之,如果你有一个黑匣子,你可以为任何选择的密文询问明文的奇偶校验位,你将能够揭示完整的明文。

您可以找到完整的攻击描述 in this question

总结一下:您无法破解单个已知密文的密码 - 部分明文对无法访问 oracle。但是,您永远不应泄露任何明文 - 了解足够明文的一位可能会造成真正的损害。