我的任务是为应用程序实施基于加密狗的复制保护方案。我意识到无论我做什么,都会有人破解它,但我至少想让它比检查加密狗是否存在的 if 语句更难一些。
我的方法是加密应用程序正确执行所需的关键数据。在运行时,从加密狗中检索解密密钥(我们选择的模型有一些合适的 API 函数),数据被解密并且应用程序很开心。
当然,坚定的攻击者可以拦截该解密密钥并获取解密数据。没关系。但应该很难的是替换他们自己的数据。因此,我正在寻找一种加密方案,其中知道解密密钥不会使某人能够加密自己的数据。
这显然是非对称加密。但是对于到目前为止我发现的每一个这样的算法,加密(或公钥)密钥都可以从解密(或私钥)密钥中生成,这正是我想要避免的。
注意:简单地对数据进行签名不会有太大帮助,因为(除非我完全误解了这样的签名)验证签名将只是另一个 if 语句,这很容易被规避。
所以......有什么想法吗?