<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深入分析intel FPAG AES應用筆記

jF8y_gh_c3e0935 ? 來源:FPGA及視頻處理 ? 作者:FPGA及視頻處理 ? 2021-07-27 14:19 ? 次閱讀

FPGA在運行期間,把配置文件存儲在SRAM中。SRAM是易失性的。掉電之后會丟失,所以FPGA每次上電都要從外部的Flash中加載數據到FPGA。這樣在加載時Flash中的數據很有可能被攔截,被攔截的數據如果沒有被加密則很有可能被盜用。

通俗的講加密的原理就是,用戶用自己的密鑰把配置文件進行加密,并把密鑰燒寫到FPGA;FPGA通過該密鑰再對配置文件解密,并把解密后的數據存放在SRAM中。

aa2d2c34-e428-11eb-a97a-12bb97331649.png

這里以一個實驗來描述AES的操作步驟,軟件采用QuartusPrame 18.1 Standard版本,硬件采用的是arrow的Cylone V soc demo板。

步驟如下:

1、通過用戶寄密鑰生成.ekp 文件,并加密配置數據。

2、將用生成的密鑰加密編程到FPGA 中。

3、配置FPGA 器件。

1、通過用戶寄密鑰生成.ekp 文件,并加密配置數據。

這里以Arria10為例。

在菜單File -》 Convert Programming File

選擇sof燒寫文件,點擊Properties,打開Bitsteam Encryption對話框。

添加密鑰的兩種方式,一種是手動256位16進制數字,一種是添加文件。

(1)添加key文件。

key文件的后綴為.key。格式為:

The “#” symbol is used to denote comments. Each valid key line has the following format: 《key identity》《white space》《256-bit hexadecimal key》。

(2)通過按鍵輸入密鑰

點擊Add。在這里Key Name我們命名為‘aa‘,Key要求256位,這里手動添加了’0123456789abcfef0123456789abcfef0123456789abcfef0123456789abcfef’。這讓我想起以做加密的時候遇到的一個問題:就是數據的LSB是指0還是指f呢?當然這里是完全不需要關注的。

設置完成后點擊ok,再Convert Programming File對話框中的Generate就生成了加密的.ekp和加密和配置文件(這里以jic為例)。

2、將用生成的密鑰加密編程到FPGA 中。

FPGA 內嵌一個專用的解密模塊,通過運用AES 算法對采用用戶定義的256-bit 密鑰的配置數據進行解密。您必須在接收到加密數據前將用戶定義的256- bit 密鑰寫入器件中。

FPGA 支持易失性以及非易失性密鑰存儲。易失性密鑰需要電池來存儲和更新密鑰,而

非易失性密鑰存儲僅支持對一個密鑰進行編程,不需要電池。電池的供電PIN為VCCBAT.

并通過Tools-》Options-》Programmer來配置燒寫的密鑰寄存器位置。

勾選Configure volatile design security key when available來配置易失性密鑰寄存器。

不勾選 Configure volatile design security key when available則配置非易失性密鑰寄存器。

mode模式選擇JTAG.先燒寫.ekp文件到密鑰寄存器,再燒寫jic文件配置器件。

下圖是燒寫時可能遇到的錯誤。

ac9ab202-e428-11eb-a97a-12bb97331649.png

3、配置FPGA 器件。

FPGA 內嵌一個專用的解密模塊,通過運用AES 算法對采用用戶定義的256-bit 密鑰的配置數據進行解密。FPGA上電之后會把配置芯片的數據加載到FPGA通過密鑰和解密模塊對加密的數據進行解密,再把解密后的配置數據加載到SRAM中去。

要說明的是成功地將易失性密鑰編程到FPGA 器件中后,該器件既能夠接受加密的配置數據,也能夠接受未加密的配置數據。如果用帶有使用錯誤的密鑰進行加密的配置文件對FPGA 進行配置,都將導致配置的失敗。如果這種情況發生,那么來自FPGA 的nSTATUS 信號將變低。

另外FPGA還可以設置篡改保護位,對FPGA的燒寫應用會也有很大的影響。詳細的文檔說明請看an556,an556_cn.

文章出處:【微信公眾號:FPGA及視頻處理】歡迎添加關注!文章轉載請注明出處。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPAG
    +關注

    關注

    0

    文章

    9

    瀏覽量

    11984

原文標題:intel FPAG AES應用筆記

