什么是私钥,什么是公钥?

Hoc*_*eyJ 0 encryption public-key-encryption

这个问题看起来很简单,但我正在准备 70-483 C# 考试,有点困惑。

我知道公钥/私钥是数学上相互关联的属性。一个可以加密消息,另一个可以解密。

我读到的所有内容,例如维基百科Quoracodeproject 都显示了用于加密的公钥和用于解密的私钥。

然而,我正在进行的模拟考试(MeasureUp)似乎改变了所使用的考试。

有时答案声明使用公钥进行加密,但有时他们声明使用私钥。

例子:

应用程序必须与 DMV 安全通信。DMV 必须确保从您的应用程序发送的数据在传输过程中没有被修改。

回答示例:

生成数据的哈希值。使用您公司的私钥加密哈希值。将数据和加密的哈希值发送到 DMV。

然后“显示答案”部分继续解释上面明确指出使用私钥加密的内容。

难道你必须在上下文中考虑什么是公开的、什么是私有的吗?

例如

A) 如果其他人是否可以看到该消息并不重要,只要他们无法制作自己的消息即可 - 使用您“保密”的密钥进行加密。

B) 如果其他人可以发送消息,只要我是唯一可以阅读该消息的人 - 使用公开可用的密钥进行加密。

我觉得 MeasureUp 可能错了,但我肯定比大公司更有可能错。

请有人解释/澄清为什么这个答案是正确的?

Mar*_*ell 6

有两种不同的安全场景;加密时,用公钥加密,用私钥解密;但使用签名时,您可以使用私钥进行签名,并使用公钥进行验证。

最有可能的问题是关于签名,而不是加密。

由于问题提到:

DMV 必须确保从您的应用程序发送的数据在传输过程中没有被修改。

这是签名(完整性和作者证明),而不是加密。

  • 这就是我的想法。然而,他们将加密与签名混淆是一个非常糟糕的迹象 (2认同)