以Flash為基礎(chǔ)的FPGA實(shí)現(xiàn)高度安全設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
保密的重要性
對(duì)電子系統(tǒng)而言,F(xiàn)PGA的保密性極其重要。圖1列出了兩個(gè)系統(tǒng)設(shè)計(jì)的示意圖,左邊為1995年所作的系統(tǒng)設(shè)計(jì),在該設(shè)計(jì)中,以ASIC芯片為核心,F(xiàn)PGA僅起到膠合邏輯的作用;在右邊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)的心臟、知識(shí)產(chǎn)權(quán)的集合,所以如果FPGA存在安全性問題的話,與其相關(guān)的產(chǎn)品將遭受嚴(yán)重打擊。
保密性定義——四個(gè)對(duì)FPGA最大的安全威脅
a.克隆
克隆是指競(jìng)爭(zhēng)對(duì)手拷貝啟動(dòng) PROM 或從
板上攔截處理器碼流并進(jìn)行復(fù)制。如果設(shè)計(jì)中包含外部碼流時(shí),則該設(shè)計(jì)的IP 對(duì)克隆非常脆弱。
b.反向工程
反向工程即競(jìng)爭(zhēng)對(duì)手由重建您的設(shè)計(jì)原理圖或網(wǎng)表復(fù)制您的設(shè)計(jì)。在這個(gè)過程中,競(jìng)爭(zhēng)對(duì)手將了解設(shè)計(jì)的運(yùn)作從而進(jìn)行改進(jìn)。
c.過建
過建在把您的產(chǎn)品交給無道德的合同制造商生產(chǎn)時(shí)出現(xiàn),這些制造商能在開放市場(chǎng)上購(gòu)買額外的FPGA元器件,然后在廠家沒有允許的情況下,生產(chǎn)額外的產(chǎn)品,在沒有開發(fā)成本和不需要提供技術(shù)支持的條件下,以更低的價(jià)格在市場(chǎng)上售賣,從而牟取利潤(rùn)。
d.拒絕服務(wù)
拒絕服務(wù)屬于惡意破壞的行為,您的競(jìng)爭(zhēng)對(duì)手或者黑客能夠通過重新編程您系統(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,相對(duì)于第二代產(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 安全措施及針對(duì)單電壓工作而在片上集成的電荷泵。最后,需要提及的是產(chǎn)品支持19種不同的I/O標(biāo)準(zhǔn),包括 LVDS等。Actel第三代Flash FPGA具有競(jìng)爭(zhēng)性的成本優(yōu)勢(shì),因?yàn)镕lash 技術(shù)可省去SRAM FPGA額外的成本負(fù)擔(dān)。此外,F(xiàn)lash 技術(shù)還可以提供以下獨(dú)特的性能: ·單芯片;
·高安全性;
·上電即行;
·高可靠性 / 固件錯(cuò)誤免疫性;
·低功耗;
·高性能。
Actel FLASH FPGA的保密性特點(diǎn)
保密性特點(diǎn)
Flash FPGA的物理結(jié)構(gòu)與保密性
由于Flash非揮發(fā)性的特點(diǎn),所以基于Flash 架構(gòu)的FPGA在一個(gè)可靠的環(huán)境下被編程以后,就不再需要一個(gè)另外的碼流,因此它不會(huì)受到克隆這種攻擊方式的威脅。另外,它對(duì)反向工程等入侵性攻擊有高度的
抵抗性,這是因?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è)對(duì)應(yīng)的密鑰,長(zhǎng)度為128位,其揭露密鑰所需的時(shí)間為5.4x1023年,因此十分可靠。它還包括永久FlashLock及編程文檔的AES加密,其AES密鑰長(zhǎng)度為128位,而揭露此密鑰所需的時(shí)間將長(zhǎng)達(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ǔ)、資產(chǎn)管理跟蹤、用戶喜好存儲(chǔ)、日期標(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加密過的文件不會(huì)包含F(xiàn)lashLock密鑰。三、只加密 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)識(shí):如果正確,器件就可以被擦除及編程;如果不正確,軟件會(huì)防止編程序列被啟動(dòng)。在認(rèn)證進(jìn)行過程中器件仍可正常工作。
另外該模塊還負(fù)責(zé)在編程數(shù)據(jù)傳進(jìn)器件時(shí)檢驗(yàn)是否存在損壞的數(shù)據(jù),具體做法是在編程前對(duì)每個(gè)數(shù)據(jù)包進(jìn)行驗(yàn)證。
實(shí)施保密的軟件設(shè)置
以下我們將介紹如何進(jìn)行保密的軟件設(shè)置,首先定制安全級(jí)別,如圖4所示:
用戶可在生成安全文件時(shí),選擇“Custom Level”選項(xiàng),將彈出“Custom Security Level”對(duì)話框,即可看到FPGA陣列與FROM的保密設(shè)定選項(xiàng),具體的選項(xiàng)包括:
——只容許在 FLASHLock 密鑰正確時(shí)寫入、擦除及校驗(yàn);
——只容許在 FlashLock 密鑰正確時(shí)寫入、擦除(校驗(yàn)可以在沒有 Fl
ashLock 密鑰下進(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所示:
在申請(qǐng)編程文件時(shí)點(diǎn)擊選擇“Security Settings”選項(xiàng),在彈出的對(duì)話框中選擇期望的保密設(shè)定,并輸入FlashLock密鑰 (即軟件里的Pass Key) 及AES密鑰即完成了保密包頭的設(shè)定。最后,編程生成加密編程文件,如圖6所示。
為加密編程設(shè)定STAPL文件的具體步驟是:點(diǎn)擊選擇“Programming previously secured device(s)”選項(xiàng),在彈出的對(duì)話框中點(diǎn)擊“FPGA Array Only”或“FlashROM Only”選項(xiàng),或者兩者并選。最后,在彈出的“Security Settings ”對(duì)話框中的相應(yīng)位置提供預(yù)編程時(shí)所用的同一個(gè)AES密鑰。
完整的解決方案
為了配合ProASIC3與ProASIC3E,Actel提供了全面的硬件工具支持。新推出的低成本ISP編程器、啟動(dòng)工具套件(Libero Gold、FlashPro3、評(píng)估板及教程指南和文檔)、可進(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),包括:?jiǎn)涡酒想娂葱?、非揮發(fā)性、低功耗、高安全性、高保密性、固件錯(cuò)誤免疫性、片上NVM、低單位成本、低總系統(tǒng)成本、無 NRE費(fèi)用、可快速構(gòu)建原型、快速的生產(chǎn)交貨期及系統(tǒng)內(nèi)可編程等諸多優(yōu)點(diǎn)。