密码S盒评估新方法技术

技术编号:15518010 阅读:277 留言:0更新日期:2017-06-04 08:23
本发明专利技术公开了一种密码S盒评估新方法,引入S盒的局部线性关系分解以及局部二次关系分解概念,根据局部线性检测模块的输出和局部二次检测模块的输出对S盒进行评估,如果对于局部线性检测模块的输出C2中存储的数的和与相差较少,说明S盒的代数结构较好;如果局部线性检测模块的输出C2中存储的数的和与相差较大,说明S盒的代数结构较差;对于局部二次检测模块的输出D2,如果D2[i]的值较大,而i的值较小,如i=4或5,说明S盒的代数结构较差;如果D2[i]的值较大,但是i的值也较大,如i=6,说明S盒的代数结构较好。该方法如果应用到密码算法S盒的设计中,将会避免S盒在代数结构上的缺陷,对设计安全性较高的S盒具有很重要的意义。

【技术实现步骤摘要】
密码S盒评估新方法
本专利技术涉及信息安全领域,具体是一种密码S盒评估新方法。
技术介绍
密码S盒是对称密码算法的关键部件,其代数性质和代数结构很大程度上决定了整个密码算法的安全强度。关于S盒的代数性质研究较多,目前最常见的S盒度量指标列举如下:非线性度、差分均匀性、平衡性、扩散性和可逆性、代数次数及项数分布、正交性、相关免疫性。对于代数性质较好的S盒,为了抵抗线性密码分析,一般都会具有较高的非线性度;为了抵抗差分密码分析,需要较大的差分均匀性;为了抵抗代数攻击和立方攻击,需要较高的代数次数,并且不同的代数次数的项数分布较均匀。1991年,Biham和Shamir在密码分析体制中提出了差分攻击的概念。从那之后,学者在设计S盒时开始考虑其抵抗差分攻击的能力。Dawson和Tavares进一步扩展了S盒的安全性指标,详细说明了设计S盒怎样很好地抵抗差分攻击。2005年,Chen等提出了关于S盒的偏差检测。他们利用这种新的统计测试性能指标对Rijndael和Crypton结构中的S盒进行测试,得到在这种新指标下Rijndael的安全性能优于Crypton。2009年,LIU和XIAO提出k-k独立的概念,给出了S盒和组件函数线性组合的反演公式,这个工具在一定程度下反映了S盒的安全性。2013年,Boura等根据布尔函数中的Maiorana-McFarland构造理论提出了一个针对非线性S盒新的度量指标:(v,w)线性。这个指标可以反映S盒线性关系的扩散能力。他们利用这个新指标优化了针对Hamsi算法的Fuhr攻击。利用这些关于S盒的安全性检测技术,对于设计性质较好的S盒具有很大的帮助。但是,这些方法一般都是在代数性质上对S盒进行评估,而使用当今的S盒设计方法得到的S盒是否存在代数结构上的缺陷还不为人知,所以,迫切需要一种可以在代数结构上对S盒进行评估的方法。
技术实现思路
针对上述不足,本专利技术所要解决的技术问题是提供一种在代数结构上对密码S盒进行评估的新方法,引入S盒的局部线性关系分解以及局部二次关系分解概念,深入研究了S盒的代数结构,提出了一个针对S盒的代数结构的新的评估方法。为解决上述问题,本专利技术密码S盒评估新方法,包括全排列产生模块、随机数产生模块、局部线性检测模块、局部二次检测模块,评估方法包括以下步骤:S1:利用全排列产生模块产生一组数的全排列,该模块输出为一个4维或8维的数组,将其定义为排列C;S2:利用随机数产生模块产生3组,每组60个随机数,并且这三组随机数在相同的位置的值是不能相同的,该模块的输出为三个60维的数组,将其定义为A1,A2,A3;S3:将数组A1,A2和排列C输入到局部线性检测模块;局部线性检测模块按照某一个顺序对S盒的输入进行固定后,可以得到的线性表达式的个数,该模块的输入为A1,A2,C,输出为两个数组C1,C2,其中,C1中存储的为此时固定的顺序,C2中存储的为对应的线性关系的个数;S4:将数组A1,A2,A3和排列C输入到局部二次检测模块;局部二次检测模块按照某一个顺序对S盒的输入进行固定后,可以得到的最高代数次数为二次的表达式的个数,该模块的输入为A1,A2,A3,C,输出为两个数组C,D2,其中,C中存储的为此时固定的顺序,D2中存储的为对应的二次关系的个数;S5:根据局部线性检测模块的输出和局部二次检测模块的输出对S盒进行评估,如果对于局部线性检测模块的输出C2中存储的数的和与2n-1相差较少,说明S盒的代数结构较好;如果局部线性检测模块的输出C2中存储的数的和与2n-1相差较大,说明S盒的代数结构较差;对于局部二次检测模块的输出D2,如果D2[i]的值较大,而i的值较小,如i=4或5,说明S盒的代数结构较差;如果D2[i]的值较大,但是i的值也较大,如i=6,说明S盒的代数结构较好。与现有的密码S盒的评估方法相比,本专利技术公开了一种密码S盒评估新方法,对密码S盒的代数结构进行了评估。这种新的评估方法如果应用到密码算法S盒的设计中,将会避免S盒在代数结构上的缺陷,对设计安全性较高的S盒具有很重要的意义。附图说明图1为实施例密码S盒评估方法的流程框图。图2为实施例中S3.1步骤的说明图。图3为实施例中S3.2步骤的说明图。图4为实施例中S3.3步骤的说明图。图5为实施例中S3.4步骤的说明图。具体实施方式下面结合附图和实施例对本
技术实现思路
作进一步的说明,但不是对本专利技术的限定。实施例参照图1,密码S盒评估方法的流程框图,以8位的密码S盒为例,评估方法包括如下的步骤:S1:利用全排列产生模块产生一个[1,2,3,4,5,6,7,8]的排列C。S2:利用随机数产生模块产生三个不同的数组A1,A2,A3。S3:将数组A1,A2和排列C输入到局部线性检测模块;S3.1:在这个模块中,首先,对于密码S盒的输入X,先固定X[C[1]]为0,将X[C[2]],X[C[3]],X[C[4]],X[C[5]],X[C[6]],X[C[7]],X[C[8]]赋值为A1[1]中对应的十进制数的二进制形式,得到了一个密码S盒的输出Out1,参照图2;S3.2:再将X[C[2]],X[C[3]],X[C[4]],X[C[5]],X[C[6]],X[C[7]],X[C[8]],赋值为A2[1]中对应的十进制数的二进制形式,得到了另一个密码S盒的输出Out2,参照图3;S3.3:将X[C[2]],X[C[3]],X[C[4]],X[C[5]],X[C[6]],X[C[7]],X[C[8]]赋值为A1[1]与A2[1]的二进制异或后的值,得到的密码S盒的输出为Out3,参照图4;S3.4:最后,将X[C[2]],X[C[3]],X[C[4]],X[C[5]],X[C[6]],X[C[7]],X[C[8]]赋值为全零,得到密码S盒的一个输出Out4,参照图5,并利用公式f(x1+x2)=f(x1)+f(x2)+f(0)判断密码S盒的每一位的输出是否都是满足上面的关系,即Out3[i]=Out1[i]+Out2[i]+Out4[i](1<=i<=8)S3.5:按照S3.1,S3.2,S3.3,S3.4,再将A1[2]-A1[60]以及A2[2]-A2[60]分别带入到X[C[2]],X[C[3]],X[C[4]],X[C[5]],X[C[6]],X[C[7]],X[C[8]],如果输出都是满足上面的关系,将C2[1]加1;S3.6:之后再固定X[C[1]]为1,并按照S3.1,S3.2,S3.3,S3.4,S3.5,判断此时得到的表达式是否满足线性关系,如果是满足的,将C2[1]加1;S3.7:扩大固定的位数i,按照S3.1,S3.2,S3.3,S3.4,S3.5,S3.6,判断此时得到的表达式是否是满足线性关系,如果是满足的,将C2[i]加1;S3.8:当固定的位数i从1-7跑完后,得到了一个数组C2后,用C2[i]=C2[i]-2C2[i-1]计算C2,如果C[i](i<7)至少有一个不为0,将C,C2输出,此时得到的C2[i]的值才是固定i位后,得到的线性关系的个数;得到的C2[i]为按照C的顺序固定i位后得到的线性关系的个数。对于S3的伪代码如下:函数Linear(i,nu本文档来自技高网
...
密码S盒评估新方法

【技术保护点】
密码S盒评估新方法,包括全排列产生模块、随机数产生模块、局部线性检测模块、局部二次检测模块,其特征在于,评估方法包括如下步骤:S1:利用全排列产生模块产生一组数的全排列,该模块输出为一个4维或8维的数组,将其定义为排列C;S2:利用随机数产生模块产生3组,每组60个随机数,并且这三组随机数在相同的位置的值是不能相同的,该模块的输出为三个60维的数组,将其定义为A1,A2,A3;S3:将数组A1,A2和排列C输入到局部线性检测模块;局部线性检测模块按照某一个顺序对S盒的输入进行固定后,可以得到的线性表达式的个数,该模块的输入为A1,A2,C,输出为两个数组C1,C2,其中,C1中存储的为此时固定的顺序,C2中存储的为对应的线性关系的个数;S4:将数组A1,A2,A3和排列C输入到局部二次检测模块;局部二次检测模块按照某一个顺序对S盒的输入进行固定后,可以得到的最高代数次数为二次的表达式的个数,该模块的输入为A1,A2,A3,C,输出为两个数组C,D2,其中,C中存储的为此时固定的顺序,D2中存储的为对应的二次关系的个数;S5:根据局部线性检测模块的输出和局部二次检测模块的输出对S盒进行评估,如果对于局部线性检测模块的输出C2中存储的数的和与相差较少,说明S盒的代数结构较好;如果局部线性检测模块的输出C2中存储的数的和与相差较大,说明S盒的代数结构较差;对于局部二次检测模块的输出D2,如果D2[i]的值较大,而i的值较小,如i=4或5,说明S盒的代数结构较差;如果D2[i]的值较大,但是i的值也较大,如i=6,说明S盒的代数结构较好。...

【技术特征摘要】
1.密码S盒评估新方法,包括全排列产生模块、随机数产生模块、局部线性检测模块、局部二次检测模块,其特征在于,评估方法包括如下步骤:S1:利用全排列产生模块产生一组数的全排列,该模块输出为一个4维或8维的数组,将其定义为排列C;S2:利用随机数产生模块产生3组,每组60个随机数,并且这三组随机数在相同的位置的值是不能相同的,该模块的输出为三个60维的数组,将其定义为A1,A2,A3;S3:将数组A1,A2和排列C输入到局部线性检测模块;局部线性检测模块按照某一个顺序对S盒的输入进行固定后,可以得到的线性表达式的个数,该模块的输入为A1,A2,C,输出为两个数组C1,C2,其中,C1中存储的为此时固定的顺序,C2中存储的为对应的线性关系的个数;S4:将数组A1,A2,A3和...

【专利技术属性】
技术研发人员:韦永壮赵颖叶涛史佳利丁勇
申请(专利权)人:桂林电子科技大学
类型:发明
国别省市:广西,45

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

1