位置:51电子网 » 技术资料 » 通信网络

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

发布时间:2008/5/29 0:00:00 访问次数:572

摘要:摘要介绍了des的加密过程,将差分能量分析dpa(differential power analysis)的原理运用于该算法,提出了区分函数的选取原则,并针对差分能量分析的假设,介绍了几种对抗这种攻击的策略。

关键词:des dpa 差分能量分析 区分函数

传统的密码分析理论认为,对密码芯片的分析仅依赖于输入明文和输出密文。而在实际应用中,分析人员可以获得其它的信息。例如对于有引脚的芯片,很容易获得引脚上的电流或者电压。通过这些电流或电压的变化,可以用有别于传统的方法获得密钥的信息。

1 des加密过程

des(data encryption standard)被认为是加密技术的两大里程碑之一。在上个世纪得到了广泛的应用。这里给出其中一轮加密过程,如图1。其它如扩展置换、密钥产生等具体过程见参考文献。

在整个des加密流程中,只有s盒(s-box)是唯一的非线性函数,是整个加密算法的安全核心。图2给出了s盒的图示。

图2中的每个s盒都是一个4×16的查找表。在加密过程中,将与子密钥k异或后的48bits均分为8组,分别对应8个s盒,记每组为(a0a1a2a3a4a5)。根据这6位输入,在对应的s盒查找表中找到对应的4位数据作为输出。查找表中的对应关系如下:由(a0a5)决定对应的s盒的行,由(a1a2a3a4)决定对应的s盒的列。由这个行和列确定的数(4位二进制表示)作为该s盒的输出。

由于s盒在des加密算法中的特殊地位,使得很多攻击方法都是针对s盒的。

2 dpa原理在des上的应用

differential power analysis最早由kocher et al提出,现在许多研究人员指出它对智能卡(smart card)是一种有效的攻击。其理论基础是:在加密过程中要消耗能量,而消耗的能量随处理的数据不同会有微小的变化。根据这种变化确定处理的数据是0还是1,办公而有可能猜出加密算法中所使用的密钥。

在具体讨论这种攻击前,对所用符号做如下约定:

si[j]:第i个明文在时间点j时的能量水泵抽样值;

d(·):引入的区分函数;

s0={si[j]d(□)=0}; (1)

s1={si[j]d(□)=1}; (2)

a0[j]:集合s0中所有信号在j时刻的平均能量消耗;

a1[j]:集合s1中所有信号在j时刻的平均能量消耗;

δd[j]:两集合的平均信号能量差异。

首先,要能够测得整个加密流程中s盒的能量曲线。基于统计的理论,要求记录足够的样本点si[j]。这里隐含了一个假设:s盒中对不同比特处理时,能量消耗差异发生在一个特定的时间,而且正好在该点的±δ时间范围内进行抽样,因此能够记录下不同的能量消耗曲线。这个假设可以作为抗dpa攻击对策的一个切入点。

另外还需要让这些能量曲线反映出差于密钥的信息。这是整个dpa过程中的关键。在这儿,引入了区分函数d(·),有的地方也记为selection function。从上面的(1)和(2)式中可以看到,该函数的作用是将样本曲线映射到两个不相交的集合上。

下一步,对这两个集合中的样本在时间点j的样本值进行平均,得到时间点j时的平均能量消耗。由于si[j]包含信号和噪声这两部分的能量消耗,而根据随机过程的知识,知道其中大部分均值为0。因而这种平均可以在一定程序上降低随机噪声对信号的影响。

由上面可以看到:当δd[j]较大时,说明由区分函数划分的两个信号的能量消耗在j时刻差异较大。而这种能量消耗差异,正是由密钥和待处理数据相互作用而产生的。如果选择的区分函数合适,即在理想的情况下,d函数正好将所有的在j时刻芯片处理数据为1的si[j]选到集合s1;相应地,在j时刻,

摘要:摘要介绍了des的加密过程,将差分能量分析dpa(differential power analysis)的原理运用于该算法,提出了区分函数的选取原则,并针对差分能量分析的假设,介绍了几种对抗这种攻击的策略。

关键词:des dpa 差分能量分析 区分函数

传统的密码分析理论认为,对密码芯片的分析仅依赖于输入明文和输出密文。而在实际应用中,分析人员可以获得其它的信息。例如对于有引脚的芯片,很容易获得引脚上的电流或者电压。通过这些电流或电压的变化,可以用有别于传统的方法获得密钥的信息。

1 des加密过程

des(data encryption standard)被认为是加密技术的两大里程碑之一。在上个世纪得到了广泛的应用。这里给出其中一轮加密过程,如图1。其它如扩展置换、密钥产生等具体过程见参考文献。

在整个des加密流程中,只有s盒(s-box)是唯一的非线性函数,是整个加密算法的安全核心。图2给出了s盒的图示。

图2中的每个s盒都是一个4×16的查找表。在加密过程中,将与子密钥k异或后的48bits均分为8组,分别对应8个s盒,记每组为(a0a1a2a3a4a5)。根据这6位输入,在对应的s盒查找表中找到对应的4位数据作为输出。查找表中的对应关系如下:由(a0a5)决定对应的s盒的行,由(a1a2a3a4)决定对应的s盒的列。由这个行和列确定的数(4位二进制表示)作为该s盒的输出。

由于s盒在des加密算法中的特殊地位,使得很多攻击方法都是针对s盒的。

2 dpa原理在des上的应用

differential power analysis最早由kocher et al提出,现在许多研究人员指出它对智能卡(smart card)是一种有效的攻击。其理论基础是:在加密过程中要消耗能量,而消耗的能量随处理的数据不同会有微小的变化。根据这种变化确定处理的数据是0还是1,办公而有可能猜出加密算法中所使用的密钥。

在具体讨论这种攻击前,对所用符号做如下约定:

si[j]:第i个明文在时间点j时的能量水泵抽样值;

d(·):引入的区分函数;

s0={si[j]d(□)=0}; (1)

s1={si[j]d(□)=1}; (2)

a0[j]:集合s0中所有信号在j时刻的平均能量消耗;

a1[j]:集合s1中所有信号在j时刻的平均能量消耗;

δd[j]:两集合的平均信号能量差异。

首先,要能够测得整个加密流程中s盒的能量曲线。基于统计的理论,要求记录足够的样本点si[j]。这里隐含了一个假设:s盒中对不同比特处理时,能量消耗差异发生在一个特定的时间,而且正好在该点的±δ时间范围内进行抽样,因此能够记录下不同的能量消耗曲线。这个假设可以作为抗dpa攻击对策的一个切入点。

另外还需要让这些能量曲线反映出差于密钥的信息。这是整个dpa过程中的关键。在这儿,引入了区分函数d(·),有的地方也记为selection function。从上面的(1)和(2)式中可以看到,该函数的作用是将样本曲线映射到两个不相交的集合上。

下一步,对这两个集合中的样本在时间点j的样本值进行平均,得到时间点j时的平均能量消耗。由于si[j]包含信号和噪声这两部分的能量消耗,而根据随机过程的知识,知道其中大部分均值为0。因而这种平均可以在一定程序上降低随机噪声对信号的影响。

由上面可以看到:当δd[j]较大时,说明由区分函数划分的两个信号的能量消耗在j时刻差异较大。而这种能量消耗差异,正是由密钥和待处理数据相互作用而产生的。如果选择的区分函数合适,即在理想的情况下,d函数正好将所有的在j时刻芯片处理数据为1的si[j]选到集合s1;相应地,在j时刻,

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!