[发明专利]一种轻量级可调分组密码实现方法、系统、电子设备以及可读存储介质在审
申请号: | 202011301394.6 | 申请日: | 2020-11-19 |
公开(公告)号: | CN112287333A | 公开(公告)日: | 2021-01-29 |
发明(设计)人: | 李浪;宋庆玲;杨金玲;李永超 | 申请(专利权)人: | 衡阳师范学院 |
主分类号: | G06F21/46 | 分类号: | G06F21/46;G06F21/60 |
代理公司: | 长沙市融智专利事务所(普通合伙) 43114 | 代理人: | 姚瑶 |
地址: | 421002 湖南省*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 轻量级 可调 分组 密码 实现 方法 系统 电子设备 以及 可读 存储 介质 | ||
1.一种轻量级可调分组密码实现方法,其特征在于:包括如下步骤:
步骤1:获取明文作为待加密数据或密文作为待解密数据,并确定总轮数Nr;
步骤2:若是加密运算,则采用轻量级可调分组密码算法对所述待加密数据进行加密得到密文,其中,所述轻量级可调分组密码算法的每一轮加密过程中依据当前轮数值和/或依据所述轻量级可调分组密码算法的初始密钥中某一位的密钥值判断是否需要对调柄进行更新,若需要,则对调柄进行更新,将更新后的调柄应用到下一轮加密过程中;
若是解密运算,则采用轻量级可调分组密码算法对所述待解密数据进行解密,其中,在每一轮的解密过程存在:第1→Nr轮解密过程中的调柄与第Nr→1轮加密过程得到的调柄是一一对应。
2.根据权利要求1所述的方法,其特征在于:依据当前轮数值和/或所述某一位的密钥值判断是否更新调柄时的判断准则为:依据当前轮数值的奇偶性、所述某一位的密钥值为1或0来判断是否需要对调柄进行更新。
3.根据权利要求2所述的方法,其特征在于:当前一轮加密过程中判断是否对调柄进行更新的过程如下:
首先,判断当前轮数控制信号count是否为偶数,若是,则对当前调柄进行更新操作;否则,执行下一步骤,所述当前轮数控制信号count值与当前轮数相关;
然后,判断初始密钥中第count+N位密钥值K[count+N]是否为1,若为1,则进行调柄更新操作,否则不进行调柄更新操作,N为明文长度。
4.根据权利要求1所述的方法,其特征在于:若获取N位明文作为待加密数据X,步骤2的执行过程如下:
S1:对待加密数据X进行P1置换;
S2:设置轮数控制信号count的初始值Q,并将步骤S1的运算结果从高位开始以每n位为一组依次分为四个数据块X0、X1、X2、X3,以及将初始密钥K的前N位从高位开始以每n位为一组依次分为四个数据块K0、K1、K2、K3,以及将2n位调柄数据T从高位开始以每n位为一组依次分为两个数据块TL和TR,其中,N=4n,Q为非负整数;
S3:对数据块Xa、Xc分别进行F1函数或F2函数运算得到数据块Xa′、Xc′,再将数据块Xb、Xa′和TL或TR进行异或运算得到数据块Xb′,以及将数据块Xd、Xc′和TR或TL进行异或运算得到数据块Xd′,所述下标a,b,c,d对应0,1,2,3或1,2,3,0;
其中,所述数据块Xa进行F1函数运算时所使用的轮密钥为数据块K0,对应所使用的调柄为数据块TL,数据块Xc进行F1函数运算时所使用的轮密钥为数据块K1,对应所使用的调柄为数据块TR;或所述数据块Xa进行F2函数运算时所使用的轮密钥为数据块K2,对应所使用的调柄为数据块TR,数据块Xc进行F2函数运算时所使用的轮密钥为数据块K3,对应所使用的调柄为数据块TL;
S4:当所述a,b,c,d对应0,1,2,3时,对数据块Xa、Xb′按照Xa,Xb′高位到低位顺序进行P2置换得到数据块Xa″,Xb″,以及对数据块Xc、Xd′按照Xc,Xd′高位到低位顺序进行P2置换得到数据块Xc″,Xd″;当所述a,b,c,d对应1,2,3,0时,对数据块Xa、Xd′按照Xd′,Xa高位到低位顺序进行P2置换得到数据块Xd″,Xa″,以及对数据块Xb′、Xc按照Xb′,Xc高位到低位顺序进行P2置换得到数据块Xb″,Xc″;
S5:对数据块Xb″、Xd″分别进行F2函数或F1函数运算得到数据块Xb′″、Xd′″,然后,将数据块Xc″、Xb′″和TR进行异或运算得到数据块Xc′″,以及将数据块Xa″、Xd′″和TL进行异或运算得到数据块Xa′″;
其中,所述数据块Xb″进行F2函数运算时所使用的轮密钥为数据块K2;数据块Xd″进行F2函数运算时所使用的轮密钥为数据块K3;或所述数据块Xb″进行F1函数运算时所使用的轮密钥为数据块K1,数据块Xd″进行F1函数运算时所使用的轮密钥为数据块K0;步骤S3和步骤S5所使用的函数不同;
S6:依据当前轮数控制信号count和/或所述轻量级可调分组密码算法的初始密钥中某一位的密钥值判断是否需要对调柄进行更新,若需要,则对调柄进行更新,将更新后的调柄从高位开始以每n位为一组依次分为数据块TL和TR,并将数据块TL和TR作为下一轮输入的调柄数据;
S7:对步骤S5运算得到的数据块Xa′″、Xc′″和步骤S4运算得到的数据块Xb″、Xd″按照Xa′″,Xb″,Xc′″,Xd″或Xd″,Xa′″,Xb″,Xc′″从高位到低位的顺序进行P1置换得到Y0,Y1,Y2,Y3,然后,判断当前轮数控制信号count是否小于轮数Nr-1+Q,若是,令count=count+1,将Y0,Y1,Y2,Y3作为新一轮输入的数据,依次赋值给X0,X1,X2,X3,再返回步骤S3;否则,将Y0,Y1,Y2,Y3作为密文从高位到低位依次输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于衡阳师范学院,未经衡阳师范学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011301394.6/1.html,转载请声明来源钻瓜专利网。