用于对程序进行认证的方法和对应的集成电路技术

技术编号:24036070 阅读:44 留言:0更新日期:2020-05-07 01:56
存储器存储待由微处理器执行的程序。该程序包括第一程序部分和第二程序部分。认证器被配置为对所述程序进行认证,并且包括:模块,所述模块在所述微处理器的外部,并且被配置为在所述微处理器不活动时对所述第一程序部分进行认证。如果所述模块已经对所述第一程序部分进行了认证,则所述认证器进一步激活所述微处理器以执行所述第一程序部分,并且通过使用所述第一程序部分中的指令来对所述第二程序部分进行认证。如果所述微处理器已经对所述第二程序部分进行了认证,则所述微处理器执行所述第二程序部分。

Methods and corresponding integrated circuits for program certification

【技术实现步骤摘要】
用于对程序进行认证的方法和对应的集成电路优先权要求本申请要求2018年10月26日提交的法国专利申请第1859911号的优先权权益,其内容在法律允许的最大程度下通过引用的方式全部并入本文。
实施方式和实施例涉及对数据的保护,例如,对在集成电路的内部存储器中的程序代码中的单词或者指令的保护。
技术介绍
集成电路,特别是配备有包括敏感信息的存储器的那些集成电路,必须在最大可能程度上受到保护以免受攻击,特别是旨在揭露存储的数据的攻击。攻击者例如可以在集成电路的内部存储器中插入他自己的程序或者修改现有程序。需要检测对修改在集成电路的内部的存储器中的程序代码的尝试,该程序代码旨在由集成电路的处理单元执行,特别是但不限于:微控制器(例如,STMicroelectronics所销售的系列的微控制器)的处理单元或者微处理器。因此,寻求保护集成电路免受旨在修改程序以访问敏感数据的攻击是特别有用的。还需要能够对在集成电路的内部存储器中的程序进行认证。根据实施方式和实施例,提出利用易于实施并且保证提高的安全性的解决方案来满足该需求。
技术实现思路
根据一个方面,提出了一种用于对被存储在存储器中的程序进行认证的方法,所述程序旨在由微处理器执行并且包括第一程序部分和第二程序部分。该方法包括:通过位于所述微处理器外部的模块来对所述第一程序部分执行第一认证,微处理器是不活动的;如果所述第一程序部分被进行了认证,则激活所述微处理器,并且通过微处理器来执行所述第一程序部分,包括:对所述第二程序部分进行第二认证;以及如果第二部分被进行了认证,则通过微处理器来执行所述第二程序部分。换句话说,执行两次认证。第一认证由在微处理器的外部的硬件计算单元执行。例如,在最初,用VHDL(用于“VHSIC硬件描述语言”)来对硬件计算单元的架构和行为进行编码,并且继而进行合成以获得执行所需功能的硬件模块,例如,在这种情况下,被配置为执行计算的模块。所述模块恢复第一程序部分中的数据以对其进行认证。如果所述第一程序部分被进行了认证,则模块通过其编码指令来激活微处理器。然后执行第二认证。微处理器从存储器恢复第一程序部分中的指令以执行它们。第一程序部分中的由微处理器执行的指令使得可以对第二程序部分进行认证。如果第二部分被进行了认证,则微处理器恢复第二程序部分中的指令并且执行它们。执行两次认证使得可以增强包括所述程序的系统的安全性。另外,使用在微处理器外部的硬件计算单元使得可以提高所述模块的指令的执行速度并且因此,可以更快地执行第一认证。根据一种实施方式,该方法包括:在第一认证之前,在所述模块中存储第一程序部分的第一标识符,并且第一认证包括:对第一程序部分的第一新标识符进行第一计算,以及将第一标识符与第一新标识符相比较,如果第一标识符和第一新标识符相同,则第一程序部分被认为是被进行了认证。“第一标识符”被理解为是指例如,用于标识第一程序部分的指纹。如果在第一程序部分中修改了数据项,则指纹发生变化。因此,在所述第一计算之后获得与新的第一标识符对应的新的第一指纹。如果还未在第一程序部分中修改数据项,则新的第一标识符不发生变化。因此,第一标识符和第一新标识符相同使得可以确认第一程序部分还未被修改。根据一种实施方式,第一计算包括:实施第一散列函数,该第一散列函数将所述第一程序部分作为输入参数并且传递所述第一新标识符作为输出。第一散列函数使得可以计算第一部分的与新的第一标识符对应的新的第一指纹。可以使用任何密码安全的散列函数,例如,本领域的技术人员已知的名称为SHA256的函数。根据一种实施方式,该方法包括:在第一认证之前,在第二程序部分中存储第二程序部分的第二标识符,并且第二认证包括:对第二程序部分的第二新标识符进行第二计算,以及将第二标识符与第二新标识符相比较,如果第二标识符和第二新标识符相同,则第二程序部分被认为是被进行了认证。“第二标识符”被理解为是指例如,用于标识第二程序部分的指纹。如果在第二程序部分中修改了数据项,则指纹发生变化。因此,在所述第二计算之后获得与新的第二标识符对应的新的第二指纹。如果还未在第二程序部分中修改数据项,则新的第二标识符不发生变化。因此,第二标识符和第二新标识符相同使得可以确认该第二程序部分还未被修改。根据一种实施方式,第二计算包括:实施第二散列函数,第二散列函数将所述第二程序部分和密钥作为输入参数并且传递所述第二新标识符作为输出。第二散列函数使得可以计算第二程序部分的与第二新标识符对应的新的第二指纹。可以使用将以下两个参数作为输入的任何密码安全的散列函数:程序的第二部分和密钥,例如,硬件密钥。第一散列函数和第二散列函数可以相同或者不同。根据一种实施方式,所述密钥被存储在受保护的模块中,并且仅针对所述第一程序部分可访问,并且一旦第二认证已经结束,就使所述密钥不可访问。使密钥不可访问以避免攻击者随后使用它是有利的。根据另一方面,提出了一种系统,其包括:微处理器;存储器,该存储器被配置为存储程序,该程序旨在由微处理器执行并且包括第一程序部分和第二程序部分;以及认证装置,该认证装置被配置为对程序进行认证并且包括:模块,该模块在微处理器的外部,并且被配置为对所述第一程序部分进行认证,所述微处理器是不活动的;以及微处理器被配置为:如果所述模块已经对所述第一部分进行了认证,则执行所述第一程序部分并且通过使用第一程序部分中的指令来对所述第二程序部分进行认证,并且被配置为:如果微处理器已经对所述第二程序部分进行了认证,则执行第二程序部分。根据一个实施例,所述模块被配置为在对第一部分进行认证之前存储第一程序部分的第一标识符,并且被配置为:对第一程序部分的第一新标识符执行第一计算,并且将第一标识符与第一新标识符相比较,如果第一标识符和第一新标识符相同,则第一程序部分被认为是由所述模块进行了认证。根据一个实施例,所述模块被配置为:实施第一散列函数,第一散列函数将所述第一程序部分作为输入参数并且传递第一新标识符作为输出。根据一个实施例,第二程序部分包括第二标识符,微处理器被配置为:对第二新标识符执行第二计算,并且将第二标识符与第二新标识符相比较,如果第二标识符和第二新标识符相同,则第二程序部分被认为是由微处理器进行了认证。根据一个实施例,微处理器被配置为:实施第二散列函数,第二散列函数将所述第二程序部分和密钥作为输入参数并且传递第二新标识符作为输出。根据一个实施例,该系统包括:受保护的模块,该受保护的模块被配置为存储所述密钥,所述密钥仅微处理器可访问,微处理器被配置为:一旦对第二部分的认证已经结束,就使密钥不可访问。附图说明基于阅读对实施方式和实施例以及附图的完全非限制性的详细描述,本专利技术的其他优点和特征将变得显而易见,其中:图1示意性地图示了系统;图2示意性本文档来自技高网...

