vivado 高级编程功能1

news2025/2/22 0:11:49
适用于 7 系列、 UltraScale UltraScale+ FPGA MPSoC 的回读和验证
7 系列器件生成已加密文件和已经过身份验证的文件
注释 如需获取其它信息 请参阅《使用加密确保 7 系列 FPGA 比特流的安全》 ( XAPP1239 )
要生成加密比特流 请在 Vivado IDE 中打开已实现的设计。在主工具栏中 依次选择“ Flow ” → “ Bitstream Settings” 这样会显示“设置 (Settings) ”对话框。在此对话框顶部单击“ Configure Additional Bitstream Settings”。
这样会显示“编辑器件属性 (Edit Device Properties) ”对话框。选择左侧窗格中的“ Encryption ”。
在“编辑器件属性 (Edit Device Properties) ”对话框中 指定加密和密钥设置
• 加密设置 (Encryption Settings)
Enable Bitstream Encryption ”可设置为“ YES ”。
Select location of encryption key ”可设置为“ BBRAM ”或“ EFUSE ”。
- 密钥位置将嵌入加密比特流中。
- 当加密比特流下载至器件后 它会指令 FPGA 使用已加载到 BBR eFUSE 密钥寄存器中的密钥来对加密的 比特流进行解密。
• 密钥设置 (Key Settings)
指定 HMAC 身份验证密钥和密码分组链接 (CBC) 起始值。
- 如果不指定这些值 Vivado 会为您生成随机值。
- 这些值将嵌入加密比特流 而无需编程到 FPGA 中。
注释 除非指定输入加密文件 否则这些值将存储在当前工程约束文件中。要避免将该值存储在约束文件中 , 请指定输入加密文件。
AES encryption key ”用于指定对比特流进行加密时要使用的加密密钥。您可使用最多 64 个十六进制字符来 指定 256 位密钥。
- 此密钥将写入含 .nky 文件扩展名的文件中。将该密钥加载到 BBR 中时 或者将该密钥编程到 eFUSE 密钥 寄存器中时, 请使用此文件。
注释 除非指定输入加密文件 否则这些值将存储在当前工程约束文件中。要避免将该值存储在约束文件中 , 请指定输入加密文件。
指定输入加密文件。
- 指定现有 .nky 文件即可获取加密密钥设置。该字段为可选字段 如果手动指定 AES HMAC CBC 则 可省略该字段。 指定加密设置后, 请单击“ OK ”以将设置应用于工程并重新生成比特流。成功完成 write_bitstream 操作后 , 将得到 1 个编程文件和 1 .nky 加密文件。
UltraScale UltraScale+ 生成已加密文件和已经过 身份验证的文件
注释 如需了解更多信息 请参阅《使用加密和身份验证确保 UltraScale/UltraScale+ FPGA 比特流的安全》 ( XAPP1267 ) 。 要生成加密比特流, 请在 Vivado IDE 中打开已实现的设计。在主工具栏中 依次选择“ Flow ” → “ Bitstream Settings” 这样会显示“设置 (Settings) ”对话框。在此对话框顶部 单击“ Configure Additional Bitstream Settings”。
这样会显示“编辑器件属性 (Edit Device Properties) ”对话框。选择左侧窗格中的“ Encryption ”。
在“ Edit Device Properties ”对话框中 指定“ Encryption Settings ”和“ Key Settings
• “ Encryption Settings
Enable Bitstream Encryption ”可设置为“ YES ”。
Select location of encryption key ”可设置为“ BBRAM ”或“ EFUSE ”。
- 密钥位置会嵌入加密比特流中。
- 当加密比特流下载至器件后 它会指令 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 寄存器中 然后再下载加密比特流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1565451.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Zabbix6 - Centos7部署Grafana可视化图形监控系统配置手册手册

Zabbix6 - Centos7部署Grafana可视化图形监控系统配置手册手册 概述: Grafana是一个开源的数据可视化和监控平台。其特点: 1)丰富的可视化显示插件,包括热图、折线图、饼图,表格等; 2)支持多数据…

探索大数据时代下与云计算技术融合:实现企业级数据处理与分析的灵活性和效率性

引言: 关联阅读博客文章:深度剖析:计算机集群在大数据体系中的关键角色和技术要点 随着信息时代的到来,数据量的爆炸性增长已成为一种常态。企业、政府、科研机构等各个领域都面临着海量数据的收集、存储、处理和分析的挑战。在…

蓝桥杯-dfs搜索模板题(二)

蓝桥杯-dfs搜索模板题(二) P1683 入门P1596[USACO10OCT] Lake Counting S1114 棋盘 acwingP1025 [NOIP2001 提高组] 数的划分P1019 [NOIP2000 提高组] 单词接龙结语 P1683 入门 这道题没有回溯的必要,重复走也不计数。最开始的部分要补上。 …

乐校园二手书交易管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)大学生闲置二手书在线销售

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读300套最新项目持续更新中..... 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含ja…

0基础如何进入IT行业?

