无线网络产品因其灵活、便捷、无线等特点,正在被越来越多的人所使用。但是在我们享受无线网络带给我们诸多好处的同时,安全问题也给我们带来了巨大困惑。为局域网/城域网标准委员会先后给无线网络提出了3个标准的加密算法,即WEP、TKIP、CCMP加密算法,用来保护我们的无线网络。由于CCMP加密算法采用了比TKIP更高级的加密标准CCMP加密算法,CCMP被认为是目前无线网络比较安全和可靠的加密算法。在这里我将对这个加密算法给大家简单介绍一下。
在我们分析CCMP的加密解密过程之前,我们先说明一下CCMP核心加密算法AES,因为MIC和文件加密解密都需要使用该算法。
一、AES加密算法
AES加密算法其目的是开发一种新的能保证政府信息安全的编码算法。密钥长度可为128、192、256bit。它的输出更具有随机性,对该密文破解需要几乎整个密码本及相关的不知道密钥的密文,加解密的密码本分开。安全性很高。
AES加密算法的具体算法说明可以从NIST的FIPS _PUB 197 _nAd—vanced _encry ption standard文档得到的。
∥加密
Cipher(byte in(4*Nbj, byte out[4*Nb], word w[Nb*(Nr+lyyfm)]为原文out[]为密文
Begin// _ _ _ _ _ w[]是由密钥扩展的密钥串
byte state[4,Nb]
state=m
AddRoundKey(srate, w[0, Nb-1D//与第一行密钥串异或
for round=lstepl to Nr?
SubBytes(state)//state的S盒置换
ShiftRows(state)//接行移位
MixColumns(state)//按列变换
AddRoundKey(state, w[round*Nb, (round+ lyNb -1])//与第round行密钥串异或
end for
SubBytes(state)
ShiIIRows(state)
AddRoundKey(slaLe, w[NPNb, (Nr+l)*Nb-ll)
out= sLate
end
∥解密
InvCipher(bytc m[4*Nb], byte out[4*Nb], wordw[Nb*
(Nr+I)D
begin
byte swe[4,Nb]
state= in
AddRoundKey(state, w[Nr*Nb, (Nr+l)*Nb-lD
for round - Nr-1 step -l downt01
InvStuftRows(staLe)//按行移位的逆变换
InvSubBytes(state)//S盒置换的逆变换
AddRourtd Key(state,w[round*Nb, (round+I)*Nb-1])
InvMixColumns(sWe),,按列变换的逆变换
end for
InvShitIRows(staLe)
InvSubBytes(state)
AddRoundKey(state, w[0, Nb-1])
out= state
end
目前广泛使用的是rijndnal编写的AES加密算法,这个可以很轻松的从网上得到。
二、CCMP加密算法
了解了AES的加密和解密过程,接下来我们就开始说明CCMP的加密解密以及MIC的生成过程。CCMP的加密:首先我们从mpdu的MAC _Header提取结构AAD以及Nonce。如图1所示。AAD和Nonce提取办法如下:
然后我们计算出MIC,把它加入到数据域后面。生成8字节的CCMP Header与MAC Header组成加密帧的验证部分,这部分不需要加密。然后对数据域和MIC进行CTR( counter)模式的AES加密,量后加上FCS校验就生成了加密帧。
1、 MIC计算
CCMP的MIC计算是MPDUlevel的,与TKIP的MSDUlevel区射,提供更好的完叠性校验。首先把(Nonce,AAD,P(数据域原文))从左刭右组成一个序列,然后再补上一些D字节,使之成为16字节倍数的序列。然后把它分隔成n个16字节块,用BO,B1,…,Bn表示。接着使用CBC-MAC计算出MIC使用的T(MAC值),按照下列的算法计算:
x:= AES(k1 b0)
—k.|- AES(x,x? Bi) fori=l.,.,,n
T:= first-M-bytes( X~.)
其中AES(K,B)为密钥K的AES加密。T取X序列的低M个字节。M为MIC的长度。
特别的.B0,B1一......Bn序列中.B0是由Nonee组成的MIC IV.Bl.B2是由MAC Header也即AAD组成的MIC HEADERI,2;B3从开始就是数据域原文分翻成的16字节块。
Adata位当AAD长度大千0时置l,否列为0。后面3bit为NUC长度域,值为(M-2),2。最后为信息的长度域,值为1-1.2为信息长度的范围。一般M=8.L=2,列Flag为Ox59.量终的MIC值还需要将个值与后续CTR加密的so值【前M个字节)异或。表示如下:
MIC=T? _flrsL-M-bytes(SO).
2、CTR加密
取得7 MiC之后,就可以对数据域和MIC进行CTR加密.首先把数据城分钠成16个字节块,量后囊余的字节不用朴零.用Ai表示.MIC部分是单独CTR计算的。
Si= AES(K,CTR_PRELOAD(i)); //i从O刭m Ei=Si? Ai;UEi为加密好的16字节块
特别的对于数据域量后一个16字节块,可能不满16个字节,只有x(O<x<16)个字节,郝异或时,只要取Si中的前x个字节。
对予MIC部分
E(MIC)= S0:? MLC
CTR_PRELOAD(i)的结构如下:
Counter从i=0开始不断自增1
1个字节的Flag域:
只有最后3个bir的信息长度城。当L-2时,Flag值
为Ox01.
3、CCMP的解密
从加密的MPDU中得到CCMP Header与MACHeader.然后计算出AAD.Nonce.算出每个CTR PRELOAD.从而通过ctrR解密得到数据域原文以及rvnc.使用前一节MIC的计算方法算出当前的MIC.与解密后的rvnc比较,进行校验.在这里我们给出CTR解密的过程。
CTRN解密
对加密的数据城进行16字节分割,用EI表示。加密的rvnc.FCS前的8个字节,用E(MIC)表示,单独取出进行CTR解密,数据域的原文16宇节块,用Ai表示。
则解密过程如下:
si= AES(K,CTI乙PRELOAD(i》;仇从0到m
Ai=Si7 Ei=Si? Si? Ai;
特别的对于加密的数据域最后一个16字节块.可能不满16个字节,只有y(O<y<16)个字节,鄢异或时,只要取Si中的前y个字节。
对于MJC部分
MIC=S0?E(MIC)
通过上面的表述,你基本可以知道CCMP如何操作的。
CCMP的计算还是比较复杂,一方面可能增加了成本,一方面却大大加强了无线网络的安全.目前,它一般会和身份验证服务RADIUS以及密钢管理一起提供一个安全、可靠、可以信赖的无线环境。
小知识之CCMP :
CCMP(Counter CBC-MAC Protocol) 计数器模式密码块链消息完整码协议。
电子文档管理系统的重要性:企业数字化转型的得力助手
在这个智能信息爆炸的时代,数据成为了企业最宝贵的资产之一。如何有效地管理和使用这种信息,已成为每个企业必须面对的重要课题。电子文档管理系统是解决这一问题的关键工具。今日,我们将探讨电子文档管理系统的重要性。在热点话题中,我们经常听到数据泄漏、信息安全等事件。这些事件不仅给企业带来了极大的经济损失,并且严重影响到企业的声...
it资产管理系统:IT资产大管家
在这个智能飞速发展的时代,公司的IT资产如同无形金矿,非常有价值。可是您有没有经历过这种困扰:IT资产种类繁多,数量庞大,管理耗时费力,还常常担忧数据安全和合规性?别担心,今天就给大家介绍一个IT资产管家——安企神IT资产管理系统。一、IT资产管理,为何如此重要?随着企业业务的不断增加,IT资产的数量和种类也在增加。这...
PHP线上加密解密:确保数据安全的有效途径
在如今智能化快速发展的时代,数据安全成为了人或单位不可忽视的重要话题。据最新统计,过去一年超出50%的企业遭到黑客入侵,数据泄露事件高发,给企业信誉和经济损失导致双重打击。在这种情况下,PHP线上加密解密技术的发展至关重要,既能提升数据安全性,又能帮助企业有效防范潜在威胁。一、PHP在线加密解密是什么意思?PHP是一种...
U盘管理工具大曝光:管理便捷,安全无忧!
在这个信息爆炸的时代,U盘已经成为我们日常生活中不可或缺的小帮手。不论是工作材料的备份或是学习课件的存储,U盘都以其小巧便携、容积丰富的特征受到大家的喜爱。但是,随着U盘的广泛使用,管理里的不便也随之而来。别担心,下面我就给大家介绍一款优秀的U盘管理工具,使你的U盘管理更安全!一、U盘管理,为何这么重要?想象一下,你U...
桌面管理软件怎样帮企业提高管理效益?
近日,一家知名科技公司因为桌面管理不当,造成内部数据泄漏,导致了业内的高度重视。这一事件不但揭露了桌面管理在企业管理中的作用,也催生了对高效安全桌面管理软件的需求。在此背景下,安企神桌面管理软件因其卓越的性能和全面的功能迅速成为很多企业的新宠。一、桌面管理:企业安全高效的基石桌面管理不仅关系到企业日常办公的顺利进行,也...