专利名称:一种用于无线局域网的面积紧凑的算法硬件实现方法
技术领域:
本发明涉及分组加解密算法的硬件实现方法,尤其涉及一种用于无线局域网的加 解密方法。
背景技术:
随着无线局域网的广泛应用,其安全性问题越来越突出。对于无线局域网来说,在 安全性方面非常脆弱,这是由于传输速率能达到11M,而且覆盖范围达100米。正是其传输 速度快,覆盖范围广,才使它在安全方面非常脆弱。因为数据在传输的过程中都曝露在空 中,很容易被别有用心的人截取数据包。目前,在现有算法的实现方式中,大多还是采用软件方法实现,其实现方式简单方 便,但其运算速度却不是太理想,很难满足实时的需要,而硬件实现的方式存在硬件开销 大,成本过高,电路实现面积和功耗大等不足,因此对于在一些面积要求高的环境,如智能 卡的应用等,现有的加解密方式的使用则受到很大的制约。
发明内容
本发明目的是提供一种用于无线局域网的面积紧凑的算法硬件实现方法,该方法 硬件实现起来面积紧凑,在保证算法实现效率的前提下大大减少了算法硬件实现电路面 积,从而扩大了使用范围。为达到上述目的,本发明采用的技术方案是一种用于无线局域网的面积紧凑的算法硬件实现方法,包括以下步骤加密过程步骤一、将明文编码以字为单位分为4个编码字,主密钥编码以字为单位分为4个 密钥字;步骤二、将主密钥中第1位密钥字至第3位密钥字与一常量异或运算后,再作可逆 变换,再与第0位密钥字异或运算生成一个字长的第一轮密钥,再将第1位密钥字至第3位 密钥字前移至第0位至第2位密钥字的位置,将所述第一轮密钥移至第3位密钥字的位置;步骤三、将所述第一轮密钥与明文编码第1位编码字至第3位编码字异或运算后, 再作可逆变换,再与第0位编码字异或运算生成一个字长的第一轮密文字,再将第1位编码 字至第3位编码字前移至第0位至第2位编码字的位置,将所述第一轮密文字移至第3位 编码字的位置;步骤四、重复加密过程的步骤二生成31个密钥,依次按顺序使用第2轮密钥至第 32轮密钥重复步骤三进行31轮加密后,将第0位至第3位编码字作反序变换;解密过程步骤一、将密文编码以字为单位分为4个密文字;步骤二、将主密钥编码以字为单位分为4个密钥字;步骤三、将主密钥中第1位密钥字至第3位密钥字与一常量先异或运算后,再作可逆变换,再与第0位密钥字异或运算生成一个字长的第1轮密钥,再将第1位密钥字至第3 位密钥字前移至第0位至第2位密钥字的位置,将所述第一轮密钥移至第3位密钥字的位 置;步骤四、重复解密过程步骤三进行32轮后,分别生成32个密钥,该32个密钥通过 Register File 方式寄存;步骤五、将所述第32轮密钥与密文编码第1位密文字至第3位密文字异或运算 后,再作可逆变换,再与第0位密文字异或运算生成一个字长的第1轮密文字,再将第1位 密文字至第3位密文字前移至第0位至第2位编码字的位置,将所述第一轮密文字移至第 3位编码字的位置;步骤六、依次按顺序使用第31轮密钥至第1轮密钥重复步骤五后,将第0位至第 3位密文字作反序变换,获得明文编码。上述技术方案中的有关内容解释如下1.上述方案中,所述加密过程中可逆变换为T为加密过程中可逆变换,其中T为 2322到〖322的一个可逆变换,由非线性变换t和线性变化L复合而成,即T(.) =L(t (.))。其中非线性变换T 它是由4个并行的S盒构成。设输入 为 A= a2, a3, a4) G (Z82)4,输出为 B= (b” b2,b3,b4) G (Z82)4,贝U有(bj, b2, b3, b4) = x (A) = (Sbox (a^ , Sbox (a2), Sbox (a3), Sbox (a4))线性变换L 非线性变换T的输出也即为线性变换L的输入。设输入为B G Z322, 则有C=L(B)=B @ (B 2) (B 10) (B 18) (B 24),其中<< i 为 32 比
特循环左移i位。2.上述方案中,所述解密过程中可逆变换;T'为加密过程中可逆变换,T'为Z322 到Z322的一个可逆变换,由非线性变换t和线性变化L'复合而成,即T(.) =L' (T(.))。 其中非线性变换t 它是由4个并行的S盒构成。设输入为A= (ai,a2,a3,a4) G (Z82)4, 输出为 B= (bplvlvbO G (Z82)4,则有(bj, b2, b3, b4) = x (A) = (Sbox (a^ , Sbox (a2), Sbox (a3), Sbox (a4))线性变换L'非线性变换T的输出也即为线性变换L'的输入。设输入为 B G Z322,则有C=L’ (B)=B (B 13) (B 23)系统参数ra的取值,采用ie进制表示为
FK = (FK。,FK” FK2, FK3),其中 FK0 = (A3B1BAC6),FK! = (56AA3350),FK2 = (677D9197), FK3 = (B27022DC)固定参数 CK = (CK0, CK” ,CK31)为 32 个固定参数。由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果(1)本发明算法的设计简洁,加解密方式相同,密钥扩展方式和加解密方式类似, 加解密中和密钥扩展中的S盒也相同,该算法实现时硬件的利用率更高,且有利于整个算 法在更小的电路面积上实现;其次,安全性高,对于我国的信息安全有更加可靠的保证。(2)本发明具有硬件实现面积小,通过采用Register File的方式寄存由128比特 主密钥产生的32轮的子密钥,这比用寄存器存储所有32轮的子密钥的方式大大减小了硬 件电路实现面积,而在加解密电路中定义了 4个32比特的寄存器,采用移位的方式获取每 一轮产生的密文,从而又极大的简化了硬件电路实现面积,最后通过复用加解密电路和密钥扩展电路中都使用的S盒以及移位和异或运算,进一步降低了电路实现面积。(3)电路实现灵活方便。通过在加解密电路中使用移位的方式,使得电路相当容易 实现,而且通过定义一个32比特的线网wire类型E,从而可以把每一轮的子密钥输出到外 部,这既有利于电路的验证,也方便了用户的使用。(4)适用面更广。通过对算法的硬件电路的简化和面积的优化,从而使得算法能适 用于对面积要求高的应用领域,从而使得其的使用范围扩大了,能适用不同的应用环境。
附图1为本发明整体电路结构示意图;附图2为本发明密钥扩展电路内部框架示意图;附图3为本发明加解密电路整体框架示意图;附图4为本发明加解密电路内部框架示意图。
具体实施例方式下面结合附图及实施例对本发明作进一步描述实施例一种用于无线局域网的面积紧凑的算法硬件实现方法,包括以下步骤加密过程步骤一、将明文编码以字为单位分为4个编码字,主密钥编码以字为单位分为4个 密钥字。步骤二、将主密钥中第1位密钥字至第3位密钥字与一常量异或运算后,再作可逆 变换,再与第0位密钥字异或运算生成一个字长的第一轮密钥,再将第1位密钥字至第3位 密钥字前移至第0位至第2位密钥字的位置,将所述第一轮密钥移至第3位密钥字的位置。步骤三、将所述第一轮密钥与明文编码第1位编码字至第3位编码字异或运算后, 再作可逆变换,再与第0位编码字异或运算生成一个字长的第一轮密文字,再将第1位编码 字至第3位编码字前移至第0位至第2位编码字的位置,将所述第一轮密文字移至第3位 编码字的位置。步骤四、重复加密过程的步骤二生成31个密钥,依次按顺序使用第2轮密钥至第 32轮密钥重复步骤三进行31轮加密后,将第0位至第3位编码字作反序变换。解密过程步骤一、将密文编码以字为单位分为4个密文字。步骤二、将主密钥编码以字为单位分为4个密钥字。步骤三、将主密钥中第1位密钥字至第3位密钥字与一常量先异或运算后,再作可 逆变换,再与第0位密钥字异或运算生成一个字长的第1轮密钥,再将第1位密钥字至第3 位密钥字前移至第0位至第2位密钥字的位置,将所述第一轮密钥移至第3位密钥字的位置。步骤四、重复解密过程步骤三进行32轮后,分别生成32个密钥,该32个密钥通过 Register File方式寄存;RegisterFile的具体的接口如下RF32*32ramO_sddc ( . Q (ramO_data_rd_raw[31:0]),
. Clk (elk), CEN ( crypt),. AEN (ram0_rw_b),. A (ram0_addr [8:4]),. D (ramO_data_wr[31:0]))这个RegisterFile的大小为宽度为32比特,长度也为32比特,而ram0_data_ rd_raw[31:0]即为解密时从RegisterFile中读出相对应地址的值,elk即为系统时钟信 号,CEN为RegisterFile的使能信号,该信号定义为解密时有效,AEN为读写信号,该信 号定义为高电平有效,其值为密钥准备好的指示信号key_ready,ram0_addr[84]为读取 RegisterFile中数据的地址,定义为round,每一个时钟周期,round值加1,直到round 为32停止。ram0_data_wr[31:0]为往RegisterFile中相对应地址写进去的数据,也即 每轮的子密钥,例如在解密过程中,首先必须准备好32轮的子密钥,32轮的子密钥是由 密钥生成算法生成的,每一个时钟周期生成一轮的子密钥,第一轮时生成rkl,此时轮数 为1,也即在这个时钟周期内把子密钥rkl写进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的值,即读出子密钥rkl, ram0_data_rd_raw[31:0]即为rkl用于解密, 从而完成解密过程。步骤五、将所述第32轮密钥与第1位密文字至第3位密文字异或运算后,再作可 逆变换,再与第0位密文字异或运算生成一个字长的第1轮密文字,再将第1位密文字至第 3位密文字前移至第0位至第2位编码字的位置,将所述第一轮密文字移至第3位编码字的 位置。步骤六、依次按顺序使用第31轮密钥至第1轮密钥重复步骤五后,将第0位至第 3位密文字作反序变换,获得明文编码。本实施例上述内容解释如下。附图1中各信号的功能描述如下输入信号elk 系统时钟输入,rst 复位信号,低电平有效,crypt 加解密模式,0为解密,1为加密,key[127:0]算法的主密钥,位宽为128比特,
7
new_key 更新主密钥指示信号,sms4_in [127:0]明文输入,位宽为128比特。输出信号sms4_out[127:0]密文输出,位宽为128比特,cryptdone 加解密结束指示信号,roundcipher[31:0]轮密文,位宽为 32 比特。内部信号round[5:0]轮选择控制信号,位宽为6比特,roundkey[31:0]轮密钥,位宽为 32 比特。加密密钥长度为128 比特,表示为 MK = (MKtl,MK1, MK2, MK3),其中 MKi (i = 0,1,2, 3)为字,轮密钥表示为(rlvrkp...,rk31),其中rki(i = 0,1,... ,31)为字。轮密钥由加 密密钥生成。Hi = (FK0, FK1, FK2, FK3)为系统参数,CK = (CK0, CK1,... , CK31)为固定参数, 用于密钥扩展算法,其中FKi (i = 0,1,2,3),CKi (i = 0,1,...,31)为字。本算法采用非线 性迭代结构,以字为单位进行加密运算,称一次迭代运算为一轮变换.一共有32轮迭代变 换。设输入为(‘XpXyX》e (Z322) 4,轮密钥为rk e Z322,则轮函数F为F(X0, X1, X2, X3, rk)=X0 T(X, X2 X3 十 rk)所述加密过程中可逆变换为T为加密过程中可逆变换,其中T为Z322到Z322的一 个可逆变换,由非线性变换τ和线性变化L复合而成,2322表示一个32维的空间,空间的元 素为0或1两种,即T(.) =L(x (.))。其中非线性变换τ 它是由4个并行的S盒构成。设输入 为 A= (B1, a2, a3, a4) e (Z82)4,输出为 B= (b1 b2, b3, b4) e (Z82)4,贝U有(b” 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位。定义反序变换R 为=R(Ac^ApA2J3) = (A3jA2jAijA0)jAi e Z322 , i = 0,1,2,3。设明 文输入为(XcpXPU3) e (Z322) 4,密文输出为(YtlJpY2J3) e (Z322) 4,轮密钥为 rf e Z322, 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 rk()(Y0,Yl, Y2, Y3) = R(X32, X33, X34, X35) = (X35, X34, X33, X32)算法的解密变换与加密变换结构相同,不同的仅是轮密钥的使用顺序相反。加 密密钥MK = (MK0, MK1, MK2, MK3),MKi e Z322 , i = 0,1,2,3 令 Ki e Z322 , i = 0,1,..., 35,轮密钥为rki e Z322, i = 0,1,...,31,则密钥生成方法为对i = 0,1,...,31, (K0, K1, K2, K3)二(MK0 十 FK0,MK1 十 FK1, MK2 FK2, MK3 FK3)而 Fki=Kw=Ki T ’(Ki+1 Ki^eKwSCKi),所述解密过程中可逆变换;τ'为加密过 程中可逆变换,T'为Z322到Z322的一个可逆变换,由非线性变换τ和线性变化L'复合而 成,即T(.) =L' (τ (.))。其中非线性变换τ 它是由4个并行的S盒构成。设输入为 A= (B1, a2, a3, a4) e (Z82)4,输出为 B= (b1 b2, b3, b4) e (Z82)4,贝U有
(b” b2, b3, b4) = τ (A) = (Sbox (a^ , Sbox (a2), Sbox (a3), Sbox (a4))线性变换L'非线性变换τ的输出也即为线性变换L'的输入。设输入为 B e Z322,则有C=L’ (B)=B (B 13)十(B 23)系统参数ra的取值,采用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比特密文的电路。所述轮控 制电路是指选择和控制密钥扩展电路以及加解密电路中的轮数。所述的密钥扩展电路,采用Register File方式寄存由128比特的主密钥产生的 32轮的子密钥,其中每一轮的子密钥长为32比特,共产生32X32 = 1024比特的子密钥,现 可用一个words为32,words width为32的Register File来寄存。在加密过程中,有密 钥扩展算法产生每一轮的32比特的子密钥,依次存入Register File中,而在解密过程中 以相反的顺序依次从Register File中取出子密钥送入解密算法进行密文的解密。所述的加解密电路,定义4个32比特的寄存器A,B, C,D,依次用来寄存每连续的 4轮所产生的密文,其中寄存器A寄存每连续4轮的第一轮所产生的32比特密文,寄存器B 寄存每连续4轮的第二轮所产生的32比特密文,寄存器C寄存每连续4轮的第三轮所产生 的32比特密文,寄存器D寄存每连续4轮的第四轮所产生的32比特密文。再定义一个32 比特的线网wire类型E,用来表示由前面连续四轮后得到的第五轮密文,因此当加解密不 是第1轮时,可采用{A,B, C,D} <= {B, C,D,E}方式实现从第2轮到第32轮的加解密算 法,而当加解密为第1轮时直接有{A,B, C,D} <= {128比特主密钥}。所述的面积紧凑型算法实现电路,通过复用加解密算法和密钥扩展算法中共同使 用的S盒以及移位和异或运算,其中S盒的实现采用查找表的方式实现,从而保证加解密的 效率。上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人 士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明 精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
权利要求
一种用于无线局域网的面积紧凑的算法硬件实现方法,其特征在于包括以下步骤加密过程步骤一、将明文编码以字为单位分为4个编码字,主密钥编码以字为单位分为4个密钥字;步骤二、将主密钥中第1位密钥字至第3位密钥字与一常量异或运算后,再作可逆变换,再与第0位密钥字异或运算生成一个字长的第一轮密钥,再将第1位密钥字至第3位密钥字前移至第0位至第2位密钥字的位置,将所述第一轮密钥移至第3位密钥字的位置;步骤三、将所述第一轮密钥与明文编码第1位编码字至第3位编码字异或运算后,再作可逆变换,再与第0位编码字异或运算生成一个字长的第一轮密文字,再将第1位编码字至第3位编码字前移至第0位至第2位编码字的位置,将所述第一轮密文字移至第3位编码字的位置;步骤四、重复加密过程的步骤二生成31个密钥,依次按顺序使用第2轮密钥至第32轮密钥重复步骤三进行31轮加密后,将第0位至第3位编码字作反序变换;解密过程步骤一、将密文编码以字为单位分为4个密文字;步骤二、将主密钥编码以字为单位分为4个密钥字;步骤三、将主密钥中第1位密钥字至第3位密钥字与一常量先异或运算后,再作可逆变换,再与第0位密钥字异或运算生成一个字长的第1轮密钥,再将第1位密钥字至第3位密钥字前移至第0位至第2位密钥字的位置,将所述第一轮密钥移至第3位密钥字的位置;步骤四、重复解密过程步骤三进行32轮后,分别生成32个密钥,该32个密钥通过Register File方式寄存;步骤五、将所述第32轮密钥与密文编码第1位密文字至第3位密文字异或运算后,再作可逆变换,再与第0位密文字异或运算生成一个字长的第1轮密文字,再将第1位密文字至第3位密文字前移至第0位至第2位编码字的位置,将所述第一轮密文字移至第3位编码字的位置;步骤六、依次按顺序使用第31轮密钥至第1轮密钥重复步骤五后,将第0位至第3位密文字作反序变换,获得明文编码。
2.根据权利要求1所述的方法,其特征在于所述加密过程中可逆变换为T为加密过 程中可逆变换,其中T为Z322到Z322的一个可逆变换,由非线性变换τ和线性变化L复合而 成,即T(.) =L(x (.))。其中非线性变换τ 它是由4个并行的S盒构成。设输入为A =(B1, a2, a3, a4) e (Z82)4,输出为 B= (b1 b2, b3, b4) e (Z82)4,贝U有 (bj, b2, b3, b4) = τ (A) = (Sbox(a),Sbox(a2),Sbox(a3),Sbox(a4)) 线性变换L 非线性变换τ的输出也即为线性变换L的输入。设输入为B GZ322,则有C=L(B)=B (Β 2) (Β 10) (Β 18) θ (Β 24),其中 << i 为 32 比特循环左移i位。
3.根据权利要求1所述的方法,其特征在于所述解密过程中可逆变换;T'为加密过程中可逆变换,T'为Z322到Z322的一个可逆变换,由非线性变换τ和线性变化L'复合而 成,即T(.) =L' (τ (.))。其中非线性变换τ 它是由4个并行的S盒构成。设输入为 A= (B1, a2, a3, a4) e (Z82)4,输出为 B= (b1 b2, b3, b4) e (Z82)4,贝U有 (bj, b2, b3, b4) = τ (A) = (Sbox(a),Sbox(a2),Sbox(a3),Sbox(a4)) 线性变换L'非线性变换τ的输出也即为线性变换L'的输入。设输入为Be Z322, 则有C=U出)=6^(3<<13)@氓《23)系统参数!^的取值,采用16进制表示为FK = (FK0, FK1, FK2, FK3),其中 FK0 = (A3B1BAC6),FK1 = (56AA3350),FK2 = (677D9197),FK3 = (B27022DC)固定参数 CK = (CK0, CK1, · · · ,CK31)为 32 个固定参数。
全文摘要
一种用于无线局域网的面积紧凑的算法硬件实现方法,将明文编码以字为单位分为4个编码字,密钥编码以字为单位分为4个密钥字;将第1位密钥字至第3位密钥字与一常量运算后,再与第0位密钥字异或运算生成一个字长的第一轮密钥,再将第1位密钥字至第3位密钥字前移至第0位至第2位密钥字的位置,将所述第一轮密钥移至第3位密钥字的位置;将所述第一轮密钥与第1位编码字至第3位编码字运算后,再与第0位编码字异或运算生成一个字长的第一轮密文字,再将第1位编码字至第3位编码字前移至第0位至第2位编码字的位置,将所述第一轮密文字移至第3位编码字的位置。该方法算法硬件实现起来面积紧凑,在保证算法实现效率的前提下大大减少了算法硬件实现的电路面积。
文档编号H04W12/02GK101945383SQ20101027241
公开日2011年1月12日 申请日期2010年9月6日 优先权日2010年9月6日
发明者林雄鑫, 肖佐楠, 郑茳, 钟名富 申请人:苏州国芯科技有限公司