针对侧信道建模攻击模型的平衡数据集构造方法

文档序号:7939 发布日期:2021-09-17 浏览:46次 英文

针对侧信道建模攻击模型的平衡数据集构造方法

技术领域

本发明涉及密码安全

技术领域

,尤其涉及一种针对侧信道建模攻击模型的平衡数据集构造方法。

背景技术

侧信道攻击(Side Channel Attack,SCA)是一种利用运行加密算法的物理设备所泄露的侧信息来恢复秘密信息的攻击。常用的侧信息包括时间、能量消耗、电磁辐射等。侧信道攻击主要分为建模攻击和非建模攻击,其中建模攻击近年来得到了迅速的发展,尤其是与深度学习(Deep Learning,DL)的相结合。建模攻击主要包括建模阶段和攻击阶段,在建模阶段,假设攻击者有一个与目标设备相同且完全控制的建模设备,然后通过建模算法对建模设备的泄露特征进行刻画并构建模板,攻击阶段直接利用模板来恢复目标设备的秘密信息。

模板攻击(Template Attack,TA)可以看作是最早的建模攻击,其原理是利用多元高斯正态分布对泄露噪声进行建模。随着建模攻击的发展,一系列基于机器学习(MachineLearning,ML)的建模攻击被提出,其中两个比较常用的模型就是支持向量机(SupportVector Machine,SVM)和随机森林(Random Forest,RF),在攻击无防护和有防护的密码实现上都取得了不错的成果。近年来,随着DL的发展,更多基于DL的建模攻击不断被提出,其中Maghrebi等人最早尝试将DL应用在建模攻击之上,相比于传统建模攻击,无需进行兴趣点选取、对齐等预处理操作,并且某些网络结构具有天然的抵抗侧信道防护的性质,比如卷积神经网络(Convolutional Neural Network,CNN)的平移不变性可以减轻轨迹抖动带来的影响。

在建模攻击中,通常要选择泄露模型来计算每条轨迹对应中间值的标签,比如汉明重量(Hamming Weight,HW)、汉明距离(Hamming Distance,HD)以及最低最高有效位等。假设针对的是一个8位S盒,其输出结果的范围是0到255,如果直接使用该S盒输出作为标签,那么数据就是平衡的,因为在采集轨迹时通常输入的是随机明文,因此S盒输出可以看作是均匀分布的。而如果使用HW/HD这样的泄露模型来计算标签,则会导致数据不平衡问题,即训练集中不同类别的数据占比是不同的,这样会导致模型在学习的过程中,会偏向主类(占比较多的数据),使得模型预测结果不准确,降低攻击效果。以HW为例,当HW为0或8时,那么只有当S盒的输出为全0或全1时才满足,而这样的数据只占1/256;同样的,当HW等于4时,数据占有最高的比例70/256。在这样的不平衡数据集上进行建模时,就会导致模型的类别预测比例也不平衡,降低模型的攻击效果。需要说明的一点是,尽管使用HW/HD这样的泄露模型存在数据不平衡的问题,但其缩减标签空间的高效性是不可忽视的,假设中间值是16位,如果直接使用中间值作为标签,那么就有65536种类别,而使用HW/HD计算的标签只有17种,当数据的类别过多时,不仅会大大增加计算代价,也难以训练出有效的模型。

解决上述不平衡问题的方法有多种,一种比较常见的方法就是利用数据扩张来构建平衡的数据集。Cagli等人通过对原始轨迹做随机平移来合成新的轨迹,然后结合数据扩张技巧减少了模型的过拟合。StjepanPicek等人使用多种数据采样的方法,尤其是合成少数类过采样技术(Synthetic Minority Oversampling Technique,SMOTE)取得了不错的效果。当然也有其它类型的方法,比如StjepanPicek等人利用分层建模的方式来缓解这种不平衡问题。但是这些数据合成方式较为简单,只能弥补少量泄露分布缺失的信息。

发明内容

