一种适用于无线传感器网络aes加密的低开销快速轮加密装置及方法

文档序号:7800415阅读:327来源:国知局
一种适用于无线传感器网络aes加密的低开销快速轮加密装置及方法
【专利摘要】本发明公开了一种适用于无线传感器网络AES加密的低开销快速轮加密装置和方法。在无线传感器网络中,由于信道暴露,必须对传输的数据进行加密等安全操作保证传输数据的安全。AES安全性高,被很多无线传感器网络协议指定为其MAC层或DLSL层安全传输加密算法。但与此同时,AES加密的计算量也很大,对资源受限的无线传感器网络节点造成不小压力。本发明基于查表法,对表结构进行优化,同时对每轮轮加密的输入进行预处理,从而提高了轮加密的速度,并降低了传统查表法AES实现中的庞大存储开销。
【专利说明】—种适用于无线传感器网络AES加密的低开销快速轮加密装置及方法
【技术领域】
[0001]本发明涉及无线传感器网络安全设计领域,主要是针对在资源受限的无线传感器网络实施AES加密产生庞大的存储开销和时间开销问题,通过改进查找表结构和轮加密运算方法,降低轮加密开销的同时提高轮加密的速度。
【背景技术】
[0002]无线网络由于其信道暴露在空气中,其传输的数据很容易受到来自外界的破坏和窃取,因此必须对其传输数据实施安全措施。AES加密凭借其高安全性,被越来越多的无线网络协议采用,如 IEEE802.11、IEEE802.15.4、ISA100、WirelessHART 等都规定 AES 作为它们媒介访问控制层(MAC)或数据链路子层(DLSL)安全通信的加密机制。但由于AES加密计算量较大,并且无线网络节点通常采用电池供电,其处理器计算能力、存储大小都受到限制,从而在确保网络正常稳定的数据传输条件下在这些节点上实施AES加密变得十分困难。特别对于无线传感器网络,其节点对于电池续航、功耗控制的要求更高,因此低开销的快速AES实现成为在无线传感器网络中部署AES加密的关键。
[0003]由于AES在网络中实施时通常采用CCM模式,而CCM模式只包含AES加密而不包含AES解密,且规定AES密钥长度为128位,因此本专利只涉及128位的AES加密。轮加密是AES加密的核心环节,AES加密时需要进行10/12/14 (分别对应128/196/256位AES)轮加密。轮加密的操作主要包含:密钥相加、字节替换、行位移和列混淆。其中列混淆需要进行多次GF (28)乘法,而每次GF (28)乘法需要耗费多个时钟周期完成,这些GF (28)乘法也成为AES加密计算中最耗费时钟周期的操作。对此,通过查表法替代直接计算GF(28)乘法是降低GF(28)乘法时钟周期开销的有效方法。但是传统的查表法产生巨大存储开销,对资源受限的无线传感器网络节点而言过于庞大。本专利正是为解决提高AES加密速度的同时降低AES开销这一问题而产生的。
[0004]专利200610037539公开了一种基于AES算法的加解密方法和加解密器,其采用一个加解密迭代复用模块来完成加密迭代或解密迭代操作,简化AES算法设计的电路规模,减小电路设计的面积开销,降低功耗和成本。
[0005]专利CN102411683公开的AES加速器是一种基于对高速缓存并行查找的方式实现,通过这种方式,不仅有效地减小了芯片的面积,而且加快了加解密运算的速度,在将查找表的数据以及最原始的输入断乳cache的情况下,一次AES加/解密预算的时间约为50周期,吞吐率达到384Mbps。
[0006]专利CN102664730公开了一种基于高级加密标准的AES的128比特位密钥扩展系统及方法,主要解决现有AES加密算法中的128比特密钥扩展过程的低效率和高功耗问题。
[0007]专利CN102185692公开了一种基于AES加密算法的多模式可重构加密方法,提供五种工作模式以及全随即S盒和偏随机S盒供用户选择,有效避免了加密采用硬件实现可能面临的侧信道攻击,优化了可重构密码方法的操作方式。
【发明内容】

