CN103269265B - 用于无线局域网的高速加解密方法 - Google Patents

用于无线局域网的高速加解密方法 Download PDF

Info

Publication number
CN103269265B
CN103269265B CN201310062732.9A CN201310062732A CN103269265B CN 103269265 B CN103269265 B CN 103269265B CN 201310062732 A CN201310062732 A CN 201310062732A CN 103269265 B CN103269265 B CN 103269265B
Authority
CN
China
Prior art keywords
word
ciphertext
key
group
encoded
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
CN201310062732.9A
Other languages
English (en)
Other versions
CN103269265A (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.)
CCore Technology Suzhou Co Ltd
Original Assignee
CCore Technology Suzhou Co Ltd
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 CCore Technology Suzhou Co Ltd filed Critical CCore Technology Suzhou Co Ltd
Priority to CN201310062732.9A priority Critical patent/CN103269265B/zh
Priority claimed from CN 201010272409 external-priority patent/CN101924630B/zh
Publication of CN103269265A publication Critical patent/CN103269265A/zh
Application granted granted Critical
Publication of CN103269265B publication Critical patent/CN103269265B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明公开一种用于无线局域网的高速加解密方法,将一组明文编码分为4个编码字,主密钥编码分为4个密钥字;将主密钥中第1位密钥字至第3位密钥字与第0位密钥字运算生成一个字长的第一轮子密钥,再将第1位密钥字至第3位密钥字前移,将所述第一轮子密钥移至第3位密钥字的位置;将所述第一轮子密钥与一组明文编码第1位编码字至第3位编码字与第0位编码字运算生成一个字长的第一轮密文字,再将第1位编码字至第3位编码字前移,将所述第一轮密文字移至第3位编码字的位置;送入第二轮明文编码,另一组明文编码以字为单位分为4个编码字,该另一组明文编码与其上一组明文编码间隔至少4轮时钟周期。该方法大大提高了加解密速度和数据吞吐量,从而扩大了使用范围。

Description

