文献标识码: A
DOI:10.16157/j.issn.0258-7998.190546
中文引用格式: 严迎建,郑震. 一种针对分组密码的抗能量攻击电路设计[J].电子技术应用,2019,45(8):109-112,117.
英文引用格式: Yan Yingjian,Zheng Zhen. An anti-power attack circuit design for block cipher[J]. Application of Electronic Technique,2019,45(8):109-112,117.
0 引言
在密码设备的运行过程中,会不可避免地泄漏出功耗、电磁、时间等信息,攻击者可以通过这些信息获得密钥的相关信息。攻击者通过设备泄漏出的能耗信息进行攻击的方式称为能量攻击。能量攻击实施的依据是密码设备的能量消耗依赖于设备所执行的密码算法的中间值[1]。要抵御这种攻击可以试图降低甚至消除这种依赖性,实现功耗的随机化。
目前主要的防护技术有隐藏技术和掩码技术等。隐藏技术主要是使算法运行过程中的功耗尽可能地随机,从而达到防护目的;掩码技术分为布尔掩码、多项式掩码和内积掩码等,主要通过变换算法运行中间值或掩盖中间结果,增加了攻击者破译密码的难度。
在掩码技术的范畴内,MIYAJAN A等人在文献[2]中介绍了一种针对AES的掩码方案,使用卡诺图来降低运算复杂度,使用单指令多数据技术执行并行处理,该方案所实现的加密周期较短,但就资源消耗方面来看其占用了较多资源,是一种牺牲资源提升运算速率的方案;GROSS H等人在文献[3]中实现了在与专用电路相同的成本下对多元高阶能量攻击的抵抗,该方案具有较高的灵活性,但其适用范围较小;李浪等[4]设计了一种基于随机选择变换的掩码方案,通过随机产生等概率汉明重量的掩码组,对S盒使用随机转置矩阵变换,对不同的轮函数加以相应的掩码防护,该方案保护了算法运行过程的中间值,但是运算效率降低较为明显;PU S等[5]针对SM4算法提出并实现了一种基于布尔矩阵的具有可证明安全性的掩码方案,但经实验评估,该方案的总体性能较为一般。此外还有很多学者对掩码技术进行了不同方面的研究,总的来说,目前国内外对掩码技术的研究较为广泛,但其依然具有较大的可挖掘性。
1 反向交错
以上结果表明,当样本量N足够大时,对加入了反向交错结构的电路实施能量攻击时,相关系数的值将大大减小且逼近0。因此,可通过加入反向交错结构来增强分组密码算法电路的抗能量攻击能力。
2 反向交错的电路设计
为满足反向交错的条件,应使算法运行过程的中间值随机地在取反与不取反之间交替。
参考分组密码算法电路实现的相关理论可知,在分组密码的轮运算中插入反向交错的电路结构难度较大,因此,本文主要考虑在轮运算的外部插入防护单元。为实现密码运算中间数值的取反,本文在寄存器前后加入反向器,通过随机数控制选择端口,进而控制数值是否取反。基本电路结构如图1所示。
分组密码的轮运算中S盒等非线性映射的存在使得在进行轮运算F之前必须将取反的中间值变换成正确值,否则不能得到正确的加解密结果。另一方面,数值不取反将导致被攻击时算法的中间值与防护之前没有变化,不能实现算法运行过程中的功耗随机化。
因此,图1中的基础电路结构仅能防御针对寄存器R1的能量攻击,而对于针对密码运算部件(即轮运算F中的部件)的攻击则无法达到预期的防护效果,为实现功耗的随机化,须对电路结构作进一步优化。
为实现整体电路的功耗随机化,本文结合打乱时序对齐[6-8]的对策,参考插入互补寄存器[9-10]的方法,在寄存器R1后加入一级寄存器R2,通过控制数据选择器,随机地延长加密周期以实现对时序的打乱,具体电路结构如图2所示。
较之图1中的基本电路结构,优化后结构的控制信号变为两个信号的逻辑与。图2中,控制信号Sel是通过随机数发生器生成的随机数,根据电路的结构进行分析易知,要使整个结构实现功耗随机化,控制信号Sel应根据随机数首比特的不同按照表1中的序列生成。
现有对分组密码的能量攻击均选择首轮或末轮为攻击点,所以对反向交错结构的设计主要考虑到对首轮和末轮的防护。当算法运行到首轮或末轮时,寄存器R2被R1赋值,电路通过寄存器R2来控制电路进行时序的打乱:当控制信号为1时,寄存器R2保证了电路对时序进行打乱;控制信号为0时,寄存器R2无效,数据选择器均为0输入端有效,电路正常进行轮运算。当算法运行到中间轮次时,通过两级取反保证了轮运算输入的正确性,电路正常加密。
由图2分析可得,根据控制信号Sel产生的随机数的首比特不同,被攻击样本的时序可分为两种,如图3所示(F(n)表示第n轮运算的输出)。
下面讨论优化的反向交错结构在首轮和末轮的抗攻击能力:
(1)首轮运算抗攻击能力
当攻击者对轮运算外部的寄存器进行攻击时,不同样本在电路的第一个时钟周期内,F(0)和~F(0)交替出现,符合反向交错的条件;当攻击者对轮运算内部的密码运算部件进行攻击时,在两种时序下,第二个时钟周期(即第二轮运算)中轮运算的输入分别为F(0)和随机数,攻击者无法获取信息泄漏。
(2)末轮运算抗攻击能力
对于不同样本,在第n+1个时钟周期内,数据选择器的置数端为0,寄存器R2无效,而寄存器R1在两种时序下分别为F(随机数)和F(n-1),攻击者无法对轮运算外部的寄存器进行攻击;在两种时序下,第n+1和第n+2个时钟周期之间的取值分别为F(随机数)和F(n)、F(n-1)和F(n),攻击者同样无法获取信息泄漏。
综上所述,图2中优化的反向交错结构在分组密码运算的首轮和末轮均能够实现功耗随机化,具有良好的抗能量攻击能力。
3 反向交错电路的应用与验证
为对本文提出的反向交错结构的抗能量攻击性能进行验证,将优化后的结构加入到AES-128算法电路中,其整体电路如图4所示。
下面从加解密功能、抗攻击能力和电路性能三方面对本文所设计的结构进行验证,并与未防护的电路进行对比。
3.1 加解密功能验证
基于优化反向交错结构的AES-128算法具有两种不同加密时序,以加密功能为例,使用VCS对加入防护前的电路和图4中的电路进行功能仿真,得到结果如图5所示。
图中clk为时钟信号,load为加载信号,trng_128为随机数,data_in为明文输入,data_o为密文输出,key为密钥,state为寄存器,sel为控制信号。仿真验证的结果表明,经防护的AES-128电路能够在12个时钟周期内,以2种不同加密时序顺利实现加密功能。
3.2 防护能力验证
对防护效果进行验证时,首先在Verilog硬件语言中对所设计的电路进行实现,而后运用Vivado软件合成.bit格式的文件并下载至Chipwhisperer实验开发板中,得到如图6所示的能量迹。
由图6可知,在加入优化的反向交错结构后,算法电路的加密延长了一个时钟周期,但每个周期内功耗特性与防护前基本一致,符合预期效果。
对加密的能量迹进行采集后,进一步对加入防护前后的电路进行攻击并对比,对优化的反向交错结构的防护能力进行分析。对防护前后的电路分别实施攻击,结果如图7所示。
防护前,攻击样本量为600时即可得到正确密钥值,正确密钥对应的相关系数值为0.225;防护后,样本量为10 000时相关系数的值出现了多个尖峰,仍不足以得到正确密钥值,攻击前所设定的正确密钥值对应的相关系数值降至0.016。根据以上结果可知,加入反向交错的电路结构能够大大提升电路的抗能量攻击能力。
3.3 性能验证
对电路性能进行分析时在 Design Compiler上进行综合实现,对加入反向交错结构的电路进行性能评估,并与防护前的电路进行对比,结果如表2所示。
分析上表可知,在加入反向交错结构后,组合逻辑的增加导致了关键延迟增加,电路的最大频率有小幅度的降低;加密周期数的增加使得防护后的吞吐率有所降低;但由于两级寄存器的加入,时序收敛更加容易,使面积和等效与非门数目不增反降,一定程度上减小了资源消耗。随机数的引入,对能量消耗起到了很好的混淆效果,使得能量攻击难度加大。综上所述,加入反向交错结构的电路基本达到了防护效果和电路性能的相对平衡。
4 结论
本文从功耗随机化的角度出发,提出了反向交错的定义,设计出了满足反向交错的基本电路结构并进行了优化。最后将优化的电路结构应用到AES-128算法中,进行了多方面的验证,结果证明本文设计的反向交错的电路结构具有较强的抗能量攻击能力和较好的电路性能,具有较高的可参考性。
同时本文存在一些可改进的方面:设计电路时思路不够灵活,选取的元件种类较为单一;优化结构中加入的寄存器R2利用率较低;时序分析较为简单,在进行验证时利用的部分工具和实际攻防有一定差别。
下一步将针对电路的最高频率和吞吐率有所下降的问题进行进一步的优化,使性能达到更优水平。
参考文献
[1] 冯登国,周永彬,刘继业,等.能量分析攻击[M].北京:科学出版社,2010.
[2] MIYAJAN A,HUANG C H,AL-SOMANI T F.Speedup higher-order masking of AES using normal basis and SIMD[C].International Conference on Computer Engineering & Systems,2017.
[3] GROSS H,MANGARD S,KORAK T .An efficient side-channel protected AES implementation with arbitrary protection order[C].Cryptographers′ Track at the RSA Conference.Springer,Cham,2017.
[4] 李浪,欧雨,邹祎.一种AES随机变换掩码方案及抗DPA分析[J].密码学报,2018,5(4):112-124.
[5] PU S,GUO Z,LIU J,et al.Boolean matrix masking for SM4 block cipher algorithm[C].International Conference on Computational Intelligence & Security.IEEE,2018.
[6] FOLGADO D,BARANDAS M,MATIAS R,et al.Time alignment measurement for time series[J].Pattern Recognition,2018,81:268-279.
[7] BHATTACHARYA S,REBEIRO C,MUKHOPADHYAY D.A formal security analysis of even-odd sequential prefetching in profiled cache-timing attacks[C].Hardware & Architectural Support for Security & Privacy,2016.
[8] YI J,DANESHRAD B,POTTIE G J.A practical approach to joint timing, frequency synchronization and channel estimation for concurrent transmissions in a MANET[J].IEEE Transactions on Wireless Communications,2017,16(6):3461-3475.
[9] TANIMURA K,DUTT N.ExCCel: Exploration of complementary cells for efficient DPA attack resistivity[C].IEEE International Symposium on Hardware-oriented Security & Trust,2010.
[10] Zhang, Baoning,Ge Wei,Wang Zhen.A distributed crossdomain register filefor reconfigurable cryptographic processor[J].东南大学学报(英文版),2017,33(3):260-265.
作者信息:
严迎建,郑 震
(信息工程大学 三院,河南 郑州450001)