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

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

Info

Publication number
CN104333446B
CN104333446B CN201410626240.2A CN201410626240A CN104333446B CN 104333446 B CN104333446 B CN 104333446B CN 201410626240 A CN201410626240 A CN 201410626240A CN 104333446 B CN104333446 B CN 104333446B
Authority
CN
China
Prior art keywords
carry out
box
functional transformation
conversion
data
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
Application number
CN201410626240.2A
Other languages
English (en)
Other versions
CN104333446A (zh
Inventor
李浪
刘波涛
刘沛林
邓运员
邹祎
余孝忠
杜国权
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hengyang Normal University
Original Assignee
Hengyang Normal University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hengyang Normal University filed Critical Hengyang Normal University
Priority to CN201410626240.2A priority Critical patent/CN104333446B/zh
Publication of CN104333446A publication Critical patent/CN104333446A/zh
Application granted granted Critical
Publication of CN104333446B publication Critical patent/CN104333446B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

一种新型超轻量级QTL分组密码实现方法
技术领域
本发明涉及一种新型超轻量级QTL分组密码实现方法。
背景技术
分组密码算法是用相同的密钥进行加密和解密运算,本质上,分组密码算法是一种带密钥的有限轮迭代置换变换,将固定长度的明文经过有限轮迭代置换变换,转换为相同长度的密文。分组密码算法具有速度快、易于标准化和便于软硬件实现等特点,一直是资源约束下的加密方案。分组密码作为信息安全中的核心密码,在物联网应用安全领域有着广泛的应用。
近年来,随着物联网技术快速发展,无线传感器(WSN)和无线射频(RFID)应用越来越广泛,这些设备具有硬件制造、维护成本低,网络健壮性、自组织性强,适用性广泛的特点,已成为物联网产业的关键组成部分。WSN和RFID基于无线网络传输信息,攻击者更容易获取、干扰甚至破坏信息传输。在这些微型计算设备中,软硬件实现所需资源有着严格限制,传统分组密码算法实现规模相对较大,不适合应用在这些资源极端受限的应用环境中,因此密码设计者们提出轻量级分组密码来保证物联网信息的安全。
从2007年开始,国际学术界就陆续发表了一些有关轻量级分组密码算法论文,轻量级分组码迅速成为国际学术界研究的一个前沿热点问题。经过近年来的研究,目前已有一些轻量级分组密码算法,典型代表如PRESENT、MIBS、Twine、Piccolo、LED、LBlock、KLEIN、ITUbee等。
目前,轻量级分组密码算法存在的问题为如下方面:(1)轻量级分组密码算法主要采用两种结构:一种是SP网络结构,该结构对称性相对较差,加解密不相似,实现时消耗的资源较多,加解密的时间也不相同。另一种是Feistel网络结构,该结构加解密相似,实现时消耗的硬件资源较少,适合在计算能力受限的环境中使用;但该结构密码算法扩散速度慢,一轮迭代运算中只有一半的分组进入轮函数,从而只能改变一半分组数据。(2)有些轻量级分组密码算法解密过程较复杂,从而在实现算法解密时,不能完全复用加密过程模块,需要额外消耗资源。(3)一些轻量级分组密码算法加密占用资源仍然过大,加密性能较低,不便于在资源极端受限设备中实现;并且还有一些分组密码算法抗攻击能力较弱,特别是抵抗常见的差分、线性以及代数攻击。
发明内容
本发明提供了一种新型超轻量级高效的轻量级QTL分组密码实现方法,其目的在于,克服现有技术轻量级分组密码算法存在如下问题:Feistel网络结构算法,一轮迭代运算只改变一半分组数据;算法解密过程较复杂,实现时需要为算法解密消耗资源;轻量级分组密码算法占用资源仍旧多、加密性能低且易受攻击。
一种新型超轻量级QTL分组密码实现方法,包括以下步骤:
步骤1:将64位明文/64位密文加载至寄存器,作为待加/解密数据,进行加/解密运算;
步骤2:将所述待加/解密数据进行NR轮迭代运算操作,输出密文或明文,n表示第n轮迭代,且n的初始值为1;
其中,密钥长度为64位时,NR取值为16;密钥长度为128位时,NR取值为20;
将64位待加密数据X/解密数据Y从高位开始按16位一组依次分为4组,待加密数据记作:X0X1X2X3,待解密数据记作:Y0Y1Y2Y3
每一轮迭代运算的轮密钥为包括K0、K1、K2及K3
密钥为64位时,表示为k63,k62,……k1,k0
K0={k63,k62,……k49,k48},K1={k47,k46,……k33,k32},
K2={k31,k30,……k17,k16},K3={k15,k14,……k1,k0};
密钥为128位时,表示为k127,k126,……k1,k0
在加密运算过程中,当n为奇数时,或者在解密运算过程中,当n为偶数时,每一轮迭代运算中:
K0={k127,k126,……k113,k112},K1={k111,k110,……k97,k96},
K2={k95,k94,……k81,k80},K3={k79,k78,……k65,k64};
在加密运算过程中,当n为偶数时,或者在解密运算过程中,当n为奇数时,每一轮迭代运算中:
K0={k63,k62,……k49,k48},K1={k47,k46,……k33,k32},
K2={k31,k30,……k17,k16},K3={k15,k14,……k1,k0};
加密迭代运算操作过程具体如下:
步骤1)首先,将X0进行F1函数变换得到X'0,同时将X2进行F2函数变换得到X'2;接着,将X1与X'0进行异或运算得到X′1,同时将X3与X'2进行异或运算得到X′3
其中,所述进行F1函数变换时,所使用的轮密钥为K0
所述进行F2函数变换时,所使用的轮密钥为K1
所述F1函数与F2函数变换均为F函数变换,F函数运算过程为轮密钥加变换→S盒替换变换→P置换→S盒替换变换;
步骤2)首先,利用X′1进行F1函数变换得到X"1,利用X′3进行F2函数变换得到X"3
接着,将X0与X"1进行异或运算得到X"0,同时将X2与X"3进行异或运算,得到X"2
其中,所述进行F1函数变换时,所使用的轮密钥为K2
所述进行F2函数变换时,所使用的轮密钥为K3
判断n是否等于NR,若不等于,则,令n=n+1,进入步骤3),若等于,则进入步骤4);
步骤3)将X′1X"0X′3X"2进行轮置换T变换,获得轮置换T变换结果记为XT
将运行结果XT,从高位开始按16位一组依次分为4组,记作: 依次赋值给X0、X1、X2、X3,返回步骤1);
步骤4)将X′1、X"0、X′3、X"2依次赋值给Y0、Y1、Y2、Y3,以Y0Y1Y2Y3作为密文输出;解密迭代运算过程如下:
步骤1)首先,将Y0进行F1函数变换得到Y′0,同时将Y2进行F2函数变换得到Y′2;接着,将Y1与Y′0进行异或运算得到Y′1,同时将Y3与Y′2进行异或运算得到Y′3
其中,所述进行F1函数变换时,所使用的轮密钥为K2
所述进行F2函数变换时,所使用的轮密钥为K3
所述F1函数与F2函数变换均为F函数变换,F函数运算过程为轮密钥加变换→S盒替换变换→P置换→S盒替换变换;
步骤2)首先,利用Y′1进行F1函数变换得到Y"1,利用Y′3进行F2函数变换得到Y"3
接着,将Y0与Y"1进行异或运算得到Y"0,同时将Y2与Y"3进行异或运算,得到Y"2
判断n是否等于NR,若不等于,则,令n=n+1,进入步骤3),若等于,则进入步骤4);
其中,所述进行F1函数变换时,所使用的轮密钥为K0
所述进行F2函数变换时,所使用的轮密钥为K1
步骤3)将Y′1Y"0Y′3Y"2进行轮置换T变换,获得轮置换T变换结果记为YT
将运行结果YT,从高位开始按16位一组依次分为4组,记作: 依次赋值给Y0、Y1、Y2、Y3
返回步骤1);
步骤4)将Y′1、Y"0、Y′3、Y"2依次赋值给X0、X1、X2、X3,以X0X1X2X3作为明文输出。
在加密或者解密迭代运算过程中,步骤1)和步骤2)中的F1函数变换所使用的密钥不同,步骤1)和步骤2)中的F2函数变换所使用的密钥也不相同;
所述步骤2中F1函数变换中的S盒采用S1盒,F2函数变换中的S盒采用S2盒;
其中,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:有限域ai→bi=S1(ai)
ci→di=S2(ci),0≤i≤3;
其中,所述ai和ci是进行S盒变换前的16位数中从高位到低位的第i个4位数,bi和di是进行S盒变换后得到的16位数中从高位到低位的第i个4位数;
所述F函数中的P置换是按照每一位进行交换,输入16位数据从高位到低位表示为p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,经P置换将数据比特位位置交换,以p0,p4,p8,p12,p1,p5,p9,p13,p2,p6,p10,p14,p3,p7,p11,p15高位到低位顺序数据输出。
所述步骤2中轮置换T变换具体过程如下:
轮置换T变换将算法中输入64位加/解数据划分4个字(16位),然后做字的置换操作;具体为进行轮置换T变换64位输入数据从高位到低位依次划分为4个字T0、T1、T2及T3,以T2、T1、T0及T3作为轮置换T变换运算的64位输出数据。
有益效果
本发明提供了一种新型超轻量级QTL分组密码实现方法,设计了一种新型广义Feistel网络结构,该结构算法克服传统Feistel网络结构算法,一轮迭代运算只改变一半分组数据的不足,从而做到一轮迭代运算改变全部分组数据。该新型广义Feistel网络结构的算法有很好的扩散效果,打破了SPN结构的轻量级算法扩散效果好,但实现时消耗资源较多,传统Feistel网络结构的轻量级算法实现资源较少,但算法扩散效果较差的两大瓶颈问题。算法结构高度对称,算法解密复用加密模块,交换加密轮密钥使用顺序,就可以进行解密,操作简便,实现解密不消耗额外资源,并且密码算法模块具有相似对称组件,实现时可以相互复用,达到减少实现资源。算法轮运算中F函数(为F1与F2函数,分别采用S1与S2盒),变换过程为轮密钥加变换→S盒替换变换→P置换→S盒替换变换;其中轮密钥加的轮密钥为无扩展方式,该方式在抵抗攻击方面与LED、PRINCE以及ITUbee密码算法有着同样的效果,并且节省实现资源和提高性能;采用两个不同高安全性的S盒,P置换实现只需硬件连线,不需消耗资源;S盒替换变换→P置换→S盒替换变换方法创造轻型超级S盒;因此轮运算中F函数实现具有低资源、高性能、高安全的优点。算法的轮置换T变换,结构新颖,使算法数据进行置换有较好效果,并且实现也只需硬件连线,不需要消耗资源。
综上所述,本发明所述的新型超轻量级QTL分组密码实现方法在安全性验证中,体现了很好的抵抗攻击能力,相对于现有技术而言,特别有效的抵抗差分与线性攻击、代数攻击。
附图说明
图1为本发明所述一种新型超轻量级QTL分组密码实现方法加密结构图;
图2为本发明所述一种新型超轻量级QTL分组密码实现方法解密结构图;
图3为本发明所述实现方法的轮函数变换结构图;
图4为本发明所述实现方法的F函数变换结构图;
图5为本发明所述实现方法的轮置换T变换结构图。
具体实施方式
下面结合附图和实施例对本发明做进一步的说明。
QTL分组密码实现方法,设计密码算法的分组长度为64位,密钥长度为64位,128位两种,分别记为QTL-64算法与QTL-128算法,QTL-64算法与QTL-128算法轮迭代轮数NR对应为16轮、20轮运算。
QTL分组密码算法加密结构如图1所示,QTL分组密码算法解密结构如图2所示;
算法轮函数运算主要包含F函数变换(F-Function)与轮置换T变换(RoundTransposing);但最后一轮函数运算不进行轮置换T变换,见图3所示。
F函数变换过程为轮密钥加变换(AddRoundKey)→S盒替换变换(SubCell)→P置换(Permutation)→S盒替换变换(SubCell)。
将64位明文(Plaintext)/密文(Ciphertext)数据从高位开始按16位一组依次分为4组,加密明文数据记作:X0、X1、X2及X3,解密密文数据记作:Y0、Y1、Y2及Y3,当64位密钥(Key)数据从高位开始按16位一组依次分为4组,得到轮密钥数据记作:K0、K1、K2及K3
当128位密钥(Key)数据,奇数轮时,128位中前64位数据从高位开始按16位一组依次分为4组;偶数轮时,128位中后64位数据从高位开始按16位一组依次分为4组;奇偶数轮的轮密钥数据记作:K0、K1、K2及K3
QTL分组密码算法伪代码描述:
算法1:QTL密码加密过程
输入:Plaintext,Key;
输出:Ciphertext;
1.Plaintext→X0,X1,X2,X3;Key→K0,K1,K2,K3
2.fori=1toNR-1do//进行前面NR-1运算
3.forj=1to2do
4.XX0=X0,XX1=X1,XX2=X2,XX3=X3
5.if(j==1)
6.AddRoundKey(X0,K0),AddRoundKey(X2,K1);
7.else
8.AddRoundKey(X0,K2),AddRoundKey(X2,K3);
9.SubCell1(X0),SubCell2(X2);//SubCell1、SubCell2分另为S1、S2盒替换
10.Permutation(X0),Permutation(X2);
11.SubCell1(X0),SubCell2(X2);
12.X0=X0^XX1,X1=XX0,X2=X2^XX3,X3=XX2
13.endfor
14.T0=X0,T1=X1,T2=X2,T3=X3;//进行轮置换T变换
15.X0=T3,X1=T0,X2=T1,X3=T2
16.endfor
17.forj=1to2do//进行最后一轮运算,没有进行轮置换T变换
18.XX0=X0,XX1=X1,XX2=X2,XX3=X3
19.if(j==1)
20.AddRoundKey(X0,K0),AddRoundKey(X2,K1);
21.else
22.AddRoundKey(X0,K2),AddRoundKey(X2,K3);
23.SubCell1(X0),SubCell2(X2);
24.Permutation(X0),Permutation(X2);
25.SubCell1(X0),SubCell2(X2);
26.X0=X0^XX1,X1=XX0,X2=X2^XX3,X3=XX2
27.endfor
28.Y0=X1,Y1=X0,Y2=X3,Y3=X2
29.Ciphertext←Y0,Y1,Y2,Y3
算法2:QTL密码解密过程
输入:Ciphertext,Key;
输出:Plaintext;
解密复用加密过程,在轮密钥加变换中交换加密轮密钥使用顺序,将加密轮密钥K0使用处换成K2,K1使用处换成K3,K2使用处换成K0,K3使用处换成K1。除此之外,密钥为128位时,解密奇数轮的轮密钥为加密偶数轮的轮密钥,解密偶数轮的轮密钥为加密奇数轮的轮密钥。
1.if(j==1)
2.AddRoundKey(Y0,K2),AddRoundKey(Y2,K3);
3.else
4.AddRoundKey(Y0,K0),AddRoundKey(Y2,K1);
F函数变换(F-Function)
F函数变换为F1函数与F2函数变换,其中F1函数与F2函数采用的S盒不相同,F1函数采用的是S1盒,F2函数采用的是S2盒,但运算过程一致,F函数运算过程为轮密钥加变换→S盒替换变换→P置换→S盒替换变换,具体过程如图4所示(图中kl指代轮密钥中某一特定位,0≤l≤15)。
1)轮密钥加变换(AddRoundKey)
每轮的轮密钥加运算,为进入F函数的16位加密数据/解密数据与16位的轮密钥进行异或运算。其中每一轮运算的轮密钥为K0,K1,K2,K3。算法加密与解密使用同一密钥,算法解密交换加密轮密钥使用顺序。
算法轮密钥具体组成过程如下:密钥为64位时,表示为k63,k62,……k1,k0:K0为密钥k63,k62,……k49,k48;K1为密钥k47,k46,……k33,k32;K2为密钥k31,k30,……k17,k16;K3为密钥k15,k14,……k1,k0。密钥为128位时,表示为k127,k126,……k1,k0:算法加密,奇数轮为K0为密钥k127,k126,……k113,k112;K1为密钥k111,k110,……k97,k96;K2为密钥k95,k94,……k81,k80;K3为密钥k79,k78,……k65,k64;偶数轮为K0为密钥k63,k62,……k49,k48;K1为密钥k47,k46,……k33,k32;K2为密钥k31,k30,……k17,k16;K3为密钥k15,k14,……k1,k0;算法解密,奇数轮为K0为密钥k63,k62,……k49,k48;K1为密钥k47,k46,……k33,k32;K2为密钥k31,k30,……k17,k16;K3为密钥k15,k14,……k1,k0;偶数轮为K0为密钥k127,k126,……k113,k112;K1为密钥k111,k110,……k97,k96;K2为密钥k95,k94,……k81,k80;K3为密钥k79,k78,……k65,k64
2)S盒替换变换(SubCell)
S盒变换是QTL算法唯一非线性组件,算法中使用两个S盒,分别为S1盒与S2盒,正是F1函数与F2函数不同之处,QTL算法的S1盒引用于PRESENT算法加密的S盒,QTL算法的S1盒如表1所示;算法的S2盒引用于mCrypton算法加密的第一个S盒,QTL算法的S2盒如表2所示;F函数中的S盒替换变换,将进行S1盒变换的16位数据分为4个4位,记作为a0,a1,a2,a3,替换得到为b0,b1,b2,b3;将进行S2盒变换的16位数据分为4个4位,记作为c0,c1,c2,c3;替换得到为d0,d1,d2,d3,如公式所示(1)。
有限域S:ai→bi=S1(ai)公式(1)
ci→di=S2(ci),0≤i≤3
表1QTL算法S1盒表元素
X 0 1 2 3 4 5 6 7 8 9 A B C D E F
S1[x] C 5 6 B 9 0 A D 3 E F 8 4 7 1 2
表2QTL算法S2盒表元素
X 0 1 2 3 4 5 6 7 8 9 A B C D E F
S2[x] 4 F 3 8 D A C 0 B 5 7 E 2 6 1 9
3)P置换(Permutation)
P置换是按照每一位进行交换,在F函数中P置换变换为,输入16位数据从高位到低位表示为p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,经P置换将数据比特位位置交换,以p0,p4,p8,p12,p1,p5,p9,p13,p2,p6,p10,p14,p3,p7,p11,p15高位到低位顺序数据输出。
轮置换T变换(RoundTransposing)
轮置换T变换将算法加/解中输入64位数据划分4个字(16位),然后做字的置换操作;具体为进行轮置换T变换64位输入数据从高位到低位依次划分为4个字T0、T1、T2及T3,以T2、T1、T0及T3作为轮置换T变换运算的64位输出数据,轮置换T变换的结构图5所示。其中最后一轮不进行轮置换T变换。
算法测试数据,其中QTL-64算法数据如表3所示,QTL-128算法数据如表4所示:
表3QTL-64算法实验测试数据
Plaintext Key Ciphertext
0000-0000-0000-0000 0000-0000-0000-0000 2036-E050-6D9C-F9F2
0000-0000-0000-0000 FFFF-FFFF-FFFF-FFFF 279A-1B2A-C6D0-40AC
FFFF-FFFF-FFFF-FFFF 0000-0000-0000-0000 D865-E4D5-392F-BF53
FFFF-FFFF-FFFF-FFFF FFFF-FFFF-FFFF-FFFF DFC9-1FAF-9263-060D
36E6-5AAE-2BC1-17D8 3995-48C2-7529-023F 1EA2-AAF9-1627-9DB4
表4QTL-128算法实验测试数据
本发明所述的QTL密码算法在XilinxVirtex-5LX50TFPGA硬件实现,QTL-64算法所占用的资源面积为9896Slices,时钟周期是9.855ns,时钟频率为101.471MHz,吞吐率为382.008Mbps;QTL-128算法所占用的资源面积为10120Slices,时钟周期是9.931ns,时钟频率为100.095MHz,吞吐率为305.05Mbps;
本发明所述的QTL密码算法在ASIC硬件实现,综合工艺库为SMIC0.18μm。QTL-64算法所占用的资源面积为838GE,QTL-128算法占用的资源面积为988GE。
表5为最小密钥长的典型轻量级密码算法FPGA硬件实现,表6为最小密钥长的典型轻量级密码算法ASIC硬件实现,通过表5与表6中数据对比表明,QTL相对目前的轻量级密码,其占用面积资源更小,同时频率以及吞吐率有很高性能。
表5各轻量级密码算法FPGA实现
表6各轻量级密码算法ASIC实现
算法 结构 分组长度(bits) 密钥长度(bits) 资源面积(GE)
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
QTL-64 GFN 64 64 838
以上结合具体实施例对本发明进行了详细的说明,这些并非构成对发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可以作出许多变形和改进,这些也应属于本发明的保护范围。