本发明的目的是提供一种针对侧信道建模攻击模型的平衡数据集构造方法,使用条件生成对抗网络(Conditional Generative Adversarial Network,CGAN)来生成轨迹数据,扩充原始数据集,从而平衡各个类别的占比,使得模型能够预测到更多的少数类别。

本发明的目的是通过以下技术方案实现的:

一种针对侧信道建模攻击模型的平衡数据集构造方法,包括:

获取原始不平衡的数据集;

将原始不平衡的数据集作为训练集,或者根据原始不平衡的数据集各标签类别下轨迹数据的数目来构建训练集,利用训练集训练条件生成对抗网络;

以原始不平衡的数据集中数量占比最高的标签类别对应的轨迹数据的数量为标准,利用训练后的条件生成对抗网络,生成其他标签类别的轨迹数据,构建平衡的数据集。

由上述本发明提供的技术方案可以看出,相比于传统的轨迹合成方法,利用条件生成对抗网络学习输入轨迹数据所包含的分布,尽可能使所生成的轨迹靠近原有分布,这样生成的轨迹数据显然能够体现出原有数据分布中的更多信息,更好的对少数类样本缺失的信息进行弥补。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的一种针对侧信道建模攻击模型的平衡数据集构造方法的流程图;

图2为本发明实施例提供的一种条件生成对抗网络的示意图;

图3为本发明实施例提供的一种生成器和判别器的结构示意图;

图4为本发明实施例提供的生成的轨迹数据与原始轨迹数据的轨迹形状评估示意图;

图5为本发明实施例提供的生成的轨迹数据与原始轨迹数据的相关能量分析示意图;

图6为本发明实施例提供的生成的轨迹数据与原始轨迹数据的梯度加权的类别激活映射示意图。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。

首先对本文中可能使用的术语进行如下说明:

术语“包括”、“包含”、“含有”、“具有”或其它类似语义的描述,应被解释为非排它性的包括。例如:包括某技术特征要素(如原料、组分、成分、载体、剂型、材料、尺寸、零件、部件、机构、装置、步骤、工序、方法、反应条件、加工条件、参数、算法、信号、数据、产品或制品等),应被解释为不仅包括明确列出的某技术特征要素,还可以包括未明确列出的本领域公知的其它技术特征要素。

下面对本发明所提供的一种针对侧信道建模攻击模型的平衡数据集构造方法进行详细描述。本发明实施例中未作详细描述的内容属于本领域专业技术人员公知的现有技术。本发明实施例中未注明具体条件者,按照本领域常规条件或制造商建议的条件进行。本发明实施例中所用试剂或仪器未注明生产厂商者,均为可以通过市售购买获得的常规产品。

如图1所示,为一种针对侧信道建模攻击模型的平衡数据集构造方法的流程图,其主要包括如下步骤:

步骤1、获取原始不平衡的数据集。

本发明实施例中,数据集既可从现有的公开轨迹集获取,也可自己在加密设备上采集轨迹,制作数据集。数据集包含多个轨迹数据(即侧信息),每一轨迹数据具有相应的标签,标签则是根据已知的密钥和明密文计算得来。

步骤2、选择一种方式构建训练集并对CGAN进行训练。

由于在使用HW/HD能量模型来计算轨迹的标签时,会导致数据集中各个标签占比不同,即数据不平衡;因此,所以从数据层面,提出了多种解决方案,第一种是直接使用原始不平衡的数据集,后面三种是根据原始不平衡的数据集各标签类别下轨迹数据的数目来构建训练集,用户可根据实际情况选择以下四种方式中的任一种来构建训练集。

1)直接使用原始不平衡的数据集作为CGAN的训练集。

2)移除原始不平衡的数据集中数量占比最高的标签类别对应的轨迹数据,然后将剩余的轨迹数据作为CGAN的训练集。

示例性的:不平衡数据集中label=4(主类)所占比例最高,而且通常不平衡数据下所训练的模型对测试集的预测也更偏向label=4,甚至大多数时候模型的对测试数据的整体预测精度也在27%左右,而这一精度实际上也是label=4的轨迹所占的比例,因此label=4是不平衡问题中最主要的影响因素,此时将label=4的轨迹数据单独拿出,然后将剩余的轨迹作为条件生成对抗网络的训练集。

