原创 基于AES算法的WLAN安全机制分析

2009-5-27 14:57 4974 13 10 分类: 通信
基于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算法
    AES (Advanced Encryption Standard)是1997年1月美国国家标准和技术研究所(NIST)发布征集的新加密算法。2000年10月2日,由比利时设计者Joan Daemen和Vincent Rijmen设计的Rijndael算法以其优秀的性能和抗攻击能力,最终赢得了胜利,成为新一代的加密标准AES。


1.1 Rijndael加密
    Rijndael是一个密钥迭代分组密码,包含了轮变换对状态的重复作用。轮数Nr 的值取决于分组和密钥的长度。对于AES,当密钥长度为128比特时,Nr =10;当密钥长度为192比特时,Nr =12;当密钥长度为256比特时,Nr =14。


    Rijndael算法的加密过程如图1所示。它包括一个初始密钥加法,记作AddRoundKey,接着进行Nr-1次轮变换(Round),最后再使用一个轮变换(FinalRound)。





    轮变换由4个步骤组成:SubBytes,ShiftRows,MixColumns和AddRoundKey。最后一轮与前Nr -1次轮变换稍有不同,省掉了其中的MixColumns步骤。


    步骤SubBytes是Rijndael算法中唯一的非线性变换——砖匠置换。
步骤ShiftRows是一个字节换位,它将状态中的行按照不同的偏移量进行循环移位。使第i 行第j 位的字节移动到位置(j -Ci)mod Nb,移动偏移量Ci 的值依赖于Nb 的取值。其中Nb =分组长度/32,对于AES,Nb 取固定长度4。


    步骤MixColumns是作用在状态各列的砖匠置换。
密钥加法AddRoundKey将状态与一个轮密钥进行异或。轮密钥是由密码密钥通过密钥编排方案[1]导出。轮密钥的长度等于分组的长度。


1.2 Rijndael解密
    Rijndael解密算法有2种形式。一种是直接解密算法,即直接利用步骤InsubBytes,InvShiftRows,InvMixColumns和AddRoundKey的逆并倒置其次序对数据进行解密。


    另一种是等价解密算法,其实现原理如图2所示。等价解密算法有利于有效实现良好的运算次序。





2 基于分支编码本模式的AES保密机制


2.1 AES-OCB加密原理
    OCB (Offset Codebook)是802.11健壮安全网络(RSN)AES算法所采用的操作模式。OCB算法使用AES块加密,利用一个临时密钥K和一个随机数(Nonce)完成对数据的保密和完整性检验。


    AES-OCB数据加密原理如图3所示。OCB加密算法首先把明文分成m个128比特的数据块,然后分别对m个数据块进行异或、AES加密等运算,生成m个加密数据块,再将m个加密数据块拼接,与重放计数器(Replay Counter)、消息完整性检验码(MIC)一起作为加密数据负载,完成对明文数据的加密。





    如图3所示,分支编码本的值L 0可以由密钥K通过对128比特的0字符串进行AES加密运算而获得,其数学表达形式为:
L0=AES_EncryptK (0128)                                      (1)


    其它分支编码本的值可以由L 0通过有限域乘法算出。
    在使用OCB模式对数据进行加密的过程中,设备要为每一个加密帧产生一个新的Nonce,用于计算偏移量(Offset)的值:
Offset0=AES_EncryptK (Nonce ?茌L0)                             (2)
    其它偏移量的值可以由Offset0通过递推而得到,其数学表达形式为:
Offseti =Offseti -1?茌Lntz (i )                                 (3)
    加密数据块Ci =AES_EncryptK (Mi ?茌Offseti )?茌Offseti
                      i =1,2,…,m -1(4)
    其中,Mi 用来表示第i 个明文数据块。
当i =m 时,
Zm =AES_EncryptK (|Mm |?茌L-1?茌Offsetm )              (5)
Cm =Mm ?茌 (the first  |Mm |   bit of Zm )                         (6)
其中|Mm |表示第m个明文数据块的比特长度。
消息完整性检验码
MIC =AES_EncryptK
                     (M1?茌M2…?茌Mm-1?茌Zm?茌Cm 0*?茌Offsetm+1)(7)


    其中Cm 0*表示将加密数据块Cm 补0生成一个128比特的数据块。
    最后将128比特的消息完整性检验码数据块截断,取前64比特作为输出负载MIC。


2.2 AES-OCB解密原理
    AES-OCB数据解密原理如图4所示。其初始化过程与加密时相同。