用于无线局域网的高速加解密方法
技术领域
本发明涉及分组加解密算法的实现方法,尤其涉及一种用于无线局域网的加解密方法即用于无线局域网的高速加解密方法。
背景技术
随着无线局域网的广泛应用,其安全性问题越来越突出。对于无线局域网来说,在安全性方面非常脆弱,这是由于传输速率能达到11M,而且覆盖范围达100米。正是其传输速度快,覆盖范围广,才使它在安全方面非常脆弱。因为数据在传输的过程中都曝露在空中,很容易被别有用心的人截取数据包。
目前,在现有算法的实现方式中,大多还是采用软件方法实现,其实现方式简单方便,但其运算速度却不是太理想,很难满足实时的需要,而硬件实现的方式存在硬件开销大,成本过高,电路实现面积和功耗大等不足。而且随着社会对信息安全的需要越来越高,因此对加密算法的电路实现以及对密钥的管理也都提出了很大的挑战。而在实际应用中,单位时间内加密的数据量比较小,而如果指定加密效率,则需提高时钟频率,而实际应用环境中的时钟频率往往很难得到显著的提高,从而制约了加密效率,因此很难满足对数据吞吐量大和对加密速度要求高的应用环境。
发明内容
本发明目的是提供一种用于无线局域网的高速加解密方法,该高速加解密方法大大提高了加解密速度和单位时间的数据吞吐量,从而扩大了使用范围。
为达到上述目的,本发明采用的技术方案是:
一种用于无线局域网的高速加解密方法,包括以下步骤:
加密过程:
步骤一.将一组明文编码以字为单位分为4个编码字,主密钥编码以字为单位分为4个密钥字;
步骤二.将主密钥编码中第1位密钥字至第3位密钥字与一常量异或运算后,再作可逆变换,再与第0位密钥字异或运算生成一个字长的第1轮子密钥,再将第1位密钥字至第3位密钥字前移至第0位至第2位密钥字的位置,将所述第1轮子密钥移至第3位密钥字的位置,并保留该轮子密钥;
步骤三.重复加密过程的步骤二再生成31个子密钥;
步骤四.将所述第1轮子密钥与所述一组明文编码第1位编码字至第3位编码字异或运算后,再作可逆变换,再与第0位编码字异或运算生成一个字长的第1轮密文字,再将第1位编码字至第3位编码字前移至第0位至第2位编码字的位置,将所述第1轮密文字移至第3位编码字的位置;
步骤五.送入另一组明文编码,该另一组明文编码以字为单位分为4个编码字,该另一组明文编码与其上一组明文编码间隔至少4轮时钟周期;
步骤六.对所述一组明文编码依次按顺序使用第2轮子密钥至第 32轮子密钥进行31轮加密;
步骤七.当一组明文编码经过31轮加密后,将其第0位至第3位编码字作反序变换,获得密文编码;
解密过程:
步骤一.将一组密文编码以字为单位分为4个密文字;
步骤二.将主密钥编码以字为单位分为4个密钥字;
步骤三.将主密钥编码中第1位密钥字至第3位密钥字与一常量先异或运算后,再作可逆变换,再与第0位密钥字异或运算生成一个字长的第1轮子密钥,再将第1位密钥字至第3位密钥字前移至第0位至第2位密钥字的位置,将所述第1轮子密钥移至第3位密钥字的位置,并保留该轮子密钥;
步骤四.重复解密过程步骤三进行31轮后,分别再生成31个子密钥;
步骤五.将第32轮子密钥与所述一组密文编码第1位密文字至第3位密文字异或运算后,再作可逆变换,再与第0位密文字异或运算生成一个字长的第1轮密文字,再将第1位密文字至第3位密文字前移至第0位至第2位编码字的位置,将所述第1轮密文字移至第3位编码字的位置;
步骤六.送入另一组密文编码,另一组密文编码以字为单位分为4个编码字,该另一组密文编码与其上一轮密文编码间隔至少4轮时钟周期;
步骤七.对所述一组密文编码依次按顺序使用第31轮子密钥至第 1轮子密钥进行31轮解密;
步骤八.当一组密文编码经过31轮解密后,将其第0位至第3位密文字作反序变换,获得明文编码;
所述加密过程中可逆变换为:T为加密过程中可逆变换,其中T为Z32 2 到Z32 2的一个可逆变换,由非线性变换τ和线性变化L复合而成,
即T(.)=L(τ (.)),
其中,
非线性变换τ是指由4 个并行的S盒构成,也即设输入为A=(a1, a2, a3, a4)∈(Z8 2) 4 ,输出为B=(b1, b2, b3, b4)∈(Z 8 2) 4 ,则有 (b1, b2, b3, b4)=τ(A)=(Sbox(a1),Sbox(a2), Sbox(a3), Sbox(a4)),其中S盒是指固定的8比特输入8比特输出的置换部件,a1, a2, a3, a4, b1, b2, b3, b4分别为8比特的2进制值,Sbox(a1), Sbox(a2), Sbox(a3),Sbox(a4)分别表示为a1, a2, a3, a4作为8比特的S盒的输入经过S盒置换得到的8比特的2进制值;
线性变换L是指非线性变换τ 的输出作为线性变换L 的输入,同时设输入为B∈Z32 2 ,则有C=L(B)=B⊕(B<<2)⊕(B<<10) ⊕(B<<18)⊕(B<<24),其中<<i 为32比特循环左移i 位;Z32 2表示一个32维的空间,空间的元素为0或1两种。
上述技术方案中的有关内容解释如下:
1.上述方案中,所述另一组明文编码与其上一组明文编码间隔为4轮时钟周期;所述另一组密文编码与其上一组密文编码间隔为4轮时钟周期。
2.上述方案中,所述解密过程中32个子密钥通过 Register File方式寄存。
3.上述方案中,所述加密过程中可逆变换为:T为加密过程中可逆变换,其中T为Z32 2 到Z32 2的一个可逆变换,由非线性变换τ和线性变化L复合而成,
即T(.)=L(τ (.))。其中:非线性变换τ:它是由4 个并行的S盒构成。设输入为A=(a1, a2, a3, a4)∈(Z 8 2) 4 ,输出为B=(b1, b2, b3, b4)∈(Z 8 2) 4 ,则有:
(b1, b2, b3, b4)=τ(A)=(Sbox(a1), Sbox(a2), Sbox(a3), Sbox(a4))
线性变换L:非线性变换τ 的输出也即为线性变换L 的输入。设输入为B∈Z32 2 ,则有:
C=L(B)=B⊕(B<<2)⊕(B<<10) ⊕(B<<18)⊕(B<<24),其中<<i 为32比特循环左移i 位。
4.上述方案中,所述解密过程中可逆变换;T '为加密过程中可逆变换, T '为Z32 2到Z32 2的一个可逆变换,由非线性变换τ和线性变化L'复合而成,即T(.)=L' (τ (.))。其中:非线性变换τ:它是由4 个并行的S盒构成。设输入为A=(a1, a2, a3, a4)∈(Z 8 2) 4 ,输出为B=(b1, b2, b3, b4)∈(Z 8 2) 4 ,则有:
(b1, b2, b3, b4)=τ(A)=(Sbox(a1), Sbox(a2), Sbox(a3), Sbox(a4))
线性变换L':非线性变换τ 的输出也即为线性变换L' 的输入。设输入为B∈Z32 2 ,则有:
C=L' (B)=B⊕(B<<13)⊕(B<<23) 系统参数FK的取值,采用16进制表示为:FK=(FK0, FK1, FK2, FK3),其中FK0=(A3B1BAC6), FK1=(56AA3350), FK2=(677D9197), FK3=(B27022DC)固定参数CK=(CK0,CK1,…, CK31)为 32 个固定参数。
由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果:
(1)本发明设计简洁,加解密方式相同,密钥扩展方式和加解密方式类似,加解密中和密钥扩展中的S盒也相同,该算法实现时硬件的利用率更高,且有利于整个算法在更小的电路面积上实现;其次,安全性高,对于我国的信息安全有更加可靠的保证。
(2)加解密速度快,本发明通过分别寄存加解密算法过程中所产生的每一轮的轮密文和由密钥扩展算法过程中所产生的每一轮的子密钥,再由一个数据输入指示信号data_input来控制数据的输入,从而可在经过32个时钟单元获得第一组128比特数据的密文之后,每隔4个时钟周期即可获得第二组,第三组,直到所有数据的密文,从而不用分别等待32个时钟单元才能获得相应的明文数据的密文,也即4个时钟单元即可处理一组128比特的明文数据,因此大大的提高了数据的加解密速度和数据的吞吐量,从而可以大批量的处理数据,使得加解密处理速度获得了极大的提高。
(3)电路实现简单,通过定义不同的寄存器用于寄存每一轮所产生的轮密文和子密钥,从而使得电路实现相对简单,不需要过多的考虑加解密算法和密钥扩展算法的逻辑实现。
(4)适用面更广,通过大幅的提高了加解密处理速度和数据吞吐量,从而使得能适用于对速度要求更高的应用领域,从而使得其的使用范围扩大了,能适用不同的应用环境。
附图说明
附图1为本发明整体电路结构示意图;
附图2为本发明密钥扩展电路每一轮的运算内部框架示意图;
附图3为本发明加解密电路整体框架示意图;
附图4为本发明加解密算法中每一轮的运算的内部框架示意图。
具体实施方式
下面结合附图及实施例对本发明作进一步描述:
实施例:一种用于无线局域网的高速加解密方法,包括以下步骤:
加密过程:
步骤一.将一组明文编码以字为单位分为4个编码字,主密钥编码以字为单位分为4个密钥字;
步骤二.将主密钥编码中第1位密钥字至第3位密钥字与一常量异或运算后,再作可逆变换,再与第0位密钥字异或运算生成一个字长的第1轮子密钥,再将第1位密钥字至第3位密钥字前移至第0位至第2位密钥字的位置,将所述第1轮子密钥移至第3位密钥字的位置,并保留该轮子密钥;
步骤三.重复加密过程的步骤二再生成31个子密钥;
步骤四.将所述第1轮子密钥与所述一组明文编码第1位编码字至第3位编码字异或运算后,再作可逆变换,再与第0位编码字异或运算生成一个字长的第1轮密文字,再将第1位编码字至第3位编码字前移至第0位至第2位编码字的位置,将所述第1轮密文字移至第3位编码字的位置;
步骤五.送入另一组明文编码,该另一组明文编码以字为单位分为4个编码字,该另一组明文编码与其上一组明文编码间隔至少4轮时钟周期;
步骤六.对所述一组明文编码依次按顺序使用第2轮子密钥至第 32轮子密钥进行31轮加密;
步骤七.当一组明文编码经过31轮加密后,将其第0位至第3位编码字作反序变换,获得密文编码;
解密过程:
步骤一.将一组密文编码以字为单位分为4个密文字;
步骤二.将主密钥编码以字为单位分为4个密钥字;
步骤三.将主密钥编码中第1位密钥字至第3位密钥字与一常量先异或运算后,再作可逆变换,再与第0位密钥字异或运算生成一个字长的第1轮子密钥,再将第1位密钥字至第3位密钥字前移至第0位至第2位密钥字的位置,将所述第1轮子密钥移至第3位密钥字的位置,并保留该轮子密钥;
步骤四.重复解密过程步骤三进行31轮后,分别再生成31个子密钥;
步骤五.将第32轮子密钥与所述一组密文编码第1位密文字至第3位密文字异或运算后,再作可逆变换,再与第0位密文字异或运算生成一个字长的第1轮密文字,再将第1位密文字至第3位密文字前移至第0位至第2位编码字的位置,将所述第1轮密文字移至第3位编码字的位置;
步骤六.送入另一组密文编码,另一组密文编码以字为单位分为4个编码字,该另一组密文编码与其上一轮密文编码间隔至少4轮时钟周期;
步骤七.对所述一组密文编码依次按顺序使用第31轮子密钥至第 1轮子密钥进行31轮解密;
步骤八.当一组密文编码经过31轮解密后,将其第0位至第3位密文字作反序变换,获得明文编码。
所述另一组明文编码与其上一组明文编码间隔为4轮时钟周期;所述另一组密文编码与其上一组密文编码间隔为4轮时钟周期。
所述解密过程中32个子密钥通过 Register File方式寄存。
RegisterFile的具体的接口如下:
RF32*32 ram0_sddc(
.Q (ram0_data_rd_raw[31:0]),
.Clk (clk),
.CEN (~crypt),
.AEN (ram0_rw_b),
.A (ram0_addr[8:4]),
.D (ram0_data_wr[31:0])
)
这个RegisterFile的大小为宽度为32比特,长度也为32比特,而ram0_data_rd_raw[31:0]即为解密时从RegisterFile中读出相对应地址的值,clk即为系统时钟信号,CEN为RegisterFile的使能信号,该信号定义为解密时有效,AEN 为读写信号,该信号定义为高电平有效,其值为密钥准备好的指示信号key_ready,ram0_addr[8:4]为读取RegisterFile中数据的地址,定义为round,每一个时钟周期,round值加1,直到round为32停止。ram0_data_wr[31:0]为往RegisterFile中相对应地址写进去的数据,也即每轮的子密钥,例如:在解密过程中,首先必须准备好32轮的子密钥,32轮的子密钥是由密钥生成算法生成的,每一个时钟周期生成一轮的子密钥,第一轮时生成rk1,此时轮数为1,也即在这个时钟周期内把子密钥rk1 写进RegisterFile中地址为0 的地方,第二个时钟周期把子密钥rk2写进地址为1的地方,...,第三十二个时钟周期把子密钥rk32写进RegisterFile中地址为31的地方,产生完全部32轮子密钥之前,key_ready信号为0,即ram0_rw_b为0,也即RegisterFile是处于写状态中,而所有32轮子密钥都生成好而且全部写进RegisterFile后之后,key_ready信号为1,此时RegisterFile处于读状态,此时ram0_addr[8:4]的值定义为(31-round),解密时第一个时钟周期,也即round为0,此时从RegisterFile中读出地址为(31-0) = 31的值,即读出子密钥rk32,ram0_data_rd_raw[31:0] 即为rk32,解密时第二个时钟周期,也即round为1,此时从RegisterFile中读出地址为(31-1) = 30的值,即读出子密钥rk31,ram0_data_rd_raw[31:0] 即为rk31,... ,解密时第三十二个时钟周期,也即round为31,此时从RegisterFile中读出地址为(31-31)=0的值,即读出子密钥rk1,ram0_data_rd_raw[31:0] 即为rk1 用于解密,从而完成解密过程。
本实施例上述内容解释如下。
附图1中各信号的功能描述如下:
输入信号:
clk:系统时钟输入,
rst_:复位信号,低电平有效,
crypt :加解密模式,0为解密,1为加密,
key[127:0]:算法的主密钥,位宽为128比特,
new_key:更新主密钥指示信号,
sms4_in[127:0] :明文输入,位宽为128比特。
data_input :明文输入指示信号。
输出信号:
sms4_out[127:0] :密文输出,位宽为128比特,
cryptdone :加解密结束指示信号,
roundcipher[31:0] :轮密文,位宽为32比特。
内部信号:
round[5:0]:轮选择控制信号,位宽为6比特,
roundkey[31:0] :轮密钥,位宽为32比特。
加密密钥长度为128比特,表示为MK=(MK0, MK1, MK2, MK3),其中MKi(i=0,1,2,3)为字,轮密钥表示为(rk0, rk1,…, rk31),其中rki(i=0,1,…,31)为字。轮密钥由加密密钥生成。FK=(FK0, FK1, FK2, FK3)为系统参数,CK=(CK0, CK1,…, CK31)为固定参数,用于密钥扩展算法,其中FKi(i=0,1,2,3),CKi(i=0,1,…,31)为字。本算法采用非线性迭代结构,以字为单位进行加密运算,称一次迭代运算为一轮变换.一共有32轮迭代变换。设输入为(X0,X1, X2, X3)∈(Z32 2 ) 4 ,轮密钥为rk∈Z32 2 ,则轮函数F为:
F(X0, X1, X2, X3, rk)=X0⊕T(X1⊕X2⊕X3⊕rk)
所述加密过程中可逆变换为:T为加密过程中可逆变换,其中T为Z32 2 到Z32 2的一个可逆变换,由非线性变换τ和线性变化L复合而成, Z32 2表示一个32维的空间,空间的元素为0或1两种,
即T(.)=L(τ (.))。其中:非线性变换τ:它是由4 个并行的S盒构成。设输入为A=(a1, a2, a3, a4)∈(Z 8 2) 4 ,输出为B=(b1, b2, b3, b4)∈(Z 8 2) 4 ,则有:
(b1, b2, b3, b4)=τ(A)=(Sbox(a1), Sbox(a2), Sbox(a3), Sbox(a4))
线性变换L:非线性变换τ 的输出也即为线性变换L 的输入。设输入为B∈Z32 2 ,则有:
C=L(B)=B⊕(B<<2)⊕(B<<10) ⊕(B<<18)⊕(B<<24),其中<<i 为32比特循环左移i 位。
定义反序变换R为:R(A0,A1,A2,A3)=(A3,A2,A1,A0),Ai∈Z32 2,i=0,1,2,3。设明文输入为(X0,X1,X2,X3)∈(Z32 2 ) 4 ,密文输出为(Y0,Y1,Y2,Y3)∈(Z32 2 ) 4 ,轮密钥为rki∈Z32 2,i=0,1,…, 31。则本算法的加密变换为:对于i=0,1,…, 31 有
Xi+4=F( Xi,Xi+1,Xi+2,Xi+3,rki )= Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki)
(Y0, Y1, Y2, Y3) = R(X32, X33, X34, X35)=(X35, X34, X33, X32)
算法的解密变换与加密变换结构相同,不同的仅是轮密钥的使用顺序相反。加密密钥:MK=(MK0, MK1, MK2, MK3),MKi∈Z32 2 ,i=0,1,2,3令Ki∈Z32 2 ,i=0,1,…, 35,轮密钥为rki∈Z32 2 ,i=0,1,…, 31,则密钥生成方法为:对i=0,1,…, 31,(K0,K1,K2,K3)=( MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3) 而rki=Ki+4=Ki⊕T ' (Ki+1⊕Ki+2⊕Ki+3⊕CKi),所述解密过程中可逆变换;T '为加密过程中可逆变换, T '为Z32 2 到Z32 2的一个可逆变换,由非线性变换τ和线性变化L'复合而成,即T(.)=L' (τ (.))。其中:非线性变换τ:它是由4 个并行的S盒构成。设输入为A=(a1, a2, a3, a4)∈(Z 8 2) 4 ,输出为B=(b1, b2, b3, b4)∈(Z 8 2) 4 ,则有:
(b1, b2, b3, b4)=τ(A)=(Sbox(a1), Sbox(a2), Sbox(a3), Sbox(a4))
线性变换L':非线性变换τ 的输出也即为线性变换L' 的输入。设输入为B∈Z32 2 ,则有:
C=L' (B)=B⊕(B<<13)⊕(B<<23) 系统参数FK的取值,采用16进制表示为:FK=(FK0, FK1, FK2, FK3),其中FK0=(A3B1BAC6), FK1=(56AA3350), FK2=(677D9197), FK3=(B27022DC)固定参数CK=(CK0,CK1,…, CK31)为 32 个固定参数。
本发明算法硬件实现方法包含算法中的密钥扩展算法的硬件实现和加解密算法的硬件实现,而用快速的算法硬件实现方法实现后的电路包括密钥扩展电路,加解密电路和轮控制电路。所述密钥扩展电路是指用128比特的主密钥产生算法中32轮加解密所需的子密钥的电路,其中每一轮子密钥长度为32比特。所述加解密电路是指128比特明文和由密钥扩展电路产生的32轮子密钥经过算法32轮的加解密过程得到128比特密文的电路。所述轮控制电路是指选择和控制密钥扩展电路以及加解密电路中的轮数。
所述的加解密电路,定义32个32比特的寄存器,分别寄存由加解密算法所产生的32轮的轮密文,其中每一轮的轮密文为32比特,数据输入长度为128比特,而由一个数据输入指示信号data_input来确定何时送入新的128比特数据,指示信号data_input是一个周期为4个时钟单元的指示信号,也即每4个时钟单元后送入新的128比特数据。
所述的加解密电路,当指示信号data_input指示信号有效时,第一组128比特数据送入加解密电路中,经过32个时钟单元可获得第一组128比特数据的密文,再经4个时钟单元即可获得第二组128比特数据的密文,再经4个时钟单元即可获得第三组128比特数据的密文,依次类推,直到所有的数据处理完成。
所述的密钥扩展电路,定义32个32比特的寄存器,分别寄存密钥扩展算法所产生的32轮的子密钥,其中每一轮的子密钥长度为32比特,主密钥为128比特。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

