CN111614457B - 基于p置换改进的轻量级分组加解密方法、装置及存储介质 - Google Patents
基于p置换改进的轻量级分组加解密方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111614457B CN111614457B CN202010436676.0A CN202010436676A CN111614457B CN 111614457 B CN111614457 B CN 111614457B CN 202010436676 A CN202010436676 A CN 202010436676A CN 111614457 B CN111614457 B CN 111614457B
- Authority
- CN
- China
- Prior art keywords
- round
- bits
- round key
- inverse
- key
- 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
Images
Classifications
-
- 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
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于P置换改进的轻量级分组加解密方法、装置及存储介质,该方法采用的是具有分支的SPN结构;每一轮轮运算的加密过程可分为轮密钥加运算、S盒替换、P置换、轮密钥加运算;在P置换时根据轮数采用分支结构,将参与的数据分为高32位和低32位两个分支:若轮数为奇数轮时,高32位数据按其位置进行运算,低32位数据进行异或运算;若轮数为偶数轮时,高32位数据进行异或运算,低32位数据按其位置进行运算;对于轮密钥的更新也采用了奇数轮与偶数不同的原则。整个算法与传统的轻量级分组密码算法相比,本算法占用资源更小,且能抗击已知的攻击,适用于低成本、低功耗和超轻量级的实现。
Description
技术领域
本发明属于计算机领域,特别涉及一种基于P置换改进的轻量级分组加解密方法、装置及存储介质。
背景技术
随着计算机和通信技术的发展,保证信息的安全存储、安全处理和安全传输尤为重要。特别地,随着Internet的广泛应用,以及个人通信、多媒体通信、办公自动化、电子邮件、电子自动转账支付系统和自动零售业务网的建立与实现都离不开信息安全,也离不开密码技术。分组密码是密码学的一个重要分支,受到了广泛关注,并且成为密码学研究的热点课题。分组密码本质上是将固定长度的明文经过有限轮迭代置换变换,转换为相同长度的密文。分组密码具有速度快、易于标准化和便于软硬件实现等特点。面对计算机的计算能力快速提高及基于数学分析的各种攻击方法,分组密码的安全性受到了严重威胁。研发出更高强度、高效的分组密码具有相当重要意义。
近年来,随着物联网嵌入式系统、无线传感网络等新型系统的大量应用和不断发展。使得在智能卡、移动计算设备、无人机及自动驾驶等领域的数据安全问题越来越突出,利用分组密码加密技术手段解决这些问题。考虑到对于RFID标签、传感器节点等这类低成本、低功耗的资源受限应用环境,传统的分组密码标准AES、SMS4等根本无法实现。因此,研究专门适用于这类资源受限环境下的轻量级分组密码引起了国内外学者的广泛关注,是一个新兴研究领域,也是目前国际密码学研究的热点问题。
近几年,为了适应物联网环境下的资源受限设备上的信息安全问题,设计者们提出了一系列轻量级分组密码算法。2006年Deukjo Hong提出了HIGHT。2007年Bogdanov etal提出了PRESENT。2009年Maryam Izadi et al提出了MIBS。2011年Shibutani et al提出了Piccolo,Guo et al提出了LED,Huihui Yap et al提出了EPCBC。2012年Julia Borghoff提出了PRINCE,Suzaki et al提出了TWINE。2014年Donggeon Lee提出了LEA。2015年G.Yanget al提出了SIMECK,R.Beaulieu et al提出了SIMON等加密算法。我国也在轻量级分组密码算法的研究中取得了丰厚的成果。2011年Wu and Zhang et al提出了Lblock,Gong etal提出了KLEIN。Li et al在2016年、2017年、2018年分别提出了QTL、Magpie、Surge、SFN等加密算法。
目前,轻量级分组密码算法还存在许多理论和实际应用问题有待继续研究。主要问题如下:(1)在密码整体结构当中,一种是基于SPN结构的密码,该结构的密码加解密实现方式为不一致。从而需要专门设计解密算法,使得加密和解密速度慢,需要消耗更多的软硬件资源。另一种是基于Feistel网络结构的密码,虽然该结构加解密相似,消耗的软硬件资源也较少。但该结构密码算法扩散速度慢,一轮迭代运算中只有一半的分组进入轮函数,从而只能改变一半分组数据。(2)现有专用密码芯片中大多只实现了一种固定密码模式的密码算法,这种实现方式难以满足不同用户多层次的安全性需求。虽然对不同密码算法进行重构设计,在设计过程中,提取出不同算法之间的相同或相似的操作,但不同算法之间有很多不同之处,从而会造成很多面积资源的开销,使得硬件实现成本高,并且使性能效率也在很大程度上降低了。(3)分组密码算法安全性不高。随着计算能力的增强,很多密码被暴露存在各种安全问题,特别是轻量级分组密码,主要原因是密码算法本身的混淆和扩散速度有点慢。(4)分组密码的密钥扩展运算太过于简单化,或者是不进行密钥扩展运算,这样设计对于密码算法安全更是存在隐患。
发明内容
本发明提供了一种基于P置换改进的轻量级分组加解密方法、装置及存储介质,通过改进P置换操作和轮密钥更新方式,解决现有轻量级分组密码算法存在的问题:传统SPN结构的P置换简单,造成算法扩散能力差;密钥扩展算法形式单一化;轻量级分组密码算法占用资源仍然多且易受攻击,本发明所述方案在安全验证方面具有良好的抵抗攻击能力,且特别有效的抵抗差分与线性攻击、代数攻击。
本发明提供的技术方案如下:
一方面,一种基于P置换改进的轻量级分组加解密方法,包括:
步骤1:将64位明文或64位密文加载至寄存器,作为待加/解密数据;
步骤2:利用轮密钥,将待加/解密数据进行31轮轮运算,每次轮运算后对轮密钥进行更新;
加密过程中,每一轮轮运算依次包括轮密钥加操作、S盒替换操作以及P置换操作;
解密过程中,每一轮轮运算依次包括轮密钥加操作、逆P置换操作以及逆S盒替换操作;
所述S盒替换操作与逆S盒替换操作互为逆运算操作,所述P置换操作与逆P置换操作互为逆运算操作;
步骤3:再次更新轮密钥,将最后一轮轮运算的计算结果与最新的轮密钥进行轮密钥加操作,获得密文/明文;
所述P置换操作和逆P置换操作是依据轮数的奇偶性,将数据划分为高32位和低32位,分别对高32位和低32位进置换操作运算或异或运算,将高32位和低32位参与运算的中间结果进行合并;其中进行异或运算是指与轮密钥进行异或运算;
传统的SPN结构的密码算法,在P置换层仅仅使用了单一的置换操作来处理中间状态值,这种结构抵抗攻击能力弱,并且扩散慢;而本发明技术方案中所采用的分支结构的P置换操作,对于一半的数据做置换操作,另一半数据做与轮密钥的异或运算,可以有效地增加了抵抗攻击的能力,并且扩散速度快,并且本发明的硬件实现成本也降低了。
所述P置换/逆P置换操作中的异或运算是指与轮密钥进行异或运算;
每一轮的轮运算过程中,更新后的轮密钥中的低64位用于参与轮密钥加操作,更新后的轮密钥中的高32位用于P置换/逆P置换中的异或运算;在第一轮轮运算过程中使用的轮密钥为初始密钥,从第二轮开始根据轮数的奇偶性,对轮密钥进行更新。
有很多分组密码的密钥扩展运算太过于简单化,或者直接不进行密钥扩展运算,这样设计对于密码算法的安全造成了威胁,本发明技术方案所述的轮密钥更新算法根据轮数的奇偶性进行了不同的处理,这样增强了算法抵抗攻击的能力,并且所述的轮密钥分别用于轮密钥更新操作与P置换/逆P置换中的异或运算,这样有效地抵抗相关密钥攻击。
进一步地,所述轮密钥更新是指当轮数为偶数时,通过S盒替换对前一轮的轮密钥进行变换更新;当轮数为奇数时,根据循环左移列表对前一轮的轮密钥进行循环移位更新。
进一步地,所述S盒替换操作是按以下公式进行:
Bi′=S[Bi]0≤i≤15
其中,Bi和Bi′表示S盒替换操作前、后数据中的第i位;S[]表示S盒,取值为{C,5,6,B,9,0,A,D,3,E,F,8,4,7,1,2}。
进一步地,所述循环左移列表是指从第1轮到第32轮,循环左移位数位依次为{1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1}。
进一步地,P置换操作/逆P置换操作是依据轮数的奇偶性,对参与操作的数据划分为高32位和低32位:
将两次运算得到的结果进行合并得到P置换操作或逆P置换操作的结果。
另一方面,一种基于P置换改进的轻量级分组加解密装置,包括:
加载模块:用于将64位明文或64位密文加载至寄存器,作为待加/解密数据;
轮运算模块:通过利用轮密钥,将待加/解密数据进行31轮轮运算,每次轮运算后对轮密钥进行更新;
在加密过程中,每一轮轮运算依次包括轮密钥加操作单元、S盒替换操作单元以及P置换操作单元;
在解密过程中,每一轮轮运算依次包括轮密钥加操作单元、逆P置换操作单元以及逆S盒替换操作单元;
所述S盒替换操作单元与逆S盒替换操作单元互为逆运算操作单元,所述P置换操作单元与逆P置换操作单元互为逆运算操作单元;
输出模块:调用更新轮密钥单元更新轮密钥,将最后一轮轮运算的计算结果与最新的轮密钥进行轮密钥加操作,获得密文/明文;
所述P置换操作单元/逆P置换操作单元是依据轮数的奇偶性,将数据划分为高32位和低32位,分别对高32位和低32位进置换操作运算或异或运算,将高32位和低32位参与运算的中间结果进行合并;其中进行异或运算是指与轮密钥进行异或运算;
所述P置换/逆P置换操作中的异或运算是指与轮密钥进行异或运算;
每一轮的轮运算过程中,轮密钥中的低64位用于参与轮密钥加操作,轮密钥中的高32位用于P置换/逆P置换操作单元中的异或运算;在第一轮轮运算过程中使用的轮密钥为初始密钥,从第二轮开始根据轮数的奇偶性,对轮密钥进行更新。
进一步地,P置换操作单元/逆P置换操作单元是依据轮数的奇偶性,对参与操作的数据划分为高32位和低32位:
将两次运算得到的结果进行合并得到P置换操作或逆P置换操作的结果。
进一步地,所述轮密钥更新单元是指当轮数为偶数时,通过S盒替换对前一轮的轮密钥进行变换更新;当轮数为奇数时,根据循环左移列表对前一轮的轮密钥进行循环移位更新。
进一步地,所述循环左移列表是指从第1轮到第32轮,循环左移位数位依次为{1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1}。
一方面,一种计算机存储介质,包括计算机程序指令,所述计算机程序指令被处理终端执行时使所述处理终端执行上述一种基于P置换改进的轻量级分组加解密所述的方法。
有益效果
本发明提供了一种基于P置换改进的轻量级分组加解密方法、装置及存储介质,该方法虽然采用了SPN结构,但其与传统的SPN结构不同,采用的是具有分支的SPN结构;每一轮轮运算的加密过程可分为轮密钥加运算、S盒替换、P置换、轮密钥加运算;在P置换时根据轮数采用分支结构,将参与的数据分为高32位和低32位两个分支:若轮数为奇数轮时,高32位数据进行置换操作,低32位数据与轮密钥进行异或运算;若轮数为偶数轮时,高32位数据与轮密钥进行异或运算,低32位数据进行置换操作;对于轮密钥的更新也采用了奇数轮与偶数不同的原则:当轮数为偶数时,通过S盒替换表进行变换;当轮数为奇数时,根据列表进行循环左移位。整个算法与传统的轻量级分组密码算法相比,设计了新颖的置换层与密钥扩展算法。本发明提出的轻量级分组密码LRP的P置换层设计与密钥扩展算法根据奇数轮与偶数轮的不同分别执行不同的操作,由实验结果可以看出,本算法具有良好的扩散和混淆。相对其他轻量级密码算法,本算法占用资源更小,且能抗击已知的攻击。
综上所述,本发明提供的新型轻量级分组密码P置换层设计及其实现LRP,适用于低成本、低功耗和超轻量级的实现。在安全验证方面具有良好的抵抗攻击能力,且特别有效的抵抗差分与线性攻击、代数攻击。
附图说明
图1为本发明实施例所述方法的流程示意图;
图2为本发明实施例所述加密方法的流程示意图;
图3为本发明实施例所述加密过程中奇数轮的P置换流程示意图;
图4为本发明实施例所述加密过程中偶数轮的P置换流程示意图;
图5为轮密钥更新过程示意图。
具体实施方式
下面通过具体的实施例,并结合附图,对本发明做详细的说明。本发明所述技术方案的设计目标是为资源受限的环境提供加密安全性,例如RFID和传感器网络等。
本发明技术方案设计的LRP(Left Right Permutation)轻量级分组密码是一种基于P置换改进的轻量级加解密方法,其采用分支的SPN结构。算法的分组长度为64位,密钥长度为96位,算法的迭代轮数为31轮。算法的加密过程中,每一轮轮运算依次包括轮密钥加操作、S盒替换操作以及P置换操作;算法的解密过程中,每一轮轮运算包括轮密钥加操作、逆P置换操作以及S盒替换操作。LRP轻量级分组密码算法加解密过程如图1所示。
LRP轻量级分组密码加密的伪代码描述,具体过程如图2所示。
算法1:LRP密码加密过程
输入:Plaintext,Key;
输出:Ciphertext;
1.Plaintext→state;Key
2.for i=1to31 do
3.AddRoundKeys(state,key);
4.Subcell(state);
5.Permutation(state);
6.UpdataKeys(key,i);
7.for i=32do
8.AddRoundKeys(state,key);
end for
发明所述的LRP轻量级分组密码在P置换操作与逆P置换时根据轮数的奇偶性执行不同的操作处理。S盒变换操作后,将的数据划分为高32位和低32位两个分支,若轮数为奇数轮时,高32位数据进行置换操作,低32位数据与轮密钥进行异或运算;若轮数为偶数轮时,高32位数据与轮密钥进行异或运算,低32位数据进行置换操作。而整个算法具体的加密过程如图2所示。
把整个密码加密过程分解为四个模块之间的调用:
(2)S盒变换(Subcell):利用4bit输入4bit输出的S盒。S盒结构表如表1所示。对于第一步得到的64bit的中间结果B=b63…b0可表示成16个4bit数wi=b4i+3b4i+2b4i+1b4i,其中0≤i≤15。则采用表1中的S盒进行如下变换:
wi=S[wi](0≤i≤15) (2)
表1 LRP算法的S盒
(3)P置换(Permutation):将通过S盒变换后的64位中间状态值划分为高32位和低32位,分别对高32位和低32位进行置换操作与异或运算。具体地,若轮数为奇数轮时,高32位数据进行置换操作,低32位数据与轮密钥进行异或运算;若轮数为偶数轮时,高32位数据与轮密钥进行异或运算,低32位数据进行置换操作。其中置换操作中的置换表是根据公式3产生的,生成的置换表如表2所示。P置换操作过程如图3、图4所示。
表2 LRP算法的置换表
i | 0 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
P(i) | 0 | 8 | 24 | 1 | 9 | 17 | 25 | 2 | 10 | 18 | 26 | 3 | 11 | 19 | 27 |
i | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
P(i) | 4 | 12 | 28 | 5 | 13 | 21 | 29 | 6 | 14 | 22 | 30 | 7 | 15 | 23 | 31 |
前三个步骤总共迭代31轮,将第31轮中P置换操作得到的中间状态值的高32位与低32位进行合并,得到的结果与第32轮的轮密钥进行轮密钥加运算,最后输出则为密文。
(4)LRP密码轮密钥更新算法(UpdataKeys):LRP轻量级分组密码算法的密钥长度为96位。轮密钥的更新方式与算法轮数的奇偶性有关。具体地,在第一轮轮运算过程中使用的轮密钥为初始密钥,从第二轮开始根据轮数的奇偶性,对轮密钥进行更新。当轮数为偶数时,通过S盒替换对前一轮的轮密钥进行变换更新;当轮数为奇数时,根据循环左移列表对前一轮的轮密钥进行循环移位更新。密钥从第2轮更新到第32轮。如图5所示。每一轮的轮运算过程中,更新后的轮密钥中的低64位用于参与轮密钥加操作,更新后的轮密钥中的高32位用于P置换/逆P置换中的异或运算。
算法2:LRP密码轮密钥更新过程
输入:key[0:95]
输出:rkey[0:95]
1.for round=2to round 32do
2.if(round%2==0)
3.rkey[i]=sbox[key[i]];
4.else
5.rkey[i]=loop[key[i]];
6.end for
LRP密码密钥更新具体过程为首先将96位初始密钥以每4位为一组分成24组,表示为k0,k1,k2,k3,k5,…,k23,然后将这24组密钥通过下面的方法进行更新变换。当轮数为偶数时,密钥更新方法是通过置换表进行变换,如表3所示;当轮数为奇数时,密钥更新方法是根据列表进行循环移位,如表4所示。
表3轮密钥变换表
表4循环左移位表
算法的解密是加密的逆运算过程,在算法的解密过程中,每一轮轮运算包括轮密钥加操作、逆P置换操作以及逆S盒替换操作。逆P置换操作时根据轮数的奇偶性执行不同的操作处理。轮密钥加操作后,将的数据划分为高32位和低32位两个分支,若轮数为奇数轮时,高32位数据进行逆置换操作,低32位数据与轮密钥进行异或运算;若轮数为偶数轮时,高32位数据与轮密钥进行异或运算,低32位数据进行逆置换操作。将P置换操作的结果进行合并得到64位的中间状态值,将64位的中间状态值进行逆S盒替换操作。
LRP轻量级分组密码解密的伪代码描述。
算法3:LRP密码解密过程
输入:Ciphertext,Key;
输出:Plaintext;
1.Ciphertext→state;Key
2.for i=1to31 do
3.AddRoundKeys(state,key);
4.invPermutation(state);
5.invSubcell(state);
6.UpdataKeys(key,i);
7.for i=32do
8.AddRoundKeys(state,key);
end for
算法测试数据,LRP算法数据如表5所示。
表5 LRP算法数据
Plaintext | key | CiPhertext |
0000-0000-0000-0000 | 0000-0000-0000-0000-0000-0000 | BB71-A6E4-E186-4493 |
0000-0000-0000-0000 | FFFF-FFFF-FFFF-FFFF-FFFF-FFFF | 194B-5B4A-E95E-8D45 |
0123-4567-89AB-CDEF | 0000-0000-0000-0000-0000-0000 | 7C64-8F9E-D2D6-80FB |
FFFF-FFFF-FFFF-FFFF | 0123-4567-89AB-CDEF-0134-5678 | 1BD9-B789-84F7-0D0A |
AAAA-AAAA-AAAA-AAAA | 0123-2233-89AB-CDEF-F589-AD0E | 883D-167A-F901-823F |
0123-4567-89AB-CDEF | 0123-2233-89AB-CDEF-F589-AD0E | 02BC-9925-5584-2C8B |
0123-4567-89AB-CDEF | 0123-4567-89AB-CDEF-0134-5678 | B2A2-65F2-D2DF-55C4 |
本发明所述的LRP算法在ASIC硬件实现,综合工艺库SMIC0.18um算法所占用的资源面积是1280.96GE。各轻量级分组密码的ASIC实现如表6所示。
表6轻量级分组密码的ASIC实现
算法 | 结构 | 分组长度(bits) | 密钥长度(bits) | 资源面积(GE) |
PRESENT-80 | SPN | 64 | 80 | 1570 |
LBlock | Feistel | 64 | 80 | 1320 |
Twine-80 | Feistel | 64 | 80 | 1503 |
MIBS-64 | Feistel | 64 | 64 | 1396 |
LRP(本发明) | SPN | 64 | 96 | 1280 |
LRP密码算法与现有一些基于Feistel网络结构与基于传统的SPN网络结构轻量级分组密码算法实现对比分析,如表6所示。从表6中的数据可以看出,相比这些密码算法而言,LRP轻量级分组密码具有实现面积小的优点,特别适用于资源受限的环境,例如RFID和传感器网络等。也适用于低成本、低功耗和超轻量级的实现。在安全验证方面具有良好的抵抗攻击能力,且特别有效的抵抗差分与线性攻击、代数攻击。基于上述方法,本发明实施例还提供一种基于P置换改进的轻量级分组加解密装置,包括:
加载模块:用于将64位明文或64位密文加载至寄存器,作为待加/解密数据;
轮运算模块:通过利用轮密钥,将待加/解密数据进行31轮轮运算,每次轮运算后对轮密钥进行更新;
在加密过程中,每一轮轮运算依次包括轮密钥加操作单元、S盒替换操作单元以及P置换操作单元;
在解密过程中,每一轮轮运算依次包括轮密钥加操作单元、逆P置换操作单元以及逆S盒替换操作单元;
所述S盒替换操作单元与逆S盒替换操作单元互为逆运算操作单元,所述P置换操作单元与逆P置换操作单元互为逆运算操作单元;
输出模块:调用更新轮密钥单元更新轮密钥,将最后一轮轮运算的计算结果与最新的轮密钥进行轮密钥加操作,获得密文/明文;
所述P置换操作单元/逆P置换操作单元是依据轮数的奇偶性,将数据划分为高32位和低32位,分别对高32位和低32位进置换操作运算或异或运算,将高32位和低32位参与运算的中间结果进行合并;其中进行异或运算是指与轮密钥进行异或运算;
所述P置换/逆P置换操作中的异或运算是指与轮密钥进行异或运算;
轮每一轮的轮运算过程中,轮密钥中的低64位用于参与轮密钥加操作,轮密钥中的高32位用于P置换/逆P置换操作单元中的异或运算;在第一轮轮运算过程中使用的轮密钥为初始密钥,从第二轮开始根据轮数的奇偶性,对轮密钥进行更新。
P置换操作单元/逆P置换操作单元是依据轮数的奇偶性,对参与操作的数据划分为高32位和低32位:
将两次运算得到的结果进行合并得到P置换操作或逆P置换操作的结果。
所述轮密钥更新单元是指当轮数为偶数时,通过S盒替换对前一轮的轮密钥进行变换更新;当轮数为奇数时,根据循环左移列表对前一轮的轮密钥进行循环移位更新。
所述循环左移列表是指从第1轮到第32轮,循环左移位数位依次为{1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1}。
应当理解,本发明各个实施例中的功能单元模块可以集中在一个处理单元中,也可以是各个单元模块单独物理存在,也可以是两个或两个以上的单元模块集成在一个单元模块中,可以采用硬件或软件的形式来实现。
本发明实施例还提供一种计算机存储介质,包括计算机程序指令,所述计算机程序指令被处理终端执行时使所述处理终端执行上述一种基于P置换改进的轻量级分组加解密所述的方法,其有益效果参见方法部分的有益效果,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (6)
1.一种基于P置换改进的轻量级分组加解密方法,其特征在于,包括:
步骤1:将64位明文或64位密文加载至寄存器,作为待加/解密数据;
步骤2:利用轮密钥,将待加/解密数据进行31轮轮运算,每次轮运算后对轮密钥进行更新;
加密过程中,每一轮轮运算依次包括轮密钥加操作、S盒替换操作以及P置换操作;
解密过程中,每一轮轮运算依次包括轮密钥加操作、逆P置换操作以及逆S盒替换操作;
所述S盒替换操作与逆S盒替换操作互为逆运算操作,所述P置换操作与逆P置换操作互为逆运算操作;
步骤3:再次更新轮密钥,将最后一轮轮运算的计算结果与最新的轮密钥进行轮密钥加操作,获得密文/明文;
所述P置换操作和逆P置换操作是依据轮数的奇偶性,将数据划分为高32位和低32位,分别对高32位和低32位进行置换操作运算或异或运算,将高32位和低32位参与运算的中间结果进行合并;
所述P置换操作或逆P置换操作中的异或运算是指将数据与轮密钥进行异或运算;
每一轮的轮运算过程中,更新后的轮密钥中的低64位用于参与轮密钥加操作,更新后的轮密钥中的高32位用于P置换操作或逆P置换操作中的异或运算;在第一轮轮运算过程中使用的轮密钥为初始密钥,从第二轮开始根据轮数的奇偶性,对轮密钥进行更新;
所述轮密钥更新是指当轮数为偶数时,通过S盒替换对前一轮的轮密钥进行变换更新;当轮数为奇数时,根据循环左移列表对前一轮的轮密钥进行循环移位更新;
P置换操作或逆P置换操作是依据轮数的奇偶性,对参与操作的数据划分为高32位和低32位:
将两次运算得到的结果进行合并得到P置换操作或逆P置换操作的结果。
2.根据权利要求1所述的方法,其特征在于,所述S盒替换操作是按以下公式进行:
Bi′=S[Bi] 0≤i≤15
其中,Bi和Bi′表示S盒替换操作前、后数据中的第i位;S[]表示S盒,取值为{C,5,6,B,9,0,A,D,3,E,F,8,4,7,1,2}。
3.根据权利要求2所述的方法,其特征在于,所述循环左移列表是指从第1轮到第32轮,循环左移位数位依次为{1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1}。
4.一种基于P置换改进的轻量级分组加解密装置,其特征在于,包括:
加载模块:用于将64位明文或64位密文加载至寄存器,作为待加/解密数据;
轮运算模块:通过利用轮密钥,将待加/解密数据进行31轮轮运算,每次轮运算后对轮密钥进行更新;
在加密过程中,每一轮轮运算依次包括轮密钥加操作单元、S盒替换操作单元以及P置换操作单元;
在解密过程中,每一轮轮运算依次包括轮密钥加操作单元、逆P置换操作单元以及逆S盒替换操作单元;
所述S盒替换操作单元与逆S盒替换操作单元互为逆运算操作单元,所述P置换操作单元与逆P置换操作单元互为逆运算操作单元;
输出模块:调用更新轮密钥单元更新轮密钥,将最后一轮轮运算的计算结果与最新的轮密钥进行轮密钥加操作,获得密文/明文;
所述P置换操作单元或逆P置换操作单元是依据轮数的奇偶性,将数据划分为高32位和低32位,分别对高32位和低32位进行置换操作运算或异或运算,将高32位和低32位参与运算的中间结果进行合并;
所述P置换操作单元或逆P置换操作单元中的异或运算是指将数据与轮密钥进行异或运算;
每一轮的轮运算过程中,轮密钥中的低64位用于参与轮密钥加操作,轮密钥中的高32位用于P置换操作单元或逆P置换操作单元中的异或运算;在第一轮轮运算过程中使用的轮密钥为初始密钥,从第二轮开始根据轮数的奇偶性,对轮密钥进行更新;
P置换操作单元或逆P置换操作单元是依据轮数的奇偶性,对参与操作的数据划分为高32位和低32位:
将两次运算得到的结果进行合并得到P置换操作或逆P置换操作的结果;
所述更新轮密钥单元是指当轮数为偶数时,通过S盒替换对前一轮的轮密钥进行变换更新;当轮数为奇数时,根据循环左移列表对前一轮的轮密钥进行循环移位更新。
5.根据权利要求4所述的装置,其特征在于,所述循环左移列表是指从第1轮到第32轮,循环左移位数位依次为{1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1}。
6.一种计算机存储介质,其存储有计算机程序指令,其特征在于:所述计算机程序指令被处理终端执行时使所述处理终端执行权利要求1至3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010436676.0A CN111614457B (zh) | 2020-05-21 | 2020-05-21 | 基于p置换改进的轻量级分组加解密方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010436676.0A CN111614457B (zh) | 2020-05-21 | 2020-05-21 | 基于p置换改进的轻量级分组加解密方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111614457A CN111614457A (zh) | 2020-09-01 |
CN111614457B true CN111614457B (zh) | 2021-02-19 |
Family
ID=72201623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010436676.0A Active CN111614457B (zh) | 2020-05-21 | 2020-05-21 | 基于p置换改进的轻量级分组加解密方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111614457B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113660620B (zh) * | 2021-10-20 | 2022-01-21 | 北京卓建智菡科技有限公司 | 一种数据防伪加密方法、装置、计算机设备及存储介质 |
CN117061092B (zh) * | 2023-10-12 | 2023-12-15 | 仰恩大学 | 一种Simon加密算法的可逆电路构造方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104065474A (zh) * | 2014-07-14 | 2014-09-24 | 衡阳师范学院 | 一种新型低资源高效的轻量级Surge分组密码实现方法 |
CN107707343A (zh) * | 2017-11-08 | 2018-02-16 | 贵州大学 | 加解密一致的sp网络结构轻量级lbt分组密码实现方法 |
CN108206736A (zh) * | 2018-01-11 | 2018-06-26 | 衡阳师范学院 | 一种轻量级密码算法HBcipher实现方法与装置 |
KR20190037980A (ko) * | 2017-09-29 | 2019-04-08 | 한밭대학교 산학협력단 | 퍼베이시브 컴퓨팅을 위한 효과적인 초경량 블록 암호 시스템 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018066951A1 (en) * | 2016-10-09 | 2018-04-12 | Lg Electronics Inc. | Improved lightweight block cipher |
-
2020
- 2020-05-21 CN CN202010436676.0A patent/CN111614457B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104065474A (zh) * | 2014-07-14 | 2014-09-24 | 衡阳师范学院 | 一种新型低资源高效的轻量级Surge分组密码实现方法 |
KR20190037980A (ko) * | 2017-09-29 | 2019-04-08 | 한밭대학교 산학협력단 | 퍼베이시브 컴퓨팅을 위한 효과적인 초경량 블록 암호 시스템 |
CN107707343A (zh) * | 2017-11-08 | 2018-02-16 | 贵州大学 | 加解密一致的sp网络结构轻量级lbt分组密码实现方法 |
CN108206736A (zh) * | 2018-01-11 | 2018-06-26 | 衡阳师范学院 | 一种轻量级密码算法HBcipher实现方法与装置 |
Non-Patent Citations (3)
Title |
---|
Loong: A Family of Involutional Lightweight Block Cipher Based on SPN Structure;BO-TAO LIU等;《IEEE》;20191001;全文 * |
PRESENT 密码硬件语言实现及其优化研究;李浪;《小型微型计算机系统》;20131031;全文 * |
Surge:一种新型、低资源、高效的轻量级分组密码算法;李浪等;《计算机科学》;20180228;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111614457A (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107707343B (zh) | 加解密一致的sp网络结构轻量级分组密码实现方法 | |
CN105959107B (zh) | 一种新型高安全的轻量级sfn分组密码实现方法 | |
CN111431697B (zh) | 一种新型轻量级分组密码corl的实现方法 | |
Moldovyan et al. | A cipher based on data-dependent permutations | |
CN107147487B (zh) | 对称密钥随机分组密码 | |
CN104333446B (zh) | 一种新型超轻量级qtl分组密码实现方法 | |
CN109768854B (zh) | 一种轻量级分组密码算法的实现方法 | |
CN104639314A (zh) | 基于aes加密/解密算法的装置和流水控制方法 | |
CN110880967B (zh) | 采用分组对称密钥算法对多消息并行加解密方法 | |
MX2011001228A (es) | Metodo para generar un codigo de autenticacion de mensajes basados en el cifrado. | |
CN111614457B (zh) | 基于p置换改进的轻量级分组加解密方法、装置及存储介质 | |
CN113078997A (zh) | 一种基于轻量级密码算法的终端保护方法 | |
CN111478766B (zh) | 一种分组密码meg实现方法、装置及存储介质 | |
CN111314054B (zh) | 一种轻量级eceg分组密码实现方法、系统及存储介质 | |
Chugunkov et al. | Three-dimensional data stochastic transformation algorithms for hybrid supercomputer implementation | |
CN116318669A (zh) | 一种基于窄带物联网的轻量级加密方法 | |
CN115811398A (zh) | 基于动态s盒的分组密码算法、装置、系统及存储介质 | |
Thorat et al. | TED: A LIGHTWEIGHT BLOCK CIPHER FOR IoT DEVICES WITH SIDE-CHANNEL ATTACK RESISTANCE. | |
CN112737767B (zh) | 抗差分功耗分析与时间攻击的消息认证码生成方法及系统 | |
Muhalhal et al. | A hybrid modified lightweight algorithm for achieving data integrity and confidentiality | |
CN113691364A (zh) | 一种基于位片技术的动态s盒分组密码的加密及解密方法 | |
Su et al. | Full-round differential attack on TWIS block cipher | |
Doomun et al. | AES-CBC software execution optimization | |
CN112134691B (zh) | 一种部件可重复的nlcs分组密码实现方法、装置及介质 | |
CN117411618B (zh) | 应用于国际赛事的密钥生成方法、装置及加密方法 |
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 |