基于生成对抗网络的侧信道防护方法

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

基于生成对抗网络的侧信道防护方法

技术领域

本发明涉及密码安全

技术领域

,尤其涉及一种基于生成对抗网络的侧信道防护方法。

背景技术

如今,加密设备已嵌入到日常生活中的各处,侧信道已成为对许多日常生活对象的主要威胁。目前,有许多针对经典侧信道攻击而设计的软件和硬件防护对策。这些对策可以分两类:掩码(mask)和隐藏(hiding)。

掩码的主要思想是将密码算法中与密钥相关的中间值与随机值相结合,即将敏感中间值分成几部分以打破侧信道泄露与敏感变量之间的依赖关系,从而使攻击者无法分析侧信道泄露的观测结果。最常见的掩码就是布尔掩码,它将敏感中间值与随机值进行异或。为了从加密算法的掩码实现中恢复秘密信息,攻击者通常需要执行更高阶的侧信道分析。先前的一些论文已证明,攻击者可以通过简单的过滤将高阶泄漏转换为一阶泄漏,从而使攻击者能够利用一阶攻击技术来破坏高阶掩码的实现。

隐藏包括在时间和空间上移动信息泄漏的点,并减少设备的侧信道泄漏。侧信道攻击依赖于攻击者对目标设备的精确的时间和空间上的控制,而攻击的有效性则紧密取决于侧信道轨迹中的时空变化量。破坏时间和空间上的泄漏点将大大降低攻击的有效性(攻击者需要更多的侧信道轨迹和计算开销来恢复密钥)。基于隐藏的对策多种多样,Coron等人通过在加密程序中添加随机长度的无效指令来保护密码设备免受侧信道攻击。还有的论文使用动态电压和频率缩放(DVFS)来防护侧信道攻击,DVFS通过随机改变系统电压和频率来降低侧信道轨迹和敏感信息的相关性。有的工作通过随机动态更新密码算法实现的硬件电路来掩盖密码实现的侧信道泄露。还有些工作提出的方案通过在运行时使用寄存器改组,指令改组,语义变体和插入噪声指令等方法,来定期地生成不同的程序代码,降低侧信道轨迹和敏感信息的相关性。还有一种对策是波动动态差分逻辑(Wave DynamicDifferential Logic),它将加密模块中的所有逻辑门与双轨预充电逻辑门交换。这确保了对于任意一种操作,每个逻辑门为每个操作消耗相等的功率。这一对策的一个显著缺点是会在时间,电路面积和功耗方面造成很大的损耗。

随着深度学习领域的迅速发展和计算机处理能力的提高,侧信道领域的研究人员开始将注意力转向深度学习技术在建模侧信道攻击中的应用。在深度学习技术的帮助下,攻击者可以仅依赖极少的侧信道背景知识就能成功执行侧信道攻击。

Maghrebi等人证明基于深度学习的侧信道攻击可以非常有效地打破受掩码保护的AES实现。后来,Cagli等人提出了一种基于CNN的端到端分析方法,该方法在存在随机时延扰动(Random Delay In-terrupt)的AES实现上非常有效。随后,Masure等人的工作说明了针对传统侧信道攻击设计的经典防护对策(例如布尔掩码或执行流改组)在抵御基于深度学习的攻击方面表现不佳。

以上深度学习侧信道领域的工作,证明了传统的侧信道防护方案在面对深度学习侧信道攻击时表现不佳,因为传统的侧信道防护方案的防护措施都是针对传统的侧信道攻击技术而设计的。因此,目前需要一种针对深度学习技术的侧信道防护方案,来保护密码设备免受深度学习侧信道的威胁。

发明内容

本发明的目的是提供一种基于生成对抗网络的侧信道防护方法,能够保护密码设备免受深度学习侧信道的威胁。

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

一种基于生成对抗网络的侧信道防护方法,包括:

利用原始的侧信道轨迹数据集训练得到生成对抗网络,并利用得到的生成对抗网络生成与每一原始侧信道轨迹数据差异最小的侧信道轨迹数据,作为生成轨迹数据;

根据生成轨迹数据的分布,在指定采样点位置上插入噪声,将插入噪声后的生成轨迹数据作为添加防护的侧信道轨迹数据输入至深度学习分类器。

由上述本发明提供的技术方案可以看出,生成轨迹的分布与模式同真实轨迹高度相似,使得本发明能够抵抗现有的一些侧信道预处理技术,能够保护密码设备免受基于深度学习的侧信道攻击;而且,根据生成对抗网络生成的轨迹数据可以定位片上噪声的插入位置,避免了盲目地插入噪声。

