logo好方法网

基于P置换改进的轻量级分组加解密方法、装置及存储介质


技术摘要:
本发明公开了一种基于P置换改进的轻量级分组加解密方法、装置及存储介质,该方法采用的是具有分支的SPN结构;每一轮轮运算的加密过程可分为轮密钥加运算、S盒替换、P置换、轮密钥加运算;在P置换时根据轮数采用分支结构,将参与的数据分为高32位和低32位两个分支:若轮  全部
背景技术:
随着计算机和通信技术的发展,保证信息的安全存储、安全处理和安全传输尤为 重要。特别地,随着Internet的广泛应用,以及个人通信、多媒体通信、办公自动化、电子邮 件、电子自动转账支付系统和自动零售业务网的建立与实现都离不开信息安全,也离不开 密码技术。分组密码是密码学的一个重要分支,受到了广泛关注,并且成为密码学研究的热 点课题。分组密码本质上是将固定长度的明文经过有限轮迭代置换变换,转换为相同长度 的密文。分组密码具有速度快、易于标准化和便于软硬件实现等特点。面对计算机的计算能 力快速提高及基于数学分析的各种攻击方法,分组密码的安全性受到了严重威胁。研发出 更高强度、高效的分组密码具有相当重要意义。 近年来,随着物联网嵌入式系统、无线传感网络等新型系统的大量应用和不断发 展。使得在智能卡、移动计算设备、无人机及自动驾驶等领域的数据安全问题越来越突出, 利用分组密码加密技术手段解决这些问题。考虑到对于RFID标签、传感器节点等这类低成 本、低功耗的资源受限应用环境,传统的分组密码标准AES、SMS4等根本无法实现。因此,研 究专门适用于这类资源受限环境下的轻量级分组密码引起了国内外学者的广泛关注,是一 个新兴研究领域,也是目前国际密码学研究的热点问题。 近几年,为了适应物联网环境下的资源受限设备上的信息安全问题,设计者们提 出了一系列轻量级分组密码算法。2006年Deukjo  Hong提出了HIGHT。2007年Bogdanov  et  al提出了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.Yang  et  al提出了SIMECK,R.Beaulieu  et  al提出了SIMON等加密算法。我国也在轻量级分组密 码算法的研究中取得了丰厚的成果。2011年Wu  and  Zhang  et  al提出了Lblock,Gong  et  al提出了KLEIN。Li  et  al在2016年、2017年、2018年分别提出了QTL、Magpie、Surge、SFN等 加密算法。 目前,轻量级分组密码算法还存在许多理论和实际应用问题有待继续研究。主要 问题如下:(1)在密码整体结构当中,一种是基于SPN结构的密码,该结构的密码加解密实现 方式为不一致。从而需要专门设计解密算法,使得加密和解密速度慢,需要消耗更多的软硬 件资源。另一种是基于Feistel网络结构的密码,虽然该结构加解密相似,消耗的软硬件资 源也较少。但该结构密码算法扩散速度慢,一轮迭代运算中只有一半的分组进入轮函数,从 而只能改变一半分组数据。(2)现有专用密码芯片中大多只实现了一种固定密码模式的密 码算法,这种实现方式难以满足不同用户多层次的安全性需求。虽然对不同密码算法进行 重构设计,在设计过程中,提取出不同算法之间的相同或相似的操作,但不同算法之间有很 4 CN 111614457 A 说 明 书 2/9 页 多不同之处,从而会造成很多面积资源的开销,使得硬件实现成本高,并且使性能效率也在 很大程度上降低了。(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置换中的异或运算,这样有效地抵抗相关密钥攻击。 5 CN 111614457 A 说 明 书 3/9 页 进一步地,所述轮密钥更新是指当轮数为偶数时,通过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位: 当轮数为奇数时,高32位数据按照公式 进行置换操作,低32位数 据与轮密钥中的高32位进行异或运算; 当轮数为偶数时,低32位数据按照公式 进行置换操作运算,高 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位: 6 CN 111614457 A 说 明 书 4/9 页 当轮数为奇数时,高32位数据按照公式 进行置换操作,低32位数 据与轮密钥中的高32位进行异或运算; 当轮数为偶数时,低32位数据按照公式 进行置换操作运算,高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为轮密钥更新过程示意图。 7 CN 111614457 A 说 明 书 5/9 页
下载此资料需消耗2积分,
分享到:
收藏