基于AES算法的WLAN安全机制分析 |
Performance Analysis of AES-Based WLAN Security |
刘永元,张联峰,刘乃安 |
摘要:高级加密标准(AES)加密算法Rijndael采用对称的块加密技术,提供比WEP/TKIP中RC4算法更高的加密性能,它将成为取代WEP的新一代的加密技术,为无线网络带来更强大的安全防护。文章主要讲述了AES加密算法,在分支编码本(OCB)模式下的AES加密机制原理,AES算法在WLAN中的应用,以及现有的一些针对AES算法的攻击方法。 |
关键词:高级加密标准;分支编码本模式;无线局域网;性能分析;无线健壮安全认证协议 |
Abstract:Advanced Encryption Standard (AES) is a symmetric block ciper that is based upon the Rijndael algorithm. It performs better encryption than WEP/TKIP, and is expecting to replace WEP, strengthening wireless information security. This paper describes AES and Rijndael algorithm, a ciper suite based on the AES and Offset Codebook (OCB) mode, the implementation of AES in WLAN, and some attacks on the ciper AES. |
Key words:Advanced Encryption Standard; Offset Codebook mode; Wireless LAN; performance analysis; Wireless Robust Authenticated Protocol |
随着无线局域网(WLAN)技术的迅速发展,无线网络安全越来越受到人们的关注。但IEEE802.11协议中包含的有线等效保密(WEP)子协议存在着各种各样的安全缺陷,无法保证数据的机密性、完整性和对接入用户实现身份认证。 为了修补WEP协议,IEEE802.11工作组制定了TKIP(Temporal Key Integrity Protocol)安全协议。TKIP继续使用RC4算法,但实现了动态密钥更新,还增加了一个IV的杂凑函数和一个新的消息完整性校验算法,极大地提高了加密安全强度。但作为一个临时加密协议,由于WEP本身的缺陷,TKIP也很容易受到攻击。 为了彻底改善其协议的安全性能,IEEE802.11工作组在IEEE 802.11i中定义了一种基于高级加密标准(AES)的全新加密算法,以实施更强大的加密和消息完整性检查。 1 AES算法 1.1 Rijndael加密 Rijndael算法的加密过程如图1所示。它包括一个初始密钥加法,记作AddRoundKey,接着进行Nr-1次轮变换(Round),最后再使用一个轮变换(FinalRound)。 轮变换由4个步骤组成:SubBytes,ShiftRows,MixColumns和AddRoundKey。最后一轮与前Nr -1次轮变换稍有不同,省掉了其中的MixColumns步骤。 步骤SubBytes是Rijndael算法中唯一的非线性变换——砖匠置换。 步骤MixColumns是作用在状态各列的砖匠置换。 1.2 Rijndael解密 另一种是等价解密算法,其实现原理如图2所示。等价解密算法有利于有效实现良好的运算次序。 2 基于分支编码本模式的AES保密机制 2.1 AES-OCB加密原理 AES-OCB数据加密原理如图3所示。OCB加密算法首先把明文分成m个128比特的数据块,然后分别对m个数据块进行异或、AES加密等运算,生成m个加密数据块,再将m个加密数据块拼接,与重放计数器(Replay Counter)、消息完整性检验码(MIC)一起作为加密数据负载,完成对明文数据的加密。 如图3所示,分支编码本的值L 0可以由密钥K通过对128比特的0字符串进行AES加密运算而获得,其数学表达形式为: 其它分支编码本的值可以由L 0通过有限域乘法算出。 其中Cm 0*表示将加密数据块Cm 补0生成一个128比特的数据块。 2.2 AES-OCB解密原理
消息解密结束后,MIC 的值可以由解密明文计算出来。将计算出来的MIC 与接收来的MIC 进行比较,确定OCB密文是否为真[3]。 3 AES在WLAN中的实现
3.1 WRAP的数据封装过程
如果将要发送数据分组的个数m与已经发送了的数据分组的个数之和大于 248,那么密钥就会被认为已经耗尽,丢弃所有要传输的数据包,直到原先的密钥被一个新的密钥所取代。 另外,传输端还要选择一个合适的重放计数器。如果所选重放计数器的值为228-2=268435454(或者更大),那么一个新的有效的Nonce将无法构建,从而使安全保障失效。在新的密钥到来之前,发送端不能在该链路或广播/多播通信信道上发送任何MSDU,数据封装算法也会丢弃所有的数据包。 如果将要发送数据分组的个数m与已经发送了的数据分组的个数之和小于 248,而且所选重放计数器的值小于268435454,那么传输端可以很容易构建出另一个有效的Nonce,同时将已发送数据分组变量的值加m,重复计数器的值加2,进行下一步操作。 (3)构造重放计数器字段:重放计数器占有4个字节的字段长度,用来传输MSDU序列号。重放计数器的主要作用是构造Nonce和检测接收到的MSDU是否被重放。 设备使用WRAP临时加密密钥TK和Nonce对明文MSDU数据进行加密,产生两个输出结果:
(7)构造MSDU负载。 3.2 WRAP的数据解封过程 首先检验MSDU负载是否满足15个字节以上的字节长度。如果MSDU负载的长度不够15个字节,那么接收端就会丢弃该MSDU。MSDU至少包含有3个字节的逻辑链路控制(LLC)头和12个字节的基于协议头字段。 然后检验接收来数据分组的个数:
(5)单播重放检验 4 AES算法的攻击分析 N. Ferguson等在文献[6]中提出的Herds攻击将Square攻击更进一步扩展到了8轮,它需要2128-2119个选择明文和2104比特的存储空间。它不适用于128比特密钥的情况;对于192比特密钥的情况,工作因子相当于2188次密码运算;对于256比特密钥的情况,其工作因子相当于2204次密码 H. Gilbert和M. Minier开发的四轮区分器,也将对Rijndael简化算法的攻击提高到了7轮。它只适用于128比特的密钥情形,攻击复杂度大约相当于2192次密码轮变换。 通过发掘密码设计的其它弱点,采用新的攻击技术,还发展出了一些其它的针对Rijndael简化算法的攻击方法。如密钥相关攻击、部分和攻击、冲突攻击等。表1列出了一些攻击方法及其相应的时间和空间复杂度。 5 结束语 6 参考文献 收稿日期:2004-03-08 |
作者简介: 刘永元,西安电子科技大学ISN国家重点实验室在读硕士研究生。主要从事无线通信,网络安全方面的研究。 张联峰,毕业于西安电子科技大学,硕士。现为中兴通讯3G平台研发工程师。主要从事无线通信,网络安全方面的研究。 刘乃安,西安电子科技大学ISN国家重点实验室,副教授。撰写并发表论文二十余篇,出版教材和著作四本,译著一本。从事自然科学基金、国家高科技计划“863”及中外合作项目多项。主要从事移动计算网络、扩展频谱通信、无线通信和移动通信研究。 |
文章评论(0条评论)
登录后参与讨论