FPGA加密

xiaoxiao_rabbit發表於2018-05-17

FPGA加密(轉)

 

FPGA的加密問題其實是一個加密成本和加密級別的折中,總的說來只要FPGA內部帶非揮發的
Memory塊,就可以實現加密功能, 不帶非揮發Memory塊的FPGA,可以在系統級來解決加密
問題:
1.高階FPGA如Altera StratixII/III, Xilinx Virtex5,內部整合128-bit/256-bit Fuse和
加解密模組,可以實現加密功能;

2.對加密要求高和成本要求適中:可以採用Actel的Flash FPGA如ProASIC3;

3.對成本要求高和加密要求適中:可以採用從系統級來實現加密功能,如普通FPGA+帶加密功能MCU(FPGA的資料通過加密功能MCU配置,FPGA的配置模式可以是從串方式);普通FPGA+帶加密功能的ROM(如Dallas Semiconductor 的DS28E01-100,需要在FPGA設計中加入加密邏輯);普通FPGA+CPLD/Auti-fuse FPGA(把設計的小部分邏輯放到CPLD或者Anti-fuse的FPGA中,如Altera MAX3032或者Actel eX64);

4.對成本要求高和對加密要求高:可以採用Xilinx Spartan3A。Spartan3A晶片帶DNA功能,也就是每個晶片內部有不同的序列號,需要在設計中加入加密邏輯。

 

 

