1 数据加密保护:
程序段A 芯片
产生随机数Rnd 加密Rnd,获得Res
认证<-------Res
对比认证通过后运行B(对比点1)
程序段B
产生随机数Rnd' 加密Rnd',获得Res'
认证<-------Res'
对比认证通过后运行C(对比点2)
程序段C
…………………………
2 程序移植
程序段A 芯片
发送指令,调用程序B
执行程序B,返回Res
<------- Res
程序段C
使用Res,运行程序C
………………
综合看来:方案1中,如果盗版商通过反汇编等手段,获得程序的对比点,那么无论加密算法(如RSA ECC)多么复杂,都无法避免主程序的被盗取。
方案2中,程序中的一部分在加密芯片中执行,想要获得完整的主程序,必须要对加密芯片进行破解,这极大的增加了破解难度,同时此方案与对比认证方案不冲突,可通过3DES算法进行对比验证,进一步增加了程序保护的安全性。
方案1的成本目前也要高于方案2,方案1的芯片一般成本在8-9元,方案2在3-10元不等,我用过的LKT4105,不到4元。