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