采用MAX II器件實(shí)現(xiàn)FPGA設(shè)計(jì)安全解決方案
基于SRAM的FPGA是易失器件,需要外部存儲(chǔ)器來存儲(chǔ)上電時(shí)發(fā)送給它們的配置數(shù)據(jù)。在傳送期間,配置比特流可能會(huì)被捕獲,用于配置其他FPGA。這種知識(shí)產(chǎn)權(quán)盜竊損害了設(shè)計(jì)人員的利益。
本文引用地址:http://cafeforensic.com/article/191381.htm本文提供的解決方案可防止FPGA設(shè)計(jì)被拷貝,即使配置比特流被捕獲,也可以保證FPGA設(shè)計(jì)的安全性。通過在握手令牌由MAX II器件傳送給FPGA之前,禁止用戶設(shè)計(jì)功能來實(shí)現(xiàn)這種安全性。選用MAX II器件來產(chǎn)生握手令牌,這是因?yàn)樵撈骷哂蟹且资?,關(guān)電時(shí)可保持配置數(shù)據(jù)。而且,對(duì)于這種應(yīng)用,MAX II器件是最具成本效益的CPLD。本文還介紹了采用這種方案的一個(gè)參考設(shè)計(jì)。
硬件實(shí)現(xiàn)
FPGA設(shè)計(jì)安全解決方案的硬件實(shí)現(xiàn)如圖1所示。MAX II器件產(chǎn)生連續(xù)的握手令牌,發(fā)送至FPGA,以使能用戶設(shè)計(jì)。FPGA和MAX II器件之間傳送5個(gè)信號(hào):clock、shift_ena、random_number、ready和handshaking_data。
圖1:FPGA設(shè)計(jì)安全方案的硬件實(shí)現(xiàn)。
一旦FPGA經(jīng)過配置后,它向MAX II器件提供連續(xù)時(shí)鐘。同時(shí)連接至FPGA和MAX II器件的啟動(dòng)/復(fù)位信號(hào)必須置位,以啟動(dòng)系統(tǒng)工作。FPGA中的隨機(jī)數(shù)發(fā)生器(RNG)開始為FPGA和MAX II器件產(chǎn)生初始計(jì)數(shù)值(每次上電或者啟動(dòng)/復(fù)位信號(hào)置位時(shí),僅向MAX II器件發(fā)送一次隨機(jī)數(shù))。隨機(jī)數(shù)準(zhǔn)備好后,shift_ena信號(hào)變?yōu)楦唠娖?,采用random_number信號(hào),隨機(jī)數(shù)串行移位至MAX II器件。隨機(jī)數(shù)全部移位至MAX II器件后,ready信號(hào)置位,指示FPGA可以接收來自MAX II器件的握手令牌。
配置之后,由于Enable信號(hào)還是邏輯低電平,F(xiàn)PGA中的用戶設(shè)計(jì)功能被禁止。只有MAX II器件送出的握手令牌和FPGA內(nèi)部產(chǎn)生的數(shù)據(jù)相匹配,Enable信號(hào)才會(huì)置位,啟動(dòng)用戶設(shè)計(jì)功能。這兩個(gè)數(shù)據(jù)之間出現(xiàn)差異時(shí),Enable信號(hào)變?yōu)榈碗娖剑褂脩粼O(shè)計(jì)功能。MAX II器件中產(chǎn)生握手令牌和FPGA器件中產(chǎn)生數(shù)據(jù)的方法和過程相同。如果沒有正確的令牌,F(xiàn)PGA器件中的用戶設(shè)計(jì)功能被禁用。這樣,即使配置比特流被捕獲,也可以防止用戶設(shè)計(jì)被拷貝。
設(shè)計(jì)構(gòu)建模塊
FPGA的設(shè)計(jì)安全組成包括一個(gè)時(shí)鐘分頻器、隨機(jī)數(shù)發(fā)生器(RNG)、安全內(nèi)核、比較器和可靠性部分,而MAX II器件的設(shè)計(jì)安全組成只包括圖1所示的安全內(nèi)核。
FPGA和MAX II器件使用的安全內(nèi)核相同,如圖2所示,由以下部分構(gòu)成:隨機(jī)數(shù)接收器、64位計(jì)數(shù)器、編碼器、移位器/復(fù)用器。
圖2:FPGA和MAX II器件的安全內(nèi)核。
分頻器相關(guān)文章:分頻器原理
評(píng)論