一种抗DPA攻击DES设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种抗DPA攻击DES设计

一种抗DPA攻击的DES设计   摘要:本文以DES加密算法为例,介绍了差分功耗分析对DES进行攻击的方法,并从硬件设计实现角度提出改进措施以达到抗差分功耗分析攻击的效果。      1.绪论       当前智能卡的应用已经遍布世界各地,在电子货币、通讯、ID卡等领域内的用途不断增加,其内部数据,例如密钥等,能够在芯片内处理而仅仅公开处理结果,具有一定的安全性。但是,在输入信息和密钥进行处理的过程中,智能卡会产生能量消耗或者电磁辐射之类的信息泄漏,因此近年来出现了一些新的攻击手段,攻击者有可能利用它们获取保存在智能卡内部的数据,这一类的攻击方法叫做旁道攻击(Side Channel Attack),而差分功耗分析(DPA:Differential Power Analysis)就是其中的一种。    本文将以DES算法为例,说明DPA攻击对DES安全性的影响,并从硬件设计实现角度提出改进措施以达到抗DPA攻击的效果。      2.针对DES算法的差分功耗分析       关于DES算法的一般流程这里不再赘述,而针对该算法所做的DPA攻击目前国内也有一些相关的论述,为了后面阐述抗攻击的思路,这里略微介绍一下DPA攻击DES密钥的过程。    DES算法具有16轮运算、每一轮的8个S盒均对应8组(每组6个bit)子密钥、最后第16轮结果的可观察性使得第15轮部分寄存器已知等等一系列的特征。    在进行针对DES算法的差分功耗分析时,一般有两种策略。一种是攻击参与DES的第一轮运算的48位子密钥,另一种是攻击参与DES的最后一轮运算的48位子密钥。无论是猜出哪一轮的48位子密钥,均可根据子密钥运算原理再结合对另8位被舍弃的密钥的穷举,逆推出最原始的56位DES密钥。这里以第二种方法为例加以说明。   首先测出在不同明文条件下的1000次DES运算最后一轮的能量消耗。用E1,…,E1000来表示1000次运算的输出值,即密文。用C1,…,C1000来表示运算期间测出的1000条能量消耗曲线。    然后关注第一个S盒中最后一轮运算的第一个输出比特。用b表示这个比特值,很容易发现b仅仅取决于密钥中的6个比特。攻击时可以对相关的6比特作一个猜测,用这6个比特和Ei来计算b的理论值。    将b=0和b=1的曲线分为两类,计算曲线的平均值,记为MC和MC’,从MC和MC’的波形中观察分析是否存在明显的不同,然后再选择另外6个比特重复猜测密钥,直到得到64对波形后,选出有明显差异的一对,这一对波形所对应的密钥就是真实的密钥。    这个方法的原理可以这样解释。由于同一电路在运行不同的数据时具有不同的功耗,因此,当b的值为1时电路功耗和b的值为0时的功耗将存在差异。而当我们用猜测的子密钥来计算b时,如果子密钥猜测错误,那么我们计算出来的b的值也是和真实电路的值完全存在区别的。这样,我们根据错误的b的1和0来将功耗分类也将是错误的,这两类的功耗特征完全是将错就错的随机特性(有时本该被归到1那类的功耗可能被归为0那类,反之也是),大量归类后特征相互抵消,统计后几乎没有差别。而一旦我们猜对了子密钥,那么,计算出来的b的值完全和实际的一致,而功耗的分类也将真实地反映运算1和运算0之间的差别,采样越多,就对功耗差别特征的体现贡献越多。这样,一旦猜中子密钥,立刻体现出比别的子密钥明显的功耗差别。      3.DES抗差分功耗分析的设计改进      针对差分功耗分析的防御措施在近几年内被广泛研究。我们研究了多种防御措施所涉及的领域,这些领域所针对的功耗分析的要点各不相同。最终,我们认为从效果和实现的简便性等综合因素来说,采取“掩藏算法的中间状态”的原理最为合适。    所谓“掩藏算法的中间状态”,就是利用随机的因素对算法的中间操作步骤进行数据隐藏,使得算法的使用者无法观察到任何中间数据运行状态,因此,该技术有时也被称为盲化技术。       图1示意性地比较了采取普通DES应用和采取掩藏中间状态的DES应用之间的差别。通过DES运算前后增加掩藏和还原操作,就使得DES运算增加了隔离墙,其运算的具体数据对外界来说就完全不得而知了。       3.1 线性部分设计实现的改进   由于在DES流程中,绝大多数的运算步骤都是线性运算,只涉及位置的交换或简单的布尔运算,因此可以方便地采用异或操作来进行掩藏和恢复。    比如,S = A op B (op为简单线性运算),我们要将操作数A用随机数掩藏掉,并产生新的被操作数R:   R = A xor X(X为随机数)    用新的被操作数R代替A参与运算,产生一个中间结果T:   T = R op B    这样,在运算时,将没有任何关于A的信

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档