《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應用 > 一種新的SRAM工藝FPGA的保護方法
一種新的SRAM工藝FPGA的保護方法
來源:微型機與應用2012年第17期
董春國
(棗莊科技職業(yè)學院 電氣工程系,, 山東 棗莊 277500)
摘要: 針對SRAM工藝FPGA應用中的安全問題,,提出了一種采用雙重認證(身份認證和產(chǎn)權(quán)認證)的保護方法。不僅能夠使得非法者無法使用FPGA,,而且有效防止IP核被盜用,。在FPGA外部添加安全芯片,負責完成身份認證,,確認使用者的合法性,;在IP核內(nèi)添加保護模塊,與安全芯片交互完成產(chǎn)權(quán)認證,,確認IP核的合法性,。詳細介紹了雙重認證方法的思想、原理和實現(xiàn)過程,,并進行了安全性分析,。
Abstract:
Key words :

摘  要: 針對SRAM工藝FPGA應用中的安全問題,提出了一種采用雙重認證(身份認證和產(chǎn)權(quán)認證)的保護方法,。不僅能夠使得非法者無法使用FPGA,,而且有效防止IP核被盜用。在FPGA外部添加安全芯片,,負責完成身份認證,,確認使用者的合法性;在IP核內(nèi)添加保護模塊,,與安全芯片交互完成產(chǎn)權(quán)認證,,確認IP核的合法性。詳細介紹了雙重認證方法的思想,、原理和實現(xiàn)過程,,并進行了安全性分析。
關(guān)鍵詞: FPGA,; IP核,; 保護; 雙重認證

    在電子產(chǎn)品設(shè)計中,,F(xiàn)PGA由于靈活方便,、性能突出等優(yōu)點,得到了越來越廣泛的應用,。目前,,市場占有率最高的兩大公司Xilinx和Altera生產(chǎn)的FPGA大都是基于SRAM工藝的,而SRAM工藝FPGA由于自身的特點,存在諸多安全問題[1],。因此,,實際應用中需要采取一定的保護手段,確保SRAM工藝FPGA的安全應用,。
1 SRAM工藝FPGA的安全問題
    SRAM工藝FPGA具有掉電易失性,在實際的應用中需要外部存儲器來存儲其配置信息,。因此,SRAM工藝的FPGA具有可反復使用,、升級方便,、配置電路簡單等優(yōu)點。然而,,由于FPGA的配置電路及時序是公開的,,在FPGA加載配置信息的過程中,不法者可以通過偵測FPGA配置管腳,截取配置信息來配置其他FPGA,。而配置信息是設(shè)計者IP核的具體表現(xiàn)形式,,這樣,IP核被非法復制,,使設(shè)計者的產(chǎn)權(quán)受到破壞,。
    針對該問題,參考文獻[2]提出一種結(jié)合EDA軟件和FPGA的方法,有效防止IP核被非法復制,;參考文獻[3]在IP核中添加保護模塊,,通過保護模塊和外部驗證設(shè)備通信認證來確認IP核的合法性。以上文獻從不同方面對IP核的防復制進行了研究[4],但都未對使用FPGA的用戶進行身份認證,。由于FPGA通常作為電子系統(tǒng)的核心或關(guān)鍵模塊,為合法用戶提供一定的服務,,因此,實際應用中需對使用FPGA的用戶進行身份認證,。本文對此提出一種采用雙重認證(身份認證、產(chǎn)權(quán)認證)的保護方法,以滿足SRAM工藝FPGA防止非法用戶使用及IP核防復制的雙重需求,。
2 雙重認證方法的設(shè)計
2.1 雙重認證方法的思想及模型  

  由于FPGA芯片供應商對配置數(shù)據(jù)流的定義是不公開的,,所以無法通過配置數(shù)據(jù)流推測內(nèi)部電路。因此需要在IP核中添加保護模塊,,使得配置成功后FPGA先不工作,,只有在身份認證、產(chǎn)權(quán)認證成功后,,F(xiàn)PGA才正常工作,。雙重認證方法既認證使用者的合法性,又認證IP核的合法性,,確保SRAM工藝FPGA的安全應用,。
    本設(shè)計需要在IP核中嵌入保護模塊,同時在FPGA外添加安全芯片。系統(tǒng)上電后,,從配置器件加載IP核到FPGA,,IP核中的工作電路暫時不能工作,只有當產(chǎn)權(quán)認證成功,,保護模塊發(fā)出使能信號,,IP核中工作電路才開始工作。產(chǎn)權(quán)認證由IP核中保護模塊和外部的安全管理芯片交互實現(xiàn),,而身份認證則由安全管理芯片完成,。雙重認證方法模型如圖1所示,主要包括FPGA,、FPGA配置器件,、安全芯片等。

    本設(shè)計中,,對FPGA及其配置器件無特殊要求,,選用通用器件即可,這里選用的分別是Altera公司的EP2C20F256C8EPCS1,。
    安全芯片既要實現(xiàn)身份認證,又要通過與IP核中保護模塊的交互實現(xiàn)產(chǎn)權(quán)認證,,對安全性及其他性能都有較高的要求。本設(shè)計選用Z32芯片作為安全芯片,。
