轻量级密码算法SCENERY实现方法、装置及存储介质制造方法及图纸

技术编号:23318203 阅读:61 留言:0更新日期:2020-02-11 18:54
本发明专利技术公开了一种轻量级密码算法SCENERY实现方法、装置及存储介质,其中方法包括获取待加密明文,并依此进行IP1初始置换,轮函数、密钥扩展、IP2置换,其中轮函数包括依次对数据进行轮密钥加运算、S盒置换、M矩阵置换,密钥扩展包括依次对密钥进行S盒置换、循环左移、轮常量加运算、DP动态置换。轮函数采用SPN结构的F函数,设计F函数线性层时以实现高依赖性为目的构造了一种二进制矩阵M;密钥扩展选用轮常量和密钥扩展中间结果作为控制信号,对当前轮密钥扩展中间结果进行DP动态置换获取轮密钥,这是一种新密钥扩展方式,其降低了单一密钥迭代对前轮输入的关联性,增加了破译难度,提高了安全性,能特别有效的抵抗差分与线性攻击、代数攻击。

Implementation method, device and storage medium of scenery

【技术实现步骤摘要】
轻量级密码算法SCENERY实现方法、装置及存储介质
本专利技术涉及计算机加密领域,尤其涉及一种轻量级密码算法SCENERY实现方法、装置及存储介质。
技术介绍
近年来,小型嵌入设备(如无线传感器、智能卡、射频标签)被广泛应用到许多领域。这些设备通常具有强大的成本限制,比如面积、功率、硬件方面的能耗等。由于AES等传统密码算法不适用这种极端受限的设备,所以适应于资源约束环境的轻量级分组密码算法引起了广大学者的高度重视。从2007年开始,国际学术界一些有关轻量级分组密码算法论文被陆续提出。目前已有一些轻量级分组密码算法,典型代表如PRESETNT、Twine、Piccolo、LED、LBlock、RECTANGLE、KLEIN等。目前轻量级算法存在如下的问题:1)有些轻量级分组密码算法解密过程复杂,实现解密时,不能完全复用加密过程的模块,需要消耗额外的资源;有些加密算法资源占用仍然很大,加密性能低,不便于在资源受限的设备中实现;2)轻量级分组密码算法存在安全性不高的问题。目前一些轻量级分组密码算法为了追求更小的实现本文档来自技高网...

【技术保护点】
1.一种轻量级密码算法SCENERY实现方法,其特征在于,包括以下步骤:/n步骤A1:获取64位明文作为待加密数据P,进行加密运算;/n其中,待加密数据P从高位到低位每16位一组依次排序形成4×16的数据矩阵,记作P=P

【技术特征摘要】
1.一种轻量级密码算法SCENERY实现方法,其特征在于,包括以下步骤:
步骤A1:获取64位明文作为待加密数据P,进行加密运算;
其中,待加密数据P从高位到低位每16位一组依次排序形成4×16的数据矩阵,记作P=P0P1P2P3;
步骤A2:对步骤A1所述的数据P进行IP1初始置换,并依据密钥位数确定轮数Nr,轮数控制信号初始值为1;
步骤A3:将步骤A2的运算结果划分为左右两部分,即4×8的矩阵数据块Lr、Rr;
其中,r表示当前轮数,数据块Lr由步骤A2的运算结果的每行的前8位从高位到低位依次排列获得,数据块Rr由步骤A2的运算结果的每行的后8位从高位到低位依次排列获得;
步骤A4:将步骤A3中32位数据块Lr和Rr按照Feistel结构进行F轮函数运算,每一轮F轮函数运算包括:
a)对Rr进行轮密钥加运算;
b)对a)得到的运算结果进行S盒置换;
c)对b)得到的运算结果进行M矩阵置换;
d)将c)得到的结果与Lr进行异或运算,并将异或结果作为下一轮参与F轮函数运算的Rr;同时将本轮参与F轮函数运算的输入数据块Rr作为下一轮参与F轮函数运算的Lr;
步骤A5:根据当前轮密钥和轮数控制信号,进行下一轮密钥扩展运算,包括:
e)对当前轮密钥进行S盒置换;
f)对e)得到的运算结果循环左移x位;
g)对f)得到的运算结果进行轮常量加运算;
h)对g)中的结果进行DP动态置换,得到的结果作为下一轮的轮密钥;
其中,F轮函数运算过程中,第一轮运算所使用的轮密钥为初始密钥的前32位数据,从第二轮开始依次为上一轮密钥扩展运算获得的轮密钥的前32位数据;DP动态置换是由当前轮数r和步骤g)的结果作为控制信号,动态地对步骤g)的结果进行置换;
步骤A6:判断当前轮数信号r是否小于轮数Nr,若小于,令r=r+1,将步骤A4、A5的结果作为新一轮运算的输入数据,返回步骤A4;否则,对步骤A4中d)得到的下一轮Lr、Rr进行IP2置换,然后输出加密结果。


