用于无线局域网的高效安全加密方法

文档序号:7556103阅读:214来源:国知局
专利名称:用于无线局域网的高效安全加密方法
技术领域
本发明涉及分组加密算法的实现方法,尤其涉及一种用于无线局域网的高效安全加密方法。
背景技术
随着无线局域网的广泛应用,其安全性问题越来越突出。对于无线局域网来说,在安全性方面非常脆弱,这是由于传输速率能达到11M,而且覆盖范围达100米。正是其传输速度快,覆盖范围广,才使它在安全方面非常脆弱。因为数据在传输的过程中都曝露在空中,很容易被别有用心的人截取数据包。目前,在现有算法的实现方式中,大多还是采用软件方法实现,其实现方式简单方便,但其运算速度却不是太理想,很难满足实时的需要,而硬件实现的方式存在硬件开销大,成本过高,电路实现面积和功耗大等不足。而且随着社会对信息安全的需要越来越高,因此对加密算法的电路实现以及对密钥的管理也都提出了很大的挑战,在实际应用中,相对于解密的相关性能来说用户往往更加关注加密的性能指标,因此如何在满足加密数据安全性的同时,并提高密码算法的加密速度,这又是一个新的难题。

发明内容
本发明目的是提供一种用于无线局域网的高效安全加密方法,该方法大大提高了加解密速度和单位时间的数据吞吐量,且数据的安全性强。为达到上述目的,本发明采用的技术方案是:
一种用于无线局域网的高效安全加密方法,包括以下步骤:
步骤一.将第一组明文编码以字为单位分为4个编码字,将第一组主密钥编码以字为单位分为4个密钥字;
步骤二.将所述第一组主密钥编码中第I位密钥字至第3位密钥字与一常量异或运算后,再作可逆变换,再与第O位密钥字异或运算生成一个字长的第I轮子密钥,再将第I位密钥字至第3位密钥字前移至第O位至第2位密钥字的位置,将所述第I轮子密钥移至第3位密钥字的位置,并保留该轮子密钥;
步骤三.重复步骤二生成第一组主密钥编码的31个子密钥;
步骤四.将所述第I轮子密钥与所述第一组明文编码第I位编码字至第3位编码字异或运算后,再作可逆变换,再与第O位编码字异或运算生成一个字长的第一轮密文字,再将第I位编码字至第3位编码字前移至第O位至第2位编码字的位置,将所述第一轮密文字移至第3位编码字的位置;
步骤五.送入第二组明文编码,该第二组明文编码以字为单位分为4个编码字,该第二组明文编码与其上一组明文编码间隔至少4轮时钟周期;同时,送入第二组主密钥编码,第二组主密钥编码以字为单位分为4个密钥字,该第二组主密钥编码与其上一组主密钥编码的时间间隔与所述第二组明文编码与第一组明文 编码的时间间隔相同;步骤六.重复步骤二生成第二组主密钥编码的31个子密钥;
步骤七.对所述第一组明文编码依次按顺序使用第一组主密钥编码的第2轮子密钥至第32轮子密钥重复步骤三进行31轮加密;同理,对所述第二组明文编码依次按顺序使用第二组主密钥编码的第I轮子密钥至第32轮子密钥重复步骤三进行32轮加密;
步骤八.当一组明文编码经过32轮加密后,将其第O位至第3位编码字作反序变换,获得密文编码;
所述加密过程中可逆变换为:T为加密过程中可逆变换,其中T为Z322到Z322的一个可逆变换,由非线性变换τ和线性变化L复合而成,
即T(.)=L(t (.))。其中:非线性变换τ:它是由4个并行的S盒构成。设输入为A= (a” a2, a3, a4) e (Z 82) 4,输出为 B= (b” b2, b3, b4) e (Z 82) 4,则有:
(b1; b2, b3, b4) = τ (A) = (Sbox (a^ , Sbox (a2), Sbox (a3), Sbox (a4));S盒、Sbox(B1)、Sbox(a2)、Sbox(a3)、Sbox(a4)进一步解释如下:S盒也称为非线性函数sbox,设输入为 A=Ca1, a2, a3, a4) e (Z 82) 4,输出为 B=Od1, b2, b3, b4) e (Z 82) 4 , JjllJ有(b” b2, b3, b4) =τ (A) = (Sbox (a^ , Sbox (a2), Sbox (a3), Sbox (a4)),其中 S 盒是指固定的8比特输入8比特输出的置换部件,&1,a2, a3, a4, b1; b2, b3, b4分别为8比特的2进制值,Sboxfe), Sbox (a2), Sbox (a3), Sbox (a4)分别表示为 a1; a2, a3, a4 作为 8 比特的S盒的输入经过S盒置换得到的8比特的2进制值;
线性变换L:非线性变换τ的输出也即为线性变换L的输入。设输入为B EZ322,则
有:
C=L(B)=B (Β 2) (Β 10) (Β 18) (Β〈〈24),其中 <〈i 为 32 比特循环左移i位。上述技术方案中的有关内容解释如下:
上述方案中,所述第一组明文编码与其上一组明文编码间隔为4轮时钟周期。由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果:
(I)本发明设计简洁,加解密方式相同,密钥扩展方式和加解密方式类似,加解密中和密钥扩展中的S盒也相同,该算法实现时硬件的利用率更高,且有利于整个算法在更小的电路面积上实现;其次,安全性高,对于我国的信息安全有更加可靠的保证。通过对密钥的实时更新,使得数据的安全性更好,可以阻止更多攻击。(2)加解密速度快,本发明通过分别寄存加解密算法过程中所产生的每一轮的轮密文和由密钥扩展算法过程中所产生的每一轮的子密钥,再由一个数据输入指示信号data_input和主密钥输入指示信号key_input来分别控制数据的输入和主密钥的输入,从而可在经过32个时钟单元获得第一组128比特数据的密文之后,每隔4个时钟周期即可获得第二组,第三组,直到所有数据的密文,从而不用分别等待32个时钟单元才能获得相应的明文数据的密文,也即4个时钟单元即可处理一组128比特的明文数据,因此大大的提高了数据的加解密速度和数据的吞吐量,从而可以大批量的处理数据,使得加解密处理速度获得了极大的提闻。(3)电路实现简单,通过定义不同的寄存器用于寄存每一轮所产生的轮密文和子密钥,从而使得电路实现相对简单,不需要过多的考虑加解密算法和密钥扩展算法的逻辑实现。
(4)适用面更广,通过大幅的提高了加解密处理速度和数据吞吐量,从而使得能适用于对速度要求更高的应用领域,从而使得其的使用范围扩大了,能适用不同的应用环境。


