新聞中心

        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.104case.com/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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 漯河市| 克东县| 松潘县| 蒲城县| 隆化县| 德江县| 桐庐县| 铅山县| 文昌市| 大化| 和静县| 静乐县| 孟州市| 扶沟县| 池州市| 南乐县| 衡阳县| 邹城市| 巴东县| 郓城县| 祁东县| 廊坊市| 东城区| 凤凰县| 宁国市| 青铜峡市| 西华县| 屯门区| 南丰县| 区。| 宁国市| 稻城县| 三明市| 文昌市| 温泉县| 通榆县| 屏南县| 长葛市| 广安市| 大邑县| 汝城县|