今天的設計人員已經在許多不同的領域中選擇FPGA作為首選的解決方案。這些FPGA器件早已超越了原本作為原型設計工具的范疇,逐漸用于生產應用中,尤其是消費電子和汽車電子等領域。據Gartner Dataquest市場研究公司指出,FPGA器件在汽車應用中的使用規模從2002到2005年增加約七倍。
這個增長在很大程度上是來自于FPGA本身的特點。由于象全球定位系統 (GPS) 導航裝置和DVD播放機之類設備的產品壽命相對較短,因此縮短其開發周期變得非常重要。可編程邏輯便可為設計人員提供所需的靈活性,以加速工作進度來配合緊迫的期限。加上AISC 作為這類應用的傳統解決方案的掩膜成本飚升,不僅使到成本上漲,而且還增加了風險,迫使設計人員需要尋求別的替代方案。與此同時,消費者開始要求產品能提供更多樣化的功能,使到消費和汽車電子的制造商不得不基于可變和可配置的成套硬件上開發他們的產品,以滿足不斷變化的需求。
此外,也許令人驚訝的是,電子產品的小型化發展從未停過。汽車內的空間非常珍貴,而消費電子的發展主要由便攜性所推動。這使得FPGA這類能將許多 (多樣化的) 功能集成在單一芯片上的元件更具吸引力。
FPGA廠家對這類需求作出了響應,使到制造的產品更加適用于生產解決方案,并特別考慮了產品的可靠性。汽車和便攜應用在溫度范圍、防沖擊和振動方面有特定的要求,而且還面對以SRAM為基礎器件出現軟錯誤問題的挑戰。降低成本也是一個需要考慮的問題,如Actel便推出了以價值為基礎 (value-based) 的新產品系列 ProASIC3/E,來配合這個市場對于低 FPGA 單位成本應用的需求。
設計安全性也是人們關注的一個問題,特別在消費和汽車電子市場。在FPGA使用的設計和配置數據代表了整個系統中知識產權的重要部分。或許是太過優柔寡斷或其它原因,設計人員一直都沒有認真考慮設計盜竊的問題。但事實上,競爭對手的反向工程是一個真實的商業危機,且已存在好一段時間。
如果能夠在可編程器件中存取IP核,用戶就有可能得到額外的價值。制造商利用單個器件來實現產品多元化會有風險,因為最終用戶可能會被誘惑進行廉價的非法升級,只需對其現有產品的部份元件進行重編程便可。
例如,在汽車電子市場,非法復制產品的情況越來越多;這些低質、低成本元件通常針對售后和非廠家授權服務的市場。而未經授權元件的銷售渠道非常難以控制 (盡管并非不可能)。這些復制的板上系統元件往往都沒有最新或經重新校準的設定、測定燃油傳輸、點火時間及其它控制功能,有可能導致引擎失效和損壞。
FPGA也越來越多地用于能夠固有地抵抗外界篡改能力的應用中。為了防止盜竊服務,數字機頂盒和移動電話之類的設備需要有安全功能。如果黑客能侵入以FPGA為基礎的衛星無線接收總臺,并使用戶的認證機制失效,不道德的用戶就能夠乘機盜用免費的服務!
系統的安全機制一旦被擊破,當中的技術通常都會大規模地被散布。只要看一看eBay就可找到各種通過此方法提供的免費服務總臺,例如有線電視的解碼器。
即使在產品上市之前,也存在安全/盜竊風險。許多消費和汽車電子廠家都會將一部份的產品制造外判,這就會帶來過建的問題,即是代工一方超額制造客戶所定購數量的產品,然后銷往地下市場。更糟糕的是,第三方器件編程服務的用戶必須以未經保護的格式提供其FPGA配置數據,而這些數據很容易被機構內或外部的人盜取。
要防止這類非法活動,設計人員必須從元件層面入手。FPGA的三大技術是反熔絲、Flash和SRAM。其中,反熔絲被公認為固有最安全的技術,因為要非法讀取以反熔絲為基礎的FPGA狀態極之困難;舉例說,一個200萬門的Actel反熔絲FPGA含有約5300萬個反熔絲,而在一般的設計中只有2-5% 會被用于編程。因此要找出那些經編程的反熔絲的概率很低,這使到設計的盜取非常困難。
反熔絲FPGA也能抵御過去用于攻擊ASIC和成品的反向工程技術。這個技術會對目標芯片進行連續分層剝離,并直接觀察敷涂了金屬的位置、通路孔和其它特點。經編程的反熔絲幾乎與未經編程的反熔絲沒有分別,同樣由于找出經編程反熔絲的概率很低,使到反向工程的機會幾乎不可能出現。
以Flash 為基礎的FPGA一般也被認為是完全安全的;當對Flash開關編程后,半導體器件層并不會出現物理變化,因此與反熔絲一樣,要通過入侵探測來確定經編程或運行中的器件是非常困難的事。
相反,以SRAM為基礎的FPGA就需要外部配置器件 (通常是板上PROM),在上電時將配置數據碼流傳送給FPGA。這個碼流很容易被黑客截獲;又或者說這個PROM能夠被復制或直接被人讀取其內容。
有些FPGA還包括各種升級功能,有助于保證編程過程中或編程后的安全性。例如,Actel的ProASIC Flash FPGA早就包含了名為FlashLock的功能,采用由用戶定義的密鑰機制。假如沒有這個密鑰,就不能對器件進行讀、寫、驗證或擦除操作。器件還提供一個永久性的選項,賦予一次性的編程設定,意味著任何方式都不能讀取其設計內容。
這類 Flash FPGA通過物理解構的方式來防止設計盜竊;Flash 的單元位于7層金屬之下,幾乎不可能從物理層面被解碼,因為不能在不干擾已被編程 (或已被擦除) 的Flash晶體管上的電荷下移除這些金屬層。
這些器件同時克服了另一個基本問題;沒有包含能回讀配置數據的機制。傳統的FPGA結構都有一個回讀功能,讓器件可在編程后進行驗證。在ProASIC3/E器件中,由于驗證過程屬于器件編程的固有部分,因此毋需額外的回讀功能。
Actel的ProASIC3/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,并采用目前元件所提供額外的安全功能,設計人員就可安全地充分發揮可編程邏輯的可編程性和現場升級的靈活性優勢。
責任編輯:gt
評論
查看更多