CN106936563B - 用于保护密码运算的方法和系统 - Google Patents

用于保护密码运算的方法和系统 Download PDF

Info

Publication number
CN106936563B
CN106936563B CN201611233990.9A CN201611233990A CN106936563B CN 106936563 B CN106936563 B CN 106936563B CN 201611233990 A CN201611233990 A CN 201611233990A CN 106936563 B CN106936563 B CN 106936563B
Authority
CN
China
Prior art keywords
ring
extension
value
rings
ideal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611233990.9A
Other languages
English (en)
Other versions
CN106936563A (zh
Inventor
C·穆尔迪卡
S·吉耶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Secure IC SAS
Original Assignee
Secure IC SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Secure IC SAS filed Critical Secure IC SAS
Publication of CN106936563A publication Critical patent/CN106936563A/zh
Application granted granted Critical
Publication of CN106936563B publication Critical patent/CN106936563B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Abstract

本发明公开了一种用于保护密码运算的方法和系统,提供了用于执行密码方案的运算的设备,所述设备包括:‑第一执行单元(120),其被配置成在至少一个参考环内从自所述数据块的所述当前状态所导出的状态执行运算,这为每个参考环提供了参考值,以及‑第二执行单元(122),其被配置成在与一个或多个参考环相对应的至少一个扩展环内从自所述数据块的所述当前状态所导出的所述状态执行所述运算,这为每个扩展环提供至少一个扩展值,所述设备进一步被配置成,取决于在为每个参考环所获得的参考值与为与所述参考环相对应的扩展环所获得的扩展值之间的条件的验证,根据参考值和/或扩展值中的至少一个来确定运算的结果。

Description

用于保护密码运算的方法和系统
技术领域
本发明总体上涉及计算系统中的数据安全,并且具体地涉及用于保护密码运算的方法、系统和计算机程序产品。
背景技术
存在不同类型的密码算法,其用于加密和解密数据、用于认证或签名。密码算法使用秘密密钥(secret key)并且是基于应用于待加密数据块的不同状态的一系列多个运算的,且提供加密后的数据块。
然而,加密算法可能会受到打算访问秘密密钥的“攻击”。
特别地,对嵌入式系统的故障攻击已经变成了现实的威胁。故障攻击导致目标系统的层级处的异常条件或缺陷,因而导致目标系统的失效。如果故障攻击不会导致攻击者对目标系统的完全控制,则所述故障攻击可能会改变目标系统的操作。例如,故障攻击可以通过攻击者实现通过利用激光器、通过改变电源电压、通过改变外部时钟或其它方法来干扰目标系统。可能错误的结果会显露出目标保密数据的信息,例如密码密钥。
存在以侵犯诸如RSA(Rivest,Shamir,&Adleman)密码算法的秘密密钥的机密性为目的的故障攻击。密码算法提供了加密算法和对应的解密算法。加密算法(类似地,解密算法)包括一系列的线性和/或非线性运算,每个运算应用于原始数据(例如,报文(message))的块的状态。
存在应对这种针对RSA的故障攻击的措施,例如FR2884088或US5991415A。然而,该解决方案特定于RSA且不能应用于任何密码算法,诸如例如先进加密标准(AES),其据知易于受到故障攻击,如Gilles Piret和Jean-Jacques Quisquater等人于2003年在CHES发表的“A Differential Fault Attack Technique against SPN Structures,withApplication to the AES and KHAZAD”所披露的。
因此,需要对于能够保护任何密码算法以应对故障攻击的改进的方法、系统、计算机程序。
发明内容
提供了一种用于执行密码方案的运算的设备,该运算应用于原始数据的数据块的给定状态,该运算被限定在基础环内,所述基础环对应于起始环除以由所述起始环的至少一个元素生成的基础理想所得到的商数。该设备包括:
-第一执行单元,其被配置成在至少一个参考环内从自所述数据块的所述当前状态所导出的状态执行运算,这为每个参考环提供了参考值,每个参考环是所述起始环除以参考理想所得到的商数,以及
-第二执行单元,其被配置成在与一个或多个参考环相对应的至少一个扩展环内从自所述数据块的所述当前状态所导出的所述状态执行运算,这为每个扩展环提供了至少一个扩展值,与一个或多个参考环相对应的每个扩展环是所述起始环除以所述基础理想与所述一个或多个对应的参考环的参考理想之积所得到的商数。
所述设备进一步被配置成,取决于在为每个参考环所获得的参考值与为与所述参考环相对应的扩展环所获得的扩展值之间的条件的验证,根据参考值和/或扩展值中的至少一个来确定所述运算的结果。
该设备还可以包括状态更新单元,其被配置成:
-选择所述基础理想中的所述参考环的一组元素;
-根据所述选定元素来更新所述数据块的当前状态,这提供了从所述数据块的当前状态所导出的状态。
在一些实施例中,第二执行单元被配置成:
-在所述扩展环内从自所述数据块的当前状态所导出的所述状态执行所述运算,这为每个扩展环提供了中间值;
-将从所述扩展环内的运算的执行所得到的中间值的每个字节映射到与所述参考环相关联的参考环的元素,这提供了与所述参考环相对应的扩展值,
所述条件包括每个参考值与对应于所述参考环的扩展值之间的比较。
如果每个参考值匹配与所述参考环相对应的每个扩展值,则所述条件可被验证,所述运算的结果取决于对于每个参考值对所述条件的验证。
所述第一执行单元可被配置成在至少两个参考环内执行所述运算,并且所述第二执行单元被配置成在取决于全部参考环的唯一扩展环内执行所述运算,所述设备进一步被配置成将CRT变换应用于由所述第一执行单元确定的全部参考值,这提供了与所述一组参考环有关的参考参数,所述条件包括判定与一组参考环有关的参考参数是否等于与对于由所述至少两个参考环的参考理想的乘积所表示的理想中的扩展环所获得的扩展值相对应的元素。
在一些实施例中,所述第一执行单元可以被配置成在至少两个参考环内执行所述运算,并且所述第二执行单元被配置成在至少两个扩展环内执行所述运算,每个扩展环取决于一组参考环,所述设备还包括将符合中国余数定理的变换应用于由所述第一执行单元确定的每个参考值,这提供了与每一组所述参考环有关的共同参考参数。对于作为在取决于给定的一组参考环的扩展环中执行运算的结果而获得的每个扩展值,所述设备还可以被配置成:将扩展值的每个字节映射到除以所述一组参考环中的每个参考环的参考理想的乘积求商的环的元素,这提供了共同扩展参数,其中所述条件包括将与给定的一组参考环有关的每个共同参考参数与对于取决于所述一组参考环的扩展环所获得的共同扩展参数进行比较。
在一些实施例中,所述设备可进一步被配置成,对于至少一个扩展值,响应于对所述条件的验证,将所述至少一个扩展值的每个字节映射到所述基础环的元素,这提供了与所述至少一个扩展值对应的映射值。
可替代地,所述设备可进一步被配置成检查辅助条件,所述辅助条件包括将所述映射值中的至少一些与所述参考值进行比较,所述设备被配置成,如果至少一个所述映射值不同于参考值,则触发所述密码方案的所述运算的终止。
所述设备可被配置成,如果所述辅助条件被验证,则返回所述映射值中的一个作为运算结果。
所述第一执行单元可被配置成在多个参考环内执行所述运算,这提供了一组参考值,而所述第二执行单元被配置成在与一个或多个参考环相对应的唯一扩展环内执行所述运算。
还提供了一种用于执行密码方案的系统,密码方案包括使用至少一个秘密密钥对原始数据的给定数据块进行的一组相继的运算,该系统包括根据任一前述权利要求的运算执行设备,所述运算执行设备被配置成保护所述密码方案的至少一个运算。
所述运算执行设备可应用于所述密码方案的每个运算。
所述密码方案可以包括多轮,并且所述运算执行设备可被应用于保护至少一轮的至少一个运算。
所述密码方案可以是先进加密标准方案,所述先进加密标准方案包括在每轮的第一非线性取代运算以及相继的运算,所述非线性取代运算根据查找表来将所述数据块的每个字节用另一字节替代。
所述相继的运算可以包括在每轮的最终组合运算,所述组合运算利用逐位XOR算子将数据块的状态的每个字节与轮密钥的块组合,而所述运算执行设备可以仅应用于所述最终组合运算至少一轮。
还提供一种执行密码方案的运算的方法,所述运算应用于原始数据的数据块的给定状态,所述运算限定在基础环内,所述基础环对应于起始环除以由所述起始环的至少一个元素生成的基础理想所得到的商数,所述方法包括:在至少一个参考环内从自所述数据块的所述当前状态所导出的状态执行运算,这为每个参考环提供了参考值,并且在与一个或多个参考环相对应的至少一个扩展环内从自所述数据块的所述当前状态所导出的状态执行运算,这为每个扩展环提供了至少一个扩展值,每个参考环是所述起始环除以参考理想所得到的商数,并且与一个或多个参考环相对应的每个扩展环是起始环除以所述基础理想与所述一个或多个对应的参考环的参考理想之积所得到的商数,所述方法还包括:取决于在为每个参考环所获得的参考值与为与所述参考环相对应的扩展环所获得的扩展值之间的条件的验证,根据参考值和/或扩展值中的至少一个来确定所述运算的结果。
还提供一种用于执行密码方案的运算的计算机程序产品,所述运算应用于原始数据的数据块的给定状态,所述运算被限定在基础环内,所述基础环对应于起始环除以由所述起始环的至少一个元素生成的基础理想所得到的商数,所述计算机程序产品包括:
-非暂态计算机可读存储介质;以及
-存储在所述非暂态计算机可读存储介质上的指令,当通过处理器执行时,所述指令使所述处理器:在至少一个参考环内从自所述数据块的所述当前状态所导出的状态执行运算,这为每个参考环提供了参考值,并且在与一个或多个参考环对应的至少一个扩展环内从自所述数据块的所述当前状态所导出的状态执行运算,这为每个扩展环提供了至少一个扩展值,每个参考环是所述起始环除以参考理想所得到的商数,并且与一个或多个参考环相对应的每个扩展环是所述起始环除以基础理想与所述一个或多个对应的参考环的参考理想之积所得到的商数,所述计算机产品程序进一步使得,取决于在为每个参考环所获得的参考值与为与所述参考环相对应的扩展环所获得的扩展值之间的条件的验证,根据参考值和/或扩展值中的至少一个来确定至少所述运算的结果。
本发明的实施例因此允许在故障攻击导致失效、不当运算或数据的改动之前检测故障攻击。
在考察附图和详细说明时,本发明的进一步的优点对于技术人员变得清晰。目的在于,任何附加的优点并入本文。
附图说明
附图并入该说明书且构成该说明书的部分,附图图示说明了本发明的各个实施例,并且连同上文给出的发明内容和下面给出的具体实施方式一起,用来解释本发明的实施例。
图1图示出根据一些实施例的密码系统,该密码系统包括实现密码方案的密码处理单元。
图2表示密码方案的相继的数学运算。
图3是描绘根据某些实施例的运算保护方法的流程图。
图4是描绘保护方法的条件步骤的本发明的实施例的流程图。
图5是保护方法的条件步骤的可替代实施例的流程图。
图6是描绘根据一个实施例的更新保护方法的数据块的当前状态的步骤的流程图。
图7是描绘根据实施例的包括辅助条件的保护方法的流程图。
图8是描绘根据某些实施例的包括在一个扩展环中的运算的执行以及在多个参考环内的运算的执行的实施例的流程图。
图9是描绘运算保护方法的示范性的实施例的流程图。
图10是描绘本发明在AES密码方案的一些运算中的示范性的应用的流程图。
图11表示AES方案的字节取代(subBytes)运算。
图12表示AES方案的行移位(shiftRows)运算。
图13表示AES方案的列混淆(MixColumns)运算。
图14表示AES方案的轮密钥加(AddRoundKey)运算。
图15是示出了根据一个实施例的本发明在AES密码方案的一个运算中的示范性的应用的流程图。
具体实施方式
本发明的实施例提供了根据其中会发生一组密码运算的应用系统的功能来对数据执行一组密码运算的改进的方法和系统。应用系统可以是嵌入式系统,例如实现密码运算来保护数据的智能卡。
图1图示出系统100,该系统100包括实现密码方案1(例如加密方案、解密方案或签名方案)的密码单元10(也称为密码系统),使用至少一个秘密密钥K来保护进入数据(incoming data)的数据部分(下文也称为数据块)。进入数据可以是例如包括N个数据块的二进制数据(对于加密方案称为“明文”),每个块是进入的二进制数据的K位字。作为加密方案1所定义的运算的执行的结果,密码系统100输出受保护的数据块(对于加密方案称为“密文”)。
如本文所使用的,“密钥”或“秘密密钥”是指用来实现密码运算的参数。每个密钥可以是任意位大小。密码方案包括一组相继的运算,每个运算执行于在给定起始环中的数据块2的当前状态。密码方案1可以包括例如对称密钥密码函数如AES方案(先进加密标准),不对称密钥密码函数、哈希函数,等等。
密码单元10可以包括利用密钥对数据块2执行一轮或多轮的一组相继的运算(例如,对明文的加密运算和/或对密文的解密运算)的逻辑。密钥可以由密钥存储单元(未示出)来提供。相继的运算4的结果可以加载到结果存储单元内。
为利于理解本发明的一些实施例,一些要素和符号的定义提供如下:
-环(ring)表示具有辅助二进制运算(second binary operation)的通信群,辅助二进制运算是关联的、分布于群运算之上且具有身份元素。通常,两个群运算是加和乘。例如,具有群运算+,×的整数环
Figure GDA0002423239080000071
是具有加中性元素0和乘中性元素1的环。
–域(field)是一种环,其非零元素在乘下形成了可交换群。例如,
Figure GDA0002423239080000072
不是域。然而,有理数集合
Figure GDA0002423239080000073
是域。
–有限域是指具有有限数量元素的域。由于大小为n的所有域是同构的,所以具有n个元素的域通常标记为
Figure GDA0002423239080000074
是包含0和1的较小的域。加是异或(XOR)位运算,乘是与(AND)位运算。
–环A的理想I是A的子群,其通过乘法是稳定的:对于I中的每个元素x以及A中的每个元素a,ax∈I。例如,在环
Figure GDA0002423239080000075
中,5的倍数是一个理想,标记为
Figure GDA0002423239080000076
–两个理想I,J的乘积,标记为IJ,是所有元素xy生成的理想,其中x∈I且y∈J。考虑A的理想I,以及a,b∈A,如果a-b∈I,,则a和b对I取模相等。
–商环A/I是A对I取模的元素。如果a和b对I取模相等,则a和b由A/I中的同一元素表示。
–如本文所使用的,将a或b映射到A/I中的同一元素的运算称为a”模归约(a”modular reduction)。元素a对理想I取模的模归约因此将指代包含将a映射到A/I中的元素的运算。在下面对本发明的一些实施例的说明中,表达“归约值”或“映射值”将用来指代模归约的结果;
–当环A是整数环
Figure GDA0002423239080000077
且理想I是
Figure GDA0002423239080000078
时,则按规约,A/I由0与n-1之间所包含的整数来表示。元素a对理想的模归约(the modular reduction of an element a by the ideal)包括返回a除以n的余数。
–当A是具有元素数量pm的有限域时,其中p是素数,且I是多项式P的倍数的理想,标记为(P),则A/I(A除以I求商数)由小于P的次数(degree)的多项式域A中的系数表示。元素A对理想的运算模归约包括返回a除以P的余数。
Figure GDA0002423239080000079
中的元素x记为“x mod I”。
–如果1可以写为元素I和J的组合,则两个理想I,J是所述互素数。例如,在
Figure GDA0002423239080000081
中、
Figure GDA0002423239080000084
Figure GDA0002423239080000083
是互素数,因为10-9=1且
Figure GDA0002423239080000085
Figure GDA0002423239080000086
Figure GDA0002423239080000087
不是互素数。
此外,如本文所使用的:
–起始环,记为A,与对数据块的密码运算有关,是指为密码运算所定义的环;
–基础环,记为A/J,是指所述起始环除以由所述起始环的至少一个元素生成的基础理想J所得到的商数;
参考环,记为A/Ik,是指所述起始环除以参考理想Ik所得到的商数,k是整数;
扩展环,记为A/JIk1Ik2…IkN,是指起始环除以基础理想Ik1Ik2…IkN和参考理想J之积所得到的商数;
扩展值,记为Cr,k1k2…kN,是指在扩展环中运行的密码运算的结果;
参考值,记为Ck,是指在参考环A/Ik中运行的密码运算的结果。
根据本发明的方案,密码系统100还包括运算执行单元12,其用于在给定的基础环内执行密码方案1的至少一个运算。该运算执行单元12可以包括:第一执行单元120,其用于在至少一个参考环内从自数据块的当前状态m所导出的数据块的状态m’执行运算;以及第二执行单元122,其用于在至少一个扩展环内且通过检查如下之间的条件来执行运算:
-从在一个或多个参考环内执行的运算的结果所导出的至少一个值,以及
-从在一个或多个扩展环内执行的运算的结果所导出的至少一个值。
如果条件未被验证,则检测到故障攻击,并且终止单元14可以终止密码单元10对运算的执行。另外,可以触发警告或者可以通知错误。
如果条件被验证,则密码单元10对运算的执行继续。运算的结果是在参考环内执行和/在扩展环内执行的。
另外,可以触发警告或者可以通知错误。
运算执行单元12还可以包括状态更新单元123,其被配置成根据基础理想J中选定的元素来更新数据块的当前状态。
本发明的实施例因此允许在故障攻击导致失效或不当运算或数据的改动之前,对通过故障攻击所触发的组件或系统级处的异常条件或缺陷的检测。
如图2中所示,给定报文的密码保护通常是通过将一个或多个相继的数学运算应用于该报文来实现,运算是至少一个秘密密钥的函数且定义在环A中。
常规的密码处理方法开始于数据块的初始状态m0的接收(200)。
在步骤202中,轮索引i被初始化。对于每轮i(204),在给定的环内执行一组相继的运算(步骤206至210)。这包括,在步骤206中,在给定环内对数据块的初始状态m0运行第一运算,这提供了数据块的新状态m0 (1)。在步骤208中,随后在给定环中对报文的新状态m0 (1)运行下一运算(运算2),这提供了报文的新状态m1 (1)。当已经执行了最后一轮时,在步骤216中返回运算结果。
其余的运算j类似地对报文的每个状态mj (1)执行,直至运行了最后的运算p(步骤210),其提供了当前轮的数据块的最终状态mp-1 (1)。如果密码方案包括多轮相继的运算,则基于前一轮i-1所获得的数据块的最终状态mp-1 (i-1),对于每一轮I将步骤206至212迭代。
为克服常规密码处理方法对故障攻击的脆弱性,提供了一种以保护运算免于故障攻击的方式来执行由密码方案在起始环内定义的一组相继的数学运算中的至少一个运算的方法(运算执行方法在下文中还称为“运算保护方法”)。
图3是描绘根据一些实施例的运算保护方法的流程图。
运算保护方法可应用于仅一个运算,应用于全部运算,或者应用于由加密方案在起始环A内定义的一组相继的运算中的一组选定运算。所保护的运算的数量可取决于密码方案本身和/或所要求的保护的级别f。此外,运算保护方法可应用于仅一轮或者应用于多轮,取决于本发明的应用和/或与攻击有关的标准,例如被标识为能被攻击者定为目标的值。例如,在AES中,攻击者通常将在最后一轮中引入故障或者在最后一轮的前一轮中引入故障。因此,在该示例中,该保护方法至少应用于最后两轮。
运算保护方法应用于一组相继的运算的每个目标运算,目标运算被限定在基础环内,所述基础环对应于起始环A除以基础理想J所得到的商数。运算保护方法开始于在步骤300中接收数据块(例如,报文的块)的当前状态。报文的状态可由于先前运算而经历多次改变(无论是否受保护)。
在步骤302中,可以修正数据块的当前状态m,例如通过从当前状态导出修正后状态m’。
在步骤304中,要保护的运算在每个参考环A/Ik内执行(303),这提供了与参考环A/Ik内的运算的执行结果相对应的参考值Ck。每个参考环代表了起始环A除以参考理想Ik所得到的商数。
在步骤307中,要保护的运算进一步在一组扩展环A/JIk1Ik2…IkN中的每个扩展环内执行(306),每个扩展环取决于一个或多个扩展环A/Ik1,A/Ik2,…,A/IN,这为每个扩展环A/JIk1Ik2…IkN提供了中间扩展值Cr,k1k2…kN(数N小于或等于参考环数)。与一个或多个参考环A/Ik1,A/Ik2,…,A/IN对应的每个扩展环A/JIk1Ik2…IkN表示起始环A除以基础理想J与对应的参考环的参考理想Ik1,Ik1,…,IkN之积所得到的商数。
在步骤312中,判定在从一个或多个参考值Ck所导出的参考参数与从对应的扩展值Cr,k1k2…kN所导出的扩展参数之间的条件是否满足。
如本文所使用的,如果扩展环是起始环A除以基础理想和与包含特定参考环的所述参考环相关联的一个或多个参考理想之积所得到的商数,则扩展环被称为“对应于”或“取决于”该特定参考环。
在一个实施例中,条件步骤312可以包括,对于每个参考环A/Ik(框310),在作为在该参考环内执行运算的结果所获得的参考值Ck与从作为在扩展环内执行运算的结果而获得的中间扩展值Cr,k1k2…kN(索引ki之一等于k)所导出的扩展参数之间的比较取决于所考虑的参考环A/Ik
如果对于至少一个参考环不满足该条件,则在步骤314中,检测到对运算的故障攻击,并且可以终止密码方案的运算的执行。另外,可以将报告通知给监视系统100的运算的监视设备。
如果对于每个参考环满足该条件,则在步骤318中运算值m”可以根据参考值Ck和/或中间扩展值Cr,k1k2…kN来确定。运算值m”可以存储为数据块的新的当前状态,以便用于密码方案的下一运算的执行或者密码方案的下一轮。否则,如果已经运行了密码方案的全部运算和轮,则运算值可以返回给用户。
这允许结果完整性的高度确保。此外,安全参数与参考理想Iki的大小有关(典型地,故障检测概率等于1-1/|Iki|,Iki的大小通常是素数)。
如此所获得的保护可与诸如物理传感器或更高级检查(如果报文被加密且然后解密,则通过检查初始报文来验证计算…)的其它保护解决方案互补。
图4是描绘了本发明的实施例的流程图,其中根据对于每个中间扩展值所计算的扩展参数来确定条件步骤。图4的流程图的主要步骤类似于图3的流程图,但是运算保护方法还包括如下步骤:对于每个中间扩展值Cr,k1k2…kN,将中间扩展值的每个字节对每个参考理想Ik1,Ik2,…,IkN归约取模以获得每个参考环的一组扩展值C’k1,C’k2,…,和C’kN(即,对于每个参考环Iki,中间扩展值的每个字节映射到参考环Iki的一个元素,这对于包括与中间扩展值的字节相对应的映射字节的每个参考环提供了映射值,所述一组扩展值C’k1,C’k2,…,和C’kN包括映射值)。
此外,在这样的实施例中,在步骤312中,扩展参数是从根据在取决于参考环A/Iki的扩展环内执行运算所获得的每个扩展值C’k导出的。更具体地,对于每个参考环A/Iki,在步骤312中,判定作为在参考环A/Iki中执行运算的结果而获得的参考值Cki与从根据在取决于参考环A/Iki的每个扩展环内执行307运算和归约步骤308所获得的扩展值C’ki所导出的扩展参数之间的条件是否满足。
图5是描绘根据一个特定实施例的条件步骤312的流程图。在该实施例中,对于每个参考环A/Iki(500),条件步骤包括:将作为在参考环A/Iki内执行运算的结果而获得的参考值Cki与根据在取决于参考环A/Iki的扩展环内的运算执行步骤307和归约步骤308所获得的每个扩展值C’ki的比较(502)。每个参考环内的每个扩展值C’ki因此被用作诸如扩展参数。在一个实施例中,该条件可以包括:将参考值Cki和每个扩展值C’ki比较,如果值Cki和值C’ki相等则满足该条件(504)。对于每个参考环,步骤312可以迭代与取决于参考环的扩展环的数量一样多的次数。
图6是描绘根据一个实施例的更新数据块的当前状态的步骤(图3和图4中的步骤302)的流程图。
在步骤600中,选定参考环的一组K个元素。该选定可以随机地执行。
在步骤602中,根据在基础理想J中选定的K元素更新数据块的当前状态,这修正了数据块的当前状态。
在一些情况下,在没有修正输入报务块的情况下,执行的运算可能不足够复杂。结果,可能不会检测到错误。例如,如果m=0,则在每个参考环和每个起始环内数据块m将等于0。
优选地,当前状态的更新可以随机地执行,以添加针对诸如DPA的一些边信道分析的保护。
更新数据块的当前状态的这一步骤可以利用对J归约取模(reduction modulo J)来执行。所述K个元素可以根据不同的选择标准在基础J中选定。特别地,可以在基础J中随机地选定所述K个元素。还可以随机地预先计算这K个元素。可替代地,K个元素可以是常数。
应当注意,基础理想J中的K个元素的随机选择允许添加针对诸如DPA的一些边信道分析的保护。
例如,密码方案是AES,保护方法可在环
Figure GDA0002423239080000121
内应用于AES的运算中的一个,Q是在次数为k的
Figure GDA0002423239080000122
上的不可约多项式,P是代表作为P的倍数的全部多项式集合的
Figure GDA0002423239080000123
的理想。(P)称为
Figure GDA0002423239080000124
的基础理想,其中:
(P)={P,...,XP,X2P,...,(X+1)P,(X+1)2P,...}
在该AES示范性应用中,步骤500可以包括:随机选择K个多项式Ri来使报文随机化,并且步骤502可以包括将数据块的当前状态mi的每个位i添加到PRi中,其中PRi是多项式二进制乘法。
在每个参考环A/Ik内的扩展值C’k从取决于参考环A/Ik的扩展环内的运算的执行(步骤307)和归约步骤(步骤308)来计算的实施例中,运算保护方法可以包括:在步骤318返回运算值之前,如果条件步骤312的全部迭代成功,则检查与参考值和每个参考环C’k的扩展值有关的辅助条件。
图7是描绘根据该实施例的包括辅助条件的保护方法的流程图。
图7的流程图的步骤类似于图4的流程图的步骤,但是运算保护方法还包括:如果步骤312的主要条件对于全部参考值满足,则步骤319包括,对于每个扩展值,每个参考环C’k的扩展值的每个字节对基础理想J归约取模,这提供了C”k(即,每个参考环C’k的扩展值的每个字节映射到基础环J的元素,如此获得的映射值提供扩展值C”k)。
可以在步骤321中检查辅助条件。步骤321可以包括:判定与参考环相对应地获得的归约后扩展值C”k是否相等。如果至少一个归约后扩展值C”k不同于其它归约后扩展值,则检测到错误,其可以代表故障攻击,并且运算的执行在步骤322中终止,类似于步骤314。否则(即,全部的归约后扩展值C”k相等),则在步骤324中返回运算结果,类似于图4的步骤318。
在一个实施例中,运算保护方法可以包括:在步骤307中仅在一个扩展环内执行运算,以及在一组参考环内执行运算。
图8是描绘根据一些实施例在一个扩展环内执行运算以及在多个参考环内执行运算的这样的实施例的流程图。步骤800、802、804、805、806分别类似于图3的步骤300、302、304、305和306。步骤811类似于图4的步骤307。
然而,在步骤810中,中国余数定理(CRT)变换可以应用于作为在N个参考环A/I1,…,A/Ik,..A/IN内的每个参考环内执行运算的结果而获得的N个参考值C1,…,Ck,…CN,这提供了从N个参考值所导出的唯一值,下文称为参考参数。
在步骤812中,条件包括参考参数与作为在唯一扩展环A/JI1I2…IN内执行运算的结果而获得的唯一扩展值Cr,1,2,…,N之间的比较(步骤811)。
因此,执行条件步骤812的唯一迭代。特别地,该条件可以包括:判定扩展值Cr,1,2,…,N是否等于参考参数C1,…,N,并且如果为否,则终止步骤814中的如之前关于图3的步骤318所描述的密码方案的运算。否则,如果条件满足(Cr,1,2,…,N=C1,…,N),则扩展值的每个字节或参考参数可以对基础理想J归约取模(即,扩展值的每个字节或参考参数可以映射到基础环J的元素,这提供了由对应于扩展值的字节或参考参数的映射字节所形成的映射值),并且归约值(对应于映射值)可以作为步骤816中的运算结果m”返回。可以基于数据块的状态m”来继续进行其余的密码运算或轮的执行,同时确保没有对运算执行的故障攻击。
CRT(中国余数定理)变换假设,如果I,J是A中的两个互素数理想,则在商环A/(IJ)与A/I×A/J之间存在同构。也即,对于对(a,b),其中a∈A/I且b∈A/J,在A/(IJ)中存在唯一对应元素。相互地,对于任意元素x∈A/(IJ),在对应于x的A/I×A/J中存在唯一元素对。中国余数定理还可以归纳成多个理想逐对互素数。
步骤810具体地使用CRT变换A/I1×A/I2×...×A/IN→A/(I1…IN)来从(C1,C2,...CN)∈A/I1×A/I2×...×A/IN确定C1,…,N∈A/(I1...IN)。
这包括定义i1,...,k∈I1...Ik,使得对于某ik+1∈Ik+1,i1,...,k+ik+1=1。可以利用扩展欧几里德算法来计算它们。这还包括定义x1,...,k元素验证:
-x1,...,k=C1 mod I1
-x1,...,k=Ck mod Ik
寻求值C1,…,N∈A/(I1...IN)将被获得作为C1,...,N=x1,...,N
x1,...,N可以根据CRT递归地构造如下:
1-开始时,x1被设定为等于C1(x1=C1)。
2-x2则被设定为等于x2=x1+(C2-x1)i1 mod I1I2
3-x1,...,k,k+1则由x1,...,k构造:
x1,...,k,k+1=x1,...,k+(Ck+1-x1,...,k,k+1)i1,...,kmod I1...IkIk+1
则对于k+1=N(C1,...,N=x1,...,N-1,N)获得C1,...,N
图9是示出运算保护方法的另一示范性实施例的流程图,该运算保护方法包括在一组扩展环内执行运算以及在一组参考环内执行运算,每个扩展环A/JIkiIkj是起始环A除以基础理想J与两个参考环A/Iki和A/Ikj的参考理想Iki,Ikj之积所得到的商数。步骤900、902、904、905、906分别类似于图4的步骤300、302、304、305和306。步骤907和908类似于图4的步骤307和308。
在每个参考环A/Ik内的运算的执行(步骤904,905)提供了参考值Ck。在步骤910中,CRT应用于作为每个参考环A/Iki和A/Ikj内的运算的执行的结果而获得的一组参考值对{Cki,Ckj},这对于参考环{A/Iki,A/Ikj}对提供了唯一参考值Ckikj,下文称为对参考参数。
对于每对参考环{A/Iki,A/Ikj},在取决于参考环A/Iki和A/Ikj的每个参考环A/JIkiIkj内进一步执行运算(步骤908),这提供了中间扩展值。在步骤909中,如此获得的扩展值Cr,ki,kj的每个字节对乘积IkiIkj归约取模,这对于每个扩展环提供了对扩展值C’ki,kj(即,扩展值Cr,ki,kj的每个字节映射到环由参考理想的乘积IkiIkj求商的环A/IkiIkj的元素,这提供了包括与扩展值的字节相对应的映射字节的映射值,映射值形成对扩展值C’ki,kj)。
对于每对参考环{A/Iki,A/Ikj}迭代条件步骤912。对于每对参考环{A/Iki,A/Ikj},步骤912包括检查包括对参考参数Ckikj与作为在扩展环A/JIkiIkj内的运算(步骤908)和归约步骤909的执行的结果而获得的对应的对扩展值Ckikj之间的比较的条件。
特别地,该条件可以包括:判定对扩展值C′kikj是否等于对参考参数Ckikj,并且如果为否,则终止步骤914中的密码方案的运算,如之前所述的。否则,如果条件满足(C′kikj=Ckikj),则参考值的每个字节或参考参数可以对基础理想J归约取模(即,扩展值的每个字节或参考参数映射到基础环J的元素,这提供了与扩展值的字节相对应的映射字节所形成的映射值),并且归约值(对应于映射值)可以作为步骤916中的运算结果m”返回,如关于图3所描述的,从而继续执行其余的密码运算或轮。
在步骤910中所应用的CRT运算是CRT变换A/Iki,A/Ij→A/(IkiIkj)。
根据该CRT变换运算,如果Iki和Ikj是互素数,则存在i∈Iki和j∈Ikj而使得i+j=1。从(Cki,Ckj)∈A/Iki×,A/Ikj中获得元素Ckikj∈A/(IkiIkj)。换句话说,可以确定Ckikj∈A/(IkiIkj)而使得Ckikj=CkimodIki且Ckikj=Ckjmod Ikj
这包括使用例如扩展欧几里德算法来找到元素i,j。这些元素还可以预先计算出且被存储。
Ckikj则设定为x=Ckij+Ckimod IkiIkj
可替代地,Ckikj还可以计算为Ckikj=(Cki-Ckj)j+Ckjmod IkiIkj。这样,仅须计算j。
虽然图9的实施例已经参考其中在三个参考环内以及在两个扩展环(每个扩展环取决于一对参考环)内执行运算的示例来说明以利于理解实施例,更一般地,该实施例可用于在如下中执行运算:
-任意数量的参考环(904),以及
-在至少两个扩展环内(907),每个扩展环取决于一组参考环。
根据该实施例,运算保护方法可以包括:
-将CRT变换(910)应用于作为在对应于一个扩展环的每组参考环内执行运算的结果而获得的参考值,这提供了与每一组所述参考环有关的共同参考参数,
-对于作为在取决于给定组参考环的一个扩展环内执行运算的结果而获得的每个扩展值,将扩展值的每个字节对一组参考环中的每个参考环的参考理想的乘积归约取模(908),提供了共同扩展参数。
条件步骤(912)则可以包括与给定的一组参考环有关的每个共同参考参数与为取决于该组参考环的扩展环所获得的共同扩展参数之间的比较。
即使不限于对称密码方案,本发明具有在对称密码方案中(相同的关键词用于加密和解密,与公钥密码系统不同)以及尤其是对于AES密码方案保护密码运算来应对故障攻击的特别的优点。
图10是示出了本发明示例性应用于AES密码方案的一些运算的流程图。图10的流程图类似于图2的流程图,但是根据保护方法来保护一些AES运算。
先进加密标准(AES)是2001年标准化的对称加密方案的规范。
AES密码方案包括对128位数据块(或报文)执行一组相继的运算的轮(或重复)。其支持三种不同的密钥长度,并且轮数对于每个密钥长度是固定的:
-对于128位密钥,轮数是10
-对于192位密钥,轮数是12
-对于256位密钥,轮数是14
AES密码方案包括在4x4字节的矩阵所表示的128位块上运算的4不同的运算:
-字节取代运算,据此,数据块的当前状态的每个字节由固定的8位查找表S中的其输入项(bij=S(aij))来替代,如图11所示。
-行移位运算,据此,数据块的当前状态的每行中的字节循环地向左移位,每个字节移位的位置数对于每行来说是不同的,如图12所示。
-列混淆运算,据此,数据块的当前状态的每列乘以固定多项式c(x),如图13所示,以及
-轮密钥加运算,据此,利用XOR运算,将报文的当前状态的每个字节与轮的子密钥(round subkey)的一个字节组合,如图14所示。
AES使用每个数据块中所包含的二进制值表示成多项式的环
Figure GDA0002423239080000161
(对应于起始环A),其中全部多项式是二进制值的表示。
在域
Figure GDA0002423239080000162
上的多项式环
Figure GDA0002423239080000163
被定义为一组表达,称为如下形式的X的多项式:
P=a0+a1X+a2X2+…+an-1Xn-1+anXn
其中a0,a1,...,an
Figure GDA0002423239080000171
的元素。它们称为P的系数。如果an≠0,则n称为P的次数。
商环
Figure GDA0002423239080000172
是包含
Figure GDA0002423239080000173
上的多项式的环,其中如果它们除以P的余数相同,则两个多项式Q,R在
Figure GDA0002423239080000174
上相同。
这意味着,对于
Figure GDA0002423239080000175
中的任意R,Q和Q+RP在
Figure GDA0002423239080000176
上相同。
Figure GDA0002423239080000177
的元素由小于n的次数的多项式来表示。一般地,
Figure GDA0002423239080000178
中的加和乘被执行对P取模,因而结果是小于n的次数的多项式。
一个性质是,如果P是不可约的,则
Figure GDA0002423239080000179
是域。
如果
Figure GDA00024232390800001710
是m元素的有限域,并且P是次数为n的不可约多项式,则
Figure GDA00024232390800001711
是次数为mn的域。其因此可记为
Figure GDA00024232390800001712
(参见之前的部分)。
Figure GDA00024232390800001713
可以由次数为n的
Figure GDA00024232390800001714
上的任何不可约多项式来表示。
AES密码方案的大部分运算(字节取代、列混淆和轮密钥加)具体地被限定在称为Rijndael有限域的基础域上并且记为
Figure GDA00024232390800001715
其中归约多项式P=X8+X4+X3+X+1限定在
Figure GDA00024232390800001716
上。
Figure GDA00024232390800001717
还可以记为
Figure GDA00024232390800001718
在图10的实施例中,对于每轮,运算保护方法应用于以下运算中的每一个:
-行移位运算(步骤925);
-列混淆运算(步骤926),以及
-轮密钥加运算(步骤927)。
字节取代运算(923)的执行可以根据Rijndael有限域中的常规方法来执行。
可替代地,运算保护方法可在一轮期间内、全部轮内或者选定数量的轮内应用于仅一些先前的运算。
图15是示出对应于图3的实施例的、本发明示范性应用于AES密码方案的一个运算的流程图。为利于理解本申请,将使用与图3所使用的附图标记相似的附图标记,但是图15的流程图对应于特定的实施例和应用。
在下面的说明中,Q是次数为k的
Figure GDA00024232390800001719
上的不可约多项式。
在步骤302中,次数为k的随机多项式的数量被选定(例如,16个随机多项式)。这包括选择长度为k的随机位串。每个位表示多项式的系数。使用随机多项式允许针对边信道攻击来进行保护。为了仅针对故障攻击进行保护,可以可替代地从ROM加载常数多项式。
选项的多项式Ri用于随机化报文。利用多项式二进制乘法,报文mi的每个字节与PRi相加,这提供了报文的修正状态。
在步骤304中,AES运算运行于每个参考环
Figure GDA0002423239080000183
上,多项式Qk表示参考环
Figure GDA0002423239080000184
的参考理想,这为每个参考环提供了参考值
Figure GDA0002423239080000185
在步骤307中,在每个扩展环
Figure GDA0002423239080000186
内执行AES运算,P是基础环的基础理想,N小于或等于参考环的总数,
Figure GDA0002423239080000187
表示扩展环所取决于的参考环
Figure GDA0002423239080000188
之一的参考理想,这对于每个扩展环
Figure GDA0002423239080000189
提供了中间扩展值
Figure GDA0002423239080000181
在步骤308中,对于每个扩展环
Figure GDA00024232390800001810
所获得的结果
Figure GDA0002423239080000182
的每个字节对每个多项式
Figure GDA00024232390800001811
归约取模,这为所考虑的扩展环
Figure GDA00024232390800001812
提供了N个扩展值
Figure GDA00024232390800001813
Figure GDA00024232390800001814
每个归约结果
Figure GDA00024232390800001815
则等价于已经从在域
Figure GDA00024232390800001816
上执行AES运算所获得的AES运算的结果。在步骤312中,对于参考环
Figure GDA00024232390800001817
(框310),判定作为在参考环
Figure GDA00024232390800001818
上执行运算(步骤304)的结果而获得的每个参考值
Figure GDA00024232390800001819
是否等于在步骤308中对于取决于该参考环
Figure GDA00024232390800001820
的扩展环
Figure GDA00024232390800001821
(索引ki之一等于k)所获得的不同的扩展值
Figure GDA00024232390800001822
如果对于每个参考值
Figure GDA00024232390800001823
和每个对应的扩展值
Figure GDA00024232390800001824
满足步骤312中的条件,则在步骤318中至少一个扩展值
Figure GDA00024232390800001825
的每个字节进一步对P归约取模。所获得的结果则等价于直接从在域
Figure GDA00024232390800001826
内执行AES运算所获得的结果。所获得的值可以在步骤318中返回且可以作为数据块的新状态用于其余的AES运算或轮。在一个实施例中,如关于图7的步骤318至324所描述的,作为步骤306至308的结果而获得的扩展值的全部或子集可以被对P归约取模并且全部一起比较,对两个归约后的扩展值之间的失配的检测触发错误报告和/或运算的终止。
否则,如果在步骤312中判定出至少一个参考值
Figure GDA0002423239080000191
不同于一个对应的扩展值
Figure GDA0002423239080000192
则会发生错误,该错误源自于故障攻击,不会返回结果。运算可以在步骤314中终止。
应当注意的是,图12的流程图的以上描述对应于仅有一个参考环和一个扩展环的运算保护方法的简化的实施例。技术人员易于理解的是,AES应用不限于该实施例,还适用于使用多个多项式Q1,…,QN作为参考理想的多个参考环的使用,以及适用于取决于如结合图3、图4、图5、图6、图7、图8和图9所描述的一个或多个参考环的多个扩展环。
虽然已经通过对各个示例的说明阐明了本发明的实施例,以及虽然非常详细地描述了这些实施例,申请人的意图不是将随附权利要求的范围限制或以任何方式限定到这些细节。因此,本发明在其更宽泛的方面不限于所图示和描述的具体的细节、代表性的方法和示例性的示例。特别地,运算保护方法可在一轮或多轮期间应用以执行同一密码方案(也称为密码算法)的一个或多个运算。进一步,本发明可应用于任何对称或不对称的密码方案。而且,运算保护方法可使用从一个或多个参考环的参考值所导出的参考参数与从对应的扩展环导出的扩展参数之间的任意条件312。而且,技术人员将易于理解的是,在扩展环内执行所考虑的运算的步骤(306-309)可以相对于在参考环内执行所考虑的运算的步骤依照任意顺序来实现(303-305),而无关于用来指代这些步骤的附图标记。例如,在扩展环内执行所考虑的运算的步骤(306-309)可以与执行参考环内的所考虑的运算的步骤(303-305)同时实现,在其之前实现或者在其之后实现。

Claims (18)

1.一种用于执行密码方案的运算的设备,所述运算应用于原始数据的数据块的给定的当前状态,所述运算被限定在基础环内,所述基础环对应于起始环除以由所述起始环的至少一个元素生成的基础理想所得到的商数,其中,所述设备包括:
-第一执行单元(120),其被配置成在至少一个参考环内对自所述数据块的当前状态所导出的状态执行所述运算,这为每个参考环提供了参考值,每个参考环是所述起始环除以参考理想所得到的商数,以及
-第二执行单元(122),其被配置成在与所述参考环中的一个或多个相对应的至少一个扩展环内对自所述数据块的所述当前状态所导出的所述状态执行所述运算,这为每个扩展环提供了至少一个扩展值,扩展值包括一个或多个字节,每个扩展环是所述起始环除以所述基础理想与所述一个或多个对应的参考环的参考理想之积所得到的商数,
所述设备进一步被配置成,取决于在为每个参考环所获得的参考值与为与所述参考环相对应的扩展环所获得的扩展值之间的条件的验证,根据所述参考值和/或所述扩展值中的至少一个来确定所述运算的结果。
2.如权利要求1所述的设备,其中所述设备进一步包括状态更新单元(123),所述状态更新单元被配置成:
-选择所述基础理想中的一组元素;
-根据所述选定元素来修改所述数据块的所述当前状态,这提供了自所述数据块的所述当前状态所导出的所述状态。
3.如权利要求1所述的设备,其中所述第二执行单元被配置成:
-在所述扩展环内对自所述数据块的当前状态所导出的所述状态执行所述运算,这为每个扩展环提供了中间值,中间值包括一个或多个字节;
-将对所述扩展环内的运算的执行所得到的中间值的每个字节映射到与参考环相关联的所述参考环的元素,这提供了与所述参考环相对应的扩展值,
其中所述条件包括每个参考值与对应于所述参考环的扩展值之间的比较。
4.如权利要求3所述的设备,其中如果每个参考值匹配与所述参考环相对应的每个扩展值,则所述条件被验证,所述运算的结果取决于对于每个参考值对所述条件的验证。
5.如权利要求3所述的设备,其中所述第一执行单元被配置成在至少两个参考环内执行所述运算,并且所述第二执行单元被配置成在取决于全部参考环的唯一扩展环内执行所述运算,所述设备进一步被配置成将CRT变换应用于由所述第一执行单元确定的全部参考值,这提供了与一组参考环有关的参考参数,所述条件包括判定与所述一组参考环有关的参考参数是否等于与对于由所述至少两个参考环的参考理想的乘积所表示的理想中的扩展环所获得的扩展值相对应的元素。
6.如权利要求3所述的设备,其中所述第一执行单元被配置成在至少两个参考环内执行所述运算,并且所述第二执行单元被配置成在至少两个扩展环内执行所述运算,每个扩展环取决于一组参考环,所述设备还包括将CRT变换应用于由所述第一执行单元确定的每个参考值,这提供了与每一组所述参考环有关的共同参考参数,所述设备还包括:对于作为在取决于给定的一组参考环的扩展环中执行所述运算的结果而获得的每个扩展值,将所述扩展值的每个字节映射到除以所述一组参考环中的每个参考环的参考理想的乘积求商的环的元素,这提供了共同扩展参数,其中所述条件包括将与给定的一组参考环有关的每个共同参考参数与对于取决于所述一组参考环的扩展环所获得的共同扩展参数进行比较。
7.如权利要求1所述的设备,其中所述设备进一步被配置成,对于至少一个扩展值,响应于对所述条件的验证,将所述至少一个扩展值的每个字节映射到所述基础环的元素,这提供了与所述至少一个扩展值对应的映射值。
8.如权利要求7所述的设备,其中所述设备进一步被配置成检查辅助条件,所述辅助条件包括将所述映射值中的至少一些与所述参考值进行比较,所述设备被配置成,如果至少一个所述映射值不同于参考值,则触发所述密码方案的所述运算的终止。
9.如权利要求8所述的设备,其中所述设备被配置成,如果所述辅助条件被验证,则返回所述映射值中的一个作为运算结果。
10.如前述权利要求1至9中任一项所述的设备,其中所述第一执行单元被配置成在多个参考环内执行所述运算,这提供了一组参考值,并且所述第二执行单元被配置成在与一个或多个参考环相对应的唯一扩展环内执行所述运算。
11.一种用于执行密码方案的系统,密码方案包括使用至少一个秘密密钥对原始数据的给定数据块进行的一组相继的运算,其中所述系统包括根据权利要求1至10中任一项所述的用于执行密码方案的运算的设备,所述运算执行设备被配置成保护所述密码方案的至少一个运算。
12.如权利要求11所述的系统,其中用于执行密码方案的运算的所述设备应用于所述密码方案的每个运算。
13.如权利要求11所述的系统,其中所述密码方案包括多轮,并且用于执行密码方案的运算的所述设备应用于保护至少一轮的至少一个运算。
14.如前述权利要求11至13中任一项所述的系统,其中所述密码方案是先进加密标准方案,所述先进加密标准方案包括在每轮的第一非线性取代运算以及相继的运算,所述第一非线性取代运算根据查找表来将所述数据块的每个字节用另一字节替代。
15.如权利要求14所述的系统,其中所述相继的运算包括在每轮的最终组合运算,所述组合运算利用逐位XOR算子将数据块的状态的每个字节与轮密钥的块组合,并且其中用于执行密码方案的运算的所述设备仅应用于所述最终组合运算至少一轮。
16.一种执行密码方案的运算的方法,所述运算应用于原始数据的数据块的给定的当前状态,所述运算被限定在基础环内,所述基础环对应于起始环除以由所述起始环的至少一个元素生成的基础理想所得到的商数,其中,所述方法包括:
在至少一个参考环内对自所述数据块的当前状态所导出的状态执行所述运算,这为每个参考环提供了参考值,并且在与所述参考环中的一个或多个相对应的至少一个扩展环内对自所述数据块的所述当前状态所导出的状态执行所述运算,这为每个扩展环提供了至少一个扩展值,扩展值包括一个或多个字节,每个参考环是所述起始环除以参考理想所得到的商数,并且每个扩展环是所述起始环除以所述基础理想与所述一个或多个对应的参考环的参考理想之积所得到的商数,所述方法还包括:取决于在为每个参考环所获得的参考值与为与所述参考环相对应的扩展环所获得的扩展值之间的条件的验证,根据所述参考值和/或所述扩展值中的至少一个来确定所述运算的结果。
17.一种执行密码方案的方法,所述密码方案包括使用至少一个秘密密钥对原始数据的至少一个数据块进行的一系列运算,其中所述方法将权利要求16所述的执行密码方案的运算的方法应用于所述密码方案的至少一个运算。
18.一种用于执行密码方案的运算的装置,所述运算应用于原始数据的数据块的给定的当前状态,所述运算被限定在基础环内,所述基础环对应于起始环除以由所述起始环的至少一个元素生成的基础理想所得到的商数,其中,所述装置包括:
非暂态计算机可读存储介质;以及
存储在所述非暂态计算机可读存储介质上的指令,当通过处理器执行时,所述指令使所述处理器:
在至少一个参考环内对自所述数据块的当前状态所导出的状态执行所述运算,这为每个参考环提供了参考值,并且在与所述参考环中的一个或多个对应的至少一个扩展环内对自所述数据块的所述当前状态所导出的状态执行所述运算,这为每个扩展环提供了至少一个扩展值,扩展值包括一个或多个字节,每个参考环是所述起始环除以参考理想所得到的商数,并且每个扩展环是所述起始环除以所述基础理想与所述一个或多个对应的参考环的参考理想之积所得到的商数,并且
取决于在为每个参考环所获得的参考值与为与所述参考环相对应的扩展环所获得的扩展值之间的条件的验证,根据所述参考值和/或所述扩展值中的至少一个来确定至少所述运算的结果。
CN201611233990.9A 2015-12-29 2016-12-28 用于保护密码运算的方法和系统 Active CN106936563B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP15307160.0A EP3188401B1 (en) 2015-12-29 2015-12-29 Method and system for protecting a cryptographic operation
EP15307160.0 2015-12-29

Publications (2)

Publication Number Publication Date
CN106936563A CN106936563A (zh) 2017-07-07
CN106936563B true CN106936563B (zh) 2020-07-17

Family

ID=55527195

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611233990.9A Active CN106936563B (zh) 2015-12-29 2016-12-28 用于保护密码运算的方法和系统

Country Status (3)

Country Link
US (1) US10461922B2 (zh)
EP (1) EP3188401B1 (zh)
CN (1) CN106936563B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015222968A1 (de) * 2015-11-20 2017-05-24 Robert Bosch Gmbh Betriebsverfahren für eine elektronische Vorrichtung und elektronische Vorrichtung
EP3217307B1 (en) * 2016-02-22 2018-11-07 Eshard Method of testing the resistance of a circuit to a side channel analysis of second order or more
DE102017117899A1 (de) * 2017-08-07 2019-02-07 Infineon Technologies Ag Durchführen einer kryptografischen Operation
WO2019031025A1 (ja) * 2017-08-10 2019-02-14 ソニー株式会社 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US11444767B1 (en) * 2021-03-03 2022-09-13 Nxp B.V. Method for multiplying polynomials for a cryptographic operation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1039752A (ja) * 1996-07-18 1998-02-13 Nippon Telegr & Teleph Corp <Ntt> 公開鍵暗号による通信および認証方法、ならびにそれらの装置
JPH1039751A (ja) * 1996-07-20 1998-02-13 Nippon Telegr & Teleph Corp <Ntt> 公開鍵暗号による通信および認証方法、ならびにそれらの装置
US5991415A (en) 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
US6144740A (en) * 1998-05-20 2000-11-07 Network Security Technology Co. Method for designing public key cryptosystems against fault-based attacks with an implementation
JP3615133B2 (ja) * 2000-08-08 2005-01-26 日本電信電話株式会社 代数体を用いた公開鍵暗号化復号方法及びシステム
FR2884088B1 (fr) 2005-03-31 2007-06-22 Gemplus Sa Procede et dispositif cryptographique permettant de proteger les logiques de cles publiques contre les attaques par faute
CN101442482B (zh) * 2007-11-13 2011-02-16 北京大学 一种基于反馈传播的分布式计算网络构建方法及其系统
CN101340280B (zh) * 2008-08-22 2011-08-03 四川虹微技术有限公司 一种流密码生成器

Also Published As

Publication number Publication date
US10461922B2 (en) 2019-10-29
EP3188401B1 (en) 2019-12-18
CN106936563A (zh) 2017-07-07
EP3188401A1 (en) 2017-07-05
US20170187519A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
CN106936563B (zh) 用于保护密码运算的方法和系统
Dobraunig et al. Cryptanalysis of ascon
Beierle et al. Improved differential-linear attacks with applications to ARX ciphers
US11362802B2 (en) Cryptographic device arranged to compute a target block cipher
US8971526B2 (en) Method of counter-measuring against side-channel attacks
Procter et al. On weak keys and forgery attacks against polynomial-based MAC schemes
US8595513B2 (en) Method and system for protecting a cryptography device
Rivain Differential fault analysis on DES middle rounds
EP2922234A1 (en) Protecting a white-box implementation against attacks
US10790962B2 (en) Device and method to compute a block cipher
Ramezanpour et al. A statistical fault analysis methodology for the ascon authenticated cipher
US11310030B2 (en) Cryptographic device and method
EP2996278A1 (en) Remapping constant points in a white-box implementation
EP3477889B1 (en) Using white-box in a leakage-resilient primitive
WO2014154270A1 (en) Tamper resistant cryptographic algorithm implementation
Clavier et al. Reverse engineering of a secret AES-like cipher by ineffective fault analysis
Selvanayagam et al. Secure file storage on cloud using cryptography
US9559838B2 (en) Method of processing data protected against fault injection attacks and associated device
Gruber et al. Persistent fault analysis of OCB, DEOXYS and COLM
Clavier et al. Complete reverse-engineering of AES-like block ciphers by SCARE and FIRE attacks
Medwed et al. A continuous fault countermeasure for AES providing a constant error detection rate
KR102327771B1 (ko) 테이블 기반 구현에서의 차수 2 이상의 dca 공격에 대응하는 방법
US11070358B2 (en) Computation device and method
Miyajan An Efficient Leakage Free Countermeasure of AES against Side Channel Attacks
Mendel et al. Cryptanalysis of Ascon

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant