用于可编程逻辑器件的安全引导系统和方法技术方案

技术编号:27529259 阅读:21 留言:0更新日期:2021-03-03 11:03
公开了用于安全可编程逻辑器件(PLD)的安全引导的系统和方法。示例性系统包括安全PLD,安全PLD包括可编程逻辑块(PLB)和配置引擎,可编程逻辑块(PLB)布置在安全PLD的PLD结构中,配置引擎被配置为:根据存储在安全PLD的非易失性存储器(NVM)中的、和/或通过安全PLD的配置输入/输出(I/O)耦合到配置引擎的配置映像,对PLD结构进行编程。安全PLD被配置为从NVM取回与配置映像相关联的预认证状态,确定或验证与配置映像相关联的所取回的预认证状态包括有效状态,以及使用配置映像引导安全PLD的PLD结构。结构。结构。

【技术实现步骤摘要】
【国外来华专利技术】用于可编程逻辑器件的安全引导系统和方法
[0001]相关申请的交叉引用
[0002]本专利申请要求2019年5月10日提交的题为“SECURE BOOT SYSTEMS AND METHODS FOR PROGRAMMABLE LOGIC DEVICES”的美国临时专利申请第62/846,365号的优先权和权益,其全部内容通过引用结合于此。
[0003]本专利申请要求2018年11月5日提交的题为“ASSET MANAGEMENT SYSTEMS AND METHODS FOR PROGRAMMABLE LOGIC DEVICES”的美国临时专利申请第62/756,021号的优先权和权益,其全部内容通过引用结合于此。
[0004]本专利申请要求2018年11月5日提交的题为“KEY PROVISIONING SYSTEMS AND METHODS FOR PROGRAMMABLE LOGIC DEVICES”的美国临时专利申请第62/756,001号的优先权和权益,其全部内容通过引用结合于此。
[0005]本专利申请要求2018年11月5日提交的题为“FAILURE CHARACTERIZATION SYSTEMS AND METHODS FOR PROGRAMMABLE LOGIC DEVICES”的美国临时专利申请第62/756,015号的优先权和权益,其全部内容通过引用结合于此。
[0006]本专利申请要求2018年5月11日提交的题为“DEVICES WITH PROGRAMMABLE LOGIC AND SECURITY FEATURES AND METHODS OF USING”的美国临时专利申请第62/670,487号的优先权和权益,其全部内容通过引用结合于此。


[0007]本专利技术总体上涉及可编程逻辑器件,并且更具体地,涉及这种器件的安全引导。

技术介绍

