基于DS28E01的FPGA加密認(rèn)證系統(tǒng)的設(shè)計(jì)
唯一識(shí)別號(hào)及附加數(shù)據(jù)(常數(shù))在內(nèi)的 HASH運(yùn)算結(jié)果,運(yùn)算的結(jié)果是 160位的 MAC(消息認(rèn)證碼),同時(shí),FPGA內(nèi)部也會(huì)同安全存儲(chǔ)器一樣進(jìn)行包含密鑰、隨機(jī)數(shù)、附加數(shù)據(jù)及器件識(shí)別號(hào)在內(nèi)的 HASH計(jì)算并產(chǎn)生一個(gè)期望的MAC。然后,在 FPGA內(nèi)會(huì)對(duì)這兩個(gè) MAC進(jìn)行比較,如果一樣,則 FPGA認(rèn)為該電路是“合法”電路,因?yàn)樗鼡碛姓_的密鑰。此時(shí) FPGA進(jìn)入正常工作狀態(tài),開啟/執(zhí)行其配置數(shù)據(jù)中的所有功能,會(huì)執(zhí)行所有的功能。如果 FPGA和DS28EO1兩者產(chǎn)生的MAC不匹配,則系統(tǒng)會(huì)認(rèn)為該電路是一個(gè)“非法”電路,因?yàn)樵撓到y(tǒng)不具有正確的密碼。此時(shí) FPGA進(jìn)入非正常運(yùn)行狀態(tài),只執(zhí)行有限的功能。
3.2、加密認(rèn)證模塊的程序設(shè)計(jì)
為了實(shí)現(xiàn)加密認(rèn)證的功能,我們?cè)?FPGA中利用 VHDL語言設(shè)計(jì)了 IFF模塊,在 IFF模塊的內(nèi)部是根據(jù)SHA-1算法實(shí)現(xiàn)了對(duì)輸入密碼的HASH函數(shù)運(yùn)算以及與DS28E01中產(chǎn)生的MAC的比較功能,IFF模塊的接口定義如圖 2所示:
其中,CLKIN是一個(gè)大于 20M的時(shí)鐘;IFF是認(rèn)證啟動(dòng)信號(hào),在 IFF信號(hào)上升沿的時(shí)候模塊內(nèi)部開始啟動(dòng) HSAH運(yùn)算過程以及密碼比較過程;RESET是復(fù)位信號(hào),高電平有效;IB則是 FPGA通過 1-Wire協(xié)議與 DS28E01通訊的信號(hào);FOE信號(hào)是 IFF模塊的輸出線,在IFF內(nèi)部 MAC比較完成后,如果 FPGA認(rèn)定該電路具有正確的密碼,則會(huì)置 FOE信號(hào)為低電平,反之如果 FPGA認(rèn)定該電路不是合法的電路,則會(huì)置 FOE信號(hào)為高電平,在 FPGA內(nèi)部可以根據(jù)FOE的信號(hào)來實(shí)現(xiàn)不同的功能。這樣,系統(tǒng)就可以根據(jù)電路是否是被拷貝的來實(shí)現(xiàn)不同的功能,防止了設(shè)計(jì)被拷貝。
在 IFF模塊中,實(shí)現(xiàn)了標(biāo)準(zhǔn)的 SHA-1算法,其中算法流程圖見圖3,在 FPGA配置完成之后,在 RESET信號(hào)與時(shí)鐘信號(hào)的控制下,F(xiàn)PGA內(nèi)部就會(huì)運(yùn)行 SHA-1算法產(chǎn)生相應(yīng)的MAC,與由 DS28E01產(chǎn)生的 MAC進(jìn)行比較,根據(jù)比較結(jié)果將 FOE設(shè)置為不同的狀態(tài),然后 FPGA就可以根據(jù) FOE的狀態(tài)來判斷是否是合法電路。其中的初始化主要完成消息填充和附加原始消息長(zhǎng)度以及在算法中需要的函數(shù)和常數(shù)的定義。
圖 3 SHA-1算法流程圖(Figure 3. SHA-1 algorithm flow)
4、設(shè)計(jì)總結(jié)
在現(xiàn)在電子設(shè)計(jì)的成本越來越高的情況下,基于 SRAM的 FPGA由于自身限制,容易使得設(shè)計(jì)者的設(shè)計(jì)被復(fù)制,從而給設(shè)計(jì)者提出了設(shè)計(jì)具有加密功能的電子系統(tǒng),由于 SHA-1 算法引擎的 DS28E01芯片作為加密認(rèn)證系統(tǒng)的核心芯片,并利用 DS28E01針對(duì) Xilinx公司的 X3CS500E開發(fā)了實(shí)際的加密認(rèn)證系統(tǒng),并將此系統(tǒng)應(yīng)用于實(shí)際的產(chǎn)品中,取得了良好的效果?! ?p> 本文作者創(chuàng)新點(diǎn):針對(duì)基于 SRAM的 FPGA在配置過程中設(shè)計(jì)數(shù)據(jù)容易被克隆的現(xiàn)象,設(shè)計(jì)了基于安全存儲(chǔ)器的加密認(rèn)證系統(tǒng),增強(qiáng)了系統(tǒng)的安全性。
評(píng)論