不同场景中公钥与私钥的使用方式
公钥/私钥的概念:
私钥,即私人的钥匙,是唯一的,所以可以用来证明来源是特定的人.
公钥,即公用的钥匙,我可以将它给很多人.既然这么多人知道,所以公钥不能证明来源一定是特定的人.
加密 / 签名:
加密: 用户防止信息外泄(泄漏给不相关的人)
签名: 用于确认身份(可以类比下生活中的签名)
到底谁创建 / 拥有 / 使用 公钥与私钥
1.当情景是签名 / 验签时:
A想使用我的服务,为了安全,我不希望A以外的人可以使用这些服务.
此时我会要求A创建一对公私钥,私钥A自行保留(用于证明自己的身份),公钥给我(用于验签-验证签名).
A请求我的服务时,使用私钥将数据签名,我收到请求后,用A给我的公钥验签,如果验签通过说明确实是A给我发的请求,反之拒绝访问.
如果A调用我的服务之后,需要我返回请求结果,但又要保证一定是我返回的请求结果呢?
此时我创建一对公私钥,私钥自行保留(用于证明我的身份),公钥给A(用于验签)
此时 我拥有自己的私钥,A拥有我的公钥
我返回结果时,使用私钥签名, A收到我返回的响应,用我给A的公钥验签,验签通过即证明是我返回的结果.反之拒绝访问
总结 : 双方生成各自的公私钥.然后各自保存私钥(用于签名),交换公钥(用于验签)
2.当情景是加密 / 解密时:
如果A和B进行通讯:
A在发送消息时:A使用B的公钥进行加密;
B在接收信息时:使用自己的私钥 进行解密;
为什么不使用私钥加密?
因为使用私钥加密之后,拥有公钥的人都可以进行解密,那岂不是泄露了 A 和 B 之间的消息了。而使用对方的公钥加密,那么就只有对方的私钥可以解密,也就是说不会有第三方可以解密内容。
数字签名(公钥私钥的一个应用):https://www.cnblogs.com/wxj1129549016/p/10120278.html