当前位置: 首页 > 专利查询>罗伯特专利>正文

用于以安全方式启动计算单元的方法技术

技术编号:36285159 阅读:55 留言:0更新日期:2023-01-13 09:55
本发明专利技术涉及一种用于以安全方式启动计算单元(50)的方法,所述计算单元包括多个计算核(K1、K2...KL;54、58),其中启动软件,所述软件包括多个计算机程序部分,所述计算机程序部分构成一个或多个计算机程序(SW1、SW2...SWN),其中所述方法包括:执行(120)所述计算机程序部分的完整性检验,其中所述完整性检验在至少部分地同时使用所述多个计算核中的至少两个计算核的情况下并行化地进行;并且如果构成所述一个或多个计算机程序(SW1、SW2...SWN)中的一个计算机程序的计算机程序部分的完整性已经被确认,则通过所述计算单元(50)执行(140)该计算机程序。该计算机程序。该计算机程序。

【技术实现步骤摘要】
用于以安全方式启动计算单元的方法


[0001]本专利技术涉及用于以安全方式启动包括多个计算核的计算单元的方法以及用于执行所述方法的计算单元和计算机程序。

技术介绍

[0002]计算单元的安全架构的重要部分在于防止受操纵的软件、即受操纵的计算机程序的执行。为此,可以保护由计算单元执行的软件、尤其是固件的完整性,即可以防止或至少识别软件的操纵或改变。为了实现这一点,可以将软件存储到一次性可编程存储器(OTP存储器;英语:one time programmable memory)中。当计算单元是车辆或其他机器的控制设备(或包含在这样的控制设备中的微控制器)时,确保所执行的软件或固件的完整性尤其是重要的,因为控制设备的资源在那里是受限制的并且由操纵引起的误操作可能对环境、例如车辆的安全性或由机器加工的构件产生直接影响。

技术实现思路

[0003]根据本专利技术,提出具有独立专利权利要求的特征的用于以安全方式启动包括多个计算核的计算单元的方法以及用于执行所述方法的计算单元和计算机程序。有利的设计方案是从属权利要求以及随后描述的主题。
[0004]本专利技术利用在启动软件之前执行软件完整性检验的措施,其中并行化地执行完整性检验。这是有利的,因为防止未经检验的、可能受操纵的软件的执行,并且同时保证与顺序检验软件相比而言短的启动时间,其中由于可以放弃使用一次性可编程存储器,因此可以对软件进行重新编程。这尤其是适用于嵌入式系统、例如车辆或其他机器的控制设备,在这些嵌入式系统中通常必须遵守安排(bemessen)得很紧密的启动时间或引导时间(Bootzeit)。
[0005]在用于以安全方式启动包括多个计算核的计算单元的方法中,启动软件,所述软件包括多个计算机程序部分,所述计算机程序部分构成一个或多个计算机程序。也即,每个计算机程序彼此无关地由一个计算机程序部分构成或由多个计算机程序部分构成。术语“计算机程序”在这里被用于在被执行时实施计算单元的实际功能的那些计算机程序,即计算机程序相应地被编程。这些计算机程序因此构成计算单元的软件,所述计算单元尤其可以是微控制器,其中在这种情况下,软件或计算机程序被称为固件。
[0006]该方法包括:执行所述计算机程序部分的完整性检验,其中所述完整性检验在至少部分地同时地使用所述多个计算核中的至少两个计算核的情况下并行化地进行,并且如果构成所述一个或多个计算机程序中的计算机程序的计算机程序部分的完整性已经被确认,则通过所述计算单元执行所述计算机程序。即使未明确提及,这个最后步骤当然也针对其计算机程序部分得以确认的所有计算机程序被执行。“执行计算机程序”因此可以被解读为“执行至少一个计算机程序”。如果计算机程序部分的完整性未被确认(要么因为完整性检验失败要么因为(尚)未促使进行完整性检验),则该方法尤其是可以包括:禁止或防止执
行包括所述未被确认的计算机程序部分的所述多个计算机程序之一或所述一个计算机程序,。
[0007]在这里,术语“计算核”在彼此无关的计算核或处理器核的意义上被使用。这些计算核可以是执行程序代码以实施特定功能、例如执行完整性检验的“通用(Allzweck)”计算核,或者也可以是在硬件中实施特定功能(尤其是密码功能)的硬件计算核、例如硬件加速器核。所述可能性中的第二可能性具有以下优点:可以实现高速度,在第一可能性的情况下,可以针对多种不同的功能(与不同程序代码相对应)使用计算核(例如在完整性检验之后用于执行软件)。两种可能性的组合也是可设想的。然而,优选地使用硬件计算核或硬件加速器核。
[0008]完整性检验优选地借助于数字签名和/或消息认证码进行。这些是本身已知的密码方法,所述密码方法可以被用于进行完整性检验。在完整性检验时,尤其是检验存储有所述计算机程序部分的存储区域(例如每个计算机程序部分存储在分配给其的存储区域中)的完整性,即以如下方式检验:存储于其中的数据是否不变。
[0009]简称为MAC(英语:Message Authentication Code)的消息认证码允许检验消息或数据的完整性和真实性(Authentizit
ä
t),所述数据在这里是计算机程序部分或与所述计算机程序部分相对应的存储在存储器的存储区域中的数据。在此,MAC算法使用一方面要检验的数据和另一方面秘密密钥作为输入对,并且从该对中计算数据的被称为MAC的校验和。如果数据发生了变化,则可以通过与较早计算的参考MAC进行比较来确定这一点。在这里存在的应用中,因此可以确定出:要检验的存储区域(每个要检验的存储区域在这里例如对应于计算机程序部分)的内容是未改变还是已经改变。如果已经改变,则必须假定存储在存储区域中的计算机程序部分或其他数据已被操纵。MAC算法对于本领域技术人员而言本身是已知的。优选地规定,使用密钥散列消息认证码(HMAC;对于可能的实施方案参见例如NIST标准FIPS 198或RFC 2104)和/或基于密码的消息认证码(CMAC;对于可能的实施方案参见例如NIST特种出版物(Special Publication)800

38B)。
[0010]数字签名可以通过非对称密码系统来实现。在此,在使用秘密(私有)密钥的情况下借助于签名功能为要签名的数据(在这里计算机程序部分或存储区域中的相应存储数据)计算称为数字签名的值。在使用公钥(public key)的情况下通过验证功能可以检验:相对应经签名的数据而言数据是否已被改变。已知的签名方法例如是RSA(Rivest

Shamir

Adleman)或DSA(数字签名算法);参见例如NIST标准FIPS 186

