买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】算法的安全执行_意法半导体(鲁塞)公司;质子世界国际公司_201611045427.9 

申请/专利权人:意法半导体(鲁塞)公司;质子世界国际公司

申请日:2016-11-24

公开(公告)日:2021-05-07

公开(公告)号:CN107451471B

主分类号:G06F21/55(20130101)

分类号:G06F21/55(20130101)

优先权:["20160531 FR 1654876"]

专利状态码:有效-授权

法律状态:2021.05.07#授权;2018.01.05#实质审查的生效;2017.12.08#公开

摘要:本公开涉及算法的安全执行。一种算法执行方法包括,由处理单元执行算法的第一执行,将待写入至存储器中的至少一个第一结果发送至存储器管理电路,以及将所述第一结果存储至易失性存储器的第一区域中。方法也包括由处理单元执行算法的第二执行,将待写入存储器中的至少一个第二结果发送至存储器管理电路,以及借由存储器管理电路对于第二执行中至少一个第二结果应用处理,不同于对于第一执行中至少一个第一结果所应用的处理。

主权项:1.一种执行算法的方法,包括:由处理单元实现所述算法的第一执行以产生第一结果;使用存储器管理电路识别待被写入存储器的至少一个第一结果;将所述至少一个第一结果存储至易失性存储器的第一区域中;由所述处理单元实现所述算法的第二执行以产生第二结果;使用所述存储器管理电路识别待被写入所述存储器的至少一个第二结果;以及由所述存储器管理电路对于所述第二执行中至少一个第二结果应用与对于所述第一执行中至少一个第一结果所应用的不同的处理,其中,所述不同处理包括:将由所述处理单元所发送的、所述至少一个第二结果的存储器写请求转换为对于所述至少一个第一结果的存储器读取请求。

