集成电路中的密钥管理

文档序号:1926653 发布日期:2021-12-03 浏览:17次 >En<

阅读说明:本技术 集成电路中的密钥管理 (Key management in integrated circuits ) 是由 H·阿绍尔 R·福尔克 C·P·费斯特 S·弗里斯 A·马夫顿 H·苏舍克 T·泽西格 于 2020-02-14 设计创作,主要内容包括:本申请涉及一种用于集成电路(40)的现场可编程集成部分(42)中的密钥管理的方法。根据该方法,用于现场可编程集成部分(42)的硬件配置(51)被加载到现场可编程集成部分(42)中。硬件配置(51)包括密钥导出功能(45)。此外,使用密钥导出功能(45),基于在现场可编程集成部分(42)中所提供的信息来导出加密密钥。(The application relates to a method for key management in a field programmable integrated part (42) of an integrated circuit (40). According to the method, a hardware configuration (51) for the field programmable integration part (42) is loaded into the field programmable integration part (42). The hardware configuration (51) includes a key derivation function (45). Further, an encryption key is derived based on information provided in the field programmable integration portion (42) using a key derivation function (45).)

集成电路中的密钥管理

技术领域

本发明涉及一种用于集成电路中、尤其集成电路的现场可编程集成部分中的密钥管理的方法。现场可编程集成部分可以包括在片上系统(SoC)中包括的现场可编程集成电路,或者现场可编程集成部分可以是包括另外的集成电路、例如处理单元或另外的现场可编程集成部分的现场可编程集成电路的一部分。

背景技术

也被称为App的、可以独立于基本软件系统被安装和更新的、诸如从例如移动电话或平板计算机已知的应用程序也可以在工业设备上得到支持(也称为App使能的现场设备、App使能的边缘云)。出于某些原因、例如性能、功耗、实时行为和密钥管理,使用所谓的“硬件App”可能是有利的。硬件App(HW App)可以被加载到可重新配置的数字芯片、数字电路或数字模块、例如现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、具有嵌入式FPGA或CPLD的专用集成电路(ASIC)或者具有嵌入式FPGA或CPLD的片上系统(SoC)中。硬件App可以部分地定义数字芯片或模块的配置,也称为部分重新配置。HW App通常可以独立地被操作,或可以作为“App捆绑包(App Bundle)”的一部分被操作,该“App捆绑包”包括软件App和硬件App及其配置参数。可以利用HW App的概念以便将计算密集型任务外包给硬件。HW App还可以执行加密操作,在该加密操作中,与在纯基于软件的解决方案中相比,基础密钥可以更好地保护以免被恶意软件损害。

然而,硬件App与硬件App外部的实体的通信可能被损害,所述实体例如是App捆绑包的所分配的软件App组件或另一个App捆绑包的另一个硬件App或在可重新配置的数字芯片或模块外部的存储器。

发明内容

因此,在本领域中存在对保护硬件App的外部通信的需要。

根据本发明,该目的通过如在独立权利要求中所限定的一种用于集成电路的现场可编程集成部分中的密钥管理的方法、一种包括集成电路的现场可编程集成部分的系统、以及集成电路的现场可编程集成部分的硬件配置来实现。从属权利要求限定本发明的实施例。

根据一个方面,提供一种用于集成电路的现场可编程集成部分中的密钥管理的方法。集成电路可以包括例如现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、具有嵌入式FPGA或CPLD的专用集成电路(ASIC)、或具有嵌入式FPGA或CPLD的片上系统(SoC)。根据该方法,用于现场可编程集成部分的硬件配置被加载到现场可编程集成部分中。硬件配置可以被认为是硬件App,该硬件App被加载到现场可编程集成部分中,例如用于提供计算密集型任务。硬件配置包括密钥导出功能。密钥导出功能可以包括密钥协商功能。使用密钥导出功能基于在现场可编程集成部分中所提供的信息来导出加密密钥。密钥导出功能可以包括在现场可编程集成部分中实施并且依赖于在集成电路中所提供的信息的功能,所述信息例如是不能从集成电路外部读出的秘密和/或唯一信息。密钥导出和协商功能可以包括例如Diffie-Hellman密钥协商方法,也称为Diffie-Hellman密钥交换方法。Diffie-Hellman密钥协商(DH)是一种通过公共(不受保护的)信道安全地交换密钥的方法。通过使用在集成电路中所提供的信息在现场可编程集成部分中实施密钥导出功能,所导出的密钥被绑定到硬件,并且可以确保密钥交换被绑定到硬件,例如至少部分地由硬件逻辑执行。

