一种加解密一致的新型动态分组密码HFSP的加解密实现方法技术

技术编号:38818167 阅读:16 留言:0更新日期:2023-09-15 19:57
本发明专利技术公开了一种加解密一致的新型动态分组密码HFSP的加解密实现方法,包括如下步骤:获取待加密数据与初始密钥,从第0轮至最后1轮运算中,每一轮运算包括FRX结构变换和密钥编排运算。本发明专利技术将密钥编排部分与素数以及线性同余方程关联起来,通过对素数轮和合数轮分别进行不同的操作,从而达到密钥动态生成的效果,同时,FRX结构能够解决传统SPN结构不能加解密一致的问题,以确保算法能在软件中快速实现的同时,密钥在整个加密流程中呈现动态的形式。此外,这种新型的算法结构以及密钥编排的构造方法不仅降低了算法在解密过程中硬件资源的消耗,而且通过隐藏密钥之间的关系来提高算法的安全性。算法的安全性。算法的安全性。

【技术实现步骤摘要】
一种加解密一致的新型动态分组密码HFSP的加解密实现方法


[0001]本专利技术属于信息安全加密
,具体涉及一种加解密一致的新型动态分组密码HFSP的加解密实现方法。

技术介绍

[0002]随着计算机和网络技术的飞速发展,各行各业信息化建设对网络安全整体解决方案的需求逐渐不断需求的增加,对称密码已成为构建安全信息系统的核心基础。分组密码作为对称加密的一个重要分支,在信息安全方面具有极其重要的作用,一直是研究的热点。分组密码的设计也一直遵循香农提出的“混淆”与“扩散”原则。
[0003]自线性攻击和相关密钥攻击被提出之后,密码算法都采用不同的方式来抵抗这两种攻击,它们的核心思想大致可以分为两类:第一类它们采用分组密码的线性逼近式来实现密钥恢复攻击,是已知明文攻击。利用线性区分器可以转化为对r轮密码的密钥恢复攻击。在这一原则的指导下,算法要谨慎地选择复杂的密钥编排操作以及与其密切相关的加密函数操作。而且密钥编排作为现代密码算法中重要的组成操作,要选择线性概率低的密钥,在加密流程中与明文进行异或,使得算法的线性相关性降低。
[0004]另一类攻击是在攻击者不知道密钥的前提下,但攻击者可以选择与当前密钥具有特定关系的其它密钥,并访问由原始密钥及其相关密钥加密获得的明密文。利用密钥编排方案的弱点,选择合适的密钥关系,从而获得原密钥与相关密钥下分别对应的密码算法之间的关联,恢复出原始密钥。如果密钥编排方案非线性程度很高,则满足差分链要求的主密钥差分可能是未知的,这就增大了攻击者的攻击难度。所以无论是线性攻击还是相关密钥攻击,都需要对密钥编排进行具体的分析,因此该类密码算法可以通过采用复杂的密钥编排方案来抵抗线性攻击和相关密钥攻击。
[0005]在分组密码算法当中,有三种密码结构,Feistel网络结构、SP网络结构及Lai

Massey网络结构,在这三种结构当中,其中,Feistel网络结构与SP网络结构是最为常用两种密码结构。但是SP网络结构的分组密码得到了广大分组密码设计者的青睐,因为SP网络结构相比Feistel网络结构的分组密码能够更加快速的实现混淆和扩散。对于传统的Feistel网络结构密码,每次只有一部分经过混淆和扩散,以至于要经过两轮的变换才能使得每一位都发生变换,而SP网络结构密码只需要一轮,所有的位都发生了变化,但是解密时需要对每个部件进行求逆,消耗了额外的硬件资源。

技术实现思路

[0006]本专利技术的目的是提供一种加解密一致的新型动态分组密码HFSP的实现方法,利用增大密钥编排的复杂度,即通过判断轮数是否为素数来采用不同的2种方式生成子密钥,使密钥在整个加密流程中呈现动态的形式,从而增加了算法整体的安全性,并通过构造加解密一致的算法结构FRX,不仅能一轮改变所有的位,还能降低算法在硬件上的资源消耗。其中HFSP中的H是代表本专利技术的运算结构类似字母H,F是指本专利技术中使用的FRX结构,FRX结构
是指F函数(function)、循环移位(rotation)、逐位比特异或(bitwise XOR)的缩写)。HFSP中的SP则是指FRX结构中包含S盒和P置换的操作。
[0007]为了实现上述技术目的,本专利技术的技术方案是,
[0008]一种加解密一致的新型动态分组密码HFSP的加密实现方法,包括以下步骤:
[0009]步骤一,设置128位的密钥Key,并进行移位操作得到k
a

