在非易失性FPGA-Spartan-3AN平臺中采用了與Spartan-3A器件幾乎相同的工藝,只是進行了一些增強。第1種安全增強是比特流隱藏在FPGA內(nèi),使得監(jiān)控變得更加困難。
Spartan-3AN FPGA的第2種安全增強是兩個獨一無二的序列號,即Device DNA和Fash存儲器內(nèi)的工廠Fash ID。這兩個獨一無二的ID序列號超過70個字節(jié),從而實現(xiàn)了更多的算法可能性,因此大大增加了破解安全算法所需的時間。該設(shè)計現(xiàn)在專門融合了FPGA和Flash ID。
擁有兩個獨一無二的ID就像需要兩張不同的ATM卡才能取錢一樣。如果想提取現(xiàn)金,必須持有兩張卡。如果其中一張卡丟失,則錢不會被取走且仍然是安全的。
第3種改進在于存儲的校驗碼,在Spartan-3AN平臺上,安全代碼可以存儲在安全寄存器的特殊一次性可編程64個字節(jié)的用戶定義字段中。該寄存器使安全系統(tǒng)保持獨立,而無需外部接口或存儲器。該特性增強了總體安全性,使產(chǎn)品的反向工程變得更加困難。
安全算法是用戶定義的,允許設(shè)計者以適當?shù)南到y(tǒng)成本實現(xiàn)合適的安全級別。安全算法也是安全系統(tǒng)的首要機密,安全流程中的內(nèi)容必須是機密的,這樣才能保證系統(tǒng)不被破解。由于算法是未知的,因此它是設(shè)計級安全的關(guān)鍵所在。算法在FPGA架構(gòu)內(nèi)實現(xiàn),因此它只是FPGA內(nèi)數(shù)百萬個配置位中的少數(shù)幾位。除非知道比特位是如何連在一起的,或者算法是如何操作的;否則對于旁觀者或克隆者來說,它只是一堆數(shù)字。
圖1所示為采用Spartan-3AN器件的一個可行流程。
圖1 Spartan-3AN的安全設(shè)置流程
圖2所示的Spartan-3AN設(shè)計級安全是一種完全獨立的安全解決方案,F(xiàn)lash既包含F(xiàn)PGA配置比特流,又包含以前生成的校驗碼,該校驗碼由可信賴/安全的制造商或注冊流程存儲在一次性可編程Flash存儲器用戶字段中。
圖2 Spartan-3AN的安全解決方案
在通電時,F(xiàn)PGA正常配置。配置完成后,F(xiàn)PGA應(yīng)用包括驗證是否批準設(shè)計在相關(guān)的Spartan-3AN FPGA上操作的電路。安全算法讀取Device DNA和工廠Fash ID;反過來,安全算法又會生成有效代碼,并將該有效代碼與以前生成的存儲在Flash用戶定義字段中的校驗碼進行比較。如果這兩個代碼相同,器件就被授權(quán);否則該器件就是非法的,并且不會被授權(quán)。
處理授權(quán)失敗是Device DNA設(shè)計級安全的另一個優(yōu)勢,設(shè)計級安全的其他優(yōu)勢是其可以被完全整合到設(shè)計中。未授權(quán)設(shè)計可以有多種響應(yīng)模式,這與Spartan-3A平臺一樣。
Spartan-3AN平臺中的設(shè)計級安全提供了多種保護設(shè)計不被用于過度構(gòu)建、克隆和反向工程的方法,要了解利用3個系列的產(chǎn)品實現(xiàn)設(shè)計安全方面的更多信息,請參照《Spartan ̄3系列配置用戶指南》。
來源:ks991次