0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

差分能量分析攻击的原理及解决方案分析

电子设计 来源:电子技术应用 作者:谢雨,范明钰,王光 2021-03-24 15:44 次阅读

1 差分能量分析

许多信用卡公司计划在未来几年内部大部分的磁卡转变为智能卡。目前智能卡在运输、电子货币、ID卡等领域内的用途不断增加。智能卡的主要优势是内部数据例如密钥能够在内部处理而仅仅公开处理结果。但是,在使用输入信息和密钥所进行的处理过程中智能卡会产生诸如能量消耗或者电磁散射之类的信息泄漏。于是近年来出现了一些新的攻击手段,攻击者有可能利用它们获取保存在智能卡内部的数据。

在这些攻击手段中,有一种攻击主要是通过分析电子设备执行计算过程中的能量消耗来寻找有关密钥的信息。通常将这类攻击划分为简单能量分析攻击SPA(Simple Power Analysis)和差分能量分析攻击DPA(Differential Power Analysis)。DPA攻击是通过分析泄漏信息进行攻击的主要形式。

在SPA攻击中,目标本质上来说是利用能量消耗的值来推测出相关的秘密信息甚至是密钥。图1展示了一个智能卡在DES运算中的能量消耗。从图1中可以明显看出智能卡的能量消耗很可能确实提供了有关芯片工作的信息。

在DPA攻击中,计算了两组平均能量消耗的差异,如果出现非常显著的差异就认为攻击成功。给人留下深刻印象的是虽然攻击者不了解而且也不试图找出该算法特定的执行部分的任何信息,DPA攻击也同样可以找出密码算法(例如DES算法)的密钥。当前存在的算法中,有些能够防止DPA攻击,但不能防止SPA攻击;还有一些算法则相反,能够防止SPA攻击,不能防止DPA攻击;另外还有这两种攻击都能抵御的算法以及都不能抵御的算法。

2 DPA攻击的原理

DES算法(数据加密标准)要执行十六轮运算。在每一轮运算中,函数f执行在32个比特上。函数f使用八个从6比特到4比特的非线性变化,每个变换都被编码在一个被称为S盒的工作平台上。下面以DES算法为例说明DPA攻击的原理。

步骤1:测出1000次DES运算第一轮的能量消耗。用E1,…,E1000来表示1000次运算的输入值。用C1,…,C1000来表示运算期间测出的1000条能量消耗曲线。计算1000条能量消耗曲线的平均曲线,记为MC。

步骤2:主要关注第一个S盒中第一轮运算的第一个输出比特。用b表示这个比特值。很容易发现b仅仅取决于密钥中的6个比特。攻击时可以对相关的6比特作一个猜测。用这6个比特和Ei来计算b的理论值。这样就能够将1000个输入E1,…,E1000分为两类:使b=0的输入以及使b=1的输入。

步骤3:计算与使b=0输入有关的曲线的平均值,记为MC’。如果从MC和MC’的图像没有任何可观察到的不同,那么选择另外6个比特再重复步骤2。在这一步中,通常对每次选择的6个比特值,作出相应的代表MC和MC’的差异的曲线,得到64条曲线后选出与其它有明显差异的一条。

步骤4:使用b在第二、第三…第八个S盒中重复步骤2和3,得到密钥的48个比特。

步骤5:余下的8比特可以通过穷举搜索得到。

在实际对智能卡的攻击中,通常关注的是选定S盒的4个输出比特集,而不仅是一个输出比特。这种情况下,将输入分为16个集合:使输出为0000的,使输出为0001的,…,使输出为1111的。在步骤3中,可以计算与最后一类输入(使输出为1111的)相关的曲线的平均值MC’。但是这样得到的平均值MC’是通过1/16的曲线计算得到的,而起初的MC是通过一半的曲线计算得到。这就被迫使用远远超过1000次的DES运算,但好处是MC和MC’具有更明显的差异。

图2和图3表示了在智能卡上的一次DES运算中,执行步骤2和步骤3得到的结果。选用“1111”作为第一个S盒的目标输出,使用2048个不同的输入。对64条曲线的详细分析表明,结果正确时曲线很容易找到,这条曲线比其他曲线包含了更多的波峰。

