vivado 高级编程功能1

适用于 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.tpcf.cn/news/788524.html

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

相关文章

设计模式之代理模式解析(下)

4)远程代理介绍 远程代理(Remote Proxy) 使客户端程序可以访问在远程主机上的对象,远程代理对象承担了大部分的网络通信工作,并负责对远程业务方法的调用。 5)虚拟代理介绍 1.概述 虚拟代理(Virtual Proxy) 对于一些占用系统资…

Kong基于QPS、IP限流

Rate Limiting限流插件 https://docs.konghq.com/hub/kong-inc/rate-limiting/ 它可以针对consumer ,credential ,ip ,service,path,header 等多种维度来进行限流.流量控制的精准度也有多种方式可以参考,比如可以做到秒级,分钟级,小时级等限流控制. 基于IP限流 源码地址&…

零基础入门多媒体音频(7)-AAOS audio

概览 Android Automotive OS (AAOS) 是基于核心的 Android 音频堆栈打造,以支持用作车辆信息娱乐系统。AAOS 负责实现信息娱乐声音(即媒体、导航和通讯),但不直接负责具有严格可用性和时间要求的铃声和警告。 虽然 AAOS 提供了信号…

【Python】 使用Apache Tika和Python实现zip、csv、xls等多格式文件文本内容提取

时间的电影 结局才知道 原来大人已没有童谣 最后的叮咛 最后的拥抱 我们红着眼笑 我们都要把自己照顾好 好到遗憾无法打扰 好好的生活 好好的变老 好好假装我 已经把你忘掉 🎵 五月天《好好》 在进行数据分析、搜索引擎优化或任何需要处理大量…

路由器拨号失败解决方法

目录 一、遇到问题 二、测试 三、解决方法 (一)路由器先单插wan口设置 (二)mac地址替换 (三)更改路由器DNS 一、遇到问题 1 .在光猫使用桥接模式,由路由器进行拨号的时候,出现…

定时推送任务 Apache HttpClient/okhttp3

定时推送任务 需求 需要定时推送我方的数据到对方那边 方法1 Apache HttpClient 此方法指定推送过去的信息转为utf-8格式的json字符串 Scheduled(initialDelay 1000 * 120, fixedDelay 1000 * 60 * 5) public void diseaseInterface() {String lockKey "lock:dise…

【C语言】——指针七:数组和指针试题解析

【C语言】——指针七: 前言一、 s i z e o f sizeof sizeof 与 s t r l e n strlen strlen 的对比1.1、 s i z e o f sizeof sizeof1.2、 s t r l e n strlen strlen1.3、 s i z e o f sizeof sizeof 和 s t r l e n strlen strlen 对比 二、数组和指针笔试题解析…

SparkSQL 和 HiveSQL的区别

相同点 1. 都可以通过SQL分析数据.2. 都可以处理大规模的数据.3. 都是处理结构化的数据.4. 都是提交到Yarn平台来使用. 不同点 1. SparkSQL是基于内存的迭代计算, HiveSQL它是基于磁盘的迭代计算.2. HiveSQL仅仅能用SQL语言操作, SparkSQL除了能用SQL语句外, 还可以写DSL代码. …

算法打卡day32|贪心算法篇06|Leetcode 738.单调递增的数字、968.监控二叉树

算法题 Leetcode 738.单调递增的数字 题目链接:738.单调递增的数字 大佬视频讲解:单调递增的数字视频讲解 个人思路 这个题目就是从例子中找规律,例如 332,从后往前遍历,32不是单调递增将2变为9,3减1,变成了329&…

ES-7.12-官网阅读-ILM-index lifecycle actions

官方文档地址:Index lifecycle actions | Elasticsearch Guide [7.12] | Elastic 索引生命周期操作(index lifecycle actions) Allocate 将分片移动到具有不同性能特征的节点并减少副本数量 Delete 永久删除索引。 Force merge 减少索…

Marin说PCB之电源完整性之电源网络的PDN仿真CST---01

最近朋友圈最火的消息我感觉是除了开封的王婆外莫过于是小米SU7汽车发布这件事情了,小编我也是一位资深的米粉,我在上个月28号的时候守在电脑前直播看小米SU7汽车的发布会,其中雷总演讲的一段话很打动我:不甘于平庸,还…

微信小程序-文字转语音(播放及暂停)

1、使用微信小程序的同声传译功能 小程序平台-设置-第三方设置-插件管理-新增同声传译插件 小程序app.json文件配置 "plugins": {"WechatSI": {"version": "0.3.5","provider": "wx069ba97219f66d99"}},小程序中…

VMware-16.0配置虚拟机网络模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、为什么要配置网络?二、配置步骤1.检查VMware服务2.进入配置页面3.添加网络模式1.Bridge2.NAT3.Host-only 4.DHCP租约5.静态IP 三、使用总结 前言…

Java数据结构算法-动态规划算法

Java算法基础 算法是解决问题的一系列步骤或指令。在Java中,常见的算法包括排序算法(如冒泡排序、快速排序等)、查找算法(如顺序查找、二分查找等)以及递归和分治策略等。这些算法在实际编程中经常被使用,…

JS-23-原型继承

一、JS的原型继承 在传统的基于Class的语言如Java、C中,继承的本质是扩展一个已有的Class,并生成新的Subclass。 但是,JavaScript由于采用原型继承,根本不存在Class这种类型。 但是办法还是有的。我们先回顾Student构造函数&am…

ActiViz中的图像处理vtkImageActor

文章目录 前言一、vtkImageActor的基本特性1、支持的数据类型:2、 图像显示的位置和大小控制:3、 颜色和不透明度控制:4、图像剪裁和截取功能:二、vtkImageActor的使用方法1、创建vtkImageActor实例2、将图像数据设置给vtkImageActor3、 将vtkImageActor添加到渲染场景中4、…

手机真机连接USB调试adb不识别不显示和TCPIP连接问题

手机真机连接USB调试adb devices不显示设备和TCPIP连接 本文手机型号为NOVA 7 ,其他型号手机在开发人员模式打开等方式可能略有不同,需根据自己的手机型号修改。 文章目录 1. 打开和关闭开发者模式2. 真机USB连接调试adb不显示设备问题的若干解决方法3…

dm8修改sysdba用户的密码

1 查看达梦数据库版本 SQL> select * from v$version;LINEID BANNER ---------- --------------------------------- 1 DM Database Server 64 V8 2 DB Version: 0x7000c 3 03134283904-20220630-163817-200052 …

苦难调剂之路:网暴与贵人

这篇文章是抖音、b站、小红书上上传的同名视频的原文稿件,感兴趣的csdn用户可以关注我的抖音、b站、小红书账号(GeekPower极客力量)。同时这篇文章也为视频观众提供方便,可以更加冷静地分析和思考。文章同时在知乎发表。 最近各个…

数据分析之Logistic回归分析中的【多元有序逻辑回归】

1、定义 多元有序逻辑回归用于分析有序分类因变量与一个或多个自变量之间的关系。有序逻辑回归适用于因变量具有自然排序但没有固定间距的类别,例如疾病严重程度(轻度、中度、重度)或调查问卷中的满意度评分(非常不满意、不满意、…