[0010]步骤二,根据当前迭代的轮数,对k
a
执行两种不同的分轮操作。其中第一种分轮操作为:将k
a
进行S盒替换,得到128位的数据ks,然后对ks进行P置换得到key。
[0011]第二种分轮操作为:将k
a
进行S盒替换,得到128位的数据ks,再根据当前迭代的轮数是否大于预设值,进行两种不同的子分轮操作:当不大于预设值时的子分轮操作为:将ks与当前迭代轮数的数字进行异或得到kx。当大于预设值时的子分轮操作为:将ks与生成数X进行异或得到kx。最后将kx进行P置换得到key。
[0012]然后保存key,并将key作为k
a
以用于下一轮迭代,再以key作为本轮迭代中所使用的密钥。
[0013]步骤三,基于key,对待加密的64位明文依次执行包括高轮密钥异或、第一次循环移位、第一次轮常量异或、F函数、第二次轮常量异或、第二次循环移位和低轮密钥异或在内的FRX结构变换,然后将得到的结果作为下一轮迭代中待加密的明文。其中F函数包括依次执行的初始置换、S盒替换和初始逆置换。
[0014]步骤四,核对当前迭代次数,若未达到预设的迭代次数,则返回步骤二继续迭代。否则将步骤三的结果作为加密后的密文输出。
[0015]所述的加密实现方法,所述的步骤一中,移位操作包括以下步骤:
[0016]将128位的密钥key分为16个8位的字节,并依次排列构成4
×
4的矩阵,然后将矩阵的第1行与第3行互换,第2行与第4行互换,从而实现移位操作。
[0017]所述的加密实现方法,所述的步骤二中,根据当前迭代的轮数来执行分轮操作,是将迭代轮数设定为从第0轮开始的多轮迭代,并在迭代轮数为合数时执行第一种分轮操作,为素数时执行第二种分轮操作,且第0轮和第1轮均执行第一种分轮操作。
[0018]所述的加密实现方法,所述的步骤二和步骤三中,S盒替换包括:
[0019]S盒替换采用逻辑运算或查表完成,其中逻辑运算的运算公式为:
[0020][0021][0022][0023][0024]其中a、b、c和d分别表示4位二进制数的从高位到低位的4位,经过变换得到a'、b'、c'和d',并再组合为4位的二进制数,二进制数转化为十进制的范围为0~15。
[0025]查表则是根据预设的S盒替换表执行,其中S盒替换表是基于逻辑运算的结果获得的。
[0026]所述的加密实现方法,所述的步骤二中,P置换是对128位数据采用以每一位为一
个单元进行置换运算,其中置换是根据预设的P置换表执行。所述的加密实现方法,所述的步骤二中,生成数X通过以下过程得到:
[0027][0028]其中RD表示当前迭代的轮数,mod表示求余运算。
[0029]所述的加密实现方法,所述的步骤三为:
[0030]首先将key以高64位作为密钥左分支K0,低64位作为密钥右分支K1。并将待加密的64位明文以高32位作为明文左分支P0,低32位作为右分支P1。
[0031]然后将明文左分支P0与密钥左分支K0的高32位进行异或得到Lp1,同时将明文右分支P1与密钥左分支K0的高32位进行异或得到Rp1,从而完成高轮密钥异或。
[0032]再将Lp1进行循环左移9位得到Ls1,右分支Rp1循环右移9位得到Rs1,从而完成第一次循环移位。
[0033]再执行第一次轮常量异或,将迭代轮数设定为从第0轮开始,当前迭本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种加解密一致的新型动态分组密码HFSP的加密实现方法,其特征在于,包括以下步骤:步骤一,设置128位的密钥Key,并进行移位操作得到k
a
;步骤二,根据当前迭代的轮数,对k
a
执行两种不同的分轮操作;其中第一种分轮操作为:将k
a
进行S盒替换,得到128位的数据ks,然后对ks进行P置换得到key;第二种分轮操作为:将k
a
进行S盒替换,得到128位的数据ks,再根据当前迭代的轮数是否大于预设值,进行两种不同的子分轮操作:当不大于预设值时的子分轮操作为:将ks与当前迭代轮数的数字进行异或得到kx;当大于预设值时的子分轮操作为:将ks与生成数X进行异或得到kx;最后将kx进行P置换得到key;然后保存key,并将key作为k
a
以用于下一轮迭代,再以key作为本轮迭代中所使用的密钥;步骤三,基于key,对待加密的64位明文依次执行包括高轮密钥异或、第一次循环移位、第一次轮常量异或、F函数、第二次轮常量异或、第二次循环移位和低轮密钥异或在内的FRX结构变换,然后将得到的结果作为下一轮迭代中待加密的明文;其中F函数包括依次执行的初始置换、S盒替换和初始逆置换;步骤四,核对当前迭代次数,若未达到预设的迭代次数,则返回步骤二继续迭代;否则将步骤三的结果作为加密后的密文输出。2.根据权利要求1所述的加密实现方法,其特征在于,所述的步骤一中,移位操作包括以下步骤:将128位的密钥key分为16个8位的字节,并依次排列构成4
×
4的矩阵,然后将矩阵的第1行与第3行互换,第2行与第4行互换。3.根据权利要求1所述的加密实现方法,其特征在于,所述的步骤二中,根据当前迭代的轮数来执行分轮操作,是将迭代轮数设定为从第0轮开始的多轮迭代,并在迭代轮数为合数时执行第一种分轮操作,为素数时执行第二种分轮操作,且第0轮和第1轮均执行第一种分轮操作。4.根据权利要求1所述的加密实现方法,其特征在于,所述的步骤二和步骤三中,S盒替换包括:S盒替换采用逻辑运算或查表完成,其中逻辑运算的运算公式为:其中逻辑运算的运算公式为:其中逻辑运算的运算公式为:其中逻辑运算的运算公式为:其中a、b、c和d分别表示4位二进制数的从高位到低位的4位,经过变换得到a'、b'、c'和d',并再组合为4位的二进制数,二进制数转化为十进制的范围为0~15;查表则是根据预设的S盒替换表执行,其中S盒替换表是基于逻辑运算的结果获得的。5.根据权利要求1所述的加密实现方法,其特征在于,所述的步骤二中,P置换是对128
位数据采用以每一位为一个单元进行置换运算,其中置换是根据预设的P置换表执行。6.根据权利要求1所述的加密实现方法,其特征在于,所述的步骤二中,生成数X通过以下过程得到:其中RD表示当前迭...

【专利技术属性】
技术研发人员:崔嘉琛李浪匡娟丽
申请(专利权)人:衡阳师范学院
类型:发明
国别省市:

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

1