新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一种C55x DSP的串行引导与程序加密方法

一种C55x DSP的串行引导与程序加密方法

作者:时间:2012-08-16来源:网络收藏

2 自举和加解密实现
2.1 硬件设计
SST25LF080A是SST公司生产的SPI串口8 MbitFlash,支持SPI的Mode0和Mode1方式,其可靠性高,最大时钟频率为33 MHz,供电电压为3.3 V,可重复写10万次以上。采用8脚SOIC封装形式,与TMS320VC5509A的硬件连接如图1所示。

本文引用地址:http://www.eepw.com.cn/article/148594.htm

b.JPG


2.2 二次技术
本身所带的Bootloader不能实现功能,因此对于Flash里的无法起到保护作用。所以在Bootloader的基础上,还需要进行二次,即通过内部ROM同化Bootloader,首先另一个引导,该是由用户自行编写,功能与ROM固化的Bootloader类似,但增加了对程序代码加解密和校验等功能,并在加载结束后,把PC值置于实际程序的入口地址,使程序转至实际程序。
2.3 程序与解密
对程序的初始保护,即把最终运行的程序代码写入Flash芯片之前,对代码进行处理。过程如下,的一次引导过程只加载储存在SST25LF080A中的加解密程序,需要向Flash写入时,读取DSP自身的ID号作为密钥,通过一定的加密算法将二次引导的程序进行加密处理后再写入,这样,SST25LF080A中就不存在明文形式的代码。
DSP的一次引导过程只加载储存在SST25LF080A中的加解密程序,二次引导则加载SST25LF080A中已经加密的代码,然后读取DSP自身的ID号作为密钥进行解密,加载结束和完成解密后再继续运行。
为防止破译者直接修改读取ID部分的引导代码,改为使用固定ID,还必须基于数据驱动进行连续二次保护。它的处理对象是一些重要参数或变量,通过读取引导程序的校验值和DSP本身ID,完成对这些参数或变量“加锁”,让它们以密文形式存在于程序中。这样即使完成了对引导程序的简单破译,也无法使程序正常运行。

c.JPG


经过处理,可以有效地避免通过读取Flash内容直接破译,或者直接读取Flash内容后在不同产品中反复利用的做法,对保护知识产权有着重要的意义。对于DSP代码加密,可以根据需要的加密复杂程度进行算法选择,实现框图如图2所示。

3 结束语
针对TMS320VC5509A和SST25LF080A,使用方式实现程序自举引导的二次引导加载,提出基于该方式的程序加密。该不仅可用于TMS320VC5509ADSP中,其他类似高速微处理器系统的引导加载方案中也可得到应用,实现了灵活的程序加载。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