
我想比較用於加密我的系統的不同加密解決方案,可能針對系統不同部分的不同解決方案,例如/usr
或/home
。我特別關注具有不同參數的 dm-crypt 分區、容器、truecrypt、ecryptfs 和 encfs。出於多種原因,我認為僅使用以下方法測量原始 seq 讀取和寫入速度dd
是不夠的:
- seq 讀/寫給我不同的CPU 負載,例如ecryptfs 僅加載一個核心(高達100%),而dm-crypt 速度更快,但會加載兩個核心,因此在實際使用中,當系統負載來自ecryptfs 時,ecryptfs 可能會更快其他應用程式(也許不是,但我如何對其進行基準測試?)
- 這都是關於SSD的,所以我想要一個基準測試,它表明系統會感覺哪個選項反應更快,所以我應該包括一些隨機讀寫測試或類似的東西(但我不知道該怎麼做) )
- 對解決方案進行基準測試
/usr
可能需要其他基準測試,/home
因為 I/O 特性可能不同
我應該補充一點,我的 CPU 不支援 AES 指令,因此它是效能的限制因素。我不想隔離系統的一部分,而是比較特定係統中 SSD 的不同加密解決方案。那麼,針對我的案例進行基準測試的最佳方法是什麼以及如何詳細執行?
答案1
內建的怎麼樣cryptsetup benchmark
?
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1 633198 iterations per second
PBKDF2-sha256 329326 iterations per second
PBKDF2-sha512 216647 iterations per second
PBKDF2-ripemd160 474039 iterations per second
PBKDF2-whirlpool 248713 iterations per second
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 707.0 MiB/s 3120.9 MiB/s
serpent-cbc 128b 98.3 MiB/s 307.2 MiB/s
twofish-cbc 128b 195.0 MiB/s 381.7 MiB/s
aes-cbc 256b 513.8 MiB/s 2373.9 MiB/s
serpent-cbc 256b 97.4 MiB/s 315.1 MiB/s
twofish-cbc 256b 198.8 MiB/s 383.9 MiB/s
aes-xts 256b 2706.1 MiB/s 2634.1 MiB/s
serpent-xts 256b 318.0 MiB/s 310.4 MiB/s
twofish-xts 256b 370.5 MiB/s 380.1 MiB/s
aes-xts 512b 2083.2 MiB/s 2073.8 MiB/s
serpent-xts 512b 323.0 MiB/s 311.4 MiB/s
twofish-xts 512b 375.9 MiB/s 380.2 MiB/s
通常您會想要使用 AES 密碼之一。即使您的系統目前不支援 AES-NI,您的下一個盒子也可能...
答案2
看看邦妮++為您提供您正在尋找的測試/結果。 Bonnie++ 可能可以從您的發行版儲存庫中取得。
本文,SSD Linux 基準測試:比較檔案系統和加密方法您可能也會感興趣。
答案3
您提到的解決方案在實際用途上確實存在很大差異 - dm-crypt 是完整的檔案系統加密,而 ecryptfs/encfs 位於檔案系統之上。如果你想要安全,請決定首先什麼你真的想要而且只那麼如何去解決它。
也就是說,如果您的 CPU 成為瓶頸,請不要感到驚訝 - 我認為由於它不支援 AES-NI,它的性能與例如 Intel Core2 Duo 的數量級相同 - 我碰巧測試了大約一年前。核心加密模組的速度約為 38MB/s±10MB/s,取決於所使用的密碼和區塊大小(Twofish、AES、Serpent 和 Camellia,區塊大小為 128/192/256b)。