CN113645615B - 轻量级分组密码加密及解密方法 - Google Patents
轻量级分组密码加密及解密方法 Download PDFInfo
- Publication number
- CN113645615B CN113645615B CN202110922748.7A CN202110922748A CN113645615B CN 113645615 B CN113645615 B CN 113645615B CN 202110922748 A CN202110922748 A CN 202110922748A CN 113645615 B CN113645615 B CN 113645615B
- Authority
- CN
- China
- Prior art keywords
- round
- data
- key
- function
- result obtained
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000002087 whitening effect Effects 0.000 claims abstract description 4
- 230000009466 transformation Effects 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 19
- 239000011159 matrix material Substances 0.000 claims description 15
- 238000006467 substitution reaction Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 3
- 101100127891 Caenorhabditis elegans let-4 gene Proteins 0.000 claims description 2
- VKYKSIONXSXAKP-UHFFFAOYSA-N hexamethylenetetramine Chemical compound C1N(C2)CN3CN1CN2C3 VKYKSIONXSXAKP-UHFFFAOYSA-N 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 4
- 125000004122 cyclic group Chemical group 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 2
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/03—Protecting confidentiality, e.g. by encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/041—Key generation or derivation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种轻量级分组密码加密及解密方法,轮函数中采用一种动态构成的F函数对明文数据进行加密处理,首先获取待加密明文数据并分为4分支明文数据组,每分支明文数据组同时进行动态F函数运算后,进行P置换,以此完成一轮函数加密,共进行15轮迭代加密,最后进行一次轮密钥的“白化”操作后,最终得到密文输出。该F函数为由轮常量加、S盒替换、列混淆、轮密钥加4个组件参与运算时的顺序循环移动构成的动态结构。其中S盒替换由一种新的类似广义Feistel结构构成,硬件实现代价小。每轮密钥更新完成后,更新后的轮密钥也分为4分支参与F函数中的轮密钥加运算。本发明使得密码算法结构设计更灵活,且能在较低的实现代价下具有更高的安全性。
Description
技术领域
本发明涉及信息加密技术领域,具体涉及一种轻量级分组密码加密及解密方法。
背景技术
随着物联网的发展,无线射频识别(RFID)和无线传感器网络(WSN)等技术得到了广泛应用,轻量级加密算法日益受到人们的关注。轻量级分组密码算法作为一种特殊的分组密码算法,它们在硬件实现、加密速度、运行功耗等方面与AES等高强密码算法相比有明显的优势,更适合物联网微型计算设备使用。由于这些微型嵌入式设备自身存在计算能力弱、存储空间以及能力来源非常有限的特点,对于这些资源严格受限的设备,传统密码算法实现规模(资源面积)相对较大,不适合应用,因此密码学界的设计者们提出轻量级密码来保证物联网产业信息安全。
近年来,轻量级分组密码引起密码学家的高度重视,其设计则侧重于为资源受限设备,注重算法实现时小面积低资源与高性能。目前轻量级密码算法的设计与实现,存在高性能与高安全性矛盾的关系,造成轻量级密码算法出现实现性能高却安全性不高,或安全性高但实现性能过低的局面。对于轻量级密码算法,安全性与实现性能是最为重要的,也是最基本的,更是轻量级密码算法研究所面临的最大挑战,也是我们必须面对的挑战。本发明即给出了一种基于4分支按不同组件顺序进行加密的方法,本发明提出的加密结构灵活性大,给密码算法开发者提供了不同的设计思路。
发明内容
本发明提出了一种硬件资源消耗小且安全性高的轻量级分组密码加密方法DSA(Dynamic structure algorithm),该方法通过将明文分为4分支明文数据组后经过F函数动态结构变换,使得加密算法的结构更具灵活性,从而使算法的安全性得到提高。
本发明提供一种新的轻量级分组密码加密方法,包括如下步骤:
一种轻量级分组密码加密方法,包括以下步骤:
步骤A1:获取64位明文作为待加密数据X,进行加密运算。
其中,待加密数据X从高位到低位每16位一组依次排序形成4分支明文数据组,记作X=X0X1X2X3。
步骤A2:获取80位密钥作为初始密钥数据K,进行密钥更新运算:将初始密钥数据K循环左移7位。然后从高位到低位每16位一组依次排序分为5个密钥数据组,分别为K0、K1、K2、K3、K4。再对K0、K2的前4位数据与轮计数器r-1进行异或运算,其中r代表当前轮数。得到的运算结果进行S盒替换得到更新后的K0、K2,最后将K0、K1、K2、K3、K4依次排序作为下一轮的轮密钥。
步骤A3:对步骤A1所述的待加密数据X进行F函数运算。
其中,F函数包括轮常量加、S盒替换、列混淆、轮密钥加4个组件,并根据4个组件参与运算时的顺序,分为F1、F2、F3、F4四种结构,4分支明文数据组X0、X1、X2、X3分别进行F1、F2、F3、F4函数运算。F函数每轮运算所使用的轮密钥为密钥更新运算后的前64位数据。
设a数组中4个组件构成了F函数:a[4]=[轮常量加,S盒替换,列混淆,轮密钥加],则4个F函数中组件运算顺序以下公式表示,即Fi中第k个组件为:
Fik=a[((i-1)+(k-1))%4],i,k∈[1,4]
即X0首先进行轮常量加运算,X1首先进行S盒替换,X2首先进行列混淆变换,X3首先进行轮密钥加运算,%表示取余运算。
步骤A4:对步骤A3得到的运算结果进行P置换。
步骤A5:判断当前轮数r是否小于16,若小于,令r=r+1,将步骤A2、A4得到的运算结果作为新一轮运算的输入数据,返回步骤A3。否则,进行步骤A6。
步骤A6:轮密钥的“白化”操作:将步骤A5得到的运算结果与第16轮密钥更新运算获得的轮密钥的前64位数据进行异或运算,然后输出加密结果。
所述的方法,所述步骤A3中F函数包括:
F1函数运算包括:对X0依次进行轮常量加运算、S盒替换、列混淆变换和轮密钥加运算。
F2函数运算包括:对X1依次进行S盒替换、列混淆变换、轮密钥加运算和轮常量加运算。
F3函数运算包括:对X2依次进行列混淆变换、轮密钥加运算、轮常量加运算和S盒替换。
F4函数运算包括:对X3依次进行轮密钥加运算、轮常量加运算、S盒替换和列混淆变换。
所述的方法,所述步骤A3中,轮常量加运算过程为:每轮在进行轮常量加运算时,将进行F函数运算的每分支数据的前4位数据与4位常量进行异或运算,其中常量更新方式为:将4位常量(rc3,rc2,rc1,rc0)左移一位,更新值的计算式为:该4位常量初始化为全0的状态。其元素如下表所示:
所述的方法,所述步骤A3中轮密钥加运算进一步包括以下处理步骤:
每轮在进行轮密钥加运算时,进行F1函数运算的第1分支数据与密钥更新运算获得的K3进行异或运算,进行F2函数运算的第2分支数据与密钥更新运算获得的K2进行异或运算,进行F3函数运算的第3分支数据与密钥更新运算获得的K1进行异或运算,进行F4函数运算的第4分支数据与密钥更新运算获得的K0进行异或运算。
所述的方法,所述步骤A3中S盒替换包括以下步骤:
该S盒包括3个或非门、3个异或门、1个与非门、1个异或非门,用x0,x1,x2,x3代表S盒的4个输入位,其中x0为最低有效位,则S盒构成进一步包括以下步骤:
1)对x0进行更新,更新后的x0为:
2)将1)得到的结果循环左移1位,即:
[x2x1x0x3]←[x3x2x1x0]。
3)将2)得到的结果按上述1)2)步骤迭代2轮。
4)将3)得到的结果对x0进行更新,更新后的x0用公式表示,即:
经过上述1)2)3)4)步骤后的x0,x1,x2,x3即为S盒的4个输出位,S盒中元素如下表所示,其中数据以16进制表示,其中x表示进行S盒替换前的值,S[x]表示进行S盒替换后的值:
所述的方法,所述步骤A3中列混淆包括以下步骤:
采用AES算法中的列混淆变换矩阵M,在GF(24)上进行矩阵M的乘法运算,其中GF(24)表示为一个不可约多项式x4+x+1,M矩阵公式如下,其中数据以16进制表示,
所述的方法,所述步骤A4中P置换运算过程如下:
基于按位排列的置换方式来实现P置换运算,其中置换层的各比特值P(i)通过以下等式得到,其中i表示中间数据的第i位:
p(i)=63-i/4(i%4==0)
p(i)=47-i/4(i%4==1)
p(i)=31-i/4(i%4==2)
p(i)=15-i/4(i%4==3)
所述的方法,所述步骤A2中密钥更新运算进一步包括以下处理步骤:
7)获取80位密钥作为初始密钥数据K(k79k78···k1k0)。
8)将初始密钥数据K循环左移7位,即:
[k79k78…k1k0]→[k72k71…k0k79…k73]。
9)将2)得到的运算结果从高位到低位每16位一组依次排序分为5个密钥数据组,分别为K0(k72k71···k58k57)、K1(k56k55···k42k41)、K2(k40k39···k26k25)、K3(k24k23···k10k9)、K4(k8···k0k79···k73);
10)对3)中K0、K2的前4位数据与轮计数器r-1进行异或运算,其中r代表当前轮数,即:
11)对4)得到的运算结果进行S盒替换,此时得到经4)、5)更新后的K0、K2,即:
12)经上述2)至5)密钥更新运算完成后的K0、K1、K2、K3、K4依次排序作为下一轮的轮密钥,每轮运算所使用的轮密钥为密钥更新运算后的前64位数据。
一种轻量级分组密码解密方法,基于所述的加密方法得到的加密结果进行解密,包括以下步骤:
步骤B1:获取64位密文作为待解密数据Y。
步骤B2:将待解密数据Y与加密过程第16轮子密钥进行异或运算。
步骤B3:对步骤B2得到的运算结果进行P逆置换。
步骤B4:对步骤B3得到的运算结果从高位到低位每16位一组依次排序形成4分支数据块,分别为C0、C1、C2、C3,进行F函数逆运算,F函数逆运算由轮常量加、逆S盒替换、逆列混淆变换、轮密钥加4个组件构成,即C0、C1、C2、C3分别进行F1、F2、F3、F4函数逆运算。
F1函数逆运算包括:
5)对C0进行轮密钥加运算。
6)对1)得到的运算结果进行逆列混淆变换。
7)对2)得到的运算结果进行逆S盒替换。
8)对3)得到的运算结果进行轮常量加运算。
F2函数逆运算包括:
5)对C1进行轮常量加运算。
6)对1)得到的运算结果进行轮密钥加运算。
7)对2)得到的运算结果进行逆列混淆变换。
8)对3)得到的运算结果进行逆S盒替换。
F3函数逆运算包括:
5)对C2进行逆S盒替换。
6)对1)得到的运算结果进行轮常量加运算。
7)对2)得到的运算结果进行轮密钥加运算。
8)对3)得到的运算结果进行逆列混淆变换。
F4函数逆运算包括:
5)对C3进行逆列混淆变换。
6)对1)得到的运算结果进行逆S盒替换。
7)对2)得到的运算结果进行轮常量加运算。
8)对3)得到的运算结果进行轮密钥加运算。
步骤B5:判断当前轮数r是否小于16,若小于,令r=r+1,将步骤B4得到的运算结果作为新一轮运算的输入数据,返回步骤B3。否则,输出解密结果。
其中,每一轮F函数逆运算中的轮密钥与加密过程中轮密钥使用顺序相反,即解密过程中F函数逆运算中的第1轮轮密钥与加密过程中F函数运算的第16轮轮密钥相同,以此类推。
所述的方法,所述步骤B3中P逆置换包括以下步骤:
设0≤i≤15,i表示中间数据的第i位,表示公式如下:
pi←p63-4×i
pi+16←p62-4×i
pi+32←p61-4×i
pi+48←p60-4×i
其中←左侧表示P逆置换前的值,←右侧表示P逆置换后的值。
本发明的技术效果在于,通过本发明所设计的一种动态算法结构,即轮函数由动态F函数与P置换构成,可以通过每分支采用不同的F函数结构,即每分支数据块经过不同的组件顺序运算,改善了算法结构的灵活性,增加了密码算法的安全性。
附图说明
图1为本发明所述的算法结构加密流程图;
图2为本发明所述的S盒结构图。
图3为本发明所述的P置换结构图。
图4为本发明所述的密码算法在FPGA硬件实现时算法时钟周期与时钟频率截图。
具体实施方式
本发明实施例提供了一种新的轻量级分组密码加密方法,此方法通过明文分为4个分支进行由不同组件顺序构成的动态F函数运算,再进行P置换,以此构成扩散速度快且高效的轮函数,从而提高算法的安全性。下面本发明将以明文长度为64为例进行,结合实施例对本发明做进一步的说明。
本实施例提供的一种新的轻量级分组密码加密方法,包括以下步骤:
步骤A1:获取64位明文作为待加密数据X,将待加密数据X从高位到低位每16位一组形成4分支明文数据组,记作X=X0X1X2X3。
步骤A2:获取80位密钥作为初始密钥数据K(k79k78…k1k0),将初始密钥数据K循环左移4位;将上一步得到的运算结果从高位到低位每16位一组依次排序分为5个密钥数据组,分别为K0(k72k71···k58k57)、K1(k56k55···k42k41)、K2(k40k39···k26k25)、K3(k24k23···k10k9)、K4(k8···k0k79···k73);将上一步K0、K2的前4位数据与轮计数器(r-1,r代表轮数)进行异或运算,再对其进行S盒替换,此时得到更新后的K0、K2。具体操作步骤如下:
1)[k79k78…k1k0]→[k72k71…k0k79…k73];
2)
经上述密钥更新运算完成后的K0、K1、K2、K3、K4依次排序作为下一轮的轮密钥,每轮运算所使用的轮密钥为密钥更新运算后的前64位数据
步骤A3:对步骤A1所述的待加密数据X进行F函数运算,F函数是一种动态结构,由轮常量加、S盒替换、列混淆、轮密钥加4个组件构成,根据4个组件参与运算时的顺序循环移动,分为F1、F2、F3、F4四种结构,4分支明文数据组X0、X1、X2、X3分别进行F1、F2、F3、F4函数运算。设F函数由a数组中的4个组件构成:a[4]=[轮常量加,S盒替换,列混淆,轮密钥加],则4个F函数中组件运算顺序可用以下公式表示,Fi中第k个组件为:
Fik=a[((i-1)+(k-1))%4],i,k∈[1,4]
F1函数运算包括:
1)对X0进行轮常量加运算;
2)对1)得到的运算结果进行S盒替换;
3)对2)得到的运算结果进行列混淆变换;
4)对3)得到的运算结果进行轮密钥加运算;
F2函数运算包括:
1)对X1进行S盒替换;
2)对1)得到的运算结果进行列混淆变换;
3)对2)得到的运算结果进行轮密钥加运算;
4)对3)得到的运算结果进行轮常量加运算;
F3函数运算包括:
1)对X2进行列混淆变换;
2)对1)得到的运算结果进行轮密钥加运算;
3)对2)得到的运算结果进行轮常量加运算;
4)对3)得到的运算结果进行S盒替换;
F4函数运算包括:
1)对X3进行轮密钥加运算;
2)对1)得到的运算结果进行轮常量加运算;
3)对2)得到的运算结果进行S盒替换;
4)对3)得到的运算结果进行列混淆变换;
轮常量加运算:每轮运算进行前先完成一次更新,更新方式为:将4位常量(rc3,rc2,rc1,rc0)左移一位,更新值的计算式为:该4位常量初始化为全0的状态。其元素如表1所示。
表1轮常量加变换常数
将进行F函数运算的每16位明文中间数据的前4位数据与上述更新方式得到的4位常量进行异或运算。
S盒替换:采用类似广义Feistel结构构造的S盒,其元素如表2所示,其中数据以16进制表示。
表2S盒元素列表
列混淆变换:采用AES算法中的列混淆变换矩阵M,在GF(24)上进行矩阵M的乘法运算,其中GF(24)表示为一个不可约多项式x4+x+1。GF(24)是在分组密码中常用的有限域,它表示该域总共只有24个元素。M矩阵公式如下,其中数据以16进制表示。
轮密钥加运算:进行F1函数运算的第1分支数据与密钥更新运算获得的K3进行异或运算,进行F2函数运算的第2分支数据与密钥更新运算获得的K2进行异或运算,进行F3函数运算的第3分支数据与密钥更新运算获得的K1进行异或运算,进行F4函数运算的第4分支数据与密钥更新运算获得的K0进行异或运算。
步骤A4:设置一种新的按位排列的置换方式,即P置换。对步骤A3运算得到的结果进行P置换,其置换方式如表3所示。
表3P置换表
步骤A5:判断当前轮数r是否小于16,若小于,令r=r+1,将步骤A2、A3得到的运算结果作为新一轮运算的输入数据,返回步骤A3;否则,进行步骤A6;
步骤A6:轮密钥的“白化”操作:将步骤A5得到的运算结果与第16轮密钥更新运算获得的轮密钥的前64位数据进行异或运算,然后输出加密结果。
所述方法除了加密过程,还包括解密过程,所述解密过程包括如下步骤:
步骤B1:获取64位密文作为待解密数据Y,将Y与加密过程第16轮更新后的密钥的前64位数据进行异或运算。
步骤B2:对步骤B1得到的运算结果进行P逆置换,置换方式如表4所示。
表4P逆置换表
步骤B3:对步骤B3得到的运算结果从高位到低位每16位一组依次排序形成4分支数据块,分别为C0、C1、C2、C3,进行F函数逆运算,F函数由轮常量加、逆S盒替换、逆列混淆变换、轮密钥加4个组件构成,即C0、C1、C2、C3分别进行F1、F2、F3、F4函数逆运算。
F1函数逆运算包括:
1)对C0进行轮密钥加运算;
2)对1)得到的运算结果进行逆列混淆变换;
3)对2)得到的运算结果进行逆S盒替换;
4)对3)得到的运算结果进行轮常量加运算;
F2函数逆运算包括:
1)对C1进行轮常量加运算;
2)对1)得到的运算结果进行轮密钥加运算;
3)对2)得到的运算结果进行逆列混淆变换;
4)对3)得到的运算结果进行逆S盒替换;
F3函数逆运算包括:
1)对C2进行逆S盒替换;
2)对1)得到的运算结果进行轮常量加运算;
3)对2)得到的运算结果进行轮密钥加运算;
4)对3)得到的运算结果进行逆列混淆变换;
F4函数逆运算包括:
1)对C3进行逆列混淆变换;
2)对1)得到的运算结果进行逆S盒替换;
3)对2)得到的运算结果进行轮常量加运算;
4)对3)得到的运算结果进行轮密钥加运算;
轮常量加运算:每轮在进行轮常量加运算时,将进行F函数运算的每分支数据的前4位数据与4位常量进行异或运算。其中,每一轮F函数逆运算中的轮常量与加密过程中轮常量使用顺序相反。
逆S盒替换:采用PRESENT算法解密过程的S盒,其元素如表5所示,其中数据以16进制表示。
表5S-1盒元素列表
逆列混淆变换:逆列混淆变换矩阵为逆矩阵M-1,M-1矩阵公式如下,其中数据以16进制表示。
步骤B4:判断当前轮数r是否小于16,若小于,令r=r+1,将步骤B4得到的运算结果作为新一轮运算的输入数据,返回步骤B3;否则,输出解密结果。
其中,每一轮F函数逆运算中的轮密钥与加密过程中轮密钥使用顺序相反。
测试:
对本发明实施例提供的方法进行测试,其中本发明提供的密码算法数据如表6所示:
表6实验测试数据
本发明所述的密码算法在Xilinx Virtex-5 FPGA硬件实现时,算法时钟周期是2.926ns,时钟频率为341.728MHz,吞吐率为1366.912Mbps。下表为最小密钥长的典型轻量级密码算法FPGA硬件实现。
表7各轻量级密码算法FPGA实现
本发明所述的密码算法在ASIC硬件实现时,综合工艺库为IBM130nm-8RF。算法所占用的资源面积为1581.5GEs。下表为最小密钥长的典型轻量级密码算法ASIC硬件实现。
表8各轻量级密码算法ASIC实现
算法 | 结构 | 分组长度(bits) | 密钥长度(bits) | 资源面积(GEs) |
Piccolo-80 | GFN | 64 | 80 | 1136 |
PRESNET-80 | SPN | 64 | 80 | 1570 |
KLEIN-64 | SPN | 64 | 64 | 1220 |
LBlock | Feistel | 64 | 80 | 1320 |
Twine-80 | Feistel | 64 | 80 | 1503 |
LED-64 | SPN | 64 | 80 | 1040 |
MIBS-64 | Feistel | 64 | 64 | 1396 |
SCENERY-64 | Feistel | 64 | 64 | 1190 |
DSA | SPN | 64 | 80 | 1581.5 |
通过表7与表8中数据对比表明,DSA与目前的轻量级分组密码相比较,在面积资源同样轻量的情况下,频率以及吞吐率具有较高的性能。
需要强调的是,以上所述本发明实施例是非限制性的,对于本领域的技术人员,凡是不脱离本发明宗旨,根据本发明技术方案所作的任何修改,均应包含在本发明的保护范围之内。
Claims (5)
1.一种轻量级分组密码加密方法,其特征在于,包括以下步骤:
步骤A1:获取64位明文作为待加密数据X,进行加密运算;
其中,待加密数据X从高位到低位每16位一组依次排序形成4分支明文数据组,记作X=X0X1X2X3;
步骤A2:获取80位密钥作为初始密钥数据K,进行密钥更新运算:将初始密钥数据K循环左移7位;然后从高位到低位每16位一组依次排序分为5个密钥数据组,分别为K0、K1、K2、K3、K4;再对K0、K2的前4位数据与轮计数器r-1进行异或运算,其中r代表当前轮数;得到的运算结果进行S盒替换得到更新后的K0、K2,最后将K0、K1、K2、K3、K4依次排序作为下一轮的轮密钥;
步骤A3:对步骤A1所述的待加密数据X进行F函数运算;
其中,F函数包括轮常量加、S盒替换、列混淆、轮密钥加4个组件,并根据4个组件参与运算时的顺序,分为F1、F2、F3、F4四种结构,4分支明文数据组X0、X1、X2、X3分别进行F1、F2、F3、F4函数运算;F函数每轮运算所使用的轮密钥为密钥更新运算后的前64位数据;
设a数组中4个组件构成了F函数:a[4]=[轮常量加,S盒替换,列混淆,轮密钥加],则4个F函数中组件运算顺序以下公式表示,即Fi中第k个组件为:
Fik=a[((i-1)+(k-1))%4],i,k∈[1,4]
即X0首先进行轮常量加运算,X1首先进行S盒替换,X2首先进行列混淆变换,X3首先进行轮密钥加运算,%表示取余运算;
步骤A4:对步骤A3得到的运算结果进行P置换;
步骤A5:判断当前轮数r是否小于16,若小于,令r=r+1,将步骤A2、A4得到的运算结果作为新一轮运算的输入数据,返回步骤A3;否则,进行步骤A6;
步骤A6:轮密钥的“白化”操作:将步骤A5得到的运算结果与第16轮密钥更新运算获得的轮密钥的前64位数据进行异或运算,然后输出加密结果;
所述步骤A3中,轮常量加运算过程为:每轮在进行轮常量加运算时,将进行F函数运算的每分支数据的前4位数据与4位常量进行异或运算,其中常量更新方式为:将4位常量(rc3,rc2,rc1,rc0)左移一位,更新值的计算式为:该4位常量初始化为全0的状态;其元素如下表所示:
所述步骤A3中轮密钥加运算进一步包括以下处理步骤:
每轮在进行轮密钥加运算时,进行F1函数运算的第1分支数据与密钥更新运算获得的K3进行异或运算,进行F2函数运算的第2分支数据与密钥更新运算获得的K2进行异或运算,进行F3函数运算的第3分支数据与密钥更新运算获得的K1进行异或运算,进行F4函数运算的第4分支数据与密钥更新运算获得的K0进行异或运算;
所述步骤A3中S盒替换包括以下步骤:
该S盒包括3个或非门、3个异或门、1个与非门、1个异或非门,用x0,x1,x2,x3代表S盒的4个输入位,其中x0为最低有效位,则S盒构成进一步包括以下步骤:
1)对x0进行更新,更新后的x0为:
2)将1)得到的结果循环左移1位,即:
[x2x1x0x3]←[x3x2x1x0];
3)将2)得到的结果按上述1)2)步骤迭代2轮;
4)将3)得到的结果对x0进行更新,更新后的x0用公式表示,即:
经过上述1)2)3)4)步骤后的x0,x1,x2,x3即为S盒的4个输出位,S盒中元素如下表所示,其中数据以16进制表示,其中x表示进行S盒替换前的值,S[x]表示进行S盒替换后的值:
所述步骤A3中列混淆包括以下步骤:
采用AES算法中的列混淆变换矩阵M,在GF(24)上进行矩阵M的乘法运算,其中GF(24)表示为一个不可约多项式x4+x+1,M矩阵公式如下,其中数据以16进制表示,
所述步骤A4中P置换运算过程如下:
基于按位排列的置换方式来实现P置换运算,其中置换层的各比特值P(i)通过以下等式得到,其中i表示中间数据的第i位:
p(i)=63-i/4(i%4==0)
p(i)=47-i/4(i%4==1)
p(i)=31-i/4(i%4==2)
p(i)=15-i/4(i%4==3)。
2.根据权利要求1所述的方法,其特征在于,所述步骤A3中F函数包括:
F1函数运算包括:对X0依次进行轮常量加运算、S盒替换、列混淆变换和轮密钥加运算;
F2函数运算包括:对X1依次进行S盒替换、列混淆变换、轮密钥加运算和轮常量加运算;
F3函数运算包括:对X2依次进行列混淆变换、轮密钥加运算、轮常量加运算和S盒替换;
F4函数运算包括:对X3依次进行轮密钥加运算、轮常量加运算、S盒替换和列混淆变换。
3.根据权利要求1所述的方法,其特征在于,所述步骤A2中密钥更新运算进一步包括以下处理步骤:
1)获取80位密钥作为初始密钥数据K(k79k78…k1k0);
2)将初始密钥数据K循环左移7位,即:
[k79k78…k1k0]→[k72k71…k0k79…k73];
3)将2)得到的运算结果从高位到低位每16位一组依次排序分为5个密钥数据组,分别为K0(k72k71…k58k57)、K1(k56k55…k42k41)、K2(k40k39…k26k25)、K3(k24k23…k10k9)、K4(k8…k0k79…k73);
4)对3)中K0、K2的前4位数据与轮计数器r-1进行异或运算,其中r代表当前轮数,
即:
5)对4)得到的运算结果进行S盒替换,此时得到经4)、5)更新后的K0、K2,即:
6)经上述2)至5)密钥更新运算完成后的K0、K1、K2、K3、K4依次排序作为下一轮的轮密钥,每轮运算所使用的轮密钥为密钥更新运算后的前64位数据。
4.一种轻量级分组密码解密方法,其特征在于,基于权利要求1-3任一所述的方法得到的加密结果进行解密,包括以下步骤:
步骤B1:获取64位密文作为待解密数据Y;
步骤B2:将待解密数据Y与加密过程第16轮子密钥进行异或运算;
步骤B3:对步骤B2得到的运算结果进行P逆置换;
步骤B4:对步骤B3得到的运算结果从高位到低位每16位一组依次排序形成4分支数据块,分别为C0、C1、C2、C3,进行F函数逆运算,F函数逆运算由轮常量加、逆S盒替换、逆列混淆变换、轮密钥加4个组件构成,即C0、C1、C2、C3分别进行F1、F2、F3、F4函数逆运算;
F1函数逆运算包括:
1)对C0进行轮密钥加运算;
2)对1)得到的运算结果进行逆列混淆变换;
3)对2)得到的运算结果进行逆S盒替换;
4)对3)得到的运算结果进行轮常量加运算;
F2函数逆运算包括:
1)对C1进行轮常量加运算;
2)对1)得到的运算结果进行轮密钥加运算;
3)对2)得到的运算结果进行逆列混淆变换;
4)对3)得到的运算结果进行逆S盒替换;
F3函数逆运算包括:
1)对C2进行逆S盒替换;
2)对1)得到的运算结果进行轮常量加运算;
3)对2)得到的运算结果进行轮密钥加运算;
4)对3)得到的运算结果进行逆列混淆变换;
F4函数逆运算包括:
1)对C3进行逆列混淆变换;
2)对1)得到的运算结果进行逆S盒替换;
3)对2)得到的运算结果进行轮常量加运算;
4)对3)得到的运算结果进行轮密钥加运算;
步骤B5:判断当前轮数r是否小于16,若小于,令r=r+1,将步骤B4得到的运算结果作为新一轮运算的输入数据,返回步骤B3;否则,输出解密结果;
其中,每一轮F函数逆运算中的轮密钥与加密过程中轮密钥使用顺序相反,即解密过程中F函数逆运算中的第1轮轮密钥与加密过程中F函数运算的第16轮轮密钥相同,以此类推;
轮常量加运算过程为:每轮在进行轮常量加运算时,将进行F函数运算的每分支数据的前4位数据与4位常量进行异或运算,其中常量更新方式为:将4位常量(rc3,rc2,rc1,rc0)左移一位,更新值的计算式为:该4位常量初始化为全0的状态;其元素如下表所示:
轮密钥加运算进一步包括以下处理步骤:
每轮在进行轮密钥加运算时,进行F1函数运算的第1分支数据与密钥更新运算获得的K3进行异或运算,进行F2函数运算的第2分支数据与密钥更新运算获得的K2进行异或运算,进行F3函数运算的第3分支数据与密钥更新运算获得的K1进行异或运算,进行F4函数运算的第4分支数据与密钥更新运算获得的K0进行异或运算;
S盒替换包括以下步骤:
该S盒包括3个或非门、3个异或门、1个与非门、1个异或非门,用x0,x1,x2,x3代表S盒的4个输入位,其中x0为最低有效位,则S盒构成进一步包括以下步骤:
1)对x0进行更新,更新后的x0为:
2)将1)得到的结果循环左移1位,即:
[x2x1x0x3]←[x3x2x1x0];
3)将2)得到的结果按上述1)2)步骤迭代2轮;
4)将3)得到的结果对x0进行更新,更新后的x0用公式表示,即:
经过上述1)2)3)4)步骤后的x0,x1,x2,x3即为S盒的4个输出位,S盒中元素如下表所示,其中数据以16进制表示,其中x表示进行S盒替换前的值,S[x]表示进行S盒替换后的值:
列混淆包括以下步骤:
采用AES算法中的列混淆变换矩阵M,在GF(24)上进行矩阵M的乘法运算,其中GF(24)表示为一个不可约多项式x4+x+1,M矩阵公式如下,其中数据以16进制表示,
P置换运算过程如下:
基于按位排列的置换方式来实现P置换运算,其中置换层的各比特值P(i)通过以下等式得到,其中i表示中间数据的第i位:
p(i)=63-i/4(i%4==0)
p(i)=47-i/4(i%4==1)
p(i)=31-i/4(i%4==2)
p(i)=15-i/4(i%4==3)。
5.根据权利要求4所述的方法,其特征在于,所述步骤B3中P逆置换包括以下步骤:
设0≤i≤15,i表示中间数据的第i位,表示公式如下:
pi←p63-4×i
pi+16←p62-×i
pi+3←p61-×i
pi+48←p60-4×i
其中←左侧表示P逆置换前的值,←右侧表示P逆置换后的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110922748.7A CN113645615B (zh) | 2021-08-12 | 2021-08-12 | 轻量级分组密码加密及解密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110922748.7A CN113645615B (zh) | 2021-08-12 | 2021-08-12 | 轻量级分组密码加密及解密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113645615A CN113645615A (zh) | 2021-11-12 |
CN113645615B true CN113645615B (zh) | 2023-12-22 |
Family
ID=78420977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110922748.7A Active CN113645615B (zh) | 2021-08-12 | 2021-08-12 | 轻量级分组密码加密及解密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113645615B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826560B (zh) * | 2022-05-07 | 2023-05-05 | 衡阳师范学院 | 一种轻量级分组密码cref实现方法及系统 |
CN115694796A (zh) * | 2022-10-08 | 2023-02-03 | 国网江苏省电力有限公司电力科学研究院 | 物联网安全加密方法、装置、存储介质和电子设备 |
CN115987489B (zh) * | 2022-12-28 | 2023-10-20 | 北京电子科技学院 | 一种轻量级的加密解密方法、装置和存储介质 |
CN116388963B (zh) * | 2023-03-30 | 2024-08-27 | 国网江苏省电力有限公司电力科学研究院 | 一种分组加密方法、装置及系统 |
CN116455570B (zh) * | 2023-06-14 | 2023-09-05 | 北京集度科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN117592090B (zh) * | 2024-01-19 | 2024-05-17 | 中国人民解放军海军青岛特勤疗养中心 | 一种护理体检数据智能分析及管理方法 |
CN117978367B (zh) * | 2024-03-28 | 2024-06-28 | 青岛青软晶尊微电子科技有限公司 | 一种基于risc-v架构的加密方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010045843A1 (zh) * | 2008-10-23 | 2010-04-29 | 国民技术股份有限公司 | 抵御差分能量攻击的aes加密方法 |
WO2012154129A1 (en) * | 2011-05-10 | 2012-11-15 | Nanyang Technological University | Devices for computer-based generating of a mixing matrix for cryptographic processing of data, encrypting devices, methods for computer-based generating of a mixing matrix for cryptographic processing of data and encrypting methods |
CN103684749A (zh) * | 2013-11-26 | 2014-03-26 | 衡阳师范学院 | 一种基于面积与性能平衡优化的klein加密实现方法 |
CN104065474A (zh) * | 2014-07-14 | 2014-09-24 | 衡阳师范学院 | 一种新型低资源高效的轻量级Surge分组密码实现方法 |
CN104333446A (zh) * | 2014-11-10 | 2015-02-04 | 衡阳师范学院 | 一种新型超轻量级qtl分组密码实现方法 |
CA2968038A1 (en) * | 2014-12-03 | 2016-06-09 | Nagravision S.A. | Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method |
CN107707343A (zh) * | 2017-11-08 | 2018-02-16 | 贵州大学 | 加解密一致的sp网络结构轻量级lbt分组密码实现方法 |
CN110572255A (zh) * | 2019-09-26 | 2019-12-13 | 衡阳师范学院 | 轻量级分组密码算法Shadow实现方法、装置及计算机可读介质 |
CN111431697A (zh) * | 2020-03-31 | 2020-07-17 | 衡阳师范学院 | 一种新型轻量级分组密码corl的实现方法 |
CN111478766A (zh) * | 2020-01-21 | 2020-07-31 | 衡阳师范学院 | 一种分组密码meg实现方法、装置及存储介质 |
-
2021
- 2021-08-12 CN CN202110922748.7A patent/CN113645615B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010045843A1 (zh) * | 2008-10-23 | 2010-04-29 | 国民技术股份有限公司 | 抵御差分能量攻击的aes加密方法 |
WO2012154129A1 (en) * | 2011-05-10 | 2012-11-15 | Nanyang Technological University | Devices for computer-based generating of a mixing matrix for cryptographic processing of data, encrypting devices, methods for computer-based generating of a mixing matrix for cryptographic processing of data and encrypting methods |
CN103684749A (zh) * | 2013-11-26 | 2014-03-26 | 衡阳师范学院 | 一种基于面积与性能平衡优化的klein加密实现方法 |
CN104065474A (zh) * | 2014-07-14 | 2014-09-24 | 衡阳师范学院 | 一种新型低资源高效的轻量级Surge分组密码实现方法 |
CN104333446A (zh) * | 2014-11-10 | 2015-02-04 | 衡阳师范学院 | 一种新型超轻量级qtl分组密码实现方法 |
CA2968038A1 (en) * | 2014-12-03 | 2016-06-09 | Nagravision S.A. | Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method |
CN107707343A (zh) * | 2017-11-08 | 2018-02-16 | 贵州大学 | 加解密一致的sp网络结构轻量级lbt分组密码实现方法 |
CN110572255A (zh) * | 2019-09-26 | 2019-12-13 | 衡阳师范学院 | 轻量级分组密码算法Shadow实现方法、装置及计算机可读介质 |
CN111478766A (zh) * | 2020-01-21 | 2020-07-31 | 衡阳师范学院 | 一种分组密码meg实现方法、装置及存储介质 |
CN111431697A (zh) * | 2020-03-31 | 2020-07-17 | 衡阳师范学院 | 一种新型轻量级分组密码corl的实现方法 |
Non-Patent Citations (4)
Title |
---|
Midori密码算法FPGA优化研究;冯景亚;李浪;郭影;黄现彤;;衡阳师范学院学报(第03期);全文 * |
一种轻量级TWINE密码硬件优化实现研究;李浪;邹;贺位位;李仁发;刘波涛;;计算机科学(第02期);全文 * |
冯景亚 ; 李浪 ; 郭影 ; 黄现彤 ; .Midori密码算法FPGA优化研究.衡阳师范学院学报.2020,(第03期),全文. * |
李浪 ; 邹祎 ; 贺位位 ; 李仁发 ; 刘波涛 ; .一种轻量级TWINE密码硬件优化实现研究.计算机科学.2015,(第02期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN113645615A (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113645615B (zh) | 轻量级分组密码加密及解密方法 | |
EP1583278B1 (en) | Stream Cipher Design with Revolving Buffers | |
CN110572255B (zh) | 基于轻量级分组密码算法Shadow的加密方法、装置及计算机可读介质 | |
Juremi et al. | A proposal for improving AES S-box with rotation and key-dependent | |
Biryukov et al. | Cryptanalysis of Feistel networks with secret round functions | |
KR101324351B1 (ko) | 암호 기반 메시지 인증 코드를 생성하는 방법 | |
US20110211688A1 (en) | Data converter, data conversion method and program | |
US10903978B2 (en) | Method of encryption with dynamic diffusion and confusion layers | |
KR100800468B1 (ko) | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 | |
Sulaiman et al. | Enhancing advanced encryption standard S-box generation based on round key | |
Aggarwal et al. | Performance evaluation of RC6, blowfish, DES, IDEA, CAST-128 block ciphers | |
Waqas et al. | Generation of AES-like S-boxes by replacing affine matrix | |
Al-Wattar et al. | A new DNA-based S-box | |
WO2014013680A1 (ja) | ユニバーサルハッシュ関数演算装置、方法およびプログラム | |
Park et al. | Parallel implementations of SIMON and SPECK | |
CN112287333B (zh) | 一种轻量级可调分组密码实现方法、系统、电子设备以及可读存储介质 | |
Dobraunig et al. | Ascon v1 | |
Muhalhal et al. | A hybrid modified lightweight algorithm for achieving data integrity and confidentiality | |
CN116722967A (zh) | 一种轻量级联合编码的密码实现方法及系统 | |
Mohan et al. | Revised aes and its modes of operation | |
Ibraheem et al. | Anti-collision enhancement of a SHA-1 digest using AES encryption by LABVIEW | |
Al-hazaimeh et al. | Analytical Approach for Data Encryption Standard Algorithm. | |
Shahverdi et al. | AVRprince-an efficient implementation of PRINCE for 8-bit microprocessors | |
CN113343276B (zh) | 基于广义二维猫映射的轻量级分组密码算法gcm的加密方法 | |
Nafl et al. | Fast lightweight encryption device based on LFSR technique for increasing the speed of LED performance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |