我正在努力理解CCMP中的背景过程。然而,CTR和CBC-MAC的概念让我迷失了方向.
根据CCMP封装框图,有明文MPDU、TK、PN、KeyId等输入。临时密钥(TK)是什么?图的哪一部分表示CTR,哪一部分表示MIC计算(CBC)?从图像构造Nonce用于MIC还是用于计数器计算?

如果我理解得很好,计数器是一个128位值,它来自于源MAC地址、数据包号、标志、优先级和Ctr,每个MPDU增加1。每条消息被分解成128位数据块,然后用加密的计数器进行XORed。
CBC是一种用于生成64位MIC的模式.同样,每条消息被分割成128位消息块.第一条消息块是由源MAC地址、优先级、DLen和数据包号构造的。该消息块采用AES加密,其结果为带有第二条消息块的XORed,异或操作的结果再次加密。这会一直重复,直到整个消息被加密为止。最后,形成128位MIC,然后丢弃到64位MIC.
我在RFCs中迷失了方向,因为我在我的文学作品中找不到任何好的解释。
发布于 2017-08-22 08:25:11
还不完全清楚你的问题是什么,所以我只想解释一下CCMP和CCM是什么,以及它们是如何工作的。如果这个问题没有回答,请更新你的问题。
首先,记住CCM是认证加密的通用操作模式,而是使用CCM的一种特定方式.则是IEEE 802.11 (WiFi)上下文中的操作模式。
CCM是RFC 3610中定义的认证加密的通用操作模式.但是,由于您的问题是在CCMP的上下文中提出的,所以我将CCM的描述专门介绍到该设置中。CCM是MAC-然后加密变体中CTR模式加密和CCM的结合.在CCMP中,它使用AES作为底层分组密码,并以128位密钥K、明文P、关联数据A和104位当前N作为输入。
为了处理P和A,CCM首先计算A和P上的CBC-MAC以生成标记T。然后使用CTR模式加密P以生成密文C'。最后,它使用一个CTR块对T进行加密,生成一个加密的标记C_T。CCM的输出为C和C_T。
这个描述所缺少的是CCM如何构造用于CCM的(128位) IV块和用于CTR模式的(128位)初始计数器值。这两种方法都是从104位的N中构造的,如下所示:
其中Flag_1和Flag_2是两个不同的8位值(您可以在RFC中查找它们的定义)。
###CCMP### CCM是一种无状态认证的加密方案。因此,它无法防止重放攻击。从本质上讲,CCMP的目的是通过引入某种状态,在CCM的基础上增加重放保护。特别是,CCMP维护一个48位计数器,称为数据包号(图中的PN),该计数器对于每个加密的IEEE 802.11帧都会增加。由于CCMP使用CCM,其职责之一是创建104位的当前N。这就是上面图表中所示的内容。基本上,N是从发送方的48位MAC地址(图表中的A2)、48位数据包号PN和编码各种IEEE 802.11设置的8位标志Flag创建的,其方式如下:
因此,当这104位当前被输入CCM时,128位IV和128位初始CTR值将如下所示:
从本质上讲,这就是上面图表中所发生的所有事情。TK值对应于我称之为K的CCM输入。
https://crypto.stackexchange.com/questions/50998
复制相似问题