3)将占比相同的类别标签对应的轨迹数据作为一个子训练集,每一个子训练集单独训练一个CGAN模型,然后生成相应类别的轨迹。

示例性的:不平衡数据集中label=0,8对应的轨迹组成一个条件生成对抗网络的训练集,生成的轨迹数据对应的label也等于0和8;因此,需要分别将label=0,8、label=1,7、label=2,6、label=3,5对应的轨迹分别组成四组子训练集,利用四组子训练集分别训练一个CGAN模型,在之后的扩充阶段,利用相应CGAN模型生成相应标签类别的轨迹数据。

4)将所有标签类别的轨迹数据数量减少到占比最少的标签类别对应的轨迹数量,然后构成CGAN的训练集。

示例性的:label=0的轨迹数据在原始数据集中有128条,因此,从其他类别中也分别拿出128条轨迹数据,构成一个平衡的训练集。

步骤3、以原始不平衡的数据集中数量占比最高的标签类别对应的轨迹数据的数量为标准,利用训练后的条件生成对抗网络,生成其他标签类别的轨迹数据,构建平衡的数据集。

扩充方法如下:

示例性的:以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对应的轨迹数据不需要生成,其它类别的轨迹都需要生成。

本发明实施例上述方案中,利用条件生成对抗网络生成轨迹,扩张原始训练集,平衡各类别分布,更好的对少数类样本缺失的信息进行弥补。为了更加清晰地展现出本发明所提供的技术方案及所产生的技术效果,下面以具体实施例对本发明实施例所提供的一种针对侧信道建模攻击模型的平衡数据集构造方法进行详细描述。

下面的介绍分为三个部分:侧信道建模攻击、条件生成对抗网络的原理与结构、生成轨迹的质量评估,各部分具体如下:

一、侧信道建模攻击。

本部分主要是针对目前侧信道建模攻击的相关方案进行介绍,以体现本发明所构造的平衡数据集的主要用途。

侧信道建模攻击主要包含两个阶段,建模阶段和攻击阶段。在建模阶段,攻击者拥有一个可以完全控制的建模设备,假设采集的建模轨迹集为 其中为采集的第i条轨迹,pi和ki为对应的已知子明密文和子密钥,中间值vi由函数g(pi,ki)得到,g为密码学原语。然后,对Tprofiling建模,实际上是一个后验概率模型,可以给出输入轨迹属于所有类别的概率大小:

where vi=g(pi,ki)

在攻击阶段,攻击者在一个带有未知固定密钥k*的目标设备上采集轨迹得到攻击集然后我们根据建立的模型M来计算每个猜测密钥对应的似然得分:

使得似然得分最大的猜测密钥则认为是正确的密钥:

通常所使用的侧信道评估指标猜测熵(Guess Entropy,GE)就是指猜测密钥对应似然得分所构成的降序向量中,正确密钥k*所处的位置。

本领域技术人员可以理解,前文提到的轨迹数据即为此部分的或者如图4所示,是一个一维的数组。pi,ki其中的pi是每条轨迹对应子明文,ki是每条轨迹对应的子密钥,这两个信息是数据集中已经包含的。类似于图像分类,对轨迹数据做分类也需要标签。比如手写数字集MINIST从数字1到9有9个标签,对于轨迹数据,由g(pi,ki)得到中间值vi,假如使用HW能量模型,那么分类标签即为HW(vi)。所以标签主要起到分类作用,搭建模型的过程也是有监督的学习。

二、条件生成对抗网络的原理与结构。

1、条件生成对抗网络的原理。

生成对抗网络(Generative Adversarial Network,GAN)是由Ian J.Goodfellow于2014年提出,主要作为一个生成模型来学习数据的分布。