2.2 雙重認證方法的工作流程
    本設(shè)計采用雙重認證機制保護FPGA的安全應用,,其工作流程如圖2所示。系統(tǒng)上電后,,從存儲器件加載IP核到FPGA中,,首先進行用戶身份認證,身份認證成功后進行產(chǎn)權(quán)認證,。只有當身份認證和產(chǎn)權(quán)認證全部成功后,,F(xiàn)PGA才開始正常工作。兩次認證中任意一次失敗,,就會啟動錯誤計數(shù)器,,當計數(shù)達到設(shè)定的值后,系統(tǒng)就會銷毀存儲的秘密信息,,使得系統(tǒng)失效,。
    從圖2可以看出,產(chǎn)權(quán)認證受身份認證保護,,即只有身份認證通過,,才能進行產(chǎn)權(quán)認證。不法者即使獲得IP核配置信息,,由于不能通過身份認證,, 也無法使FPGA正常工作,;合法使用者如果復制IP核的配置信息來配置其他FPGA,由于不能通過產(chǎn)權(quán)認證,,也無法使FPGA正常工作,。因此,雙重認證方法有效地滿足了SRAM工藝FPGA的安全應用需求,。

3 關(guān)鍵模塊的設(shè)計及實現(xiàn)
    首先對以下兩個符號進行說明:
    (1) Kp:口令密鑰,,在身份認證成功后由口令、口令哈希值等分量合成,,主要用于對密文存在的認證密鑰Ka解密,。
    (2) Ka:認證密鑰,受口令密鑰Kp保護,,身份認證成功前以密文形式存在,,是產(chǎn)權(quán)認證過程中AES算法的密鑰。
3.1 身份認證模塊
    身份認證主要由Z32安全芯片來完成,。本設(shè)計在Z32的固件程序中,,實現(xiàn)AES算法和SHA-256算法。在芯片的Flash中開辟安全存儲區(qū),,只有固件控制程序可以對該安全存儲區(qū)操作,,外部程序無訪問權(quán)限。為了提高身份認證的安全性,,本設(shè)計采用口令方式進行身份認證,,安全存儲區(qū)中不存儲口令的明文,僅存儲正確口令的哈希值及認證密鑰Ka的密文,。
    身份認證原理如圖3所示,。本設(shè)計采用了密鑰分級保護的思想,通過口令密鑰Kp來保護認證密鑰Ka,。只有用戶口令正確,,系統(tǒng)才能計算出口令密鑰Kp,然后調(diào)用AES算法將認證密鑰Ka解密;若口令不正確,,則即使將系統(tǒng)暴力拆解,,直接讀取芯片的存儲區(qū),,也只能獲得Ka的密文,,而無法獲得Ka的值。

    身份認證的具體過程為:
    (1) 接收用戶輸入的口令,。
    (2) 將用戶輸入的口令用SHA-256算法處理,,其結(jié)果與安全存儲區(qū)中正確口令的哈希值(256 bit)進行比對。若比對結(jié)果一致,,則跳過步驟(3),,否則執(zhí)行步驟(3),。
    (3) 重新執(zhí)行步驟(1),同時啟動錯誤計數(shù)器,,錯誤值加1,。當計數(shù)到設(shè)定值,則銷毀安全存儲區(qū)中的數(shù)據(jù),,系統(tǒng)被鎖死,。
    (4) 將口令與哈希值的低128 bit按位異或,得口令密鑰Kp,。若口令值不足128 bit,,則將口令高位補為0,補足128 bit;若口令多于128 bit,,則僅取其低128 bit,。
    (5) 調(diào)用AES算法,用步驟(4)得到的口令密鑰Kp將密文存儲的Ka解密,,得認證密鑰Ka,。解密后的Ka也存儲在安全Flash區(qū)中。同時,,Z32芯片將生成的口令密鑰Kp清零,。
    (6) 身份認證成功,向IP核保護模塊發(fā)出產(chǎn)權(quán)認證開始信號,,等待其響應,。
    若身份認證成功后,用戶輸入修改登錄口令的命令,,則首先用原口令密鑰Kp將認證密鑰Ka解密,,然后計算出新口令的哈希值及新的口令密鑰Kp,調(diào)用AES算法將認證密鑰Ka用新的口令密鑰加密,,最后將安全存儲區(qū)中數(shù)據(jù)用新口令的哈希值和Ka新的密文替換,。在這里需要注意的是認證密鑰Ka的值并未變化,改變的僅為存儲區(qū)中Ka的密文,。