明文数据块Mi 为:
Mi =AES_DecryptK (Ci ?茌Offseti)?茌Offseti      i =1,2,...m-1  (8)
当i =m 时,
Zm =AES_DecryptK (|Cm |?茌L -1?茌Offsetm )                       (9)
Mm =Cm ?茌(the first   |Cm |   bit of  Zm )                           (10)
    其中|Cm |表示第m个密文数据块的比特长度。


    消息解密结束后,MIC 的值可以由解密明文计算出来。将计算出来的MIC 与接收来的MIC 进行比较,确定OCB密文是否为真[3]。


3 AES在WLAN中的实现
    无线健壮安全认证协议(WRAP)位于802.11重传功能体系结构之上,是一种基于128 比特AES OCB模式的加密算法。WRAP的加密过程主要包括三个部分:密钥产生进程、数据封装进程以及数据解封进程。



  • 密钥产生进程:通过802.1X协议建立链接,构建临时密钥,然后802.11媒体访问控制 (MAC)由联接请求、应答和临时密钥K一起通过密钥产生算法生成加密密钥。
  • 数据封装进程:一旦加密密钥被生成,连接状态初始化后,802.11 MAC就会使用WRAP数据封装算法,利用加密密钥对所有即将发送的单MAC服务数据单元(MSDU,MAC Service Data Unit)进行保护。
  • 数据解封进程:同样,一旦加密密钥被生成,连接状态初始化后,802.11 MAC就会使用WRAP数据解封算法,利用加密密钥对所有接收来的单播 MSDU进行解封,丢弃任何发送端接收来的未经过数据封装算法保护的MSDU。

3.1 WRAP的数据封装过程
    WRAP的数据封装过程主要由下面几个步骤构成:
    (1)根据所要发送的MSDU数据选择合适的封装方式
在数据加密之前,传输端首先要检验所要发送的数据是单播MSDU还是多播/广播MSDU,从而决定相应设备使用何种方式保护要发送的MSDU。
    (2)递增传输数据分组计数,选择合适的重放计数器
在选择好封装方式之后,传输端首先要对所要传输的MSDU数据分组个数进行检验。分组个数为:



式中,      表示将向上取整,AES分组长度为128比特。


    如果将要发送数据分组的个数m与已经发送了的数据分组的个数之和大于 248,那么密钥就会被认为已经耗尽,丢弃所有要传输的数据包,直到原先的密钥被一个新的密钥所取代。


    另外,传输端还要选择一个合适的重放计数器。如果所选重放计数器的值为228-2=268435454(或者更大),那么一个新的有效的Nonce将无法构建,从而使安全保障失效。在新的密钥到来之前,发送端不能在该链路或广播/多播通信信道上发送任何MSDU,数据封装算法也会丢弃所有的数据包。


    如果将要发送数据分组的个数m与已经发送了的数据分组的个数之和小于 248,而且所选重放计数器的值小于268435454,那么传输端可以很容易构建出另一个有效的Nonce,同时将已发送数据分组变量的值加m,重复计数器的值加2,进行下一步操作。


    (3)构造重放计数器字段:重放计数器占有4个字节的字段长度,用来传输MSDU序列号。重放计数器的主要作用是构造Nonce和检测接收到的MSDU是否被重放。
    (4)构造OCB Nonce:
OCB模式为了保障消息的安全性,要求用来加密每一条消息的Nonce都是独一无二的。重放计数器、QoS通信类别、MSDU源MAC地址和MSDU目的MAC地址共同作用构成OCB Nonce,来保证Nonce的唯一性。
    (5)由目的MAC地址构造一个相关的数据分组。
    (6)使用AES-OCB加密算法对MSDU和相关数据进行加密:


    设备使用WRAP临时加密密钥TK和Nonce对明文MSDU数据进行加密,产生两个输出结果:



  • 一个OCB加密数据串。该字符串包含的字节数和MSDU明文包含的字节数相同。
  • 一个64比特的OCB标识符。

    (7)构造MSDU负载。


3.2 WRAP的数据解封过程
    WRAP的数据解封过程主要由下面几个步骤构成:
    (1)根据接收来的MSDU数据选择合适的解封方式
    接收端根据发送和接收MAC地址以及KeyID比特值,为接收来的MSDU选择合适的解封方式。接收地址是广播/多播,用广播的方式进行解封;否则,就用单播的方式进行解封。
    (2)对接收来的MSDU数据进行基本的完整性检验
    选择好解封方式后,对接收来的MSDU负载进行完整性检验,主要分为两个步骤:


    首先检验MSDU负载是否满足15个字节以上的字节长度。如果MSDU负载的长度不够15个字节,那么接收端就会丢弃该MSDU。MSDU至少包含有3个字节的逻辑链路控制(LLC)头和12个字节的基于协议头字段。


    然后检验接收来数据分组的个数:



