我知道AES-GCM和AES-CCM,但是AES-CCM 8模式和AES-CCM模式有什么区别?是密码的长度吗?
发布于 2022-05-15 20:12:13
8是标记长度(以字节为单位)。
CCM是一组AEAD (带有关联数据的认证加密)算法,其参数化如下:
CCM由NIST SP 800-30 C定义。
在实践中,每个人都使用NIST SP 800-30C附录A中指定的计数器生成和格式化函数。格式化函数的规范实际上是具有一个参数的一系列函数: AEAD字段的长度。因此,“AES -CCM”使得三个参数模糊不清:AES键的长度、AEAD字段的长度q和标签的长度t。
Q值对安全性没有直接影响。它限制了可以传输的AEAD的大小,也限制了现在的大小。T的值对安全性有影响:太短的标记可以强制执行。标签长度可以低到4个字节,这是很容易蛮力.这种短标签被用于通信协议中,在这些协议中,强制标记将是主动攻击,而主动攻击成功的概率被认为是低得可以接受的。
参数q和t被编码在数据的第一个块中,因此对于给定块密码的CCM解密验证的实现可以明确地解密和验证输入,不管这些值是什么。一些协议将Q和t限制在特定的值上。对于标记长度t,这是一个安全参数。对于q,这可以使实现更简单一些,并且使互操作性变得更容易(支持差异的风险更小,一致的AEAD大小限制,互操作性测试…的负担更小)。。
注意,q和t是标记计算的输入。因此,标记值取决于这些参数。特别是对于给定的消息,n字节CCM标记不是将16字节标记截断为n字节。(对于GCM来说,这是不同的,其中带有较短标记的GCM只是截断了全长标记的GCM。)
如果没有显式指定,标签长度通常是最大的,即一个块(128位= 16字节)。这也可以写成“AES-CCM-16”(或排版变体)。“AES-CCM-8”是指具有64位=8字节标记的AES-CCM,依此类推。
例如,在TLS1.2中,CCM密码套件是由RFC 6655 (以及其他用于Camellia和ARIA的RFC )定义的,并引用了RFC 5116 §5.3和§5.4。RFC 6655§3指定了一个12字节的数字,这相当于q= 3。xxx_CCM密码套件使用最大长度标签(t = 16),而xxx_CCM_8密码套件使用半长标记(t = 8)。
一个8字节(64位)的标记在攻击者可以强行强制所有可能的标记的情况下是不舒服的小。但是,当标记用于TLS通信时,如果攻击者对标记做了错误的猜测,接收方将立即关闭连接,因此每个猜测都需要一个新的连接。这使得蛮力非常昂贵。使用DTLS,接收方将接受多个损坏的数据包,因此攻击者可以对每个连接进行几次猜测,但攻击仍然是对正在进行的连接的主动攻击,攻击者尝试不可忽略的猜测而不饱和接收者的带宽或触发洪水防御通常是不切实际的。
发布于 2022-05-15 10:00:45
正如在6.1 6655第6.1节中定义的那样,AES-CCM 8的不同之处在于认证标记的大小为8字节(即64位),而不是AES-CCM的16字节(即128位)。NIST SP80038C节6.1中的CCM规范允许一系列可能的身份验证标记长度。较短的标签可以被认为是最重要的长标签位。加密的有效载荷没有差别。
https://crypto.stackexchange.com/questions/100144
复制相似问题