掌桥专利:专业的专利平台
掌桥专利
首页

用于侧信道分析的方法及装置

文献发布时间:2024-04-18 20:01:55


用于侧信道分析的方法及装置

技术领域

本申请涉及侧信道分析技术领域,具体涉及一种用于侧信道分析的方法及装置。

背景技术

随着人工智能技术的发展,一些已知技术中提出可以利用神经网络模型来对加密设备进行侧信道攻击。例如,基于深度神经网络模型进行能量分析。该类能量分析过程属于模板攻击(Template Attack)的一种。通常,在利用神经网络模型进行能量分析的过程之前,需要基于数据集对神经网络模型进行训练。在传统的基于深度学习进行侧信道分析的方案中,需要根据所采集的能量迹的特点,设计针对于某个待攻击设备的专用深度神经网络模型。然而,随着待攻击设备种类的多样化,这种针对每个待攻击设备设计专用神经网络模型的方案效率极低。

发明内容

本申请实施例致力于提供一种用于侧信道分析的方法及装置,下文从以下几个方面进行介绍。

第一方面,提供了一种用于侧信道分析的方法,包括:获取加密设备的第一能量迹,所述第一能量迹用于指示所述加密设备在加密过程中能量随时间的变化;将所述第一能量迹输入第一神经网络模型进行模型推理,以获取所述第一能量迹对应的中间值,所述中间值用于推算所述加密设备的原始密钥;其中,所述第一神经网络模型包括第一神经网络模块,所述第一神经网络模块包括多个第一子网络模块,所述多个第一子网络模之间以残差连接的方式相连接。

第二方面,提供了一种用于侧信道分析的装置,包括:获取单元,获取加密设备的第一能量迹,所述第一能量迹用于指示所述加密设备在加密过程中能量随时间的变化;处理单元,用于将所述第一能量迹输入第一神经网络模型进行模型推理,以获取所述第一能量迹对应的中间值,所述中间值用于推算所述加密设备的原始密钥;其中,所述第一神经网络模型包括第一神经网络模块,所述第一神经网络模块包括多个第一子网络模块,所述多个第一子网络模之间以残差连接的方式相连接。

第三方面,提供了一种计算设备,包括收发器、处理器和存储器。该处理器用于控制收发器收发信号,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得该终端设备执行上述第一方面中的方法。

第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。

第五方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。

第六方面,提供了一种芯片系统,该芯片系统包括处理器,用于终端设备实现上述方面中所涉及的功能,例如,生成,接收,发送,或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存终端设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

本申请实施例中提出了一种神经网络模型,在该神经网络模型中引入了包括多个第一子网络模块的第一神经网络模块,其中,多个第一子网络模之间以残差连接的方式相连接。这种以残差方式连接的神经网络模块有助于提高模型输入的多样性,相比于传统方案中基于单一类型的输入进行模型推理,有助于提高模型推理的准确性,如此有助于实现将神经网络模型应用于多种不同的攻击设备进行侧信道分析,提高模型训练的效率。

附图说明

图1示出了本申请实施例适用的神经网络模型。

图2示出了本申请实施例适用的神经网络模型。

图3示出了本申请实施例适用的卷积神经网络。

图4示出了本申请实施例适用的AES加密过程的示意图。

图5示出了本申请实施例的神经网络模型的示意图。

图6是本申请实施例的模型推理过程的示意图。

图7是本申请实施例的模型推理过程的示意图。

图8是本申请实施例中用于侧信道分析的方法的示意图。

图9是针对本申请实施例中的第一神经网络模型的仿真结果的示意图。

图10是本申请实施例的用于侧信道分析的装置的示意图。

图11是本申请另一实施例的计算设备的示意性框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。

神经网络

近年来,以神经网络为代表的人工智能研究在很多领域都取得了非常大的成果,其也将在未来很长一段时间内在人们的生产生活中起到重要的作用。神经网络可以理解为是一种由多个神经元节点相互连接构成的运算模型,其中节点间的连接可以表示从输入信号到输出信号的加权值,通常称为参数。每个节点对不同的输入信号进行加权求和,并通过特定的激活函数输出。

参见图1所示,神经元可以依赖于激活函数实现非线性映射,其中神经元的输入可以记为A,输入的每一维度记为a

