Altera FPGA AES256加密

AES256加密操作指南
由于一些场景需要对FPGA程序进行加密,目前常用的是使用AES256进行加密。下图就是对Altera FPGA加密的一个流程框图。

Altera FPGA AES256加密_第1张图片

对于Intel FPGA有下面这些器件都支持AES加密,另外高端的S10,Agilex10这些也是支持的哈。
在这里插入图片描述
密钥又分为易失性和非易失性两种。
易失性密钥:是采用VBAT供电,密钥是存储在FPGA内部的ram里,一旦Vbat断电,密钥就丢失。
非易失性密钥:该密钥是烧写到FPGA内部的FUSES里,属于OTP,一次性烧写。
Tamper Protection Mode: 如果使能了该功能,那么你FPGA的程序就只有使用同一个密钥加密的才能启动,如果FPGA程序没有加密或者使用其他的密钥加密的,那么就会出现启动失败。
默认该功能是没有开启的,如果需要开启,使用intel提供的一个tcl脚本工具进行设置。

Altera FPGA AES256加密_第2张图片

下图就是两者间的比较
注意:如果是密钥烧写的过程中失败了, 那么该器件就不能再烧写密钥了。所以,烧写密钥前,最好先测试下JTAG链路是否OK。 另外密钥烧写成功后,是不能再重新烧写密钥的。
Altera FPGA AES256加密_第3张图片

加密的步骤:
具体操作步骤可以参考Intel提供的 AN556文档page13,下面主要介绍下一些需要注意的地方

1、生成ekp密钥 和加密的配置文件(可以是rbf,jic)
可以使用Convert programming file 或tcl脚本实现

这里需要你自己新建一个256bit的.key密钥文件,像下面这种:
这里key1 就是密钥的名字。
在这里插入图片描述

2、烧写.ekp密钥文件和加密的配置文件 不分先后顺序。

3、在烧写密钥的时候,需要根据是易失性还是非易失性 进行勾选 下面划黄线的选项
Altera FPGA AES256加密_第4张图片

4、要想实现AES256加密 需要下面几个硬件条件
(1) Quartusii 软件有 正版license, 破解的不行。
(2) 有正版的烧写工具,比如Ethernet BlasterII 或者USB BlasterII 注意 都需要是第二代

你可能感兴趣的:(fpga)