【问题标题】:AES-CCM encrypted message lengthAES-CCM 加密消息长度
【发布时间】:2016-01-23 12:04:42
【问题描述】:

请解释一下:

我通过 AES-CCM 使用 8 字节 MAC 加密了 1 字节纯文本。 结果是 9 字节长。

我以为 AES 是一个 16 字节的分组密码,所以结果必须是 24 字节长,但事实并非如此。

这绝对不是我的代码中的错误,因为 RFC 3610 中的示例与我的情况非常相似(31 字节数据 + 8 字节 MAC 导致 39 字节输出)。

【问题讨论】:

    标签: aes block-cipher


    【解决方案1】:

    CCM 是一种身份验证模式,它结合了用于加密的 CTR 模式和用于身份验证的 CBC-MAC。由于加密是使用streaming mode CTR 完成的,因此密文将与明文一样长。

    nonce(初始化向量)必须对于 CCM 模式是唯一的,否则可能会丢失所有使用相同 nonce 和相同密钥的消息的机密性。为了加密某些东西,您要么需要使用全球已知的消息计数器作为随机数,要么生成一个随机随机数,并希望您之前没有生成它(128 位分组密码的机会非常渺茫)。随机数不应该是秘密的,因此您可以将其添加到密文中。密文的全长为:

    nonceLength + plaintextLength + tagLength
    

    CCM模式的另一个问题是CBC-MAC的使用,现在被认为是严重破坏了。

    【讨论】:

    • 感谢您的回答。我的答案隐藏在“流媒体模式点击率”中。
    猜你喜欢
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 2021-05-11
    相关资源
    最近更新 更多