2016-05-12 95 views
-2

我有一个程序,可以用RSA-1024算法加密和部分解密一个数字。部分RSA解密器

对于加密:

C = M^e mod n

但对解密,结果将是MOD 256:

partialM = (C^d mod n) % 256

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

+0

你是指d = ct和n = ct是什么意思?这没有意义:d不能与n相同。 – TheGreatContini

+1

我投票结束这个问题作为题外话,因为这不是一个编程问题。它可能是crypto.stackexchange.com上的主题。即使在那里,你也需要展示一些你自己解决问题的尝试。一个提示:利用RSA的乘法性质。 –

回答

3

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

有一个众所周知的针对RSA的攻击称为最低显着位Oracle攻击。简而言之,如果您提供了一个黑匣子,您可以为任何选定的密文请求明文的奇偶位,您将能够显示完整的明文。

你可以找到整个攻击说明in this question

总结一下:你不能破解单个已知密文的密码 - 不访问oracle的部分明文对。然而,你永远不应该透露任何明文 - 只要有足够的明文就可以获得真正的破坏。