以 Flash 為基礎(chǔ)的FPGA實(shí)現(xiàn)高度安全設(shè)計(jì)
保密的重要性
對電子系統(tǒng)而言,fpga的保密性極其重要。圖1列出了兩個(gè)系統(tǒng)設(shè)計(jì)的示意圖,左邊為1995年所作的系統(tǒng)設(shè)計(jì),在該設(shè)計(jì)中,以asic芯片為核心,fpga僅起到膠合邏輯的作用;在右邊2005年進(jìn)行的同類型系統(tǒng)設(shè)計(jì)中,不難發(fā)現(xiàn)fpga已經(jīng)成為系統(tǒng)設(shè)計(jì)的核心,它整合了原有asic及部分assp芯片的功能,因此fpga作為系統(tǒng)芯片直接取代了asic的功能。隨著fpga性能、容量與功能的不斷提升,今天的fpga
已成為系統(tǒng)的心臟、知識產(chǎn)權(quán)的集合,所以如果fpga存在安全性問題的話,與其相關(guān)的產(chǎn)品將遭受嚴(yán)重打擊。
保密性定義——四個(gè)對fpga最大的安全威脅
a.克隆
克隆是指競爭對手拷貝啟動 prom 或從板上攔截處理器碼流并進(jìn)行復(fù)制。如果設(shè)計(jì)中包含外部碼流時(shí),則該設(shè)計(jì)的ip 對克隆非常脆弱。
b.反向工程
反向工程即競爭對手由重建您的設(shè)計(jì)原理圖或網(wǎng)表復(fù)制您的設(shè)計(jì)。在這個(gè)過程中,競爭對手將了解設(shè)計(jì)的運(yùn)作從而進(jìn)行改進(jìn)。
c.過建
過建在把您的產(chǎn)品交給無道德的合同制造商生產(chǎn)時(shí)出現(xiàn),這些制造商能在開放市場上購買額外的fpga元器件,然后在廠家沒有允許的情況下,生產(chǎn)額外的產(chǎn)品,在沒有開發(fā)成本和不需要提供技術(shù)支持的條件下,以更低的價(jià)格在市場上售賣,從而牟取利潤。 d.拒絕服務(wù)
拒絕服務(wù)屬于惡意破壞的行為,您的競爭對手或者黑客能夠通過重新編程您系統(tǒng)上的 sram fpga而使您的系統(tǒng)不能運(yùn)行。拒絕服務(wù)使廠家的聲譽(yù)、產(chǎn)品的質(zhì)量等形象將遭到破壞。
actel 第三代 flash fpga
在了解了保密性的定義及fpga保密重要性的基礎(chǔ)上,actel推出了第三代flash fpga,具有眾多優(yōu)點(diǎn)與特性。
actel第三代flash fpga,包括兩個(gè)產(chǎn)品系列:proasic3與proasic3e。proasic3能實(shí)現(xiàn)30k到1m的門密度,它的容量高達(dá)144kb sram,具有288個(gè) i/o ;proasic3e能實(shí)現(xiàn)600k到 3m的門密度,它的容量高達(dá)504kb sram,具有604個(gè)i/o。
這兩個(gè)系列均具備增強(qiáng)的高性能結(jié)構(gòu),其時(shí)鐘頻率最高可達(dá)350mhz,相對于第二代產(chǎn)品來說,其封裝密度提高了20%,而邏輯利用率超過95%。sram的工作頻率也可達(dá)到350mhz,而且每個(gè)模塊中均帶有硬連線的fifo控制功能。三個(gè)鎖相環(huán)(pll)的輸出頻率也可達(dá)到350mhz,并且具有靈活的相位輸出、延遲、分頻和倍頻功能。這兩個(gè)系列同樣支持64 位、66 mhz的pci總線。
作為以價(jià)值為基礎(chǔ)的fpga,第三代產(chǎn)品提供了全新的功能,包括:所有器件都帶有1kb片上可配置的flash rom及帶硬連線 的aes
解密安全 isp。上一代產(chǎn)品中的fpga的保密措施在這一系列內(nèi)繼續(xù)保持,如片上 flashlocktm 安全措施及針對單電壓工作而在片上集成的電荷泵。最后,需要提及的是產(chǎn)品支持19種不同的i/o標(biāo)準(zhǔn),包括
lvds等。
actel第三代flash fpga具有競爭性的成本優(yōu)勢,因?yàn)閒lash 技術(shù)可省去sram fpga額外的成本負(fù)擔(dān)。此外,flash
技術(shù)還可以提供以下獨(dú)特的性能:
·單芯片;
·高安全性;
·上電即行;
·高可靠性 / 固件錯誤免疫性;
·低功耗;
·高性能。
actel flash fpga的保密性特點(diǎn)
保密性特點(diǎn)
flash fpga的物理結(jié)構(gòu)與保密性
由于flash非揮發(fā)性的特點(diǎn),所以基于flash 架構(gòu)的fpga在一個(gè)可靠的環(huán)境下被編程以后,就不再需要一個(gè)另外的碼流,因此它不會受到克隆這種攻擊方式的威脅。另外,它對反向工程等入侵性攻擊有高度的抵抗性,這是因?yàn)樵趂lash fpga里面的用戶邏輯完全取決于flash晶體管的內(nèi)容,就算把器件解體或剝離也只能顯露器件內(nèi)部結(jié)構(gòu),而不是 flash 晶體管的實(shí)際內(nèi)容。由于flash fpga表面的一致使它受到入侵性攻擊時(shí),很難辨認(rèn)其探針點(diǎn)。
a3p/e的保密特性
flashlock可以保證器件上的保密設(shè)定不被隨便更改 ,它包括一個(gè)對應(yīng)的密鑰,長度為128位,其揭露密鑰所需的時(shí)間為5.4x1023年,因此十分可靠。它還包括永久flashlock及編程文檔的aes加密,其aes密鑰長度為128位,而揭露此密鑰所需的時(shí)間將長達(dá)149萬億年。
flash rom (from) 的特性及應(yīng)用
第三代flash fpga是唯一帶片上flash rom (from)的fpga,其from總共有1024位,分為8個(gè)頁,每頁的寬度為128位,見圖2。它的應(yīng)用非常廣泛,包括:互聯(lián)網(wǎng)協(xié)議尋址、設(shè)備序列編碼、訂閱模式、系統(tǒng)校準(zhǔn)設(shè)定、安全的加密匙存儲、資產(chǎn)管理跟蹤、用戶喜好存儲、日期標(biāo)志及版本控制等。
保密性功能選項(xiàng)
在新fpga上進(jìn)行保密設(shè)計(jì)時(shí),有幾種不同的保密性功能選項(xiàng)可供選擇:一、只利用flashlock密鑰進(jìn)行保護(hù) (沒有aes加密),在這個(gè)選項(xiàng)下,用戶可選擇只保護(hù)from、只保護(hù)fpga陣列或兩者同時(shí)保護(hù)。二、aes 加密加 flashlock 密鑰保護(hù),在這個(gè)選項(xiàng)下,aes 密鑰一直受到flashlock密鑰保護(hù),所以被aes加密過的文件不會包含flashlock密鑰。三、只加密 from、只加密fpga陣列或兩者同時(shí)加密,在這個(gè)選項(xiàng)下,可以獨(dú)立地更新from及fpga 或?qū)ζ渚幊獭>幊痰母袷娇梢詾榧兾谋靖袷降? stapl 文件或經(jīng) aes加密過的stapl文件,在這兩種stapl 文件里,可以只包括 from、fpga陣列或兩者同時(shí)包括。
保密報(bào)頭
保密報(bào)頭包含兩種密鑰:flashlock密鑰及aes密鑰,它也包括from及fpga列陣的信息認(rèn)證控制。它還包括fpga陣列與from的保密設(shè)定。具體的fpga陣列保密設(shè)定包括:寫入、擦除及校驗(yàn)的存取控制與加密/不加密的存取控制 (寫入、擦除及校驗(yàn));from的保密設(shè)定包括:寫入、擦除及讀取的存取控制(在此情況下校驗(yàn)是一直被允許的)與加密/不加密的存取控制 (寫入、擦除及讀取)。
信息認(rèn)證模塊(mac)
信息認(rèn)證模塊負(fù)責(zé)認(rèn)證整個(gè)編程碼流,見圖3,包括aes解密核心把stapl文件解密;mac檢查解密后的數(shù)據(jù)是否可被認(rèn)識:如果正確,器件就可以被擦除及編程;如果不正確,軟件會防止編程序列被啟動。在認(rèn)證進(jìn)行過程中器件仍可正常工作。
另外該模塊還負(fù)責(zé)在編程數(shù)據(jù)傳進(jìn)器件時(shí)檢驗(yàn)是否存在損壞的數(shù)據(jù),具體做法是在編程前對每個(gè)數(shù)據(jù)包進(jìn)行驗(yàn)證。
實(shí)施保密的軟件設(shè)置
以下我們將介紹如何進(jìn)行保密的軟件設(shè)置,首先定制安全級別,如圖4所示:
用戶可在生成安全文件時(shí),選擇“custom level”選項(xiàng),將彈出“custom security level”對話框,即可看到fpga陣列與from的保密設(shè)定選項(xiàng),具體的選項(xiàng)包括:
——只容許在 flashlock 密鑰正確時(shí)寫入、擦除及校驗(yàn);
——只容許在 flashlock 密鑰正確時(shí)寫入、擦除(校驗(yàn)可以在沒有 flashlock 密鑰下進(jìn)行);
——只容許在器件內(nèi)有正確的aes密鑰時(shí)進(jìn)行寫入、擦除及校驗(yàn)(配置器件在重編程和校驗(yàn)fpga陣列時(shí)接受一個(gè)被加密的編程文件);
注意:a.要求在器件內(nèi)有包含正確的aes密鑰;b.flashrom在這個(gè)模式下讀取被禁止;c.加密過的flashrom內(nèi)容只允許進(jìn)行校驗(yàn)。 ——接受沒有flashlock或aes密鑰的純文本stapl 文件的寫入、擦除、讀取 (flash rom) 及校驗(yàn)。
其次,設(shè)定保密包頭,如圖5所示:
在申請編程文件時(shí)點(diǎn)擊選擇“security settings”選項(xiàng),在彈出的對話框中選擇期望的保密設(shè)定,并輸入flashlock密鑰
(即軟件里的pass key) 及aes密鑰即完成了保密包頭的設(shè)定。
最后,編程生成加密編程文件,如圖6所示。
為加密編程設(shè)定stapl文件的具體步驟是:點(diǎn)擊選擇“programming previously secured device(s)”選項(xiàng),在彈出的對話框中點(diǎn)擊“fpga array only”或“flashrom only”選項(xiàng),或者兩者并選。最后,在彈出的“security settings ”對話框中的相應(yīng)位置提供預(yù)編程時(shí)所用的同一個(gè)aes密鑰。
完整的解決方案
為了配合proasic3與proasic3e,actel提供了全面的硬件工具支持。新推出的低成本isp編程器、啟動工具套件(libero gold、flashpro3、評估板及教程指南和文檔)、可進(jìn)行批量編程的silicon sculptor及其他調(diào)試工具,如first silicon solution的logic navigator邏輯分析器及synplicity的identify rtl調(diào)試器等。
而全面的軟件工具支持包括:libero 7.0(gold 版可從網(wǎng)站免費(fèi)下載)及業(yè)界提供的支持,如synplicity的synplify、mentor graphics的modelsim、magma的palace物理綜合及waveformer lite的reactive testbench等。
actel公司第三代以flash為基礎(chǔ)的fpga,除了高的安全性與保密性外,也是一個(gè)面向大批量生產(chǎn)的fpga,它集成了asic與sram fpga所有的優(yōu)點(diǎn),包括:單芯片上電即行、非揮發(fā)性、低功耗、高安全性、高保密性、固件錯誤免疫性、片上nvm、低單位成本、低總系統(tǒng)成本、無 nre費(fèi)用、可快速構(gòu)建原型、快速的生產(chǎn)交貨期及系統(tǒng)內(nèi)可編程等諸多優(yōu)點(diǎn)。 中電網(wǎng)在線座談網(wǎng)址: http://seminar.chinaecnet.com/051220/jchf.asp。
評論