一种新型超轻量级qtl分组密码实现方法

文档序号:7819030阅读:488来源:国知局
一种新型超轻量级qtl分组密码实现方法
【专利摘要】本发明公开了一种新型超轻量级QTL分组密码实现方法,该方法通过设计新型广义Feistel网络结构,该结构算法克服了传统Feistel网络结构一轮迭代运算只改变一半分组数据的不足,做到一轮迭代运算改变全部分组数据。算法轮运算中F函数包含F1与F2函数,分别采用S1与S2盒,F函数变换过程依次为轮密钥加、S盒替换、P置换、S盒替换;不同的S盒、P置换只需硬件连线,构造了轻型超级S盒的F函数。算法结构高度对称,算法解密复用加密模块,交换加密轮密钥使用顺序就可进行解密,操作简便,实现解密不需消耗额外资源。相对目前的轻量级密码,其占用资源更小,加密性能高,能抗已知攻击。
【专利说明】一种新型超轻量级QTL分组密码实现方法

【技术领域】
[0001] 本发明涉及一种新型超轻量级QTL分组密码实现方法。

【背景技术】
[0002] 分组密码算法是用相同的密钥进行加密和解密运算,本质上,分组密码算法是一 种带密钥的有限轮迭代置换变换,将固定长度的明文经过有限轮迭代置换变换,转换为相 同长度的密文。分组密码算法具有速度快、易于标准化和便于软硬件实现等特点,一直是资 源约束下的加密方案。分组密码作为信息安全中的核心密码,在物联网应用安全领域有着 广泛的应用。
[0003] 近年来,随着物联网技术快速发展,无线传感器(WSN)和无线射频(RFID)应用越 来越广泛,这些设备具有硬件制造、维护成本低,网络健壮性、自组织性强,适用性广泛的特 点,已成为物联网产业的关键组成部分。WSN和RFID基于无线网络传输信息,攻击者更容 易获取、干扰甚至破坏信息传输。在这些微型计算设备中,软硬件实现所需资源有着严格限 制,传统分组密码算法实现规模相对较大,不适合应用在这些资源极端受限的应用环境中, 因此密码设计者们提出轻量级分组密码来保证物联网信息的安全。
[0004] 从2007年开始,国际学术界就陆续发表了一些有关轻量级分组密码算法论文,轻 量级分组码迅速成为国际学术界研究的一个前沿热点问题。经过近年来的研究,目前已有 一些轻量级分组密码算法,典型代表如 PRESENT、MIBS、Twine、Piccolo、LED、LBlock、KLEIN、 ITUbee 等。
[0005] 目前,轻量级分组密码算法存在的问题为如下方面:(1)轻量级分组密码算法主 要采用两种结构:一种是SP网络结构,该结构对称性相对较差,加解密不相似,实现时消耗 的资源较多,加解密的时间也不相同。另一种是Feistel网络结构,该结构加解密相似,实 现时消耗的硬件资源较少,适合在计算能力受限的环境中使用;但该结构密码算法扩散速 度慢,一轮迭代运算中只有一半的分组进入轮函数,从而只能改变一半分组数据。(2)有些 轻量级分组密码算法解密过程较复杂,从而在实现算法解密时,不能完全复用加密过程模 块,需要额外消耗资源。(3) -些轻量级分组密码算法加密占用资源仍然过大,加密性能较 低,不便于在资源极端受限设备中实现;并且还有一些分组密码算法抗攻击能力较弱,特别 是抵抗常见的差分、线性以及代数攻击。


【发明内容】

[0006] 本发明提供了一种新型超轻量级高效的轻量级QTL分组密码实现方法,其目的在 于,克服现有技术轻量级分组密码算法存在如下问题:Feistel网络结构算法,一轮迭代运 算只改变一半分组数据;算法解密过程较复杂,实现时需要为算法解密消耗资源;轻量级 分组密码算法占用资源仍旧多、加密性能低且易受攻击。
[0007] -种新型超轻量级QTL分组密码实现方法,包括以下步骤:
[0008] 步骤1 :将64位明文/64位密文加载至寄存器,作为待加/解密数据,进行加/解 密运算;
[0009] 步骤2 :将所述待加/解密数据进行Nk轮迭代运算操作,输出密文或明文,η表示 第η轮迭代,且η的初始值为1 ;
[0010] 其中,密钥长度为64位时,Nk取值为16;密钥长度为128位时,Nk取值为20; [0011] 将64位待加密数据X/解密数据Y从高位开始按16位一组依次分为4组,待加密 数据记作=XtlX 1X2X3,待解密数据记作:YtlY1Y 2Y3;
[0012] 每一轮迭代运算的轮密钥为包括Kp Kp K2及K3 : 「00131 密钥为fi4份时,衷示为k…k…......k,, k" :