附图说明

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

图1为本发明实施例提供的一种基于生成对抗网络的侧信道防护方法的流程图;

图2为本发明实施例提供的生成对抗网络的训练示意图;

图3为本发明实施例提供的生成对抗网络生成侧信道轨迹数据的流程图;

图4为本发明实施例提供的迭代搜索策略的伪代码示意图;

图5为本发明实施例提供的SRL电路结构示意图;

图6为本发明实施例提供的插入噪声电路的结构示意图;

图7为本发明实施例提供的无防护AES和添加防护的AES的PGE结果图;

图8为本发明实施例提供的受预处理技术攻击的受保护AES的PGE结果图。

具体实施方式

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

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

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

术语“由……组成”表示排除任何未明确列出的技术特征要素。若将该术语用于权利要求中,则该术语将使权利要求成为封闭式,使其不包含除明确列出的技术特征要素以外的技术特征要素,但与其相关的常规杂质除外。如果该术语只是出现在权利要求的某子句中,那么其仅限定在该子句中明确列出的要素,其他子句中所记载的要素并不被排除在整体权利要求之外。

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

如图1所示,该方法主要包括:利用原始的侧信道轨迹数据集训练得到生成对抗网络,并利用得到的生成对抗网络生成与每一原始侧信道轨迹数据差异最小的侧信道轨迹数据,作为生成轨迹数据;根据生成轨迹数据的分布,在指定采样点位置上插入噪声,将插入噪声后的生成轨迹数据作为添加防护的侧信道轨迹数据输入至深度学习分类器。

本发明实施例上述方案中,可以利用生成对抗网络产生欺骗深度学习分类器的侧信道轨迹数据,同时,选择在可重配置设备上插入的片上噪声的触发信号,使得片上噪声与密码设备的共同侧信道泄露的分布与生成的侧信道轨迹数据相近。进而,使得密码设备产生的泄露被深度学习模型错误分类,保护敏感信息不被模型恢复。

为了更加清晰地展现出本发明所提供的技术方案及所产生的技术效果,下面以具体实施例对本发明实施例所提供的一种基于生成对抗网络的侧信道防护方法进行详细描述。

一、训练生成对抗网络,并产生能够欺骗深度学习分类器的生成轨迹。

生成对抗网络(GAN)是一种使用深度学习技术进行生成建模的方法,它可以自动发现和学习输入数据中的分布或模式。GAN的核心思想是以最小化极大博弈的形式训练两个对抗网络,一个生成网络和一个判别网络。生成网络的目标是生成可欺骗判别网络的逼真数据,而判别网络则尝试将生成数据从原始数据中识别出来。GAN能够被应用于许多生成任务,本发明使用GAN生成可以欺骗深度学习的生成轨迹,这也被称为基于GAN的对抗攻击技术。

给定一个黑盒的深度学习分类器f(即基于深度学习的侧信道攻击者使用的深度学习分类器)和一组未被标记的原始轨迹数据集T,本发明的目标是训练得到一个GAN,使得GAN可以针对给定的原始轨迹样本t产生生成轨迹数据t*,而且使得t*和T的分布尽可能接近。在使用训练完成之后,我们可以使用GAN产生生成轨迹时,此时GAN的输入轨迹t可能不在T中,但来自相同的基础分布Pt。此外,本发明没有直接在输入轨迹的空间上搜索生成轨迹,而是将输入空间映射到隐特征空间,并在其中搜索生成轨迹,将隐特征空间记为z。换言之,本发明并没有直接找到生成轨迹t*,而是在定义了分布Pt的隐特征向量空间中找到了相应的隐特征z*,然后利用GAN中的生成器将隐特征z*映射到样本空间,得到轨迹数据t*。实验证明,通过在潜在的隐特征空间z中搜索轨迹并将其映射到样本空间,可以使得产生的生成轨迹更加接近于原始轨迹。

为了解决上述问题,需要得到一个强大的生成模型来学习T中的轨迹t的分布Pt,并且从隐特征空间映射到分布Pt。GAN是一类能够完成此类任务的生成模型,它通过两个竞争网络模型之间的最小化极大博弈进行训练。在GAN的训练过程中,使用大量未标记的原始轨迹数据集T作为训练数据,生成器学习如何将分布为Pz的噪声映射到尽可能接近训练数据的生成数据,其中

为了在隐特征空间z中产生隐特征z*,需要在原始轨迹数据集T上训练生成器和判别器除此之外,还需要训练一个与生成器相匹配的逆变器来将轨迹实例映射到相应的隐特征空间表示形式。