常见的神经网络有卷积神经网络(convolutional neural network,CNN)、循环神经网络(recurrent neural network,RNN)、深度神经网络(deep neural network,DNN)等。

下文结合图2介绍本申请实施例适用的神经网络。图2所示的神经网络按照不同层的位置划分可以分为三类:输入层210,隐藏层220和输出层230。一般来说,第一层是输入层210、最后一层是输出层230,第一层和最后一层之间的中间层都是隐藏层220。

输入层210用于输入数据,其中,输入数据例如可以是接收机接收的接收信号。隐藏层220用于对输入数据进行处理,例如,对接收信号进行解压缩处理。输出层230用于输出处理后的输出数据,例如,输出解压后的信号。

如图2所示,神经网络包括多个层,每个层包括多个神经元,层与层之间的神经元可以是全连接的,也可以是部分连接的。对于连接的神经元而言,上一层的神经元的输出可以作为下一层的神经元的输入。

随着神经网络研究的不断发展,近年来又提出了神经网络深度学习算法,在神经网络中引入较多的隐层,形成DNN,更多的隐含层让DNN更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。这种神经网络模型广泛应用于模式识别、信号处理、优化组合、异常探测等方面。

CNN是一种带有卷积结构的深度神经网络,其结构如图3所示,可以包括输入层310、卷积层320、池化层330、全连接层340、以及输出层350。

每一个卷积层320可以包括很多个卷积算子,卷积算子也称为核,其作用可以看作是一个从输入信号中提取特定信息的过滤器,卷积算子本质上可以是一个参数矩阵,这个参数矩阵通常被预先定义。

这些参数矩阵中的参数值在实际应用中需要经过大量的训练得到,通过训练得到的参数值形成的各个参数矩阵可以从输入信号中提取信息,从而帮助CNN进行正确的预测。

当CNN有多个卷积层的时候,初始的卷积层往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着CNN深度的加深,越往后的卷积层提取到的特征越来越复杂。

池化层330,由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,例如,可以是图3所示的一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在信号处理过程中,池化层的唯一目的就是减少提取的信息的空间大小。

全连接层340,在经过卷积层320、池化层330的处理后,CNN还不足以输出所需要的输出信息。因为如前所述,卷积层320、池化层330只会提取特征,并减少输入数据带来的参数。然而为了生成最终的输出信息(例如,发射端发射的原始信息的比特流),CNN还需要利用全连接层340。通常,全连接层340中可以包括多个隐含层,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如,该任务类型可以包括对接收机接收的数据信号进行解码,又例如,该任务类型还可以包括基于接收机接收的导频信号进行信道估计。

在全连接层340中的多层隐含层之后,也就是整个CNN的最后层为输出层350,用于输出结果。通常,该输出层350设置有损失函数(例如,类似分类交叉熵的损失函数),用于计算预测误差,或者说用于评价CNN模型输出的结果(又称预测值)与理想结果(又称真实值)之间的差异程度。

为了使损失函数最小化,需要对CNN模型进行训练。在一些实现方式中,可以使用反向传播算法(backpropagation algorithm,BP)对CNN模型进行训练。BP的训练过程由正向传播过程和反向传播过程组成。在正向传播(如图3由310至350的传播为正向传播)过程中,输入数据输入CNN模型的上述各层,经过逐层处理并传向输出层。如果在输出层输出的结果与理想结果差异较大,则将上述损失函数最小化作为优化目标,转入反向传播(如图3由350至310的传播为反向传播),逐层求出优化目标对各神经元权值的偏导数,构成优化目标对权值向量的梯量,作为修改模型参数的依据,CNN的训练过程在参数修改过程中完成。当上述误差达到所期望值时,CNN的训练过程结束。

需要说明的是,如图3所示的CNN仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在,本申请实施例对此不作限定。

RNNs的目的是用来处理序列数据。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNNs之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,RNNs能够对任何长度的序列数据进行处理。

对于RNN的训练和对传统的ANN(人工神经网络)训练一样。同样使用BP误差反向传播算法,不过有一点区别。如果将RNNs进行网络展开,那么参数W,U,V是共享的,而传统神经网络却不是的。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,并且还以来前面若干步网络的状态。比如,在t=4时,还需要向后传递三步,已经后面的三步都需要加上各种的梯度。该学习算法称为基于时间的反向传播算法(back propagationthrough time,BPTT)。

