-
密钥位置会嵌入加密比特流中。
-
当加密比特流下载至器件后
,
它会指令
FPGA
使用已加载到
BBR
或
eFUSE
密钥寄存器中的密钥来对加密的 比特流进行解密。
○
“
Enable obfuscated key load
”可设置为“
ENABLE
”或“
DISABLE
”。
-
启用此项后
,
此用户生成的密钥将先经过加密
,
随后再被存储到
BBRAM
中。如果禁用此项
,
那么此密钥将 “按现状”直接存储到 BBRAM
中。
• “
Key Settings
”
○
“
Starting AES encryption key (key0)
”用于指定对比特流进行加密时要使用的加密密钥。您可使用最多
64
个十 六进制字符来指定 256
位密钥。
-
此密钥将写入含
.nky
文件扩展名的文件中。将该密钥加载到
BBR
中时
,
或者将该密钥编程到
eFUSE
密钥 寄存器中时,
请使用此文件。
○
注释
:
除非指定输入加密文件
,
否则该值将存储在当前工程约束文件中。要避免将该值存储在约束文件中
,
请 指定输入加密文件。
○
“
Input encryption file
”用于指定输入加密文件。
-
指定现有
.nky
文件即可获取加密密钥设置。该字段为可选字段
,
如果手动指定
AES
、
HMAC
和
CBC
,
则 可省略该字段。
○
“
Starting AES initial vector (IV0) value
”用于指定输入加密文件。
-
对应第一个密钥的初始化矢量。请注意
,
每个密钥都需要
1
个独立的初始化矢量值
,
该值可通过输入加密文 件来提供。
○
注释
:
该值将存储在当前工程约束文件中。要避免将该值存储在约束文件中
,
请指定输入加密文件。
○
“
Starting obfuscate initial vector (Obfuscate IV0) value
”用于指定输入加密文件。
-
对应模糊密钥的初始化矢量。
○
注释
:
该值将存储在当前工程约束文件中。要避免将该值存储在约束文件中
,
请指定输入加密文件。
• “
Key Rolling Settings
”
○
如需生成调试文件以报告
KDF
模式下生成的所有密钥
,
请指定“
debug file to report all the keys generated in KDF mode”。
○
“
Fixed Input Data for KDF keyrolling
”可指定用于
KDF
密钥滚动的固定输入数据。该值为可选
60
字节固定输
入值
,
并指定为
120
位十六进制值。此
60
字节输入搭配
4
字节计数器即可通过
RAND_bytes
充当
KDF
虚拟随 机固定输入值的 64
字节输入。
○
“
Seed for KDF Keyrolling
”用于指定
KDF
密钥滚动的种子。该值为
KDF
的可选
32
字节种子值
,
指定为
64 位十六进制值。
○
“
Number of encryption blocks per key
”用于指定每个密钥的加密块数
,
“
Number of frames per AES-256 key”则用于指定每个
AES-256
密钥的帧数。
-
加密块数和帧数用于指定每个比特流通过每个不同密钥细分到的段数。
要执行身份验证设置
,
请选择左侧窗格中的“
Authentication
”。
在“
Edit Device Properties - Authentication
”对话框中
,
指定如下加密和密钥设置
:
• “
Authentication Settings
”
○
“
Enable Bitstream Authentication
”可设置为“
YES
”。
○
“
Input file containing RSA Private Key
”用于指定包含
RSA
专用密钥的输入文件。
指定加密和身份验证设置后提供
RSA
专用密钥
,
单击“
OK
”即可将这些设置应用于工程。重新运行实现
,
并重新 生成比特流文件。成功完成 write_bitstream
操作后
,
生成的
.nky
加密密钥文件将显示在加密比特流文件所 在目录中。
您可通过使用
256
位高级加密标准
(AES)
密钥、下载比特流并仅在经授权的
FPGA
上运行来保护比特流中的
IP
。具体 方法是将 256
位密钥编程到经授权的
FPGA
的
BBR
寄存器中
,
然后再下载加密比特流。