部分RSA解密器
Partial RSA Decrypter
我有一个程序可以使用 RSA-1024 算法对数字进行加密和部分解密。
用于加密:
C = M^e mod n
但对于解密,结果将是 mod 256:
partialM = (C^d mod n) % 256
我也知道e = 65537
、d = constant
、n = constant
所以程序多次运行后不会改变。
我想知道给定的 C 是否有可能找到 M。如果可以,如何找到?
是的,这是可能的,但并不容易。
有一种著名的针对 RSA 的攻击称为 Least Significant Bit Oracle Attack。简而言之,如果你有一个黑匣子,你可以为任何选择的密文询问明文的奇偶校验位,你将能够揭示完整的明文。
您可以找到完整的攻击描述 in this question。
总结一下:您无法破解单个已知密文的密码 - 部分明文对无法访问 oracle。但是,您永远不应泄露任何明文 - 了解足够明文的一位可能会造成真正的损害。
我有一个程序可以使用 RSA-1024 算法对数字进行加密和部分解密。
用于加密:
C = M^e mod n
但对于解密,结果将是 mod 256:
partialM = (C^d mod n) % 256
我也知道e = 65537
、d = constant
、n = constant
所以程序多次运行后不会改变。
我想知道给定的 C 是否有可能找到 M。如果可以,如何找到?
是的,这是可能的,但并不容易。
有一种著名的针对 RSA 的攻击称为 Least Significant Bit Oracle Attack。简而言之,如果你有一个黑匣子,你可以为任何选择的密文询问明文的奇偶校验位,你将能够揭示完整的明文。
您可以找到完整的攻击描述 in this question。
总结一下:您无法破解单个已知密文的密码 - 部分明文对无法访问 oracle。但是,您永远不应泄露任何明文 - 了解足够明文的一位可能会造成真正的损害。