为了学习真实的轨迹数据x(原始轨迹数据)的分布Pdata,需要通过一个非线性函数G(z;θh)将先验噪声z映射到Pdata下,先验噪声z的分布为Pnoise(z)。非线性函数G即为生成器,将其生成轨迹数据的分布记为pg,训练的目标就是尽可能的让pg接近Pdata;其中,已知Pnoise(z)的分布特性,一般使用服从高斯分布的效果较好;θg表示生成器的参数。判别器同样是一个非线性函数D(x′;θd),用于判别输入轨迹数据来自分布Pdata与pg的概率;其中,x′表示判别器的输入,包括:原始轨迹数据x与生成器生成的轨迹数据,θd表示判别器的参数。交替的训练判别器和生成器,并调整判别器的参数θd和生成器的参数θg,使得logD(x)最大,log(1-D(G(z))最小;这一训练过程可以看作生成器G和判别器D之间的最大最小游戏,使用一个目标函数表示为:

由于在基于ML、DL进行侧信道建模攻击时,训练集中每条轨迹都有对应的label(标签),但是,GAN本身是无监督学习,生成的轨迹是没有标签的。因此,本发明实施例中,采用如图2所示的条件生成对抗网络来生成轨迹数据。条件生成对抗网络与生成对抗网络的不同之处就在于,在训练G和D时,加入额外的信息y或者说是辅助信息,可以是数据的label,也可是某一分布下的数据;此时的目标函数变为:

其中,G、D各自指代生成器、判别器,V(D,G)表示训练CGAN的损失函数,表示对服从Pdata(x)的原始轨迹数据x计算期望,表示对服从先验噪声分布Pnoise(z)的随机变量z计算期望;D(x|y)表示判别器输出原始轨迹数据x的标签为y的概率,G(z|y)表示生成器生成标签为的y轨迹数据,D(G(z|y))表示判别器判断G(z|y)为生成轨迹数据或者为原始轨迹数据的概率。

按照前文介绍的任一种方式选出的训练集,并通过上述原理训练条件生成对抗网络后,利用其中的生成器将先验噪声映射为带有指定标签的轨迹数据,因此,在前述步骤3中可以根据需要扩充相应标签类别的轨迹数据。

2、条件生成对抗网络的结构。

本发明实施例中,生成器和判别器的主体构成是全连接网络,当然也可以使用其它类型的网络结构,比如基于卷积的网络结构。

如图3所示给出了生成器和判别器的结构示例;左侧为生成器的结构示例,右侧为判别器的结构示例。

生成器的结构包括:第一输入层(input_1:Input Layer)、第二输入层(input_2:Input Layer)、第一嵌入层(embedding_1:Embedding)、第一全连接层(flatten_1:Flatten)、第一multiply层(multiply_1:Multiply)以及第一Sequential层(sequential_1:Sequential);其中,第一输入层的输入为轨迹数据的标签,第二输入层的输入为先验噪声z;第一嵌入层对标签进行编码,第一全连接层对编码得到的标签向量进行处理,使其维度与先验噪声z相同;第一multiply层将来自第一全连接层标签向量与来自第二输入层的先验噪声z结合起来(也可以使用其它的实现方式,比如通过numpy中的concatenate函数来直接拼接两个向量),再输入至第一Sequential层,由第一Sequential层输出重构的轨迹数据。本发明实施例中,第一Sequential层代表的是生成器的主体部分,可以看到输入是100维,输出即为轨迹数据的维度700。示例性的,Sequential主要由(Dense,LeakyReLU,BatchNormalization)*N构成。

判别器的结构主要包括:第三输入层(input_3:Input Layer)、第四输入层(input_4:Input Layer)、第二嵌入层(embedding_2:Embedding)、第二全连接层(flatten_2:Flatten)、第二multiply层(multiply_2:Multiply)以及第二Sequential层(sequential_2:Sequential);其中,第三输入层的输入为轨迹数据的标签,第四输入层的输入为轨迹数据;第二嵌入层对标签进行编码,第二全连接层对编码得到的标签向量进行处理,使其维度与轨迹数据相同;第二multiply层将来自第二全连接层标签向量与来自第四输入层的轨迹结合起来,再输入至第二Sequential层,由第二Sequential层输出轨迹数据属于相应标签的概率。可以看到,判别器与生成器的结构类似,主要区别在于:1)其中一个输入是轨迹数据,后续是将标签向量变成与轨迹数据维度相同的向量;2)输出是一个标量,代表对输入轨迹真假的判别概率(即判断轨迹是原始轨迹还是生成轨迹的概率)。

