Altera FPGA AES256加密

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

Altera FPGA AES256加密

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

Altera FPGA AES256加密

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

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

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

这里需要你自己新建一个256bit的.key**文件,像下面这种:
这里key1 就是**的名字。
Altera FPGA AES256加密

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

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

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