轻量级PRESENT加密算法功耗攻击研究
2017-07-14裴祥喜孙超马彦芬李珉刘斌
裴祥喜+孙超+马彦芬+李珉+刘斌
摘要:该文对2007年密码与硬件嵌入式系统顶级国际会议CHES 2007提出的PRESENT密码算法旁路攻击安全性进行了一定的探讨,阐述了PRESENT功耗攻击模型以及攻击点选择的办法,最终实验证明,虽然轻量PRESENT加密算法使用起来非常方便,但是,PRESENT功耗攻击模型以及攻击点选择比较容易,PRESENT差分功耗攻击在安全性方面仍然值得广大的研究工作者引起关注,以便保证轻量级PRESENT加密算法的安全性。
关键词:PRESENT;差分功耗分析攻击;最佳攻击点
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2017)17-0035-02
加密芯片的旁路攻击技术是1998年美国的P.Kocher等学者提出的,引起了业界很多专家和研究员的高度重视,并从此开展了许多研究。旁路攻击中以功耗攻击为最主要的攻击方式,它不需要复杂的设备便可快速破解加密芯片的部分密钥,余下密钥可用穷举法快速破解,对加密界新提出的密码算法安全性研究与验证是相关研究人员一项重要责任和义务,本文对2007年密码与硬件嵌入式系统顶级国际会议CHES 2007提出的PRESENT密码算法旁路攻击安全性进行了一定的探讨。
1轻量级PRESENT加密算法概述
轻量级PRESENT加密算法是在2007年密码与硬件嵌入式系统顶级国际会议CHES 2007提出的,具有非常良好的加密性和安全性,对于强烈的黑客攻击能够起到良好的抵御作用。轻量级PRESENT加密算法的基本思想与传統的DES加密算法有一定的共通之处,然而,在实际的实现方法方面仍然存在着一定的不同点。如图1所示为轻量级PRESENT加密算法的流程图。
如上图所示,明文经过多次的S置换和P置换,密钥和明文进行轮密钥加的操作,并且对密钥进行反复多次的更新,上述操作循环多次执行,最终就能够得到具有极强的安全性的密文。轻量级PRESENT加密算法的分组长度是64位,也就是说,每次运算操作都需要进行64位的输入,与此同时,采取4进4出的方法进行计算,因此,总共需要16个S盒,每一次运算都需要进行S置换和P置换、轮密钥加的操作,并且对密钥进行反复多次的更新。旁路攻击中以功耗攻击为最主要的攻击方式,它不需要复杂的设备便可快速破解加密芯片的部分密钥,余下密钥可用穷举法快速破解。
在旁路攻击中,必须引起重视的就是轮密钥参与运算的整个具体步骤,假设轻量级PRESENT加密算法采用长度为80bit的密钥,密钥分析的空间复杂度就是280,并且,定义Key为用户确定的密钥,轻量级PRESENT加密算法中的第i轮密钥就是Key,那么:
由此看来,与AES、DES算法相比,轻量级PRESENT加密算法将经过多次S置换和P置换、轮密钥加操作的密钥作为加密系统的主控密钥,扩展了密钥宽度,增加了安全性能,具备更强的安全性、可靠性、保密性。
2 PRESENT功耗攻击
2.1 PRESENT功耗攻击模型
在实施数据处理中,加密芯片在执行加密程序的过程中,电路就会产生一定的功耗消耗,而功耗消耗的多少有规律的。具体来说,借助于指令执行前后的数据的Hamming距离,就能够对于加密系统芯片中数据处理过程中的功耗情况进行分析。数据处理过程中数据的Hamming重量记为H,功耗变化记为w,原始数据和变化之后的结果分别记为D和R,功耗变化W计算方法是:
W=aH(D→R)+b (1)
在上述的公式中,a、b都是数学参数。
可以对于a、b这两个数学参数进行赋值之后。功耗变化w的计算方法就能够表示成:
W=H(D→R) (2)
2.2确定功耗攻击点
确定功耗攻击点的方法如图2所示,可以确定得到2个功耗攻击点,分别是在明文经过轮密钥加且密钥进行s置换之前,以及密钥进行s置换之后,通过两次攻击,就会可能在一定程度上对于密钥进行攻击甚至破解。
3 PRESENT差分功耗攻击实验及结果分析
3.1 PRESENT差分功耗攻击实验及结果
采用跨平台性、可移植性比较好的java语言对于PRESENT加密算法进行了编程测试,以便对于该算法的安全性和可靠性予以证明。同时,设计了与此相应的硬件电路,并进行了实现,得到PRESENT功耗攻击实验平台结构图,如图3所示。
如图3所示,PRESENT差分功耗攻击实验的具体步骤为:
1)确定明文和密文,其中,密文的确定方法就是利用java语言对于PRESENT加密算法进行编程得到;
2)根据图2中的PRESENT算法最佳功耗攻击点来进行攻击点的设置,将相关信息向示波器中进行输入,使示波器接收到外部触发信号;
3)利用示波器来对于电阻R上的瞬时电压及时进行保存,并且相关的保存结果传输到电脑中;
4)对于所得到的相关数据利用软件进行采集和整理加工,得到PRESENT差分功耗攻击实验结果。
最终得到的PRESENT差分功耗攻击实验结果如图4所示。
3.2实验结果分析
根据上述的实现,能够发现,与AES、DES算法相比,轻量级PRESENT加密算法将经过多次S置换和P置换、轮密钥加操作的密钥作为加密系统的主控密钥,扩展了密钥宽度,增加了安全性能。但是,考虑到PRESENT加密算法编程非常容易,不需要采用过于高深的编程思想,这就导致PRESENT差分功耗攻击也是比较容易的,与此同时,在图4中,也能够发现,PRES-ENT差分功耗攻击实验过程中噪音也不大。由此看来,虽然轻量级PRESENT加密算法使用起来非常方便,但是,PRESENT功耗攻击模型以及攻击点选择比较容易,PRESENT差分功耗攻击在安全性方面仍然值得广大的研究工作者引起关注,以便进一步提高轻量级PRESENT加密算法的安全性和可靠性。
4结论
可以预计,轻量级PRESENT加密算法的应用将会更加广泛,但是,PRESENT差分功耗攻击在安全性方面仍然存在着一定的不足之处,尚有一些不完美的地方需要进行改进。所以,PRESENT差分功耗攻击在安全性方面仍然值得广大的研究工作者引起关注,以便进一步提高轻量级PRESENT加密算法的安全性和可靠性。