Claims (2)

1.一种用于无线局域网的高速加解密方法,其特征在于:包括以下步骤:
加密过程:
步骤一.将一组明文编码以字为单位分为4个编码字,主密钥编码以字为单位分为4个密钥字;
步骤二.将主密钥编码中第1位密钥字至第3位密钥字与一常量异或运算后,再作可逆变换,再与第0位密钥字异或运算生成一个字长的第1轮子密钥,再将第1位密钥字至第3位密钥字前移至第0位至第2位密钥字的位置,将所述第1轮子密钥移至第3位密钥字的位置,并保留该轮子密钥;
步骤三.重复加密过程的步骤二再生成31个子密钥;
步骤四.将所述第1轮子密钥与所述一组明文编码第1位编码字至第3位编码字异或运算后,再作可逆变换,再与第0位编码字异或运算生成一个字长的第1轮密文字,再将第1位编码字至第3位编码字前移至第0位至第2位编码字的位置,将所述第1轮密文字移至第3位编码字的位置;
步骤五.送入另一组明文编码,该另一组明文编码以字为单位分为4个编码字,该另一组明文编码与其上一组明文编码间隔至少4轮时钟周期;
步骤六.对所述一组明文编码依次按顺序使用第2轮子密钥至第 32轮子密钥进行31轮加密;
步骤七.当一组明文编码经过31轮加密后,将其第0位至第3位编码字作反序变换,获得密文编码;
解密过程:
步骤一.将一组密文编码以字为单位分为4个密文字;
步骤二.将主密钥编码以字为单位分为4个密钥字;
步骤三.将主密钥编码中第1位密钥字至第3位密钥字与一常量先异或运算后,再作可逆变换,再与第0位密钥字异或运算生成一个字长的第1轮子密钥,再将第1位密钥字至第3位密钥字前移至第0位至第2位密钥字的位置,将所述第1轮子密钥移至第3位密钥字的位置,并保留该轮子密钥;
步骤四.重复解密过程步骤三进行31轮后,分别再生成31个子密钥;
步骤五.将第32轮子密钥与所述一组密文编码第1位密文字至第3位密文字异或运算后,再作可逆变换,再与第0位密文字异或运算生成一个字长的第1轮密文字,再将第1位密文字至第3位密文字前移至第0位至第2位编码字的位置,将所述第1轮密文字移至第3位编码字的位置;
步骤六.送入另一组密文编码,另一组密文编码以字为单位分为4个编码字,该另一组密文编码与其上一轮密文编码间隔至少4轮时钟周期;
步骤七.对所述一组密文编码依次按顺序使用第31轮子密钥至第 1轮子密钥进行31轮解密;
步骤八.当一组密文编码经过31轮解密后,将其第0位至第3位密文字作反序变换,获得明文编码;
所述加密过程中可逆变换为:T为加密过程中可逆变换,其中T为Z32 2 到Z32 2的一个可逆变换,由非线性变换τ和线性变化L复合而成,
即T(.)=L(τ (.)),
其中,
非线性变换τ是指由4 个并行的S盒构成,也即设输入为A=(a1, a2, a3, a4)∈(Z 8 2) 4,输出为B=(b1, b2, b3, b4)∈(Z 8 2) 4 ,则有 (b1, b2, b3, b4)=τ(A)=(Sbox(a1), Sbox(a2), Sbox(a3), Sbox(a4)),其中S盒是指固定的8比特输入8比特输出的置换部件,a1, a2,a3, a4, b1, b2, b3, b4分别为8比特的2进制值,Sbox(a1), Sbox(a2), Sbox(a3), Sbox(a4)分别表示为a1, a2, a3, a4作为8比特的S盒的输入经过S盒置换得到的8比特的2进制值;
线性变换L是指非线性变换τ 的输出作为线性变换L 的输入,同时设输入为B∈Z32 2 ,则有C=L(B)=B⊕(B<<2)⊕(B<<10) ⊕(B<<18)⊕(B<<24),其中<<i 为32比特循环左移i位;Z32 2表示一个32维的空间,空间的元素为0或1两种。
2.根据权利要求1所述的高速加解密方法,其特征在于:所述另一组明文编码与其上一组明文编码间隔为4轮时钟周期;所述另一组密文编码与其上一组密文编码间隔为4轮时钟周期。
CN201310062732.9A 2010-09-06 2010-09-06 用于无线局域网的高速加解密方法 Active CN103269265B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310062732.9A CN103269265B (zh) 2010-09-06 2010-09-06 用于无线局域网的高速加解密方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN 201010272409 CN101924630B (zh) 2010-09-06 2010-09-06 一种应用于无线局域网的快速加解密方法
CN201310062732.9A CN103269265B (zh) 2010-09-06 2010-09-06 用于无线局域网的高速加解密方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN 201010272409 Division CN101924630B (zh) 2010-09-06 2010-09-06 一种应用于无线局域网的快速加解密方法

