一種配置數據流安全性高的可編程邏輯器的制造方法
【技術領域】
[0001]本發明屬于可編程邏輯器技術領域,具體涉及一種包含片內非揮發存儲器以提高配置數據流安全性的可編程邏輯器。
【背景技術】
[0002]可編程邏輯器(Programmable Logic Device, PLD)包括現場可編程門陣列(Field Programmable Gate Array, FPGA)和復雜可編程邏輯器件(Complex ProgrammableLogic Device, CPLD)等,是一種眾所周知的電子信息器件。它可以實現任何數字電路功能,設計者只需將設計仿真驗證之后,編譯成配置數據流,再將配置數據流加載到可編程邏輯器上,就可以在不修改硬件的情況下,快速實現設計方案。隨著可編程邏輯器越來越多地應用于關鍵領域,基于可編程邏輯器的系統的安全性問題變得嚴峻。
[0003]在PLD中,最為關鍵的是配置數據流的安全性。配置數據流,也叫配置文件,它是PLD底層結構的鏡像。配置數據流體現著系統設計者的知識產權和用戶的敏感數據,對配置數據流的竊取可以直接復制整個系統,對配置數據流的篡改可以破壞整個系統。因此,配置數據流通常會成為黑客攻擊者的首要目標,對配置數據流在存儲和使用中提供高安全保護成為PLD安全的首要任務。
[0004]現有技術中,為了保護配置數據流不被竊取和惡意加載,采取了諸如加密、認證等多項技術。以FPGA為例,圖1給出了目前主流的基于SRAM的揮發式FPGA中的結構及采取的安全措施,例如 Xilinx 的 Virtex II (參考文獻:“Virtex_II Family Overview”,Datasheet, Xilinx website.)。其中系統設計者主機130上設計編譯好的配置數據流,存儲在片外的非揮發配置存儲器120中,為了安全起見,該配置數據流可以加密后的形式存儲。在FPGA器件110中,包括基于SRAM配置層的FPGA陣列111、解密等安全電路112、揮發式的密鑰存儲器113。其中113主要是基于SRAM的,因為其無法在斷電后保持數據,所以還需要一個電池140模塊來維持供電。系統上電時,配置數據流從120模塊進入FPGA器件110內,通過解密等安全電路112利用113模塊中存儲的密鑰進行解密,加載到111模塊中的SRAM配置層,完成配置,之后FPGA開始工作。
[0005]在這種結構中,一種面臨的風險是配置數據流從片外非揮發配置存儲器傳輸到片內SRAM配置層的過程中,攻擊者可以通過探測連接處的信號來攔截竊取數據流,或者注入假的數據流來將系統篡改成錯誤的功能。另一種風險是,采取了加密措施后,密鑰存儲在片上的揮發存儲器113中,用以供電的電池140引入了額外的風險,攻擊者可以移除電池,將密鑰擦除,從而破壞系統。
[0006]另一種現有技術如圖2所示,主要部分跟圖1的技術相同,只是片內的密鑰存儲采取了一次編程的非揮發密鑰存儲213,例如在Altera的高端產品Stratix II (參考:aStratix II Device Handbook”,Datasheet, Altera website.)中米用了只能一次編程的非易失存儲器作為片內密鑰存儲。盡管可以消除了供電電池以及它所帶來的安全風險,但是這種結構仍然面臨接口處的攔截風險,同時由于它出于集成制造的可行性和成本考慮,采取了一次編程的非易失存儲器作為密鑰存儲,無法更新數據,在重配置過程中可能面臨重播攻擊O^play attack)風險,即攻擊者從接口處攔截到舊版本的配置數據流,可以發送給FPGA器件210,即使該配置數據流是加密的,因為片內的密鑰和認證標簽不能更新,攻擊者手中的舊版本仍然能夠配置FPGA器件。假如此時的系統已經更新版本并修改過之前的安全隱患,那么此時攻擊者發送的舊版本就會帶來安全威脅,尤其是在一些需要遠程重配置的領域,例如航天及軍用系統中。同時,一次編程的非揮發存儲器無法進行真正的測試,其良率會較低,進而帶來整體FPGA器件良率的降低。
[0007]另一種現有技術,是基于非揮發存儲器(non-volatile memory, NVM)作為配置層的FPGA,如圖3所示,FPGA器件310包括基于非揮發配置層的FPGA陣列311、解密等安全電路312,以及非揮發式密鑰存儲器313。在這種結構中,配置數據流直接從系統設計者主機330進入可編程邏輯器,加載到311模塊的非揮發配置層中,因而不需要片外非揮發存儲器來存儲配置數據流。如果為了提高安全性,330模塊將配置數據流進行了加密,則需要安全解密電路312利用313中的密鑰,對配置數據流進行解密之后,再加載到311模塊中的非揮發配置層。目前基于這種結構的主要是基于Flash和Antifuse的非揮發FPGA,例如基于Flash 的 Actel ProASIC3 系列、Actel Fus1n 系列,基于 Antifuse 的 Actel Axcelerator系列(參考:Actel: http://www.actel.com/.)等。在這種結構中,配置數據流直接存儲在片內的非揮發配置層中,不需外部非揮發存儲器,能夠降低外部接口處的探測攻擊風險。但是Flash工藝復雜,跟FPGA邏輯部分的兼容性差,制造成本大大提高。而Antifuse是一次編程存儲器,無法進行多次配置更新,另外,Antifuse的一次編程性使得難以進行制造測試以檢測所有可能的故障,使得編程后良率下降。并且,在這些基于非揮發配置層例如Flash和Antifuse的可編程邏輯器中,解密后的數據直接存儲在每個配置點的Flash和Antifuse上,因此存在針對這些NVM的直接入侵式物理攻擊的風險,例如采用反向工程直接解剖配置單元內部的非揮發存儲點。
[0008]隨著新型存儲器的發展,出現了一些跟邏輯工藝兼容性更好的新型非揮發存儲器,使得在FPGA片內集成較多NVM,從成本角度和可制造性角度變得可行。尤其是電阻式隨機存儲器,具有更好的CMOS工藝兼容性、更低的操作電壓、更高的集成密度等,具有多次編程能力,為配置數據流存儲提供了更多選擇。因此,有必要提出一種采用基于邏輯工藝的新型非揮發存儲器作為片內配置數據流存儲,以提高配置數據流存儲和傳遞安全性的方法。
【發明內容】
[0009]本發明的目的在于提出一種可提高配置數據流在存儲及傳遞過程中安全性的可編程邏輯器。
[0010]本發明提出的可編程邏輯器,是一種基于邏輯工藝兼容的非揮發存儲器,作為片內配置數據流存儲、安全機制控制所需的密鑰和標簽等關鍵信息存儲的可編程邏輯器,其中所述的非揮發存儲器,特別包含電阻式隨機存儲器(Resistive random access memory,RRAM)ο
[0011]本發明提出的可編程邏輯器,其結構框圖如圖4所示。該可編程邏輯器410包括:基于SRAM配置層的可編程邏輯陣列411、非揮發片上存儲器420、安全機制控制電路413、配置控制電路412,還可以包括其它模塊。其中非揮發片上存儲420可以分為多個分區,例如分區一 421、分區二 422、分區三423、其它分區425等,不同分區可以具有不同的安全需求,可以存儲不同類別的數據;非揮發片上存儲420還包括一寫保護電路424,該寫保護電路424可以針對不同分區提供不同的寫保護控制策略;外部的系統設計者主機430,通過接口模塊440,與可編程邏輯器件410進行通信。
[0012]本發明中,所述非揮發片上存儲器420的不同分區可以分別為配置數據流存儲區、密鑰存儲區、認證標簽存儲區等。
[0013]本發明中,所述非揮發片上存儲器420上的寫保護電路模塊,可以對不同分區提供不同的安全保護機制,包括:對配置數據流存儲區提供外部系統設計者主機對其有條件地改寫的權限,對密鑰存儲區提供一次編程保護或者允許內部安全機制控制電路對其進行有條件地寫入的權限,對認證標簽存儲區提供允許外部系統設計者主機和內部安全機制控制電路有條件地寫入的權限,等等。
[0014]本發明中,所述的非揮發片上存儲器420,特別包含電阻式隨機存儲器等可以跟邏輯工藝兼容的非揮發存儲器。
[0015]本發明中,所述的接口模塊440,是外部系統設計者主機430和可編程邏輯器410進行數據通信的接口,具體可以是JTAG接口。
[0016]本發明中,所述的非揮發片上存儲器,其分區數量根據具體情況可以不同。
[0017]本發明中,所述的安全機制控制電路413,根據所采取的具體安全機制的不同,可以包括不同種類的解密運算電路,可以包括不同種類的認證電路,可以包括不同種類的器件序列號運算電路,等等。
[0018]本發明中,所述的配置控制電路412可以在片內,也可以是片外模塊。
[0019]該可編程邏輯器在系統上電工作時,配置控制電路412啟動配置過程,啟動安全機制控制電路413,對非揮發片上存儲器中的配置數據流存儲區進行讀取,并進行安全機制操作(例如包括解密操作),其中所需的密鑰從非揮發片上存儲器的某一分區進行讀取,例如可以是分區三。經過安全機制控制操作(例如解密操作)之后的配置數據流可以加載到可編程邏輯陣列411的SRAM配置層,完成配置,可編程邏輯器開始工作。
[0020]該可編程邏輯器在系統重配置(包括第一次配置)時,系統設計者主機430可將設計編譯的配置數據流,進行加密,然后通過接口模塊440傳遞進可編程邏輯器410,通過安全機制控制電路413所采取的安全機制進行操作,例如可以包括版本一致性認證機制等,其中安全機制所需的敏感數據包括認證標簽等都存儲在非揮發片上存儲器420的某個分區內,例如可以是分區二。認證通過之后,可將加密后配置數據流寫入非揮發片上存儲器內的對應分區進行存儲,例如可以是分區一。如果認證不通過,則可編程邏輯器拒絕配置數據流從外部載入。所述的安全認證機制操作,可以包括將片內存儲的認證標簽跟系統設計者主機隨配置流發送的標簽進行比較,或者進行其他更復雜的運算,也可以包括根據具體的認證機制對片內存儲的認證標簽進行更新。
[0021]本發明的效果是,能提供配置數據流多方面的安全性:
第一,配置數據流存儲在可編程邏輯器片內的非揮