如图2所示,本发明实施例中提供了一种GAN的结构,其主要包括:生成器与生成器相匹配的逆变器以及判别器其中,逆变器用于将原始侧信道轨迹数据t以及生成器重构的侧信道轨迹数据t*映射至隐特征空间得到隐特征,生成器用于将原始侧信道轨迹数据t的隐特征映射至样本空间重构出侧信道轨迹数据t*,判别器用于判别输入的轨迹数据为原始侧信道轨迹数据t或是侧信道轨迹数据t*,设置原始侧信道轨迹数据t的分布为pt(t),隐特征z*的分布为pz(z*)。

为了获得最接近于原始轨迹的生成轨迹,训练目标是将侧信道轨迹数据的重构误差、以及隐特征z*之间的差异最小化,表示为:

其中,表示对服从pt(t)分布的原始侧信道轨迹数据t计算期望,表示对服从pz(z*)分布的隐特征z*计算期望;λ为一个实数,用来控制后一项的权重,示例性的,此处λ等于1;表示原始侧信道轨迹数据t通过逆变器映射到隐特征空间z后,再通过生成器映射到样本空间重构出t*表示隐特征z*通过生成器映射到样本空间,然后再通过逆变器映射回隐特征空间,γ表示逆变器中的参数;表示隐特征z*之间的差异,示例性的,此处的可以使用L2距离。

训练阶段,先交替训练生成器与判别器训练完毕后,再固定生成器与判别器的参数,单独训练逆变器全部训练完毕之后,会将隐特征空间与样本空间建立起对应关系。

本发明实施例中,交替训练生成器与判别器的方式可参照常规技术实现。

通过上述方案训练好的GAN网络,可以产生与给定侧信道轨迹分布相似的生成轨迹,也就是能够欺骗深度学习分类器的生成轨迹。如图3所示,对于给定的原始侧信道轨迹数据t,利用生成对抗网络中的逆变器将其映射到隐特征空间得到隐特征z*,然后在隐特征空间上对z*进行随机扰动ε得到由生成对抗网络中的生成器生成相应的侧信道轨迹数据通过改变随机扰动ε,可以得到大量的侧信道轨迹数据。为了能够使得判别器误分类,需要找到隐特征空间与原始侧信道轨迹数据t的隐特征空间的差异最小的侧信道轨迹数据,将其作为生成轨迹数据t*

本领域技术人员可以理解,判别器是一种防护者计算对抗扰动时使用的深度学习分类器。

为了能够准确、快速的找出与所述给定的原始侧信道轨迹数据差异最小的侧信道轨迹数据,本发明实施例采用一种在隐特征空间上迭代搜索生成轨迹的方法。为了获得能够欺骗分类器的最小扰动,本方案使用迭代搜索算法来寻找最小的扰动。在搜索过程中,每一次迭代都对扰动ε在搜索范围内进行随机采样(每次迭代N个采样,N的数值可自行设定),如果N个扰动中存在能够欺骗深度学习分类器的扰动,就认为此时的搜索范围能够产生我们希望的扰动。其中,搜索时,结合二分查找法使用从粗到细的迭代搜索策略,如图4所示,为迭代搜索策略的伪代码:在较宽的搜索范围内通过二分查找法搜索生成轨迹,递归地收紧搜索范围的上限,较宽的搜索范围是指0到上限r构成的搜索范围,在本发明实施例中,上限r是根据侧信道轨迹的最大幅度确定的,换言之,是将真实侧信道轨迹中可能出现的最大值作为搜索扰动过程中的上限,针对不同的设备,可能有不同的上限值;在获得搜索范围上限后,从搜索范围上限开始,使用迭代,逐步收紧搜索范围上限,直至不能获得能够欺骗分类器的侧信道轨迹数据;在获得的侧信道轨迹数据中,选择最接近z*的侧信道轨迹数据。

