在我的系統上對不同加密解決方案進行基準測試的最佳方法

在我的系統上對不同加密解決方案進行基準測試的最佳方法

我想比較用於加密我的系統的不同加密解決方案,可能針對系統不同部分的不同解決方案,例如/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)。

相關內容