2017-05-12 1 views
2

のキーを受け入れることができない私は牡丹でAES-128 /のXTSを使用しようとしているが、次の例外がスローされます。無効な引数:AES-128 /のXTSは、長さ16

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; 
} 

本当にここで間違っているのでしょうか?

答えて

2

AES-XTSには、提供されるキーの長さが2倍である必要があります。 128ビットは256ビット、256ビットは512ビットです。理由が不明な場合は、https://en.m.wikipedia.org/wiki/Disk_encryption_theoryのXTSセクションを確認してください。

+0

お返事ありがとうございます。私はXTSモードを誤解しました。 –