故障检测
技术领域
本公开总体涉及电子电路,并且更具体地涉及执行加密算法的电路。
背景技术
在许多应用中,电子电路实现了加密、认证、签名计算算法,并且更一般地说,操纵数据(称为秘密数据)的算法,即,期望的是将对这些数据的访问权保留给某些用户或电路。特别存在对称加密算法或密钥算法,例如AES或SM4类型的算法,这使得能够借助密钥来加密和解密消息。
存在许多方法(称为攻击)试图发现或破解由这些算法操纵的秘密数据。在这些攻击之中,所谓的侧信道攻击(SCA)使用诸如电路功耗(SPA、DPA攻击)、其电磁辐射等信息。这种信息的解释能够向黑客提供与秘密数据相关的信息。所谓的故障攻击也是已知的,其包括故意引起电路的异常操作以从中推断出与秘密数据相关的信息。
发明内容
实施例有助于克服保护加密算法免受攻击的已知方法和电路的全部或部分缺点。
实施例提供了一种通过电子电路在应用中对消息的第一功能进行故障检测的方法,包括以下步骤:
从消息生成非零偶数N个不同的第一集合,每个第一集合包括P个部份(shares);
将一个或多个第二功能应用于每个第一集合的P个部份,针对每个第一集合提供包括Q个图像的第二集合;以及
从相同第二集合的Q个图像之中选择的至多Q-1个图像开始,累积所有图像。
根据实施例,每个部份的第一集合通过消息(M)的掩码(例如,随机掩码)生成。
根据实施例,消息的掩码由异或运算符执行。
根据实施例,图像的累积由异或运算符执行。
根据实施例,第一功能是线性变换。
根据实施例,相同第二集合的每个图像通过将相同的第二功能应用于对应第一集合的每个部份来获得。
根据实施例,第一功能是非线性变换。
根据实施例,相同第二集合的每个图像通过将多个不同的第二功能之中的第二功能应用于对应第一集合的至多P-1个部份来获得。
根据实施例,方法包括验证N个图像的第二集合的累积的结果是否为零的步骤。
根据实施例,(一个或多个)第二功能以随机顺序被应用于部份的每个第一集合。
实施例提供了一种电子电路,被配置为实现如上所述的方法。
根据实施例,存储器区域旨在存储源自图像的累积的中间值。
根据实施例,一种方法包括:使用加密电路对消息应用加密功能;以及在对消息应用加密功能期间保护加密电路,应用加密功能以及保护包括:使用消息生成部份的非零偶数个不同集合,每个部份集合包括P数目个部份,其中P是大于或等于2的整数;将一个或多个功能应用于每个部份集合的每个部份,生成多个图像集合,每个图像集合包括Q数目个图像,其中Q是大于或等于2的整数;以及,从图像集合中的一个集合的图像之中选择的至多Q-1个图像开始,累积图像集合的图像。在实施例中,部份集合的生成包括将掩码应用于消息。在实施例中,方法包括随机地选择掩码,以将该掩码应用于消息。在实施例中,应用掩码包括执行异或运算。在实施例中,累积包括应用异或运算。在实施例中,加密功能是线性变换。在实施例中,通过将相同的功能应用于部份的对应集合的每个部份,来获得图像集合的一个集合的每个图像。在实施例中,加密功能是非线性变换。在实施例中,通过将多个不同功能之中的功能应用于部份的对应集合的至多P减一个部份,来获得图像集合的一个集合的每个图像。在实施例中,方法包括验证图像集合的图像的累积结果是否为零。在实施例中,(一个或多个)功能以随机顺序被应用于部份集合中的部份。
根据实施例,一种设备包括:存储器;以及加密电路装置,加密电路装置耦合到存储器,其中加密电路装置在操作中将加密功能应用于消息,将加密功能应用与消息包括:使用消息生成非零偶数个不同的部份集合,每个部份集合包括P数目个部份,其中P是大于或等于2的整数;将一个或多个功能应用于每个部份集合中的每个部份,生成多个图像集合,每个图像集合包括Q数目个图像,其中Q是大于或等于2的整数;以及从图像集合中的一个集合的图像之中选择的至多Q-1个图像开始累积图像集合中的图像。在实施例中,加密电路装置在操作中通过将掩码应用于消息来生成部份集合。在实施例中,加密电路装置在操作中应用异或操作以累积图像。在实施例中,加密功能是线性变换。在实施例中,加密电路装置在操作中通过将相同的功能应用于对应的部份集合中的每个部份,来生成图像集合中的一个集合的图像。在操作中,加密功能是非线性变换。在实施例中,加密电路装置在操作中通过将多个不同功能之中的功能应用于对应部份集合中的至多P-1个部份,来生成图像集合中的一个集合的图像。在实施例中,加密电路装置在操作中验证图像集合中的图像的累积结果是否为零。在实施例中,加密电路装置在操作中将功能集合中的功能随机地应用于部份集合中的部份,以生成对应的图像集合中的图像。在实施例中,加密电路装置在操作中将累积的中间结果存储在存储器中。
在实施例中,系统包括:一个或多个接口;以及一个或多个处理核心,耦合到一个或多个接口,其中一个或多个处理核心包括加密电路装置,其在操作中使用消息生成非零数目个不同的部份集合,每个部份集合包括P数目个部份,其中P是大于或等于2的整数;将一个或多个功能应用于每个部份集合中的每个部份,生成多个图像集合,每个图像集合包括Q数目个图像,其中Q是大于或等于2的整数;以及,从图像集合中的一个集合的图像之中选择的至多Q-1个图像开始,累积图像集合中的图像。在实施例中,系统包括集成电路,其包括加密电路装置。在实施例中,加密电路装置在操作中将线性变换应用于消息。
在实施例中,非暂时性计算机可读介质的内容配置加密电路装置来执行方法,该方法包括:将加密功能应用于消息;以及在将加密功能应用于消息期间保护加密电路装置,应用加密功能以及保护包括:使用消息生成非零偶数个不同的部份集合,每个部份集合包括P数目个部份,其中P是大于或等于2的整数;将一个或多个功能应用于每个部份集合中的每个部份,生成多个图像集合,每个图像集合包括Q数目个图像,其中Q是大于或等于2的整数;以及从图像集合中的一个集合的图像之中选择的至多Q-1个图像开始,累积图像集合中的图像。在实施例中,加密功能是线性变换。在实施例中,通过将相同的功能应用于对应的部份集合中的每个部份,来获得图像集合中的一个集合中的每个图像。在实施例中,内容包括由加密电路装置执行指令。
在实施例中,一种通过电子电路在应用中对消息的第一功能进行故障检测的方法包括:从消息生成非零数目个不同的第一集合,各自包括P个数据元素;一个或多个第二功能以随机顺序被应用于每个第一集合的P个数据元素,针对每个第一集合提供包括Q个图像的第二集合;以及从相同的第二集合中的Q个图像之中选择的至多Q-1个图像开始,累积所有图像。
附图说明
将在结合附图对具体实施例和实现模式的以下非限制性描述中详细讨论本公开的前述和其它特征及优点,其中:
图1示意性地并且部分地示出了作为示例的所描述的实现模式适用的类型的电子电路的示例;
图2以框图的形式示意性地示出了故障检测方法的实施例;
图3以框图的形式示意性地示出了将图2的方法应用于线性变换的示例;
图4以框图的形式示意性地示出了将图2的方法应用于非线性变换的另一个示例;以及
图5以框图的形式示意性地示出了与图2的方法的实现模式相关联的步骤。
具体实施方式
除非上下文另有指示,否则类似的特征在各种图中由类似的附图标记指定。具体而言,不同实施例和实现模式所共有的结构和/或功能元件可以用相同的附图标记数字来指定,并且可以具有相同的结构、尺寸和材料特性。
为了清晰起见,仅示出那些有助于理解所描述的实施例和实现模式的步骤和元件,并且将详细说明这些步骤和元件。特别地,加密算法没有详细说明,所描述的实施例和实现模式与通常的加密算法兼容。
除非另有说明,否则当引用连接在一起的两个元件时,这表示除了导体外没有任何中间元件的直接连接,当引用耦合在一起的两个元件时,这表示这两个元件可以经由一个或多个其他元件连接或耦合。
在下文的描述中,当引用限定绝对位置的术语(诸如术语“前”、“后”、“顶部”、“底部”、“左”、“右”等),或相对位置的术语(诸如术语“上方”、“下方”、“高处”、“低处”等)的术语,或引用限定方向的术语(诸如术语“水平”、“垂直”等)时,除非另有规定,否则是指附图的方向。
除非另有规定,否则“约”、“大约”、“基本”和“近似”表示在10%以内,优选地在5%以内等。
图1示意性地并且部分地示出了可以作为示例的所描述的实现模式适用的类型的电子电路100的示例。
在所示出的示例中,电路100包括:
计算电路装置101(UC),例如,状态机、微处理器、可编程逻辑电路等;
至少一个易失性或非易失性存储区域103(MEM)或存储器区域,例如能够存储全部或部分数据和/或密钥;
一个或多个数据、地址和/或控制总线105,位于电路100内部的不同元件之间;以及
一个或多个输入-输出接口107(I/O),用于与电路100的外部通信。
例如,电路100包括应用专用的各种其他电路。这些电路在图1中用框109(FCT)表示。
在本公开的剩余部分中,任意地认为电路100被配置为实现全部或部分加密算法,例如AES或SM4类型的对称加密算法。为了简化,例如考虑电路100被特别配置为将第一加密功能(未示出)应用于称为M的消息。例如,消息M对应于在加密算法的执行期间由电路100操纵的全部或部分秘密数据。
图2以框图的形式示意性地示出了故障检测方法200的实现模式。例如,结合图2描述的方法200有助于对消息M应用第一加密功能的期间检测可能的故障攻击。
例如,图2的方法200是在加密算法的所谓“阈值实现方式”的情景中实现的。
在所示的示例中,消息M(框201,消息M)被掩码(框203,数据掩码)。掩码203更具体地使得能够从同一消息M生成N个部份的第一集合Si(框205,N个集合Si的P个部份xi j)。例如,N个集合Si各自包括相同的数目P个部份xi j,其中P是大于或等于2的整数。
在本说明书中,Si(1≤i≤N)指示部份xi j(1≤j≤P)的第i集合,部份xi j指示第i集合Si的第j部份。在本说明书中,指数i不用于指示对幂i的提升。
根据实现模式,选择或生成部份xi j,使得例如通过异或运算符的每个集合Si的P个部份xi j的组合对应于消息M。换言之,确定的是每个集合Si的P个部份xi 1到xi P验证以下关系:
[数学式1]
在实践中,在本公开中,异或运算符可以对应于硬件运算符或异或软件功能的应用。
根据实现模式,消息M的掩码203是随机掩码。例如,每个集合Si的部份xi j通过异或运算符基于消息M与一个或多个随机数的至少一个组合生成。
N个部份xi j的集合Si例如彼此不同。换言之,确定的是从消息M生成N个集合S1到SN不会引起获得集合Si,该集合Si的所有P个部份xi j(无论是否按顺序)与其他集合Si中的一个集合Si的P个部份xi j相同。
然后将一个或多个第二功能应用于每个集合Si的部份xi j(框207,(一个或多个)功能的应用)。这通过第二功能提供(框209,N个集合Ti的Q个图像yi k)部份xi j的N个第二集合Ti的Q个图像yi k。例如,N个集合Ti各自包括相同数目Q的图像yi k,其中Q是大于或等于2的整数。在剩余的描述中,任意地认为在每个集合Ti中的图像yi k的数目Q等于在每个集合Si中的部份xi j的数目P。然而,可以提供不同的数字P和Q作为变型。
在本公开中,源自第二功能对部份xi j的第i集合Si的应用,Ti(1≤i≤N)指示图像的第i集合,而yi k(1≤k≤Q)指示第i集合Ti的第k个图像。
例如,第二功能实际上是第一功能的子功能。例如,选择第二功能,使得它们对每个集合Si的P个部份xi j的应用提供结果R,结果R与将第一功能直接应用于消息M获得的结果等效。然而,对源自消息M的部份xi j掩码203的第二功能的应用具有优点,特别是相对于将第一功能直接应用于消息M的实现方式,第二功能提供的加密算法对侧信道攻击(SCA)有更好保护。
例如,将第一功能应用于消息M提供的结果R等于通过异或运算符对相同集合Ti的Q个图像yi k进行组合的结果R。换言之,每个第二集合Ti的Q个图像yi k验证以下关系:
[数学式2]
在所示的示例中,所有N个集合Ti的所有Q个图像yi k被累积(框211,累积)。所有N·Q个图像yi k的累积211例如由异或运算符执行。例如,所有图像yi k的累积211使得能够验证(框213,故障检测)(一个或多个)第二功能的应用207是否经历了故障攻击。
根据实现模式,从集合Ti中的一个集合的Q个图像yi 1到yi Q之中选择的至多Q-1个图像yi k开始,执行累积211。例如,通过以下方式执行累积211:从图像y1 1到y1 Q-1的集合T1开始,然后执行图像y2 1到y2 Q、y3 1到y3 Q、…、yN 1到yN Q的集合T2到TN,并且以集合T1的第Q图像y1 Q结束。
在实践中,累积211例如通过异或运算符对两个图像yi k的组合开始,以提供第一中间结果。例如,第一中间结果被存储在累加器或寄存器中,例如,存储在电路100(图1)的存储器区域103中。然后,第一中间结果通过异或运算符与另一图像yi k组合,以提供第二中间结果。例如,在依次与另一图像yi k组合之前,第二中间结果被存储在累加器中,而不是第一中间结果,以此类推,以通过异或运算符获得所有图像yi k的累积211的最终结果。
可以被设计的是,从相同集合Ti的Q个图像yi k开始,累积所有的图像yi k。例如,它可以通过累积集合T1的Q个图像y1 1到y1 Q开始,然后是集合T2的Q个图像y2 1到y2 Q,以此类推,一直累积到集合TN的Q个图像yN 1到yN Q。然而,这将具有在累加器中存储的缺点,特别是在集合T1的Q个图像y1 1到y1 Q的累积结束时,中间结果等于对消息M应用第一个功能的结果R。这可能会向攻击者提供信息,使他/她能够发现需要被保密的消息M。
根据实施例,源自消息M的掩码203的集合Si的数目N是非零偶数整数。在这种情况下,验证213例如包括确保N个图像yi k的第二集合Ti的累积211的结果为零。
图3以框图的形式示意性地示出了图2的方法200应用于线性变换的示例,标记为FL。
在所示的示例中,任意地认为从消息M(框201,消息M)生成部份xi j的两个集合S1(框301,部份集合S1)和S2(框303,部份的集和S2)。例如,被考虑为简化的是,每个集合S1、S2包括三个部份xi 1到xi 3。更具体地说,在所示的示例中,集合S1包括三个部份x1 1、x1 2和x1 3,集合S2包括三个部份x2 1、x2 2和x2 3(在这种情况下N=2并且P=3)。
每个集合S1、S2的部份例如通过消息M的随机掩码获得。例如,消息M首先由异或运算符与第一个随机数(标记为R1)组合以获得部份x1 1:
[数学式3]
例如,可以利用异或运算符将第一随机数R1与第二随机数(标记为R2)组合,以获得部份x1 2:
[数学公式4]
根据关系[数学式3]和[数学式4],消息M验证以下关系:
[数学式5]
考虑到第二随机数R2对应于部份x1 3,即在上述关系[数学式5]中用x1 3替换R2,部份x1 1、x1 2和x1 3形成消息M的随机掩码的示例。
通常,消息M的掩码例如执行使得知道同一集合Si的P-1个部份xi j不提供与消息M有关的信息。换言之,确定只有知道同一集合Si的P个部份xi j才能够恢复消息M。
例如,集合S2的部份x2 1、x2 2和x2 3是通过类似于上文针对集合S1的部份x1 1、x1 2和x1 3所描述的步骤获得的。部份x2 1、x2 2和x2 3例如由消息M与两个不同于第一随机数R1和第二随机数R2的其他随机数的组合生成。因此,可以保证集合S1和S2是不同的,换言之,集合S1的部份x1 1、x1 2和x1 3不能全部在集合S2的部份x2 1、x2 2和x2 3中找到。
在所示的示例中,将相同的第二功能(标记为f)应用于每个部份S1、S2以形成图像yi k的集合T1(框305,图像集合T1)和T2(框307,图像集合T2)。换言之,利用功能f计算每个部份xi j的图像yi k。更具体地,在所示的示例中,计算以下内容:
图像y1 1、y1 2和y1 3,分别通过对集合S1的部份x1 1、x1 2和x1 3中的每个部份应用功能f而获得;以及
图像y2 1、y2 2和y2 3,分别通过对集合S2的部份x2 1、x2 2和x2 3中的每个部份应用功能f而获得。
在所示的示例中,将功能f应用于部份xi j的集合Si使得能够从图像yi k的集合Ti获得结果R(框309,结果R)。结果R与通过将线性变换FL直接应用(方框311,线性变换FL)于消息M而获得的结果相同。假设变换FL是线性的,其验证以下关系:
[数学公6]
考虑到功能f等效于线性变换FL,关系[数学式6]可以重写如下:
[数学式7]
上述关系[数学式6]和[数学式7]可以变换为集合S2的部份x2 1、x2 2和x2 3以及集合T2的图像y2 1、y2 2和y2 3。特别地:
[数学式8]
根据实施例,第二功能f以随机顺序被应用于每个集合S1、S2的部份xi j。这特别能够加强对结果R的计算的保护,以防止可能的侧信道攻击。特别是攻击者不太可能成功地隔离同一集合Ti的所有图像yi k,从而恢复结果R。N和Q的数目越大,这种可能性就越低。
图4以框图的形式示意性地示出了将图2的方法200应用于称为FN的非线性变换的另一个示例。
图4的应用的示例具有与图3的应用示例相同的元素。下文将不再描述共用的元素。特别地,在图4的应用的示例中,可以从消息M(框201,消息M)生成部份xi j的集合S1(框301,部份集合S1)和S2(框303,部份集合S2),类似于先前结合图3的应用的示例讨论的内容。
在所示的示例中,通过将多个不同的第二功能f1、f2和f3中的第二功能应用于对应集合Si的至多P-1个部份xi j来获得统一集合Ti的每个图像yi k。从而形成图像yi k的集合T1(框305,图像集合T1)和T2(框307,图像集合T2)。更具体地说,在所示的示例中:
图像y1 1是通过将功能f1应用于集合S1的部份x1 2和x1 3获得的;
图像y1 2是通过将功能f2应用于集合S1的部份x1 1和x1 3获得的;
图像y1 3是通过将功能f3应用于集合S1的部份x1 1和x1 2获得的;
图像y2 1是通过将功能f1应用于集合S2的部份x2 2和x2 3获得的;
图像y2 2是通过将功能f2应用于集合S2的部份x2 1和x2 3获得的;
图像y2 2是通过将功能f3应用于集合S2的部份x2 1和x2 2获得的。
在所示的示例中,将功能f1、f2和f3应用于集合Si的部份xi j使得能够从图像yi k的集合Ti获得结果R(框309,结果R),该结果R与将非线性变换FN直接应用(框401,非线性变换FN)于消息M而获得的结果相同。
在所示的示例中,变换FN和功能f1、f2和f3特别验证了以下关系:
[数学式9]
变换FN和功能f1、f2和f3进一步验证以下关系:
[数学式10]
根据实施例,第二功能f1、f2和f3以随机顺序被应用于每个集合S1、S2的部份xi j。这特别能够加强对结果R的计算的保护,以防止可能的侧信道攻击,并且获得与图3中讨论的应用示例类似的优点。
图5以框图的形式示意性地示出了与图2的方法200的实施例相关联的步骤。
在所示的示例中,集合T1(框305,图像集合T1)和T2(框307,图像集合T2)的图像yi k被累积(框211,累积)。在图5中,可以从图3的应用示例或图4的应用示例中无差别地获得集合T1和T2。
在所示的示例中,通过使用异或运算符组合集合T1的图像y1 1和y1 2来获得中间结果(标记为z1)。然后,通过异或运算符将中间结果z1与集合T2的图像y2 1组合,以获得另一个中间结果z2。然后,通过异或运算符将中间结果z2与集合T2的图像y2 2组合,以获得另一个中间结果z3。然后,通过异或运算符将中间结果z3与集合T2的图像y2 3组合,以获得另一个中间结果z4。然后,通过异或运算符将中间结果z4与集合T1的图像y1 3组合,以获得另一个中间结果z5。在所示的示例中,中间结果z5对应于集合T1的图像y1 1、y1 2和y1 3以及集合T2的图像y2 1、y2 2和y2 3的累积211的最终结果。
在所示的示例中,结果z1到z5验证了以下关系:
[数学式11]
在实践中,中间结果z1到z5例如连续地存储在电路100的存储器区域103中(图1)。例如,存储器区域103被配置为一次存储单个中间结果,存储器103的内容例如在每个新的中间结果的计算结束时被更新。
根据实现模式,验证(框213,故障检测)的是两个第二集合T1和T2的图像yi k的累积的结果z5是否为零。在所示的示例中,如果对消息M应用变换FL或FN,即,对集合S1和S2的部份xi j应用功能f或功能f1、f2和f3,没有受到错误攻击,则根据以下关系,结果z5等于零:
[数学公式12]
上文结合图2至图5讨论的实现模式的优点是,集合T1的图像y1 1、y1 2和y1 3以及集合T2的图像y2 1、y2 2和y2 3的累积211使得能够将结果R的值存储到电路100的存储器103中(图1)。因此,例如避免了使可能的攻击者通过观察存储器103的内容来获得结果R的可能性。
已经描述了各种实施例、实现模式和变型。本领域的技术人员将理解,可以组合这些各种实施例、实现模式和变型的某些特征,并且本领域的技术人员将会想到其他变型。
最后,基于上文给出的功能指示,所描述的实施例、实现模式和变型的实际实现在本领域技术人员的能力范围内。特别地,尽管已经结合图3和图4描述了其中从消息M生成两个集合S1和S2(每个集合包括三个部份)的应用示例,但在实践中可以提供的是生成数目N大于两个的集合Si(例如,十个集合Si),每个集合包括数目P大于三个部份xi j(例如,五个部份xi j)。通常,根据要达到的保护级别来调整数目N和P将在本领域的技术人员的能力范围内。
本领域的技术人员还可以选择第二功能f和第二功能f1、f2和f3,以便当部份xi j遵循均匀分布时,图像yi k也遵循均匀分布。
这种变更、修改和改进旨在成为本公开的一部分,并旨在本公开的精神和范围内。因此,上述描述仅作为示例,并且不旨在限制。本公开仅限于以下权利要求及其等同物中所限定的。
一些实施例可以采用包括计算机程序产品的形式。例如,根据一个实施例,提供了一种计算机可读介质,包括适于执行上述一个或多个方法或功能的计算机程序。介质可以是物理存储介质,诸如例如:只读存储器(ROM)芯片、或碟片(诸如数字通用碟片DVD ROM)、高密度碟片(CD-ROM)硬盘、存储器、网络或通过适当的驱动或经由适当的连接读取的可携带多媒体物品,包括被编码在一个或多个条形码或其他相关编码存储的一个或多个这样的计算机可读介质,并且由适当的读取设备可读。
此外,在一些实施例中,一些或所有方法和/或功能可以以其他方式实现或提供,例如至少部分地以固件和/或硬件实现或提供,包括但不限于一个或多个专用集成电路(ASIC)、数字信号处理器、离散电路、逻辑门、标准电路集成电路、控制器(例如,通过执行适当的指令,包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)等,以及采用RFID技术的器件及其各种组合。
可以组合上述各种实施例以提供进一步的实施例。如有必要,可以修改实施例的方面以利用各种专利、申请和出版物的概念来提供进一步的实施例。
根据上述详细描述,可以对实施例进行这些和其他改变。一般而言,在以下权利要求中,所使用的术语不应被解释为将权利要求限定于说明书和权利要求中公开的特定实施例,而应被解释为包括所有可能的实施例以及这些权利要求有权获得的等同物的全部范围。因此,权利要求不受本公开的限制。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:多种算法规则混合的加解密芯片构架