既然已经有了人工神经网络和卷积神经网络,为什么还要循环神经网络?原因很简单,无论是卷积神经网络,还是人工神经网络,他们的前提假设都是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去__。这里填空,人应该都知道是填“云南“。因为我们是根据上下文的内容推断出来的,但模型要做到这一步就相当得难了。因此,就有了现在的循环神经网络,他的本质是:像人一样拥有记忆的能力。因此,他的输出就依赖于当前的输入和记忆。用一句话解释RNN,就是一个单元结构重复使用。

高级加密标准(Advanced Encryption Standard,AES)

密码学中的AES又称Rijndael加密法,是美国联邦政府采用的一种分组加密标准,也是DES算法的替代者,当今最流行的对称加密算法之一,其中,对称加密可以理解为加密和解密数据时需要使用相同的密钥。

AES是一种分组密码。分组密码顾名思义是把明文以组为单位进行拆分,拆分后的每组明文的长度相等。如此,密码设备可以每次加密一组明文,直到将整个明文加密完成得到多组密文(又称“密文块”)。之后,密码设备(Cryptographic Equipment)可以再将多个密文块拼接起来,形成密文。

目前,在AES标准规范中,分组长度可以是128位,也就是说,每个分组可以包含16个字节(每个字节8位)的明文。相应地,密钥的长度可以128位、192位或256位等。在一些实现方式中,针对不同的密钥的长度,推荐的加密轮数可以不同。例如,针对长度为128位的密钥,推荐的加密轮数可以为10轮。例如,针对长度为192位的密钥,推荐的加密轮数可以为11轮。例如,针对长度为256位的密钥,推荐的加密轮数可以为14轮。

如上文介绍,AES加密过程中可以包括多轮加密过程,不同的阶段的加密轮包括的处理步骤可以不同。通常,按照处理步骤不同,可以将加密轮分为初始轮(又称为“第0轮”)、普通轮以及最终轮。为了便于理解,下文结合图4介绍AES加密过程。

参见图4所示,在初始轮中,通常可以包括轮密钥加(AddRoundKey)操作。在普通轮中,通常可以包括字节代换(SubBytes)操作、行移位(ShiftRows)操作、列混淆(MixColumns)操作、以及轮密钥加操作。在最终轮中,通常可以包括字节代换操作、行移位操作、以及轮密钥加操作。为了便于理解,下文对上述加密过程中涉及的操作进行介绍。

轮密钥加操作

对于初始轮的轮密钥加操作而言,可以理解为是将明文与密钥之间进行异或操作。在一些实现方式中,轮密钥加操作使用的密钥可以包括原始密钥。对于除初始轮之外的其他轮(例如,普通轮或最终轮)中的轮密钥加操作而言,使用的轮密钥可以是基于原始密钥得到的。在一些实现方式中,轮密钥可以是通过对原始密钥进行密钥扩展得到的。其中,密钥扩展例如可以包括密钥编排算法。

字节代换操作

在一些实现方式中,字节代换操作可以理解为一个查表操作。在AES中,定义了一个S盒和逆S盒。其中,S盒用于加密;逆S盒用于解密。在一些实现方式中,可以状态矩阵的元素中的高4位作为行值,低4位作为列值,取出S盒或者逆S盒中对应的行的元素作为输出。需要说明的是,上述状态矩阵可以理解为是对明文进行某些操作后得到的。

行移位操作

在一些实现方式中,行移位操作可以理解为是一个简单的左循环移位操作。以对状态矩阵进行行移位操作为例,状态矩阵中不同的行可以左移的字节数量不同。例如,针对状态矩阵的第0行,可以左移0字节。针对状态矩阵的第1行,可以左移1字节。针对状态矩阵的第2行,可以左移2字节依次类推。

相应地,如果是解密过程中,可以通过右移作为左移的逆变换。其中,右移操作的字节数可以参见左移操作的字节数。例如,针对状态矩阵的第0行执行左移操作时移动0字节,相应地,针对状态矩阵的第0行执行右移操作时可以移动0字节。又例如,针对状态矩阵的第1行执行左移操作时移动1字节,相应地,针对状态矩阵的第1行执行右移操作时可以移动1字节,以此类推。