根据一个实施例,硬件配置包括控制功能,用于使用加密密钥控制由现场可编程集成部分实施的应用程序的操作。尤其,用于控制由现场可编程集成部分实施的应用程序的通信的控制功能可以使用加密密钥来保护在现场可编程集成部分和在现场可编程集成部分外部的实体之间所传递的数据。在现场可编程集成部分外部的实体可以包括例如分配给硬件App并由耦合到集成电路的处理器执行的软件App。附加地,或者作为替代,在现场可编程集成部分外部的实体可以包括用于存储现场可编程集成部分的信息的存储器,或者在现场可编程集成部分外部的实体可以包括集成电路的另外的现场可编程集成部分。

根据各种示例,在现场可编程集成部分中所提供的信息包括硬件应用程序标识符、硬件标识符、硬件系统密钥、硬件配置的比特流的一部分、硬件配置的比特流的指纹、和秘密系统参数中的至少一个。硬件应用程序标识符(HW-App-ID)可以集成在被加载到现场可编程集成部分中的硬件配置中。当在现场可编程集成部分中安装硬件配置时,硬件应用程序标识符可以被分配,或者可以是硬件配置的一部分。硬件标识符、例如硬件序列号(HW-SN)可以被包括在现场可编程集成部分中。硬件标识符可以唯一地标识现场可编程集成部分。硬件标识符可以是秘密的,使得该硬件标识符不能从现场可编程集成部分外部读出。硬件系统密钥(HW-SK)可以由与硬件配置相关联的应用程序、例如用于下载硬件配置和发起所下载的硬件配置的操作的集成电路的逻辑提供。硬件系统密钥可以是秘密的。硬件配置的比特流的该部分和硬件配置的比特流的指纹两者都依赖于构成硬件配置的数据,并且因此可以被认为是硬件配置比特流相关密钥信息(HW-BK)。硬件配置的比特流的该部分可以包括被加载到现场可编程集成部分中的硬件配置的比特流的特定部分。硬件配置的比特流的指纹可以例如使用散列函数、例如SHA256来生成。秘密系统参数(HW-SP)可以被包括在集成电路中,并且可以仅从现场可编程集成部分可访问。使用上面所列出的信息提供所导出的加密密钥到硬件App和集成电路硬件的绑定。

根据另外的实施例,使用所导出的加密密钥在现场可编程集成部分中执行加密操作。例如,所导出的加密密钥可以被用于导出用于硬件App与在现场可编程集成部分外部的实体的对应通信连接的另外的方向特定加密密钥。方向特定加密密钥可以使用在执行作为密钥协商功能的Diffie Hellman协议时所建立的Diffie Hellman秘密来导出。基于方向特定密钥,可以导出另外的安全服务特定密钥,例如用于完整性保护和机密性的单独的密钥。

在各种示例中,导出加密密钥包括对在现场可编程集成部分中所提供的信息应用散列函数,例如散列密钥导出函数(HKDF),像使用加密散列函数(像安全散列算法,例如SHA256)的基于散列的消息认证码(HMAC)的带密钥散列函数,或者例如根据高级加密标准(例如AES-128- GMAC)的MAC模式下的对称算法。

在另外的示例中,所导出的加密密钥可以结合将现场可编程集成部分的数据存储在现场可编程集成部分外部的存储器中以及从存储器检索数据来使用。存储器可以包括例如(非易失性)闪存或(易失性)随机存取存储器(RAM)。例如,可以使用加密密钥在现场可编程集成部分中生成加密数据,并且可以将加密数据传输到远离现场可编程集成部分的存储器。同样地,加密数据可以从远离现场可编程集成部分的存储器接收,并且加密数据可以在现场可编程集成部分中使用加密密钥来解密。由于加密密钥依赖于硬件特定参数和/或硬件App特定参数并且仅在现场可编程集成部分中被提供,因此可以可靠地禁止在现场可编程集成部分外部对现场可编程集成部分的加密数据进行解密。

