一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于数据聚合的侧信道攻击方法

2022-04-09 08:53:39 来源:中国专利 TAG:


1.本发明涉及信息安全领域,是一种基于数据聚合的侧信道攻击方法。


背景技术:

2.侧信道攻击通过对设备实际加密过程中泄漏的物理信息(如时间信息、能量信息、电磁信息)进行采集,并根据采集的泄漏信息进行分析,从而恢复密钥信息。为提高侧信道攻击的效率,深度学习方法,如神经网络等被引入到侧信道攻击方法中。
3.目前采用神经网络等深度学习方法针对密码算法的侧信道分析,主要利用采集的能量迹分别为密码算法的每一密钥字节在第一轮第一个s盒的泄漏点进行建模,再恢复该密钥字节。以aes-128算法为例,其有16个字节的密钥,为恢复这些密钥,需要分别针对每个密钥字节训练模型,共需要训练16个模型。上述方法需要采集全部16个密钥字节的数据进行训练,能量迹采集和训练开销大、效率低;若采集的能量迹不足,会导致模型的准确率低。


技术实现要素:

4.本发明的目的是针对上述问题,提出一种基于数据聚合的侧信道攻击方法,通过打分进行特征选择和数据聚合,构建和训练一个数据聚合模型,完成对密码算法整体密钥的恢复,降低数据采集和模型训练开销,并降低攻击所需要的能量迹数量。
5.实现本发明目的的技术方案是:一种基于数据聚合的侧信道攻击方法,包括以下步骤:(1)能量迹数据获取;获取密码算法在设备运行过程中的能量迹数据;(2)对能量迹进行数据标签;假设密码算法有n个子密钥字节,对每一个密钥字节,分别对每一条能量迹,在其s盒输出泄漏点位置计算对应的中间值,完成对所有能量迹的标签;(3)构造和训练多个单一模型并进行密钥字节的恢复;对密码算法中的每一个密钥字节,分别基于所有能量迹在其s盒输出泄漏点标签的数据集,构建和训练该密钥字节对应的单一模型;利用这些单一模型,先分别恢复该泄漏数据集对应的密钥字节,再分别去恢复其它密钥字节;(4)单一模型攻击效果打分;根据单一模型对密码算法各个密钥字节的恢复情况,评估单一模型对密码算法密钥恢复的效果,基于每个模型恢复各个密钥字节的能量迹数量进行升序排序,并根据排序情况打分;(5)构建数据聚合模型;对单一模型的打分结果进行排序,选取排序靠前的部分模型对应的泄漏数据集进行数据聚合,构建和训练数据聚合模型;(6)基于数据聚合模型进行密钥恢复;
基于数据聚合模型完成对密码算法整体密钥的恢复。
6.本发明侧信道攻击方法中,步骤(1)所述能量迹数据获取,具体方法为:针对某一待攻击的分组密码算法,选择常用的公开数据集作为能量迹数据建模,或者对算法基于fpga进行实现,在fpga上烧录算法后,使用采集设备对烧录了待攻击算法的密码设备采集能量迹数据。
7.本发明侧信道攻击方法中,步骤(2)所述对能量迹进行数据标签,具体步骤如下:(2.1)由于s盒在算法执行过程中泄露较为明显,因此,针对待攻击的密码算法,根据算法结构选取算法的s盒的输出作为泄漏点;(2.2)假设密码算法有n个子密钥字节,对每一个密钥字节,分别对每一条能量迹,在其s盒泄漏点位置计算对应的中间值;(2.3)中间值计算若根据汉明重量(hw)计算,则假设一条能量迹中某s盒泄漏点x的明文数据为p,该单密钥字节为y,则中间值z计算方法表示为:z=f(p,y)=hw(p

y);针对不同的数据集,中间值计算方法可以进行适当的调整,以保证计算的有效性;(2.4)根据中间值计算结果,完成对所有能量迹所有s盒输出泄漏点的数据标签。
8.本发明侧信道攻击方法中,步骤(3)所述构造和训练多个单一模型并进行密钥字节的恢复,具体步骤如下:(3.1)对密码算法中的每一个密钥字节,分别基于所有能量迹在其s盒泄漏点标签的数据集,构建和训练该密钥字节对应的单一模型;(3.2)利用这些单一模型,分别恢复该泄漏数据集对应的密钥字节,记录恢复该密钥字节的能量迹数量;(3.3)再利用这些单一模型,分别恢复其它密钥字节,记录恢复相应密钥字节的能量迹数量。
9.本发明侧信道攻击方法中,步骤(4)所述单一模型攻击效果打分,其具体步骤如下:(4.1)根据单一模型对密码算法各个密钥字节的恢复情况,分别基于每个模型恢复某个密钥字节的能量迹数量对模型进行升序排序,并打分;以c
x
(mi,sj)表示第i个单一模型mi在第j个密钥字节sj上排序为k时的得分,假设密码算法有n个密钥字节,则打分方法如下:(4.2)针对密码算法的所有密钥字节,以ct(mi)表示模型mi的总得分,则总得分计算方法如下:。
10.本发明侧信道攻击方法中,步骤(5)所述构建数据聚合模型,其具体步骤如下:(5.1)根据每个单一模型的得分结果,对所有单一模型进行升序排序;(5.2)选取排序靠前的部分单一模型对应的泄漏数据集进行数据聚合,如取排序
靠前的8个或者10个单一模型对应的泄漏数据;(5.3)基于所有选取的泄漏数据集构建和训练数据聚合模型。
11.本发明侧信道攻击方法中,步骤(6)所述基于数据聚合模型进行密钥恢复,其具体步骤如下:(6.1)针对实际应用中的该待攻击密码算法,采集实测能量迹;(6.2)根据步骤(5)中单一模型的得分排序结果,选取排序靠前的若干(8个/10个/12个)单一模型在实测能量迹中对应的泄漏数据集;若实测能量迹较少导致缺少部分的泄漏数据,尽量选取排序靠前单一模型对应的泄漏数据集;(6.3)为避免不同设备采集的数据的不一致问题,根据选取的实测能量迹中的泄漏数据集,重新进行数据聚合模型训练;(6.4)将采集的部分能量迹作为测试集,基于重新训练的数据聚合模型完成对密码算法的密钥恢复。
12.本发明的有益效果是:(1)本发明方法通过单一模型的攻击效果打分选择对密码算法密钥字节恢复效果更好的泄漏数据集进行数据聚合构建和训练模型,数据聚合模型的攻击效果更好,能够以更少的能量迹完成对密码算法整体密钥的恢复;(2)本发明方法通过数据聚合模型,不需要采集所有s盒的泄漏数据,减少了数据采集的工作量和难度,特别适用于在实际环境中数据采集困难的环境;(3)本发明方法在实际中可以通过仅训练一个数据聚合模型完成对密码算法的攻击,减少了模型训练的开销。
附图说明
13.图1为本发明基于数据聚合的侧信道攻击方法流程图。
14.图2 为本发明数据聚合模型聚集不同数量的模型对密钥字节恢复的结果图。
具体实施方式
15.下面结合附图和实施例对本发明内容作进一步详细说明,但不是对本发明的限定。
16.参照图1,一种基于数据聚合的侧信道攻击方法,包括以下步骤:(1)能量迹数据获取;(2)对能量迹进行数据标签;(3)构造和训练多个单一模型并进行密钥字节的恢复;(4)单一模型攻击效果打分;(5)构建数据聚合模型;(6)基于数据聚合模型进行密钥恢复,完成对密码算法整体密钥的恢复。
实施例
17.参照图1,一种基于数据聚合的侧信道攻击方法,以针对经典的密码算法aes-128为例,建立数据聚合模型并进行攻击,具体步骤如下:
步骤(1)能量迹数据获取,具体方法为:针对aes-128算法,选择常用的公开数据集ascad数据集,或者dpacontest_v4数据集作为能量迹数据建模,或者对aes-128算法基于fpga进行实现,在fpga上烧录算法后,使用采集设备对烧录了aes-128算法的密码设备采集能量迹数据;本发明测试采用dpacontest_v4数据集。
18.步骤(2)对能量迹进行数据标签,具体步骤如下:(2.1)由于s盒在算法执行过程中泄露较为明显,因此,针对aes-128算法,根据算法结构选取算法的s盒的输出作为泄漏点;(2.2)aes-128算法有16个密钥字节,对每一个密钥字节,分别对每一条能量迹,在其s盒泄漏点位置计算对应的中间值;(2.3)由于dpacontest_v4数据集提供了全部字节的泄漏,且采用rsm掩码方案,因此,中间值z计算方法调整表示为:,其中p为明文数据,y为单密钥字节;(2.4)根据中间值计算结果,完成对所有能量迹在所有s盒输出泄漏点的数据标签。
19.步骤(3)构造和训练多个单一模型并进行密钥字节的恢复,具体步骤如下:(3.1)aes-128算法有16个密钥字节,以si(i=1,2,

,16)表示依据相应s盒输出泄漏点及操作顺序完成标签的数据集;(3.2)以这16个密钥字节上述标签好的数据集,训练出16个模型,分别命名为mi(i=1,2,

,16);(3.3)利用这16个单一模型,分别恢复该泄漏数据集对应的密钥字节,记录恢复该密钥字节的能量迹数量;(3.4)再利用这16单一模型,分别恢复其它密钥字节,记录恢复相应密钥字节的能量迹数量。
20.步骤(4)单一模型攻击效果打分,其具体步骤如下:(4.1)根据这16个单一模型对aes-128算法各个密钥字节的恢复情况,分别基于每个模型恢复某个密钥字节的能量迹数量对模型进行升序排序,并进行打分;以c
x
(mi,sj)表示第i个单一模型mi在第j个密钥字节sj上排序为k时的得分,则打分方法如下:(4.2)针对aes-128算法的所有16个密钥字节,以ct(mi)表示模型mi的总得分,则总得分计算方法如下:。
21.步骤(5)构建数据聚合模型,其具体步骤如下:(5.1)根据16个单一模型mi的得分结果,对所有单一模型进行升序排序;
(5.2)选取排序靠前的部分单一模型对应的泄漏数据集进行数据聚合,如取排序靠前的8个或者10个等的单一模型对应的泄漏数据集;(5.3)基于所有选取的泄漏数据集构建和训练数据聚合模型。
22.步骤(6)基于数据聚合模型进行密钥恢复,其具体步骤如下:(6.1)针对实际应用中的aes-128算法,采集实测能量迹;(6.2)根据步骤(5)中单一模型的得分排序结果,选取排序靠前的6、8、10、12、14、16的单一模型在实测能量迹中对应的泄漏数据集;若实测能量迹较少导致缺少部分的泄漏数据,尽量选取排序靠前单一模型对应的泄漏数据集;(6.3)为避免不同设备采集的数据的不一致问题,根据选取的实测能量迹中的泄漏数据集,重新进行数据聚合模型训练;(6.4)将采集的部分能量迹作为测试集,基于重新训练的数据聚合模型完成对aes-128算法的密钥恢复。
23.实施例分别以得分排名前6、8、10、12、14、16的单一模型对应的泄漏数据集进行聚合,建立和训练出模型mix_6、mix_8、mix_10、mix_12、mix_14、mix_16,并对不同密钥字节进行恢复,mi为分别以第i个密钥字节数据si训练的第i个单一模型mi,这些模型进行相应密钥字节恢复所需要的能量迹数量结果如图2所示。从图2可以看出,通过单一模型的攻击效果打分选择对密码算法密钥字节恢复效果更好的泄漏数据集进行数据聚合构建和训练模型,数据聚合模型的攻击效果更好,能够以更少的能量迹完成对密码算法整体密钥的恢复。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献