[发明专利]一种新型密钥生成的Shield分组密码实现方法、装置及可读存储介质有效
申请号: | 202010051324.3 | 申请日: | 2020-01-17 |
公开(公告)号: | CN111262685B | 公开(公告)日: | 2021-02-19 |
发明(设计)人: | 刘波涛;李浪;李秋萍;张剑;赵军霞;刘青云;李永超;黄莹 | 申请(专利权)人: | 衡阳师范学院 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 长沙市融智专利事务所(普通合伙) 43114 | 代理人: | 龚燕妮 |
地址: | 421002 湖南省*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 新型 密钥 生成 shield 分组 密码 实现 方法 装置 可读 存储 介质 | ||
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位。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于衡阳师范学院,未经衡阳师范学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010051324.3/1.html,转载请声明来源钻瓜专利网。