基于深度学习的分组密码密钥扩展算法强度测试方法技术

技术编号:39601495 阅读:9 留言:0更新日期:2023-12-03 20:01
本发明专利技术提供一种基于深度学习的分组密码密钥扩展算法强度测试方法

【技术实现步骤摘要】
基于深度学习的分组密码密钥扩展算法强度测试方法


[0001]本专利技术涉及分组密码
,尤其涉及一种基于深度学习的分组密码密钥扩展算法强度测试方法


技术介绍

[0002]密钥扩展算法用于生成迭代加密的轮子密钥,是分组密码算法的一个重要组成部分

通常,密钥扩展算法的输入是一个固定长度的主密钥,将该主密钥扩展为多条轮子密钥并输出,轮子密钥用于混淆每一轮状态

[0003]因此,密钥扩展算法的安全强度对分组密码的安全性分析有很大影响

轻量级分组密码受计算资源所限,密钥扩展算法设计得更为简化,这些安全性较低的密钥扩展算法使得分组密码更容易遭受到密钥相关攻击

因此,有必要对分组密码密钥扩展算法的安全强度进行测试


技术实现思路

[0004]为了对分组密码密钥扩展算法的安全强度进行测试,本专利技术提供一种基于深度学习的分组密码密钥扩展算法强度测试方法

[0005]本专利技术提供的基于深度学习的分组密码密钥扩展算法强度测试方法,包括:
[0006]步骤1:构建基于深度学习的强度测试网络模型,包括用于根据目标密钥扩展算法的最后一轮子密钥来恢复主密钥中非截断位的全连接网络模型和用于根据目标密钥扩展算法的最后一轮子密钥来恢复主密钥中截断位的残差网络模型;
[0007]步骤2:构建训练数据,对所述强度测试网络模型进行训练;
[0008]步骤3:将给定的待测试密钥扩展算法的最后一轮子密钥输入至训练好的强度测试网络模型,得到测试结果

[0009]进一步地,步骤1中,采用全连接网络模型作为强度测试网络模型;
[0010]所述全连接网络模型包括输入层

隐含层和输出层;其中,根据目标密钥扩展算法的轮子密钥比特数确定所述输入层的神经元个数;所述隐含层包括3层
Dense
层,且3层
Dense
层所包含的神经元个数由浅层至深层递减,分别为
32、16

8。
[0011]进一步地,步骤1中,采用残差网络模型作为强度测试网络模型;
[0012]所述残差网络模型包括输入层

迭代层和输入层;其中,所述输入层为一个一维卷积网络,且根据目标密钥扩展算法的轮子密钥比特数确定所述输入层的神经元个数;所述迭代层的残差块由两个卷积核为3的一维卷积网络构成,迭代深度为
5。
[0013]进一步地,步骤2具体包括:
[0014]构建第一训练数据集,训练所述全连接网络模型;
[0015]在所述第一训练数据集中,任意一条训练数据的生成过程包括:随机生成一个初始密钥,经过目标密钥扩展算法迭代计算输出最后一轮子密钥,作为一条样本,并选择该初始密钥中一个比特作为该条样本的标签

[0016]进一步地,步骤2具体还包括:
[0017]构建第二训练数据集,训练所述残差网络模型;
[0018]在所述第二训练数据集中,分为第一类样本数据和第二类样本数据;
[0019]其中,生成长度为
N
的随机数据,并设置该随机数据的标签为0,该随机数据及其标签构成一条第一类样本数据;
[0020]随机生成一个初始密钥,经过目标密钥扩展算法迭代计算输出最后一轮子密钥,将该最后一轮子密钥加上该初始密钥中的
n
比特组成一条长度为
N
的真实数据,并设置该真实数据的标签为1,该真实数据及其标签构成一条第二类样本数据;
n≥2
,且该
n
比特中至少存在一个非截断位

[0021]本专利技术的有益效果:
[0022]本专利技术基于全连接网络模型和残差网络模型两种神经网络并训练,构建了分组密码密钥扩展算法强度的快速检测方法,该检测方法与穷举搜索方法相比,降低了算法复杂度
(
仅为穷举搜索方法的
)
,在线数据复杂度最小值为24
;如此,在实际应用中,可以快速地得到强度检测结果,提高检测效率

附图说明
[0023]图1为本专利技术实施例提供的基于深度学习的分组密码密钥扩展算法强度测试方法的流程示意图

具体实施方式
[0024]为使本专利技术的目的

技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例

基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围

[0025]本专利技术方法可以适用的测试对象包括三种轻量级分组密码:
PRESENT、MIBS、GIFT
,每种算法有两个版本共6个密钥扩展算法:
PRESENT

80、PRESENT

128、MIBS

64、MIBS

80、GIFT

64、GIFT

128
,分别适应不同分组长度的加密场景

[0026]这三类算法的密钥扩展均是迭代算法,算法流程简述如下:将初始密钥存储在寄存器
K
中进行迭代,迭代轮数记为
r。

i
轮子密钥
K
i
是对寄存器第
i
次迭代做一个截断运算后的输出

由于这类密钥扩展算法的轮子密钥在输出寄存器后经过一个截断运算,所以我们称之为截断类密钥扩展算法

此外,不考虑
S
盒变换,将截断后输出的轮子密钥比特位对应的初始密钥中的比特位叫做非截断位,将截断运算后不输出的比特位对应初始密钥中的比特位叫做截断位

[0027]以
PRESENT

80
密钥扩展算法为例,过程简述如下:
[0028]主密钥
80
比特:
k
79
k
78

k0,轮子密钥是
64
比特
K
i

k
63
k
62

k0。
迭代轮数
r

32。
截断运算是取最左边
64
比特:
[0029]寄存器
K
的迭代方式如下:
[0030]循环移位:
[k
79
k
78

k1k0]=
[k
18
k
17

k...

【技术保护点】

【技术特征摘要】
1.
基于深度学习的分组密码密钥扩展算法强度测试方法,其特征在于,包括:步骤1:构建基于深度学习的强度测试网络模型,包括用于根据目标密钥扩展算法的最后一轮子密钥来恢复主密钥中非截断位的全连接网络模型和用于根据目标密钥扩展算法的最后一轮子密钥来恢复主密钥中截断位的残差网络模型;步骤2:构建训练数据,对所述强度测试网络模型进行训练;步骤3:将给定的待测试密钥扩展算法的最后一轮子密钥输入至训练好的强度测试网络模型,得到测试结果
。2.
根据权利要求1所述的基于深度学习的分组密码密钥扩展算法强度测试方法,其特征在于,步骤1中,采用全连接网络模型作为强度测试网络模型;所述全连接网络模型包括输入层

隐含层和输出层;其中,根据目标密钥扩展算法的轮子密钥比特数确定所述输入层的神经元个数;所述隐含层包括3层
Dense
层,且3层
Dense
层所包含的神经元个数由浅层至深层递减,分别为
32、16

8。3.
根据权利要求2所述的基于深度学习的分组密码密钥扩展算法强度测试方法,其特征在于,步骤1中,采用残差网络模型作为强度测试网络模型;所述残差网络模型包括输入层

迭代层和输入层;其中,所述输入层为一个一维卷积网络,且根据目标密钥扩展算...

【专利技术属性】
技术研发人员:段明周睿吴茜琼杜宜宾王伟郭路路郭圣
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1