简介: 进入IT行业对于没有任何相关背景知识的人来说可能会具有挑战性,但并非不可能。以下是一些建议,可以帮助他们成功进入IT行业: 1、自学和在线资源:利用在线学习平台(如Coursera、edX、Udemy等&…

分享几个可以免费使用的GPT网站吧

1. ChatGAI ChatGAI是一个界面简洁的AI平台,提供App和网页版,每日均有免费使用机会。 2. ChatGPT 本网站向大家开放了ChatGPT 3.5和4.0版本的免费体验,特别适合新用户。每天都有免费次数,响应迅速,注册便捷&#xff0…

【JS】打乱数组顺序,用作领域:随机播放音乐

思路 循环数组随机获取数组下标取值: 取当前随机下标数组取当前循环的下标数组 相互替换步骤3的数组 /*** 随机数组顺序* param {Array} arr 数组* returns Array*/ const shufArr arr > {for (let i arr.length - 1; i > 0; i--) {const j Math.floor(M…

QT网络调试助手

QT网络调试助手 1.开发流程 2.QTtcp服务器   1.1 服务端数据读取   1.2 服务端发送数据-所有客户端   1.3 服务端自动刷新ip地址   1.4 服务端检测客户端断开状态   1.5 服务端发送数据-指定特定客户端发送数据   1.6 服务端停止监听和断开 3.QTtcp客户端 1…

开源推荐榜【PaddleNLP 一款简单易用且功能强大的自然语言处理开发库】

开源地址:https://gitee.com/paddlepaddle/PaddleNLP.git PaddleNLP是一款简单易用且功能强大的自然语言处理开发库。聚合业界优质预训练模型并提供开箱即用的开发体验,覆盖NLP多场景的模型库搭配产业实践范例可满足开发者灵活定制的需求。 一键预测&am…

基于java+SpringBoot+Vue的时装购物系统的设计与实现

基于javaSpringBootVue的时装购物系统的设计与实现 开发语言: Java 数据库: MySQL技术: SpringBoot MyBatis Vue工具: IDEA/Eclipse、Navicat、Maven 系统展示 前台展示 首页:展示商品信息、商品资讯、轮播图等。 商品信息:用户可以查看商品详情、…

基于springboot+vue+Mysql的大学生体质测试管理系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

AAC 格式详解

AAC 格式详解 AAC 格式详解AAC 简介AAC 编码规格频带重现(Spectral Band Replication)参量立体声(Parametric Stereo) AAC 音频文件格式ADIFADTS固定头部可变头部AAC ES总结:AAC sequence三层 实例:AAC文件…

iOS开发进阶(十三):脚手架创建iOS项目

文章目录 一、前言二、xcode-select 命令三、拓展阅读 一、前言 项目初期,需要搭建项目基本框架,为此离不开辅助工具,即脚手架。当然,IDE也可以实现新建空白项目,但是其新建后的项目结构可能不符合预期设计&#xff0…

基于DWT(离散小波变换)的图像加密水印算法,Matlab实现

博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…

2个办法解决:手机照片永久删除如何恢复到相册

如今,我们都喜欢通过手机记录自己的生活,手机相册更是承载着无数珍贵的回忆。然而,有时我们可能会因为误操作或其他原因,不小心将手机中的照片永久删除。面对这种情况,许多人会感到着急,担心再也找不回那些…

就业班 第二阶段(python) 2401--4.2 day1 python初识

一、Python 语言介绍1、Python 发展历史2、Python 简介3、Python 特点4、Python 的能力二、Linux 编译安装Python31、源码安装1、安装依赖软件包2、下载3、解压安装4、配置共享库文件5、测试python36、测试 pip32、 配置使用国内源安装第三方模块1、创建配置文件补充内容四、变…

蓝桥杯 - 正则问题

解题思路: dfs import java.util.Scanner;public class Main {static int pos -1; // 充当charAt下标static String s;// 字符串型的静态变量public static void main(String[] args) {Scanner scanner new Scanner(System.in);s scanner.nextLine();System.ou…

外贸网站源码定制:助您实现海外市场拓展

在当今全球化的经济环境下,海外市场对于企业的发展变得愈发重要。而在拓展海外市场的过程中,一个功能强大、专业定制的外贸网站源码将成为您的致胜利器。无论是在展示产品、引导客户、还是进行在线交易,外贸网站源码的定制化都能够给您带来更…

2.人机交互-图形化界面的小故事

文章目录 一、图形化界面的小故事二、什么是cmd? 计算机在刚开始出现的时候,因为占地广、造价高、耗电多,一般都是给军队或者政府使用的,而并不是给个人使用的。然后随着计算机不断地发展,体积越来越小,出现…

C++ | Leetcode C++题解之第6题Z字形变换

题目&#xff1a; 题解&#xff1a; class Solution { public:string convert(string s, int numRows) {int n s.length(), r numRows;if (r 1 || r > n) {return s;}string ans;int t r * 2 - 2;for (int i 0; i < r; i) { // 枚举矩阵的行for (int j 0; j i &l…