根据另外的实施例,硬件配置被加载到集成电路的第一现场可编程集成部分中,并且另外的硬件配置被加载到集成电路的第二现场可编程集成部分中。第二现场可编程集成部分可以与第一现场可编程集成部分分离。然而,第一现场可编程集成部分和第二现场可编程集成部分可以布置在集成电路的相同实体中或不同实体中。例如,第一现场可编程集成部分和第二现场可编程集成部分可以布置在相同的现场可编程门阵列中或不同的现场可编程门阵列中。另外的硬件配置包括另外的密钥导出功能。另外的加密密钥由另外的密钥导出功能基于在第二现场可编程集成部分中所提供的另外的信息来导出。在第二现场可编程集成部分中所提供的另外的信息可以包括与在第一现场可编程集成部分中所提供的信息不同的信息,例如另外的硬件配置的不同的硬件应用程序标识符,以及另外的硬件配置的比特流的不同的部分或指纹。然而,在第二现场可编程集成部分中所提供的另外的信息可以包括与在第一现场可编程集成部分中所提供的信息相同的信息,例如硬件标识符、秘密系统参数和硬件系统密钥。因此,密钥导出功能和另外的密钥导出功能可以至少部分地依赖于相同的秘密信息,例如硬件标识符和硬件系统密钥,从而共享秘密。

根据各种示例,可以使用密钥协商协议在第一现场可编程集成部分和第二现场可编程集成部分中生成用于保护在第一现场可编程集成部分和第二现场可编程集成部分之间所传递的消息的会话密钥。密钥协商协议可以包括例如Diffie Hellman密钥交换协议。保护消息可以包括例如提供在消息中所包括的数据的完整性保护和/或机密性。

会话密钥可以包括例如第一方向会话密钥,用于保护从第一现场可编程集成部分传递到第二现场可编程集成部分的消息。此外,会话密钥可以包括第二方向会话密钥,用于保护从第二现场可编程集成部分传递到第一现场可编程集成部分的消息。第二方向会话密钥可以不同于第一方向会话密钥。然而,附加地或作为替代,单个相同会话密钥可以被建立,并被用于将消息从第一现场可编程集成部分传递到第二现场可编程集成部分并且反之亦然。

根据另外的实施例,从第一现场可编程集成部分传递到第二现场可编程集成部分的密钥协商协议的消息可以使用加密密钥来保护。同样地,从第二现场可编程集成部分传递到第一现场可编程集成部分的密钥协商协议的消息可以使用另外的加密密钥来保护。因此,例如在完整性保护的意义上,基于加密密钥和另外的加密密钥,已经可以保护密钥协商协议。尤其,上面共享的秘密可以有助于建立对密钥协商协议的消息的保护。

根据各种示例,保护消息可以包括以下各项中的至少一项:对消息进行加密、对消息进行解密和保护消息的完整性。对消息进行加密和解密可以有助于确保机密性。

根据另外的方面,提供一种包括集成电路的现场可编程集成部分的系统。现场可编程集成部分被配置为将用于现场可编程集成部分的硬件配置加载到现场可编程集成部分中。硬件配置包括使得现场可编程集成部分能够执行密钥导出功能的密钥导出功能。加密密钥由密钥导出功能基于在现场可编程集成部分中所提供的信息来导出。该系统可以是片上系统(SoC),并且可以包括例如集成电路,该集成电路包括处理器和现场可编程集成电路。该系统可以包括其他组件,例如存储器和接口。

该系统可以被配置为执行上面所描述的方法及其实施例,并且因此包括上面所描述的优点。

另一方面涉及用于集成电路的现场可编程集成部分的硬件配置。硬件配置可以被加载到现场可编程集成部分中。硬件配置引起现场可编程集成部分执行用于密钥管理的方法。用于密钥管理的方法可以包括上面所描述的方法及其实施例。

应理解的是,在不离开本发明的范围的情况下,上面提到的特征和下面还要被解释的那些特征可以不仅以所指示的相应组合,而且以其他组合或单独地被使用。

附图说明

图1示意性地图示根据一个实施例的系统。

图2示意性地图示根据各种示例的方法的流程图。

图3示意性地图示根据另外的示例的方法的流程图。

图4示意性地图示根据另外的示例的方法的流程图。

具体实施方式