Publications (2)

Publication Number Publication Date
CN103269265A CN103269265A (zh) 2013-08-28
CN103269265B true CN103269265B (zh) 2017-05-03

Family

ID=49012875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310062732.9A Active CN103269265B (zh) 2010-09-06 2010-09-06 用于无线局域网的高速加解密方法

Country Status (1)

Country Link
CN (1) CN103269265B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1527531A (zh) * 2003-03-07 2004-09-08 华为技术有限公司 一种数据加密标准或三重数据加密标准的实现方法
CN101013938A (zh) * 2007-01-12 2007-08-08 广州市诚毅科技软件开发有限公司 一种分组密码加密方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10148415C2 (de) * 2001-09-29 2003-07-31 Univ Braunschweig Tech Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1527531A (zh) * 2003-03-07 2004-09-08 华为技术有限公司 一种数据加密标准或三重数据加密标准的实现方法
CN101013938A (zh) * 2007-01-12 2007-08-08 广州市诚毅科技软件开发有限公司 一种分组密码加密方法

Also Published As

Publication number Publication date
CN103269265A (zh) 2013-08-28

Similar Documents

Publication Publication Date Title
CN105490802B (zh) 基于gpu的改进sm4并行加解密通信方法
CN104639314A (zh) 基于aes加密/解密算法的装置和流水控制方法
CN105959107B (zh) 一种新型高安全的轻量级sfn分组密码实现方法
CN103812641A (zh) 一种实现sm4分组对称密码算法的系统
CN105324956A (zh) 加密明文数据的方法及设备
CN101764685B (zh) 实现sms4算法的加解密系统
CN101938349A (zh) 一种适用于硬件实现的s盒及其电路实现方法
CN110474761A (zh) 一种16轮sm4-256白盒密码实现方法
CN110311771A (zh) Sm4加解密方法及电路
CN103903047A (zh) 一种适用于rfid安全通信的椭圆曲线加密协处理器
CN101924630B (zh) 一种应用于无线局域网的快速加解密方法
CN104486068A (zh) 基于非线性循环移位寄存器的流密码算法snrr
WO2016026287A1 (zh) 一种加密装置、加密方法及计算机存储介质
CN101431405A (zh) Des加密电路和方法及其硬件电路实现方法
CN103746796A (zh) 一种实现智能卡sm4密码算法的协处理器
CN101582170B (zh) 一种基于椭圆曲线密码体制的遥感图像加密方法
CN103336920A (zh) 用于无线传感网络soc芯片的安全系统
Chen et al. AES key expansion algorithm based on 2D logistic mapping
CN104219045A (zh) Rc4 流密码生成器
CN103269265B (zh) 用于无线局域网的高速加解密方法
CN101938739B (zh) 一种应用于无线局域网的加密方法
CN100561911C (zh) 一种AES加解密电路中Sbox模块优化方法及优化电路
CN101945383B (zh) 一种用于无线局域网的面积紧凑的算法硬件实现方法
CN103269480A (zh) 无线局域网用高速加解密方法
CN107707352B (zh) 一种嵌入式加密方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 215011 Zhuyuan Road 209, New District, Suzhou City, Jiangsu Province

Patentee after: Suzhou Guoxin Technology Co., Ltd.

Address before: 215011 Zhuyuan Road 209, New District, Suzhou City, Jiangsu Province

Patentee before: C*Core Technology (Suzhou) Co., Ltd.