首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CTR和CBC-MAC解算

CTR和CBC-MAC解算
EN

Cryptography用户
提问于 2017-08-21 06:10:00
回答 1查看 1.6K关注 0票数 1

我正在努力理解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中迷失了方向,因为我在我的文学作品中找不到任何好的解释。

EN

回答 1

Cryptography用户

发布于 2017-08-22 08:25:11

还不完全清楚你的问题是什么,所以我只想解释一下CCMP和CCM是什么,以及它们是如何工作的。如果这个问题没有回答,请更新你的问题。

首先,记住CCM是认证加密的通用操作模式,而是使用CCM的一种特定方式.则是IEEE 802.11 (WiFi)上下文中的操作模式。

CCM

CCM是RFC 3610中定义的认证加密的通用操作模式.但是,由于您的问题是在CCMP的上下文中提出的,所以我将CCM的描述专门介绍到该设置中。CCM是MAC-然后加密变体中CTR模式加密和CCM的结合.在CCMP中,它使用AES作为底层分组密码,并以128位密钥K、明文P、关联数据A和104位当前N作为输入。

为了处理PA,CCM首先计算AP上的CBC-MAC以生成标记T。然后使用CTR模式加密P以生成密文C'。最后,它使用一个CTR块对T进行加密,生成一个加密的标记C_T。CCM的输出为CC_T

这个描述所缺少的是CCM如何构造用于CCM的(128位) IV块和用于CTR模式的(128位)初始计数器值。这两种方法都是从104位的N中构造的,如下所示:

\begin{align} IV &\gets Flag_1 || N || Length(A + P)_{16} \\ CTR_0 &\gets Flag_2 || N || 0^{16} \end{align}

其中Flag_1Flag_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创建的,其方式如下:

\begin{equation} N \gets Flag || A_2 || PN \end{equation}

因此,当这104位当前被输入CCM时,128位IV和128位初始CTR值将如下所示:

\begin{align} IV &\gets Flag_1 || Flag || A2 || PN || Length(A + P)_{16} \\ CTR_0 &\gets Flag_2 || Flag || A2 || PN || 0^{16} \end{align}

从本质上讲,这就是上面图表中所发生的所有事情。TK值对应于我称之为K的CCM输入。

票数 3
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/50998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档