首页 > 解决方案 > 如何加密验证对方是否拥有有效的私钥?

问题描述

是否有加密机制或算法来验证对方是否拥有有效的私钥而无法解密使用该私钥编码的消息?

例如,使用非对称加密私钥可以解密用公钥加密的消息,反之亦然,公钥可以解密用私钥加密的消息——据我所知,这通常是数字签名的工作方式。

这种机制对我不起作用,因为在服务器端我不想能够解密用私钥加密的消息......我只想“以某种方式”验证客户端是否有正确的私人可能解密“某些(加密)文件”的密钥。

如果有人为这个特定用例提供了解决方案/机制,只是想在这里提出这个问题?这在数学上是否可能实现?

标签: encryptionprivate-keypublic-keyencryption-asymmetric

解决方案


例如,使用非对称加密私钥可以解密用公钥加密的消息,反之亦然,公钥可以解密用私钥加密的消息——据我所知,这通常是数字签名的工作方式。

这并不完全正确。公钥的工作是加密只有私钥才能解码的消息。

所以在你的情况下,在最简单的实现中,

  • 您创建一个密钥对并向用户提供您的公钥
  • 用户创建一个密钥对并给你他们的公钥
  • 您有一个“仅供您的眼睛”使用的文件,您使用用户公钥加密并放置在您的服务器上。
  • 用户下载文件并使用用户私钥对其进行解码

您的主要安全问题是;

  • 您如何创建和存储您的密钥对,对于用户来说也是如此
  • 您如何交换公钥,您/用户如何验证彼此的公钥

网上有很多很棒的博客,它们回答了每个问题,而且更深入。


推荐阅读