在下文中,将参考附图详细地描述本发明的实施例。应理解的是,对实施例的以下描述不应在限制性的意义上被理解。本发明的范围并不旨在受以下所描述的实施例或附图限制,以下所描述的实施例或附图被理解为仅仅是说明性的。

附图应被认为是示意性表示,并且附图中图示的元件不一定按比例示出。相反,各种元件被表示,使得它们的功能和一般目的对于本领域技术人员而言变得明显。在附图中所示出的或本文中所描述的功能块、设备、组件或其他物理或功能单元之间的任何连接或耦合也可以通过间接连接或耦合来实施。功能块可以以硬件、固件、软件或其组合来实施。不同附图中的相同的附图标记指代相似或相同的组件。

图1示意性地图示系统20,该系统包括处理单元30、包括多个现场可编程集成部分42和43的集成电路40、以及存储器50。系统20可以实现为片上系统(SOC)、专用集成电路(ASIC)或印刷电路板(PCB)。系统20可以是嵌入式设备、例如嵌入式工业设备。处理单元30可以包括被配置为执行软件、例如存储在存储器50中的软件的中央处理单元(CPU)或控制器。存储器50可以包括例如只读存储器(ROM)、随机存取存储器(RAM)、和/或闪存。集成电路40可以实现为现场可编程门阵列(FPGA)或任何其他种类的可编程逻辑、例如复杂可编程逻辑器件(CPLD)或具有嵌入式FPGA或CPLD的ASIC。

除了可以由处理单元30执行的软件之外,存储器50可以提供硬件配置51,该硬件配置可以被加载到现场可编程集成部分42或43中。尤其,针对每个现场可编程集成部分42和43,可以提供对应的硬件配置51。硬件配置51可以被认为是硬件应用程序,即所谓的硬件App(HW-App)。硬件App可以是App捆绑包的一部分,该App捆绑包包括该硬件App、一个或多个对应的软件App以及用于硬件和软件组件的附加配置/元数据。因此,附图标记51也可以指代包括硬件App和软件App的包(package)的App捆绑包。针对每个现场可编程集成部分42、43,可以在存储器50中提供对应的App捆绑包51。

处理单元30可以在用户空间31中执行包括内核和应用软件的操作系统(OS)32,从而提供基本软件系统。在用户空间31中,可以执行前述App捆绑包的软件App 34和35。每个软件App 34、35可以分别包括程序代码36和38。每个软件App 34、35的程序代码36、38可以被配置为将相关联的硬件App下载到集成电路40中,并且与相关联的硬件App通信。为了将硬件App下载到集成电路40中,可以提供重新配置和更新管理器(RUM)33,该重新配置和更新管理器被配置为与集成电路40中所提供的部分重新配置(PR)逻辑41通信。

集成电路40包括现场可编程集成部分42和43以及部分重新配置(PR)逻辑41。部分重新配置逻辑41可以从重新配置和更新管理器33接收用于现场可编程集成部分42和43的硬件配置,用对应的硬件配置来配置现场可编程集成部分42和43,并使用对应的硬件配置发起现场可编程集成部分42和43的操作。集成电路40可以包括任何数量的现场可编程集成部分,例如一个或两个现场可编程集成部分或多于两个的现场可编程集成部分,例如三到十个或甚至超过十个。

部分重新配置逻辑41可以包括硬件系统密钥(HW-SK),该硬件系统密钥可以是由现场可编程集成部分42、43可访问的,或者该硬件系统密钥可以在将硬件配置加载到对应的现场可编程集成部分42、43中期间由部分重新配置逻辑41包括在硬件配置中。硬件系统密钥可能不能从集成电路40外部访问,并且因此可以被认为是秘密密钥。

集成电路40此外可以提供硬件标识符、例如硬件序列号(HW-SN)。硬件序列号可以是由现场可编程集成部分42、43可访问的或可以包括在现场可编程集成部分42、43中。此外,集成电路40可以提供秘密系统参数(HW-SP),该秘密系统参数由现场可编程集成部分可访问,但不能从集成电路40外部访问。因此,硬件系统密钥、硬件序列号和系统参数可以被认为是通过图1中的附图标记44所指代的硬件相关信息。