附图1为本发明整体电路结构示意 附图2为本发明密钥扩展电路每一轮的运算内部框架示意 附图3为本发明加解密电路整体框架示意 附图4为本发明加解密算法中每一轮的运算的内部框架示意图。
具体实施例方式下面结合附图及实施例对本发明作进一步描述:
实施例:一种用于无线局域网的高效安全加密方法,
包括以下步骤:
步骤一.将第一组明文编码以字为单位分为4个编码字,将第一组主密钥编码以字为单位分为4个密钥字。步骤二.将所述第一组主密钥编码中第I位密钥字至第3位密钥字与一常量异或运算后,再作可逆变换,再与第O位密钥字异或运算生成一个字长的第I轮子密钥,再将第I位密钥字至第3位密钥字前移至第O位至第2位密钥字的位置,将所述第I轮子密钥移至第3位密钥字的位置,并保留该轮子密钥。

步骤三.重复步骤二生成第一组主密钥编码的31个子密钥。步骤四.将所述第I轮子密钥与所述第一组明文编码第I位编码字至第3位编码字异或运算后,再作可逆变换,再与第O位编码字异或运算生成一个字长的第一轮密文字,再将第I位编码字至第3位编码字前移至第O位至第2位编码字的位置,将所述第一轮密文字移至第3位编码字的位置。步骤五.送入第二组明文编码,该第二组明文编码以字为单位分为4个编码字,该第二组明文编码与其上一组明文编码间隔至少4轮时钟周期;同时,送入第二组主密钥编码,第二组主密钥编码以字为单位分为4个密钥字,该第二组主密钥编码与其上一组主密钥编码的时间间隔与所述第二组明文编码与第一组明文编码的时间间隔相同。步骤六.重复步骤二生成第二组主密钥编码的31个子密钥。步骤七.对所述第一组明文编码依次按顺序使用第一组主密钥编码的第2轮子密钥至第32轮子密钥重复步骤三进行31轮加密;同理,对所述第二组明文编码依次按顺序使用第二组主密钥编码的第I轮子密钥至第32轮子密钥重复步骤三进行32轮加密。步骤八.当一组明文编码经过32轮加密后,将其第O位至第3位编码字作反序变换,获得密文编码。所述第一组明文编码与其上一组明文编码间隔为4轮时钟周期。所述加密过程中可逆变换为:T为加密过程中可逆变换,其中T为Z322到Z322的一个可逆变换,由非线性变换τ和线性变化L复合而成,
即T(.)=L(t (.))。其中:非线性变换τ:它是由4个并行的S盒构成。设输入为A= (a” a2, a3, a4) e (Z 82) 4,输出为 B= (b” b2, b3, b4) e (Z 82) 4,则有:(b1; b2, b3, b4) = τ (A) = (Sbox (a^ , Sbox (a2), Sbox (a3), Sbox (a4));
S盒、Sbox(B1)、Sbox(a2)、Sbox(a3)、Sbox(a4)进一步解释如下:S盒也称为非线性函数sbox,设输入为 A=Ca1, a2, a3, a4) e (Z 82) 4,输出为 B=Od1, b2, b3, b4) e (Z 82) 4 , JjllJ有(b” b2, b3, b4) =τ (A) = (Sbox (a^ , Sbox (a2), Sbox (a3), Sbox (a4)),其中 S 盒是指固定的8比特输入8比特输出的置换部件,&1,a2, a3, a4, b1; b2, b3, b4分别为8比特的2进制值,Sboxfe), Sbox (a2), Sbox (a3), Sbox (a4)分别表示为 a1; a2, a3, a4 作为 8 比特的S盒的输入经过S盒置换得到的8比特的2进制值;
线性变换L:非线性变换τ的输出也即为线性变换L的输入。设输入为B EZ322,则
有:
C=L(B)=B (Β 2) (Β 10) (Β 18) (Β〈〈24),其中 <〈i 为 32 比特循环左移i位。本实施例上述内容解释如下。附图1中各信号的功能描述如下:
输入信号:
elk:系统时钟输入,
rst_:复位信号,低电平有效,
crypt:加解密模式,O为解密,I为加密,
key[127:0]:算法的主密钥,位宽为128比特,
new_key:更新主密钥指示信号,
sms4_in[127:0]:明文输入,位宽为128比特。data_input:明文输入指示信号。Key_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, rki,…,rk31),其中Ai (i=0,1,…,31)为字。轮密钥由加密密钥生成。FK= (FK。,FK1, FK2, FK3)为系统参数,CK= (CKQ,CK1,…,CK31)为固定参数,用于密钥扩展算法,其中FKiQ = 0,l,2,3),CKi(i =0,1,…,31)为字。本算法采用非线性迭代结构,以字为单位进行加密运算,称一次迭代运算为一轮变换.一共有32轮迭代变换。设输入为(X。,X1, X2, X3) e (Z322 ) 4,轮密钥为rk GZ322,则轮函数F为:
F (X0, X1, X2, X3, rk) =X0 !(X1 X2 X3 rk)
定义反序变换 R 为-Mk 0,“ Q = (k3,k2,k',k0),ki e Z322,i=0,1,2,3。设明文输入为(X。,X1, X2, X3) e (Z322 ) 4,密文输出为(Y。,Y1, Y2, Y3) e (Z322 ) 4,轮密钥为 rf e Z322,i=0,l,...,31。则本算法的加密变换为:对于i=0,1,…,31有Xi+4=F( Xi, Xi+1, Xi+2, Xi+3, Tki )= Xi T (Xi+1 Xi+2 Xi+3 Tki)
(YO, Yl, Y2, Y3) = R(X32, X33, X34, X35) = (X35, X34, X33, X32)
本发明算法硬件实现方法包含算法中的密钥扩展算法的硬件实现和加解密算法的硬件实现,而用快速的算法硬件实现方法实现后的电路包括密钥扩展电路,加解密电路和轮控制电路。所述密钥扩展电路是指用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比特,而由一个主密钥输入指示信号key_input来确定何时送入新的128比特主密钥。指示信号key_input是一个周期为4个时钟单元的指示信号。在主密钥不变的情况下,则指示信号key_input —直无效;在主密钥随输入的明文数据变化而变化时,指示信号key_input的时钟周期等同于数据输入指示信号data_input的时钟周期。上述实施例只为·说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
权利要求
1.一种用于无线局域网的高效安全加密方法,其特征在于:包括以下步骤: 步骤一.将第一组明文编码以字为单位分为4个编码字,将第一组主密钥编码以字为单位分为4个密钥字; 步骤二.将所述第一组主密钥编码中第I位密钥字至第3位密钥字与一常量异或运算后,再作可逆变换,再与第O位密钥字异或运算生成一个字长的第I轮子密钥,再将第I位密钥字至第3位密钥字前移至第O位至第2位密钥字的位置,将所述第I轮子密钥移至第3位密钥字的位置,并保留该轮子密钥; 步骤三.重复步骤二再生成第一组主密钥编码的31个子密钥; 步骤四.将所述第I轮子密钥与所述第一组明文编码第I位编码字至第3位编码字异或运算后,再作可逆变换,再与第O位编码字异或运算生成一个字长的第一轮密文字,再将第I位编码字至第3位编码字前移至第O位至第2位编码字的位置,将所述第一轮密文字移至第3位编码字的位置; 步骤五.送入第二组明文编码,该第二组明文编码以字为单位分为4个编码字,该第二组明文编码与其上一组明文编码间隔至少4轮时钟周期;同时,送入第二组主密钥编码,第二组主密钥编码以字为单位分为4个密钥字,该第二组主密钥编码与其上一组主密钥编码的时间间隔与所述第二组明文编码与第一组明文编码的时间间隔相同; 步骤六.重复步骤二再生成第二组主密钥编码的31个子密钥; 步骤七.对所述第一组明文编码依次按顺序使用第一组主密钥编码的第2轮子密钥至第32轮子密钥重复步骤三进行31轮加密;同理,对所述第二组明文编码依次按顺序使用第二组主密钥编码的第I轮子密钥至第32轮子密钥重复步骤三进行32轮加密; 步骤八.当一组明文编码经过32轮加密后,将其第O位至第3位编码字作反序变换,获得密文编码; 所述加密过程中可逆变换为:T为加密过程中可逆变换,其中T为Z322到Z322的一个可逆变换,由非线性变换τ和线性变化L复合而成, 即T(.)=L(t (.)),其中:非线性变换τ:它是由4个并行的S盒构成,设输入为A= (a” a2, a3, a4) e (Z 82) 4,输出为 B= (b” b2, b3, b4) e (Z 82) 4,则有: (b1; b2, b3, b4) = τ (A) = (Sbox (a^ , Sbox (a2), Sbox (a3), Sbox (a4)) 线性变换L:非线性变换τ的输出也即为线性变换L的输入,设输入为B e Z322,则有: C=L(B)=B (B 2) (B 10) (B 18) (B〈〈24),其中 <〈i 为 32 比特循环左移i位。
全文摘要
一种用于无线局域网的高效安全加密方法,将第一组明文编码以字为单位分为4个编码字,将第一组主密钥编码以字为单位分为4个密钥字;将所述第一组主密钥编码中第1位密钥字至第3位密钥字与第0位密钥字运算生成一个字长的第1轮子密钥,再将第1位密钥字至第3位密钥字前移至第0位至第2位密钥字的位置,将所述第1轮子密钥移至第3位密钥字的位置;送入第二组明文编码,该第二组明文编码与其上一组明文编码间隔至少4轮时钟周期;同时,送入第二组主密钥编码,该第二组主密钥编码与其上一组主密钥编码的时间间隔与所述第二组明文编码与第一组明文编码的时间间隔相同。该方法大大提高了加解密速度和单位时间的数据吞吐量,且数据的安全性强。
文档编号H04L9/06GK103236923SQ20131017606
公开日2013年8月7日 申请日期2010年9月6日 优先权日2010年9月6日
发明者郑茳, 肖佐楠, 林雄鑫, 钟名富 申请人:苏州国芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1