如何确保 public 密钥 sender/owner 也有其私钥?

how ensure a public key sender/owner has its private key too?

当我们想用 public 密钥加密消息时,我们如何确保 public 密钥所有者也有其私钥?

规则是:

  1. 我们不希望有任何关于私钥的信息会造成安全问题。

2.the 验证必须在单个请求中完成,而不是在承诺中。

3.do不使用任何需要在密钥接收器上存储一些数据的方式。

我能看到的唯一方法是发送一条由 public 密钥加密的随机消息,并向密钥所有者询问解密的消息以比较它们并确保 public 密钥发送者有它的私钥也是;但是这种方式需要一个类似的承诺和两个步骤来验证和存储一些数据:

  1. 收到public密钥并发送加密的随机字符串并等待

  2. 接收解密数据并与原始字符串进行比较

现在你知道有什么方法可以在不需要存储任何数据的情况下进行验证吗 并且只需通过一个请求就可以通过 public 键或其他东西发送一些额外的数据? 或者是否有任何其他 public 内置此功能的密钥加密算法?

以 S/MIME 为例,加密发送给收件人的消息的一个先决条件是拥有他们的 Public 证书。

现在,当然,收件人可以先将他们的证书作为附件发送给您,但是,更常见的做法是收件人先向您发送一封签名电子邮件。

这封签名的电子邮件将证明收件人可以访问他们的私钥,因为他们会对电子邮件的内容进行哈希处理,然后使用他们的私钥对哈希进行签名。

然后您将使用他们的 public 密钥验证散列(证书与电子邮件一起发送)并将该散列与电子邮件的 MIME 内容的散列进行比较。