首页 > 解决方案 > IT安全中的公钥和私钥基础

问题描述

John 和 Peter 各自生成了一对公钥和私钥。但是,他们还不知道彼此的密钥。现在他们正试图通过网络交换消息 M。

a) 保密交换消息的程序是什么, b) 如果可能发生主动攻击,可以采取哪些措施来降低风险?

标签: computer-science

解决方案


基本思想很简单:

  1. 约翰和彼得都公开了他们的公钥并向全世界广播,“用我的公钥加密你发给我的消息,所以只有我可以阅读它们”

  2. John 使用 Peter 的公钥向 Peter 发送加密消息,只有 Peter 可以解密。同样,Peter 使用 John 的公钥加密响应,因此只有 John 可以读取它。

这一切都假设没有黑幕交易正在进行。如果有活跃的攻击者,则需要一些额外的预防措施。

你怎么知道发布彼得公钥的人是否真的是彼得?他们可能只是声称自己是彼得并发布自己的公钥。对此的解决方案是让受信任的证书颁发机构验证发布公钥的实体的身份,以便这些密钥的消费者可以咨询证书颁发机构,以确信公钥是由声称的同一实体提供的。

你怎么知道你从约翰那里收到的加密消息是否真的来自约翰,而不是其他阅读你的公钥并想冒充约翰的人?为此,您可以要求通信握手成功(以便彼得使用约翰的公钥回复约翰,约翰必须成功响应以确认他的身份),或者您可以要求约翰对发送给彼得的消息进行数字签名。签名包括 John 用他自己的私钥加密部分消息,而 Peter 随后使用 John 的公钥解密。Peter 可以验证使用 John 的公钥进行的解密是否有效(也许可以根据消息内容的散列或已知的固定值等进行检查),并且由于只有 John 知道 John 公钥的私钥,


推荐阅读