加载到现场可编程集成部分42和43中的硬件配置可以各自分别包括对应的评估部分45和47,所述对应的评估部分实现用于基于例如硬件相关信息44导出加密密钥的功能。评估部分45和47可以附加地考虑用于导出加密密钥的硬件配置相关信息。硬件配置相关信息可以包括例如硬件应用程序标识符(HW-App-ID)46和48,该硬件应用程序标识符被分配给对应的硬件配置并唯一地标识硬件配置。硬件配置相关信息此外可以包括例如与硬件配置的比特流相关的密钥信息(HW-BK)。例如,硬件配置的比特流的指纹可以在将硬件配置加载到集成电路40中期间由与硬件App相关的软件App 34、35、RUM 33或重新配置逻辑41生成,或者硬件配置的比特流的特定部分可以在将硬件配置加载到集成电路40中期间由软件App 34、35、RUM 33或重新配置逻辑41定义。与比特流相关的密钥信息在图1中分别通过附图标记37和39来指示。在导出加密密钥时,评估部分45和47可以分别考虑比特流的特定部分或指纹。

一般而言,在现场可编程集成部分42、43中被操作的硬件App可以在利用另一实体的密钥管理期间使用上面所描述的硬件配置相关信息37、39、46、48和硬件相关信息44。如上面所描述的,该信息可以由硬件应用程序从其环境直接导出,或者该信息可以由与硬件应用程序相关联的软件应用程序提供。尤其,在导出用于认证和密钥协商的密钥时,可以使用该信息。这可以将所协商的密钥绑定到对应的硬件应用程序,并且从而绑定到对应的硬件。这可以确保密钥协商确实在特定硬件中、例如经由硬件App可用的硬件相关信息44执行。这可以被用在保护两个硬件App之间的通信中。保护可以包括在硬件App之间交换的信息的机密性和完整性保护。此外,这可以被用于加密硬件App的数据,该数据应被存储在硬件App外部,例如存储在存储器50中。

此外,硬件App可以使用在用于密钥管理的硬件中可用的信息来协商会话密钥。硬件中的信息可以被绑定到硬件或硬件App,以便具有唯一的分配。

例如,硬件应用程序基于上面所描述的信息中的一个或多个、即硬件配置相关信息和硬件相关信息的组合来导出硬件应用程序特定密钥。例如,可以基于上面所描述的信息的组合来计算散列函数。此外,可以使用像HKDF或PBKDF2这样的密钥导出函数,或者像HMAC-SHA256这样的带密钥散列函数,或者例如AES-128-GMAC的对称算法。例如,硬件系统密钥可以被使用并被应用于一些或所有其他信息。

如此导出的硬件应用程序特定密钥可以用在利用密钥协商协议、像例如生成共享的已知的Diffie Hellman秘密的Diffie Hellman的密钥建立中。基于如此导出的DiffieHellman秘密,可以导出另外的密钥,例如用于硬件应用程序与另一实体的对应连接的方向特定密钥。

在下文中将参照图2至图4来描述用于操作所述系统20的各种示例。

图2示出由对应的硬件App在现场可编程集成部分42中执行的方法步骤和由对应的硬件App在现场可编程集成部分43中执行的方法步骤。在该示例中,执行未经认证的Diffie Hellman密钥协商。硬件应用程序在Diffie Hellman密钥协商之后通过使用所导出的密钥来进行认证。

详细地,在框60中,用于现场可编程集成部分42的硬件配置被加载到现场可编程集成部分42中。硬件配置可以存储在存储器50中,该硬件配置经由重新配置和更新管理器33和部分重新配置逻辑41从该存储器下载到现场可编程集成部分42中。硬件配置包括上面所描述的评估部分45,该评估部分在下文中也将被命名为密钥导出功能45。

在框61中,现场可编程集成部分42中的硬件配置的操作引起使用密钥导出功能45基于现场可编程集成部分42中的信息来导出加密密钥。该信息可以包括上面所描述的硬件配置相关信息和硬件相关信息44、即硬件标识符、硬件系统密钥、秘密系统参数、比特流相关密钥信息、和硬件应用程序标识符中的至少一个。加密密钥此外可以基于DiffieHellman系统参数来导出。如此导出的加密密钥是专门用于现场可编程集成部分42的硬件App的,并且因此在面将被称为HW-App-Key1。除了HW-App-Key1之外,可以生成公共DiffieHellman密钥(DH-HWA1-public)和私有Diffie Hellman密钥(DH-HWA1-private),以在Diffie Hellman密钥协商协议中的后面的步骤中应用。

