密码学报ISSN2095-7025CN10-1195/TN Journal of Cryptologic Research,2021,8(4):549–559©《密码学报》编辑部版权所有.E-mail:***************.cn Tel/Fax:+86-10-82789618一种针对侧信道建模攻击中数据不平衡的新方法*汪平,郑梦策,南杰慧,罗志敏,胡红钢中国科学技术大学中国科学院电磁空间信息重点实验室,合肥230027通信作者:胡红钢,*****************.cn摘要:基于机器学习或深度学习的侧信道建模攻击本质上是一个有监督分类问题,而分类标签的依据是泄露模型,我们经常使用的两种泄露模型是汉明重量(Hamming Weight,HW)和汉明距离(Hamming Distance,HD).当使用HW/HD作为采集轨迹的标签时,会出现数据不平衡的问题.在本文中,我们首次使用条件生成对抗网络(Conditional Generative Adversarial Network,CGAN)来生成轨迹,通过数据扩张的方法来构建平衡的训练集,从而提升模型的攻击效果.我们选取了三种公开数据集来验证该方法的有效性,包括无防护的AES硬件实现、带有一阶掩码防护的AES软件实现以及带有随机延迟防护的AES 软件实现.实验结果表明,由重构的平衡训练集所训练出的模型具有更好的攻击效果,有效地减少了成功攻击所需的轨迹条数,并且在具体分析模型的类别预测比例时,能够正确预测更多的少数类别样本.这也表明优化后的模型学习到了更全面的类别.对比Picek等在2019年的相关工作,我们的方法有了更进一步的提升.关键词:侧信道建模攻击;数据不平衡;生成对抗网络中图分类号:TP309.7文献标识码:A DOI:10.13868/ki.jcr.000457中文引用格式:汪平,郑梦策,南杰慧,罗志敏,胡红钢.一种针对侧信道建模攻击中数据不平衡的新方法[J].密码学报,2021,8(4):549–559.[DOI:10.13868/ki.jcr.000457]英文引用格式:WANG P,ZHENG M C,NAN J H,LUO Z M,HU H G.A novel method for profiling side-channel attacks against imbalanced data[J].Journal of Cryptologic Research,2021,8(4):549–559.[DOI: 10.13868/ki.jcr.000457]A Novel Method for Profiling Side-Channel Attacks Against Imbalanced DataWANG Ping,ZHENG Meng-Ce,NAN Jie-Hui,LUO Zhi-Min,HU Hong-GangCAS Key Laboratory of Electromagnetic Space Information,University of Science and Technology of China, Hefei230027,ChinaCorresponding author:HU Hong-Gang,*****************.cnAbstract:Side channel profiling attacks based on machine learning or deep learning are essentially a supervised classification problem,where the classification label is based on the leakage models. Among all leakage models,two common models are Hamming weight(HW)and Hamming distance (HD).When HW/HD is adopted for the labels of profiling traces,the dilemma of imbalanced data*基金项目:国家自然科学基金(61972370,61632013,62002335);中央高校基本科研业务费专项资金(WK3480000007) Foundation:National Natural Science Foundation of China(61972370,61632013,62002335);the Fundamental Re-search Funds for the Central Universities of China(WK3480000007)收稿日期:2020-08-02定稿日期:2020-10-30550Journal of Cryptologic Research密码学报Vol.8,No.4,Aug.2021occurs.This paper exploits the potential of Conditional Generative Adversarial Network(CGAN)to generate traces,and constructs a balanced training set via data augmentation.Consequently,the attack performance of the model is improved.In order to test the effectiveness of this new method,three public data sets are selected for experiments,including an unprotected AES hardware implementation,an AES software implementation with first-order mask protection,and an AES software implementation with random delay protection.The experimental results show that the model trained by the reconstructed balanced training set has better attack effects than other methods,hence can effectively reduce the number of traces required for a successful attack,and can predict correctly more samples of minority categories when the model’s category prediction ratio is analyzed in detail.This demonstrates that the optimized model can learn more pared with the work of Picek et al.in2019,the proposed method has significant improvements.Key words:profiling side-channel attacks;imbalance data;conditional generative adversarial net-work(CGAN)1引言侧信道攻击(Side Channel Attack,SCA)是一种利用运行加密算法的物理设备所泄露的侧信息来恢复秘密信息的攻击[1].常用的侧信息包括时间、能量消耗、电磁辐射等.侧信道攻击主要分为建模攻击和非建模攻击,其中建模攻击近年来得到了迅速的发展,尤其是与深度学习(Deep Learning,DL)的结合.建模攻击主要包括建模阶段和攻击阶段.在建模阶段,假设攻击者有一个与目标设备相同且完全控制的建模设备,然后通过建模算法对建模设备的泄露特征进行刻画并构建模板,攻击阶段直接利用模板来恢复目标设备的秘密信息.模板攻击(Template Attack,TA)[2]可以看作是最早的建模攻击,其原理是利用多元高斯正态分布对泄露噪声进行建模.随着建模攻击的发展,一系列基于机器学习(Machine Learning,ML)的建模攻击被提出,其中两个比较常用的模型是支持向量机(Support Vector Machine,SVM)[3]和随机森林(Random Forest,RF)[4],在攻击无防护和有防护的密码实现上都取得了不错的成果[5,6].近年来,随着DL的发展,更多基于DL的建模攻击被不断提出,其中Maghrebi等人最早尝试将DL应用在建模攻击上[7].相比于传统建模攻击,无需进行兴趣点选取、对齐等预处理操作,并且某些网络结构具有天然的抵抗侧信道防护的性质,比如卷积神经网络(Convolutional Neural Network,CNN)的平移不变性可以减轻轨迹抖动带来的影响[8].后续又有很多研究者对于深度学习在建模攻击上的应用做了很多优化工作[9,10].在建模攻击中,我们通常要选择泄露模型来计算每条轨迹对应中间值的标签,比如说汉明重量、汉明距离以及最低最高有效位等.假设针对的是一个8位S盒,其输出结果范围是0到255,如果直接使用该S盒输出作为标签,那么数据就是平衡的,因为在采集轨迹时通常输入的是随机明文,所以S盒输出可以看作是均匀分布的.而如果使用HW/HD这样的泄露模型来计算标签,就会导致数据不平衡问题.这里我们以HW为例,当HW为0或8时,那么只有当S盒的输出为全0或全1时才满足,而这样的数据只占1/256;同样的,当HW等于4时,数据占有最高的比例70/256.当我们在这样的不平衡数据集上进行建模时,就会导致模型的类别预测比例也不平衡[11,12],降低模型的攻击效果.需要说明的一点是,尽管使用HW/HD这样的泄露模型存在数据不平衡的问题,但其缩减标签空间的高效性是不可忽视的,假设中间值是16位,如果直接使用中间值作为标签,那么就有65536种类别,而使用HW/HD计算的标签只有17种,当数据的类别过多时,不仅会大大增加计算代价,也难以训练出有效的模型.另一方面,在适用的场景下HW/HD能量模型可以准确刻画泄露的差异性,从而更有效地构建模型.解决这种不平衡问题的方法有多种,一种比较常见的方法就是利用数据扩张来构建平衡的数据集. Picek等人使用多种数据采样的方法,尤其是合成少数类过采样技术(Synthetic Minority Oversampling Technique,SMOTE)取得了不错的效果[12].当然也有其它类型的方法,比如可以利用分层建模的方式来缓解这种不平衡问题[13].本文将继续延伸数据扩张技巧在侧信道建模攻击中数据不平衡问题上的应用,我们首次提出使用生成对抗网络来生成轨迹,并利用生成轨迹扩张原始的不平衡数据集,从而提高训练模汪平等:一种针对侧信道建模攻击中数据不平衡的新方法551型的攻击效果.实验结果也表明相比于直接利用原始轨迹来合成的轨迹,由生成对抗网络所生成的轨迹,能够更有效地降低数据不平衡问题对攻击结果的影响,减少攻击成功所需的轨迹条数.本文的章节安排如下:第2节介绍相关背景知识,第3节介绍条件生成对抗网络的原理,以及生成轨迹时训练集的构建方法,第4节为实验结果与分析,第5节为本文结论.2背景知识2.1侧信道建模攻击侧信道建模攻击主要包含两个阶段,建模阶段和攻击阶段.在建模阶段,攻击者拥有一个可以完全访问的建模设备,假设采集的建模轨迹集为T profiling={(⃗l i,p i,k i)|i≤N p},其中⃗l i为采集的第i条轨迹, p i和k i为对应的已知子明密文和子密钥,中间值v i由函数g(p i,k i)得到.接着对T profiling建模,实际上是一个后验概率模型,可以给出输入轨迹属于所有类别的概率大小:M=P[v i|⃗l i],其中v i=g(p i,k i).(1)在攻击阶段,攻击者在一个带有未知固定密钥k∗的目标设备上采集轨迹得到攻击集T attack= {(⃗l j,p j)|j≤N a},然后根据建立的模型M来计算每个猜测密钥k guess∈K对应的似然得分:d kguess =N a∏j=1M(v j=g(p j,k guess)|⃗l j).(2)使得似然得分最大的猜测密钥就是我们认为正确的密钥:k∗=arg maxk guess d kguess.(3)通常我们所使用的侧信道评估指标猜测熵(Guess Entropy,GE)[14]就是指猜测密钥对应似然得分所构成的降序向量中,正确密钥k∗所处的位置.2.2数据扩张数据扩张(Data Augmentation,DA)[15]是一种正则化的技巧,用来处理模型在训练过程中出现的过拟合现象,从而构建更健壮的模型.当然,这一方法更多的还是运用在图像领域,比如对图像做平移和反射,改变图像通道的强度等操作有效地降低了错误率[16].而在侧信道领域中,近几年来也有一些研究者将DA引入到建模攻击中,Eleonora Cagli等人最早利用DA这一技巧来减少模型的过拟合,主要是通过对轨迹平移和添加抖动来合成新的轨迹[8].Picek等人通过数据采样的方法,来缓解数据不平衡问题对建模攻击的影响[12].此外,还有一些其它相关的工作[17,18].2.3条件生成对抗网络生成对抗网络(Generative Adversarial Network,GAN)是由Ian J.Goodfellow于2014年提出的[19],主要作为一个生成模型来学习数据的分布.为了学习真实数据x的分布p data,我们需要通过一个非线性函数G(z;θg)将一个先验噪声分布p z(z)映射到p data,而这个非线性函数G就是生成器,假设生成器学习到的数据分布为p g,我们的目标是尽可能的让p g接近p data.判别器同样是一个非线性函数D(x;θd),给出一个样本来自p data而不是p g的概率.然后我们交替的训练判别器和生成器,并调整判别器的参数θd和生成器的参数θg,使得log D(X)最大,log(1−D(G(z)))最小.这一训练过程可以看作生成器G和判别器D之间的最大最小游戏,使用一个目标函数表示就是:min G maxDV(D,G)=E x∼pdata(x)[log D(x)]+E z∼pz(z)[log(1−D(G(z)))].(4)我们在基于ML、DL进行侧信道建模攻击时,训练集中每条轨迹都有对应的label,而GAN本身是552Journal of Cryptologic Research密码学报Vol.8,No.4,Aug.2021无监督学习,生成的轨迹是没有标签的.所以使用有条件的GAN即CGAN[20]来生成轨迹,CGAN与GAN的不同之处就在于,在训练G和D时,需要加入额外的信息y,可以是数据的label,也可是某一分布下的数据.此时的目标函数则变成了:min G maxDV(D,G)=E x∼pdata(x)[log D(x|y)]+E z∼pz(z)[log(1−D(G(z|y)))].(5)图1展示了CGAN的简单架构,生成器G的输入为噪声和指定label,判别器D的输入为真实轨迹和生成轨迹及其对应label.图1条件生成对抗网络Figure1Conditional generative adversarial network3CGAN在建模攻击中数据不平衡问题上的应用原理及方法3.1网络结构3.1.1CGAN我们所使用生成器和判别器的主体构成是全连接网络,当然也可以使用其它类型的网络结构,比如基于卷积的.这里给出两者的整体结构,以ASCAD.h5数据集所使用的模型为例,如图2所示.对于图2(a)的生成器,首先是通过embedding层将标签编码成与噪声维度相同的向量,接着通过multiply层将噪声与标签结合起来(也可以使用其它的实现方式,比如通过numpy中的concatenate函数来直接拼接两个向量),然后输入到Sequential中,Sequential代表的是生成器的主体部分,可以看到输入是100维,输出即为轨迹的维度700.Sequential由(Dense,LeakyReLU,BatchNormalization)这三层按顺序重复堆叠N次,N的选取依据具体的数据集.图2(b)的判别器的输入部分是类似的,只不过标签要变成与轨迹维度相同的向量,然后与轨迹相结合,中间层类似,而输出是一个标量,代表对输入轨迹真假的判断得分.对于ASCAD.h5、AES_HD、AES_RD三个数据集,我们在训练CGAN模型时,使用的优化器是Adam,训练参数学习率、迭代次数、批处理尺寸依次为[(0.0001,100,100),(0.0001,150,200), (0.0001,100,200)],这里给出的是直接使用不平衡数据集生成轨迹的训练参数,3.2节将要提到的另外三种方法在训练CGAN时对应的训练参数有微小的差异,需要进行微调.关于生成轨迹的更多细节,包括轨迹的质量评估等请参考我们的另一篇文献[21].注1embedding、multiply、Sequential等这些都是Keras深度学习开源库(keras-2.2.4)中的相关函数.3.1.2攻击模型这里我们所选取的攻击模型是多层感知机.对于ASCAD数据集,模型使用了文献[9]中对应的超参数;而AES_HD、AES_RD两个数据集,则是使用10折叠交叉验证来选取模型的超参数,包括结构参数和训练参数.10折叠交叉验证的含义是,将建模集划分成训练集和验证集(每次划分是不一样的),然后分别训练10次,并将10次在验证集上的结果取平均.数据集ASCAD.h5、AES_HD、AES_RD对应模型的隐藏层和每层神经元个数分别为[(200,200,200,200,200),(200,200,200,200,256),(200,256, 256,256,200)].中间层和最后一层的激活函数分别为ReLU和Softmax.三个模型对应的训练参数学习率、迭代次数、批尺寸依次为[(0.0001,100,200),(0.00001,150,256),(0.00001,100,200)],所使用的优汪平等:一种针对侧信道建模攻击中数据不平衡的新方法553化器都是RSMProp.另外,要补充的一点是当我们将生成的轨迹加入到原始训练集后,重新训练模型时,有可能之前的超参数此时并不是最优的,因此可以进行简单的微调.(a)生成器(b)判别器图2CGAN的结构Figure2CGAN Architecture3.2构建CGAN训练集的不同方法在使用CGAN生成轨迹的时候,如果我们直接使用原始的训练集来生成轨迹,那么CGAN模型同样会受到数据不平衡问题的影响,可能会导致生成的轨迹更偏像于主类轨迹,所以我们设计了四种不同的方法来构建CGAN的训练集,减少这一问题带来的影响,方法如下:(1)直接使用原始不平衡的数据集来生成轨迹(generate with imbalanced data).(2)考虑到label=4的轨迹所占比例最高,而且通常不平衡数据下所训练模型对测试集的预测也更偏向label=4,甚至大多数时候模型对测试集的整体预测精度在27%[11]左右,而这一精度实际上也是label=4的轨迹所占比例,因此label=4是不平衡问题中最主要的影响因素,所以我们将label=4的轨迹单独拿出,然后将剩余的轨迹作为CGAN的训练集(generate without label =4).554Journal of Cryptologic Research密码学报Vol.8,No.4,Aug.2021(3)选择类别占比相同的轨迹作为一个训练集,比如说,label=0,8对应的轨迹组成一个CGAN的训练集,生成轨迹对应的label也等于0和8,因此,我们需要分别将label=0,8、label=1,7、label=2,6、label=3,5对应的轨迹分成四组训练集,然后分别生成轨迹(generate with two labels).(4)将所有类别的轨迹数量减少到占比最少的类别对应的轨迹数量,然后构成CGAN的平衡训练集,举个例子,label=0的轨迹在原始训练集中有128条,然后我们从其他类别中也分别取128条轨迹,构成一个平衡的训练集(generate with balanced data).3.3生成轨迹的质量评估方法生成轨迹并不像生成图片一样,即使看起来与原始轨迹相似,但无法观察到是否包含了与原始轨迹一致的泄露.我们通常使用相关能量分析(Correlation Power Analysis,CPA)[22]对轨迹进行兴趣点选取也即泄露分析,这一方法同样适用于生成轨迹.因此,结合生成轨迹与原始轨迹的CPA结果并对比两者的泄露位置以及强度,可以有效的对生成轨迹进行简单评估[21].经过CPA评估后,需要将生成轨迹加入到原始训练集中,重新构建攻击模型,验证是否能改善攻击结果.除此之外,利用差分能量分析(Differential Power Analysis,DPA)[23]同样可以评估生成轨迹,只不过是非线性的.3.4扩充原始训练集在文献[8,12]中,虽然都使用了数据扩张的方法,但对于如何扩张原始数据的实现细节并未给出.在本文中,我们以主类label=4的轨迹数量为基准,扩充其它类别的轨迹数量.这里以label=0为例,假设所有类别的轨迹数量共有1000条,依据汉明重量分布(1/256,8/256,28/256,56/256,70/256,56/256, 28/256,8/256,1/256),可以得到类别为0和4的轨迹分别约有4和273条,那么我们需要生成269条label为0的轨迹并加入这1000条轨迹集中,使得label为0和4对应的轨迹数量相同.实际场景下,训练集中各类别的数量是接近这个分布的,没有必要去计算每个类别的真实数量,结合汉明重量分布,直接使用总的轨迹数量来估算每个类别对应的轨迹数量,就像我们上面的举例.因此,除了label=4对应的轨迹不需要生成,其它类别的轨迹都需要生成.此外,在扩充原始训练集时,并不是加入的生成轨迹越多越好.因为生成轨迹的分布与原始轨迹的分布仍然存在差异,当我们加入的生成轨迹越来越多,会导致模型所学习的泄露分布偏向生成轨迹,反而使得模型的攻击效果降低.3.5攻击流程与结果评估首先,分别训练原始训练集和扩充后的训练集并构建模型,接着对测试集进行100次攻击,然后取平均作为最终的攻击结果,并对比平衡前与平衡后的模型攻击效果.每次测试集中的轨迹都是从攻击集中随机选取的一个子集,对于AES_RD数据集,因为整个攻击集中的轨迹都作为测试集,因此我们通过打乱轨迹的顺序来保证平均结果的可靠性.4实验4.1实验数据首先要说明的一点是,我们并未攻击无防护的AES软件实现,主要的原因是对无防护的AES进行建模攻击确实要容易很多.所以,在不平衡的数据下训练出来的模型也可以使用很少的轨迹完成一次成功攻击,那么即使用了一些平衡数据集的技巧,攻击结果并不会有太明显的提升.这一点我们从文献[12]中对DPAv4的攻击结果也可以看出来.4.1.1AES_HD首先,我们对一个无防护的AES硬件实现进行攻击测试,因为AES的硬件实现,有很多并行操作,所以信噪比很低,攻击难度很大.该AES算法是由VHDL编写并在带有Xilinx Virtex-5FPGA的Sasebo GII上实现.能量轨迹通过放置在电源线上解耦电容的高灵敏度近场电磁探针来完成采集,并由Teledyne LeCroy Waverunner610zi示波器进行采样.AES_HD共包含了100000条轨迹,每条轨迹有1250个样汪平等:一种针对侧信道建模攻击中数据不平衡的新方法555本点,并且适合攻击的地方是最后一轮中将密文写入寄存器时:Y (c 8,c 12,k ∗)=HD (Sbox −1[c 12⊕k ∗]previous register value)⊕c 8ciphertext value,(6)这里c 12和c 8都是子密文.求c 12与密钥k ∗异或值的S 盒逆,实际上是求c 12所在寄存器上一次写入的值,因此有一个寄存器跳变的关系,所以适合的泄露模型为HD.注2AES_HD 轨迹集可以在https:///AESHD/AES_HD_Dataset 上获取.4.1.2ASCAD接着,我们针对有一阶掩码防护的AES 实现进行攻击,测试带有高阶防护的轨迹.ASCAD 是由Prouff 等人提供的一个公开数据集[9],旨在为未来基于深度学习的测信道相关工作提供一个评估基准.该数据库中的轨迹来自于带有一节掩码防护的AES 软件实现,包含了对齐与非对齐两种类型的轨迹.这里我们使用了对齐的轨迹集ASCAD.h5,ASCAD.h5由两部分组成,建模轨迹集50000条和攻击轨迹集10000条.每条轨迹包含了700个样本点,并且对应于第一轮的第三个S 盒执行过程.结合HW 泄露模型,我们的建模对象是:Y (p [3],k [3])=HW (Sbox (p [3]⊕k [3])).(7)注3ASCAD 轨迹集可以在https:///ANSSI-FR/ASCAD 上获取.4.1.3AES_RD最后,我们测试了带有非对齐防护措施的AES 软件实现.该加密算法是在一个有8位Atmel AVR微控制器的智能卡上实现,同时加入了随机延迟的防护措施[24],此防护的目的是使攻击者所采集到的轨迹是非对齐的,增加攻击的难度.AES_RD 数据集共有50000条轨迹,每条轨迹有3500个样本点,攻击的对象是第一轮的第一个S 盒:Y (p i ,k i )=HW (Sbox (p i ⊕k i )).(8)注4AES_RD 轨迹集可以在https:///ikizhvatov/randomdelays-traces 上获取.4.2实验结果4.2.1ASCAD 攻击结果ASCAD.h5共有50000条训练集,我们按照汉明重量分布对label 从0到8,不包括label =4,分别生成了对应数量为(13450,12100,8200,2700,2700,8200,12100,13450)的轨迹,然后加入到原始训练集中,攻击结果如图3所示.图3ASCAD.h5的攻击结果Figure 3Attack results of ASCAD.h5从图3的攻击结果可以看到,对原始训练集进行平衡,有效地减少了成功攻击所需的轨迹条数,其中由3.2节方法(2)构成的训练集所生成的轨迹加入到原始训练集后,训练出的模型具有最好的攻击效果,556Journal of Cryptologic Research 密码学报Vol.8,No.4,Aug.2021仅需约700条轨迹就能够恢复出密钥,而原始训练集构建的模型需要2000条以上的轨迹才有可能成功恢复密钥,在文献[9]中,其关于使用HW 作为标签的攻击结果中可以看出在使用1000条轨迹后GE 收敛到0仍然需要不少的轨迹.其它三种方法需要约1100条轨迹可以进行一次成功的攻击.4.2.2AES_HD 攻击结果对于AES_HD 数据集,我们同样是使用了50000条轨迹作为训练集,各类别的轨迹所生成的数量与ASCAD 实验中是一致的,具体的攻击结果如图4所示.图4AES_HD 的攻击结果Figure 4Attack results of AES_HD从图4可以看到,原始不平衡训练集得到的模型在25000条轨迹内是无法恢复出密钥的,而我们的方法,最少只需用约11000条轨迹就能够进行一次成功的攻击,对应的CGAN 训练集构成方法为同比例类别的轨迹两两组合来生成轨迹.在文献[12]中同样是基于MLP 模型,对AES_HD 进行攻击,使用了SMOTE 技巧,GE 是在约15000条轨迹后收敛到零.相比之下,我们的方法对不平衡问题具有更好效果,或者说CGAN 生成的轨迹能够为模型带来更多有用信息.4.2.3AES_RD 攻击结果AES_RD 数据集共有50000条轨迹,我们使用了25000条轨迹作为训练集,按照汉明重量分布,对各类别添加的轨迹数量为(6725,6065,4100,1350,1350,4100,6050,6725),攻击结果如图5所示.图5AES_RD 的攻击结果Figure 5Attack results of AES_RD在文献[12]中,对应的攻击结果在25000条攻击轨迹下,即使用SMOTE 技巧来平衡原始训练集,GE 仍然无法收敛到零.而我们的方法能够带来显著的提升,四种方法在25000条轨迹之内都能够成功恢汪平等:一种针对侧信道建模攻击中数据不平衡的新方法557复密钥,并且只需使用将近一半的攻击轨迹.其中最好的结果是只需约7500条轨迹,对应的方法是直接基于原始训练集来生成轨迹.4.3实验结果分析(1)尽管可以看到我们的方法对于攻击结果有明显的改善,但只从攻击结果上无法看出是如何改善不平衡问题的.因此,这里我们以ASCAD 的实验为例,分别绘制出使用原始不平衡训练集所构建模型以及优化后模型的类别预测比例,两次攻击都使用相同的3000条轨迹.图6(a)中正确预测的类别label =4所占比例最高,其它正确预测的类别个数很少,甚至label =0,1,7,8对应的轨迹没有一条被正确分类.而通过CGAN 所生成的轨迹对原始训练集平衡后,模型的类别预测比例有了明显的改善,其中label =2,3,5,6的对应轨迹被正确预测的数量大幅增加,并且原始训练集中占比很少的类别也出现了被正确预测的轨迹,比如label =1,7.从整个混淆矩阵来看,012345678Predicted label 0010120000001168940000024726316000001655184000000263645825000004556077500000142595030000036916400011741Confusion matrix(a)原始模型类别预测比例012345678Predicted label00117310011132752131112029751585464024441073311042381216114238716327122204590352149321701127501557113710067501964034511Confusion matrix(b)平衡后模型类别预测比例图6ASCAD 攻击结果的混淆矩阵Figure 6Confusion matrices for attack results of ASCAD(2)关于四种构成CGAN 训练集的方法,从上面的三个实验中,可以看到没有哪一种方法是绝对的好,要实际测试过后才能确定.比如上面的关于ASCAD 的实验,去除主类label =4对应的轨迹来构成CGAN 的训练集是最好的方法,我们从其原始训练集对应模型的类别预测比例可以看出,label =4对模型的影响很大,因此直接拿掉label =4的轨迹来做轨迹生成,效果更好.而在AES_RD 的实验中,我们也看到直接使用不平衡的原始训练来生成轨迹,效果更好,这也说明在某些情况下,CGAN 的训练集需要由所有类别的轨迹来构成.因此,在使用CGAN 生成轨迹解决不平衡问题时,要尽可能多尝试几种构建其训练集的方法.(3)对比Picek 等[12]的相关工作,我们的方法显然更加有效.直观上来看,两种方法都是利用原始训练集中的轨迹来合成新的轨迹,从信息论的角度来说,信息并未增多,但实际上合成的轨迹能够增加信息的完整性.简单地说就是,某一少数类别的轨迹都来自同一分布,由于相应的轨迹数量过少,无法表现出这一分布下的全部信息.相比于SMOTE 中的轨迹合成方法,CGAN 是通过学习输入轨迹所包含的分布,尽可能使所生成的轨迹靠近原有分布,这样生成的轨迹显然能够体现出原有分布中的更多信息,更好地对少数类别样本缺失的信息进行弥补.5结论本文研究了在基于机器学习和深度学习的侧信道建模攻击中,使用HW 和HD 作为标签带来的数据不平衡问题.我们首次提出使用条件生成对抗网络来生成轨迹,从而构建平衡的数据集.实验结果表明,由。