库存索引:

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
0
1
2
3
4
5
6
7
8
9

差分能量分析攻击原理及其抵御措施的探讨


  摘要:介绍了建立在执行密码运算的芯片的能量消耗基础上的攻击方式,这些攻击方式中差分能量分析攻击是最难被避免的。介绍了差分能量分析的原理以及防御这种类型攻击的主要思想。

   关键词:能量消耗 差分能量分析 防御

  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)对