【问题标题】:Partial RSA Decrypter部分 RSA 解密器
【发布时间】:2016-05-12 10:49:12
【问题描述】:

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

对于加密:

C = M^e mod n

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

partialM = (C^d mod n) % 256

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

【问题讨论】:

  • d=ct 和 n=ct 是什么意思?没有意义:d 不能与 n 相同。
  • 我投票结束这个问题,因为这不是一个编程问题。它可能是 crypto.stackexchange.com 的主题。即使在那里,您也应该尝试自己解决问题。一个提示:利用 RSA 的乘法属性。

标签: encryption cryptography rsa public-key-encryption


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-05
    • 2015-03-16
    • 1970-01-01
    • 2012-03-13
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多