【权利要求】
1. 一种新型超轻量级QTL分组密码实现方法,其特征在于,包括以下步骤: 步骤1 :将64位明文/64位密文加载至寄存器,作为待加/解密数据,进行加/解密运 算; 步骤2 :将所述待加/解密数据进行Nk轮迭代运算操作,输出密文或明文,n表示第n 轮迭代,且n的初始值为1 ; 其中,密钥长度为64位时,Nk取值为16 ;密钥长度为128位时,Nk取值为20 ; 将64位待加密数据X/解密数据Y从高位开始按16位一组依次分为4组,待加密数据 记作=X0X1X2X3,待解密数据记作:Y 0Y1Y2Y3 ; 每一轮迭代运算的轮密钥为包括IV Kp K2及K3 : 密钥为64位时,表示为k63, k62,......k:, k〇 : K〇 - {k63? k62?......k49,k48},K1 - {k47,k46,......k 33,k32}, - {k31, k3〇,......k17,k16},K3 - {k15,k14,......k 17 k〇}; 密钥为128位时,表示为k127, k126,......k:, k〇 : 在加密运算过程中,当n为奇数时,或者在解密运算过程中,当n为偶数时,每一轮迭代 运算中: K〇 - {k127? k126?......k113? k112} j K1 - {km,k110,......k97, k96}, 一 {k95,k94,......k81,k80},K 3 - {k79, k78,......k65,k64}; 在加密运算过程中,当n为偶数时,或者在解密运算过程中,当n为奇数时,每一轮迭代 运算中: K〇 - {k63,k62,......k49,k 48},K1 - {k47,k46,......k 33,k32}, - {k31, k3〇,......k17,k16},K3 - {k15,k14,......k 17 k〇}; 加密迭代运算操作过程具体如下: 步骤1)首先,将Xtl进行F1函数变换得到X' ^,同时将X2进行F2函数变换得到X' 2 ;接 着,将X1与X' ^进行异或运算得到X/,同时将X3与X' 2进行异或运算得到X' 3 ; 其中,所述进行F1函数变换时,所使用的轮密钥为Ktl ; 所述进行F2函数变换时,所使用的轮密钥为K1 ; 所述F1函数与F2函数变换均为F函数变换,F函数运算过程为轮密钥加变换一S盒替 换变换一P置换一S盒替换变换; 步骤2)首先,利用X':进行F1函数变换得到X',利用X' 3进行F2函数变换得到 X"3; 接着,将Xtl与X〃i进行异或运算得到X',同时将X2与x〃3进行异或运算,得到x〃 2; 其中,所述进行F1函数变换时,所使用的轮密钥为K2 ; 所述进行F2函数变换时,所使用的轮密钥为K3 ; 判断n是否等于Nk,若不等于,贝U,令n = n+1,进入步骤3),若等于,贝U进入步骤4); 步骤3)将X' J'X' 3X〃2进行轮置换T变换,获得轮置换T变换结果记为Xt ; 将运行结果Xt,从高位开始按16位一组依次分为4组,记作:将 At、、<依次赋值给X。、X2、X3,返回步骤1); 步骤4)将X' y。、X' 3、X〃2依次赋值给Y。、1、Y2、Y3,以Y tlY1Y2Y3作为密文输出; 解密迭代运算过程如下: 步骤1)首先,将Ytl进行F1函数变换得到Y' ^,同时将Y2进行F2函数变换得到Y' 2 ; 接着,将Y1与Y' ^进行异或运算得到Y',,同时将Y3与Y' 2进行异或运算得到Y' 3;其中,所述进行F1函数变换时,所使用的轮密钥为K2 ; 所述进行F2函数变换时,所使用的轮密钥为K3 ; 所述F1函数与F2函数变换均为F函数变换,F函数运算过程为轮密钥加变换一S盒替 换变换一P置换一S盒替换变换; 步骤2)首先,利用Y':进行F1函数变换得到Y',利用Y' 3进行F2函数变换得到 Y"3; 接着,将Yci与Y'进行异或运算得到Y',同时将Y2与Y〃3进行异或运算,得到Y〃 2 ; 判断n是否等于Nk,若不等于,贝U,令n = n+1,进入步骤3),若等于,贝U进入步骤4); 其中,所述进行F1函数变换时,所使用的轮密钥为Ktl ; 所述进行F2函数变换时,所使用的轮密钥为K1 ; 步骤3)将Y' iY〃3Y〃2进行轮置换T变换,获得轮置换T变换结果记为Yt ; 将运行结果YT,从高位开始按16位一组依次分为4组,记作:,将F/、If、 If、If依次赋值给WH; 返回步骤1); 步骤4)将Y' I、Y〃Q、Y' 3、Y〃2依次赋值给X。、X1、X2、X 3,以XtlX1X2X3作为明文输出。
2. 根据权利要求1所述的新型超轻量级QTL分组密码实现方法,其特征在于,所述步骤 2中F1函数变换中的S盒采用S1盒,F2函数变换中的S盒采用S 2盒; 其中,S1 盒为{C,5,6,B,9,0,A,D,3,E,F,8,4,7,1,2}; S2 盒为{4,F,3,8,D,A,C,0,B,5,7,E,2,6,1,9}; S :有限域F24 F24 叫一IDi = S1 (a) Ci - (Ii = S2 (Ci), O < i < 3 ; 其中,所述%和Ci是进行S盒变换前的16位数中从高位到低位的第i个4位数,h和 Cli是进行S盒变换后得到的16位数中从高位到低位的第i个4位数; 所述F函数中的P置换是按照每一位进行交换,输入16位数据从高位到低位表示为p0, P1, P2, P3, P4, P5, P6, P7, P8, P9, Pltl, P11, P12, P13, P14, P15,经 P 置换将数据比特位位置交换,以 P0, P4, P8, Pl2, Pi,P5, P9, Pl3, P2, P6, PlCI,Pl4, P3, P7, Pll,Pl5 高位到低位顺序数据输出。
3. 根据权利要求1所述的新型超轻量级QTL分组密码实现方法,其特征在于,所述步骤 2中轮置换T变换具体过程如下: 轮置换T变换将算法中输入64位加/解数据划分4个字(16位),然后做字的置换操 作;具体为进行轮置换T变换64位输入数据从高位到低位依次划分为4个字1\、T2及 T3,以T2、1\、Ttl及T3作为轮置换T变换运算的64位输出数据。
【文档编号】H04L9/06GK104333446SQ201410626240
【公开日】2015年2月4日 申请日期:2014年11月10日 优先权日:2014年11月10日
【发明者】李浪, 刘波涛, 刘沛林, 邓运员, 邹祎, 余孝忠, 杜国权 申请人:衡阳师范学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1