Claims (2)

1.一种新型超轻量级QTL分组密码实现方法,其特征在于,包括以下步骤:
步骤1:将64位明文/64位密文加载至寄存器,作为待加/解密数据,进行加/解密运算;
步骤2:将所述待加/解密数据进行NR轮迭代运算操作,输出密文或明文,n表示第n轮迭代,且n的初始值为1;
其中,密钥长度为64位时,NR取值为16;密钥长度为128位时,NR取值为20;
将64位待加密数据X/解密数据Y从高位开始按16位一组依次分为4组,待加密数据记作:X0X1X2X3,待解密数据记作:Y0Y1Y2Y3
每一轮迭代运算的轮密钥为包括K0、K1、K2及K3
密钥为64位时,表示为k63,k62,……k1,k0
K0={k63,k62,……k49,k48},K1={k47,k46,……k33,k32},
K2={k31,k30,……k17,k16},K3={k15,k14,……k1,k0};
密钥为128位时,表示为k127,k126,……k1,k0
在加密运算过程中,当n为奇数时,或者在解密运算过程中,当n为偶数时,每一轮迭代运算中:
K0={k127,k126,……k113,k112},K1={k111,k110,……k97,k96},
K2={k95,k94,……k81,k80},K3={k79,k78,……k65,k64};
在加密运算过程中,当n为偶数时,或者在解密运算过程中,当n为奇数时,每一轮迭代运算中:
K0={k63,k62,……k49,k48},K1={k47,k46,……k33,k32},
K2={k31,k30,……k17,k16},K3={k15,k14,……k1,k0};
加密迭代运算操作过程具体如下:
步骤1)首先,将X0进行F1函数变换得到X′0,同时将X2进行F2函数变换得到X'2;接着,将X1与X'0进行异或运算得到X′1,同时将X3与X'2进行异或运算得到X′3
其中,所述进行F1函数变换时,所使用的轮密钥为K0
所述进行F2函数变换时,所使用的轮密钥为K1
所述F1函数与F2函数变换均为F函数变换,F函数运算过程为轮密钥加变换→S盒替换变换→P置换→S盒替换变换;
步骤2)首先,利用X′1进行F1函数变换得到X″1,利用X′3进行F2函数变换得到X″3
接着,将X0与X″1进行异或运算得到X″0,同时将X2与X″3进行异或运算,得到X″2
其中,所述进行F1函数变换时,所使用的轮密钥为K2
所述进行F2函数变换时,所使用的轮密钥为K3
判断n是否等于NR,若不等于,则,令n=n+1,进入步骤3),若等于,则进入步骤4);
步骤3)将X′1X″0X′3X″2进行轮置换T变换,获得轮置换T变换结果记为XT
将运行结果XT,从高位开始按16位一组依次分为4组,记作: 依次赋值给X0、X1、X2、X3,返回步骤1);
步骤4)将X′1、X″0、X′3、X″2依次赋值给Y0、Y1、Y2、Y3,以Y0Y1Y2Y3作为密文输出;
解密迭代运算过程如下:
步骤A)首先,将Y0进行F1函数变换得到Y′0,同时将Y2进行F2函数变换得到Y′2;接着,将Y1与Y′0进行异或运算得到Y′1,同时将Y3与Y′2进行异或运算得到Y′3
其中,所述进行F1函数变换时,所使用的轮密钥为K2
所述进行F2函数变换时,所使用的轮密钥为K3
所述F1函数与F2函数变换均为F函数变换,F函数运算过程为轮密钥加变换→S盒替换变换→P置换→S盒替换变换;
步骤B)首先,利用Y′1进行F1函数变换得到Y″1,利用Y′3进行F2函数变换得到Y″3
接着,将Y0与Y″1进行异或运算得到Y″0,同时将Y2与Y″3进行异或运算,得到Y″2
判断n是否等于NR,若不等于,则,令n=n+1,进入步骤3),若等于,则进入步骤4);
其中,所述进行F1函数变换时,所使用的轮密钥为K0
所述进行F2函数变换时,所使用的轮密钥为K1
步骤C)将Y′1Y″0Y′3Y″2进行轮置换T变换,获得轮置换T变换结果记为YT
将运行结果YT,从高位开始按16位一组依次分为4组,记作: 依次赋值给Y0、Y1、Y2、Y3
返回步骤A);
步骤D)将Y′1、Y″0、Y′3、Y″2依次赋值给X0、X1、X2、X3,以X0X1X2X3作为明文输出;
所述步骤1)和步骤A)中F1函数变换中的S盒采用S1盒,F2函数变换中的S盒采用S2盒;
其中,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:有限域ai→bi=S1(ai)
ci→di=S2(ci),0≤i≤3;
其中,所述ai和ci是进行S盒变换前的16位数中从高位到低位的第i个4位数,bi和di是进行S盒变换后得到的16位数中从高位到低位的第i个4位数;
所述F函数中的P置换是按照每一位进行交换,输入16位数据从高位到低位表示为p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,经P置换将数据比特位位置交换,以p0,p4,p8,p12,p1,p5,p9,p13,p2,p6,p10,p14,p3,p7,p11,p15高位到低位顺序数据输出。
2.根据权利要求1所述的新型超轻量级QTL分组密码实现方法,其特征在于,所述步骤3)和步骤C)中轮置换T变换具体过程如下:
轮置换T变换将算法中输入64位加/解数据按照每个字16位划分4个字,然后做字的置换操作;具体为进行轮置换T变换64位输入数据从高位到低位依次划分为4个字T0、T1、T2及T3,以T2、T1、T0及T3作为轮置换T变换运算的64位输出数据。
CN201410626240.2A 2014-11-10 2014-11-10 一种新型超轻量级qtl分组密码实现方法 Active CN104333446B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410626240.2A CN104333446B (zh) 2014-11-10 2014-11-10 一种新型超轻量级qtl分组密码实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410626240.2A CN104333446B (zh) 2014-11-10 2014-11-10 一种新型超轻量级qtl分组密码实现方法

