<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 解讀FPGA設計的安全性

解讀FPGA設計的安全性

作者: 時(shí)間:2009-04-20 來(lái)源:網(wǎng)絡(luò ) 收藏

  首先,工程師應用萊迪思的軟件設計工具套件ispLEVER ( 7.0或更高版本)開(kāi)發(fā)代碼,完成綜合、映射、布局布線(xiàn)和仿真后,產(chǎn)生位流,經(jīng)最后驗證后再用ispVM系統( 萊迪思的編程工具)對電路板編程。當設計師對系統的功能感到滿(mǎn)意時(shí),此時(shí)就要來(lái)做保護設計的工作??梢杂萌R迪思的ispLEVER工具或萊迪思的編程工具ispVM System對位流加密,用戶(hù)可選擇128位密鑰。編碼的位流可以是十六進(jìn)制(從0至F ,不區分大小寫(xiě))或一個(gè)ASCII密鑰(可用所有字母數字字符和空格,大小寫(xiě)敏感),然后使用任何非加密的文件編碼將該位流加載到配置存儲器中。

用128位AES密鑰保護設計

圖3 用128位AES密鑰保護設計
  現在密鑰應該已經(jīng)保存在一個(gè)可編程存儲區。編程是通過(guò)器件的JTAG端口進(jìn)行。應該注意到,用密鑰對位流加了密,現在只能通過(guò)加密的位流對進(jìn)行配置。用sysCONFIG接口或JTAG接口可以對萊迪思的進(jìn)行編程。該sysCONFIG接口可以讓用戶(hù)使用集中配置模式,或Flash SPI ,或以并行的方式使用并行配置模式重新輸入數據。符合IEEE 1149.1和IEEE 1532標準的JTAG端口允許以突發(fā)位流(或快速編程)模式、或用1532模式對數據進(jìn)行編程。JTAG端口用來(lái)對器件中的AES 128位密鑰編程。不需要用特別的模式來(lái)保存FPGA中的128位密鑰。

  在萊迪思的FPGA中使用一個(gè)編碼位流可以防止器件的配置被重新讀取,但需要一些措施來(lái)確保配置能夠正確地運作。位流未加密時(shí),FPGA執行CRC操作。如果程序不正確,DONE信號保持在0,INITN變?yōu)? 。用戶(hù)仍然可以訪(fǎng)問(wèn)JTAG Usercode寄存器。對FPGA的位流譯碼時(shí),它存儲位流用戶(hù)碼,用來(lái)存放FPGA應用程序的版本號。

  圖4展示了加密位流的數據路徑。當數據進(jìn)入FPGA時(shí),解碼器讀引導程序,前面所有的數據被忽略。即使解碼器檢測到加密的文件,如果FPGA的密鑰未被編程,數據則被阻止,DONE信號保持在'0 ' (表示配置失?。?。如果密鑰已被編程,FPGA檢查引導程序,指出后面所有的數據應通過(guò)解碼器。然后FPGA檢查標準引導程序,得知數據是否已被壓縮。如果數據沒(méi)有被壓縮,則將它直接發(fā)送到解碼單元。如果數據已壓縮,就先把它送到解壓縮引擎,然后再送到解碼單元。一旦通過(guò)CRC校驗,即對SRAM進(jìn)行編程。DONE位被激活時(shí),解壓縮和譯碼擎不工作,允許其它JTAG鏈元件接收配置數據。

加密位流的數據路徑

圖4 加密位流的數據路徑

  萊迪思的經(jīng)濟型ECP2/M FPGA擁有位流加密功能,內置閃存的非易失LatticeXP2 FPGA也有此功能。LatticeXP2 FPGA把SRAM映射合并入同一塊芯片,設計和含有位流配置的Flash映射都在此芯片上工作。當設計師重點(diǎn)關(guān)注電路板的面積和快速啟動(dòng)時(shí)間時(shí),這類(lèi)器件特別有用。

  內置閃存的FPGA

  非易失FPGA提供額外的Flash保護安全功能,可以防止內存因意外或未經(jīng)授權的操作被擦除或重新編程。Flash保護功能采用64位密鑰。

  對器件進(jìn)行刪除或重新編程時(shí), ispVM System會(huì )核查Flash是否被保護。如果是,就要求用戶(hù)輸入64位密鑰,然后ispVM檢查這個(gè)密鑰是否與存儲在器件中的密鑰一致,如果一致就執行操作。但是,如果丟失了密鑰,器件就再也不能被擦除了。

  這些措施不僅保護了用戶(hù)電路板上的設計,而且也防止了試圖修改系統功能的盜版行為。這些功能還有助于遠程的系統更新。萊迪思FPGA提供這一功能,使用戶(hù)可以通過(guò)對FPGA重復編程來(lái)更新他們的系統,而不會(huì )中斷它與周?chē)穆?lián)系。此功能被稱(chēng)為T(mén)ransFR 。

  FPGA最值得注意的的特點(diǎn)是設計人員很容易對器件進(jìn)行重構。但是,重構通常意味著(zhù)系統要中斷很長(cháng)時(shí)間。但是,萊迪思開(kāi)發(fā)的TransFR技術(shù)將重構的影響降至最低。萊迪思的幾個(gè)FPGA系列都支持TransFR技術(shù),包括那些含有內置閃存的器件,如MachXO 、LatticeXP和LatticeXP2 ,以及像LatticeECP2 /M那樣的SRAM FPGA。

用最短的中斷系統時(shí)間進(jìn)行遠程更新

圖5 用最短的中斷系統時(shí)間進(jìn)行遠程更新



關(guān)鍵詞: FPGA 安全性

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>