基于对比学习的人工智能密码侧信道碰撞分析方法及系统

摘要: 本技术涉及信息安全,具体涉及一种基于对比学习的人工智能密码侧信道碰撞分析方法及系统。背景技术:1、随着物联网智能设备、嵌入式终端和密码芯片等硬件平台在安全认证、...
基于对比学习的人工智能密码侧信道碰撞分析方法及系统

本技术涉及信息安全,具体涉及一种基于对比学习的人工智能密码侧信道碰撞分析方法及系统。

背景技术:

1、随着物联网智能设备、嵌入式终端和密码芯片等硬件平台在安全认证、数据传输和身份鉴别等场景中的广泛应用,密码算法的安全问题受到越来越多关注。密码设备在执行加密或解密运算过程中,通常会伴随产生功耗、电磁辐射、运行时间等信息。该类信息可能与设备内部处理中间运算值或密钥存在相关性,因此可被用于评估密码算法实现的安全性。侧信道分析正是通过采集并分析上述侧信息,对密码设备实现层面的安全性进行分析与测试。

2、侧信道碰撞分析是侧信道分析中的一种重要方法。其基本思想是:当密码设备在不同运算位置处理相同或相关的中间运算值时,对应的侧信息可能呈现相似的泄漏特征。通过判断不同运算位置对应侧信息之间的碰撞关系,可以推断密钥字节之间的密钥字节关系。

3、近年来,深度学习被引入侧信道碰撞分析,用于从侧信息中自动提取与碰撞关系相关的泄漏特征。现有方法通常利用训练字节对应的侧信息及其明文标签训练神经网络,再将训练后的模型迁移至目标字节侧信息上,结合目标字节明文信息恢复训练字节与目标字节之间的密钥字节关系。然而,不同字节位置对应的密钥字节不同,相同明文标签在不同字节位置上可能对应不同的中间运算值,并产生不同的侧信息泄漏特征。若将多个字节位置的侧信息直接合并并统一按照明文标签进行监督训练,模型难以建立一致的标签和泄漏特征的映射关系。因此,现有方法难以充分利用多字节侧信息中的丰富泄漏分布,限制了跨字节密钥字节关系恢复能力。

技术实现思路

1、针对现有技术的不足,本技术提供一种基于对比学习的人工智能密码侧信道碰撞分析方法及系统,旨在解决现有深度学习方法难以充分利用多字节侧信息中丰富泄漏分布的技术问题,通过对比学习预训练使模型从多字节侧信息中捕获与字节操作相关的共享泄漏特征,增强对多字节侧信息中有效信息的利用能力,从而提高密钥字节关系恢复效果,并在不显著增加模型复杂度的情况下提升侧信道碰撞分析的鲁棒性。

2、为实现上述目的,本技术采用如下技术方案:

3、第一方面,本技术提供一种基于对比学习的人工智能密码侧信道碰撞分析方法,包括以下步骤:

4、采集密码设备执行密码运算过程中产生的侧信息,所述侧信息与所述密码运算中的中间运算值相关,所述中间运算值由参与密码运算的明文和密钥共同生成;结合密码算法原理,将所述侧信息按所述明文的字节位置划分为多条子侧信息,每条子侧信息对应于所述密码算法在单个明文字节位置上的中间运算值计算过程,同一字节位置对应的多条子侧信息构成一个子侧信息集合;

5、选取对应于至少两个不同字节位置的子侧信息集合构建预训练数据集;

6、将所述预训练数据集划分为若干小批量,并对各个小批量中的每条子侧信息分别进行两次随机数据增强,得到增强样本;在同一小批量中,将一条子侧信息的两个增强样本作为正样本对、除该条子侧信息外的其他子侧信息的增强样本构成负样本集合;

7、针对预先构建的包括编码器和投影头的第一神经网络模型,利用所述正样本对和负样本集合通过对比损失函数进行预训练,使编码器学习不同字节子侧信息中的泄漏分布;

8、选取一个子侧信息集合作为训练字节对应的训练集合,利用该训练集合中的子侧信息及其明文标签对第二神经网络模型进行微调训练,得到微调模型,所述第二神经网络模型包括经过预训练的编码器和分类头;

9、将所述微调模型迁移至目标字节,通过所述微调模型输出的概率、目标字节明文与密钥字节关系的映射进行累积统计,以最大累积概率对应的密钥字节关系作为训练字节与目标字节之间的密钥字节关系;固定训练字节依次选取其他字节,遍历训练字节的所有可能取值,还原所有字节的密钥。

10、可选地,所述将所述侧信息按所述明文的字节位置划分为多条子侧信息,具体包括:

11、采用敏感度分析方法,确定密码算法各字节的中间运算值在所述侧信息中对应的泄漏区间;

12、根据所述泄漏区间对每条侧信息进行截取和分段,得到若干子侧信息,每个子侧信息的长度对应其所在泄漏区间的采样点范围。

13、可选地,所述针对预先构建的包括编码器和投影头的第一神经网络模型,利用所述正样本对和负样本集合通过对比损失函数进行预训练,具体包括:

