0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

xilinx FPGA bit 文件加密

FPGA學(xué)習(xí)交流 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-05-28 11:37 ? 次閱讀

大家好,今天咱們聊聊 xilinx FPGA bit 文件加密 ,當(dāng)你的項(xiàng)目終于做完了,到了發(fā)布的關(guān)鍵節(jié)點(diǎn),為了防止自己的心血被別人利用,最好對(duì)產(chǎn)品進(jìn)行bit加密。

首先咱們來了解一下加密的優(yōu)點(diǎn),xilinx的V6和7全系列FPGA支持AES256加密,加密的好處: 1. 可以防止別人回讀或者對(duì)你的程序進(jìn)行逆向; 2. 防止更改燒寫的bit文件。
如果僅僅是防止回讀,可以簡(jiǎn)單設(shè)置BITSTREAM.READBACK.SECURITY,其中LEVEL1是禁止回讀,LEVEL2禁止回讀和重新燒寫FPGA。 但如果對(duì)手的逆向能力很強(qiáng),比如說在FPGA上電加載bit的時(shí)候用邏輯分析儀把用bit文件“讀”出來,這個(gè)簡(jiǎn)單的設(shè)置肯定就不行了。這時(shí)候可以使用AES256加密。

AES算法簡(jiǎn)介:AES即高級(jí)加密標(biāo)準(zhǔn),是一種區(qū)塊加密,當(dāng)然也是對(duì)稱加密。區(qū)塊固定為128bit,秘鑰為128,192或256bit。AES有5種加密模式,xliinx采用的是CBC模式。有一個(gè)128bit初始向量IV(startCBC),先利用初始向量IV與第一組數(shù)據(jù)進(jìn)行異或后再進(jìn)行加密運(yùn)算生成C1。將C1作為初始向量與第二組數(shù)據(jù)進(jìn)行異或后再進(jìn)行加密運(yùn)算生成C2。以此類推,當(dāng)最后一組數(shù)據(jù)加密完畢后,將加密結(jié)果拼接為最終結(jié)果,C = C1C2C3……Cn。 所以采用CBC模式的256AES需要兩個(gè)東西,128bit-startCBC和256bit-AES key。
到這里還沒完,完成了bit加密還沒有認(rèn)證,萬一別人把燒進(jìn)去bit文件篡改了怎么辦?(重新燒了新的bit文件)。所以xilinx又提供了HMAC的認(rèn)證,這個(gè)就跟校驗(yàn)差不多了,檢查消息的完整性。所以還需要提供256bit-HMAC,加上128bit-startCBC和256bit-AES key,一共是三個(gè)。這三個(gè)key可以自己生成,也可以指定空的 .nky文件,由軟件隨機(jī)生成好。

for example
···
Device xc7a35t;
Key 0 0f2ec1178ae0d04c8c1431afe8266d08e799b01c5c486c2567f3621f47319aaf;
Key StartCBC a6262d508c338eeab815340a7832436d;
Key HMAC d82e72733a7bd7904c802d13db37187b8ad20b972ac163470c5a4d239bce6308;
···
加密的AES key可以存到FPGA內(nèi)部易失性的BBR或只能燒寫一次(OTP)的eFUSE中。 BBR需要電池供電,可以多次編程。eFUSE不需要電池,但只能燒寫一次。這里使用eFUSE.

eFUSE寄存器
首先來看一下eFUSE寄存器:
113159ds1b841kbw8h8hsx.png

一共有四個(gè)寄存器,分別是存放AES秘鑰,用戶信息,設(shè)備DNA和eFUSE控制。下面特別關(guān)注一下eFUSE控制寄存器:
113159ea2kchixgx82xckh.png


113513sd6yr31djv5d6dhy.png


一共有6個(gè)bit有用,各種設(shè)置的優(yōu)缺點(diǎn)表里有詳細(xì)說明,使用參考設(shè)置101100就行了。 其中bit0很重要,萬一置位了,AES的key又搞丟了,F(xiàn)PGA就變磚頭了。


具體的操作步驟如下:
1. 生成key和加密bit
下面三個(gè)key可以自己生成填進(jìn)去,也可以由軟件隨機(jī)生成。
115218micdlwquwwcudcqw.png



115219tmntsgmvtc8nbs9m.png


要打開edit device properties,先要打開sythesized design 或者implement design,然后在generate bitstream右鍵設(shè)置
115219doayz444824chla7.png
115220sgj90arapkr0un90.png


2. 下載eFUSE
115221gjtxflxkxj4pusf1.png

115221ua4b5zu38714kqi7.png


115221sqnrn0g4qqk7kyoj.png


115220h65knklsl5m5h7l8.png


3. 燒寫FPGA程序
115222u5tzttgcmzgognox.png


115222niisezbzvambevan.png
115223efji55dhd54kd2zp.png


115223wikjfnm1xeejumc3.png


4. 驗(yàn)證,讀出mcs然后燒到另一個(gè)FPGA里面去,可以看到不能工作。當(dāng)然,也可以在前面eFUSE設(shè)置時(shí)選擇只能加載AES加密的bit文件,這樣換一個(gè)不加密的bit下進(jìn)去也能驗(yàn)證。

115223js0sm9ayvmq3krvs.png