式中,       表示向上取整。减去12是考虑到MSDU重放计数器字段和OCB标识符共占有12个字节长度。如果数据分组的个数m与WRAP已经接收到的数据分组个数之和大于248,那么接收端将丢弃MSDU。
    (3)从接收来的MSDU数据中提取重放计数器,QoS传输级别,以及源MAC地址和目的MAC地址的值,构建OCB Nonce。
    (4)利用构建好了的Nonce和临时密钥对MSDU数据进行解密
    MSDU数据的解密是通过对Nonce和AES解密密钥的使用来实现的。利用OCB解密算法对MSDU数据进行解密会产生下面两种可能的输出结果:



  • 解密成功:产生一个标识符确认,解密明文。
  • 解密失败:解密算法检测到MSDU数据发生了改变,丢弃该MSDU。

    (5)单播重放检验
    如果接收到的数据帧是单播MSDU,那么接收端就要判断它是一个新帧还是一个重放。如果接收到的数据是多播/广播MSDU,那么接收端就跳过这一步。
重放保护的功能通过对MSDU序列号的检验来实现。若<QoS-Service-Class, SeqNum>对在有效的MSDU中没有作为上下文密钥出现过的话,接收该MSDU;否则,将该MSDU丢弃。
    (6)完成接收 
    如果接收来的MSDU没有因为上述原因被丢弃,那么接收端将已经接收数据分组(RecvdBlocks)计数器的值加m,整个解密过程完成。


4 AES算法的攻击分析
    不管是从学术和理论的角度,还是从实际角度来看,目前尚未存在对Rijndael算法完整版的成功攻击,但提出了几种对Rijndael简化算法的攻击方法。其中最主要的攻击算法是L. Knudsen提出的Square攻击[4],在混合步骤MixColumn中的列具有最大分支数,而且字节换位ShiftRows提供最佳扩散性的前提条件下,它对4到6轮的Rijndael简化版本有效。其思想是利用第4轮字节替换前后平衡性的改变来猜测密钥字节。文献[5]中作者在667 MHz奔腾Ⅲ上对4轮Rijndael简化算法实现Square攻击,耗时仅为100 ms。通过对4轮Rijndael简化算法进行初始和末尾扩展可以将攻击扩展到6轮。


    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 结束语
    作为一种全新的高级加密标准,AES加密算法采用对称的块加密技术,提供比WEP/TKIP中RC4算法更高的加密性能,它将在IEEE 802.11i最终确认后,成为取代WEP的新一代的加密技术,为无线网络带来更强大的安全防护。


6 参考文献
[1] Joan Daemen, Vicent Rijmen. 高级加密标准(AES)算法——Rijndael的设计[M]. 谷大武, 徐胜波译. 北京: 清华大学出版社, 2003.
[2] IEEE 802 Committee of the IEEE Computer Society. 802.11i Draft[S].
[3] Phillip Rogaway. Proposal to NIST for a Block-cipher Mode of Operation which Simultaneously Provides Privacy and authenticity[DB/OL]. http://www.cs.ucdavis.edu/~rogaway/ocb/ocb.pdf, 2001-04.
[4] Daemen J, Knudsen L R, Rijmen V. The Block Cipher Square . In: Biham E, eds. Fast Software Encryption ′97, LNCS 1267[C], Springer-Verlag, 1997:68—87.
[5] Wei Baodian, Liu Dongsu, Wang Xinmei. The Principle, Implementation and Cryptanalysis of AES Algorithm Rijndael[J]. Communications Technology. 2002(12).
[6] Ferguson N, Kelsey J, Schneier B, et al. Improved Cryptanalysis of Rijndael. In: Schneier B, eds. Fast Software Encryption 2000, LNCS 1978[C], Springer-Verlag, 2001:213—231.


收稿日期:2004-03-08

作者简介:
刘永元,西安电子科技大学ISN国家重点实验室在读硕士研究生。主要从事无线通信,网络安全方面的研究。 张联峰,毕业于西安电子科技大学,硕士。现为中兴通讯3G平台研发工程师。主要从事无线通信,网络安全方面的研究。 刘乃安,西安电子科技大学ISN国家重点实验室,副教授。撰写并发表论文二十余篇,出版教材和著作四本,译著一本。从事自然科学基金、国家高科技计划“863”及中外合作项目多项。主要从事移动计算网络、扩展频谱通信、无线通信和移动通信研究。

文章评论0条评论)

登录后参与讨论
我要评论
0
13
关闭 站长推荐上一条 /2 下一条