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

时间:2019-05-24 14:32:06

标签: encryption public-key-encryption

这个问题看似简单,但我正在学习70-483 C#考试,有些困惑。

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

例如,我阅读的所有内容WikipediaQuoracodeproject显示用于加密的公钥和用于解密的私钥。

但是,我正在参加的实践考试(MeasureUp)似乎有所改变。

有时答案状态是使用公共密钥进行加密,但有时答案状态是使用私有密钥。

示例:

  

应用程序必须与DMV安全通信。 DMV必须   确保从您的应用程序发送的数据未在   过境。

回答示例:

  

生成数据的哈希。使用加密哈希   您公司的 private 密钥。发送数据并加密   散列到DMV。

然后,“显示答案”部分继续解释上述内容,明确说明使用私钥进行加密。

是否只是在这种情况下您必须考虑什么是公开的,什么是私有的?

例如

A)如果其他人只要自己不能自己创建一条消息就可以看到该消息-使用“保持私密”的密钥进行加密。

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

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

请有人可以解释/说明为什么这个答案正确吗?

2 个答案:

答案 0 :(得分:4)

有两种不同的安全方案;在 encryption (加密)中,您使用公钥加密,然后使用私钥解密;但是通过签名,您将使用私钥签名,并使用公钥进行验证。

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

由于该问题提到:

  

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

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

答案 1 :(得分:2)

两个密钥均可用于加密和解密。区别在于:您应该是拥有唯一密钥的唯一。其他人都可以拥有公钥。

因此,如果您对某些内容进行加密,那么每个人都可以确定内容是由您发送的,因为公钥只有在确实使用私钥加密的情况下才能成功解密您的消息。

>

另一方面,如果某人想向您发送一条只有您可以阅读的消息,他们将使用您的公共密钥对其进行加密。因此,只有您可以再次解密(或窃取您私钥的人)。