这里对图4展示的代码做详细的介绍。代码的Input行列举了算法需要的输入,Output列举了算法的输出。算法分为两个部分,第1行到第16行是使用二分法来粗粒度地快速地搜索扰动,第18行到第32行是使用逐步减小扰动幅度的方法来寻找最小的能够欺骗深度学习分类器的扰动。首先介绍一下粗粒度搜索部分。第1行的代码计算与算法相关的变量和常量,y表示分类器对轨迹t计算的标签,z*表示逆变器计算的轨迹t的隐特征。l为二分法的下限,这里将其初始化为0,i为细粒度搜索扰动的迭代次数,会在介绍细粒度搜索代码时详细介绍。代码第二行是整个二分法的一个while循环,终止条件就是二分法的上限和下限的差小于a。接下来的内容就是由上限和下限计算中间值,然后基于这个中间值来随机产生N个扰动,基于N个扰动来产生N个隐特征,然后产生N个生成轨迹。如果生成轨迹中存在可以欺骗深度学习分类器的轨迹,那么认为此时的范围可以产生欺骗深度学习分类器的轨迹,此时将范围的上限设为上限和下限的中间值。反之,将范围下限设置为上限和下限的中间值。重复这一操作,直至满足终止条件。此时得到一个距离小于a的上限l和下限r。接下来就是算法的细粒度部分,第18行是细粒度搜索的终止条件,为了避免太多次的迭代影响计算性能,我们设置了一个迭代次数上限B,i表示当前的迭代次数。如果超过了B次还没有得到最低上限,则强制停止迭代。接下来的19到31行,表示了从上限r进行每次减少Δr的迭代过程。如果r减少Δr之后,按照与第一部分相同的方式进行扰动采样并生成侧信道轨迹数据,生成器依然可以产生欺骗分类器的生成轨迹时,继续进行迭代,直至迭代次数达到设定的最大次数,将最后一次迭代的搜索范围作为最终的搜索范围。否则,将此时的上下限作为最终搜索范围的上下限。得到最终的搜索范围后,从中计算出最小的扰动,由最小扰动产生的侧信道轨迹数据与原始侧信道轨迹数据t的隐特征空间的差异最小,即,计算出最小的扰动ε*后,对隐特征z*进行扰动,得到由生成对抗网络中的生成器生成相应的侧信道轨迹数据

通过分析GAN基于不同轨迹产生的生成样本与原始轨迹的差异在采样点上的分布,可以发现,差异并不是均匀分布的,而是集中分布在侧信道轨迹上的几个采样点附近。换言之,在侧信道轨迹上,存在一些采样点,相比于其它采样点,在这些点上插入噪声更容易使得深度学习分类器误分类。这些采样点的位置也是噪声电路被触发的位置。选择在这些位置插入噪声,目的就是使得插入噪声之后的侧信道泄露能够与GAN的生成轨迹相似,进而欺骗深度学习分类器。

二、设计插入噪声电路。

本发明实施例中,使用移位寄存器查找表(Shift Register LUTs,缩写为SRL)在可重配置设备上实现的插入噪声电路产生噪声,并插入至每一生成轨迹数据的指定采样点位置;所述指定采样点位置为生成轨迹数据与给定的原始侧信道轨迹数据差异最大的若干位置,对于所有生成轨迹数据都是相同的。

本发明实施例中,原始侧信道轨迹数据与生成轨迹数据都是一维数组,每一个元素表示一个位置的轨迹值,同样的,扰动也是一维数组,每一个元素表示相应位置的扰动值;侧信道轨迹数据与扰动中的位置都是相对应的。

本发明实施例中,将所有原始侧信道轨迹数据对应的最小的扰动ε*相加,得到综合扰动结果,它同样是一维数组,每一个元素表示一个位置的综合扰动值,选出最大的若干综合扰动值,将相应的位置作为指定采样点位置。示例性的,指定采样点位置的数目可以为3,即,最大的3个综合扰动值对应的位置。

下面针对插入噪声电路的主要原理进行介绍。

现代FPGA由触发器和查找表(LUT)组成的大量组合逻辑功能组成。FPGA中的一个n个输入和m个输出的LUT可以配置为2n位SRL,并且能够进行LUT间的级联形成更大规模的SRL,而无需使用触发器,相对于由触发器级联构成的传统移位寄存器而言,可节省大量成本。SRL电路如图5所示,Input是串行数据输入,Output是输出,CE是时钟使能信号,CLK是时钟信号。A有四位,它的作用是选择SRL内寄存器的长度,也就是控制SRL将串行数据延时1到32个时钟周期。

在CMOS器件中,切换输入信号的电平对逻辑门的功耗有最大的影响,对于基于SRAM的FPGA器件也是如此。因此,为了产生高噪声,本发明配置了基于SRL的方案;如图6所示,主要包括:随机数生成器以及r个移位寄存器查找表构成的环,每个环中移位寄存器查找表的数目为s;噪声电路产生的噪声服从高斯分布,参数r和s分别控制噪声方差和噪声幅度。为了使得噪声随机化,每个SRL的内部状态初始化为01交替的比特。对于噪声电路的随机数生成器,使用了标准LFSR模块。如图5所示的结构中,主要成本是实施这些噪声电路所需的面积。需要注意的是,该噪声电路没有输出,合成工具通常会修剪此类未连接的组件。因此,需要在HDL描述中应用KEEP属性,防止合成工具优化相关电路。

