• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 初中学习 > 正文

    样本选取的原则【差分能量攻击样本选取方法】

    时间:2020-03-11 07:41:17 来源:雅意学习网 本文已影响 雅意学习网手机站

       文章编号:1001-9081(2012)01-0092-03 doi:10.3724/SP.J.1087.2012.00092      摘 要:为了解决差分能量攻击(DPA)中的样本选取问题,提出了一套样本选取方法。方法从所使用的实验平台出发,通过理论分析提出样本选取方式和数量,然后进行实验验证。以AES算法为例,分别进行了仿真实验和实测实验,验证了所提出的选取方法的准确性。结果表明,仿真攻击的明文样本应该按顺序取,数量为一个全排列,而实测攻击应该直接采用大量随机数,两者对明文样本的要求存在较大差别。
      
      �关键词:差分能量攻击;样本选取;功耗曲线;高级加密标准
      �中图分类号: TN492;TP309.2 文献标志码:A
       �
       �
      Abstract: To resolve the problem with selecting the samples in the Differential Power Attack (DPA), this paper proposed a set of samples selection method. Based on the given experimental platform, the mode and amount of samples selection were proposed through theoretical analysis, and then were validated by experiments. For Advanced Encryption Standard (AES), this paper put forward the samples selection methods for simulation test and practical experimentation, and proved that the proposed method was right. The results show that the simulation sample plaintext attack should be taken in sequence, with the quantity of a full array. And the attack should be measured directly using a large number of random numbers. There is a big difference in the explicit requirements of the sample.
      
       Key words: Differential Power Attack (DPA); samples selection; power trace; Advanced Encryption Standard (AES)
      
      0 引言�
      能量攻击是应用最为广泛且最具威胁的旁道攻击技术之一,其基本思想是通过分析密码设备的能量消耗获得其密钥。自Kocher等于1998年提出能量攻击概念[1],并对DES(Data Encryption Standard)算法的硬件实现进行实际的攻击,该方法几乎被应用于所有的分组密码的硬件实现,并涌现出了大量的研究成果[2]。由于差分能量攻击(Differential Power Attack, DPA)者几乎不用知道除了算法之外的任何信息,非常有效且攻击所需的硬件资源很小,DPA成为最广泛的能量分析攻击方法。�
      虽然现有的差分能量攻击文献很多,但是其中对样本选取问题的讨论却很少。不考虑时间随机化[3]、功耗平衡[4]、掩码[5]等加防御措施的情况,本文以目前广泛使用的AES算法为例,对分组密码算法差分能量攻击过程中样本选取问题进行研究,经过对比分析实验结果,分别提出了针对仿真验证和实测验证的样本选取方法。�
      
      1 差分能量攻击原理�
      DPA攻击利用密码设备能量消耗的数据依赖性,使用大量的功耗曲线来分析固定时刻设备的能量消耗,并将其作为被处理数据的函数。通常,DPA攻击需要经过以下几个步骤:首先,选择所执行算法的某个中间值作为区分函数并计算区分函数值;其次,测量密码设备在加解密不同数据时的能量消耗;最后是分析处理数据。差分功耗计算公式如式(1)所示:�
      �T�j=∑mi=1[D��ij�P�i]∑mi=1D��ij�-∑mi=1[(1-D��ij�)P�i]∑mi=1(1-D��ij�)(1)�
      其中:D��ij�表示第i个明文与第j个猜测密钥运算得到的区分函数值;P�i表示第i个明文加密时的功耗值;T�j表示第j个猜测密钥的差分功耗,它由D��ij�=1的功耗集合的均值减去的功耗集合的均值得到。��
      本文以S盒输出某一位的汉明重量作为区分函数进行分析,下面的数据均是以此为基础进行分析得到的。�
      
      2 差分能量攻击样本选取方法�
      仿真验证是利用功耗仿真软件(primepower)得出功耗值,而实测则是通过示波器采集实际的功耗值。由于primepower得出的功耗是一段时间内的平均功耗,且没有考虑噪声,不能精确反映密码芯片实际的工作情况。对实测得到的功耗曲线,可以得到密码设备加解密运算时段的功耗。因此,虽然仿真验证简单易行,却不能代替实测验证。�
      
      2.1 仿真验证中的样本选取方法�
      仿真验证过程如图1所示,分两个方面。一方面通过编写modelsim测试程序,求出区分函数值。另一方面是利用软件计算功耗,具体为:首先编写硬件代码,通过DesignCompiler将其综合成门级网表;其次利用NC�verilog对综合后的门级网表进行仿真产生.vcd文件,最后采用primepower计算出功耗;最后,按式(1)进行数据分析。�
      
      对于分组密码算法,以S盒为单位采取分段攻击,比如AES,其S盒输入和输出均是8位,因此其一次攻击的密钥猜测空间为2�8即256。有如下定义:称密钥猜测空间为一个攻击样本数的单位,即单位样本数,�记为N。以�AES�密码算法为例,N=256。��
      为了得到仿真验证样本选取方法,包括样本选取方式和样本选取数量,本例对AES第一个S盒进行攻击,采用汉明重量模型,区分函数为S盒输出第三位,实际密钥值为8′ha5。�
      1)选取样本方式。�
      为了找到正确的样本选取方式,分别采用随机数和顺序排列明文作为样本进行攻击。�
      当所采用的明文样本为随机数的时候,利用primepower得到的功耗值总是少于样本数,区分函数值与功耗值不能对齐,产生失调,导致实验无法进行。通过分析,发现在出现连续相同明文的情况时,primepower只给出一个功耗值。当采用顺序排列明文时,可以有效解决功耗值丢失的问题。因此,仿真验证中的明文样本应该采用顺序排列形式。�
      
      2)选取样本数量。�
      由于仿真验证的功耗是利用软件进行模拟得到的理想化的结果,不需要考虑噪声的问题,因此可以得出推论:仿真验证所需用的样本数量不大。下面给出此推论的证明。�
      �证明 令明文为plain,密钥key,有:�
      D��ij�=Sbox�1(plain�i�key�j)�
      其中Sbox�1表示第一个�S�盒的置换操作。所给样本为顺序排列,即plain�i=plain��i+N�,故有:�
      
      D��ij�=D��(i+N)j��P��ij�=P��(i+N)j�(2)�
      对样本量为N和2N,由式(1),分别有:�
      T�j=∑Ni=1[D��ij�P�i]∑Ni=1D��ij�-∑Ni=1[(1-D��ij�)P�i]∑Ni=1(1-D��ij�)�
      T�n=∑2Nm=1[D��mn�P�m]∑2Nm=1D��mn�-∑2Nm=1[(1-D��mn�)P�m]∑2Nm=1(1-D��mn�)�
      由式(2),易知当m=j时,有:�
      ∑2Nm=1[D��mn�P�m]=2∑Ni=1[D��ij�P�i]�
      ∑2Nm=1D��mn�=2∑Ni=1D��ij��
      ∑2Nm=1[(1-D��mn�)P�m]=2∑Ni=1[(1-D��ij�)P�i]�
      ∑2Nm=1(1-D��mn�)=2∑Ni=1(1-D��ij�)�
      即T�i=T�m。证毕。��
      从证明过程可以看出,由于明文样本是顺序排列循环使用,在相同条件下,仿真得到的差分功耗值也是一个循环。�
      �按照图1所示验证过程,分别采用N个明文样本和2N个明文样本进行仿真验证,图2为攻击结果。��
      
      �其中横轴为猜测密钥值,纵轴为差分功耗值。样本量为N和2N时的攻击结果完全相同,这里只给出一个图表。此结果说明,攻击所需样本数量有一个临界值,即为N。��
      下面对差分功耗值的循环出现进行实验验证,给出一个更加直观的结果。�
      
      �取不同数量的明文样本(50,100,150,200,N,300,150+N,400,2N,550)分别进行攻击,�将结果集中在一个Excel表格中,导入Matlab,进行数据可视化处理,得结果如图3所示,其中横轴为样本量,纵轴为差分功耗值,粗线标记出的为对应正确猜测密钥的曲线。�
      
      可以看出,样本量小于150时没有攻击出正确结果,错误猜测密钥的差分功耗大于正确猜测密钥的差分功耗,出现了“假峰”即“ghost peak”[6],�而样本量为(150+N)时得出了正确结果,这说明样本数量太少不会得出正确结果。同时,与样本量为N时相比,样本量为(150+N)时虽然攻击出了正确结果,但是正确密钥的差分功耗与次高的差分功耗之间的差值不如样本量为N时大,其效果比不上样本量为N时的情况。可见,对于仿真验证来说,适当的增加样本量是必要的,但并不是样本越多效果就越好。��
      综上所述,对于仿真验证来说,由于功耗仿真软件对连续相同明文输入只给出一个功耗值,明文样本应该采用顺序排列形式,避免功耗与区分函数值失调;样本数量方面,一个单位即可,如果没有攻击出正确结果,应更换区分函数。�
      
      2.2 实测验证的样本选取与功耗采集方法�
      实测验证和仿真验证最大的区别就在于功耗的来源不同。对密码芯片进行实际攻击的时候,在芯片的电源和地之间串接一个小电阻(典型值5�Ω),通过示波器采集电阻两端的电压值进行分析。示波器对每一组明文样本的加解密运算过程中产生的功耗都有采集,因此明文样本可以直接采用随机数,不必担心功耗值丢失发生失调。�
      理论上,实测验证采集的功耗比仿真验证过程中软件模拟出的功耗更加接近实际,攻击出正确密钥所需的样本数量应该少于后者。但是由于实际测量过程中存在噪声,相比微小的差分功耗,噪声的干扰是很严重的,以至于在样本量不大的情况下,攻击不出正确密钥。因此,实际的攻击需要大量的明文样本。�
      1)功耗曲线统计特征。�
      密码芯片执行密码算法时产生的功耗,可以简单地用�式(3)�表示:�
      �P���total��=P���exp��+P���noise��(3)�
      其中:P���total��为总功耗,P���exp��为可利用的功耗,P���noise��为噪声功耗。��
      Mangard等对相同明文进行反复加密运算,对功耗曲线进行统计分析[7],得出结论:功耗曲线中的点服从正态分布,即:�
      �P���exp��~�N�(μ,σ�1)�P���noise��~�N�(0,σ�1)(4)�
      从式(4)可以看出,噪声功耗服从均值为0的正态分布,加密运算产生的功耗则服从均值为μ的正态分布。因此,对于每一个明文样本,可以在密码芯片中进行重复运算,记录多条功耗曲线,接着计算其均值,这样做可以尽量消除噪声带来的影响,使运算功耗更加接近均值μ。��
      2)信噪比对功耗曲线中样本点的影响。�
      信噪比(Signal�to�Noise Ratio, SNR)指的是一次测量中信号分量和噪声分量的比值,定义为:�
      �SNR=Var(�signal�)Var(�noise�)�
      
      本文所进行的能量攻击中,P���exp��对应信号分量,是能量消耗中可以利用的分量,也是能量消耗中唯一包含对攻击者有用信息的分量;P���noise��对应噪声分量,为包含电子噪声和转换噪声的全部噪声。由上面信噪比的定义,有:�
      SNR=Var(P���exp��)Var(P���noise��)(5)�
      显然,SNR越高,从噪声中识别出P���exp��就越容易,此时可利用的信息就越多[8]。因此,对示波器采集到的功耗曲线,应该取运算过程中产生功耗尖峰时刻附近的点作为功耗样本。��
      3)样本选取方法及实验验证。�
      
      由上面分析可知,样本选取可以有两种方法:一种是对若干组相同明文进行重复加密求均值;另一种则是直接采用大量随机明文。但是对于差分能量攻击来说,参看式(1),可以发现在数据处理分析阶段做了大量的求和平均,因此第一种方法不会有更好的攻击效果。下面通过对实验结果进行比较,来确定正确的样本选取方法。�
      对基于FPGA实现的AES算法的第一个S盒进行攻击,明文样本分别是5�000组随机数,10�000组随机数,20×500组随机数(同一明文进行20次重复运算,共500组)。�
      图4分别是样本为5�000组随机数、10�000组随机数时的攻击结果,图中标记出的为对应正确猜测密钥的曲线,此时区分函数为S盒第五位输出的汉明重量[9]。�
      
      图4中横轴表示采样点,纵轴表示差分功耗,加粗标示的为正确密钥对应的差分功耗曲线,可见样本量为5�000和10�000时均能辨别出正确密钥,而且后者效果更加明显。�
      
      
      图5为相同明文重复加密取均值时的攻击结果,其中加粗线条表示的为正确密钥对应的差分功耗曲线。,其中标记出的为对应正确猜测密钥的曲线。横轴表示采样点,纵轴表示差分功耗由图5可知,正确密钥对应的差分功耗曲线并不是最高尖峰,即没有攻击出正确结果。由此可以得出结论,相同样本数量的情况下,进行功耗平均化处理的效果不如直接采用大量随机明文时的攻击效果。所以,样本应该直接选取大量随机数。�
      
      3 结语�
      本文提出了分组密码差分能量攻击仿真验证和实测验证的样本选取方法,并通过实验进行了证实。结果表明,仿真验证中的样本应该是以顺序排列的形式给出,数量为一个单位数;实测验证中样本应直接选用随机数,而不是采用若干组相同明文。实测验证样本数量的确定要考虑很多因素,与算法本身也有很大关系,现有文献关于这方面的研究很少,且都是基于信噪比[11-12]进行分析的。所以,如何确定实测验证中的样本数量,将成为下一步将要研究的重点。
      
      
      �参考文献:�
      [1]
      KOCHER P, JAFFE J, JUN B. Differential power analysis [C]// Advances in Cryptology-CRYPTO�99, LNCS 1666. Berlin: Springer�Verlag, 1999: 388-397.
      �[2]
      STANDAERT F�X, MALKIN T G, YUNG M. A unified framework for the analysis of side�channel key recovery attacks [C]// EUROCRYPT�09: Proceedings of the 28th Annual International Conference on Advances in Cryptology: The Theory and Applications of Cryptographic Techniques, LNCS 5479. Berlin: Springer�Verlag, 2009: 443-461.
      [3]
      REN FANG, YAN YINGJIAN, FU XIAOBING. Design of differential power analysis resistant crypto chip based on time randomization [J]. Journal of Electronics (CHINA), 2010, 27(2): 237-242.
      �[4]
      曾永红,叶旭明.抗差分功耗分析攻击的AES S盒电路设计[J].计算机工程,2010,36(9):20-22.
      �[5]
      刘海清,陆洪毅,童元满.基于随机掩码的AES算法抗DPA攻击硬件实现[J].信息网络安全,2008(11):51-54.
      �[6]
      GUILLEY S, HOOGVORST P, PACALET R. Differential power analysis model and some results [C]// Smart Card Research and Advanced Applications VI, IFIP 18th World Computer Congress, TC8/WG8.8 & TC11/WG11.2 Sixth International Conference on Smart Card Research and Advanced Applications. Norwell: Kluwer Academic Publishers, 2004: 127-142.
      �[7]
      MANGARD S, OSWALD E, POPP T.能量分析攻击[M].冯登国,周永彬,刘继业,等译.北京:科学出版社,2010:50-55.
      �[8]
      LE T H, CLEDIERE J, SERVIERE C, et al. Noise reduction in side channel attack using fourth�order cumulant [J]. IEEE Transactions on Information Forensics and Security, 2007, 2(4): 710-720.
      �[9]
      PARK J, LEE H, HA J, et al. A differential power analysis attack of block cipher based on the Hamming weight of internal operation unit [C]// Proceedings of 2006 International Conference on Computational Intelligence and Security, LNCS 4456. Berlin: Springer�Verlag, 2006: 1375-1380.
      �[10]
      张鹏,邓高明,邹程,等.差分功率分析攻击中的信号处理与分析[J].微电子学与计算机,2009,26(11):1-4.
      �[11]
      MESSERGES T S, DABBISH E A, SLOAN R H. Examining smart�card security under the threat of power analysis attacks [J]. IEEE Transactions on Computers, 2002, 51(5): 541-552.
      �[12]
      STRACHACKI M, SZCZEPANSKI S. Implementation of AES algorithm resistant to differential power analysis [C]// ICECS 2008: Proceedings of the 15th IEEE International Conference on Electronics, Circuits and Systems. Piscataway: IEEE, 2008: 214-217.
      
      收稿日期:2011-08-19;修回日期:2011-09-27。
      
      作者简介:李志强(1989-),男,河南扶沟人,硕士研究生,主要研究方向:集成电路设计; 严迎建(1973-),男,河南扶沟人,副教授,博士,主要研究方向:集成电路设计与防护; 段二朋(1981-),男,河南卫辉人,硕士研究生,主要研究方向:集成电路设计。

    推荐访问:

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章