是否有加密机制或算法来验证另一方是否具有有效的私有密钥而不能解密用该私钥编码的消息?
例如,使用非对称加密,私钥可以解密用公钥加密的消息,反之亦然,公钥可以解密用私钥加密的消息——据我所知,数字签名通常就是这样工作的。
这种机制对我不起作用,因为在服务器端,我不想解密用私钥加密的消息。。。我只想"以某种方式"验证客户端是否有正确的私钥,该私钥可能会解密"某个(加密的(文件"。
我只是想在这里提出这个问题,如果有人为这个特定的用例提供了解决方案/机制?这在数学上可能实现吗?
例如,使用非对称加密,私钥可以解密用公钥加密的消息,反之亦然,公钥可以解密用私钥加密的消息-据我所知,数字签名通常就是这样工作的。
这不太正确。公钥的工作是加密只有私钥才能解码的消息。
因此,在您的情况下,在最简单的实现中,
- 您创建了一个密钥对,并将您的公钥提供给用户
- 用户创建一个密钥对并将其公钥提供给您
- 你有一个"仅供你使用"的文件,你使用用户公钥加密后放在服务器上
- 用户下载文件并使用用户私钥对其进行解码
您的主要安全问题是;
- 如何创建和存储密钥对,用户相同
- 如何交换公钥,您/用户如何验证彼此的公钥
网上有很多很棒的博客,它们对每一个问题都有深入的回答。