4。
[0011]在两种情况下,使用密码算法,所述密码算法可以是可并行化的,使得单个计算机程序部分的完整性检验可以被划分(aufteilen)到同时并行工作的多个计算核上。示例是块密码(Block

Cipher),所述块密码在密码块链模式下工作(在解密时可并行化)、在计数器模式下工作或在Galois计数器模式下工作。后者具有其他优点:因此不仅可以保障完整性而且可可以保障机密性(Vertraulichkeit)。同样,在相应的算法中使用的密码原语(kryptographische Primitive)可以是可并行化的。示例有:SHA3(用于散列计算)、ECC运算(用于公钥方法)或Farfalle(例如用于AEAD密码)。
[0012]数字签名和消息认证码也可以以组合方式被使用。例如可以借助于MAC算法为计算机程序部分(或存储有所述计算机程序部分的存储区域)计算MAC,并且可以借助于签名函数从该MAC中计算签名,然后通过相应的验证函数对所述签名进行验证或检验。
[0013]也可以共同地检验尤其是属于相同计算机程序的一定数目(尤其是大于1)的计算机程序部分(或计算机程序部分的集合)的完整性,其中以嵌套方式或基于具有多个层的树状结构使用消息认证码和/或数字签名。在此,首先确定第一中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于以安全方式启动计算单元(50)的方法,所述计算单元包括多个计算核(K1、K2、...、KL;54、58),其中启动软件,所述软件包括多个计算机程序部分,所述计算机程序部分构成一个或多个计算机程序(SW1、SW2、...、SWN),所述方法包括:执行(120)所述计算机程序部分的完整性检验,其中所述完整性检验在至少部分地同时地使用所述多个计算核中的至少两个计算核的情况下并行化地进行;如果构成所述一个或多个计算机程序(SW1、SW2、...、SWN)中的计算机程序的计算机程序部分的完整性已经被确认,则通过所述计算单元(50)执行(140)所述计算机程序。2.根据权利要求1所述的方法,其中所述方法包括:如果计算机程序部分的完整性未被确认,则禁止(150)执行包括未被确认的所述计算机程序部分的所述一个计算机程序或所述多个计算机程序(SW1、SW2、...、SWN)之一。3.根据前述权利要求中任一项所述的方法,其中所述完整性检验借助于数字签名和/或消息认证码进行。4.根据前述权利要求中任一项所述的方法,所述方法包括:通过所述计算单元执行(110)、尤其是在启动所述计算单元(50)之后立即执行引导程序(BP),所述引导程序优选地至少部分地存储在不可改变的存储区域中和/或存储在防止改变的存储区域中;其中所述引导程序(BP)被设立用于促使进行所述计算机程序部分的完整性检验并且促使如下计算机程序(SW1、SW2、...、SWN)的执行,其中针对所述计算机程序而言构成所述计算机程序的计算机程序部分的完整性已被确认。5.根据前述权利要求中任一项所述的方法,其中所述计算单元(50)是微控制器。6.根据前述权利要求中任一项所述的方法,其中所述完整性检验通过可并行化的密码算法进行;其中单个计算机程序部分的完整性检验至少部分地同时地在不同的计算核(K1、K2、...、KL;54、58)中进行。7.根据前述权利要求中任一项所述的方法,其中构成同一计算机程序(SW1、SW2、...、SWN)的至少两个不同的程序部分的完整性检验以时间重叠的方式在至少两个不同的计算核(K1、K2、...、KL;54、58)中进行。8.根据前述权利要求中任一项所述的方法,其中所述多个计算机程序(SW1、SW2、...、SWN)中的所述一个或至少一个计算机程序由如下数量的计算机程序部分构成,其中所述数量等于计算核(K...

【专利技术属性】
技术研发人员:F
申请(专利权)人:罗伯特
类型:发明
国别省市:

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

1