CN102648600B - 由定制的掩蔽保护的低复杂度电子电路 - Google Patents
由定制的掩蔽保护的低复杂度电子电路 Download PDFInfo
- Publication number
- CN102648600B CN102648600B CN201080056401.9A CN201080056401A CN102648600B CN 102648600 B CN102648600 B CN 102648600B CN 201080056401 A CN201080056401 A CN 201080056401A CN 102648600 B CN102648600 B CN 102648600B
- Authority
- CN
- China
- Prior art keywords
- mask
- circuit
- circuit according
- word
- sub
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Abstract
本发明的主题是由掩蔽保护的密码电路,所述电路包括用于使用至少一个密钥kr c来加密二进制字的模块,用于将线性处理操作(216)和非线性处理操作(226)施加至所述字的模块以及用于掩蔽所述字的模块。通过使用掩码kr i在所述非线性处理操作的上游解掩蔽(214)所述二进制字,并且通过使用掩码kr+1 i在所述处理操作的下游掩蔽(215)所述二进制字,所述掩码kr i和kr+1 i选自特定于所述电路的每个实例的一组掩码。
Description
技术领域
本发明涉及通过以下方式来保护的电子电路:掩蔽(masking)和利用电路特定的定制,以便减少观测攻击范围并减少实现该保护的成本。本发明尤其适用于处理保密数据的电路的保护领域,其中一个示例是密码电路。
背景技术
在电子电路的运行期间,通过诸如功耗、计算时间或电磁辐射等物理量,能够观测到电子电路的活动性。
这些物理量取决于计算架构和在电路内处理的数据。因此,通过观测称为隐藏通道或辅助通道的所述量,可以在电路的外部间接获得关于所处理的数据的信息。
这些物理量的耗散可能危及处理(尤其是由密码方法保护的)机密数据的系统的安全。因此,如果通过使用对称密码算法来保护机密数据,保护的鲁棒性在于保持加密密钥机密的能力。通过实施适当的攻击,物理量的耗散可能使第三方获得所述密钥,从而访问机密数据。通过观测所述电路耗散的物理量的攻击通常简单称为观测攻击。在下文的描述中,使用观测攻击的方法来访问并非为其预备的数据的第三方称为攻击者,并且耗散的物理量称为泄漏或隐藏通道。
现今,存在强大的观测攻击,使访问由保护电路处理的数据成为可能。
因此,如P.C.Korcher,J.Jaffe和B.Jun在标题为Timing Attack onImplementations of Diffie-Hellman,RSA,DSS and Other Systems的、Proceedings of CRYPTO’96,1109 LNCS卷,104-113页,Springer-Verlag,1996的论文中所描述的,存在表示电路的数据处理时间的泄露的观测攻击。
例如,通过使用DPA型的方法,攻击者也能够使用电路的消耗的观测攻击,P.C.Korcher,J.Jaffe和B.Jun在标题为Differential Power Analysis的、Proceeding of CRYPTO’99,1666 LNCS卷,388-397页,Springer-Verlag,1999的论文中描述了这些类型的攻击。
这些方法使绕过由密码在数学层面所赋予的安全成为可能。
平衡处理次数的与时间有关的算法是相对简单的。更困难的是保护电路不受电消耗的波形的瞬时观测。
存在各种对策方法来保护电子电路不受隐藏通道上的攻击。它们的特性尤其由国际层面上定义的通用准则或者由标准来规定,所述标准例如有美国FIPS标准140,首字母缩写词FIPS表示“联邦信息处理标准化”(FederalInformation Processing Standardization)。
一些对策仅仅增加了攻击成功所必需的测量数。例如,对于使用与计算逻辑一起实现的非功能化的噪声生成器的对策方法就是这种情况。例如,随机初始化的伪随机数生成器PRNG能够用作此目的。在这种情况下,由叠加在隐藏通道上的噪声来干扰攻击者所收集的任何测量。因为在实际中为了放大有效的对策技术的预期的信噪比而有必要进行更多的测量,所以攻击变得更加复杂。
其它对策技术通过掩蔽隐藏通道来防止观测攻击,并且在要保护的处理操作期间通常涉及称为掩码(mask)的随机或伪随机变量m。以这样的方式来使用所述变量:计算结果不取决于所述掩码,而取决于通过与其有关的隐藏通道的信息泄漏。
因此,通过用掩码变量m使密码电路中流动的敏感数据交错来实施基于掩蔽的对策技术,这种交错用于防止攻击者分析隐藏通道。敏感数据或变量x对应于整体可预见的且与机密共享非零互信息的变量。这种技术相当于通过使用表示异或型运算的运算⊕施加密钥m,将敏感数据x的表达式修改为对应于x的维尔南(Vernam)加密的量x⊕m,在下文的描述中异或型运算也由首字母缩写词XOR来表示。
可以由特定于每个电路的签名来调节掩码,在此情况下示出了由所述掩码加密的密钥的泄露。此具体特征避免了所谓的“编目”(cataloguing)攻击,其中电路克隆能够用于模拟泄漏。
通常的对策技术涉及在一阶攻击寄存器的预测上抵挡直接攻击的随机掩蔽,所述攻击例如有DPA型攻击或CPA型攻击,CPA表示“相关功率分析”。例如,通过复制电路中的数据处理路径实现它们。
这种复制意味着与未掩蔽的实现相比,电路的复杂度显著增加。
此外,这些对策不能抵挡大于或等于二阶的攻击。作为示例,二阶攻击利用了泄漏的差异取决于敏感变量x的事实。通过组合当使用x⊕m时以及当还使用m时的两个场合上的信息的泄露,或者通过估计当同时使用掩码和掩蔽的数据时的对(x⊕m,m)的组合分布,来进行差异的估计。基于差异的估计的二阶攻击称为“零偏置”攻击,并且E.Peeters,F.Standaert,N.Donckers和J-J.Quisquater在标题为Improved Higher Order Side-ChannelAttacks with FPGA experiments的、Josyula R.Rao和Berk Sunar为编辑的、Cryptographic Hardware and Embedded Systems–Proceedings of CHES,3659LNCS卷,309-323页,Springer-Verlag,2005中进行了描述。
发明内容
本发明的一个目的尤其是克服上述的缺点。
为此,本发明的主题是由掩蔽保护的密码电路,所述电路包括用于使用至少一个密钥kr c来加密二进制字的模块,用于将线性处理操作和非线性处理操作施加至所述字的模块,用于掩蔽所述字的模块。通过使用掩码kr i在所述非线性处理操作的上游解掩蔽所述二进制字,并且通过使用掩码kr+1 i在所述处理操作的下游掩蔽所述二进制字,所述掩码kr i和kr+1 i形成特定于所述电路的每个实例的一组掩码的一部分。
根据本发明的一个方面,在ROM型存储器中实现所述非线性处理操作、在所述非线性处理操作上游的解掩蔽以及在所述线性处理操作的下游的掩蔽。
例如,掩码kr i是从主掩码ki推导出的二级掩码,使得kr+1 i=P(kr i)且k0 i=ki,函数P(x)对应于用于排列x的元素的函数,ROM存储器保持不变。
在一个实施例中,函数P(x)是循环排列,通过循环排列选择的多个比特d的掩码kr i,来从下标r的二级掩码推导出下标r+1的二级掩码。
在另一实施例中,所述主掩码ki长度为W并且由整数个长度为S的子掩码构成,二级掩码kr i由所述子掩码的排列生成。
例如,通过使用以下表达式来选择所述二级掩码的所述子掩码:
其中:
r是轮数;
i是随机提取的4比特数字;
Q是整数,用于控制两个连续的二级掩码kr i与kr+1 i之间的排列率;
S是以比特表示的子掩码的长度;
W是以比特表示的所述主掩码的长度;
mod()是定义的函数,诸如mod(a,b)=a模b,a和b是整数。
根据本发明的一个方面,通过从存储在所述电路中的一组主掩码随机选择掩码ki来有规律地修改所述主加密掩码ki。
根据本发明的另一方面,存储在所述电路中的所述一组主掩码从一个电路到另一个电路是不同的。
使用部件内部的用于生成掩码的电路来获得所述一组主掩码。
在一个实施例中,两个掩码kr i与kr+1 i之间的汉明距离基本上等于S/2。
例如,掩码ki的汉明权重基本上等于W/2
根据本发明的一个方面,使用S盒来实现所述非线性处理操作。
例如,在同一个组合块中的所述线性处理操作之后,正好在对寄存器中的结果进行采样之前,施加所述非线性处理操作。
例如,在FPGA中实现所述电路。
例如,利用对FPGA电路配置文件的修改来获得所述一组主掩码。
例如,所述电路包括使得能够更新所述一组主掩码的动态重新配置模块,和实现所述电路的对应于所述非线性处理操作的部分的表。
在一个实施例中,在ASIC中实现所述电路。
本发明的显著优点是通过实现由掩蔽进行的保护而没有显著增加电路的复杂度,尤其是关于所述电路的处理非线性处理操作的部分的复杂度。本发明的另一优点是允许使用减小大小的预定的一组掩码,所述一组掩码能够从一个电路到另一个电路是不同的,以便在从相同的生产线得到的电路之间提供独特的保护。
附图说明
根据作为非限制的说明而给出的以下描述,并且在附图的教导下,本发明的其它特征和优点将会变得显而易见,在附图中:
图1示出了由掩蔽保护的Feistel函数的示例;
图2示出了由掩蔽保护的密码电路的示例,其中非线性部分被解掩蔽;
图3示出了根据本发明由掩蔽保护的AES算法的实现。
具体实施方式
图1示出了由掩蔽保护的Feistel函数的示例。
本领域技术人员已知的掩蔽原理包括将敏感变量x的表示修改为冗余表示。这种表示包括至少两个部分,一个部分对应于用x⊕m表示的掩蔽的敏感数据,另一部分对应于掩码m。通过使用以下属性,在定义这两个部分的二进制伽罗瓦(Galois)域中的这两个部分之和使获得变量x成为可能:
x=(x⊕m)⊕m (1)
作为示例,在诸如DES或AES等块加密算法中,通过许多轮的重复得到用于加密数据块的运算结果。“轮”是计算周期,其中至少执行了两种类型的变换,一种是线性的而另一种是非线性的,也称之为置换(substitution)变换。
线性变换的目的是通过按照预定义的规则来混合在其输入处呈现的符号或符号组,并从而产生扩散(diffusion)。
通常使用称为S-盒的置换表来进行置换变换,置换变换有助于打破加密结构的线性。通过使用这种类型的变换,用其它符号或符号组来替换符号或符号组,以便产生混淆(confusion)。
因此,将部分对(x⊕m,m)变换为对(round(x⊕m’),m’),函数round()指定轮的函数运算,而m’则是新的轮掩码。
简单地复制了每轮的线性部分。所述部分的函数L()的线性意思是:
L(x⊕m)=L(x)⊕L(m) (2)
因此,线性使得使用掩码mL=L(m)作为变换后的新掩码成为可能。
另一方面,非线性部分上的掩蔽的实现(也就是说S-盒)引起了实现成本方面的显著增加。必须确定考虑这种变换并使由S(x⊕m)获得S(x)成为可能的掩码mNL,从而:
S(x)=S(x⊕m)⊕mNL (3)
为此,可以用定义的函数S’()来表示mNL,使得:
mNL=S′(x,x⊕m)=S(x)⊕S(x⊕m) (4)
因此,函数S’()的输入是函数S()的输入的两倍。因此,用于非线性函数S()的掩蔽的实现相当于对S的复杂度加平方。
为了说明密码电路中的掩蔽的实现,图1示出了由掩蔽保护的Feistel函数的示例。这种类型的函数尤其用于DES型的块加密,DES表示“数据加密块”。
如先前所解释的,敏感数据x的掩蔽的实现需要两个部分100、101。
第一部分100对应于在部分x⊕m上进行的处理运算,第二部分101对应于在部分m上进行的处理运算。
敏感数据的加密通过下述方式来进行:向要加密的块施加密钥k,之后是S()函数S-盒和线性函数L()的施加。
通过对每个途径使用寄存器102、103,来同步要由电路的两个途径100、101处理的数字信号。
第一途径100处理包括掩蔽的敏感数据x的部分(也就是说x⊕m)。通过使用XOR门106来施加加密密钥k。由此产生的信号对应于x⊕m⊕k。然后,S盒107使获得对其施加108线性函数L的信号S(x⊕m⊕k)117成为可能。
第二途径101处理对应于掩码m的部分。如先前所解释的,将非线性函数S()107施加于掩蔽的信号通常意味着在第二部分的处理中对其进行了考虑。因此,通过使用两个S-盒和两个异或门109、112来实现113由表达式(4)定义的函数S’()。所述函数一方面将掩码m 105作为输入,另一方面将由在第一途径100中施加加密密钥k而得到的信号x⊕m⊕k 115作为输入。向由施加S’()得到的信号116被施加到线性函数L()114,以便考虑第一途径100的线性函数108。能够在ROM型存储器中实现函数S’(),使其免受观测攻击。例如,实际上特别难以观测到在这种存储器中的电消耗的变化。
尽管这种实现受掩蔽保护,并且链接至函数S’()的活动性的观测难以观测,但是安全漏洞使它是脆弱的,尤其是对于二阶攻击。例如,攻击者可能在两个不同的电路节点处(例如在每个途径的两个输入寄存器的输出118、119处)布置两个探针来观测电消耗。在此情况下,基于差异的估计(也就是说“零偏置”型)的攻击非常有效。
图2示出了本发明基于的、由掩蔽保护的密码电路的示例。如前所述,应当注意不再有任何有利地使二阶攻击不可能的掩蔽路径。
如先前所解释的,当加密电路的未掩蔽部分包含在存储器中时,难以攻击所述存储器内部的变量。换句话说,将存储器视为免于信息泄露的黑盒。只有输入或输出是脆弱的。所描述的电路的一个目的是利用具有中等复杂度的定制的掩蔽方法的存储器中的实现。
此外,当不适合使用存储器的时候,可以以尽可能远地远离寄存器的输出布置非线性部分的方式来安排计算元件。作为示例,当相关攻击在电路的组合逻辑中深入地进行时,相关攻击全部较不有效。
图2的示例示出了在基于SPN网络的使用的电路中本发明的实施方式的示例,SPN表示“置换排列网络”。这种类型的电路也称为香农(Shannon)S-P网络。在此示例中,考虑了两轮中的加密。下标r表示的二进制字kr i和kr c分别用作掩蔽密钥和加密密钥。
能够将作为示例给出的电路分解为多个级,即输入级、对应于第一轮的级、对应于第二轮的级和输出级。例如以细分为四个8比特子字的32比特字的形式,将要加密的数据作为输入呈现给输入级。通过使用具有32比特长度的密钥k0 i来施加输入掩蔽,所述密钥细分为四个8比特子掩码k0 i[0]、k0 i[1]、k0 i[2]、k0 i[3],通过使用四个XOR门200、201、202、203将所述子掩码施加至四个8比特子字。
在第一轮的输入处,寄存器204将由密钥k0 i掩蔽而产生的四个8比特子字作为输入。此寄存器使同步不同的二进制流成为可能,其中一个流对应于一个输入的8比特子字。在四个XOR门205、206、207、208中,将细分为用k0 c[0]、k0 c[1]、k0 c[2]、k0 c[3]表示的四个8比特子密钥的第一加密密钥k0 c施加在作为所述寄存器204的输出而呈现的掩蔽的子字上。密钥k0 c与第一加密轮相关联。然后,分别用在例如ROM型的存储器中实现的四个处理块209、210、211、212来处理由k0 i掩蔽并且由k0 c加密的数据的四个子字。应当注意,在ROM存储器中,函数(尤其是非线性函数)的实施方式的复杂度随着输入数量的增大而呈指数地增大。为了最小化实施方式的复杂度,密码算法并入此约束并且将要加密的字处理为非线性函数级上的较小大小的子字。
在每个处理模块的输入处,通过使用XOR门214施加四个8比特子掩码k0 i[0]、k0 i[1]、k0 i[2]、k0 i[3]来对8比特子字进行解掩蔽。然后,施加一非线性函数,其中能够使用S-盒213来实现所述非线性函数。
在每个处理块的输出的上游,XOR门215用于掩蔽输出处的数据,使得由细分为四个子掩码k1 i[0]、k1 i[1]、k1 i[2]、k1 i[3]的掩码k1 i来在第一轮级的输出处掩蔽敏感数据。在轮输出处施加线性变换L0(),对于处理块中的掩蔽而言,这是必须考虑的。为此,通过使用掩码k1 i的修改的掩码L0-1(k1 i)来进行掩蔽。修改的掩码L0 -1(k1 i)细分为四个8比特修改的子掩码L0 -1(k1 i[0])、L0 -1(k1 i[1])、L0 -1(k1 i[2])、L0 -1(k1 i[3]),其中变换L0 -1()对应于线性变换L0()216的逆。
在处理块209、210、211、212的输出处,将变换L0()施加于作为来自所述块的输出而呈现的二进制字。第一加密轮的结果对应于线性变换216的输出处的二进制子字,所述子字对应于由掩码k1 i掩蔽并因此免受观测攻击的敏感数据。
第二轮的输入是第一轮的输出,并且对应于由第一轮的线性变换216产生的四个8比特子字。将这四个子字作为寄存器217的输入而呈现,使同步不同的二进制流成为可能。
特定于第二轮的、细分为用k1 c[0]、k1 c[1]、k1 c[2]、k1 c[3]表示的四个8比特子密钥的第二加密密钥k1 c在四个XOR门218、219、220、221中被施加于作为来自寄存器217的输出而呈现的掩蔽的子字。
然后,由k1 i掩蔽且由k1 c加密的四个数据子字分别由在(例如,ROM型的)存储器中实现的四个处理块222、223、224、225来处理。在每个块的输入处,通过使用XOR门施加密钥k1 i来解掩蔽数据。
然后,施加非线性函数,其中能够在每个块中使用S盒来实现该非线性函数。在每个处理块的输出处,使用XOR门来掩蔽输出处的数据,使得由掩码k2 i来在第二轮级的输出处掩蔽敏感数据。为此,通过使用修改的掩码L1 -1(ki 2)来进行掩蔽,其中变换L1 -1()对应于线性变换L1()226的逆。
将变换L1()施加于作为来自处理块209、210、211、212的输出而呈现的二进制子字。第二加密轮的结果对应于线性变换226的输出处的二进制子字,所述子字对应于掩蔽并因此免受观测攻击的敏感数据。
这种类型的实现的优点在于:能够反转(invert)第1轮的由k0 c进行的加密和由k0 i进行的掩蔽以及第2轮的由k1 c进行的加密和由k1 i进行的掩蔽。
为了减低实现的复杂度并始终使用相同的ROM存储器,提出了通过主掩码的排列推导出从一个步骤到另一步骤所使用的实现掩码。例如,如果ki是主掩码,则能够按如下公式从主掩码推导出二级掩码k0 i、k1 i和k2 i:
k0 i=ki
k1 i=P(k0 i)
k2 i=P(k1 i)
函数P(bin)表示排列函数,例如二进制字bin的循环排列。此外,主掩码ki能够由预定义的主掩码集随机提取。在使用图3的描述中给出了一个基于主掩码的掩码排列的示例。
主掩码集的大小很小有利地使使用特定于部件(也就是说,特定于每个电路的实例)的定制的掩码成为可能。该签名的应用使减小“编目”类型的攻击的范围成为可能,这是因为泄露由此变得特定于电路而不再特定于电路类型。高阶攻击HO-DPA(为派生自表达“高阶差分功率分析”的首字母缩写(例如,“零偏置”类型的高阶攻击)是受到挑战,这是因为不再有任何特定掩码路径。因此,不再可能考虑(掩蔽变量、掩码)对。
图3示出了受掩蔽保护的AES算法的实现。
AES块加密算法(AES表示“高级加密标准”)在保持二进制消息机密方面是特别强大的。要保护的消息由固定大小的二进制字处理,所述字可以是128、192或256比特。加密密钥的长度为W,W等于要处理的字的长度。所述算法包括三个处理阶段,每个阶段由一轮或多轮组成。第一阶段R1对应于初始化轮,第二阶段R2对应于迭代地使用相同结构的N轮,而第三阶段R3对应于最终轮。本领域技术人员已知特定于AES算法的这三个阶段的原理。
例如,电路是FPGA或ASIC电路。
能够引入根据本发明的通过掩蔽进行的保护,以便保护实现三个阶段R1、R2和R3的AES密码电路免受隐藏通道的观测攻击。
随机数生成器300用于生成二进制字i,二进制字i例如为n比特,n表示掩蔽的熵。在说明书下文描述的示例中,在4比特上表示n。
计数器CTR 301递增对应于当前轮数的变量r。
受保护电路包括存储器区域303,存储器区域303尤其能够存储长度等于要加密的字的长度或者在此示例中长度为128比特的一组不变掩码。
随机生成300的数字i使从存储的掩码集303选择主掩码ki成为可能。因此,对于n=4、16,能够随机地选择不同的主掩码ki。
此外,存储在部件中的主掩码可以随产品部件的不同而不同,以便获得区别的保护并避免“编目攻击”。
长度为W的主掩码ki由整数个长度为S的子掩码组成,W是S的倍数。例如,长度W=128比特的掩码ki包括例如16个S=8比特的子掩码,所述子掩码表示为k0 i[0]、k0 i[1]、…、k0 i[15]。
能够由主掩码生成二级掩码,例如用于排列组成主掩码的子掩码。因此,由单个主掩码,能够对每轮使用不同的二级掩码。
为了增加对攻击的鲁棒性,主掩码集ki随部件的不同而不同,以便在所述部件之间实现区别的掩蔽保护。变量i是随机的,并且能够在每次加密前生成。
在选择了主掩码ki后,通过用排列P、挑选的多个比特d的掩码kr i进行循环排列,从下标r的二级掩码推导出下标r+1的二级掩码,其中初始化下标0的掩码,使得k0 i=ki。
能够选择d,例如使得d=S比特,也就是对应于子掩蔽的长度。
也有可能具有由整数个子掩码排列的下标为r的掩码。因此,能够用以下表达式生成掩码kr+1 i:
其中:
r是轮数;
i是由生成器300随机提取的4比特的数目;
Q是整数,该整数使检查两个连续的二级掩码kr i与kr+1 i之间的排列率成为可能;
S是以比特表示的子掩码的长度;
W是以比特表示的掩码ki的长度;
mod()是定义的函数,使得mod(a,b)=a模b,a和b是整数。
例如,能够在由随机提取i的新值的加密过程期间修改主掩码。
有利的是,能够通过选择主掩码ki使得二级掩码互相独立来优化对观测攻击的抵抗,例如,通过保证kr i与kr+1 i之间的汉明距离基本上等于S/2。
掩码的平均平衡(average balancing)也使加强保护成为可能,所述平衡是由保证二级掩码的汉明权重并因此保证主掩码的汉明权重基本上等于W/2而获得的。
在该图的示例中,要加密的字是128比特的字,并且作为基址寄存器302中的编码器的输入而呈现。然后,要处理的字通过使用XOR门304施加未排列的密钥k0 i=ki来掩蔽。然后,通过使用第二XOR门305施加用k0 c表示的长度为W的加密密钥来加密所述掩蔽的结果。
由k0 i掩蔽并由k0 c加密的字存储在寄存器306中,所述寄存器对应于电路的执行第二处理阶段R2的部分的输入,所述阶段对应于迭代加密回路,一个迭代对应于一个处理轮。通过将128比特的字细分为16个8比特的子字的控制模块307来处理存储在寄存器306中的字。控制模块的另一功能是选择要使用的掩码kr i来在轮的开始解掩蔽数据,一轮被施加于下标r的每次迭代上。使用非线性函数模块308来处理16个8比特的子字,例如,所述模块在ROM型的存储器中实现。这些模块解掩蔽309呈现给它们的输入的子字,例如通过使用S盒,将非线性处理310施加于这些子字,并且掩蔽311所述处理的结果。对每个要处理的8比特的子字都存在非线性函数模块308。因此,对图3的示例来说,存在16个非线性函数模块。
对下标r的轮来说,这些模块将子掩码kr i[0],kr i[1],...,kr i[15]用于输入解掩蔽309,并且将子掩码kr+1 i[0],kr+1 i[1],...,kr+1 i[15]用于输出掩蔽311。例如,能够预先计算16个S盒以便由子掩码kr i[]掩蔽,并随后由子掩码kr+1 i[]解掩蔽。
然后,将在非线性处理模块的输出处的16个子字引导朝向第二控制模块312,第二控制模块312的功能尤其是将所述字串接成128比特的字。
然后,由两个线性处理模块来处理该128比特的字,第一个执行行的混合313(通常用语句“移行”来描述),第二个处理操作执行列的混合314(通常用语句“移列”来描述)。这两个线性处理操作能够用函数Lr()来模拟。
使用XOR函数315,将使用密钥kr c的加密施加至由所述线性处理操作产生的128比特的字。
将128比特的掩码kint i施加316至由用kr c的加密产生的字,以便能够从一轮到另一轮使用相同的S盒。在通过使用以下表达式预先计算之后,存储掩码kint i303:
因此,在存储器16中存在有预先计算的128比特的字kint i。
阶段R2的处理操作迭代地执行了N次。当已经执行了N轮第二阶段R2时,在128比特的字上执行最终阶段R3,该128比特的字在线性行混合处理操作313与线性列混合处理操作314之间提取。
在由XOR函数317将使用密钥kfin c的最终加密施加于提取的字之后,通过使用XOR函数318施加128比特的掩码kfin i来执行最终解掩蔽。
在使用以下表达式预先计算之后,将16个128比特的掩码kfin i存储303在受保护电路中:
其中函数表示行混合处理操作313的逆。
在最后一行的结束处(也就是说在处理阶段R3的结束处)得到的字对应于AES加密的最终结果。将所获得的加密的消息写入至输出寄存器319。
图4给出了由掩蔽保护的密码电路的示例,其中非线性处理操作被布置在一轮的结束处。
当在逻辑门中而非存储器中实现电路的对应于非线性处理操作的部分时,所述处理操作的上游解掩蔽函数和下游掩蔽函数可能是攻击的主体。
为了保护电路不受这些攻击,一个解决方案是在逻辑锥的末端(也就是说,正好在结果的对齐采样(registered sampling)之前)设置一轮的非线性处理操作。然后,借助于计算的时间散布来扩展计算,于是限制了攻击的有效性。
图4的示例给出了由实现此原理的掩蔽保护的密码电路的示例。
此示例性的电路类似于图2所呈现的电路。加密通过使用Feistel架构来执行,并且借助于一个输入级、称为轮1和轮2的两个轮级然后是一个输出级的实现来执行。
与图2的作为示例而给出的电路不同,例如,用S盒实现的非线性处理操作设置在逻辑锥的末端。因此,在一轮的开始设置线性处理操作。从而在对应于第一轮的级,施加401对应于初始扩散函数L-1()的线性处理操作。在对应于第二轮的级,施加402对应于扩散函数L0()的线性处理操作。
在输入级的输出处施加400初始扩散函数的逆L-1 -1(),在输出级的输入处施加403最终扩散函数L1()。
在一轮的开始处的电消耗是难以模拟的,然而使其更加依赖于一轮的结束处的环境条件。
Claims (16)
1.一种由掩蔽保护的密码电路,所述电路包括用于使用至少一个密钥kr c来加密二进制字的模块、用于将线性处理操作(216)和非线性处理操作(226)施加至所述字的模块、用于掩蔽所述字的模块,所述电路的特征在于:
通过使用掩码kr i在所述非线性处理操作的上游解掩蔽(214)所述二进制字,并且通过使用掩码kr+1 i在所述非线性处理操作的下游掩蔽(215)所述二进制字,所述掩码kr i和kr+1 i形成特定于所述电路的每个实例的一组掩码的一部分,
所述掩码kr i是从主掩码ki推导出的二级掩码,使得kr+1 i=P(kr i)且k0 i=ki,函数P(x)对应于用于排列x的元素的函数,其中ROM存储器保持不变。
2.根据权利要求1所述的电路,其特征在于:
所述非线性处理操作、在所述非线性处理操作上游的解掩蔽(214)以及在所述线性处理操作下游的掩蔽(215)在ROM型存储器中实现(209)。
3.根据权利要求1所述的电路,其特征在于:
所述函数P(x)是循环排列,其中通过循环排列选择的多个比特d的掩码kr i,来从下标r的二级掩码推导出下标r+1的二级掩码。
4.根据权利要求1所述的电路,其特征在于:
所述主掩码ki长度为W并且由整数个长度为S的子掩码构成,所述二级掩码kr i由所述子掩码的排列生成。
5.根据权利要求4所述的电路,其特征在于:
通过使用以下表达式来选择所述二级掩码的所述子掩码:
其中:
r是轮数;
i是随机提取的4比特数字;
Q是整数,用于控制两个连续的二级掩码kr i与kr+1 i之间的排列率;
S是以比特表示的子掩码的长度;
W是以比特表示的所述主掩码的长度;
mod()是定义的函数,例如mod(a,b)=a模b,a和b是整数。
6.根据权利要求1所述的电路,其特征在于:
通过从存储在所述电路中的一组主掩码随机选择掩码ki来有规律地修改所述主掩码ki。
7.根据权利要求6所述的电路,其特征在于:
存储在所述电路(303)中的所述一组主掩码从一个电路到另一个电路是不同的。
8.根据权利要求7所述的电路,其特征在于:
使用内部掩码生成电路来获得所述一组主掩码。
9.根据权利要求4所述的电路,其特征在于:
两个掩码kr i与kr+1 i之间的汉明距离等于S/2。
10.根据权利要求4所述的电路,其特征在于:
掩码ki的汉明权重等于W/2。
11.根据权利要求1所述的电路,其特征在于:
使用S盒来实现所述非线性处理操作(213,310)。
12.根据权利要求1所述的电路,其特征在于:
在同一个组合块中的所述线性处理操作之后,正好在对寄存器中的结果进行采样之前,施加所述非线性处理操作。
13.根据权利要求1所述的电路,其特征在于:
在FPGA中实现所述电路。
14.根据权利要求6所述的电路,其特征在于:
利用对FPGA电路配置文件的修改来获得所述一组主掩码。
15.根据权利要求6所述的电路,其特征在于:
所述电路包括使得能够更新所述一组主掩码的动态重新配置模块、和实现所述电路的对应于所述非线性处理操作的部分的表。
16.根据权利要求1至12中的任一项所述的电路,其特征在于:
在ASIC中实现所述电路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0958030A FR2952773B1 (fr) | 2009-11-13 | 2009-11-13 | Circuit electronique de faible complexite protege par masquage personnalise |
FR0958030 | 2009-11-13 | ||
PCT/EP2010/067064 WO2011057991A1 (fr) | 2009-11-13 | 2010-11-08 | Circuit electronique de faible complexite protege par masquage personnalise |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102648600A CN102648600A (zh) | 2012-08-22 |
CN102648600B true CN102648600B (zh) | 2014-12-24 |
Family
ID=42244180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080056401.9A Active CN102648600B (zh) | 2009-11-13 | 2010-11-08 | 由定制的掩蔽保护的低复杂度电子电路 |
Country Status (9)
Country | Link |
---|---|
US (1) | US9197412B2 (zh) |
EP (1) | EP2499773B1 (zh) |
JP (1) | JP5987250B2 (zh) |
KR (1) | KR101783495B1 (zh) |
CN (1) | CN102648600B (zh) |
CA (1) | CA2780719C (zh) |
ES (1) | ES2571225T3 (zh) |
FR (1) | FR2952773B1 (zh) |
WO (1) | WO2011057991A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8958550B2 (en) * | 2011-09-13 | 2015-02-17 | Combined Conditional Access Development & Support. LLC (CCAD) | Encryption operation with real data rounds, dummy data rounds, and delay periods |
JP5612007B2 (ja) * | 2012-03-15 | 2014-10-22 | 株式会社東芝 | 暗号化鍵生成装置 |
JP6089668B2 (ja) * | 2012-12-13 | 2017-03-08 | 日本電気株式会社 | 暗号化処理回路及び復号処理回路とその方法並びにそのプログラム |
JPWO2015059845A1 (ja) * | 2013-10-24 | 2017-03-09 | 日本電気株式会社 | 暗号化処理回路及びその方法及びプログラム並びに復号処理回路 |
EP3475825B1 (en) | 2016-06-23 | 2023-01-25 | Cryptography Research, Inc. | Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks |
US10530567B2 (en) * | 2016-10-05 | 2020-01-07 | Megachips Corporation | Encryption device and memory device |
DE102017002153A1 (de) * | 2017-03-06 | 2018-09-06 | Giesecke+Devrient Mobile Security Gmbh | Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung |
EP3422176A1 (en) * | 2017-06-28 | 2019-01-02 | Gemalto Sa | Method for securing a cryptographic process with sbox against high-order side-channel attacks |
US11562101B2 (en) * | 2017-11-13 | 2023-01-24 | Intel Corporation | On-device bitstream validation |
US11201730B2 (en) * | 2019-03-26 | 2021-12-14 | International Business Machines Corporation | Generating a protected key for selective use |
US11372983B2 (en) | 2019-03-26 | 2022-06-28 | International Business Machines Corporation | Employing a protected key in performing operations |
FR3096206A1 (fr) * | 2019-05-17 | 2020-11-20 | Stmicroelectronics (Grenoble 2) Sas | Dispositif de protection de donnees masquees et procede associe |
US11700111B2 (en) * | 2019-06-26 | 2023-07-11 | Cryptography Research, Inc. | Platform neutral data encryption standard (DES) cryptographic operation |
CN113343175B (zh) * | 2021-05-31 | 2022-05-27 | 中国电子科技集团公司第三十研究所 | 一种自动化搜索spn型轻量级分组密码活跃s盒的快速方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0981223A2 (en) * | 1998-08-20 | 2000-02-23 | Kabushiki Kaisha Toshiba | Encryption/decryption apparatus |
CN1989726A (zh) * | 2004-07-22 | 2007-06-27 | 萨热姆防务安全公司 | 用于执行加密计算的方法和装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5652796A (en) * | 1994-06-21 | 1997-07-29 | Pitney Bowes Inc. | Data encryption control system |
US6205249B1 (en) * | 1998-04-02 | 2001-03-20 | Scott A. Moskowitz | Multiple transform utilization and applications for secure digital watermarking |
IL139935A (en) * | 1998-06-03 | 2005-06-19 | Cryptography Res Inc | Des and other cryptographic processes with leak minimization for smartcards and other cryptosystems |
US6578061B1 (en) * | 1999-01-19 | 2003-06-10 | Nippon Telegraph And Telephone Corporation | Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon |
US7142670B2 (en) * | 2001-08-14 | 2006-11-28 | International Business Machines Corporation | Space-efficient, side-channel attack resistant table lookups |
KR100605813B1 (ko) * | 2003-02-28 | 2006-08-01 | 삼성전자주식회사 | 초 광대역 통신시스템에서 헤더정보 전송장치 및 방법 |
US7899190B2 (en) * | 2004-04-16 | 2011-03-01 | Research In Motion Limited | Security countermeasures for power analysis attacks |
US7848514B2 (en) * | 2004-05-24 | 2010-12-07 | Research In Motion Limited | Table masking for resistance to power analysis attacks |
DE602005002632T2 (de) * | 2005-05-10 | 2008-01-31 | Research In Motion Ltd., Waterloo | Schlüsselmaskierung für kryptographische Prozesse mittels einer Kombination von Zufallsmaskenwerten |
JP4986206B2 (ja) * | 2006-02-22 | 2012-07-25 | 株式会社日立製作所 | 暗号処理方法及び暗号処理装置 |
US7720225B2 (en) * | 2006-03-07 | 2010-05-18 | Research In Motion Limited | Table splitting for cryptographic processes |
JP4936996B2 (ja) * | 2007-05-24 | 2012-05-23 | 株式会社東芝 | 非線形データ変換器、暗号化装置、および復号装置 |
JP5242560B2 (ja) * | 2007-05-30 | 2013-07-24 | パナソニック株式会社 | 暗号化装置、復号化装置、暗号化方法及び集積回路 |
US8553877B2 (en) * | 2007-10-01 | 2013-10-08 | Blackberry Limited | Substitution table masking for cryptographic processes |
US7995749B2 (en) * | 2007-10-30 | 2011-08-09 | Harris Corporation | Cryptographic system configured for extending a repetition period of a random sequence |
WO2009074728A1 (fr) * | 2007-12-13 | 2009-06-18 | Oberthur Technologies | Procede de traitement cryptographique de donnees, notamment a l'aide d'une boite s, dispositif et programme associes |
DE102008033962B4 (de) * | 2008-07-21 | 2011-11-24 | Siemens Aktiengesellschaft | Verfahren und Prozessor-Einrichtung zum Implementieren einer Charakteristik-2-Multiplikation |
FR2952256B1 (fr) * | 2009-11-04 | 2011-12-16 | St Microelectronics Rousset | Protection d'une cle de chiffrement contre des attaques unidirectionnelles |
-
2009
- 2009-11-13 FR FR0958030A patent/FR2952773B1/fr not_active Expired - Fee Related
-
2010
- 2010-11-08 US US13/509,494 patent/US9197412B2/en active Active
- 2010-11-08 CA CA2780719A patent/CA2780719C/en active Active
- 2010-11-08 EP EP10773354.5A patent/EP2499773B1/fr active Active
- 2010-11-08 CN CN201080056401.9A patent/CN102648600B/zh active Active
- 2010-11-08 ES ES10773354T patent/ES2571225T3/es active Active
- 2010-11-08 WO PCT/EP2010/067064 patent/WO2011057991A1/fr active Application Filing
- 2010-11-08 KR KR1020127015118A patent/KR101783495B1/ko active IP Right Grant
- 2010-11-08 JP JP2012538299A patent/JP5987250B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0981223A2 (en) * | 1998-08-20 | 2000-02-23 | Kabushiki Kaisha Toshiba | Encryption/decryption apparatus |
CN1989726A (zh) * | 2004-07-22 | 2007-06-27 | 萨热姆防务安全公司 | 用于执行加密计算的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2013511057A (ja) | 2013-03-28 |
FR2952773B1 (fr) | 2012-07-20 |
US20130129081A1 (en) | 2013-05-23 |
EP2499773A1 (fr) | 2012-09-19 |
CA2780719A1 (en) | 2011-05-19 |
EP2499773B1 (fr) | 2016-02-17 |
WO2011057991A1 (fr) | 2011-05-19 |
CA2780719C (en) | 2019-08-20 |
CN102648600A (zh) | 2012-08-22 |
FR2952773A1 (fr) | 2011-05-20 |
KR20120109501A (ko) | 2012-10-08 |
US9197412B2 (en) | 2015-11-24 |
KR101783495B1 (ko) | 2017-09-29 |
ES2571225T3 (es) | 2016-05-24 |
JP5987250B2 (ja) | 2016-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102648600B (zh) | 由定制的掩蔽保护的低复杂度电子电路 | |
CN106788974B (zh) | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 | |
Kumar et al. | Development of modified AES algorithm for data security | |
US6295606B1 (en) | Method and apparatus for preventing information leakage attacks on a microelectronic assembly | |
Hussain et al. | Construction of chaotic quantum magnets and matrix Lorenz systems S-boxes and their applications | |
JP5776113B2 (ja) | 高次の観測攻撃から保護される暗号回路 | |
AU2005263805B2 (en) | Method and device for carrying out a cryptographic calculation | |
Lamba | Design and analysis of stream cipher for network security | |
KR100834096B1 (ko) | 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법 | |
CN104301095A (zh) | Des轮运算方法和电路 | |
Razaq et al. | A novel technique for the construction of safe substitution boxes based on cyclic and symmetric groups | |
Sani et al. | Creation of S-box based on a hierarchy of Julia sets: image encryption approach | |
Kim et al. | Masked implementation of PIPO block cipher on 8-bit AVR microcontrollers | |
Huang et al. | Low area-overhead low-entropy masking scheme (LEMS) against correlation power analysis attack | |
JP4586163B2 (ja) | 暗号化システム | |
Subramanian et al. | Adaptive counter clock gated S-Box transformation based AES algorithm of low power consumption and dissipation in VLSI system design | |
KR102327771B1 (ko) | 테이블 기반 구현에서의 차수 2 이상의 dca 공격에 대응하는 방법 | |
John | Cryptography for resource constrained devices: A survey | |
Shahapure et al. | Variation and security enhancement of block ciphers by embedding | |
Juremi et al. | ModifiedAes S-Box Based On Determinant Matrix Algorithm | |
US10341089B2 (en) | High-speed AES with transformed keys | |
Wadi et al. | A low cost implementation of modified advanced encryption standard algorithm using 8085A microprocessor | |
Gupta et al. | Correlation power analysis on KASUMI: attack and countermeasure | |
Bulygin et al. | Study of the invariant coset attack on printcipher: more weak keys with practical key recovery | |
AU2018374489B2 (en) | Method for protecting a source of entropy used in countermeasures securing a whitebox cryptographic algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |