在crypto++(AES/CBC模式)中,我在哪里可以设置密钥轮数?

Where can I set the number of rounds of key in crypto++ (AES/CBC mode)?

是否已在 CBC 模式(AES-128:10 rounds,AES-192:12 rounds,Aes-256:14 rounds)中设置密钥轮数,或者是否有其他方式设置密钥轮数? 我找到了 setkeywithround(),但它似乎不适用于 CBCmode。 下面是我从 crypto++ wiki

复制和修改的示例代码
void CBC_modified() {
    AutoSeededRandomPool prng;

    SecByteBlock key(32);
    SecByteBlock iv(AES::BLOCKSIZE);

    prng.GenerateBlock(key, key.size());
    prng.GenerateBlock(iv, iv.size());

    std::string plain = "CBC test mode";

    std::cout << "plain text: " << plain << endl<<endl;
    try
    {
        CBC_Mode< AES >::Encryption e;
        e.SetKeyWithIV(key, key.size(), iv);

AES 等标准算法的轮数是预定义的,我从未见过有人改变它。如果这样做,它将是另一种算法,您将无法使用任何标准版本的算法对其进行解密。

AES轮是这样的:

  • AES-128 -> 10 轮
  • AES-192 -> 12 轮
  • AES-256 -> 14 轮

顺便说一句,轮次算法是 not 与其 mode 相关,例如 CBC.