[0008]本发明的目的是为资源受限的无线传感器网络节点设计一种低开销快速AES轮加密装置和方法,通过优化替换-乘法查找表和轮加密运算,降低存储开销,同时提高轮加密速度,从而低开销的快速AES加密。[0009]一种适用于无线传感器网络AES加密的低开销快速轮加密装置,其特征在于,所述装置包括替换-乘法器、字节提取器、字生成器和轮加密运算器;
[0010]所述的替换-乘法器对输入状态矩阵State」(j为加密轮次,j=0, 1,…,11)中的每个元素Bi (i为矩阵中元素序号,i=0,l,...,15),生成半字结果集合{SH21(ai)};
[0011]所述的半字结果集合{SH21(ai)}包含16个半字结果SH21(ai)(下标H表示为半字(两个字节)结果),Sh21 (a,)表示%的S盒查找结果SJai)分别与2和I进行伽罗华域GF (28)乘法所得结果SB2(ai)和SbI (?)排列成的半字结果(下标表B示为字节结果),21表示SB2(ai)在半字结果的高字节,SbI (Bi)在半字结果的低字节;
[0012]所述的字节提取器对替换-乘法器的半字结果集合中的每个元素提取字节结果集合{SB (aj)};
[0013]所述的字节结果集合{SB(ai)}包含16个字节结果SB2(ai)和16个字节结果SbI (Bi);
[0014]所述的字生成器用替换-乘法器的半字结果和字节提取器的字节结果按要求生成相应的字结果集合{Sw(ai)};
[0015]所述的字结果集合{Sw(ai)}包含4个字结果5?3112匕)(1=0,4,8,12)、4个字结果SffI 123 (Bi) (1=1,5,9, 13)、4 个字结果 sw1231(ai) (i=2,6, 10,14)和 4 个字结果 Sw2311 (&i)(i=3,7,11,15)(下标表W示为字结果),它们都是由IfSJai)与3进行GF(28)乘法所得结果Sb3 (Bi)U ^ Sb2 (Bi)和2个SbI⑷排列构成的字结果,3112、1123、1231和2311表示字内各个字节的排列顺序,如3112表示字内字节排列从高字节到低字节依次为SB3(ai)SbI (Bi) SbI (Bi) SB2 (Bi);
[0016]所述的轮加密运算器根据不同轮的要求用Statec1、字节结果和字结果与密钥Keyj进行相应运算后生成新状态Statej+1。
[0017]一种适用于无线传感器网络AES加密的低开销快速轮加密方法,其特征在于:对状态中每个元素进行替换-乘法运算,产生结果通过字节提取、字生成后,直接与密钥进行相加生成新状态,其步骤包括:
[0018](I)若j为0,则进行(4),否则对状态Statej中的每个元素依次进行替换-乘法运算,生成半字结果集合{SH21(ai)};
[0019](2)对{SH21(ai)}中的每个元素提取单独字节数据生成字节结果集合{SB(ai)};
[0020](3)若j为10,则进行(5),否则按轮加密要求用{SH21(ai)}和(Sjai)}中的元素生成相应的字数据,生成字结果集合{Sw(ai)};
[0021](4)用State。、{Sb(B1)I和(SjaiM中的元素按轮加密要求与密钥Keyj进行相应运算生成新状态Statej+1 ;
[0022](5) j=j+l,若 j 为 11,则输出 State11,否则进行(I)。
[0023]本发明通过优化替换-查找器中查找表的结构,降低存储开销的同时减少因查表产生的访存时钟开销;同时利用半字结果和字节结果生成字结果,降低轮加密运算的复杂度,从而降低轮加密存储开销的同时提高了轮加密的速度。
【专利附图】

【附图说明】
[0024]图1是轮加密装置结构图。
[0025]图2是替换-乘法器结构图。
[0026]图3是字生成器结构图。
[0027]图4是轮加密运算器结构图。
[0028]图5是轮加密方法的步骤。
【具体实施方式】
[0029]下面结合附图,对本发明的实现进行详细描述。
[0030]轮加密是AES加密计算的核心步骤,它将经过密钥扩展的密钥(Key)和输入的明文块(State。)经过10轮(以128位AES为例,不包括第零轮密钥相加)循环加密,最后输出密文块(State11)。每一轮加密包含密钥相加、字节替换、列混淆以及行位移四种操作中的一种或多种。其中第零轮(j=0)加密只包含密钥相加;第一至第九轮(j=l,2,..,9)加密包含所有四种操作;最后一轮(j=10)加密包含除列混淆之外的三种操作。
[0031]图1是本发明所提出的轮加密装置101,其包含替换-乘法器102、字节提取器103、字生成器104和轮加密运算器105。轮加密装置101输入为经过密钥扩展的密钥Key和明文块State。,输出为密文块State11。State。和Key直接送往轮加密运算器105进行第一轮轮加密,计算出的新状态依次送往替换-乘法器102、字节提取器103和字生成器104获取相应的结果集合后再送回轮加密运算器105进行新一轮的轮加密。经过10次轮加密后,直接将State11作为加密结果输出。
[0032]图2是替换-乘法器102,其核心是一张2*256字节的查找表201。替换-乘法器102的输入为计算出的新状态State」(j=l,2,…,10),输出为包含16个半字(两个字节)结果的集合{SH21(ai) |i=0,1,...,15}。替换-乘法器102对State」(j=l,2,…,10)中的16个字节元素ai (i=0, I,…,15)在查找表201上依次查找它们对应的半字结果SH21(ai)(i=0,1,…,15),查找完毕后作为集合{SH21 (Bi) |i=0, I,..., 15}输出。
[0033]查找表201的每一项为一个半字(两个字节)SH21(ai),由两个单字节S2(ai)和SUai)合并组成,其中S2(ai)在半字的高8位,SKai)在半字的低8位。S2 (a)和SI (aj表示%的S盒查找结果S(ai)分别与常量I和2进行GF(28)相乘的乘积。
[0034]由于替换-乘法器102输出的结果Sh21 (a,)为半字,而在后续计算中需要使用独立单字节S2 (Bi)和SI (Bi),所以{Sh21 (Bi) I i=0, I,..., 15}需要送往字节提取器103提取字节S2(ai)和SUai),得到字节结果集合{SB(ai)}。{SB(ai)}包含32个元素,分别为%所对应的 S2(ai)和 SKai) (i=0, I,…,15)。
[0035]图3是字生成器104,用于将半字结果集合{SH21(ai)}和单字节结果集合(Se(Bi)I生成第一至第九轮(j=l,2,..,9)加密所需的字结果集合(Sff(Bi) |i=0, 1,...,15},其包含四个子集:{Sw3112(ai) |i=0,4,8,12},{Sw1123(ai) |i = l,5,9,13},{Sw1231(ai) i=2, 6, 10,14}和{Sw2311(ai) i=3, 7, 11,15}。其中 3112、1123、1231 和 2311表示字结果中字节的排列顺序,高字节在前,低字节在后。如3?3112(&1)表示由单字节结果S3 (Bi),SI (Bi),SI (Bi)和S2(ai)依次排列组合成的字(S3 (ai)在高字节,S2(ai)在低字节);同理,5?1123(&?)、5?1231(&?)和5?2311匕)也类似组成。Sw3112 ⑷、SW1123 ⑷、SW1231 ⑷S^SlKai)的生成分别如301、302、303和304所示,用公式表示如下:
[0036]Sff3112(ai) = (Sl (Bi) <<24) ? (SH21 (Bi) ?16) | (Sl(ai)<<8) | (S2(ai)>>8),i=0, 4,8,12
[0037]SwI 123 (Bi) = (SUai)〈〈24) I (SI (a)〈〈16) I SH21 (a) ? S2 (a),i=l, 5,9,13
[0038]Sw1231 (Bi) = (SI (a) ?24) | (SH21 (a) ?8) ? SH21 (a),i=2, 6,10,14
[0039]Sff2311(ai) = (SH21(ai)?16) ? (SH21 (a15) ?8) IsKai), i=3, 7, 11, 15
[0040]其中,由于在GF(28)乘法中有=,所以在以上对于字结果中的S3 (Bi)均由 S2(ai) ? SKai)生成。
[0041]图4是轮加密运算器105,用于计算生成新状态Statej+1。在第零轮(j=0)加密中,轮加密计算如401所示,直接将Stateci与Keytl进行异或;在第一轮至第九轮(j=l,2,..,9)加密中,轮加密计算如402所示,将相应的字结果进行异或后,再与密钥Ke&进行异或;在最后一轮(j=10)加密中,轮加密计算如403所示,先将相应的单字节结果SI (a,)组合成字,再与Keyltl进行异或。其计算公式如下所示:
【权利要求】
1.一种适用于无线传感器网络AES加密的低开销快速轮加密装置,其特征在于,所述装置包括替换-乘法器、字节提取器、字生成器和轮加密运算器; 所述的替换-乘法器对输入状态矩阵State^中的每个元素%,生成半字结果集合{SH21(ai)},其中,j为加密轮次,j=0, 1,…,11,i为矩阵中元素序号,i=0, 1,…,15 ; 所述的半字结果集合{Sh21 (Bi)}包含16个半字结果Sh21 (Bi),Sh21 (&i)表示的S盒查找结果SJai)分别与2和I进行伽罗华域GF (28)乘法所得结果SB2 (?)和SeKai)排列成的半字结果,其中,标记“21”表示SB2(ai)在半字结果的高字节,SbI (?)在半字结果的低字节,下标H表示为半字,即两个字节的结果,下标表B示为字节结果; 所述的字节提取器对替换-乘法器的半字结果集合中的每个元素提取字节结果集合(Se(Bi)I ; 所述的字节结果集合{SB(ai)}包含16个字节结果SB2(ai)和16个字节结果SBl(ai);所述的字生成器用替换-乘法器的半字结果和字节提取器的字节结果按要求生成相应的字结果集合{Sw(ai)}; 所述的字结果集合{Sw(ai)}包含4个字结果5?3112匕)(i=0,4,8, 12)、4个字结果SffI 123 (Bi) (1=1,5,9, 13)、4 个字结果 Sw1231(ai) (i=2,6, 10,14)和 4 个字结果 Sw2311 (&i)(i=3, 7,11,15),它们都是由IfSJai)与3进行GF(28)乘法所得结果SB3 (a)、I个SB2 (aj和2fSBl(ai)排列构成的字结果,3112、1123、1231和2311表示字内各个字节的排列顺序,如3112表示字内字节排列从高字节到低字节依次为Sb3 (Bi) SbI (Bi) SbI (&i) SB2 (&i),其中,下标表W不为子结果; 所述的轮加密运算器根据不同轮的要求用Statec1、字节结果和字结果与密钥Ke&进行相应运算后生成新状态Statej+1。
2.一种适用于无线传感器网络AES加密的低开销快速轮加密方法,其特征在于:对状态中每个元素进行替换-乘法运算,产生结果通过字节提取、字生成后,直接与密钥进行相加生成新状态,其步骤包括: 2.1若j为0,则进行步骤2.4,否则对状态Statej中的每个元素依次进行替换-乘法运算,生成半字结果集合{SH21(ai)}; 2.2对{SH21(ai)}中的每个元素提取单独字节数据生成字节结果集合{SB(ai)}; 2.3若j为10,则进行步骤2.4,否则按轮加密要求用{SH21(ai)}和(Sjai)}中的元素生成相应的字数据,生成字结果集合{Sw(ai)}; 2.4用State。、{SB(ai)}和(SjaiM中的元素按轮加密要求与密钥Keyj进行相应运算生成新状态StateJ+1 ; 2.5j=j+l,若j为11,则输出State11,否则进行步骤2.1。
【文档编号】H04L9/06GK103888937SQ201410126050
【公开日】2014年6月25日 申请日期:2014年3月31日 优先权日:2014年3月31日
【发明者】齐悦, 罗新强, 万亚东, 王沁 申请人:北京科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1