《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > 对于DES的差分能量分析攻击及其防范对策

对于DES的差分能量分析攻击及其防范对策

2008-09-22
作者:张 咏1, 范明钰2, 王宇飞1

  摘 要: 简要介绍了DES的加密过程,将差分" title="差分">差分能量分析DPA(Differential Power Analysis)的原理运用于该算法,提出了区分函数的选取原则,并针对差分能量分析的假设,介绍了几种对抗这种攻击的策略。
  关键词: DES DPA 差分能量分析 区分函数


  传统的密码分析理论认为,对密码芯片的分析仅依赖于输入明文和输出密文。而在实际应用中,分析人员可以获得其它的信息。例如对于有引脚的芯片,很容易获得引脚上的电流或者电压。通过这些电流或电压的变化,可以用有别于传统的方法获得密钥的信息。
1 DES加密过程
  DES(Data Encryption Standard)被认为是加密技术的两大里程碑之一。在上个世纪得到了广泛的应用。这里给出其中一轮加密过程,如图1。其它如扩展置换、密钥产生等具体过程见参考文献[1]


  在整个DES加密流程中,只有S盒(S-box)是唯一的非线性函数,是整个加密算法的安全核心。图2给出了S盒的图示。
  图2中的每个S盒都是一个4×16的查找表" title="查找表">查找表。在加密过程中,将与子密钥K异或后的48bits均分为8组,分别对应8个S盒,记每组为(a0a1a2a3a4a5)。根据这6位输入,在对应的S盒查找表中找到对应的4位数据作为输出。查找表中的对应关系如下:由(a0 a5)决定对应的S盒的行,由(a1a2a3a4)决定对应的S盒的列。由这个行和列确定的数(4位二进制表示)作为该S盒的输出。


  由于S盒在DES加密算法中的特殊地位,使得很多攻击方法都是针对S盒的。
2 DPA原理在DES上的应用
  Differential Power Analysis最早由Kocher et al提出[2],现在许多研究人员指出它对智能卡(Smart Card)是一种有效的攻击[2~6]。其理论基础是:在加密过程中要消耗能量,而消耗的能量随处理的数据不同会有微小的变化。根据这种变化确定所处理的数据是0 还是1,从而有可能猜出加密算法中所使用的密钥。
  在具体讨论这种攻击前,对所用符号做如下约定:
  Si[j]:第i个明文在时间点j时的能量消耗" title="能量消耗">能量消耗抽样值;
  D(·):引入的区分函数;
  
  A0[j]:集合S0中所有信号在j时刻的平均能量消耗;
  A1[j]:集合S1中所有信号在j时刻的平均能量消耗;
  △D[j]:两集合的平均信号能量差异。
  首先,要能够测得整个加密流程中S盒的能量消耗曲线。基于统计的理论,要求记录足够的样本点Si[j]。这里隐含了一个假设:S盒中对不同比特处理时,能量消耗差异发生在一个特定的时间,而且正好在该点的±△时间范围内进行抽样,因此能够记录下不同的能量消耗曲线。这个假设可以作为抗DPA攻击对策的一个切入点。
  另外还需要让这些能量曲线反映出关于密钥的信息。这是整个DPA过程中的关键。在这儿,引入了区分函数D(·),有的地方也记为selection function[2]。从上面的" title="面的">面的(1)和(2)式中可以看到,该函数的作用是将样本曲线映射到两个不相交的集合上。
  下一步,对这两个集合中的样本在时间点j的样本值进行平均,得到时间点j时的平均能量消耗。由于Si[j]包含信号和噪声这两部分的能量消耗,而根据随机过程的知识,知道其中大部分均值为0。关于噪声的模型可见参考文献[4]。因而这种平均可以在一定程度上降低随机噪声对信号的影响。
  
  由上面可以看到:当|△D[j]|较大时,说明由区分函数划分的两个信号的能量消耗在j时刻差异较大。而这种能量消耗差异,正是由密钥和待处理数据相互作用而产生的。如果选择的区分函数合适,即在理想的情况下,D函数正好将所有在j时刻芯片处理数据为1的Si[j]选到集合S1;相应地,在j时刻,芯片处理的数据为0的所有Si[j]被D函数映射到集合S0中,这时能量消耗差异很明显。
  目前发表的文献中均只给出了具体的区分函数,下面给出区分函数的一般选取原则:
  (1)区分函数是关于密钥的函数D(Ki);
  (2)区分函数在正确的输入下应当重现加密芯片所处理的某一比特值。
  如将该函数定义为:
  
  即D值等于第i个样本在第一轮非线性变换中的第一个" title="第一个">第一个S盒输出的4bits中的第一个比特。其中P6表示明文经过初始置换后作为第一个S盒输入的6bits,K1表示猜测的第一轮密钥中用于第一个S盒的输入部分。如果猜测的密钥正确,那么D值就一定会等于实际加密过程中第一个S盒的第一位输出。即这一时刻所有输出为1的Si[j]都会被映射到集合S1,因此会使得△D[j]出现峰值。相反,如果密钥不正确,就会使得某些输出值为1的Si[j]被映射到集合S0中,这时△D[j]的峰值会变小。这样,就可以猜出一部分密钥了。依照这种方法,猜测全部S盒的48bits密钥所需的次数为26×8次,另外8比特密钥可以用穷举法求得。这个结果比单纯地应用穷举搜索有了明显的改进。其它一些区分函数的例子见参考文献[2,4,5]。