同样地,在框70中,用于现场可编程集成部分43的硬件配置例如经由重新配置和更新管理器33和部分重新配置逻辑41从存储器50被加载到现场可编程集成部分43中。用于现场可编程集成部分43的硬件配置还包括评估部分47中的密钥导出功能。

在框71中,现场可编程集成部分43中的硬件配置的操作引起使用密钥导出功能47基于现场可编程集成部分43中的信息来导出加密密钥。该信息可以包括上面所描述的硬件配置相关信息和硬件相关信息44、即硬件标识符、硬件系统密钥、秘密系统参数、比特流相关密钥信息、和硬件应用程序标识符中的至少一个。加密密钥此外可以基于DiffieHellman系统参数来导出。如此导出的加密密钥是专门用于现场可编程集成部分43的硬件App的,并且因此在下文中将被称为HW-App-Key2。除了HW-App-Key2之外,可以生成公共Diffie Hellman密钥(DH-HWA2-public)和私有Diffie Hellman密钥(DH-HWA2-private),以在Diffie Hellman密钥协商协议中在后面的步骤中应用。

接下来,根据Diffie Hellman密钥协商协议,Diffie Hellman请求80可以从现场可编程集成部分42被传输到现场可编程集成部分43。Diffie Hellman请求消息80可以包括例如现场可编程集成部分42的硬件应用程序标识符(HW-App-ID1)、DH-HWA1-public、和由现场可编程集成部分42生成的第一随机数(nonce)中的至少一个。

现场可编程集成部分43可以向现场可编程集成部分42传输Diffie Hellman响应消息81。Diffie Hellman响应消息81可以包括例如现场可编程集成部分43的硬件应用程序标识符(HW-App-ID2)、DH-HWA2-public、和由现场可编程集成部分43生成的第二随机数中的至少一个。

在框62中,现场可编程集成部分42可以根据Diffie Hellman密钥协商协议和在来自现场可编程集成部分43的响应中所提供的信息来确定Diffie Hellman秘密(DH-S)。基于作为Diffie Hellman密钥协商协议的一部分所传输的硬件应用程序标识符(HW-App-ID1),现场可编程集成部分42可以导出现场可编程集成部分43的HW-App-Key2。此外,现场可编程集成部分42可以导出方向特定会话密钥。例如,基于Diffie Hellman秘密和HW-App-Key1,可以导出用于从现场可编程集成部分42到现场可编程集成部分43的通信的方向特定会话密钥SK-HWA1。此外,基于Diffie Hellman密钥协商协议、硬件相关信息、例如硬件系统参数(HW-SP)、和现场可编程集成部分43的所导出的HW-App-Key2,可以导出用于从现场可编程集成部分43到现场可编程集成部分42的通信的方向特定会话密钥SK-HWA2。

同样地,在框72中,现场可编程集成部分43可以根据Diffie Hellman密钥协商协议和在来自现场可编程集成部分42的请求中所提供的信息来确定Diffie Hellman秘密(DH-S)。基于作为Diffie Hellman密钥协商协议的一部分所传输的硬件应用程序标识符(HW-App-ID2),现场可编程集成部分43可以导出现场可编程集成部分42的HW-App-Keyl。此外,现场可编程集成部分43可以导出方向特定会话密钥。例如,基于Diffie Hellman秘密和HW-App-Key2,可以导出用于从现场可编程集成部分43到现场可编程集成部分42的通信的方向特定会话密钥SK-HWA2。此外,基于Diffie Hellman秘密、硬件相关信息、例如硬件系统参数(HW-SP)、和现场可编程集成部分42的所导出的HW-App-Key1,可以导出用于从现场可编程集成部分42到现场可编程集成部分43的通信的方向特定会话密钥SK-HWA1。

因此,现场可编程集成部分42和现场可编程集成部分43共享Diffie Hellman秘密、硬件应用程序特定密钥HW-App-Key1和HW-App-Key2、以及方向特定会话密钥SK-HWA1和SK-HWA2。

消息和数据可以使用方向特定会话密钥来传递。

