深入探索AES内轮的侧信道攻击

VSole2022-05-26 05:06:38

背景介绍

现实中由于设备限制和实际防护方式,AES的第一轮和最后一轮往往无法被攻击,所以研究中间轮加密是很有必要的。而随着AES轮数的深入,计算复杂度也会对应提升,即假设中要猜测的比特数会增加,因为AES扩散,每个中间字节依赖的密钥字节会越来越多。

2021年,来自荷兰代尔夫特理工大学、拉德堡德奈梅亨大学的Swaminathan等人在Eprint上发表了一篇对AES内轮进行研究的论文,论文在选择明文和自适应选择密文的基础上,对AES的第二轮、第三轮、第四轮以加密模式进行了攻击,对AES的第七轮以解密模式进行了攻击,并将内轮攻击进行了一般化的公式总结。[1]

攻击方法

以第2轮为例,作者通过加密计算过程总结了攻击复杂度等问题。本文公式符号表示如下:pi表示第i个明文字节,ci表示第i个密文字节,vin表示第n轮的S盒的输出结果的第i个字节,uin表示第n轮列混合结果的第i字节,win表示第n轮轮密钥加结果的第i个字节,kin表示第n轮轮密钥的第i个字节,Sn(u)表示第n轮S盒输出结果,γ, θ分别是8bit的常量。其中n取0~10,i取0~15。

首先猜测第二轮S盒后的第一个字节,可以表示为式(1),其中u10为第一个字节第一轮列混合的输出结果,可以表示为式(2),将两式结合之后,得到式(3)。

v02=S2(w01),w01=u01⊕k01(1)

u01=02*v01⊕03*v51⊕01*v101⊕01*v151(2)

v02=S2(02*v01⊕03*v51⊕01*v101⊕01*v151⊕k01)(3)

因为我们关注的是第一个字节密钥,因此在式(2)中v51,v101,v151我们都不需要关注其具体值为多少,所以可以使用一个常量γ代替与他们相关的值,如式(4)所示。继续将该式带入式(3)中,并将式(3)中的v01用k00表示,可以得到最终的式(5)。

γ=03*v51⊕01*v101⊕01*v151(4)

v02=S2(02*S1(p0⊕k00)⊕γ)(5)

在式(5)中,只有k00和γ是我们在攻击时需要猜测的,即需要猜测16bit数据,同时γ的值是受到3个字节的明文影响的,要想使其不变,需要固定3个字节密钥,因此在攻击第二轮的时候,可以同时攻击4个字节密钥,固定12个字节明文。上述公式表示的流程可以由图1表示。

图1 通过AES加密第二轮S盒的输出攻击第一个字节密钥

后续推论与攻击第二轮类似,此处给出第三轮和第四轮S盒输出的表示方式,分别为式(6)、式(7)。

v03=S3(02*S2(02*S1(p0⊕k00)⊕δ)⊕γ)(6)

v04=S4(02*S3(02*S2(02*S1(p0⊕k00)⊕δ)⊕γ)θ)(7)

根据上边的分析,我们可以将攻击一般化,将第j轮S盒之后第i字节表示为式(8)。其中θj需要3*4j-1字节明文固定,同时猜测8*i位来恢复密钥,如图2所示。

vij=Sj(m1*Sj-1(m2*...*S2

(mj-1*S1(pn⊕kn0)⊕θ1)⊕θ2)...⊕θj-1)(8)

图2 攻击不同轮的分析结果

在图2中,四列数值分别为轮数i,需要固定的明文字节数,需要猜测的比特数以及深度学习方法攻击时训练和攻击可用的波形数。可以看到,随着攻击轮数的深入,需要固定的明文字节数也在增加,因此可以采集的波形数量也会受到限制,到了第四轮,相关能量分析(CPA)只能通过一条波形进行攻击,深度学习侧信道攻击(DL-SCA)建模阶段可以通过更改密钥获得256条波形,但是攻击阶段只能使用固定明文固定密钥的一条波形,因此无论哪一种方式,都难以破解AES密钥。

实验结果

实验使用的波形是作者在基于32位stm32F4的Pinata上采集获得,采集的数据集中波形是不带防护的,并且加密不能在一个时钟内实现多轮AES,作者对比了对正常波形和人为添加了高斯噪声的波形攻击的结果。

以第二轮攻击结果为例,攻击第二轮S盒输出的结果如图3(不带高斯噪声)和图4(添加高斯噪声)所示,其中纵坐标为正确密钥和值的排名,排名空间为216,即65536。在图3中,DL-SCA使用7500条波形训练,500条波形验证,攻击时238条波形成功恢复正确密钥和的值,普通CPA用2000条进行攻击,重复100次实验,正确密钥排名为第6。添加高斯噪声后,DL-SCA使用139条波形后成功恢复正确密钥和的值,普通CPA恢复正确密钥的排名为352,即无法得到正确密钥值。

图3 攻击AES第二轮S盒输出的结果

图4 攻击AES第二轮S盒输出的结果(添加高斯噪声)

攻击第三轮S盒输出的结果如图5(不带高斯噪声)和图6(添加高斯噪声)所示,其中纵坐标为正确密钥以及γ值和δ值的排名,排名空间为224。因为此时波形数量受到限制,所以DL-SCA实验使用了2000条波形训练,500条波形验证,500条波形攻击。在不带高斯噪声的情况下,只使用11条波形便恢复了正确密钥,而普通CPA正确密钥的排名分别在75条波和110条波时成为第一。再添加了高斯噪声之后,虽然DL-SCA在使用34波形之后找到了正确密钥,但是CPA使用了500条波形也无法找到正确密钥。

作者对第四轮进行了同样的实验,但是由于波形数量限制,即使在之前实验表现优异的DL-SCA也无法通过第四轮破解AES的密钥。

图5 攻击AES第三轮S盒输出的结果

图6 攻击AES第三轮S盒输出的结果(添加高斯噪声)

总结

本文提出了在AES加密下攻击内轮中间字节的通用公式,并证明对第二轮和第三轮的攻击是可行的,对第七轮之后攻击也是可行的。同时,文章对比了DL-SCA和CPA的结果,实践结果证明,DL-CPA相比于CPA,在各种情况下更容易恢复正确密钥,而CPA受到数据复杂度等因素高度限制,难以通过AES内轮恢复AES正确密钥。最后,我们相信在对于深度学习进一步研究之后,可以实现在内轮4~6轮之间进行攻击。

参考资料

[1] Sudharshan Swaminathan, Lukasz Chmielewski, Guilherme Perin, Stjepan Picek: Deep Learning-based Side-channel Analysis against AES Inner Rounds. IACR Cryptol. ePrint Arch. 2021: 981 (2021)


aes高斯噪声
本作品采用《CC 协议》,转载必须注明作者和本文链接
侧信道攻击能否攻破AES内轮?
所以在最坏的安全假设下,噪声成为降低攻击效率的主要条件。GE表示正确密钥的位置排名。每条能量迹有25万个样本点,对其中1400个特征点进行分析。汉明重量泄露模型下特征点数量和PI的关系在高信噪比的情况下,神经网络显示出优于高斯模板攻击的性能。图中显示了每个单独的密钥字节达到猜测熵为1 时所需的攻击轨迹数。
1985 年Deutsch进一步阐述了量子计算机的基本概念,并证实了在某些方面,量子计算机相比经典计算机而言确实具有更强大的功能。除此之外,欧盟、加拿大、中国等组织、国家和地区在量子计算机领域的研究也做出积极响应并取得了一系列的研究成果。2001 年, 一 个 由 IBM 公司成功研发的 7qubit 的示例性量子计算机成功领跑了该领域的研究。
量子计算综述报告
2021-11-19 11:43:31
对于所有非物理专业的毕业生而言,量子这个概念多半是模糊而又熟悉的,因为没有系统学习过量子力学,因此对什么是量子往往难以理解并说不清楚,但近年来量子这个词又不断高频出现在大众视野面前,从量子通信、量子卫星到量子计算···。
2022年,CHES会议上Brian Udugama等人提出了一种名为VITI的FPGA片上传感器,可以用于监测FPGA的能量变化,从而获取同一FPGA上其它电路的侧信息,以实现远程能量攻击。
很早以前就从影视作品中看到这样的一幕--美国总统、国务卿、参谋长等高官坐在五角大楼办公室里面,现场指挥飞机用导弹攻击地面目标,同时直观看到攻击后的结果,然后一起开心鼓掌微笑···。现实中真的能做到还是仅仅存在于电影电视作品?通过仔细分析美军现役密码装备特点与设计实现思路, 可以确信美军真的能做到, 美军 C5ISR 真的就是这样设计的,美军是如何做到的?值得我们分析分析。
数据库技术是一门信息管理自动化学科的基础课程,在经历了半个世纪的发展后已经成为计算机科学的重要分支,被广泛应用于人们的日常生活。数据库的核心任务是数据资产的管理,包括数据的分类、组织、编码、储存、检索和维护。在数据信息爆发式增长的今天,数据库承担了越来越多的数据处理与分析职责,以数据赋能的形式不断促进应用创新,助力数字化发展进程。
侧信道攻击是一种不需要接触数据本身,而是通过观察数据处理过程来获取数据的攻击手段。传统的CPU微架构中已经被发现存在大量的可被利用于进行侧信道攻击的问题。而随着异构计算系统的不断发展,侧信道攻击手段也出现在GPU、FPGA等加速器中。
各经济体更加重视数据竞争力,纷纷制定出台数据战略,宣誓数据安全和主权。因此,欧盟认为必须建立欧洲数据主权。近年来,我国陆续发布了一系列数据及其安全相关的法律法规和标准规范,数据资产价值得到确认。2020年6月,12部委联合发布《网络安全审查办法》,推动建立国家网络安全审查工作机制。
VSole
网络安全专家