优先权
本申请要求于2020年1月31日提交的法国专利申请no.2000994的优先权权益,其内容在法律允许的最大程度上通过引用并入于此。
实施例和实现方式涉及被设计为执行对称加密操作的集成电路。
背景技术:
对称加密允许使用唯一共享密钥来加密,以及然后解密二进制数据。为了保持二进制数据秘密,应当注意保持共享密钥秘密。
因此,有必要开发允许安全管理密钥的解决方案。已知的解决方案包括在安全环境中使用可靠的软件来执行这种管理。这种解决方案具有的缺点是复杂。具体地,难以保护由软件管理的密钥免受某些攻击。此外,通过软件管理密钥在实时应用中至关重要。实际上,通过软件管理密钥可能需要使用大量可用资源,并且由此,会影响实时应用的操作,尤其是其执行时间。
因此,本领域需要一种能够安全管理密钥的解决方案,该解决方案不具有上述缺点。
技术实现要素:
在实施例中,一种集成电路包括:安全硬件环境,在其中唯一硬件密钥被记录,所述安全硬件环境包括第一逻辑电路,被配置为从所述唯一硬件密钥以及涉及执行上下文和/或秘密密钥的使用的至少一条信息中生成唯一导出密钥,并且其中,该安全硬件环境进一步包括第一加密设备,该第一加密设备被配置为使用所述唯一导出密钥对所述秘密密钥执行对称加密操作,并且传递由此操作产生的经加密秘密密钥。
安全硬件环境是安全“硬件”。
唯一硬件密钥与唯一集成电路相关联。
因此,第一逻辑电路使得可以根据针对给定集成电路的给定使用和/或执行上下文生成唯一导出密钥。因此,第一逻辑电路使得可以针对给定集成电路的每个执行上下文和每个使用而生成不同的唯一导出密钥。
唯一硬件密钥以及唯一导出密钥在安全硬件环境外侧不可访问。
唯一导出密钥用于对秘密密钥进行加密。
经加密秘密密钥可以被记录在输出寄存器中。然后,该经加密秘密密钥可以由软件从输出寄存器恢复。然后,软件可以在安全硬件环境外侧操纵该经加密秘密密钥,但是软件不可以直接操纵未加密秘密密钥。未加密秘密密钥不可以由软件读取。
因此,这种集成电路使得可以通过仅在使用唯一导出密钥来对秘密秘钥进行加密之后才存储该秘密密钥,来获得秘密密钥的安全存储。
此外,秘密密钥的加密取决于在安全硬件环境外侧未知的唯一硬件密钥,并且取决于秘密密钥的使用和/或执行上下文。因此这样的加密是鲁棒的。
这样的电子电路可以避免使用专用于密钥管理的软件。实际上,密钥的管理是通过安全硬件环境的硬件加强获得的。因此,这样的电子电路确保了经改善的密钥的安全管理。
在有利的实施例中,安全硬件环境进一步包括第二加密设备,被配置为使用秘密密钥对二进制数据执行对称加密操作,以及传递由该操作产生的经加密二进制数据。
然后,通过软件可以在安全硬件环境外侧操纵经加密二进制数据。
在有利的实施例中,安全硬件环境进一步包括第一解密设备,被配置为使用所述唯一导出密钥对经加密秘密密钥执行解密操作,并且在安全硬件环境外侧传递由该操作产生的秘密密钥。
经加密秘密密钥可以是先前由第一加密设备加密的密钥。因此,由第一解密设备传递的秘密密钥与来自已经通过第一加密设备传递的经加密秘密密钥的秘密密钥相同。
因为秘密密钥在安全硬件环境中被解密,所以秘密密钥不可以被软件访问。
优选地,第二加密设备同样被配置为使用由第一解密设备传递的秘密密钥对未加密二进制数据执行加密操作,并且传递由此操作产生的经加密二进制数据。
有利地,该安全硬件环境进一步包括被称为密钥寄存器的寄存器,被配置为记录由第一解密设备生成的每个秘密密钥,并且使得能够将每个经记录的秘密密钥传输到第二加密设备,以便对未加密二进制数据进行加密。
在有利的实施例中,安全硬件环境进一步包括第二解密设备,被配置为使用由第一解密设备传递的秘密密钥对经加密二进制数据执行解密操作,并且在安全硬件环境外侧传递由此操作产生的未加密二进制数据。
在有利的实施例中,安全硬件环境进一步包括被称为密钥寄存器的寄存器,该寄存器被配置为记录由第一解密设备生成的每个秘密密钥,并且使得能够将每个经记录的秘密密钥传输到第二解密设备,以便对经加密二进制数据进行解密。
根据另一方面,提出了一种片上系统,片上系统包括诸如上文所描述的集成电路,并且被配置为根据具有不同安全和/或机密性等级的执行上下文来执行软件。集成电路被配置为:如果在秘密密钥被记录在密钥寄存器中之后秘密密钥的保护由软件解除、并且如果密钥不是单个执行上下文独有的,那么根据这些执行上下文来授权秘密密钥的使用。
这样的系统允许由不同执行上下文的软件使用秘密密钥,同时确保秘密密钥的保护。具体地,秘密密钥可以由软件使用但是仍然保持未知。
在有利的实施例中,集成电路被配置为:当秘密密钥被保护时检测到新的执行上下文时、或者当秘密密钥对于给定的执行上下文是独有的并且检测到新的执行上下文时,删除密钥寄存器的秘密密钥。
因此,集成电路被配置为检测秘密密钥的误用,换言之,在秘密密钥未被授权时对执行上下文的修改。
此外,集成电路被配置为在秘密密钥被盗用时,换言之,一旦检测到密钥的误用,就删除该秘密密钥。
这样的集成电路使得可以通过执行上下文来隔离秘密密钥,并且仅在被授权使用的情况下才允许在其他执行上下文中使用这些秘密密钥。
在实施例中,一种用于在安全硬件环境中对秘密密钥进行加密的方法包括:从在所述安全硬件环境中记录的唯一硬件密钥以及涉及秘密密钥的执行上下文和/或使用的至少一条信息,生成唯一导出密钥,以及使用所生成的唯一导出密钥对秘密密钥进行对称加密。
根据另一方面,一种在安全硬件环境中对二进制数据进行加密的方法包括:使用秘密密钥对二进制数据进行对称加密,以便得到经加密二进制数据,并且根据上述加密方法对秘密密钥进行对称加密。
根据另一方面,一种在安全硬件环境中对经加密秘密密钥进行解密的方法包括:从在所述安全硬件环境中记录的唯一硬件密钥以及涉及所述秘密密钥的执行上下文和/或使用的至少一条信息,生成唯一导出密钥,以及使用所生成的唯一导出密钥对经加密秘密密钥进行解密。
根据另一方面,一种在安全硬件环境中借助于经加密秘密密钥来对经加密的二进制数据进行解密的方法包括:根据如上所述的解密方法,来对所述经加密秘密密钥进行解密,以这种方式获得适合于解密所述经加密二进制数据的秘密密钥,然后使用所述秘密密钥对经加密二进制数据进行解密。
附图说明
其他优点和特征将通过非限制性的实施例和实现方式的详细说明以及附图而变得显而易见,在附图中:
图1是安全硬件环境的框图;
图2是加密系统的框图;
图3示出了用于对秘密密钥进行加密的方法;
图4是解密系统的框图;以及
图5示出了一种用于对秘密密钥进行解密的方法。
具体实施方式
根据一个实施例的集成电路包括安全硬件环境ems,包括图1中示出的第一逻辑电路gen1、图2中示出的加密系统sch和图4中示出的解密系统sdch。
第一逻辑电路gen1用于生成唯一导出密钥hik。
加密系统sch用于使用秘密密钥sk对二进制数据dat进行加密,并且使用由第一逻辑电路gen1生成的唯一导出密钥hik对该秘密密钥sk进行加密。
解密系统sdch用于使用由第一逻辑电路gen1生成的唯一导出密钥hik对经加密秘密密钥e_sk进行解密,并且使用经解密秘密密钥sk对经加密二进制数据e_dat进行解密。加密系统sch和解密系统sdch可以被组合,以便汇聚这两个系统的某些元件。
第一逻辑电路gen1被配置为从唯一硬件密钥huk和至少一条信息inf生成唯一导出密钥hik,该至少一条信息涉及待加密的秘密密钥的执行上下文和/或使用。
在安全硬件环境ems中记录唯一硬件密钥huk。该唯一硬件密钥huk与集成电路相关联。唯一硬件密钥huk在安全硬件环境ems外侧是未知的,并且在此环境外侧不可以被使用。唯一硬件密钥huk可以通过物理不可克隆功能(以下还被称为首字母缩写“puf”)获得。
具体地,信息inf可以涉及待加密的秘密密钥的执行上下文(安全/非安全执行上下文、特权/非特权执行上下文)、此秘密密钥的使用(例如,使用持续时间、共享类型)以及需要使用此秘密密钥的软件的使用。这个最后的使用可以通过“信任根”获得。
因此,第一逻辑电路gen1包括第一输入,被配置为接收所述唯一硬件密钥huk。
第一逻辑电路gen1还包括第二输入,被配置为接收涉及待加密的秘密密钥的执行上下文和/或使用的所述至少一条信息inf。
第一逻辑电路gen1还可以根据针对给定集成电路的给定使用和/或执行上下文,生成唯一导出密钥hik。因此,对于给定集成电路,第一逻辑电路gen1可以针对每个执行上下文和每个使用生成不同的唯一导出密钥hik。
唯一导出密钥hik在安全硬件环境ems外侧不可访问。由此,软件不可以读取唯一导出密钥hik,但是可以在安全硬件环境ems中使用它。
加密系统sch进一步包括第一加密设备ch1,被配置为对秘密密钥sk执行对称加密操作。
特别地,至少一个秘密密钥sk在集成电路的寿命期间仅被提供一次,并在其使用之后被删除。具体地,秘密密钥sk可以是仅由集成电路的制造商(具体地,原始设备的制造商)已知的密钥。因此,这个制造商可以使用第一加密设备ch1对秘密密钥sk进行加密。
备选地,秘密密钥sk可以通过随机数生成器来创建。
使用由第一逻辑电路gen1生成的唯一导出密钥hik来执行秘密密钥sk的对称加密操作。特别地,秘密密钥sk可以使用高级加密标准aes进行加密,特别是根据ecb(电子代码簿)模式。
由于秘密密钥sk的加密是使用唯一导出密钥hik执行的,因此秘密密钥sk的加密间接地取决于唯一硬件密钥huk、并且间接地取决于与该秘密密钥关联的使用和/或执行上下文。因此这样的加密是鲁棒的。
在该加密操作结束时,第一加密设备ch1被配置为传递由此操作产生的经加密秘密密钥e_sk。
经加密秘密密钥e_sk可以被记录在安全硬件环境ems外侧的第一输出寄存器dout1中。然后,该经加密秘密密钥可以由软件从输出寄存器恢复。然后,软件可以在安全硬件环境外侧操纵该经加密秘密密钥,但是软件不可以直接操纵未加密秘密密钥sk。未加密秘密密钥sk不可以由软件读取。
因此,第一输出寄存器dout1并不存储未加密秘密密钥sk,而仅存储那些经加密秘密密钥。因此,秘密密钥sk的存储是安全的。
这样的电子电路可以避免使用专用于密钥管理的软件。因此,这种电子电路确保了经改善的密钥的安全管理。
此外,集成电路还包括安全硬件环境ems外侧的第一输入寄存器din1。待加密的二进制数据可以被记录在该第一输入寄存器中。
加密系统sch进一步包括第二加密设备ch2。该第二加密设备ch2被配置为对来自第一输入寄存器din1的二进制数据dat执行对称加密操作。具体地,第二加密设备ch2被配置为使用秘密密钥sk对二进制数据dat进行加密。
因此,第二二进制电路传递由该对称加密操作产生的经加密二进制数据e_dat。
集成电路包括在安全硬件环境ems外侧的第二输出寄存器dout2。经加密二进制数据e_dat可以被记录在该第二输出寄存器dout2中。然后,该经加密二进制数据e_dat可以由访问第二输出寄存器dout2的软件在安全硬件环境外侧操纵。
在图3中示出了一种用于对秘密密钥sk进行加密的方法。在步骤20中,在密钥提供阶段期间秘密密钥sk被提供至加密系统。并行地,在步骤21中,由第一逻辑电路gen1使用唯一硬件密钥huk和涉及秘密密钥sk的使用和/或执行上下文的信息inf生成唯一导出密钥hik。在步骤22中,在步骤20中生成的密钥sk由第一加密设备ch1通过使用在步骤21中生成的唯一导出密钥hik的对称加密操作来加密。在步骤23中,经加密秘密密钥e_sk被记录在第一输出寄存器dout1中。一旦由系统sch加密,密钥sk就可以被删除。
与秘密密钥sk的加密过程并行地,还在图3中表示了可以实现的二进制数据dat加密过程。在步骤24中,从第一输入寄存器din1提取二进制数据dat。在步骤25中,二进制数据dat由第二加密设备ch2通过使用在步骤20中生成的秘密密钥sk的对称加密操作来加密。在步骤26中,经加密二进制数据e_dat被记录在第二输出寄存器dout2中。
现在参见图4。集成电路还包括安全硬件环境ems外侧的第二输入寄存器din2。经加密秘密密钥e_sk可以被记录在该第二输入寄存器din2中。具体地,经加密秘密密钥e_sk是先前已经由第一加密设备ch1加密的秘密密钥sk。这些经加密秘密密钥e_sk可以已经在安全硬件环境外侧由软件同时操纵。
解密系统sdch包括第一解密设备dch1。第一解密设备dch1被配置为对来自第二输入寄存器din2的经加密秘密密钥e_sk进行解密。具体地,第一解密设备dch1被配置为使用由第一逻辑电路gen1生成的唯一导出密钥hik进行解密操作。
更具体地,经加密秘密密钥e_sk可以使用解密aes来解密,特别是根据ecb模式。
因此,第一解密设备dch1被配置为传递与已经在第二输入设备中生成经加密秘密密钥e_sk的秘密密钥sk相同的秘密密钥sk。因此,对于经加密秘密密钥e_sk的解密,使用与用于秘密密钥sk的加密相同的唯一导出密钥hik也很重要。特别地,经加密秘密密钥e_sk不可以通过与用于秘密密钥sk的加密的集成电路不同的集成电路来解密。
经解密秘密密钥sk在安全硬件环境ems外侧是不可访问的。
当加密系统sch和解密系统sdch被组合时,加密系统的第一解密设备dch1和第一加密设备ch1可以由同一设备形成。然后,该设备适合于对密钥sk进行加密以及对经加密秘密密钥e_sk进行解密。
解密系统sdch还包括被称为密钥寄存器sk_reg的寄存器,在该寄存器中记录了由第一解密设备dch1解密的秘密密钥sk。
集成电路还包括安全硬件环境ems外侧的第三输入寄存器din3。经加密二进制数据e_dat可以被记录在该第三输入寄存器din3中。具体地,经加密二进制数据e_dat是先前已经由第二加密设备ch2加密的二进制数据dat。这些经加密二进制数据e_dat可以已经在安全硬件环境外侧由软件同时操纵。
解密系统sdch进一步包括第二解密设备dch2。该第二解密设备dch2被配置为对来自第三输入寄存器din3的经加密二进制数据e_dat进行解密。具体地,第二解密设备dch2被配置为使用由第一解密设备dch1解密、并且记录在密钥寄存器sk_reg中的秘密密钥sk来进行解密操作。
因此,第二解密设备dch2被配置为传递经解密二进制数据dat,该经解密二进制数据dat与经加密的、被存储在第三输入寄存器din3中的经加密二进制数据e_dat的二进制数据相同。此外,经加密二进制数据e_dat不可以被由与用于对二进制数据dat进行加密的集成电路不同的集成电路解密。实际上,这些二进制数据dat已经使用秘密密钥sk加密。然后,该秘密密钥sk被加密,以便获得经加密秘密密钥e_sk。为了对经加密秘密密钥e_sk进行解密,必须使用与对密钥sk进行加密所使用的密钥相同的密钥hik。然而,密钥hik具体取决于与集成电路相关联的唯一硬件密钥huk。因此,集成电路可以被用作反克隆系统,以便防止经加密二进制数据e_dat能够被另一集成电路解密。
集成电路还包括安全硬件环境ems外侧的第三输出寄存器dout3。由第二解密设备dch2传递的经解密二进制数据dat可以用可以由软件使用的方式,被记录在此第三输出寄存器dout3中。
当加密系统sch和解密系统sdch被组合时,加密系统sch的第二解密设备dch2和第二加密设备ch2可以由同一设备形成。然后,该设备能够对二进制数据dat进行加密以及对经加密二进制数据e_dat进行解密。
图5中示出了一种用于对经加密秘密密钥e_sk进行解密的方法。在步骤27中,从第二输入寄存器din2中提取经加密秘密密钥e_sk。在步骤28中,由第一逻辑电路gen1使用唯一硬件密钥huk以及涉及秘密密钥的使用和/或执行上下文的信息inf生成唯一导出密钥hik。在步骤29中,由第一解密设备dch1通过使用在步骤28中生成的唯一导出密钥hik的解密操作,对在步骤27中提取的经加密秘密密钥e_sk进行解密。在步骤30中,经解密秘密密钥sk被记录在密钥寄存器sk_reg中。
然后也在图5中示出了,可以实现的是用于对经加密二进制数据e_dat进行解密的方法。在步骤31中,从第三输入寄存器din3中提取经加密二进制数据e_dat。在步骤32中,经加密二进制数据e_dat由第二解密设备dch2使用在步骤30中被记录在密钥寄存器sk_reg中的秘密密钥sk解密。在步骤33中,经解密二进制数据dat被记录在第三输出寄存器dout3中。
类似地,可以使用根据如上所述的解密方法,从经加密秘密密钥e_sk解密的秘密密钥sk来实现二进制数据dat的加密方法。然后,由加密设备ch2对二进制数据进行加密,当加密系统sch和解密系统sdch被组合时,该加密设备ch2也可以是解密设备dch2。
如上文所描述的集成电路可以用在片上系统中,该片上系统被配置为根据具有不同安全等级和/或机密性的执行上下文来执行软件。
然后,如果在秘密密钥sk被记录在密钥寄存器sk_reg中之后由软件解除对秘密密钥sk的保护,并且如果密钥不专用于单个执行上下文,则集成电路被配置为根据这些执行上下文来授权秘密密钥sk的使用。因此,集成电路允许给定的软件管理可由具有不同执行上下文的软件使用的无限数量的未知秘密密钥sk。
此外,当秘密密钥sk被保护时检测到新的执行上下文时,或者当秘密密钥sk对于给定的执行上下文是独有的并且检测到新的执行上下文时,集成电路还被配置为删除密钥寄存器sk_reg的秘密密钥sk。
因此,集成电路被配置为检测秘密密钥的误用,换言之,当秘密密钥未被授权时对执行上下文的修改。
这样的系统允许基于在安全硬件环境ems中的密钥的管理,由不同执行上下文的软件使用密钥sk,使得能够确保对秘密密钥sk的保护。这样的密钥管理使得能够将秘密密钥sk用于不同的执行上下文。具体地,秘密密钥sk可以由软件使用,但是对于软件仍然是未知的。
更具体地,这样的系统使得可以通过执行上下文来隔离秘密密钥sk,并且只有在该使用被授权时才允许在其他执行上下文中使用这些秘密密钥。
此外,集成电路被配置为在秘密密钥sk被盗用时,换言之,一旦密钥的误用被检测到,集成电路就将该秘密秘钥删除。
1.一种集成电路,包括:
安全硬件环境,被配置为记录唯一硬件密钥,并且所述安全硬件环境包括:
第一逻辑电路,被配置为从所述唯一硬件密钥以及至少一条信息生成唯一导出密钥,其中所述至少一条信息涉及以下一项或多项:秘密密钥的执行上下文以及使用;以及
第一加密设备,被配置为使用所述唯一导出密钥对所述秘密密钥进行对称加密操作,以及在所述安全硬件环境外侧传递由于所述对称加密操作的执行而产生的经加密秘密密钥。
2.根据权利要求1所述的集成电路,其中所述安全硬件环境进一步包括:第二加密设备,被配置为使用所述秘密密钥对二进制数据进行进一步对称加密操作,以及在所述安全硬件环境外侧传递由于所述进一步对称加密操作的执行而产生的经加密二进制数据。
3.根据权利要求2所述的集成电路,其中所述安全硬件环境进一步包括:第一解密设备,被配置为使用所述唯一导出密钥对经加密秘密密钥进行解密操作,以及传递由于所述操作解密的执行而产生的秘密密钥。
4.根据权利要求3所述的集成电路,其中所述第二加密设备还被配置为使用由所述第一解密设备传递的所述秘密密钥,对未加密二进制数据进行加密操作,以及传递由于所述加密操作的进行而产生的加密二进制数据。
5.根据权利要求4所述的集成电路,其中所述安全硬件环境进一步包括:密钥寄存器,被配置为记录由所述第一解密设备生成的所述秘密密钥,以及使得能够将经记录的所述秘密密钥传输至所述第二加密设备,以便对未加密二进制数据进行加密。
6.根据权利要求3所述的集成电路,其中所述安全硬件环境进一步包括:第二解密设备,被配置为使用由所述第一解密设备传递的所述秘密密钥,对经加密二进制数据执行进一步解密操作,以及传递由于所述进一步解密操作的进行而产生的未加密二进制数据。
7.根据权利要求6所述的集成电路,其中所述安全硬件环境进一步包括:密钥寄存器,被配置为记录由所述第一解密设备生成的每个秘密密钥,并且使得能够将每个经记录秘密密钥传输到所述第二解密设备,以便对所述经加密二进制数据进行解密。
8.一种片上系统,包括:
根据权利要求5所述的集成电路;
其中,所述片上系统被配置为根据具有不同安全级别或机密级别的执行上下文来执行软件;以及
其中,所述集成电路被配置为:如果在所述秘密密钥被记录在所述密钥寄存器中之后所述秘密密钥的保护由软件移除,以及如果所述密钥不是单个执行上下文独有的,则根据所述执行上下文来授权所述秘密密钥的使用。
9.根据权利要求8所述的片上系统,其中所述集成电路被配置为响应于以下一项或多项,而从所述密钥寄存器中删除所述秘密密钥:
在所述秘密密钥被保护时检测到新的执行上下文时;以及
在所述秘密密钥对于给定执行上下文是独有的、并且检测到新的执行上下文时。
10.一种片上系统,包括:
根据权利要求7所述的集成电路;
其中,所述片上系统被配置为根据具有不同安全级别或机密级别的执行上下文来执行软件;以及
其中,所述集成电路被配置为:如果在所述秘密密钥被记录在所述密钥寄存器中之后所述秘密密钥的保护由软件移除,以及如果所述密钥不是单个执行上下文独有的,则根据所述执行上下文来授权所述秘密密钥的使用。
11.根据权利要求10所述的片上系统,其中所述集成电路被配置为响应于以下一项或多项,从所述密钥寄存器中删除所述秘密密钥:
在所述秘密密钥被保护时检测到新的执行上下文时;以及
在所述秘密密钥对于给定执行上下文是独有的、并且检测到新的执行上下文时。
12.一种方法,包括:
在安全硬件环境中通过以下步骤对秘密密钥进行加密:
根据记录在所述安全硬件环境中的唯一硬件密钥、以及至少一条信息生成唯一导出密钥,其中所述至少一条信息涉及以下一项或多项:所述秘密密钥的执行上下文和使用;以及
使用生成的所述唯一导出密钥对所述秘密密钥进行对称加密。
13.根据权利要求12所述的方法,进一步包括:
通过以下步骤在所述安全硬件环境中对二进制数据进行加密:
使用所述秘密密钥对所述二进制数据进行对称加密,以便获得经加密二进制数据。
14.一种方法,包括:
在安全硬件环境中通过以下步骤对经加密秘密密钥进行解密:
根据记录在所述安全硬件环境中的唯一硬件密钥、以及至少一条信息生成唯一导出密钥,其中所述至少一条信息涉及以下一项或多项:所述秘密密钥的执行上下文和使用;以及
使用生成的所述唯一导出密钥解密对所述经加密秘密密钥进行解密。
15.根据权利要求14所述的方法,进一步包括:
在所述安全硬件环境中对二进制数据进行解密,其中通过以下步骤使用所述秘密密钥对所述二进制数据进行加密:
使用根据权利要求14所述的解密步骤,对所述经加密秘密密钥进行解密,以便获得适于在解密所述经加密二进制数据时使用的经恢复秘密密钥;以及
使用所述经恢复秘密密钥对所述经加密二进制数据进行解密。
技术总结