設計安全性也是人們關注的一個問題,特別在消費和汽車電子市場。在FPGA使用的設計和配置資料代表了整個系統中智慧財產權的重要部分。或許是太 過優柔寡斷或其它原因,設計人員一直都沒有認真考慮設計盜竊的問題。但事實上,競爭對手的反向工程是一個真實的商業危機,且已存在好一段時間。

  如果能夠在可程式設計器件中存取IP核,使用者就有可能得到額外的價值。製造商利用單個器件來實現產品多元化會有風險,因為終端使用者可能會被誘惑進行廉價的非法升級,只需對其現有產品的部份元件進行重程式設計便可。

  例如,在汽車電子市場,非法複製產品的情況越來越多;這些低質、低成本元件通常針對售後和非廠家授權服務的市場。而未經授權元件的銷售渠道非常 難以控制 (儘管並非不可能)。這些複製的板上系統元件往往都沒有最新或經重新校準的設定、測定燃油傳輸、點火時間及其它控制功能,有可能導致引擎失效和損壞。

  FPGA也越來越多地用於能夠固有地抵抗外界篡改能力的應用中。為了防止盜竊服務,數字機頂盒和行動電話之類的裝置需要有安全功能。如果黑客能侵入以FPGA為基礎的衛星無線接收總檯,並使使用者的認證機制失效,不道德的使用者就能夠乘機盜用免費的服務!

  系統的安全機制一旦被擊破,當中的技術通常都會大規模地被散佈。只要看一看eBay就可找到各種通過此方法提供的免費服務總檯,例如有線電視的解碼器。

  即使在產品上市之前,也存在安全/盜竊風險。許多消費和汽車電子廠家都會將一部份的產品製造外判,這就會帶來過建的問題,即是代工一方超額製造 客戶所定購數量的產品,然後銷往地下市場。更糟糕的是,第三方器件程式設計服務的使用者必須以未經保護的格式提供其FPGA配置資料,而這些資料很容易被機構內 或外部的人盜取。

  要防止這類非法活動,設計人員必須從元件層面入手。FPGA的三大技術是反熔絲、FlashSRAM。其中,反熔絲被公認為固有最安全的技 術,因為要非法讀取以反熔絲為基礎的FPGA狀態極之困難;舉例說,一個200萬門的Actel反熔絲FPGA含有約5300萬個反熔絲,而在一般的設計 中只有2-5% 會被用於程式設計。因此要找出那些經程式設計的反熔絲的概率很低,這使到設計的盜取非常困難。

  反熔絲FPGA也能抵禦過去用於攻擊ASIC和成品的反向工程技術。這個技術會對目標晶片進行連續分層剝離,並直接觀察敷塗了金屬的位置、通路 孔和其它特點。經程式設計的反熔絲幾乎與未經程式設計的反熔絲沒有分別,同樣由於找出經程式設計反熔絲的概率很低,使到反向工程的機會幾乎不可能出現。

  以Flash 為基礎的FPGA一般也被認為是完全安全的;當對Flash開關程式設計後,半導體器件層並不會出現物理變化,因此與反熔絲一樣,要通過入侵探測來確定經程式設計或執行中的器件是非常困難的事。

  相反,以SRAM為基礎的FPGA就需要外部配置器件 (通常是板上PROM),在上電時將配置資料碼流傳送給FPGA。這個碼流很容易被黑客截獲;又或者說這個PROM能夠被複制或直接被人讀取其內容。

  有些FPGA還包括各種升級功能,有助於保證程式設計過程中或程式設計後的安全性。例如,ActelProASIC Flash FPGA早就包含了名為FlashLock的功能,採用由使用者定義的金鑰機制。假如沒有這個金鑰,就不能對器件進行讀、寫、驗證或擦除操作。器件還提供一 個永久性的選項,賦予一次性的程式設計設定,意味著任何方式都不能讀取其設計內容。

  這類 Flash FPGA通過物理解構的方式來防止設計盜竊;Flash 的單元位於7層金屬之下,幾乎不可能從物理層面被解碼,因為不能在不干擾已被程式設計 (或已被擦除Flash電晶體上的電荷下移除這些金屬層。

  這些器件同時克服了另一個基本問題;沒有包含能回讀配置資料的機制。傳統的FPGA結構都有一個回讀功能,讓器件可在程式設計後進行驗證。在ProASIC3/E器件中,由於驗證過程屬於器件程式設計的固有部分,因此毋需額外的回讀功能。

  ActelProASIC3/E器件進一步擴充了這些安全功能,引進了AES (先進加密標準解密核。AES是符合FIPS (聯邦資訊處理標準) 192版的加密演算法,該標準由美國政府機關所採用,以保護那些敏感但並未分類的資訊。ProASIC3/E器件採用AES的變種演算法,稱為 Rijndael,利用了長度為128位的金鑰。由於可能的金鑰數目約在1038量級,因此即使是採用最強大的計算技術,這種金鑰也是牢不可破。

  AES加密核能同時用於FPGA核本身以及獨特 FlashROM (FROM) 記憶體的加密中。每個FPGA都被分成兩部分:FPGA陣列和FlashROM,兩者都可獨立程式設計,容許在不改變FPGA核的情況下完成FROM升級。

  AES金鑰本身儲存在專門的片上非揮發性Flash記憶體中,並不能被讀取。這就使設計人員可保護其智慧財產權,將經AES加密的配置檔案提供給代工廠商,只有與擁有正確金鑰的器件配合時才能使用,而這個金鑰本身可在安全或可信賴的環境中進行程式設計。

  這個功能可讓設計人員享有將製造外判的成本優勢,同時也為那些想發揮FPGA可程式設計特點的公司帶來更高的安全水平,以便實現後期的設計更改或定製產品配置。

  這些裝置還可用來實現一個使FPGA製造商引以自豪的功能,即是可執行現場升級。這個可能性在理論上已經存在一段時間:以FPGA為基礎的裝置 可因應標準的改變在現場重新配置,又或如客戶決定在訂用服務中啟動升級功能時。但缺點是從OEM方獲取新FPGA配置資料存在安全風險。AES金鑰的使用 可讓ProASIC3器件支援安全的服務內程式設計 (ISP)

  製造商利用這個功能還可在其它方面獲益,例如,訂用式服務的裝置製造商可利用FROM空間來實現終端裝置的安全序列化管理,而所有產品的 FPGA結構都進行了相同的程式設計。AES加密還可以保證資料在PCB板上不同元件之間通訊的安全性。資料本身可能就是敏感的資訊,如在客戶的財務系統中或 按用量付費服務的接入控制裝置中,又或存在資料被利用於反向工程的風險。加密的通訊提供物理性保護措施及防篡改技術以外別具成本效益的保護方法。

  FPGA提供各種先進的安全功能,可讓製造商通過比以前更安全的途徑進行設計和保護資料。選擇具備固有安全性的FPGA技術,如Flash,並採用目前元件所提供額外的安全功能,設計人員就可安全地充分發揮可程式設計邏輯的可程式設計性和現場升級的靈活性優勢。


轉自 新浪部落格 leaf 的文章

相關文章