具有反向密钥角色的非对称密码学
Posted
技术标签:
【中文标题】具有反向密钥角色的非对称密码学【英文标题】:Asymmetric cryptography with reversed key roles 【发布时间】:2013-08-04 11:31:38 【问题描述】:我正在尝试为软件实施许可系统以防止盗版。
为此,我需要阅读应用程序中的许可文件,并且我需要确保该文件是由所有者公司编写的。
非对称密码学有很好的潜力实现这一目标,但反过来!
非对称加密算法,如 RSA,为您提供 Public key
和 Private key
,它们的用法如下:
私钥用于解密。
公钥用于加密。
但我需要这样的:
用于加密的私钥。
用于解密的公钥。
一个简单的想法是交换公钥和私钥的角色,但有posts 说在 RSA 中可以从私钥生成公钥,这使得这个想法不切实际。
所以这是我的问题:是否有任何具有反向密钥角色的非对称加密?
【问题讨论】:
【参考方案1】:如果在您描述的两种情况下都可以使用 RSA 公钥/私钥对。当您使用私钥加密时,公钥解密,反之亦然。
正如你所说,公钥可以从私钥派生,但不能反过来。
如果要证明许可文件的来源,请在签名模式下使用 RSA。在签名模式下,根据您要保护的数据计算哈希,然后使用私钥进行加密。结果 - 数字签名 - 被附加到受保护的数据中。
验证过程首先解密为您提供哈希的签名。然后从数据中计算哈希值。计算值和解密值应相同。
有很多库提供了舒适的签名创建和验证方式。您可以根据用于应用程序开发的平台进行选择。
http://en.wikipedia.org/wiki/Digital_signature
【讨论】:
我不明白,您说“在签名模式下,根据您要保护的数据计算哈希,然后使用私钥加密”,但私钥用于解密,公钥只能加密。我错了吗?在这种情况下,您的方案将不起作用! 说到RSA,有两种操作——公钥操作和私钥操作。两者都可以用来解密或加密。如果纯文本是您要加密的输入。以上是关于具有反向密钥角色的非对称密码学的主要内容,如果未能解决你的问题,请参考以下文章