简析无线网络加密算法之CCMP加密算法

无线网络产品因其灵活、便捷、无线等特点,正在被越来越多的人所使用。但是在我们享受无线网络带给我们诸多好处的同时,安全问题也给我们带来了巨大困惑。为局域网/城域网标准委员会先后给无线网络提出了3个标准的加密算法,即WEP、TKIP、CCMP加密算法,用来保护我们的无线网络。由于CCMP加密算法采用了比TKIP更高级的加密标准CCMP加密算法,CCMP被认为是目前无线网络比较安全和可靠的加密算法。在这里我将对这个加密算法给大家简单介绍一下。

在我们分析CCMP的加密解密过程之前,我们先说明一下CCMP核心加密算法AES,因为MIC和文件加密解密都需要使用该算法。

一、AES加密算法

AES加密算法的具体算法说明可以从NIST的FIPS_PUB197_nAd—vanced_encryptionstandard文档得到的。

∥加密Cipher(bytein(4*Nbj,byteout[4*Nb],wordw[Nb*(Nr+lyyfm)]为原文out[]为密文Begin//_____w[]是由密钥扩展的密钥串bytestate[4,Nb]state=mAddRoundKey(srate,w[0,Nb-1D//与第一行密钥串异或forround=lstepltoNrSubBytes(state)//state的S盒置换ShiftRows(state)//接行移位MixColumns(state)//按列变换AddRoundKey(state,w[round*Nb,(round+lyNb-1])//与第round行密钥串异或endforSubBytes(state)

ShiIIRows(state)AddRoundKey(slaLe,w[NPNb,(Nr+l)*Nb-ll)out=sLateend∥解密InvCipher(bytcm[4*Nb],byteout[4*Nb],wordw[Nb*(Nr+I)Dbeginbyteswe[4,Nb]state=inAddRoundKey(state,w[Nr*Nb,(Nr+l)*Nb-lDforround-Nr-1step-ldownt01InvStuftRows(staLe)//按行移位的逆变换InvSubBytes(state)//S盒置换的逆变换AddRourtdKey(state,w[round*Nb,(round+I)*Nb-1])InvMixColumns(sWe),,按列变换的逆变换endforInvShitIRows(staLe)InvSubBytes(state)AddRoundKey(state,w[0,Nb-1])out=stateend

目前广泛使用的是rijndnal编写的AES加密算法,这个可以很轻松的从网上得到。

二、CCMP加密算法

了解了AES的加密和解密过程,接下来我们就开始说明CCMP的加密解密以及MIC的生成过程。CCMP的加密:首先我们从mpdu的MAC_Header提取结构AAD以及Nonce。如图1所示。AAD和Nonce提取办法如下:

然后我们计算出MIC,把它加入到数据域后面。生成8字节的CCMPHeader与MACHeader组成加密帧的验证部分,这部分不需要加密。然后对数据域和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(k1b0)—k.|-AES(x,xBi)fori=l.,.,,nT:=first-M-bytes(X~.)其中AES(K,B)为密钥K的AES加密。T取X序列的低M个字节。M为MIC的长度。

特别的.B0,B1一......Bn序列中.B0是由Nonee组成的MICIV.Bl.B2是由MACHeader也即AAD组成的MICHEADERI,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加密取得7MiC之后,就可以对数据域和MIC进行CTR加密.首先把数据城分钠成16个字节块,量后囊余的字节不用朴零.用Ai表示.MIC部分是单独CTR计算的。

Si=AES(K,CTR_PRELOAD(i));//i从O刭mEi=SiAi;UEi为加密好的16字节块

特别的对于数据域量后一个16字节块,可能不满16个字节,只有x(O

对予MIC部分E(MIC)=S0:MLCCTR_PRELOAD(i)的结构如下:Counter从i=0开始不断自增11个字节的Flag域:

只有最后3个bir的信息长度城。当L-2时,Flag值

为Ox01.

3、CCMP的解密从加密的MPDU中得到CCMPHeader与MACHeader.然后计算出AAD.Nonce.算出每个CTRPRELOAD.从而通过ctrR解密得到数据域原文以及rvnc.使用前一节MIC的计算方法算出当前的MIC.与解密后的rvnc比较,进行校验.在这里我们给出CTR解密的过程。

CTRN解密对加密的数据城进行16字节分割,用EI表示。加密的rvnc.FCS前的8个字节,用E(MIC)表示,单独取出进行CTR解密,数据域的原文16宇节块,用Ai表示。则解密过程如下:

si=AES(K,CTI乙PRELOAD(i》;仇从0到mAi=Si7Ei=SiSiAi;

特别的对于加密的数据域最后一个16字节块.可能不满16个字节,只有y(O

对于MJC部分MIC=S0?E(MIC)

通过上面的表述,你基本可以知道CCMP如何操作的。

CCMP的计算还是比较复杂,一方面可能增加了成本,一方面却大大加强了无线网络的安全.目前,它一般会和身份验证服务RADIUS以及密钢管理一起提供一个安全、可靠、可以信赖的无线环境。

小知识之CCMP:

CCMP(CounterCBC-MACProtocol)计数器模式密码块链消息完整码协议。

欢迎访问夏冰加密软件技术博客,您的数据安全知识库和加密技术资讯平台。我们致力于提供最新的加密技术动态、深入的行业资讯以及实用的软件使用技巧,帮助您在数字时代中保护好每一比特的数据。

THE END
1.算法的要素由计算和什么两部分组成算法的要素由计算和什么两部分组成 网讯 网讯| 发布2021-12-02 算法的控制结构。算法可大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法,厄米变形模型,随机森林算法。 https://xue.baidu.com/okam/pages/strategy-tp/index?strategyId=141222241917660&source=natural
2.算法的时间复杂度和空间复杂度总结算法时间复杂度本文深入探讨了算法的时间复杂度和空间复杂度分析方法,提供了时间复杂度的定义、求解步骤及常见复杂度等级,同时介绍了空间复杂度的概念及其在算法设计中的重要性。文章还列举了算法复杂度分析的法则,通过具体示例说明了如何计算不同复杂度的算法,并给出了常见复杂度的对比。最后,阐述了如何通过合理设计算法以提高其执行https://blog.csdn.net/zolalad/article/details/11848739
3.(数据结构)十分钟搞定时间复杂度(算法的时间复杂度)显然如果 T(n) = n^2,那么 T(n) = O(n^2),T(n) = O(n^3),T(n) = O(n^4) 都是成立的,但是因为第一个 f(n) 的增长速度与 T(n) 是最接近的,所以第一个是最好的选择,所以我们说这个算法的复杂度是 O(n^2) 。那么当我们拿到算法的执行次数函数 T(n) 之后怎么得到算法的时间复杂度https://www.jianshu.com/p/f4cca5ce055a
4.10大计算机经典算法「建议收藏」腾讯云开发者社区子问题重叠性质是指在用递归算法自顶向下对问题进行求解时,每次产生的子问题并不总是新问题,有些子问题会被重复计算多次。动态规划算法正是利用了这种子问题的重叠性质,对每一个子问题只计算一次,然后将其计算结果保存在一个表格中,当再次需要计算已经计算过的子问题时,只是在表格中简单地查看一下结果,从而获得较https://cloud.tencent.com/developer/article/2089934
5.数值计算方法(第3版)最新章节郑继明著为了防止误差传播、积累带来的危害,提高计算的稳定性,将前面分析所得的各种结果归纳起来,得到数值计算中应注意如下几点: ①应选用数值稳定的计算方法,避开不稳定的算式。 ②注意简化计算步骤及公式,减少误差的积累;设法减少乘除法运算,节约计算机的机时。 例如前面讲到过的用秦九韶算法计算多项式,就是一个改变https://m.zhangyue.com/readbook/12566028/9.html
6.算理与算法并重,促进学生计算能力的培养关键字:算理算法计算能力 一、算理与算法之间的关系。 算理是计算的理论依据,是计算过程中的道理,是指计算过程中思维方式,是解决为什么这样算的问题,而算法则是依据算理提炼出来的计算规律和方法,主要是指计算的法则,就是简约了复杂的思维过程、添加了人为规定后的程式化的操作步骤,主要是解决算的方便、准确,它是算https://www.unjs.com/xuexi/jiaoyuwenzhai/20111016201904_703879.html
7.HugeGraph大规模并行图计算实践与架构解析图计算针对上述场景有紧密中立性算法,可以通过算法计算出每个顶点的分值,分值越高就代表此人重要性越高,如果一个人和所有人都直接建立关联,此人肯定是最重要的人之一。总之通过图模型的方式描述一些问题,很简洁,也很符合我们的直觉。 2 图计算能够解决什么业务问题?https://blog.itpub.net/69925873/viewspace-2897616/
8.隔骨算法算男女隔骨算法准不准隔骨算法怎么算隔骨算法计算公式 隔骨和49算法哪个准 算法:有三行需要计算,第一行是截止到怀孕那个月宝爸的虚岁年龄;最后一行是截止到宝妈怀孕那个月的虚岁年龄;中间那一行是宝爸宝妈同房受孕时间的农历月份。 男方在上单岁画一整画,双岁画两半画。女方在下,单岁也是画一整画,双岁画两半画,受胎之月在中间,单月画一整画,双https://www.snsnb.com/post-144943-1.html
9.作业调度算法(含详细计算过程)和进程调度算法浅析简介:作业调度算法(含详细计算过程)和进程调度算法浅析 一.作业调度 作业调度算法需要知道以下公式 周转时间=完成时间 - 到达时间 带权周转时间=周转时间/运行时间 注:带权周转时间越大,作业(或进程)越短;带权周转时间越小,作业(或进程)越长。带权周转时间越小越好 https://developer.aliyun.com/article/1510024
10.2024年土地增值税计算方法纳税人计算土地增值税时,也可用下列简便算法: 计算土地增值税税额,可按增值额乘以适用的税率减去扣除项目金额乘以速算扣除系数的简便方法计算,具体公式如下: (一)增值额未超过扣除项目金额50% 土地增值税税额=增值额×30% (二)增值额超过扣除项目金额50%,未超过100%的土地增值税税额=增值额×40%-扣除项目金额×5%https://www.64365.com/special/2017ntdzzsjsff/
11.改进量子遗传算法在函数寻优中的应用AET本文采用的方法与现有方法的计算结果对比如表3所示,每个函数分别用改进后的算法计算20次。量子遗传算法的种群大小设置为40,迭代次数设置为200,函数的每个变量的二进制长度设置为20,退火初始温度设置为100℃,退火系数为0.95。算法的优化性能从算法的效率与算法质量两个方面进行评价。 http://www.chinaaet.com/article/3000020903
12.SHA256算法加密计算器SHA256算法加密计算器 6296人使用 问AI · 免费试用 正式名称为 SHA 的家族第一个成员发布于 1993年。然而现在的人们给它取了一个非正式的名称 SHA-0 以避免与它的后继者混淆。两年之后, SHA-1,第一个 SHA 的后继者发布了。 另外还有四种变体,曾经发布以提升输出的范围和变更一些细微设计: SHA-224, SHA-https://www.zaixianjisuan.com/jiamijiemi/sha256suanfajiami.html
13.CORDIC算法在三轴电子罗盘中的应用但将其用于罗盘载体的姿态解算仍然是可行的,这是基于以下两点:(1)由于传感器特性的不一致性,其采集的原始数据均需经过零点、增益等校准后才可用于姿态解算,这就相当于为CORDIC算法的输入矢量模长做了归一化处理;(2)如前所述,利用CORDIC算法计算俯仰角与横滚角并对其加以补偿时,并不需要具体计算三角与反三角函数,https://www.hqew.com/tech/doc/738137.html
14.进化计算机器学习进化计算的四种算法进化计算(Evolutionary Computation)包括遗传算法(Genetic Algorithm,GA)、进化策略(Evolutionary Strategies,ES)和基因编程(Genetic Programming)。进化进算是受进化生物学启发而发展起来的计算模型,其实现过程基于达尔文的物竞天择、适者生存的生物进化原理,通过将现实问题转化为基因染色体表示,并不断进行选择、交换、变异、https://blog.51cto.com/u_16213577/8939331
15.科学网—智能哲学:计算机是人工智能吗?人工智能研究领域一直存在“算法计算”与“代理计算(Agent)”两种路线,对这种现象的认识与争论已经成了人工智能的哲学问题[1],它们在相对的意义上有各种称呼,如符号主义、机能主义、逻辑或程序主义、联接主义等等,达特茅斯会议上提出的“人工智能”这个概念大体包括了这两个方面的工作而被大家接受,但如果区分了算法计算https://blog.sciencenet.cn/blog-2322490-985539.html
16.在线计算器:多项式算法计算器计算一个多项式表达式。表达式包含多项式和运算+,-,/,*,mod—余数, gcd —最大公约数,贝祖恒等式多项式a, 贝祖恒等式多项式b, 前导系数, 次数, 本原部分, 系数的相互最大公约数 , 单一函数。 多项式算法 多项式表达式 计算 计算精度 精确 https://zh.planetcalc.com/8383/
17.MaterialsStudio建模与材料模拟计算工作站方案2021v4重点(1)Materials Studio材料模拟软件计算特点 (2)Materials Studio三维建模/可视化硬件配置推荐 (3)Materials Studio量子力学工作站硬件配置推荐 (4)Materials Studio分子力学与分子动力工作站硬件配置推荐 (一)Materialshttp://www.xasun.com/article/b5/2464.html
18.多源空间数据融合的城市人居环境监测模型与应用研究绿地、水体、道路等地物的特征显著, 差异性较大, 可通过特征空间进行提取, 其中的难点是特征阈值的自适应性问题, 本文提出利用全局最优算法计算阈值, 实现绿地、水体、道路提取。针对建筑物表面复杂性, 特征差异不显著问题, 为提高精度, 提出使用POI点获取单体建筑物的样本, 再根据特征空间, 自动寻找相似对象组成建https://www.ecologica.cn/stxb/ch/html/2019/4/stxb201809111948.htm
19.中国主要统计指标简介农业包含的5个行业采用生产法计算;工业包含的39个行业同时采用生产法和收入法计算;建筑业和第三产业包含的50个行业则采用收入法计算。在94个行业中,基础资料足够充分的51个行业采用直接计算的方法得到增加值,基础资料不够充分的行业,通过比例系数推算法和相关指标推算法间接计算增加值。https://xttj.xiangtan.gov.cn/13228/13230/content_660936.html
20.计算速度50年纪录,DeepMind新研究再刷Nature封面,详细算法已开源出乎研究者们意料的是,AlphaTensor发现的计算矩阵乘法的方法真的挺有效。 例如在英伟达V100 GPU和谷歌TPU v2这两种硬件上,使用AlphaTensor发现的算法计算矩阵乘法,比常用算法要快上10~20%左右。 (当然研究者们也表示,其他处理器还得看硬件逻辑,计算方法不一定针对每个处理器都有这么好的加速作用) https://aidc.shisu.edu.cn/73/c1/c13626a160705/page.htm