我想要保护设备中的程序,据我了解目前有高强度加密算法保护,还有的就是程序移植,哪种方案比较好呢?目前成本有限,两种都支持的话成本太高。
推荐使用加密,程序移植我个人不大懂,我理解的程序移植要更换编程语言到其他平台上去。
如果考虑成本的话那肯定是加密了
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元。
谢谢1楼回答的那么全