Publications (2)

Publication Number Publication Date
CN104333446A CN104333446A (zh) 2015-02-04
CN104333446B true CN104333446B (zh) 2016-01-13

Family

ID=52408105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410626240.2A Active CN104333446B (zh) 2014-11-10 2014-11-10 一种新型超轻量级qtl分组密码实现方法

Country Status (1)

Country Link
CN (1) CN104333446B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105391546A (zh) * 2015-12-16 2016-03-09 南京航空航天大学 基于双伪随机变换和Feistel结构的轻量级分组密码技术VHF
CN105959107B (zh) * 2016-06-24 2017-03-08 衡阳师范学院 一种新型高安全的轻量级sfn分组密码实现方法
CN107707343B (zh) * 2017-11-08 2020-10-16 贵州大学 加解密一致的sp网络结构轻量级分组密码实现方法
CN108123791B (zh) * 2017-12-26 2019-03-08 衡阳师范学院 一种轻量级分组密码scs的实现方法与装置
CN109921899B (zh) * 2019-04-18 2019-11-19 衡阳师范学院 一种完全雪崩4×4的s盒实现方法
CN111431697B (zh) * 2020-03-31 2022-06-21 衡阳师范学院 一种新型轻量级分组密码corl的实现方法
CN111756521B (zh) * 2020-06-25 2022-05-27 桂林电子科技大学 基于Feistel-SP结构的密码S盒设计方法
CN112202547B (zh) * 2020-11-11 2022-04-12 衡阳师范学院 一种轻量级分组密码gfcs实现方法、装置及可读存储介质
CN113343276B (zh) * 2021-07-01 2022-06-14 衡阳师范学院 基于广义二维猫映射的轻量级分组密码算法gcm的加密方法
CN113645615B (zh) * 2021-08-12 2023-12-22 衡阳师范学院 轻量级分组密码加密及解密方法
CN113691364B (zh) * 2021-08-31 2024-02-09 衡阳师范学院 一种基于位片技术的动态s盒分组密码的加密及解密方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103166753A (zh) * 2013-03-26 2013-06-19 桂林电子科技大学 4个非线性驱动的轻量级流密码加密方法
CN104065474A (zh) * 2014-07-14 2014-09-24 衡阳师范学院 一种新型低资源高效的轻量级Surge分组密码实现方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8155306B2 (en) * 2004-12-09 2012-04-10 Intel Corporation Method and apparatus for increasing the speed of cryptographic processing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103166753A (zh) * 2013-03-26 2013-06-19 桂林电子科技大学 4个非线性驱动的轻量级流密码加密方法
CN104065474A (zh) * 2014-07-14 2014-09-24 衡阳师范学院 一种新型低资源高效的轻量级Surge分组密码实现方法

