二读ASCAD数据集
对于ASCAD数据集的打开方式是否正确?
概述
ASCAD数据集包含两部分内容,分别是ASCAD fix数据集和ASCAD variable数据集,其中fix数据集是AES在ATMega8515上固定密钥的一阶防护实现的波形,包含60000条波形;variable是在2019年添加的,实现条件一样,但是训练集中的波形是使用随机密钥加密实现的,包含200000条波形,攻击集的波形是固定密钥加密实现的,包含100000条波形。
目前围绕ASCAD数据集的工作,大部分都是研究深度学习方法的,并且大部分工作都只使用了fix数据集,本文对数据集本身进行了研究。本文对ASCAD进行了详细分析,检查了AES实现的所有16个字节,并揭示了侧信道攻击中的中间值泄露。首先提供了所有密钥字节的兴趣点分析,然后对比分析了一阶CPA和二阶CPA的结果,最后对比了ASCAD两部分数据集的差异[1]。
泄露分析
ASCAD使用了掩码方案,其实现方案如图1所示,其中每一个ri对应一个ki,共有16个,rin和rout与S和处于绑定状态,因此是固定的,故整个掩码方案一次加密需要18个随机数字节。
图1 ASCAD所使用的掩码方案
为了保护S盒查找,该方案里S盒操作被替换成式(1),同时值得留意的是,AES的前两个S盒,对应k0和k1,并没有对应的掩码,因为该方案带有shuffing操作,前两个密钥对应的掩码被设置成0x00来关闭shuffing,S盒的访问顺序固定成图2所示,其中不带防护的字节被粗体表示。
Sm(x)=S(x⊕rin)⊕rout 式(1)
图2 ASCAD的AES中S盒访问顺序
此外,该实现方案还利用了一种叫做安全负载的操作(security load),该操作旨在消除目标地址/寄存器和读写总线上的值来避免汉明距离(HD)泄露,如式(2)所示:
security load=Sm(S(ki-1⊕ptxti-1)⊕ri-1)
=S(Sprev⊕rin)⊕rout 式2
相关兴趣点分析(CPOI)和信噪比(SNR)反映了中间值的泄露程度,数值越大,泄露越多。针对ASCAD作者建议使用的波形子段和完整波形,文章分别分析了其泄露情况,其中,波形子段只包含了对应掩码字节的操作。
如图3所示,可以看到,fix数据集的泄露在整个时钟周期存在并扩散,而variable数据集表现出了不一样的时间受限泄露特性,一种可能的原因是:ASCAD fix中的测量值受到低通滤波器的影响。除此之外,正如相同的底层实现所预期的那样,两个数据集之间的泄漏没有显著差异。
图3 fix数据集和variable数据集泄露情况
因此,文章又针对variable数据集研究不同字节密钥的泄露,如图4所示(k7~k15的泄露情况同k6),其中图中可以看出ptxt⊕k⊕rin的泄露都在样本点300-500,而在样本点600到1000和1100到1400,泄露差距很大,在这些区域,存在着安全负载(k2,灰线)、rin(k2,k3,红线)、rout(k4,青线)、ri(k5,黄线)等额外泄露,其余字节不显示此泄露特性,对于k15,在波形开头可以看到泄露S(ptxt⊕k)⊕rout(蓝色),原因可能是因为k15是第一个处理的字节,因此寄存器仍然为空,这会导致额外的泄漏。由此可见,单个密钥字节的泄漏率之间存在显著差异。由于ASCAD数据库上的大多数相关工作都是在k2上进行的,因此基于ML的SCA对于其他密钥字节(具有不同的泄漏特性)的性能可能会有所不同。
图4 不同字节密钥的泄露分析
基于ML的SCA的主要好处之一是,它减少了攻击者执行高阶侧通道攻击的工作量。所以ASCAD需要不存在一阶泄露才能体现出这个好处。本文使用HW模型,以S(ptxt⊕k)为中间值,对应ML训练的标签,对ASCAD进行CPA。
图5是对ASCAD波形子段进行CPA的结果,图中数字是成功恢复密钥所需要的波形数量。对于一阶CPA,除了未防护的前两个字节,fix数据集中k5也出现了一阶泄露,variable数据集中k4、k5均出现了一阶泄露,但是k4使用的波形接近数据集的总量,因此猜测fix的k4没有出现泄露的原因是fix数据集只有60000条波形,所以视为安全。对于fix数据集,二阶单变量攻击可以成功,可能是因为fix数据集的测量设置或者预处理的差异,让多变量泄露转变成了单变量泄露。多变量二阶CPA均可以攻击成功。
图5 ASCAD波形子段CPA结果
图6是对ASCAD完整波形进行CPA的结果,可以看到,对于二阶单变量CPA,仍然是fix数据集可以攻击成功,但是对于一阶CPA来说,无论是fix数据集还是variable数据集,都表现出了更高的泄露特性,仅有fix数据集的几个字节没有攻击成功。
图6 ASCAD完整波形CPA结果
对于ASCAD波形子段和完整波形的CPA表明,ASCAD数据集存在着一阶泄露,在未来的工作中,需要考虑一阶泄露的存在,以便了解基于深度学习的侧信道攻击是否真正实现了多变量高阶攻击,尤其是对于使用完整波形的工作。
实验结果
本文使用了两种网络来对比分析,分别是Benadjila等人提出的CNNbest和Rijsdijk等人提出的CNNsmall。在实验中,CNNbest网络使用48000条波形训练验证,12000条波形攻击,攻击集分成12个子集,每个子集1000条波形,交叉验证5次,即攻击集数量为60;CNNsmall网络使用75000条波形进行训练,5000条波形进行验证,20000条波形攻击,攻击集分成20个子集,每个子集1000条波形,交叉验证5次,即攻击集数量为100。
两个网络分别在三种情况下进行训练和攻击:1)在fix数据集上,对使用相同密钥的波形进行训练和攻击;2)在variable数据集上,对固定密钥的波形进行训练,对固定密钥的波形进行攻击;3)在variable数据集上,对变化密钥的波形进行训练,对固定密钥的波形进行攻击。其中,情况1)只对CNNbest进行训练和攻击,故共计五种实验。
图7 基于深度学习方法的实验结果
实验结果如图78所示,每一个子图的横坐标为波形数量,纵坐标为正确密钥排名的中位数,图中蓝色实线为排名的中位数,实线周围的浅蓝色区域为所有攻击集结果的25%~75%,即去除掉攻击效果最好的25%的攻击集和攻击效果最差的25%的攻击集。
图7中(a)图为情况1)下CNNbest的结果,只需要428条波形即可让密钥排名的中位数为0,50%的数据集在147条到812条波形之间密钥排名为0;(b)图为情况2)下CNNbest的结果,需要200条波形可以让让密钥排名的中位数为0,并且大多数攻击成功所需的波形数量少于341条;(c)图为情况3)下CNNbest的结果,在该图中,对于一半以上的攻击集(37个),即使在1000条波形之后,CNNbest也无法让正确密钥的排名变为0,只有25%的攻击集可以在少于638条波形的情况下让密钥排名变为0,攻击成功所需要的波形数量是图(b)的五倍多。
图7中(d)图为情况2)下CNNsmall的结果,对同一固定密钥的训练需要58条波形可以攻击成功;(e)图为情况3)下CNNsmall的结果,需要239条波形可让密钥排名的中位数变为0,攻击成功所需要的波形数量是使用相同密钥训练实验的4倍。由此可见,基于固定密钥训练的网络性能被系统地高估,使用可变密钥训练更能产生可靠的结果。因此在未来的工作中,期待大家更多的使用variable数据集。
同样的,对比了两个数据集后,本文针对variable数据集对比不同字节之间的差异,如图8和图9所示,攻击集数量为250,每个攻击集包含2000条波形,如果2000条波形无法攻击成功,则使用20个包含5000条波形的攻击集重复前边的攻击。
在图8中,纵轴为密钥排名的中间值,横轴为波形数量,可以明显看到,某些字节攻击成功仅需要很少的波形,更容易攻击成功,比如k1、k2、k5,整体而言,前八个字节比后八个字节更容易攻击成功。
图8 variable数据集不同字节攻击结果
图9为密钥排名中间值变为0时所需要的波形数量,对于ASCAD变量数据集的不同密钥字节,使用CNN的基于ML的SCA的结果有所不同。对于某些字节,不同网络的结果是一致的,即它们更容易(k0、k1、k5)或更难(k9、k13)学习,对于体系结构高度优化的CNNsmall而言,除了泄露模式不同的k3,其他的字节结果比较恒定,但对于超大体系结构的CNNbest而言,不同字节结果不同,因此,除了用不同的数据集结果来验证结果稳健性,也可以用整个ASCAD数据集来测试不同泄露模型下是否可靠。
图9 密钥排名中间值变为0时所需要的波形数量
最后为了对比这种不同,文章进行了跨字节攻击展示,正如图10所示,图中横轴和纵轴均为16个字节,纵轴为训练时的字节,横轴为攻击时的字节,攻击结果因字节而异,经过训练的网络无法轻松用于攻击ASCAD变量数据库的所有字节,如(a)中的k3、k4、k5和(b)中的k3、k4。这意味着攻击者必须针对每个泄漏训练单独的模型,即单个字节的结果可能不具有代表性。跨字节分析可以作为评估同一数据集上CNN体系结构稳健性的第一步。
图10 跨字节攻击结果
总结
本文证明了ASCAD的某些密钥字节存在一阶泄露,之前的以及以后的工作需要确认是否真正实现了高阶攻击;此外,在variable数据集上的攻击结果比fix数据集上的攻击结果差,为了更真实的结果,未来的工作应该基于variable数据集进行;最后通过比较所有字节的CNN结果,可以看到不同的字节攻击结果不同,以后的工作除了对比不同数据集结果外,还可以通过对比ASCAD variable数据集的不同字节来提高结果的稳健性。
参考资料
[1] Maximilian Egger, Thomas Schamberger, Lars Tebelmann, Florian Lippert, Georg Sigl: A Second Look at the ASCAD Databases. COSADE 2022: 75-99