例如,包括使用会话密钥SK-HWA1的完整性检查值(IVC)的请求82可以从现场可编程集成部分42传输到现场可编程集成部分43。在框73中,现场可编程集成部分43可以使用所计算的SK-HWA1来验证ICV。同样地,现场可编程集成部分43可以向现场可编程集成部分42传输包括使用会话密钥SK-HWA2的完整性检查值(IVC)的响应83。在框63中,现场可编程集成部分42可以使用所计算的SK-HWA2来验证接收到的ICV。

在另外的示例中,基于方向特定密钥SK-HWA1和SK-HWA2,可以导出另外的安全服务特定密钥,例如用于完整性保护和机密性的单独的密钥。在另外的示例中,代替方向特定密钥,可以导出仅仅一个通信密钥,该通信密钥可以被现场可编程集成部分42和现场可编程集成部分43两者用于发送和接收消息和数据。

另外的示例在图3中示出。在该示例中,所导出的密钥HW-App-Key1和HW-App-Key2被用于保护Diffie Hellman密钥协商协议。

在框60、61、63、70、71和73中,执行与上面结合图2所描述的操作相同的操作。因此,出于简洁的原因,在下文中将不详细解释这些框。

在框60中,用于现场可编程集成部分42的硬件配置被加载到现场可编程集成部分42中。在框61中,现场可编程集成部分42中的硬件配置的操作引起使用密钥导出功能45基于现场可编程集成部分42中的信息来导出加密密钥HW-App-Key1。除了HW-App-Key1之外,可以生成公共Diffie Hellman密钥(DH-HWA1-public)和私有Diffie Hellman密钥(DH-HWA1-private)以应用在Diffie Hellman密钥协商协议中。

同样地,在框70中,用于现场可编程集成部分43的硬件配置被加载到现场可编程集成部分43中。在框71中,现场可编程集成部分43中的硬件配置的操作引起使用密钥导出功能47基于现场可编程集成部分43中的信息来导出加密密钥HW-App-Key2。除了HW-App-Key2之外,可以生成公共Diffie Hellman密钥(DH-HWA2-public)和私有Diffie Hellman密钥(DH-HWA2-private)以应用在Diffie Hellman密钥协商协议中。

接下来,根据Diffie Hellman密钥协商协议,Diffie Hellman请求90可以从现场可编程集成部分42被传输到现场可编程集成部分43。Diffie Hellman请求90可以包括例如现场可编程集成部分42的硬件应用程序标识符(HW-App-ID1)、DH-HWAl-public、和由现场可编程集成部分42生成的第一随机数中的至少一个。可以使用加密密钥HW-App-Keyl对Diffie Hellman请求90进行完整性保护。例如,完整性检查值(IVC)可以基于HW-App-Key1来计算并被包括在请求90中。

在框74中,现场可编程集成部分43可以根据Diffie Hellman密钥协商协议和在来自现场可编程集成部分42的请求90中所提供的信息来确定Diffie Hellman秘密(DH-S)。基于作为Diffie Hellman请求消息的一部分所传输的硬件应用程序标识符(HW-App-ID1),现场可编程集成部分43可以导出现场可编程集成部分42的HW-App-Key1。基于HW-App-Key1,例如基于在请求90中所包括的完整性检查值(ICV),现场可编程集成部分43可以验证接收到的请求90的完整性。

现场可编程集成部分43可以导出方向特定会话密钥。例如,基于Diffie Hellman秘密和HW-App-Key2,可以导出用于从现场可编程集成部分43到现场可编程集成部分42的通信的方向特定会话密钥SK-HWA2。此外,基于Diffie Hellman秘密、硬件相关信息、例如硬件系统参数(HW-SP)、和现场可编程集成部分42的所导出的HW-App-Key1,可以导出用于从现场可编程集成部分42到现场可编程集成部分43的通信的方向特定会话密钥SK-HWA1。

现场可编程集成部分43可以向现场可编程集成部分42传输Diffie Hellman响应91。Diffie Hellman响应91可以包括例如现场可编程集成部分43的硬件应用程序标识符(HW-App-ID2)、DH-HWA2-public、和由现场可编程集成部分43生成的第二随机数中的至少一个。可以使用加密密钥HW-App-Key2对Diffie Hellman响应91进行完整性保护。例如,完整性检查值(IVC)可以基于HW-App-Key2来计算并被包括在响应91中。

