本發(fā)明屬于大規(guī)模集成電路設(shè)計(jì)技術(shù)領(lǐng)域,特別涉及一種sram型fpga的加密裝置及方法,可用于保護(hù)基于sram型fpga的產(chǎn)品及設(shè)計(jì)的知識(shí)產(chǎn)權(quán)。
背景技術(shù):
sram(staticrandomaccessmemory,靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器)是目前應(yīng)用范圍最廣的fpga(fieldprogrammablegatearray,現(xiàn)場(chǎng)可編程門(mén)陣列)結(jié)構(gòu),主要因?yàn)樗\(yùn)行速度快且具有可重編程能力。sram型fpga芯片是基于sram結(jié)構(gòu)的可再配置型fpga器件,加電時(shí)要將配置文件數(shù)據(jù)讀入片內(nèi)sram中,配置完成后可進(jìn)入工作狀態(tài);掉電后sram中的配置文件數(shù)據(jù)丟失,sram型fpga芯片內(nèi)部邏輯關(guān)系隨之消失。這種sram型fpga芯片可反復(fù)使用,在商業(yè)及科研領(lǐng)域已經(jīng)得到了廣泛的應(yīng)用,為用戶(hù)提供了最大的靈活性。隨著sram型fpga芯片應(yīng)用的推廣也促使人們對(duì)其產(chǎn)品及設(shè)計(jì)的安全性越來(lái)越關(guān)心。
fpga的常用攻擊方法有克隆與復(fù)制,反工程,黑盒攻擊等??寺∨c復(fù)制是指對(duì)fpga設(shè)計(jì)的原樣復(fù)制,攻擊者關(guān)心的是最終產(chǎn)品的復(fù)制。由于sram型fpga芯片掉電易失的特性,要求每次上電都需要將配置文件的比特流數(shù)據(jù)按照一定的時(shí)序?qū)懭雜ram型fpga芯片完成配置。攻擊者可采用一定電路對(duì)配置fpga的數(shù)據(jù)引腳進(jìn)行采樣,利用記錄下來(lái)的配置數(shù)據(jù)可對(duì)另一塊fpga芯片進(jìn)行配置,如此很容易便實(shí)現(xiàn)了對(duì)sram型fpga芯片內(nèi)部設(shè)計(jì)電路的克隆,從而達(dá)到復(fù)制產(chǎn)品的目的。
反工程是指調(diào)配專(zhuān)業(yè)的人力、物力使用專(zhuān)業(yè)工具對(duì)芯片的各金屬連接層依次進(jìn)行剝離和照相記錄以得到芯片結(jié)構(gòu),從而獲取原設(shè)計(jì)的網(wǎng)表與電路圖來(lái)復(fù)制和制作新的電路。雖然這種方法需要一定的成本與實(shí)踐,但sram型fpga芯片的實(shí)現(xiàn)結(jié)構(gòu)對(duì)于專(zhuān)業(yè)的反工程保護(hù)能力也比較差。
黑盒攻擊指通過(guò)對(duì)芯片輸入所有可能的輸入值,獲取對(duì)應(yīng)的輸出值,以此得到系統(tǒng)設(shè)計(jì)的真值表來(lái)獲取原設(shè)計(jì)。一旦設(shè)計(jì)復(fù)雜,窮舉所有的設(shè)計(jì)輸入需要大量的時(shí)間,這種方法是不現(xiàn)實(shí)的。
目前,對(duì)sram型fpga芯片的加密裝置及方法主要有以下幾類(lèi):
1.選用自帶加密功能的sram型fpga芯片,使用加密算法對(duì)配置文件數(shù)據(jù)進(jìn)行加密,當(dāng)配置文件被加載到sram型fpga芯片中時(shí)再對(duì)配置文件數(shù)據(jù)進(jìn)行解密還原。這種方法簡(jiǎn)單、實(shí)用,但是需要sram型fpga芯片中配備有該類(lèi)加密硬核,而現(xiàn)階段只有部分高端sram型fpga芯片中具備此類(lèi)硬核,使得該方法加密成本高且具有局限性。
例如,專(zhuān)利授權(quán)號(hào)為cn103257937b,名稱(chēng)為“一種保護(hù)fpga芯片內(nèi)部配置存儲(chǔ)器的方法”的中國(guó)專(zhuān)利,公開(kāi)了一種保護(hù)fpga芯片中配置存儲(chǔ)器中數(shù)據(jù)的方法、芯片和裝置,其方法包括:用解密密碼對(duì)加密后的配置文件數(shù)據(jù)進(jìn)行解密;接收外部輸入的用戶(hù)密碼;當(dāng)強(qiáng)制加密控制比特指示需要對(duì)訪問(wèn)碼進(jìn)行加密時(shí),用解密密碼對(duì)訪問(wèn)碼進(jìn)行加密,加密結(jié)果作為訪問(wèn)權(quán)限密碼,否則直接將訪問(wèn)碼作為訪問(wèn)權(quán)限密碼;將輸入的用戶(hù)密碼與訪問(wèn)權(quán)限密碼進(jìn)行比較,當(dāng)比較結(jié)果一致時(shí),打開(kāi)用戶(hù)對(duì)配置存儲(chǔ)器的訪問(wèn)權(quán)限。
2.外接加密輔助芯片,采用cpld(complexprogrammablelogicdevice,復(fù)雜可編程邏輯器件)、單片機(jī)、加密芯片等外部芯片,為sram型fpga芯片提供安全控制和保護(hù)。在這種加密方法中,sram型fpga芯片加電后,從引導(dǎo)存儲(chǔ)器中讀取配置文件數(shù)據(jù),配置完成后,sram型fpga芯片被啟動(dòng)并進(jìn)行認(rèn)證工作。該方法對(duì)加密芯片的加密能力有一定的要求,因此應(yīng)用受到限制,并且一定程度上增加了硬件成本。
例如,專(zhuān)利授權(quán)號(hào)為cn102567671b,名稱(chēng)為“一種fpga配置數(shù)據(jù)的加密系統(tǒng)及其加密方法”的中國(guó)專(zhuān)利,公開(kāi)了一種fpga配置數(shù)據(jù)的加密系統(tǒng)及其加密方法。系統(tǒng)包括單片機(jī)、加密單元和配置芯片;其方法具體為:配置芯片將配置數(shù)據(jù)發(fā)送至編程元件,加密單元在編程元件接收到配置數(shù)據(jù)后控制單片機(jī)開(kāi)始配置數(shù)據(jù),之后加密單元發(fā)送一隨機(jī)碼給單片機(jī),單片機(jī)對(duì)該隨機(jī)碼進(jìn)行加密后發(fā)送給加密單元,加密單元同時(shí)對(duì)隨機(jī)碼進(jìn)行加密,將加密后的隨機(jī)碼與單片機(jī)加密后的隨機(jī)碼進(jìn)行比對(duì),若相同則控制編程元件中的配置數(shù)據(jù)開(kāi)始執(zhí)行。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)存在的缺陷,提供了一種sram型fpga的加密裝置及方法,用于解決現(xiàn)有技術(shù)中加密裝置成本高、對(duì)外接加密芯片的加密能力要求高和加密方法具有局限性的技術(shù)問(wèn)題。
為了實(shí)現(xiàn)上述目的,本發(fā)明采取的技術(shù)方案為:
一種sram型fpga的加密裝置,包括sram型fpga芯片、非易失性存儲(chǔ)器件、片外sram芯片、靜態(tài)認(rèn)證串號(hào)遠(yuǎn)程更換接口、靜態(tài)認(rèn)證串號(hào)輸入按鍵和可拆除加密使能開(kāi)關(guān),其中:
sram型fpga芯片,包括用戶(hù)邏輯模塊和加密認(rèn)證模塊,其中:
用戶(hù)邏輯模塊,用于實(shí)現(xiàn)sram型fpga芯片的用戶(hù)邏輯功能;
加密認(rèn)證模塊,包括靜態(tài)認(rèn)證串號(hào)更換模塊、初始序列加密模塊和fpga序列號(hào)獲取模塊,其中:
靜態(tài)認(rèn)證串號(hào)更換模塊,用于接收并解析通過(guò)靜態(tài)認(rèn)證串號(hào)遠(yuǎn)程更換接口以及靜態(tài)認(rèn)證串號(hào)輸入按鍵輸入的靜態(tài)認(rèn)證串號(hào)更換信息,再將更換信息送往初始序列加密模塊;
fpga序列號(hào)獲取模塊,通過(guò)邏輯功能實(shí)現(xiàn)對(duì)fpga序列號(hào)的合法獲取,并將獲取的fpga序列號(hào)送往初始序列加密模塊;
初始序列加密模塊,用于實(shí)現(xiàn)對(duì)sram型fpga芯片的第一次加密、對(duì)非易失性存儲(chǔ)器件和片外sram芯片進(jìn)行讀寫(xiě)控制、實(shí)現(xiàn)靜態(tài)認(rèn)證序列號(hào)更換并根據(jù)安全認(rèn)證的結(jié)果判定是否向用戶(hù)邏輯模塊發(fā)送開(kāi)始工作信號(hào);
非易失性存儲(chǔ)器件,其端口與sram型fpga芯片的配置管腳相連,用于存儲(chǔ)sram型fpga芯片的配置文件數(shù)據(jù)以及包含靜態(tài)認(rèn)證串號(hào)、認(rèn)證初始序列和認(rèn)證加密結(jié)果的安全信息;
片外sram芯片,用于存儲(chǔ)sram型fpga芯片的成功配置次數(shù),其供電采用相對(duì)于加密裝置獨(dú)立的電池供電方式;
靜態(tài)認(rèn)證串號(hào)遠(yuǎn)程更換接口,用于接收用戶(hù)遠(yuǎn)程發(fā)送的靜態(tài)認(rèn)證串號(hào)更換信息;
靜態(tài)認(rèn)證串號(hào)輸入按鍵,用于接收用戶(hù)本地發(fā)送的靜態(tài)認(rèn)證串號(hào)更換信息;
可拆除加密使能開(kāi)關(guān),用于向初始序列加密模塊發(fā)送單比特的加密使能信號(hào)。
一種sram型fpga的加密方法,包括如下步驟:
(1)加密裝置加電后,sram型fpga芯片從非易失性存儲(chǔ)器件中讀取配置文件,并實(shí)現(xiàn)對(duì)sram型fpga芯片的配置;
(2)fpga序列號(hào)獲取模塊獲取fpga序列號(hào),并將獲取的fpga序列號(hào)發(fā)送至初始序列加密模塊;
(3)初始序列加密模塊判斷加密使能信號(hào)是否為高電平,若是,執(zhí)行步驟(3a),進(jìn)行對(duì)sram型fpga芯片的第一次加密,否則執(zhí)行步驟(4):
(3a)初始序列加密模塊定義靜態(tài)認(rèn)證串號(hào),并將該靜態(tài)認(rèn)證串號(hào)寫(xiě)入非易失性存儲(chǔ)器件,同時(shí)將成功配置次數(shù)值設(shè)置為1,再將成功配置次數(shù)寫(xiě)入片外sram芯片,并執(zhí)行步驟(3b);
(3b)初始序列加密模塊將fpga序列號(hào)、靜態(tài)認(rèn)證串號(hào)和成功配置次數(shù)依次進(jìn)行拼接,得到認(rèn)證初始序列,將其寫(xiě)入非易失性存儲(chǔ)器件,并執(zhí)行步驟(3c);
(3c)初始序列加密模塊采用用戶(hù)選取的加密算法,對(duì)認(rèn)證初始序列進(jìn)行加密計(jì)算,得到認(rèn)證加密結(jié)果,將其寫(xiě)入非易失性存儲(chǔ)器件,并執(zhí)行步驟(3d);
(3d)關(guān)斷加密裝置電源,并將可拆除加密使能開(kāi)關(guān)拆除,實(shí)現(xiàn)并結(jié)束對(duì)sram型fpga芯片的第一次加密;
(4)加密認(rèn)證模塊實(shí)現(xiàn)兩級(jí)安全認(rèn)證,包括如下步驟:
(4a)初始序列加密模塊分別讀取fpga序列號(hào)獲取模塊中獲取的fpga序列號(hào)、非易失性存儲(chǔ)器件中存儲(chǔ)的靜態(tài)認(rèn)證串號(hào)和片外sram芯片中存儲(chǔ)的成功配置次數(shù),并對(duì)讀取的數(shù)據(jù)依次進(jìn)行拼接,得到待加密初始序列;
(4b)初始序列加密模塊讀取非易失性存儲(chǔ)器件中存儲(chǔ)的認(rèn)證初始序列,并與待加密初始序列進(jìn)行對(duì)比,若一致,則判定第一級(jí)認(rèn)證成功,確認(rèn)sram型fpga芯片、非易失性存儲(chǔ)器件和片外sram芯片安全,并執(zhí)行步驟(4c),否則判定認(rèn)證失敗,sram型fpga芯片停止工作,且不對(duì)非易失性存儲(chǔ)器件及片外sram芯片進(jìn)行寫(xiě)操作,保持其中的存儲(chǔ)信息不變;
(4c)初始序列加密模塊讀取非易失性存儲(chǔ)器件中存儲(chǔ)的認(rèn)證加密結(jié)果,并采用用戶(hù)選取的加密算法對(duì)待加密初始序列進(jìn)行加密計(jì)算,將計(jì)算得到的待認(rèn)證加密結(jié)果和認(rèn)證加密結(jié)果進(jìn)行對(duì)比,若一致則判定第二級(jí)認(rèn)證通過(guò),確認(rèn)sram型fpga芯片從非易失性存儲(chǔ)器件讀取的配置文件正確,并執(zhí)行步驟(5),否則判定第二級(jí)認(rèn)證失敗,sram型fpga芯片停止工作,且不對(duì)非易失性存儲(chǔ)器件及片外sram芯片進(jìn)行寫(xiě)操作,保持其中的存儲(chǔ)信息不變;
(5)初始序列加密模塊更新安全信息和成功配置次數(shù),同時(shí)向用戶(hù)邏輯模塊發(fā)送開(kāi)始工作信號(hào):
(5a)初始序列加密模塊將成功配置次數(shù)加1后重新寫(xiě)入片外sram芯片替換原參數(shù),同時(shí)將fpga序列號(hào)、靜態(tài)認(rèn)證串號(hào)和新的成功配置次數(shù)依次拼接,得到新的認(rèn)證初始序列,并對(duì)新的認(rèn)證初始序列進(jìn)行加密計(jì)算得到新的認(rèn)證加密結(jié)果,將新的認(rèn)證初始序列和新的認(rèn)證加密結(jié)果分別寫(xiě)入非易失性存儲(chǔ)器件;
(5b)初始序列加密模塊向用戶(hù)邏輯模塊發(fā)送開(kāi)始工作信號(hào),用戶(hù)邏輯模塊收到該信號(hào)后開(kāi)始正常工作;
(6)加密認(rèn)證模塊隨時(shí)準(zhǔn)備更換靜態(tài)認(rèn)證串號(hào):sram型fpga芯片正常工作時(shí),加密認(rèn)證模塊處于隨時(shí)待命狀態(tài),加密認(rèn)證模塊接收到用戶(hù)通過(guò)靜態(tài)認(rèn)證串號(hào)遠(yuǎn)程更換接口或靜態(tài)認(rèn)證串號(hào)輸入按鍵發(fā)送的靜態(tài)認(rèn)證串號(hào)更換信息后,立即做出響應(yīng)并實(shí)現(xiàn)靜態(tài)認(rèn)證串號(hào)的更換。
本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn):
1.本發(fā)明由于將安全信息存儲(chǔ)在存儲(chǔ)fpga配置文件數(shù)據(jù)的非易失性存儲(chǔ)器件中且將成功配置次數(shù)存儲(chǔ)在片外小容量sram芯片中,與現(xiàn)有技術(shù)性中需要額外的fpga、cpld、單片機(jī)或加密芯片配合加密相比,有效降低了成本,并易于工程實(shí)現(xiàn)。
2.本發(fā)明由于sram型fpga芯片中與加密相關(guān)的功能模塊均采用fpga內(nèi)部的部分邏輯單元實(shí)現(xiàn),與現(xiàn)有技術(shù)中只適用于少數(shù)高端芯片的加密配置數(shù)據(jù)流方式相比,具有通用性強(qiáng)的優(yōu)點(diǎn)。
3.本發(fā)明由于對(duì)片外sram芯片采用相對(duì)于加密裝置獨(dú)立的電池供電方式,并利用sram芯片掉電易失的特性存儲(chǔ)成功配置參數(shù),若對(duì)該片外sram芯片進(jìn)行非法操作則會(huì)造成芯片內(nèi)存儲(chǔ)的參數(shù)丟失,導(dǎo)致安全認(rèn)證失敗,與現(xiàn)有技術(shù)相比,有效地提高了對(duì)sram型fpga芯片的保護(hù)強(qiáng)度。
4.本發(fā)明由于在實(shí)現(xiàn)對(duì)sram型fpga芯片安全認(rèn)證的過(guò)程中,采用兩級(jí)認(rèn)證,其中第一級(jí)認(rèn)證確認(rèn)sram型fpga芯片、非易失性存儲(chǔ)器件和片外sram芯片是否安全,第二級(jí)認(rèn)證確認(rèn)sram型fpga芯片從非易失性存儲(chǔ)器件讀取的配置文件是否正確,與現(xiàn)有技術(shù)相比,認(rèn)證信息全面,同時(shí),第一級(jí)認(rèn)證失敗則不再進(jìn)行第二級(jí)認(rèn)證操作,與現(xiàn)有技術(shù)相比,減少不必要的工作量,有效提高工作效率。
5.本發(fā)明由于在實(shí)現(xiàn)對(duì)sram型fpga芯片安全認(rèn)證的過(guò)程中,為用戶(hù)提供更換靜態(tài)認(rèn)證串號(hào)的途徑,與現(xiàn)有技術(shù)相比,有效地增大加密算法破解難度,并進(jìn)一步提高了對(duì)sram型fpga的保護(hù)強(qiáng)度。
附圖說(shuō)明
圖1為本發(fā)明sram型fpga的加密裝置的整體結(jié)構(gòu)示意圖;
圖2為本發(fā)明sram型fpga的加密方法的實(shí)現(xiàn)流程框圖。
具體實(shí)施方式
以下結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。本實(shí)施例中的sram型fpga芯片以xilinxxc5vlx110t芯片為例,片外sram芯片優(yōu)選為小容量sram芯片,非易失特性的存儲(chǔ)器件優(yōu)選容量適中可存儲(chǔ)fpga配置文件數(shù)據(jù)及安全信息的非易失特性的存儲(chǔ)器件,靜態(tài)認(rèn)證串號(hào)的遠(yuǎn)程更換接口優(yōu)選以太網(wǎng)口或lvds(low-voltagedifferentialsignaling,低電壓差分信號(hào))接口。
參照?qǐng)D1,本發(fā)明的sram型fpga的加密裝置,包括sram型fpga芯片、非易失性存儲(chǔ)器件、片外sram芯片、靜態(tài)認(rèn)證串號(hào)遠(yuǎn)程更換接口、靜態(tài)認(rèn)證串號(hào)輸入按鍵和可拆除加密使能開(kāi)關(guān),其中:
sram型fpga芯片,包括用戶(hù)邏輯模塊和加密認(rèn)證模塊,其中:
用戶(hù)邏輯模塊,用于實(shí)現(xiàn)sram型fpga芯片的用戶(hù)邏輯功能;
加密認(rèn)證模塊,包括靜態(tài)認(rèn)證串號(hào)更換模塊、初始序列加密模塊和fpga序列號(hào)獲取模塊,其中:
靜態(tài)認(rèn)證串號(hào)更換模塊,用于接收并解析通過(guò)靜態(tài)認(rèn)證串號(hào)遠(yuǎn)程更換接口以及靜態(tài)認(rèn)證串號(hào)輸入按鍵輸入的靜態(tài)認(rèn)證串號(hào)更換信息,再將更換信息送往初始序列加密模塊;
fpga序列號(hào)獲取模塊,通過(guò)邏輯功能實(shí)現(xiàn)對(duì)fpga序列號(hào)的合法獲取,并將獲取的fpga序列號(hào)送往初始序列加密模塊;
初始序列加密模塊,用于實(shí)現(xiàn)對(duì)sram型fpga芯片的第一次加密、對(duì)非易失性存儲(chǔ)器件和片外sram芯片進(jìn)行讀寫(xiě)控制、實(shí)現(xiàn)靜態(tài)認(rèn)證序列號(hào)更換并根據(jù)安全認(rèn)證的結(jié)果判定是否向用戶(hù)邏輯模塊發(fā)送開(kāi)始工作信號(hào);
非易失性存儲(chǔ)器件,其端口與sram型fpga芯片的配置管腳相連,用于存儲(chǔ)sram型fpga芯片的配置文件數(shù)據(jù)以及包含靜態(tài)認(rèn)證串號(hào)、認(rèn)證初始序列和認(rèn)證加密結(jié)果的安全信息;
片外sram芯片,用于存儲(chǔ)sram型fpga芯片的成功配置次數(shù),其供電采用相對(duì)于加密裝置獨(dú)立的電池供電方式。sram芯片具有掉電易失的特性,為保證其中的參數(shù)在加密裝置掉電停止工作的情況下不會(huì)丟失,對(duì)其采用獨(dú)立電池供電,不與加密裝置共用同一套供電系統(tǒng)。若對(duì)片外sarm芯片進(jìn)行非法操作,則會(huì)造成其中的參數(shù)丟失,導(dǎo)致認(rèn)證失敗,因此片外sram芯片可作為保護(hù)sram型fpga產(chǎn)品及設(shè)計(jì)的一道可靠保障;同時(shí),成功配置次數(shù)是個(gè)動(dòng)態(tài)變化的參數(shù),可以提高加密算法的破解難度;
靜態(tài)認(rèn)證串號(hào)遠(yuǎn)程更換接口,用于接收用戶(hù)遠(yuǎn)程發(fā)送的靜態(tài)認(rèn)證串號(hào)更換信息;
靜態(tài)認(rèn)證串號(hào)輸入按鍵,用于接收用戶(hù)本地發(fā)送的靜態(tài)認(rèn)證串號(hào)更換信息;
可拆除加密使能開(kāi)關(guān),用于向初始序列加密模塊發(fā)送單比特的加密使能信號(hào)。該加密使能信號(hào)通過(guò)可拆除加密使能開(kāi)關(guān)發(fā)送至初始序列加密模塊,對(duì)sram型fpga芯片進(jìn)行第一次加密前,打開(kāi)可拆除加密使能開(kāi)關(guān),此時(shí)初始序列加密模塊檢測(cè)到的加密使能信號(hào)為高電平,可拆除加密使能開(kāi)關(guān)被關(guān)斷或被拆除時(shí),初始序列加密模塊檢測(cè)到的加密使能信號(hào)為低電平。
本發(fā)明的sram型fpga加密裝置及方法,為降低加密裝置的成本并提高加密方法的通用性,加密裝置中與加密相關(guān)的功能模塊均利用fpga內(nèi)部分邏輯單元實(shí)現(xiàn),并將安全信息存儲(chǔ)在存儲(chǔ)fpga的非易失性存儲(chǔ)器件中、將成功配置次數(shù)存儲(chǔ)在片外小容量sram中,無(wú)需額外的fpga、cpld、單片機(jī)或加密芯片配合加密認(rèn)證。
參照?qǐng)D2,本發(fā)明的sram型fpga芯片的加密方法,其特征在于,包括如下步驟:
(1)加密裝置加電后,sram型fpga芯片從非易失性存儲(chǔ)器件中讀取配置文件,并實(shí)現(xiàn)對(duì)sram型fpga芯片的配置;
(2)fpga序列號(hào)獲取模塊獲取fpga序列號(hào),并將獲取的fpga序列號(hào)發(fā)送至初始序列加密模塊;
fpga序列號(hào)是在器件生產(chǎn)時(shí)被燒寫(xiě)在芯片內(nèi)用于標(biāo)識(shí)芯片的產(chǎn)品序列號(hào),對(duì)于每個(gè)fpga芯片來(lái)說(shuō)fpga序列號(hào)是唯一的,并且用戶(hù)可以通過(guò)jtag(一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議)或邏輯模塊直接讀出該序列號(hào),本發(fā)明的fpga序列號(hào)獲取模塊通過(guò)邏輯實(shí)現(xiàn)對(duì)fpga序列號(hào)的獲取。
(3)初始序列加密模塊判斷加密使能信號(hào)是否為高電平,若是,執(zhí)行步驟(3a),進(jìn)行對(duì)sram型fpga芯片的第一次加密,否則執(zhí)行步驟(4):
(3a)初始序列加密模塊定義靜態(tài)認(rèn)證串號(hào),并將該靜態(tài)認(rèn)證串號(hào)寫(xiě)入非易失性存儲(chǔ)器件,同時(shí)將成功配置次數(shù)值設(shè)置為1,再將成功配置次數(shù)寫(xiě)入片外sram芯片,并執(zhí)行步驟(3b);
(3b)初始序列加密模塊將fpga序列號(hào)、靜態(tài)認(rèn)證串號(hào)和成功配置次數(shù)依次進(jìn)行拼接,得到認(rèn)證初始序列,將其寫(xiě)入非易失性存儲(chǔ)器件,并執(zhí)行步驟(3c);
(3c)初始序列加密模塊采用用戶(hù)選取的加密算法,對(duì)認(rèn)證初始序列進(jìn)行加密計(jì)算,得到認(rèn)證加密結(jié)果,將其寫(xiě)入非易失性存儲(chǔ)器件,并執(zhí)行步驟(3d);
(3d)關(guān)斷加密裝置電源,并將可拆除加密使能開(kāi)關(guān)拆除,實(shí)現(xiàn)并結(jié)束對(duì)sram型fpga芯片的第一次加密;
對(duì)sram型fpga芯片的第一次加密只用于初始化安全信息和成功配置參數(shù),并且將可拆除加密使能開(kāi)關(guān)拆除可防止對(duì)安全信息和成功配置參數(shù)進(jìn)行非法初始化。
(4)加密認(rèn)證模塊實(shí)現(xiàn)兩級(jí)安全認(rèn)證,包括如下步驟:
(4a)初始序列加密模塊分別讀取fpga序列號(hào)獲取模塊中獲取的fpga序列號(hào)、非易失性存儲(chǔ)器件中存儲(chǔ)的靜態(tài)認(rèn)證串號(hào)和片外sram芯片中存儲(chǔ)的成功配置次數(shù),并對(duì)讀取的數(shù)據(jù)依次進(jìn)行拼接,得到待加密初始序列;
(4b)初始序列加密模塊讀取非易失性存儲(chǔ)器件中存儲(chǔ)的認(rèn)證初始序列,并與待加密初始序列進(jìn)行對(duì)比,若一致,則判定第一級(jí)認(rèn)證成功,確認(rèn)sram型fpga芯片、非易失性存儲(chǔ)器件和片外sram芯片安全,并執(zhí)行步驟(4c),否則判定認(rèn)證失敗,sram型fpga芯片停止工作,且不對(duì)非易失性存儲(chǔ)器件及片外sram芯片進(jìn)行寫(xiě)操作,保持其中的存儲(chǔ)信息不變;
(4c)初始序列加密模塊讀取非易失性存儲(chǔ)器件中存儲(chǔ)的認(rèn)證加密結(jié)果,并采用用戶(hù)選取的加密算法對(duì)待加密初始序列進(jìn)行加密計(jì)算,將計(jì)算得到的待認(rèn)證加密結(jié)果和認(rèn)證加密結(jié)果進(jìn)行對(duì)比,若一致則判定第二級(jí)認(rèn)證通過(guò),確認(rèn)sram型fpga芯片從非易失性存儲(chǔ)器件讀取的配置文件正確,并執(zhí)行步驟(5),否則判定第二級(jí)認(rèn)證失敗,sram型fpga芯片停止工作,且不對(duì)非易失性存儲(chǔ)器件及片外sram芯片進(jìn)行寫(xiě)操作,保持其中的存儲(chǔ)信息不變;
上述兩安全認(rèn)證包含的認(rèn)證信息全面,其中第一級(jí)認(rèn)證用于確認(rèn)sram型fpga芯片、非易失性存儲(chǔ)器件和片外sram是否安全,第二級(jí)認(rèn)證用于確認(rèn)sram型fpga從非易失性存儲(chǔ)器件讀取的配置文件是否正確,若第一級(jí)認(rèn)證失敗,則不再進(jìn)行第二級(jí)認(rèn)證操作,可以省去不必要的工作量,有效提高工作效率;
(5)初始序列加密模塊更新安全信息和成功配置次數(shù),同時(shí)向用戶(hù)邏輯模塊發(fā)送開(kāi)始工作信號(hào):
(5a)初始序列加密模塊將成功配置次數(shù)加1后重新寫(xiě)入片外sram芯片替換原參數(shù),同時(shí)將fpga序列號(hào)、靜態(tài)認(rèn)證串號(hào)和新的成功配置次數(shù)依次拼接,得到新的認(rèn)證初始序列,并對(duì)新的認(rèn)證初始序列進(jìn)行加密計(jì)算得到新的認(rèn)證加密結(jié)果,將新的認(rèn)證初始序列和新的認(rèn)證加密結(jié)果分別寫(xiě)入非易失性存儲(chǔ)器件;
(5b)初始序列加密模塊向用戶(hù)邏輯模塊發(fā)送開(kāi)始工作信號(hào),用戶(hù)邏輯模塊收到該信號(hào)后開(kāi)始正常工作;
(6)加密認(rèn)證模塊隨時(shí)準(zhǔn)備更換靜態(tài)認(rèn)證串號(hào):sram型fpga芯片正常工作時(shí),加密認(rèn)證模塊處于隨時(shí)待命狀態(tài),加密認(rèn)證模塊接收到用戶(hù)通過(guò)靜態(tài)認(rèn)證串號(hào)遠(yuǎn)程更換接口或靜態(tài)認(rèn)證串號(hào)輸入按鍵發(fā)送的靜態(tài)認(rèn)證串號(hào)更換信息后,立即做出響應(yīng)并實(shí)現(xiàn)靜態(tài)認(rèn)證串號(hào)的更換。靜態(tài)認(rèn)證串號(hào)更換的具體步驟如下:
(6a)用戶(hù)通過(guò)靜態(tài)認(rèn)證串號(hào)輸入按鍵以二進(jìn)制序列的形式或靜態(tài)認(rèn)證串號(hào)遠(yuǎn)程更換接口,向sram型fpga芯片發(fā)送包含更換信息的數(shù)據(jù)包;
靜態(tài)認(rèn)證串號(hào)輸入按鍵為用戶(hù)提供本地更換途徑,靜態(tài)認(rèn)證串號(hào)遠(yuǎn)程更換接口為用戶(hù)提供遠(yuǎn)程更換途徑,方便用戶(hù)隨時(shí)進(jìn)行靜態(tài)認(rèn)證串號(hào)更換。
(6b)靜態(tài)認(rèn)證串號(hào)更換模塊接收并解析靜態(tài)認(rèn)證串號(hào)更換信息,得到新的靜態(tài)認(rèn)證串號(hào),并發(fā)送至初始序列加密模塊;
(6c)初始序列加密模塊讀取fpga序列號(hào)獲取模塊中獲取的fpga序列號(hào)和片外sram芯片中存儲(chǔ)的成功配置次數(shù),并將fpga序列號(hào)、新的靜態(tài)認(rèn)證串號(hào)和成功配置次數(shù)依次進(jìn)行拼接,得到新的認(rèn)證初始序列,再對(duì)新的認(rèn)證初始序列進(jìn)行加密計(jì)算,得到新的認(rèn)證加密結(jié)果;
(6d)初始序列加密模塊將新的認(rèn)證初始序列、新的認(rèn)證加密結(jié)果和新的靜態(tài)認(rèn)證串號(hào)寫(xiě)入非易失性存儲(chǔ)器件,實(shí)現(xiàn)一次靜態(tài)認(rèn)證串號(hào)更換。
本發(fā)明的sram型fpga加密裝置及方法,通過(guò)靜態(tài)認(rèn)證串號(hào)遠(yuǎn)程更換接口、靜態(tài)認(rèn)證串號(hào)輸入按鍵、靜態(tài)認(rèn)證串號(hào)更換模塊和初始序列加密模塊為用戶(hù)提供靜態(tài)認(rèn)證串號(hào)的更換途徑,可根據(jù)用戶(hù)需求隨時(shí)更換靜態(tài)認(rèn)證串號(hào),因此增大加密算法的破解難度并有效地提高了對(duì)sram型fpga的保護(hù)強(qiáng)度。
以上描述僅是本發(fā)明的一個(gè)具體實(shí)例,顯然對(duì)于本領(lǐng)域的專(zhuān)業(yè)人員來(lái)說(shuō),在了解了本發(fā)明內(nèi)容和原理后,都可能在不背離本發(fā)明原理、結(jié)構(gòu)的情況下,進(jìn)行形式和細(xì)節(jié)上的各種修正和改變,但是這些基于本發(fā)明思想的修正和改變?nèi)栽诒景l(fā)明的權(quán)利要求保護(hù)范圍之內(nèi)。