专利名称:一种无线局域网wapi和ccmp加解密的方法
技术领域:
本发明涉及无线局域网领域安全通信的硬件加解密实现方法,即WAPI和CCMP加 解密算法在硬件实现中的共存,以及算法实现时的数据加解密和完整性校验串行处理的方 法。
背景技术:
在无线局域网中,数据通信安全是一个非常重要的话题。IEEE802. 11协议族在不 断发展的过程中,发布了关于数据安全通信的IEEE802. lli协议,该协议给出了无线局域 网安全通信的最终解决方案,即CCMP加解密算法。在IEEE802. lli提出的同时,我国为了 通信安全需要,提出了我们具有自主知识产权的无线局域网安全协议——WAPI,该协议也 可以很好地解决无线局域网的安全通信问题。 目前,支持同时CCMP和WAPI协议的无线局域网芯片已经非常普遍,但如何把这两 种加解密协议统一起来,低成本实现硬件设计,仍是无线局域网芯片设计需要解决的关键 问题之一。
发明内容
本发明提供了一种无线局域网WAPI和CCMP加解密算法共存的方法,以及硬件 实现加解密算法内部串行处理的方法,在最大限度上降低了硬件实现的电路规模,有利于 WAPI和CCMP两种加解密协议在无线局域网芯片中的共存。 本发明的具体方案分为两个部分一个为WAPI和CCMP加解密算法硬件实现共存 结构,另一个为硬件实现的加解密算法内部串行处理的方法。 WAPI和CCMP加解密算法硬件共存的特征是两种加解密的核心算法SMS4和AES 公用一套外围数据通路,从而达到节约外围电路的目的。通过加解密类型选择,启动相应的 WAPI或者CCMP加解密,数据流围绕SMS4或者AES的外围流动,完成协议要求的加解密过 程。WAPI和CCMP公用了主要的数据通路,只有在数据初始化运算时,有部分各自独立的数 据通路。通过公用,本方法节约了相当于WAPI或者CCMP其中一个算法的外围电路。
为了进一步降低成本,在满足芯片吞吐率的情况下,WAPI和CCMP算法在硬件实现 时采取了串行运算,即数据加解密和数据完整性校验这两个运算不同时运算,而是使二者 的运算在时间上错开,从而可以用l个加密核即可完成协议的加密算法。本方法相比并行 算法,可以节约1个SMS4和1个AES加密核,从而降低了电路规模。
图1是WAPI和CCMP加解密数据通路。其中EZ2线路表示由WAPI数据流独享, EHSI3线路由CCMP数据流独享,^]线路由WAPI和CCMP数据流共享。
图2是WAPI和CCMP加解密控制状态机。 图3是加解密算法内部实现数据加解密和完整性校验流程图。
具体实施例方式
以下结合附图,具体说明本发明。 如图1所示为WAPI和CCMP加解密算法共存的硬件数据通路,该通路在图2的状 态机控制下运算,完成相应的运算。状态机共分为两路一路为WAPI运算通路, 一路为CCMP 运算通路。从CCMP_WPI_IDLE开始,两种运算都要通过初始化运算的阶段,如CCMP要经过 CCMP_IV、CCMP_AAD1 、CCMP_AAD2 (WAPI相应从WPI_IV WPI_AAD3),然后进入数据加密运算 状态(CCMPJXM或WPIJ)FB)和数据完整性校验(CCMP—CBC或WPI—CBC)状态,当运算完成, 依次跳转到CCMP_WPI_D0NE或CCMP_WPI_IDLE状态,完成加解密运算。在各个状态跳转过程 中会产生相应的控制信号控制图1中数据的流向。核心算法为图1中间的AES和SMS4加 密核,通过外围数据通路与这两加密核搭建成了 WAPI和CCMP共存的数据通路。中间的加 密核在WAPI起作用时采用SMS4, CCMP起作用时采用AES。在CCMP模式下,CBC和CCM采用 的密钥相同,采用key 1 ,在WAPI模式下,CBC和0FB密钥不同,需要key 1和key2交替输入。 加密核的输出需要由寄存器锁存,即CBC的输出以及CCM/OFB的输出都要锁存。在WAPI模 式下,OFB最后的输出需要特殊处理,即最后加密MIC的密钥流需要采用移位并和前一次未 用的密钥流组合成真正的128bit的密钥流对MIC进行加密,这也是增加ccm/ofb reg寄存 器的主要原因。128bit位宽的compare模块主要是用来在解密时,对MIC进行校验,判断接 收到的MIC是否正确。输入端m模块表示解密模式下,密文被解密后送入CBC运算事需要 根据情况做变换即最后一个mpdu片段不足128bit时,不足部分补零。
图3中CBC(Cipher Block Chain) —行指的是计算CCMP和WAPI的完整性校验 算法,CCM (Counter Mode-CBC MAC)指的是CCMP中计算密钥流的算法,OFB (Output Feed Back)指的是WAPI计算密钥流的算法,rd指的是图2状态机发出的读数据命令,wr指的是 图2状态机发出的写数据命令,其中MPDU1、MPDU2….MPDUn为数据完整性校验运算阶段,1st key、2nd key Nth key为生成加密或解密所需密钥的运算阶段,mic key为生成加密完整性 校验码MIC的密钥过程。 CCMP和WAPI加解密的具体步骤如下 (1)当CCMP/WAPI加密开始后,在开始的初始化运算中,由状态机控制,ccmp—cbc— iv/wpi_cbc_iv、 ccmp_aadl/wpi_aadl、 ccmp_aad2/wpi_aad2分别依次进入数据通路,结合 AES/SMS4算法核、以及AES/SMS4的输出一同参与CBC运算;解密情况下,CCMP/WAPI算法初 始化运算与上述加密相同; (2)当CCMP开始数据加密运算时,采用ccm模式对输入的数据进行加密。ccm作为 AES加密核的输入,启动AES加密核、AES运算完成后,输出锁存到128bit寄存器ccm ofb reg中,与明文plaintext进行异或运算,得到加密后的数据dat_o,然后根据状态机的命令 把数据写到对应的存储空间,写操作与步骤(3)的完整性校验运算并行执行;WAPI数据加 密方法采用ofb模式对数据进行加密。数据加密运算开始时,第一次迭代输入SMS4的参数 为数据帧的PN,其后的迭代采用上次用来加密数据的SMS4的输出结果,该结果为128bit寄 存器ccm ofb reg反馈值wpi—ofb—out。 WAPI加密也是采用寄存器ccm ofb reg的值和明 文plaintext进行异或运算得到加密后的数据dat_o,然后根据状态机命令写回到相应存 储空间;在解密情况下,两种算法的运算流程和加密相同;如果本运算生成的密钥流不是用来加密步骤(3)CBC输出结果,则运算完成后跳转到步骤(3),否则跳转到步骤(4)。
(3)当CCMP/WAPI完成数据加密,进行完整性校验运算,把初始化运算或者CBC运 算的结果cbc_out与明文wpi_ccmp_cbc异或运算后输入AES/SMS4加密运算核,当运算完 成后,锁存到cbc reg寄存器中;如果是解密情况下的数据完整性校验,与cbc_0Ut异或的 明文wpi_cCmp_Cbc是通过步骤(2)解密后的dat_o得到的,dat_o如果不足128bit,则需 要经过一个补零操作;本步骤执行完毕继续执行步骤(2); (4)在CCMP/WAPI加密模式下,步骤(2)生成的密钥流ccm_ofb_out和步骤(3)中 CBC运算生成的MIC进行异或操作,即得到加密后的MIC,然后写回外部存储器,加密完成; 在解密模式下,两种算法动作相同,也要执行和加密MIC—样的动作,但加密MIC不写回,而 是与读入的MIC进行比较,以确定MIC校验是否正确,进行比较运算的为一个128bit位宽 的比较器,当比较完成,解密结束。 需要说明的是,步骤(1)中WAPI加解密情况下,如果所处理的数据帧包含Qos质 量控制域,则初始化运算在完成对wpi—aad2的运算后,还需要多运算一次,即wpi_aad3接 着输入SMS4进行CBC运算,然后才能跳转到步骤(2)。 本发明提供了一种无线局域网WAPI和CCMP加解密算法共存的方法,降低了无 线局域网设备的双模化带来的成本,提高了其通用性,可以使无线局域网设备在WAPI和 IEEE802. lli安全网络中兼容,实现很好的通用性,同时非常有利于实现低成本快速的支持 加解密的无线局域网设备。 以上公开的仅为本发明的几个具体实施例,但本发明的保护范围并不局限于此, 任何本领域的技术人员能思之的变化都应落在本发明的保护范围内。
权利要求
一种无线局域网WAPI和CCMP加解密的方法,其特征在于,WAPI和CCMP两种加解密的核心算法SMS4和AES公用一套外围数据通路,从而达到节约外围电路的目的,通过加解密类型选择,在状态机控制下启动相应的WAPI或者CCMP加解密,数据流围绕SMS4或者AES的外围流动,完成协议要求的加解密过程,实现锁存SMS4和AES输出结果的寄存器的复用、输入数据通路以及校验MIC时的比较器的复用。
2. 如权利要求1所述的一种无线局域网WAPI和CCMP加解密的方法,其特征在于WAPI 和CCMP加解密的过程在各个状态跳转过程中会产生相应的控制信号控制数据的流向,控 制信号通过外围数据通路与WAPI和CCMP加密核搭建成了两者共存的数据通路,步骤如 下(1) 当CCMP/WAPI加密开始后,在开始的初始化运算中,由状态机控制,CCmp_CbC_iv/ wpi_cbc_iv、 ccmp_aadl/wpi_aadl、 ccmp_aad2/wpi_aad2分别依次进入数据通路,结合 AES/SMS4算法核、以及AES/SMS4的输出一同参与CBC运算;解密情况下,CCMP/WAPI算法初 始化运算与上述加密相同;(2) 当CCMP开始数据加密运算时,ccm作为AES加密核的输入,启动AES加密核、运算 完成后AES的输出锁存到128bit寄存器ccm ofb reg中,然后与明文plaintext进行异或 运算,得到加密后的数据dat—o,根据状态机的命令把数据写到对应的存储空间,写操作与 步骤(3)的完整性校验运算并行执行;WAPI数据加密方法采用SMS4加密核,数据加密运算 第一次迭代采用的输入为数据帧的PN,其后的迭代采用上次用来加密数据的SMS4的输出 结果,该结果为128bit寄存器ccm ofb reg反馈值wpi—ofb—out,同理,WAPI加密也是采用 寄存器ccm ofb reg的值和明文plaintext进行异或运算得到加密后的数据dat—o,然后根 据状态机命令写回到相应存储空间;在解密情况下,两种算法的运算流程和加密相同;(3) 当CCMP/WAPI完成数据加密,进行完整性校验运算,把初始化运算或者CBC运算的 结果cbc_out与明文wpi_ccmp_cbc异或运算后输入AES/SMS4加密运算核,当运算完成后, 锁存到cbc reg寄存器中;如果是解密情况下的数据完整性校验,与cbC_out异或的明文 wpi_CCmp_Cbc是通过步骤(2)解密后的dat_o得到的,dat_o如果不足128bit,则需要经 过一个补零操作;本步骤执行完毕继续执行步骤(2);(4) 在CCMP/WAPI加密模式下,步骤(2)生成的密钥流ccm—ofb—out和步骤(3)中生 成的MIC进行异或操作,即得到加密后的MIC,然后写回外部存储器,加密完成;在解密模式 下,两种算法动作相同,也要执行和加密MIC —样的动作,但加密MIC不写回,而是与读入的 MIC进行比较,以确定MIC校验是否正确,进行比较运算的为一个128bit位宽的比较器,当 比较完成,解密结束。
3. 如权利要求1或2所述的一种无线局域网WAPI和CCMP加解密的方法,其特征在于 所述步骤(1)中如果数据帧中存在qos质量控制域,则WAPI初始化运算还需要多做一次, 即输入wpi_aad3进行CBC运算。
4. 如权利要求1或2所述的一种无线局域网WAPI和CCMP加解密的方法,其特征在于 所述步骤(2)中如果当前运算为生成加密MIC所需密钥流的过程,则当前运算完成后跳转 到步骤(4),否则跳转到步骤(3)。
5. 如权利要求1所述的一种无线局域网WAPI和CCMP加解密的方法,其特征在于,WAPI 和CCMP加解密算法在运算时,实现了对数据加解密以及数据完整性校验两个步骤,这两个步骤采用串行处理方式,即在每一种加解密运算模式中,数据加解密和数据完整性校验运 算在时间上都是交替执行,从而达到复用加密核的效果。
全文摘要
本发明提供一种无线局域网WAPI和CCMP加解密的设计方法。结合WAPI和CCMP算法特点,使二者在硬件实现上糅为一体,用一套外围电路实现了两种协议的加解密。这两种电路的数据加解密和数据完整性校验运算采用串行运算,节约了加密算法核。
文档编号H04L9/06GK101753290SQ20081022798
公开日2010年6月23日 申请日期2008年12月4日 优先权日2008年12月4日
发明者赵彦光 申请人:北京中电华大电子设计有限责任公司