我几乎是RSA加密的新手,所以我的问题可能是平庸的。我开始为我的软件建立一个许可制度。我需要向许多客户分发一个加密的许可证文件。我正在考虑使用RSA公钥加密许可证文件(使用OAEP填充或PKCS#1 v1.5)。将被授权给客户的软件将拥有私钥,以便能够解密许可内容。现在的问题是,是否有可能知道提供加密文件、私钥和最终纯文本的公钥。这是因为黑客可以知道这些数据,因为这些数据都在分布式软件中。
换句话说,我需要一个使用两个不同密钥的密码算法。一个用来加密数据,另一个用来解密数据。在哪里不可能获得加密密码,给出解密密码和加密文本。
发布于 2013-10-06 18:25:08
签署许可证可防止Eve能够颁发未经修改的软件将发现有效的许可证。当然,它并不能阻止对软件进行修改以绕过许可证检查。
发布于 2012-06-18 16:43:41
正如Chris所指出的,您所做的是偶然发现RSA通常用于签名方案的方式。在RSA中,您可以使用私钥加密消息,创建可以用公钥解密的密文。此密文的成功解密证明该消息是用正确的密钥加密的,在这种情况下,该密钥仅为一方所拥有,提供了身份验证和不可否认性。(实际上,消息的散列(而不是消息本身)是加密的。这主要是因为RSA产生大的密文,而且速度相当慢。)
值得注意的是,这种“用私钥加密”的方法利用了RSA的特点,并不是非对称算法的通用解决方案。
最后,您需要考虑使用经过验证的签名方案( RSA就是其中之一)和分发签名和公钥,而不是“加密”文件和“私有”密钥。保持您的安全假设的明确定义将防止您意外地破坏您的密码-这是非常常见的本土DRM计划。
https://crypto.stackexchange.com/questions/2934
复制相似问题