115224wrorh6h3hrxix0s0.png
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2167

    瀏覽量

    121444
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    愛普斯微電子公開全部基于Xilinx V5、V6開發(fā)板的FPGA下載文件

    愛普斯微電子公開全部基于Xilinx V5、V6開發(fā)板的FPGA下載文件 目前,愛普斯微電子公開全部基于Xilinx V5、V6 開發(fā)板的Bit
    發(fā)表于 02-24 08:41 ?1686次閱讀

    關(guān)于Xilinx FPGA如何獲取FPGA的Device DNA

    的屬性,因?yàn)槭褂玫氖侨蹟嗉夹g(shù)。值得說明的是,在7系列及以前,這個(gè)ID都是57bit的,但是在Xilinx的Ultraslace架構(gòu)下是96bit。 FPGA的DNA我們一般的使用場(chǎng)景是
    的頭像 發(fā)表于 01-02 09:44 ?4633次閱讀
    關(guān)于<b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>如何獲取<b class='flag-5'>FPGA</b>的Device DNA

    求實(shí)現(xiàn)FPGA模塊的加密方法

    將生成加密bit文件直接下載到FPGA可否實(shí)現(xiàn)子模塊加密?將ID驗(yàn)證與子模塊一起綜合成ngc文件
    發(fā)表于 04-18 10:45

    fpga加密方法

    本帖最后由 eehome 于 2013-1-5 09:45 編輯 FPGA加密方法 —用于系列xilinx5/6/7一項(xiàng)設(shè)計(jì)被抄襲主要通過抄襲電路板和IC解密來完成常用抄板步驟1.復(fù)印掃描板卡
    發(fā)表于 01-01 20:44

    求助:每次下載bit文件后顯示效果不同

    各位高手:本人現(xiàn)在用Xilinx Spartan 6系列FPGA做一個(gè)項(xiàng)目,主要內(nèi)容是將AD采樣收到的LVDS數(shù)據(jù)在FPGA中進(jìn)行處理并在液晶屏上進(jìn)行顯示(還有FPGA對(duì)周邊器件的一些
    發(fā)表于 06-03 08:16

    FPGA生成bit文件出錯(cuò)

    錯(cuò)誤:Bitgen:26 - Bitgen only supports DRC but not bitstream generation on this device.我用的是Xilinx的A7的片子,所有的都正確只是到生成bit文件
    發(fā)表于 01-05 18:25

    能將過時(shí)的Xilinx FPGA的加載文件轉(zhuǎn)換為XilinxFPGA文件嗎?

    我有一個(gè)用于過時(shí)的Xilinx FPGA的加載文件。是否有機(jī)會(huì)將其轉(zhuǎn)換為XilinxFPGA文件
    發(fā)表于 02-13 07:53

    如何使用Xilinx加密我的verilog文件?

    你好,如何使用Xilinx加密我的verilog文件?我知道它可以在midelsim中完成,并且使用altera的加密工具,是否有適合Xilinx
    發(fā)表于 03-08 13:48

    XILINX FPGA/CPLD ISE詳細(xì)下載教程

    XILINX FPGA/CPLD ISE下載教程 第一章 XILINX FPGA/CPLD ISE下載教程——下載.bit
    發(fā)表于 08-15 00:32

    Xilinx FPGA bit 文件加密

    發(fā)表于 12-06 14:31

    ISE中下載Xilinxbit文件失敗時(shí)的處理方案

    在使用ISE進(jìn)行FPGAbit文件下載時(shí),經(jīng)常會(huì)遇到下載失敗的問題,提示:"DONE did not go high".
    發(fā)表于 02-11 14:20 ?6443次閱讀

    xilinx FPGA bit 文件加密

    當(dāng)你的項(xiàng)目終于做完了,到了發(fā)布的關(guān)鍵節(jié)點(diǎn),為了防止自己的心血被別人利用,最好對(duì)產(chǎn)品進(jìn)行bit加密。 首先咱們來了解一下加密的優(yōu)點(diǎn),xilinx的V6和7全系
    的頭像 發(fā)表于 12-01 09:33 ?5413次閱讀
    <b class='flag-5'>xilinx</b> <b class='flag-5'>FPGA</b> <b class='flag-5'>bit</b> <b class='flag-5'>文件</b><b class='flag-5'>加密</b>

    使用XIlinxFPGA芯片開發(fā)的流水燈實(shí)驗(yàn)工程文件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用XIlinxFPGA芯片開發(fā)的流水燈實(shí)驗(yàn)工程文件免費(fèi)下載,可為初學(xué)者展示FPGA工作的基本過程。
    發(fā)表于 07-31 08:00 ?4次下載
    使用<b class='flag-5'>XIlinx</b>的<b class='flag-5'>FPGA</b>芯片開發(fā)的流水燈實(shí)驗(yàn)工程<b class='flag-5'>文件</b>免費(fèi)下載

    如何對(duì)xilinx FPGA進(jìn)行bit文件加密

    AES即高級(jí)加密標(biāo)準(zhǔn),是一種區(qū)塊加密,當(dāng)然也是對(duì)稱加密。區(qū)塊固定為128bit,秘鑰為128,192或256bit。AES有5種
    的頭像 發(fā)表于 05-17 09:36 ?2338次閱讀

    如何對(duì)xilinx FPGA進(jìn)行bit文件加密

    AES即高級(jí)加密標(biāo)準(zhǔn),是一種區(qū)塊加密,當(dāng)然也是對(duì)稱加密。區(qū)塊固定為128bit,秘鑰為128,192或256bit。AES有5種
    的頭像 發(fā)表于 01-16 15:22 ?3531次閱讀