在AES-CCM中,TAG大小是用户参数吗?

时间:2012-12-16 14:37:55

标签: cryptography aes

我正在开发支持Counter with CBC-MAC mode的AES库,我对TAG(MAC)大小有疑问。

TAG大小是否必须由用户提供,或者可以从其他参数(如标题大小,IV(计数器或非现金)大小)计算并返回给用户?

在我的库中,我声明了一个函数如下:

AES-CCM(Encrypt, header, header size, Nounce, NonceSize, PlainText, 
          PlainTextSize, &TAGSize, &CipherText);

1 个答案:

答案 0 :(得分:0)

标签大小实际上不是输入的函数,因此应由用户设置。请注意,nonce不是这种情况,在我看来,这使得CCM有点麻烦。

我已经检查了Bouncy Castle库,他们使用用户输入来确定MAC大小(尽管它们将简单地除以8来获取字节)。如果没有给出大小,那么它们将使用算法块大小的一半(当然,对于AES,默认为8个字节),这是合理的默认值。