DPA攻击不需要任何有关每个设备的个体能量消耗的信息。攻击者一旦知道了算法的输出以及相应的能量消耗曲线后就可以进行攻击。DPA攻击在理论上仅仅依赖于下面的基本假设:在算法运算中存在一个中间变量,知道密钥的一些比特(小地32比特)可以决定两个输入是否给这个变量带来相同的值。

所有使用S盒的算法,例如DES算法,对DPA攻击都显得很脆弱。因此这些算法中的一些执行包含在上面提到的假设中。

3 对DPA攻击的抵御措施

从Paul Kocher于1995年公开发表DPA攻击的原理以来,现在已经出现一些相应的解决方案:

(1)引进随机时间移动。这样计算方式不再与相同设施的能量消耗有关。

(2)替换一些关键设备,使它们很难被分析。

(3)对一个指定的算法提供一种明确的计算方式,以使DPA攻击对得到的执行可能无效。

在这些方案中,更广泛地研究了第三种,因为它需要非常精确的数学分析。下面给出了避免DPA攻击的具体措施。其基本原则是使前面介绍过的基本假设不再成立,也就是使中间变量绝对不依赖能够轻易获得的密钥子集。

这种方案的主要思想为:用k个变量V1,…,Vk替换每一个依赖于输入或者输出的中间变量V,通过这k个变量可以重新得到V。更明确地说,为了保证这个算法新形式的安全性,选择一个函数f满足恒等式V=f(V1,…,Vk),并且满足下面两个条件:

条件1:通过v和一些固定值i(1≤i≤k)推论出v1的信息晃可行的,因而存在一个k-1个元素的数组(v1,…,vi-1,vi,…,vk),满足等式f(v1,…,vk)=v。

条件2:函数f不需要计算V即可执行。

条件1的第一个例子:选择函数f(v1,…,vk)=v1+v2+…+vk,”+”代表异或运行。很明显函数f满足条件1,因为对任何固定的i(1)(1≤i≤k),vi包括所有可能的值,因此不信赖v。

条件1的第二个例子:选择变量V,它的值存在于乘法集Z/nZ中。选择函数f(v1,…,vk)=v1%26;#183;v2%26;#183;…%26;#183;vk mod n,新变量v1,v2, …,vk的值也存在于乘法集Z/nZ中。这个函数也满足条件1。

然后用变量V1,…,Vk替换依赖于输入的中间变量V来转换初始算法。

本文介绍了攻击者通过对电子设备的能量消耗进行分析得到有关密码算法密钥的信息。这种攻击方法被称之为差分能量分析攻击。它主要利用统计学对测出的密码算法的许多不同输入的能量消耗曲线进行分析。为了保护密码算法的安全,还介绍了防御的主要思想:将中间变量分为两个或更多的变量,这些新变量不会轮易地被预测。这种方式被证明可以抵御本地的DPA攻击,在这种攻击中攻击者仅仅尝试从平均值曲线的差异中寻找明显的异化。不过对另外一些也使用能量消耗分析的攻击来说,这种方法却不一定安全,因此相关的理论研究还将继续下去。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电子设备
    +关注

    关注

    2

    文章

    1947

    浏览量

    52568
  • 智能卡
    +关注

    关注

    0

    文章

    128

    浏览量

    24459