3 对策
  基于DPA攻击的假设,可以提出一些对策。
  假设1.攻击者能够记录能量消耗差异。一种简单的对策是引入噪声,降低信噪比SNR,使得能量消耗差异减小。但这种引入噪声的方法仍会受到改进的DPA攻击。参考文献[4]指出,通过选择特别的区分函数,可以提高SNR。前面(6)式给出的D函数一次只确定一个比特的值,设改进的D函数一次确定d个比特的值,如d=4,这时D函数的值可取后者信噪比约为前者的d倍。但在这种方法中,样本曲线被映射到3个不相交的集合上。
  
  第一个集合中D函数的值为d个0,第二个集合中D函数的值为d个1,第三个集合不用。其不利之处是需要的样本点数会增加。
  另一种对策是在加密过程中引入随机延迟,这样,特定时刻的实际能量消耗差异就不能被准确记录。
  假设2.能量消耗的差异可以反映出密钥的信息。可以通过对S盒的输入做一些随机的改变来掩饰密钥的信息。一种常用的方法是用异或这一线性运算,对S盒的输入做随机的改变。这需要对S盒的输出也做一个相应的修正,使得最后加密的结果不受异或这一线性运算的影响。另外一种方法是在加密过程中用两个不同的处理器,它们处理的数据宽度不同,因而消耗的能量也不一样,再用一个随机序列发生器来产生选择信号,可以随机地选择不同的处理器。具体的硬件电路见参考文献[6]。其它有关FPGA和ASIC在降低信息泄漏方面的专门研究,本文不做讨论。但如果能防止信息泄漏,这将从根本上抵抗DPA攻击。
  应该注意到,笔者是把智能卡作为攻击对象,因而可能得到足够的样本点,并知道明文和密文。这在其它的密码系统上,并不是必然的事实。但目前智能卡得到了广泛的应用,因此这种攻击的潜在危害较大。以上仅以DES的S盒部分说明了DPA攻击,但就DPA的基本原理,它可以被应用于其它的密码算法上,如椭圆曲线[7]、AES[8](Advanced Encryption Standard)等。对DPA的防范措施还有待进一步研究。
参考文献
1 陈 运.信息加密原理.成都:电子科技大学出版社,1996
2 P.Kocher,J.Jaffe, B.Jun.Introduction to Differential Power Analysis and Related Attacks.1998.http://www.cryptography.com
3 Xi Xi Chen. Differential Power Analysis Countermeasures for DES. 2002
4 Thomas S.Messerges,Ezzat A.Dabbish,Robert H.Sloan.Exam-ining Smart-Card Security under the Threat of Power Analy- sis Attacks. IEEE TRANSACTIONS ON COMPUTERS,2002;51(5)
5 Jean.Sebastien Coron ,Louis Goubin.On Boolean and Arith-metic Masking against Differential Power Analysis.CHES2000,vol.1965 of Lecture Notes in Computer Science
6 Luca Benini,Alberto Macii,Enrico Macii,Elvira,etc.Energy-Aware Design Techniques for Differential Power Analysis Protection.Anaheim, California, USA DAC 2003, June
7 Jean-Sebastien Coron. Resistance Against Differential Power Analysis for Elliptic Curve Cryptosystems.Cryptographic Hard-ware and Embedded System,vol.1717 of Lecture Notes in Computer Science, 1999
8 [韩]Hwasun Chang. A Study on Securing AES against Dif-ferential Power Analysis. School of Engineering Information and Communications University, A Thesis for the Degree of Master,2004

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。