在框64中,现场可编程集成部分42可以根据Diffie Hellman密钥协商协议和在来自现场可编程集成部分43的响应中所提供的信息来确定Diffie Hellman秘密(DH-S)。基于作为Diffie Hellman响应消息的一部分所传输的硬件应用程序标识符(HW-App-ID2),现场可编程集成部分42可以导出现场可编程集成部分43的HW-App-Key2。基于HW-App-Key1,例如基于在响应91中所包括的完整性检查值(ICV),现场可编程集成部分42可以验证接收到的响应91的完整性。

现场可编程集成部分42可以导出方向特定会话密钥。例如,基于Diffie Hellman秘密和HW-App-Key1,可以导出用于从现场可编程集成部分42到现场可编程集成部分43的通信的方向特定会话密钥SK-HWA1。此外,基于Diffie Hellman秘密、硬件相关信息、例如硬件系统参数(HW-SP)、和现场可编程集成部分43的所导出的HW-App-Key2,可以导出用于从现场可编程集成部分43到现场可编程集成部分42的通信的方向特定会话密钥SK-HWA2。

可以使用方向特定会话密钥SK-HWA1和SK-HWA2来传递消息和数据,例如,如上面结合请求82、框73、响应83和框63所描述的。

图4示出在现场可编程电路部分42中导出和使用加密密钥的另外的示例。

在框65中,用于现场可编程集成部分42的硬件配置被加载到现场可编程集成部分42中。硬件配置可以被存储在存储器50中,该硬件配置经由重新配置和更新管理器33和部分重新配置逻辑41从该存储器下载到现场可编程集成部分42中。硬件配置包括上面所描述的评估部分45,即密钥导出功能。

在框66中,现场可编程集成部分42中的硬件配置的操作引起使用密钥导出功能45基于现场可编程集成部分42中的信息来导出加密密钥。该信息可以包括上面所描述的硬件配置相关信息和硬件相关信息44、即硬件标识符、硬件系统密钥、秘密系统参数、比特流相关密钥信息、和硬件应用程序标识符中的至少一个。如此导出的加密密钥是专门用于现场可编程集成部分42的硬件App的,并将被称为HW-App-Key。

在框67中,在现场可编程电路部分42中所提供或所生成的、将被存储在存储器50中的数据和消息可以使用HW-App-Key进行完整性保护。附加地或者作为替代,数据和消息可以使用HW-App-Key来加密。尽管在该示例中存储器50被用于存储数据和消息以及硬件配置51,但是可以使用不同的存储器,例如用于提供硬件配置51的第一存储器和用于存储数据和消息的第二存储器,其中第二存储器不同于第一存储器。尤其,第一和第二存储器可以包括单独的存储器设备,所述存储器设备可以布置在系统20的内部或外部。

如此被完整性保护和/或被加密的数据和消息可以如通过附图标记85所指示的那样被传输到存储器50。例如,数据和消息可以从现场可编程电路部分42被传递到相关联的软件App 34,并且软件App 34可以经由操作系统32将数据和消息传输到存储器50。

在稍后的时间点,现场可编程集成部分42可能想要检索所存储的数据和消息。根据来自现场可编程集成部分42的请求,被完整性保护和/或被加密的数据和消息可以从存储器50被传递到现场可编程集成部分42,如通过附图标记86所指示的。例如,数据和消息可以由操作系统32从存储器50检索,并且可以从操作系统32经由软件App 34被传递到现场可编程电路部分42。

在框68中,现场可编程电路部分42可以使用HW-App-Key对接收到的数据和消息进行解密。附加地,或者作为替代,现场可编程电路部分42可以使用HW-App-Key来验证接收到的数据消息的完整性。

总之,可以相应地识别在硬件App的上下文中创建的密钥。例如,这使得能够例如实施在生成会话密钥时考虑某些要求的安全策略。通过将密钥绑定到系统特定参数,可以防止将硬件App复制到另一个硬件,从而导致不同的结果并被通信伙伴识别出。

尽管已经关于某些优选实施例图示和描述了本发明,但是本领域的其他技术人员一阅读并理解说明书就将想到等同方案和修改方案。本发明包括所有这种等同方案和修改方案,并且仅由所附权利要求书的范围来限制。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:机器的动态侧翻控制系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类