利索能及
我要发布
收藏
专利号: 2020100513243
申请人: 衡阳师范学院
专利类型:发明专利
专利状态:已下证
更新日期:2026-05-14
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种新型密钥生成的Shield分组密码实现方法,其特征在于,包括以下步骤:步骤1:将128位明文/密文作为待加/解密数据加载至寄存器,进行加/解密运算;

步骤2:将所述待加/解密数据按以下步骤进行32轮迭代轮运算操作;

若输入的待加密数据进行加密运算操作,则在第1轮至第32轮迭代轮运算中的每一轮轮运算中依次对每一轮输入的待加密数据进行轮密钥加变换、S盒替换变换、行移位变换及列混合变换,以列混合变换后得到的数据作为下一轮的待加密数据,完成32轮迭代运算操作后,再进行一次轮密钥加变换,得到密文数据;

若输入的待解密数据进行解密运算操作,先将输入的待解密数据进行一次轮密钥加逆变换,然后在第1轮至第32轮迭代轮运算中的每一轮轮运算中依次对每一轮输入的待解密数据进行列混合逆变换、行移位逆变换、S盒替换逆变换及轮密钥加逆变换,以轮密钥加逆变换后得到的数据作为下一轮的待解密数据,完成32轮迭代运算操作后,得到明文数据;

所述列混合逆变换和列混合变换、行移位逆变换和行移位变换、S盒替换逆变换和S盒替换变换以及轮密钥加逆变换和轮密钥加变换均互为逆运算;

所述S盒替换变换操作具体方法如下,且S盒为具有对合性质的S盒Sb0与S盒Sb1,在加密与解密过程中,S盒Sb0与S盒Sb1元素不变:

128位需要进行S盒替换变换的中间数据被分成32个4位数据单元a1、a2、…、a31、a32,随着加/解密轮数变化,数据单元分别进行S盒Sb0与S盒Sb1递增/递减替换变换;

在加密过程的第r轮S盒替换变换中,前32-r+1个数据单元进行S盒Sb0替换操作,剩余的数据单元进行S盒Sb1;

在解密过程的第r轮S盒替换变换中,前r个数据单元进行S盒Sb0替换操作,剩余的数据单元进行S盒Sb1,1≤r≤32。

2.根据权利要求1所述的一种新型密钥生成的Shield分组密码实现方法,其特征在于,在所述轮密钥加变换与轮密钥加逆变换操作中使用的轮密钥构造过程如下:输入原始密钥Key,将原始密钥Key从高位到低位分为三个Key1、Key2与Key3子密钥,将Key1子密钥进行一次MD5哈希函数变换得到第1轮至第16轮中,轮密钥加变换中使用的128位轮密钥RKey1;

将Key2子密钥进行一次MD5哈希函数变换得到第16轮至32轮中,轮密钥加变换中使用的

128位轮密钥RKey2;

将Key3子密钥进行一次MD5哈希函数变换得到最后一次轮密钥加变换中使用的128位轮密钥RKey3。

3.根据权利要求2所述的方法,其特征在于,所述轮密钥加变换和轮密钥加逆变换的操作过程如下:轮密钥加变换操作是将明文或每一轮中间值State与轮密钥RKey以及轮常数RC进行异或运算;

轮密钥加变换如下:

轮密钥加逆变换使用轮密钥及轮常数的顺序与轮密钥加变换相反,轮密钥加逆变换如下:其中,State表示进行轮密钥加变换操作的数据,RC[i]表示轮常数RC的第i位,RC[33-i]表示轮常数RC的第33-i位。

4.一种新型密钥生成的Shield分组密码实现装置,其特征在于,包括:数据加载模块:将128位明文/密文作为待加/解密数据加载至寄存器,进行加/解密运算;

轮运算操作模块:将加载到寄存器的所述待加/解密数据进行32轮迭代轮运算操作;

若输入的待加密数据进行加密运算操作,则在第1轮至第32轮迭代轮运算中的每一轮轮运算中依次对每一轮输入的待加密数据进行轮密钥加变换单元、S盒替换变换单元、行移位变换单元及列混合变换单元,以列混合变换单元得到的数据作为下一轮的待加密数据,完成32轮迭代运算操作后,再进行一次轮密钥加变换,得到密文数据;

若输入的待解密数据进行解密运算操作,先将输入的待解密数据进行一次轮密钥加逆变换,然后在第1轮至第32轮迭代轮运算中的每一轮轮运算中依次对每一轮输入的待解密数据进行列混合逆变换单元、行移位逆变换单元、S盒替换逆变换单元及轮密钥加逆变换单元,以轮密钥加逆变换单元得到的数据作为下一轮的待解密数据,完成32轮迭代运算操作后,得到明文数据;

所述列混合逆变换单元和列混合变换单元、行移位逆变换单元和行移位变换单元、S盒替换逆变换单元和S盒替换变换单元,以及轮密钥加逆变换单元和轮密钥加变换单元均互为逆运算单元;

S盒替换变换单元的具体操作过程如下,且S盒为具有对合性质的S盒Sb0与S盒Sb1,在加密与解密过程中,S盒Sb0与S盒Sb1元素不变:

128位需要进行S盒替换变换的中间数据被分成32个4位数据单元a1、a2、…、a31、a32,随着加/解密轮数变化,数据单元分别进行S盒Sb0与S盒Sb1递增/递减替换变换;

在加密过程的第r轮S盒替换变换中,前32-r+1个数据单元进行S盒Sb0替换操作,剩余的数据单元进行S盒Sb1;

在解密过程的第r轮S盒替换变换中,前r个数据单元进行S盒Sb0替换操作,剩余的数据单元进行S盒Sb1,1≤r≤32。

5.根据权利要求4所述的装置,其特征在于,在所述轮密钥加变换单元与轮密钥加逆变换单元操作中使用的轮密钥构造过程如下:输入原始密钥Key,将原始密钥Key从高位到低位分为三个Key1、Key2与Key3子密钥,将Key1子密钥进行一次MD5哈希函数变换得到第1轮至第16轮中,轮密钥加变换中使用的128位轮密钥RKey1;

将Key2子密钥进行一次MD5哈希函数变换得到第16轮至32轮中,轮密钥加变换中使用的

128位轮密钥RKey2;

将Key3子密钥进行一次MD5哈希函数变换得到最后一次轮密钥加变换中使用的128位轮密钥RKey3。

6.根据权利要求5所述的装置,其特征在于,所述轮密钥加变换单元和轮密钥加逆变换单元的操作过程如下:轮密钥加变换单元是用于将明文或每一轮中间值State与轮密钥RKey以及轮常数RC进行异或运算;

轮密钥加变换如下:

轮密钥加逆变换使用轮密钥及轮常数的顺序与轮密钥加变换相反,轮密钥加逆变换如下:其中,State表示进行轮密钥加变换操作的数据,RC[i]表示轮常数RC的第i位,RC[33-i]表示轮常数RC的第33-i位。

7.一种可读存储介质,包括计算机程序指令,其特征在于:所述计算机程序指令被处理终端执行时使所述处理终端执行权利要求1至3任一项所述的方法。