文章出處:【微信號:gh_c3e093594afc,微信公眾號:FPGAfighter】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    泰克推出即時信號分析儀和示波器 可離線深入分析復雜的RF和微波訊號

    Tektronix日前宣佈,該公司的SignalVu電腦軟體可離線深入分析使用Tektronix即時訊號分析儀和示波器 (包括革命創新的全球首臺混合域示波器 MDO4000) 所擷取的復雜訊號。
    發表于 08-13 09:21 ?1322次閱讀

    深入分析LED電源損壞原因

     經常聽到業內有人抱怨說每次LED燈具壞了一看又是電源壞了,所以LED燈具里最不可靠的是電源,可能他說的是事實??墒且策€需要深入分析一下,LED電源損壞的原因。
    發表于 04-20 13:45 ?3426次閱讀

    深入分析運放的作用

    深入分析了4-20mA的運放選型、A/D基準電壓對測量精度影響等問題。
    的頭像 發表于 01-15 13:47 ?1878次閱讀
    <b class='flag-5'>深入分析</b>運放的作用

    Xilinx_FPGA_內部結構深入分析

    Xilinx_FPGA_內部結構深入分析存儲單元存儲單元可以配置為D觸發器,就是我們常說的FF,Xilinx稱之為FD;也可以配置為鎖存器,Xilinx稱之為LD。輸出和三態通路各有一對寄存器外加一
    發表于 08-02 22:48

    uCOS任務堆棧的深入分析(轉)

    uCOS任務堆棧的深入分析(轉)
    發表于 08-24 23:30

    PSoC 3/5 數字設計優秀應用筆記推薦!

    考慮使用 Datapath。這不但可以減少數字資源的使用,還可以給 CPU 減負。此筆記就詳細的介紹了如果設計基于 Datapath 的數字模塊。應用筆記1 適合廣大初學者或者希望深入了解 PSoC3/5 數字設計的愛好者們。
    發表于 11-21 17:51

    深入分析Windows和Linux動態庫應用異同

    深入分析Windows和Linux動態庫應用異同 摘要:動態鏈接庫技術實現和設計程序常用的技術,在Windows和Linux系統中都有動態庫的概念,采用動
    發表于 10-22 11:36 ?1240次閱讀

    筆記本的結構深入分析

    筆記本的結構深入分析  電腦技術的應用為我們的生活和工作帶來了巨大改變,使我們的生活學習工作有了質的轉變。普通的用戶對電腦的了解一
    發表于 01-21 15:53 ?4117次閱讀

    如何深入分析電源電路技巧(二):駕馭噪聲電源

      隨著現在對更高效、更低成本電源解決方案需求的強調,電子發燒友網整合《如何深入分析電源電路》系列文章,就各種電源管理課題提出一些對您有幫助的小技巧。該專欄面向各
    發表于 06-08 14:15 ?2423次閱讀
    如何<b class='flag-5'>深入分析</b>電源電路技巧(二):駕馭噪聲電源

    了解多線程并深入分析CreateThread與_beginthreadex本質區別

    本文將帶領你與多線程作第一次親密接觸,并深入分析CreateThread與_beginthreadex的本質。
    的頭像 發表于 01-09 17:08 ?4194次閱讀
    了解多線程并<b class='flag-5'>深入分析</b>CreateThread與_beginthreadex本質區別

    深入分析MCU堆棧的作用 以及該如何設置堆棧大小

    深入分析MCU堆棧的作用,以及該如何設置堆棧大小
    的頭像 發表于 03-01 14:13 ?4619次閱讀
    <b class='flag-5'>深入分析</b>MCU堆棧的作用 以及該如何設置堆棧大小

    SmartMesh IP應用筆記

    SmartMesh IP應用筆記
    發表于 04-21 19:16 ?8次下載
    SmartMesh IP應<b class='flag-5'>用筆記</b>

    攪拌機應用筆記

    攪拌機應用筆記
    發表于 05-09 14:01 ?7次下載
    攪拌機應<b class='flag-5'>用筆記</b>

    (轉)深入分析STM32單片機的RAM和FLASH

    (轉)深入分析STM32單片機的RAM和FLASH
    發表于 12-02 11:51 ?11次下載
    (轉)<b class='flag-5'>深入分析</b>STM32單片機的RAM和FLASH

    ADI應用筆記合集(第1冊)

    ADI應用筆記合集
    發表于 09-23 15:11 ?14次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>