2.根据权利要求1所述的轻量级密码算法SCENERY实现方法,其特征在于,所述步骤A2中的IP1初始置换过程如下:
将4×16的数据矩阵P按每行4位为一小单元构成一个4×4的矩阵,该4×4的矩阵表示为N={P00,P01,P02,P03,P10,P11,P12,P13,P20,P21,P22,P23,P30,P31,P32,P33};
将矩阵N依次划分为4个2×2的矩阵N0、N1、N2、N3;N0={P00,P01,P10,P11},N1={P02,P03,P12,P13},N2={P20,P21,P30,P31},N3={P22,P23,P32,P33};
分别取N0、N3的对角线(P00,P11)和(P23,P32)构成IP1置换的第一列数据,即(P00,P11,P23,P32)T;
分别取N1、N2的对角线(P12,P03)和(P31,P20)构成IP1置换的第二列数据,即(P12,P03,P31,P20)T;
分别取N3、N0的对角线(P33,P22)和(P10,P01)构成IP1置换的第三列数据,即(P33,P22,P10,P01)T;
分别取N2、N1的对角线(P21,P30)和(P02,P13)构成IP1置换的第四列数据,即(P21,P30,P02,P13)T;
将上述4×4的矩阵N经IP1初始置换后以{P00,P12,P33,P21,P11,P03,P22,P30,P23,P31,P10,P02,P32,P20,P01,P13}顺序输出,得到经IP1初始置换后的数据P′。


3.根据权利要求1所述的轻量级密码算法SCENERY实现方法,其特征在于,所述步骤A3中将步骤A2的运算结果划分为4×8的矩阵数据块Lr、Rr,其划分过程如下:
将步骤A2的运算结果即4×16的矩阵,第一行16位数据前8位划分给Lr数据块第一行,后8位划分给Rr数据块第一行,第二、三、四行依次类推,得到4×8的矩阵Lr、Rr,如下所示:





4.根据权利要求1所述的轻量级密码算法SCENERY实现方法,其特征在于,所述步骤A4中F轮函数运算的M矩阵置换采用分支数为4的32×32的二进制矩阵M实现,矩阵M表示为:



其中,M0和M1为16×16的二进制矩阵,且M0与M1分支数为4,即M0与M1每行每列1的个数为3;
矩阵M0用于置换b)得到的运算结果的前16位,矩阵M1用于置换b)得到的运算结果的后16位。


5.根据权利要求1所述的轻量级密码算法SCENERY实现方法,其特征在于,所述步骤A5中密钥扩展运算具体包括如下步骤:
将长度为64位的初始密钥从高位至低位依次排列形成4×16的密钥矩阵,记作K=K0K1K2K3,
K0={k63,k62,……,k49,k48},K1={k47,k46,……,k33,k32},
K2={k31,k30,……,k17,k16},K3={k15,k14,……,k1,k0};
e)对K0的低4位(k51,k50,k49,k48)和K1的低4位(k35,k34,k33,k32)交替构成两个4位数据(k51,k35,k50,k34)和(k49,k33,k48,k32),并分别进行S盒置换;
f)对e)运算结果循环左移11位;
g)对f)运算结果的从高位到低位的前16位进行轮常量加运算;
h)对g)的运算结果进行DP动态置换,得到的结果作为下一轮的轮密钥。


6.根据权利要求5所述的轻量级密码算法SCENERY实现方法,其特征在于...

【专利技术属性】
技术研发人员:李浪冯景亚
申请(专利权)人:衡阳师范学院
类型:发明
国别省市:湖南;43

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

1