[0008]可编程逻辑器件(PLD)(例如,现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、现场可编程片上系统(FPSC)或其它类型的可编程器件)可以用各种用户设计来配置以实现期望的功能。通常,用户设计被合成并映射到特定PLD中可用的可配置资源(例如,可编程逻辑门、查找表(LUT)、嵌入式硬件或其他类型的资源)和互连。然后可以确定合成的和映射的用户设计的物理布局和路由,以生成特定PLD的配置数据。
[0009]PLD的客户端通常将相当多的资源用于为其所选择的PLD类型和/或能力开发配置,并且保护配置数据和防止与所选择的PLD和/或开发的配置相关的期望操作或能力被破坏,对于许多PLD的客户端来说是至关重要的。因此,本领域需要用于制造、保护、分发、升级和测试PLD和PLD配置的系统和方法,特别是在可信计算应用和可信计算体系结构的环境中。
附图说明
[0010]图1示出了根据本公开的实施例的可编程逻辑器件(PLD)的框图。
[0011]图2示出了根据本公开的实施例的PLD的逻辑块的框图。
[0012]图3示出了根据本公开的实施例的PLD的设计过程。
[0013]图4示出了根据本公开的实施例的安全PLD的框图。
[0014]图5A示出了根据本公开的实施例的安全PLD供应系统的框图。
[0015]图5B示出了根据本公开的实施例的安全PLD供应系统的框图。
[0016]图6示出了根据本公开的实施例的包括安全PLD的用户设备的框图。
[0017]图7示出了根据本公开的实施例的用于锁定的安全PLD的供应过程。
[0018]图8A示出了根据本公开的实施例的用于安全PLD的锁定策略计划的框图。
[0019]图8B示出了根据本公开的实施例的用于安全PLD的锁定策略计划的框图。
[0020]图9A至图9D示出了根据本公开的实施例的与用于安全PLD的相应锁定策略计划相关联的访问表。
[0021]图10示出了根据本公开的实施例的用于安全PLD的资产管理过程。
[0022]图11A至图11C示出了根据本公开的实施例的用于安全PLD的安全引导过程。
[0023]图12A至图12B示出了根据本公开的实施例的用于安全PLD的安全引导过程。
[0024]图13示出了根据本公开的实施例的用于安全PLD的安全引导过程的回滚保护规则集。
[0025]图14示出了根据本公开的实施例的用于安全PLD的安全引导过程。
[0026]图15示出了根据本公开的实施例的用于安全PLD的安全引导过程。
[0027]通过参考下面的详细描述可以最好地理解本公开的实施例及其优点。应当理解,相同的附图标记用于标识在一个或多个附图中所示出的相同的元件,其中,文中的示出是为了说明本公开的实施例而不是为了限制本公开的实施例。
具体实施方式
[0028]本公开提供了用于安全引导锁定的安全可编程逻辑器件(PLD)的系统和方法,以供在本文中描述的可信计算应用和体系结构中使用。例如,实施例提供了一种系统和方法,该系统和方法用于通过将配置映像提交给片上认证引擎、认证配置映像,然后在安全PLD中存储配置映像和预认证状态,从而预认证安全PLD的PLD结构的配置映像而不导致安全PLD停机,所有这些都可以在安全PLD的PLD结构根据已经引导的配置映像操作时发生。一旦认证,安全PLD然后可以重新引导,检查预认证状态,并且基于预认证状态而对PLD结构选择性地编程,并且初始化或“唤醒”PLD结构,而不执行配置映像的资源密集型的进一步认证。因此,实施例能够重复地安全引导安全PLD,而对安全PLD和/或并入安全PLD的可信平台/用户设备的性能影响有很小的影响或没有影响,如本文所述。
[0029]此外,实施例提供了一种系统和方法,该系统和方法用于通过设置存储在安全PLD的安全存储器中的相应锁定状态比特,而将锁定状态分配给单个资产和/或资产分组(其包括存储的配置映像和/或传送这种配置映像的输入/输出总线),,从而帮助减少或消除丢失或提取客户端或制造商的数据的风险,或重新编程这种数据的风险,而不需要束缚或限制被锁定的安全PLD的分发(例如,该被锁定的安全PLD可以以其他方式用非客户端数据被编程、并且潜在地被用于破坏可信平台的各种安全操作,例如,操作包括安全地配置和/或引导这种平台/用户设备),如本文所述。
[0030]根据本文阐述的实施例,提供了在可编程逻辑器件(PLD)中安全地实现用户设计的技术。在各种实施例中,用户设计可以被转换成PLD组件集合(例如,被配置用于逻辑、算
术或其它硬件功能)及其在PLD中可用的相关联的互连和/或由PLD组件集合及其在PLD中可用的相关联的互连表示。例如,PLD可包括多个可编程逻辑块(PLB)以及可用于互连PLB和/或逻辑单元的可配置路由资源,每个PLB包括多个逻辑单元。在一些实施例中,每个PLB可以用2到16个之间或2到32个之间的逻辑单元来实现。
[0031]通常,PLD(例如,FP本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种安全可编程逻辑器件(PLD)安全引导系统,包括:安全PLD,其中所述安全PLD包括:多个可编程逻辑块(PLB),布置在所述安全PLD的PLD结构中;以及配置引擎,被配置为根据存储在所述安全PLD的非易失性存储器(NVM)中的、和/或通过所述安全PLD的配置输入/输出(I/O)耦合到所述配置引擎的配置映像,对所述PLD结构进行编程,其中所述安全PLD被配置为执行计算机实现的方法,所述计算机实现的方法包括:从所述NVM取回与所述配置映像相关联的预认证状态;确定与所述配置映像相关联的所取回的预认证状态包括有效状态;和使用所述配置映像,引导所述安全PLD的所述PLD结构。2.根据权利要求1所述的安全PLD安全引导系统,其中所述计算机实现的方法还包括:在取回与所述配置映像相关联的所述预认证状态之前,执行与所述配置映像相关联的预认证过程,所述预认证过程包括:至少部分地基于所述配置映像,确定认证引擎结果包括通过结果;确定与所述配置映像相对应的设计版本、和/或与所述配置映像相关联的预认证散列签名;以及将所述认证引擎结果、与所述配置映像相对应的所述设计版本、和/或所述预认证散列签名在所述NVM中存储作为所述预认证状态。3.根据权利要求2所述的安全PLD安全引导系统,其中确定所述认证引擎结果包括通过结果包括:认证所述配置映像,其中,使用与用于所述安全PLD的安全PLD客户端、或所述安全PLD的安全PLD制造商相关联的私有密钥,对所述配置映像进行签名,对应的公共密钥被存储在所述NVM中,并且所述认证包括使用所述公共密钥来验证:所述配置映像使用与所述安全PLD客户端、或所述安全PLD制造商相关联的所述私有密钥而被签名;确定所述配置映像包括用于所述安全PLD的完整配置映像;和/或使关于所述安全PLD的所述配置映像生效。4.根据权利要求1所述的安全PLD安全引导系统,其中确定与所述配置映像相关联的所述预认证状态包括有效状态包括:确定与所述配置映像相关联的认证引擎结果包括通过结果;和/或确定与所述配置映像相关联的预引导散列签名,并且在使用所述配置映像引导所述PLD结构之前,验证所述预引导散列签名与预认证散列签名匹配,其中,所述预认证状态包括与所述配置映像相关联的所述预认证散列签名。5.根据权利要求1所述的安全PLD安全引导系统,其中所述配置引擎被配置为:根据存储在所述安全PLD的所述NVM中的第一配置映像或第二配置映像,对所述PLD结构进行编程,其中所述配置映像包括更新配置映像,并且其中所述计算机实现的方法还包括:通过所述安全PLD的所述配置I/O或可编程I/O,接收所述更新配置映像;执行与所述更新配置映像相关联的预认证过程,以确定与所述更新配置映像相关联的所述预认证状态;以及至少部分地基于所述预认证状态和与所述安全PLD相关联的安全引导模式,将所述更新配置映像存储在所述NVM中,以代替所述第一配置映像或所述第二配置映像。
6.根据权利要求5所述的安全PLD安全引导系统,其中执行与所述更新配置映像相关联的所述预认证过程包括:确定与所述更新配置映像相对应的设计版本;以及至少部分地基于存储在所述NVM中的回滚保护规则集、与所述安全PLD相关联的安全引导模式、和/或与相应的所述第一配置映像和/或所述第二配置映像相对应的第一设计版本和/或第二设计版本,使与所述更新配置映像相对应的所述设计版本生效。7.根据权利要求5所述的安全PLD安全引导系统,其中与所述安全PLD相关联的所述安全引导模式包括黄金引导模式,并且其中将所述更新配置映像存储在所述NVM中包括:将所述第一配置映像标识为黄金配置映像;以及将所述更新配置映像存储在所述NVM中,以代替所述第二配置映像。8.根据权利要求5所述的安全PLD安全引导系统,其中与所述安全PLD相关联的所述安全引导模式包括乒乓引导模式,并且其中将所述更新配置映像存储在所述NVM中包括:将所述第二配置映像标识为可更新配置映像;以及将所述更新配置映像存储在所述NVM中,以代替所述第二配置映像。9.一种安全可编程逻辑器件(PLD)安全引导系统,包括:安全PLD,其中所述安全PLD包括:多个可编程逻辑块(PLB),被布置在所述安全PLD的PLD结构中;以及配置引擎,被配置为根据存储在所述安全PLD的非易失性存储器(NVM)中的、和/或通过所述安全PLD的配置输入/输出(I/O)耦合到所述配置引擎的第一配置映像和/或第二配置映像,对所述PLD结构进行编程,其中所述安全PLD被配置为执行计算机实现的方法,所述计算机实现的方法包括:通过所述安全PLD的所述配置I/O或可编程I/O,接收更新配置映像;执行与所述更新配置映像相关联的预认证过程,以确定与所述更新配置映像相关联的预认证状态;以及至少部分地基于所确定的预认证状态和与所述安全PLD相关联的安全引导模式,选择性地将所述更新配置映像存储在所述NVM中,以代替所述第一配置映像或所述第二配置映像。10.根据权利要求9所...

【专利技术属性】
技术研发人员:F
申请(专利权)人:美国莱迪思半导体公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1