近年来,利用密码设备运行时泄漏的电磁信息来获得密钥的研究逐渐得到重视。2002年,DaKshi对电磁攻击进行深入的研究后指出:密码设备运行时泄漏的电磁信息非常明显,而且容易测量和分析,与其他攻击方法相比,电磁攻击更有效[1]。Carlier等人通过电磁攻击破解了AES密码芯片的密钥[2]。在国内,袁征等人将电磁攻击和能量分析攻击的特点进行了对比,得出了电磁攻击更有效[3]。严迎建等人在分析汉明重量模型和DEMA(Differential ElectroMagnetic Analysis)攻击原理的基础上,提出了一种多比特DEMA尖峰模拟分析方法。但是,关于电磁攻击中区分函数选择的研究非常少,现有的攻击方法都是仿照Eric Brier等人提出的方法[4]进行区分函数的构造。
本文在分析电磁信息泄露机理的基础上,探讨了DES密码芯片的不同区分函数的构造过程。根据其构造方法的不同,使用3种DEMA攻击方式对DES密码芯片进行了攻击实验,并根据实验结果对不同方式构造的区分函数进行了分析与对比,给出了DES密码芯片合适的区分函数构造方法。
1 电磁信息泄露机理
图1所示为CMOS反相器的等效电容模型[5]。
COMS反相器的能量消耗分为静态能量消耗和动态能量消耗。静态能量消耗是由扩散区与衬底之间的反向漏电流产生的。动态能量消耗包含两部分:一部分是对负载电容进行充放电产生的,另一部分是输入发生瞬变时产生的瞬时短路电流。其中:充放电电流对CMOS元件的能量消耗影响最大。
根据电磁场理论,随时间变化的电流产生变化的磁场。因此,密码设备在工作过程中会产生大量的电磁辐射信息,并且这些电磁信息与芯片内部执行的操作相关,这构成了电磁攻击的物理基础。
2 DEMA的区分函数构造
DEMA是采用均值差法对密码芯片运行过程中的电磁信息泄漏进行统计分析,从而得到获取密码算法的密钥信息。差分分析的一般步骤如图2所示。根据各组猜测密钥相对应的假设中间值的汉明重量将实际电磁曲线分为两个集合,分别对它们求均值,然后做差处理,得到各组猜测密钥对应的差分电磁曲线。其中,选择一个比特位的汉明重量构造区分函数进行DEMA攻击的方法称为单比特DEMA攻击,选择多个比特位汉明重量之和构造区分函数进行DEMA攻击的方法称为多比特DEMA攻击。
2.1 单比特DEMA攻击方法
单比特DEMA攻击区分函数的构造过程:攻击者选择一个与明文Ci和密钥Ks相关的中间值D(Ci,Ks),对其进行汉明重量建模H(·),并根据汉明重量模型值的大小将对应的功耗曲线分到不同的集合中。
对于单比特DEMA攻击,攻击者将根据中间值的某一比特的汉明重量是0还是1,将相对应的功耗曲线分别分到集合S0和集合S1:
正确猜测密钥对应的分组正确,差值最大;而错误密钥对应的差值很小;且非该中间值出现的时刻,可认为是随机数,差值近似为0。因此,根据差分曲线上出现的尖峰,可以判断正确密钥。
2.2 多比特DEMA攻击方法
多比特DEMA攻击流程与单比特DEMA攻击流程的大致相同,仅有两方面区别:一方面,在构造区分函数的汉明重量模型时有区别,多比特DEMA攻击时,区分函数值是多比特中间值的汉明重量之和;另一方面,区分函数值对相应的电磁信息泄露曲线的映射分组不同。
AON_DEMA区分函数是将中间值各个比特位的汉明重量全为0对应的电磁信息泄露曲线映射到S0i中,将中间值各个比特位的汉明重量全为1对应的电磁信息泄露曲线映射到S1i中,剩下的电磁信息泄露曲线映射到S2i。G_DEMA区分函数通过检测中间值各比特位的汉明重量之和与阈值的大小关系对电磁泄露曲线进行分组,当中间值的各比特位汉明重量之和小于n/2时,将对应电磁信息泄露曲线映射到S0i中;大于n/2时,将电磁信息泄露曲线映射到S1i中;剩下的电磁信息泄露曲线映射到S2i。
3 攻击实验及结果分析
为了采集DES算法运行时的电磁泄露信息,将DES算法的硬件描述下载到FPGA开发板上,利用近场探头采集DES密码芯片工作过程中的电磁泄露信息。为了对比DES密码芯片的3种DEMA攻击方式的假峰现象以及攻击成功率,本文选择DES密码算法第1个S盒输出的第1位进行单比特DEMA攻击,选择第1个S盒输出的4 bit进行多比特DEMA攻击。
3.1 DES密码芯片的单比特DEMA攻击
密码芯片泄露的电磁信息依赖于当前被处理的数据,在进行单比特DEMA攻击时,仅仅利用一个比特位对电磁泄露曲线进行分组,由于不同电磁泄露曲线对该比特位的数据相关性不同,从而导致其所对应的有用信号大小不同。当该比特位的有用信号较小时,在噪声的影响下,正确密钥所对应的差分曲线的尖峰不明显,会出现不同程度的假峰现象。因此采用此种划分方法需要大量的功耗曲线样本。
图3所示为4 000组明文样本下利用单比特DEMA攻击得到的DES第1个S盒的64个猜测密钥对应的差分曲线。由图3可以得出,含有尖峰的差分曲线对应着正确密钥。因此,在4 000组明文样本下,攻击者可以成功采用单比特区分函数破解DES密码算法的密钥。
图4所示为2 000组明文样本下利用单比特DEMA攻击得到的DES第1个S盒的64个猜测密钥对应的差分曲线。由图4可以得出,当明文样本为2 000组时,单比特DEMA攻击结果含有尖峰的差分曲线对应着错误密钥,出现假峰现象。因此在2 000组明文样本下,由于假峰现象的影响,攻击者不能采用单比特区分函数破解DES密码算法的密钥。
3.2 DES密码芯片的多比特攻击
由于密码芯片泄露的电磁信息还依赖于设备执行的操作,因此在进行多比特DEMA攻击时,利用多个比特位的汉明重量之和对电磁泄露曲线进行分组,此时多个比特位的操作相关性相互交叠会对电磁泄露曲线分组产生影响。若各比特位相关性叠加,则有用信号增强,正确密钥所对应的尖峰明显;反之,会引入更大的转换噪声,使正确密钥尖峰不明显,甚至会出现较强的假峰现象。对此选择DES密码算法的第1个S盒输出,分别采用AON_DEMA和G_DEMA方式构造区分函数。
首先采集了4 000组明文样本对应的电磁信息泄漏曲线。由图5和图6可以得出,二者的尖峰曲线均对应着正确密钥。因此,在4 000组明文样本下,攻击者可以采用AON_DEMA攻击或G_DEMA攻击破解DES密码算法的密钥。
其次采集了2 000组明文样本对应的电磁信息泄漏曲线。由图7和图8可以得出,当明文样本为2 000组时,G_DEMA攻击结果含有尖峰的差分曲线对应着错误密钥,出现假峰现象;而AON_DEMA攻击结果含有尖峰的差分曲线对应着正确密钥。因此在2 000组明文样本下,攻击者不能采用G_DEMA攻击破解DES密码算法的密钥,但可以采用AON_DEMA攻击破解DES密码算法的密钥。
3.3 结果分析
对比单比特攻击方式和多比特攻击方式的效果可以得出,单比特DEMA攻击效果差,易出现假峰现象,而多比特DEMA攻击则不易出现假峰现象。这是由于单比特位所对应的数据相关性在噪声的影响下会比较差,而多比特位其各自对应的相关性相互叠加使得尖峰明显,并且按照信噪比理论,只有1 bit区分时电磁泄露信息相对较少,采用多比特区分时能获得更多与密钥有关的泄露信息。因此,多比特攻击方式所需的样本量更少。
对比两种多比特攻击方式可以得出,采用AON_DEMA方式构造区分函数攻击所对应的正确密钥的尖峰值明显高于G_DEMA区分函数攻击所对应的正确密钥的尖峰值,并且在明文样本量为2 000组时,仅有AON_DEMA攻击能够破解DES密码算法的密钥。这是由于采用G_DEMA攻击时,可能因为某一比特位或某几个比特位所带来的转换噪声过大,导致有用信号“淹没”在噪声中,使得差分曲线的尖峰不明显,甚至出现假峰现象;而采用AON_DEMA攻击时,舍弃了更多的随机明文,使得某一比特位或某几个比特位所带来的转换噪声过大的概率降低。此外,多个比特位的相关性相互叠加,使得信噪比增加,AON_DEMA差分曲线的尖峰明显。因此,采用AON_DEMA区分函数的攻击效率高于其余两种区分函数的攻击效率。