嵌入式軟件代碼保護(hù)系統(tǒng)設(shè)計(jì)
2 .2 核心處理模塊
核心處理模塊是整個(gè)系統(tǒng)的核心部分, 如圖3所示: 主要完成指令譯碼、控制FIFO 的讀寫、控制TDES加密/解密的運(yùn)行, 控制I2C、SPI、通用N and- Flash模塊和外界的數(shù)據(jù)接收和傳送以及對(duì)內(nèi)部EEPROM進(jìn)行操作。當(dāng)代碼保護(hù)芯片接收到處理器發(fā)出的讀數(shù)據(jù)命令后, 將從存儲(chǔ)器中預(yù)取64 字節(jié)的數(shù)據(jù), 然后進(jìn)行TDES解密。解密的同時(shí), 芯片再次從存儲(chǔ)器預(yù)取64字節(jié)的數(shù)據(jù), 寫入內(nèi)部的另外的64字節(jié)FIFO 中: 乒乓FIFO 架構(gòu)的設(shè)計(jì)以及采用流水線技術(shù)的TDES加密/解密, 大大提高了代碼保護(hù)芯片的效率。
圖3 核心處理模塊框圖
2.3 芯片內(nèi)部EEPROM 存儲(chǔ)數(shù)據(jù)內(nèi)容介紹
由于存儲(chǔ)器出自不同的廠商, 因此對(duì)于存儲(chǔ)器的讀寫等命令存在著一定的差異, 為了滿足系統(tǒng)對(duì)不同廠商芯片的適用性, 該代碼保護(hù)芯片內(nèi)部?jī)?nèi)嵌了一個(gè)64字節(jié)的可讀寫EEPROM, 用來存放一些特殊的數(shù)據(jù),用戶可以通過特殊的命令, 達(dá)到對(duì)相關(guān)地址的寫操作。相關(guān)地址存放數(shù)據(jù)如下所示:
地址0x00至0x05: 分別代表SPI讀操作指令代碼、SPI寫操作指令代碼、SPI寫狀態(tài)寄存器指令代碼、SPI讀狀態(tài)寄存器指令代碼、SPI關(guān)閉寫操作指令代碼、SPI允許寫操作指令代碼。
地址0x06至0x07: 分別代表I2C 器件地址、I2C有效地址字節(jié)數(shù)。
地址0x08至0x0D: 分別代表NAND - Flash 讀操作指令代碼1、NAND - FLASH 讀操作指令代碼2、NAND - FLASH 讀操作指令代碼3 、NAND- FLASH 頁編程操作指令代碼1、NAND- FLASH 頁編程操作指令代碼2、NAND- FLASH有效地址字節(jié)數(shù)。
地址0x0E至0x25: 分別代表24字節(jié)的TDES密匙。
地址0x25以后的區(qū)域?yàn)楸A魠^(qū)域, 預(yù)留給將來使用。
3 代碼保護(hù)芯片設(shè)計(jì)實(shí)現(xiàn)
3.1 綜合結(jié)果
本文設(shè)計(jì)的嵌入式軟件代碼安全保護(hù)芯片, 使用V erilog 語言進(jìn)行編程, 并進(jìn)行了功能驗(yàn)證, 使用Quartus- 7 2進(jìn)行了綜合及布局布線, 并完成了后仿真。實(shí)驗(yàn)結(jié)果表明, 整個(gè)系統(tǒng)適用的時(shí)鐘工作頻率介于4MH z和96MH z之間, 滿足目前主流的嵌入式系統(tǒng)的數(shù)據(jù)讀寫速度。使用Stratix II系列的EP2S15F484C3器件進(jìn)行了綜合, 綜合結(jié)果見圖4:
圖4 綜合結(jié)果
3.2 系統(tǒng)性能分析
3.2.1 基于I2C /SPI接口的存儲(chǔ)器
當(dāng)代碼保護(hù)芯片第一次從處理器接收連續(xù)讀操作指令后, 由于代碼保護(hù)芯片需要從存儲(chǔ)器預(yù)取64 字節(jié), 所以必須等待1 28ms(和存儲(chǔ)器通信的頻率為400K) ; 因?yàn)榇a保護(hù)芯片采取流水線技術(shù)的TDES, 所以第51個(gè)時(shí)鐘周期后, 解密后的數(shù)據(jù)就可以傳送回處理器, 由于在向處理器傳送數(shù)據(jù)的同時(shí), 代碼保護(hù)芯片也同時(shí)從存儲(chǔ)器接受數(shù)據(jù), 因此, 處理器不需再等待額外的時(shí)間, 就可以連續(xù)的從代碼保護(hù)芯片接受解密后的指令。因此當(dāng)系統(tǒng)時(shí)鐘工作頻率為4MH z, 處理器必須等待1 29275ms后, 才可接收數(shù)據(jù); 當(dāng)系統(tǒng)始終工作頻率為96MH z, 處理器只須等待1 28053m s后, 就可接收數(shù)據(jù)。
3.2.2 N and- Flash存儲(chǔ)器
目前主流的Nand- F lash器件, 其最大的串行讀出數(shù)據(jù)時(shí)間為50ns, 預(yù)取64 字節(jié), 必須等待3200ns,TDES解密時(shí)間同節(jié)3.1.1, 因此當(dāng)系統(tǒng)時(shí)鐘工作頻率為4MH z, 處理器必須等待15 95us后, 才可接收數(shù)據(jù);而當(dāng)系統(tǒng)時(shí)鐘工作頻率為96MH z, 處理器只須等待3 73125us后, 就可接收數(shù)據(jù)。
本文設(shè)計(jì)的嵌入式軟件代碼保護(hù)系統(tǒng), 已經(jīng)成功地對(duì)國家半導(dǎo)體公司的CAT1026芯片存儲(chǔ)器進(jìn)行解/加密讀寫操作, 雖然基于TDES的加密和解密的過程降低了嵌入式系統(tǒng)的運(yùn)行速度, 但是以少量降低性能換取更高的產(chǎn)品安全性, 對(duì)于用戶來說, 是完全可以接受的。它對(duì)于保護(hù)公司的知識(shí)產(chǎn)權(quán)、提高產(chǎn)品的市場(chǎng)壽命有著重要的、積極的意義, 有著極為廣泛的應(yīng)用前景。
評(píng)論