我想在 C++ 中使用 CBC MAC。首先,我希望找到一些我将在 CBC 模式下使用的分组密码的实现,我理解的是 CBC MAC。但我有两个问题:
1)如果要认证的消息长度不是分组密码块长度的倍数,我该怎么办?
2)为了加强 CBC MAC,Wiki 上提到的一种推荐方法是将消息的长度放在第一个块中。但是我应该如何将长度编码为字符串?还是二进制?如果密码的块长度是 64 位,我是否将该数字编码为 64 位数字?例如,如果消息长度为 230,我应该使用以下值作为第一个块:
00000000 00000000 00000000 00000000 00000000 00000000 00000000 11100110</p>
?