文献标识码:A
文章编号: 0258-7998(2013)10-0056-03
近几年来,针对密码算法的DPA攻击得到越来越多的关注。通过对设备的功耗进行分析发现,密码设备在执行相同指令的情况下,功耗与参与运算的密钥有一定的关系。攻击者利用这种关系对采集到的能量迹进行DPA攻击,可以分析出密钥[1-3]。
为了防御DPA攻击,一种有效的技术是对参与运算的数据进行随机掩码,也称为信息盲化[4]。加了掩码的数据在进行密码运算时,包含密钥信息的中间数据被掩码保护起来,因此能够抵抗一阶DPA攻击。然而这种防御技术仍然可以用高阶DPA进行攻击。相对一阶DPA攻击来说,高阶DPA需要攻击者了解更多的算法实现细节,并且需要选择恰当的攻击模型,所以攻击过程也比一阶DPA复杂得多。
1 能量泄露模型和DPA攻击原理
1.1 能量泄露模型
设备的功耗可以通过在设备的GND管脚和地之间插入一个电阻,然后用示波器测量电阻两端的电压变化来获得。为了建立能量泄露模型,用P[t]表示设备在特定t时刻的功耗。P[t]可以分成两部分,第一部分是与运算相关的功耗d[t],第二部分是所有与运算无关的功耗n,包括常量部分以及各种噪声。因此P[t]可以表示为[5]:
从表1可以看出,在泄露汉明重量的情况下,使用绝对差组合函数能达到更好的效果。
2 掩码技术和高阶DPA攻击
2.1 掩码技术原理
掩码技术的核心思想是使密码设备的功耗不依赖于设备所执行的密码算法的中间值。掩码技术通过随机化密码设备所处理的中间值来实现这个目标。掩码方案可以用下式来表示:
2.3 变形掩码方案的高阶DPA攻击
在上述掩码方案中,整个加密过程每个中间值都带着掩码,因此可以抵抗一阶DPA攻击。掩码方案为了保证每轮运算的结构相同,在轮运算结束时通过非线性的SBOX变换将掩码重新设置为每轮开始的的掩码值X132-63。
在同时攻击12 bit子密钥时,密钥组合为212个,即需要攻击4 096个假设密钥。
3 高阶DPA攻击实验验证
基于以上分析,对FPGA上实现的带变形掩码方案的DES算法进行了攻击实验。首先在DES运算过程中采集2 000条能量迹,在该能量迹上可以清晰地识别出每轮DES运算过程,如图4所示。
为了抵抗DPA攻击,掩码技术越来越多地被采用。但掩码方案可能受到高阶DPA的攻击,因此在设计掩码方案时,需要充分考虑抵抗高阶DPA攻击的措施。本文首先介绍了能量泄露模型以及一阶和高阶DPA的攻击原理。然后结合变形掩码方案,从理论上证明可以采用二阶DPA实施攻击,并且论述了组合函数的选择以及在攻击中提高信噪比的方法。本文最后在FPGA上对掩码方案的硬件实现进行了攻击实验,并成功获得密钥。
参考文献
[1] KOCHER P,JAFFE J,JUN B.Introduction to differential power analysis and related attacks[A].Cryptography Research Inc.,1998.
[2] KOCHER P,JAE J,JUN B.Differential power analysis[C]. In Proceedings of CRYPTO'99,Springer-Verlag,1999.
[3] MESSERGES T S,DABBISH E A,SLOAN R H,Investigations of power analysis attacks on smartcards[C].In Proceedings of the USENIX Workshop on Smartcard Technology,Chicago,1999.
[4] AKKAR M L,GIRAUD C.An implementation of DES and AES secure against some attacks[C].In Proceedings of CHES'2001,Springer-Verlag,2001.
[5] BRIER E,CLAVIER C,OLIVIER F.Correlation power analysis with a leakage model[C].In Cryptographic Hardware and Embedded Systems-CHES 2004,Springer-Verlag,2004.
[6] MESSERGES T S.Using second-order power analysis to attack DPA resistant software[C].In Proceedings of CHES’ 2000,Springer-Verlag,2000.