在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
.
是否已在 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
.