paradoxfx

【原创】TI C2833x介绍---(7)代码安全

0
阅读(3058)

代码安全的重要性是不言而喻的,辛辛苦苦编写调速出来的程序,如果轻松就被别人从存储器里读出来,那代价实在是太大了,所以TI的绝大多数DSP中都提供了代码安全模块,叫Code Security Module,简称CSM。在C2000 DSP中,204x系列里面,带加密功能的片子型号后面都有个A,比如TMS320LF2407A、2406A等等;后面的28x的DSP都含有CSM加密模块,所以型号里面的A就干脆省略了。使用CSM的主要目的就是防止逆向工程,并保护知识产权,即IP了。

实际的CSM功能其实就是位于Flash中的一段长度为128bit的存储空间,如图1所示。

 

图1 CSM的地址示意

也就是说密码长度是我们用户定义的,有128位,那么就有:128-bits = 2^128= 3.4 x 10^38中可能的密码组合,假如采用枚举符试算,再加上来回的读写时钟所耗费的时间,这是不可能完成的破解了。比如在150MHz的时钟频率下,每8个时钟周期试验一组密码,则最多需要5.8 x 10^23年才能把密码试出来,就算有更快的工具,其成本也肯定超过了代码价值了。

不过CSM既然可以锁住别人偷试代码,那使用不当的话也会不小心让自己也读取不了。所以在烧写Flash的时候,一定注意CSM位具体烧写了什么内容,还是默认的空密码等等,否则一旦烧错了自己不知道的密码,片子就不能再改了。烧写Flash的工具软件有好几种,在买DSP仿真器的时候厂家的光盘上一般都会提供,对密码位的烧写都有专门的提醒的。至于烧写Flash的步骤,后面会专门的详细提到。