本发明是在生成轨迹与给定的原始侧信道轨迹差异最大的地方触发噪声电路。由于SRL构成的噪声电路产生的是高斯噪声,不能精确控制噪声的幅度,以使添加了噪声的轨迹与生成轨迹高度相似。同时,为了对密码设备达到最大程度的保护,本发明希望产生的噪声轨迹和生成轨迹高度相似。但是由于SRL构成的噪声电路产生的是高斯噪声,不能精确控制噪声的幅度,以使添加了噪声的轨迹与生成轨迹高度相似。因此,本发明倾向于选择能够产生更大噪声的噪声电路参数。一般情况下,参数r和s越大,噪声电路产生的噪声就越大,但是对于电路的保护性能并不会随着r和s的增长而线性增加。示例性的,本发明采用了512个SRL构成的噪声电路,其中r为1,s为512。这是一个电路面积损耗和安全性的一个权衡,它既可以提供足够的防护性能,也尽可能地减少了电路面积损耗。

为了说明本发明上述方案的性能,通过实验进行了安全性评估。

实验一

实验一中,使用AES(高级加密标准)第一个密钥字节的部分猜测熵(PGE)来评估不同AES实现在面对深度学习侧信道攻击时的性能。PGE是根据深度学习模型推测的最后一轮S盒输入和最后一轮输出的汉明距离,进而对猜测密钥计算的排名。在深度学习侧信道攻击中,随着正确密钥字节的可能性相对于错误猜测密钥的可能性的增加,正确密钥更接近于被恢复。当正确的密钥字节的PGE等于零时,成功恢复该密钥。同时,当正确密钥的PGE小于或等于4时,被认为该密钥在暴力攻击范围内。这样做的理由是,如果攻击者可以将正确密钥猜测范围缩小到五个猜测密钥,则可以使用蛮力方法从猜测密钥中确定正确密钥。在安全性评估的实验中,在使用若干个轨迹之后,如果正确密钥具有小于或等于4的PGE,则认为此时的攻击是成功的。

在深度学习侧信道分析领域,相比于其它网络架构,卷积神经网络(CNN)拥有更高的攻击效率。目前为止,在侧信道分析领域中最著名的CNN结构是Benadjila等人在2018年提出的,它可以看作是卷积神经网络的一个特定设计VGG的变体。本次安全性评估的实验使用的分类器就使用这一模型架构,并根据输入数据进行轻微的修改,主要区别在于每次卷积和合并操作的数据大小。

攻击实验分别对无防护AES和添加了防护方案的AES采集60000条轨迹,其中15000条作为训练集,另外45000条作为测试集;其中,添加了防护方案的AES,是指相应的轨迹是采用本发明上述方案生成并添加噪声的轨迹数据。然后使用CNN模型分别对这两类AES攻击100次,求出平均PGE,攻击结果如图7所示,可以看到对于无防护的AES(标记为1的曲线),在400条轨迹时,正确密钥的PGE已经下降到了第4位。对于有防护的AES(标记为2的曲线),PGE有下降的趋势,但是在45000条轨迹时,PGE依然大于4,此时无法恢复密钥。试验结果表明,本发明提供的防护方案可以明显提高AES抵抗深度学习侧信道攻击的能力。

实验二

实验二中,使用两种预处理方案测试防护对策面对预处理技术的鲁棒性,分别是峰值检测和滑动窗口。使用了两种预处理方案的深度学习侧信道攻击的攻击结果如图8所示,其中的滑动窗口方案的窗口大小设置为6。可以看到峰值检测技术(标记为1的曲线)并不能提高侧信道攻击的效率,攻击结果与直接使用CNN攻击的结果相似。这是因为,实验采集的侧信道轨迹是泄露和噪声的叠加,峰值检测技术挑选的峰值信号不一定准确。由于实验采取的示波器采样频率足够高,将相邻的采样值相加能够增加泄露之间的相关性,滑动窗口算法(标记为2的曲线)的确能够在一定程度上提高攻击的效率,在44400条轨迹时,PGE下降到4,可以认为此时能够恢复出正确密钥。但是,PGE始终没有下降到0。可以认为此时本发明的防护方案依然能够提供足够的保护,因为在实际攻击中,攻击者很难对相同密钥获得60000条侧信道泄露。

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

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

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:针对侧信道建模攻击模型的平衡数据集构造方法

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类