全文数据:算法的安全执行[0001]本申请要求享有2016年5月31日提交的法国专利申请No.1654876的优先权权益。技术领域[0002]本公开涉及算法的执行,并且更特别地涉及一种安全计算函数。背景技术[0003]集成电路可以包括被视作敏感地关注它们所处理数据的安全性诸如认证密钥、签名等或者它们所使用的算法诸如加密或解密算法的电路或数据。这种信息不应由第三方或由未授权电路通信或者可检测。[0004]因此需要执行的完整性,尤其是针对故障注入攻击保护执行的完整性,故障注入攻击扰乱操作以推理出秘密信息。[0005]针对故障注入攻击保护的解决方案包括提供被设置用于对相同输入数据并行操作的两个处理装置。通过比较由两个装置产生的结果,可以检测故障的注入。然而,该解决方案具有相对较高的硬件成本。[0006]避免使用两个处理装置的备选解决方案包括通过使用具有相同输入数据的相同处理装置而两次执行敏感功能。[0007]背景技术部分中所讨论的所有主题不必是现有技术并且不应假设为现有技术而仅是背景技术部分中其讨论的结果。遵循这些原则,背景技术部分中所讨论的现有技术或者与该主题相关联的问题的任何承认不应作为现有技术而处理,除非明确地陈述为现有技术。替代的,背景技术部分中任何主题的讨论应该处理作为本发明人对于特定问题的方案的一部分,就其本身而言也可以是创新性的。发明内容[0008]存在对于改进程序或算法的执行或计算完整性的需求。[0009]实施例克服了用于保护算法执行完整性的已知技术的缺点的全部或一部分。[0010]因此,一个实施例提供了一种算法执行方法,包括:由处理单元实现算法的第一执行;将待写入存储器的至少一个第一结果发送至存储器管理电路;将所述第一结果存储至易失性存储器的第一区域;由所述处理单元实现算法的第二执行;将待写入存储器中的至少一个第二结果发送至所述电路;以及借由所述电路应用与第一执行不同的处理。[0011]根据一个实施例,所述不同处理包括将所述第二结果存储至不同于第一区域的易失性存储器的第二区域中。[0012]根据一个实施例,所述不同处理包括将由处理单元发送的写入请求转换为对于读取第一结果的请求。[0013]根据一个实施例,所述电路比较两个结果。[0014]实施例提供了一种用于在算法执行期间检测由故障注入的攻击发生的方法。[0015]一个实施例提供了一种计算装置,包括:处理单元;至少一个易失性存储器;以及用于管理易失性存储器的电路,能够实施以上算法执行方法。[0016]将在以下具体实施例的非限定性说明中结合附图详细讨论前述和其他特征和优点。附图说明[0017]参照以下附图描述非限定性和非穷举性实施例,其中遍及各个视图相同的标记涉及相同的部件,除非另外规定。附图中元件的大小和相对位置不必按照比例绘制。例如,选择、放大和定位各个元件的形状以改进附图的易读性。为了在附图中易于识别而已经选择了如所绘制的元件的特定形状。下文中参照附图描述一个或多个实施例,其中:[0018]图1以方框的形式非常示意性地示出了所述实施例应用作为示例的类型的电子电路的实施例;[0019]图2是示出了图1的电路的易失性存储器的组织结构的实施例的简化示意图;[0020]图3是示出了图1的电路的非易失性存储器的组织结构的实施例的简化示意图;[0021]图4是示出了算法执行方法的实施例的框图;以及[0022]图5是示出了算法执行方法的另一实施例的框图。具体实施方式[0023]在不同附图中己经使用相同附图标记标注相同元件。[0024]为了清晰,仅己经示出并且将详述有助于理解将要描述实施例的那些动作(例如步骤和元件。实际上,尚未详细描述其他特征方面,诸如具体所执行计算功能,因为对于本领域技术人员明显的是在此所述的实施例可以适用于广泛各种计算函数,用于加密应用程序或其他类型的应用程序。[0025]图1以方框的形式非常示意性示出了将描述应用作示例的类型的电子电路1的实施例。[0026]电路1包括:[0027]处理单元n㈣,例如,状态机、微处理器、可编程逻辑电路等;[0028]—个或多个易失性存储区域12RAM,例如RAM或寄存器类型,用于在处理期间临时地存储信息指令、地址、数据);[0029]一个或多个非易失性存储区域13NVM例如闪存类型),用于持久地存储信息,特别是当电路并未供电时;[0030]—个或多个数据、地址和或控制总线14,在电路〖内部的不同元件之间;以及[0031]通信的输入输出接口15IO,例如串行总线类型,在电路1的外部。[0032]电路1也可以集成近场通信类型NFC的无接触通信电路16CLF—无接触前端)。[0033]此外,电路1可以根据应用集成其他功能,诸如加密处理器、其他接口、其他存储器等。[0034]所述实施例通过使用双重执行原理而不必使用两次等同执行,从而提供了对算法执行完整性的验证。此外,规定这些执行对于处理单元透明地发生。[0035]为此目的,在电路1中提供用于管理存储器12和13的至少一部分的电路2MNG。该电路形成了存储器接口电路,通过该存储器接口电路转运transit希望由双重执行验证的数据的至少所有访问地址。实际上,地址位于地址字段存储器映射)中,并且由管理电路2发送并截取字段中所有地址。电路2与存储器12和13之间的通信可以经由总线14和或分别由专用连接22、23而执行。作为变形,电路2插入在总线与存储器或多个存储器之间。为了简化以下说明,参考安全执行管理电路2的硬件实施方式,但是应该注意的是该管理也可以由软件机制执行。[0036]此外,提供了一种由电路2使用的易失性存储器12的具体组织结构。[0037]图2是示出了图1的电路的易失性RAM的组织结构的实施例的简化视图。[0038]根据该实施例,RAM12划分为安全部分与非安全部分。更具体地,安全部分包含两个区域122SEC_RAM_1和124SEM_RAM_2,设计用于由完整性检查进程所使用的两个相应执行称作安全的)。非安全部分例如包含区域126NS_RAM,其被设计用于在安全性方面不敏感的数据。额外的区域128SEC_RAM可以提供用于其他安全执行。区域126和128不受由所述实施例执行的处理的影响。[0039]优选地,下文中所述完整性检查进程运行在区域SEC_RAM中。区域122和124的功能是提供专用于每次执行的存储器。这些区域将通常包含专用于每次执行的临时变量。例如,它们包含适用于指针的随机掩码,以对于每次执行不同地扫描表格。两次执行将在相同逻辑地址处存储该掩码,但是通过存储器的虚拟化,也即,由电路2转换地址,数据将存储在区域122和124中不同的物理地址处。[0040]此外,在非易失性存储器NVM—侧,也提供了一种具体组织结构。[0041]图3是示出了电路1的非易失性存储器13的组织结构的实施例的简化示意图。[0042]根据该实施例,存储器的区域133NS_NVM分配至在安全性方面不敏感的数据,以及非易失性存储器13的区域135分配至称作是安全的并且有意设计以包含链接至安全执行数据的数据实际上,安全执行的结果)。[0043]根据所述实施例,假设当由处理单元11调用安全进程或算法例如签名计算、加密算法的执行等)时,电路2截取来自和去向处理单元11的交换信息,从而由单元发起的两次执行在存储器中不同地管理。[0044]对处理单元PU编程以开始相同计算的)相同算法的两次执行。每次执行要求一个或多个易失性存储器和或非易失性存储器访问。[0045]非易失性存储器访问例如包括读取将要由该执行处理的信息。根据所述实施例,不论非易失性存储器访问是否涉及第一或第二执行,非易失性存储器访问都在存储器13的相同区域135,图3中搜寻数据。[0046]如从处理单元11可见,易失性存储器访问旨在存储联接至两次执行的计算的临时结果,以在第二次执行的结束处能够确立ascertain两次执行之间的一致性,以及等等。根据所述实施例,处理单元11并未区分两次执行,也即,访问要求其独立于执行而发送通常,单元11发送相同的存储器地址。然而,在电路2一侧上,区分两次执行,以便于根据情形分配存储器12的不同区域丨22或1M,或者转换来自处理单元11的请求)。[0047]根据另一优选示例,电路2既用作请求翻译单元例如将写入访问转换为读取和验证访问),又用作能够具有由处理单元所看到的逻辑地址以及由RAM和或NVM所看到的物理地址的虚拟存储器管理单元MMU。[0048]为了简化实施例的以下说明,假设简单操作的执行,包括递增存储在非易失性存储器13NVM中的计数器,在易失性存储器12RAM中存储结果,以及随后任选的将其转移至非易失性存储器。因此,由单元11执行处理的连续操作是:[0049]—从非易失性存储器安全区域133的计数器读取值C;[0050]一递增计数器C=C+1;[0051]—将结果C存储写至易失性存储器安全区域中;和或[0052]一将结果转移至非易失性存储器区域133中。[0053]转移至非易失性存储器中不是不可缺少的,并且取决于执行的进程。例如,进程可以使用非对称密钥产生签名并且在输入端处给出的挑战上产生签名。[0054]根据另一示例,进程被直接应用在NVM中。例如,NVM方框管理快闪存储器写操作,验证进程则包括在第一执行期间将新值写入快闪存储器中和或在第二执行期间从快闪存储器读取验证。[0055]图4是示出了根据本发明的通过指派存储器12的不同区域122或124的算法执行方法的实施例的框图。[0056]根据该实施例,电路2MNG引导对于用于第一执行的第一区域122以及用于第二执行的第二区域124的写W和读R请求。由电路2直接执行该分支,也即,不论其是第一或第二执行,都转换为不同存储器地址。[0057]因此,当单元PU执行第一执行方框31,EXE1时,通过发送对于读取计数器值C的请求RC而开始。该请求由电路MNG截取但是并未转换,而是将逻辑地址转换为非易失性存储器NVM中物理地址。单元PU随后接收计数器值并且递增(方框32,C=C+1。其随后发送该新值用于写W⑹。电路MNG截取该请求,并且如果这是第一执行,将由单元PU提供的逻辑地址转换为RAM的区域122的物理地址,在RAM易失性存储器(区域122中)存储(方框33,C-122值C,以及可选地以虚线示出的非不可缺少的步骤),返回确认应答ACK。[0058]单元随后开始等同于第一执行的第二执行方框34,EXE2。因此,在所示的示例中,其发送对于读取计数器值C的请求R⑹。对于第一执行而言,该请求由电路MNG解读但是不转换,除了将逻辑地址转换为非易失性存储器NVM中的物理地址之外。单元PU随后接收计数器值并且递增方框35,C=C+1。其随后再次发送该新值以用于写W⑹。电路MNG截取该请求,并且开始第二执行例如,在进程开始处,在电路MNG的一侧上初始化计数器或标记),将由单元TO所提供的逻辑地址转换为RAM的区域U4的物理地址,在易失性RAM中存储方框36,C-124值C,并且返回确认应答ACK。电路MNG随后使得读取Rc122之前存储在区域122中的值C。从RAM读取方框37,122-C第一执行的结果,并且返回至电路MNG。后者随后将该值与第二执行的结果作比较方框38,C122=C124?。如果值等同(方框38的输出Y,则电路MNG返回确认应答ACK至单元PU,其随后将对于写W⑹结果C的请求发送至非易失性存储器中。否则方框38的输出N,其返回错误消息ERROR并且处理单元PU随后实施错误处理,例如,处理停止STOP。[0059]图5是示出了通过将由处理单元发送的写访问请求转换为对于易失性存储器的读取访问请求的算法执行方法的另一优选实施例的框图。[0060]因此,当单元PU执行第一执行方框41,EXE1时,其开始发送读取计数器值C的请求RC。该请求由电路MNG解读但是除了将逻辑地址转换为非易失性存储器NVM中物理地址之外并不转换。单元PU随后接收计数器值并且递增方框42,C=C+1。其随后发送该新值用于写w〇:。电路MNG截取该请求,并且如果这是第一执行,则除了将逻辑地址转换为物理地址之外并不将其转换,并且存储方框43,C一122值C至易失性RAM例如,在区域122中)中,并且可选地(以虚线示出的非必不可少步骤返回确认应答ACK。根据该实施例,区域122和124之中单个区域是足够的。[0061]单元即随后开始等同于第一执行的第二执行方框44,EXE2。因此,在所示的示例中,其发送对于读取计数器值C的请求RC。与第一执行同样,该请求由电路MNG解读但是并不转换,除了将逻辑地址转换为非易失性存储器NVM中物理地址之外。单元PU随后接收计数器值并且递增方框45,C二C+1。其随后再次发送该新值用于写WC。电路MNG截取该请求但是检测到这是第二执行。电路MNG随后将写请求WC转换方框46,WC—〉RC为读取请求IUC并且发送对于读取存储在RAM中源自第一执行的值的请求RC。第一执行的结果从RAM读取方框47,122_C并且返回至电路MNG。电路MNG随后将该值与从单元PU接收到的值作比较方框4S,C=C?。如果值是等同的方框48的输出Y,电路MNG返回确认应答ACK至单元PU,其随后发送对于将结果C写入非易失性存储器中的请求WC。否则方框48的输出N,其返回错误消息ERROR并且处理单元随后实施错误处理,例如处理停止STOP。[0062]因此,从处理单元11的观点看,两次执行是等同的,但是从存储器的观点看是不同处理的。优点是由处理单元叩执行的程序保持等同。因此,这简化了可能的更新,通过对来自非易失性存储器的其负载计算程序签名而完整性检查,等等。[0063]另一优点是最小化必须的程序代码的大小。的确,因此无需具有不同于执行程序的验证程序。[0064]应该注意,图4和图5的两个实施例常常组合,一些数据根据执行而临时存储在不同RAM区域中,而其他数据通常是结果在第二执行期间经受写至读取的转换。[0065]进一步,参照单个操作(递增)已经描述的在多个操作的情形中变换。在本说明书的意义上来说,算法可以是单个操作,多个操作,或者更复杂的程序。特别地,存储可以涉及算法的多个操作之一。此外,尽管参考了易失性存储器的两个区域,可以使用两通不同的存储器。[0066]已经描述了各个实施例。各种改变、修改和改进对于本领域技术人员将是易于发生的。最终,已经描述了的实施例的实际实施方式基于以上给出的功能性指示而在本领域技术人员的能力范围内。[0067]这些改变、修改和改进意在作为本公开的一部分,并且意在落入本公开的精神和范围内。因此,前述说明书仅是借由示例的方式并且并非意在是限定性的。本公开仅由以下权利要求及其等价形式而限定。[0068]如上所述各个实施例可以组合以提供其他实施例。在以上详述说明书的教导下可以对实施例做出这些和其他改变。通常,在以下权利要求中,所使用的术语不应构造为将权利要求限定于说明书和权利要求书中所公开的具体实施例,而是应该构造为包括所有可能的实施例以及这些权利要求所享有的等价形式的全部范围。因此,权利要求不由本公开限定。

权利要求:1.一种执行算法的方法,包括:由处理单元实现所述算法的第一执行以产生第一结果;使用存储器管理电路识别待被写入存储器的至少一个第一结果;将所述至少一个第一结果存储至易失性存储器的第一区域中;由所述处理单元实现所述算法的第二执行以产生第二结果;使用所述存储器管理电路识别待被写入所述存储器的至少一个第二结果;以及由所述存储器管理电路对于所述第二执行中至少一个第二结果应用与对于所述第一执行中至少一个第一结果所应用的不同的处理。2.根据权利要求1所述的方法,其中,所述不同的处理包括:将所述至少一个第二结果存储至所述易失性存储器的、不同于所述易失性存储器的第一区域的第二区域中。3.根据权利要求1所述的方法,其中,所述不同处理包括:将由所述处理单元所发送的、所述至少一个第二结果的存储器写请求转换为对于所述至少一个第一结果的存储器读取请求。4.根据权利要求1所述的方法,包括:由所述存储器管理电路将所述至少一个第一结果与所述至少一个第二结果进行比较。5.根据权利要求4所述的方法,包括:基于将所述至少一个第一结果与所述至少一个第二结果进行比较的结果,在所述算法执行期间确立故障注入攻击的指示。6.—种设备,包括:处理单元,被设置用于执行安全算法;至少一个易失性存储器,经由存储器总线耦合至所述处理单元;以及存储器管理电路,耦合至所述存储器总线并且被配置用于:识别由所述安全算法的第一执行产生并且在所述存储器总线上朝向所述易失性存储器传输的至少一个第一结果;将所述至少一个第一结果存储至所述至少一个易失性存储器的第一区域中;识别由所述安全算法的第二执行产生并且在所述存储器总线上朝向所述易失性存储器传输的至少一个第二结果;以及对于所述至少一个第二结果应用与对于所述至少一个第一结果所应用的不同的处理。7.根据权利要求6所述的设备,其中,所述存储器管理电路的所述不同的处理包括:将所述至少一个第二结果存储至所述易失性存储器的、不同于所述易失性存储器的第一区域的第二区域中。8.根据权利要求6所述的设备,其中,所述存储器管理电路的所述不同的处理包括:将由所述处理单元发送的所述至少一个第二结果的存储器写请求转换为对于所述至少一个第一结果的存储器读取请求。9.根据权利要求6所述的设备,其中,所述存储器管理电路被配置用于:将所述至少一个第一结果与所述至少一个第二结果进行比较。10.根据权利要求9所述的设备,包括:输出端,用于在所述算法的执行期间传递发生故障注入攻击的指示,所述指示由所述存储器管理电路根据将所述至少一个第一结果与所述至少一个第二结果进行比较的结果来引导。11.根据权利要求6所述的设备,包括:非易失性存储器,被设置用于存储所述算法的代码。12.根据权利要求6所述的设备,其中,所述存储器管理电路被配置用于:识别所述安全算法的所述第一执行,并且将所述安全算法的所述第一执行与所述安全算法的所述第二执行进行区分。13.根据权利要求6所述的设备,其中,所述存储器管理电路被配置用于:识别所述安全算法的所述第一执行和所述安全算法的所述第二执行,并且将所述安全算法的所述第一执行和所述安全算法的所述第二执行与由所述处理单元的其他编程的执行进行区分。14.根据权利要求6所述的设备,其中,所述安全算法与加密应用相关联。15.根据权利要求6所述的设备,其中,所述存储器管理电路是基于硬件的电路。16.—种方法,包括:在存储器的第一位置中提供第一安全区域;在所述存储器的第二位置中提供第二安全区域,所述第一位置不同于所述第二位置;使用处理单元实现安全算法的第一执行以产生第一结果以及实现所述安全算法的第二执行以产生第二结果;使用存储器管理电路识别所述第一结果和所述第二结果,所述存储器管理电路被设置用于区分所述第一结果和所述第二结果:将所述第一结果存储至所述存储器的第一安全区域中;以及使用所述存储器管理电路,执行至少一个以下项:对于所述处理单元透明地,将所述第二结果存储至所述存储器的第二安全区域中;以及对于所述处理单元透明地,将由所述处理单元发送的所述至少一个第二结果的存储器写请求转换为对于所述至少一个第一结果的存储器读取请求。17.根据权利要求16所述的方法,包括:将相同的安全值传递至所述安全算法的每个执行中。18.根据权利要求16所述的方法,包括:基于由所述安全算法的所述第一执行和所述第二执行所产生的值的比较,提供故障注入攻击的指示。19.根据权利要求16所述的方法,其中,所述处理单元产生用于将所述第一结果写入所述存储器中的第一地址的第一写请求,以及其中所述处理单元产生用于将所述第二结果写至所述存储器中的第一地址的第二写请求,以及其中所述存储器管理电路在所述存储器的不同位置中存储所述第一结果和所述第二结果。20.根据权利要求16所述的方法,其中,所述处理单元产生用于将所述第一结果写至所述存储器中的第一地址的第一写请求,并且所述存储器管理电路在所述存储器中存储所述第一结果,以及其中所述处理单元产生用于将所述第二结果写至所述存储器中的第一地址并且对于所述处理单元透明的第二写请求,所述存储器管理电路并不在所述存储器中存储所述第二结果。

百度查询: 意法半导体(鲁塞)公司;质子世界国际公司 算法的安全执行

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。