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

    浏览量

    11977

原文标题:intel FPAG AES应用笔记

文章出处:【微信号:gh_c3e093594afc,微信公众号:FPGAfighter】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    泰克推出即时信号分析仪和示波器 可离线深入分析复杂的RF和微波讯号

    Tektronix日前宣佈,该公司的SignalVu电脑软体可离线深入分析使用Tektronix即时讯号分析仪和示波器 (包括革命创新的全球首台混合域示波器 MDO4000) 所撷取的复杂讯号。
    发表于 08-13 09:21 1303次阅读

    深入分析LED电源损坏原因

     经常听到业内有人抱怨说每次LED灯具坏了一看又是电源坏了,所以LED灯具里最不可靠的是电源,可能他说的是事实。可是也还需要深入分析一下,LED电源损坏的原因。
    发表于 04-20 13:45 3398次阅读

    深入分析运放的作用

    深入分析了4-20mA的运放选型、A/D基准电压对测量精度影响等问题。
    的头像 发表于 01-15 13:47 1477次阅读
    <b class='flag-5'>深入分析</b>运放的作用

    PRM及VTM并联应用 应用笔记

    PRM及VTM并联应用 应用笔记 此应用笔记将介绍使用两组PRM-AL和VTM做出更大功率而且均流的并联步骤。如果应用需并联多过两组PRM,请与应用工程部联络。 [/hide]
    发表于 11-20 08:50

    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

    freeRTOS使用笔记分享

    freeRTOS使用笔记一(移植篇)目录freeRTOS使用笔记一(移植篇)一,移植准备(1)从官网或者github获取源码(2)创建自己的工程目录二,开始移植(1)复制源码(2)修改工程一,移植
    发表于 01-27 07:49

    深入分析Windows和Linux动态库应用异同

    深入分析Windows和Linux动态库应用异同 摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动
    发表于 10-22 11:36 1231次阅读

    笔记本的结构深入分析

    笔记本的结构深入分析  电脑技术的应用为我们的生活和工作带来了巨大改变,使我们的生活学习工作有了质的转变。普通的用户对电脑的了解一
    发表于 01-21 15:53 4085次阅读

    如何深入分析电源电路技巧(二):驾驭噪声电源

      随着现在对更高效、更低成本电源解决方案需求的强调,电子发烧友网整合《如何深入分析电源电路》系列文章,就各种电源管理课题提出一些对您有帮助的小技巧。该专栏面向各
    发表于 06-08 14:15 2394次阅读
    如何<b class='flag-5'>深入分析</b>电源电路技巧(二):驾驭噪声电源

    了解多线程并深入分析CreateThread与_beginthreadex本质区别

    本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质。
    的头像 发表于 01-09 17:08 4156次阅读
    了解多线程并<b class='flag-5'>深入分析</b>CreateThread与_beginthreadex本质区别

    深入分析MCU堆栈的作用 以及该如何设置堆栈大小

    深入分析MCU堆栈的作用,以及该如何设置堆栈大小
    的头像 发表于 03-01 14:13 4533次阅读
    <b class='flag-5'>深入分析</b>MCU堆栈的作用 以及该如何设置堆栈大小

    (转)深入分析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 11次下载