本领域技术人员可以理解,multiply、Sequential、Dense层等都是Keras深度学习开源库中的相关函数。

三、生成轨迹的质量评估。

本发明实施例中,训练阶段,还需要对条件生成对抗网络生成的轨迹数据进行质量评估,这样就可以根据质量评估结果并结合一些调参方法,比如网格搜索法等来选择条件生成对抗网络的超参数。

本发明实施例中,主要使用以下几种质量评估方式中的任一种或者多种方式的组合:

1、轨迹形状评估:检查生成的轨迹数据与训练集中相应轨迹数据的形状的相似度是否满足设定要求(可根据经验进行设定)。

观察生成的轨迹数据的形状是否与原始轨迹数据是否相似,这是最直接的质量评估方式。如果生成的轨迹数据的形状与原始轨迹相差很大,那么生成的轨迹数据一般来说不是有效的,因为生成对抗网络的本质就是学习原始数据的分布,即生成的轨迹数据所遵从的分布与原始轨迹数据的分布是相似的。如图4所示,生成轨迹的形状基本与原始轨迹相似,不同的地方是在轨迹尖峰处有微弱的变化,而尖峰处的幅值抖动正是在建模时所需要的有用信息。

2、相关能量分析(Correlation Power Analysis):通过对生成的轨迹数据进行相关能量分析,从而验证生成的轨迹数据是否学习到与训练集中相应轨迹数据的一致的泄露分布。

本发明实施例中,结合轨迹数据对应的标签,可以对轨迹数据进行相关能量分析,从而验证生成的轨迹数据否学习到了一致的泄露。假设有N条轨迹数据,每条轨迹数据包含的样本点数为K,N条轨迹的能量幅值构成一个N×K的矩阵,第k(1≤k≤K)列的幅值构成向量N条轨迹对应的标签构成然后计算之间的相关性rk

如图5所示,生成的轨迹数据与原始轨迹数据的泄露尖峰位置和幅度是一致的;其中,图5使用的是公开数据集DPAV4.1,左侧为原始轨迹数据的CAP,右侧为生成的轨迹数据的CAP。

3、梯度加权的类别激活映射(Gradient-weighted Class Activation Mapping,Grad-CAM):用于可视化条件生成对抗网络训练过程轨迹数据中泄漏所在的区域。

Grad-CAM是深度学习中用来可视化模型在训练的过程中所关注的区域,解释模型的预测行为。同样的,在侧信道建模攻击中,模型在训练的过程中,轨迹中泄露所在的位置是模型所关注的。所以,可以依据这种可视化方法,来对生成的轨迹数据进行评估,而且这种方法既可用于一阶防护密码算法对应的生成轨迹,也适用于高阶防护。图6给出了利用Grad-CAM对带有一阶掩码防护的生成轨迹进行评估的示例;图6使用的是公开数据集ASCAD;其中,左侧为原始轨迹数据的Grad-CAM,右侧为生成的轨迹数据的Grad-CAM。

4、攻击结果:将生成的轨迹数据加入至原始不平衡的数据集中,判断攻击结果是否满足设定要求。

与评估生成图像不同,即使生成轨迹看起来与原始轨迹相似,也无法判断是否能为攻击模型带来贡献。因此,最终需要将生成的轨迹加入到原始不平衡的训练集中,观察攻击结果是否有改善。

本发明实施例中,可以结合上述一种或多种质量评估的结果,采用手动调参的方式调整条件生成对抗网络的超参数;例如,使用前文举例的网格搜索法,该方法是深度学习中调参常用的方法,即穷举法,具体的实施方式可参照常规技术实现。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种基于注意力机制的恶意代码分类方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类