论文部分内容阅读
摘要:侧信道攻击是目前攻击密码设备的方法之一,它具有高效性、便于实现等优点,是目前专家学者常用的攻击手段。同时针对侧信道攻击的对策也层出不穷。侧信道攻击是基于密钥与中间值的相关性,通过密码设备运行时产生的旁路信息来攻击的一种方法。而消除这种相关性就成了抵御侧信道攻击的关键。加入掩码是一个容易考虑,并且易于实现的方案。现今有许多文章和专利介绍了在逻辑门加入掩码的方法。但是现有的方案大多是假定掩码逻辑门在一个时钟周期只改变一次。通常情况下这种假设在实际应运中并不成立。本篇文章,我们考虑到掩码门限电路中毛刺的发生,使得这些电路易遭受一阶DPA攻击。我们在理论上对存在毛刺的情况下掩码门限遭受DPA攻击进行了彻底的理论分析。在每一个COMS电路中,毛刺都是存在的。因此现今的在COMS门限级别加入掩码是无法抵御DPA攻击的。
关键词:侧信道攻击;掩码;毛刺;COMS门限;DPA
绪论
近几年来有许多关于差分能量分析(DPA)和相应策略文章的发表。[1]攻击者获取密钥的关键。
因此,抵御DPA攻击的方法就显而易见,通过完全消除这种关系或者减少这种关系。实际上,有两种方法可以实现这个目标。
第一种方法就是尝试使加密设备的功率消耗和加密设备产生的数据无关。基于这种途径的方法通常称为硬件策略。第二种抵御DPA攻击的方法是随机化加密算法的中间值。这种方法的实质是使密码设备产生的随机中间值结果和实际的中间值结果是不相关的。随机化中间值结果的这种方法通常称为掩码策略。掩码策略既能在密码算法级别实现又能在门限级别实现。在密码算法级别上实现掩码策略意味着在输入和输出结果不变的情况下,从新改写算法以致所有的中间值结果全部随机化。现有的一些文章已经对对称密码算法和非对称密码算法进行了实现。
在算法级别上实现掩码的另外一种途径是对加密算法的实现使用隐藏逻辑门的方法。这就导致了电路中没有电线存储的值与算法的中间结果相关联。门限级别的掩码策略和算法级别的掩码策略是相互独立的,并且门限级别的掩码方案甚至可以实现全自动化:通过程序将数字电路转化为一个掩码门限电路。在本篇文章中,我们称带有门限掩码方案的电路为掩码电路。
门限级别的掩码方案相关理论在[2]中得到闡述。在[3],[4]中一种基于门限掩码方案的AES协同处理器已经被Trichina和Korkishko得以实现。另外,关于门限掩码方案也存在相关专利。
然而,到目前为止,门级屏蔽的一个重要问题还没有被考虑。迄今为止进行的安全性分析假定掩码电路中的每个门每时钟周期切换不超过一次。然而,这种假设在一般情况下是不成立的。数字电路中门的输入信号通常不同时到达。因此,在一个时钟周期中,栅极的输出可能会切换几次。在栅极切换到正确输出之前发生的栅极输出的转换称为毛刺。数字电路中出现毛刺的现象是众所周知的,在VLSI设计的文献中得到了广泛的讨论。在CMOS电路中对于功率消耗毛刺起着十分重要的作用,因此在这些电路中抵御DPA攻击就和毛刺有很大关系。
本篇文章我们分析了掩码门在抵御DPA攻击时毛刺的影响。实际上我们证明了几个掩码CMOS实现的非线性门,如与门和或门是不能够抵御DPA攻击的。这些实现都易遭受经典的一阶DPA攻击。我们从理论上证明了这一事实,并且提供了基于SPICE模拟的攻击结果。
本篇文章的具体结构如下:第一章我们介绍了门限级别掩码方案的相关概念,然后讨论了现有的对应策略和相关专利。第二章,我们对有毛刺存在的条件下掩码门限抵御DPA攻击进行了全面的理论分析。另外,我们讨论了毛刺产生的原因并且尝试尽量阻止毛刺的产生。第三章是我们得出的相关结论。
1.门级掩码
门级掩码的基本思想是用两个值和来表示电路中产生的一个值。是一个统计上独立于均匀分布的随机掩码。掩码值是通过和异或模2得到的:
在一个屏蔽的数字电路中,逻辑门采用元组而不是作为输入。事实上,每个逻辑门的所有输入和输出都是被屏蔽的。在正常数字电路中,门的输入和输出如图1所示,而掩码数字电路中栅极的输入和输出如图2所示。
在正常数字电路中,有两个输入的门根据输入和:计算输出。在掩码电路中,输入和输出都被掩码。这就意味着, 和,其中 是随机生成的掩码。掩码门限的输出
为了可读性,我们只讨论两个掩码输入和一个掩码输出的门。然而,这种限制可以在不损失一般性的情况下完成。我们的结果也能适用于更复杂的门。我们在这篇文章中所做的另一个限制是,我们只分析一个数据位被一个掩码位掩码的电路。在实际(商业)应用中,面积和功率的限制通常排除了在每个时钟周期中为每个数据位生成一个新掩码的可能性。这种方法本质上意味着,对于每个数据位,都需要一个(伪)随机数生成器。在实际应用中,设计者必须对几个数据信号重复使用相同的掩码,或者他们必须使用同一个掩码来完成几个时钟周期。然而,在本文的背景中,我们没有详细讨论如何生成或分发掩码的问题。我们只使用了关于掩码生成和分布的最佳假设,即在每个时钟周期中可以为每个门生成新的掩码和。我们表明,即使使用这种理想的假设,毛刺的产生也会使得掩码数字电路易遭受DPA的攻击。
1.1 门级掩码的相关理论
到目前为止,算法的掩码方案相比逻辑门掩码方案受到了更为广泛的关注。例如,已经有一部分文章讨论如何对DES和AES进行掩码。然而,也有两篇文章用更为通用的方式讨论了掩码。在本文中,掩码电路被称为专用电路,这些电路的目的是提供保护,防止攻击者在电路中探测一定数量的线路。功耗分析攻击被建模为探测攻击,因为它们允许攻击者确定特定导线的值。
文献5中隐含的一个重要假设是每个时钟周期每条线路电平变化不超过一次。数字电路被建模为一个图形,其中节点对应于门,连接对应于电线。没有考虑门的传播延迟,因此在这个模型中不会出现毛刺。然而,实际中的数字电路是有毛刺产生的,并且对于数字电路的功率消耗有着很大的影响。因此,在[ 5 ]中提出的模型需要更新,以便应用于实际电路。 1.2 基于多路复用器的门级掩码建立
2001年Messerges,Dabbish和Puhl首次申请了门限掩码方案的相关专利。该专利描述了任意逻辑函数都能够基于多路复用器来添加掩码,逻辑函数的所有输入以及输出均被掩码。因此,根据14实现的门限掩码的接口方式对应于图2所示。
使用这种方式实现门限掩码在实践中的应用比较多。例如,一个由三个多路复用器,三个交叉开关,四个异或门组成的两输入门。相关文献已经提出使用这种方法来确保防止功耗分析攻击的数据置乱技术。在这篇文章中,我们表明如果在掩码电路中考虑毛刺的产生,基于多路复用器的门限掩码方案是不能够抵御DPA攻击的。但是,如果在掩码电路中出现毛刺,所有这些方法在理论和实践中都容易受到DPA攻击。
2.掩码门限理论安全性分析
2.1 分析普通门限抗DPA攻击特性
两输入与门将两个值和作为输入来计算。对于我们的分析,我们假设输入是同时到达的,并且每个时钟周期它们的值不会超过一次。我们不需要考虑我们的正常门分析的小故障,因为即使没有毛刺出现,这些门也容易受到DPA攻击。
与门的每个输入可以在给定的时钟周期内执行四次转换(0→0,0→1,1→0或1→1)中的一次。因此,总共存在可能发生的输入转换的个可能的组合。表1列出了这些输入转换的组合。除输入转换外,表1还显示了相应的输出转换和执行这些转换所需的能量。由于输入和在统计上是独立的且均匀分布的,所以这个表格中显示的所有16个情况具有相同的发生概率。
在作为数字电路一部分的与门的DPA攻击中,电路的功耗首先被记录多次,而电路通过不同的输入形成密码操作。随后,功率测量分为两组。第一组包含所有测量值,其中在时钟周期结束时,第二组包含所有测量值,其中。
使用本节引入的符号,这意味着第一个组包含其中输出执行(0→0)或(1→0)过渡的情况下,而第二组包含剩余的情况。攻击者计算两组能量的平均值并将它们相减。
这两种方法的期望值通常不相等,因此存在侧通道信息的泄漏。的处理与的处理相比需要不同的能量。实际上,利用这种能量差异所需的采样数基本上取决于背景噪声,例如,由于其他电路部分和价值
相应的分析也可以很容易地用于其他逻辑门,比如OR和XOR。所有这些门都容易受到DPA攻击。
在本文中,我们着重讨论逻辑门的功耗和门处理的数据之间的关系。这种相关关系决定了实践中DPA攻击所需的样本数量。
2.2 分析无毛刺掩码门限抗DPA攻击特性
假设数字电路中不出现毛刺,证明掩蔽门可抵抗DPA攻击是相对容易的。我们基于掩码2输入与门提出了这些证明的基本思想。
一个带掩码的2输入与门将5个信号作为输入 并计算输出。假设数字电路中没有毛刺意味着每个输入和输出信号在每个时钟周期只切换一次。每个输入可以在给定的时钟周期内执行四次中的一次。因此,可能发生的输入转换有种可能的组合。
事实上,事实证明,处理所需的能量的期望值和处理所对应的期望值是相同的。此外,该表还可以用来表明DPA对输入和的攻击也是不可能的。假设在数字电路中没有毛刺,屏蔽“与”门的能量消耗的確与独立于未屏蔽的输入和未屏蔽的输出无关。
这个事实在过去被用来提高掩码门限理论证明的安全性。然而,在接下来的小节中,我们讨论为什么在数字电路中不会出现毛刺的假设通常在实践中不成立。
2.3 数字电路的时序和转换特性
实际上,数字电路通常是基于CMOS实现的。逻辑功能是通过将多个CMOS门彼此连接来实现的。这些门的一个重要特性是它们具有一定的传播延迟,即需要一定的时间直到门的输出对门的输入处的变化作出反应。
该属性对数字电路的转换特性有很大影响。在这样的电路中,门的输入信号是不同组合路径的输出。这些路径不一定具有相同的长度。例如,可能发生一个门的输入总是早于输入到达。输入信号之间的这种延迟的结果是门在每个时钟周期将其输出切换超过一次。当输入执行转换时,输出切换,当输入执行转换时,输出再次切换。重要的是要注意,在两个输入信号到达之间的时间跨度内,门的输出切换到“错误”的值。这个“错误”的值可能是另一个逻辑门的输入。当然,这种门在其输入端对这种转换作出反应,并根据“错误”的输入值改变其输出。通过这种方式,“错误”的值通过电路传播。
所有这些的结果是,在组合电路中的每根电线稳定到最终值之前会发生许多意外转换活动。在实践中,毛刺是电路功耗的一个重要因素。因此,在对掩码栅极的DPA抵抗进行彻底分析时,不可忽略毛刺。在接下来的小节中,我们展示了小故障使得掩码门限容易受到DPA攻击。
传统CMOS电路出现毛刺,当然它们也出现在基于CMOS的掩模电路中。但是,除了CMOS之外,还有许多其他逻辑类型可用于实现数字电路。其中,实际上有一些可以防止小故障。
毛刺不会出现在所谓的多米诺逻辑类型中,例如预充电NMOS,DCVSL或SABL。但是,预充电电路通常比相应的CMOS电路大。与CMOS相比,这些逻辑类型的另一个缺点是缺乏自动化的现成电路综合工具。
迄今已发表的关于在门口掩蔽的论文和专利没有解决毛刺问题。因此,这些出版物的读者可能隐含地认为可以基于CMOS来实现掩蔽。但是,正如我们在以下小节中指出的那样,情况并非如此。为了确保掩模电路具有抗DPA性能,需要使用防止毛刺的逻辑类型。这显着增加了屏蔽电路的实施成本。
2.4 分析掩码门限抗DPA攻击毛刺的影响
在基于CMOS的数字电路中,逻辑门的输入信号可以在不同的时刻得到。此外,这些信号在一个时钟周期内可能会切换多次。我们现在分析这些事实对掩码2输入与门的实现的影响。
为了简化分析,我们对输入信号之间的延迟如何以及输入信号每个时钟周期切换的频率做出了一些假设。但是,这些假设并不意味着丧失一般性。 我們假设每个输入信号在每个时钟周期切换一次,并且至少有一个五个输入信号的到达时间不同于其他信号。此外,如果两个信号到达时间之间存在差异,则总是假定这种差异大于掩码门的传播延迟。
为了分析屏蔽与门的敏感性,我们使用了与前面小节中相同的技术。我们创建了具有输入转换,输出转换和执行转换所需能量的表格。
首先我们考察了其中只有五个输入中的一个输入在不同时刻到达的情况,而不是其余四个输入。有十种这样的情况。有五个输入信号,其中每一个都可以在其他四个输入信号之前或之后到达。例如,一种情况是首先到达,和随后到达。
像在2.2小节中那样,在每种情况下,在输入处都存在个可能的转换组合。然而,在输入到达两个不同时刻的十种情况下,屏蔽与门的输出执行两次转换而不是一次。当单个输入执行转换时执行一个转换,而当另外四个输入信号执行转换时执行另一个转换。
我们分析了执行这两个转换所需的能量耗散是否与一致。这是通过计算处理所需能量的预期值和的相应预期值来完成的(参见2.1小节)。对于未屏蔽的输入和也进行了相同的处理。如果栅极的能量耗散与所有未屏蔽的输入和输出不相关,则屏蔽栅极仅抵抗DPA攻击。
不幸的是,事实证明,在所有十种情景中,执行输出的两个转换所需的能量与或 相关。我们还调查了所有其他情况。这些例如是两个输入在其余三个到达之前或之后在不同时刻到达的场景。然而,在所有场景的分析中,从仅有一个信号在不同时间到达所有输入在不同时刻到达的场景开始,总是与或相关。
在实践中,不同的到达时间非常普遍。在掩蔽门的情况下,掩模和特别可能在不同时刻到达输入和。原因在于掩码是由数字电路的完全不同的部分产生的。
根据我们在本节中分析的场景,我们必须得出结论:没有实现基于CMOS的屏蔽“与”门,它抵抗DPA攻击。我们对掩蔽的与门也进行了与掩蔽的NAND,OR,NOR,XOR和XNOR门相同的分析。
事实证明,屏蔽非线性门如AND,NAND,OR和NOR门容易受到DPA攻击,而屏蔽线性门(如XOR和XNOR门)可抵抗DPA攻击。然而,对于像AES S-Box这样的操作的实施,非线性操作是至关重要的。
因此,我们理论分析的结论是,所有公布的门级掩码方案都需要基于防止毛刺的产生来实现。
3.结论
我们已经表明,基于CMOS的掩蔽门的所有提议实现由于毛刺而容易受到DPA攻击。在以前的门级掩模分析中,毛刺已被完全忽略。
在这篇文章中,我们对掩蔽门上的故障进行了理论分析。此外,我们已经在[3]和[4]中提出了基于掩码门的SPICE仿真的DPA攻击结果。这两种方法都变得易受DPA攻击。
通过使用多米诺逻辑样式可以防止数字电路中的毛刺。但是,基于这种逻辑类型的实现通常比基于CMOS的实现更大。
此外,使用多米诺逻辑类型的电路的设计效果明显高于相应CMOS电路的设计效果。这是多米诺逻辑样式的商业综合工具目前不可用的结果。因此,在实践中,保护数字电路免受基于掩码逻辑门的DPA攻击是非常昂贵的。
参考文献:
[1]Paul C. Kocher,Joshua Ja?e,and Benjamin Jun. Di?erential Power Analysis.In Michael Wiener,editor,Advances in Cryptology - CRYPTO ’99,19th AnnualInternational Cryptology Conference,Santa Barbara,California,USA,August 15-19,1999,Proceedings,volume 1666 of Lecture Notes in Computer Science,pages388–397. Springer,1999.
[2]Yuval Ishai,Amit Sahai,and David Wagner. Private Circuits:Securing Hard-ware against Probing Attacks. In Dan Boneh,editor,Advances in Cryptology -CRYPTO 2003,23rd Annual International Cryptology Conference,Santa Barbara,California,USA,August 17-21,2003,Proceedings,volume 2729 of Lecture Notesin Computer Science,pages 463–481. Springer,2003
[3]Elena Trichina. Combinational Logic Design for AES Sub Byte Transformationon Masked Data. Cryptology e Print Archive(http://eprint.iacr.org/),Report2003/236,2003.
[4]Elena Trichina and Tymur Korkishko. Small Size,Low Power,Side Channel-Immune AES Coprocessor:Design and Synthesis Results. In Proceedings of theFourth Conference on the Advanced Encryption Standard(AES),2004.
[5]Yuval Ishai,Amit Sahai,and David Wagner. Private Circuits:Securing Hard-ware against Probing Attacks. In Dan Boneh,editor,Advances in Cryptology -CRYPTO 2003,23rd Annual International Cryptology Conference,Santa Barbara,California,USA,August 17-21,2003,Proceedings,volume 2729 of Lecture Notesin Computer Science,pages 463–481. Springer,2003.
关键词:侧信道攻击;掩码;毛刺;COMS门限;DPA
绪论
近几年来有许多关于差分能量分析(DPA)和相应策略文章的发表。[1]攻击者获取密钥的关键。
因此,抵御DPA攻击的方法就显而易见,通过完全消除这种关系或者减少这种关系。实际上,有两种方法可以实现这个目标。
第一种方法就是尝试使加密设备的功率消耗和加密设备产生的数据无关。基于这种途径的方法通常称为硬件策略。第二种抵御DPA攻击的方法是随机化加密算法的中间值。这种方法的实质是使密码设备产生的随机中间值结果和实际的中间值结果是不相关的。随机化中间值结果的这种方法通常称为掩码策略。掩码策略既能在密码算法级别实现又能在门限级别实现。在密码算法级别上实现掩码策略意味着在输入和输出结果不变的情况下,从新改写算法以致所有的中间值结果全部随机化。现有的一些文章已经对对称密码算法和非对称密码算法进行了实现。
在算法级别上实现掩码的另外一种途径是对加密算法的实现使用隐藏逻辑门的方法。这就导致了电路中没有电线存储的值与算法的中间结果相关联。门限级别的掩码策略和算法级别的掩码策略是相互独立的,并且门限级别的掩码方案甚至可以实现全自动化:通过程序将数字电路转化为一个掩码门限电路。在本篇文章中,我们称带有门限掩码方案的电路为掩码电路。
门限级别的掩码方案相关理论在[2]中得到闡述。在[3],[4]中一种基于门限掩码方案的AES协同处理器已经被Trichina和Korkishko得以实现。另外,关于门限掩码方案也存在相关专利。
然而,到目前为止,门级屏蔽的一个重要问题还没有被考虑。迄今为止进行的安全性分析假定掩码电路中的每个门每时钟周期切换不超过一次。然而,这种假设在一般情况下是不成立的。数字电路中门的输入信号通常不同时到达。因此,在一个时钟周期中,栅极的输出可能会切换几次。在栅极切换到正确输出之前发生的栅极输出的转换称为毛刺。数字电路中出现毛刺的现象是众所周知的,在VLSI设计的文献中得到了广泛的讨论。在CMOS电路中对于功率消耗毛刺起着十分重要的作用,因此在这些电路中抵御DPA攻击就和毛刺有很大关系。
本篇文章我们分析了掩码门在抵御DPA攻击时毛刺的影响。实际上我们证明了几个掩码CMOS实现的非线性门,如与门和或门是不能够抵御DPA攻击的。这些实现都易遭受经典的一阶DPA攻击。我们从理论上证明了这一事实,并且提供了基于SPICE模拟的攻击结果。
本篇文章的具体结构如下:第一章我们介绍了门限级别掩码方案的相关概念,然后讨论了现有的对应策略和相关专利。第二章,我们对有毛刺存在的条件下掩码门限抵御DPA攻击进行了全面的理论分析。另外,我们讨论了毛刺产生的原因并且尝试尽量阻止毛刺的产生。第三章是我们得出的相关结论。
1.门级掩码
门级掩码的基本思想是用两个值和来表示电路中产生的一个值。是一个统计上独立于均匀分布的随机掩码。掩码值是通过和异或模2得到的:
在一个屏蔽的数字电路中,逻辑门采用元组而不是作为输入。事实上,每个逻辑门的所有输入和输出都是被屏蔽的。在正常数字电路中,门的输入和输出如图1所示,而掩码数字电路中栅极的输入和输出如图2所示。
在正常数字电路中,有两个输入的门根据输入和:计算输出。在掩码电路中,输入和输出都被掩码。这就意味着, 和,其中 是随机生成的掩码。掩码门限的输出
为了可读性,我们只讨论两个掩码输入和一个掩码输出的门。然而,这种限制可以在不损失一般性的情况下完成。我们的结果也能适用于更复杂的门。我们在这篇文章中所做的另一个限制是,我们只分析一个数据位被一个掩码位掩码的电路。在实际(商业)应用中,面积和功率的限制通常排除了在每个时钟周期中为每个数据位生成一个新掩码的可能性。这种方法本质上意味着,对于每个数据位,都需要一个(伪)随机数生成器。在实际应用中,设计者必须对几个数据信号重复使用相同的掩码,或者他们必须使用同一个掩码来完成几个时钟周期。然而,在本文的背景中,我们没有详细讨论如何生成或分发掩码的问题。我们只使用了关于掩码生成和分布的最佳假设,即在每个时钟周期中可以为每个门生成新的掩码和。我们表明,即使使用这种理想的假设,毛刺的产生也会使得掩码数字电路易遭受DPA的攻击。
1.1 门级掩码的相关理论
到目前为止,算法的掩码方案相比逻辑门掩码方案受到了更为广泛的关注。例如,已经有一部分文章讨论如何对DES和AES进行掩码。然而,也有两篇文章用更为通用的方式讨论了掩码。在本文中,掩码电路被称为专用电路,这些电路的目的是提供保护,防止攻击者在电路中探测一定数量的线路。功耗分析攻击被建模为探测攻击,因为它们允许攻击者确定特定导线的值。
文献5中隐含的一个重要假设是每个时钟周期每条线路电平变化不超过一次。数字电路被建模为一个图形,其中节点对应于门,连接对应于电线。没有考虑门的传播延迟,因此在这个模型中不会出现毛刺。然而,实际中的数字电路是有毛刺产生的,并且对于数字电路的功率消耗有着很大的影响。因此,在[ 5 ]中提出的模型需要更新,以便应用于实际电路。 1.2 基于多路复用器的门级掩码建立
2001年Messerges,Dabbish和Puhl首次申请了门限掩码方案的相关专利。该专利描述了任意逻辑函数都能够基于多路复用器来添加掩码,逻辑函数的所有输入以及输出均被掩码。因此,根据14实现的门限掩码的接口方式对应于图2所示。
使用这种方式实现门限掩码在实践中的应用比较多。例如,一个由三个多路复用器,三个交叉开关,四个异或门组成的两输入门。相关文献已经提出使用这种方法来确保防止功耗分析攻击的数据置乱技术。在这篇文章中,我们表明如果在掩码电路中考虑毛刺的产生,基于多路复用器的门限掩码方案是不能够抵御DPA攻击的。但是,如果在掩码电路中出现毛刺,所有这些方法在理论和实践中都容易受到DPA攻击。
2.掩码门限理论安全性分析
2.1 分析普通门限抗DPA攻击特性
两输入与门将两个值和作为输入来计算。对于我们的分析,我们假设输入是同时到达的,并且每个时钟周期它们的值不会超过一次。我们不需要考虑我们的正常门分析的小故障,因为即使没有毛刺出现,这些门也容易受到DPA攻击。
与门的每个输入可以在给定的时钟周期内执行四次转换(0→0,0→1,1→0或1→1)中的一次。因此,总共存在可能发生的输入转换的个可能的组合。表1列出了这些输入转换的组合。除输入转换外,表1还显示了相应的输出转换和执行这些转换所需的能量。由于输入和在统计上是独立的且均匀分布的,所以这个表格中显示的所有16个情况具有相同的发生概率。
在作为数字电路一部分的与门的DPA攻击中,电路的功耗首先被记录多次,而电路通过不同的输入形成密码操作。随后,功率测量分为两组。第一组包含所有测量值,其中在时钟周期结束时,第二组包含所有测量值,其中。
使用本节引入的符号,这意味着第一个组包含其中输出执行(0→0)或(1→0)过渡的情况下,而第二组包含剩余的情况。攻击者计算两组能量的平均值并将它们相减。
这两种方法的期望值通常不相等,因此存在侧通道信息的泄漏。的处理与的处理相比需要不同的能量。实际上,利用这种能量差异所需的采样数基本上取决于背景噪声,例如,由于其他电路部分和价值
相应的分析也可以很容易地用于其他逻辑门,比如OR和XOR。所有这些门都容易受到DPA攻击。
在本文中,我们着重讨论逻辑门的功耗和门处理的数据之间的关系。这种相关关系决定了实践中DPA攻击所需的样本数量。
2.2 分析无毛刺掩码门限抗DPA攻击特性
假设数字电路中不出现毛刺,证明掩蔽门可抵抗DPA攻击是相对容易的。我们基于掩码2输入与门提出了这些证明的基本思想。
一个带掩码的2输入与门将5个信号作为输入 并计算输出。假设数字电路中没有毛刺意味着每个输入和输出信号在每个时钟周期只切换一次。每个输入可以在给定的时钟周期内执行四次中的一次。因此,可能发生的输入转换有种可能的组合。
事实上,事实证明,处理所需的能量的期望值和处理所对应的期望值是相同的。此外,该表还可以用来表明DPA对输入和的攻击也是不可能的。假设在数字电路中没有毛刺,屏蔽“与”门的能量消耗的確与独立于未屏蔽的输入和未屏蔽的输出无关。
这个事实在过去被用来提高掩码门限理论证明的安全性。然而,在接下来的小节中,我们讨论为什么在数字电路中不会出现毛刺的假设通常在实践中不成立。
2.3 数字电路的时序和转换特性
实际上,数字电路通常是基于CMOS实现的。逻辑功能是通过将多个CMOS门彼此连接来实现的。这些门的一个重要特性是它们具有一定的传播延迟,即需要一定的时间直到门的输出对门的输入处的变化作出反应。
该属性对数字电路的转换特性有很大影响。在这样的电路中,门的输入信号是不同组合路径的输出。这些路径不一定具有相同的长度。例如,可能发生一个门的输入总是早于输入到达。输入信号之间的这种延迟的结果是门在每个时钟周期将其输出切换超过一次。当输入执行转换时,输出切换,当输入执行转换时,输出再次切换。重要的是要注意,在两个输入信号到达之间的时间跨度内,门的输出切换到“错误”的值。这个“错误”的值可能是另一个逻辑门的输入。当然,这种门在其输入端对这种转换作出反应,并根据“错误”的输入值改变其输出。通过这种方式,“错误”的值通过电路传播。
所有这些的结果是,在组合电路中的每根电线稳定到最终值之前会发生许多意外转换活动。在实践中,毛刺是电路功耗的一个重要因素。因此,在对掩码栅极的DPA抵抗进行彻底分析时,不可忽略毛刺。在接下来的小节中,我们展示了小故障使得掩码门限容易受到DPA攻击。
传统CMOS电路出现毛刺,当然它们也出现在基于CMOS的掩模电路中。但是,除了CMOS之外,还有许多其他逻辑类型可用于实现数字电路。其中,实际上有一些可以防止小故障。
毛刺不会出现在所谓的多米诺逻辑类型中,例如预充电NMOS,DCVSL或SABL。但是,预充电电路通常比相应的CMOS电路大。与CMOS相比,这些逻辑类型的另一个缺点是缺乏自动化的现成电路综合工具。
迄今已发表的关于在门口掩蔽的论文和专利没有解决毛刺问题。因此,这些出版物的读者可能隐含地认为可以基于CMOS来实现掩蔽。但是,正如我们在以下小节中指出的那样,情况并非如此。为了确保掩模电路具有抗DPA性能,需要使用防止毛刺的逻辑类型。这显着增加了屏蔽电路的实施成本。
2.4 分析掩码门限抗DPA攻击毛刺的影响
在基于CMOS的数字电路中,逻辑门的输入信号可以在不同的时刻得到。此外,这些信号在一个时钟周期内可能会切换多次。我们现在分析这些事实对掩码2输入与门的实现的影响。
为了简化分析,我们对输入信号之间的延迟如何以及输入信号每个时钟周期切换的频率做出了一些假设。但是,这些假设并不意味着丧失一般性。 我們假设每个输入信号在每个时钟周期切换一次,并且至少有一个五个输入信号的到达时间不同于其他信号。此外,如果两个信号到达时间之间存在差异,则总是假定这种差异大于掩码门的传播延迟。
为了分析屏蔽与门的敏感性,我们使用了与前面小节中相同的技术。我们创建了具有输入转换,输出转换和执行转换所需能量的表格。
首先我们考察了其中只有五个输入中的一个输入在不同时刻到达的情况,而不是其余四个输入。有十种这样的情况。有五个输入信号,其中每一个都可以在其他四个输入信号之前或之后到达。例如,一种情况是首先到达,和随后到达。
像在2.2小节中那样,在每种情况下,在输入处都存在个可能的转换组合。然而,在输入到达两个不同时刻的十种情况下,屏蔽与门的输出执行两次转换而不是一次。当单个输入执行转换时执行一个转换,而当另外四个输入信号执行转换时执行另一个转换。
我们分析了执行这两个转换所需的能量耗散是否与一致。这是通过计算处理所需能量的预期值和的相应预期值来完成的(参见2.1小节)。对于未屏蔽的输入和也进行了相同的处理。如果栅极的能量耗散与所有未屏蔽的输入和输出不相关,则屏蔽栅极仅抵抗DPA攻击。
不幸的是,事实证明,在所有十种情景中,执行输出的两个转换所需的能量与或 相关。我们还调查了所有其他情况。这些例如是两个输入在其余三个到达之前或之后在不同时刻到达的场景。然而,在所有场景的分析中,从仅有一个信号在不同时间到达所有输入在不同时刻到达的场景开始,总是与或相关。
在实践中,不同的到达时间非常普遍。在掩蔽门的情况下,掩模和特别可能在不同时刻到达输入和。原因在于掩码是由数字电路的完全不同的部分产生的。
根据我们在本节中分析的场景,我们必须得出结论:没有实现基于CMOS的屏蔽“与”门,它抵抗DPA攻击。我们对掩蔽的与门也进行了与掩蔽的NAND,OR,NOR,XOR和XNOR门相同的分析。
事实证明,屏蔽非线性门如AND,NAND,OR和NOR门容易受到DPA攻击,而屏蔽线性门(如XOR和XNOR门)可抵抗DPA攻击。然而,对于像AES S-Box这样的操作的实施,非线性操作是至关重要的。
因此,我们理论分析的结论是,所有公布的门级掩码方案都需要基于防止毛刺的产生来实现。
3.结论
我们已经表明,基于CMOS的掩蔽门的所有提议实现由于毛刺而容易受到DPA攻击。在以前的门级掩模分析中,毛刺已被完全忽略。
在这篇文章中,我们对掩蔽门上的故障进行了理论分析。此外,我们已经在[3]和[4]中提出了基于掩码门的SPICE仿真的DPA攻击结果。这两种方法都变得易受DPA攻击。
通过使用多米诺逻辑样式可以防止数字电路中的毛刺。但是,基于这种逻辑类型的实现通常比基于CMOS的实现更大。
此外,使用多米诺逻辑类型的电路的设计效果明显高于相应CMOS电路的设计效果。这是多米诺逻辑样式的商业综合工具目前不可用的结果。因此,在实践中,保护数字电路免受基于掩码逻辑门的DPA攻击是非常昂贵的。
参考文献:
[1]Paul C. Kocher,Joshua Ja?e,and Benjamin Jun. Di?erential Power Analysis.In Michael Wiener,editor,Advances in Cryptology - CRYPTO ’99,19th AnnualInternational Cryptology Conference,Santa Barbara,California,USA,August 15-19,1999,Proceedings,volume 1666 of Lecture Notes in Computer Science,pages388–397. Springer,1999.
[2]Yuval Ishai,Amit Sahai,and David Wagner. Private Circuits:Securing Hard-ware against Probing Attacks. In Dan Boneh,editor,Advances in Cryptology -CRYPTO 2003,23rd Annual International Cryptology Conference,Santa Barbara,California,USA,August 17-21,2003,Proceedings,volume 2729 of Lecture Notesin Computer Science,pages 463–481. Springer,2003
[3]Elena Trichina. Combinational Logic Design for AES Sub Byte Transformationon Masked Data. Cryptology e Print Archive(http://eprint.iacr.org/),Report2003/236,2003.
[4]Elena Trichina and Tymur Korkishko. Small Size,Low Power,Side Channel-Immune AES Coprocessor:Design and Synthesis Results. In Proceedings of theFourth Conference on the Advanced Encryption Standard(AES),2004.
[5]Yuval Ishai,Amit Sahai,and David Wagner. Private Circuits:Securing Hard-ware against Probing Attacks. In Dan Boneh,editor,Advances in Cryptology -CRYPTO 2003,23rd Annual International Cryptology Conference,Santa Barbara,California,USA,August 17-21,2003,Proceedings,volume 2729 of Lecture Notesin Computer Science,pages 463–481. Springer,2003.