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 密钥寄存器中的密钥来对加密的比
特流进行解密。
Key Settings(密钥设置)
• 指定加密比特流时要使用的“Starting AES encryption key (key0)”(起始 AES 加密密钥 (key0))。您可使用最多
64 个十六进制字符来指定 256 位密钥。
○ 此密钥将写入含 .nky 文件扩展名的文件中。将该密钥加载到 BBR 中时,或者将该密钥编程到 eFUSE 密钥寄存
器中时,请使用此文件。
注释 :除非指定输入加密文件,否则该值将存储在当前工程约束文件中。要避免将该值存储在约束文件中,请指定
输入加密文件。
• Specify Input encryption file(指定输入加密文件):指定现有 .nky 文件即可获取加密密钥设置。该字段为可选字
段,如果手动指定 AES、HMAC 和 CBC,则可省略该字段。
• 指定“Starting AES initial vector (IV0) value”(起始 AES 初始矢量 (IV0) 值)。选择对应第一个密钥的初始化矢
量。
注释 :每个密钥都需要 1 个独立的初始化矢量值,该值可通过输入加密文件来提供。
注释 :该值将存储在当前工程约束文件中。要避免将该值存储在约束文件中,请指定输入加密文件。
• 指定“Starting obfuscate initial vector (Obfuscate IV0)”(起始模糊初始矢量(模糊 IV0))值。选择对应模糊密
钥的初始化矢量。
注释 :该值将存储在当前工程约束文件中。要避免将该值存储在约束文件中,请指定输入加密文件。
Key Rolling Settings(密钥滚动设置)
• 指定是否应生成调试文件以报告 KDF 模式下生成的所有密钥。
• 指定“Fixed Input Data for KDF key rolling”(用于 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 寄存器中,然后再下载加密比特流
相关文章:
UltraScale 和 UltraScale+ 生成已加密文件和已经过身份验证的文件
注释 :如需了解更多信息,请参阅《使用加密和身份验证确保 UltraScale/UltraScale FPGA 比特流的安全》 (XAPP1267)。 要生成加密比特流,请在 Vivado IDE 中打开已实现的设计。在主工具栏中,依次选择“Flow” → “Bitstream Setti…...
2023年全国职业院校技能大赛软件测试赛题—单元测试卷②
单元测试 一、任务要求 题目1:任意输入2个正整数值分别存入x、y中,据此完成下述分析:若x≤0或y≤0,则提示:“输入不符合要求。”;若2值相同,则提示“可以构建圆形或正方形”;若2<…...
极兔单号查快递,极兔快递单号查询,筛选出途经指定城市的单号
随着电商的繁荣,快递单号已经成为我们生活中的一部分。然而,面对海量的快递信息,如何快速、准确地筛选出我们需要的单号,变成了许多人的痛点。今天,我要为你介绍一款强大的工具——快递批量查询高手,让你的…...
[redis] redis高可用之持久化
一、Redis 高可用的相关知识 1.1 什么是高可用 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中,高可用的含义似乎要宽泛一些,…...
云原生 微服务 restapi devops相关的一些概念说明(持续更新中)
云原生: 定义 云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。它是一种在云计算环境中构建、部署和管理现代应用程序的软件方法。云原生应用程序是基于微服务架构的,采用开源堆栈(K8SDocker)进行容器…...
初学unity学习七天,经验收获总结
初学unity七天,经验收获总结 学习就是认识新观念和新想法的过程。 假如人们始终以同一种思维方式来考虑问题的话,那么始终只会得到同样的结果。 因为我对你讲述的许多内容是你以前从未接触过的,所以我建议你,在你还没有做之前&…...
hcip实验2
根据地址分配完成基础配置 先配置r1,r2,r3的ospf以及与isp通讯: 配置缺省路由: 完成nat配置: 完成r5,r6,r7,r8,r15的mgre以及整个网络的ospf配置 mgre: area 2 和3之间用多进程双向重发布技术完成: area4和5之间用虚…...
js:使用canvas画一个半圆
背景 需求需要画一个半圆,或者多半圆,其实一下子就能想到 canvas 中的圆弧,核心使用 context.arc context.arc(x,y,r,sAngle,eAngle,counterclockwise)接下来我们看看示例 例一 <!DOCTYPE html> <html lang"en"> &…...
1.框架介绍项目环境配置与项目启动!
目录 1.框架开发方向:2.项目启动与环境搭建 1.框架开发方向: 1.前后端分离项目 2.纯后端项目 3.移动端开发uni-app(ios、Android、H5、微信小程序) 4.内容管理系统2.项目启动与环境搭建 1.安装node.js 下载地址可以用nvm安装 便于运行前端项目https://juejin.cn/post/7094576…...
LeetCode算法题解:螺旋矩阵
LeetCode算法题解:螺旋矩阵 题目描述 给定一个 m x n 的矩阵,按照螺旋顺序返回矩阵中的所有元素。 解题思路 1. 初始化变量 我们首先定义四个边界变量来跟踪螺旋遍历的边界:top、bottom、left 和 right。 2. 螺旋遍历 开始从左到右遍历…...
【Java 设计模式】设计原则之开放封闭原则
文章目录 1. 定义2. 好处3. 应用4. 示例结语 在软件开发中,设计原则是创建灵活、可维护和可扩展软件的基础。 这些原则为我们提供了指导方针,帮助我们构建高质量、易理解的代码。 ✨单一职责原则(SRP) ✨开放/封闭原则(…...
数据分析求职-知识脑图
今天和大家聊聊数据分析求职常见面试题,这是这个系列的第一篇文章,但是我不想开始就直接罗列题目,因为这样的文章实在太多了,同学们的兴趣程度肯定一般。所以,我想先和大家聊聊在准备面试题时候通常遇到的困扰…...
SQL-修改数据
🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:重拾MySQL 🍹文章作者技术和水平很有限,如果文中出现错误&am…...
Rockchip | FIQ-Debugger调试工具
FIQ-Debugger fiq debugger是集成到内核中的一种系统调试手段。 FIQ在arm架构中相当于nmi中断,fiq debugger把串口注册成fiq中断,在串口fiq中断服务程序中集成了一些系统调试命令。 一般情况下串口是普通的console模式,在串口工具下键盘输入…...
第二百六十三回 给geolocator插件提交问题
文章目录 1. 知识回顾2. 问题描述与解决2.1 问题描述2.2 问题解决 3. 心得与感受 1. 知识回顾 我们在前面章回中介绍过如何获取位置信息,主要介绍的是geolocator这个三方包,不过在最近使用时却发现了问题,尝试搜索解决,但是没有结…...
分组背包问题
题目来源:9. 分组背包问题 - AcWing题库 题目: 有 N 组物品和一个容量是 V 的背包。 每组物品有若干个,同一组内的物品最多只能选一个。 每件物品的体积是 vij,价值是 wij,其中 i 是组号,j 是组内编号。 …...
WinForm 中Label自动换行 解决方法
Label自动换行 1.单行完全显示:Label.AutoSize true; 2.换行显示:Label. AutoSize false;(Label框高度用户指定)。 3.多行显示 根据字数自动控制高度:Label.AutoSize true;Label.MaximumSize new Size(w,0); …...
【蓝桥杯软件赛 零基础备赛20周】第7周——二叉树
文章目录 1 二叉树概念2 二叉树的存储和编码2.1 二叉树的存储方法2.2 二叉树存储的编码实现2.3 二叉树的极简存储方法 3 例题4 习题 前面介绍的数据结构数组、队列、栈,都是线性的,它们存储数据的方式是把相同类型的数据按顺序一个接一个串在一起。简单的…...
SpringBoot+SSM项目实战 苍穹外卖(12) Apache POI
继续上一节的内容,本节是苍穹外卖后端开发的最后一节,本节学习Apache POI,完成工作台、数据导出功能。 目录 工作台Apache POI入门案例 导出运营数据Excel报表 工作台 工作台是系统运营的数据看板,并提供快捷操作入口,…...
Maven 基础总结篇
Maven 基础总结篇 Maven是专门用于管理和构建Java项目的工具,它的主要功能有: 提供了一套标准化的项目结构:用于解决不同IDE(例如eclipse与IDEA)不同的项目结构的问题 提供了一套标准化的构建流程(编译&…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
