为了保护方案商的利益,一些方案商会在自己的系统上加上一些产品加密的功能。根据我的经验,目前加密的方式主要有以下几种。
一、 小系统的程序加密,即在程序编译或者烧录时,对程序软件进行加密操作,
这样,用常用的方式就无法将程序代码再完整的读出来了。但是面对,各种
能人义士,这种加密的方法显得非常脆弱,比如,pic,emc等常用的mcu***费用,才200rmb左右。不够工程师一天的工资。
二、 外部硬件看门狗,这种方式,一般在系统程序中都有那么一段小程序是用来
检测外部硬件看门狗是否存在的。当外部硬件看门狗,不存在时,采取相应的处理
方式,来达到保护自己的方案。这种一般适合较大的系统。
三、 mcu唯一id的加密方式。这种mcu一般都自带有eeprom资源,软件设计者
利用mcu的唯一id配合eeprom来实现加密。这种方式,不增加额外的硬件成本,
从外部也看不到任何的保护措施,但是,如果程序被破解,拷贝出来的bin或者hex
代码直接烧录到新的ic中是不会正常工作的。但是从成本上来讲,这种具有唯一id
的mcu,单价也不会底的。
目前很多中档消费产品都采用外部硬件看门狗的方式来加密的,比如数码像
框,车载dvd等。但是这种方式算法显得很重要,弄得不好,别人重新用mcu给你
开发一个时序来配合你,让你的加密白忙一场。我也见过一些方案公司设计的加
密ic,比如l6105,采用标准的iic方式进行数据通信,为了适应不同的客人需要,
设计用户码,密匙的部分。加密ic,拿到用户码,密匙等,罗嗦了一大堆,终于出
来了另外一个结果,返回给主控这边。但是这些罗嗦有一个致命的弱点,那就是,
针对相同的输入数据,输出的结果也是一样的。这样就很难逃脱数字电路中的真值
表,卡诺图等规则,如果处理得不是很复杂的话,也许破解者只需要做比较少的工
算法就明于纸上了。
为了克服以上说的利用真值表,卡诺图等来破解算法,经过几翻思索,终于让
硬件看门狗,可以在相同的数据输入的情况下,输出的算法结果也不一样了。当然
再好的算法,也怕硬拷贝。所以,无论怎么样,ic不能被轻易破解还是关键中的关键。
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=107366&Name=gongkong