具有反向密钥角色的非对称密码学

Posted

技术标签:

【中文标题】具有反向密钥角色的非对称密码学【英文标题】:Asymmetric cryptography with reversed key roles 【发布时间】:2013-08-04 11:31:38 【问题描述】:

我正在尝试为软件实施许可系统以防止盗版。

为此,我需要阅读应用程序中的许可文件,并且我需要确保该文件是由所有者公司编写的。

非对称密码学有很好的潜力实现这一目标,但反过来!

非对称加密算法,如 RSA,为您提供 Public keyPrivate key,它们的用法如下:

私钥用于解密。

公钥用于加密。

但我需要这样的:

用于加密的私钥。

用于解密的公钥。

一个简单的想法是交换公钥和私钥的角色,但有posts 说在 RSA 中可以从私钥生成公钥,这使得这个想法不切实际。

所以这是我的问题:是否有任何具有反向密钥角色的非对称加密?

【问题讨论】:

【参考方案1】:

如果在您描述的两种情况下都可以使用 RSA 公钥/私钥对。当您使用私钥加密时,公钥解密,反之亦然。

正如你所说,公钥可以从私钥派生,但不能反过来。

如果要证明许可文件的来源,请在签名模式下使用 RSA。在签名模式下,根据您要保护的数据计算哈希,然后使用私钥进行加密。结果 - 数字签名 - 被附加到受保护的数据中。

验证过程首先解密为您提供哈希的签名。然后从数据中计算哈希值。计算值和解密值应相同。

有很多库提供了舒适的签名创建和验证方式。您可以根据用于应用程序开发的平台进行选择。

http://en.wikipedia.org/wiki/Digital_signature

【讨论】:

我不明白,您说“在签名模式下,根据您要保护的数据计算哈希,然后使用私钥加密”,但私钥用于解密,公钥只能加密。我错了吗?在这种情况下,您的方案将不起作用! 说到RSA,有两种操作——公钥操作和私钥操作。两者都可以用来解密或加密。如果纯文本是您要加密的输入。

以上是关于具有反向密钥角色的非对称密码学的主要内容,如果未能解决你的问题,请参考以下文章

区块链中的非对称加密技术

非对称加密算法都有哪些,安全性能对比

对称加密算法以及使用方法

技术解读区块链密码学的起源,了解多链与非对称加密

golang:常用加密算法学习总结之非对称加密

通俗易懂的非对称加密