一种用于测试对称密码组件安全性的系统及方法技术方案

技术编号:35212833 阅读:16 留言:0更新日期:2022-10-15 10:26
本发明专利技术公开了一种用于测试对称密码组件安全性的系统及方法,所述系统包括:S盒测试模块,用于测试所述对称密码组件S盒的密码性能,包括差分均匀度子模块、非线性度子模块、不动点个数子模块、代数次数与项数子模块、代数免疫度子模块、雪崩子模块、扩散子模块;P置换测试模块用于测试所述对称密码组件P置换的扩散性能,所述P置换测试模块包括演示子模块、二元域矩阵测试子模块、GF(2

【技术实现步骤摘要】
一种用于测试对称密码组件安全性的系统及方法


[0001]本专利技术涉及计算机技术与信息安全领域,具体涉及一种用于测试对称密码组件安全性的系统及方法。

技术介绍

[0002]现代密码学的密码体制通常分为两类:对称密码体制和非对称密码体制,对称密码具有运行速度快、存储量小以及易于软硬件实现等优点,被广泛用于数据加密认证等领域,如文件传输、网络通信和数据库系统安全等。对称密码主要包括分组密码、Hash函数和流密码,随着算法设计与分析技术的不断发展,不同对称密码体制中的基础组件越来越相似,最常用到的就是S盒和P置换,非线性变换S盒和线性扩散P置换,S盒和P置换的安全性对密码算法的安全性起着关键支撑作用,关于密码算法的整体结构,最小扩散轮数是Suzaki T,Minematsu K.提出的,Improving the generalized Feistel[C]//International Workshop on Fast Software Encryption.Springer,Berlin,Heidelberg,2010:19

39。最小扩散轮数决定着密码算法资源占用以及实现效率,所以对对称密码组件的子组件进行安全性指标测试具有重要意义。

技术实现思路

[0003]有鉴于此,本专利技术提供了一种用于测试对称密码组件安全性的系统及方法,能够解决对称密码组件安全性判定的技术问题。
[0004]为了解决上述技术问题,本专利技术是这样实现的。
[0005]一种用于测试对称密码组件安全性的系统,包括:
[0006]S盒测试模块,所述S盒测试模块用于测试所述对称密码组件S盒的密码性能,所述S盒测试模块包括差分均匀度子模块、非线性度子模块、不动点个数子模块、代数次数与项数子模块、代数免疫度子模块、雪崩子模块、扩散子模块;
[0007]P置换测试模块,所述P置换测试模块用于测试所述对称密码组件P置换的扩散性能,所述P置换测试模块包括演示子模块、二元域矩阵测试子模块、GF(2
n
)矩阵测试子模块;
[0008]最小扩散轮数测试模块,所述最小扩散轮数测试模块用于测试所述对称密码组件广义Feistel结构的最小扩散轮数和对应拉线。
[0009]优选地,所述S盒测试模块接收待测对称密码组件S盒的输入尺寸、输出尺寸以及S盒的内容,所述输入尺寸是所述S盒的输入数据的比特位数,所述输出尺寸是所述S盒的输出数据的比特位数,所述S盒的内容是指S盒输入数据和输出数据的具体值;将S盒的输入记为自变量x,输出记为因变量y;所述待测对称密码组件S盒接收与所述S盒对应的参数的值。
[0010]优选地,所述差分均匀度子模块用于接收第一输入值,所述第一输入值包括S盒的内容的输入差分、S盒的内容的输出差分、S盒自变量x、S盒因变量y;并对接收到的所述第一输入值进行计算:
[0011]对于输入差分和输出差分的每组值(i,j),遍历S盒自变量x,计算值
[0012][0013]其中,GF(2)
n
表示二元域上的n维向量,表示异或运算,||表示元素个数的运算,S(x)为S盒的内容,i为输入差分的第i行,j为输出差分的第j列,n为S盒输入尺寸,m为S盒输出尺寸;
[0014]得到的每个值λ
ij
填入矩阵,组成S盒的差分分布表,即
[0015][0016]S盒的差分分布表Λ(S)除去第一行后,余下的数值中,最大且非零的数值即为S盒的差分均匀度;输出S盒的差分分布表Λ(S)和差分均匀度;
[0017]所述非线性度子模块用于接收第二输入值,所述第二输入值包括S盒输入掩码、输出掩码、S盒自变量x、S盒因变量y,并对接收到的所述第二输入值进行计算,输出第一线性分布表L1(S)、第二线性分布表L2(S)和非线性度;
[0018]所述对接收到的所述第二输入值进行计算,包括:
[0019]对于输入掩码和输出掩码的每组值(u,v),遍历S盒自变量x,计算第一线性分布表L1(S)中的每个值:
[0020][0021]其中,GF(2)
n
表示二元域上的n维向量,表示异或运算,||表示元素个数的运算;S(x)为S盒的内容,点乘表示两个向量的内积运算,u为S盒输入掩码的取值,v为S盒输出掩码的取值,n为S盒输入尺寸,m为S盒输出尺寸;
[0022]得到的每个值n1
uv
填入一个n
×
m矩阵,形成S盒的第一线性分布表,即
[0023][0024]对于输入掩码和输出掩码的每组值(u,v),遍历S盒自变量x,计算第二线性分布表L2(S)中的每个值:
[0025][0026]其中,GF(2)
n
表示二元域上的n维向量,表示异或运算,||表示元素个数的运算;
[0027]得到的每个值n2
uv
填入第二个n
×
m矩阵,形成S盒的第二线性分布表,即
[0028][0029]L1(S)以及L2(S)中最小的非零整数即为S盒非线性度,输出第一线性分布表L1(S)、
第一线性分布表L2(S)和S盒非线性度;
[0030]所述不动点个数子模块用于接收第三输入值,所述第三输入值包括S盒自变量x、S盒因变量y,对接收到的所述第三输入值进行计算:
[0031]遍历S盒自变量x,计算对应的S盒因变量y与x相等的个数t,
[0032]t=|{x=y,x∈GF(2)
n
,y∈GF(2)
m
}|
[0033]其中,GF(2)
n
和GF(2)
m
分别表示二元域上的n维、m维向量,||表示元素个数的运算;
[0034]x和y相等的个数t即S盒的不动点个数,输出S盒的不动点个数。
[0035]优选地,所述代数次数与项数子模块用于接收第四输入值,所述第四输入值包括S盒自变量x、S盒因变量y;
[0036]对接收到的所述第四输入值进行计算:
[0037]基于S盒自变量x、S盒因变量y,遍历S盒自变量x,得到S盒每个输出比特对应的方程组,每个方程组含有2
n
个方程,基于m个方程组求解m个布尔函数f(x);
[0038][0039]其中,x=(x1,

,x
n
),x1,

,x
n
为S盒自变量x对应的n个分量;a0为0次项系数,为项的系数,f(x)为n比特输入1比特输出的布尔函数,
[0040]f(x)中的最高次项的次数定为f(x)的代数次数,即代数次数D(f)为
[0041][0042]f(x)中p次项的个数称为f(x)的p次项数,所有项数之和称为f(x)的项数,即代数项数N(f)为
[0043][0044]S盒因变量y为m比特,S盒因变量y对应m个布尔函数S1(x),S2(x)本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于测试对称密码组件安全性的系统,其特征在于,所述系统包括:S盒测试模块,所述S盒测试模块用于测试所述对称密码组件S盒的密码性能,所述S盒测试模块包括差分均匀度子模块、非线性度子模块、不动点个数子模块、代数次数与项数子模块、代数免疫度子模块、雪崩子模块、扩散子模块;P置换测试模块,所述P置换测试模块用于测试所述对称密码组件P置换的扩散性能,所述P置换测试模块包括演示子模块、二元域矩阵测试子模块、GF(2
n
)矩阵测试子模块;最小扩散轮数测试模块,所述最小扩散轮数测试模块用于测试所述对称密码组件广义Feistel结构的最小扩散轮数和对应拉线。2.如权利要求1所述的系统,其特征在于,所述S盒测试模块接收待测对称密码组件S盒的输入尺寸、输出尺寸以及S盒的内容,所述输入尺寸是所述S盒的输入数据的比特位数,所述输出尺寸是所述S盒的输出数据的比特位数,所述S盒的内容是指S盒输入数据和输出数据的具体值;将S盒的输入记为自变量x,输出记为因变量y;所述待测对称密码组件S盒接收与所述S盒对应的参数的值。3.如权利要求2所述系统,其特征在于,所述差分均匀度子模块用于接收第一输入值,所述第一输入值包括S盒的内容的输入差分、S盒的内容的输出差分、S盒自变量x、S盒因变量y;并对接收到的所述第一输入值进行计算:对于输入差分和输出差分的每组值(i,j),遍历S盒自变量x,计算值其中,GF(2)
n
表示二元域上的n维向量,表示异或运算,||表示元素个数的运算,S(x)为S盒的内容,i为输入差分的第i行,j为输出差分的第j列,n为S盒输入尺寸,m为S盒输出尺寸;得到的每个值λ
ij
填入矩阵,组成S盒的差分分布表,即S盒的差分分布表Λ(S)除去第一行后,余下的数值中,最大且非零的数值即为S盒的差分均匀度;输出S盒的差分分布表Λ(S)和差分均匀度;所述非线性度子模块用于接收第二输入值,所述第二输入值包括S盒输入掩码、输出掩码、S盒自变量x、S盒因变量y,并对接收到的所述第二输入值进行计算,输出第一线性分布表L1(S)、第二线性分布表L2(S)和非线性度;所述对接收到的所述第二输入值进行计算,包括:对于输入掩码和输出掩码的每组值(u,v),遍历S盒自变量x,计算第一线性分布表L1(S)中的每个值:其中,GF(2)
n
表示二元域上的n维向量,表示异或运算,||表示元素个数的运算;S(x)为S盒的内容,点乘表示两个向量的内积运算,u为S盒输入掩码的取值,v为S盒输出掩码的取值,n为S盒输入尺寸,m为S盒输出尺寸;
得到的每个值n1
uv
填入一个n
×
m矩阵,形成S盒的第一线性分布表,即对于输入掩码和输出掩码的每组值(u,v),遍历S盒自变量x,计算第二线性分布表L2(S)中的每个值:其中,GF(2)
n
表示二元域上的n维向量,表示异或运算,||表示元素个数的运算;得到的每个值n2
uv
填入第二个n
×
m矩阵,形成S盒的第二线性分布表,即L1(S)以及L2(S)中最小的非零整数即为S盒非线性度,输出第一线性分布表L1(S)、第一线性分布表L2(S)和S盒非线性度;所述不动点个数子模块用于接收第三输入值,所述第三输入值包括S盒自变量x、S盒因变量y,对接收到的所述第三输入值进行计算:遍历S盒自变量x,计算对应的S盒因变量y与x相等的个数t,t=|{x=y,x∈GF(2)
n
,y∈GF(2)
m
}|其中,GF(2)
n
和GF(2)
m
分别表示二元域上的n维、m维向量,||表示元素个数的运算;x和y相等的个数t即S盒的不动点个数,输出S盒的不动点个数。4.如权利要求2所述的系统,其特征在于,所述代数次数与项数子模块用于接收第四输入值,所述第四输入值包括S盒自变量x、S盒因变量y;对接收到的所述第四输入值进行计算:基于S盒自变量x、S盒因变量y,遍历S盒自变量x,得到S盒每个输出比特对应的方程组,每个方程组含有2
n
个方程,基于m个方程组求解m个布尔函数f(x);其中,x=(x1,

,x
n
),x1,

,x
n
为S盒自变量x对应的n个分量;a0为0次项系数,为项的系数,f(x)为n比特输入1比特输出的布尔函数,f(x)中的最高次项的次数定为f(x)的代数次数,即代数次数D(f)为f(x)中p次项的个数称为f(x)的p次项数,所有项数之和称为f(x)的项数,即代数项数N(f)为
S盒因变量y为m比特,S盒因变量y对应m个布尔函数S1(x),S2(x),...,S
m
(x),对这m个布尔函数进行组合得到所有2
m
个布尔函数,取次数最小的布尔函数次数为S盒代数次数,即其中,D为S盒对应的输入函数的代数次数,S为S盒输出的m个分量布尔函数,β为S盒输出的掩码,GF(2)
m
为二元域上m维向量,为异或运算,b
io
为β的分量,β=(b1,

,b
m
),io为变量;取项数最小的布尔函数项数为S盒的项数,即其中,N为S盒对应的输入函数的代数项数,β为S盒的输出掩码,GF(2)
m
为二元域上m维向量,为异或运算,b
io
为β的分量,β=(b1,

,b
m
)。5.如权利要求2所述的系统,其特征在于,所述代数免疫度子模块用于接收第五输入值,所述第五输入值包括S盒自变量x、S盒因变量y,并对接收到的所述第五输入值进行计算,得到代数免疫度并输出;所述对接收到的所述第五输入值进行计算,包括:根据输入的S盒自变量x、S盒因变量y,得到S盒的m个布尔表达式S1(x),S2(x),...,S
m
(x),对于每个布尔函数S
num
(x),计算使得S
num
(x)g(x)=0或成立的非零布尔函数g(x)的代数次数最小值;其中,1≤hum≤m;定义布尔函数S
num
(x)的零算子集合为Ann(S
num
)={g(x)∈B
n
[x]|S
num
g=0,g(x)≠0},S
num
(x)代数免疫度AI(S
num
)为其中B
n
[x]表示所有n元布尔函数的集合,deg表示代数次数,g为S
num
(x)的零算子g(x),Ann(S
num
)为这些零算子的集合;S盒因变量y为m比特,S盒因变量y对应m个布尔函数S1(x),S2(x),...,S
m
(x),对这m个布尔函数进行组合得到所有2
m
个布尔函数,取代数免疫度最小的AI(β
·
S)为S盒代数免疫度,即其中,
·
表示内积运算,sum为变量;所述雪崩子模块用于接收第六输入值,所述第六输入值包括S盒自变量x、S盒因变量y,并对所述第六输入值进行雪崩特性计算,得到雪崩特性并输出;所述对所述第六输入值进行计算,包括:S盒因变量y为m比特,S盒因变量y对应m...

【专利技术属性】
技术研发人员:李艳俊刘健王克张伟国
申请(专利权)人:中电科北京信息测评认证有限公司
类型:发明
国别省市:

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

1