列混淆操作

在一些实现方式中,列混合操作可以通过矩阵相乘来实现。经行移位操作后的状态矩阵可以与固定的矩阵相乘,得到混淆后的状态矩阵。其中,矩阵元素的乘法和假发都是定义在基于有限域GF(2

相应地,在解密过程中,可以通过上述固定矩阵的逆变换的矩阵,与对状态矩阵相乘,以实现上述列混淆操作的逆变换。

随着AES的发展,AES在软件层面和硬件层面都已经有了很多种实现方式。目前,比较流行的是实现方式是一种基于查找表的快速软件实现方案。

查表法的核心思想是将字节代换操作、行移位操作和列混淆操作中的一种或多种融合为查找表。每个查找表的大小是32bits(4字节)乘以256项,一般称为T盒(T-Box)或T表。在一些实现方式中,加密过程可以包括4个表(用“Te”表示),解密过程可以包括4个表(用“Td”表示),共8个查找表。这样,每一轮的操作都可以通过16次查表产生。虽然一轮就要经历16次查表,但这都简化了伽罗瓦域上的计算操作和矩阵乘法操作,对于计算机程序而言,这是更快的。当然,在AES加密解密过程中还有S盒和逆向S盒两个表,这两个表相对于T表而言比较小,其大小为8bits(1字节)乘以256项。

侧信道分析

目前,加密算法(例如,AES加密算法)都是基于密码设备中的芯片实现的。然而,芯片在运行的时候,由于数据或者逻辑的不同,内部的晶体管通断是有区别的。侧信道分析正是利用了这种区别来确定程序内部的数据或者指令。

目前,已知技术中表明使用相关系数能够较好的描绘出数据之间的线性关系,并且给出了对应的实验证明。并且目前的相关系数理论十分完善,因此在实施差分能量分析时使用相关系数进行数学模型的建立数学模型变成了一种非常好的选择。以AES算法为例,可以针对AES算法的S盒输出位置使用相关能量分析的方法。目前,如果想要实施相关能量攻击,需要一个固定未知的数(通常来讲是密钥)和一个随机已知的数(通常来讲是明文)进行直接或间接的运算,通过运算过程中的中间值的泄露,找到泄露值与未知数之间的关系,从而恢复密钥。

在执行相关能量分析时通常会与泄露模型相结合,通常来讲密码设备的能量消耗会与不同的操作和操作数相关。比较常见的泄露模型例如可以包括汉明重量模型T=aHW(x)+b,其中a,b表示系数,x表示操作数,HW(x)表示操作数中1bit的数量,T表示能量消耗。因此,我们需要研究HW(x)与T之间的关系。通常传统的AES密码实现时x通常为8bit的数字,这是由于AES被设计之初,8位的处理器是当时的主流处理器,其中基于S盒的字节代换操作可以作为侧信道分析的重点。

目前,按照侧信道分析中使用的数学分析手段,可将其分为简单能量分析(simplepower analysis)、差分能量分析(differential power analysis)、相关能量分析(correlation power analysis)、碰撞攻击(collision attack)、模板攻击(templateattack)、互信息分析(mutual information analysis)等。

随着AI技术的发展,一些已知技术中提出可以利用神经网络模型来对加密设备进行侧信道攻击。例如,基于深度神经网络模型进行能量分析。该类能量分析过程属于模板攻击(Template Attack)的一种。通常,在利用神经网络模型进行能量分析的过程之前,需要基于数据集对神经网络模型进行训练。在传统的基于深度学习进行侧信道分析的方案中,需要根据所采集的能量迹的特点,设计针对于某个待攻击设备的专用深度神经网络模型。然而,随着待攻击设备种类的多样化,这种针对每个待攻击设备设计专用神经网络模型的方案效率极低。

因此,针对上述问题,本申请实施例中提出了一种神经网络模型,在该神经网络模型中引入了包括多个第一子网络模块的第一神经网络模块,其中,多个第一子网络模之间以残差连接的方式相连接。这种以残差方式连接的神经网络模块有助于提高模型输入的多样性,相比于传统方案中基于单一类型的输入进行模型推理,有助于提高模型推理的准确性,如此有助于实现将神经网络模型应用于多种不同的攻击设备进行侧信道分析。

为了便于理解,下文结合图5介绍本申请实施例的神经网络模型。图5所示的神经网络模型500包括第一神经网络模块510,如前文介绍,第一神经网络模块510包括多个以残差连接方式相连接的多个第一子网络模块511。

在一些实现方式中,第一子网络模块包括卷积神经网络层,激活函数模块以及归一化操作模块,其中,卷积神经网络层的输出经过激活函数模块的激活后输入归一化操作模块。也即是说,卷积神经网络层的输出可以作为激活函数模块的输入,相应地,激活函数的输出可以作为归一化操作模块的输入。

在一些实现方式中,多个第一子网络模块之间以残差连接的方式相连接,包括:若多个第一子网络模块中的第i个子网络模块的输入为x

参见上文关于残差连接的介绍可知,对于以残差连接的方式相互连接的第i+1个子网络模块而言,第i+1个子网络模块的输入可以基于x

在一些实现方式中,为了减少第一神经网络模型的计算量,可以在第一子网络模块中对第i+1个子网络模块的输入y进行池化操作。

在一些实现方式中,第一神经网络模型包括第二神经网络模块(参见图5中的520),第二神经网络模块用于基于第一神经网络模块输出的特征向量进行模型推理,得到输出结果。

在一些实现方式中,输出结果用于指示基于第一能量迹预测的中间值为多个假设中间值中每个假设中间值的概率,其中,基于第一能量迹预测的中间值可以理解为待攻击设备通过第一能量迹所泄露的中间值。

例如,假设多个假设可以通过中间值标签集合L={l

在一些实现方式中,上述第二神经网络模块包括多个第二子网络模块,相应地,第二子网络模块包括全连接层以及激活函数,其中,全连接层的输出输入激活函数进行激活。也即是说,全连接层的输出为激活函数的输入。

在一些实现方式中,多个第二子网络模块为第二神经网络模块中除最后一个子网络模块之外的其他子网络模块,最后一个子网络模块包括全连接层以及Softmax操作模块,其中,全连接层的输出为Softmax操作模块的输入。

在一些实现方式中,Softmax操作模块用于基于全连接层输出的特征向量,计算将该特征向量映射为[0,1]之间的概率值。例如,Softmax操作模块的输出为一个|L|维的向量

例如,Softmax操作模块可以表示为公式:

在一些实现方式中,第一神经网络模型包括第三神经网络模块(参见图5中的530),第三神经网络模块用于对第一能量迹进行特征提取,并向第一神经网络模型输入特征提取后的特征向量。

在一些实现方式中,第三神经网络模块包括卷积神经网络层,激活函数模块以及归一化操作模块,其中,卷积神经网络层的输出输入激活函数模块进行激活后,输入归一化操作模块,也即是说,卷积神经网络层的输出为激活函数模块的输入,相应地,激活函数模块的输出为归一化操作模块的输入。

在本申请实施例中,在第三神经网络模块中引入卷积神经网络层进行特征提取,可以利用卷积神经网络层的平移不变形性和转换不变形性,其中,平移不变形性用于指对输入能量迹进行对齐等操作,转换不变形性用于指滤除能量迹中不重要的信息使用(例如,噪声),以提高特征提取的准确性。

上文结合图5介绍了本申请实施例适用的神经网络模型(又称“第一神经网络模型”),下文结合图6以及图7介绍本申请实施例的模型推理过程以及模型训练过程。

图6是本申请实施例的模型推理过程的示意图。图6所示的方法可以包括步骤S610以及步骤S620。

在步骤S610中,获取加密设备的第一能量迹,所述第一能量迹用于指示所述加密设备在加密过程中能量随时间的变化。

在一些实现方式中,在待攻击设备(即加密设备)上使用一个或多个随机的明文d和未知密钥k

在一些实现方式中,若在训练过程中使用的训练数据中的能量迹对所采集的能量迹执行了预处理操作,则对用于攻击的能量迹(即第一能量迹)执行相同的预处理操作,有助于提高模型推理的准确性。

在步骤S620中,将所述第一能量迹输入第一神经网络模型进行模型推理,以获取所述第一能量迹对应的中间值,所述中间值用于推算所述加密设备的原始密钥。

在一些实现方式中,使用第一神经网络模型对所攻击数据集中的能量迹(包含第一能量迹的集合)进行前传计算,以对每条能量迹预测中间值标签集合L={l

在一些实现方式中,基于假设中间值概率推算加密设备的原始密钥。例如,对于第j条第一能量计,第一神经网络模型所预测的可能性概率P

图7是本申请实施例的模型推理过程的示意图。图7所示的方法可以包括步骤S710以及步骤S720。

在步骤S710中,获取训练数据。

在一些实现方式中,准备一台与待攻击设备相近的设备,使用不同的已知明文和密钥在该设备上运行加密算法,记录下所使用的数据、密钥、并在设备运行过程中测量密码设备所产生的能量消耗。继续选择所执行的算法的某个中间值c=f(d,k

在一些实现方式中,可以对所采集能量迹进行预处理操作以便在后续建模中使用,包括但不限于:筛选、降噪、重采样、对齐、截取、归一化、标准化操作等。

在步骤S720中,基于训练数据对第一神经网络模型进行模型训练,以得到训练后的第一神经网络模型,第一神经网络模型用于基于加密设备的第一能量迹进行侧信道分析,第一能量迹用于指示加密设备在加密的过程中能量随时间的变化。

在一些实现方式中,基于损失函数训练第一神经网络模型,其中,损失函数为使用交叉熵函数作为损失函数:

在一些实现方式中,使用网络优化算法对第一神经网络模型进行优化。其中,网络优化算法包括随机梯度下降(Stochastic Gradient Descent,SGD)、AdaGrad、Adam等方法,对网络参数进行优化学习。对优化过程中的网络表现进行监督,持续优化网络参数,直到得到最优网络参数时停止训练,并保存下训练得到的最优网络。

为了便于理解,下文结合图8介绍本申请实施例中用于侧信道分析的方法。图8所示的方法包括步骤S810至步骤S860。

假设待攻击设备为ATMEGA-2560单片机,并使用软件实现AES密码算法。对AES密码算法的第一轮Sbox输出作为泄露中间值的一个字节进行能量分析攻击流程进行说明。应理解,对每个字节的子密钥重复以下攻击步骤,以恢复完整密钥。

在步骤S810中,生成数据集D。

在一些实现方式中,准备一台与待攻击设备相近的ATMEGA-2560设备,使用随机的明文与已知密钥在该设备上运行软件实现的AES密码算法,保证所用明文的明文完全随机,以使其分布呈现均匀分布。记录下所使用的明文、密钥,并在设备运行加密算法的过程中测量设备所产生的能量消耗为能量迹。选择所执行AES密码算法的第一轮Sbox输出值

在步骤S820中,构建第一神经网络模型,其中,第一神经网络模型包括第一神经网络模块510,第二神经网络模块520,以及第三神经网络模块530。

在一些实现方式中,第三神经网络模块以原始能量迹为输入,通过深度网络运算将能量迹t

在一些实现方式中,第一神经网络模块以第三神经网络模块所输出的特征向量z为输入,通过神经网络运算对z进行微调以使所提网络架构具备更强的普适性,输出为新的特征向量

在一些实现方式中,第二神经网络模块负责将第三神经网络模块所提取出的特征向量

在步骤S830中,优化第一神经网络模型。

在一些实现方式中,使用交叉熵函数作为损失函数,以最小化该损失函数作为优化目标。使用网络优化算法,如:随机梯度下降(Stochastic Gradient Descent,SGD)、AdaGrad、Adam等方法,在训练集D

在步骤S840中,构建攻击数据集。

在一些实现方式中,在待攻击的ATMEGA-2560单片机上使用随机明文d与未知密钥k

在步骤S850中,将攻击数据集输入第一神经网络模型进行模型推理,以得到模型推理结果。

在一些实现方式中,利用第一神经网络模型对所攻击数据集中的能量迹进行前传计算,对能量迹输出对每种可能的中间值结果{0,1,...,255}预测的可能性概率P∈R

在步骤S860中,基于所预测的中间值概率恢复密钥。

在一些实现方式中,对于第j条攻击样本,模型所预测的可能性概率P

申请人对本申请实施例提供的第一神经网络模型进行了仿真,图9示出了针对第一神经网络模型的仿真结果的示意图。参见图9所示,申请人将第一神经网络模型应用于对不同的加密设备进行攻击,可以看出在基于较少数量的能量迹对不同的加密设备进行攻击时,第一神经网络模型预测的正确的密钥的排名相对靠前,因此,第一神经网络模型具有较高的性能。

上文结合图1至图9,详细描述了本申请的方法实施例,下面结合图10至图11,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。

图10是本申请实施例的用于侧信道分析的装置的示意图。图10所示的装置1000包括:获取单元1010以及处理单元1020。

获取单元1010,获取加密设备的第一能量迹,所述第一能量迹用于指示所述加密设备在加密过程中能量随时间的变化;

处理单元1020,用于将所述第一能量迹输入第一神经网络模型进行模型推理,以获取所述第一能量迹对应的中间值,所述中间值用于推算所述加密设备的原始密钥;

其中,所述第一神经网络模型包括第一神经网络模块,所述第一神经网络模块包括多个第一子网络模块,所述多个第一子网络模之间以残差连接的方式相连接。

在一些实现方式中,所述第一子网络模块包括卷积神经网络层,激活函数模块以及归一化操作模块,其中,所述卷积神经网络层的输出经过所述激活函数模块的激活后输入所述归一化操作模块。

在一些实现方式中,所述多个第一子网络模块之间以残差连接的方式相连接,包括:若所述多个第一子网络模块中的第i个子网络模块的输入为x

在一些实现方式中,所述第一神经网络模型包括第二神经网络模块,所述第二神经网络模块用于基于所述第一神经网络模块输出的特征向量进行模型推理,得到所述输出结果,所述输出结果用于指示基于所述第一能量迹预测的中间值为多个假设中间值中每个假设中间值的概率。

在一些实现方式中,所述第二神经网络模块包括多个第二子网络模块,所述第二子网络模块包括全连接层以及激活函数,其中,所述全连接层的输出输入所述激活函数进行激活。

在一些实现方式中,所述多个第二子网络模块为所述第二神经网络模块中除最后一个子网络模块之外的其他子网络模块,所述最后一个子网络模块包括全连接层以及Softmax操作模块,并且,所述全连接层的输出输入所述Softmax操作模块。

在一些实现方式中,所述第一神经网络模型包括第三神经网络模块,所述第三神经网络模块用于对所述第一能量迹进行特征提取,并向所述第一神经网络模型输入所述特征提取后的特征向量,并且,所述卷积神经网络层的输出经过所述激活函数模块的激活后输入所述归一化操作模块。

在一些实现方式中,所述第三神经网络模块包括卷积神经网络层,激活函数模块以及归一化操作模块。

图11是本申请另一实施例的计算设备的示意性框图。图11所示的计算设备1100可以包括:存储器1110、处理器1120、输入/输出接口1130。其中,存储器1110、处理器1120、输入/输出接口1130通过内部连接通路相连,该存储器1110用于存储指令,该处理器1120用于执行该存储器1120存储的指令,以控制输入/输出接口1130接收输入的数据和信息,输出操作结果等数据,并控制收发机1140发送信号。

应理解,在本申请实施例中,该处理器1120可以采用通用的中央处理器(centralprocessing unit,CPU),微处理器,应用专用集成电路(application specificintegrated circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。

该存储器1110可以包括只读存储器和随机存取存储器,并向处理器1120提供指令和数据。处理器1120的一部分还可以包括非易失性随机存取存储器。例如,处理器1120还可以存储设备类型的信息。

在实现过程中,上述方法的各步骤可以通过处理器1120中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的用于请求上行传输资源的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1110,处理器1120读取存储器1110中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

应理解,本申请实施例中,该处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。

应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。

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

相关技术
  • 一种支持红外接收控制的无线信号屏蔽器及屏蔽方法
  • 用于接收天线的磁场屏蔽片及包含其的无线电力接收模块
  • 无线电力传输用磁场屏蔽片以及包括其的无线电力接收模块
技术分类

06120116573904