使用编码的解码样本来推断PGP私钥


9

如果我同时拥有编码消息和原始消息,是否可以推断出私钥?

Answers:


9

不。这是非对称密钥(公共和私有)的关键,因为您可以轻松地使用公共密钥(这就是它的用途)对消息进行编码,从而获得解加密的消息。但是只有使用私钥才能解密加密的消息。私钥无法重新生成。


10

由于尚未提及:这被称为已知明文攻击,对于密码而言,这将是一个非常糟糕的漏洞。实际上,在公钥加密中,此攻击等效于选择明文攻击,因为任何人都可以加密任何消息!

在事实上是反对RSA一些已知的/选择明文攻击(公开密钥密码最经常使用的PGP加密对称密钥),但它们通常包括侧信道攻击针对差的实现,或需要疯狂数密文,或仅对某些稀有密钥起作用

但是,总的来说,您的问题的答案是“否”-这就是使密码安全的原因。


5

不,这将是非常糟糕的。PGP加密使用散列,数据压缩,对称密钥加密以及最终的公共密钥加密的串行组合。散列使​​用单向函数。单向函数是易于计算但难以求逆的函数。公钥密码术使用非对称算法。

公钥密码术使用的算法基于数学关系(最著名的是整数分解和离散对数问题),这些关系可能没有有效的解决方案。尽管目标接收者在计算上容易生成公钥和私钥,使用私钥解密消息,并且发件人使用公钥加密消息也很容易,但是对于任何人仅基于其对公钥的了解即可得出私钥。

仅拥有原始消息不足以推断出私钥。


2

有两个答案。

理论上有可能吗?是。您可以生成一个伪造的密钥,尝试加密,看看是否匹配。如果没有,请尝试使用另一个伪造的密钥进行加密,以查看输出是否匹配。这通常称为蛮力攻击

实际上,这是无法完成的。尝试此操作需要花费非零的时间和计算能力。PGP加密通常使用适当的大小密钥,可能是512、1024、2048甚至更多位。密钥空间(您可能拥有的密钥数量)是如此之大,以至于您将永远无法找到这种组合。

我的猜测是您要问的是您是否真的可以做到这一点,而不是理论上。因此,答案是否定的。这个世界没有足够的计算能力。如果您在security.stackexchange.com上询问,那么更熟悉算法和数学的人会告诉您这可能需要多长时间(可能直到太阳转移并烧毁我们的星球)。我的简短回答是“不在你的一生中”


0

不太可能,这可能会有所帮助,但不应使您过分。安全表单可能是一个更好的选择,但是:

您应该有多个加密步骤,至少一个体面的种子,哈希值和盐也应包含在内。

例如,您可能会费心地将所有密码设置为64位长,然后将其遍历整个哈希。如果只是散列,那么将很容易破解。

这是它的一个非常简单的版本...但是并不是那么容易。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.