3.2 產(chǎn)權(quán)認證模塊
    產(chǎn)權(quán)認證由Z32芯片和IP核中的保護模塊共同完成,,產(chǎn)權(quán)認證原理如圖4所示,虛線為控制信號,,實線為數(shù)據(jù)流,。IP核保護模塊由偽隨機數(shù)發(fā)生器、AES加/解密器,、比對模塊,、比對結(jié)果處理模塊、寄存器等組成,。當用戶通過身份認證后,,Z32芯片將安全存儲區(qū)中加密存儲的認證密鑰Ka解密,,然后通知FPGA,F(xiàn)PGA響應該信號,,即產(chǎn)權(quán)認證開始,。

 

 

    產(chǎn)權(quán)認證的具體過程為:
    (1) Z32芯片向FPGA發(fā)出產(chǎn)權(quán)認證開始信號。
    (2) IP核保護模塊響應產(chǎn)權(quán)認證開始信號,,偽隨機數(shù)發(fā)生器產(chǎn)生一個偽隨機序列,。
    (3) 偽隨機序列分成兩路:一路存儲在保護模塊的寄存器中;另一路用AES算法加密(其中加密密鑰為Ka),,然后把密文傳給Z32芯片,。
    (4) Z32芯片接收到密文后,利用身份認證過程中解密所得的認證密鑰Ka,,將所接收到的密文解密,,然后將結(jié)果回傳給FPGA認證模塊。
    (5) IP核保護模塊接收到Z32傳回的序列,將其與步驟(1)中產(chǎn)生的序列值比對,。若比對結(jié)果一致,,則發(fā)出使能信號,IP核中工作電路開始工作;若不一致,,則比對模塊向Z32控制器傳回比對錯誤信號,重新執(zhí)行步驟(1),,同時Z32芯片啟動錯誤計數(shù)器,錯誤值加1,,當計數(shù)到設(shè)定值,,則銷毀Z32安全存儲區(qū)中的信息,系統(tǒng)被鎖死,。
4 安全性分析
    本設(shè)計中,,IP核工作電路只有在產(chǎn)權(quán)認證成功后才能工作,由于產(chǎn)權(quán)認證采用了挑戰(zhàn)應答方式,,每次產(chǎn)生的隨機序列不同,,非法者使用重放攻擊不能通過產(chǎn)權(quán)認證。由于對偽隨機序列采用的是AES加密,,在不知道密鑰的情況下很難破解,,安全可靠性高[5]。因此,,產(chǎn)權(quán)認證的安全性取決于認證密鑰Ka的安全性,。
    認證密鑰Ka存在于FPGA的配置數(shù)據(jù)流和安全芯片中。因為 FPGA芯片供應商對配置數(shù)據(jù)流的定義是不公開的,,所以無法獲得配置數(shù)據(jù)流中的認證密鑰Ka,。而若想破解安全芯片而獲得認證密鑰Ka也是不現(xiàn)實的,,因為Ka受口令密鑰Kp保護,只有用戶輸入正確的口令,,才能利用口令,、口令哈希值計算出口令密鑰Kp,才能將Ka解密,。非法用戶沒有正確的口令,,不能計算出口令密鑰Kp,無法使FPGA正常工作,,這樣便達到了防止非法用戶使用FPGA的目的,;合法用戶通過身份認證后能夠?qū)a解密,但只有固件程序能夠?qū)a操作,,用戶也無法獲得Ka的具體值,,即使拷貝IP核配置信息來配置其他FPGA,由于不知道Ka的具體值,,無法通過產(chǎn)權(quán)認證,,復制的IP核也不能工作,實現(xiàn)了對設(shè)計者產(chǎn)權(quán)的保護,。
    本文設(shè)計的保護方法采用了身份認證,、產(chǎn)權(quán)認證兩重認證機制,體現(xiàn)了分級保護的思想,。雖然消耗了一部分硬件資源,,但有效地保證了SRAM工藝FPGA的安全應用,達到了非法用戶不能使用FPGA,、合法用戶不能侵犯設(shè)計者產(chǎn)權(quán)的目的,。本設(shè)計安全性高、通用性強,,具有廣泛的應用前景,。
參考文獻
[1] GUAJARDO J,KUMAN S, SCHRIJEN S, et al. Physical unclonable functions and public-key crypto for FPGA IP protection[C]. Amsterdam: Field Programmable Logic and application, 2007: 189-195.
[2] 章禮宏, 范全潤. 基于EDA軟件和FPGA的IP核保護技術(shù)[J]. 電子設(shè)計工程, 2009, 17(3):98-100.
[3] 范明俊, 李寧, 趙樂軍,等. 一種安全可靠性高的全新IP核保護方法[J]. 微電子學, 2007, 37(2):185-188.
[4] GUNGYSU T, MOLLER B, PAAR C, et al. Dynamic intellectual property protection for reconfigurable devices[C].Kitakyushu: Field-Programmable Technology, 2008:169-172.
[5] 楊義先, 鈕心析. 應用密碼學[M]. 北京: 北京郵電大學出版社, 2005.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。