本发明涉及计算机技术领域,尤其涉及一种侧信道泄露位置定位方法及装置、存储介质、终端。
背景技术:
当前密码芯片的用途广泛,但随着旁路估计尤其是模板攻击区分器的提出对密码芯片的信息安全性带来了挑战。攻击者通过能量采集设备采集芯片进行相关密码操作的能耗或电磁信号曲线,往往需对泄露位置进行定位。
随着深度学习的广泛应用,基于卷积神经网络(convolutionalnneuralnetwork,cnn)的模板攻击也成为主流的攻击手段。相较于传统基于高斯分布的模板攻击,卷积神经网络拥有更好的特征提取和拟合能力,能提高模板攻击的效率和准确率,对曲线的预处理和特征点数量的选择方面也不再受那么严格限制。
但是,cnn属于深度学习领域的黑盒模型,至今无法从数学原理上予以解释,导致无法了解信号曲线对攻击结果的影响,也即无法确定能量曲线的泄露位置。
技术实现要素:
本发明解决的技术问题是如何确定芯片的能量迹曲线的信息泄露位置。
为解决上述技术问题,本发明实施例提供一种侧信道泄露位置定位方法,侧信道泄露位置定位方法包括:获取芯片的能量迹曲线,所述能量迹曲线携带所述芯片的秘密信息;利用所述能量迹曲线训练卷积神经网络模型直至模型收敛,将一条或多条能量迹曲线输入至训练完成的卷积神经网络模型;获取所述卷积神经网络模型的中间结果,所述中间结果包括所述卷积神经网络模型中卷积层输出的特征图,以及所述卷积神经网络模型中全连接层输出的结果为所述秘密信息的得分;利用所述中间结果计算特征图中各个特征点或输入曲线各个时刻点的权重,每一点的权重表示该点的值与所述秘密信息的得分的相关程度;选取各个点的权重中的峰值权重以及所述峰值权重对应的峰值点,并确定所述峰值点在所述能量迹曲线中对应的点,以作为信息泄露点。
可选的,所述利用所述中间结果计算特征图中各个特征点或输入曲线各个时刻点的权重包括:对于各个特征图中的特征点或输入曲线中各个时刻点,计算所述秘密信息的得分与特征点或时刻点的值的偏导的绝对值;计算所述点的值的偏导的绝对值与对应的特征点或时刻点的值的乘积,并计算所有特征图中所述乘积的平均值,以作为所述点的权重。
可选的,所述计算所述特征图中特征点或输入曲线中时刻点的值的偏导的绝对值与对应的特征点或时刻点的值的乘积之后还包括:利用激活函数对所述乘积进行处理。
可选的,采用以下公式计算各个点的权重:
可选的,所述选取各个特征点或时刻点的权重中的峰值权重包括:在相邻的预设数量个特征点或时刻点的权重中选取数值最大的权重,以作为所述峰值权重。
可选的,特征图中各个特征点与所述能量迹曲线中的点具备映射关系,所述确定所述峰值点在所述能量迹曲线中对应的点包括:根据所述映射关系确定所述峰值点在所述能量迹曲线中对应的点,以作为所述信息泄露点。
可选的,所述秘密信息选自加密密钥或传输信息或加密操作。
为解决上述技术问题,本发明实施例还公开了一种侧信道泄露位置定位装置,侧信道泄露位置定位装置包括:能量迹曲线获取模块,用以获取芯片的能量迹曲线,所述能量迹曲线携带所述芯片的秘密信息;输入模块,用以利用所述能量迹曲线训练卷积神经网络模型直至模型收敛,将一条或多条能量迹曲线输入至训练完成的卷积神经网络模型;中间结果获取模块,用以获取所述卷积神经网络模型的中间结果,所述中间结果包括所述卷积神经网络模型中卷积层输出的特征图,以及所述卷积神经网络模型中全连接层输出的结果为所述秘密信息的得分;权重计算模块,用以利用所述中间结果计算特征图中各个特征点或输入曲线各个时刻点的权重,每一点的权重表示所述点的值与所述秘密信息的得分的相关程度;信息泄露点选取模块,用以选取各个点的权重中的峰值权重以及所述峰值权重对应的峰值点,并确定所述峰值点在所述能量迹曲线中对应的点,以作为信息泄露点。
本发明实施例还公开了一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行所述侧信道泄露位置定位方法的步骤。
本发明实施例还公开了一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行所述侧信道泄露位置定位方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明技术方案中,获取芯片的能量迹曲线,所述能量迹曲线包含芯片的秘密信息,也即利用该能量迹曲线能够实现对芯片安全的成功攻击;通过将能量迹曲线输入至训练完成的卷积神经网络模型,可以获得卷积神经网络模型针对能量迹曲线的中间结果,如卷积层输出的特征图以及全连接层输出的结果为所述秘密信息的得分;通过计算特征点或时刻点的权重来表示该点的值与所述秘密信息的得分的相关程度,可以实现通过点的权重选取对秘密信息的得分贡献最大的点,进而确定能量迹曲线中的信息泄露点,也即信息泄露位置。本发明技术方案通过观测输入曲线,也即能量迹曲线不同位置对攻击成功的影响程度,从而准确定位输入曲线的泄露区间,进而为提升攻击效果和芯片防护提供重要参考价值。
进一步地,本发明技术方案对于各个特征图中的特征点或输入曲线各个时刻点,计算所述秘密信息的得分与该点的值的偏导的绝对值;计算所述点的值的偏导的绝对值与对应的点的值的乘积,并计算所述乘积的平均值,以作为所述点的权重。本发明技术方案通过对不同位置进行梯度映射并结合特征图确定能量迹曲线不同位置对攻击成功的影响程度,可以更有效地确定特征点对得分的贡献,使得最终确定的信息泄露点的噪音更小,准确性更高。
附图说明
图1是本发明实施例一种侧信道泄露位置定位方法的流程图;
图2是图1所示步骤s104的具体实施方式的流程图;
图3是本发明实施例一种具体应用场景的示意图;
图4是本发明实施例一种侧信道泄露位置定位装置的结构示意图。
具体实施方式
如背景技术中所述,cnn属于深度学习领域的黑盒模型,至今无法从数学原理上予以解释,导致无法了解输入的信号曲线对攻击结果的影响,也即无法确定能量迹曲线的泄露位置。
本发明技术方案中,获取芯片的能量迹曲线,所述能量迹曲线包含芯片的秘密信息,也即利用该能量迹曲线能够实现对芯片安全的成功攻击;通过将能量迹曲线输入至训练完成的卷积神经网络模型,可以获得卷积神经网络模型针对能量迹曲线的中间结果,如卷积层输出的特征图以及全连接层输出的结果为所述秘密信息的得分;通过计算特征图中特征点或输入曲线中时刻点的权重来表示该点的值与所述秘密信息的得分的相关程度,可以实现通过点的权重选取对秘密信息的得分贡献最大的点,进而确定能量迹曲线中的信息泄露点,也即信息泄露位置。本发明技术方案通过观测输入曲线,也即能量迹曲线不同位置对攻击成功的影响程度,从而准确定位输入曲线的泄露区间,进而为提升攻击效果和芯片防护提供重要参考价值。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明实施例一种侧信道泄露位置定位方法的流程图。
侧信道泄露位置定位方法可以应用于终端设备侧,也即由终端设备执行图1所示方法的各个步骤。
如图1所示,侧信道泄露位置定位方法可以包括以下步骤:
步骤s101:获取芯片的能量迹曲线,所述能量迹曲线携带所述芯片的秘密信息;
步骤s102:利用所述能量迹曲线训练卷积神经网络模型直至模型收敛,将一条或多条能量迹曲线输入至训练完成的卷积神经网络模型;
步骤s103:获取所述卷积神经网络模型的中间结果,所述中间结果包括所述卷积神经网络模型中卷积层输出的特征图,以及所述卷积神经网络模型中全连接层输出的结果为所述秘密信息的得分;
步骤s104:利用所述中间结果计算特征图中各个特征点或输入曲线各个时刻点的权重,每一点的权重表示所述点的值与所述秘密信息的得分的相关程度;
步骤s105:选取各个点的权重中的峰值权重以及所述峰值权重对应的峰值点,并确定所述峰值点在所述能量迹曲线中对应的点,以作为信息泄露点。
需要指出的是,本实施例中各个步骤的序号并不代表对各个步骤的执行顺序的限定。
本实施例中,能量迹曲线(powertrace)是指芯片运行过程中,在芯片外部采集的芯片的事实消耗的功耗,或者芯片的电磁辐射等物理指标,这些指标的波动和芯片正在进行的处理和运算相关,通常可以作为安全芯片的侧信道(sidechannel)攻击手段。也就是说,每一能量迹曲线包含所述芯片的秘密信息,所述秘密信息与芯片正在进行的处理和运算相关。其中,所述秘密信息可以包括操作信息和操作数信息。
在一个具体实施例中,所述秘密信息选自加密密钥或传输信息或加密操作等。
在步骤s101的具体实施中,可以获取芯片的能量迹曲线。具体地,可以通过能量采集设备采集能量迹曲线,如功耗曲线需要相应的电流或电压等监测设备来采集,电磁曲线则需要一定精度的电磁探头来采集等。
进一步而言,每一能量迹曲线具有标签(label)。能量迹曲线的标签代表该能量迹曲线对应的秘密信息,例如,采集能量迹曲线时芯片在进行加密操作,能量迹曲线的标签可以是加密操作所需密钥;如果采集能量迹曲线时芯片在进行信息传输操作,能量迹曲线的标签可以是芯片正在传输的信息。
具体地,能量迹曲线可以包括多个点,也即能量迹曲线包括能量采集设备在多个时间点采集的物理指标值,每一点表示在该采集时刻物理指标的大小。进一步而言,能量迹曲线上的点表示该能量迹曲线在某时刻对应的功耗值点,代表在该时刻芯片的功耗值、电磁辐射值或者其他侧信道信息。
具体实施中,可以预先对卷积神经网络模型进行训练,以得到训练完成的卷积神经网络模型,也即收敛的卷积神经网络模型。进而在步骤s102的具体实施中,可以将所述能量迹曲线作为输入信息,输入至训练完成的卷积神经网络模型。每条输入曲线包括多个时刻点,每一时刻点具有相应的值,即上述物理指标的大小。
卷积神经网络模型具有卷积层、全连接层和逻辑回归(softmax)层,每一层均会输出相应结果。其中,卷积层可以输出多张特征图(featuremap),全连接层可以输出的结果代表各个标签(label)的得分,softmax层则将上述标签的得分进行归一化处理后输出。每一特征图中包括多个特征点,每一特征点在特征图中具有相应的值。
进而在步骤s103的具体实施中,可以获取所述卷积神经网络模型的中间结果,也即获取卷积层输出的特征图以及全连接层输出的结果为所述秘密信息的得分。例如,全连接层输出的结果为加密密钥的得分,或者全连接层输出的结果为传输信息的得分。
在步骤s104的具体实施中,利用所述中间结果计算特征图中各个特征点或输入曲线各个时刻点的权重,其中每一点的权重表示所述点的值与所述秘密信息的得分的相关程度。具体而言,点的权重越高,表示该点的值与秘密信息的得分的相关程度越高,也表示该点的值对秘密信息的得分的贡献越大。
进而在步骤s105的具体实施中,可以选取各个点的权重中的峰值权重,并选取所述峰值权重对应的峰值点。也即选取对秘密信息的得分贡献最大征点。利用特征图中的峰值点可以确定其在所述能量迹曲线中对应的点,也即信息泄露点。信息泄露点可以表示能量迹曲线的秘密信息是在该位置泄露的。具体而言,信息泄露点可以表示能量迹曲线的采集时间位置。
本发明实施例中,获取芯片的能量迹曲线,所述能量迹曲线包含芯片的秘密信息,也即利用该能量迹曲线能够实现对芯片安全的成功攻击;通过将能量迹曲线输入至训练完成的卷积神经网络模型,可以获得卷积神经网络模型针对能量迹曲线的中间结果,如卷积层输出的特征图以及全连接层输出的结果为所述秘密信息的得分;通过计算特征图中特征点或输入曲线中时刻点的权重来表示特征点或时刻点的值与所述秘密信息的得分的相关程度,可以实现通过点的权重选取对秘密信息的得分贡献最大的点,进而确定能量迹曲线中的信息泄露点,也即信息泄露位置。本发明实施例通过观测输入曲线,也即能量迹曲线不同位置对攻击成功的影响程度,从而准确定位输入曲线的泄露区间,进而为提升攻击效果和芯片防护提供重要参考价值。
本发明一个非限制性实施例中,请参照图2,图1所示步骤s104可以包括以下步骤:
步骤s201:对于各个特征图中的特征点或输入曲线中的时刻点,计算所述秘密信息的得分与特征点或时刻点的值的偏导的绝对值;
步骤s202:计算所述特征点或时刻点的值的偏导的绝对值与对应的特征点或时刻点的值的乘积,并计算所述乘积的平均值,以作为所述特征点或时刻点的权重。
具体实施中,卷积神经网络模型可以具有n个卷积层,每层卷积层包含卷积核个数为k。每个卷基层均可以输出k张对应的特征图,特征图中包含i个特征点,其中,n,k和i为正整数。
可以利用秘密信息的得分与特征点或时刻点的值计算偏导值,该偏导值可以表示值的变化对得分的影响大小,也即不同值的变化相同时对得分的影响大小。具体地,如果偏导值为正,代表这个位置的值(特征点或时刻点的值)变大则输出得分变高;值为负值则是相反关系。
进而为了保留每个位置的特征点或时刻点的权重值的影响大小,可以按位置将偏导值与特征图中或输入曲线中对应的特征点或时刻点相乘。再在卷积核个数的维度上计算平均值,得到每个特征点的平均权重,以作为特征点的权重。
本发明实施例通过对不同位置进行梯度映射并结合特征图确定能量迹曲线不同位置对攻击成功的影响程度,可以更有效地确定特征点或时刻点对得分的贡献,使得最终确定的信息泄露点的噪音更小,准确性更高。
进一步而言,在计算乘积之前,还可以对偏导值求绝对值,那么在绝对值比较大的情况下,也即偏导值为负偏导值或正偏导值的情况下,均表示该偏导值对应的能量迹曲线的位置存在较大概率的信息泄露。
进一步而言,在计算乘积之后,计算平均值之前,还可以利用激活函数对所述乘积进行处理。
本实施例中,激活函数可以是流函数(relu)、tanh、sigmoid等函数。其中,relu可以过滤掉特征图中可能存在的负值信息,也即使用整流函数(relu)函数,能够把数值为负值的乘积全部过滤为0,由于数值为正时越大代表泄露越强烈,0代表没有贡献,因此通过将负数过滤为零,可以避免负值对权重计算结果的影响,提升权重计算的准确性。
此外,如果训练好的卷积神经网络模型针对能量迹曲线的特征图中特征点均为正值,则使用relu函数无意义。此时如果保留特征图中的负值信息,可以使用其他激活函数如tanh、sigmoid等函数。
本发明一个非限制性实施例中,可以采用以下公式计算各个点的权重:
其中,wi表示第i个点的权重,yc表示所述秘密信息c的得分,
在一个具体实施例中,yc可以表示label为加密密钥的得分,或者表示label为传输信息的得分,或表示label为加密操作的得分等。
本发明一个非限制性实施例中,图1所示步骤s105可以包括以下步骤:在相邻的预设数量个特征点的权重中选取数值最大的权重,以作为所述峰值权重。
本实施例中,可以在相邻的预设数量个特征点中选取峰值权重,也即在一段连续的区域内选取峰值权重,从而保证峰值权重是连续的预设数量个特征点的权重中数值最大的权重,从而能够更加准确地表示信息泄露点。
本发明一个非限制性实施例中,图1所示步骤s105可以包括以下步骤:根据所述映射关系确定所述峰值点在所述能量迹曲线中对应的点,以作为所述信息泄露点。
请参照图3,在本发明一个具体应用场景中,卷积神经网络模型包括卷积层301、全连接层302和softmax层303。输入曲线为能量迹曲线,能量迹曲线的label为秘密信息,如加密密钥。
输入曲线输入卷积层301,卷积层301可以输出k张特征图304,每张特征图包括多个特征点。卷积层301的输出可以输入至全连接层302,全连接层302输出针对各个label的得分。全连接层302的输出输入至softmax层303,softmax层303输出各个label归一化后的得分。
在步骤305中,可以利用全连接层输出的结果为加密密钥的得分以及特征图中的特征点或输入曲线中的时刻点计算偏导值,并取偏导值的绝对值。
在步骤306中,将步骤305中的偏导值的绝对值与对应位置的特征点或时刻点的值相乘,并在卷积核维度上计算平均值(也即图3所示k维度),以得到各个权重值。
在步骤307中,可以在坐标轴中表示上述权重与输入曲线以及卷积核个数的关系,其中,x维度为权重值,y维度为输入曲线的长度(也即时间长度),k维度为卷积层核的个数。
进而可以在x维度上选取峰值权重,在y维度上选取峰值权重对应的峰值泄露点(如图3中附图标记308所示),也即原始能量迹的泄露位置。
请参照图4,本发明实施例还公开了一种侧信道泄露位置定位装置40,侧信道泄露位置定位装置40可以包括:
能量迹曲线获取模块401,用以获取芯片的能量迹曲线,所述能量迹曲线包含所述芯片的秘密信息;
输入模块402,用以利用所述能量迹曲线训练卷积神经网络模型直至模型收敛,将一条或多条能量迹曲线输入至训练完成的卷积神经网络模型;
中间结果获取模块403,用以获取所述卷积神经网络模型的中间结果,所述中间结果包括所述卷积神经网络模型中卷积层输出的特征图,以及所述卷积神经网络模型中全连接层输出的结果为所述秘密信息的得分;
权重计算模块404,用以利用所述中间结果计算特征图中各个特征点或输入曲线各个时刻点的权重,每一点的权重表示所述特征点或时刻点的值与所述秘密信息的得分的相关程度;
信息泄露点选取模块405,用以选取各个点的权重中的峰值权重以及所述峰值权重对应的峰值点,并确定所述峰值点在所述能量迹曲线中对应的点,以作为信息泄露点。
本发明实施例中,获取芯片的能量迹曲线,所述能量迹曲线包含芯片的秘密信息,也即利用该能量迹曲线能够实现对芯片安全的成功攻击;通过将能量迹曲线输入至训练完成的卷积神经网络模型,可以获得卷积神经网络模型针对能量迹曲线的中间结果,如卷积层输出的特征图以及全连接层输出的结果为所述秘密信息的得分;通过计算特征点或时刻点的权重来表示该点的值与所述秘密信息的得分的相关程度,可以实现通过特征点或时刻点的权重选取对秘密信息的得分贡献最大的点,进而确定能量迹曲线中的信息泄露点,也即信息泄露位置。本发明实施例通过观测输入曲线,也即能量迹曲线不同位置对攻击成功的影响程度,从而准确定位输入曲线的泄露区间,进而为提升攻击效果和芯片防护提供重要参考价值。
在一个具体实施例中,权重计算模块404可以包括:偏导计算单元(图未示),用以对于各个特征图中特征点或输入曲线上的时刻点,计算所述秘密信息的得分与该特征点或时刻点的值的偏导的绝对值;权重计算单元,用以计算所述特征点或时刻点的值的偏导的绝对值与对应的点的值的乘积,并计算所述乘积的平均值,以作为所述特征点的权重。
进一步而言,权重计算模块404还可以包括:过滤单元(图未示),用以利用激活函数对所述乘积进行处理。
在一个具体实施例中,权重计算模块404可以采用以下公式计算各个点的权重:
其中,wi表示第i个点的权重,yc表示所述秘密信息c的得分,
在一个具体实施例中,信息泄露点选取模块405可以在相邻的预设数量个特征点的权重中选取数值最大的权重,以作为所述峰值权重。
在一个具体实施例中,信息泄露点选取模块405可以根据所述映射关系确定所述峰值点在所述能量迹曲线中对应的点,以作为所述信息泄露点。
关于所述侧信道泄露位置定位装置40的工作原理、工作方式的更多内容,可以参照图1至图3中的相关描述,这里不再赘述。
本发明实施例还公开了一种存储介质,所述存储介质为计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时可以执行图1、图2或图3所示方法的步骤。所述存储介质可以包括rom、ram、磁盘或光盘等。所述存储介质还可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器等。
本发明实施例还公开了一种终端,所述终端可以包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令。所述处理器运行所述计算机指令时可以执行图1、图2或图3所示方法的步骤。所述终端包括但不限于手机、计算机、平板电脑等终端设备。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。