收藏 人收藏

    评论

    相关推荐

    对嵌入式系统的攻击 攻击者通过什么途径得到ATM的密钥呢?

    处理0时消耗更多的时间和功率,这为攻击者提供了足够的信息,使其推算出密钥。如果这种简单的分析手段不起作用,攻击者便会使用
    发表于 08-11 14:27

    在labview中对语音信号进行短时能量分析和短时过零率分析

    在labview中对语音信号进行短时能量分析和短时过零率分析,最好是做个程序,谢谢各位大神了
    发表于 12-09 12:47

    基于同步数据采集卡的电能质量分析方案

    )、电压暂降、中断、暂升以及供电连续性等。对于电能质量分析,同步采集是一个首要条件,如果采用异步采集,通道间的采集时间,会带来相位、功率等方面的误差。以三相四线的电能质量分析例,需
    发表于 06-02 17:49

    放大电路分析

    谁能帮我分析下这个放大电路?Q201,202,203的工作状态怎么判断?
    发表于 07-01 21:17

    基于能量攻击的FPGA克隆技术研究

    、Vivado等设计软件中增加AES-256 CBC加密配置方式,并在FPGA内部集成解密模块,从而防止硬件设计被克隆和伪造[5]。然而,这种方式并不完全可靠。2011年Moradi等人使用能量
    发表于 05-15 14:42

    回收Fluke 434-II 435-II 回收437-II电能量分析

    测试仪、频率计·数字电桥·蓝牙测试仪等---------------------------------------------------------- Fluke 434 系列 II 电能量分析仪 以
    发表于 09-03 14:28

    基于掩码的AES算法抗二阶DPA攻击方法研究

    ,暴露中间值的可能性。通过搭建能量分析平台进行实验分析,并与其他防御方法相比较分析,结果表明改进后的防御方法安全性更高,能够抵抗二阶差分能量分析攻击
    发表于 12-31 09:25 15次下载

    单晶炉配电系统电能质量分析解决方案_王海涛

    单晶炉配电系统电能质量分析解决方案_王海涛
    发表于 01-08 10:24 1次下载

    基于SM3的动态令牌的能量分析攻击方法

    提出一种针对基于SM3的动态令牌实施的能量分析攻击新方法,首次提出选择置换函数的输出作为能量分析攻击的目标,并将攻击结果联立得到方程组。根据给出的逆置换函数求解方程组,即可破解最终的密钥。通过实测
    发表于 01-24 17:15 0次下载

    基于希尔伯特黄变换滤波预处理的相关性能量分析攻击

    本文使用Mega16单片机作为开展研究的载体,以希尔伯特黄变换滤波技术在相关性能量分析攻击中的应用为主线,对如何通过HHT预处理技术来提高CPA攻击的效率进行了深入研究。与传统的CPA攻击方法
    发表于 01-30 11:18 1次下载

    基于SM3的HMAC的能量分析攻击方法

    能量分析新型攻击方法,该新型攻击方法每次攻击时选择不同的攻击目标和其相关的中间变量,根据该中间变量的汉明距离模型或者汉明重量模型实施
    发表于 02-11 09:57 1次下载
    基于SM3的HMAC的<b class='flag-5'>能量分析攻击</b>方法

    密码芯片时域互信息能量分析

    在对密码芯片进行时域上互信息能量分析基础上,提出频域上最大互信息系数能量分析攻击的方法。该方法结合了密码芯片在频域上信息泄露的原理和互信息能量分析攻击的原理,引入了最大互信息系数的概念,避免了在时域
    发表于 02-27 10:48 0次下载
    密码芯片时域互信息<b class='flag-5'>能量分析</b>

    差分能量分析攻击的原理与解决方案的研究分析

    DPA攻击不需要任何有关每个设备的个体能量消耗的信息。攻击者一旦知道了算法的输出以及相应的能量消耗曲线后就可以进行攻击。DPA
    的头像 发表于 11-08 07:50 5396次阅读
    差分<b class='flag-5'>能量分析攻击</b>的原理与<b class='flag-5'>解决方案</b>的研究<b class='flag-5'>分析</b>

    一种抗能量的椭圆曲线密码标量乘算法

    为在资源受限的安全芯片中兼顾标量乘运算的安全性与效率,设计一种抗能量分析攻击的椭圆曲线密码标量乘算法。采用带门限的非相邻形式编码方法对标量进行编码,以提高标量乘运算的效率。在此基础上,结合预计
    发表于 06-09 14:45 8次下载

    功率分析侧信道攻击简介

     了解基于功耗的侧信道攻击的工作原理以及不同类型的功耗分析攻击,包括简单功耗分析 (SPA)、差分功耗分析 (DPA) 和相关功耗分析(CP
    的头像 发表于 04-08 15:31 1377次阅读
    功率<b class='flag-5'>分析</b>侧信道<b class='flag-5'>攻击</b>简介