Botansqlite3 で Botan 暗号化を使用する場合、パフォーマンスの最適な構成設定は何ですか?
また
CAST5 を使用するように Botansqlite3 を構成するにはどうすればよいですか?
現在 AES を使用していますが、遅すぎます。私のユースケースはゲームです。
ゲームのデータ (エンド ユーザーのデータではない) を保護するための弱いまたは中程度の暗号化を探しているので、セキュリティはパフォーマンスよりも重要です。
ここに私の現在の BotanSqlite3 codec.h があります
/*These constants can be used to tweak the codec behavior as follows */
//BLOCK_CIPHER_STR: Cipher and mode used for encrypting the database
//make sure to add "/NoPadding" for modes that use padding schemes
const string BLOCK_CIPHER_STR = "Twofish/XTS";
//PBKDF_STR: Key derivation function used to derive both the encryption
//and IV derivation keys from the given database passphrase
const string PBKDF_STR = "PBKDF2(SHA-160)";
//SALT_STR: Hard coded salt used to derive the key from the passphrase.
const string SALT_STR = "&g#nB'9]";
//SALT_SIZE: Size of the salt in bytes (as given in SALT_STR)
const int SALT_SIZE = 64/8; //64 bit, 8 byte salt
//MAC_STR: CMAC used to derive the IV that is used for db page
//encryption
const string MAC_STR = "CMAC(Twofish)";
//PBKDF_ITERATIONS: Number of hash iterations used in the key derivation
//process.
const int PBKDF_ITERATIONS = 10000;
//KEY_SIZE: Size of the encryption key. Note that XTS splits the key
//between two ciphers, so if you're using XTS, double the intended key
//size. (ie, "AES-128/XTS" should have a 256 bit KEY_SIZE)
const int KEY_SIZE = 512/8; //512 bit, 64 byte key. (256 bit XTS key)
//IV_DERIVATION_KEY_SIZE: Size of the key used with the CMAC (MAC_STR)
//above.
const int IV_DERIVATION_KEY_SIZE = 256/8; //256 bit, 32 byte key
//This is definited in sqlite.h and very unlikely to change
#define SQLITE_MAX_PAGE_SIZE 32768
別のコーデックを使用するように BotanSqlite3 を再構成するには、BLOCK_CIPHER_STR、PBKDF_STR、MAC_STR、KEY_SIZE、および IV_DERIVATION_KEY_SIZE の代替を見つける必要があると思います。
Botanコーデックのパフォーマンスの広範な比較テストをここで見つけました。 5
ただし、テストは、Botansqlite3 を使用するつもりではなく、直接 Botan で行われました。チャートを見ると、パフォーマンスの観点からは CAST5 が適切な候補のようです。
- 問題のデータベースは 300KB で、ほとんどが INTEGER フィールドで、いくつかのテキスト BLOB があります。
融合を使用して、botansqlite3の名声のOlivierJGが提案したようにボタンを構成しています
'./configure.py --no-autoload --enable-modules=twofish,xts,pbkdf2,cmac,sha1 --gen-amalgamation --cc=msvc --os=win32 --cpu=x86 --disable-共有 --disable-asm'
参考文献:
http://github.com/OlivierJG/botansqlite3 - botansqlite3 は SQLite3 用の暗号化コーデックで、Botan の任意のアルゴリズムを暗号化に使用できます
http://www.sqlite.org - sqlite3 はクロスプラットフォームの SQL データベースです
http://botan.randombit.net/ - botan は、多数のコーデックをサポートする C++ 暗号化ライブラリです。