14、将所述正样本对和负样本集合中的各增强样本输入所述编码器,得到各增强样本对应的特征表示;

15、将各所述特征表示输入所述投影头,得到各增强样本对应的投影表示;

16、基于同一子侧信息的两个增强样本的投影表示之间的相似度与同一小批量中不同子侧信息的增强样本的投影表示之间的相似度,计算对比损失函数值,并根据所述对比损失函数值更新所述编码器和所述投影头的参数。

17、可选地,所述编码器采用多层感知机结构,用于将输入的增强样本映射为特征表示;所述投影头采用全连接层结构,用于将所述特征表示映射为投影表示。

18、可选地,所述对比损失函数为归一化温度缩放交叉熵损失,所述归一化温度缩放交叉熵损失通过计算同一子侧信息的两个增强样本的投影表示之间的相似度作为分子,计算该两个增强样本的投影表示与同一小批量中所有其他增强样本的投影表示之间的相似度之和作为分母,以所述分子与所述分母的比值最大化作为训练目标,从而拉近正样本对在投影表示空间中的距离并推远负样本对在投影表示空间中的距离。

19、可选地,所述分类头的输出维度与一个字节的取值数量相同,所述明文标签为该字节对应的明文值。

20、可选地,所述利用训练集合中的子侧信息及其明文标签对所述待微调模型进行微调训练,具体包括:

21、将所述训练集合中的子侧信息作为输入,以该子侧信息对应的明文标签作为监督信号,采用交叉熵损失函数对所述编码器和所述分类头的参数进行优化。

22、可选地,所述通过所述微调模型输出的概率、目标字节明文与密钥字节关系的映射进行累积统计,以最大累积概率对应的密钥字节关系作为训练字节与目标字节之间的密钥字节关系,包括:

23、将目标字节对应的子侧信息集合中的每条子侧信息输入所述微调模型,得到该子侧信息对应于各候选值的概率;

24、将各候选值与目标字节的明文值进行异或运算,映射得到各候选密钥字节关系的概率;

25、对各候选密钥字节关系的概率进行累积统计,将累积概率最大的候选密钥字节关系确定为所述训练字节与所述目标字节之间的密钥字节关系。

26、可选地,所述固定训练字节依次选取其他字节,遍历训练字节的所有可能取值,还原所有字节的密钥,具体包括:

27、固定训练字节,依次选取其他字节作为目标字节,重复通过所述微调模型输出的概率、目标字节明文与密钥字节关系的映射进行累积统计,以最大累积概率对应的密钥字节关系作为训练字节与目标字节之间的密钥字节关系的过程,得到训练字节与多个目标字节的密钥字节关系,遍历训练字节的所有可能取值,结合各密钥字节关系推导出所有字节的密钥。

28、第二方面,本技术实施例还提供一种基于对比学习的人工智能密码侧信道碰撞分析系统,该系统包括:

29、数据采集与划分模块,用于采集密码设备执行密码运算过程中产生的侧信息,所述侧信息与所述密码运算中的中间运算值相关,所述中间运算值由参与密码运算的明文和密钥共同生成;结合密码算法原理,将所述侧信息按所述明文的字节位置划分为多条子侧信息,每条子侧信息对应于所述密码算法在单个明文字节位置上的中间运算值计算过程,同一字节位置对应的多条子侧信息构成一个子侧信息集合;

30、预训练数据构建模块,用于选取对应于至少两个不同字节位置的子侧信息集合构建预训练数据集;

31、数据增强模块,用于将所述预训练数据集划分为若干小批量,并对各个小批量中的每条子侧信息分别进行两次随机数据增强,得到增强样本;在同一小批量中,将一条子侧信息的两个增强样本作为正样本对、除该条子侧信息外的其他子侧信息的增强样本构成负样本集合;

32、预训练模块,用于针对预先构建的包括编码器和投影头的第一神经网络模型,利用所述正样本对和负样本集合通过对比损失函数进行预训练,使编码器学习不同字节子侧信息中的泄漏分布;

33、微调模块,用于选取一个子侧信息集合作为训练字节对应的训练集合,利用该训练集合中的子侧信息及其明文标签对第二神经网络模型进行微调训练,得到微调模型,所述第二神经网络模型包括经过预训练的编码器和分类头;

34、密钥恢复模块,用于将所述微调模型迁移至目标字节,通过所述微调模型输出的概率、目标字节明文与密钥字节关系的映射进行累积统计,以最大累积概率对应的密钥字节关系作为训练字节与目标字节之间的密钥字节关系;固定训练字节依次选取其他字节,遍历训练字节的所有可能取值,还原所有字节的密钥。

35、与现有技术相比,本技术具有如下有益效果:

36、通过选取至少两个不同字节位置的子侧信息集合构建预训练数据集,使模型在预训练阶段能够从不同字节的泄漏分布中学习与字节操作相关的共享泄漏特征,克服了现有方法仅依赖单字节训练数据、无法利用多字节丰富泄漏分布的缺陷。

37、此外,通过对比学习预训练使编码器学习到通用的泄漏特征表示,迁移至目标字节后密钥关系恢复的准确率更高、所需的波形数量更少。