Also Published As

Publication number Publication date
CN104333446A (zh) 2015-02-04

Similar Documents

Publication Publication Date Title
CN104333446B (zh) 一种新型超轻量级qtl分组密码实现方法
CN104065474B (zh) 一种轻量级Surge分组密码实现方法
CN107707343B (zh) 加解密一致的sp网络结构轻量级分组密码实现方法
CN111431697B (zh) 一种新型轻量级分组密码corl的实现方法
CN109245881A (zh) 一种照片视频云端加密存储方法
CN106663387A (zh) 加密函数和解密函数生成方法、加密和解密方法以及相关装置
CN101814985B (zh) 应用多混沌映射多动态s盒的分组密码系统
CN109768854A (zh) 一种轻量级分组密码算法Wheel的实现方法
CN105959107A (zh) 一种新型高安全的轻量级sfn分组密码实现方法
CN103607276A (zh) 新型基于随机函数的抗已知明文密文对攻击的分组加密方法
JunLi et al. Email encryption system based on hybrid AES and ECC
CN106982116A (zh) 一种基于可逆逻辑电路的aes的本地文件加密方法
CN111614457B (zh) 基于p置换改进的轻量级分组加解密方法、装置及存储介质
Ghoradkar et al. Review on image encryption and decryption using AES algorithm
Pandey et al. Particle swarm optimization in cryptanalysis of DES
Tianfu et al. Design of a hybrid cryptographic algorithm
Tang et al. A one-time pad encryption algorithm based on one-way hash and conventional block cipher
CN104320420A (zh) 一种基于aes算法的scada文件加密方法
CN106921486A (zh) 数据加密的方法和装置
CN105162580A (zh) 基于ofb模式和分组密码vh的轻量级流密码技术vho
CN102523085A (zh) 数据加密方法、装置及智能卡
Bajaj et al. AES algorithm for encryption
Parihar et al. Blowfish algorithm: a detailed study
CN103746795B (zh) 一种实现Magpie加解密的方法
Cheng et al. Revised cryptanalysis for SMS4

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant