0

用公钥加密的消息可以用私钥解密吗?

用私钥加密的消息可以用公钥解密吗?

公钥和私钥是否使用相同的算法生成?

4

2 回答 2

1

问:公钥和私钥是否使用相同的算法生成?

一般来说,它们不是使用相同的算法生成的。对于 RSA,它们可以相同地生成,但大多数密码库使用已知的公共指数。这意味着如果知道私钥,就很容易推导出公钥。在许多密钥格式中,公钥包含在私钥中,或者可以很容易地从私钥格式的信息中计算出来。

请注意,理论上可以生成一个密钥对,其中公共指数具有与私有指数一样多的熵。一些 HSM 确实允许这样的操作。

总而言之,您不能在不牺牲加密安全性的情况下切换密钥。

问:用私钥加密的消息可以用公钥解密吗?

从理论上讲,如果您的密码库允许,情况可能就是这种情况。然而,大多数图书馆不允许这样做。首先,如上所述,它不是安全操作。此外,许多图书馆会假设任何用私钥加密的东西都应该使用填充模式来生成数字签名。在这种情况下,解密很可能会失败;如果不是,您的密文不安全-那可能会更糟。

从 PKCS#1 规范:


每个原语的主要数学运算是取幂,如第 5.1 节的加密和解密原语。RSASP1 和 RSAVP1 与 RSADP 和 RSAEP 相同,只是它们的输入和输出参数的名称不同;它们是有区别的,因为它们用于不同的目的。


在原语之前应用的填充机制对于加密和签名生成有很大不同。

问:用公钥加密的消息可以用私钥解密吗?

这就是非对称加密的基本思想。这意味着“是”。

于 2013-07-12T14:34:23.480 回答
-1

按相应的顺序:是、是和是。

实际上,只有公钥才能解密私钥加密的任何内容,反之亦然。

另请注意,名称“public”和“private”只是任意名称。只是不对称密钥对的最佳用途是其中一个是秘密的,另一个是其他人知道的,这样:

  • 拥有公钥的人可以向您发送只有您可以解密的消息,而私钥则可以;
  • 你可以发送只能用你的公钥解密的消息,这样人们就知道你是真正的作者。
于 2013-07-12T13:38:05.093 回答