《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 利用安全存儲器實現(xiàn)FPGA設(shè)計安全解決方案

利用安全存儲器實現(xiàn)FPGA設(shè)計安全解決方案

2008-12-17
作者:Altera公司

??? 由于很容易捕獲到配置比特流并進(jìn)行復(fù)制,因此,F(xiàn)PGA設(shè)計很難防范設(shè)計竊取。對于竊取知識產(chǎn)權(quán)(IP)而言,從比特流中提取出IP幾乎不可能,但是卻能從FPGA中克隆整個設(shè)計。為了保護(hù)配置比特流,有的FPGA現(xiàn)在能夠?qū)Ρ忍亓鬟M(jìn)行加密。然而,對于不具備通過嵌入式比特流加密手段來加密配置比特流的FPGA而言,需要在生產(chǎn)過程中增加步驟對FPGA中的密鑰進(jìn)行編程,因此提高了成本。對于大批量應(yīng)用,使用安全輔助芯片" title="輔助芯片">輔助芯片的性價比會更高一些。
?? ?本文提供了解決方案來保護(hù)FPGA設(shè)計不被克隆。利用“識別、朋友或者敵人(IFF)”的設(shè)計安全方法,在FPGA中和安全存儲器" title="安全存儲器">安全存儲器中的哈希計算結(jié)果匹配之前,這一方案禁用FPGA中的設(shè)計,因此,即使捕獲到配置數(shù)據(jù)比特流,設(shè)計也是安全的。在這一解決方案中,安全存儲器是FPGA的安全輔助芯片。

設(shè)計實現(xiàn)

??? 在IFF概念中,采用了安全輔助器件來計算哈希算法。Dallas半導(dǎo)體公司的安全存儲器DS28E01結(jié)合了1024位EEPROM和符合ISO/IEC 10118-3安全哈希算法(SHA-1)的“挑戰(zhàn)-響應(yīng)”認(rèn)證安全方法。DS28E01是一線接口器件,因此這一解決方案只需要一個FPGA I/O引腳。安全存儲器需要采用上拉電阻和一線I/O引腳連接。
??? 圖1所示為采用了IFF概念的設(shè)計安全參考設(shè)計" title="參考設(shè)計">參考設(shè)計的頂層結(jié)構(gòu)圖。安全存儲器SHA-1引擎根據(jù)存儲在安全存儲器中的密鑰來計算哈希算法,該密鑰是FPGA產(chǎn)生的隨機(jī)數(shù)" title="隨機(jī)數(shù)">隨機(jī)數(shù),在安全存儲器中具有唯一的ID。

?

?

圖1 采用了IFF概念的設(shè)計安全解決方案


??? 在使用FPGA時,SHA-1 IFF模塊中有安全存儲器中的匹配密鑰,能夠根據(jù)和安全存儲器中SHA-1引擎相同的輸入來計算SHA-1算法。配置完FPGA后,不會啟用用戶設(shè)計。只有當(dāng)安全存儲器和FPGA中的哈希計算結(jié)果相匹配時,SHA-1 IFF模塊才會使能用戶設(shè)計。
??? 系統(tǒng)一旦上電" title="上電">上電,以嵌有SHA-1 IFF參考設(shè)計的用戶設(shè)計配置完FPGA后,F(xiàn)PGA產(chǎn)生一個隨機(jī)數(shù),把它發(fā)送給安全存儲器。FPGA讀取來自DS28E01的160位消息認(rèn)證碼(MAC)計算結(jié)果,將其和FPGA SHA-1 IFF引擎MAC結(jié)果進(jìn)行對比。如果MAC結(jié)果匹配,SHA-1 IFF模塊使能用戶設(shè)計,如果不匹配,則禁用它。圖2所示為采用了IFF概念的設(shè)計安全流程。

?


??? 這一參考設(shè)計為用戶利用FPGA來設(shè)置DS28E01器件提供了其他方法。FPGA配置完成后,它支持FPGA向安全存儲器發(fā)送密鑰,在生產(chǎn)過程比較安全的地方進(jìn)行設(shè)置。
?? ?圖3所示為通過FPGA對DS28E01編程的設(shè)計安全流程。

?


??? 一旦使能用戶設(shè)計后,關(guān)斷SHA-1 IFF引擎模塊以降低功耗。用戶可以連接外部邏輯或者狀態(tài)機(jī)來復(fù)位SHA-1 IFF引擎,再次啟動工作。一旦使能信號變?yōu)楦唠娖?,SHA-1 IFF引擎模塊則不斷計算并檢查SHA-1算法。

設(shè)計組成模塊

??? 這一解決方案的參考設(shè)計含有三個主要模塊:
??? · SHA-1引擎:這一模塊計算SHA-1算法,進(jìn)行安全認(rèn)證。它接收安全存儲器通過一線接口傳送來的設(shè)計,將其和MAC結(jié)果進(jìn)行對比。只有當(dāng)哈希計算結(jié)果和安全存儲器中SHA-1引擎的哈希計算結(jié)果匹配時,才使能用戶設(shè)計。
??? · 隨機(jī)數(shù)發(fā)生器(RNG):當(dāng)復(fù)位信號置位SHA-1引擎模塊時,RNG為該模塊產(chǎn)生一個隨機(jī)數(shù)。SHA-1 IFF參考設(shè)計使用了一個8位RNG塊。SHA-1引擎模塊處理這一8位隨機(jī)數(shù),轉(zhuǎn)換成40位隨機(jī)數(shù)據(jù),進(jìn)行哈希計算。
??? · 一線接口:這一模塊支持FPGA中參考設(shè)計和安全存儲器之間的數(shù)據(jù)傳送。

用戶設(shè)計模塊

??? SHA-1 IFF引擎系統(tǒng)時鐘頻率的典型值FMAX是100MHz,或者更低。用戶必須向參考設(shè)計輸入SHA-1 IFF引擎頻率,從而保證數(shù)據(jù)在FPGA和安全存儲器之間正確地發(fā)送和接收。用戶可以為SHA-1 IFF引擎和用戶設(shè)計提供不同的時鐘。

解決方案的安全性

??? 上電時,當(dāng)FPGA中的配置數(shù)據(jù)比特流在FPGA和外部存儲器之間傳送時,可以捕獲到它。利用捕獲到的配置數(shù)據(jù)比特流,配置另一FPGA器件,就可以復(fù)制這一FPGA設(shè)計。這一方案可以確??寺∑骷o法工作,從而保護(hù)了用戶設(shè)計。如果沒有正確的密鑰和哈希算法計算結(jié)果,則會一直禁用FPGA中的用戶設(shè)計。
????為了將設(shè)計克隆到另一FPGA設(shè)計中,必須克隆密鑰和安全存儲器的唯一ID。這很難實現(xiàn),因為不能讀出DS28E01密鑰,也無法從MAC結(jié)果中反向篡改SHA-1算法來確定密鑰。

結(jié)? 論

??? 即使捕獲了配置數(shù)據(jù)比特流,這一FPGA設(shè)計安全I(xiàn)FF解決方案也能保護(hù)Altera? FPGA設(shè)計不被克隆。在FPGA中和安全存儲器中的哈希計算結(jié)果匹配之前,一直禁止用戶設(shè)計。這一設(shè)計安全解決方案保護(hù)了FPGA設(shè)計人員的IP。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。