由定制的掩蔽保护的低复杂度电子电路的制作方法

文档序号:7915040阅读:165来源:国知局
专利名称:由定制的掩蔽保护的低复杂度电子电路的制作方法
技术领域
本发明涉及通过以下方式来保护的电子电路掩蔽(masking)和利用电路特定的定制,以便减少观测攻击范围并减少实现该保护的成本。本发明尤其适用于处理保密数据的电路的保护领域,其中一个示例是密码电路。
背景技术
在电子电路的运行期间,通过诸如功耗、计算时间或电磁辐射等物理量,能够观测到电子电路的活动性。 这些物理量取决于计算架构和在电路内处理的数据。因此,通过观测称为隐藏通道或辅助通道的所述量,可以在电路的外部间接获得关于所处理的数据的信息。这些物理量的耗散可能危及处理(尤其是由密码方法保护的)机密数据的系统的安全。因此,如果通过使用对称密码算法来保护机密数据,保护的鲁棒性在于保持加密密钥机密的能力。通过实施适当的攻击,物理量的耗散可能使第三方获得所述密钥,从而访问机密数据。通过观测所述电路耗散的物理量的攻击通常简单称为观测攻击。在下文的描述中,使用观测攻击的方法来访问并非为其预备的数据的第三方称为攻击者,并且耗散的物理量称为泄漏或隐藏通道。现今,存在強大的观测攻击,使访问由保护电路处理的数据成为可能。因此,如P. C. Korcher, J. Jaffe 和 B. Jun 在标题为 Timing Attackonlmplementations of Diffie-Hellman, RSA, DSS and Other Systems 的、Proceedings ofCRYPT0’96,1109 LNCS 卷,104-113 页,Springer-Verlag, 1996 的论文中所描述的,存在表示电路的数据处理时间的泄露的观测攻击。例如,通过使用DPA型的方法,攻击者也能够使用电路的消耗的观测攻击,P. C. Korcher, J. Jaffe 和 B. Jun 在标题为 Differential Power Analysis 的、Proceedingof CRYPTO’99,1666 LNCS 卷,388-397 页,Springer-Verlag, 1999 的论文中描述了这些类型的攻击。这些方法使绕过由密码在数学层面所赋予的安全成为可能。平衡处理次数的与时间有关的算法是相对简单的。更困难的是保护电路不受电消耗的波形的瞬时观測。存在各种对策方法来保护电子电路不受隐藏通道上的攻击。它们的特性尤其由国际层面上定义的通用准则或者由标准来规定,所述标准例如有美国FIPS标准140,首字母缩写词FIPS表不“联邦信息处理标准化,,(Federallnformation Processingstandardizationノ。一些对策仅仅增加了攻击成功所必需的測量数。例如,对于使用与计算逻辑一起实现的非功能化的噪声生成器的对策方法就是这种情況。例如,随机初始化的伪随机数生成器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 OrderSide-CiianneIAttacks with FPGA experiments 的、Josyula R. Rao 和 Berk Sunar 为编辑的、Cryptographic Hardware and Embedded Systems - Proceedings of CHES, 3659LNCS卷,309-323 页,Springer-Verlag, 2005 中进行了描述。

发明内容
本发明的ー个目的尤其是克服上述的缺点。为此,本发明的主题是由掩蔽保护的密码电路,所述电路包括用于使用至少ー个密钥k/来加密ニ进制字的模块,用于将线性处理操作和非线性处理操作施加至所述字的模块,用于掩蔽所述字的模块。通过使用掩码k/在所述非线性处理操作的上游解掩蔽所述ニ进制字,并且通过使用掩码k”/在所述处理操作的下游掩蔽所述ニ进制字,所述掩码kノ和k”/形成特定于所述电路的每个实例的一组掩码的一部分。根据本发明的ー个方面,在ROM型存储器中实现所述非线性处理操作、在所述非线性处理操作上游的解掩蔽以及在所述线性处理操作的下游的掩蔽。例如,掩码kノ是从主掩码V推导出的ニ级掩码,使得Ui=P (k;)且1^=1^,函数PU)对应于用于排列X的元素的函数,ROM存储器保持不变。在一个实施例中,函数PU)是循环排列,通过循环排列选择的多个比特d的掩码 k/,来从下标r的ニ级掩码推导出下标r+Ι的ニ级掩码。在另ー实施例中,所述主掩码V长度为W并且由整数个长度为S的子掩码构成,ニ级掩码k/由所述子掩码的排列生成。例如,通过使用以下表达式来选择所述ニ级掩码的所述子掩码k: i [.V] = k'r [mod(A- - QT. W其中r是轮数;i是随机提取的4比特数字;Q是整数,用于控制两个连续的ニ级掩码k/与k”/之间的排列率;S是以比特表示的子掩码的长度;W是以比特表示的所述主掩码的长度;mod O是定义的函数,诸如mod (a, b) =a模b, a和b是整数。根据本发明的ー个方面,通过从存储在所述电路中的一组主掩码随机选择掩码"来有规律地修改所述主加密掩码V。根据本发明的另一方面,存储在所述电路中的所述ー组主掩码从一个电路到另ー个电路是不同的。使用部件内部的用于生成掩码的电路来获得所述ー组主掩码。在一个实施例中,两个掩码k/与k”/之间的汉明距离基本上等于S/2。例如,掩码V的汉明权重基本上等于W/2根据本发明的ー个方面,使用S盒来实现所述非线性处理操作。例如,在同一个组合块中的所述线性处理操作之后,正好在对寄存器中的结果进行采样之前,施加所述非线性处理操作。例如,在FPGA中实现所述电路。例如,利用对FPGA电路配置文件的修改来获得所述ー组主掩码。例如,所述电路包括使得能够更新所述ー组主掩码的动态重新配置模块,和实现所述电路的对应于所述非线性处理操作的部分的表。 在一个实施例中,在ASIC中实现所述电路。本发明的显著优点是通过实现由掩蔽进行的保护而没有显著增加电路的复杂度,尤其是关于所述电路的处理非线性处理操作的部分的复杂度。本发明的另ー优点是允许使用减小大小的预定的一组掩码,所述ー组掩码能够从ー个电路到另ー个电路是不同的,以便在从相同的生产线得到的电路之间提供独特的保护。