【技术保护点】
1.一种用于对被存储在存储器中的程序进行认证的方法,所述程序被配置为由微处理器执行并且包括第一程序部分和第二程序部分,所述方法包括:/n在所述微处理器处于不活动模式的情况下,通过位于所述微处理器外部的模块来对所述第一程序部分执行第一认证;/n如果所述第一程序部分由所述模块进行了认证,则激活所述微处理器以执行所述第一程序部分,包括:对所述第二程序部分执行第二认证;以及/n如果所述第二部分被进行了认证,则通过所述微处理器来执行所述第二程序部分。/n

【技术特征摘要】
20181026 FR 18599111.一种用于对被存储在存储器中的程序进行认证的方法,所述程序被配置为由微处理器执行并且包括第一程序部分和第二程序部分,所述方法包括:
在所述微处理器处于不活动模式的情况下,通过位于所述微处理器外部的模块来对所述第一程序部分执行第一认证;
如果所述第一程序部分由所述模块进行了认证,则激活所述微处理器以执行所述第一程序部分,包括:对所述第二程序部分执行第二认证;以及
如果所述第二部分被进行了认证,则通过所述微处理器来执行所述第二程序部分。


2.根据权利要求1所述的方法,包括:在执行所述第一认证之前,在所述模块中存储所述第一程序部分的第一标识符,并且其中执行所述第一认证包括:对所述第一程序部分的第一新标识符进行第一计算,以及将所述第一标识符与所述第一新标识符相比较,其中如果所述第一标识符和所述第一新标识符相同,则所述第一认证对所述第一程序部分进行了认证。


3.根据权利要求2所述的方法,其中所述第一计算包括:实施第一散列函数,所述第一散列函数将所述第一程序部分作为输入参数并且传递所述第一新标识符作为输出。


4.根据权利要求1所述的方法,还包括:在执行所述第一认证之前,在所述第二程序部分中存储所述第二程序部分的第二标识符,并且其中执行所述第二认证包括:对所述第二程序部分的第二新标识符进行第二计算,以及将所述第二标识符与所述第二新标识符相比较,其中如果所述第二标识符和所述第二新标识符相同,则所述第二认证对所述第二程序部分进行了认证。


5.根据权利要求4所述的方法,其中所述第二次计算包括:实施第二散列函数,所述第二散列函数将所述第二程序部分和密钥作为输入参数并且传递所述第二新标识符作为输出。


6.根据权利要求5所述的方法,其中所述密钥被存储在受保护的模块中,并且所述方法还包括:仅针对所述第一程序部分允许对所述密钥的访问,并且还包括:一旦所述第二认证已经结束,就阻止对所述密钥的访问。


7.一种系统,包括:
微处...

【专利技术属性】
技术研发人员:V·贝特洛L·戴内彻
申请(专利权)人:意法半导体鲁塞公司意法半导体大西部公司
类型:发明
国别省市:法国;FR

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

1