2 WiMAX中CCM应用规则改进

在802.16协议中规定PDU数据包加密后结构如图2所示。

6个字节的包头和4个字节的PN不需要经过加密处理。PN(Packet Number)在协议中规定用于防止重放攻击,如当前收到的数据包的PN小于前一个数据包的PN时,当前收到的数据包将被丢弃。PN在发第一个包时值为1,以后每发一个包则加1。由于PN和包头都未经加密处理,当窃听者得到一个PDU时,将得到当前PN,并推导出以后各个数据包的PN值。因此引进CCM模式虽然能提高攻击者进行重放攻击的难度和成本,但并不能在技术上彻底防止重放攻击。这里采用对PN进行加密处理来防止由于PN值泄露而遭受可能的重放攻击。加密算法选择AES算法,密钥为802.16协议中的密钥加密密钥(KEK)。AES,KEK在系统中是用于对传输加密密钥(TEK)进行加密处理的,本身已经存在于系统中,而且被良好地设计,在控制信息交互过程中,KEK定时更新。因此采用该方法不会给系统带来额外的开销,不需要引入新的加密算法,不需要维护密钥。采用该方法PDU加密后结构如图3所示。

由于对PN进行AES加密处理,因此加密后的PN长度将为16个字节。这降低了传输数据中有效载荷DATA的百分比,不过在实际应用中DATA往往达到上千或上万个字节。因此为提高安全性和抗攻击性,牺牲如此少的传输效率是值得的。

3 AES-CCM算法实现及结果分析

算法模块基于富士通3400 wiMAx开发板ARM+VxWorks平台开发,采用通用C库函数,可以方便地移植到各种需要安全加密处理的嵌入式产品中。程序提供两个接口,AES算法接口和AES-CCM算法接口。前者可以用于对传输加密密钥TEK的加密处理,后者可以用于对传输数据的加密处理,使用者只需简单的调用函数即可。程序框图如图4所示。

程序中实现了802.16 MAC PDU的构建、8 bCRC报头校验、32 bC2RC PDU校验、CCM加密模块、CCM解密模块、AES加密模块。

3.1 算法关键模块实现

3.1.1 CCM加密模块

AES-CCM算法中,加密函数使用128 b密钥长度的AES算法。加密前后WiMAX MAC PDU结构变化如图5所示。

CCM加密模块流程如图6。该模块输入为密钥K和明文P。在计算MAC T和计数块S时,调用AES加密程序。


相关内容