根据作为非限制的说明而给出的以下描述,并且在附图的教导下,本发明的其它特征和优点将会变得显而易见,在附图中图I示出了由掩蔽保护的Feistel函数的示例;图2示出了由掩蔽保护的密码电路的示例,其中非线性部分被解掩蔽;图3示出了根据本发明由掩蔽保护的AES算法的实现。
具体实施例方式图I示出了由掩蔽保护的Feistel函数的示例。
本领域技术人员已知的掩蔽原理包括将敏感变量X的表示修改为冗余表示。这种表示包括至少两个部分,ー个部分对应于用X m表示的掩蔽的敏感数据,另一部分对应于掩码m。通过使用以下属性,在定义这两个部分的ニ进制伽罗瓦(Galois)域中的这两个部分之和使获得变量X成为可能x=(x m) m(I)作为示例,在诸如DES或AES等块加密算法中,通过许多轮的重复得到用于加密数据块的运算結果。“轮”是计算周期,其中至少执行了两种类型的变换,一种是线性的而另ー种是非线性的,也称之为置换(substitution)变换。线性变换的目的是通过按照预定义的规则来混合在其输入处呈现的符号或符号 组,并从而产生扩散(diffusion)。通常使用称为S-盒的置換表来进行置换变换,置换变换有助于打破加密结构的线性。通过使用这种类型的变换,用其它符号或符号组来替换符号或符号组,以便产生混淆kconfusion)。因此,将部分对(X m,m)变换为对(round (x m,),m,),函数round ()指定轮的函数运算,而m’则是新的轮掩码。简单地复制了每轮的线性部分。所述部分的函数LO的线性意思是L(x m) =L(X) L(m)(2)因此,线性使得使用掩码%=L(m)作为变换后的新掩码成为可能。另ー方面,非线性部分上的掩蔽的实现(也就是说S-盒)引起了实现成本方面的显著増加。必须确定考虑这种变换并使由S(x m)获得S(X)成为可能的掩码,从而S(X) =S(x ffi m) mNL(3)为此,可以用定义的函数S’ O来表示1 ,使得mNL=S' (X,X m) =S(X) S(X m)(4)因此,函数s’ O的输入是函数SO的输入的两倍。因此,用于非线性函数SO的掩蔽的实现相当于对S的复杂度加平方。为了说明密码电路中的掩蔽的实现,图I示出了由掩蔽保护的Feistel函数的示例。这种类型的函数尤其用于DES型的块加密,DES表示“数据加密块”。如先前所解释的,敏感数据X的掩蔽的实现需要两个部分100、101。第一部分100对应于在部分X m上进行的处理运算,第二部分101对应于在部分m上进行的处理运算。敏感数据的加密通过下述方式来进行向要加密的块施加密钥k,之后是S O函数S-盒和线性函数LO的施加。通过对每个途径使用寄存器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的部分。如先前所解释的,将非线性函数SO 107施加于掩蔽的信号通常意味着在第二部分的处理中对其进行了考虑。因此,通过使用两个S-盒和两个异或门109、112来实现113由表达式(4)定义的函数S’ O。所述函数一方面将掩码m 105作为输入,另ー方面将由在第一途径100中施加加密密钥k而得到的信号X m k 115作为输入。向由施加S’O得到的信号116被施加到线性函数LO 114,以便考虑第一途径100的线性函数108。能够在ROM型存储器中实现函数S’ O,使其免受观测攻击。例如,实际上特别难以观测到在这种存储器中的电消耗的变化。尽管这种实现受掩蔽保护,并且链接至函数S’ O的活动性的观测难以观测,但是安全漏洞使它是脆弱的,尤其是对于ニ阶攻击。例如,攻击者可能在两个不同的电路节点处(例如在每个途径的两个输入寄存器的输出118、119处)布置两个探针来观测电消耗。在此情况下,基于差异的估计(也就是说“零偏置”型)的攻击非常有效。图2示出了本发明基于的、由掩蔽保护的密码电路的示例。如前所述,应当注意不 再有任何有利地使ニ阶攻击不可能的掩蔽路径。如先前所解释的,当加密电路的未掩蔽部分包含在存储器中时,难以攻击所述存储器内部的变量。换句话说,将存储器视为免于信息泄露的黑盒。只有输入或输出是脆弱的。所描述的电路的ー个目的是利用具有中等复杂度的定制的掩蔽方法的存储器中的实现。此外,当不适合使用存储器的时候,可以以尽可能远地远离寄存器的输出布置非线性部分的方式来安排计算元件。作为示例,当相关攻击在电路的组合逻辑中深入地进行时,相关攻击全部较不有效。图2的示例示出了在基于SPN网络的使用的电路中本发明的实施方式的示例,SPN表示“置换排列网络”。这种类型的电路也称为香农(Shannon)S-P网络。在此示例中,考虑了两轮中的加密。下标r表示的ニ进制字k/和k/分别用作掩蔽密钥和加密密钥。能够将作为示例给出的电路分解为多个级,即输入级、对应于第一轮的级、对应于第二轮的级和输出级。例如以细分为四个8比特子字的32比特字的形式,将要加密的数据作为输入呈现给输入级。通过使用具有32比特长度的密钥V来施加输入掩蔽,所述密钥细分为四个8比特子掩码V [O] 'V [I] 'V [2] 'V [3],通过使用四个XOR门200、201、202、203将所述子掩码施加至四个8比特子字。在第一轮的输入处,寄存器204将由密钥V掩蔽而产生的四个8比特子字作为输入。此寄存器使同步不同的ニ进制流成为可能,其中一个流对应于ー个输入的8比特子字。在四个 XOR 门 205、206、207、208 中,将细分为用 k0c
,k0c[l] ,k0c[2] ,k0c[3]表示的四个8比特子密钥的第一加密密钥IC施加在作为所述寄存器204的输出而呈现的掩蔽的子字上。密钥IC与第一加密轮相关联。然后,分别用在例如ROM型的存储器中实现的四个处理块209、210、211、212来处理由V掩蔽并且由kQe加密的数据的四个子字。应当注意,在ROM存储器中,函数(尤其是非线性函数)的实施方式的复杂度随着输入数量的増大而呈指数地増大。为了最小化实施方式的复杂度,密码算法并入此约束并且将要加密的字处理为非线性函数级上的较小大小的子字。在每个处理模块的输入处,通过使用XOR门214施加四个8比特子掩码V [O]、
V[I],V [2],V [3]来对8比特子字进行解掩蔽。然后,施加一非线性函数,其中能够使用S-盒213来实现所述非线性函数。在每个处理块的输出的上游,XOR门215用于掩蔽输出处的数据,使得由细分为四个子掩码1^
、1^[1]、1^[2]、1^[3]的掩码k/来在第一轮级的输出处掩蔽敏感数据。在轮输出处施加线性变换LtlO,对于处理块中的掩蔽而言,这是必须考虑的。为此,通过使用掩码k/的修改的掩码Lch1 (k/)来进行掩蔽。修改的掩码LcT1 (k/)细分为四个8比特修改的子掩码 LcT1 (k/ [O])、L0-1 (k/[I])、V1 (k/ [2])、L0-1 (k/ [3]),其中变换 LcT1 O 对应于线性变换Ltl O 216的逆。在处理块209、210、211、212的输出处,将变换LtlO施加于作为来自所述块的输出而呈现的ニ进制字。第一加密轮的结果对应于线性变换216的输出处的ニ进制子字,所述子字对应于由掩码k/掩蔽并因此免受观测攻击的敏感数据。第二轮的输入是第一轮的输出,并且对应于由第一轮的线性变换216产生的四个8比特子字。将这四个子字作为寄存器217的输入而呈现,使同步不同的ニ进制流成为可倉^:。特定于第二轮的、细分为用kdOhkパl]、kパ2]、kパ3]表示的四个8比特子密钥的第二加密密钥kj在四个XOR门218、219、220、221中被施加于作为来自寄存器217的输出而呈现的掩蔽的子字。然后,由k/掩蔽且由kj加密的四个数据子字分别由在(例如,ROM型的)存储器中实现的四个处理块222、223、224、225来处理。在每个块的输入处,通过使用XOR门施加密钥k/来解掩蔽数据。然后,施加非线性函数,其中能够在每个块中使用S盒来实现该非线性函数。在每个处理块的输出处,使用XOR门来掩蔽输出处的数据,使得由掩码k/来在第二轮级的输出处掩蔽敏感数据。为此,通过使用修改的掩码L1-1 (Ici2)来进行掩蔽,其中变换L1-1 O对应于线性变换L1 0226的逆。将变换L1O施加于作为来自处理块209、210、211、212的输出而呈现的ニ进制子
字。第二加密轮的结果对应于线性变换226的输出处的ニ进制子字,所述子字对应于掩蔽并因此免受观测攻击的敏感数据。这种类型的实现的优点在于能够反转(invert)第I轮的由进行的加密和由k0J进行的掩蔽以及第2轮的由V进行的加密和由k/进行的掩蔽。为了减低实现的复杂度并始终使用相同的ROM存储器,提出了通过主掩码的排列推导出从一个步骤到另ー步骤所使用的实现掩码。例如,如果V是主掩码,则能够按如下公式从主掩码推导出ニ级掩码kムk/和k/ ko^k1k/=P (ko1)k2i=P (k1i)函数P (bin)表示排列函数,例如ニ进制字bin的循环排列。此外,主掩码V能够由预定义的主掩码集随机提取。在使用图3的描述中给出了一个基于主掩码的掩码排列的示例。主掩码集的大小很小有利地使使用特定于部件(也就是说,特定于每个电路的实例)的定制的掩码成为可能。该签名的应用使减小“编目”类型的攻击的范围成为可能,这是因为泄露由此变得特定于电路而不再特定于电路类型。高阶攻击HO-DPA(为派生自表达“高阶差分功率分析”的首字母縮写(例如,“零偏置”类型的高阶攻击)是受到挑战,这是因为不再有任何特定掩码路径。因此,不再可能考虑(掩蔽变量、掩码)对。图3示出了受掩蔽保护的AES算法的实现。AES块加密算法(AES表示“高级加密标准”)在保持ニ进制消息机密方面是特别强大的。要保护的消息由固定大小的ニ进制字处理,所述字可以是128、192或256比持。加密密钥的长度为W,W等于要处理的字的长度。所述算法包括三个处理阶段,每个阶段由一轮或多轮组成。第一阶段Rl对应于初始化轮,第二阶段R2对应于迭代地使用相同结构的N轮,而第三阶段R3对应于最終轮。本领域技术人员已知特定于AES算法的这三个阶段的原理。例如,电路是FPGA或A SIC电路。能够引入根据本发明的通过掩蔽进行的保护,以便保护实现三个阶段R1、R2和R3的AES密码电路免受隐藏通道的观测攻击。随机数生成器300用于生成ニ进制字i,ニ进制字i例如为η比特,η表示掩蔽的熵。在说明书下文描述的示例中,在4比特上表示η。计数器CTR 301递增对应于当前轮数的变量r。受保护电路包括存储器区域303,存储器区域303尤其能够存储长度等于要加密的字的长度或者在此示例中长度为128比特的ー组不变掩码。随机生成300的数字i使从存储的掩码集303选择主掩码ki成为可能。因此,对于n=4、16,能够随机地选择不同的主掩码V。此外,存储在部件中的主掩码可以随产品部件的不同而不同,以便获得区别的保护并避免“编目攻击”。长度为W的主掩码V由整数个长度为S的子掩码组成,W是S的倍数。例如,长度W= 128比特的掩码ビ包括例如16个S=S比特的子掩码,所述子掩码表示为ν

V[I] > …、1^[15]。能够由主掩码生成ニ级掩码,例如用于排列组成主掩码的子掩码。因此,由单个主掩码,能够对每轮使用不同的ニ级掩码。为了增加对攻击的鲁棒性,主掩码集V随部件的不同而不同,以便在所述部件之间实现区别的掩蔽保护。变量i是随机的,并且能够在每次加密前生成。在选择了主掩码V后,通过用排列P、挑选的多个比特d的掩码k/进行循环排列,从下标r的ニ级掩码推导出下标r+Ι的ニ级掩码,其中初始化下标O的掩码,使得能够选择d,例如使得d=S比特,也就是对应于子掩蔽的长度。也有可能具有由整数个子掩码排列的下标为r的掩码。因此,能够用以下表达式生成掩码匕+/ k':..,レ]=k[ [mod(.v - (_),W/S)\O )其中r是轮数;i是由生成器300随机提取的4比特的数目;Q是整数,该整数使检查两个连续的ニ级掩码k/与k”/之间的排列率成为可能;S是以比特表示的子掩码的长度;W是以比特表示的掩码V的长度;
mod O是定义的函数,使得mod (a, b)=a模b, a和b是整数。例如,能够在由随机提取i的新值的加密过程期间修改主掩码。有利的是,能够通过选择主掩码V使得ニ级掩码互相独立来优化对观测攻击的抵抗,例如,通过保证k/与k”/之间的汉明距离基本上等于S/2。掩码的平均平衡(average balancing)也使加强保护成为可能,所述平衡是由保证ニ级掩码的汉明权重并因此保证主掩码的汉明权重基本上等于W/2而获得的。在该图的示例中,要加密的字是128比特的字,并且作为基址寄存器302中的编码器的输入而呈现。然后,要处理的字通过使用XOR门304施加未排列的密钥来掩蔽。然后,通过使用第二 XOR门305施加用IC表示的长度为W的加密密钥来加密所述掩蔽的结果O
由V掩蔽并由kQe加密的字存储在寄存器306中,所述寄存器对应于电路的执行第二处理阶段R2的部分的输入,所述阶段对应于迭代加密回路,一个迭代对应于一个处理轮。通过将128比特的字细分为16个8比特的子字的控制模块307来处理存储在寄存器306中的字。控制模块的另一功能是选择要使用的掩码k/来在轮的开始解掩蔽数据,ー轮被施加于下标r的每次迭代上。使用非线性函数模块308来处理16个8比特的子字,例如,所述模块在ROM型的存储器中实现。这些模块解掩蔽309呈现给它们的输入的子字,例如通过使用S盒,将非线性处理310施加于这些子字,并且掩蔽311所述处理的結果。对每个要处理的8比特的子字都存在非线性函数模块308。因此,对图3的示例来说,存在16个非线性函数模块。对下标!■的轮来说,这些模块将子掩码k/[O],k/[I],...,k; [15]用于输入解掩蔽309,并且将子掩码1ν/
,1ν/[1],· . .,1ν/[15]用于输出掩蔽311。例如,能够预先计算16个S盒以便由子掩码k/口掩蔽,井随后由子掩码k”/口解掩蔽。然后,将在非线性处理模块的输出处的16个子字引导朝向第二控制模块312,第ニ控制模块312的功能尤其是将所述字串接成128比特的字。然后,由两个线性处理模块来处理该128比特的字,第一个执行行的混合313 (通常用语句“移行”来描述),第二个处理操作执行列的混合314 (通常用语句“移列”来描述)。这两个线性处理操作能够用函数LJ)来模拟。使用XOR函数315,将使用密钥k/的加密施加至由所述线性处理操作产生的128比特的字。将128比特的掩码k」施加316至由用k/的加密产生的字,以便能够从ー轮到另ー轮使用相同的S盒。在通过使用以下表达式预先计算之后,存储掩码kinti303 kM=k^ ^(k) (6)因此,在存储器16中存在有预先计算的128比特的字しム阶段R2的处理操作迭代地执行了 N次。当已经执行了 N轮第二阶段R2时,在128比特的字上执行最终阶段R3,该128比特的字在线性行混合处理操作313与线性列混合处理操作314之间提取。在由XOR函数317将使用密钥kfine的最终加密施加于提取的字之后,通过使用XOR函数318施加128比特的掩码kfj来执行最终解掩蔽。在使用以下表达式预先计算之后,将16个128比特的掩码kfini存储303在受保护电路中^ =^ υ;ι(κ)(7)其中函数)表示行混合处理操作313的逆。在最后一行的结束处(也就是说在处理阶段R3的结束处)得到的字对应于AES加密的最終結果。将所获得的加密的消息写入至输出寄存器319。图4给出了由掩蔽保护的密码电路的示例,其中非线性处理操作被布置在ー轮的结束处。当在逻辑门中而非存储器中实现电路的对应于非线性处理操作的部分时,所述处理操作的上游解掩蔽函数和下游掩蔽函数可能是攻击的主体。 为了保护电路不受这些攻击,一个解决方案是在逻辑锥的末端(也就是说,正好在结果的对齐采样(registered sampling)之前)设置ー轮的非线性处理操作。然后,借助于计算的时间散布来扩展计算,于是限制了攻击的有效性。图4的示例给出了由实现此原理的掩蔽保护的密码电路的示例。此示例性的电路类似于图2所呈现的电路。加密通过使用Feistel架构来执行,并且借助于ー个输入级、称为轮I和轮2的两个轮级然后是ー个输出级的实现来执行。与图2的作为示例而给出的电路不同,例如,用S盒实现的非线性处理操作设置在逻辑锥的末端。因此,在ー轮的开始设置线性处理操作。从而在对应于第一轮的级,施加401对应于初始扩散函数しi O的线性处理操作。在对应于第二轮的级,施加402对应于扩散函数LO O的线性处理操作。在输入级的输出处施加400初始扩散函数的逆し广O,在输出级的输入处施加403最终扩散函数L1 O。在ー轮的开始处的电消耗是难以模拟的,然而使其更加依赖于ー轮的结束处的环境条件。
权利要求
1.一种由掩蔽保护的密码电路,所述电路包括用于使用至少一个密钥k/来加密二进制字的模块、用于将线性处理操作(216)和非线性处理操作(226)施加至所述字的模块、用于掩蔽所述字的模块,所述电路的特征在于 通过使用掩码k/在所述非线性处理操作的上游解掩蔽(214)所述二进制字,并且通过使用掩码k#/在所述非线性处理操作的下游掩蔽(215)所述二进制字,所述掩码k/和Iv/形成特定于所述电路的每个实例的一组掩码的一部分。
2.根据权利要求I所述的电路,其特征在于 所述非线性处理操作、在所述非线性处理操作上游的解掩蔽(214)以及在所述线性处理操作下游的掩蔽(215 )在ROM型存储器中实现(209 )。
3.根据前述权利要求中的任一项所述的电路,其特征在于 所述掩码k/是从主掩码ki推导出的二级掩码,使得kr+1i=P (k;)且kfkS函数P (X)对应于用于排列X的元素的函数,其中ROM存储器保持不变。
4.根据权利要求3所述的电路,其特征在于 所述函数PU)是循环排列,其中通过循环排列选择的多个比特d的掩码k/,来从下标r的二级掩码推导出下标r+Ι的二级掩码。
5.根据权利要求3所述的电路,其特征在于 所述主掩码P长度为W并且由整数个长度为S的子掩码构成,所述二级掩码k/由所述子掩码的排列生成。
6.根据权利要求5所述的电路,其特征在于 通过使用以下表达式来选择所述二级掩码的所述子掩码K. i M = K [mod(x - 'V IS)] 其中 r是轮数; i是随机提取的4比特数字; Q是整数,用于控制两个连续的二级掩码k/与Iv/之间的排列率; S是以比特表示的子掩码的长度; W是以比特表示的所述主掩码的长度; mod O是定义的函数,例如mod (a, b)=a模b, a和b是整数。
7.根据权利要求3至6中的任一项所述的电路,其特征在于 通过从存储在所述电路中的一组主掩码随机选择掩码Iii来有规律地修改所述主加密掩码k1。
8.根据权利要求7所述的电路,其特征在于 存储在所述电路(303 )中的所述一组主掩码从一个电路到另一个电路是不同的。
9.根据权利要求8所述的电路,其特征在于 使用内部掩码生成电路来获得所述一组主掩码。
10.根据前述权利要求中的任一项所述的电路,其特征在于 两个掩码k/与I/之间的汉明距离等于S/2。
11.根据前述权利要求中的任一项所述的电路,其特征在于 掩码Iii的汉明权重等于W/2。
12.根据前述权利要求中的任一项所述的电路,其特征在于 使用S盒来实现所述非线性处理操作(213,310)。
13.根据前述权利要求中的任一项所述的电路,其特征在于 在同一个组合块中的所述线性处理操作之后,正好在对寄存器中的结果进行采样之前,施加所述非线性处理操作。
14.根据前述权利要求中的任一项所述的电路,其特征在于 在FPGA中实现所述电路。
15.根据权利要求13所述的电路,其特征在于 利用对FPGA电路配置文件的修改来获得所述一组主掩码。
16.根据权利要求13或14中的任一项所述的电路,其特征在于 所述电路包括使得能够更新所述一组主掩码的动态重新配置模块、和实现所述电路的对应于所述非线性处理操作的部分的表。
17.根据权利要求I至13中的任一项所述的电路,其特征在于 在ASIC中实现所述电路。
全文摘要
本发明的主题是由掩蔽保护的密码电路,所述电路包括用于使用至少一个密钥krc来加密二进制字的模块,用于将线性处理操作(216)和非线性处理操作(226)施加至所述字的模块以及用于掩蔽所述字的模块。通过使用掩码kri在所述非线性处理操作的上游解掩蔽(214)所述二进制字,并且通过使用掩码kr+1i在所述处理操作的下游掩蔽(215)所述二进制字,所述掩码kri和kr+1i选自特定于所述电路的每个实例的一组掩码。
文档编号H04L9/06GK102648600SQ201080056401
公开日2012年8月22日 申请日期2010年11月8日 优先权日2009年11月13日
发明者J-L·当热, S·吉耶 申请人:法国电信教育集团-巴黎电信学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1