深圳思馳科技有限公司
聯系人:劉工
手機:13480151328
電話:0755-83048995
傳真:0755-83045278
郵箱:pcbic80@126.com
地址:深圳市龍崗區坂田布龍路168號富豪花園榮興商務中心302室(地鐵環中線坂田站A出口,坂雪崗大道與布龍路交匯處)
{C}1、{C}DS28E01芯片加密原理
MAXIM公司生產的DS28E01將1024位EEPROM與符合ISO/IEC110118-3安全散列算法(SHA-1)的質詢響應安全認證結合在一起。在單個芯片內集成了1024位EEPROM(分為4頁,每頁256位)、64位密鑰、一個寄存器頁、512位 SHA-1引擎和 64位 ROM序列碼。DS28E01對數據按照 1-Wire協議串行傳送,通信速率為15.3kbps(標準速率模式)或125kbps(高速模式),只需要一根數據線和一根返回地線,最大限度的節省了對控制器I/O口的占用。
HASH加密函數是一種單向散列函數,是一種單向密碼體制,即它是一種從明文到密文的不可逆映射,只有加密過程,不能解密,也就是說,從數學上不能由密文反過來推算出明文的任何消息。其中常見的 HASH函數的算法有:MD5、SHA、N-Hash、RIPE-MD、HAVAL等。
SHA-1算法是一種通過直接構造復雜的非線性關系達到單向要求,設計單向散列函數的算法,具有“不可逆”、“防碰撞”以及良好的“雪崩效應”,防止了盜竊者利用相近的輸入來達到破解密碼的可能性。
DS28E01內部的加密過程是在內部的加密引擎中進行的,其加密引擎利用的是 HSAH函數的 SHA-1算法,但是和標準的 SHA-1算法又有幾點不一樣。標準算法的輸入值可以小于、等于或大于分組長度512bit,但是 SHA-1引擎的 SHA-1算法輸入的是固定的512bit,也就是標準 SHA-1算法的分組長度。并且標準 SHA-1算法每個分組的最后一次循環體的輸出都要和輸入每個分組的初始常量做MOD232加法,而在 DS28E01的 SHA-1引擎中由于只有一個512bit的循環體,最后就省略了將初始常量添加回結果的最終步驟。至于引擎的 SHA-1算法的其他步驟則與標準的 SHA-1算法相同。
2、加密模塊設計
目前由很多能實現 FPGA加密的方法,如在 Xilinx Virtex-II和 Virtex-4這類的高端FPGA中,支持對配置數據流的加密操作。這樣僅當 FPGA中含有相同的密鑰時,這些數據流才可以工作。但是這種加密的方法對更為廣泛的、對成本比較敏感的應用場合來說不甚合適。因此,這里利用另一種可行的身份識別法來防止意外拷貝。這種方法對所有 FPGA家族都使用,包括低端的 Xilinx Spartan-3系列FPGA。
加密模塊的原理圖設計
硬件部分主要由 Xilinx公司 Spartan-3系列的X3CS500E以及MAXIM公司的DS28E01芯片組成。DS28E01芯片和FPGA之間是通過DS28E01的第二引腳的 1-Wire通信總線進行通信的。
唯一識別號及附加數據(常數)在內的 HASH運算結果,運算的結果是 160位的 MAC(消息認證碼),同時,FPGA內部也會同安全存儲器一樣進行包含密鑰、隨機數、附加數據及器件識別號在內的 HASH計算并產生一個期望的MAC。然后,在 FPGA內會對這兩個 MAC進行比較,如果一樣,則 FPGA認為該電路是“合法”電路,因為它擁有正確的密鑰。此時 FPGA進入正常工作狀態,開啟/執行其配置數據中的所有功能,會執行所有的功能。如果 FPGA和DS28EO1兩者產生的MAC不匹配,則系統會認為該電路是一個“非法”電路,因為該系統不具有正確的密碼。此時 FPGA進入非正常運行狀態,只執行有限的功能。
加密認證模塊的程序設計
為了實現加密認證的功能,我們在 FPGA中利用 VHDL語言設計了IFF模塊,在IFF模塊的內部是根據SHA-1算法實現了對輸入密碼的HASH函數運算以及與DS28E01中產生的MAC的比較功能,IFF模塊的接口定義。
在 IFF模塊中,實現了標準的 SHA-1算法,在 FPGA配置完成之后,在 RESET信號與時鐘信號的控制下,FPGA內部就會運行 SHA-1算法產生相應的MAC,與由DS28E01產生的 MAC進行比較,根據比較結果將 FOE設置為不同的狀態,然后 FPGA就可以根據 FOE的狀態來判斷是否是合法電路。其中的初始化主要完成消息填充和附加原始消息長度以及在算法中需要的函數和常數的定義。
其中,CLKIN是一個大于 20M的時鐘;IFF是認證啟動信號,在IFF信號上升沿的時候模塊內部開始啟動 HSAH運算過程以及密碼比較過程;RESET是復位信號,高電平有效;IB則是 FPGA通過 1-Wire協議與 DS28E01通訊的信號;FOE信號是 IFF模塊的輸出線,在IFF內部 MAC比較完成后,如果 FPGA認定該電路具有正確的密碼,則會置 FOE信號為低電平,反之如果 FPGA認定該電路不是合法的電路,則會置 FOE信號為高電平,在 FPGA內部可以根據FOE的信號來實現不同的功能。這樣,系統就可以根據電路是否是被拷貝的來實現不同的功能,防止了設計被拷貝。
SHA-1算法引擎的DS28E01芯片作為加密認證系統的核心芯片,并利用DS28E01針對Xilinx公司的X3CS500E開發了實際的加密認證系統,并將此系統應用于實際的產品中,取得了良好的效果
Copyright2003@Sctpcb.Net 深圳思馳科技有限公司 粵ICP備13027795號-2
地址:深圳市龍崗區坂田布龍路168號富豪花園榮興商務中心302室(地鐵環中線坂田站A出口,坂雪崗大道與布龍路交匯處)
電話:0755-83048995; 傳真:0755-83045278; 客服專線(劉工):13480151328; Email:pcbic80@126.com
思馳科技致力于單片機解密 IC解密 芯片芯片程序設計 軟件解密 加密狗復制 解密芯片 PCB抄板