参数无效:AES-128 / XTS无法接受长度为16的密钥

时间:2017-05-12 05:15:54

标签: aes botan

我正在尝试在Botan中使用AES-128 / XTS,但会抛出以下异常:

terminate called after throwing an instance of 'Botan::Invalid_Key_Length'    
what():  Invalid argument AES-128/XTS cannot accept a key of length 16

我的程序是这样的(头文件被省略):

using namespace Botan;
int main()
{
    SymmetricKey key_t(hex_decode("13232453fa2343432453de2adfedf2fa"));
    InitializationVector iv_t(hex_decode("0b0c7fc670656e36a7637b4e209885a9"));
    Pipe encryptor(get_cipher("AES-128/XTS", key_t, iv_t, Botan::ENCRYPTION));
    encryptor.process_msg((uint8_t *)s.data(), s.size());
    return 0;
}

我真的很想知道这里出了什么问题。

1 个答案:

答案 0 :(得分:2)

AES-XTS有一个怪癖,其中提供的密钥长度必须加倍。 256位为256位,512位为256位。如果您对此感到好奇,请查看https://en.m.wikipedia.org/wiki/Disk_encryption_theory的XTS部分。